From ab87478ba941f90cd60252cf4d34aa585dc1a63f Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期一, 22 七月 2024 18:29:10 +0800 Subject: [PATCH] 设备数采配置 调整 --- src/components/do/b6-device-management/b6-data-acquisition-config.vue | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 153 insertions(+), 10 deletions(-) diff --git a/src/components/do/b6-device-management/b6-data-acquisition-config.vue b/src/components/do/b6-device-management/b6-data-acquisition-config.vue index 7ffe061..d0e0a6a 100644 --- a/src/components/do/b6-device-management/b6-data-acquisition-config.vue +++ b/src/components/do/b6-device-management/b6-data-acquisition-config.vue @@ -13,7 +13,7 @@ </div> <div class="table"> <el-table :data="tableList.slice((page.current - 1) * page.size, page.current * page.size)" - border tooltip-effect="dark" style="width: 100%;" height="100%"> + border tooltip-effect="dark" style="width: 100%;" height="100%" :span-method="spanMethod"> <el-table-column type="index" label="搴忓彿" align="center" width="65"></el-table-column> <el-table-column prop="deviceName" align="center" min-width="100" label="璁惧鍚嶇О"></el-table-column> <el-table-column prop="fileType" align="center" label="鏂囦欢鍚庣紑"></el-table-column> @@ -81,9 +81,9 @@ <el-button @click="addDomain" size="small" type="primary" style="position: absolute; bottom: -65px;left: 62px" v-if="index === domains.length-1">鏂板鍩熷悕</el-button> </el-form-item> </div> - <div class="fomItem1"> - <el-form-item class="fomItemInput" label="鍏紡:"> - <el-input v-model="configForm.formula" @change="evalResult"></el-input> + <div class="fomItem2"> + <el-form-item class="fomItemInput1" label="鍏紡:"> + <el-input type="textarea" autosi:autosize="{ minRows: 2, maxRows: 4}"ze placeholder="璇疯緭鍏ュ唴瀹�" v-model="configForm.formula" @change="evalResult"> </el-input> </el-form-item> </div> </el-form> @@ -176,11 +176,116 @@ {label: 'excel', value: '.xlsx'}, {label: 'txt', value: '.txt'}, {label: 'png', value: '.png'}, - ] + ], + spanList: [], + specialSpanList: [], + spanConfig: { + special: { + main: "inspectionItemSubClass", + rows:[ + { + name:'deviceName', + index:1 + }, + { + name:'fileType', + index:2 + }, + { + name:'collectUrl', + index:3 + }, + { + name:'storageUrl', + index:4 + }, + { + name:'ip', + index:5 + }, + { + name:'inspectionItem', + index:6 + }, + { + name:'inspectionItemSubClass', + index:7 + }, + { + name:'inspectionItemSubClass', + index:12 + }, + { + name:'inspectionItemSubClass', + index:13 + } + ] + } + }, + deleteList: [] } }, // 鏂规硶闆嗗悎 methods: { + rowspan(spanArr, position, spanName) { + this.tableList.forEach((item, index) => { + if (index === 0) { + spanArr.push(1); + position = 0; + } else { + if ( + this.tableList[index][spanName] === + this.tableList[index - 1][spanName] + ) { + spanArr[position] += 1; + spanArr.push(0); + } else { + spanArr.push(1); + position = index; + } + } + }); + }, + spanMethod({ + row, + column, + rowIndex, + columnIndex + }) { + // 涓�鑸殑鍚堝苟琛� + if (this.spanConfig != undefined && this.spanConfig.rows && this.spanConfig.rows.length > 0) { + let i = null; + let obj = this.spanConfig.rows.find((item, index) => { + i = index; + return item.index == columnIndex + }) + if (obj) { + const _row = this.spanList[i].arr[rowIndex]; + const _col = _row > 0 ? 1 : 0; + return { + rowspan: _row, + colspan: _col, + }; + } + } + // 鐗规畩鐨勫悎骞惰 + if (this.spanConfig != undefined && this.spanConfig.special && this.spanConfig.special.main && + this.spanConfig.special.rows && this.spanConfig.special.rows.length > 0) { + let i = null; + let obj = this.spanConfig.special.rows.find((item, index) => { + i = index; + return item.index == columnIndex + }) + if (obj) { + const _row = this.specialSpanList[i].arr[rowIndex]; + const _col = _row > 0 ? 1 : 0; + return { + rowspan: _row, + colspan: _col, + }; + } + } + }, fileConfiguration() { this.dialogVisible4 = true if(this.tableList[0]) { @@ -200,6 +305,31 @@ this.$set(this.configForm, 'storageUrl', this.tableList[0].storageUrl) this.$set(this.configForm, 'ip', this.tableList[0].ip) } + // 涓�鑸殑鍚堝苟琛� + if (this.spanConfig != undefined && this.spanConfig.rows && this.spanConfig.rows.length > + 0) { + this.spanList = []; + this.spanConfig.rows.forEach((item, index) => { + this.spanList.push({ + arr: [], + position: 0 + }) + this.rowspan(this.spanList[index].arr, this.spanList[index].position, item.name); + }) + } + // 鐗规畩鐨勫悎骞惰 + if (this.spanConfig != undefined && this.spanConfig.special && this.spanConfig.special + .main && this.spanConfig.special.rows && this.spanConfig.special.rows.length > 0) { + this.specialSpanList = [] + this.spanConfig.special.rows.forEach((item, index) => { + this.specialSpanList.push({ + arr: [], + position: 0 + }) + this.rowspan(this.specialSpanList[index].arr, this.specialSpanList[index].position, this + .spanConfig.special.main); + }) + } }) }, submitForm4() { @@ -280,6 +410,13 @@ id: '' } ] + if(this.deleteList.length > 0) { + this.$axios.delete(this.$api.deviceScope.deleteDataAcquisitionConfiguration + "?ids=" + this.deleteList.join()).then(res => { + if(res.code == 200) { + this.init() + } + }) + } this.init() this.$message.success('娣诲姞鎴愬姛') }) @@ -293,11 +430,8 @@ const index = this.domains.indexOf(item) if (index !== -1 && this.domains.length > 1) { if(item.id){ - this.$axios.delete(this.$api.deviceScope.deleteDataAcquisitionConfiguration + "?id=" + item.id).then(res => { - if(res.code == 200) { - this.domains.splice(index, 1) - } - }) + this.deleteList.push(item.id) + this.domains.splice(index, 1) } else { this.domains.splice(index, 1) } @@ -325,6 +459,7 @@ this.page.current = val }, closeForm () { + this.deleteList = [] this.domains = [{ referx: '', refery: '', @@ -377,10 +512,18 @@ display: flex; height: 74px; } +.fomItem2 { + display: flex; + width: 100%; +} .fomItemInput { width: 180px; margin-right: 6px; } +.fomItemInput1 { + width: 100%; + margin-right: 6px; +} >>>.el-form-item__label { padding-bottom: 0 !important; } -- Gitblit v1.9.3