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