add.vue 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <template>
  2. <div>
  3. <el-button type="primary" size="small" @click="drawer = true">新建物流单</el-button>
  4. <el-drawer
  5. title="新建物流单"
  6. :visible.sync="drawer"
  7. direction="rtl"
  8. size="80%"
  9. append-to-body
  10. @close="onClose">
  11. <div class="drawer__panel">
  12. <p class="normal-title normal-margin">基础信息</p>
  13. <el-form :inline="true" :model="form" class="demo-form-inline" size="small" label-width="100px" label-position="right">
  14. <el-form-item label="企业名称" prop="">
  15. <enterprise :qiyi="true" ref="ent" @rowClick="entRowClick"></enterprise>
  16. </el-form-item>
  17. <el-form-item label="物流公司">
  18. <logisticcom ref="logis" :ID="true" @logisticRowClick="logisticRowClick"></logisticcom>
  19. </el-form-item>
  20. <el-form-item label="物流单号">
  21. <el-input v-model="form.billno" placeholder="物流单号"></el-input>
  22. </el-form-item>
  23. <el-form-item label="寄付方式">
  24. <el-select v-model="form.paytype" placeholder="请选择" @change="selectChange">
  25. <el-option
  26. label="到付"
  27. value="到付">
  28. </el-option>
  29. <el-option
  30. label="预付"
  31. value="预付">
  32. </el-option>
  33. </el-select>
  34. </el-form-item>
  35. <el-form-item label="车牌号">
  36. <el-input v-model="form.carnum" placeholder="车牌号"></el-input>
  37. </el-form-item>
  38. <el-form-item label="物流联系人">
  39. <el-input v-model="form.logiscontact" placeholder="物流联系人"></el-input>
  40. </el-form-item>
  41. <el-form-item label="物流电话">
  42. <el-input v-model.number="form.logisphone" placeholder="物流电话"></el-input>
  43. </el-form-item>
  44. <el-form-item label="运费">
  45. <el-input v-model.number="form.freightamount" placeholder="运费"></el-input>
  46. </el-form-item>
  47. <el-form-item label="备注">
  48. <el-input v-model="form.remarks" placeholder="备注"></el-input>
  49. </el-form-item>
  50. <el-form-item label="单据日期" prop="billdate">
  51. <el-date-picker
  52. v-model="form.billdate"
  53. type="date"
  54. value-format="yyyy-MM-dd"
  55. :picker-options="pickerOptions"
  56. placeholder="单据日期">
  57. </el-date-picker>
  58. </el-form-item>
  59. </el-form>
  60. <div class="mt-10">
  61. <div>
  62. <p class="normal-title inline-16">添加发货单</p>
  63. <el-button type="text" size="mini" @click="addMoreBill">{{setcol === 12?'关闭选择':'添加发货单'}}</el-button>
  64. </div>
  65. <el-row :gutter="10">
  66. <el-col :span="setcol">
  67. <dispatch-table ref="dislist"></dispatch-table>
  68. </el-col>
  69. <el-col :span="24 - setcol">
  70. <add-disbill v-if="drawer" ref="addbill" :data="enterpriseInfo" :paytype="form.paytype" @onConfirm="onConfirm"></add-disbill>
  71. </el-col>
  72. </el-row>
  73. </div>
  74. </div>
  75. <div class="fixed__btn__panel">
  76. <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
  77. <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">提交</el-button>
  78. </div>
  79. </el-drawer>
  80. </div>
  81. </template>
  82. <script>
  83. import dispatchTable from './dispatchTable.vue'
  84. import enterprise from './enterprise'
  85. import logisticcom from '@/template/selectLogisticcom/index.vue'
  86. import addDisbill from '@/template/logisyticCanUseDisBill/index.vue'
  87. export default {
  88. components:{
  89. dispatchTable,
  90. enterprise,
  91. addDisbill,
  92. logisticcom
  93. },
  94. data () {
  95. return {
  96. drawer:false,
  97. visible:false,
  98. setcol:24,
  99. form:{
  100.         "freightamount": "",
  101.         "logisticno": "",
  102.         "paytype": "",
  103.         "remarks": "",
  104.         "sa_dispatchids": [],
  105.         "sa_logiscompid": 0,
  106.         "sa_logisticsid": 0,
  107.         "sys_enterpriseid": '',
  108.         "carnum":"",
  109.         "logisphone":"",
  110.         "logiscontact":"",
  111.         "rec_contactsid":'',
  112. billdate:`${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}`
  113. },
  114. rules:{
  115. point:[
  116. { required: true, message: '请选择账期依据', trigger: 'change'},
  117. ],
  118. },
  119. enterpriseInfo:null,
  120. pickerOptions: {
  121. disabledDate(time) {
  122. return time.getTime() < Date.now() - 24 * 3600 * 1000;
  123. }
  124. }
  125. }
  126. },
  127. methods:{
  128. addMoreBill () {
  129. if (this.enterpriseInfo === null) return this.$message({
  130. message:'请先选择企业信息',
  131. type:'error'
  132. })
  133. this.setcol === 12?this.setcol = 24 : this.setcol = 12
  134. this.$refs['addbill'].listData()
  135. },
  136. entRowClick (row) {
  137. this.enterpriseInfo = row
  138. this.form.sys_enterpriseid = row.sys_enterpriseid
  139. },
  140. logisticRowClick (row) {
  141. console.log(row)
  142. this.form.sa_logiscompid = row.sa_logiscompid
  143. },
  144. onConfirm (data) {
  145. function unique(arr, uniId){
  146. const res = new Map();
  147. return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
  148. }
  149. this.$refs['dislist'].tableData = unique([...this.$refs['dislist'].tableData,...data],'billno')
  150. this.form.remarks = this.$refs['dislist'].tableData[0].remarks
  151. },
  152. async onSubmit () {
  153. this.form.sa_dispatchids = this.$refs['dislist'].tableData.map(e=>{
  154. return e.sa_dispatchid
  155. })
  156. const res = await this.$api.requested({
  157. "id": "202212004124804",
  158. "content": this.form
  159. })
  160. console.log(res);
  161. this.tool.showMessage(res,()=>{
  162. this.drawer = false
  163. this.dialogAddress = false
  164. this.$emit('onSuccess')
  165. this.form = {}
  166. this.$router.push({path:'/logisticsdetail',query:{id:res.data.sa_logisticsid,rowindex:res.data.rowindex}})
  167. })
  168. },
  169. selectChange () {
  170. this.$refs['addbill'].listData()
  171. },
  172. onClose () {
  173. this.$refs['ent'].form = this.$refs['logis'].form = {}
  174. }
  175. }
  176. }
  177. </script>