From 1a874fa5f58c97c2cb8b3f38a1a089268f4bf124 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 11 九月 2023 18:05:52 +0800
Subject: [PATCH] 	modified:   src/assets/api/controller.js 	deleted:    src/components/view/standard-table/bom.vue 	modified:   src/components/view/standard-table/material.vue 	new file:   src/components/view/standard-table/product.vue 	modified:   src/components/view/standard-table/target.vue 	modified:   src/components/view/standard-table/technology.vue 	modified:   src/components/view/standard.vue

---
 src/components/view/standard.vue |  246 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 226 insertions(+), 20 deletions(-)

diff --git a/src/components/view/standard.vue b/src/components/view/standard.vue
index c60f440..29fb3c4 100644
--- a/src/components/view/standard.vue
+++ b/src/components/view/standard.vue
@@ -5,7 +5,7 @@
         <el-col :span="12" style="line-height: 32px;">鏍囧噯BOM</el-col>
         <el-col :span="12" style="text-align: right;">
           <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;"
-            @click="bomAddModelVisible = true">鏂板</el-button>
+            @click="showBomAddModel">鏂板</el-button>
           <el-button icon="el-icon-plus">鏂板鐗堟湰</el-button>
           <el-button @click="bomRightUp=true" icon="el-icon-edit-outline">淇敼</el-button>
           <el-button @click="bomRightDl=true" icon="el-icon-delete">鍒犻櫎</el-button>
@@ -49,39 +49,176 @@
           <el-input v-model="searchName" size="small" placeholder="璇疯緭鍏�" style="width: 224px;margin-right: 24px;"
             clearable></el-input>
           <span>{{ tableType == 1 ? '鐗堟湰锛�' : '鐗堟湰锛�' }}</span>
-          <el-select v-model="VER" @change="verevent" style="width: 280px;" placeholder="璇烽�夋嫨">
+          <el-select size="small" v-model="VER" @change="verevent" style="width: 280px;" placeholder="璇烽�夋嫨">
             <el-option v-for="item in version" :key="item" :label="item" :value="item">
             </el-option>
           </el-select>
-          <el-button size="mini" @click="() => { searchName = ''; selectProductTableData() }"><span>閲� 缃�</span></el-button>
+          <el-button style="margin-left:10px;" size="mini" @click="() => { searchName = ''; selectProductTableData() }"><span>閲� 缃�</span></el-button>
           <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectProductTableData"><span>鏌�
               璇�</span></el-button>
         </div>
 
-        <div class="contentTable" v-if="this.typeselect == 0">
+        <div v-if="this.typeselect == 0">
           <technology  :tableType="tableType" :tableData="tableData"></technology>
         </div>
         <div v-if="this.typeselect == 1">
           <target :tableType="tableType" :tableData="tableData"></target>
         </div>
         <div v-if="this.typeselect == 2">
-          <bom  :tableType="tableType" :tableData="tableData"></bom>
+          <material :tableType="tableType" :tableData="tableData"></material>
         </div>
-        <div v-if="this.typeselect == 3">鐢熶骇宸ヨ壓</div>
+        <div v-if="this.typeselect == 3">
+          <product :tableType="tableType" :tableData="tableData"></product>
+        </div>
         
       </div>
     </div>
 
 
     <div class="bom-add-model">
-      <el-dialog title="BOM鏂板" :visible.sync="bomAddModelVisible" width="30%">
-        <div>
-          <!-- 鐗╂枡娓呭崟鏂板 -->
-          <bomClickAdd v-if="typeselect===2"/>
+      <el-dialog title="BOM鏂板" :visible.sync="bomAddModelVisible" width="35%">
+        <!-- 宸ヨ壓璺嚎 -->
+        <div v-if="typeselect == 0">銆�
+          <el-form :model="technologyForm" :inline="true" class="demo-form-inline" label-position="right"
+          :rules="boomRules" ref="boomForm" label-width="90px">
+            <el-form-item label="宸ュ簭:" prop="father" width="250">
+              <el-select v-model="technologyForm.father" 
+              style="width:200px;" placeholder="璇疯緭鍏ユ垨閫夋嫨宸ュ簭">
+                <el-option :value="item.father" :label="item.father" v-for="(item,index) in fatherList" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="宸ヨ壓鍚嶇О:" prop="name" width="250">
+              <el-input placeholder="璇疯緭鍏ュ伐鑹哄悕绉�" style="width:200px;"
+              v-model="technologyForm.name"></el-input>
+            </el-form-item>
+            <el-form-item label="璁惧缁�:" prop="deviceGroup" width="250">
+              <el-select placeholder="璇烽�夋嫨璁惧缁�"
+              style="width:200px;"
+              v-model="technologyForm.deviceGroup">
+              <el-option :value="item.father" 
+              v-for="(item,index) in deviceList" :key="index" :label="item.father"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="鐢熶骇瀹氶:" prop="productionQuota" width="250">
+              <el-input style="width:200px;" v-model.number="technologyForm.productionQuota" placeholder="璇疯緭鍏ョ敓浜у畾棰�" />
+            </el-form-item>
+          </el-form>
+        </div>
+        <!-- 鎶�鏈寚鏍� -->
+        <div v-if="typeselect == 1">
+          <el-form :model="targetForm" :inline="true" class="demo-form-inline" label-position="right"
+          label-width="80px">
+            <el-form-item label="鎸囨爣鍚嶇О:" prop="father" width="250">
+              <el-input style="width:200px;" v-model="targetForm.pname" placeholder="璇疯緭鍏ュ崟浣�"/>
+            </el-form-item>
+            <el-form-item label="鍗曚綅:" prop="name" width="250">
+              <el-input style="width:200px;" v-model="targetForm.unit" placeholder="璇疯緭鍏ュ崟浣�"/>
+            </el-form-item>
+            <el-form-item label="鍐呮帶鍊�:" prop="dg" width="250">
+              <el-input style="width:200px;" v-model="targetForm.internal" placeholder="璇疯緭鍏ュ崟浣�"/>
+            </el-form-item>
+            <el-form-item label="鏍囧噯鍊�:" prop="unit" width="250">
+              <el-input style="width:200px;" v-model="targetForm.required" placeholder="璇疯緭鍏ュ崟浣�"/>
+            </el-form-item>
+          </el-form>
+        </div>
+        <!-- 鐗╂枡娓呭崟 -->
+        <div v-if="typeselect == 2">
+          <el-form :model="materialForm" class="demo-form-inline" label-position="right"
+          label-width="80px">
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="瑙勬牸鍨嬪彿:" prop="father" width="250">
+                <el-input style="width:200px;" v-model="materialForm.pname" placeholder="璇疯緭鍏ュ崟浣�"/>
+              </el-form-item>
+              </el-col>
+              <el-col :span="12" style="text-align: right;">
+              <el-form-item label="浜у搧澶х被:" prop="name" width="250">
+                <el-select placeholder="璇烽�夋嫨浜у搧澶х被"
+                style="width:240px;" v-model="materialForm.dg">
+                <el-option value="1">1</el-option>
+                  <el-option value="2">2</el-option>
+                  <el-option value="3">3</el-option>
+                  <el-option value="4">4</el-option>
+                </el-select>            
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="鏉愭枡淇℃伅"></el-form-item>
+            </el-col>
+            <el-col :span="12" style="text-align: right;">
+              <el-button size="mini" style="text-align: right;">娣诲姞琛�</el-button>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-table >
+                <el-table-column label="鏉愭枡鍚嶇О"></el-table-column>
+                <el-table-column label="瑙勬牸鍨嬪彿"></el-table-column>
+                <el-table-column label="鍗曚綅"></el-table-column>
+                <el-table-column label="鏁伴噺"></el-table-column>
+              </el-table>
+            </el-col>
+          </el-row>
+          </el-form>
+        </div>
+        <!-- 鐢熶骇宸ヨ壓 -->
+        <div v-if="typeselect == 3">
+          <el-form :model="technologyForm" :inline="true" class="demo-form-inline" label-position="right"
+          label-width="80px">
+            <el-form-item label="宸ュ簭:" prop="father" width="250">
+              <el-select v-model="technologyForm.father" 
+              style="width:200px;"
+              placeholder="璇疯緭鍏ユ垨閫夋嫨鐢熶骇瀹氶">
+                <el-option value="1">1</el-option>
+                <el-option value="2">2</el-option>
+                <el-option value="3">3</el-option>
+                <el-option value="4">4</el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="宸ヨ壓鍚嶇О:" prop="name" width="250">
+              <el-select placeholder="璇疯緭鍏ユ垨閫夋嫨宸ヨ壓鍚嶇О"
+              style="width:200px;"
+              v-model="technologyForm.name">
+              <el-option value="1">1</el-option>
+                <el-option value="2">2</el-option>
+                <el-option value="3">3</el-option>
+                <el-option value="4">4</el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="璁惧:" prop="dg" width="250">
+              <el-select placeholder="璇烽�夋嫨璁惧"
+              style="width:200px;"
+              v-model="technologyForm.dg">
+              <el-option value="1">1</el-option>
+                <el-option value="2">2</el-option>
+                <el-option value="3">3</el-option>
+                <el-option value="4">4</el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="椤圭洰:" prop="dg" width="250">
+              <el-select placeholder="璇烽�夋嫨椤圭洰"
+              style="width:200px;"
+              v-model="technologyForm.dg">
+              <el-option value="1">1</el-option>
+                <el-option value="2">2</el-option>
+                <el-option value="3">3</el-option>
+                <el-option value="4">4</el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="鍗曚綅:" prop="unit" width="250">
+              <el-input style="width:200px;" v-model="technologyForm.unit" placeholder="璇疯緭鍏ュ崟浣�"/>
+            </el-form-item>
+            <el-form-item label="鎸囨爣:" prop="pq" width="250">
+              <el-input style="width:200px;" v-model="technologyForm.pq" placeholder="璇疯緭鍏ユ寚鏍�" />
+            </el-form-item>
+          </el-form>
         </div>
         <span slot="footer" class="dialog-footer">
           <el-button @click="bomAddModelVisible = false">鍙� 娑�</el-button>
-          <el-button type="primary" @click="bomAddModelVisible = false">纭� 瀹�</el-button>
+          <el-button type="primary" @click="confirmAdd('boomForm')">纭� 瀹�</el-button>
         </span>
       </el-dialog>
       <!-- 宸︿晶鐐瑰嚮+鎸夐挳 -->
@@ -123,13 +260,40 @@
 <script>
 import technology from "./standard-table/technology.vue"
 import material from "./standard-table/material.vue"
-import bom from "./standard-table/bom.vue"
+import target from "./standard-table/target.vue"
+import product from "./standard-table/product.vue"
 import bomClickAdd from '@/components/view/standard-box/bomClickAdd'
 export default {
-  components: { technology,material,bom,bomClickAdd },
-
+  components: { technology,material,target,product,bomClickAdd },
   data() {
     return {
+      //宸ュ簭鍒楄〃
+      fatherList:[],
+      //璁惧缁勫垪琛�
+      deviceList:[],
+      technologyForm:{
+        father:'',
+        name:'',
+        deviceGroup:'',
+        productionQuota:''
+      },
+      targetForm:{
+        pname:'',
+        unit:'',
+        internal:'',
+        required: ''
+      },
+      formTypeOptions:[],
+      materialForm:{},
+      boomRules:{
+        father:{required:true,message:'宸ュ簭涓嶈兘涓虹┖',trigger:'change'},
+        name:{required:true,message:'宸ヨ壓鍚嶇О涓嶈兘涓虹┖',trigger:'blur'},
+        deviceGroup:{required:true,message:'璁惧缁勪笉鑳戒负绌�',trigger:'change'},
+        productionQuota:[
+          {required:true,message:'鐢熶骇瀹氶涓嶈兘涓虹┖',trigger:'blur'},
+          {type:'number',required:true,message:'鏁版嵁绫诲瀷蹇呴』鏄函鏁板瓧',trigger:'blur'}
+        ]
+      },
       // BOM鏍戞暟鎹粨鏋�
       list: [],
       search: null,
@@ -171,8 +335,56 @@
     this.tableType=0
     this.selectMaterialTree()
     this.selectVersion()
+    console.log(this.formTypeOptions);
   },
   methods: {
+    confirmAdd(formName){
+      this.$refs[formName].validate(valid=>{
+        if(valid){
+          console.log(this.technologyForm);
+          this.$axios.post(this.$api.url.addTechnology,
+          {
+            "specificationsId": this.returntree.id,
+            "technologyDto": JSON.stringify({
+                deviceGroup: this.technologyForm.deviceGroup,
+                father: this.technologyForm.father,
+                name: this.technologyForm.name,
+                productionQuota: this.technologyForm.productionQuota,
+              })
+          },{
+            headers: { "Content-Type": "application/json" }
+          }).then(res=>{
+            this.$message.success(res.message);
+          }).catch(error=>{
+            this.$message.error(error.message);
+          })
+          this.bomAddModelVisible = false;
+        }
+      })
+    },
+    //鑾峰彇宸ュ簭鍒楄〃
+    getFatherList(){
+      this.$axios.get(this.$api.url.chooseFather,{
+        params:{specificationsId : this.returntree.id}
+      }).then(res=>{
+        this.fatherList = res.data;
+      }).catch(error=>{
+        this.$message.error(error.message);
+      })
+    },
+    //鑾峰彇璁惧缁勫垪琛�
+    getDeviceList(){
+      this.$axios.get(this.$api.url.chooseDevice).then(res=>{
+        this.deviceList = res.data;
+      }).catch(error=>{
+        this.$message.error(error.message);
+      })
+    },
+    showBomAddModel(){
+      this.getFatherList();
+      this.getDeviceList();
+      this.bomAddModelVisible = true
+    },
     startLeftAdd(){
       
     },
@@ -207,12 +419,10 @@
     TYPE(val) {//绫诲瀷.鏁版嵁
       // console.log(val);
       this.typeselect = val
-
       // console.log(this.typeselect);
       this.selectVersion()
     },
     handleNodeClick(val) {//鏍戠殑鍊�
-      // console.log(val);
       this.returntree = val
     },
     async selectVersion() {//鐗堟湰
@@ -296,7 +506,6 @@
       })
     },
     getDefault(arr, index) {
-      console.log(arr);
 			for (const item of arr) {
 				if (item.children && item.children.length > 0) {
 					// 鏈夊瓙鑺傜偣
@@ -380,9 +589,6 @@
 
 <style scoped>
 .standard {}
-
-.standard .contentTable{
-}
 
 .standard .title .el-button {
   height: 32px;

--
Gitblit v1.9.3