ysy 2 tahun lalu
induk
melakukan
c7847aeadc

+ 11 - 0
src/api/material/product.js

@@ -27,3 +27,14 @@ export async function unassociated (data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+
+// 获取产品bom信息
+export async function getCategoryBom (categoryId) {
+  const res = await request.get(`/main/category/getCategoryBom/${categoryId}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+

+ 48 - 29
src/views/material/product/components/MaterialModal.vue

@@ -57,6 +57,9 @@
                     <el-button size="small" icon="el-icon-plus" class="ele-btn-icon" type="primary"
                         @click="handleAdd">新增</el-button>
 
+
+                   
+
                 </div>
             </header-title>
 
@@ -66,28 +69,27 @@
 
                     <el-col :span="8">
                         <el-form-item label="BOM编码:">
-                            <el-input v-model="bomItem.bomCode" />
+                            {{  bomItem.code }}
                         </el-form-item>
                     </el-col>
 
                     <el-col :span="8">
-                        <el-form-item label="BOM名称:" prop="bomName">
-                            <el-input placeholder="请输入BOM名称" v-model="bomItem.bomName" />
+                        <el-form-item label="BOM名称:" prop="name">
+                            {{  bomItem.name }}
                         </el-form-item>
                     </el-col>
 
                     <el-col :span="8">
-                        <el-form-item label="版本号:" prop="bomVersion">
-                            <el-input placeholder="请输入BOM版本号" v-model="bomItem.bomVersion" />
+                        <el-form-item label="版本号:" prop="version">
+                          {{  bomItem.version }}
                         </el-form-item>
                     </el-col>
 
                     <el-col :span="8">
                         <el-form-item label="状态:" prop="status">
-                            <el-select v-model="bomItem.status" placeholder="" filterable>
+                            <el-select v-model="bomItem.status" placeholder="" filterable disabled>
                                 <el-option v-for="item in statusList" :key="item.value" :label="item.label"
                                     :value="item.value">
-
                                 </el-option>
                             </el-select>
                         </el-form-item>
@@ -96,7 +98,7 @@
 
                     <el-col :span="8">
                         <el-form-item label="生产版本:" prop="produceVersionId">
-                            <el-select v-model="bomItem.produceVersionId" filterable placeholder="清选择"
+                            <el-select v-model="bomItem.produceVersionId" filterable placeholder="清选择" disabled
                                 :style="{ width: '100%' }">
                                 <el-option v-for="item in versionList" :key="item.code" :label="item.code + '-' + item.name"
                                     :value="item.id">
@@ -105,6 +107,27 @@
                         </el-form-item>
                     </el-col>
 
+                    <el-col :span="8">
+                        <el-form-item label="所属工厂:" prop="factoryId">
+                            <factorySelect v-model="bomItem.factoryId" disabled />
+                        </el-form-item>
+                    </el-col>
+
+                    <el-col :span="8">
+                        <el-form-item label="基本数量:" prop="baseCount">
+                            <el-row>
+                                <el-col :span="12">
+                                {{ bomItem.baseCount }}   
+                                </el-col>
+                                <el-col :span="2">&nbsp;</el-col>
+                                <el-col :span="10">
+                                    <DictSelection disabled dictName="计量单位:" v-model="bomItem.baseCountUnit" />
+                                </el-col>
+                            </el-row>
+                        </el-form-item>
+                    </el-col>
+
+
 
 
 
@@ -119,6 +142,9 @@
                             <template v-slot:toolbar>
                                 <el-button size="small" icon="el-icon-plus" class="ele-btn-icon" type="primary"
                                     @click.native="openParam(index)">添加物料</el-button>
+
+                                    <el-button size="small" type="danger" icon="el-icon-delete" @click="removeBom(index)">删除</el-button>
+                                    
                             </template>
 
                             <!-- 操作列 -->
@@ -136,13 +162,7 @@
 
                 </el-row>
 
-                <el-row class="rx-cc">
-                    <el-button size="small" type="danger" icon="el-icon-delete" @click="removeBom(index)">删除</el-button>
 
-                    <el-button type="primary" size="small" @click="save">
-                        保存
-                    </el-button>
-                </el-row>
             </el-card>
 
 
@@ -168,10 +188,14 @@
 import materialDialog from '@/components/material'
 import MaterialAdd from './MaterialAdd.vue'
 import { pageList } from '@/api/technology/version/version.js';
+import { getCategoryBom } from '@/api/material/product'
+
+import factorySelect from '@/components/CommomSelect/factory-select.vue';
 export default {
     components: {
         materialDialog,
-        MaterialAdd
+        MaterialAdd,
+        factorySelect
     },
     props: {
         // 弹窗是否打开
@@ -182,15 +206,15 @@ export default {
     data() {
         const defaultForm = {
             id: null,
-            name: '',
+
             code: '',
+            name: '',
             modelType: '',
             brandNum: '',
             specification: '',
             measuringUnit: '',
 
             list: [
-           
             ]
 
         };
@@ -333,24 +357,18 @@ export default {
         },
 
 
-        /* 保存编辑 */
-        save() {
-            this.$refs.form.validate((valid) => {
-
-                if (!valid) {
-                    return false;
-                }
-                this.loading = true;
 
-
-
-            });
-        },
         /* 更新visible */
         updateVisible(value) {
             this.$emit('update:visible', value);
         },
 
+        async getCategoryBomFn() {
+            const res = await getCategoryBom(this.categoryId)
+            this.form.list = res.bomList
+            console.log(res)
+        },
+
 
     },
 
@@ -360,6 +378,7 @@ export default {
                 this.getVersionList()
                 if (this.data) {
                     this.categoryId = this.data.id
+                    this.getCategoryBomFn()
                     this.$util.assignObject(this.form, {
                         ...this.data
                     });