From 9f4da363a401c3624fa57a87fb50193b59bc6a35 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期三, 24 七月 2024 10:28:32 +0800
Subject: [PATCH] 测试完成
---
src/components/Regular/index.vue | 258 +++++++++++++++++++++++++++++++++++++++------------
1 files changed, 195 insertions(+), 63 deletions(-)
diff --git a/src/components/Regular/index.vue b/src/components/Regular/index.vue
index 58e60ca..4aa1773 100644
--- a/src/components/Regular/index.vue
+++ b/src/components/Regular/index.vue
@@ -3,7 +3,7 @@
<div class="topicxq" v-for="item in TargetoptionList">
<el-row :gutter="10">
<el-col :span="12"
- ><el-form-item label="閫夐」鍚�">
+ ><el-form-item label="閫夐」鍚嶇О">
<el-input
type="text"
placeholder="璇疯緭鍏�"
@@ -13,7 +13,15 @@
</el-input> </el-form-item
></el-col>
<el-col :span="12"
- ><el-form-item label="鑺傜偣ID">
+ ><el-form-item label="棰勮鍊�">
+ <el-radio-group v-model="item.isabnormal">
+ <el-radio :label="1">鏄�</el-radio>
+ <el-radio :label="0">鍚�</el-radio>
+ </el-radio-group>
+ </el-form-item></el-col
+ >
+ <el-col :span="12" v-if="intent"
+ ><el-form-item label="閫夐」鑺傜偣">
<el-input
type="text"
placeholder="璇疯緭鍏ヨ妭鐐�"
@@ -23,7 +31,19 @@
</el-input> </el-form-item
></el-col>
</el-row>
- <el-row :gutter="10">
+ <el-row :gutter="10" v-if="!intent">
+ <el-col :span="20"
+ ><el-form-item label="閫夐」璇存槑">
+ <el-input
+ type="text"
+ placeholder="璇疯緭鍏�"
+ v-model="item.optiondesc"
+ show-word-limit
+ >
+ </el-input> </el-form-item
+ ></el-col>
+ </el-row>
+ <el-row :gutter="10" v-if="intent">
<el-col :span="12"
><el-form-item label="澶勭悊">
<el-input
@@ -36,33 +56,33 @@
</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
></el-col>
</el-row>
- <el-form-item label="鍏抽敭瀛�(鍚�)" prop="desc">
+ <el-form-item label="鍏抽敭瀛�(鍚�)" prop="desc" v-if="hasValue">
<div class="xinz-inf">
<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 +92,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,28 +103,28 @@
v-else
class="button-new-tag"
size="small"
- @click="showInput"
+ @click="showInput(item)"
>+ 鏂板</el-button
>
</div>
</el-form-item>
- <el-form-item label="鍏抽敭瀛�(闈�)" prop="desc">
+ <el-form-item label="鍏抽敭瀛�(闈�)" prop="desc" v-if="hasValue">
<div class="xinz-inf">
<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 +134,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,20 +145,40 @@
v-else
class="button-new-tag"
size="small"
- @click="showInputno"
+ @click="showInputno(item)"
>+ 鏂板</el-button
>
</div>
</el-form-item>
+ <el-form-item label="閫夐」鏂囦欢" prop="sickness">
+ <div style="width: 40vw">
+ <el-upload
+ class="upload-demo"
+ :action="uploadImgUrl"
+ :headers="headers"
+ :accept="'image/*,video/*'"
+ :on-success="handleChange.bind(this, item)"
+ >
+ <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+ </el-upload>
+ <div style="margin: 20px">
+ <el-image
+ style="width: 100px; height: 100px"
+ :src="item.picturePath"
+ :preview-src-list="[...item.picturePath]"
+ >
+ </el-image>
+ </div>
+ </div>
+ </el-form-item>
<el-row :gutter="10">
- <el-col :span="16">
+ <el-col :span="16" v-if="intent">
<el-form-item label="璇煶鏂囦欢">
<el-upload
class="upload-demo"
style="display: flex"
action="https://jsonplaceholder.typicode.com/posts/"
- :on-change="handleChange"
:file-list="fileList"
:limit="1"
:on-exceed="handleExceed"
@@ -147,11 +187,35 @@
</el-upload>
</el-form-item></el-col
>
- <el-col :span="8">
+ <el-col :span="intent ? 8 : 22">
<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>
@@ -161,6 +225,7 @@
<script>
import store from "@/store";
+import { getToken } from "@/utils/auth";
export default {
data() {
@@ -173,6 +238,10 @@
url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
},
],
+ headers: {
+ Authorization: "Bearer " + getToken(),
+ },
+ uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
whether: 1, //1涓哄叧閿瘝锛�2涓哄惁瀹氬叧閿瘝
inputValue: "",
inputVisible: false,
@@ -180,7 +249,7 @@
loading: false,
regular: [],
noregular: [],
- nodynamiccruxs: ["鍒�"],
+ nodynamiccruxs: ["鍒�", "涓�"],
dynamiccruxs: ["濂�"],
};
},
@@ -189,6 +258,18 @@
type: Array,
required: true,
default: () => [],
+ },
+ controlsc: {
+ type: Boolean,
+ default: true,
+ },
+ intent: {
+ type: Boolean,
+ default: true,
+ },
+ hasValue: {
+ type: Boolean,
+ default: true,
},
},
@@ -199,27 +280,46 @@
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 = "^(?!." + `${regexno}` + ")(.(" + `${regex}` + ")+.*)$";
- console.log(hostregex);
+ if (regexno) {
+ hostregexno = "^(?!.*(?:" + `${regexno}` + ")).*$";
+ } else {
+ hostregexno = "";
+ }
+ hostregex = "(?=.*(?:" + `${regex}` + ")).*$";
+ this.TargetoptionList[index].targetregex = hostregex;
+ this.TargetoptionList[index].targetregex2 = hostregexno;
+ console.log(hostregex, "纭畾瀛楀尮閰�");
+ console.log(hostregexno, "鍚﹀畾瀛楀尮閰�");
+ this.handleSelectionChange();
},
// 鎺у埗鏂囦欢
- handleChange(file, fileList) {
- this.fileList = fileList.slice(-3);
- },
+ // handleChange(file, fileList) {
+ // this.fileList = fileList.slice(-3);
+ // },
// 鏂囦欢瓒呭嚭涓暟闄愬埗鏃剁殑閽╁瓙
handleExceed(files, fileList) {
this.$message.warning(
@@ -229,47 +329,79 @@
);
},
- 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);
+ },
+ // 閫夐」鏂囦欢涓婁紶
+ handleChange(item, response, file, fileList) {
+ console.log(response, "response");
+ console.log(item, "item");
+ console.log(this.TargetoptionList, "this.TargetoptionList");
+ let index = this.TargetoptionList.findIndex(
+ (obj) => obj.guid == item.guid && obj.name == item.name
+ );
+ this.TargetoptionList[index].picturePath = response.url;
},
},
};
--
Gitblit v1.9.3