From 4d8049330f1378c87115a7fcb66265f815b49801 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期三, 13 九月 2023 16:52:06 +0800 Subject: [PATCH] modified: src/assets/api/controller.js modified: src/components/view/standard-table/material.vue modified: 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 | 92 +++++++++++++++++++--- src/components/view/standard-table/target.vue | 30 ++++++- src/components/view/standard-table/technology.vue | 35 ++++++-- src/assets/api/controller.js | 6 + src/components/view/standard-table/material.vue | 33 ++++++- src/components/view/standard-table/product.vue | 26 +++++ 6 files changed, 184 insertions(+), 38 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 5e90ab6..36976e0 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -24,7 +24,11 @@ addTechniqueByStandard:"/technique/add",//鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓 chooseProByProduct:"/technique/choosePro",//鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨椤圭洰(鐖跺瓙),鍗曚綅 chooseDevByProduct:"/technique/chooseDev",//鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨璁惧 - + addVersion:"/material/addVersion",//娣诲姞鍚屼竴涓瀷鍙峰伐鑹鸿矾绾�,鎶�鏈寚鏍�,鐗╂枡娓呭崟,鐢熶骇宸ヨ壓鐨勭増鏈� + delAllByTechnology:"/technology/delAllTech",//宸ヨ壓璺嚎-鎵归噺鍒犻櫎 + delAllByTarget:"/product/delAllPro",//鎶�鏈寚鏍�-鎵归噺鍒犻櫎 + delAllByMBom:"/mbom/delAllMbom",//鐗╂枡娓呭崟-鎵归噺鍒犻櫎 + delAllByProduct:"/technique/delAllTeq",//鐢熶骇宸ヨ壓-鎵归噺鍒犻櫎 // 鎶�鏈鐞�-鎶�鏈枃浠� selectAllOrder: "/orders/selectAllOrder", //鏌ヨ鎵�鏈夎鍗曞垪琛� selectOrderById: "/orders/selectOrderById", //鏍规嵁璁㈠崟id鏌ヨ璁㈠崟璇︽儏 diff --git a/src/components/view/standard-table/material.vue b/src/components/view/standard-table/material.vue index 32384da..4dc288b 100644 --- a/src/components/view/standard-table/material.vue +++ b/src/components/view/standard-table/material.vue @@ -56,7 +56,9 @@ data() { return { hasChildren:true, - selects: [] + selects: [], + isAllSelect:false, + deleteList:[], } }, props:['tableData','tableType'], @@ -109,14 +111,33 @@ } } }, - handleSelectionChange(val) { - this.deleteList = []; - val.forEach((v) => { - if (v.id !== undefined) { - this.deleteList.push(v.id); + //鏀瑰彉閫変腑 + toggleSelection(row, flag) { + this.$set(row, "isChecked", flag); + this.$nextTick(() => { + if (flag) { + this.$refs.multipleTable.toggleRowSelection(row, flag); + } else { + this.$refs.multipleTable.clearSelection(); } }); }, + handleSelectionChange(val) { + this.deleteList = []; + val.forEach((v) => { + this.searchIdFun(v); + }); + this.$emit("childData",this.deleteList); + }, + //閫掑綊鏌ユ壘閫変腑鏁版嵁id + searchIdFun(data){ + let obj = data; + if(obj.children != undefined){ + this.searchIdFun(obj.children); + }else{ + this.deleteList.push(obj.id); + } + }, // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫 } } diff --git a/src/components/view/standard-table/product.vue b/src/components/view/standard-table/product.vue index 6141739..62990fd 100644 --- a/src/components/view/standard-table/product.vue +++ b/src/components/view/standard-table/product.vue @@ -91,6 +91,7 @@ deviceGroupDialog:false, selects: [], isAllSelect:false, + deleteList:[], } }, props:['tableData','tableType'], @@ -134,13 +135,32 @@ } } }, + //鏀瑰彉閫変腑 + toggleSelection(row, flag) { + this.$set(row, "isChecked", flag); + this.$nextTick(() => { + if (flag) { + this.$refs.multipleTable.toggleRowSelection(row, flag); + } else { + this.$refs.multipleTable.clearSelection(); + } + }); + }, handleSelectionChange(val) { this.deleteList = []; val.forEach((v) => { - if (v.id !== undefined) { - this.deleteList.push(v.id); - } + this.searchIdFun(v); }); + this.$emit("childData",this.deleteList); + }, + //閫掑綊鏌ユ壘閫変腑鏁版嵁id + searchIdFun(data){ + let obj = data; + if(obj.children != undefined){ + this.searchIdFun(obj.children); + }else{ + this.deleteList.push(obj.tqid); + } }, // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫 } diff --git a/src/components/view/standard-table/target.vue b/src/components/view/standard-table/target.vue index cb8ad69..9524ae4 100644 --- a/src/components/view/standard-table/target.vue +++ b/src/components/view/standard-table/target.vue @@ -57,6 +57,8 @@ data() { return { selects: [], + deleteList:[], + isAllSelect:false, } }, props:['tableData','tableType'], @@ -99,13 +101,32 @@ } } }, + //鏀瑰彉閫変腑 + toggleSelection(row, flag) { + this.$set(row, "isChecked", flag); + this.$nextTick(() => { + if (flag) { + this.$refs.multipleTable.toggleRowSelection(row, flag); + } else { + this.$refs.multipleTable.clearSelection(); + } + }); + }, handleSelectionChange(val) { this.deleteList = []; val.forEach((v) => { - if (v.id !== undefined) { - this.deleteList.push(v.id); - } + this.searchIdFun(v); }); + this.$emit("childData",this.deleteList); + }, + //閫掑綊鏌ユ壘閫変腑鏁版嵁id + searchIdFun(data){ + let obj = data; + if(obj.children != undefined){ + this.searchIdFun(obj.children); + }else{ + this.deleteList.push(obj.pid); + } }, // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫 updateVal(row){ @@ -118,9 +139,6 @@ }).catch(error=>{ this.$message.error(error.message); }) - }, - handleSelectionChange(val) { - this.selects = val; }, } } diff --git a/src/components/view/standard-table/technology.vue b/src/components/view/standard-table/technology.vue index a550804..990a804 100644 --- a/src/components/view/standard-table/technology.vue +++ b/src/components/view/standard-table/technology.vue @@ -72,11 +72,6 @@ methods: { // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 // 鍏ㄩ��/鍙栨秷閫夋搷浣� - selectAll(val) { - this.isAllSelect = !this.isAllSelect; - let data = this.tableData; - this.toggleSelect(data, this.isAllSelect, "all"); - }, //閫夋嫨鏌愯 selectTr(selection, row) { this.$set(row, "isChecked", !row.isChecked); @@ -106,13 +101,37 @@ } } }, + //鏀瑰彉閫変腑 + toggleSelection(row, flag) { + this.$set(row, "isChecked", flag); + this.$nextTick(() => { + if (flag) { + this.$refs.multipleTable.toggleRowSelection(row, flag); + } else { + this.$refs.multipleTable.clearSelection(); + } + }); + }, + selectAll(val) { + this.isAllSelect = !this.isAllSelect; + let data = this.tableData; + this.toggleSelect(data, this.isAllSelect, "all"); + }, handleSelectionChange(val) { this.deleteList = []; val.forEach((v) => { - if (v.id !== undefined) { - this.deleteList.push(v.id); - } + this.searchIdFun(v); }); + this.$emit("childData",this.deleteList); + }, + //閫掑綊鏌ユ壘閫変腑鏁版嵁id + searchIdFun(data){ + let obj = data; + if(obj.children != undefined){ + this.searchIdFun(obj.children); + }else{ + this.deleteList.push(obj.id); + } }, // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫 showDialog(){ diff --git a/src/components/view/standard.vue b/src/components/view/standard.vue index 2018424..2a3269a 100644 --- a/src/components/view/standard.vue +++ b/src/components/view/standard.vue @@ -5,9 +5,9 @@ <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> - <el-button icon="el-icon-plus">鏂板鐗堟湰</el-button> - <el-button @click="bomRightDl=true" icon="el-icon-delete">鍒犻櫎</el-button> + @click="showBomAddModel">鏂板</el-button> + <el-button icon="el-icon-plus" @click="addVersionBtn">鏂板鐗堟湰</el-button> + <el-button @click="deleteDataBtn" icon="el-icon-delete">鍒犻櫎</el-button> </el-col> </el-row> </div> @@ -56,16 +56,17 @@ </div> <div class="contentTable" v-if="this.typeselect == 0"> - <technology :tableType="tableType" :tableData="tableData"></technology> + <technology @childData="getChildData" :tableType="tableType" :tableData="tableData"></technology> </div> <div v-if="this.typeselect == 1"> - <target :tableType="tableType" :tableData="tableData"></target> + <target @childData="getChildData" :tableType="tableType" :tableData="tableData"></target> </div> <div v-if="this.typeselect == 2"> - <bom :tableType="tableType" :tableData="tableData"></bom> + <material @childData="getChildData" :tableType="tableType" :tableData="tableData"></material> </div> - <div v-if="this.typeselect == 3">鐢熶骇宸ヨ壓</div> - + <div v-if="this.typeselect == 3"> + <product @childData="getChildData" :tableType="tableType" :tableData="tableData"></product> + </div> </div> </div> @@ -332,10 +333,11 @@ <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,bomClickAdd }, + components: { technology,material,target,product,bomClickAdd }, data() { var checkPq = (rule,value,callback)=>{ @@ -352,6 +354,8 @@ callback(); }; return { + //瀛愮粍浠朵紶鐨刬d鍒楄〃 + childIds:[], //宸ュ簭鍒楄〃 technologyIdList:[], fatherList:[], @@ -429,7 +433,7 @@ // BOM鏍戞暟鎹粨鏋� list: [], search: null, - tableType: 1, // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾� + tableType: 0, // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾� searchName: "",// 鏌ヨ鏉′欢-鍚嶇О checkTreeNode: {},// 鐐瑰嚮閫変腑鏍戣妭鐐� tableData: [], @@ -439,9 +443,7 @@ bomRightDl: false, formTypeOptions: null, typeselect: 0, - returntree: { - id:28, - }, + returntree: {id:28}, version: {}, leftAdd:{ type: [], @@ -574,6 +576,68 @@ leftAddBom(){ }, + //鑾峰彇瀛愮粍浠舵暟鎹� + getChildData(data){ + this.childIds = data; + }, + //鍒犻櫎鎸夐挳 + deleteDataBtn(){ + let ids; + let url; + ids = this.childIds.filter(item=>{ + return item != undefined; + }); + if(ids.length < 1){ + this.$message.error("璇峰厛閫夋嫨鏁版嵁锛�"); + return; + } + switch(this.typeselect){ + case 0: + url = this.$api.url.delAllByTechnology; + break; + case 1: + url = this.$api.url.delAllByTarget; + break; + case 2: + url = this.$api.url.delAllByMBom; + break; + case 3: + url = this.$api.url.delAllByProduct; + break; + } + this.$confirm('纭鍒犻櫎宸查�変腑鐨勬暟鎹悧', '鍒犻櫎', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.$axios.post(url,{ + ids : ids.join(",") + }).then(res=>{ + this.selectAll(); + this.$message.success(res.message); + }).catch(error=>{ + this.$message.error(error.message); + }) + }).catch(() => {}); + }, + //鏂板鐗堟湰 + addVersionBtn(){ + this.$confirm('纭鏂板鐗堟湰鍚�', '鏂板鐗堟湰', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'info' + }).then(() => { + this.$axios.post(this.$api.url.addVersion,{ + specificationsId : this.returntree.id, + version : this.version2.substring(1,2), + }).then(res=>{ + this.selectVersion(); + this.$message.success(res.message); + }).catch(error=>{ + this.$message.error(error.message); + }) + }).catch(() => {}); + }, //鍙充晶bom,纭鏂板 confirmAdd(formName){ this.$refs[formName].validate(valid=>{ -- Gitblit v1.9.3