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 --- /dev/null | 107 -------- src/components/view/standard.vue | 246 +++++++++++++++++- src/components/view/standard-table/target.vue | 86 +++++ src/components/view/standard-table/technology.vue | 109 +++++++ src/assets/api/controller.js | 5 src/components/view/standard-table/material.vue | 61 +++ src/components/view/standard-table/product.vue | 130 ++++++++++ 7 files changed, 589 insertions(+), 155 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 34890eb..bdc3c61 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -6,6 +6,11 @@ selectProductByMaterial: "product/selectTreeByMaterial", //鏍规嵁鐗╂枡鏌ヨ椤圭洰琛ㄦ牸 selectTechnologyByMaterial: "technology/select", selectAll:"/material/selectAll",//鍙充晶鏁版嵁 + technologyWrite:"/technology/write",//宸ヨ壓璺嚎锛岀Щ寮�淇濆瓨鐢熶骇瀹氶 + productWrite:"/product/write",//鎶�鏈寚鏍囷紝绉诲紑淇濆瓨鍐呮帶鍊煎拰鏍囧噯鍊� + chooseFather: "/technology/chooseFather",//鑾峰彇宸ュ簭鍒楄〃 + chooseDevice: "/technology/chooseDevice",//鑾峰彇璁惧缁勫垪琛� + addTechnology: "/technology/add",//娣诲姞宸ヨ壓璺嚎 // 鎶�鏈鐞�-鎶�鏈枃浠� selectAllOrder: "/orders/selectAllOrder", //鏌ヨ鎵�鏈夎鍗曞垪琛� selectOrderById: "/orders/selectOrderById", //鏍规嵁璁㈠崟id鏌ヨ璁㈠崟璇︽儏 diff --git a/src/components/view/standard-table/bom.vue b/src/components/view/standard-table/bom.vue deleted file mode 100644 index fffd709..0000000 --- a/src/components/view/standard-table/bom.vue +++ /dev/null @@ -1,107 +0,0 @@ -<template> - <div class="standard"> - <div> - <el-table :data="tableData" height="800" row-key="id" border - :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}" - @selection-change="handleSelectionChange" default-expand-all - :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> - <el-table-column type="selection" width="55"> - </el-table-column> - <el-table-column type="index" width="60" label="搴忓彿"> - </el-table-column> - <el-table-column prop="father" label="宸ュ簭" sortable width="200px"> - <template slot-scope="scope"> - <el-tag v-if="scope.row.children" type="primary">01</el-tag> - <span style="color: black"> - {{ scope.row.father }} - </span> - </template> - </el-table-column> - <el-table-column sortable label="宸ヨ壓鍚嶇О"> - <template slot-scope="scope"> - <el-tag type="success" v-if="!scope.row.children">02</el-tag> - <span style="color: black">{{ scope.row.name }}</span> - </template> - </el-table-column> - <el-table-column prop="mname" label="鏉愭枡鍚嶇О"> - </el-table-column> - <el-table-column prop="specifications" label="瑙勬牸"> - </el-table-column> - <el-table-column prop="unit" label="鍗曚綅"> - </el-table-column> - <el-table-column prop="num" label="鏁伴噺"> - </el-table-column> - <!-- <el-table-column label="鎿嶄綔"> - <el-button style="color: rgb(137, 137, 229);">缂栬緫</el-button> - </el-table-column> --> - </el-table> - </div> - </div> - </template> - - <script> - export default { - data() { - return { - selects: [] - } - }, - props:['tableData','tableType'], - created() { - console.log(this.tableData) - }, - mounted() { - - }, - methods: { - handleSelectionChange(val) { - this.selects = val; - } - } - } - </script> - - <style scoped> - .standard { - width: 100%; - height: 100%; - } - </style> - <style> - .standard * { - font-size: 14px; - } - - .standard .has-gutter .el-table__cell { - background-color: #F0F1F5 !important; - color: #333; - } - - .standard .has-gutter .el-table__cell .cell { - font-size: 16px; - font-weight: 500; - } - - .standard .cell { - color: #333; - padding-left: 17px !important; - } - - .standard { - width: 100%; - height: 100%; - overflow: auto; - } - - .standard .el-table__body-wrapper { - height: 100%; - } - - .standard .el-table__body { - height: 100%; - } - .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){ - padding-left: 23px !important; - } - </style> - \ No newline at end of file diff --git a/src/components/view/standard-table/material.vue b/src/components/view/standard-table/material.vue index 7ae1a84..66e3416 100644 --- a/src/components/view/standard-table/material.vue +++ b/src/components/view/standard-table/material.vue @@ -1,12 +1,13 @@ <template> <div class="standard"> <div> - <el-table :data="tableData" max-height="675" style="width: 100%;margin-bottom: 20px;" row-key="rowId" border + <el-table :data="tableData" max-height="675" row-key="rowId" border + @select-all="selectAll" @select="selectTr" ref="multipleTable" @selection-change="handleSelectionChange" default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> <el-table-column type="selection" width="55"> </el-table-column> - <el-table-column type="index" width="50" label="搴忓彿"> + <el-table-column type="index" width="60" label="搴忓彿"> </el-table-column> <el-table-column prop="father" label="宸ュ簭" sortable width="200px"> <template slot-scope="scope"> @@ -19,7 +20,7 @@ <el-table-column prop="tname" sortable label="宸ヨ壓鍚嶇О"> <template slot-scope="scope"> <el-tag type="success" v-if="scope.row.tname != null">02</el-tag> - <span style="color: black"> + <span style="color: #000000"> {{ scope.row.tname }} </span> </template> @@ -54,16 +55,54 @@ } }, props:['tableData','tableType'], - created() { - console.log(this.tableData,this.tableType) - }, - mounted() { - - }, + created() {}, + mounted() {}, 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); + this.$nextTick(() => { + this.isAllSelect = row.isChecked; + this.toggleSelect(row, row.isChecked, "tr"); + }); + }, + //閫掑綊瀛愮骇 + toggleSelect(data, flag, type) { + if (type === "all") { + if (data.length > 0) { + data.forEach((item) => { + this.toggleSelection(item, flag); + if (item.children && item.children.length > 0) { + this.toggleSelect(item.children, flag, type); + } + }); + } + } else { + if (data.children && data.children.length > 0) { + data.children.forEach((item) => { + item.isChecked = !item.isChecked; + this.$refs.multipleTable.toggleRowSelection(item, flag); + this.toggleSelect(item, flag, type); + }); + } + } + }, handleSelectionChange(val) { - this.selects = val; - } + this.deleteList = []; + val.forEach((v) => { + if (v.id !== undefined) { + this.deleteList.push(v.id); + } + }); + }, + // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫 } } </script> diff --git a/src/components/view/standard-table/product.vue b/src/components/view/standard-table/product.vue new file mode 100644 index 0000000..80f18e1 --- /dev/null +++ b/src/components/view/standard-table/product.vue @@ -0,0 +1,130 @@ +<style scoped> + .standard { + width: 100%; + height: 100%; + } + .standard * { + font-size: 14px; + } + + .standard .has-gutter .el-table__cell { + background-color: #F0F1F5 !important; + color: #333; + } + + .standard .has-gutter .el-table__cell .cell { + font-size: 16px; + font-weight: 500; + } + + .standard .cell { + color: #333; + padding-left: 17px !important; + } + + .standard { + width: 100%; + height: 100%; + overflow: auto; + } + + /* .standard .el-table__body-wrapper { + height: 100%; + } */ + + /* .standard .el-table__body { + height: 100%; + } */ + .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){ + padding-left: 23px !important; + } +</style> +<template> + <div class="standard"> + <el-table ref="multipleTable" :data="tableData" row-key="rowId" border max-height="675" + @select-all="selectAll" @select="selectTr" + @selection-change="handleSelectionChange" default-expand-all + :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> + <el-table-column type="selection" width="55"></el-table-column> + <el-table-column type="index" width="60" label="搴忓彿"></el-table-column> + <el-table-column prop="father" label="宸ュ簭"> + <template slot-scope="scope"> + <el-tag type="primary" v-if="scope.row.father != null">01</el-tag> + <span>{{scope.row.father}}</span> + </template> + </el-table-column> + <el-table-column prop="name" label="宸ヨ壓鍚嶇О"> + <template slot-scope="scope"> + <el-tag type="success" v-if="scope.row.name != null">02</el-tag> + <span>{{scope.row.name}}</span> + </template> + </el-table-column> + <el-table-column prop="device" label="璁惧鍚嶇О"> + <template slot-scope="scope"> + <el-tag type="info" color="#faf2ff" v-if="scope.row.device != null"> + <span style="color: #e1affb">03</span> + </el-tag> + <span>{{scope.row.device}}</span> + </template> + </el-table-column> + <el-table-column prop="productFather" label="椤圭洰"></el-table-column> + <el-table-column prop="unit" label="鍗曚綅"></el-table-column> + <el-table-column prop="product" label="鎸囨爣"></el-table-column> + </el-table> + </div> +</template> +<script> +export default ({ + data() { + + }, + props:['tableData','tableType'], + 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); + this.$nextTick(() => { + this.isAllSelect = row.isChecked; + this.toggleSelect(row, row.isChecked, "tr"); + }); + }, + //閫掑綊瀛愮骇 + toggleSelect(data, flag, type) { + if (type === "all") { + if (data.length > 0) { + data.forEach((item) => { + this.toggleSelection(item, flag); + if (item.children && item.children.length > 0) { + this.toggleSelect(item.children, flag, type); + } + }); + } + } else { + if (data.children && data.children.length > 0) { + data.children.forEach((item) => { + item.isChecked = !item.isChecked; + this.$refs.multipleTable.toggleRowSelection(item, flag); + this.toggleSelect(item, flag, type); + }); + } + } + }, + handleSelectionChange(val) { + this.deleteList = []; + val.forEach((v) => { + if (v.id !== undefined) { + this.deleteList.push(v.id); + } + }); + }, + // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫 + } +}) +</script> diff --git a/src/components/view/standard-table/target.vue b/src/components/view/standard-table/target.vue index 7dcfe2a..f07c292 100644 --- a/src/components/view/standard-table/target.vue +++ b/src/components/view/standard-table/target.vue @@ -1,14 +1,15 @@ <template> <div class="standard"> <div> - <el-table ref="table" :data="tableData" row-key="rowId" border max-height="675" + <el-table ref="multipleTable" :data="tableData" row-key="rowId" border max-height="675" + @select-all="selectAll" @select="selectTr" @selection-change="handleSelectionChange" default-expand-all :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> <el-table-column type="selection" width="55"></el-table-column> <el-table-column type="index" width="60" label="搴忓彿"></el-table-column> <el-table-column prop="tfather" label="宸ュ簭"> <template slot-scope="scope"> - <el-tag type="primay" v-if="scope.row.tfather != null">01</el-tag> + <el-tag type="primary" v-if="scope.row.tfather != null">01</el-tag> <span>{{scope.row.tfather}}</span> </template> </el-table-column> @@ -27,8 +28,20 @@ </template> </el-table-column> <el-table-column prop="unit" label="鍗曚綅"></el-table-column> - <el-table-column prop="internal" label="鍐呮帶鍊�"></el-table-column> - <el-table-column prop="required" label="鏍囧噯鍊�"></el-table-column> + <el-table-column prop="internal" label="鍐呮帶鍊�"> + <template slot-scope="scope"> + <el-input v-model="scope.row.internal" + v-if="scope.row.internal != null" + @blur="updateVal(scope.row)"></el-input> + </template> + </el-table-column> + <el-table-column prop="required" label="鏍囧噯鍊�"> + <template slot-scope="scope"> + <el-input v-model="scope.row.required" + v-if="scope.row.required != null" + @blur="updateVal(scope.row)"></el-input> + </template> + </el-table-column> </el-table> </div> </div> @@ -45,21 +58,74 @@ created() {}, mounted() {}, 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); + this.$nextTick(() => { + this.isAllSelect = row.isChecked; + this.toggleSelect(row, row.isChecked, "tr"); + }); + }, + //閫掑綊瀛愮骇 + toggleSelect(data, flag, type) { + if (type === "all") { + if (data.length > 0) { + data.forEach((item) => { + this.toggleSelection(item, flag); + if (item.children && item.children.length > 0) { + this.toggleSelect(item.children, flag, type); + } + }); + } + } else { + if (data.children && data.children.length > 0) { + data.children.forEach((item) => { + item.isChecked = !item.isChecked; + this.$refs.multipleTable.toggleRowSelection(item, flag); + this.toggleSelect(item, flag, type); + }); + } + } + }, + handleSelectionChange(val) { + this.deleteList = []; + val.forEach((v) => { + if (v.id !== undefined) { + this.deleteList.push(v.id); + } + }); + }, + // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫 + updateVal(row){ + this.$axios.post(this.$api.url.productWrite,{ + id : row.pid, + internal : row.internal, + required : row.required + }).then(res=>{ + this.$message.success(res.message); + }).catch(error=>{ + this.$message.error(error.message); + }) + }, handleSelectionChange(val) { this.selects = val; }, - aaaa(){ - console.log("aaaaa----",this.targetData); - } } } </script> <style scoped> .expand-button { - cursor: pointer; - color: #1890ff; -} + cursor: pointer; + color: #1890ff; + } .standard { width: 100%; height: 100%; diff --git a/src/components/view/standard-table/technology.vue b/src/components/view/standard-table/technology.vue index 99aa0dd..cffdb58 100644 --- a/src/components/view/standard-table/technology.vue +++ b/src/components/view/standard-table/technology.vue @@ -2,6 +2,7 @@ <div class="standard"> <div> <el-table :data="tableData" max-height="675" row-key="rowId" border + @select-all="selectAll" @select="selectTr" ref="multipleTable" :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}" @selection-change="handleSelectionChange" default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> @@ -24,14 +25,33 @@ </template> </el-table-column> <el-table-column prop="dg" label="璁惧缁�"> + <template slot-scope="scope"> + <div class="showDiv"> + <span>{{scope.row.dg}}</span> + <div @click="showDialog">閫夋嫨</div> + </div> + </template> </el-table-column> - <el-table-column prop="pq" label="鐢熶骇瀹氶"> - </el-table-column> - <el-table-column label="鎿嶄綔"> - <el-button style="color: rgb(137, 137, 229);">缂栬緫</el-button> + <el-table-column prop="pq" label="鐢熶骇瀹氶(涓�/澶�)"> + <template slot-scope="scope"> + <el-input v-model="scope.row.pq" + v-if="scope.row.pq != null" + @blur="updatePq(scope.row)" + ></el-input> + </template> </el-table-column> </el-table> </div> + <el-dialog + title="閫夋嫨璁惧缁�" + :visible.sync="deviceGroupDialog" + width="30%"> + <span>杩欐槸涓�娈典俊鎭�</span> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" @click="deviceGroupDialog = false">纭� 瀹�</el-button> + <el-button @click="deviceGroupDialog = false">鍙� 娑�</el-button> + </span> + </el-dialog> </div> </template> @@ -39,7 +59,9 @@ export default { data() { return { - selects: [] + deviceGroupDialog:false, + selects: [], + isAllSelect:false, } }, props:['tableData','tableType'], @@ -50,9 +72,64 @@ }, 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); + this.$nextTick(() => { + this.isAllSelect = row.isChecked; + this.toggleSelect(row, row.isChecked, "tr"); + }); + }, + //閫掑綊瀛愮骇 + toggleSelect(data, flag, type) { + if (type === "all") { + if (data.length > 0) { + data.forEach((item) => { + this.toggleSelection(item, flag); + if (item.children && item.children.length > 0) { + this.toggleSelect(item.children, flag, type); + } + }); + } + } else { + if (data.children && data.children.length > 0) { + data.children.forEach((item) => { + item.isChecked = !item.isChecked; + this.$refs.multipleTable.toggleRowSelection(item, flag); + this.toggleSelect(item, flag, type); + }); + } + } + }, handleSelectionChange(val) { - this.selects = val; - } + this.deleteList = []; + val.forEach((v) => { + if (v.id !== undefined) { + this.deleteList.push(v.id); + } + }); + }, + // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫 + showDialog(){ + this.deviceGroupDialog = true + }, + updatePq(row){ + this.$axios.post(this.$api.url.technologyWrite,{ + id : row.id, + productionQuota : row.pq + }).then(res=>{ + this.$message.success(res.message); + }).catch(error=>{ + this.$message.error(error.message); + }) + }, } } </script> @@ -62,6 +139,24 @@ width: 100%; height: 100%; } + .standard .showDiv{ + cursor: pointer; + } + .standard .showDiv div{ + color:#407ab9; + display: none; + } + .showDiv span{ + cursor: pointer; + display: block; + width: 100%; + } + .showDiv:hover span{ + display: none; + } + .showDiv:hover div{ + display: block; + } </style> <style> .standard * { 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