From 8eaf955f23f4374a9ecfae998c78fe6781784a9f Mon Sep 17 00:00:00 2001 From: 李林 <z1292839451@163.com> Date: 星期二, 05 三月 2024 17:58:13 +0800 Subject: [PATCH] 标准库及部分功能调整 --- src/components/view/b2-standard.vue | 271 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 218 insertions(+), 53 deletions(-) diff --git a/src/components/view/b2-standard.vue b/src/components/view/b2-standard.vue index eafc7d1..a67a3e0 100644 --- a/src/components/view/b2-standard.vue +++ b/src/components/view/b2-standard.vue @@ -44,19 +44,19 @@ background-color: white; } - .standard_table{ + .standard_table { border-top: 1px solid #ebeef5; background-color: white; } - .product_table{ + .product_table { border-top: 1px solid #ebeef5; height: calc(100% - 275px); margin-top: 5px; background-color: white; } - .product_table .el-table{ + .product_table .el-table { height: 100%; } </style> @@ -71,16 +71,16 @@ color: #3A7BFA; } - .standard .has-gutter .el-table__cell .cell{ + .standard .has-gutter .el-table__cell .cell { line-height: 38px; background-color: #fafafa; } - .standard .has-gutter .el-table__cell{ + .standard .has-gutter .el-table__cell { background-color: #fafafa !important; } - .standard .standard_table .el-table__row .cell{ + .standard .standard_table .el-table__row .cell { font-size: 14px; } </style> @@ -99,7 +99,7 @@ </el-row> <el-tree :data="list" ref="tree" default-expand-all :props="{ children: 'children', label: 'label' }" node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current - @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad"> + @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false"> <div class="custom-tree-node" slot-scope="{ node, data }"> <el-row> <el-col :span="21"> @@ -107,7 +107,7 @@ :class="`node_i ${data.children != undefined ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> {{ data.code }} {{ data.label }}</span> </el-col> - <el-col :span="2" style="text-align: right;"> + <el-col :span="2" style="text-align: right;" v-if="delStandardTree"> <el-button type="text" size="mini" @click.stop="remove(node, data)"> <i class="el-icon-delete"></i> </el-button> @@ -119,16 +119,17 @@ <div class="right"> <el-row class="title"> <el-col :span="10" style="font-size: 14px;color: #999;">{{selectTree}}</el-col> - <el-col :span="selectTree==''?24:14" style="text-align: right;"> - <el-button size="small" type="primary" @click="addStandardDia = true" v-if="addStandardMethod">鏂板鏍囧噯</el-button> - <el-button size="small" type="primary">鏂板椤圭洰</el-button> - <el-button size="small"> + <el-col :span="selectTree==''?24:14" style="text-align: right;" v-if="selectTree!=''"> + <el-button size="small" type="primary" @click="addStandardDia = true" + v-if="addStandardMethod">鏂板鏍囧噯</el-button> + <el-button size="small" type="primary" @click="addProductDia = true" v-if="addStandardProduct">鏂板椤圭洰</el-button> + <el-button size="small" @click="delStandardProductByIds" v-if="delStandardProduct"> <i class="el-icon-delete" style="color: #3A7BFA;"></i> <span style="color: #3A7BFA;">鍒犻櫎</span> </el-button> </el-col> </el-row> - <el-row class="standard_table" v-loading="standardListLoad"> + <el-row class="standard_table" v-loading="tableLoad"> <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark"> <el-table-column prop="code" label="鏍囧噯缂栧彿" show-overflow-tooltip> <template slot-scope="scope"> @@ -139,29 +140,32 @@ <el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip></el-table-column> <el-table-column prop="createUserName" label="鍒涘缓浜�"></el-table-column> <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="250px"></el-table-column> - <el-table-column label="鎿嶄綔" width="100" align="center"> + <el-table-column label="鎿嶄綔" width="100" align="center" v-if="delStandardMethod"> <template slot-scope="scope"> - <el-button type="text" size="small">鍒犻櫎</el-button> + <el-button type="text" size="small" @click="delStandardMethodByFLSSM(scope.row.id)">鍒犻櫎</el-button> </template> </el-table-column> </el-table> </el-row> - <el-row class="product_table"> - <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border> + <el-row class="product_table" v-loading="tableLoad"> + <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border + @selection-change="handleSelectionChange"> <el-table-column type="selection" width="65"></el-table-column> - <el-table-column prop="code" label="妫�楠岄」" show-overflow-tooltip></el-table-column> - <el-table-column prop="name" label="妫�楠岄」绫诲瀷" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="妫�楠岄」灏忕被" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="瀹為獙瀹�" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="璁¢噺鍗曚綅" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="鍗曚环" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="宸ユ椂" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="宸ユ椂鍒嗙粍" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="璁惧缁�" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="鍖洪棿" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="瑕佹眰鍊�"> + <el-table-column prop="inspectionItem" label="妫�楠岄」" show-overflow-tooltip></el-table-column> + <el-table-column prop="inspectionItemClassify" label="妫�楠岄」绫诲瀷" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」灏忕被" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="laboratory" label="瀹為獙瀹�" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column> + <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column> + <el-table-column prop="manHour" label="宸ユ椂" width="80" show-overflow-tooltip></el-table-column> + <el-table-column prop="manHourGroup" label="宸ユ椂鍒嗙粍" width="100" show-overflow-tooltip></el-table-column> + <el-table-column prop="deviceGroup" label="璁惧缁�" show-overflow-tooltip></el-table-column> + <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="ask" label="瑕佹眰鍊�" width="220px"> <template slot-scope="scope"> - <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask"></el-input> + <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable + @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct"></el-input> + <span v-else>{{scope.row.ask}}</span> </template> </el-table-column> </el-table> @@ -241,11 +245,24 @@ <el-button type="primary" @click="addStandardMethodList" :loading="addLoad2">纭� 瀹�</el-button> </span> </el-dialog> + <el-dialog title="鏂板椤圭洰" :visible.sync="addProductDia" width="70%"> + <div class="body" style="height: 60vh;" v-if="addProductDia"> + <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData"/> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="addProductDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="addStandardProductDo" :loading="addLoad3">纭� 瀹�</el-button> + </span> + </el-dialog> </div> </template> <script> + import ValueTable from '../tool/value-table.vue' export default { + components: { + ValueTable + }, data() { return { search: null, @@ -273,7 +290,30 @@ addStandardMethod: true, addLoad2: false, productList: [], - standardListLoad: false + tableLoad: false, + upStandardProduct: false, + delStandardMethod: false, + selects: [], + delStandardProduct: false, + addProductDia: false, + productId: null, + addStandardProduct: false, + addLoad3: false, + productEnum: [], + componentData: { + entity: { + orderBy: { + field: 'id', + order: 'asc' + } + }, + isIndex: true, + showSelect: true, + select: true, + do: [], + tagField: {}, + selectField: {}, + } } }, mounted() { @@ -299,30 +339,45 @@ handleNodeClick(val, node, el) { //鏍戠殑鍊� this.selectTree = '' this.getNodeParent(node) - this.selectTree = this.selectTree.replace(' - ','') + this.selectTree = this.selectTree.replace(' - ', '') let data = this.selectTree.split(' - ') let data2 = '' - for(let index = data.length - 1; index >= 0; index--){ + for (let index = data.length - 1; index >= 0; index--) { data2 += " - " + data[index] } - this.selectTree = data2.replace(' - ','') + this.selectTree = data2.replace(' - ', '') this.selectsStandardMethodByFLSSM() }, - getNodeParent(val){ - if(val.parent!=null){ + getNodeParent(val) { + if (val.parent != null) { this.selectTree += ' - ' + val.label this.getNodeParent(val.parent) } }, 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); - + this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", { + type: "error" + }).then(()=> { + this.treeLoad = true + this.selectTree = '' + this.getNodeParent(node) + this.selectTree = this.selectTree.replace(' - ', '') + let data = this.selectTree.split(' - ') + let data2 = '' + for (let index = data.length - 1; index >= 0; index--) { + data2 += " - " + data[index] + } + this.selectTree = data2.replace(' - ', '') + this.$axios.post(this.$api.standardTree.delStandardTree, { + tree: this.selectTree + }).then(res => { + if(res.code==201)return + this.$message.success('宸插垹闄�') + this.selectStandardTreeList() + this.selectTree = '' + this.standardList = [] + this.productList = [] + }) }).catch(e => {}) }, nodeOpen(data, node, el) { @@ -388,16 +443,16 @@ this.standardEnum = data }) }, - addStandardMethodList(){ + addStandardMethodList() { if (this.standardId == null || this.standardId == '') { this.$message.error('鏍囧噯鏂规硶鏈�夋嫨') return } this.addLoad2 = true - this.$axios.post(this.$api.standardTree.addStandardMethodList,{ + this.$axios.post(this.$api.standardTree.addStandardMethodList, { standardId: this.standardId, tree: this.selectTree - }).then(res=>{ + }).then(res => { this.addLoad2 = false this.addStandardDia = false this.$message.success('娣诲姞鎴愬姛') @@ -440,19 +495,25 @@ this.addLoad = false }) }, - selectsStandardMethodByFLSSM(){ - this.standardListLoad = true - this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM,{ + selectsStandardMethodByFLSSM() { + this.tableLoad = true + this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { tree: this.selectTree - }).then(res=>{ - this.standardListLoad = false - this.standardList = res.data + }).then(res => { + this.tableLoad = false + this.standardList = res.data.standardMethodList + this.productList = res.data.standardProductList }) }, getPower() { let power = JSON.parse(sessionStorage.getItem('power')) let add = false let addStandardMethod = false + let upStandardProduct = false + let delStandardMethod = false + let delStandardProduct = false + let addStandardProduct = false + let delStandardTree = false for (var i = 0; i < power.length; i++) { if (power[i].menuMethod == 'addStandardTree') { add = true @@ -460,11 +521,115 @@ if (power[i].menuMethod == 'addStandardMethodList') { addStandardMethod = true } + if (power[i].menuMethod == 'upStandardProductList') { + upStandardProduct = true + } + if (power[i].menuMethod == 'delStandardMethodByFLSSM') { + delStandardMethod = true + } + if (power[i].menuMethod == 'delStandardProductByIds') { + delStandardProduct = true + } + if (power[i].menuMethod == 'addStandardProduct') { + addStandardProduct = true + } + if (power[i].menuMethod == 'delStandardTree') { + delStandardTree = true + } } this.addPower = add this.addStandardMethod = addStandardMethod + this.upStandardProduct = upStandardProduct + this.delStandardMethod = delStandardMethod + this.delStandardProduct = delStandardProduct + this.addStandardProduct = addStandardProduct + this.delStandardTree = delStandardTree }, - + upStandardProductList(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + ask: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + this.$message.success('宸蹭繚瀛�') + }) + }, + delStandardMethodByFLSSM(id) { + this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.tableLoad = true + this.$axios.post(this.$api.standardTree.delStandardMethodByFLSSM, { + id: id + }).then(res => { + if (res.code == 201) { + return + } + this.$message.success('宸插垹闄�') + this.selectsStandardMethodByFLSSM() + }) + }).catch(() => {}) + }, + handleSelectionChange(val) { + this.selects = [] + val.forEach(a => { + this.selects.push(a.id) + }) + }, + delStandardProductByIds() { + if(this.selects.length == 0){ + this.$message.error('鏈�変腑鏁版嵁') + return + } + this.$confirm('鏄惁鍒犻櫎褰撳墠閫変腑 '+this.selects.length+' 鏉℃暟鎹�?', "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.tableLoad = true + this.$axios.post(this.$api.standardTree.delStandardProductByIds, { + ids: JSON.stringify(this.selects) + }).then(res => { + if (res.code == 201) { + return + } + this.$message.success('宸插垹闄�') + this.selectsStandardMethodByFLSSM() + }) + }).catch(() => {}) + }, + addStandardProductDo(){ + let selects = this.$refs.ValueTable.multipleSelection + if(selects.length == 0){ + this.$message.error('鏈�夋嫨鏁版嵁') + return + } + let select = [] + selects.forEach(a=>{ + select.push(a.id) + }) + this.tableLoad = true + this.$axios.post(this.$api.standardTree.addStandardProduct,{ + ids: JSON.stringify(select), + tree: this.selectTree + }).then(res=>{ + if (res.code == 201) { + return + } + this.$message.success('娣诲姞鎴愬姛') + this.selectsStandardMethodByFLSSM() + }) + this.addProductDia = false + } } } </script> -- Gitblit v1.9.3