ysy 1 gadu atpakaļ
vecāks
revīzija
f06866546c

+ 2 - 1
src/enum/dict.js

@@ -46,7 +46,8 @@ export default {
   区域等级: 'main_area_level',
   区域类型: 'main_area_type',
   工种类型: 'work_type',
-  '客户/供应商资质类型': 'contact_qc_type'
+  '客户/供应商资质类型': 'contact_qc_type',
+  生产类型: 'productionType'
 };
 
 export const numberList = [

+ 138 - 28
src/views/material/BOMmanage/components/attribute.vue

@@ -46,25 +46,7 @@
         </el-col>
       </el-row>
 
-      <el-row>
-        <el-col :span="8" label-width="100px">
-          <el-form-item label="型号" prop="name">
-            <el-input
-              placeholder=""
-              v-model="attributeData.modeType"
-            ></el-input>
-          </el-form-item>
-        </el-col>
 
-        <el-col :span="8" label-width="100px">
-          <el-form-item label="规格" prop="name">
-            <el-input
-              placeholder=""
-              v-model="attributeData.specification"
-            ></el-input>
-          </el-form-item>
-        </el-col>
-      </el-row>
 
       <el-row>
         <el-col :span="8" label-width="100px">
@@ -77,13 +59,15 @@
         </el-col>
 
         <el-col :span="8" label-width="100px">
-          <el-form-item label="物料编码" prop="name">
+          <el-form-item label="bom路线" prop="name">
             <el-input
               placeholder=""
-              v-model="attributeData.materialsCode"
+              v-model="attributeData.bomTypeRouting"
             ></el-input>
           </el-form-item>
         </el-col>
+
+    
       </el-row>
 
       <el-row>
@@ -184,18 +168,112 @@
         </el-col>
       </el-row>
 
-   <div class="btn_box">
-    <el-button type="primary" >修改</el-button>
-   </div>
+      <el-row style="margin-top: 18px">
+        <el-divider>产品信息</el-divider>
+
+        <el-col style="margin-top: 18px" :span="12" label-width="100px">
+          <el-form-item label="产品:" prop="category.name">
+            <el-input
+              placeholder="请选择产品"
+              @click.native="handleProduct()"
+              v-model="category.name"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+
+        <div v-if="category.name">
+          <el-col style="margin-top: 18px" :span="12" label-width="100px">
+            <el-form-item label="编码:" prop="code">
+              {{ category.code }}
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12" label-width="100px">
+            <el-form-item label="牌号:" prop="brandNum">
+              {{ category.brandNum }}
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12" label-width="100px">
+            <el-form-item label="型号:" prop="modelType">
+              {{ category.modelType }}
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12" label-width="100px">
+            <el-form-item label="规格:" prop="specification">
+              {{ category.specification }}
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12" label-width="100px">
+            <el-form-item label="计量单位:" prop="measuringUnit">
+              {{ category.measuringUnit }}
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12" label-width="100px">
+            <el-form-item label="重量单位:" prop="weightUnit">
+              {{ category.weightUnit }}
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12" label-width="100px">
+            <el-form-item label="包装单位:" prop="packingUnit">
+              {{ category.packingUnit }}
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12" label-width="100px">
+            <el-form-item label="毛重:" prop="roughWeight">
+              {{ category.roughWeight }}
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12" label-width="100px">
+            <el-form-item label="净重:" prop="netWeight">
+              {{ category.netWeight }}
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12" label-width="100px">
+            <el-form-item
+              label="加工类型:"
+              prop="isConsumable"
+              v-if="
+                [1, 23, 9, 28].includes(Number(category.categoryLevelPathId))
+              "
+            >
+              {{ category.isConsumable == 1 ? '批量' : '单件' }}
+            </el-form-item>
+          </el-col>
+        </div>
+      </el-row>
+
+      <div class="btn_box">
+        <el-button type="primary">修改</el-button>
+      </div>
     </el-form>
+
+    <standardOutput
+      ref="standardOutputRefs"
+      @selection="chooseStandardList"
+    ></standardOutput>
   </div>
 </template>
 
 <script>
+  import standardOutput from './standardOutput.vue';
   export default {
+    components: {
+      standardOutput
+    },
     data() {
       return {
         form: {},
+        category: {
+          name: ''
+        },
         statusOptions: [
           {
             label: '默认',
@@ -218,18 +296,50 @@
         ]
       };
     },
+
+    created() {
+ 
+    },
+
+    beforeDestroy() {
+      this.category =  {    name: ''}
+    },
+    methods: {
+      handleProduct() {
+        this.$refs.standardOutputRefs.open(9);
+      },
+      chooseStandardList(type, data) {
+        if (type == 9) {
+          this.category = data[0];
+          this.$forceUpdate();
+        }
+      }
+    },
     props: {
       attributeData: {
         type: Object,
         default: {}
       }
+    },
+
+    watch: {
+      attributeData(val) {
+        console.log(val)
+        console.log(Object.prototype.hasOwnProperty.call(val, 'category'))
+        if (Object.prototype.hasOwnProperty.call(val, 'category')) {
+          this.category = val.category;
+
+          this.$forceUpdate()
+        } 
+      }
     }
   };
 </script>
 
 <style lang="scss" scoped>
-.btn_box{
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}</style>
+  .btn_box {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+</style>

+ 77 - 70
src/views/material/BOMmanage/components/bomTreeDialog.vue

@@ -8,10 +8,15 @@
     append-to-body
     width="70%"
   >
-    <el-form label-width="100px" ref="form" :model="attributeData">
+    <el-form
+      label-width="100px"
+      ref="form"
+      :rules="rules"
+      :model="attributeData"
+    >
       <el-row>
         <el-col :span="12" label-width="100px">
-          <el-form-item label="父级节点" prop="type">
+          <el-form-item label="父级节点" prop="parentId">
             <selectTree
               ref="tree"
               class="form-ipt"
@@ -69,7 +74,6 @@
           </el-form-item>
         </el-col>
 
-
         <el-col :span="12" label-width="100px">
           <el-form-item label="材料" prop="materialsName">
             <el-input
@@ -88,6 +92,19 @@
           </el-form-item>
         </el-col>
 
+        <el-col :span="12" label-width="100px">
+          <el-form-item label="bom路线" prop="bomTypeRouting">
+            <el-input
+              placeholder=""
+              v-model="attributeData.bomTypeRouting"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+
+
+
+        
+
         <el-col :span="12" label-width="100px">
           <el-form-item label="用量" prop="dosage">
             <el-input placeholder="" v-model="attributeData.dosage"></el-input>
@@ -132,7 +149,6 @@
         <el-col :span="12" label-width="100px">
           <el-form-item label="版本" prop="versions">
             <el-input
-              :disabled="versions"
               placeholder=""
               @input="versionsChange"
               v-model="attributeData.versions"
@@ -150,15 +166,12 @@
             ></el-input>
           </el-form-item>
         </el-col>
-
-
       </el-row>
-   
-      <el-row  style="margin-top: 18px;">
-        <el-divider >产品信息</el-divider>
 
+      <el-row style="margin-top: 18px">
+        <el-divider>产品信息</el-divider>
 
-        <el-col style="margin-top: 18px;" :span="12" label-width="100px">
+        <el-col style="margin-top: 18px" :span="12" label-width="100px">
           <el-form-item label="产品:" prop="category.name">
             <el-input
               placeholder="请选择产品"
@@ -169,87 +182,73 @@
         </el-col>
 
         <div v-if="category.name">
-        <el-col style="margin-top: 18px;" :span="12" label-width="100px">
-          <el-form-item label="编码:" prop="code">
-             {{ category.code }}
+          <el-col style="margin-top: 18px" :span="12" label-width="100px">
+            <el-form-item label="编码:" prop="code">
+              {{ category.code }}
             </el-form-item>
           </el-col>
 
-      
-
           <el-col :span="12" label-width="100px">
-          <el-form-item label="牌号:" prop="brandNum">
-             {{ category.brandNum }}
+            <el-form-item label="牌号:" prop="brandNum">
+              {{ category.brandNum }}
             </el-form-item>
           </el-col>
 
-
           <el-col :span="12" label-width="100px">
-          <el-form-item label="型号:" prop="modelType">
-             {{ category.modelType }}
+            <el-form-item label="型号:" prop="modelType">
+              {{ category.modelType }}
             </el-form-item>
           </el-col>
 
           <el-col :span="12" label-width="100px">
-          <el-form-item label="规格:" prop="specification">
-             {{ category.specification }}
+            <el-form-item label="规格:" prop="specification">
+              {{ category.specification }}
             </el-form-item>
           </el-col>
 
           <el-col :span="12" label-width="100px">
-          <el-form-item label="计量单位:" prop="measuringUnit">
-             {{ category.measuringUnit }}
+            <el-form-item label="计量单位:" prop="measuringUnit">
+              {{ category.measuringUnit }}
             </el-form-item>
           </el-col>
 
-
           <el-col :span="12" label-width="100px">
-          <el-form-item label="重量单位:" prop="weightUnit">
-             {{ category.weightUnit }}
+            <el-form-item label="重量单位:" prop="weightUnit">
+              {{ category.weightUnit }}
             </el-form-item>
           </el-col>
 
-
-          
-
           <el-col :span="12" label-width="100px">
-          <el-form-item label="包装单位:" prop="packingUnit">
-             {{ category.packingUnit }}
+            <el-form-item label="包装单位:" prop="packingUnit">
+              {{ category.packingUnit }}
             </el-form-item>
           </el-col>
 
-
           <el-col :span="12" label-width="100px">
-          <el-form-item label="毛重:" prop="roughWeight">
-             {{ category.roughWeight }}
+            <el-form-item label="毛重:" prop="roughWeight">
+              {{ category.roughWeight }}
             </el-form-item>
           </el-col>
 
           <el-col :span="12" label-width="100px">
-          <el-form-item label="净重:" prop="netWeight">
-             {{ category.netWeight }}
+            <el-form-item label="净重:" prop="netWeight">
+              {{ category.netWeight }}
             </el-form-item>
           </el-col>
 
-
-
-          
           <el-col :span="12" label-width="100px">
-          <el-form-item label="加工类型:" prop="isConsumable"   v-if="[1, 23, 9, 28].includes(Number(category.categoryLevelPathId))">
-             {{ category.isConsumable == 1 ? '批量' : '单件' }}
+            <el-form-item
+              label="加工类型:"
+              prop="isConsumable"
+              v-if="
+                [1, 23, 9, 28].includes(Number(category.categoryLevelPathId))
+              "
+            >
+              {{ category.isConsumable == 1 ? '批量' : '单件' }}
             </el-form-item>
           </el-col>
-
-      
-
-
-
         </div>
-
-
-
       </el-row>
-
     </el-form>
     <div class="btns">
       <el-button type="primary" size="small" @click="save">保存</el-button>
@@ -260,7 +259,6 @@
       ref="standardOutputRefs"
       @selection="chooseStandardList"
     ></standardOutput>
-
   </el-dialog>
 </template>
 
@@ -274,7 +272,7 @@
     components: {
       userSearch,
       selectTree,
-      standardOutput,
+      standardOutput
     },
     data() {
       return {
@@ -288,6 +286,15 @@
         category: {
           name: ''
         },
+
+        rules: {
+          parentId: [
+            { required: true, message: '请选择父级节点', trigger: 'change' }
+          ],
+          code: [{ required: true, message: '请选择编码', trigger: 'change' }],
+
+          name: [{ required: true, message: '请选择名称', trigger: 'change' }]
+        },
         bomTreeList: [],
         statusOptions: [
           {
@@ -313,25 +320,27 @@
     },
 
     methods: {
-
-
       getTreeValue(data) {
         this.attributeData.parentId = data.id;
         this.attributeData.level = +data.level + 1;
       },
       save() {
-        if (!this.attributeData.parentId) {
-          this.attributeData.parentId = 0;
-          this.attributeData.level = 1;
-        
-        }
-        this.attributeData.category = this.category
-        saveBomTreeList(this.attributeData).then((res) => {
-          if (res.code == '0') {
-            this.$message.success('保存成功');
-            this.$emit('reload', this.attributeData.versions);
-            this.handleClose();
+        this.$refs.form.validate((valid) => {
+          if (!valid) {
+            return false;
+          }
+          if (!this.attributeData.parentId) {
+            this.attributeData.parentId = 0;
+            this.attributeData.level = 1;
           }
+          this.attributeData.category = this.category;
+          saveBomTreeList(this.attributeData).then((res) => {
+            if (res.code == '0') {
+              this.$message.success('保存成功');
+              this.$emit('reload', this.attributeData.versions);
+              this.handleClose();
+            }
+          });
         });
       },
       versionsChange(versions) {
@@ -344,10 +353,8 @@
       },
       chooseStandardList(type, data) {
         if (type == 9) {
-
-           this.category = data[0];
-           this.$forceUpdate()
-
+          this.category = data[0];
+          this.$forceUpdate();
         }
       },
 

+ 4 - 1
src/views/material/product/components/index-data.vue

@@ -369,8 +369,11 @@
 
     methods: {
       toBomManager(row) {
+
+  
+
         this.$router.push({
-          path: '/material/BOMmanage',
+          path: '/material/BOMmanage/details',
           query: {
             categoryId: row.id,
             code: row.code

+ 77 - 41
src/views/material/product/detail.vue

@@ -16,7 +16,6 @@
 
         <el-row :gutter="24">
           <el-col :span="8">
-
             <el-form-item label="分类" prop="categoryLevelName">
               <el-input
                 v-model="form.categoryLevelName"
@@ -27,15 +26,18 @@
 
           <el-col :span="8" v-if="ruleCode == '自定义'" key="1">
             <el-form-item label="编码" prop="code">
-              <el-input v-model="form.code" readonly @click.native="openCode"  :disabled="status == 0" />
+              <el-input
+                v-model="form.code"
+                readonly
+                @click.native="openCode"
+                :disabled="status == 0"
+              />
             </el-form-item>
           </el-col>
 
-
-      
           <el-col :span="8" v-else key="2">
             <el-form-item label="编码" prop="code">
-              <el-input v-model="form.code"   :disabled="status == 0" />
+              <el-input v-model="form.code" :disabled="status == 0" />
             </el-form-item>
           </el-col>
 
@@ -45,6 +47,42 @@
             </el-form-item>
           </el-col>
 
+          <el-col :span="8">
+            <el-form-item label="图号/件号" prop="partNumber">
+              <el-input v-model="form.partNumber" />
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="8">
+            <el-form-item label="生产类型" prop="produceType">
+              <el-select v-model="form.produceType" filterable multiple>
+                <el-option
+                  v-for="item in dictList"
+                  :key="item.value"
+                  :value="item.value"
+                  :label="item.label"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+
+          <el-col
+            :span="8"
+            v-if="[1, 23, 9, 28].includes(Number(categoryLevelPathId))"
+          >
+            <el-form-item label="加工类型" prop="isConsumable">
+              <el-select
+                v-model="form.isConsumable"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option :value="1" label="批量"></el-option>
+                <el-option :value="0" label="单件"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+
+
           <el-col :span="8">
             <el-form-item label="牌号" prop="brandNum">
               <el-input v-model="form.brandNum" />
@@ -117,21 +155,7 @@
             </el-form-item>
           </el-col>
 
-          <el-col
-            :span="8"
-            v-if="[1, 23, 9, 28].includes(Number(categoryLevelPathId))"
-          >
-            <el-form-item label="加工类型" prop="isConsumable">
-              <el-select
-                v-model="form.isConsumable"
-                size="small"
-                style="width: 100%"
-              >
-                <el-option :value="1" label="批量"></el-option>
-                <el-option :value="0" label="单件"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
+
 
           <el-col :span="8">
             <el-form-item label="净重">
@@ -234,12 +258,15 @@
   import personSelect from '@/components/CommomSelect/person-select.vue';
   import linkMsg from './components/link-msg.vue';
   import { getDetails } from '@/api/classifyManage/itemInformation';
-
-  import { getCode ,rootCategoryCode } from '@/api/codeManagement';
+  import {getByCode} from "@/api/system/dictionary-data";
+  import { getCode, rootCategoryCode } from '@/api/codeManagement';
 
   import { addMaterial } from '@/api/material/list.js';
   import { deepClone } from '@/utils/index';
   import { finishPageTab, reloadPageTab } from '@/utils/page-tab-util';
+
+
+
   export default {
     name: 'ManageMaterial',
     components: {
@@ -300,6 +327,8 @@
         },
 
         categoryLevelPathId: null,
+
+        dictList: [],
         // 表单验证规则
         rules: {
           categoryLevelGroupName: [
@@ -332,16 +361,18 @@
         ruleCode: null,
         codeShow: false,
 
-        status: null,
-
+        status: null
       };
     },
+
+
     async created() {
       this.status = this.$route.query.status;
 
       if (this.$route.query.id) {
         this._getDetails();
       }
+      this.getDictList('productionType')
     },
     methods: {
       async _getDetails() {
@@ -356,16 +387,13 @@
         this.judgeSet(info);
         this.searchDeptNodeClick(this.form.chargeDeptId);
 
-
-        
         if (this.status == 1) {
-            rootCategoryCode(this.categoryLevelPathId).then((res) => {
-              this.$set(this.form, 'code', res);
-            });
-          }
-
+          rootCategoryCode(this.categoryLevelPathId).then((res) => {
+            this.$set(this.form, 'code', res);
+          });
+        }
 
-        this.$forceUpdate()
+        this.$forceUpdate();
       },
       // 判断字段类型并赋值
       judgeSet(info) {
@@ -417,10 +445,9 @@
       handleDirectorChange(id, info) {},
       // 确定分类
       async confirmCategory(node, title, PathInfo, ruleCode) {
-   
-      if(this.status != 0) {
-        this.$set(this.form, 'code', null);
-      }
+        if (this.status != 0) {
+          this.$set(this.form, 'code', null);
+        }
         this.categoryLevelPathId = PathInfo.categoryLevelPathId.split(',')[0];
 
         if (title == '选择产品分类') {
@@ -435,18 +462,27 @@
 
           this.ruleCode = ruleCode;
 
-          if (ruleCode && ruleCode != '自定义'  && this.status != 0) {
+          if (ruleCode && ruleCode != '自定义' && this.status != 0) {
             const code = await getCode(ruleCode);
             this.$set(this.form, 'code', code);
           }
-
-
-    
-
         }
 
         this.$forceUpdate();
       },
+
+      async getDictList(code) {
+      let {data: res} = await getByCode(code)
+        this.dictList =  res.map(item => {
+        let values = Object.keys(item)
+        return {
+          value: values[0],
+          label: item[values[0]]
+        }
+      })
+      console.log(123, this.dictList);
+    },
+
       openCategory() {
         this.$refs.categoryRefs.open();
       },

+ 2 - 2
src/views/system/organization/components/org-user-edit.vue

@@ -21,7 +21,7 @@
           </el-form-item>
 
           <el-form-item label="所属工厂:">
-            <el-select style="width: 100%" clearable v-model="form.factoryId" multiple  filterable placeholder="请选择所属工厂">
+            <el-select style="width: 100%" clearable v-model="form.factoryId"   filterable placeholder="请选择所属工厂">
               <el-option
                 v-for="item in factoryList"
                 :label="item.name"
@@ -159,7 +159,7 @@ export default {
       phone: '',
       age: '',
       accountId: '',
-      factoryId: [],
+      factoryId: '',
       workTypeId: ''
     };
     return {