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