Browse Source

fix:5751【采购订单-退货单】采购退货到了采购审批的时候,出库物品清单数据带不出来,没法审批

mlchen 1 day ago
parent
commit
bbcfd23c7d

+ 14 - 3
src/views/bpm/done/detailDialog.vue

@@ -195,6 +195,7 @@
 <script>
   import bpmDetail from '@/views/bpm/processInstance/detailNew.vue';
   import Vue from 'vue';
+  import purchaseReturnDetail from '@/views/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog.vue';
   import { getToken } from '@/utils/token-util';
 
   import businessComponent from '@/BIZComponents/processSubmitDialog/components/businessComponent.vue';
@@ -305,9 +306,19 @@ import businessTripComponent from '@/BIZComponents/processSubmitDialog/component
           );
           return;
         }
-        Vue.component('async-biz-form-component', (resolve) => {
-          require([`@/views${router}`], resolve);
-        });
+        const isPurchaseReturnDetail =
+          router ===
+            '/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog.vue' ||
+          router ===
+            '/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog';
+        Vue.component(
+          'async-biz-form-component',
+          isPurchaseReturnDetail
+            ? purchaseReturnDetail
+            : (resolve) => {
+                require([`@/views${router}`], resolve);
+              }
+        );
       },
 
       cancel() {

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

@@ -492,7 +492,7 @@
         const data = await getReturnSaleOrderrecordDetail(id);
         this.loading = false;
         if (data) {
-          let productList = data.productList;
+          let productList = data.productList || [];
           productList.forEach((r) => {
             let foundObject = this.codeData.find(
               (obj) => obj[r.returnType] != undefined

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

@@ -162,7 +162,10 @@
           if (valid) {
             let res = await this.getTableValue();
             console.log(res, 'resresresresres12');
-            let storageData = res.returnStorageData;
+            let storageData = res && res.returnStorageData;
+            if (!storageData) {
+              return;
+            }
 
             // 出库来源isSkip 0-正常  1-外部(外部跳过内部审核流程)
             storageData.isSkip = 1;

+ 27 - 6
src/views/bpm/handleTask/index.vue

@@ -325,6 +325,9 @@
   import { listAllUserBind } from '@/api/system/organization';
   import Vue from 'vue';
 
+  import purchaseReturnDetail from '@/views/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog.vue';
+  import purchaseReturnSubmit from '@/views/bpm/handleTask/components/purchaseOrder/returnGoods/submit.vue';
+
   import {
     delegateTask,
     getReturnList,
@@ -567,12 +570,30 @@
         this.listData.pcViewRouter = viewRouter;
         this.listData.pcHandleRouter = handleRouter;
         console.log('加载业务表单组件', { viewRouter, handleRouter });
-        Vue.component('async-biz-form-component', (resolve) => {
-          require([`@/views${viewRouter}`], resolve);
-        });
-        Vue.component('async-sub-form-component', (resolve) => {
-          require([`@/views${handleRouter}`], resolve);
-        });
+        const staticComponents = {
+          '/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog.vue':
+            purchaseReturnDetail,
+          '/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog':
+            purchaseReturnDetail,
+          '/bpm/handleTask/components/purchaseOrder/returnGoods/submit.vue':
+            purchaseReturnSubmit,
+          '/bpm/handleTask/components/purchaseOrder/returnGoods/submit':
+            purchaseReturnSubmit
+        };
+        const viewComponent = staticComponents[viewRouter];
+        const handleComponent = staticComponents[handleRouter];
+        Vue.component(
+          'async-biz-form-component',
+          viewComponent || ((resolve) => {
+            require([`@/views${viewRouter}`], resolve);
+          })
+        );
+        Vue.component(
+          'async-sub-form-component',
+          handleComponent || ((resolve) => {
+            require([`@/views${handleRouter}`], resolve);
+          })
+        );
         return true;
       },
       submit(data) {

+ 5 - 5
src/views/bpm/outgoingManagement/details.vue

@@ -812,7 +812,7 @@
           this.extInfo = resAll[0].extInfo;
           res['outInDetailList'] = [];
           resAll.forEach((item) => {
-            item.outInDetailList.forEach((val) => {
+            (item.outInDetailList || []).forEach((val) => {
               val['bizNo'] = item.bizNo;
               res['outInDetailList'].push(val);
             });
@@ -823,7 +823,7 @@
           this.infoData = res;
           this.extInfo = res?.extInfo;
         }
-        this.productList = res?.outInDetailList?.map(
+        this.productList = (res?.outInDetailList || []).map(
           (productItem, productIndex) => {
             // if(this.isIds){
             //   productItem['bizNo']=res.bizNo[productIndex]
@@ -831,14 +831,14 @@
             return {
               ...productItem,
               outInDetailRecordRequestList:
-                productItem.outInDetailRecordRequestList?.map((packingItem) => {
+                (productItem.outInDetailRecordRequestList || []).map((packingItem) => {
                   return {
                     ...packingItem,
                     categoryName: productItem.categoryName,
                     categoryCode: productItem.categoryCode,
                     supplierCode: productItem.supplierCode,
                     supplierName: productItem.supplierName,
-                    materialDetailList: packingItem.materialDetailList?.map(
+                    materialDetailList: (packingItem.materialDetailList || []).map(
                       (materialItem) => {
                         return {
                           ...materialItem,
@@ -865,7 +865,7 @@
         // 获取物料维度数据
         let iArr = [];
         arr.forEach((item) => {
-          item.materialDetailList.forEach((ele) => {
+          (item.materialDetailList || []).forEach((ele) => {
             iArr.push({ ...ele });
           });
         });

+ 11 - 2
src/views/bpm/outgoingManagement/outbound.vue

@@ -1006,11 +1006,19 @@
         return new Promise((resolve) => {
           console.log(this.formData);
           if (this.stockError) {
-            return this.$message.error(this.stockErrorMsg);
+            this.$message.error(this.stockErrorMsg);
+            resolve(null);
+            return;
           }
           this.$refs.formName.validate(async (valid) => {
+            if (!valid) {
+              resolve(null);
+              return;
+            }
             if (!this.productList?.length) {
-              return this.$message.error('请添加出库明细!');
+              this.$message.error('请添加出库明细!');
+              resolve(null);
+              return;
             }
             let obj = deepClone({ ...this.formData, type: 2 });
 
@@ -1055,6 +1063,7 @@
               resolve(obj);
             } else {
               this.$message.error('委外发货重量不能为空');
+              resolve(null);
             }
           });
         });