From 49fcdb7178dffc69769e2fb8cb6a03e204cb1e68 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期五, 31 五月 2024 18:26:42 +0800 Subject: [PATCH] 测试完成 --- src/components/Regular/index.vue | 178 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 124 insertions(+), 54 deletions(-) diff --git a/src/components/Regular/index.vue b/src/components/Regular/index.vue index fb1f240..6368c34 100644 --- a/src/components/Regular/index.vue +++ b/src/components/Regular/index.vue @@ -12,8 +12,8 @@ > </el-input> </el-form-item ></el-col> - <el-col :span="12" - ><el-form-item label="鑺傜偣ID"> + <el-col :span="12" v-if="intent" + ><el-form-item label="閫夐」鑺傜偣"> <el-input type="text" placeholder="璇疯緭鍏ヨ妭鐐�" @@ -23,7 +23,7 @@ </el-input> </el-form-item ></el-col> </el-row> - <el-row :gutter="10"> + <el-row :gutter="10" v-if="intent"> <el-col :span="12" ><el-form-item label="澶勭悊"> <el-input @@ -36,11 +36,11 @@ </el-input> </el-form-item ></el-col> <el-col :span="12" - ><el-form-item label="閫変腑璺宠浆(缂�)"> + ><el-form-item label="閫変腑璺宠浆"> <el-input type="text" placeholder="璇疯緭鍏ラ鐩妭鐐�" - v-model="item.jump" + v-model="item.nextQuestion" show-word-limit > </el-input> </el-form-item @@ -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, 1)" > {{ 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, 2)" > {{ 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: ["濂�"], }; }, @@ -189,6 +213,14 @@ type: Array, required: true, default: () => [], + }, + controlsc: { + type: Boolean, + default: true, + }, + intent: { + type: Boolean, + default: true, }, }, @@ -199,25 +231,41 @@ 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); - + if (regexno) { + hostregexno = "^(?!.*(?:" + `${regexno}` + ")).*$"; + } else { + hostregexno = ""; + } hostregex = "(?=.*(?:" + `${regex}` + ")).*$"; - hostregexno = "(?=.*(?:" + `${regexno}` + ")).*$"; + this.TargetoptionList[index].targetregex = hostregex; + this.TargetoptionList[index].targetregex2 = hostregexno; console.log(hostregex, "纭畾瀛楀尮閰�"); console.log(hostregexno, "鍚﹀畾瀛楀尮閰�"); + this.handleSelectionChange(); }, // 鎺у埗鏂囦欢 handleChange(file, fileList) { @@ -232,47 +280,69 @@ ); }, - handleClosecrux(crux) { - if (this.whether == 1) { - this.dynamiccruxs.splice(this.dynamiccruxs.indexOf(crux), 1); + handleClosecrux(crux, item, whether) { + if (whether == 1) { + item.dynamiccruxs.splice(item.dynamiccruxs.indexOf(crux), 1); + console.log(1); + console.log(item.dynamiccruxs); + console.log(item.nodynamiccruxs); } else { - this.nodynamiccruxs.splice(this.nodynamiccruxs.indexOf(crux), 1); + console.log(2); + item.nodynamiccruxs.splice(item.nodynamiccruxs.indexOf(crux), 1); } - this.generateRegex(); + this.generateRegex(item); }, - handleInputConfirm() { + handleInputConfirm(row) { + console.log(this.TargetoptionList, "TargetoptionList"); + let index = this.TargetoptionList.indexOf(row); + console.log(1112); 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