jingshuyong пре 10 месеци
родитељ
комит
ba215362ca

+ 14 - 0
src/api/productionPlan/index.js

@@ -326,3 +326,17 @@ export async function findMaterialInfoByCategory(params) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+// 根据产品ID查询物料信息
+export async function getProductKitting(params) {
+  const res = await request.get(
+    '/aps/productionplan/getProductKitting',
+    {
+      params
+    }
+  );
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 9 - 4
src/views/materialPlan/components/plan-edit-dialog.vue

@@ -316,11 +316,11 @@
                 />
               </template>
 
-              <template v-slot:action="{ row }" v-if="type != 'detail'">
+              <template v-slot:action="{ row,$index:idx }" v-if="type != 'detail'">
                 <el-popconfirm
                   class="ele-action"
                   title="确定要删除当前物料吗?"
-                  @confirm="remove2(row)"
+                  @confirm="remove2(row,idx)"
                 >
                   <template v-slot:reference>
                     <el-link
@@ -952,6 +952,7 @@
         this.formData.detailRemoveIds.push(row.id);
         let _arr = this.$refs.table.getData() || [];
         _arr.splice(index, 1);
+        console.log(_arr,'_arr')
         this.$refs.table.setData([..._arr]);
       },
       chooseModal(data, current) {
@@ -981,12 +982,16 @@
         this.$forceUpdate();
       },
 
-      remove2(row) {
+      remove2(row,idx) {
+        console.log(idx,'idx 333');
         const data = this.$refs.table.getData() ?? [];
         this.formData.materialRemoveIds.push(row.id);
+        console.log(data,'data 1')
+        console.log(row,'row 1')
         data.forEach((e) => {
           if (row.detailId == e.id) {
-            e.materialList = e.materialList.filter((d) => d.id !== row.id);
+            // e.materialList = e.materialList.filter((d) => d.id !== row.id);
+            e.materialList.splice(idx,1)
           }
         });
 

+ 38 - 19
src/views/productionPlan/index.vue

@@ -332,7 +332,10 @@
   import { fieldModel } from '@/api/saleOrder';
   import { debounce } from 'lodash';
   import tabMixins from '@/mixins/tableColumnsMixin';
-  import { findBomCategoryByCategoryId } from '@/api/productionPlan/index';
+  import {
+    findBomCategoryByCategoryId,
+    listBomType
+  } from '@/api/productionPlan/index';
   export default {
     mixins: [tabMixins],
     components: {
@@ -829,7 +832,7 @@
         }
         for (let i = 0; i < this.selection.length; i++) {
           let el = this.selection[i];
-          if(!el.bomCategoryId){
+          if (!el.bomCategoryId) {
             return this.$message.warning('请选择有BOM版本的数据');
           }
         }
@@ -934,24 +937,40 @@
         } else {
           let categoryId = row.categoryId;
           let produceType = '';
-          const res = await findBomCategoryByCategoryId(categoryId);
+          let params = { categoryId: categoryId };
+          const res = await listBomType(params);
+          console.log(res,'res 000');
+          let bomMap = {
+            1: { code: 1, name: 'PBOM' },
+            2: { code: 2, name: 'MBOM' },
+            3: { code: 3, name: 'ABOM' }
+          };
           let arr = [];
-          if (res.length > 0) {
-            let obj = res.find((item) => item.id === row.bomCategoryId);
-            produceType = obj ? obj.bomType : produceType;
-            let listMap = {
-              1: { code: 1, name: 'PBOM' },
-              2: { code: 2, name: 'MBOM' },
-              3: { code: 3, name: 'ABOM' }
-            };
-            res.forEach((el) => {
-              if (listMap[el.bomType]) {
-                arr.push(listMap[el.bomType]);
-                delete listMap[el.bomType];
-              }
-            });
-          }
-          console.log(row, 'row');
+          res.map((item) => {
+            if(bomMap[item.bomType]){
+               arr.push(bomMap[item.bomType]);
+               delete bomMap[item.bomType];
+            }
+          });
+          // const res = await findBomCategoryByCategoryId(categoryId);
+          // let arr = [];
+          // if (res.length > 0) {
+          //   let obj = res.find((item) => item.id === row.bomCategoryId);
+          //   produceType = obj ? obj.bomType : produceType;
+          //   let listMap = {
+          //     1: { code: 1, name: 'PBOM' },
+          //     2: { code: 2, name: 'MBOM' },
+          //     3: { code: 3, name: 'ABOM' }
+          //   };
+          //   res.forEach((el) => {
+          //     if (listMap[el.bomType]) {
+          //       arr.push(listMap[el.bomType]);
+          //       delete listMap[el.bomType];
+          //     }
+          //   });
+          // }
+          console.log(arr, 'arr 222');
+
           this.$router
             .push({
               path: '/saleOrder/salesToProduction',

+ 2 - 1
src/views/saleOrder/salesToProduction.vue

@@ -75,7 +75,7 @@
           produceRoutingName: '',
           marginCoefficient: '1.0',
           batchNo: null,
-          produceType: 2,
+          produceType: '',
           bomCategoryId: '',
           factoriesId: ''
         },
@@ -157,6 +157,7 @@
           this.startRequest = true;
           this.form = data;
           if (!data.bomCategoryId || data.bomCategoryId == null) {
+            console.log(1111111113333333333333)
             this.form.produceType = '';
             // this.selectionRowShow = true;
           } else {

+ 18 - 13
src/views/saleOrder/salesToProductionNew.vue

@@ -276,18 +276,16 @@
   import AdditionalOrder from './components/AdditionalOrder.vue';
   import PlanSubmit from './components/plan-submit.vue';
   import ProductionVersion from '@/components/CreatePlan/ProductionVersion2.vue';
-  import { findBomCategoryByCategoryId } from '@/api/productionPlan/index';
   import {
-    productionToPlan,
-    saveSaleToPlan,
-    updateSaleToPlan,
-    releaseSave,
-    getInventory,
-    getUpdateInfoById,
-    bomRoutingList,
     bomListByPlan,
+    bomRoutingList,
     getFactoryList,
-    getGeneratePlan
+    getInventory,
+    getUpdateInfoById,
+    productionToPlan,
+    releaseSave,
+    saveSaleToPlan,
+    updateSaleToPlan
   } from '@/api/saleOrder';
 
   import { getByCode } from '@/api/system/dictionary-data';
@@ -299,6 +297,7 @@
   import dayjs from 'dayjs';
   import { debounce } from 'lodash';
   import ProcessRoute from '@/components/selectionDialog/processRoute.vue';
+
   export default {
     mixins: [dictMixins],
     components: {
@@ -377,7 +376,7 @@
         rules: {
           produceRoutingId: [
             { required: true, message: '请选择工艺路线', trigger: 'blur' }
-          ],
+          ]
 
           // factoriesId: [
           //   { required: true, message: '请选择所属工厂', trigger: 'change' }
@@ -437,16 +436,22 @@
     },
     methods: {
       async getProducedData() {
+        console.log(3333333333333333333333333)
         let query = this.$route.query;
-        if (!query.producedList || query.producedList.length == 0) {
+        let producedList = query.producedList
+          ? JSON.parse(query.producedList)
+          : [];
+        console.log(query, 'query');
+        console.log(producedList,'producedList');
+        // this.form.produceType = query.produceType || 2;
+        if (!producedList || producedList.length === 0) {
           this.producedList = [
             { code: 2, name: 'MBOM' },
             { code: 3, name: 'ABOM' }
           ];
           return;
         }
-        const producedList = JSON.parse(this.$route.query.producedList);
-        this.producedList = producedList;
+        this.producedList = JSON.parse(this.$route.query.producedList);
       },
       // 是否必填
       mandatoryField() {

+ 3 - 0
src/views/saleOrder/salesToProductionNewTwo.vue

@@ -957,7 +957,10 @@
 
     methods: {
       async getProducedData() {
+        console.log(111111111111111)
         let query = this.$route.query;
+        console.log(query,'query');
+        
         if (!query.producedList || query.producedList.length == 0) {
           this.producedList = [
             { code: 2, name: 'MBOM' },