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/knowledge/questionnaire/compilequer/index.vue | 1191 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 830 insertions(+), 361 deletions(-) diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue index 556466a..bcfe6f8 100644 --- a/src/views/knowledge/questionnaire/compilequer/index.vue +++ b/src/views/knowledge/questionnaire/compilequer/index.vue @@ -2,14 +2,27 @@ <div class="Questionnairemanagement"> <!-- 宸︿晶鏍� --> <div class="sidecolumn"> - <div style="height: 400px"> - <el-steps direction="vertical" :active="Editprogress"> - <el-step title="鍩虹淇℃伅"></el-step> - <el-step title="闂嵎棰樼洰"></el-step> - <el-step - title="闂嵎棰勮" - description="鏌ョ湅闂嵎棰勮锛屽彲瀵煎嚭PDF" - ></el-step> + <div> + <el-steps finish-status="success" :active="Editprogress" simple> + <el-step> + <template slot="title"> + <span style="cursor: pointer" @click="Editprogress = 1" + >鍩虹淇℃伅</span + > + </template> + </el-step> + <el-step> + <template slot="title"> + <span style="cursor: pointer" @click="Editprogress = 2" + >闂嵎棰樼洰</span + > + </template> + </el-step> + <el-step description="鏌ョ湅闂嵎棰勮锛屽彲瀵煎嚭PDF"> + <span slot="title" style="cursor: pointer" @click="Editprogress = 3" + >闂嵎棰勮</span + > + </el-step> </el-steps> </div> </div> @@ -17,9 +30,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" @@ -28,53 +39,63 @@ label-width="100px" class="demo-ruleForm" > - <el-form-item label="闂嵎鍒嗙被" prop="region"> - <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-form-item> + <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-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.name"></el-input> + <el-input v-model="ruleForm.svyname"></el-input> </div> </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-col> - <el-col :span="8" :offset="1"> - <el-input v-model="item.value"></el-input> - </el-col> - <el-col :span="4" :offset="1"> - <el-button - type="success" - icon="el-icon-plus" - circle - @click="addvariable(item)" - ></el-button> - <el-button - type="danger" - icon="el-icon-delete" - circle - @click="delvariable(item)" - ></el-button> - </el-col> - </el-row> - </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="sickness"> <div style="width: 40%"> @@ -91,61 +112,108 @@ </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" + type="success" + v-for="tag in dynamicTags" + closable + :disable-transitions="false" + @close="handleClosetag(tag)" + > + {{ tag }} + </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 placeholder="璇烽�夋嫨鍒嗙被" > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in usable" :key="item.value" :label="item.label" :value="item.value" @@ -156,7 +224,7 @@ </el-row> <el-form-item label="闂嵎鏂瑰紡" prop="region"> <el-select - v-model="ruleForm.way" + v-model="ruleForm.suitway" size="medium" multiple filterable @@ -164,7 +232,7 @@ > <el-option class="ruleFormaa" - v-for="item in xjxsoptions" + v-for="item in mode" :key="item.value" :label="item.label" :value="item.value" @@ -172,65 +240,44 @@ </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" + v-model="ruleForm.campus" size="medium" filterable placeholder="璇烽�夋嫨鍒嗙被" > <el-option class="ruleFormaa" - v-for="item in options" - :key="item.value" + v-for="item in courtyardlist" + :key="item.label" :label="item.label" - :value="item.value" + :value="item.label" > </el-option> </el-select> </el-form-item> <el-form-item label="閫傜敤绉戝" prop="region"> - <el-select - v-model="ruleForm.administrative" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨鍒嗙被" + <el-cascader + v-model="tempDetpRelevanceslist" + :options="deptList" + :props="props" + :show-all-levels="false" + clearable > - <el-option - class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> + <template slot-scope="{ node, data }"> + <span>{{ data.deptName }}</span> + <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> + </template> + </el-cascader> </el-form-item> <el-form-item> <el-button type="success" @click="nextstep('ruleForm')" >涓嬩竴姝�</el-button > <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button> - <el-button @click="submitForm('ruleForm')" + <el-button @click="Departmenttreatment('ruleForm')" >淇濆瓨闂嵎鍩虹淇℃伅</el-button > </el-form-item> @@ -240,72 +287,92 @@ <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="drawer = true" - >娣诲姞棰樼洰</el-button - > + <div style="display: flex; justify-content: space-between"> + <div> + <el-button + type="primary" + icon="el-icon-plus" + round + @click="getaddtopiclist" + >娣诲姞棰樼洰</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"> <el-card class="box-card" style="min-height: 688px"> - <el-table v-loading="loading" :data="userList"> + <el-table v-loading="loading" :data="ruleForm.svyLibScripts"> <el-table-column label="搴忓彿" align="center" - key="userid" - prop="userid" + key="sort" + prop="sort" /> <el-table-column - label="棰樼洰" + label="棰樼洰鏍囬" align="center" - key="userName" - prop="userName" + key="topic" + prop="topic" :show-overflow-tooltip="true" /> <el-table-column - label="涓昏鍐呭" + label="棰樼洰鍐呭" align="center" - key="maincontent" - prop="maincontent" + key="script" + prop="script" :show-overflow-tooltip="true" /> <el-table-column label="鎿嶄綔" align="center" - width="200" + width="250" class-name="small-padding fixed-width" > <template slot-scope="scope"> <el-button icon="el-icon-edit" type="primary" - round + circle @click="handleUpdate(scope.row)" - >淇敼</el-button - > + ></el-button> <el-button type="danger" icon="el-icon-delete" circle @click="handleDelete(scope.row)" ></el-button> + <el-button + @click="syioption(scope.row)" + type="success" + icon="el-icon-top" + circle + ></el-button> + <el-button + @click="xiayioption(scope.row)" + type="success" + icon="el-icon-bottom" + circle + ></el-button> </template> </el-table-column> </el-table> </el-card> - - <pagination - v-show="total > 0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> </div> <div class="presentation-right"> <el-card class="box-card"> @@ -324,72 +391,121 @@ </div> <el-form-item label="棰樼洰鏍囬"> <el-input - v-model="topicobj.title" + v-model="topicobj.topic" placeholder="璇疯緭鍏ユ爣棰�" ></el-input> </el-form-item> <el-row :gutter="10"> <el-col :span="12" - ><el-form-item label="鏄惁蹇呯瓟"> - <el-radio-group v-model="topicobj.resource"> - <el-radio label="鏄�"></el-radio> - <el-radio label="鍚�"></el-radio> - </el-radio-group> </el-form-item + ><el-form-item label="鏄惁蹇呭~"> + <el-select + v-model="topicobj.ismandatory" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in required" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item ></el-col> <el-col :span="12" - ><el-form-item label="鏄惁闅愯棌"> - <el-radio-group v-model="topicobj.resourcea"> - <el-radio label="鏄�"></el-radio> - <el-radio label="鍚�"></el-radio> - </el-radio-group> </el-form-item + ><el-form-item label="鏄惁鍙敤"> + <el-select + v-model="topicobj.isavailable" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in usable" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item ></el-col> </el-row> <div class="headline">閫夐」璁剧疆</div> - <div class="topicxq" v-for="item in 2"> + <div + class="topicxq" + v-for="item in topicobj.svyLibTemplateTargetoptions" + > <el-row :gutter="10"> - <el-col :span="12" + <el-col :span="11"> + <el-form-item v-if="topicobj.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="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" ><el-form-item label="閫夐」"> <el-input type="text" placeholder="璇疯緭鍏ラ�夐」" - v-model="text" + v-model="item.optioncontent" show-word-limit > </el-input> </el-form-item ></el-col> - <el-col :span="12" - ><el-form-item label="鍒嗗��"> - <el-input - type="text" - placeholder="璇疯緭鍏ュ垎鍊�" - v-model="text" - 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-input - type="text" - placeholder="璇疯緭鍏ュ唴瀹�" - v-model="text" - maxlength="10" - 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.nextQuestion" 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> @@ -402,7 +518,9 @@ > <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button> <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button> - <el-button @click="Saveproblem('ruleForm')">淇濆瓨棰樼洰鏁版嵁</el-button> + <el-button @click="Departmenttreatment('ruleForm')" + >淇濆瓨棰樼洰鏁版嵁</el-button + > </div> <!-- 闂嵎棰勮 --> <div v-if="Editprogress == 3"> @@ -463,7 +581,7 @@ title="娣诲姞棰樼洰" :visible.sync="drawer" custom-class="demo-drawer" - width="50%" + size="50%" > <div class="preview-left"> <el-form @@ -473,39 +591,22 @@ :inline="true" label-width="98px" > - <el-form-item label="鏍囬" prop="userName"> + <el-form-item label="闂鏍囬" prop="topic"> <el-input - v-model="queryParams.userName" + v-model="queryParams.topic" placeholder="璇疯緭鍏�" clearable style="width: 200px" - @keyup.enter.native="handleQuery" + @keyup.enter.native="getaddtopiclist" /> </el-form-item> - <el-form-item label="涓婚" prop="sickness"> - <el-select - v-model="ruleForm.classify" - size="medium" - 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> <el-button type="primary" icon="el-icon-search" size="medium" - @click="handleQuery" + @click="getaddtopiclist" >鎼滅储</el-button > <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" @@ -517,15 +618,15 @@ <el-table-column label="鏍囬" align="center" - key="userid" - prop="userid" + key="topic" + prop="topic" width="100" /> <el-table-column label="闂鍐呭" align="center" - key="userName" - prop="userName" + key="script" + prop="script" width="200" :show-overflow-tooltip="true" /> @@ -536,10 +637,7 @@ class-name="small-padding fixed-width" > <template slot-scope="scope"> - <el-button - size="medium" - type="text" - @click="handleUpdate(scope.row)" + <el-button size="medium" type="text" @click="addtopic(scope.row)" ><span class="button-textxg" ><i class="el-icon-circle-plus-outline"></i>娣诲姞</span ></el-button @@ -547,6 +645,13 @@ </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> </div> @@ -554,53 +659,58 @@ <script> import { listtag } from "@/api/system/label"; +import { listDept } from "@/api/system/dept"; +import store from "@/store"; +import { + getQtemplateclassify, + delQtemplateclassify, + addQtemplateclassify, + getQtemplatelist, + compileQtemplate, + Qtemplateinfo, + compileissue, + delQtemplateinfo, + Followupinfo, + issueinfo, + getissuelist, + deltargetillness, + addtargetillness, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; export default { data() { return { sidecolumnrabs: "left", //鏂瑰悜 - Editprogress: 2, //缂栬緫杩涘害 + Editprogress: 1, //缂栬緫杩涘害 currentVersion: "1.2.3", //褰撳墠鐗堟湰 loading: false, // 閬僵灞� drawer: false, //鎺у埗灞曞紑 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: { svyLibScripts: [], tempDetpRelevances: [] }, rules: {}, rulesa: {}, - optionstag:[], - xjxsoptions: [ - { - value: "閫夐」1", - label: "鍥炬枃", - }, - { - value: "閫夐」2", - label: "瑙嗛", - }, - { - value: "閫夐」3", - label: "闊抽", - }, + optionsclass: [], //鍒嗙被鍒楄〃 + optionlist: [ + { value: "topic", table: "topic" }, + { value: "topic", table: "topic" }, ], + appraiselist: [ + { label: "鍒嗘暟", value: "1" }, + { label: "ABC绛夌骇", value: "2" }, + { label: "浼樿壇绛夌骇", value: "3" }, + ], + fileList: [ { name: "food.jpeg", @@ -611,24 +721,7 @@ url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", }, ], - options: [ - { - value: "閫夐」1", - label: "鐤剧梾闂嵎", - }, - { - value: "閫夐」2", - label: "鍏ラ櫌闂嵎", - }, - { - value: "閫夐」3", - label: "鎵嬫湳闂嵎", - }, - { - value: "閫夐」4", - label: "鎶ょ悊闂嵎", - }, - ], + variablelist: [ { variable: "paitent", @@ -645,54 +738,185 @@ ], addvalue: "娣诲姞棰樼洰", // 棰樼洰琛ㄦ牸鏁版嵁 - userList: [ - { - userid: "1", - userName: "涓�鍙烽棶鍗�", - }, - { - userid: "2", - userName: "浜屽彿闂嵎", - }, - { - userid: "3", - userName: "涓夊彿闂嵎", - }, - { - userid: "4", - userName: "鍥涘彿闂嵎", - }, + userList: [], + deptList: [], + props: { multiple: true, value: "deptId", label: "deptName" }, + themelist: [], + languagelist: [], + courtyardlist: [], + precedencetype: [], + inputValueillness: "", + inputVisible: false, + inputVisibleillness: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 + deptOptions: [], + optionsillness: [], + delScriptVOList: [], + illnesslistapi: [], + illnesslist: [], + tempDetpRelevanceslist: [], + optionstag: [], + valuetype: [], + usable: [ + { value: "0", label: "鍙敤" }, + { value: "1", label: "鍋滅敤" }, ], + required: [ + { value: "1", label: "蹇呭~" }, + { value: "2", label: "涓嶅繀濉�" }, + ], + mode: [], //鏂瑰紡 // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, pageSize: 10, - userName: undefined, - phonenumber: undefined, - status: undefined, - deptId: undefined, - IDnumber: undefined, }, + 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" }, + ], + ], }; }, created() { this.gettabList(); - + this.getissueinfo(); + this.mode = store.getters.Askmode; + this.languagelist = store.getters.languagelist; + this.usable = store.getters.usable; + this.required = store.getters.required; + this.valuetype = store.getters.valuetype; + this.courtyardlist = store.getters.courtyardlist; + this.test(); }, 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); + }, + // 閫掑綊鎵佸钩鍖� + flattenArray(arr) { + let result = []; + arr.forEach((item) => { + result.push(item); + if (item.svyLibTemplateCategoryList) { + result = result.concat( + this.flattenArray(item.svyLibTemplateCategoryList) + ); + delete item.svyLibTemplateCategoryList; } }); + return result; + }, + // ----------------------------- + // 鑾峰彇鏁版嵁 + getissueinfo() { + this.id = this.$route.query.id; + 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; + }); + 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.$modal.loading("姝e湪涓婁紶鏁版嵁锛岃绋嶅��..."); + + this.ruleForm.labelInfo = this.dynamicTags.join(","); + this.ruleForm.suitway = this.ruleForm.suitway.join(","); + + if (this.id) { + this.ruleForm.isoperation = 2; + 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((res) => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.confirmillness(res.data); + + this.$modal.closeLoading(); + + this.$router.go(-1); + }); + } + }, + // 绉戝澶勭悊 + Departmenttreatment() { + this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); + console.log(this.tempDetpRelevanceslist); + 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] + ); + // id鏁扮粍鏌ユ暟缁勫璞� + result.forEach((item) => { + const condition = this.ruleForm.tempDetpRelevances.some( + (obj) => obj.deptId === item + ); + if (!condition) { + listDept({ deptId: item }).then((res) => { + console.log(res.data[0]); + res.data[0].type = 2; + this.ruleForm.tempDetpRelevances.push(res.data[0]); + }); + } + }); + // 鏁扮粍瀵硅薄鏌d鏁扮粍 + 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; + } + }); + setTimeout(() => { + this.submitForm(); + }, 1000); }, // 涓嬩竴姝� nextstep() { @@ -706,35 +930,74 @@ }, // 鍏抽棴 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: "宸插彇娑�", + }); }); }, - // 淇濆瓨棰樼洰淇℃伅 - Saveproblem() {}, - /** 鏌ヨ棰樼洰鍒楄〃 */ - getList() { - // this.loading = true; - listUser().then((response) => { - console.log(response); - // this.userList = response.data; - // this.total = response.total; - // this.loading = false; + // 鑾峰彇棰樼洰鍒楄〃 + getaddtopiclist() { + this.drawer = true; + this.queryParams.scoretype = this.ruleForm.scoreType; + getissuelist(this.queryParams).then((res) => { + this.loading = false; + this.userList = res.rows; + this.total = res.total; console.log(this.userList); }); - // const { rows } = await listUser(); - // console.log(rows); - // this.list = rows; }, + // 鏂板棰樼洰 + addtopic(row) { + row.isoperation = 1; + row.svyLibScriptOptions.forEach((item) => { + item.isoperation = 1; + }); + row.svyLibTemplateTargetoptions = row.svyLibScriptOptions; + this.ruleForm.svyLibScripts.push(row); + this.$modal.msgSuccess("鏂板鎴愬姛"); + }, + handleDelete(row) { + let index = this.ruleForm.svyLibScripts.indexOf(row); + this.ruleForm.svyLibScripts.splice(index, 1); + row.isoperation = 3; + this.delScriptVOList.push(row); + this.sortFn(); + }, + handleUpdate(row) { + console.log(row); + this.topicobj = row; + // getissuelist({ svyid: row.svyid }).then((res) => { + // }); + }, + syioption(row) { + const index = this.getIndexInArray(this.ruleForm.svyLibScripts, row); + const item = this.ruleForm.svyLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓� + this.ruleForm.svyLibScripts.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣� + this.sortFn(); + }, + xiayioption(row) { + const index = this.getIndexInArray(this.ruleForm.svyLibScripts, row); + const item = this.ruleForm.svyLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓� + this.ruleForm.svyLibScripts.splice(index + 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣� + this.sortFn(); + }, + sortFn() { + this.ruleForm.svyLibScripts.forEach((item, index) => { + item.sort = index + 1; + }); + console.log(this.ruleForm.svyLibScripts); + }, + // 淇敼棰樼洰淇℃伅 Submittopicobj() {}, // 鏂板鍙橀噺 @@ -758,8 +1021,7 @@ this.fileList = fileList.slice(-3); }, // 鏍囩----------------- - /** 鏌ヨ鏍囩鍒楄〃 */ - gettabList() { + gettabList() { const tagqueryParams = { pageNum: 1, pageSize: 1000, @@ -770,30 +1032,242 @@ this.optionstag = response.rows; }); }, - handleClose(tag) { + handleClosetag(tag) { + console.log(tag); + console.log(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.dynamicTags.push(tagvalue.tagname); + }); } 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(guid) { + this.illnesslist.forEach((item, index) => { + if (guid) { + item.outid = guid; + } + if (!item.id) { + addtargetillness(item).then((res) => {}); + } + }); + if (this.illnesslistapi.length) { + deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); + } + this.illnessVisible = false; + this.$modal.msgSuccess("缂栬緫鎴愬姛"); }, // -------------------------- - // 鏌ヨ棰樺簱 - handleQuery() {}, - resetQuery() {}, + resetQuery() { + this.queryParams = { pageNum: 1, pageSize: 10 }; + this.getaddtopiclist(); + }, 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鍒�"); }, }, }; @@ -801,28 +1275,23 @@ <style lang="scss" scoped> .Questionnairemanagement { - display: flex; + // display: flex; } .sidecolumn { - width: 300px; - min-height: 100vh; - text-align: center; - // display: flex; - // margin-top: 20px; margin: 20px; margin-bottom: 0; - padding: 30px; + padding: 20px; 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: 80%; - margin-top: 20px; - // margin: 20px; + // // display: flex; + // // flex: 1; + // width: 80%; + // margin-top: 20px; + margin: 20px; padding: 30px; background: #ffff; border: 1px solid #dcdfe6; @@ -833,9 +1302,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