From 2fe94c2414aa1b8840e4dbf9a8e19121a8a867b6 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期六, 12 十月 2024 09:35:31 +0800 Subject: [PATCH] 测试完成 --- src/views/repositoryai/general/particulars/index.vue | 503 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 361 insertions(+), 142 deletions(-) diff --git a/src/views/repositoryai/general/particulars/index.vue b/src/views/repositoryai/general/particulars/index.vue index 63f1374..48608e6 100644 --- a/src/views/repositoryai/general/particulars/index.vue +++ b/src/views/repositoryai/general/particulars/index.vue @@ -10,14 +10,14 @@ > <el-row :gutter="20"> <el-col :span="12"> - <el-form-item label="妯$増鍚嶇О" prop="extName"> + <el-form-item label="妯℃澘鍚嶇О" prop="extName"> <el-input v-model="baseForm.extName" placeholder="璇疯緭鍏�" ></el-input> </el-form-item ></el-col> <el-col :span="12"> - <el-form-item label="妯$増鍒嗙被" prop="groupID"> + <el-form-item label="妯℃澘鍒嗙被" prop="groupID"> <el-select v-model="baseForm.groupID" placeholder="璇烽�夋嫨鍒嗙被"> <el-option v-for="item in deptOptions" @@ -31,7 +31,7 @@ </el-row> <el-row :gutter="20"> <el-col :span="12"> - <el-form-item label="妯$増姒傝堪" prop="name"> + <el-form-item label="妯℃澘姒傝堪" prop="name"> <el-input v-model="baseForm.note" placeholder="璇疯緭鍏�" @@ -51,156 +51,243 @@ ></el-col> </el-row> </el-form> - <div class="elcardiv"> - <div class="leftvlue-jbxx">璇濇湳鍒楄〃</div> - <el-divider></el-divider> + <div class="presentation"> + <div class="presentation-left"> + <div class="leftvlue-jbxx">璇濇湳鍒楄〃</div> + <el-divider></el-divider> - <el-table :data="targetList" :row-class-name="tableRowClassName"> - <el-table-column label="搴忓彿" align="center" key="id" prop="id" /> + <el-table :data="targetList" :row-class-name="tableRowClassName"> + <el-table-column + label="搴忓彿" + fixed + align="center" + key="id" + prop="id" + /> - <el-table-column - label="闂鏂囨湰" - align="center" - key="switchText" - width="250" - prop="switchText" - :show-overflow-tooltip="true" + <el-table-column + label="闂鏂囨湰" + align="center" + key="switchText" + width="250" + prop="switchText" + :show-overflow-tooltip="true" + > + </el-table-column> + + <el-table-column + label="鏄惁鍙敤" + align="center" + key="isEnable" + prop="isEnable" + > + <template slot-scope="scope"> + <span>{{ scope.row.isEnable == 1 ? "鍋滅敤" : "鍚敤" }}</span> + </template> + </el-table-column> + <el-table-column + label="鏈�杩戜慨鏀�" + align="center" + key="updateTime" + width="250" + prop="updateTime" + :show-overflow-tooltip="true" + > + </el-table-column> + + <el-table-column + label="鎿嶄綔" + align="center" + fixed="right" + width="200" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="handleUpdate(scope.row, scope.$index)" + ><span class="button-textxg" + ><i class="el-icon-edit"></i>淇敼</span + ></el-button + > + + <el-button + size="medium" + type="text" + @click="handleDelete(scope.row)" + ><span class="button-textsc" + ><i class="el-icon-delete"></i>鍒犻櫎</span + ></el-button + > + </template> + </el-table-column> + </el-table> + </div> + <div class="presentation-right"> + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="100px" + class="demo-ruleForm" > - </el-table-column> - - <el-table-column - label="鏄惁鍙敤" - align="center" - key="isEnable" - prop="isEnable" - > - <template slot-scope="scope"> - <span>{{ scope.row.isEnable == 1 ? "鍋滅敤" : "鍚敤" }}</span> - </template> - </el-table-column> - <el-table-column - label="鏈�杩戜慨鏀�" - align="center" - key="updateTime" - width="250" - prop="updateTime" - :show-overflow-tooltip="true" - > - </el-table-column> - - <el-table-column - label="鎿嶄綔" - align="center" - width="200" - class-name="small-padding fixed-width" - > - <template slot-scope="scope"> - <el-button - size="medium" - type="text" - @click="handleUpdate(scope.row, scope.$index)" - ><span class="button-textxg" - ><i class="el-icon-edit"></i>淇敼</span - ></el-button - > - - <el-button - size="medium" - type="text" - @click="handleDelete(scope.row)" - ><span class="button-textsc" - ><i class="el-icon-delete"></i>鍒犻櫎</span - ></el-button - > - </template> - </el-table-column> - </el-table> - <el-form - :model="ruleForm" - :rules="rules" - ref="ruleForm" - label-width="100px" - class="demo-ruleForm" - > - <div style="margin: 15px; margin-top: 50px"> <div class="leftvlue-jbxx">璇濇湳缂栬緫</div> <el-divider></el-divider> + <div style="margin: 15px; margin-top: 50px"> + <el-form-item label="璇濇湳鏂囨湰" prop="name"> + <el-input + v-model="ruleForm.switchText" + placeholder="璇疯緭鍏�" + ></el-input> + </el-form-item> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="鏄惁鍚敤" prop="resource"> + <el-select v-model="ruleForm.isEnable" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in usable" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + <el-col :span="12"> + <el-form-item label="鏄惁涓虹粨鏉熻" prop="resource"> + <el-select v-model="ruleForm.isEnd" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in usablend" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + </el-row> + <el-form-item label="闂璇煶" prop="verbaltrickyy"> + <el-upload + class="upload-demo" + action="https://jsonplaceholder.typicode.com/posts/" + :on-change="handleChange" + :file-list="fileList" + :limit="1" + :on-exceed="handleExceed" + > + <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> + </el-upload> + <!-- <el-input v-model="indexform.userName" maxlength="30" /> --> + </el-form-item> - <el-form-item label="璇濇湳鏂囨湰" prop="name"> - <el-input - v-model="ruleForm.switchText" - placeholder="璇疯緭鍏�" - ></el-input> - </el-form-item> - <el-row :gutter="20"> - <el-col :span="12"> - <el-form-item label="鏄惁鍚敤" prop="resource"> - <el-select v-model="ruleForm.isEnable" placeholder="璇烽�夋嫨"> + <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="item in usable" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="ruleForms in regular" + :key="ruleForms.label" + :label="ruleForms.label" + :value="ruleForms.label" > </el-option> - </el-select> </el-form-item - ></el-col> - <el-col :span="12"> - <el-form-item label="鏄惁涓虹粨鏉熻" prop="resource"> - <el-select v-model="ruleForm.isEnd" placeholder="璇烽�夋嫨"> + </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="item in usablend" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="ruleForms in noregular" + :key="ruleForms.value" + :label="ruleForms.label" + :value="ruleForms.label" > </el-option> - </el-select> </el-form-item - ></el-col> - </el-row> - <el-form-item label="闂璇煶" prop="verbaltrickyy"> - <el-upload - class="upload-demo" - action="https://jsonplaceholder.typicode.com/posts/" - :on-change="handleChange" - :file-list="fileList" - :limit="1" - :on-exceed="handleExceed" - > - <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> - </el-upload> - <!-- <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> - <el-form-item> - <el-button type="primary" @click="submitForm('ruleForm')" - >淇濆瓨妯$増</el-button - > - <el-button - v-if="ruleForm.id" - type="primary" - plain - @click="modification('edit')" - >淇濆瓨璇濇湳</el-button - > - <el-button - v-else - type="success" - plain - @click="modification('add')" - >鏂板璇濇湳</el-button - > - <el-button @click="resetForm('ruleForm')">鍏抽棴</el-button> - </el-form-item> - </div> - </el-form> + </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')" + >淇濆瓨妯℃澘</el-button + > + <el-button + v-if="ruleForm.id" + type="primary" + plain + @click="modification('edit')" + >淇濆瓨璇濇湳</el-button + > + <el-button + v-else + type="success" + plain + @click="modification('add')" + >鏂板璇濇湳</el-button + > + <el-button @click="resetForm('ruleForm')">鍏抽棴</el-button> + </el-form-item> + </div> + </el-form> + </div> </div> </el-card> </div> @@ -247,12 +334,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 +361,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 +489,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> @@ -402,12 +578,55 @@ margin: 15px 0; } } +.presentation { + margin: 20px 0; + display: flex; + .presentation-left { + width: 60%; + // height: 500px; + } + .presentation-right { + width: 40%; + max-height: 688px; + padding: 0 20px; + font-size: 18px; + overflow: auto; + } + .leftvlue-jbxx { + font-size: 24px; + border-left: 5px solid #5788fe; + padding-left: 5px; + margin: 15px 0; + } +} .button-textxg { color: rgb(35, 81, 233); } .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