From f3fa8866591600d5791d78c99396f4553f169aef Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期二, 23 七月 2024 10:11:44 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before into master

---
 src/components/do/b6-device-management/b6-data-acquisition-config.vue |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 160 insertions(+), 12 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..bb598d9 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,10 @@
             <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="鍏紡:">
+            <!-- <formula :returnFormula="evalResult"/> -->
+            <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>
@@ -132,10 +133,13 @@
 </template>
 
 <script>
+import formula from '../../tool/formula.vue'
 export default {
   name: "dataAcquisitionConfig",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: {},
+  components: {
+    formula
+  },
   props: {
     deviceId: {
       type: Number,
@@ -176,11 +180,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 +309,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 +414,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 +434,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)
         }
@@ -315,7 +453,8 @@
         id: ''
       });
     },
-    evalResult () {
+    evalResult (val) {
+      this.configForm.formula = val
       // 鏍规嵁鍏紡璁$畻鍑虹粨鏋�
     },
     sizeChange(val) {
@@ -325,6 +464,7 @@
       this.page.current = val
     },
     closeForm () {
+      this.deleteList = []
       this.domains = [{
         referx: '',
         refery: '',
@@ -377,10 +517,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