From 62bfa86a41c6797881194f91b9b748e120c11ea7 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 22 八月 2024 17:10:46 +0800 Subject: [PATCH] 测试完成 --- src/views/knowledge/questionnaire/compilequer/index.vue | 687 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 558 insertions(+), 129 deletions(-) diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue index 5c71303..6d02685 100644 --- a/src/views/knowledge/questionnaire/compilequer/index.vue +++ b/src/views/knowledge/questionnaire/compilequer/index.vue @@ -162,26 +162,22 @@ <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="鐗堟湰鍙�" prop="name"> - <el-input v-model="ruleForm.version"></el-input> </el-form-item + <el-input + v-model="ruleForm.version" + placeholder="榛樿1.0" + ></el-input> </el-form-item ></el-col> <el-col :span="9"> <el-form-item label="鍙敤鐘舵��" prop="region"> - <el-select - v-model="ruleForm.isenable" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="ruleFormaa" - v-for="item in usable" - :key="item.value" - :label="item.label" - :value="item.value" + <el-radio-group v-model="ruleForm.isAvailable"> + <el-radio + v-for="(item, index) in usable" + :label="item.value" + >{{ item.label }}</el-radio > - </el-option> - </el-select> </el-form-item - ></el-col> + </el-radio-group> + </el-form-item></el-col + > </el-row> <el-form-item label="闂嵎鏂瑰紡" prop="region"> <el-select @@ -417,38 +413,70 @@ </el-form-item> </el-col> </el-row> + <el-row :gutter="10"> + <el-col :span="12" + ><el-form-item label="棰樼洰绫诲瀷"> + <el-select + v-model="topicobj.scriptType" + disabled + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="topicobjaa" + v-for="item in askvaluetype" + :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-input + v-model="topicobj.scriptTopic" + placeholder="璇疯緭鍏ユ爣棰�" + ></el-input> </el-form-item + ></el-col> + </el-row> <el-row :gutter="10"> <el-col :span="12" ><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-radio-group v-model="topicobj.ismandatory"> + <el-radio + v-for="(item, index) in required" + :label="item.value" + >{{ item.label }}</el-radio > - </el-option> - </el-select> </el-form-item - ></el-col> + </el-radio-group> + </el-form-item></el-col + > <el-col :span="12" ><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-radio-group v-model="topicobj.isavailable"> + <el-radio + v-for="(item, index) in usable" + :label="item.value" + >{{ item.label }}</el-radio > - </el-option> - </el-select> </el-form-item - ></el-col> + </el-radio-group> + </el-form-item></el-col + > + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item + label="棰樼洰鍒嗗��" + v-if="topicobj.scoretype == 1" + > + <el-input + v-model="topicobj.score" + placeholder="璇疯緭鍏ラ鍙�" + ></el-input> + </el-form-item> + </el-col> </el-row> <el-form-item label="鏄惁鐢遍�夐」閰嶇疆璺宠浆"> <el-radio-group v-model="topicobj.branchFlag"> @@ -456,7 +484,9 @@ <el-radio :label="0">鍚�</el-radio> </el-radio-group> </el-form-item> - <div v-if="topicobj.scriptType != 3"> + <div + v-if="topicobj.scriptType == 1 || topicobj.scriptType == 2" + > <div class="headline">閫夐」璁剧疆</div> <div class="topicxq" @@ -556,7 +586,7 @@ <el-input style="width: 20vw" type="textarea" - autosize + :rows="2" placeholder="姝ゅ鏀剧疆鎮h�呭洖绛�" v-model="topicobj.reply" > @@ -564,6 +594,18 @@ ></el-form-item> </el-row> <el-form-item label="鍒嗗��"> + <template #label> + 鍒嗗�� + <el-tooltip + class="item" + effect="light" + content="濉┖棰樺垎鏁板�肩敱璐熻矗浜哄憳鍦ㄩ棶鍗锋墜鏈哄悗鎵嬪姩璇勪环銆�" + placement="top-start" + > + <i class="el-icon-warning-outline"></i> + </el-tooltip> + <!-- 鍦ㄦ爣绛惧悗鎻掑叆绾㈣壊鏄熷彿 --> + </template> <el-input type="text" placeholder="璇疯緭鍏ラ�夐」鍒嗗��" @@ -664,83 +706,397 @@ custom-class="demo-drawer" size="50%" > - <div class="preview-left"> - <el-form - :model="queryParams" - ref="queryForm" - size="small" - :inline="true" - label-width="98px" - > - <el-form-item label="闂鏍囬" prop="scriptTopic"> - <el-input - v-model="queryParams.scriptTopic" - placeholder="璇疯緭鍏�" - clearable - style="width: 200px" - @keyup.enter.native="getaddtopiclist" - /> - </el-form-item> - - <el-form-item> - <el-button - type="primary" - icon="el-icon-search" - size="medium" - @click="getaddtopiclist" - >鎼滅储</el-button - > - <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" - >閲嶇疆</el-button - > - </el-form-item> - </el-form> - <el-table v-loading="loading" :data="userList"> - <el-table-column - label="鏍囬" - align="center" - key="scriptTopic" - prop="scriptTopic" - width="100" - /> - <el-table-column - label="闂鍐呭" - align="center" - key="scriptContent" - prop="scriptContent" - width="200" - :show-overflow-tooltip="true" - /> - <el-table-column - label="閫夐」鍐呭" - align="center" - key="targetoptions" - prop="targetoptions" - width="200" - :show-overflow-tooltip="true" - /> - - <el-table-column - label="鎿嶄綔" - align="center" - class-name="small-padding fixed-width" - > - <template slot-scope="scope"> - <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 + <div style="margin: 0 25px"> + <el-tabs v-model="activeName"> + <el-tab-pane label="棰樺簱閫夊彇" name="first"> + <div class="preview-left"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + label-width="98px" > - </template> - </el-table-column> - </el-table> - <pagination - v-show="total > 0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getaddtopiclist" - /> + <el-form-item label="闂鏍囬" prop="scriptTopic"> + <el-input + v-model="queryParams.scriptTopic" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="getaddtopiclist" + /> + </el-form-item> + <el-form-item label="棰樼洰绫诲瀷" prop="scriptTopic"> + <el-select + v-model="queryParams.scriptType" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="topicobjaa" + v-for="item in askvaluetype" + :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="getaddtopiclist" + >鎼滅储</el-button + > + <el-button + icon="el-icon-refresh" + size="medium" + @click="resetQuery" + >閲嶇疆</el-button + > + </el-form-item> + </el-form> + <el-table v-loading="loading" :data="userList"> + <el-table-column + label="鏍囬" + align="center" + key="scriptTopic" + prop="scriptTopic" + width="100" + /> + <el-table-column + label="闂鍐呭" + align="center" + key="scriptContent" + prop="scriptContent" + width="200" + :show-overflow-tooltip="true" + /> + <el-table-column + label="閫夐」鍐呭" + align="center" + key="targetoptions" + prop="targetoptions" + width="200" + :show-overflow-tooltip="true" + /> + + <el-table-column + label="鎿嶄綔" + align="center" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <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 + > + </template> + </el-table-column> + </el-table> + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getaddtopiclist" + /> + </div> + </el-tab-pane> + <el-tab-pane label="鎵嬪姩閰嶇疆" name="second"> + <div class="preview-left"> + <el-form + :inline="true" + :model="indexform" + class="demo-form-inline" + > + <div class="headline"> + 棰樼洰璁剧疆璇︽儏 + <span style="margin-left: 30px" + ><el-button type="primary" @click="Submittopicobj" + >淇濆瓨鏂板</el-button + ></span + > + </div> + <el-divider></el-divider> + <div> + <el-row :gutter="10"> + <el-col :span="12"> + <el-form-item label="棰樼洰鏍囬"> + <el-input + v-model="indexform.scriptTopic" + placeholder="璇疯緭鍏ラ鐩爣棰�" + ></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="棰樼洰寰楀垎"> + <el-input + v-model="indexform.score" + placeholder="璇疯緭鍏ュ垎鏁�" + ></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="10"> + <el-col :span="12"> + <el-form-item label="璇勪环绫诲瀷"> + <el-select + v-model="indexform.scoretype" + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + v-for="group in appraiselist" + :key="group.value" + :label="group.label" + :value="group.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="璇█"> + <el-select + v-model="indexform.language" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="topicobjaa" + v-for="item in languagelist" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="10"> + <el-col :span="12"> + <el-form-item label="鏄惁鍙敤"> + <el-radio-group v-model="indexform.isAvailable"> + <el-radio + v-for="(item, index) in usable" + :label="item.value" + >{{ item.label }}</el-radio + > + </el-radio-group> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏄惁蹇呭~"> + <el-radio-group v-model="indexform.ismandatory"> + <el-radio + v-for="(item, index) in required" + :label="item.value" + >{{ item.label }}</el-radio + > + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="10"> + <el-col :span="18" + ><el-form-item label="棰樼洰鍐呭"> + <el-input + style="width: 400px" + type="textarea" + v-model="indexform.scriptContent" + placeholder="璇蜂粠宸︿晶鍒楄〃閫夋嫨" + ></el-input> </el-form-item + ></el-col> + </el-row> + </div> + <div> + <el-form-item label="鎸囨爣鍚嶇О" prop="deptId"> + <el-input + v-model="indexform.targetname" + placeholder="璇疯緭鍏ユ寚鏍囧悕绉�" + maxlength="20" + /> + </el-form-item> + <el-form-item label="鎸囨爣鎻忚堪" prop="deptId"> + <el-input + v-model="indexform.targetdesc" + placeholder="璇疯緭鍏ユ寚鏍囨弿杩�" + maxlength="60" + /> + </el-form-item> + + <el-row> + <el-col :span="20"> + <el-form-item label="鍊肩被鍨�"> + <el-radio-group v-model="indexform.valueType"> + <el-radio :label="1">閫夐」</el-radio> + <el-radio :label="2">鏂囨湰</el-radio> + <el-radio :label="3">鏁板��</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="20"> + <el-form-item label="棰樼洰绫诲瀷"> + <el-radio-group v-model="indexform.scriptType"> + <el-radio :label="1">鍗曢��</el-radio> + <el-radio :label="2">澶氶��</el-radio> + <el-radio :label="4">闂瓟</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + </div> + <div class="topicxq" v-if="indexform.scriptType == 4"> + <el-row> + <el-col :span="20"> + <el-form-item label="鏀堕泦鍐呭"> + <el-input + style="width: 400px" + type="textarea" + v-model="indexform.value" + placeholder="闂鏀堕泦鍐呭" + ></el-input> + </el-form-item> + </el-col> + </el-row> + </div> + + <div v-else> + <div class="headline"> + <div class="basics"> + 閫夐」璁剧疆 + <span style="margin-left: 30px" + ><el-button type="primary" round @click="addoption" + >+鏂板</el-button + ></span + > + </div> + </div> + <el-divider></el-divider> + <div + class="topicxq" + v-for="item in indexform.svyLibTemplateTargetoptions" + v-if="item.isoperation != 3" + > + <el-row :gutter="10"> + <el-col :span="11" + ><el-form-item label="閫夐」鍚嶇О"> + <el-input + type="text" + placeholder="璇疯緭鍏ラ�夐」鍒嗗��" + v-model="item.optioncontent" + show-word-limit + > + </el-input> </el-form-item + ></el-col> + <el-col :span="11"> + <el-form-item + v-if="indexform.scoretype == 1" + label="鍒嗗��" + > + <el-input + type="text" + placeholder="璇疯緭鍏ラ�夐」鍒嗗��" + v-model="item.score" + show-word-limit + > + </el-input> + </el-form-item> + <el-form-item + v-else-if="indexform.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="indexform.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-col + :span="2" + :offsset="indexform.scoretype == 4 ? 11 : 0" + > + <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-radio-group v-model="item.isabnormal"> + <el-radio :label="1">鏄�</el-radio> + <el-radio :label="0">鍚�</el-radio> + </el-radio-group> + </el-form-item> + </el-row> + <el-row :gutter="10"> + <el-form-item label="閫変腑鎻愮ず"> + <el-input + style="width: 400px" + type="textarea" + autosize + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="item.prompt" + > + </el-input + ></el-form-item> + </el-row> + <el-form-item label="閫夐」鏂囦欢" prop="sickness"> + <div style="width: 40vw"> + <el-upload + class="upload-demo" + :action="uploadImgUrl" + :headers="headers" + accept=".jpg,.png,image/*" + :on-success="handleChange.bind(this, item)" + > + <el-button size="small" type="primary" + >鐐瑰嚮涓婁紶</el-button + > + </el-upload> + <div style="margin: 20px"> + <el-image + style="width: 100px; height: 100px" + :src="item.picturePath" + :preview-src-list="[...item.picturePath]" + > + </el-image> + </div> + </div> + </el-form-item> + </div> + </div> + </el-form> + </div> + </el-tab-pane> + </el-tabs> </div> </el-drawer> <!-- 娣诲姞閫傜敤鐤剧梾绐楀彛 --> @@ -798,6 +1154,7 @@ radio: "false", //鍗曢�夐閫変腑 radios: [], //澶氶�夐閫変腑 radioas: "", //濉┖棰樼瓟妗� + activeName: "first", dynamicTags: [], inputVisible: false, dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛 @@ -809,6 +1166,9 @@ svyTemplateLibScripts: [], tempDetpRelevances: [], svyLibTemplateTagList: [], + }, + indexform: { + svyLibTemplateTargetoptions: [], }, rules: {}, rulesa: {}, @@ -974,6 +1334,8 @@ item.icdname = item.icd10name; }); }); + } else { + this.ruleForm.isenable = "1"; } listDept(this.queryParams).then((response) => { @@ -986,7 +1348,6 @@ }, submitForm(formName) { this.$modal.loading("姝e湪涓婁紶鏁版嵁锛岃绋嶅��..."); - this.ruleForm.suitway = this.ruleForm.suitway.join(","); if (this.id) { @@ -995,17 +1356,17 @@ this.$modal.msgSuccess("淇敼鎴愬姛"); this.confirmillness(); this.$modal.closeLoading(); - this.$router.go(-1); }); } else { this.ruleForm.isoperation = 1; + this.ruleForm.version = this.ruleForm.version + ? this.ruleForm.version + : "1.0"; compileQtemplate(this.ruleForm).then((res) => { this.$modal.msgSuccess("鏂板鎴愬姛"); this.confirmillness(res.data); - this.$modal.closeLoading(); - this.$router.go(-1); }); } @@ -1013,10 +1374,8 @@ // 绉戝澶勭悊 Departmenttreatment() { this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); - console.log(this.tempDetpRelevanceslist); this.ruleForm.svyTemplateLibScripts = this.ruleForm.svyTemplateLibScripts.concat(this.delScriptVOList); - console.log(this.tempDetpRelevanceslist, "this.tempDetpRelevanceslist"); const result = this.tempDetpRelevanceslist.map( (subArr) => subArr[subArr.length - 1] ); @@ -1037,7 +1396,6 @@ this.ruleForm.tempDetpRelevances.forEach((item) => { const condition = result.some((obj) => obj === item.deptId); if (!condition) { - console.log(condition); const index = this.ruleForm.tempDetpRelevances.indexOf(item); this.ruleForm.tempDetpRelevances[index].delFlag = 1; } @@ -1132,6 +1490,13 @@ console.log(this.ruleForm.svyTemplateLibScripts, "搴忓墠鍊�"); this.ruleForm.svyTemplateLibScripts.forEach((item, index) => { item.sort = Number(index) + 1; + console.log(this.ruleForm.svyTemplateLibScripts.length, "length"); + + if (item.sort == this.ruleForm.svyTemplateLibScripts.length) { + item.nextScriptno = "宸叉槸鏈�鍚庝竴棰�"; + } else { + item.nextScriptno = item.sort + 1; + } if (item.svyLibTemplateTargetoptions) { item.svyLibTemplateTargetoptions.forEach((items) => { items.nextQuestion = Number(item.sort) + 1; @@ -1142,7 +1507,24 @@ }, // 淇敼棰樼洰淇℃伅 - Submittopicobj() {}, + Submittopicobj() { + this.$modal + .confirm( + '鏄惁纭鏂板鍚嶇О涓�"' + this.indexform.scriptTopic + '"鐨勯棶棰樻暟鎹紵' + ) + .then(() => { + this.indexform.isoperation = 1; + this.indexform.svyLibTemplateTargetoptions.forEach((item) => { + item.isoperation = 1; + }); + this.ruleForm.svyTemplateLibScripts.push(this.indexform); + this.indexform = { svyTemplateLibScripts: [] }; + this.drawer = false; + + this.sortFn(); + this.$modal.msgSuccess("棰樼洰鏂板鎴愬姛锛屼繚瀛樻ā鐗堝け鏁�"); + }); + }, // 鏂板鍙橀噺 addvariable() { this.variablelist.push({ @@ -1375,6 +1757,34 @@ console.log(arraysGreaterThan10, "绛涢�夐敊璇矾绾垮ぇ浜�13鍒�"); }, + // 鏂伴棶棰樻柊澧� + addoption() { + if (!this.indexform.svyLibTemplateTargetoptions) { + this.indexform.svyLibTemplateTargetoptions = []; + } + this.indexform.svyLibTemplateTargetoptions.push({ + score: "", + isoperation: 1, + }); + console.log(this.indexform.svyLibTemplateTargetoptions); + }, + // 閫夐」鏂囦欢涓婁紶 + handleChange(item, response, file, fileList) { + console.log(response); + if (response.code == 200) { + console.log(item); + let index = this.indexform.svyLibTemplateTargetoptions.findIndex( + (obj) => obj.optioncontent == item.optioncontent + ); + console.log(index); + this.indexform.svyLibTemplateTargetoptions[index].picturePath = + response.url; + console.log(this.indexform.svyLibTemplateTargetoptions[index]); + this.$forceUpdate(); + } else { + this.$message.error("鍥剧墖鎻掑叆澶辫触"); + } + }, }, }; </script> @@ -1439,6 +1849,14 @@ } } } +.headline { + display: flex; + justify-content: space-between; + font-size: 20px; + border-left: 3px solid #41a1be; + padding-left: 5px; + margin: 15px 0; +} .xinz-inf { font-size: 18px; white-space: nowrap; @@ -1478,7 +1896,7 @@ margin: 20px 0; display: flex; .presentation-left { - width: 50%; + width: 45%; // height: 500px; .button-textxg { color: #024df0; @@ -1498,7 +1916,7 @@ } } .presentation-right { - width: 50%; + width: 55%; max-height: 688px; padding: 0 20px; font-size: 18px; @@ -1518,11 +1936,22 @@ } } } +.topicxq { + background-color: #e2f5fc; + border-radius: 4px; + margin-top: 15px; + margin-left: 10%; + padding-left: 20px; + padding-top: 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); +} .custom-width { width: 100px; /* 璁剧疆瀹藉害鏍峰紡 */ } .el-select { - width: 40%; + width: 280px; } .el-cascader { -- Gitblit v1.9.3