From d1367a2eafbc26cadf07abb3caa94a0d64d09cab Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期二, 13 八月 2024 14:14:12 +0800 Subject: [PATCH] 测试完成 --- src/views/knowledge/questionbank/particulars/index.vue | 1403 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 1,159 insertions(+), 244 deletions(-) diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue index 841e5cb..b6da7c2 100644 --- a/src/views/knowledge/questionbank/particulars/index.vue +++ b/src/views/knowledge/questionbank/particulars/index.vue @@ -5,277 +5,914 @@ <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 - > + <span style="float: right; margin-right: 30px" + ><el-button type="success" @click="Saveproblem">棰勮</el-button> + </span> + <span style="float: right; margin-right: 30px" + ><el-button type="primary" @click="Saveproblem">淇� 瀛�</el-button> + </span> </div> - - <el-row :gutter="10"> - <el-col :span="8" - ><el-form-item label="棰樼洰鏍囬"> - <el-input - v-model="topicobj.title" - placeholder="璇疯緭鍏ユ爣棰�" - ></el-input> </el-form-item - ></el-col> - <el-col :span="6" - ><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-col> - <el-col :span="6" - ><el-form-item label="璇█"> - <el-select - v-model="topicobj.languageh" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="topicobjaa" - v-for="item in xjxsoptions" - :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="8" - ><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-col> - <el-col :span="12" - ><el-form-item label="棰樼洰绫诲瀷"> - <el-select - v-model="topicobj.languageh" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="topicobjaa" - v-for="item in xjxsoptions" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> </el-form-item - ></el-col> - </el-row> - <el-form-item label="棰樼洰鍐呭"> - <el-input - style="width: 40vw" - type="textarea" - v-model="topicobj.title" - placeholder="璇疯緭鍏ユ爣棰�" - ></el-input> - </el-form-item> - <el-row :gutter="10"> - <el-col :span="8" - ><el-form-item label="閫傜敤鏂瑰紡"> - <el-select - v-model="topicobj.languageh" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="topicobjaa" - v-for="item in xjxsoptions" - :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-select - v-model="topicobj.languageh" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="topicobjaa" - v-for="item in xjxsoptions" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> </el-form-item - ></el-col> - </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="handleClose(tag)" - > - {{ tag }} - </el-tag> - <el-select - v-model="inputValue" - v-if="inputVisible" - @change="handleInputConfirm" - filterable - allow-create - default-first-option - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in optionstag" - :key="item.tagname" - :label="item.tagname" - :value="item.tagname" - > - </el-option> - </el-select> - <el-button - v-else - class="button-new-tag" - size="small" - @click="showInput" - >+ 鏂板鏍囩</el-button - > - </div> - </el-form-item> - <div class="headline"> - 閫夐」璁剧疆<span style="margin-left: 30px" - ><el-button type="primary" @click="addoption" - >+鏂板</el-button - ></span - > - </div> - <div class="topicxq" v-for="item in optionlist"> + <div style="margin-left: 8%"> <el-row :gutter="10"> - <el-col :span="11" - ><el-form-item label="閫夐」"> - <el-input - type="text" - placeholder="璇疯緭鍏ラ�夐」" - v-model="text" - show-word-limit + <el-col :span="8"> + <el-form-item label="闂鍒嗙被"> + <el-select + v-model="topicobj.categoryid" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" > - </el-input> </el-form-item - ></el-col> - <el-col :span="11" - ><el-form-item label="鍒嗗��"> - <el-input - type="text" - placeholder="璇疯緭鍏ュ垎鍊�" - v-model="text" - show-word-limit + <el-option-group + v-for="group in classifylist" + :key="group.id" + :label="group.name" + > + <el-option + v-for="item in group.svyLibScriptCategoryList" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-option-group> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="璇勪环绫诲瀷"> + <el-select + v-model="topicobj.scoretype" + placeholder="璇烽�夋嫨鍒嗙被" > - </el-input> </el-form-item - ></el-col> - <el-col :span="2"> - <el-button - type="danger" - icon="el-icon-delete" - circle - ></el-button> + <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="8" v-if="topicobj.scoretype == 1"> + <el-form-item label="棰樼洰寰楀垎"> + <el-input + v-model="topicobj.score" + placeholder="璇疯緭鍏ュ垎鏁�" + ></el-input> + </el-form-item> </el-col> </el-row> + <el-row :gutter="10"> - <el-col :span="11" - ><el-form-item label="閫変腑鎻愮ず"> + <el-col :span="8" + ><el-form-item label="棰樼洰鏍囬"> <el-input - type="text" - placeholder="璇疯緭鍏ュ唴瀹�" - v-model="text" - maxlength="10" - show-word-limit - > - </el-input> </el-form-item + v-model="topicobj.scriptTopic" + placeholder="璇疯緭鍏ユ爣棰�" + ></el-input> </el-form-item ></el-col> - <el-col :span="11" - ><el-form-item label="涓嬮璺宠浆"> - <el-input - type="text" - placeholder="璇疯緭鍏ラ鍙�" - v-model="text" - show-word-limit + <el-col :span="8" + ><el-form-item label="鏄惁鍙敤"> + <el-select + v-model="topicobj.isavailable" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" > - </el-input> </el-form-item + <el-option + class="topicobjaa" + v-for="item in usable" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + <el-col :span="8" + ><el-form-item label="璇█"> + <el-select + v-model="topicobj.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="8" + ><el-form-item label="鏄惁蹇呭~"> + <el-select + v-model="topicobj.ismandatory" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="topicobjaa" + 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="8" + ><el-form-item label="棰樼洰绫诲瀷"> + <el-select + v-model="topicobj.scriptType" + @change="changefn" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="topicobjaa" + v-for="item in valuetype" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + <el-col :span="8" + ><el-form-item label="閫傜敤鏂瑰紡"> + <el-select + v-model="topicobj.suitway" + disabled + placeholder="璇烽�夋嫨" + > + <el-option + class="topicobjaa" + v-for="item in mode" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> </el-select></el-form-item + ></el-col> + </el-row> + <el-form-item label="棰樼洰鍐呭"> + <el-input + style="width: 40vw" + type="textarea" + id="scriptContent" + v-model="topicobj.scriptContent" + @focus="handleInput('scriptContent')" + placeholder="璇疯緭鍏ラ鐩唴瀹�" + ></el-input> + </el-form-item> + <el-form-item + label="" + prop="scriptContent" + v-if="topicobj.scriptType == 3" + > + <div style="display: flex; margin-bottom: 10px"> + <div class="tsgnames" @click="tsgnametos">鎻掑叆濉┖鏍囪</div> + </div> + </el-form-item> + <el-row> + <el-col :span="20"> + <el-form-item + label="濉┖淇℃伅" + v-if=" + topicobj.scriptType == 3 && topicobj.svyLibScriptOptions.length + " + > + <el-card class="box-card" style="width: 200%"> + <div + v-for="item in topicobj.svyLibScriptOptions" + v-if="item.isoperation != 3" + style="margin-bottom: 10px" + > + <el-input + type="text" + placeholder="濉叆鍐呭淇℃伅" + v-model="item.aaa" + > + <el-button + slot="append" + @click="deletexuanx(item)" + type="danger" + icon="el-icon-delete" + circle + ></el-button> + <span slot="prepend">{{ + "(" + item.orderno + ")" + }}</span> + </el-input> + </div> + </el-card> + </el-form-item> + </el-col> + </el-row> + <el-form-item label="棰樼洰璇存槑"> + <el-input + style="width: 40vw" + type="textarea" + v-model="topicobj.scriptDesc" + placeholder="璇疯緭鍏ヨ鏄�" + ></el-input> + </el-form-item> + + <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="handleChangetg" + > + <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> + <div slot="tip" class="el-upload__tip"> + 鍙兘涓婁紶jpg/png绫诲瀷鏂囦欢 + </div> + </el-upload> + + <div style="margin: 20px"> + <el-image + style="width: 100px; height: 100px" + :src="topicobj.picturePath" + :preview-src-list="[...topicobj.picturePath]" + > + </el-image> + </div> + </div> + </el-form-item> + + <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 + allow-create + reserve-keyword + default-first-option + :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 + > + </div> + </el-form-item> + </el-row> + + <el-form-item label="閫変腑鎸囨爣锛�"> + <span style="margin-left: 30px" + ><el-tag type="success" effect="dark">{{ + topicobj.targetname ? topicobj.targetname : "鏈�夋嫨" + }}</el-tag></span + > + <span style="margin-left: 30px" + ><el-button type="success" round @click="gettargetInfo" + >+閫夋嫨鎸囨爣</el-button + ></span + > + </el-form-item> + </div> + + <div v-if="topicobj.scriptType != 3 && topicobj.scriptType != 4"> + <div class="headline"> + 閫夐」璁剧疆<span style="margin-left: 30px" + ><el-button type="primary" round @click="addoption" + >+鏂板</el-button + ></span + > + </div> + <div + class="topicxq" + v-for="item in topicobj.svyLibScriptOptions" + 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="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-col :span="2" :offsset="topicobj.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: 40vw" + 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> </el-card> </div> + <el-drawer + title="閫夋嫨鎸囨爣" + :visible.sync="drawer" + 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="userName"> + <el-input + v-model="queryParams.targetname" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="gettargetInfo" + /> + </el-form-item> + <el-form-item label="鎸囨爣璇存槑" prop="userName"> + <el-input + v-model="queryParams.targetdesc" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="gettargetInfo" + /> + </el-form-item> + <el-form-item label="鎸囨爣绫诲瀷" prop="scriptType"> + <el-select v-model="queryParams.scriptType" placeholder="璇烽�夋嫨"> + <el-option + v-for="(item, index) in qyoptions" + :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="gettargetInfo" + >鎼滅储</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="targetList"> + <el-table-column + label="鎸囨爣鍚嶇О" + align="center" + key="targetname" + prop="targetname" + width="100" + /> + <el-table-column + label="鎸囨爣璇存槑" + align="center" + key="targetdesc" + prop="targetdesc" + width="200" + :show-overflow-tooltip="true" + /> + <el-table-column + label="璇█" + align="center" + key="language" + prop="language" + width="200" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鏄惁鍙敤" + align="center" + key="isAvailable" + prop="isAvailable" + > + <template slot-scope="scope"> + <dict-tag :options="usable" :value="scope.row.isAvailable" /> + </template> + </el-table-column> + <el-table-column + label="闂绫诲瀷" + align="center" + key="scriptType" + prop="scriptType" + > + <template slot-scope="scope"> + <dict-tag :options="valuetype" :value="scope.row.scriptType" /> + </template> + </el-table-column> + <el-table-column + label="閫夐」璇存槑" + align="center" + key="optionDesc" + prop="optionDesc" + 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="selectlabel(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="gettargetInfo" + /> + </div> + </el-drawer> </div> </template> <script> import { listtag } from "@/api/system/label"; +import store from "@/store"; +import { + gettargetInfo, + getissuelist, + issueinfo, + compileissue, + delissueinfo, + Followupinfo, + getissueclassify, + deltargetillness, + addtargetillness, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; +import { getToken } from "@/utils/auth"; export default { data() { return { - topicobj: {}, + topicobj: { + svyLibScriptOptions: [], + svyLibScriptTagList: [], + suitway: "1", + }, + headers: { + Authorization: "Bearer " + getToken(), + }, + uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", inputVisible: false, inputValue: "", - dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"], + currentInputId: "", + scriptTypels: "", + total: 0, + drawer: false, + loading: false, + id: [], + suitwaylist: [], + targetList: [], + dynamicTags: [], + optionsclass: [], + variablelist: [ + { variatename: "濮撳悕", variate: "${name}", default: 1 }, + { variatename: "鐢佃瘽", variate: "${phone}", default: 1 }, + { variatename: "鐥呮儏", variate: "${illness}", default: 1 }, + ], + url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg", + srcList: [ + "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg", + "https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg", + ], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + isavailable: "", + scriptType: "", + }, optionlist: [ - { value: "topic", table: "topic" }, - { value: "topic", table: "topic" }, - { value: "topic", table: "topic" }, + { value: "scriptTopic", table: "scriptTopic" }, + { value: "scriptTopic", table: "scriptTopic" }, + { value: "scriptTopic", table: "scriptTopic" }, ], - options: [ - { - value: "閫夐」1", - label: "蹇冭绠�", - }, - { - value: "閫夐」2", - label: "楠ㄧ", - }, - { - value: "閫夐」3", - label: "濡囩", - }, + inputValueillness: "", + required: [], + themelist: [], + languagelist: [], + courtyardlist: [], + precedencetype: [], + inputVisible: false, + inputVisibleillness: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 + deptOptions: [], + qyoptions: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + classifylist: [], + appraiselist: [ + { label: "鍒嗘暟", value: "1" }, + { label: "ABC绛夌骇", value: "2" }, + { label: "浼樿壇绛夌骇", value: "3" }, + { label: "鏃�", value: "4" }, ], - optionstag:[], - xjxsoptions: [ - { - value: "1", - label: "鍗曢��", - }, - { - value: "2", - label: "澶氶��", - }, - ], + optionstag: [], + valuetype: [], + usable: [], + mode: [], //鏂瑰紡 }; }, created() { this.gettabList(); + this.getissueinfo(); + // this.gettargetInfo(); + this.mode = store.getters.mode; + this.languagelist = store.getters.languagelist; + this.usable = store.getters.usable; + this.valuetype = store.getters.askvaluetype; + this.required = store.getters.required; + this.qyoptions = store.getters.askvaluetype; }, methods: { - Submittopicobj() {}, + // 鍏叡鏂规硶--------------- + 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.svyLibTopicCategoryList) { + console.log(2); + result = result.concat( + this.flattenArray(item.svyLibTopicCategoryList) + ); + delete item.svyLibTopicCategoryList; + } + }); + return result; + }, + // ----------------------------- + // 鑾峰彇鏁版嵁 + getissueinfo() { + this.id = this.$route.query.id; + // 鍒嗙被 + getissueclassify({}).then((res) => { + this.classifylist = res.rows; + console.log(this.classifylist, "鍒嗙被"); + }); + if (!this.id) { + return; + } + getissuelist({ id: this.id }).then((res) => { + this.topicobj = res.rows[0]; + this.dynamicTags = this.topicobj.svyLibScriptTagList.map( + this.processElement + ); + this.scriptTypels = this.topicobj.scriptType; + this.variablelist = JSON.parse(this.topicobj.otherdata) + ? JSON.parse(this.topicobj.otherdata) + : this.variablelist; + }); + getillnesslist({ + pageNum: 1, + pageSize: 100, + }).then((response) => { + this.optionsillness = response.rows; + }); + getillness({ outid: this.id, type: 4 }).then((res) => { + this.illnesslist = res.rows; + }); + }, + gettargetInfo() { + if (!this.topicobj.scriptType) { + this.$message({ + message: "璇峰厛閫夋嫨棰樼洰绫诲瀷", + type: "error", + }); + return; + } + if (this.topicobj.scriptType) { + this.queryParams.scriptType = this.topicobj.scriptType; + } + this.queryParams.suitWay = 1; + gettargetInfo(this.queryParams).then((res) => { + this.targetList = res.rows; + this.total = res.total; + this.drawer = true; + }); + }, + // 鏂板鎴栦慨鏀硅鎯� + compileissue() { + this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map( + (item) => { + if (item.isoperation != 1 && item.isoperation != 3) { + item.isoperation = 2; + } + return item; + } + ); + this.topicobj.targetoptions = this.topicobj.svyLibScriptOptions + .filter((item) => item.isoperation != 3) + .map((item) => item.optioncontent) + .join(", "); + this.topicobj.otherdata = JSON.stringify(this.variablelist); + if (this.id) { + this.topicobj.isoperation = 2; + compileissue(this.topicobj).then((res) => { + if (res.code == 200) { + this.$message({ + message: "淇敼鎴愬姛", + type: "success", + }); + this.$router.go(-1); + } else { + this.$message({ + message: "淇敼澶辫触", + type: "error", + }); + } + }); + } else { + this.topicobj.isoperation = 1; + compileissue(this.topicobj).then((res) => { + if (res.code == 200) { + this.$message({ + message: "鏂板鎴愬姛", + type: "success", + }); + this.$router.go(-1); + } else { + this.$message({ + message: "鏂板澶辫触", + type: "error", + }); + } + }); + } + this.illnesslist.forEach((item, index) => { + if (!item.id) { + addtargetillness(item).then((res) => {}); + } + }); + if (this.illnesslistapi.length) { + deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); + } + }, + // 鍒ゆ柇鍒嗗�� + Scorejudgment() { + let scorearr = this.topicobj.svyLibScriptOptions; + let isValid = scorearr.every((score) => { + if (score.score) { + console.log(Number(score.score), this.topicobj.score, "鍒嗗��"); + if ( + Number(score.score) < 0 || + Number(score.score) > Number(this.topicobj.score) + ) { + console.log(score, "閿欒鍒嗗��"); + this.$message({ + message: "閫夐」鍒嗗�煎繀椤诲湪0鍒�" + this.topicobj.score + "鍒嗕箣闂�", + type: "warning", + }); + return false; + } + return true; + } else if (this.topicobj.scriptType == 3) { + return true; + } else { + this.$message({ + message: "閫夐」鍒嗗�兼湭璁剧疆", + type: "warning", + }); + return false; + } + }); + + if (isValid) { + this.compileissue(); + // console.log("鍒颁繚瀛樹簡"); + } + }, + Saveproblem() { + if (this.topicobj.scoretype == 1) { + this.Scorejudgment(); + } else { + this.compileissue(); + } + }, + // 鍒ゆ柇鎸囨爣 + changefn(item) { + console.log(item); + + if ( + this.topicobj.targetname || + this.topicobj.svyLibScriptOptions[0].optioncontent + ) { + this.$modal + .confirm("鏇存敼绫诲瀷鍚庨�夐」灏嗘竻绌烘槸鍚︾户缁紵") + .then(() => { + this.scriptTypels = this.topicobj.scriptType; + this.topicobj.svyLibScriptOptions = []; + }) + .catch(() => { + this.topicobj.scriptType = this.scriptTypels; + }); + } + }, + + // 鍒犻櫎閫夐」 + deletexuanx(row) { + const index = this.getIndexInArray( + this.topicobj.svyLibScriptOptions, + row + ); + console.log(this.topicobj.svyLibScriptOptions); + + if (this.topicobj.svyLibScriptOptions[index].id) { + console.log(2); + + this.topicobj.svyLibScriptOptions[index].isoperation = 3; + } else { + this.topicobj.svyLibScriptOptions.splice(index, 1); + } + }, // 鏂板閫夐」 - addoption() {}, + addoption() { + console.log(this.topicobj, "obj"); + this.topicobj.svyLibScriptOptions.push({ + score: "", + isoperation: 1, + }); + }, + // 閫夋嫨鎸囨爣 + selectlabel(row) { + this.$modal + .confirm( + '鏄惁閫夋嫨鏍囬涓�"' + + row.targetname + + '"鐨勬寚鏍囧苟鏇挎崲濉厖闂鍙婇�夐」淇℃伅锛�' + ) + .then(() => { + console.log(row); + this.topicobj.scriptTopic = row.targetname; + this.topicobj.valueType = row.valueType; + this.topicobj.scriptContent = row.targetdesc; + this.topicobj.targetid = row.id; + this.topicobj.targetname = row.targetname; + this.topicobj.isavailable = "0"; + this.topicobj.language = "鏅�氳瘽"; + this.topicobj.svyLibScriptOptions = []; + const labellist = row.targetoptionList; + labellist.forEach((item) => { + this.topicobj.svyLibScriptOptions.push({ + optioncontent: item.targetvalue, + isoperation: 1, + }); + }); + this.drawer = false; + }) + .catch(() => {}); + }, + // 鏍囩----------------- - /** 鏌ヨ鏍囩鍒楄〃 */ gettabList() { const tagqueryParams = { pageNum: 1, @@ -283,27 +920,249 @@ tagcategoryid: "0", }; listtag(tagqueryParams).then((response) => { - console.log(response); - this.options = response.rows; + console.log(response, "寰呴�夋爣绛�"); + 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.topicobj.svyLibScriptTagList[lindex].delFlag = 1; }, 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.dynamicTags.push(tagvalue); + this.topicobj.svyLibScriptTagList.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 = 4; + 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("缂栬緫鎴愬姛"); + // }, + resetQuery() { + this.queryParams = { + pageNum: 1, + pageSize: 10, + }; + this.gettargetInfo(); + }, + + // 渚挎嵎鏍囩鎻掑叆濉┖ + tsgnametos(row) { + let inputValueArr = ""; + let value = this.topicobj.svyLibScriptOptions.length + 1; + + let el = document.querySelector("#" + this.currentInputId); + //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛� + if (this.currentInputId == "scriptContent") { + console.log(1); + inputValueArr = this.topicobj.scriptContent.split(""); + console.log(2); + } else { + return; + } + //灏嗚緭鍏ユ鍐呭鍒囨垚鏁扮粍锛屾柟渚垮悗缁搷浣� + // inputValueArr = this.inputValue.split(""); + // 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級 + let selectLength = el.selectionEnd - el.selectionStart; + // 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛� + inputValueArr.splice( + el.selectionStart, + selectLength, + "__" + value + "__" + ); + this.topicobj.svyLibScriptOptions.push({ + orderno: value, + optiondesc: "", + isoperation: 1, + }); + // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪�� + inputValueArr = inputValueArr.join(""); + + console.log(inputValueArr); + if (this.currentInputId == "scriptContent") { + this.topicobj.scriptContent = inputValueArr; + } else { + return; + } + }, + + // 鏂板鍙橀噺 + addvariable() { + this.variablelist.push({ + variatename: "", + variate: "", + }); + }, + // 鍒犻櫎鍙橀噺 + delvariable(item) { + const index = this.variablelist.indexOf(item); + if (index !== -1) { + this.variablelist.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱� + } else { + console.log("鏈壘鍒拌瀵硅薄"); + } + }, + // 杈撳叆鑾峰彇id + handleInput(id) { + this.currentInputId = id; + console.log("杈撳叆妗嗙殑鍊煎凡鏇存柊:", this.currentInputId); + // 鍦ㄨ繖閲屾墽琛屾洿鏂版暟鎹殑閫昏緫 + }, + // 娣峰悎璺嚎 + 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 newMixArray = this.generateCombinations(arrays); + console.log(newMixArray, "鍏ㄩ儴璺嚎"); + this.screen(newMixArray); + }, + // 鏁扮粍姹傚拰 + 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鍒�"); + }, + // 閫夐」鏂囦欢涓婁紶 + handleChange(item, response, file, fileList) { + console.log(response); + if (response.code == 200) { + console.log(item); + let index = this.topicobj.svyLibScriptOptions.findIndex( + (obj) => obj.optioncontent == item.optioncontent + ); + console.log(index); + this.topicobj.svyLibScriptOptions[index].picturePath = response.url; + console.log(this.topicobj.svyLibScriptOptions[index]); + this.$forceUpdate(); + } else { + this.$message.error("鍥剧墖鎻掑叆澶辫触"); + } + }, + // 棰樺共鏂囦欢涓婁紶 + handleChangetg(response, file, fileList) { + if (response.code == 200) { + this.topicobj.picturePath = response.url; + } else { + this.$message.error("鍥剧墖鎻掑叆澶辫触"); + } }, }, }; @@ -322,13 +1181,18 @@ margin: 15px 0; } .topicxq { - width: 50%; + width: 72%; background-color: #e2f5fc; border-radius: 4px; - margin-top: 10px; - padding-left: 10px; + 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); } + .xinz-inf { font-size: 18px; white-space: nowrap; @@ -353,4 +1217,55 @@ } } } +.tsgname { + width: 90px; + margin-right: 10px; + text-align: center; + cursor: pointer; + height: 40px; + line-height: 40px; + background: #7799fa; + color: #ffff; + font-size: 18px; + border-radius: 5px; +} +.tsgname:hover { + background: #3366f5; +} +.tsgnames { + width: 120px; + margin-right: 10px; + text-align: center; + cursor: pointer; + height: 40px; + line-height: 40px; + background: #66c18c; + color: #ffff; + font-size: 18px; + border-radius: 5px; +} +.tsgnames:hover { + background: #20894d; +} +.preview-left { + margin: 20px; + // margin: 20px; + padding: 30px; + background: #ffff; + border: 1px solid #dcdfe6; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), + 0 0 6px 0 rgba(0, 0, 0, 0.04); + .scriptTopic-dev { + margin-bottom: 25px; + font-size: 20px !important; + .dev-text { + margin-bottom: 10px; + } + } +} +::v-deep.ruleFormaa.el-select { + display: inline-block; + position: relative; + width: 700px; +} </style> -- Gitblit v1.9.3