From 3b774a197bd7087ee42999937ccc1e7e048eb1aa Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 11 一月 2024 18:03:17 +0800 Subject: [PATCH] 指标完成 --- src/views/repositoryai/templateku/configurat/index.vue | 320 ++++++++++++++++++++++++++++++++++------------------- 1 files changed, 206 insertions(+), 114 deletions(-) diff --git a/src/views/repositoryai/templateku/configurat/index.vue b/src/views/repositoryai/templateku/configurat/index.vue index b818ccc..1178af9 100644 --- a/src/views/repositoryai/templateku/configurat/index.vue +++ b/src/views/repositoryai/templateku/configurat/index.vue @@ -115,20 +115,27 @@ ></el-col> <el-col :span="12"> <el-form-item label="鎾姤浼樺厛" prop="playType"> - <el-radio-group v-model="ruleForm.playType"> - <el-radio + <el-select + v-model="ruleForm.playType" + size="medium" + filterable + placeholder="璇烽�夋嫨璇█" + > + <el-option + class="ruleFormaa" v-for="item in precedencetype" - :label="item.value" - >{{ item.label }}</el-radio + :key="item.value" + :label="item.label" + :value="item.value" > - </el-radio-group> - </el-form-item></el-col - > + </el-option> + </el-select> </el-form-item + ></el-col> </el-row> <el-form-item label="闅忚鏂瑰紡" prop="region"> <el-select style="width: 500px" - v-model="ruleForm.way" + v-model="ruleForm.suitway" size="medium" multiple filterable @@ -229,7 +236,7 @@ </el-form-item> <el-form-item label="閫傜敤闄㈠尯" prop="region"> <el-select - v-model="campusvalue" + v-model="ruleForm.campus" size="medium" multiple filterable @@ -246,28 +253,23 @@ </el-select> </el-form-item> <el-form-item label="閫傜敤绉戝" prop="region"> - <el-select - style="width: 500px" - v-model="deptNamesvalue" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨鍒嗙被锛堝閫夛級" + <el-cascader + v-model="tempDetpRelevanceslist" + :options="deptList" + :props="props" + :show-all-levels="false" + clearable > - <el-option - class="ruleFormaa" - v-for="item in administrativelist" - :key="item.label" - :label="item.label" - :value="item.label" - > - </el-option> - </el-select> + <template slot-scope="{ node, data }"> + <span>{{ data.deptName }}</span> + <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> + </template> + </el-cascader> </el-form-item> <el-form-item label="閫氱敤搴�" prop="region"> <el-select style="width: 500px" - v-model="ruleForm.waya" + v-model="ruleForm.submoduleID" size="medium" multiple filterable @@ -341,7 +343,7 @@ >涓嬩竴姝�</el-button > <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button> - <el-button @click="submitForm('ruleForm')" + <el-button @click="Departmenttreatment('ruleForm')" >淇濆瓨闅忚妯$増鍩虹淇℃伅</el-button > </el-form-item> @@ -356,32 +358,35 @@ type="primary" icon="el-icon-plus" round - @click="drawer = true" + @click="getaddtopiclist" >娣诲姞棰樼洰</el-button > </div> <div class="presentation"> <div class="presentation-left"> <el-card class="box-card" style="min-height: 688px"> - <el-table v-loading="loading" :data="userList"> + <el-table + v-loading="loading" + :data="ruleForm.ivrLibaTemplateScriptVOList" + > <el-table-column label="缂栧彿" align="center" - key="userid" - prop="userid" + key="id" + prop="id" /> <el-table-column label="鏍囬" align="center" - key="userName" - prop="userName" + key="questiontitle" + prop="questiontitle" :show-overflow-tooltip="true" /> <el-table-column label="闂璇濇湳" align="center" - key="verbaltrick" - prop="verbaltrick" + key="questionText" + prop="questionText" :show-overflow-tooltip="true" /> @@ -402,7 +407,7 @@ type="danger" icon="el-icon-delete" circle - @click="deloption(scope.row)" + @click="handleDelete(scope.row)" ></el-button> <el-button @click="syioption(scope.row)" @@ -420,14 +425,6 @@ </el-table-column> </el-table> </el-card> - - <pagination - v-show="total > 0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> </div> <div class="presentation-right"> <el-card class="box-card"> @@ -446,24 +443,40 @@ </div> <el-form-item label="棰樼洰鏍囬"> <el-input - v-model="topicobj.title" + v-model="topicobj.questiontitle" placeholder="璇疯緭鍏ユ爣棰�" ></el-input> </el-form-item> <el-row :gutter="10"> <el-col :span="12" - ><el-form-item label="鏄惁蹇呯瓟"> - <el-radio-group v-model="topicobj.resource"> - <el-radio label="鏄�"></el-radio> - <el-radio label="鍚�"></el-radio> - </el-radio-group> </el-form-item + ><el-form-item label="鏄惁蹇呭~"> + <el-select + v-model="topicobj.ismandatory" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in required" + :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="鏄惁闅愯棌"> - <el-radio-group v-model="topicobj.resourcea"> - <el-radio label="鏄�"></el-radio> - <el-radio label="鍚�"></el-radio> - </el-radio-group> </el-form-item + ><el-form-item label="鏄惁鍙敤"> + <el-select + v-model="topicobj.isavailable" + 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-row> <div class="headline"> @@ -477,14 +490,17 @@ > </div> </div> - <div class="topicxq" v-for="item in 2"> + <div + class="topicxq" + v-for="item in topicobj.ivrLibaScriptTargetoptionList" + > <el-row :gutter="10"> <el-col :span="12" ><el-form-item label="閫夐」鍚�"> <el-input type="text" placeholder="璇疯緭鍏�" - v-model="queryParams.text" + v-model="item.targetvalue" show-word-limit > </el-input> </el-form-item @@ -494,7 +510,7 @@ <el-input type="text" placeholder="璇疯緭鍏ヨ妭鐐�" - v-model="queryParams.text" + v-model="item.targetid" show-word-limit > </el-input> </el-form-item @@ -506,18 +522,18 @@ <el-input type="text" placeholder="(榛樿)鏃犲0" - v-model="queryParams.text" + v-model="item.text" maxlength="10" show-word-limit > </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="queryParams.text" + v-model="item.jump" show-word-limit > </el-input> </el-form-item @@ -528,7 +544,7 @@ style="width: 24vw" type="textarea" placeholder="璇疯緭鍏ラ鍙�" - v-model="queryParams.text" + v-model="item.targetregex" show-word-limit > </el-input> @@ -569,7 +585,9 @@ > <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button> <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button> - <el-button @click="Saveproblem('ruleForm')">淇濆瓨棰樼洰鏁版嵁</el-button> + <el-button @click="Departmenttreatment('ruleForm')" + >淇濆瓨棰樼洰鏁版嵁</el-button + > </div> <!-- 闅忚妯$増棰勮 --> <div v-if="Editprogress == 3"> @@ -642,35 +660,20 @@ > <el-form-item label="鏍囬" prop="userName"> <el-input - v-model="queryParams.userName" + v-model="queryParams.questiontitle" placeholder="璇疯緭鍏�" clearable style="width: 200px" - @keyup.enter.native="handleQuery" + @keyup.enter.native="getaddtopiclist" /> </el-form-item> - <el-form-item label="涓婚" prop="sickness"> - <el-select - v-model="ruleForm.classify" - size="medium" - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="ruleFormaa" - v-for="item in themelist" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - </el-form-item> + <el-form-item> <el-button type="primary" icon="el-icon-search" size="medium" - @click="handleQuery" + @click="getaddtopiclist" >鎼滅储</el-button > <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" @@ -682,15 +685,15 @@ <el-table-column label="鏍囬" align="center" - key="userName" - prop="userName" + key="questiontitle" + prop="questiontitle" width="100" /> <el-table-column label="闂璇濇湳" align="center" - key="verbaltrick" - prop="verbaltrick" + key="questionText" + prop="questionText" width="200" :show-overflow-tooltip="true" /> @@ -701,10 +704,7 @@ class-name="small-padding fixed-width" > <template slot-scope="scope"> - <el-button - size="medium" - type="text" - @click="handleUpdate(scope.row)" + <el-button size="medium" type="text" @click="addtopic(scope.row)" ><span class="button-textxg" ><i class="el-icon-circle-plus-outline"></i>娣诲姞</span ></el-button @@ -720,7 +720,7 @@ <script> import { listtag } from "@/api/system/label"; import store from "@/store"; - +import { listDept } from "@/api/system/dept"; import { getFollowupclassify, delFollowupclassify, @@ -728,6 +728,8 @@ addtargetillness, getvFollowup, compileFollowup, + getverbaltricklist, + getverbaltrick, delFollowupinfo, Followupinfo, getFollowuplist, @@ -744,7 +746,6 @@ drawer: false, //鎺у埗灞曞紑 radios: [], //澶氶�夐閫変腑 radioas: "", //濉┖棰樼瓟妗� - campusvalue: [], //闄㈠尯涓存椂瀛樺偍 labelInfovalue: [], //鏍囩涓存椂瀛樺偍 deptNamesvalue: [], //绉戝涓存椂瀛樺偍 dynamicTags: [], @@ -759,7 +760,10 @@ optionstag: [], prefollowuplist: [], postfollowuplist: [], - generallist: [{ value: "1", label: "闅忚閫氱敤搴撲竴" }], + generallist: [ + { value: "1", label: "闅忚閫氱敤搴撲竴" }, + { value: "2", label: "闅忚浜屽簱" }, + ], fileList: [ { @@ -776,6 +780,7 @@ courtyardlist: [], precedencetype: [], usable: [], + required: [], mode: [], inputVisible: false, inputVisibleillness: false, @@ -788,6 +793,14 @@ children: "ivrLibaTemplateAssortList", label: "indexAssortName", }, + tempDetpRelevanceslist: [], + variablelist: [ + { variatename: "濮撳悕", variate: "${name}", default: 1 }, + { variatename: "鐢佃瘽", variate: "${phone}", default: 1 }, + { variatename: "鐥呮儏", variate: "${illness}", default: 1 }, + ], + deptList: [], + props: { multiple: true, value: "deptId", label: "deptName" }, variablelist: [ { @@ -846,6 +859,7 @@ this.auxiliary(); this.mode = store.getters.mode; this.usable = store.getters.usable; + this.required = store.getters.required; this.languagelist = store.getters.languagelist; this.courtyardlist = store.getters.courtyardlist; this.precedencetype = store.getters.precedencetype; @@ -855,12 +869,24 @@ getIndexInArray(arr, obj) { return arr.indexOf(obj); }, + processElement(element) { + return { ...element, isoperation: 0 }; + }, // 鑾峰彇琛ㄥ崟鏁版嵁 getvFollowup() { this.id = this.$route.query.id; getvFollowup({ id: this.id }).then((res) => { this.ruleForm = res.data; + this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); + this.ruleForm.suitway = this.ruleForm.suitway.split(","); + this.ruleForm.campus = this.ruleForm.campus.split(","); + this.ruleForm.submoduleID = this.ruleForm.submoduleID.split(","); + this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList; + this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map( + this.processElement + ); + console.log(this.ruleForm.suitway); }); getillnesslist({ pageNum: 1, @@ -870,6 +896,9 @@ }); getillness({ outid: this.id, type: 3 }).then((res) => { this.illnesslist = res.rows; + }); + listDept(this.queryParams).then((response) => { + this.deptList = this.handleTree(response.data, "deptId"); }); }, // 闄勫睘鏁版嵁琛� @@ -884,22 +913,60 @@ if (this.ruleForm.id) { this.ruleForm.isoperation = 2; } else { - this.ruleForm.isoperation = 2; + this.ruleForm.isoperation = 1; } - this.ruleForm.campus = JSON.stringify(this.illnesslist); - this.ruleForm.deptNames = this.deptNamesvalue.join(","); this.ruleForm.labelInfo = JSON.stringify(this.dynamicTags); + this.ruleForm.suitway = this.ruleForm.suitway.join(","); + this.ruleForm.campus = this.ruleForm.campus.join(","); + this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(","); + // 鎻愪氦 - this.$refs[formName].validate((valid) => { - if (valid) { - compileFollowup(this.ruleForm).then((res) => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - }); - } else { - console.log("error submit!!"); - return false; + + compileFollowup(this.ruleForm).then((res) => { + this.$modal.msgSuccess("缂栬緫鎴愬姛"); + }); + this.illnesslist.forEach((item, index) => { + if (!item.id) { + addtargetillness(item).then((res) => {}); } }); + if (this.illnesslistapi.length) { + deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); + } + }, + // 绉戝澶勭悊 + Departmenttreatment() { + this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); + console.log(this.tempDetpRelevanceslist); + const result = this.tempDetpRelevanceslist.map( + (subArr) => subArr[subArr.length - 1] + ); + // id鏁扮粍鏌ユ暟缁勫璞� + result.forEach((item) => { + const condition = this.ruleForm.tempDetpRelevances.some( + (obj) => obj.deptId === item + ); + if (!condition) { + listDept({ deptId: item }).then((res) => { + res.data[0].type = 2; + this.ruleForm.tempDetpRelevances.push(res.data[0]); + }); + } + }); + console.log(this.ruleForm.tempDetpRelevances); + // 鏁扮粍瀵硅薄鏌d鏁扮粍 + this.ruleForm.tempDetpRelevances.forEach((item) => { + const condition = result.some((obj) => obj === item.deptId); + if (!condition) { + const index = this.ruleForm.tempDetpRelevances.indexOf(item); + this.ruleForm.tempDetpRelevances[index].delFlag = 1; + } + }); + console.log(this.ruleForm.tempDetpRelevances); + setTimeout(() => { + this.submitForm(); + }, 1000); + // this.submitForm(); }, // 涓嬩竴姝� nextstep() { @@ -928,8 +995,7 @@ }); }); }, - // 淇濆瓨棰樼洰淇℃伅 - Saveproblem() {}, + /** 鏌ヨ棰樼洰鍒楄〃 */ getList() { // this.loading = true; @@ -976,7 +1042,7 @@ console.log(this.dynamicTags.indexOf(tag)); const lindex = this.dynamicTags.indexOf(tag); this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); - this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3; + this.ruleForm.ivrLibaTemplateTagList[lindex].isoperation = 3; }, handleInputConfirm() { let tagvalue = {}; @@ -997,7 +1063,7 @@ isoperation: 1, }; } - this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue); + this.ruleForm.ivrLibaTemplateTagList.push(tagvalue); this.dynamicTags.push(tagvalue); }); } @@ -1020,10 +1086,39 @@ showInput() { this.inputVisible = true; }, - //娴嬭瘯琛ㄥ崟 --------------------------------- + //璇濇湳棰樼洰---------------- addzbiao() {}, - handleUpdate() {}, - deloption(item) { + resetQuery() { + this.queryParams = { pageNum: 1, pageSize: 10 }; + this.getaddtopiclist(); + }, + getaddtopiclist() { + this.drawer = true; + getverbaltricklist(this.queryParams).then((res) => { + this.loading = false; + this.userList = res.rows; + this.total = res.total; + console.log(this.userList); + }); + }, + addtopic(row) { + row.isoperation = 1; + this.ruleForm.ivrLibaTemplateScriptVOList.push(row); + }, + handleDelete(row) { + this.ruleForm.ivrLibaTemplateScriptVOList.splice( + this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row), + 1 + ); + }, + handleUpdate(row) { + console.log(row.id); + getverbaltrick({ id: row.id }).then((res) => { + this.topicobj = res.data; + console.log(res.data); + }); + }, + handleDelete(item) { const index = this.userList.indexOf(item); if (index !== -1) { this.userList.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱� @@ -1055,9 +1150,6 @@ console.log(this.userList); }, // --------------------- - // 鏌ヨ棰樺簱 - handleQuery() {}, - resetQuery() {}, resetForm(formName) { this.$refs[formName].resetFields(); }, -- Gitblit v1.9.3