From 59ef8ccfa6240c5fa3c823d773aab15930af4d41 Mon Sep 17 00:00:00 2001 From: 李林 <z1292839451@163.com> Date: 星期二, 19 三月 2024 17:13:20 +0800 Subject: [PATCH] 功能调整 --- src/components/view/b2-standard.vue | 162 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 121 insertions(+), 41 deletions(-) diff --git a/src/components/view/b2-standard.vue b/src/components/view/b2-standard.vue index 333deea..dcba552 100644 --- a/src/components/view/b2-standard.vue +++ b/src/components/view/b2-standard.vue @@ -54,6 +54,7 @@ height: calc(100% - 275px); margin-top: 5px; background-color: white; + user-select: none; } .product_table .el-table { @@ -83,6 +84,10 @@ .standard .standard_table .el-table__row .cell { font-size: 14px; } + + .standard .el-table .warning-row .cell { + color: #bababa; + } </style> <template> @@ -97,9 +102,10 @@ <el-button type="primary" icon="el-icon-plus" size="mini" circle @click="addDia = true"></el-button> </el-col> </el-row> - <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" - node-key="label" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current - @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="true" :default-expanded-keys="expandedKeys"> + <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label" + :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" + @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false" + :default-expanded-keys="expandedKeys"> <div class="custom-tree-node" slot-scope="{ node, data }"> <el-row> <el-col :span="21"> @@ -120,17 +126,18 @@ <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;" v-if="selectTree!=''"> - <el-button size="small" type="primary" @click="addStandardDia = true" + <!-- <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-button> --> </el-col> </el-row> <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 class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark" + highlight-current-row @row-click="rowClick"> <el-table-column prop="code" label="鏍囧噯缂栧彿" show-overflow-tooltip> <template slot-scope="scope"> <span style="color: red;font-size: 14px;">{{scope.row['code']}}</span> @@ -140,34 +147,45 @@ <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" v-if="delStandardMethod"> + <!-- <el-table-column label="鎿嶄綔" width="100" align="center" v-if="delStandardMethod"> <template slot-scope="scope"> <el-button type="text" size="small" @click="delStandardMethodByFLSSM(scope.row.id)">鍒犻櫎</el-button> </template> - </el-table-column> + </el-table-column> --> </el-table> </el-row> - <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-row class="product_table" v-loading="tableLoad2"> + <el-table :data="productList" ref="productTable" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border + @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @select="upProductSelect"> <el-table-column type="selection" width="65"></el-table-column> <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" 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="妫�楠岄」瀛愰」" min-width="140" show-overflow-tooltip></el-table-column> + <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" + show-overflow-tooltip></el-table-column> <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" 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="璁惧缁�" width="120" 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="瑕佹眰鍊�" min-width="220px"> + <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="200px"> <template slot-scope="scope"> <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable - @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea" :autosize="{ minRows: 1, maxRows: 3}"></el-input> + @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea" + :autosize="{ minRows: 1, maxRows: 3}"></el-input> <span v-else>{{scope.row.ask}}</span> </template> </el-table-column> + <el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px"> + <template slot-scope="scope"> + <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable + @change="(value)=>upStandardProductListOfTell(value,scope.row.id)" v-if="upStandardProduct" type="textarea" + :autosize="{ minRows: 1, maxRows: 3}"></el-input> + <span v-else>{{scope.row.ask}}</span> + </template> + </el-table-column> + <el-table-column prop="method" label="璇曢獙鏂规硶" width="100" 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="90" show-overflow-tooltip></el-table-column> + <el-table-column prop="manHour" label="宸ユ椂(H)" width="90" 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="璁惧缁�" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column> </el-table> </el-row> </div> @@ -245,7 +263,7 @@ </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"/> + <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData" /> </div> <span slot="footer" class="dialog-footer"> <el-button @click="addProductDia = false">鍙� 娑�</el-button> @@ -289,6 +307,7 @@ addLoad2: false, productList: [], tableLoad: false, + tableLoad2: false, upStandardProduct: false, delStandardMethod: false, selects: [], @@ -316,17 +335,19 @@ valueType: { select: [] }, - bsm:{ + bsm: { select: [] }, - inspectionValueType:{ - select:[] + inspectionValueType: { + select: [] }, - deviceGroup:{select:[]} + deviceGroup: { + select: [] + } }, selectField: {}, }, - expandedKeys:[] + expandedKeys: [] } }, mounted() { @@ -380,7 +401,7 @@ remove(node, data) { this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", { type: "error" - }).then(()=> { + }).then(() => { this.treeLoad = true this.selectTree = '' this.getNodeParent(node) @@ -394,7 +415,7 @@ this.$axios.post(this.$api.standardTree.delStandardTree, { tree: this.selectTree }).then(res => { - if(res.code==201)return + if (res.code == 201) return this.$message.success('宸插垹闄�') this.selectStandardTreeList() this.selectTree = '' @@ -463,12 +484,12 @@ this.treeLoad = true this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => { this.list = res.data - this.list.forEach(a=>{ - a.children.forEach(b=>{ - /* b.children.forEach(c=>{ + this.list.forEach(a => { + a.children.forEach(b => { + b.children.forEach(c => { this.expandedKeys.push(c.label) - }) */ - this.expandedKeys.push(b.label) + }) + // this.expandedKeys.push(b.label) }) }) this.treeLoad = false @@ -628,6 +649,22 @@ this.$message.success('宸蹭繚瀛�') }) }, + upStandardProductListOfTell(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + tell: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + this.$message.success('宸蹭繚瀛�') + }) + }, delStandardMethodByFLSSM(id) { this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { confirmButtonText: "纭畾", @@ -653,11 +690,11 @@ }) }, delStandardProductByIds() { - if(this.selects.length == 0){ + if (this.selects.length == 0) { this.$message.error('鏈�変腑鏁版嵁') return } - this.$confirm('鏄惁鍒犻櫎褰撳墠閫変腑 '+this.selects.length+' 鏉℃暟鎹�?', "璀﹀憡", { + this.$confirm('鏄惁鍒犻櫎褰撳墠閫変腑 ' + this.selects.length + ' 鏉℃暟鎹�?', "璀﹀憡", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" @@ -674,21 +711,21 @@ }) }).catch(() => {}) }, - addStandardProductDo(){ + addStandardProductDo() { let selects = this.$refs.ValueTable.multipleSelection - if(selects.length == 0){ + if (selects.length == 0) { this.$message.error('鏈�夋嫨鏁版嵁') return } let select = [] - selects.forEach(a=>{ + selects.forEach(a => { select.push(a.id) }) this.tableLoad = true - this.$axios.post(this.$api.standardTree.addStandardProduct,{ + this.$axios.post(this.$api.standardTree.addStandardProduct, { ids: JSON.stringify(select), tree: this.selectTree - }).then(res=>{ + }).then(res => { if (res.code == 201) { return } @@ -696,7 +733,50 @@ this.selectsStandardMethodByFLSSM() }) this.addProductDia = false - } + }, + rowClick(row, column, event) { + this.tableLoad2 = true + this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, { + id: row.id + }).then(res => { + this.productList = res.data + setTimeout(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }, 300) + this.tableLoad2 = false + }) + }, + toggleSelection(row) { + this.$refs.productTable.toggleRowSelection(row, true); + }, + tableRowClassName({ + row, + rowIndex + }) { + if (row.state === 0) { + return 'warning-row'; + } + return ''; + }, + upProductSelect(selection, row) { + row.state = row.state == 1 ? 0 : 1 + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: row.id, + state: row.state + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + this.$message.success('宸蹭繚瀛�') + }) + }, } } </script> -- Gitblit v1.9.3