From ad0ecacbc73d16c9b95b79ac3c82868cbff33e44 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期一, 05 八月 2024 16:17:21 +0800 Subject: [PATCH] 测试完成 --- src/views/knowledge/questionnaire/compilequer/index.vue | 990 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 680 insertions(+), 310 deletions(-) diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue index d8e9dbf..736a78f 100644 --- a/src/views/knowledge/questionnaire/compilequer/index.vue +++ b/src/views/knowledge/questionnaire/compilequer/index.vue @@ -39,28 +39,48 @@ label-width="100px" class="demo-ruleForm" > - <el-form-item label="闂嵎鍒嗙被" prop="region"> - <el-select - v-model="ruleForm.categoryid" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option-group - v-for="group in optionsclass" - :key="group.id" - :label="group.name" - > - <el-option - v-for="item in group.svyLibTitleCategoryList" - :key="item.id" - :label="item.name" - :value="item.id" + <el-row :gutter="10"> + <el-col :span="10"> + <el-form-item label="闂嵎鍒嗙被" prop="region"> + <el-select + v-model="ruleForm.categoryid" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" > - </el-option> - </el-option-group> - </el-select> - </el-form-item> + <el-option-group + v-for="group in optionsclass" + :key="group.id" + :label="group.name" + > + <el-option + v-for="item in group.svyLibTemplateCategoryList" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-option-group> + </el-select> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="璇勪环绫诲瀷"> + <el-select + v-model="ruleForm.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-row> <el-form-item label="闂嵎鏍囬" prop="name"> <div style="width: 30%"> <el-input v-model="ruleForm.svyname"></el-input> @@ -77,33 +97,18 @@ </el-input ></el-form-item> - <el-form-item label="鏂囦欢" prop="sickness"> - <div style="width: 40%"> - <el-upload - class="upload-demo" - action="https://jsonplaceholder.typicode.com/posts/" - :on-change="handleChange" - :file-list="fileList" - > - <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> - <div slot="tip" class="el-upload__tip"> - 鍙兘涓婁紶jpg/png/xsl鏂囦欢锛屼笖涓嶈秴杩�50mb - </div> - </el-upload> - </div> - </el-form-item> <el-row> <el-form-item label="鏍囩" prop="desc"> <div class="xinz-inf"> <el-tag - :key="tag" + :key="tag.tagname" type="success" v-for="tag in dynamicTags" closable :disable-transitions="false" @close="handleClosetag(tag)" > - {{ tag }} + {{ tag.tagname }} </el-tag> <el-select v-model="inputValue" @@ -111,6 +116,7 @@ @change="handleInputConfirm" filterable remote + allow-create reserve-keyword default-first-option :remote-method="remoteMethodtag" @@ -135,49 +141,24 @@ </div> </el-form-item> </el-row> - <el-row> + <div class="xinz-infs"> <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-tag + v-for="tag in displayedTags" + :key="tag.icdid" + type="warning" + :disable-transitions="false" + > + {{ tag.icdname }} + </el-tag> + <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> </el-form-item> - </el-row> + </div> + <div style="margin-left: 120px; margin-bottom: 10px"> + <el-button type="warning" @click="$refs.child.handleAddpatient()" + >鐤剧梾璇︽儏</el-button + > + </div> <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="鐗堟湰鍙�" prop="name"> @@ -267,41 +248,115 @@ <div v-if="Editprogress == 2"> <div class="leftvlue-jbxx">闂嵎棰樼洰璁剧疆</div> <el-divider></el-divider> - <div class="addtopic"> - <el-button - type="primary" - icon="el-icon-plus" - round - @click="getaddtopiclist" - >娣诲姞棰樼洰</el-button - > + <div style="display: flex; justify-content: space-between"> + <div> + <el-button + type="primary" + icon="el-icon-plus" + round + @click="getaddtopiclist" + >娣诲姞棰樼洰</el-button + > + <el-button + type="success" + icon="el-icon-edit-outline" + round + @click="Operateit = !Operateit" + >{{ !Operateit ? "缂栬緫棰樼洰" : "瀹屾暣淇℃伅灞曠ず" }}</el-button + > + </div> + <div style="display: flex"> + <span + style=" + width: 180px; + font-size: 20px; + font-weight: normal; + color: red; + " + >闂嵎鎬诲垎锛�</span + > + <el-input + v-model="ruleForm.scriptScore" + placeholder="璇疯緭鍏ュ垎鏁�" + ></el-input> + </div> </div> <div class="presentation"> - <div class="presentation-left"> + <div :class="Operateit ? 'presentation-left' : 'spresentation-left'"> <el-card class="box-card" style="min-height: 688px"> - <el-table v-loading="loading" :data="ruleForm.svyLibTopics"> + <el-table + v-loading="loading" + :data="ruleForm.svyTemplateLibScripts" + > <el-table-column label="搴忓彿" align="center" - key="guid" - prop="guid" + key="sort" + prop="sort" + width="50" /> <el-table-column - label="棰樼洰" + label="棰樼洰鏍囬" align="center" - key="script" - prop="script" + key="scriptTopic" + prop="scriptTopic" :show-overflow-tooltip="true" /> <el-table-column - label="涓昏鍐呭" + label="棰樺瀷" + align="center" + key="scriptType" + prop="scriptType" + :show-overflow-tooltip="true" + > + <template slot-scope="scope"> + <dict-tag + :options="askvaluetype" + :value="scope.row.scriptType" + /> + </template> + </el-table-column> + <el-table-column + v-if="!Operateit" + label="棰樼洰鍐呭" align="center" key="scriptContent" prop="scriptContent" :show-overflow-tooltip="true" /> + <el-table-column + v-if="!Operateit" + label="鎸囨爣鍚嶇О" + align="center" + key="targetname" + prop="targetname" + :show-overflow-tooltip="true" + /> + <el-table-column + v-if="!Operateit" + label="鏄惁蹇呭~" + align="center" + key="ismandatory" + prop="ismandatory" + :show-overflow-tooltip="true" + > + <template slot-scope="scope"> + <dict-tag + :options="required" + :value="scope.row.ismandatory" + /> + </template> + </el-table-column> + <el-table-column + label="涓嬮璺宠浆" + align="center" + key="nextScriptno" + prop="nextScriptno" + :show-overflow-tooltip="true" + /> <el-table-column + v-if="Operateit" label="鎿嶄綔" align="center" width="250" @@ -337,27 +392,32 @@ </el-table> </el-card> </div> - <div class="presentation-right"> + <div class="presentation-right" v-if="Operateit"> <el-card class="box-card"> <el-form :inline="true" :model="topicobj" class="demo-form-inline" > - <div class="headline"> - 棰樼洰璁剧疆璇︽儏 - <span style="margin-left: 30px" - ><el-button type="primary" @click="Submittopicobj" - >淇濆瓨</el-button - ></span - > - </div> - <el-form-item label="棰樼洰鏍囬"> - <el-input - v-model="topicobj.script" - placeholder="璇疯緭鍏ユ爣棰�" - ></el-input> - </el-form-item> + <div class="headline">棰樼洰璁剧疆璇︽儏</div> + <el-row :gutter="10"> + <el-col :span="12"> + <el-form-item label="棰樼洰鏍囬"> + <el-input + v-model="topicobj.scriptTopic" + placeholder="璇疯緭鍏ユ爣棰�" + ></el-input> </el-form-item + ></el-col> + <el-col :span="12"> + <el-form-item label="涓嬮璺宠浆" v-if="!topicobj.branchFlag"> + <el-input + v-model="topicobj.nextScriptno" + placeholder="璇疯緭鍏ラ鍙�" + ></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="10"> <el-col :span="12" ><el-form-item label="鏄惁蹇呭~"> @@ -390,75 +450,142 @@ </el-select> </el-form-item ></el-col> </el-row> - <div class="headline">閫夐」璁剧疆</div> - <div - class="topicxq" - v-for="item in topicobj.svyLibTopicoptions" - > - <el-row :gutter="10"> - <el-col :span="11" - ><el-form-item label="棰樺彿"> - <el-input - type="text" - placeholder="璇疯緭鍏�" - v-model="item.topicid" - show-word-limit - > - </el-input> </el-form-item - ></el-col> - <el-col :span="11" - ><el-form-item label="鍒嗗��"> - <el-input - type="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="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 label="涓嬮璺宠浆"> - <el-input - type="text" - placeholder="璇疯緭鍏ラ鍙�" - 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-row> + <el-col :span="12"> + <el-form-item + label="棰樼洰鍒嗗��" + v-if="topicobj.scoretype == 1" + > <el-input - style="width: 20vw" - type="textarea" - autosize - placeholder="璇疯緭鍏ュ唴瀹�" - v-model="item.prompt" + 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"> + <el-radio :label="1">鏄�</el-radio> + <el-radio :label="0">鍚�</el-radio> + </el-radio-group> + </el-form-item> + <div v-if="topicobj.scriptType != 3"> + <div class="headline">閫夐」璁剧疆</div> + <div + class="topicxq" + v-for="item in topicobj.svyLibTemplateTargetoptions" + > + <el-row :gutter="5"> + <el-col :span="16" + ><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="8"> + <el-form-item + v-if="topicobj.scoretype == 1" + label="鍒嗗��" + > + <el-input + class="custom-width" + type="text" + placeholder="璇疯緭鍏ラ�夐」鍒嗗��" + v-model="item.score" + show-word-limit + > + </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="20" + ><el-form-item label="涓嬮璺宠浆(搴忓彿)"> + <el-input + type="text" + placeholder="璇疯緭鍏ラ鍙�" + v-model="item.nextQuestion" + show-word-limit + > + </el-input> </el-form-item + ></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> + <el-row :gutter="10"> + <el-form-item label="閫夐」鏂囦欢" prop="sickness"> + <div style="width: 40vw"> + <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> + </el-row> + </div> + </div> + <div v-else> + <div class="topicxq"> + <el-row :gutter="10"> + <el-form-item label="绛旀"> + <el-input + style="width: 20vw" + type="textarea" + autosize + placeholder="姝ゅ鏀剧疆鎮h�呭洖绛�" + v-model="topicobj.reply" + > + </el-input + ></el-form-item> + </el-row> + <el-form-item label="鍒嗗��"> + <el-input + type="text" + placeholder="璇疯緭鍏ラ�夐」鍒嗗��" + v-model="topicobj.score" + show-word-limit > - </el-input - ></el-form-item> - </el-row> + </el-input> + </el-form-item> + </div> </div> </el-form> </el-card> @@ -480,42 +607,57 @@ <el-divider></el-divider> <div class="preview-left"> <!-- 鍗曢�� --> - <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> + <div + class="scriptTopic-dev" + v-for="item in ruleForm.svyTemplateLibScripts" + :key="item.sort" + v-if="item.scriptType == 1" + > <div class="dev-text"> - {{ item.idd }}銆乕鍗曢�塢<span>{{ item.wssd }}</span> + {{ item.sort }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span> </div> <div class="dev-xx"> - <el-radio-group v-model="radio"> + <el-radio-group v-model="item.remark"> <el-radio - v-for="(items, index) in item.sdadd" + v-for="(items, index) in item.svyLibTemplateTargetoptions" :key="index" :label="index" - >{{ items }}</el-radio + >{{ items.optioncontent }}</el-radio > </el-radio-group> </div> </div> <!-- 澶氶�� --> - <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> + <div + class="scriptTopic-dev" + v-for="item in ruleForm.svyTemplateLibScripts" + :key="item.sort" + v-if="item.scriptType == 2" + > <div class="dev-text"> - {{ item.idd }}銆乕澶氶�塢<span>{{ item.wssd }}</span> + {{ item.sort }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span> </div> <div class="dev-xx"> - <el-checkbox-group v-model="radios"> + <el-checkbox-group v-model="qremark"> <el-checkbox - v-for="(items, index) in item.sdadd" + v-for="(items, index) in item.svyLibTemplateTargetoptions" :key="index" :label="index" > - {{ items }} + {{ items.optioncontent }} </el-checkbox> </el-checkbox-group> </div> </div> <!-- 濉┖ --> - <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> + <div + class="scriptTopic-dev" + v-for="item in ruleForm.svyTemplateLibScripts" + :key="item.sort" + v-if="item.scriptType == 3" + > <div class="dev-text"> - {{ item.idd }}銆乕濉┖]<span>{{ item.wssd }}</span> + {{ item.sort }}銆乕濉┖]<span>{{ item.scriptContent }}</span> </div> <div class="dev-xx"> <el-input placeholder="璇疯緭鍏ョ瓟妗�" v-model="radioas" clearable> @@ -528,12 +670,12 @@ <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button> </div> </div> - <!-- 棰勮妯$増寮圭獥 --> + <!-- 娣诲姞棰樼洰寮圭獥 --> <el-drawer title="娣诲姞棰樼洰" :visible.sync="drawer" custom-class="demo-drawer" - width="50%" + size="50%" > <div class="preview-left"> <el-form @@ -543,9 +685,9 @@ :inline="true" label-width="98px" > - <el-form-item label="闂鏍囬" prop="script"> + <el-form-item label="闂鏍囬" prop="scriptTopic"> <el-input - v-model="queryParams.script" + v-model="queryParams.scriptTopic" placeholder="璇疯緭鍏�" clearable style="width: 200px" @@ -570,8 +712,8 @@ <el-table-column label="鏍囬" align="center" - key="script" - prop="script" + key="scriptTopic" + prop="scriptTopic" width="100" /> <el-table-column @@ -579,6 +721,14 @@ 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" /> @@ -597,8 +747,23 @@ </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-drawer> + <!-- 娣诲姞閫傜敤鐤剧梾绐楀彛 --> + <Optional-Form + ref="child" + :dialogVisiblepatient="dialogVisiblepatient" + :overallCase="illnesslist" + @addoption="dialogVisiblepatient = false" + @kkoption="dialogVisiblepatient = true" + /> </div> </template> @@ -610,7 +775,7 @@ getQtemplateclassify, delQtemplateclassify, addQtemplateclassify, - getQtemplatelist, + getQtemplateobj, compileQtemplate, Qtemplateinfo, compileissue, @@ -624,10 +789,20 @@ illnesslistget, getillness, } from "@/api/AiCentre/index"; +import OptionalForm from "@/components/OptionalForm"; //姝e垯缁勪欢 +import { getToken } from "@/utils/auth"; export default { + name: "Qcompilequer", + + components: { OptionalForm }, + data() { return { + headers: { + Authorization: "Bearer " + getToken(), + }, + uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", sidecolumnrabs: "left", //鏂瑰悜 Editprogress: 1, //缂栬緫杩涘害 currentVersion: "1.2.3", //褰撳墠鐗堟湰 @@ -638,18 +813,25 @@ radioas: "", //濉┖棰樼瓟妗� dynamicTags: [], inputVisible: false, + dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛 inputValue: "", topicobj: {}, // 鎬绘潯鏁� total: 1, - ruleForm: {}, + ruleForm: { + svyTemplateLibScripts: [], + tempDetpRelevances: [], + svyLibTemplateTagList: [], + }, rules: {}, rulesa: {}, optionsclass: [], //鍒嗙被鍒楄〃 optionlist: [ - { value: "topic", table: "topic" }, - { value: "topic", table: "topic" }, + { value: "scriptTopic", table: "scriptTopic" }, + { value: "scriptTopic", table: "scriptTopic" }, ], + + appraiselist: [], fileList: [ { @@ -684,11 +866,13 @@ themelist: [], languagelist: [], courtyardlist: [], + askvaluetype: [], precedencetype: [], inputValueillness: "", inputVisible: false, inputVisibleillness: false, illnessVisible: false, //鎸囨爣鐤剧梾寮规 + Operateit: true, deptOptions: [], optionsillness: [], delScriptVOList: [], @@ -697,14 +881,39 @@ tempDetpRelevanceslist: [], optionstag: [], valuetype: [], - usable: [], - required: [], + qremark: [], + 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" }, + ], + ], }; }, @@ -717,6 +926,24 @@ this.required = store.getters.required; this.valuetype = store.getters.valuetype; this.courtyardlist = store.getters.courtyardlist; + this.askvaluetype = store.getters.askvaluetype; + this.appraiselist = store.getters.appraiselist; + + // this.test(); + }, + computed: { + displayedTags() { + // 杩斿洖鍓�10涓猼ag + return this.illnesslist.slice(0, 10); + }, + hasMore() { + // 鍒ゆ柇鏄惁鏈夋洿澶氱殑tag + return this.illnesslist.length > 10; + }, + remaining() { + // 璁$畻鍓╀綑鐨則ag鏁伴噺 + return this.illnesslist.length - 10; + }, }, methods: { @@ -724,16 +951,19 @@ getIndexInArray(arr, obj) { return arr.indexOf(obj); }, + processElement(element) { + return { ...element, isoperation: 1 }; + }, // 閫掑綊鎵佸钩鍖� flattenArray(arr) { let result = []; arr.forEach((item) => { result.push(item); - if (item.svyLibTitleCategoryList) { + if (item.svyLibTemplateCategoryList) { result = result.concat( - this.flattenArray(item.svyLibTitleCategoryList) + this.flattenArray(item.svyLibTemplateCategoryList) ); - delete item.svyLibTitleCategoryList; + delete item.svyLibTemplateCategoryList; } }); return result; @@ -742,45 +972,53 @@ // 鑾峰彇鏁版嵁 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); - }); - getillnesslist({ - pageNum: 1, - pageSize: 100, - }).then((response) => { - this.optionsillness = response.rows; - }); - getillness({ outid: this.id, type: 5 }).then((res) => { - this.illnesslist = res.rows; - }); + if (this.id) { + getQtemplateobj({ svyid: this.id }).then((res) => { + this.ruleForm = res.rows[0]; + this.dynamicTags = this.ruleForm.svyLibTemplateTagList.map( + this.processElement + ); + this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); + this.ruleForm.suitway = this.ruleForm.suitway.split(","); + }); + getillness({ outid: this.id, type: 5 }).then((res) => { + this.illnesslist = res.rows; + this.illnesslist.forEach((item) => { + item.icdname = item.icd10name; + }); + }); + } + listDept(this.queryParams).then((response) => { this.deptList = this.handleTree(response.data, "deptId"); }); // 鍒嗙被 getQtemplateclassify({}).then((res) => { - // this.optionsclass = this.flattenArray(res.rows); this.optionsclass = res.rows; }); }, submitForm(formName) { - this.ruleForm.labelInfo = this.dynamicTags.join(","); + this.$modal.loading("姝e湪涓婁紶鏁版嵁锛岃绋嶅��..."); + this.ruleForm.suitway = this.ruleForm.suitway.join(","); 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); }); } @@ -789,14 +1027,12 @@ Departmenttreatment() { this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); console.log(this.tempDetpRelevanceslist); - this.ruleForm.svyLibTopics = this.ruleForm.svyLibTopics.concat( - this.delScriptVOList - ); - console.log(this.ruleForm.svyLibTopics, "this.ruleForm.svyLibTopics"); + 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] ); - console.log(result, "result"); // id鏁扮粍鏌ユ暟缁勫璞� result.forEach((item) => { const condition = this.ruleForm.tempDetpRelevances.some( @@ -810,7 +1046,6 @@ }); } }); - console.log(this.ruleForm.tempDetpRelevances); // 鏁扮粍瀵硅薄鏌d鏁扮粍 this.ruleForm.tempDetpRelevances.forEach((item) => { const condition = result.some((obj) => obj === item.deptId); @@ -820,7 +1055,6 @@ this.ruleForm.tempDetpRelevances[index].delFlag = 1; } }); - console.log(this.ruleForm.tempDetpRelevances); setTimeout(() => { this.submitForm(); }, 1000); @@ -855,6 +1089,7 @@ // 鑾峰彇棰樼洰鍒楄〃 getaddtopiclist() { this.drawer = true; + this.queryParams.scoretype = this.ruleForm.scoreType; getissuelist(this.queryParams).then((res) => { this.loading = false; this.userList = res.rows; @@ -865,48 +1100,65 @@ // 鏂板棰樼洰 addtopic(row) { row.isoperation = 1; - row.svyLibTopicoptions.forEach((item) => { + console.log(row, "row"); + row.svyLibScriptOptions.forEach((item) => { item.isoperation = 1; }); - this.ruleForm.svyLibTopics.push(row); + row.svyLibTemplateTargetoptions = row.svyLibScriptOptions; + this.ruleForm.svyTemplateLibScripts.push(row); + this.sortFn(); + this.$modal.msgSuccess("鏂板鎴愬姛"); }, handleDelete(row) { - let index = this.ruleForm.svyLibTopics.indexOf(row); - this.ruleForm.svyLibTopics.splice(index, 1); + let index = this.ruleForm.svyTemplateLibScripts.indexOf(row); + this.ruleForm.svyTemplateLibScripts.splice(index, 1); row.isoperation = 3; this.delScriptVOList.push(row); this.sortFn(); }, handleUpdate(row) { - console.log(row); this.topicobj = row; + this.radioas = ""; + console.log(this.topicobj, "鐪嬫暟鎹�"); // getissuelist({ svyid: row.svyid }).then((res) => { // }); }, syioption(row) { - const index = this.getIndexInArray(this.ruleForm.svyLibTopics, row); - const item = this.ruleForm.svyLibTopics.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓� - this.ruleForm.svyLibTopics.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣� + const index = this.getIndexInArray( + this.ruleForm.svyTemplateLibScripts, + row + ); + const item = this.ruleForm.svyTemplateLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓� + this.ruleForm.svyTemplateLibScripts.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣� this.sortFn(); }, xiayioption(row) { - const index = this.getIndexInArray(this.ruleForm.svyLibTopics, row); - const item = this.ruleForm.svyLibTopics.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓� - this.ruleForm.svyLibTopics.splice(index + 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣� + const index = this.getIndexInArray( + this.ruleForm.svyTemplateLibScripts, + row + ); + const item = this.ruleForm.svyTemplateLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓� + this.ruleForm.svyTemplateLibScripts.splice(index + 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣� this.sortFn(); }, sortFn() { - this.ruleForm.svyLibTopics = this.ruleForm.svyLibTopics.map( - (item, index) => { - return { - guid: index + 1, - svyid: item.svyid, - script: item.script, - scriptContent: item.scriptContent, - }; + 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; } - ); - console.log(this.ruleForm.svyLibTopics); + if (item.svyLibTemplateTargetoptions) { + item.svyLibTemplateTargetoptions.forEach((items) => { + items.nextQuestion = Number(item.sort) + 1; + }); + } + }); + console.log(this.ruleForm.svyTemplateLibScripts); }, // 淇敼棰樼洰淇℃伅 @@ -927,10 +1179,7 @@ console.log("鏈壘鍒拌瀵硅薄"); } }, - // 鎺у埗鏂囦欢 - handleChange(file, fileList) { - this.fileList = fileList.slice(-3); - }, + // 鏍囩----------------- gettabList() { const tagqueryParams = { @@ -946,7 +1195,11 @@ 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.svyLibTemplateTagList[lindex].delFlag = 1; + // this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3; }, handleInputConfirm() { @@ -968,9 +1221,9 @@ isoperation: 1, }; } - // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue); + this.ruleForm.svyLibTemplateTagList.push(tagvalue); // this.dynamicTags.push(tagvalue); - this.dynamicTags.push(tagvalue.tagname); + this.dynamicTags.push(tagvalue); }); } this.inputVisible = false; @@ -992,57 +1245,22 @@ showInput() { this.inputVisible = true; }, - // 鐤剧梾----------------------- - - 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() { + // 淇濆瓨鐤剧梾 + confirmillness(guid) { this.illnesslist.forEach((item, index) => { + if (guid) { + item.outid = guid; + } else { + console.log(this.ruleForm); + item.outid = this.ruleForm.svyid; + } + item.icd10name = item.icdname; + item.icd10code = item.icdcode; + item.type = 5; if (!item.id) { addtargetillness(item).then((res) => {}); } }); - if (this.illnesslistapi.length) { - deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); - } this.illnessVisible = false; this.$modal.msgSuccess("缂栬緫鎴愬姛"); }, @@ -1054,6 +1272,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> @@ -1063,8 +1404,7 @@ // display: flex; } .sidecolumn { - margin: 20px; - margin-bottom: 0; + margin: 10px 20px 0 20px; padding: 20px; background: #edf1f7; border: 1px solid #dcdfe6; @@ -1078,6 +1418,8 @@ // margin-top: 20px; margin: 20px; padding: 30px; + padding-top: 5px; + margin-top: 10px; background: #ffff; border: 1px solid #dcdfe6; -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), @@ -1109,7 +1451,7 @@ 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 { + .scriptTopic-dev { margin-bottom: 25px; font-size: 20px !important; .dev-text { @@ -1141,6 +1483,14 @@ vertical-align: bottom; } } +.xinz-infs { + font-size: 18px; + line-height: 48px; + + .el-tag + .el-tag { + margin-left: 10px; + } +} .addtopic { margin-top: 30px; } @@ -1148,7 +1498,17 @@ margin: 20px 0; display: flex; .presentation-left { - width: 50%; + width: 45%; + // height: 500px; + .button-textxg { + color: #024df0; + } + .button-textsc { + color: #f52727; + } + } + .spresentation-left { + width: 100%; // height: 500px; .button-textxg { color: #024df0; @@ -1158,7 +1518,7 @@ } } .presentation-right { - width: 50%; + width: 55%; max-height: 688px; padding: 0 20px; font-size: 18px; @@ -1177,6 +1537,16 @@ padding-top: 15px; } } +} +.custom-width { + width: 100px; /* 璁剧疆瀹藉害鏍峰紡 */ +} +.el-select { + width: 40%; +} + +.el-cascader { + width: 40%; } ::v-deep .addtopic-input { input { @@ -1204,7 +1574,7 @@ width: 22px; height: 22px; } -// ::v-deep.topic-dev.el-radio__label { +// ::v-deep.scriptTopic-dev.el-radio__label { // font-size: 24px; // } ::v-deep.el-radio-group { -- Gitblit v1.9.3