From 76c30727c77065c808b1c0fb3146080e423e5fe6 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 27 六月 2024 09:45:30 +0800 Subject: [PATCH] 测试完成 --- src/views/followvisit/tasklist/index.vue | 104 +- src/views/repositoryai/templateku/configurat/index.vue | 70 + src/api/system/dict/data.js | 2 src/views/knowledge/questionbank/particulars/index.vue | 1 src/api/AiCentre/Qtemplate.js | 50 + src/api/system/dict/type.js | 4 src/views/knowledge/questionnaire/compilequer/index.vue | 255 +++++- src/views/knowledge/questionnaire/index.vue | 8 src/views/patient/questionnaire/index.vue | 88 +- src/views/patient/propaganda/QuestionnaireTask.vue | 1503 ++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 1,908 insertions(+), 177 deletions(-) diff --git a/src/api/AiCentre/Qtemplate.js b/src/api/AiCentre/Qtemplate.js index cc298cd..906ecdd 100644 --- a/src/api/AiCentre/Qtemplate.js +++ b/src/api/AiCentre/Qtemplate.js @@ -4,7 +4,7 @@ // 鏌ヨ闂嵎妯$増鍒楄〃 export function getQtemplatelist(data) { return request({ - url: "/smartor/svyTemplate/selectSvyLibTemplatelist", + url: "/smartor/svyLibTemplate/selectSvyLibTemplatelist", method: "post", data: data, }); @@ -12,21 +12,21 @@ // 闂嵎妯$増璇︽儏 export function Qtemplateinfo(Id) { return request({ - url: "/smartor/svyTemplate/" + Id, + url: "/smartor/svyLibTemplate/" + Id, method: "get", }); } // 鍒犻櫎闂嵎妯$増 export function delQtemplateinfo(Id) { return request({ - url: "/smartor/svyTemplate/remove/" + Id, + url: "/smartor/svyLibTemplate/remove/" + Id, method: "get", }); } // 鏂板鎴栦慨鏀归棶鍗锋ā鐗堣鎯� export function compileQtemplate(data) { return request({ - url: "/smartor/svyTemplate/saveOrUpdateTemplate", + url: "/smartor/svyLibTemplate/saveOrUpdateTemplate", method: "post", data: data, }); @@ -69,6 +69,46 @@ return request({ url: "/qrcode/getQRcode", method: "post", - params: data, + data: data, + }); + } + // 鏂板淇敼闂嵎浠诲姟 + export function Questionnairetaskdetails(data) { + return request({ + url: "/smartor/svysingle/insertOrUpdateSvyTask", + method: "post", + data: data, + }); + } + // 鏌ヨ闂嵎浠诲姟鍒楄〃 + export function Questionnairetasklist(data) { + return request({ + url: "/smartor/svytask/list", + method: "post", + data: data, + }); + } + // 鍙戣捣闂嵎浠诲姟 + export function Questionnairetasksponsor(data) { + return request({ + url: "/smartor/svytask/list", + method: "post", + data: data, + }); + } + // 鏌ヨ闂嵎浠诲姟璇︽儏 + export function Questionnairetaskget(data) { + return request({ + url: "/smartor/svysingle/queryTaskByCondition", + method: "post", + data: data, + }); + } + // 闂嵎浠诲姟妯$増鏂板淇敼 + export function TaskQuestioncomit(data) { + return request({ + url: "/smartor/svytemplateTask/saveOrUpdateTaskTemp", + method: "post", + data: data, }); } diff --git a/src/api/system/dict/data.js b/src/api/system/dict/data.js index 461d54a..2a569be 100644 --- a/src/api/system/dict/data.js +++ b/src/api/system/dict/data.js @@ -28,7 +28,7 @@ // 鏂板瀛楀吀鏁版嵁 export function addData(data) { return request({ - url: '/system/dict/data', + url: '/system/dict/data/add', method: 'post', data: data }) diff --git a/src/api/system/dict/type.js b/src/api/system/dict/type.js index 21d7de3..b76e842 100644 --- a/src/api/system/dict/type.js +++ b/src/api/system/dict/type.js @@ -20,7 +20,7 @@ // 鏂板瀛楀吀绫诲瀷 export function addType(data) { return request({ - url: '/system/dict/type', + url: '/system/dict/type/add', method: 'post', data: data }) @@ -57,4 +57,4 @@ url: '/system/dict/type/optionselect', method: 'get' }) -} \ No newline at end of file +} diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue index 34ad3cc..71ed556 100644 --- a/src/views/followvisit/tasklist/index.vue +++ b/src/views/followvisit/tasklist/index.vue @@ -77,7 +77,11 @@ <el-divider></el-divider> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> - <el-select v-model="tasktopic" placeholder="璇烽�夋嫨鏂板绫诲瀷"> + <el-select + @change="handleQuery" + v-model="tasktopic" + placeholder="璇烽�夋嫨鏂板绫诲瀷" + > <el-option v-for="item in taskoptions" :key="item.value" @@ -97,29 +101,7 @@ >鏂板</el-button > </el-col> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="medium" - :disabled="single" - @click="handleUpdate" - >淇敼</el-button - > - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="medium" - :disabled="multiple" - @click="handleDelete" - v-hasPermi="['system:user:remove']" - >鍒犻櫎</el-button - > - </el-col> + <el-col :span="19"> <div class="documentf"> <div class="document"> @@ -142,12 +124,7 @@ @queryTable="getList" :columns="columns" ></right-toolbar> --> - <el-table - v-loading="loading" - :data="userList" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="50" align="center" /> + <el-table v-loading="loading" :data="userList"> <el-table-column label="搴忓彿" fixed @@ -200,15 +177,21 @@ <span>{{ parseTime(scope.row.createTime) }}</span> </template> </el-table-column> - <el-table-column label="鐘舵��" fixed="right" align="center" - key="phonenumber" - prop="phonenumber" + key="sendState" + prop="sendState" width="120" - /> + > + <template slot-scope="scope"> + <dict-tag + :options="dict.type.task_status" + :value="scope.row.sendState" + /> + </template> + </el-table-column> <el-table-column label="鎿嶄綔" fixed="right" @@ -366,6 +349,9 @@ getTaskInfo, Editsingletask, delTaskInfo, + Questionnairetasklist, + Questionnairetaskget, + Questionnairetasksponsor, TaskTemplateSendExecution, } from "@/api/AiCentre/index"; @@ -374,7 +360,7 @@ export default { name: "User", - dicts: ["sys_normal_disable", "sys_user_sex"], + dicts: ["sys_normal_disable", "sys_user_sex", "task_status"], components: { Treeselect }, data() { return { @@ -453,7 +439,7 @@ label: "闂嵎鏈嶅姟", }, ], - tasktopic: null, //鏂板绫诲瀷 + tasktopic: "2", //鏂板绫诲瀷 value: [], list: [], loading: false, @@ -640,12 +626,20 @@ methods: { /** 鏌ヨ浠诲姟鍒楄〃 */ getList() { - // this.loading = true; - getTasklist(this.topqueryParams).then((response) => { - this.userList = response.rows; - this.total = response.total; - this.loading = false; - }); + this.loading = true; + if (this.tasktopic == 1 || this.tasktopic == 2 || this.tasktopic == 3) { + getTasklist(this.topqueryParams).then((response) => { + this.userList = response.rows; + this.total = response.total; + this.loading = false; + }); + } else if (this.tasktopic == 6) { + Questionnairetasklist(this.topqueryParams).then((res) => { + this.userList = res.rows; + this.total = res.total; + this.loading = false; + }); + } }, // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏 Referencequestion(row) { @@ -725,10 +719,17 @@ }, /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { - this.$router.push({ - path: "/followvisit/particty", - query: { type: this.tasktopic }, - }); + if (this.tasktopic == 1 || this.tasktopic == 2 || this.tasktopic == 3) { + this.$router.push({ + path: "/followvisit/particty", + query: { type: this.tasktopic }, + }); + } else if (this.tasktopic == 6) { + this.$router.push({ + path: "/followvisit/QuestionnaireTask", + query: { type: this.tasktopic }, + }); + } }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -736,6 +737,17 @@ path: "/followvisit/particty", query: { type: row.hospType, id: row.taskid }, }); + if (this.tasktopic == 1 || this.tasktopic == 2 || this.tasktopic == 3) { + this.$router.push({ + path: "/followvisit/particty", + query: { type: row.hospType, id: row.taskid }, + }); + } else if (this.tasktopic == 6) { + this.$router.push({ + path: "/followvisit/QuestionnaireTask", + query: { type: row.hospType, id: row.taskid }, + }); + } }, // 鍒犻櫎浠诲姟 deletefn() {}, diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue index 619f56a..3a09165 100644 --- a/src/views/knowledge/questionbank/particulars/index.vue +++ b/src/views/knowledge/questionbank/particulars/index.vue @@ -567,7 +567,6 @@ created() { this.gettabList(); this.getissueinfo(); - this.test(); this.gettargetInfo(); this.mode = store.getters.mode; this.languagelist = store.getters.languagelist; diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue index 524e8af..bcfe6f8 100644 --- a/src/views/knowledge/questionnaire/compilequer/index.vue +++ b/src/views/knowledge/questionnaire/compilequer/index.vue @@ -320,8 +320,8 @@ <el-table-column label="搴忓彿" align="center" - key="guid" - prop="guid" + key="sort" + prop="sort" /> <el-table-column label="棰樼洰鏍囬" @@ -433,26 +433,37 @@ v-for="item in topicobj.svyLibTemplateTargetoptions" > <el-row :gutter="10"> - <el-col :span="11" - ><el-form-item label="棰樺彿"> + <el-col :span="11"> + <el-form-item v-if="topicobj.scoretype == 1" label="鍒嗗��"> <el-input type="text" - placeholder="璇疯緭鍏�" - v-model="item.id" - show-word-limit - > - </el-input> </el-form-item - ></el-col> - <el-col :span="11" - ><el-form-item label="鍒嗗��"> - <el-input - type="text" - placeholder="璇疯緭鍏�" + placeholder="璇疯緭鍏ラ�夐」鍒嗗��" v-model="item.score" show-word-limit > - </el-input> </el-form-item - ></el-col> + </el-input> + </el-form-item> + <el-form-item + v-else-if="topicobj.scoretype == 2" + label="ABC绛夌骇" + > + <el-radio-group v-model="item.score"> + <el-radio label="A">A</el-radio> + <el-radio label="B">B</el-radio> + <el-radio label="C">C</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item + v-else-if="topicobj.scoretype == 3" + label="浼樿壇绛夌骇" + > + <el-radio-group v-model="item.score"> + <el-radio label="浼�">浼�</el-radio> + <el-radio label="鑹�">鑹�</el-radio> + <el-radio label="宸�">宸�</el-radio> + </el-radio-group> + </el-form-item> + </el-col> </el-row> <el-row :gutter="10"> <el-col :span="11" @@ -470,19 +481,19 @@ <el-input type="text" placeholder="璇疯緭鍏ラ鍙�" - v-model="item.jump" + v-model="item.nextQuestion" show-word-limit > </el-input> </el-form-item ></el-col> - <el-col :span="2"> + <!-- <el-col :span="2"> <el-button type="danger" icon="el-icon-delete" circle @click="deletexuanx(item)" ></el-button> - </el-col> + </el-col> --> </el-row> <el-row :gutter="10"> <el-form-item label="閫変腑鎻愮ず"> @@ -686,7 +697,7 @@ topicobj: {}, // 鎬绘潯鏁� total: 1, - ruleForm: {}, + ruleForm: { svyLibScripts: [], tempDetpRelevances: [] }, rules: {}, rulesa: {}, optionsclass: [], //鍒嗙被鍒楄〃 @@ -746,14 +757,38 @@ tempDetpRelevanceslist: [], optionstag: [], valuetype: [], - usable: [], - required: [], + usable: [ + { value: "0", label: "鍙敤" }, + { value: "1", label: "鍋滅敤" }, + ], + required: [ + { value: "1", label: "蹇呭~" }, + { value: "2", label: "涓嶅繀濉�" }, + ], mode: [], //鏂瑰紡 // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, pageSize: 10, }, + arr: [ + [ + { id: 1, grade: "5" }, + { id: 2, grade: "5" }, + { id: 3, grade: "5" }, + { id: 4, grade: "5" }, + ], + [ + { id: 1, grade: "5" }, + { id: 3, grade: "5" }, + { id: 4, grade: "5" }, + ], + [ + { id: 1, grade: "5" }, + { id: 2, grade: "5" }, + { id: 4, grade: "5" }, + ], + ], }; }, @@ -766,6 +801,7 @@ this.required = store.getters.required; this.valuetype = store.getters.valuetype; this.courtyardlist = store.getters.courtyardlist; + this.test(); }, methods: { @@ -791,21 +827,23 @@ // 鑾峰彇鏁版嵁 getissueinfo() { this.id = this.$route.query.id; - getQtemplatelist({ svyid: this.id }).then((res) => { - this.ruleForm = res.rows[0]; - this.dynamicTags = this.ruleForm.labelInfo.split(","); - this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); - this.ruleForm.suitway = this.ruleForm.suitway.split(","); - console.log(this.tempDetpRelevanceslist); - }); + if (this.id) { + getQtemplatelist({ svyid: this.id }).then((res) => { + this.ruleForm = res.rows[0]; + this.dynamicTags = this.ruleForm.labelInfo.split(","); + this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); + this.ruleForm.suitway = this.ruleForm.suitway.split(","); + console.log(this.tempDetpRelevanceslist); + }); + getillness({ outid: this.id, type: 5 }).then((res) => { + this.illnesslist = res.rows; + }); + } getillnesslist({ pageNum: 1, pageSize: 100, }).then((response) => { this.optionsillness = response.rows; - }); - getillness({ outid: this.id, type: 5 }).then((res) => { - this.illnesslist = res.rows; }); listDept(this.queryParams).then((response) => { this.deptList = this.handleTree(response.data, "deptId"); @@ -824,16 +862,19 @@ if (this.id) { this.ruleForm.isoperation = 2; - compileQtemplate(this.ruleForm).then((response) => { + compileQtemplate(this.ruleForm).then((res) => { this.$modal.msgSuccess("淇敼鎴愬姛"); + this.confirmillness(); this.$modal.closeLoading(); this.$router.go(-1); }); } else { this.ruleForm.isoperation = 1; - compileQtemplate(this.ruleForm).then((response) => { + compileQtemplate(this.ruleForm).then((res) => { this.$modal.msgSuccess("鏂板鎴愬姛"); + this.confirmillness(res.data); + this.$modal.closeLoading(); this.$router.go(-1); @@ -847,6 +888,7 @@ this.ruleForm.svyLibScripts = this.ruleForm.svyLibScripts.concat( this.delScriptVOList ); + console.log(this.tempDetpRelevanceslist, "this.tempDetpRelevanceslist"); const result = this.tempDetpRelevanceslist.map( (subArr) => subArr[subArr.length - 1] ); @@ -906,6 +948,7 @@ // 鑾峰彇棰樼洰鍒楄〃 getaddtopiclist() { this.drawer = true; + this.queryParams.scoretype = this.ruleForm.scoreType; getissuelist(this.queryParams).then((res) => { this.loading = false; this.userList = res.rows; @@ -919,6 +962,7 @@ row.svyLibScriptOptions.forEach((item) => { item.isoperation = 1; }); + row.svyLibTemplateTargetoptions = row.svyLibScriptOptions; this.ruleForm.svyLibScripts.push(row); this.$modal.msgSuccess("鏂板鎴愬姛"); }, @@ -948,16 +992,9 @@ this.sortFn(); }, sortFn() { - this.ruleForm.svyLibScripts = this.ruleForm.svyLibScripts.map( - (item, index) => { - return { - guid: index + 1, - svyid: item.svyid, - script: item.script, - script: item.script, - }; - } - ); + this.ruleForm.svyLibScripts.forEach((item, index) => { + item.sort = index + 1; + }); console.log(this.ruleForm.svyLibScripts); }, @@ -1086,8 +1123,11 @@ this.inputValueillness = ""; }, // 淇濆瓨 - confirmillness() { + confirmillness(guid) { this.illnesslist.forEach((item, index) => { + if (guid) { + item.outid = guid; + } if (!item.id) { addtargetillness(item).then((res) => {}); } @@ -1106,6 +1146,129 @@ resetForm(formName) { this.$refs[formName].resetFields(); }, + // 闂嵎鍒嗘暟闄愬埗绠楁硶 + // 娣峰悎璺嚎 + generateCombinations(arrays, currentIndex = 0, currentCombination = []) { + if (currentIndex === arrays.length) { + return [currentCombination]; + } + + const currentArray = arrays[currentIndex]; + const newCombinations = []; + + for (const item of currentArray) { + const newCombination = [...currentCombination, item]; + const combinations = this.generateCombinations( + arrays, + currentIndex + 1, + newCombination + ); + newCombinations.push(...combinations); + } + return newCombinations; + }, + // 鎵ц + test() { + const arrays = [ + ["2", "3", "4", "5"], + ["1", "2", "5", "6"], + ["3", "4", "5", "3"], + ["3", "2", "5", "7"], + ]; + const arraysa = [ + { + id: 1, + grade: "5", + arr: [ + { name: "涓嶉敊", skip: 2 }, + { name: "涓�鑸�", skip: 2 }, + { name: "杩樹笉閿�", skip: 2 }, + { name: "寰堟", skip: 3 }, + ], + }, + + { + id: 2, + grade: "5", + arr: [ + { name: "浼樼", skip: 3 }, + { name: "鑹ソ", skip: 3 }, + { name: "涓�鑸�", skip: 3 }, + { name: "杈冨樊", skip: 4 }, + ], + }, + { + id: 3, + grade: "5", + arr: [ + { name: "鏄殑", skip: 4 }, + { name: "涓嶆竻妤�", skip: 4 }, + { name: "杩樺彲", skip: 4 }, + { name: "涓�鑸�", skip: 4 }, + ], + }, + { + id: 4, + grade: "5", + arr: [ + { name: "鐪熶笉閿�", skip: null }, + { name: "杩樺彲浠�", skip: null }, + { name: "涓�鑸埇", skip: null }, + { name: "涓嶆竻妤�", skip: null }, + ], + }, + ]; + + // const newMixArray = this.generateCombinations(arrays); + const newMixArray = this.getExecutionOrders(arraysa); + + console.log(newMixArray, "鍏ㄩ儴璺嚎"); + this.screen(newMixArray); + }, + getExecutionOrders(data) { + let orders = []; + + const explore = (currentOrder, id) => { + console.log(currentOrder, "currentOrder", id); + const currentQuestion = data[currentOrder[currentOrder.length - 1]]; + if ( + currentQuestion.arr.some( + (option) => + option.skip !== null && !currentOrder.includes(option.skip) + ) + ) { + currentQuestion.arr.forEach((option) => { + if (option.skip !== null && !currentOrder.includes(option.skip)) { + explore([...currentOrder, option.skip]); + } + }); + } else { + orders.push( + currentOrder.map((id) => ({ + id: data[id].id, + grade: data[id].grade, + })) + ); + } + }; + console.log(data, "data"); + data.forEach((entry) => { + explore([entry.id], entry.id); + }); + + return orders; + }, + + // 鏁扮粍姹傚拰 + sumArray(arr) { + return arr.reduce((acc, curr) => acc + parseInt(curr), 0); + }, + // 绛涢�夐敊璇矾绾� + screen(data) { + const arraysGreaterThan10 = data.filter((arr) => this.sumArray(arr) > 21); + + console.log(arraysGreaterThan10, "绛涢�夐敊璇矾绾垮ぇ浜�13鍒�"); + }, }, }; </script> diff --git a/src/views/knowledge/questionnaire/index.vue b/src/views/knowledge/questionnaire/index.vue index 4b33758..21d4429 100644 --- a/src/views/knowledge/questionnaire/index.vue +++ b/src/views/knowledge/questionnaire/index.vue @@ -819,13 +819,7 @@ this.single = selection.length != 1; this.multiple = !selection.length; }, - /** 鏂板鎸夐挳鎿嶄綔 */ - handleAdd() { - this.$router.push({ - path: "/knowledge/verbaltrick/particulars/", - query: { id: "1" }, - }); - }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { diff --git a/src/views/patient/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue new file mode 100644 index 0000000..4ec9bd9 --- /dev/null +++ b/src/views/patient/propaganda/QuestionnaireTask.vue @@ -0,0 +1,1503 @@ +<template> + <div class="Questionnairemanagement"> + <!-- 涓婁晶鏍� --> + <div class="sidecolumn"> + <div> + <el-steps simple :active="Editprogress"> + <el-step + icon="el-icon-edit" + title="鍩虹淇℃伅" + description="閫夋嫨妯$増銆佸舰寮忕瓑鍩虹淇℃伅" + ></el-step> + <el-step + icon="el-icon-user" + title="浠诲姟涓讳綋" + description="鍦ㄦ湰閮ㄩ�夋嫨鏈嶅姟鎮h��" + ></el-step> + <el-step icon="el-icon-user" title="妯$増纭"></el-step> + </el-steps> + </div> + </div> + <!-- 涓嬩晶鏁版嵁 --> + <div class="leftvlue" style="margin: 0 20px"> + <!-- 鍩烘湰淇℃伅 --> + <div v-if="Editprogress == 1"> + <el-alert title="閫夋嫨妯$増銆佸舰寮忕瓑鍩虹淇℃伅" type="success" effect="dark"> + </el-alert> + <div class="leftvlue-jbxx"> + <!-- 鍩虹淇℃伅 --> + <div class="examine-jic"> + <div class="headline"> + <div>鍩虹淇℃伅</div> + </div> + <div class="jic-value"> + <el-form ref="form" :model="form" label-width="105px"> + <el-row :gutter="20"> + <el-col :span="12" + ><el-form-item label="浠诲姟鍚嶇О"> + <el-input + style="width: 220px" + v-model="form.taskName" + placeholder="璇疯緭鍏ヤ换鍔″悕绉�" + /> </el-form-item + ></el-col> + <el-col :span="8" + ><el-form-item label="妯$増鍚嶇О"> + <el-input + style="width: 220px" + :disabled="true" + v-model="form.templatename" + placeholder="璇峰湪涓嬪垪閫夋嫨" + /> </el-form-item + ></el-col> + <el-col :span="4"> + <el-button + type="primary" + icon="el-icon-edit" + circle + ></el-button> + </el-col> + </el-row> + + <el-form-item label="浠诲姟鎻忚堪"> + <el-input + type="textarea" + v-model="form.taskDesc" + placeholder="璇疯緭鍏ヤ换鍔℃弿杩�" + /> + </el-form-item> + <el-form-item label="鍙戦�佽缃細" v-if="currenttype != 2"> + <el-radio-group v-model="form.sendType"> + <el-radio :label="1">鏃堕棿娈靛彂閫�</el-radio> + <el-radio :label="3">鏃堕棿鐐瑰彂閫�</el-radio> + <el-radio :label="2">鍗冲埢鍙戦��</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="鍙戦�佹棩鏈燂細" v-if="form.sendType == 1"> + <el-date-picker + v-model="daytime" + @change="changeTimeday" + type="daterange" + range-separator="鑷�" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + value-format="yyyy-MM-dd" + > + </el-date-picker> + </el-form-item> + + <el-form-item label="鍙戦�佹椂闂寸偣锛�" v-if="form.sendType == 3"> + <div style="display: flex"> + <div style="margin-right: 10px"> + <el-date-picker + v-model="time4" + value-format="yyyy-MM-dd HH:mm:ss" + @change="Totaldate" + type="datetime" + placeholder="閫夋嫨鏃ユ湡鏃堕棿" + > + </el-date-picker> + </div> + </div> + </el-form-item> + + <el-form-item label="鍙戦�佹椂闂存锛�" v-if="form.sendType == 1"> + <div style="display: flex"> + <div style="margin-right: 10px"> + <span style="font-size: 18px; margin-right: 10px" + >鏃堕棿娈典竴</span + > + <el-time-picker + is-range + arrow-control + @change="changeTime" + v-model="time1" + range-separator="鑷�" + start-placeholder="寮�濮嬫椂闂�" + end-placeholder="缁撴潫鏃堕棿" + placeholder="閫夋嫨鏃堕棿鑼冨洿" + value-format="HH:mm:ss" + > + </el-time-picker> + </div> + <div style="margin-right: 10px"> + <span style="font-size: 18px; margin-right: 10px" + >鏃堕棿娈典簩</span + > + <el-time-picker + is-range + arrow-control + @change="changeTime" + v-model="time2" + range-separator="鑷�" + start-placeholder="寮�濮嬫椂闂�" + end-placeholder="缁撴潫鏃堕棿" + placeholder="閫夋嫨鏃堕棿鑼冨洿" + value-format="HH:mm:ss" + > + </el-time-picker> + </div> + <div style="margin-right: 10px"> + <span style="font-size: 18px; margin-right: 10px" + >鏃堕棿娈典笁</span + > + <el-time-picker + is-range + arrow-control + @change="changeTime" + v-model="time3" + range-separator="鑷�" + start-placeholder="寮�濮嬫椂闂�" + end-placeholder="缁撴潫鏃堕棿" + placeholder="閫夋嫨鏃堕棿鑼冨洿" + value-format="HH:mm:ss" + > + </el-time-picker> + </div> + </div> + </el-form-item> + <el-form-item label="鏈嶅姟褰㈠紡"> + <el-checkbox-group v-model="checkList"> + <el-checkbox + v-for="(item, index) in checkboxlist" + :key="index" + :label="item" + ></el-checkbox> + </el-checkbox-group> + </el-form-item> + </el-form> + </div> + </div> + <div class="examine-jic"> + <div class="headline"> + <div>{{ title }}</div> + </div> + <div class="examine-jic"> + <div class="jic-value"> + <el-row :gutter="20"> + <!--鐢ㄦ埛鏁版嵁--> + + <el-form + :model="topqueryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="98px" + > + <el-form-item + label="瀹f暀涓婚" + v-if="currenttype == 1 || currenttype == 8" + > + <el-input v-model="topqueryParams.name"></el-input> + </el-form-item> + <el-form-item + label="闅忚鍚嶇О" + v-if=" + currenttype == 2 || currenttype == 3 || currenttype == 7 + " + > + <el-input + v-model="topqueryParams.name" + ></el-input> </el-form-item + ><el-form-item + label="閫氱煡鍚嶇О" + v-if="currenttype == 4 || currenttype == 5" + > + <el-input + v-model="topqueryParams.name" + ></el-input> </el-form-item + ><el-form-item label="浣撴濂楅" v-if="currenttype == 5"> + <el-input v-model="topqueryParams.name"></el-input> + </el-form-item> + <el-form-item label="闂嵎涓婚" v-if="currenttype == 6"> + <el-input v-model="topqueryParams.name"></el-input> + </el-form-item> + <el-form-item label="閫傜敤鐤剧梾" v-if="currenttype != 5"> + <el-input v-model="topqueryParams.name"></el-input> + </el-form-item> + + <el-form-item + label="瀹f暀绫诲瀷" + prop="status" + v-if="currenttype == 1 || currenttype == 8" + > + <el-select + v-model="topqueryParams.topic" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in taskoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item + label="閫氱煡绫诲瀷" + prop="status" + v-if="currenttype == 4 || currenttype == 5" + > + <el-select + v-model="topqueryParams.topic" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in taskoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item + label="闅忚绫诲瀷" + prop="status" + v-if=" + currenttype == 2 || currenttype == 3 || currenttype == 7 + " + > + <el-select + v-model="topqueryParams.topic" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in taskoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item + label="闂嵎绫诲瀷" + prop="status" + v-if="currenttype == 6" + > + <el-select + v-model="topqueryParams.topic" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in taskoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="閫傜敤褰㈠紡" prop="status"> + <el-select + v-model="topqueryParams.topica" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in taskoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + + <el-form-item label="閫傜敤绉戝" prop="status"> + <el-select + v-model="topqueryParams.topicd" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in topicoptions" + :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" + >鎼滅储</el-button + > + <el-button + icon="el-icon-refresh" + size="medium" + @click="resetQuery" + >閲嶇疆</el-button + > + </el-form-item> + </el-form> + <el-divider></el-divider> + <!-- 閫夋嫨妯$増鍒楄〃 --> + <SFtable + @selectfn="selectfn" + :currentList="userList" + :tableLabel="tableLabel" + :controlsc="false" + :multiplechoice="false" + :typeinfo="1" + /> + <pagination + v-show="total > 0" + :total="total" + :page.sync="topqueryParams.pageNum" + :limit.sync="topqueryParams.pageSize" + @pagination="Acquisitiontype" + /> + </el-row> + </div> + </div> + </div> + </div> + <el-button type="success" @click="nextstep('ruleForm')">{{ + quote ? "绔嬪嵆鍒涘缓" : "浠诲姟璇︽儏閰嶇疆" + }}</el-button> + <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button> + </div> + + <!-- 浠诲姟璇︽儏 --> + <div v-if="Editprogress == 2"> + <el-alert title="鍦ㄦ湰闃舵閫夋嫨瀹f暀鐥呬汉" type="success" effect="dark"> + </el-alert> + <div class="leftvlue-jbxx"> + <div class="examine-jic"> + <div class="headline"> + <div>鍙橀噺鍖归厤閲忓弬</div> + </div> + <div class="examine-jic"> + <div class="jic-value"> + <el-row :gutter="20"> + <el-table :data="variableList" style="width: 100%"> + <el-table-column + prop="name" + align="center" + label="鍙橀噺鍚嶇О" + > + </el-table-column> + <el-table-column prop="value" align="center" label="鍖归厤绗�"> + </el-table-column> + <el-table-column label="鏇挎崲鍊�" align="center"> + <template slot-scope="scope"> + <el-input + :disabled="scope.row.default" + v-model="scope.row.fill" + placeholder="璇疯緭鍏ュ唴瀹�" + ></el-input> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" align="center"> + <template slot-scope="scope"> + <!-- <el-button + size="mini" + @click="variableEdit(scope.$index, scope.row)" + >缂栬緫</el-button + > --> + <el-button + size="mini" + type="danger" + @click="variableDelete(scope.$index, scope.row)" + >鍒犻櫎</el-button + > + </template> + </el-table-column> + </el-table> + </el-row> + </div> + </div> + </div> + <div class="examine-jic"> + <div class="headline"> + <div>鎮h�呭垪琛�</div> + </div> + <div class="examine-jic"> + <div class="jic-value"> + <el-row :gutter="20"> + <!--鐢ㄦ埛鏁版嵁--> + <el-form + :model="topqueryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="98px" + > + <el-form-item label="鎮h�呭悕绉�"> + <el-input v-model="topqueryParams.name"></el-input> + </el-form-item> + + <el-form-item label="鎮h�呰寖鍥�" prop="status"> + <el-select + v-model="topqueryParams.topic" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in taskoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + + <el-form-item label="鎮h�呯姸鎬�" prop="status"> + <el-select + v-model="topqueryParams.topic" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in topicoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="闅忚缁撴灉" prop="status"> + <el-select + v-model="topqueryParams.topic" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in topicoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鎮h�呯數璇�"> + <el-input v-model="topqueryParams.name"></el-input> + </el-form-item> + <el-form-item> + <el-button + type="primary" + icon="el-icon-search" + size="medium" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button + icon="el-icon-refresh" + size="medium" + @click="resetQuery" + >閲嶇疆</el-button + > + <el-button + icon="el-icon-upload2" + size="medium" + type="warning" + >褰撳墠鎮h�呬竴閿彂閫�</el-button + > + </el-form-item> + </el-form> + <el-divider></el-divider> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-select + v-model="patientqueryParams.allhosp" + placeholder="璇烽�夋嫨鏂板绫诲瀷" + > + <el-option + v-for="item in taskoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-col> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="medium" + :disabled="!patientqueryParams.allhosp" + @click="handleAddpatient" + >鏂板</el-button + > + </el-col> + + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="medium" + :disabled="multiple" + @click="handleDelete" + >鍒犻櫎</el-button + > + </el-col> + + <!-- <el-col :span="1.5"> </el-col> --> + </el-row> + <!-- 閫変腑鎮h�呭垪琛� --> + <SFtable + @details="detailhz" + @handleUpdate="handleUpdate" + :currentList="overallCase" + :tableLabel="tableLabelhz" + :serialnumber="false" + :multiplechoice="false" + :controlxz="false" + :typeinfo="2" + /> + <pagination + v-show="total > 0" + :total="total" + :page.sync="topqueryParams.pageNum" + :limit.sync="topqueryParams.pageSize" + @pagination="getList" + /> + </el-row> + </div> + </div> + </div> + </div> + <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button> + <el-button type="success" @click="submitForm('ruleForm')">{{ + quote ? "绔嬪嵆鍒涘缓" : "纭浠诲姟閰嶇疆" + }}</el-button> + <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button> + </div> + </div> + <!-- 娣诲姞鎮h�� --> + <el-dialog + title="娣诲姞娲惧彂鎮h��" + :visible.sync="dialogVisiblepatient" + width="70%" + :before-close="handleClosehz" + :close-on-click-modal="false" + > + <div class="examine-jic"> + <div class="jic-value"> + <el-row :gutter="20"> + <!--鐢ㄦ埛鏁版嵁--> + <el-form + :model="patientqueryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="98px" + > + <el-form-item label="鎮h�呭悕绉帮細"> + <el-input v-model="patientqueryParams.name"></el-input> + </el-form-item> + + <el-form-item label="灏辫瘖绉戝" prop="status"> + <el-select + v-model="patientqueryParams.topic" + placeholder="璇烽�夋嫨" + > + <el-option-group + v-for="group in topicoptions[0].children" + :key="group.deptName" + :label="group.deptName" + > + <el-option + v-for="item in group.children" + :key="item.deptId" + :label="item.deptName" + :value="item.deptId" + > + </el-option> + </el-option-group> + </el-select> + </el-form-item> + + <el-form-item> + <el-button + type="primary" + icon="el-icon-search" + size="medium" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button + icon="el-icon-refresh" + size="medium" + @click="resetQuery" + >鍙栨秷鍒涘缓</el-button + > + </el-form-item> + </el-form> + <!-- 閫夋嫨鎮h�呭垪琛� --> + <SFtable + ref="multipleTable" + @handleUpdate="handleUpdate" + @handleSelectionChange="handleSelectionChange" + :currentList="patientuserList" + :tableLabel="tableLabelhz" + :serialnumber="false" + :center="false" + :typeinfo="3" + /> + </el-row> + <pagination + v-show="patienttotal > 0" + :total="patienttotal" + :page.sync="patientqueryParams.pageNum" + :limit.sync="patientqueryParams.pageSize" + @pagination="handleAddpatient" + /> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="dialogVisiblepatient = false">鍙� 娑�</el-button> + <el-button type="primary" @click="AddDispatchpatients" + >纭畾娣诲姞</el-button + > + </span> + </el-dialog> + <el-dialog title="妯$増棰勮" :visible.sync="previewtf" width="60%"> + <div class="preview-left"> + <!-- 鍗曢�� --> + <div + class="topic-dev" + v-for="(item, index) in questionList" + :key="item.aaa" + > + <div class="dev-text"> + {{ index + 1 }}銆�<span>{{ item.questionText }}</span> + </div> + + <div class="dev-xx" v-if="item.valueType == 1"> + <el-radio-group v-model="item.radio"> + <el-radio + v-for="(items, index) in item.ivrLibaScriptTargetoptionList" + :key="items.id" + :label="items.id" + >{{ items.targetvalue }} + </el-radio> + </el-radio-group> + </div> + <div v-else> + <el-input + type="textarea" + placeholder="鏈幏鍙栧埌淇℃伅" + v-model.sync="item.questionResult" + :rows="2" + /> + </div> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="previewGo">鍓嶅線妯$増璇︽儏淇敼</el-button> + <el-button type="primary" @click="previewFn">纭浣跨敤</el-button> + </span> + </el-dialog> + </div> +</template> + +<script> +import { messagelistpatient } from "@/api/patient/homepage"; +import store from "@/store"; +import { + getTaskpatient, + getlibrarylist, + getFollowuplist, + getQtemplatelist, + TaskQuestioncomit, + Questionnairetaskget, + gethetaskinfo, + delhetaskinfo, + Questionnairetaskdetails, +} from "@/api/AiCentre/index"; +import { listDept } from "@/api/system/dept"; + +import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢 + +export default { + name: "ServiceDetails", + data() { + return { + title: "瀹f暀鍐呭鍒楄〃", + currenttype: 1, //1瀹f暀2闂ㄨ瘖3鍑洪櫌4澶嶈瘖5浣撴6闂嵎 + id: "", // + previewid: "", //浠诲姟妯$増浼犻�抜d + libName: "", + overallCase: [], //閫夋嫨鎮h�呮�� + allpids: [], + libId: null, //妯℃澘搴撴ā鐗坕d + Editprogress: 1, //缂栬緫杩涘害 + previewtf: false, //棰勮 + loading: false, // 閬僵灞� + patientloading: false, // 閬僵灞� + dialogVisiblepatient: false, //娣诲姞鎮h�呭脊妗� + radio: 1, + checkboxlist: [], + tableLabel: [], + questionList: [], + // 鎮h�呰〃鍗� + tableLabelhz: [ + { label: "搴忓彿", width: "", prop: "patid" }, + { label: "鎮h�呭悕绉�", width: "", prop: "name" }, + { label: "鎬у埆", width: "", prop: "sex" }, + { label: "骞撮緞", width: "", prop: "age" }, + { label: "灏辫瘖绉戝", width: "", prop: "deptName" }, + { label: "鍏ラ櫌鏃ユ湡", width: "", prop: "inhosptime" }, + { label: "鍒涘缓浜猴紙缂猴級", width: "", prop: "update_by" }, + ], + + tableLabelwj: [ + { label: "闂嵎鍚嶇О", width: "", prop: "name" }, + { label: "闂嵎妯$増", width: "", prop: "impTemplate" }, + { label: "淇敼鏃ユ湡", width: "", prop: "uploadTime" }, + { label: "鍒涘缓浜猴紙缂猴級", width: "", prop: "updateBy" }, + ], + // 鍙橀噺 + tableLabelvariable: [ + { label: "鍙橀噺鍚嶇О", width: "", prop: "variablename" }, + { label: "鍖归厤绗�", width: "", prop: "character" }, + { label: "鏇挎崲鍊�", width: "", prop: "Replacementvalue" }, + ], + preachform: [ + { label: "澶氬獟浣�", value: 1 }, + { label: "绾歌川", value: 2 }, + { label: "鐢佃瘽", value: 3 }, + { label: "鐭俊", value: 4 }, + { label: "寰俊鍏紬鍙�", value: 5 }, + { label: "寰俊灏忕▼搴�", value: 6 }, + { label: "鏀粯瀹�", value: 7 }, + { label: "鏅鸿兘灏忕▼搴�", value: 8 }, + { label: "閽夐拤", value: 9 }, + ], + // 鏃堕棿澶勭悊 + daytime: [], //鏃ユ湡 + applydaytime: [], //璁$畻鏃ユ湡 + time1: "", //涓婂崍鏃堕棿娈� + time2: "", //涓嬪崍鏃堕棿娈� + time3: "", //鏅氫笂鏃堕棿娈� + time4: "", //鏅氫笂鏃堕棿娈� + topqueryParams: { + pageNum: 1, // + pageSize: 10, + }, + checkList: [], + deliverytopqueryParams: { + pageNum: 1, // + pageSize: 10, + }, + patientqueryParams: { + pageNum: 1, // + pageSize: 10, + }, + topicoptions: [{ children: [{ children: [] }] }], + showSearch: true, // + total: 0, // + sontotal: 0, // + patienttotal: 0, // + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鐢ㄦ埛琛ㄦ牸鏁版嵁 + userList: [], //妯$増鍒楄〃 + patientuserList: [], //閫夋嫨鎮h�呭垪琛� + sonuserList: [], //閫変腑鎮h�呭垪琛� + delvariableList: [], //鍒犻櫎鍙橀噺涓存椂瀛樺偍 + variableList: [ + { + name: "濮撳悕", + value: "${name}", + fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�", + default: true, + }, + { + name: "鍦板潃", + value: "${dzz}", + fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�", + default: true, + }, + { + name: "鐢佃瘽", + value: "${dhh}", + fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�", + default: true, + }, + ], //鍙橀噺鍒楄〃 + transitionList: [ + { + name: "濮撳悕", + value: "${name}", + fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�", + default: true, + }, + { + name: "鍦板潃", + value: "${dzz}", + fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�", + default: true, + }, + { + name: "鐢佃瘽", + value: "${dhh}", + fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�", + default: true, + }, + ], + variableListTime: [], + tasktopic: null, //鏂板绫诲瀷 + SelectPatientslist: [], + form: { + patTaskRelevances: [], + sendType: 1, + templatename: "", + templateid: null, + libtemplateid: null, + }, + taskoptions: [ + { + value: "1", + label: "鍑洪櫌鐥呬汉", + }, + { + value: "2", + label: "闂ㄨ瘖鐥呬汉", + }, + { + value: "3", + label: "浣撴鐥呬汉", + }, + ], + quote: false, + }; + }, + components: { SFtable }, + + created() { + this.id = this.$route.query.id; + this.form.hospType = this.$route.query.type; + this.listDept(); + this.Acquisitiontype(); + this.Getdetails(); + }, + + methods: { + // { + // 濮撳悕: { "${name}": "榫欏偛澶�" }, + // 鍦板潃: { "${dzz}": "榫欏" }, + // 鐢佃瘽: { "${dhh}": "鍏釜鍏�" }, + // } + // 鍙橀噺杞崲瀵硅薄杞暟缁� + convertFormat1ToFormat2(data) { + let result = []; + for (let key in data) { + let innerKey = Object.keys(data[key])[0]; + result.push({ + name: key, + value: innerKey, + fill: data[key][innerKey], + }); + } + return result; + }, + // 鏁扮粍杞璞� + convertFormat2ToFormat1(data) { + let result = {}; + data.forEach((item) => { + let innerObj = {}; + innerObj[item.value] = item.fill; + result[item.name] = innerObj; + }); + return result; + }, + // 鑾峰彇褰撳墠绫诲瀷 + Acquisitiontype() { + let queryParams = { + pageNum: this.topqueryParams.pageNum, + pageSize: this.topqueryParams.pageSize, + isavailable: "", + }; + this.currenttype = this.$route.query.type; + this.title = "闂嵎鍐呭鍒楄〃"; + this.tableLabel = this.tableLabelwj; + this.checkboxlist = ["绾夸笅锛堢焊璐級", "绾夸笂锛堢煭淇�/閽夐拤鐨勬枃鏈�侀棶鍗烽摼鎺ワ級"]; + getQtemplatelist(queryParams).then((response) => { + this.userList = response.rows; + this.total = response.total; + }); + }, + nextstep() { + if (this.Editprogress <= 3) { + return this.Editprogress++; + } + }, + // 淇濆瓨 + submitForm(formName) { + // this.form.preachform = this.checkList.join(","); + this.formatFn(1); + this.form.hospType = this.currenttype; + const filteredArray = this.variableList.filter( + (item) => + item.name !== "濮撳悕" && item.name !== "鐢佃瘽" && item.name !== "鍦板潃" + ); + console.log(filteredArray, "瀛樺墠鍙橀噺"); + this.form.textParam = this.convertFormat2ToFormat1(filteredArray); + if (this.form.taskid) { + this.form.isoperation = 2; + } else { + this.form.isoperation = 1; + } + Questionnairetaskdetails(this.form).then((res) => { + if (res.code == 200) { + if (this.form.taskid) { + this.$modal.msgSuccess("鏂板鎴愬姛"); + } else { + this.$modal.msgSuccess("淇敼鎴愬姛"); + } + this.$router.go(-1); + } + }); + }, + // ----------------------琛ㄦ牸瀛愮粍浠朵簨浠� + // 纭閫夋嫨妯$増鏀惧叆浠诲姟妯$増 + selectfn(row, type) { + // 妯$増鎯呭喌涓嬭幏鍙栨ā鐗堜俊鎭� + if (type == 1) { + if ( + this.currenttype == 2 || + this.currenttype == 4 || + this.currenttype == 3 || + currenttype == 5 || + currenttype == 7 + ) { + this.libName = row.templateName; + this.libId = row.id; + } else if (this.currenttype == 1) { + this.libName = row.preachname; + this.libId = row.id; + } + getQtemplatelist({ id: row.id }).then((res) => { + if (res.code == 200) { + this.Tasktemplate = res.data; + const data = res.data; + this.questionList = data.ivrLibaTemplateScriptVOList; + this.previewtf = true; + this.previewid = data.id; + console.log(this.questionList, "questionList"); + this.Variablehandling(data.ivrLibaTemplateScriptVOList, 1); + } + }); + } else if (type == 2) { + } else if (type == 3) { + } + }, + // 澶勭悊闂灞傚彉閲� + Variablehandling(arr, type) { + let Variablist = []; + if (type == 1) { + console.log(arr); + // 寰幆闂 + arr.forEach((res) => { + console.log(JSON.parse(res.otherdata), "ss"); + // 寰幆閫夐」 + JSON.parse(res.otherdata).forEach((item) => { + if (item.default != 1) { + Variablist.push({ + value: item.variate, + fill: "", + name: item.variatename, + }); + } + }); + }); + console.log(Variablist, "Variablist"); + const Aarr = Variablist.filter( + (obj, index, self) => + index === + self.findIndex((t) => t.name === obj.name && t.value === obj.value) + ); + this.variableList = this.transitionList.concat(Aarr); + // this.form.textParam = this.convertFormat2ToFormat1(this.variableList); + } + }, + // 瀛愪换鍔′簩绾у脊妗� + handleAddpatient(row) { + console.log(this.overallCase, "ssaaa"); + this.allpids = []; + this.overallCase.forEach((item) => { + this.allpids.push(item.patid); + }); + if (this.allpids[0]) { + this.patientqueryParams.pids = this.allpids; + console.log(this.patientqueryParams.pids); + } else { + this.patientqueryParams.pids = null; + } + + getTaskpatient(this.patientqueryParams).then((response) => { + console.log(response); + this.patientuserList = response.rows; + this.patienttotal = response.total; + this.loading = false; + this.Restorecheck(); + }); + this.dialogVisiblepatient = true; + }, + handleUpdate() {}, + handleDelete() {}, + handleExport() {}, + // 閫変腑鎮h�呰〃 + handlePitchionChange() {}, + // 閫夋嫨鎮h�呰〃鏁版嵁 + handleSelectionChange(selection) { + console.log("澶氶�夋偅鑰�"); + this.SelectPatientslist = selection; + this.multiple = !selection.length; + + // 璧嬪�肩粰鏁翠綋閫変腑鏁扮粍 + this.SelectPatientslist.forEach((item) => { + const isExist = this.overallCase.find((obj) => obj.name == item.name); + if (!isExist) { + item.isoperation = 1; + this.overallCase.push(item); + this.form.patTaskRelevances.push(item); + } + }); + }, + // 鍒囨崲椤靛悗鎭㈠閫変腑 + Restorecheck() { + console.log(this.overallCase, "this.overallCase"); + const allid = this.overallCase.map((item) => item.patid); + const overlap = this.patientuserList.filter((value) => { + return allid.includes(value.patid); + }); + // 淇濇寔ids鍜屽綋鍓嶉〉闈㈢殑鍚屾鎬� + this.SelectPatientslist = overlap; + console.log(this.SelectPatientslist, "杩涘叆鍒嗛〉SelectPatientslist"); + + this.toggleSelection(overlap); + }, + // 鎸傝浇閫夋嫨鐘舵�� + toggleSelection(rows) { + if (rows) { + this.decision = true; + this.$nextTick(() => { + rows.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row, true); + }); + this.decision = false; + }); + console.log(123); + } else { + this.$refs.multipleTable.clearSelection(); + } + }, + // 鍒犻櫎閫変腑鎮h�� + detailhz(row, info) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鎮h��"' + row.name + '"鐨勬湇鍔¢」锛�') + .then(() => { + let indexa = this.overallCase.indexOf(row); + let indexb = this.form.patTaskRelevances.indexOf(row); + this.overallCase.splice(indexa, 1); + this.form.patTaskRelevances[indexb].isoperation = 3; + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }); + }, + getList() {}, + handleQuery() { + this.handleAddpatient(); + }, + resetQuery() {}, + handleClosehz() { + this.dialogVisiblepatient = false; + }, + // 涓婁竴姝� + laststep() { + this.Editprogress--; + }, + // 鎻愪氦琛ㄥ崟 + resetForm(formName) { + this.$refs[formName].resetFields(); + }, + // 棰勮妯$増 + PreviewTemplate() {}, + Acknowledgereference() { + this.quote = true; + }, + // 鑾峰彇璇︽儏 + Getdetails() { + if (this.id) { + Questionnairetaskget({ taskid: this.id }).then((res) => { + let filteredArray = ""; + console.log(2233); + if (res.code == 200) { + this.form = res.data; + this.overallCase = this.form.patTaskRelevances.concat(); + this.formatFn(2); + console.log(this.form.showDate, "this.form"); + this.daytime = this.form.showDate.split(","); + if (this.form.showTimeMorn) { + if (this.form.sendType == 3) { + this.time4 = this.form.showTimeMorn; + } else { + this.time1 = this.form.showTimeMorn.split(","); + } + } + if (this.form.showTimeNoon) + this.time2 = this.form.showTimeNoon.split(","); + if (this.form.showTimeNight) + this.time3 = this.form.showTimeNight.split(","); + console.log(1122); + filteredArray = this.convertFormat1ToFormat2(this.form.textParam); + this.variableList = this.transitionList.concat(filteredArray); + } else { + this.$modal.msgError(res.code); + } + }); + } + }, + // 鑾峰彇绉戝鍒楄〃 + listDept() { + listDept().then((res) => { + this.topicoptions = this.handleTree(res.data, "deptId"); + console.log(this.topicoptions, "topicoptions"); + }); + }, + // 鏂板娲鹃�佹偅鑰� + AddDispatchpatients() { + // this.SelectPatientslist.forEach((item) => { + // item.isoperation = 1; + // }); + // this.form.patTaskRelevances.push(...this.SelectPatientslist); + // this.overallCase.push(...this.SelectPatientslist); + this.dialogVisiblepatient = false; + }, + + variableDelete(index, row) { + this.variableList.splice(index, 1); + row.isoperation = 3; + this.delvariableList.push(row); + console.log(index, row); + }, + // 鏃堕棿---------- + changeTime(row) { + console.log(row, "鏃堕棿"); + this.processingTime(); + }, + Totaldate(row) { + console.log(row, "鏃堕棿"); + this.form.sendTimeslot = [{ begantime: row, endtime: row, xh: 1 }]; + this.form.showTimeMorn = row; + console.log(this.form.sendTimeslot, "鏃堕棿"); + }, + changeTimeday(row) { + const startDate = new Date(row[0]); + const endDate = new Date(row[1]); + this.applydaytime = this.getDates(startDate, endDate); + this.processingTime(); + }, + getDates(startDate, endDate) { + const dates = []; + let currentDate = new Date(startDate); + + while (currentDate <= endDate) { + dates.push(this.$moment(currentDate).format("YYYY-MM-DD")); + currentDate.setDate(currentDate.getDate() + 1); + } + + return dates; + }, + // 鏃堕棿鏈�缁堝鐞嗘柟娉� + processingTime() { + const combinedData = []; + let serialnumber = 1; + if (this.time3[0]) { + serialnumber = 3; + } else if (this.time2[0]) { + serialnumber = 2; + } else if (this.time1[0]) { + serialnumber = 1; + } else { + return; + } + + for (let i = 0; i < this.applydaytime.length; i++) { + combinedData.push({ + begantime: `${this.applydaytime[i]} ${this.time1[0]}`, + endtime: `${this.applydaytime[i]} ${this.time1[1]}`, + xh: serialnumber * i + 1, + }); + if (serialnumber >= 2) { + combinedData.push({ + begantime: `${this.applydaytime[i]} ${this.time2[0]}`, + endtime: `${this.applydaytime[i]} ${this.time2[1]}`, + xh: serialnumber * i + 2, + }); + } + if (serialnumber >= 3) { + combinedData.push({ + begantime: `${this.applydaytime[i]} ${this.time3[0]}`, + endtime: `${this.applydaytime[i]} ${this.time3[1]}`, + xh: serialnumber * i + 3, + }); + } + } + this.form.sendTimeslot = combinedData; + // 灞曠ず鏁版嵁涓存椂瀛樺偍鏃ユ湡銆佹棭銆佷腑銆佹櫄 + + this.form.showDate = this.daytime.join(","); + if (this.time1) this.form.showTimeMorn = this.time1.join(","); + if (this.time2) this.form.showTimeNoon = this.time2.join(","); + if (this.time3) this.form.showTimeNight = this.time3.join(","); + console.log(combinedData, "combinedData"); + }, + // 鏌ョ湅妯$増 + previewGo() { + this.$router.push({ + path: "/knowledge/templateku/configurat/", + query: { id: this.previewid, task: true, data: this.form }, + }); + }, + previewFn() { + let id = this.Tasktemplate.id; + this.Tasktemplate.id = null; + this.Tasktemplate.ivrLibaTemplateScriptVOList.ivrTaskScriptTargetoptionList = + this.Tasktemplate.ivrLibaTemplateScriptVOList.ivrLibaScriptTargetoptionList; + this.Tasktemplate.ivrTaskTemplateScriptVOList = + this.Tasktemplate.ivrLibaTemplateScriptVOList; + this.Tasktemplate.ivrLibaTemplateTagList = null; + this.Tasktemplate.tempDetpRelevances = null; + this.Tasktemplate.libtemplateid = id; + this.Tasktemplate.isoperation = 1; + this.Tasktemplate.libtemplatename = this.Tasktemplate.templateName; + TaskQuestioncomit(this.Tasktemplate).then((response) => { + console.log(response); + this.previewtf = false; + this.form.templateid = response.data; + this.form.libtemplateid = this.libId; + this.form.templatename = this.libName; + this.$modal.msgSuccess("閫夋嫨妯$増鎴愬姛"); + }); + }, + // 澶勭悊鏈嶅姟褰㈠紡 + formatFn(type) { + console.log(this.preachform, "preachform"); + console.log(this.checkList, "checklist"); + let list = []; + let formlist = []; + if (type == 1) { + this.preachform.forEach((item) => { + this.checkList.forEach((obj) => { + if (item.label == obj) { + list.push(item.value); + } + }); + }); + this.form.preachform = list.join(","); + } else { + console.log(this.form.preachform, "this.form.preachform"); + formlist = this.form.preachform.split(","); + console.log(11); + this.preachform.forEach((item) => { + formlist.forEach((obj) => { + if (item.value == obj) { + list.push(item.label); + } + }); + }); + this.checkList = list; + } + }, + }, +}; +</script> + +<style lang="scss" scoped> +.Questionnairemanagement { +} +.leftvlue-jbxx { + margin-top: 10px; +} +.sidecolumn { + width: 100%; + // min-height: 12vh; + margin: 20px; + margin-bottom: 0; + padding: 30px; + background: #edf1f7; + 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); +} +.leftvlue { + // display: flex; + // flex: 1; + width: 100%; + margin-top: 20px; + // margin: 20px; + padding: 30px; + background: #ffff; + 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); +} +.examine-jic { + .headline { + font-size: 24px; + border-left: 5px solid #41a1be; + padding-left: 5px; + margin-bottom: 10px; + display: flex; + justify-content: space-between; + .Add-details { + font-size: 18px; + color: #02a7f0; + cursor: pointer; + } + } + .jic-value { + font-size: 20px; + border-top: 1px solid #a7abac; + padding: 10px; + margin-bottom: 10px; + .details-jic { + padding: 10px 15px; + 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); + .details-title { + display: flex; + justify-content: space-between; + margin-bottom: 10px; + div:nth-child(2) { + color: #02a7f0; + cursor: pointer; + } + } + .details-renw { + background: #e4ebfc; + padding: 15px 5px; + border-radius: 5px; + margin-bottom: 20px; + } + } + } +} +// .leftvlue-jbxx { +// margin-bottom: 50px; +// font-size: 20px; +// span { +// position: absolute; +// right: 80px; +// } +// .demo-cascader { +// margin-right: 20px; +// } +// .PreviewTemplate { +// color: #02a7f0; +// cursor: pointer; +// font-size: 20px; +// margin: 0 20px; +// } +// } +.preview-left { + margin: 20px; + // margin: 20px; + padding: 30px; + background: #ffff; + 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); + .topic-dev { + margin-bottom: 25px; + font-size: 20px !important; + .dev-text { + margin-bottom: 10px; + } + } +} +.jic-value { + font-size: 20px; + border-top: 1px solid #a7abac; + padding: 10px; + margin-bottom: 10px; + .details-jic { + padding: 10px 15px; + 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); + .details-title { + display: flex; + justify-content: space-between; + margin-bottom: 10px; + div:nth-child(2) { + color: #02a7f0; + cursor: pointer; + } + } + .details-renw { + background: #e4ebfc; + padding: 15px 5px; + border-radius: 5px; + margin-bottom: 20px; + } + } +} +::v-deep .addtopic-input { + input { + background: #02a7f0; + color: #edf1f7; + width: 150px; + } +} +::v-deep.el-step.is-vertical .el-step__title { + font-size: 25px; +} +::v-deep.el-row { + margin-bottom: 10px; +} +// ::v-deep.el-input--medium { +// font-size: 24px !important; +// } +::v-deep.ruleFormaa.el-select { + display: inline-block; + position: relative; + width: 700px; +} +.el-select__tags { + font-size: 20px; + max-width: 888px !important; +} +::v-deep.el-radio__inner { + width: 22px; + height: 22px; +} +// ::v-deep.topic-dev.el-radio__label { +// font-size: 24px; +// } +::v-deep.el-radio-group { + span { + font-size: 24px; + } +} +::v-deep.el-input.is-disabled .el-input__inner { + background-color: #f5f7fa; + border-color: #dfe4ed; + color: rgb(253, 66, 66); + cursor: not-allowed; +} +::v-deep.el-checkbox-group { + span { + font-size: 24px; + } +} +</style> diff --git a/src/views/patient/questionnaire/index.vue b/src/views/patient/questionnaire/index.vue index 9d12c24..a06d5ff 100644 --- a/src/views/patient/questionnaire/index.vue +++ b/src/views/patient/questionnaire/index.vue @@ -164,7 +164,13 @@ prop="userId" /> - <el-table-column label="濮撳悕" fixed align="center" key="types" prop="types" /> + <el-table-column + label="濮撳悕" + fixed + align="center" + key="types" + prop="types" + /> <el-table-column label="搴婂彿" align="center" @@ -226,56 +232,56 @@ prop="topicnumberaa" width="120" /> - + <el-table-column - label="灏辫瘖鏃堕棿" - sortable - align="center" - prop="createTime" - width="160" + label="灏辫瘖鏃堕棿" + sortable + align="center" + prop="createTime" + width="160" > <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime) }}</span> </template> </el-table-column> <el-table-column - label="鍙戦�佹椂闂�" - sortable - align="center" - prop="createTime" - width="160" + label="鍙戦�佹椂闂�" + sortable + align="center" + prop="createTime" + width="160" > - <template slot-scope="scope"> - <span>{{ parseTime(scope.row.createTime) }}</span> - </template> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.createTime) }}</span> + </template> </el-table-column> <el-table-column - label="鍥炲鏃堕棿" - sortable - align="center" - prop="createTime" - width="160" + label="鍥炲鏃堕棿" + sortable + align="center" + prop="createTime" + width="160" > - <template slot-scope="scope"> - <span>{{ parseTime(scope.row.createTime) }}</span> - </template> - </el-table-column> - - <el-table-column - label="鍙戦�佺姸鎬�" - align="center" - key="topicnumber" - prop="topicnumber" - width="120" - :show-overflow-tooltip="true" - > - <template slot-scope="scope"> - <div>宸插彂閫�</div> - </template> - </el-table-column> - <el-table-column - label="鎿嶄綔" - fixed="right" + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + + <el-table-column + label="鍙戦�佺姸鎬�" + align="center" + key="topicnumber" + prop="topicnumber" + width="120" + :show-overflow-tooltip="true" + > + <template slot-scope="scope"> + <div>宸插彂閫�</div> + </template> + </el-table-column> + <el-table-column + label="鎿嶄綔" + fixed="right" align="center" width="200" class-name="small-padding fixed-width" @@ -885,7 +891,7 @@ // 璺宠浆璇︽儏椤� Seedetails() { this.$router.push({ - path: "/followvisit/particty", + path: "/followvisit/QuestionnaireTask", query: { type: 6 }, }); }, diff --git a/src/views/repositoryai/templateku/configurat/index.vue b/src/views/repositoryai/templateku/configurat/index.vue index 85636ae..ad39da7 100644 --- a/src/views/repositoryai/templateku/configurat/index.vue +++ b/src/views/repositoryai/templateku/configurat/index.vue @@ -539,7 +539,7 @@ ><el-form-item label="鏃犲尮閰嶈瘽鏈�"> <el-input type="textarea" - style="width: 400px;" + style="width: 400px" placeholder="璇疯緭鍏�" v-model="topicobj.noMatchText" show-word-limit @@ -586,7 +586,7 @@ <el-col :span="20" ><el-form-item label="鍚笉娓呰瘽鏈�"> <el-input - style="width: 400px;" + style="width: 400px" type="textarea" placeholder="璇疯緭鍏�" v-model="topicobj.noClearlyText" @@ -635,7 +635,7 @@ ><el-form-item label="闈欓粯璇濇湳"> <el-input type="textarea" - style="width: 400px;" + style="width: 400px" placeholder="璇疯緭鍏�" v-model="topicobj.slienceText" show-word-limit @@ -999,26 +999,31 @@ }, // 鑾峰彇琛ㄥ崟鏁版嵁 getvFollowup() { - getvFollowup({ id: this.id }).then((res) => { - if (res.code == 200 && this.id) { - console.log(2211); - 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.ruleForm.submoduleID = this.ruleForm.submoduleID.map((res) => { - return Number(res); - }); - console.log(this.ruleForm.submoduleID, "this.ruleForm.submoduleID鍙�"); - this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList; + if (this.id) { + getvFollowup({ id: this.id }).then((res) => { + if (res.code == 200) { + console.log(2211); + 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.ruleForm.submoduleID = this.ruleForm.submoduleID.map((res) => { + return Number(res); + }); + console.log( + this.ruleForm.submoduleID, + "this.ruleForm.submoduleID鍙�" + ); + this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList; - this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map( - this.processElement - ); - console.log(this.ruleForm.suitway); - } - }); + this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map( + this.processElement + ); + console.log(this.ruleForm.suitway); + } + }); + } getillnesslist({ pageNum: 1, pageSize: 100, @@ -1039,7 +1044,9 @@ // 鍒嗙被 getFollowupclassify({}).then((res) => { this.indexAssortlist = res.rows; - this.ruleForm.assortid = Number(this.$route.query.assortid); + if (this.$route.query.assortid) { + this.ruleForm.assortid = Number(this.$route.query.assortid); + } }); // 绉戝 listDept(this.queryParams).then((response) => { @@ -1086,8 +1093,17 @@ return item; }); }); - + compileFollowup(this.ruleForm).then((res) => { + this.$modal.msgSuccess("缂栬緫鎴愬姛"); + this.confirmillness(res.data); + this.$router.go(-1); + }); + }, + confirmillness(guid) { this.illnesslist.forEach((item, index) => { + if (guid) { + item.outid = guid; + } if (!item.id) { addtargetillness(item).then((res) => {}); } @@ -1095,10 +1111,8 @@ if (this.illnesslistapi.length) { deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); } - compileFollowup(this.ruleForm).then((res) => { - this.$modal.msgSuccess("缂栬緫鎴愬姛"); - this.$router.go(-1); - }); + this.illnessVisible = false; + this.$modal.msgSuccess("缂栬緫鎴愬姛"); }, // 绉戝澶勭悊 Departmenttreatment() { -- Gitblit v1.9.3