From c06d6952c55a5b34b08527c9f61117afd0b6e97a Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 08 九月 2023 17:13:41 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.0.22:9001/r/mom-before --- src/components/view/standard.vue | 398 ++++++++++++++++++-------------------------------------- 1 files changed, 132 insertions(+), 266 deletions(-) diff --git a/src/components/view/standard.vue b/src/components/view/standard.vue index 5e03711..0d1f689 100644 --- a/src/components/view/standard.vue +++ b/src/components/view/standard.vue @@ -2,166 +2,86 @@ <div class="standard"> <div class="title"> <el-row> - <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-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 icon="el-icon-edit-outline">淇敼</el-button> --> + <el-button icon="el-icon-edit-outline">淇敼</el-button> <el-button icon="el-icon-delete">鍒犻櫎</el-button> </el-col> </el-row> </div> <div class="thing"> <div class="left"> - <el-input - v-model="search" - suffix-icon="el-icon-search" - placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" - size="small" - clearable - ></el-input> + <el-input v-model="search" suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" size="small" clearable></el-input> - <el-tree - :data="list" - ref="tree" - :default-expand-all="false" - :props="{ children: 'children', label: 'name' }" - node-key="id" - :filter-node-method="filterNode" - @node-click="handleNodeClick" - highlight-current - > + <el-tree :data="list" ref="tree" :default-expand-all="false" :props="{ children: 'children', label: 'name' }" + node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current> <div class="custom-tree-node" slot-scope="{ node, data }"> - <span - ><i - :class="`node_i ${ - data.code != '[5]' - ? 'el-icon-folder-opened' - : 'el-icon-tickets' - }`" - ></i> - {{ data.name }}</span - > - <!-- <el-button type="text" size="mini" @click.stop="remove(node, data)"> + <span><i :class="`node_i ${data.code != '[4]' ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> + {{ data.name }}</span> + <el-button type="text" size="mini" @click.stop="remove(node, data)"> <i class="el-icon-delete"></i> - </el-button> --> + </el-button> </div> </el-tree> </div> + <div class="right"> <div class="choose"> <span>绫诲瀷锛�</span> - <el-select - v-model="tableType" - size="small" - placeholder="璇烽�夋嫨" - @change="TYPE" - style="width: 224px; margin-right: 52px" - > + <el-select v-model="tableType" size="small" placeholder="璇烽�夋嫨" @change="TYPE" + style="width: 224px;margin-right: 52px;"> <el-option :value="0" label="宸ヨ壓璺嚎"></el-option> <el-option :value="1" label="鎶�鏈寚鏍�"></el-option> <el-option :value="2" label="鐗╂枡娓呭崟"></el-option> <el-option :value="3" label="鐢熶骇宸ヨ壓"></el-option> </el-select> - <span>{{ tableType == 1 ? "椤圭洰锛�" : "宸ヨ壓鍚嶇О锛�" }}</span> - <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-option - v-for="item in version" - :key="item" - :label="item" - :value="item" - > + <span>{{ tableType == 1 ? '椤圭洰锛�' : '宸ヨ壓鍚嶇О锛�' }}</span> + <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-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 - size="mini" - type="primary" - style="background: #004ea2" - @click="selectProductTableData" - ><span>鏌� 璇�</span></el-button - > + <el-button 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> - <el-table - :data="tableData" - style="width: 100%; margin-bottom: 20px" - row-key="name" - border - @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> - <el-table-column prop="name" label="宸ュ簭" sortable width="300px"> - <!-- <template slot-scope="scope"> - <el-tag> - <div class="firstDiv" :style="`color: ${scope.row.children? '#16a7ff' : '#58c173'}`"> - {{ scope.row.children ? "01" : "02" }} - </div> - </el-tag> - <span style="color: black">{{ scope.row.name }}</span> - - </template> --> - </el-table-column> - <el-table-column prop="" sortable label="宸ヨ壓鍚嶇О"> - </el-table-column> - <el-table-column prop="" label="鎸囨爣鍚嶇О"> </el-table-column> - <el-table-column prop="" label="鍗曚綅"> </el-table-column> - <el-table-column prop="" label="鍐呮帶鍊�"> </el-table-column> - <el-table-column prop="unit" label="鏍囧噯鍊�"> </el-table-column> - </el-table> + <div v-if="this.typeselect == 0"> + <technology :tableType="tableType" :tableData="tableData"></technology> </div> - <div class="table"> - <technology - v-if="tableData.length !== 0" - :tableType="tableType" - :tableData="tableData" - ></technology> + <div v-if="this.typeselect == 1"> + 鎶�鏈寚鏍� </div> + <div v-if="this.typeselect == 2"> + <material :tableType="tableType" :tableData="tableData"></material> + </div> + <div v-if="this.typeselect == 3"> + 鐢熶骇宸ヨ壓 + </div> + <!-- <div class="table"> + <technology v-if="tableData.length !== 0" :tableType="tableType" :tableData="tableData"></technology> + </div> --> + <!-- <div class="table"> + <technology v-if="tableData.length !== 0" :tableType="tableType" :tableData="tableData"></technology> + </div> --> </div> </div> + <div class="bom-add-model"> <el-dialog title="BOM鏂板" :visible.sync="bomAddModelVisible" width="30%"> - <el-form> </el-form> + <el-form> + + </el-form> <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="bomAddModelVisible = false">纭� 瀹�</el-button> </span> </el-dialog> </div> @@ -169,22 +89,26 @@ </template> <script> -import technology from "./standard-table/technology.vue"; +import technology from "./standard-table/technology.vue" +import material from "./standard-table/material.vue" export default { - components: { technology }, + components: { technology,material }, + data() { return { // BOM鏍戞暟鎹粨鏋� list: [], search: null, - tableType: 0, // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾� - searchName: "", // 鏌ヨ鏉′欢-鍚嶇О - checkTreeNode: {}, // 鐐瑰嚮閫変腑鏍戣妭鐐� + tableType: 1, // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾� + searchName: "",// 鏌ヨ鏉′欢-鍚嶇О + checkTreeNode: {},// 鐐瑰嚮閫変腑鏍戣妭鐐� tableData: [], - bomAddModelVisible: false, // 鎺у埗bom鏂板妯℃�佹鏄惁鏄剧ず + bomAddModelVisible: false,// 鎺у埗bom鏂板妯℃�佹鏄惁鏄剧ず list: [], - typeselect: {}, - returntree: {}, + typeselect: 0, + returntree: { + id:28, + }, version: {}, VER: {}, verdata: {}, @@ -201,117 +125,90 @@ // }, mounted() { this.selectMaterialTree() - this.selectVersion() this.selectAll() + this.selectVersion() }, methods: { - selectDataList() { - this.list.forEach((a) => { - a.code = "[1]"; - if (a.children != undefined) { - a.children.forEach((b) => { - b.code = "[2]"; - if (b.children != undefined) { - b.children.forEach((c) => { - c.code = "[3]"; - if (c.children != undefined) { - c.children.forEach((d) => { - d.code = "[4]"; - if (d.children != undefined) { - d.children.forEach((e) => { - e.code = "[5]"; - }); - } - }); - } - }); - } - }); - } - }); - this.upIndex++; + handleSelectionChange() { + }, - handleSelectionChange() {}, - TYPE(val) { - //绫诲瀷.鏁版嵁 + TYPE(val) {//绫诲瀷.鏁版嵁 console.log(val); - this.typeselect = val; - console.log(this.typeselect); - this.selectVersion(); + this.typeselect = val + + // console.log(this.typeselect); + this.selectVersion() }, - handleNodeClick(val) { - //鏍戠殑鍊� + handleNodeClick(val) {//鏍戠殑鍊� console.log(val); - this.returntree = val; + this.returntree = val }, - selectVersion() {//鐗堟湰 + selectVersion() {//鐗堟湰 this.$axios.get(this.$api.url.selectVersion, { params: { specificationsId: this.returntree.id, type: this.typeselect, } - }).then((res) => { - this.verdata = res.data; - this.version = this.verdata.map((el) => { - return (el = `v${el}`); - }); - console.log(this.verdata); - }); - }, - verevent(val) { - console.log(val); - let cc = val.replace("v", ""); - console.log(cc); - this.character = cc; - this.selectAll(); - // const { v, ...newObj } = val; - // delete newObj.v - // console.log(newObj); + }).then(res => { + this.verdata = res.data + this.version = this.verdata.map(el => { + return el = `v${el}` + }) + console.log(this.verdata); + }) }, //鍙充晶鏁版嵁 selectAll() { console.log(this.$axios.get(this.$api.url.selectAll)); - this.$axios - .get(this.$api.url.selectAll, { - params: { - specificationsId: this.returntree.id, - type: this.typeselect, - version: this.character, - }, - }) - .then((res) => { - this.tableData = res.data; - }); + this.$axios.get(this.$api.url.selectAll, { + params: { + specificationsId: this.returntree.id,//tree鐨勭偣鍑诲弽棣� + type: this.typeselect,//绫诲瀷 + version: this.character,//鐗堟湰 + } + }).then(res => { + console.log(res.data); + this.tableData = res.data + }) + }, + verevent(val) { + console.log(val); + let cc = val.replace('v', '') + console.log(cc); + this.character = cc + this.selectAll() + // const { v, ...newObj } = val; + // delete newObj.v + // console.log(newObj); }, //浜旂骇鏍� selectMaterialTree() { - this.$axios.get(this.$api.url.selectTreeByMaterial).then((res) => { - this.list = res.data; + this.$axios.get(this.$api.url.selectTreeByMaterial).then(res => { + this.list = res.data this.list.forEach((el, idx, arr) => { if (idx == 0) { - arr[idx].name = "鎴愬搧"; + arr[idx].name = '鎴愬搧' } if (idx == 1) { - arr[idx].name = "鍗婃垚鍝�"; + arr[idx].name = '鍗婃垚鍝�' } el.children.forEach((newEl, newIdx, newArr) => { if (newIdx == 0) { - newArr[newIdx].name = "姗¤兌杩炴帴鍣�"; + newArr[newIdx].name = '姗¤兌杩炴帴鍣�' } if (newIdx == 1) { - newArr[newIdx].name = "閲戝睘杩炴帴鍣�"; + newArr[newIdx].name = '閲戝睘杩炴帴鍣�' } if (newIdx == 2) { - newArr[newIdx].name = "婀挎彃鎷旂數杩炴帴鍣�"; + newArr[newIdx].name = '婀挎彃鎷旂數杩炴帴鍣�' } if (newIdx == 3) { - newArr[newIdx].name = "鍒嗘敮缁勪欢"; + newArr[newIdx].name = '鍒嗘敮缁勪欢' } - }); - }); + }) + }) console.log(this.list); - this.selectDataList() - }); + }) }, filterNode(value, data) { if (!value) return true; @@ -319,73 +216,47 @@ }, remove(node, data) { this.$confirm("鏄惁鍒犻櫎", "璀﹀憡", { - type: "warning", - }) - .then((res) => { - const parent = node.parent; - const children = parent.data.children || parent.data; - const index = children.findIndex((d) => d.id === data.id); - children.splice(index, 1); - }) - .catch((e) => {}); + type: "warning" + }).then(res => { + const parent = node.parent; + const children = parent.data.children || parent.data; + const index = children.findIndex(d => d.id === data.id); + children.splice(index, 1); + }).catch(e => { }) }, nodeOpen(data, node, el) { - $($(el.$el).find(".node_i")[0]).attr( - "class", - "node_i el-icon-folder-opened" - ); + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') }, nodeClose(data, node, el) { - $($(el.$el).find(".node_i")[0]).attr("class", "node_i el-icon-folder"); + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') }, async selectProductTableData() { switch (this.tableType) { case 0: - const { data: technologyList } = await this.$axios.get( - this.$api.url.selectTechnologyByMaterial, - { - params: { - specificationId: this.checkTreeNode.id, - technologyName: this.searchName, - }, - } - ); - this.tableData = technologyList; + const { data: technologyList } = await this.$axios.get(this.$api.url.selectTechnologyByMaterial, { params: { specificationId: this.checkTreeNode.id, technologyName: this.searchName } }) + this.tableData = technologyList break; case 1: - const { data: productList } = await this.$axios.get( - this.$api.url.selectProductByMaterial, - { - params: { - specifications: this.checkTreeNode.id, - project: this.searchName, - }, - } - ); + const { data: productList } = await this.$axios.get(this.$api.url.selectProductByMaterial, { params: { specifications: this.checkTreeNode.id, project: this.searchName } }) productList.forEach((item, index) => { - item.name = item.father; - item.index = index + 1; - item.id = item.father; + item.name = item.father + item.index = index + 1 + item.id = item.father if (item.children.length === 1) { - productList[index] = { - ...item.children[0], - index: index + 1, - name: item.father, - }; + productList[index] = { ...item.children[0], index: index + 1, name: item.father } } - }); - this.tableData = productList; + }) + this.tableData = productList break; } - }, - }, -}; + } + } +} </script> <style scoped> -.standard { -} +.standard {} .standard .title .el-button { height: 32px; @@ -436,7 +307,7 @@ .el-icon-delete { display: none; - color: #004ea2; + color: #004EA2; } .custom-tree-node:hover .el-icon-delete { @@ -477,17 +348,12 @@ } .standard .title .el-button--default { - color: #004ea2; + color: #004EA2; } -.standard - .thing - .left - .el-tree--highlight-current - .el-tree-node.is-current - > .el-tree-node__content { +.standard .thing .left .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { background: rgba(58, 124, 253, 0.3); - color: #004ea2; + color: #004EA2; } .el-tree-node__content { -- Gitblit v1.9.3