From e98f65f2a02e82b02d327506d592564f78f4ecf7 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期一, 15 四月 2024 18:22:22 +0800 Subject: [PATCH] 测试完成 --- src/views/repositoryai/general/particulars/index.vue | 202 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 195 insertions(+), 7 deletions(-) diff --git a/src/views/repositoryai/general/particulars/index.vue b/src/views/repositoryai/general/particulars/index.vue index 63f1374..8a161a6 100644 --- a/src/views/repositoryai/general/particulars/index.vue +++ b/src/views/repositoryai/general/particulars/index.vue @@ -172,12 +172,89 @@ <!-- <el-input v-model="indexform.userName" maxlength="30" /> --> </el-form-item> - <el-form-item label="鍖归厤鏂囨湰" prop="desc"> - <el-input - type="textarea" - placeholder="璇疯緭鍏ュ尮閰嶆鍒�" - v-model="ruleForm.selfRegex" - ></el-input> + <el-form-item label="鍏抽敭瀛�(鍚�)" prop="desc"> + <div class="xinz-inf"> + <el-tag + :key="crux" + type="success" + v-for="crux in ruleForm.dynamiccruxs" + closable + effect="dark" + :disable-transitions="false" + @close="handleClosecrux(crux, ruleForm, 1)" + > + {{ crux }} + </el-tag> + <el-select + v-model="inputValue" + v-if="inputVisible" + @change="handleInputConfirm(ruleForm)" + filterable + remote + allow-create + reserve-keyword + default-first-option + :loading="loading" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="ruleForms in regular" + :key="ruleForms.label" + :label="ruleForms.label" + :value="ruleForms.label" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="showInput(ruleForm)" + >+ 鏂板</el-button + > + </div> + </el-form-item> + <el-form-item label="鍏抽敭瀛�(闈�)" prop="desc"> + <div class="xinz-inf"> + <el-tag + :key="crux" + type="warning" + v-for="crux in ruleForm.nodynamiccruxs" + closable + effect="dark" + :disable-transitions="false" + @close="handleClosecrux(crux, ruleForm, 2)" + > + {{ crux }} + </el-tag> + <el-select + v-model="inputValue" + v-if="noinputVisible" + @change="handleInputConfirm(ruleForm)" + filterable + remote + allow-create + reserve-keyword + default-first-option + :loading="loading" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="ruleForms in noregular" + :key="ruleForms.value" + :label="ruleForms.label" + :value="ruleForms.label" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="showInputno(ruleForm)" + >+ 鏂板</el-button + > + </div> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')" @@ -247,12 +324,24 @@ label: "缁撴潫璇�", }, ], - ruleForm: {}, + ruleForm: { + dynamiccruxs: [], + nodynamiccruxs: [], + }, baseForm: { extName: "", }, rules: {}, bases: {}, + whether: 1, //1涓哄叧閿瘝锛�2涓哄惁瀹氬叧閿瘝 + inputValue: "", + inputVisible: false, + noinputVisible: false, + loading: false, + regular: [], + noregular: [], + nodynamiccruxs: ["鍒�", "涓�"], + dynamiccruxs: ["濂�"], }; }, @@ -262,6 +351,8 @@ this.usable = store.getters.usablesz; this.languagelist = store.getters.languagelist; this.mode = store.getters.mode; + this.regular = store.getters.regular; + this.noregular = store.getters.noregular; }, methods: { @@ -388,6 +479,81 @@ } return ""; }, + // 姝e垯----------------- + // 鐢熸垚姝e垯 + generateRegex(row) { + let regex = ""; + let regexno = ""; + let hostregex = ""; + let hostregexno = ""; + + for (let i = 0; i < this.ruleForm.dynamiccruxs.length; i++) { + regex += `${this.ruleForm.dynamiccruxs[i]}|`; + } + for (let i = 0; i < this.ruleForm.nodynamiccruxs.length; i++) { + regexno += `${this.ruleForm.nodynamiccruxs[i]}|`; + } + regex = regex.slice(0, -1); + regexno = regexno.slice(0, -1); + hostregex = "(?=.*(?:" + `${regex}` + ")).*$"; + hostregexno = "^(?!.(?:" + `${regexno}` + ")).*$"; + this.ruleForm.selfRegex = hostregex; + this.ruleForm.selfRegex2 = hostregexno; + console.log(hostregex, "纭畾瀛楀尮閰�"); + console.log(hostregexno, "鍚﹀畾瀛楀尮閰�"); + }, + 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 { + console.log(2); + item.nodynamiccruxs.splice(item.nodynamiccruxs.indexOf(crux), 1); + } + this.generateRegex(item); + }, + handleInputConfirm(row) { + // let index = this.TargetoptionList.indexOf(row); + console.log(this.ruleForm.dynamiccruxs); + console.log(this.ruleForm.nodynamiccruxs); + if (this.whether == 1 && this.inputValue) { + console.log(1); + if (this.ruleForm.dynamiccruxs.indexOf(this.inputValue) == -1) { + this.ruleForm.dynamiccruxs.push(this.inputValue); + console.log(2); + } else { + this.$message.error("鍏抽敭瀛楀凡瀛樺湪"); + } + // this.inputVisible = false; + this.inputVisible = false; + } else if (this.whether == 2 && this.inputValue) { + console.log(this.ruleForm.nodynamiccruxs.indexOf(this.inputValue)); + if (this.ruleForm.nodynamiccruxs.indexOf(this.inputValue) == -1) { + this.ruleForm.nodynamiccruxs.push(this.inputValue); + } else { + this.$message.error("鍏抽敭瀛楀凡瀛樺湪"); + } + // this.noinputVisible = false; + this.noinputVisible = false; + } + this.generateRegex(row); + + this.inputValue = ""; + }, + showInput(row) { + // let index = this.TargetoptionList.indexOf(row); + this.inputVisible = true; + // this.$set(this.ruleForm, "inputVisible", true); + this.whether = 1; + }, + showInputno(row) { + // let index = this.TargetoptionList.indexOf(row); + this.noinputVisible = true; + // this.$set(this.ruleForm, "noinputVisible", true); + this.whether = 2; + }, }, }; </script> @@ -408,6 +574,28 @@ .button-textsc { color: rgb(235, 23, 23); } +.topicxq { + background-color: #e2f5fc; + border-radius: 4px; + margin-top: 10px; + padding: 10px; +} + +.el-tag + .el-tag { + margin-left: 10px; +} +.button-new-tag { + margin-left: 10px; + height: 32px; + line-height: 30px; + padding-top: 0; + padding-bottom: 0; +} +.input-new-tag { + width: 90px; + margin-left: 10px; + vertical-align: bottom; +} ::v-deep.el-table .warning-row { background: rgb(193, 208, 250); } -- Gitblit v1.9.3