From 2c9ddebd07230ca4165e2ee55470133fdf9ccd99 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期三, 31 七月 2024 09:42:22 +0800 Subject: [PATCH] 测试完成 --- src/components/Regular/index.vue | 270 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 207 insertions(+), 63 deletions(-) diff --git a/src/components/Regular/index.vue b/src/components/Regular/index.vue index f9f20de..bab62b1 100644 --- a/src/components/Regular/index.vue +++ b/src/components/Regular/index.vue @@ -3,17 +3,25 @@ <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="璇疯緭鍏�" + placeholder="璇疯緭鍏ワ紙蹇呭~椤癸級" v-model="item.targetvalue" show-word-limit > </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,44 +56,46 @@ </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 reserve-keyword default-first-option :loading="loading" 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> @@ -81,39 +103,41 @@ 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 reserve-keyword default-first-option :loading="loading" 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> @@ -121,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" v-if="Verbalproblem"> + <div style="width: 40vw"> + <el-upload + class="upload-demo" + :action="uploadImgUrl" + :headers="headers" + accept=".jpg,.png,image/*" + :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" @@ -143,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> @@ -157,6 +225,7 @@ <script> import store from "@/store"; +import { getToken } from "@/utils/auth"; export default { data() { @@ -169,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, @@ -176,7 +249,7 @@ loading: false, regular: [], noregular: [], - nodynamiccruxs: ["鍒�"], + nodynamiccruxs: ["鍒�", "涓�"], dynamiccruxs: ["濂�"], }; }, @@ -185,6 +258,22 @@ type: Array, required: true, default: () => [], + }, + controlsc: { + type: Boolean, + default: true, + }, + intent: { + type: Boolean, + default: true, + }, + hasValue: { + type: Boolean, + default: true, + }, + Verbalproblem: { + type: Boolean, + default: true, }, }, @@ -195,27 +284,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( @@ -225,44 +333,80 @@ ); }, - 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) { + 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 + ); + console.log(index); + this.TargetoptionList[index].picturePath = response.url; }, }, }; -- Gitblit v1.9.3