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