Просмотр исходного кода

Merge branch 'test' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-wt into test

chencc 1 год назад
Родитель
Сommit
2377cdcb8f
54 измененных файлов с 1003 добавлено и 573 удалено
  1. 12 7
      src/BIZComponents/inventoryTable.vue
  2. 1 1
      src/BIZComponents/inventoryTableDetails.vue
  3. 10 0
      src/api/bpm/components/saleManage/contact.js
  4. 18 6
      src/views/bpm/collaborative/index.vue
  5. 2 2
      src/views/bpm/handleTask/components/businessOpportunity/addOpportunityDialog.vue
  6. 2 2
      src/views/bpm/handleTask/components/businessOpportunity/opportunityDetailDialog.vue
  7. 17 17
      src/views/bpm/handleTask/components/businessOpportunity/submit.vue
  8. 1 1
      src/views/bpm/handleTask/components/contractBook/detailDialog.vue
  9. 24 73
      src/views/bpm/handleTask/components/financialManage/invoiceManage/components/addOrEditDialog.vue
  10. 8 5
      src/views/bpm/handleTask/components/financialManage/invoiceManage/components/detailDialog.vue
  11. 27 22
      src/views/bpm/handleTask/components/financialManage/invoiceManage/components/tableInfo.vue
  12. 1 1
      src/views/bpm/handleTask/components/financialManage/payableManage/components/detailDialog.vue
  13. 1 1
      src/views/bpm/handleTask/components/financialManage/receivableManage/components/detailDialog.vue
  14. 107 84
      src/views/bpm/handleTask/components/inquiryManage/addDialog.vue
  15. 1 1
      src/views/bpm/handleTask/components/inquiryManage/detailDialog.vue
  16. 39 7
      src/views/bpm/handleTask/components/inquiryManage/inquiryTable.vue
  17. 1 1
      src/views/bpm/handleTask/components/inquiryManage/inventoryTable.vue
  18. 1 1
      src/views/bpm/handleTask/components/outsourcedWarehousingNoProcurement/detailDialog.vue
  19. 25 19
      src/views/bpm/handleTask/components/purchaseOrder/accountstatement/inventoryTable.vue
  20. 28 10
      src/views/bpm/handleTask/components/purchaseOrder/accountstatement/page.vue
  21. 6 6
      src/views/bpm/handleTask/components/purchaseOrder/detailDialog.vue
  22. 3 3
      src/views/bpm/handleTask/components/purchaseOrder/invoice/addInvoiceDialog.vue
  23. 12 12
      src/views/bpm/handleTask/components/purchaseOrder/invoice/detailDialog.vue
  24. 4 1
      src/views/bpm/handleTask/components/purchaseOrder/invoice/receiptInfo.vue
  25. 1 1
      src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/addOrEditDialog.vue
  26. 3 1
      src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/detailDialog.vue
  27. 1 1
      src/views/bpm/handleTask/components/purchaseOrder/outSourceSendCk/addOrEditDialog.vue
  28. 1 1
      src/views/bpm/handleTask/components/purchaseOrder/outsourceSendReturnGoods/addReturnGoodsDialog.vue
  29. 1 1
      src/views/bpm/handleTask/components/purchaseOrder/outsourceSendReturnGoods/detailDialog.vue
  30. 1 1
      src/views/bpm/handleTask/components/purchaseOrder/returnGoods/addReturnGoodsDialog.vue
  31. 1 1
      src/views/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog.vue
  32. 1 1
      src/views/bpm/handleTask/components/quotation/addDialog.vue
  33. 1 1
      src/views/bpm/handleTask/components/quotation/detailDialog.vue
  34. 23 8
      src/views/bpm/handleTask/components/saleOrder/accountstatement/inventoryTable.vue
  35. 29 10
      src/views/bpm/handleTask/components/saleOrder/accountstatement/page.vue
  36. 192 0
      src/views/bpm/handleTask/components/saleOrder/accountstatement/recorpayTableList.vue
  37. 2 2
      src/views/bpm/handleTask/components/saleOrder/addDialog.vue
  38. 19 1
      src/views/bpm/handleTask/components/saleOrder/customerReturnGoods/customerReturnOrder.vue
  39. 1 1
      src/views/bpm/handleTask/components/saleOrder/detailDialog.vue
  40. 1 1
      src/views/bpm/handleTask/components/saleOrder/entrustedReceive/addOrEditDialog.vue
  41. 1 1
      src/views/bpm/handleTask/components/saleOrder/entrustedReceive/detailDialog.vue
  42. 1 1
      src/views/bpm/handleTask/components/saleOrder/entrustedReceiveReturnGoods/addReturnGoodsDialog.vue
  43. 20 37
      src/views/bpm/handleTask/components/saleOrder/entrustedReceiveReturnGoods/detailDialog.vue
  44. 1 1
      src/views/bpm/handleTask/components/saleOrder/exceptionManagement/addOrEditDialog.vue
  45. 1 1
      src/views/bpm/handleTask/components/saleOrder/invoice/addInvoiceDialog.vue
  46. 121 33
      src/views/bpm/handleTask/components/saleOrder/invoice/detailDialog.vue
  47. 45 12
      src/views/bpm/handleTask/components/saleOrder/invoice/inventoryTable.vue
  48. 17 3
      src/views/bpm/handleTask/components/saleOrder/invoiceConfirm/detailDialog.vue
  49. 23 15
      src/views/bpm/handleTask/components/saleOrder/returnGoods/addReturnGoodsDialog.vue
  50. 39 64
      src/views/bpm/handleTask/components/saleOrder/returnGoods/detailDialog.vue
  51. 20 1
      src/views/bpm/handleTask/components/saleOrder/returnGoods/inventoryTable.vue
  52. 16 21
      src/views/bpm/handleTask/components/saleOrder/saleReturnGoods/detailDialog.vue
  53. 29 42
      src/views/bpm/handleTask/components/saleOrder/saleReturnGoods/inventoryTable.vue
  54. 40 26
      src/views/bpm/stockManagement/storage.vue

+ 12 - 7
src/BIZComponents/inventoryTable.vue

@@ -323,7 +323,7 @@
           <DictSelection
             dictName="产地"
             clearable
-            :disabled="status == 'Detail'"
+            
             v-model="scope.row.provenance"
             multiple
           >
@@ -396,6 +396,7 @@
           <el-date-picker
             style="width: 140px"
             v-model="scope.row.produceDeliveryDeadline"
+            @change="setDeliveryDays(scope.row, scope.$index, 'guaranteePeriod')"
             type="date"
             placeholder="选择日期"
           >
@@ -418,6 +419,7 @@
             style="width: 140px"
             :disabled="isContractId"
             v-model="scope.row.customerExpectDeliveryDeadline"
+            @change="setDeliveryDays(scope.row, scope.$index, 'guaranteePeriod')"
             type="date"
             placeholder="选择日期"
           >
@@ -754,7 +756,6 @@
             align: 'center',
             showOverflowTooltip: true,
             minWidth: 200,
-            show:this.contractBookType==2
           },
           {
             width: 120,
@@ -995,7 +996,7 @@
               this.form.datasource[i],
               'guaranteePeriodDeadline',
               guaranteePeriodUnitName != 'second'
-                ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName)
+                ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName,item)
                 : ''
             );
             // }
@@ -1011,7 +1012,7 @@
             this.form.datasource[index],
             'guaranteePeriodDeadline',
             guaranteePeriodUnitName != 'second'
-              ? this.setDay(row.guaranteePeriod, guaranteePeriodUnitName)
+              ? this.setDay(row.guaranteePeriod, guaranteePeriodUnitName,row)
               : ''
           );
         }
@@ -1025,8 +1026,9 @@
           ? 'year'
           : 'second';
       },
-      setDay(addDay, dateType = 'day') {
-        return dayjs(this.contractStartDate || new Date())
+      setDay(addDay, dateType = 'day',item) {
+        let tiem= this.contractBookType==1? item.produceDeliveryDeadline:item.customerExpectDeliveryDeadline;
+        return dayjs( tiem|| new Date())
           .add(addDay, dateType)
           .format('YYYY-MM-DD');
       },
@@ -1087,7 +1089,7 @@
               item['guaranteePeriodDeadline'] =
                 item['guaranteePeriodDeadline'] ||
                 guaranteePeriodUnitName != 'second'
-                  ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName)
+                  ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName,item)
                   : '';
             }
           });
@@ -1168,6 +1170,9 @@
             item.extField.packingSpecification
           );
           this.$set(parasm, 'customerMark', this.customerMark);
+          if(item.purchaseOrigins?.length>0){
+            item.purchaseOrigins=item.purchaseOrigins.map(val=>val+'')
+          }
           this.$set(parasm, 'provenance', item.purchaseOrigins || []);
           if (idx == -1) {
             this.form.datasource.push(row);

+ 1 - 1
src/BIZComponents/inventoryTableDetails.vue

@@ -330,7 +330,7 @@
             label: '产地',
             slot: 'provenance',
             align: 'center',
-            show:this.contractBookType==2,
+            // show:this.contractBookType==2,
             minWidth: 200,
             showOverflowTooltip: true,
             formatter: (row, column) => {

+ 10 - 0
src/api/bpm/components/saleManage/contact.js

@@ -104,3 +104,13 @@ export async function cancel(data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+/**
+ * 获取供应商最小订购数量
+ */
+export async function listByContactId(data) {
+  const res = await request.post('/eom/contactproduct/listByContactId',  data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 18 - 6
src/views/bpm/collaborative/index.vue

@@ -84,9 +84,9 @@
                         </el-form-item>
                       </el-col>
                       <el-col v-bind="{ span: 10 }">
-                        <el-form-item label="创建时间:" prop="createTime" label-width="90px">
+                        <el-form-item label="创建时间:" prop="createTime1" label-width="90px">
                           <el-date-picker
-                            v-model="params.createTime"
+                            v-model="createTime1"
                             style="width: 100%"
                             value-format="yyyy-MM-dd HH:mm:ss"
                             type="daterange"
@@ -243,9 +243,9 @@
                         </el-form-item>
                       </el-col>
                       <el-col v-bind="{ span: 6 }">
-                        <el-form-item label="创建时间:" prop="createTime" label-width="90px">
+                        <el-form-item label="创建时间:" prop="createTime1" label-width="90px">
                           <el-date-picker
-                            v-model="params.createTime"
+                            v-model="createTime1"
                             style="width: 100%"
                             value-format="yyyy-MM-dd HH:mm:ss"
                             type="daterange"
@@ -399,9 +399,9 @@
                         </el-form-item>
                       </el-col>
                       <el-col v-bind="{ span: 6 }">
-                        <el-form-item label="创建时间:" prop="createTime" label-width="90px">
+                        <el-form-item label="创建时间:" prop="createTime1" label-width="90px">
                           <el-date-picker
-                            v-model="params.createTime"
+                            v-model="createTime1"
                             style="width: 100%"
                             value-format="yyyy-MM-dd HH:mm:ss"
                             type="daterange"
@@ -546,6 +546,7 @@ export default {
       params: {...defaultParams},
       statusList: [],
       formColumnList: [],
+      createTime1:[]
     }
   },
   computed: {
@@ -836,11 +837,14 @@ export default {
     },
     /* 表格数据源 */
     async datasource({page, limit, where, order}) {
+     let [createTimeBegin,createTimeEnd]=this.createTime1||[]
+
       let data = await getProcessInstancePage({
         pageNo: page,
         pageSize: limit,
         ...this.params,
         processType: '1',
+        createTimeBegin,createTimeEnd
       });
       data = data.list.map(item => {
         return {
@@ -864,12 +868,14 @@ export default {
     /*  重置 */
     reset() {
       this.params = {...defaultParams};
+      this.createTime1=[]
       this.params.formId = this.defaultTemplateList[0]?.id
       this.params.dictType = this.dictList['collaborative_type'][0].value;
       this.reload();
     },
     /* 表格数据源 */
     async deptDatasource({page, limit, where, order}) {
+      let [createTimeBegin,createTimeEnd]=this.createTime1||[]
       let data = await getProcessInstanceDeptPage({
         pageNo: page,
         pageSize: limit,
@@ -891,17 +897,21 @@ export default {
       let find = this.defaultTemplateList.find(item => item.id == this.params.formId) || {};
       let makingJson = JSON.parse(find.formJson.makingJson) || {}
       this.formColumnList = makingJson.list
+
       this.$refs.deptTable.reload({page: 1, where});
     },
     /*  重置 */
     deptReset() {
       this.params = {...defaultParams};
+      this.createTime1=[]
       this.params.formId = this.defaultTemplateList[0]?.id
       this.params.dictType = this.dictList['collaborative_type'][0].value;
       this.deptReload();
     },
     /* 表格数据源 */
     async noticeDatasource({page, limit, where, order}) {
+      let [createTimeBegin,createTimeEnd]=this.createTime1||[]
+
       let data = await getProcessInstanceNoticePage({
         pageNo: page,
         pageSize: limit,
@@ -928,6 +938,8 @@ export default {
     /*  重置 */
     noticeReset() {
       this.params = {...defaultParams};
+      this.createTime1=[]
+
       this.params.formId = this.defaultTemplateList[0]?.id
       this.params.dictType = this.dictList['collaborative_type'][0].value;
       this.noticeReload();

+ 2 - 2
src/views/bpm/handleTask/components/businessOpportunity/addOpportunityDialog.vue

@@ -118,7 +118,7 @@
         </el-col>
       </el-row>
     </el-form>
-    <headerTitle title="品清单"></headerTitle>
+    <headerTitle title="品清单"></headerTitle>
     <inventoryTable
       :isCustomerMark="false"
       ref="inventoryTable"
@@ -424,7 +424,7 @@
           });
 
           if (this.$refs.inventoryTable.getTableValue().length == 0) {
-            this.$message.warning('品清单不能为空');
+            this.$message.warning('品清单不能为空');
 
             return;
           }

+ 2 - 2
src/views/bpm/handleTask/components/businessOpportunity/opportunityDetailDialog.vue

@@ -78,7 +78,7 @@
       </el-row>
     </el-form>
 
-    <headerTitle title="品清单"></headerTitle>
+    <headerTitle title="品清单"></headerTitle>
 
     <inventoryTable
       pageName="businessOpportunity"
@@ -422,7 +422,7 @@
         try {
           await this.getValidate();
           if (this.$refs.inventoryTable.getTableValue().length == 0) {
-            this.$message.warning('品清单不能为空');
+            this.$message.warning('品清单不能为空');
 
             return;
           }

+ 17 - 17
src/views/bpm/handleTask/components/businessOpportunity/submit.vue

@@ -230,24 +230,24 @@
           if (!data) {
             return;
           }
-          let requiredFiled = [
-            {
-              filed: 'singleWeight',
-              name: '单重'
-            }
-          ];
-          let list = [];
-          data?.productList?.forEach((item) => {
-            requiredFiled.forEach((i) => {
-              if (!item[i.filed] && item[i.filed] !== 0) {
-                list.push(i.name);
-              }
-            });
-          });
+          // let requiredFiled = [
+          //   {
+          //     filed: 'singleWeight',
+          //     name: '单重'
+          //   }
+          // ];
+          // let list = [];
+          // data?.productList?.forEach((item) => {
+          //   requiredFiled.forEach((i) => {
+          //     if (!item[i.filed] && item[i.filed] !== 0) {
+          //       list.push(i.name);
+          //     }
+          //   });
+          // });
 
-          if (list.length) {
-            return this.$message.warning('请输入' + list.join(','));
-          }
+          // if (list.length) {
+          //   return this.$message.warning('请输入' + list.join(','));
+          // }
           await UpdateInformation(data);
         }
         //和销售主管审批

+ 1 - 1
src/views/bpm/handleTask/components/contractBook/detailDialog.vue

@@ -227,7 +227,7 @@
         </el-col>
       </el-row>
     </el-form>
-    <headerTitle title="品清单"></headerTitle>
+    <headerTitle title="品清单"></headerTitle>
 
     <inventoryTabledetail
       ref="inventoryTabledetailRef"

+ 24 - 73
src/views/bpm/handleTask/components/financialManage/invoiceManage/components/addOrEditDialog.vue

@@ -5,11 +5,7 @@
       <el-row :gutter="12">
         <el-row :gutter="12">
           <el-col :span="12">
-            <el-form-item
-              label="发票类型"
-              prop="type"
-              
-            >
+            <el-form-item label="发票类型" prop="type">
               <el-select
                 v-model="form.type"
                 @change="handleSelType"
@@ -51,11 +47,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item
-              label="金额"
-              prop="amount"
-              
-            >
+            <el-form-item label="金额" prop="amount">
               <el-input-number
                 v-model="form.amount"
                 :precision="2"
@@ -68,11 +60,7 @@
           </el-col>
         </el-row>
         <el-col :span="12">
-          <el-form-item
-            label="申请部门"
-            prop="applyDeptId"
-            
-          >
+          <el-form-item label="申请部门" prop="applyDeptId">
             <ele-tree-select
               :disabled="taskDefinitionKey != 'starter'"
               clearable
@@ -87,11 +75,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item
-            label="申请人"
-            prop="applyUserId"
-            
-          >
+          <el-form-item label="申请人" prop="applyUserId">
             <personSelect
               :disabled="taskDefinitionKey != 'starter'"
               ref="directorRef"
@@ -100,9 +84,9 @@
             />
           </el-form-item>
         </el-col>
- 
+
         <el-col :span="12">
-          <el-form-item label="预计开票日期" >
+          <el-form-item label="预计开票日期">
             <el-date-picker
               :disabled="taskDefinitionKey != 'starter'"
               style="width: 100%"
@@ -118,7 +102,6 @@
             v-if="taskDefinitionKey != 'starter'"
             label="会计科目"
             prop="accountingSubjectId"
-            
           >
             <ele-tree-select
               clearable
@@ -150,11 +133,7 @@
       <headerTitle title="开票信息"></headerTitle>
       <el-row :gutter="12">
         <el-col :span="12">
-          <el-form-item
-            label="公司名称"
-            prop="companyName"
-            
-          >
+          <el-form-item label="公司名称" prop="companyName">
             <el-input
               v-model="form.companyName"
               :disabled="taskDefinitionKey != 'starter'"
@@ -162,25 +141,22 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item
-            label="统一社会信用代码"
-            prop="companyUsc"
-            
-          >
+          <el-form-item label="发票类型" prop="category">
+            <el-radio :disabled="taskDefinitionKey != 'starter'" v-model="form.category" :label="2">增值税普通发票</el-radio>
+            <el-radio :disabled="taskDefinitionKey != 'starter'" v-model="form.category" :label="1">增值税专用发票</el-radio>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="统一社会信用代码" prop="companyUsc">
             <el-input
               v-model="form.companyUsc"
               :disabled="taskDefinitionKey != 'starter'"
             ></el-input>
           </el-form-item>
         </el-col>
-      </el-row>
-      <el-row :gutter="12">
+
         <el-col :span="12">
-          <el-form-item
-            label="开户银行"
-            prop="companyBankBranchNo"
-            
-          >
+          <el-form-item label="开户银行" prop="companyBankBranchNo">
             <el-input
               v-model="form.companyBankBranchNo"
               :disabled="taskDefinitionKey != 'starter'"
@@ -188,26 +164,16 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item
-            label="银行账户"
-            prop="companyBankAccount"
-            
-          >
+          <el-form-item label="银行账户" prop="companyBankAccount">
             <el-input
               v-model="form.companyBankAccount"
               :disabled="taskDefinitionKey != 'starter'"
             ></el-input>
           </el-form-item>
         </el-col>
-      </el-row>
 
-      <el-row :gutter="12">
         <el-col :span="12">
-          <el-form-item
-            label="单位地址"
-            prop="companyAddress"
-            
-          >
+          <el-form-item label="单位地址" prop="companyAddress">
             <el-input
               v-model="form.companyAddress"
               :disabled="taskDefinitionKey != 'starter'"
@@ -215,11 +181,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item
-            label="电话号码"
-            prop="companyTel"
-            
-          >
+          <el-form-item label="电话号码" prop="companyTel">
             <el-input
               v-model="form.companyTel"
               :disabled="taskDefinitionKey != 'starter'"
@@ -231,11 +193,7 @@
 
       <el-row :gutter="12">
         <el-col :span="12">
-          <el-form-item
-            label="收票人"
-            prop="receiverName"
-            
-          >
+          <el-form-item label="收票人" prop="receiverName">
             <el-input
               v-model="form.receiverName"
               :disabled="taskDefinitionKey != 'starter'"
@@ -243,11 +201,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item
-            label="收票人地址"
-            prop="receiverAddress"
-            
-          >
+          <el-form-item label="收票人地址" prop="receiverAddress">
             <el-input
               v-model="form.receiverAddress"
               :disabled="taskDefinitionKey != 'starter'"
@@ -257,11 +211,7 @@
       </el-row>
       <el-row :gutter="12">
         <el-col :span="12">
-          <el-form-item
-            label="联系方式"
-            prop="receiverTel"
-            
-          >
+          <el-form-item label="联系方式" prop="receiverTel">
             <el-input
               v-model="form.receiverTel"
               :disabled="taskDefinitionKey != 'starter'"
@@ -349,7 +299,8 @@
           remark: '',
           settlementAccountId: '',
           settlementAccountName: '',
-          type: ''
+          type: '',
+          category: 1
         },
         feeTypeList: [],
         accountingSubjectList: [],

+ 8 - 5
src/views/bpm/handleTask/components/financialManage/invoiceManage/components/detailDialog.vue

@@ -108,6 +108,12 @@
             <el-input disabled v-model="form.companyName"></el-input>
           </el-form-item>
         </el-col>
+        <el-col :span="12">
+          <el-form-item label="发票类型" prop="category">
+            <el-radio disabled v-model="form.category" :label="2">增值税普通发票</el-radio>
+            <el-radio disabled v-model="form.category" :label="1">增值税专用发票</el-radio>
+          </el-form-item>
+        </el-col>
         <el-col :span="12">
           <el-form-item
             label="统一社会信用代码"
@@ -117,8 +123,7 @@
           </el-form-item>
         </el-col>
 
-      </el-row>
-      <el-row :gutter="12">
+    
         <el-col :span="12">
           <el-form-item
             label="开户银行"
@@ -135,9 +140,7 @@
             <el-input disabled v-model="form.companyBankAccount"></el-input>
           </el-form-item>
         </el-col>
-      </el-row>
-
-      <el-row :gutter="12">
+   
         <el-col :span="12">
           <el-form-item
             label="电话号码"

+ 27 - 22
src/views/bpm/handleTask/components/financialManage/invoiceManage/components/tableInfo.vue

@@ -123,42 +123,47 @@
             slot: 'measuringUnit',
             align: 'center'
           },
-          {
-            width: 150,
-            prop: 'pricingWay',
-            label: '计价方式',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            },
-            align: 'center'
+          // {
+          //   width: 150,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   },
+          //   align: 'center'
 
-          },
+          // },
           {
             minWidth: 80,
             prop: 'singlePrice',
-            label: '单价',
+            label: '单价(¥)',
             slot: 'singlePrice',
             align: 'center'
           },
-          {
-            width: 80,
-            prop: 'singleWeight',
-            label: '单量',
-            align: 'center'
-          },
+          // {
+          //   width: 80,
+          //   prop: 'singleWeight',
+          //   label: '单量',
+          //   align: 'center'
+          // },
           
           {
             minWidth: 80,
             prop: 'totalPrice',
-            label: '金额',
+            label: '金额(¥)',
             slot: 'totalPrice',
             align: 'center'
+          },
+          {
+            minWidth: 80,
+            prop: 'taxRate',
+            label: '税率',
+            align: 'center'
           }
-
           // {
           //   width: 100,
           //   prop: 'sourceType',

+ 1 - 1
src/views/bpm/handleTask/components/financialManage/payableManage/components/detailDialog.vue

@@ -64,7 +64,7 @@
             label="来源类型"
             prop="sourceType"
             style="margin-bottom: 22px">
-            <el-input value="销售订单" disabled></el-input>
+            <el-input :value="form.sourceType==2?'合同':form.sourceType==3?'采购订单':'对账单'" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">

+ 1 - 1
src/views/bpm/handleTask/components/financialManage/receivableManage/components/detailDialog.vue

@@ -64,7 +64,7 @@
             label="来源类型"
             prop="sourceType"
             style="margin-bottom: 22px">
-            <el-input value="销售订单" disabled></el-input>
+            <el-input :value="form.sourceType==2?'合同':form.sourceType==3?'销售订单':'对账单'" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">

+ 107 - 84
src/views/bpm/handleTask/components/inquiryManage/addDialog.vue

@@ -22,9 +22,7 @@
             prop="inquiryName"
             style="margin-bottom: 22px"
           >
-            <el-input
-              v-model="form.inquiryName"
-            ></el-input>
+            <el-input v-model="form.inquiryName"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -47,13 +45,13 @@
         </el-col>
         <el-col :span="12">
           <el-form-item prop="files" label="附件">
-            <fileMain v-model="form.files" ></fileMain>
-<!--            <fileUpload-->
-<!--              v-model="form.files"-->
-<!--              module="main"-->
-<!--              :showLib="false"-->
-<!--              :limit="1"-->
-<!--            />-->
+            <fileMain v-model="form.files"></fileMain>
+            <!--            <fileUpload-->
+            <!--              v-model="form.files"-->
+            <!--              module="main"-->
+            <!--              :showLib="false"-->
+            <!--              :limit="1"-->
+            <!--            />-->
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -71,7 +69,7 @@
         </el-col>
       </el-row>
     </el-form>
-    <headerTitle title="品清单" style="margin-top: 15px"></headerTitle>
+    <headerTitle title="品清单" style="margin-top: 15px"></headerTitle>
     <el-button type="primary" @click="openSupplier">新增供应商</el-button>
     <inventoryTable
       ref="inventoryTable"
@@ -86,7 +84,6 @@
       @changeInquiryManageList="changeInquiryManageList"
       @supplierSelect="supplierSelect"
       @supplierManageChange="supplierManageChange"
-
     ></inquiryManageList>
     <supplierManageDialog
       ref="supplierManageDialogRef"
@@ -101,8 +98,6 @@
       :obj="item"
       :isUpdate="isUpdate"
       @deliveryDateChange="deliveryDateChange"
-
-
     ></inquiryTable>
   </div>
 </template>
@@ -116,7 +111,7 @@
 
   import fileUpload from '@/components/upload/fileUpload';
   import dictMixins from '@/mixins/dictMixins';
-  import {deepClone} from "@/utils";
+  import { deepClone } from '@/utils';
   import { getplanDetail } from '@/api/bpm/components/purchasingManage/purchasePlanManage';
   import {
     getpurchaseinquiry,
@@ -126,9 +121,9 @@
   import { copyObj } from '@/utils/util';
 
   import { getFile } from '@/api/system/file';
-  import {contactQueryByCategoryIdsAPI} from "@/api/bpm/components/supplierManage/contact";
-  import {contactDetail} from "@/api/bpm/components/saleManage/contact";
-  import fileMain from "@/components/addDoc/index.vue";
+  import { contactQueryByCategoryIdsAPI } from '@/api/bpm/components/supplierManage/contact';
+  import { contactDetail } from '@/api/bpm/components/saleManage/contact';
+  import fileMain from '@/components/addDoc/index.vue';
 
   export default {
     mixins: [dictMixins],
@@ -170,8 +165,8 @@
         delDetailIds: [],
         supplierProducts: {},
         formDef,
-        rawList:[],
-        outputList:[],
+        rawList: [],
+        outputList: [],
 
         acceptUnpackList: [
           {
@@ -193,7 +188,7 @@
           ],
           inquiryName: [
             { required: true, message: '请输入询价单名称', trigger: 'blur' }
-          ],
+          ]
         },
 
         // 提交状态
@@ -222,9 +217,12 @@
         if (data) {
           this.form = data;
           this.supplierList = data.supplierList;
-          let supplierObj = await this.getSupplierObj(data.detailList,'productId');
+          let supplierObj = await this.getSupplierObj(
+            data.detailList,
+            'productId'
+          );
           data.detailList.forEach((item) => {
-            item.supplierList = supplierObj[item.productId] || []
+            item.supplierList = supplierObj[item.productId] || [];
           });
           this.list = [...data.detailList, ...data.rawList, ...data.outputList];
           this.rawList = data.rawList;
@@ -233,8 +231,7 @@
           this.$nextTick(() => {
             this.$refs.inventoryTable &&
               this.$refs.inventoryTable.putTableValue(data.detailList);
-              // this.setIsInquiry()
-
+            // this.setIsInquiry()
           });
           if (type == 'init') {
             this.getplanData(data.planId, type);
@@ -250,16 +247,16 @@
         fn(data);
       },
 
-      setIsInquiry() {
-        let supplierList = [];
+      setIsInquiry(supplierList) {
+        // let supplierList = [];
 
         this.$nextTick(() => {
-          this.supplierList.forEach((item) => {
-            supplierList.push(
-              this.$refs['inquiryTable' + item.supplierId][0].getTableValue()
-            );
-          });
-          this.$refs.inventoryTable.setIsInquiry(supplierList)
+          // this.supplierList.forEach((item) => {
+          //   supplierList.push(
+          //     this.$refs['inquiryTable' + item.supplierId][0].getTableValue()
+          //   );
+          // });
+          this.$refs.inventoryTable.setIsInquiry(supplierList);
         });
       },
       //获取计划详情
@@ -270,15 +267,18 @@
         this.outputList = data.outputDetailList;
         this.loading = false;
         if (data) {
-          let supplierObj = await this.getSupplierObj(data.detailList,'productId');
+          let supplierObj = await this.getSupplierObj(
+            data.detailList,
+            'productId'
+          );
           data.detailList.forEach((item) => {
             if (item.arrivalWay == 2 && item.arrivalBatch.length > 0) {
               item.expectReceiveDate =
                 item.arrivalBatch[item.arrivalBatch.length - 1].arriveDate;
             }
-            item.supplierList = supplierObj[item.productId] || []
-            if(item.supplierList.length === 1){
-              item.supplierIds = [item.supplierList[0].id]
+            item.supplierList = supplierObj[item.productId] || [];
+            if (item.supplierList.length === 1) {
+              item.supplierIds = [item.supplierList[0].id];
               // this.supplierSelect(item)
             }
           });
@@ -308,14 +308,14 @@
           });
         }
       },
-      async getSupplierObj(productList,queryName){
+      async getSupplierObj(productList, queryName) {
         try {
-          let categoryIds =  productList.map(item => item[queryName])
-          return await contactQueryByCategoryIdsAPI({categoryIds})
-        }catch (e) {
+          let categoryIds = productList.map((item) => item[queryName]);
+          return await contactQueryByCategoryIdsAPI({ categoryIds });
+        } catch (e) {
           return Promise.resolve({});
         }
-      } ,
+      },
       getValidate() {
         let promises = [];
         this.supplierList.forEach((item) => {
@@ -358,7 +358,6 @@
           (item) => item.supplierId != supplierId
         );
         // this.setIsInquiry()
-
       },
 
       //选择产品
@@ -372,25 +371,29 @@
       async supplierSelect(row) {
         let supplierIds = Object.keys(this.supplierProducts);
         const promises = [];
-        row.supplierIds.forEach(item => {
+        row.supplierIds.forEach((item) => {
           if (!supplierIds.includes(item)) {
             promises.push(contactDetail(item));
           } else {
-            this.productSetSupplier(this.supplierProducts[item], row)
+            this.productSetSupplier(this.supplierProducts[item], row);
           }
         });
-        Promise.all(promises).then(results => {
+        Promise.all(promises).then((results) => {
           results.forEach((data, index) => {
             this.supplierProducts[data.base.id] = data;
-            this.productSetSupplier(this.supplierProducts[data.base.id], row)
+            this.productSetSupplier(this.supplierProducts[data.base.id], row);
           });
         });
       },
       productSetSupplier(data, row) {
         let obj = deepClone(row);
-        obj.supplierProductName = data.productList.find(item => item.productCode == row.productCode)?.productName
-        obj.supplierProductCode = data.productList.find(item => item.productCode == row.productCode)?.productCode
-        obj.supplierName = data.base.name
+        obj.supplierProductName = data.productList.find(
+          (item) => item.productCode == row.productCode
+        )?.productName;
+        obj.supplierProductCode = data.productList.find(
+          (item) => item.productCode == row.productCode
+        )?.productCode;
+        obj.supplierName = data.base.name;
         let params = {
           ...data.base,
           supplierId: data.base.id,
@@ -402,22 +405,29 @@
           settlementModeName: '',
           taxRate: '',
           totalPrice: '',
-          resultList: [obj],
-        }
+          resultList: [obj]
+        };
         let supplierIds = this.supplierList.map((item) => item.supplierId);
-        let supplierIndex = supplierIds.indexOf(data.base.id)
+        let supplierIndex = supplierIds.indexOf(data.base.id);
         if (supplierIndex == -1) {
           this.supplierList.push(params);
         } else {
-          let isHave = this.supplierList[supplierIndex].resultList.some(item => item.productCode == obj.productCode)
+          let isHave = this.supplierList[supplierIndex].resultList.some(
+            (item) => item.productCode == obj.productCode
+          );
           if (!isHave) {
             // putTableValue
             //this.supplierList[supplierIndex].resultList.push(obj)
-            this.$set(this.supplierList[supplierIndex],'resultList',[ ...this.supplierList[supplierIndex].resultList,obj])
+            this.$set(this.supplierList[supplierIndex], 'resultList', [
+              ...this.supplierList[supplierIndex].resultList,
+              obj
+            ]);
             this.$nextTick(() => {
-              this.$refs['inquiryTable' + data.base.id][0]?.putTableValue(this.supplierList[supplierIndex].resultList)
+              this.$refs['inquiryTable' + data.base.id][0]?.putTableValue(
+                this.supplierList[supplierIndex].resultList
+              );
               this.$refs['inquiryTable' + data.base.id][0]?.getSpanArr();
-            })
+            });
           }
         }
       },
@@ -432,60 +442,73 @@
           item['settlementModeName'] = '';
           item['taxRate'] = '';
           item['totalPrice'] = '';
-          item['resultList'] = copyObj(this.$refs.inventoryTable.selection)
+          item['resultList'] = copyObj(this.$refs.inventoryTable.selection);
           item['resultList'].forEach((val) => {
             val['remark'] = '';
             item['deliveryDate'] = val.expectReceiveDate;
             val.supplierName = item.name;
           });
 
-          let supplierIndex = supplierIds.indexOf(item.supplierId)
+          let supplierIndex = supplierIds.indexOf(item.supplierId);
           if (supplierIndex == -1) {
             this.supplierList.push(item);
           } else {
             item['resultList'].forEach((val) => {
-              let isHave = this.supplierList[supplierIndex].resultList.some(i => i.productCode == val.productCode)
-              console.log(isHave,supplierIndex);
+              let isHave = this.supplierList[supplierIndex].resultList.some(
+                (i) => i.productCode == val.productCode
+              );
+              console.log(isHave, supplierIndex);
               if (!isHave) {
-
-                this.$set(this.supplierList[supplierIndex],'resultList',[ ...this.supplierList[supplierIndex].resultList,val])
-                this.$refs['inquiryTable' + item.id][0]?.putTableValue(this.supplierList[supplierIndex].resultList)
+                this.$set(this.supplierList[supplierIndex], 'resultList', [
+                  ...this.supplierList[supplierIndex].resultList,
+                  val
+                ]);
+                this.$refs['inquiryTable' + item.id][0]?.putTableValue(
+                  this.supplierList[supplierIndex].resultList
+                );
                 this.$nextTick(() => {
                   this.$refs['inquiryTable' + item.id][0]?.getSpanArr();
-                })
+                });
               }
-            })
+            });
           }
         });
       },
 
       async getTableValue() {
-        let supplierList = [];
-        this.setIsInquiry()
-        this.supplierList.forEach((item) => {
-          supplierList.push(
-            this.$refs['inquiryTable' + item.supplierId][0].getTableValue()
-          );
-        });
-        supplierList.forEach((item) => {
-          item.resultList.forEach((val) => {
-            val['technicalDrawings'] = [];
-          });
-        });
-
-        this.form.detailList = this.list;
-        this.form.supplierList = supplierList;
-
         try {
           await this.getValidate();
+          let supplierList = [];
+          this.supplierList.forEach((item) => {
+            supplierList.push(
+              this.$refs['inquiryTable' + item.supplierId][0].getTableValue()
+            );
+          });
+          this.setIsInquiry(supplierList);
+
+          let is = false;
+          supplierList.forEach((item) => {
+            item.resultList.forEach((val) => {
+              val['technicalDrawings'] = [];
+              if (val.minimumOrderQuantity > val.totalCount) {
+                is = true;
+              }
+            });
+          });
+          if (is) {
+            this.$message.warning('购买数量不能小于最低订购量!');
+            return;
+          }
+          this.form.detailList = this.list;
+          this.form.supplierList = supplierList;
           // 表单验证通过,执行保存操作
           this.loading = true;
 
           if (this.$refs.inventoryTable.getTableValue().length == 0) {
-            this.$message.warning('产品清单不能为空');
+            this.$message.warning('品清单不能为空');
             return;
           }
-          
+
           this.form.supplierList.forEach((item) => {
             item.resultList = [
               ...item.resultList,

+ 1 - 1
src/views/bpm/handleTask/components/inquiryManage/detailDialog.vue

@@ -57,7 +57,7 @@
       </el-row>
     </el-form>
 
-    <headerTitle title="品清单" style="margin-top: 15px"></headerTitle>
+    <headerTitle title="品清单" style="margin-top: 15px"></headerTitle>
     <ele-pro-table
       ref="table"
       :needPage="false"

+ 39 - 7
src/views/bpm/handleTask/components/inquiryManage/inquiryTable.vue

@@ -326,7 +326,6 @@
             dictName="产地"
             clearable
             :disabled="status == 'Detail'"
-
             v-model="scope.row.provenance"
             multiple
           >
@@ -357,7 +356,7 @@
   import { getFile } from '@/api/system/file';
   import fileMain from '@/components/addDoc/index.vue';
   import { getInventoryTotalAPI } from '@/api/bpm/components/wms';
-
+  import { listByContactId } from '@/api/bpm/components/saleManage/contact';
   // import headList from '@/views/saleManage/businessOpportunity/components/headList.vue';
   const defaultColumns = [
     {
@@ -470,6 +469,12 @@
       headerSlot: 'isRequired',
       align: 'center'
     },
+    {
+      minWidth: 120,
+      prop: 'minimumOrderQuantity',
+      label: '最低订购量',
+      align: 'center'
+    },
     {
       minWidth: 80,
       prop: 'availableCountBase',
@@ -681,12 +686,12 @@
       this.setDeliveryDays();
       this.setIsInquiry();
       this.getInventoryTotalAPI();
-
+      this.getListByContactId()
     },
     methods: {
       //计算交期
       setDeliveryDays() {
-        this.form.resultList.forEach((item,index) => {
+        this.form.resultList.forEach((item, index) => {
           let day =
             this.form.deliveryDate &&
             (new Date(this.form.deliveryDate).getTime() -
@@ -696,7 +701,11 @@
               60 /
               24;
 
-              this.$set(this.form.resultList[index],'deliveryDays', Math.ceil(day) || 1)
+          this.$set(
+            this.form.resultList[index],
+            'deliveryDays',
+            Math.ceil(day) || 1
+          );
         });
         this.$forceUpdate();
       },
@@ -730,6 +739,30 @@
           );
         });
       },
+      //获取最新订购量
+      async getListByContactId() {
+        let productIds = this.form.resultList
+          .filter((item) => item.productId)
+          .map((item) => item.productId);
+        if (productIds?.length > 0) {
+          const data = await listByContactId({
+            contactId: this.form.supplierId,
+            productIds
+          });
+          this.form.resultList
+            .filter((item) => item.productCode)
+            .forEach((item, index) => {
+              let pData = data.find((val) => val.productId == item.productId);
+              if (pData) {
+                this.$set(
+                  this.form.resultList[index],
+                  'minimumOrderQuantity',
+                  pData.minimumOrderQuantity
+                );
+              }
+            });
+        }
+      },
       getSpanArr() {
         let pos = 0;
         this.spanArr = [];
@@ -781,7 +814,7 @@
         });
       },
       setIsInquiry() {
-        return
+        return;
         this.$emit('setIsInquiry');
       },
       deliveryDateChange(row) {
@@ -851,7 +884,6 @@
         this.form.resultList = copyObj(data);
         this.setDeliveryDays();
         this.setIsInquiry();
-        
       },
 
       remove(productCode) {

+ 1 - 1
src/views/bpm/handleTask/components/inquiryManage/inventoryTable.vue

@@ -581,7 +581,7 @@
             //供应商列表
             item.resultList.forEach((val) => {
               //供应商产品
-              if (val.productCode == productItem.productCode) {
+              if (val.productCode == productItem.productCode&&val.batchNo == productItem.batchNo&&val.taskId == productItem.taskId) {
                 totalCountS.push(
                   Number(val.totalCount || 0) +
                     Number(productItem.doneTotalCount || 0)

+ 1 - 1
src/views/bpm/handleTask/components/outsourcedWarehousingNoProcurement/detailDialog.vue

@@ -122,7 +122,7 @@
         </el-row>
       </el-form>
 
-      <headerTitle title="品清单"></headerTitle>
+      <headerTitle title="品清单"></headerTitle>
       <ele-pro-table
         ref="table"
         :needPage="false"

+ 25 - 19
src/views/bpm/handleTask/components/purchaseOrder/accountstatement/inventoryTable.vue

@@ -60,8 +60,11 @@
 
 </template>
 <script>
+import dictMixins from '@/mixins/dictMixins';
 
 export default {
+  mixins: [dictMixins],
+
   components: {},
   props: ['datasource', 'dataForm','dialogType', 'taskDefinitionKey', 'priceObj'],
   computed: {
@@ -115,25 +118,23 @@ export default {
             slot: 'modelType',
             showOverflowTooltip: true
           },
-          // {
-          //   minWidth: 100,
-          //   prop: 'orderNo',
-          //   label: '销售订单编码',
-          //   align: 'center',
-          //   slot: 'orderNo',
-          //   showOverflowTooltip: true
-          // },
-          // {
-          //   minWidth: 100,
-          //   prop: 'pricingWay',
-          //   label: '计价方式',
-          //   align: 'center',
-          //   slot: 'pricingWay',
-          //   showOverflowTooltip: true,
-          //   formatter: (_row, _column, cellValue) => {
-          //     return _row.pricingWay == 1 ? '按数量计价' : '按重量计价'
-          //   }
-          // },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 100,
             prop: 'totalCount',
@@ -198,6 +199,8 @@ export default {
             slot: 'discountTotalPrice',
             align: 'center',
           },
+       
+          
           // {
           //   minWidth: 100,
           //   prop: 'discountTotalPrice',
@@ -289,6 +292,9 @@ export default {
     };
   },
   watch: {},
+  created(){
+    this.requestDict('产地');
+  },
   methods: {
     handleEditCost(row, p1, p2) {
       if (!row[p1]) return row[p2] = row.totalPrice.toFixed(2)

+ 28 - 10
src/views/bpm/handleTask/components/purchaseOrder/accountstatement/page.vue

@@ -11,16 +11,29 @@
         <el-row style="font-weight: 700;color: red">
           <el-divider direction="vertical"></el-divider>
           <span>总金额:</span>
-          <span>{{ dataForm.amountTotalPrice || 0 }}</span>
-          <el-divider direction="vertical"></el-divider>
-          <span>应收金额:</span>
-          <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
-          <el-divider direction="vertical"></el-divider>
-          <span>应付金额:</span>
-          <span>{{ dataForm.amountPayablePrice || 0 }}</span>
+            <span>{{ dataForm.amountTotalPrice || 0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>应收金额:</span>
+            <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>已收金额:</span>
+            <span>{{ dataForm.amountReceivablePass||0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>应付金额:</span>
+            <span>{{ dataForm.amountPayablePrice || 0 }}</span>
+      
+            <el-divider direction="vertical"></el-divider>
+            <span>已付金额:</span>
+            <span>{{ dataForm.amountPayablePass||0 }}</span>
         </el-row>
       </template>
     </headerTitle>
+    <recorpayTableList
+      ref="recorpayListRef"
+      :dataForm="dataForm"
+      :recorpayList.sync="recorpayList"
+      :dialogType="permissionType"
+    ></recorpayTableList>
     <inventoryTable ref="inventoryTableref" :priceObj="priceObj" :dataForm="dataForm" :datasource.sync="datasource"
                     :dialogType="permissionType"
                     :taskDefinitionKey="taskDefinitionKey"></inventoryTable>
@@ -33,13 +46,14 @@
 import InventoryTable from "./inventoryTable.vue";
 import purchaseForm from "./purchaseForm.vue";
 import {getSearchMergeListByTypeAPI, infoAccountStatementAPI,} from "@/api/bpm/components/saleManage/saleorder";
+import recorpayTableList from '@/views/bpm/handleTask/components/saleOrder/accountstatement/recorpayTableList.vue';
 
 export default {
   name: 'page',
   props: ['permissionType', 'businessId', 'taskDefinitionKey'],
   components: {
     InventoryTable,
-    purchaseForm
+    purchaseForm,recorpayTableList
   },
   data() {
     return {
@@ -65,6 +79,7 @@ export default {
         repliedFiles: [],
         BQYSKZE: undefined,
       },
+      recorpayList:[],
       title: '',
       quarterList: {
         '一季度': ['-01-01 00:00:00', '-03-31 12:59:59'],
@@ -109,6 +124,7 @@ export default {
     async getInfo(id) {
       let data = await infoAccountStatementAPI(id)
       this.datasource = data?.orderList || []
+      this.recorpayList=data?.recorpayList||[]
       this.dataForm = data
       // this.priceObj.amountNotInvoicedPrice = data.amountNotInvoicedPrice
       switch (this.dataForm.dateType) {
@@ -170,8 +186,10 @@ export default {
       this.dataForm = {
         ...this.dataForm,
         amountPayablePrice: data.amountPayablePrice,
-        amountReceivablePrice: data.amountReceivablePrice,
-        amountTotalPrice: data.amountTotalPrice,
+          amountReceivablePrice: data.amountReceivablePrice,
+          amountTotalPrice: data.amountTotalPrice,
+          amountPayablePass: data.amountPayablePass,
+          amountReceivablePass: data.amountReceivablePass,
 
       }
       if (!this.datasource.length) this.$message.warning('暂无订单信息')

+ 6 - 6
src/views/bpm/handleTask/components/purchaseOrder/detailDialog.vue

@@ -533,12 +533,12 @@
                 : '';
             }
           },
-          {
-            width: 120,
-            prop: 'deliveryDays',
-            label: '交期(天)',
-            slot: 'deliveryDays'
-          },
+          // {
+          //   width: 120,
+          //   prop: 'deliveryDays',
+          //   label: '交期(天)',
+          //   slot: 'deliveryDays'
+          // },
           {
             width: 160,
             prop: 'deliveryDeadline',

+ 3 - 3
src/views/bpm/handleTask/components/purchaseOrder/invoice/addInvoiceDialog.vue

@@ -112,7 +112,7 @@
             </el-date-picker>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <!-- <el-col :span="12">
           <el-form-item
             label="计价方式"
             style="margin-bottom: 22px">
@@ -121,7 +121,7 @@
               <el-option label="按重量计费" :value="2"></el-option>
             </el-select>
           </el-form-item>
-        </el-col>
+        </el-col> -->
       </el-row>
       <el-row :gutter="20">
         <el-col :span="12">
@@ -138,7 +138,7 @@
       </el-row>
     </el-form>
 
-    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
+    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
     <inventoryTable
       :pricingWay="form.pricingWay"
       :sourceType="form.sourceType"

+ 12 - 12
src/views/bpm/handleTask/components/purchaseOrder/invoice/detailDialog.vue

@@ -19,16 +19,16 @@
           </receiptInfo>
         </div>
         <div v-if="item.key == 'inoutBound'">
-          <add ref="modalRefs" :form="form" :sourceBizNo="form.receiveNo" :saleProductList="form.productList"
+          <add ref="inoutBoundRef" :form="form" :sourceBizNo="form.receiveNo" :saleProductList="form.productList"
             :bizType="2" :detailProductList="detailData.productList"></add>
         </div>
         <div v-if="item.key == 'inoutBoundView'">
-          <detailDialog ref="modalRefs" :bizType="2" :businessId="form.receiveNo" :isUpload="isUpload">
+          <detailDialog ref="inoutBoundViewRef" :bizType="2" :businessId="form.receiveNo" :isUpload="isUpload">
           </detailDialog>
         </div>
         <div v-if="item.key == 'inoutBoundEdit'">
           <procurementWarehousing :businessId="form.receiveNo" :qualityInspectionItems="qualityInspectionItems"
-            ref="modalRefs">
+            ref="inoutBoundEditRef">
           </procurementWarehousing>
         </div>
       </div>
@@ -181,7 +181,7 @@ export default {
       // }
     },
     save(data) {
-      this.$refs.modalRefs[1].handleSave(data);
+      this.$refs.inoutBoundRef?.[0].handleSave(data);
     },
     success() {
       // this.$parent.handleClose()
@@ -192,22 +192,22 @@ export default {
     // 判断质检状态是否全部已检
     allListChecked() {
       return (
-        this.$refs.modalRefs[3] &&
-        this.$refs.modalRefs[3].getStatus()
+        this.$refs.inoutBoundEditRef?.[0] &&
+        this.$refs.inoutBoundEditRef[0].getStatus()
       );
     },
     async getTableValue() {
-      console.log(this.$refs.modalRefs[1], 'aaaaaaaad')
+      console.log(this.$refs)
       return {
         form: this.form,
-        returnStorageData: this.$refs.modalRefs[1].getReturnStorage(),
+        returnStorageData: this.$refs.inoutBoundRef?.[0]&&this.$refs.inoutBoundRef[0].getReturnStorage(),
         isAllChecked:
-          this.$refs.modalRefs[3] &&
-          (await this.$refs.modalRefs[3].getStatus()),
+          this.$refs.inoutBoundEditRef?.[0] &&
+          (await this.$refs.inoutBoundEditRef[0].getStatus()),
 
         qualityInspector:
-          (this.$refs.modalRefs[2] &&
-            this.$refs.modalRefs[2].getQualityFile()) ||
+          (this.$refs.inoutBoundViewRef?.[0] &&
+            this.$refs.inoutBoundViewRef[0].getQualityFile()) ||
           {}
         // qualityInspector:
         //   (this.$refs.detailDialog &&

+ 4 - 1
src/views/bpm/handleTask/components/purchaseOrder/invoice/receiptInfo.vue

@@ -77,7 +77,7 @@
           </el-form-item> -->
       </el-row>
     </el-form>
-    <div class="fontSize" style="margin-bottom: 12px;">品清单</div>
+    <div class="fontSize" style="margin-bottom: 12px;">品清单</div>
     <ele-pro-table ref="table" :needPage="false" :columns="columns" :toolkit="[]" :datasource="detailData.productList"
       row-key="id">
       <template v-slot:technicalDrawings="{ row }">
@@ -91,10 +91,13 @@
 
 <script>
 import { reviewStatusEnum } from '@/enum/dict';
+import dictMixins from '@/mixins/dictMixins';
 
 import fileMain from '@/components/addDoc/index.vue';
 export default {
   components: { fileMain },
+  mixins: [dictMixins],
+
   props: {
     form: { type: Object, default: () => { } },
     detailData: { type: Object, default: () => { } },

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/addOrEditDialog.vue

@@ -123,7 +123,7 @@
 
     </el-form>
 
-    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
+    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
     <inventoryTable
       :pricingWay="form.pricingWay"
       ref="inventoryTableref"

+ 3 - 1
src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/detailDialog.vue

@@ -99,7 +99,7 @@
       </el-row>
     </el-form>
 
-    <headerTitle title="品清单"></headerTitle>
+    <headerTitle title="品清单"></headerTitle>
     <ele-pro-table
       ref="table"
       :needPage="false"
@@ -136,9 +136,11 @@
   import { getPurchaseOutSourceSendDetailAPI } from '@/api/bpm/components/purchasingManage/outSourceSend';
   import fileMain from '@/components/addDoc/index.vue';
   import { mapActions } from 'vuex';
+  import dictMixins from '@/mixins/dictMixins';
 
   export default {
     components: { fileMain },
+    mixins: [dictMixins],
     props: {
       businessId: {
         default: ''

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/outSourceSendCk/addOrEditDialog.vue

@@ -107,7 +107,7 @@
 
     </el-form>
 
-    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
+    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
     <inventoryTable
       :pricingWay="form.pricingWay"
       ref="inventoryTableref"

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/outsourceSendReturnGoods/addReturnGoodsDialog.vue

@@ -83,7 +83,7 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
+      <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
       <inventoryTable
         :pricingWay="form.pricingWay"
         :sourceType="form.sourceType"

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/outsourceSendReturnGoods/detailDialog.vue

@@ -154,7 +154,7 @@
         </el-row>
       </el-form>
 
-      <headerTitle title="品清单"></headerTitle>
+      <headerTitle title="品清单"></headerTitle>
       <ele-pro-table
         ref="table"
         :needPage="false"

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/returnGoods/addReturnGoodsDialog.vue

@@ -83,7 +83,7 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
+      <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
       <inventoryTable
         :pricingWay="form.pricingWay"
         :sourceType="form.sourceType"

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog.vue

@@ -147,7 +147,7 @@
         </el-row>
       </el-form>
 
-      <headerTitle title="品清单"></headerTitle>
+      <headerTitle title="品清单"></headerTitle>
       <ele-pro-table
         ref="table"
         :needPage="false"

+ 1 - 1
src/views/bpm/handleTask/components/quotation/addDialog.vue

@@ -252,7 +252,7 @@
         </el-col>
       </el-row>
 
-      <headerTitle title="报价单品清单"></headerTitle>
+      <headerTitle title="报价单品清单"></headerTitle>
       <inventoryTable
         ref="inventoryTable"
         :isCustomerMark="false"

+ 1 - 1
src/views/bpm/handleTask/components/quotation/detailDialog.vue

@@ -174,7 +174,7 @@
       </el-row>
     </el-form>
 
-    <headerTitle title="报价单品清单"></headerTitle>
+    <headerTitle title="报价单品清单"></headerTitle>
 
     <inventoryTable
       ref="inventoryTable"

+ 23 - 8
src/views/bpm/handleTask/components/saleOrder/accountstatement/inventoryTable.vue

@@ -61,8 +61,11 @@
 
 </template>
 <script>
+import dictMixins from '@/mixins/dictMixins';
 
 export default {
+  mixins: [dictMixins],
+
   components: {},
   props: ['datasource', 'dataForm','dialogType', 'taskDefinitionKey', 'priceObj'],
   computed: {
@@ -127,14 +130,23 @@ export default {
             slot: 'modelType',
             showOverflowTooltip: true
           },
-          // {
-          //   minWidth: 100,
-          //   prop: 'orderNo',
-          //   label: '销售订单编码',
-          //   align: 'center',
-          //   slot: 'orderNo',
-          //   showOverflowTooltip: true
-          // },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 100,
             prop: 'pricingWay',
@@ -384,6 +396,9 @@ export default {
         }
       }
   },
+  created(){
+    this.requestDict('产地');
+  },
   data() {
     return {
       subTypeList:{

+ 29 - 10
src/views/bpm/handleTask/components/saleOrder/accountstatement/page.vue

@@ -11,18 +11,31 @@
         <el-row style="font-weight: 700;color: red">
           <el-divider direction="vertical"></el-divider>
           <span>总金额:</span>
-          <span>{{ dataForm.amountTotalPrice || 0 }}</span>
-          <el-divider direction="vertical"></el-divider>
-          <span>应收金额:</span>
-          <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
-          <el-divider direction="vertical"></el-divider>
-          <span>应付金额:</span>
-          <span>{{ dataForm.amountPayablePrice || 0 }}</span>
+            <span>{{ dataForm.amountTotalPrice || 0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>应收金额:</span>
+            <span>{{ dataForm.amountReceivablePrice || 0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>已收金额:</span>
+            <span>{{ dataForm.amountReceivablePass||0 }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>应付金额:</span>
+            <span>{{ dataForm.amountPayablePrice || 0 }}</span>
+      
+            <el-divider direction="vertical"></el-divider>
+            <span>已付金额:</span>
+            <span>{{ dataForm.amountPayablePass||0 }}</span>
 
 
         </el-row>
       </template>
     </headerTitle>
+    <recorpayTableList
+      ref="recorpayListRef"
+      :dataForm="dataForm"
+      :recorpayList.sync="recorpayList"
+      :dialogType="permissionType"
+    ></recorpayTableList>
     <inventoryTable ref="inventoryTableref" :priceObj="priceObj" :dataForm="dataForm" :datasource.sync="datasource"
                     :dialogType="permissionType"
                     :taskDefinitionKey="taskDefinitionKey"></inventoryTable>
@@ -35,13 +48,14 @@
 import InventoryTable from "./inventoryTable.vue";
 import saleForm from "./saleForm.vue";
 import {getSearchMergeListByTypeAPI, infoAccountStatementAPI,} from "@/api/bpm/components/saleManage/saleorder";
+import recorpayTableList from './recorpayTableList.vue';
 
 export default {
   name: 'page',
   props: ['permissionType', 'businessId', 'taskDefinitionKey'],
   components: {
     InventoryTable,
-    saleForm
+    saleForm,recorpayTableList
   },
   data() {
     return {
@@ -67,6 +81,8 @@ export default {
         repliedFiles: [],
         BQYSKZE: undefined,
       },
+      recorpayList:[],
+
       title: '',
       quarterList: {
         '一季度': ['-01-01 00:00:00', '-03-31 12:59:59'],
@@ -112,6 +128,7 @@ export default {
     async getInfo(id) {
       let data = await infoAccountStatementAPI(id)
       this.datasource = data?.orderList || []
+      this.recorpayList=data?.recorpayList||[]
       this.dataForm = data
       //this.priceObj.previousPeriodEndDebt = data.previousPeriodEndDebt
       switch (this.dataForm.dateType) {
@@ -173,8 +190,10 @@ export default {
       this.dataForm = {
         ...this.dataForm,
         amountPayablePrice: data.amountPayablePrice,
-        amountReceivablePrice: data.amountReceivablePrice,
-        amountTotalPrice: data.amountTotalPrice,
+          amountReceivablePrice: data.amountReceivablePrice,
+          amountTotalPrice: data.amountTotalPrice,
+          amountPayablePass: data.amountPayablePass,
+          amountReceivablePass: data.amountReceivablePass,
 
       }
       if (!this.datasource.length) this.$message.warning('暂无订单信息')

+ 192 - 0
src/views/bpm/handleTask/components/saleOrder/accountstatement/recorpayTableList.vue

@@ -0,0 +1,192 @@
+<template>
+  <div>
+    <div v-for="item in recorpayList" style="margin-bottom: 10px">
+      <div>
+        <div style="margin-bottom: 10px; font-weight: bold">
+          <div>
+            <el-divider direction="vertical"></el-divider>
+            <span>{{ item.accType == 1 ? '已付' : '已收' }}:</span>
+            <span>{{ item.code }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <!-- <span>计价方式:</span>
+            <span> {{ item.pricingWay == 1 ? '按数量计费' : '按重量计费' }}</span> -->
+            <!-- <el-divider direction="vertical"></el-divider> -->
+            <span>总金额:</span>
+            <span>{{ item.totalAmount }}</span>
+          </div>
+        </div>
+        <ele-pro-table
+          ref="table"
+          row-key="id"
+          :needPage="false"
+          :columns="getColumns()"
+          max-height="500px"
+          style="margin-bottom: 10px"
+          :toolkit="[]"
+          :datasource="getObj(item)"
+          cache-key="systemRoleTable17-11121"
+          class="time-form"
+        >
+        </ele-pro-table>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  export default {
+    components: {},
+    props: ['recorpayList', 'dialogType', 'dataForm'],
+    computed: {
+      getObj(){
+        return (j) => {
+          return this.recorpayList.filter(item=>item.code==j.code)
+        }
+      },
+      getColumns() {
+        return (j) => {
+          let basicFields = [
+            {
+              width: 60,
+              label: '序号',
+              type: 'index',
+              columnKey: 'index',
+              align: 'center'
+            },
+            {
+              minWidth: 130,
+              prop: 'contactName',
+              label:'单位名称',
+              align: 'center',
+              showOverflowTooltip: true
+            },
+            {
+              minWidth: 120,
+              prop: 'sourceType',
+              label: '来源类型',
+              formatter(_row, _column, cellValue) {
+                return cellValue == 2 ? '合同' : cellValue == 3? '订单' : '';
+      
+              },
+              align: 'center',
+              showOverflowTooltip: true
+            },
+            {
+              minWidth: 140,
+              prop: 'sourceName',
+              label: '来源名称',
+              align: 'center',
+              showOverflowTooltip: true
+            },
+            {
+              minWidth: 140,
+              prop: 'sourceCode',
+              label: '来源编码',
+              align: 'center',
+              showOverflowTooltip: true
+            },
+            {
+              minWidth: 140,
+              prop: 'invoiceCode’',
+              label: '发票编码',
+              align: 'center',
+              showOverflowTooltip: true,
+
+            },
+
+            {
+              minWidth: 100,
+              prop: 'execDate',
+              label: '费用发生日期',
+              align: 'center',
+              showOverflowTooltip: true
+            },
+
+            {
+              minWidth: 120,
+              prop: 'totalAmount',
+              label: '合计金额',
+              align: 'center',
+            },
+            {
+              minWidth: 120,
+              prop: 'remark',
+              label: '备注',
+              slot: 'totalPrice',
+              align: 'center',
+            },
+          ];
+      
+
+          return basicFields;
+        };
+      },
+
+    },
+    data() {
+      return {
+        rules: {},
+        form: {},
+
+      };
+    },
+    methods: {
+     
+
+    }
+  };
+</script>
+<style lang="scss" scoped>
+  .headbox {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+
+    .amount {
+      font-size: 14px;
+      font-weight: bold;
+      padding-right: 30px;
+    }
+  }
+
+  .time-form .el-form-item {
+    margin-bottom: 0 !important;
+  }
+
+  ::v-deep .period {
+    display: flex;
+
+    .borderleftnone {
+      .el-input--medium .el-input__inner {
+        border-top-right-radius: 0;
+        border-bottom-right-radius: 0;
+      }
+    }
+
+    .borderrightnone {
+      .el-input--medium .el-input__inner {
+        border-top-left-radius: 0;
+        border-bottom-left-radius: 0;
+      }
+    }
+  }
+
+  ::v-deep .time-form tbody > tr:hover > td {
+    background-color: transparent !important;
+  }
+
+  ::v-deep .time-form .el-table tr {
+    background-color: #ffffff;
+  }
+
+  .pricebox {
+    display: flex;
+    justify-content: flex-start;
+    align-items: center;
+    font-weight: bold;
+  }
+
+  ::v-deep.el-divider {
+    margin: 10px;
+    font-weight: bold;
+  }
+</style>

+ 2 - 2
src/views/bpm/handleTask/components/saleOrder/addDialog.vue

@@ -294,7 +294,7 @@
         </el-col>
       </el-row>
 
-      <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
+      <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
 
       <inventoryTable ref="inventoryTable"  :pricingWay="form.pricingWay" :isContractId='!!form.contractId'
                       @orderDiscountAmount="orderDiscountAmount"></inventoryTable>
@@ -648,7 +648,7 @@ export default {
     discountInput() {
       this.$refs.inventoryTable.discountInputByOrder(this.form.payAmount)
     },
-//品清单修改单价或者数量重置优惠金额
+//品清单修改单价或者数量重置优惠金额
     orderDiscountAmount(val = 0) {
       this.form.payAmount = val
     },

+ 19 - 1
src/views/bpm/handleTask/components/saleOrder/customerReturnGoods/customerReturnOrder.vue

@@ -482,7 +482,9 @@
   import dictEnum from '@/enum/dict';
   import fileMain from '@/components/addDoc/index.vue';
   import parentList from '@/views/bpm/handleTask/components/supplierManage/parentList.vue';
+  import dictMixins from '@/mixins/dictMixins';
   export default {
+    mixins: [dictMixins],
     name: 'customerReturnOrder',
     props: {
       taskDefinitionKey: {
@@ -671,6 +673,22 @@
             slot: 'technicalDrawings',
             align: 'center'
           },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 140,
             prop: 'reason',
@@ -906,7 +924,7 @@
       }
     },
     created() {
-      console.log(this.isShowReturnOrder, '====');
+      this.requestDict('产地');
     },
     mounted() {
       this.getReturnInfo(this.businessId);

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/detailDialog.vue

@@ -268,7 +268,7 @@
         </el-row>
       </el-form>
 
-      <headerTitle title="品清单"></headerTitle>
+      <headerTitle title="品清单"></headerTitle>
       <inventoryTabledetail
         ref="inventoryTabledetailRef"
         :isCustomerMark="true"

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/entrustedReceive/addOrEditDialog.vue

@@ -107,7 +107,7 @@
       </el-row>
 
     </el-form>
-    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
+    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
     <inventoryTable
       :pricingWay="form.pricingWay"
       ref="inventoryTableref"

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/entrustedReceive/detailDialog.vue

@@ -96,7 +96,7 @@
       </el-row>
     </el-form>
 
-    <headerTitle title="品清单"></headerTitle>
+    <headerTitle title="品清单"></headerTitle>
     <ele-pro-table
       ref="table"
       :needPage="false"

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/entrustedReceiveReturnGoods/addReturnGoodsDialog.vue

@@ -108,7 +108,7 @@
       </el-row>
 
       <headerTitle
-        title="品清单"
+        title="品清单"
         style="margin-top: 30px"
       ></headerTitle>
       <inventoryTable

+ 20 - 37
src/views/bpm/handleTask/components/saleOrder/entrustedReceiveReturnGoods/detailDialog.vue

@@ -138,7 +138,7 @@
       </el-row>
     </el-form>
 
-    <headerTitle title="原品清单"></headerTitle>
+    <headerTitle title="原品清单"></headerTitle>
     <ele-pro-table
       ref="table"
       :needPage="false"
@@ -152,7 +152,7 @@
       </template>
     </ele-pro-table>
     <headerTitle
-      title="退货品明细"
+      title="退货品明细"
     ></headerTitle>
     <ele-pro-table
       ref="table"
@@ -499,41 +499,23 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsResult',
-          //   label: '质检结果',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityResults[_row.qmsResult];
-          //   }
-          // },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsStatus',
-          //   label: '质检状态',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityStatus[_row.qmsStatus];
-          //   }
-          // },
-          // {
-          //   minWidth: 130,
-          //   prop: 'productionDate',
-          //   showOverflowTooltip: true,
-          //   label: '生产日期',
-          //   align: 'center'
-          // },
-
-          // {
-          //   minWidth: 100,
-          //   prop: 'purchaseDate',
-          //   label: '采购日期',
-          //   align: 'center'
-          // },
-
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 200,
             prop: 'returnReason',
@@ -562,6 +544,7 @@
     },
     created() {
       this.getDetailData(this.businessId);
+      this.requestDict('产地');
     },
     methods: {
       downloadFile(file) {

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/exceptionManagement/addOrEditDialog.vue

@@ -55,7 +55,7 @@
       </el-row>
     </el-form>
 
-    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
+    <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
     <ele-pro-table
       ref="table"
       :needPage="false"

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/invoice/addInvoiceDialog.vue

@@ -129,7 +129,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
+      <headerTitle title="品清单" style="margin-top: 30px"></headerTitle>
       <inventoryTable
         :pricingWay="form.pricingWay"
         :entrustedCode="form.entrustedCode"

+ 121 - 33
src/views/bpm/handleTask/components/saleOrder/invoice/detailDialog.vue

@@ -247,7 +247,6 @@
   import { copyObj } from '@/utils/util';
   import add from '@/views/bpm/outgoingManagement/outbound.vue';
   import fileMain from '@/components/addDoc/index.vue';
-
   export default {
     mixins: [dictMixins],
     components: {
@@ -297,7 +296,7 @@
           }
         ],
         competAnalysisListcolumns: [
-          {
+        {
             width: 45,
             type: 'index',
             columnKey: 'index',
@@ -325,6 +324,13 @@
             slot: 'productCategoryName',
             align: 'center'
           },
+          {
+            width: 160,
+            prop: 'batchNo',
+            label: '批次号',
+            slot: 'batchNo',
+            align: 'center'
+          },
           {
             width: 160,
             prop: 'productBrand',
@@ -347,7 +353,29 @@
             align: 'center'
           },
           {
-            width: 200,
+            width: 120,
+            prop: 'imgCode',
+            align: 'center',
+            label: '图号/件号',
+            showOverflowTooltip: true
+          },
+          {
+            width: 120,
+            prop: 'produceType',
+            align: 'center',
+            label: '生产类型',
+            formatter: (row, column) => {
+              return row?.produceType
+                ?.map((item) => {
+                  return this.getDictValue('生产类型', item);
+                })
+                ?.toString();
+            },
+            showOverflowTooltip: true
+          },
+
+          {
+            width: 120,
             prop: 'customerMark',
             label: '客户代号',
             slot: 'customerMark',
@@ -358,29 +386,58 @@
             prop: 'warehouseName',
             label: '仓库名称',
             slot: 'warehouseName',
+
             align: 'center'
           },
-          {
-            width: 100,
-            prop: 'stockLedger',
-            label: '发货明细',
-            slot: 'stockLedger',
-            align: 'center'
-          },
+          // {
+          //   width: 100,
+          //   prop: 'warehouseNum',
+          //   label: '库存',
+          //   align: 'center',
+          //   slot: 'warehouseNum',
+
+          //   headerSlot: 'headerWarehouseNum'
+          // },
+
+          // {
+          //   width: 100,
+          //   prop: 'stockLedger',
+          //   label: '发货明细',
+          //   slot: 'stockLedger',
+          //   align: 'center'
+          // },
           {
             width: 120,
             prop: 'totalCount',
-            label: '数量',
+            label: '发货数量',
             slot: 'totalCount',
+            headerSlot: 'headerTotalCount',
             align: 'center'
           },
           {
             width: 120,
+            prop: 'orderTotalCount',
+            label: '订单数量',
+            slot: 'orderTotalCount',
+            align: 'center'
+          },
+
+          {
+            width: 80,
             prop: 'measuringUnit',
             label: '计量单位',
             slot: 'measuringUnit',
             align: 'center'
           },
+
+          {
+            width: 120,
+            prop: 'blockCount',
+            label: '发货块数',
+            slot: 'blockCount',
+            align: 'center',
+            show: this.clientEnvironmentId == '4'
+          },
           {
             width: 120,
             prop: 'singleWeight',
@@ -389,19 +446,19 @@
             align: 'center'
           },
           {
-            width: 100,
+            width: 200,
             prop: 'receiveTotalWeight',
             label: '收货总重',
             slot: 'receiveTotalWeight',
-            align: 'center'
+            align: 'center',
+            headerSlot: 'headerTotalCount'
           },
           {
-            width: 200,
+            width: 100,
             prop: 'sendTotalWeight',
             label: '发货总重',
             slot: 'sendTotalWeight',
-            align: 'center',
-            headerSlot: 'headerTotalCount'
+            align: 'center'
           },
 
           {
@@ -436,17 +493,34 @@
             slot: 'singlePrice',
             align: 'center'
           },
+          {
+            width: 160,
+            prop: 'taxRate',
+            label: '税率',
+            slot: 'taxRate',
+            align: 'center'
+          },
+          {
+            width: 160,
+            prop: 'discountSinglePrice',
+            label: '折后单价',
+            slot: 'discountSinglePrice',
+            align: 'center'
+          },
           {
             width: 120,
             prop: 'totalPrice',
-            label: '销售总金额',
+            label: '合计',
             slot: 'totalPrice',
-            formatter: (_row, _column, cellValue) => {
-              return _row.totalPrice ? _row.totalPrice + '元' : '';
-            },
             align: 'center'
           },
-
+          {
+            width: 120,
+            prop: 'discountTotalPrice',
+            label: '折后合计',
+            slot: 'discountTotalPrice',
+            align: 'center'
+          },
           {
             width: 120,
             prop: 'deliveryDays',
@@ -467,13 +541,31 @@
             align: 'center'
           },
           // {
-          //   width: 120,
-          //   prop: 'guaranteePeriodUnitCode',
-          //   label: '',
-          //   slot: 'guaranteePeriodUnitCode'
+          //   width: 160,
+          //   prop: 'guaranteePeriodDeadline',
+          //   label: '质保截止日期',
+          //   slot: 'guaranteePeriodDeadline',
+          //   align: 'center'
           // },
           {
-            width: 120,
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
+          {
+            width: 130,
             prop: 'technicalAnswerName',
             label: '技术答疑人',
             slot: 'technicalAnswerName',
@@ -491,11 +583,6 @@
             prop: 'technicalDrawings',
             label: '技术图纸',
             slot: 'technicalDrawings',
-            formatter: (_row, _column, cellValue) => {
-              return (
-                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
-              );
-            },
             align: 'center'
           },
           {
@@ -504,7 +591,7 @@
             label: '备注',
             slot: 'remark',
             align: 'center'
-          }
+          },
         ]
       };
     },
@@ -516,7 +603,8 @@
     },
     async created() {
       await this.getDetailData(this.businessId);
-      console.log('this.taskDefinitionKey--------', this.taskDefinitionKey);
+      this.requestDict('产地');
+      this.requestDict('生产类型');
       if (this.taskDefinitionKey == 'storemanApprove') {
         this.tabOptions.push({ key: 'outBound', name: '出库单' });
         this.activeComp = 'outBound';

+ 45 - 12
src/views/bpm/handleTask/components/saleOrder/invoice/inventoryTable.vue

@@ -294,6 +294,8 @@
       getWarehouseList().then((res) => {
         this.warehouseList = res;
       });
+      this.requestDict('产地');
+      this.requestDict('生产类型');
     },
     computed: {
       canHandl() {
@@ -360,6 +362,27 @@
             slot: 'specification',
             align: 'center'
           },
+          {
+            width: 120,
+            prop: 'imgCode',
+            align: 'center',
+            label: '图号/件号',
+            showOverflowTooltip: true
+          },
+          {
+            width: 120,
+            prop: 'produceType',
+            align: 'center',
+            label: '生产类型',
+            formatter: (row, column) => {
+              return row?.produceType
+                ?.map((item) => {
+                  return this.getDictValue('生产类型', item);
+                })
+                ?.toString();
+            },
+            showOverflowTooltip: true
+          },
           {
             width: 200,
             prop: 'warehouseId',
@@ -489,13 +512,13 @@
             slot: 'deliveryDays',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'deliveryDeadline',
-            label: '交期截止日期',
-            slot: 'deliveryDeadline',
-            align: 'center'
-          },
+          // {
+          //   width: 160,
+          //   prop: 'deliveryDeadline',
+          //   label: '交期截止日期',
+          //   slot: 'deliveryDeadline',
+          //   align: 'center'
+          // },
           {
             width: 200,
             prop: 'guaranteePeriod',
@@ -507,11 +530,21 @@
             align: 'center'
           },
           {
-            width: 160,
-            prop: 'guaranteePeriodDeadline',
-            label: '质保截止日期',
-            slot: 'guaranteePeriodDeadline',
-            align: 'center'
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
           },
           {
             width: 130,

+ 17 - 3
src/views/bpm/handleTask/components/saleOrder/invoiceConfirm/detailDialog.vue

@@ -136,7 +136,7 @@
         </el-row>
       </el-form>
 
-      <headerTitle title="品清单"></headerTitle>
+      <headerTitle title="品清单"></headerTitle>
       <ele-pro-table
         ref="table"
         :needPage="false"
@@ -429,7 +429,21 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             width: 220,
             prop: 'remark',
@@ -461,7 +475,7 @@
     },
     async created() {
       await this.getDetailData(this.businessId);
-      console.log('this.taskDefinitionKey--------', this.taskDefinitionKey);
+      this.requestDict('产地');
       if (this.taskDefinitionKey == 'storemanApprove') {
         this.tabOptions.push({ key: 'outBound', name: '出库单' });
         this.activeComp = 'outBound';

+ 23 - 15
src/views/bpm/handleTask/components/saleOrder/returnGoods/addReturnGoodsDialog.vue

@@ -85,26 +85,16 @@
           </el-form-item>
 
           <el-form-item prop="returnFiles" label="退货附件">
-            <fileMain v-model="form.fileUpload"></fileMain>
-            <!--            <fileUpload-->
-            <!--              v-model="form.returnFiles"-->
-            <!--              module="main"-->
-            <!--              :showLib="false"-->
-            <!--              :limit="10"-->
-            <!--            />-->
+            <fileMain v-model="form.returnFiles"></fileMain>
+       
           </el-form-item>
           <el-form-item prop="repliedFiles" label="回执附件">
             <fileMain v-model="form.repliedFiles"></fileMain>
-            <!--            <fileUpload-->
-            <!--              v-model="form.repliedFiles"-->
-            <!--              module="main"-->
-            <!--              :showLib="false"-->
-            <!--              :limit="10"-->
-            <!--            />-->
+          
           </el-form-item>
         </el-col>
       </el-row>
-      <headerTitle title="原品清单" style="margin-top: 30px"></headerTitle>
+      <headerTitle title="原物品清单" style="margin-top: 30px"></headerTitle>
       <ele-pro-table
         ref="table"
         :needPage="false"
@@ -115,7 +105,7 @@
       >
       </ele-pro-table>
       <headerTitle
-        title="退货品明细"
+        title="退货品明细"
         style="margin-top: 30px"
         v-show="!['40', '50'].includes(form.type)"
       ></headerTitle>
@@ -428,6 +418,23 @@
 
             align: 'center'
           },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             width: 220,
             prop: 'remark',
@@ -514,6 +521,7 @@
       }
     },
     created() {
+      this.requestDict('产地');
       this.getDetail(this.businessId);
     },
     methods: {

+ 39 - 64
src/views/bpm/handleTask/components/saleOrder/returnGoods/detailDialog.vue

@@ -89,43 +89,20 @@
             prop="returnFiles"
             style="margin-bottom: 16px"
           >
-            <div
-              v-if="detailData.returnFiles && detailData.returnFiles?.length"
-            >
-              <el-link
-                v-for="link in detailData.returnFiles"
-                :key="link.id"
-                type="primary"
-                :underline="false"
-                @click="downloadFile(link)"
-              >
-                {{ link.name }}
-              </el-link>
-            </div>
+          <fileMain v-model="form.returnFiles" type="view"></fileMain>
+            
           </el-form-item>
           <el-form-item
             label="回执附件:"
             prop="sendFiles"
             style="margin-bottom: 16px"
           >
-            <div
-              v-if="detailData.repliedFiles && detailData.repliedFiles?.length"
-            >
-              <el-link
-                v-for="link in detailData.repliedFiles"
-                :key="link.id"
-                type="primary"
-                :underline="false"
-                @click="downloadFile(link)"
-              >
-                {{ link.name }}
-              </el-link>
-            </div>
+          <fileMain v-model="form.sendFiles" type="view"></fileMain>
           </el-form-item>
         </el-col>
       </el-row>
     </el-form>
-    <headerTitle title="原品清单" style="margin-top: 30px"></headerTitle>
+    <headerTitle title="原物品清单" style="margin-top: 30px"></headerTitle>
     <ele-pro-table
       ref="table"
       :needPage="false"
@@ -136,7 +113,7 @@
     >
     </ele-pro-table>
     <headerTitle
-      title="退货品明细"
+      title="退货品明细"
       v-show="['10', '20', '30'].includes(form.type)"
     ></headerTitle>
     <ele-pro-table
@@ -182,13 +159,14 @@
   import { reviewStatusEnum } from '@/enum/dict';
   import inventoryTabledetail from '@/BIZComponents/inventoryTableDetails.vue';
   import inventoryTable from '@/BIZComponents/inventoryTable.vue';
+  import fileMain from '@/components/addDoc/index.vue';
 
 
   export default {
     mixins: [dictMixins],
     components: {
       inventoryTabledetail,
-      inventoryTable
+      inventoryTable,fileMain
     },
     data() {
       return {
@@ -422,6 +400,21 @@
           
             align: 'center'
           },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             width: 220,
             prop: 'remark',
@@ -566,41 +559,21 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsResult',
-          //   label: '质检结果',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityResults[_row.qmsResult];
-          //   }
-          // },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsStatus',
-          //   label: '质检状态',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityStatus[_row.qmsStatus];
-          //   }
-          // },
-          // {
-          //   minWidth: 130,
-          //   prop: 'productionDate',
-          //   showOverflowTooltip: true,
-          //   label: '生产日期',
-          //   align: 'center'
-          // },
-
-          // {
-          //   minWidth: 100,
-          //   prop: 'purchaseDate',
-          //   label: '采购日期',
-          //   align: 'center'
-          // },
-
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 200,
             prop: 'returnReason',
@@ -629,6 +602,8 @@
     },
     created() {
       this.getDetailData(this.businessId);
+      this.requestDict('产地');
+
     },
     methods: {
       downloadFile(file) {

+ 20 - 1
src/views/bpm/handleTask/components/saleOrder/returnGoods/inventoryTable.vue

@@ -422,7 +422,23 @@
           //   label: '采购日期',
           //   align: 'center'
           // },
-
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+       
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 200,
             prop: 'returnReason',
@@ -452,6 +468,9 @@
         ]
       };
     },
+    created() {
+      this.requestDict('产地');
+    },
     computed: {
       totalAmount() {
         let num = 0;

+ 16 - 21
src/views/bpm/handleTask/components/saleOrder/saleReturnGoods/detailDialog.vue

@@ -355,26 +355,21 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsResult',
-          //   label: '质检结果',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityResults[_row.qmsResult];
-          //   }
-          // },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsStatus',
-          //   label: '质检状态',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityStatus[_row.qmsStatus];
-          //   }
-          // },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item ))
+                    .join(',')
+                : '';
+            }
+          },
 
           {
             minWidth: 200,
@@ -403,7 +398,7 @@
       }
     },
     created() {
-      console.log('this.tabOptions----------------', this.tabOptions);
+      this.requestDict('产地');
       this.getDetailData(this.businessId);
       if (this.taskDefinitionKey == 'storemanApprove') {
         this.tabOptions.push({ key: 'inoutBound', name: '入库单' });

+ 29 - 42
src/views/bpm/handleTask/components/saleOrder/saleReturnGoods/inventoryTable.vue

@@ -50,7 +50,8 @@
           :prop="'datasource.' + scope.$index + '.sendTotalWeight'"
           :rules="[
             {
-              required: scope.row.pricingWay == 2 && [3, 1].includes(returnSourceType),
+              required:
+                scope.row.pricingWay == 2 && [3, 1].includes(returnSourceType),
               message: '请输入数字',
               trigger: 'blur'
             }
@@ -101,7 +102,8 @@
           :rules="[
             {
               required:
-                (entrustedCode || returnSourceType == 2) && scope.row.pricingWaypricingWay == 2,
+                (entrustedCode || returnSourceType == 2) &&
+                scope.row.pricingWaypricingWay == 2,
               message: '请输入数字',
               trigger: 'blur'
             }
@@ -240,8 +242,7 @@
       <template v-slot:headerReceiveTotalWeight="{ column }">
         <span
           :class="{
-            'is-required':
-              (entrustedCode || returnSourceType == 2)
+            'is-required': entrustedCode || returnSourceType == 2
           }"
           >{{ column.label }}</span
         >
@@ -449,8 +450,11 @@
             slot: 'pricingWay',
             align: 'center',
             formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
-
+              return row.pricingWay == 1
+                ? '按数量计费'
+                : row.pricingWay == 2
+                ? '按重量计费'
+                : '';
             }
           },
           {
@@ -460,7 +464,7 @@
             slot: 'singlePrice',
             align: 'center'
           },
-    
+
           // {
           //   minWidth: 80,
           //   prop: 'weight',
@@ -483,41 +487,21 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsResult',
-          //   label: '质检结果',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityResults[_row.qmsResult];
-          //   }
-          // },
-          // {
-          //   minWidth: 100,
-          //   prop: 'qmsStatus',
-          //   label: '质检状态',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return this.qualityStatus[_row.qmsStatus];
-          //   }
-          // },
-          // {
-          //   minWidth: 130,
-          //   prop: 'productionDate',
-          //   showOverflowTooltip: true,
-          //   label: '生产日期',
-          //   align: 'center'
-          // },
-
-          // {
-          //   minWidth: 100,
-          //   prop: 'purchaseDate',
-          //   label: '采购日期',
-          //   align: 'center'
-          // },
-
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item))
+                    .join(',')
+                : '';
+            }
+          },
           {
             minWidth: 200,
             prop: 'returnReason',
@@ -546,6 +530,9 @@
         ]
       };
     },
+    created() {
+      this.requestDict('产地');
+    },
     computed: {
       totalAmount() {
         if (item.pricingWay == 1) {

+ 40 - 26
src/views/bpm/stockManagement/storage.vue

@@ -567,6 +567,7 @@ export default {
       formData: {
         bizType: '',
         storageTime: '',
+        qualityControl: '',
         extInfo: {
           assetType: []
         }
@@ -698,7 +699,7 @@ export default {
 
         //获取仓库
         const res = await warehouseDefinition.list({
-          inventoryType: this.form.categoryLevelTopId
+          // inventoryType: this.form.categoryLevelTopId
         });
         // 只有一个仓库自动显示出来
         if (res.length == 1) {
@@ -792,18 +793,7 @@ export default {
       console.log(this.sourceBizNo, 'sourceBizNo')
       this.formData.type = 1;
       this.formData.bizType = this.bizType;
-      if (
-        this.form != null &&
-        Object.keys(this.form).length > 0 &&
-        this.form.categoryLevelTopId != ''
-      ) {
-        this.formData.extInfo.assetType = Array.from(
-          new Set(this.form?.categoryLevelTopId?.split(','))
-        );
-      } else {
-        this.$message.warning('未获取到物品类型!');
-      }
-      console.log(this.formData.extInfo.assetType, '类型')
+
       if (this.sourceBizNo != null || this.sourceBizNo != '') {
         // this.formData.sourceBizNo = this.sourceBizNo;
         this.$set(this.formData, 'sourceBizNo', this.sourceBizNo);
@@ -830,6 +820,9 @@ export default {
             this.$message.warning('未获取到物品信息!');
             return;
           }
+          this.formData.extInfo.assetType = res.map((item) => item.categoryLevelPathIdParent)
+
+          console.log(this.formData.extInfo.assetType, '类型类型')
           // 获取批次号
           const batchNo = await getCode('lot_number_code');
           // 获取供应商
@@ -915,6 +908,7 @@ export default {
               packingUnit: packingUnit, // 单位
               measureQuantity: measureQuantity, // 计量数量
               measureUnit: item.measuringUnit, // 计量单位
+              measureType: item.measureType, // 计量方式
               netWeight: item.netWeight > -1 ? item.netWeight : 0, // 净重
               singleWeight: singleWeight, // 单重重量
               weight: weight, // 总重量
@@ -927,7 +921,7 @@ export default {
               warehouseId, // 仓库id
               warehouseName, // 仓库名称
               warehouseIds,
-              warehouseNames
+              warehouseNames,
             };
           });
           this.$nextTick(() => {
@@ -939,6 +933,18 @@ export default {
 
       console.log('this.detailList-----------------', this.detailList)
       if (this.detailList?.length > 0) {
+        if (
+          this.form != null &&
+          Object.keys(this.form).length > 0 &&
+          this.form.categoryLevelTopId != ''
+        ) {
+          this.formData.extInfo.assetType = Array.from(
+            new Set(this.form?.categoryLevelTopId?.split(','))
+          );
+        } else {
+          this.$message.warning('未获取到物品类型!');
+        }
+
         // 包装列表 this.detailList
         // 获取主数据物品详情
         // let { category } = await getDetails(this.form.categoryId);
@@ -1097,6 +1103,7 @@ export default {
                 ? this.getMeasureQuantity(item.code)
                 : this.form.totalCount, // 计量数量
               measureUnit: item.measuringUnit, // 计量单位
+              measureType: item.measureType, // 计量方式
               netWeight: item.netWeight > -1 ? item.netWeight : 0, // 净重
               weight: weight, // 重量
               singleWeight: singleWeight,
@@ -1313,12 +1320,16 @@ export default {
     },
     // 赋值入库时间
     getNowFormatDate() {
-      if (this.bizType == '2' || this.bizType == '6') {
-        let time = '00:00:00';
-        this.formData.storageTime = this.form.receiveDate + ' ' + time;
+      const obj = this.getNowDate();
+      const defaultTime = '00:00:00';
+      const currentTime = `${obj.hour}:${obj.minute}:${obj.second}`;
+
+      if (this.bizType === '2' || this.bizType === '6') {
+        this.formData.storageTime = this.form.receiveDate
+          ? `${this.form.receiveDate} ${defaultTime}`
+          : `${obj.year}-${obj.month}-${obj.strDate} ${currentTime}`;
       } else {
-        let obj = this.getNowDate();
-        this.formData.storageTime = `${obj.year}-${obj.month}-${obj.strDate} ${obj.hour}:${obj.minute}:${obj.second}`;
+        this.formData.storageTime = `${obj.year}-${obj.month}-${obj.strDate} ${currentTime}`;
       }
     },
     // 获取物品列表
@@ -1544,6 +1555,7 @@ export default {
 
       // 处理产品数据
       this.productList = this.productList.map((productItem) => {
+        productItem.qualityControl = this.form.isQmsCheck; //是否质检
         return {
           ...productItem,
           outInDetailRecordRequestList: _packingList.filter(
@@ -2306,7 +2318,7 @@ export default {
                 idx,
                 row.warehouseId,
                 row.warehouseName + '',
-                this.form.categoryLevelTopId
+                // this.form.categoryLevelTopId
               );
             } else {
               let pNum = row.packingQuantity;
@@ -2317,7 +2329,7 @@ export default {
                 idx,
                 row.warehouseId,
                 row.warehouseName + '',
-                this.form.categoryLevelTopId
+                // this.form.categoryLevelTopId
               );
             }
           } else {
@@ -2341,7 +2353,7 @@ export default {
                 idx,
                 row.warehouseId,
                 row.warehouseName + '',
-                this.form.categoryLevelTopId
+                // this.form.categoryLevelTopId
               );
             } else {
               console.log(measureBoolen, 'measureBoolen');
@@ -2365,7 +2377,7 @@ export default {
                   idx,
                   row.warehouseId,
                   row.warehouseName + '',
-                  this.form.categoryLevelTopId
+                  // this.form.categoryLevelTopId
                 );
               } else {
                 if (row.measureUnit == row.packingUnit) {
@@ -2377,7 +2389,7 @@ export default {
                     idx,
                     row.warehouseId,
                     row.warehouseName + '',
-                    this.form.categoryLevelTopId
+                    // this.form.categoryLevelTopId
                   );
                 } else {
                   let num = Math.ceil(
@@ -2390,7 +2402,7 @@ export default {
                     idx,
                     row.warehouseId,
                     row.warehouseName + '',
-                    this.form.categoryLevelTopId
+                    // this.form.categoryLevelTopId
                   );
                 }
               }
@@ -2446,7 +2458,7 @@ export default {
           null,
           null,
           null,
-          this.form.categoryLevelTopId
+          // this.form.categoryLevelTopId
         );
       }
     },
@@ -2506,6 +2518,8 @@ export default {
     // 生成包装
     generateWrappers(row, productIndex, packingCodeList) {
       console.log(packingCodeList, 'packingCodeList', row.measureType)
+      if (!row.measureType) return this.$message.warning('请到主数据维计量类型!')
+
       // 判断是否拆包,如果是不拆包,计量单位=包装单位,则不生成包装层数据
       if (row.measureType != 1) {
         // 计量单位=包装单位,则不生成包装层数据