From f93cb40b76468c6f1063081a3be16027d69b4832 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 04 一月 2024 09:46:01 +0800 Subject: [PATCH] 指标完成 --- src/views/knowledge/questionnaire/compilequer/index.vue | 487 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 326 insertions(+), 161 deletions(-) diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue index 556466a..26c78ac 100644 --- a/src/views/knowledge/questionnaire/compilequer/index.vue +++ b/src/views/knowledge/questionnaire/compilequer/index.vue @@ -17,9 +17,7 @@ <div class="leftvlue"> <!-- 鍩烘湰淇℃伅 --> <div v-if="Editprogress == 1"> - <div class="leftvlue-jbxx"> - 鍩烘湰淇℃伅 - </div> + <div class="leftvlue-jbxx">鍩烘湰淇℃伅</div> <el-divider></el-divider> <el-form :model="ruleForm" @@ -30,7 +28,7 @@ > <el-form-item label="闂嵎鍒嗙被" prop="region"> <el-select - v-model="ruleForm.classify" + v-model="ruleForm.categoryid" size="medium" multiple filterable @@ -38,7 +36,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in optionsclass" :key="item.value" :label="item.label" :value="item.value" @@ -48,16 +46,32 @@ </el-form-item> <el-form-item label="闂嵎鏍囬" prop="name"> <div style="width: 30%"> - <el-input v-model="ruleForm.name"></el-input> + <el-input v-model="ruleForm.svyname"></el-input> </div> </el-form-item> + <el-form-item label="闂嵎鎻忚堪"> + <el-input + style="width: 40vw" + type="textarea" + autosize + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="ruleForm.description" + > + </el-input + ></el-form-item> <el-form-item label="閫氱煡鍙橀噺" prop="name"> <el-row v-for="item in variablelist"> <el-col :span="4"> - <el-input v-model="item.variable"></el-input> + <el-input + v-model="item.name" + placeholder="璇疯緭鍏ュ彉閲忓悕" + ></el-input> </el-col> <el-col :span="8" :offset="1"> - <el-input v-model="item.value"></el-input> + <el-input + v-model="item.value" + placeholder="璇疯緭鍏ュ彉閲忓唴瀹�" + ></el-input> </el-col> <el-col :span="4" :offset="1"> <el-button @@ -67,6 +81,7 @@ @click="addvariable(item)" ></el-button> <el-button + v-if="item" type="danger" icon="el-icon-delete" circle @@ -91,53 +106,101 @@ </el-upload> </div> </el-form-item> - <el-form-item label="鏍囩" prop="desc"> - <div class="xinz-inf"> - <el-tag - :key="tag" - type="success" - v-for="tag in dynamicTags" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag }} - </el-tag> - <el-select - v-model="inputValue" - v-if="inputVisible" - @change="handleInputConfirm" - filterable - allow-create + <el-row> + <el-form-item label="鏍囩" prop="desc"> + <div class="xinz-inf"> + <el-tag + :key="tag.tagname" + type="success" + v-for="tag in dynamicTags" + closable + :disable-transitions="false" + @close="handleClosetag(tag)" + > + {{ tag.tagname }} + </el-tag> + <el-select + v-model="inputValue" + v-if="inputVisible" + @change="handleInputConfirm" + filterable + remote + reserve-keyword default-first-option - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in optionstag" - :key="item.tagname" + :remote-method="remoteMethodtag" + :loading="loading" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in optionstag" + :key="item.tagid" :label="item.tagname" :value="item.tagname" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="showInput" + >+ 鏂板鏍囩</el-button > - </el-option> - </el-select> - <el-button - v-else - class="button-new-tag" - size="small" - @click="showInput" - >+ 鏂板鏍囩</el-button - > - </div> - </el-form-item> + </div> + </el-form-item> + </el-row> + <el-row> + <el-form-item label="閫傜敤鐤剧梾" prop="region"> + <div class="xinz-inf"> + <el-tag + :key="item.icd10name" + type="warning" + v-for="item in illnesslist" + closable + :disable-transitions="false" + @close="handleCloseillness(item)" + > + {{ item.icd10name }} + </el-tag> + <el-select + v-model="inputValueillness" + v-if="inputVisibleillness" + @change="illnessConfirm" + :remote-method="remoteMethod" + filterable + remote + allow-create + default-first-option + placeholder="璇烽�夋嫨/鏌ヨ" + :loading="loading" + > + <el-option + v-for="item in optionsillness" + :key="item.icdid" + :label="item.icdname" + :value="item.icdid" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="inputVisibleillness = true" + >+ 鏂板鐤剧梾</el-button + > + </div> + </el-form-item> + </el-row> <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="鐗堟湰鍙�" prop="name"> - <el-input v-model="currentVersion"></el-input> </el-form-item + <el-input v-model="ruleForm.version"></el-input> </el-form-item ></el-col> <el-col :span="9"> <el-form-item label="鍙敤鐘舵��" prop="region"> <el-select - v-model="ruleForm.classify" + v-model="ruleForm.isenable" size="medium" multiple filterable @@ -145,7 +208,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in usable" :key="item.value" :label="item.label" :value="item.value" @@ -154,7 +217,7 @@ </el-select> </el-form-item ></el-col> </el-row> - <el-form-item label="闂嵎鏂瑰紡" prop="region"> + <el-form-item label="闂嵎鏂瑰紡(缂�)" prop="region"> <el-select v-model="ruleForm.way" size="medium" @@ -172,24 +235,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="閫傜敤鐤剧梾" prop="region"> - <el-select - v-model="ruleForm.illness" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - </el-form-item> + <el-form-item label="閫傜敤闄㈠尯" prop="region"> <el-select v-model="ruleForm.courtyard" @@ -199,7 +245,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in courtyardlist" :key="item.value" :label="item.label" :value="item.value" @@ -217,7 +263,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in courtyardlist" :key="item.value" :label="item.label" :value="item.value" @@ -345,51 +391,70 @@ ></el-col> </el-row> <div class="headline">閫夐」璁剧疆</div> - <div class="topicxq" v-for="item in 2"> + <div class="topicxq" v-for="item in optionlist"> <el-row :gutter="10"> - <el-col :span="12" - ><el-form-item label="閫夐」"> + <el-col :span="11" + ><el-form-item label="棰樺彿"> <el-input type="text" - placeholder="璇疯緭鍏ラ�夐」" - v-model="text" + placeholder="璇疯緭鍏�" + v-model="item.optionid" show-word-limit > </el-input> </el-form-item ></el-col> - <el-col :span="12" + <el-col :span="11" ><el-form-item label="鍒嗗��"> <el-input type="text" - placeholder="璇疯緭鍏ュ垎鍊�" - v-model="text" + placeholder="璇疯緭鍏�" + v-model="item.score" show-word-limit > </el-input> </el-form-item ></el-col> </el-row> <el-row :gutter="10"> - <el-col :span="12" - ><el-form-item label="閫変腑鎻愮ず"> + <el-col :span="11" + ><el-form-item label="閫夐」"> <el-input type="text" - placeholder="璇疯緭鍏ュ唴瀹�" - v-model="text" - maxlength="10" + placeholder="璇疯緭鍏ラ�夐」" + v-model="item.optioncontent" show-word-limit > </el-input> </el-form-item ></el-col> - <el-col :span="12" + <el-col :span="11" ><el-form-item label="涓嬮璺宠浆"> <el-input type="text" placeholder="璇疯緭鍏ラ鍙�" - v-model="text" + v-model="item.jump" show-word-limit > </el-input> </el-form-item ></el-col> + <el-col :span="2"> + <el-button + type="danger" + icon="el-icon-delete" + circle + @click="deletexuanx(item)" + ></el-button> + </el-col> + </el-row> + <el-row :gutter="10"> + <el-form-item label="閫変腑鎻愮ず"> + <el-input + style="width: 20vw" + type="textarea" + autosize + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="item.prompt" + > + </el-input + ></el-form-item> </el-row> </div> </el-form> @@ -483,22 +548,13 @@ /> </el-form-item> <el-form-item label="涓婚" prop="sickness"> - <el-select - v-model="ruleForm.classify" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> </el-form-item> <el-form-item> <el-button @@ -554,6 +610,22 @@ <script> import { listtag } from "@/api/system/label"; +import store from "@/store"; +import { + getQtemplateclassify, + delQtemplateclassify, + addQtemplateclassify, + getQtemplatelist, + Qtemplateinfo, + compileissue, + delQtemplateinfo, + Followupinfo, + deltargetillness, + addtargetillness, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; export default { data() { @@ -566,27 +638,20 @@ radio: "false", //鍗曢�夐閫変腑 radios: [], //澶氶�夐閫変腑 radioas: "", //濉┖棰樼瓟妗� - dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"], + dynamicTags: [], inputVisible: false, inputValue: "", topicobj: {}, // 鎬绘潯鏁� total: 1, - ruleForm: { - name: "", - region: "", - date1: "", - date2: "", - delivery: false, - type: [], - resource: "", - desc: "", - templatevalue: "", - data2: "", - }, + ruleForm: {}, rules: {}, rulesa: {}, - optionstag:[], + optionsclass: [], //鍒嗙被鍒楄〃 + optionlist: [ + { value: "topic", table: "topic" }, + { value: "topic", table: "topic" }, + ], xjxsoptions: [ { value: "閫夐」1", @@ -620,14 +685,6 @@ value: "閫夐」2", label: "鍏ラ櫌闂嵎", }, - { - value: "閫夐」3", - label: "鎵嬫湳闂嵎", - }, - { - value: "閫夐」4", - label: "鎶ょ悊闂嵎", - }, ], variablelist: [ { @@ -654,15 +711,24 @@ userid: "2", userName: "浜屽彿闂嵎", }, - { - userid: "3", - userName: "涓夊彿闂嵎", - }, - { - userid: "4", - userName: "鍥涘彿闂嵎", - }, ], + themelist: [], + languagelist: [], + courtyardlist: [], + precedencetype: [], + inputValueillness: "", + inputVisible: false, + inputVisibleillness: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 + deptOptions: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + + optionstag: [], + xjxsoptions: [], + usable: [], + mode: [], //鏂瑰紡 // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -678,22 +744,35 @@ created() { this.gettabList(); - + this.getissueinfo(); + this.mode = store.getters.mode; + this.languagelist = store.getters.languagelist; + this.usable = store.getters.usable; + this.xjxsoptions = store.getters.xjxsoptions; + this.courtyardlist = store.getters.courtyardlist; }, methods: { - submitForm(formName) { - this.rules = this.rulesa; - // 鎻愪氦 - this.$refs[formName].validate((valid) => { - if (valid) { - alert("submit!"); - } else { - console.log("error submit!!"); - return false; - } + getIndexInArray(arr, obj) { + return arr.indexOf(obj); + }, + // 鑾峰彇鏁版嵁 + getissueinfo() { + this.id = this.$route.query.id; + Qtemplateinfo(this.id).then((res) => { + this.ruleForm = res.data; + }); + getillnesslist({ + pageNum: 1, + pageSize: 100, + }).then((response) => { + this.optionsillness = response.rows; + }); + getillness({ outid: this.id, type: 5 }).then((res) => { + this.illnesslist = res.rows; }); }, + submitForm(formName) {}, // 涓嬩竴姝� nextstep() { if (this.Editprogress <= 2) { @@ -706,17 +785,19 @@ }, // 鍏抽棴 closeFm() { - this.$confirm('閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - this.$router.go(-1) - }).catch(() => { + this.$confirm("閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + this.$router.go(-1); + }) + .catch(() => { this.$message({ - type: 'info', - message: '宸插彇娑�' - }); + type: "info", + message: "宸插彇娑�", + }); }); }, // 淇濆瓨棰樼洰淇℃伅 @@ -758,8 +839,7 @@ this.fileList = fileList.slice(-3); }, // 鏍囩----------------- - /** 鏌ヨ鏍囩鍒楄〃 */ - gettabList() { + gettabList() { const tagqueryParams = { pageNum: 1, pageSize: 1000, @@ -770,23 +850,108 @@ this.optionstag = response.rows; }); }, - handleClose(tag) { + handleClosetag(tag) { + console.log(tag); + 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; }, handleInputConfirm() { - let inputValue = this.inputValue; - if (inputValue) { - this.dynamicTags.push(inputValue); + let tagvalue = {}; + let tagname = this.inputValue; + if (tagname) { + listtag({ + pageNum: 1, + pageSize: 1000, + tagcategoryid: "0", + tagname: tagname, + }).then((res) => { + if (res.rows[0]) { + tagvalue = res.rows[0]; + tagvalue.isoperation = 1; + } else { + tagvalue = { + tagname: tagname, + isoperation: 1, + }; + } + // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue); + this.dynamicTags.push(tagvalue); + }); } this.inputVisible = false; this.inputValue = ""; }, + remoteMethodtag(query) { + if (query !== "") { + this.loading = true; + setTimeout(() => { + this.loading = false; + listtag({ tagname: query, tagcategoryid: "0" }).then((res) => { + this.optionstag = res.rows; + }); + }, 200); + } else { + this.optionstag = []; + } + }, showInput() { this.inputVisible = true; - // 鑷姩鑾峰彇鐒︾偣 - // this.$nextTick((_) => { - // this.$refs.saveTagInput.$refs.input.focus(); - // }); + }, + // 鐤剧梾----------------------- + + handleCloseillness(tag) { + this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); + if (tag.id) { + this.illnesslistapi.push(tag.id); + } + }, + remoteMethod(value) { + console.log(value); + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + icdname: value, + }; + this.loading = true; + setTimeout(() => { + this.loading = false; + getillnesslist(illnessqueryParams).then((response) => { + this.optionsillness = response.rows; + }); + }, 200); + }, + illnessConfirm(item) { + let opeavalue = {}; + let tagname = this.inputValueillness; + illnesslistget(item).then((res) => { + opeavalue = res.data; + opeavalue.outid = this.id; + opeavalue.type = 5; + opeavalue.icd10id = opeavalue.icdid; + opeavalue.icd10name = opeavalue.icdname; + opeavalue.icd10code = opeavalue.icdcode; + if (tagname) { + this.illnesslist.push(opeavalue); + } + }); + console.log(this.illnesslist); + this.inputVisibleillness = false; + this.inputValueillness = ""; + }, + // 淇濆瓨 + confirmillness() { + this.illnesslist.forEach((item, index) => { + if (!item.id) { + addtargetillness(item).then((res) => {}); + } + }); + if (this.illnesslistapi.length) { + deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); + } + this.illnessVisible = false; + this.$modal.msgSuccess("缂栬緫鎴愬姛"); }, // -------------------------- // 鏌ヨ棰樺簱 @@ -833,9 +998,9 @@ } .leftvlue-jbxx { font-size: 24px; - border-left: 5px solid #41a1be; - padding-left: 5px; - margin: 15px 0; + border-left: 5px solid #41a1be; + padding-left: 5px; + margin: 15px 0; } .demo-cascader { margin-right: 20px; -- Gitblit v1.9.3