Explorar el Código

fix:5358【库存台账】拆批操作,此库存包装比较多,进行点击一键分配界面会卡死没反应

mlchen hace 5 días
padre
commit
3571c86361

+ 7 - 0
src/api/warehouseManagement/stockBatchChange.js

@@ -14,6 +14,13 @@ export default {
   detail: (id) => request.get(`${base}/getById/${id}`).then(unwrap),
   sourceDetails: (stockBatchIds) =>
     request.post(`${base}/sourceDetails`, { stockBatchIds }).then(unwrap),
+  checkSplit: (categoryIds) =>
+    request.post(`${base}/checkSplit`, { categoryIds }).then((res) => {
+      if (res.data.code === 0 || res.data.code === '0') {
+        return res.data.data;
+      }
+      return Promise.reject(new Error(res.data.message || '操作失败'));
+    }),
   save: (data) => request.post(`${base}/save`, data).then(unwrap),
   submit: (data) =>
     request

+ 14 - 1
src/views/warehouseManagement/stockLedger/components/item-list.vue

@@ -288,6 +288,7 @@
   import printQRCode from '@/views/warehouseManagement/stockManagement/components/printQRCode.vue';
   import unlockModal from '@/views/warehouseManagement/unlockApplication/components/unlockModal.vue';
   import BatchChangeDialog from './BatchChangeDialog.vue';
+  import stockBatchChange from '@/api/warehouseManagement/stockBatchChange';
 
   export default {
     mixins: [tabMixins],
@@ -747,7 +748,7 @@
         }
         this.$refs.unlockModalRef.open('add', this.checkRadioData[0]);
       },
-      openBatchChange(mode) {
+      async openBatchChange(mode) {
         if (mode === 'split' && this.checkRadioData.length !== 1)
           return this.$message.warning('拆批请选择一条库存批次');
         if (mode === 'merge' && this.checkRadioData.length < 2)
@@ -760,6 +761,18 @@
         ) {
           return this.$message.warning('数量为0的库存批次不支持拆批和合批');
         }
+        if (mode === 'split') {
+          try {
+            const isUnpack = await stockBatchChange.checkSplit(
+              this.checkRadioData.map((row) => row.categoryId)
+            );
+            if (isUnpack) {
+              return this.$message.warning('拆包产品不支持拆批');
+            }
+          } catch (error) {
+            return this.$message.error(error.message || '拆批校验失败');
+          }
+        }
         this.$refs.batchChangeRef.open(mode, this.checkRadioData);
       },