From cf9259c2ebee0e82c32864a1ee91d96c403b9099 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期日, 04 二月 2024 13:42:04 +0800
Subject: [PATCH] 指标完成

---
 src/components/Regular/index.vue |  151 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 105 insertions(+), 46 deletions(-)

diff --git a/src/components/Regular/index.vue b/src/components/Regular/index.vue
index fb1f240..a1b49cb 100644
--- a/src/components/Regular/index.vue
+++ b/src/components/Regular/index.vue
@@ -51,18 +51,18 @@
           <el-tag
             :key="crux"
             type="success"
-            v-for="crux in dynamiccruxs"
+            v-for="crux in item.dynamiccruxs"
             closable
             effect="dark"
             :disable-transitions="false"
-            @close="handleClosecrux(crux)"
+            @close="handleClosecrux(crux, item)"
           >
             {{ crux }}
           </el-tag>
           <el-select
             v-model="inputValue"
-            v-if="inputVisible"
-            @change="handleInputConfirm"
+            v-if="item.inputVisible"
+            @change="handleInputConfirm(item)"
             filterable
             remote
             allow-create
@@ -72,10 +72,10 @@
             placeholder="璇烽�夋嫨"
           >
             <el-option
-              v-for="item in regular"
-              :key="item.label"
-              :label="item.label"
-              :value="item.label"
+              v-for="items in regular"
+              :key="items.label"
+              :label="items.label"
+              :value="items.label"
             >
             </el-option>
           </el-select>
@@ -83,7 +83,7 @@
             v-else
             class="button-new-tag"
             size="small"
-            @click="showInput"
+            @click="showInput(item)"
             >+ 鏂板</el-button
           >
         </div>
@@ -93,18 +93,18 @@
           <el-tag
             :key="crux"
             type="warning"
-            v-for="crux in nodynamiccruxs"
+            v-for="crux in item.nodynamiccruxs"
             closable
             effect="dark"
             :disable-transitions="false"
-            @close="handleClosecrux(crux)"
+            @close="handleClosecrux(crux, item)"
           >
             {{ crux }}
           </el-tag>
           <el-select
             v-model="inputValue"
-            v-if="noinputVisible"
-            @change="handleInputConfirm"
+            v-if="item.noinputVisible"
+            @change="handleInputConfirm(item)"
             filterable
             remote
             allow-create
@@ -114,10 +114,10 @@
             placeholder="璇烽�夋嫨"
           >
             <el-option
-              v-for="item in noregular"
-              :key="item.value"
-              :label="item.label"
-              :value="item.label"
+              v-for="items in noregular"
+              :key="items.value"
+              :label="items.label"
+              :value="items.label"
             >
             </el-option>
           </el-select>
@@ -125,7 +125,7 @@
             v-else
             class="button-new-tag"
             size="small"
-            @click="showInputno"
+            @click="showInputno(item)"
             >+ 鏂板</el-button
           >
         </div>
@@ -149,9 +149,33 @@
         >
         <el-col :span="8">
           <div style="text-align: right; padding-right: 10px">
-            <el-button type="danger" @click="deloption(item)" round
-              >鍒犻櫎</el-button
-            >
+            <el-button
+              v-if="controlsc"
+              @click="$emit('addoption', item)"
+              type="success"
+              icon="el-icon-circle-plus-outline"
+              circle
+            ></el-button>
+            <el-button
+              type="danger"
+              icon="el-icon-delete"
+              circle
+              @click="$emit('deloption', item)"
+            ></el-button>
+            <el-button
+              v-if="controlsc"
+              @click="$emit('syioption', item)"
+              type="primary"
+              icon="el-icon-top"
+              circle
+            ></el-button>
+            <el-button
+              v-if="controlsc"
+              @click="$emit('xiayioption', item)"
+              type="primary"
+              icon="el-icon-bottom"
+              circle
+            ></el-button>
           </div>
         </el-col>
       </el-row>
@@ -180,7 +204,7 @@
       loading: false,
       regular: [],
       noregular: [],
-      nodynamiccruxs: ["鍒�"],
+      nodynamiccruxs: ["鍒�", "涓�"],
       dynamiccruxs: ["濂�"],
     };
   },
@@ -190,34 +214,53 @@
       required: true,
       default: () => [],
     },
+    controlsc: {
+      type: Boolean,
+      default: true,
+    },
   },
 
   created() {
     this.regular = store.getters.regular;
     this.noregular = store.getters.noregular;
+
+    
+   
   },
 
   methods: {
     // 鐢熸垚姝e垯
-    generateRegex() {
+    generateRegex(row) {
+      let index = this.TargetoptionList.indexOf(row);
+      console.log(index);
       let regex = "";
       let regexno = "";
       let hostregex = "";
       let hostregexno = "";
 
-      for (let i = 0; i < this.dynamiccruxs.length; i++) {
-        regex += `${this.dynamiccruxs[i]}|`;
+      for (
+        let i = 0;
+        i < this.TargetoptionList[index].dynamiccruxs.length;
+        i++
+      ) {
+        regex += `${this.TargetoptionList[index].dynamiccruxs[i]}|`;
       }
-      for (let i = 0; i < this.nodynamiccruxs.length; i++) {
-        regexno += `${this.nodynamiccruxs[i]}|`;
+      for (
+        let i = 0;
+        i < this.TargetoptionList[index].nodynamiccruxs.length;
+        i++
+      ) {
+        regexno += `${this.TargetoptionList[index].nodynamiccruxs[i]}|`;
       }
       regex = regex.slice(0, -1);
       regexno = regexno.slice(0, -1);
-
       hostregex = "(?=.*(?:" + `${regex}` + ")).*$";
-      hostregexno = "(?=.*(?:" + `${regexno}` + ")).*$";
+      hostregexno = "^(?!.(?:" + `${regexno}` + ")).*$";
+      this.TargetoptionList[index].hostregex = hostregex;
+      this.TargetoptionList[index].hostregex2 = hostregexno;
       console.log(hostregex, "纭畾瀛楀尮閰�");
       console.log(hostregexno, "鍚﹀畾瀛楀尮閰�");
+      this.handleSelectionChange();
     },
     // 鎺у埗鏂囦欢
     handleChange(file, fileList) {
@@ -232,47 +275,63 @@
       );
     },
 
-    handleClosecrux(crux) {
+    handleClosecrux(crux, item) {
       if (this.whether == 1) {
         this.dynamiccruxs.splice(this.dynamiccruxs.indexOf(crux), 1);
       } else {
         this.nodynamiccruxs.splice(this.nodynamiccruxs.indexOf(crux), 1);
       }
-      this.generateRegex();
+      this.generateRegex(item);
     },
-    handleInputConfirm() {
+    handleInputConfirm(row) {
+      let index = this.TargetoptionList.indexOf(row);
       if (this.whether == 1 && this.inputValue) {
-        if (this.dynamiccruxs.indexOf(this.inputValue) == -1) {
-          this.dynamiccruxs.push(this.inputValue);
+        if (
+          this.TargetoptionList[index].dynamiccruxs.indexOf(this.inputValue) ==
+          -1
+        ) {
+          this.TargetoptionList[index].dynamiccruxs.push(this.inputValue);
         } else {
           this.$message.error("鍏抽敭瀛楀凡瀛樺湪");
         }
-        this.inputVisible = false;
+        // this.inputVisible = false;
+        this.TargetoptionList[index].inputVisible = false;
       } else if (this.whether == 2 && this.inputValue) {
         console.log(this.inputValue);
-        console.log(this.nodynamiccruxs.indexOf(this.inputValue));
-        if (this.nodynamiccruxs.indexOf(this.inputValue) == -1) {
-          this.nodynamiccruxs.push(this.inputValue);
+        console.log(
+          this.TargetoptionList[index].nodynamiccruxs.indexOf(this.inputValue)
+        );
+        if (
+          this.TargetoptionList[index].nodynamiccruxs.indexOf(
+            this.inputValue
+          ) == -1
+        ) {
+          this.TargetoptionList[index].nodynamiccruxs.push(this.inputValue);
         } else {
           this.$message.error("鍏抽敭瀛楀凡瀛樺湪");
         }
-        this.noinputVisible = false;
+        // this.noinputVisible = false;
+        this.TargetoptionList[index].noinputVisible = false;
       }
-      this.generateRegex();
+      this.generateRegex(row);
 
       this.inputValue = "";
     },
-    showInput() {
-      this.inputVisible = true;
+    showInput(row) {
+      let index = this.TargetoptionList.indexOf(row);
+      // this.TargetoptionList[index].inputVisible = true;
+      this.$set(this.TargetoptionList[index], "inputVisible", true);
       this.whether = 1;
     },
-    showInputno() {
-      this.noinputVisible = true;
+    showInputno(row) {
+      let index = this.TargetoptionList.indexOf(row);
+      // this.TargetoptionList[index].noinputVisible = true;
+      this.$set(this.TargetoptionList[index], "noinputVisible", true);
       this.whether = 2;
-      console.log(2);
     },
     handleSelectionChange(selection) {
-      $emit("handleSelectionChange", selection);
+      console.log(this.TargetoptionList);
+      this.$emit("handleSelectionChange", selection);
     },
   },
 };

--
Gitblit v1.9.3