From 79925204a4e1588d1031ca0429ae318a608a8928 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 01 二月 2024 11:32:23 +0800 Subject: [PATCH] 指标完成 --- src/views/repositoryai/intention/index.vue | 395 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 225 insertions(+), 170 deletions(-) diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue index 10dd668..1d48246 100644 --- a/src/views/repositoryai/intention/index.vue +++ b/src/views/repositoryai/intention/index.vue @@ -13,56 +13,35 @@ class="input-with-select" size="medium " > - <el-button - @click="sidecolumnss" - slot="append" - icon="el-icon-search" - ></el-button> </el-input> </div> - <div class="bottom-fl"> - <el-menu - default-active="3" - class="el-menu-vertical-demo" - @open="handleOpen" - @close="handleClose" - @select="handleSelect" - > - <el-submenu index="1"> - <template slot="title"> - <i class="el-icon-location"></i> - <span>鍒嗙被涓�</span> - </template> - <el-menu-item index="1-1">閫夐」1</el-menu-item> - <el-menu-item index="1-2">閫夐」2</el-menu-item> - <el-menu-item index="1-3">閫夐」3</el-menu-item> - <el-menu-item index="1-4">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="2"> - <template slot="title"> - <i class="el-icon-menu"></i> - <span>鍒嗙被浜�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - <el-menu-item index="2-2">閫夐」2</el-menu-item> - <el-menu-item index="2-3">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="3"> - <template slot="title"> - <i class="el-icon-document"></i> - <span>鍒嗙被涓�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - <el-submenu index="4"> - <template slot="title"> - <i class="el-icon-setting"></i> - <span>鍒嗙被鍥�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - </el-menu> + <div class="head-container" style="margin-top: 20px"> + <el-tree + :data="deptOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + node-key="id" + default-expand-all + highlight-current + @node-click="handleNodeClick" + > + <span class="custom-tree-node" slot-scope="{ node, data }"> + <span>{{ node.label }}</span> + <span> + <el-button + type="text" + icon="el-icon-delete" + circle + size="mini" + @click="() => remove(node, data)" + > + </el-button> + </span> + </span> + </el-tree> </div> </div> <!-- 鍙充晶鏁版嵁 --> @@ -193,12 +172,14 @@ <el-table-column type="selection" width="50" align="center" /> <el-table-column label="搴忓彿" + fixed align="center" - key="targetID" - prop="targetID" + key="id" + prop="id" /> <el-table-column label="鍊肩被鍨�" + fixed align="center" key="isenable" prop="isenable" @@ -287,6 +268,7 @@ <el-table-column label="鎿嶄綔" + fixed="right" align="center" width="200" class-name="small-padding fixed-width" @@ -366,8 +348,33 @@ </el-form-item> </el-col> </el-row> + <!-- deptOptions --> <el-row v-if="!measurement"> - <el-col :span="12"> + <el-col :span="8"> + <el-form-item label="鎸囨爣鍒嗙被"> + <el-select + v-model="indexform.assortid" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option-group + v-for="group in deptOptions" + :key="group.id" + :label="group.indexAssortName" + > + <el-option + v-for="item in group.ivrLibaTargetAssortList" + :key="item.id" + :label="item.indexAssortName" + :value="item.id" + > + </el-option> + </el-option-group> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> <el-form-item label="璇█" prop="deptId"> <el-select v-model="indexform.language" @@ -382,7 +389,7 @@ </el-select> </el-form-item> </el-col> - <el-col :span="12"> + <el-col :span="8"> <el-form-item label="鏄惁鍙敤" prop="isAvailable"> <el-select v-model="indexform.isAvailable" @@ -562,6 +569,9 @@ </el-table-column> </el-table> </el-card> + <el-card class="box-card" style="margin-bottom: 20px"> + <Regular :TargetoptionList="testuserList" /> + </el-card> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="娴嬭瘯杈撳叆" prop="nickName"> @@ -642,28 +652,30 @@ </span> </el-dialog> <!-- 娣诲姞绫诲埆寮规 --> - <el-dialog - :title="amendtag ? '淇敼绫诲埆' : '鏂板绫诲埆'" - width="30%" - :visible.sync="dialogFormVisible" - > + <el-dialog title="鏂板绫诲埆" width="30%" :visible.sync="dialogFormVisible"> + <div style="text-align: center; margin-bottom: 20px"> + <el-radio-group v-model="radio"> + <el-radio-button label="涓诲垎绫�"></el-radio-button> + <el-radio-button label="瀛愬垎绫�"></el-radio-button> + </el-radio-group> + </div> + <el-divider></el-divider> + <el-form :model="classifyform"> - <el-form-item label="璇烽�夋嫨鎸囨爣澶х被"> - <el-select v-model="classifyform.broadheading" placeholder="璇烽�夋嫨"> + <el-form-item label="璇烽�夋嫨闂澶х被" v-if="radio == '瀛愬垎绫�'"> + <el-select v-model="classifyform.pid" placeholder="璇烽�夋嫨"> <el-option - v-for="item in editableTabs" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in deptOptions" + :key="item.id" + :label="item.indexAssortName" + :value="item.id" > </el-option> </el-select> </el-form-item> - <el-form-item - :label="amendtag ? '璇疯緭鍏ユ柊鐨勭被鍒悕绉�' : '璇疯緭鍏ョ被鍒悕绉�'" - > + <el-form-item label="璇疯緭鍏ョ被鍒悕绉�"> <el-input - v-model="classifyform.categoryname" + v-model="classifyform.indexAssortName" autocomplete="off" ></el-input> </el-form-item> @@ -673,31 +685,10 @@ <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button> </div> </el-dialog> - <!-- 鍒犻櫎绫诲埆纭妗� --> - <el-dialog title="璀﹀憡" :visible.sync="deleteVisible" width="40%"> - <div style="font-size: 20px; color: rgb(247, 76, 76)"> - 鏄惁纭鍒犻櫎鍒嗙被锛歔<span>{{ deletefenl }}</span - >]? - </div> - <div style="font-size: 20px"> - 姝ゆ搷浣滀細灏嗚绫诲埆涓嬫墍鏈夋ā鍧楄浆绉昏嚦[鏈垎绫籡锛屾槸鍚︾户缁垹闄ゆ鍒嗙被锛� - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="deleteVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="deletefenlei">纭� 瀹�</el-button> - </span> - </el-dialog> </div> </template> <script> -import { - listUser, - getUser, - delUser, - addUser, - updateUser, -} from "@/api/system/user"; import { gettargetInfo, particulartarget, @@ -709,9 +700,13 @@ getillness, deltargetillness, addtargetillness, + selectIvrLibaTargetAssortList, + addtreeselectIvrLibaTargetAssort, + delselectIvrLibaTargetAssort, } from "@/api/AiCentre/index"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; +import Regular from "@/components/Regular"; //姝e垯缁勪欢 import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import { listtag } from "@/api/system/label"; import store from "@/store"; @@ -719,7 +714,7 @@ export default { name: "questionnaire", dicts: ["sys_normal_disable", "sys_user_sex"], - components: { Treeselect }, + components: { Treeselect, Regular }, data() { return { topactiveName: "Local", //椤堕儴閫夋嫨 @@ -743,6 +738,7 @@ dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规 deleteVisible: false, //鍒嗙被鍒犻櫎寮规 deletefenl: "楂樿鍘�", //鍒犻櫎椤� + radio: "涓诲垎绫�", testvalue: "", testgovalue: "", classifyform: { @@ -765,6 +761,11 @@ indexform: {}, numberlb: 22, numberlbs: 2, + deptOptions: [], + defaultProps: { + children: "ivrLibaTargetAssortList", + label: "indexAssortName", + }, sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟 dialogFormVisible: false, //娣诲姞绫诲埆寮规 sidecolumnval: "", //绫诲埆鎼滅储 @@ -776,59 +777,39 @@ dynamicTags: [], illnesslist: [], illnesslistapi: [], - optionsillness: [], + optionsillness: [], qyoptions: [], mode: [], optionstag: [], targetoptionList: [], - //绫诲埆鍒楄〃 - editableTabs: [ - { - title: "鎸囨爣鍒嗙被涓�", - number: "1", - }, - { - title: "鎸囨爣鍒嗙被浜�", - number: "2", - }, - { - title: "鎸囨爣鍒嗙被涓�", - number: "2", - }, - { - title: "鎸囨爣鍒嗙被鍥�", - number: "2", - }, - { - title: "鎸囨爣鍒嗙被浜�", - number: "2", - }, - ], + // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, pageSize: 10, - userName: undefined, - phonenumber: undefined, - status: undefined, - deptId: undefined, - IDnumber: undefined, }, // 琛ㄥ崟鏍¢獙 rules: {}, }; }, - watch: {}, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + sidecolumnval(val) { + console.log(val); + this.$refs.tree.filter(val); + }, + }, created() { + // 鍒濆鍖栨暟鎹� this.getList(); this.gettabList(); + this.getDeptTree(); this.mode = store.getters.mode; this.valuetype = store.getters.valuetype; this.languagelist = store.getters.languagelist; this.qyoptions = store.getters.usable; }, - methods: { /** 鏌ヨ鎸囨爣鍒楄〃 */ getList() { @@ -840,35 +821,15 @@ this.loading = false; }); }, - processElement(element) { + + processElement(element) { + // 杩斿洖涓�涓柊鐨勫璞★紝灏唀lement瀵硅薄鐨勫睘鎬soperation璁剧疆涓�1 return { ...element, isoperation: 1 }; }, + // 杩斿洖鏁扮粍涓寚瀹氬厓绱犵殑绱㈠紩 getIndexInArray(arr, obj) { + // 杩斿洖鏁扮粍涓寚瀹氬厓绱犵殑绱㈠紩 return arr.indexOf(obj); - }, - // 娣诲姞銆佷慨鏀圭被鍒� - submitsidecolumn() { - if (this.amendtag) { - this.classifyform.tagcategoryid = this.idds; - // toamendtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } else { - // addtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } - this.classifyform = { - categoryname: "", - }; - this.idds = ""; - this.dialogFormVisible = false; }, //鍒犻櫎鍒嗙被 deletefenlei(row) { @@ -886,20 +847,10 @@ } }, - // 渚ц竟-------------- - handleOpen(key, keyPath) { - console.log(key, keyPath); - }, - handleClose(key, keyPath) { - console.log(key, keyPath); - }, - handleSelect(key, keyPath) { - console.log(key, keyPath); - }, // 鐤剧梾----------------------- illnessUpdate(row) { this.illnessVisible = true; - this.indexid = row.targetID; + this.indexid = row.id; this.illnesslistapi = []; const illnessqueryParams = { pageNum: 1, @@ -909,7 +860,7 @@ console.log(response); this.optionsillness = response.rows; }); - getillness({ outid: row.targetID, type: 1 }).then((res) => { + getillness({ outid: row.id, type: 1 }).then((res) => { this.illnesslist = res.rows; console.log(res); }); @@ -921,7 +872,6 @@ } }, remoteMethod(value) { - console.log(value); const illnessqueryParams = { pageNum: 1, pageSize: 100, @@ -963,7 +913,7 @@ deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); } this.illnessVisible = false; - this.$modal.msgSuccess("缂栬緫鐤剧梾鎴愬姛"); + this.$modal.msgSuccess("缂栬緫鎴愬姛"); }, // 鏍囩----------------- @@ -1004,6 +954,7 @@ isoperation: 1, }; } + console.log(tagvalue); this.indexform.baseTagList.push(tagvalue); this.dynamicTags.push(tagvalue); console.log(this.indexform.baseTagList); @@ -1020,7 +971,7 @@ addoption() { const objvakue = { guid: 1, - targetid: this.indexform.targetid, + id: this.indexform.id, targettype: this.indexform.targettype, targetvalue: "璐", targetregex: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", @@ -1060,7 +1011,7 @@ targetvalue: item.targetvalue, targetregex: item.targetregex, targetoptionid: item.targetoptionid, - targetid: this.indexform.targetid, + id: this.indexform.id, targettype: this.indexform.targettype, isoperation: item.targetoptionid ? 2 : 1, categoryName: item.categoryName, @@ -1070,10 +1021,80 @@ console.log(this.testuserList); }, // --------------------- - //鎼滅储绫诲埆 - sidecolumnss() {}, - // 鍒囨崲鍏变韩/鏈湴 - tophandleClick() {}, + + /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ + getDeptTree() { + selectIvrLibaTargetAssortList({}).then((res) => { + this.deptOptions = res.rows; + }); + }, + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.indexAssortName.indexOf(value) !== -1; + }, + // 娣诲姞绫诲埆鏍� + submitsidecolumn() { + let calssvalue = {}; + if ( + this.classifyform.pid && + this.classifyform.indexAssortName && + this.radio == "瀛愬垎绫�" + ) { + const index = this.deptOptions.findIndex( + (obj) => obj.id == this.classifyform.pid + ); + calssvalue = this.deptOptions[index]; + console.log(calssvalue); + calssvalue.ivrLibaTargetAssortList.push(this.classifyform); + } else if (this.radio == "涓诲垎绫�" && this.classifyform.indexAssortName) { + this.classifyform.pid = null; + this.classifyform.ivrLibaTargetAssortList = []; + } else { + return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�"); + } + + addtreeselectIvrLibaTargetAssort(this.classifyform).then((res) => { + this.getDeptTree(); + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.classifyform = {}; + this.dialogFormVisible = false; + }); + }, + remove(a, b) { + if (b.pid) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.indexAssortName + '"鐨勬暟鎹」锛�') + .then(function () { + return delselectIvrLibaTargetAssort(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } else { + this.$modal + .confirm( + '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + + b.indexAssortName + + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�' + ) + .then(() => { + return delselectIvrLibaTargetAssort(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } + }, + handleNodeClick(data) { + this.queryParams.assortid = data.id; + this.getList(); + }, + // 鍙栨秷鎸夐挳 cancel() { this.indexopen = false; @@ -1084,7 +1105,7 @@ reset() { this.indexform = { suitWay: undefined, - targetID: undefined, + id: undefined, targetdesc: undefined, baseTagList: [], targetoptionList: [], @@ -1100,13 +1121,16 @@ resetQuery() { this.dateRange = []; this.resetForm("queryForm"); - this.queryParams.deptId = undefined; + this.queryParams={ + pageNum: 1, + pageSize: 10, + }; this.$refs.tree.setCurrentKey(null); this.handleQuery(); }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.targetID); + this.ids = selection.map((item) => item.id); this.single = selection.length != 1; this.multiple = !selection.length; }, @@ -1163,7 +1187,7 @@ this.targetoptionList ); if (valid) { - if (this.indexform.targetID != undefined) { + if (this.indexform.id != undefined) { this.indexform.isoperation = 2; gettargetInfoedit(this.indexform).then((response) => { this.$modal.msgSuccess("淇敼鎴愬姛"); @@ -1184,7 +1208,7 @@ }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { - const userIds = row.targetID || this.ids; + const userIds = row.id || this.ids; this.$modal .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶇О涓�"' + row.targetname + '"鐨勬暟鎹」锛�') .then(function () { @@ -1259,7 +1283,7 @@ margin-top: 20px; margin: 20px; padding: 30px; - background: #edf1f7; + background: #fff; border: 1px solid #dcdfe6; -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); @@ -1340,6 +1364,37 @@ font-size: 20px; } } +::v-deep .el-tree-node__content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 46px; + font-size: 20px; + cursor: pointer; +} +::v-deep .el-tree{ + position: relative; + cursor: default; + border-radius: 5px; + background: #EFF8FE; + color: #606266; + border: 1px solid #bbe1fa; + // border: 1px solid #dcdfe6; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); + +} +::v-deep .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content { + background-color: #7799FB ; + color: #fff; +} +::v-deep .el-button--mini.is-circle { + padding: 7px; + margin: 0; + color: red; +} .button-text { color: rgb(70, 204, 238); } -- Gitblit v1.9.3