From 79925204a4e1588d1031ca0429ae318a608a8928 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 01 二月 2024 11:32:23 +0800 Subject: [PATCH] 指标完成 --- src/views/repositoryai/intention/index.vue | 1027 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 597 insertions(+), 430 deletions(-) diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue index 3d03d41..1d48246 100644 --- a/src/views/repositoryai/intention/index.vue +++ b/src/views/repositoryai/intention/index.vue @@ -13,56 +13,35 @@ class="input-with-select" size="medium " > - <el-button - @click="sidecolumnss" - slot="append" - icon="el-icon-search" - ></el-button> </el-input> </div> - <div class="bottom-fl"> - <el-menu - default-active="3" - class="el-menu-vertical-demo" - @open="handleOpen" - @close="handleClose" - @select="handleSelect" - > - <el-submenu index="1"> - <template slot="title"> - <i class="el-icon-location"></i> - <span>鍒嗙被涓�</span> - </template> - <el-menu-item index="1-1">閫夐」1</el-menu-item> - <el-menu-item index="1-2">閫夐」2</el-menu-item> - <el-menu-item index="1-3">閫夐」3</el-menu-item> - <el-menu-item index="1-4">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="2"> - <template slot="title"> - <i class="el-icon-menu"></i> - <span>鍒嗙被浜�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - <el-menu-item index="2-2">閫夐」2</el-menu-item> - <el-menu-item index="2-3">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="3"> - <template slot="title"> - <i class="el-icon-document"></i> - <span>鍒嗙被涓�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - <el-submenu index="4"> - <template slot="title"> - <i class="el-icon-setting"></i> - <span>鍒嗙被鍥�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - </el-menu> + <div class="head-container" style="margin-top: 20px"> + <el-tree + :data="deptOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + node-key="id" + default-expand-all + highlight-current + @node-click="handleNodeClick" + > + <span class="custom-tree-node" slot-scope="{ node, data }"> + <span>{{ node.label }}</span> + <span> + <el-button + type="text" + icon="el-icon-delete" + circle + size="mini" + @click="() => remove(node, data)" + > + </el-button> + </span> + </span> + </el-tree> </div> </div> <!-- 鍙充晶鏁版嵁 --> @@ -89,20 +68,26 @@ /> </el-form-item> <el-form-item label="鏍囩" prop="sickness"> - <el-cascader - v-model="queryParams.sickness" - :options="optionss" - :props="propss" - clearable - ></el-cascader> + <el-select v-model="queryParams.tag" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in dynamicTags" + :key="item.tagid" + :label="item.tagname" + :value="item.tagid" + > + </el-option> + </el-select> </el-form-item> <el-form-item label="閫傜敤鏂瑰紡" prop="shape"> - <el-cascader - v-model="queryParams.shapevalue" - :options="optionss" - :props="propss" - clearable - ></el-cascader> + <el-select v-model="queryParams.value" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in mode" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item> <el-form-item label="鎸囨爣绫诲瀷" prop="classify"> <el-select @@ -178,86 +163,112 @@ <!-- <el-col :span="1.5"> </el-col> --> </el-row> - <!-- <right-toolbar - :showSearch.sync="showSearch" - @queryTable="getList" - :columns="columns" - ></right-toolbar> --> + <el-table v-loading="loading" - :data="userList" - :border="true" + :data="targetList" @selection-change="handleSelectionChange" > <el-table-column type="selection" width="50" align="center" /> <el-table-column label="搴忓彿" + fixed align="center" - key="userId" - prop="userId" + key="id" + prop="id" /> <el-table-column label="鍊肩被鍨�" + fixed align="center" - key="userName" - prop="userName" + key="isenable" + prop="isenable" :show-overflow-tooltip="true" - /> + > + <template slot-scope="scope"> + <dict-tag :options="valuetype" :value="scope.row.isenable" /> + </template> + </el-table-column> <el-table-column label="鎸囨爣鍚嶇О" align="center" - key="nickName" - prop="nickName" + key="targetname" + prop="targetname" :show-overflow-tooltip="true" - /> + > + </el-table-column> <el-table-column label="姝e父鍊艰寖鍥�" align="center" - key="scope" - prop="scope" - width="400" - /> + key="warndown" + prop="warndown" + width="200" + > + <template slot-scope="scope"> + <span>{{ scope.row.warnup }}~{{ scope.row.warndown }}</span> + </template> + </el-table-column> <el-table-column label="鎸囨爣鎻忚堪" align="center" - key="aphonenumber" - prop="aphonenumber" - width="400" + key="targetdesc" + prop="targetdesc" + width="200" /><el-table-column label="閫傜敤鏂瑰紡" align="center" - key="bphonenumbers" - prop="bphonenumbers" + key="suitWay" + prop="suitWay" width="120" - /> + > + <template slot-scope="scope"> + <dict-tag :options="mode" :value="scope.row.suitWay" /> + </template> + </el-table-column> <el-table-column label="閫傜敤鐤剧梾" align="center" - key="bphonenumber" - prop="bphonenumber" + key="suitDisease" + prop="suitDisease" width="120" - /> + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="illnessUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textxg" + ><i class="el-icon-date"></i>璇︽儏</span + ></el-button + > + </template> + </el-table-column> <el-table-column label="璇█" align="center" - key="cphonenumber" - prop="cphonenumber" + key="language" + prop="language" width="120" /> - <el-table-column label="鏄惁鍚敤" align="center" key="status"> + <el-table-column + label="鏄惁鍙敤" + align="center" + key="isAvailable" + prop="isAvailable" + > <template slot-scope="scope"> - <el-switch - v-model="scope.row.status" - active-value="0" - inactive-value="1" - @change="handleStatusChange(scope.row)" - ></el-switch> + <dict-tag + :options="qyoptions" + :value="scope.row.isAvailable" + /> </template> </el-table-column> <el-table-column label="鎿嶄綔" + fixed="right" align="center" width="200" class-name="small-padding fixed-width" @@ -312,7 +323,7 @@ append-to-body > <el-form - ref="form" + ref="indexform" :model="indexform" :rules="rules" label-width="100px" @@ -321,7 +332,7 @@ <el-col :span="12"> <el-form-item label="鎸囨爣鍚嶇О" prop="deptId"> <el-input - v-model="indexform.name" + v-model="indexform.targetname" placeholder="璇疯緭鍏ユ寚鏍囩绫�" maxlength="40" /> @@ -330,15 +341,40 @@ <el-col :span="12"> <el-form-item label="鐗堟湰鍙�" prop="deptId"> <el-input - v-model="indexform.versions" + v-model="indexform.version" placeholder="璇疯緭鍏ユ寚鏍囩绫�" maxlength="40" /> </el-form-item> </el-col> </el-row> + <!-- deptOptions --> <el-row v-if="!measurement"> - <el-col :span="12"> + <el-col :span="8"> + <el-form-item label="鎸囨爣鍒嗙被"> + <el-select + v-model="indexform.assortid" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option-group + v-for="group in deptOptions" + :key="group.id" + :label="group.indexAssortName" + > + <el-option + v-for="item in group.ivrLibaTargetAssortList" + :key="item.id" + :label="item.indexAssortName" + :value="item.id" + > + </el-option> + </el-option-group> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> <el-form-item label="璇█" prop="deptId"> <el-select v-model="indexform.language" @@ -353,10 +389,10 @@ </el-select> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="鏄惁鍙敤" prop="deptId"> + <el-col :span="8"> + <el-form-item label="鏄惁鍙敤" prop="isAvailable"> <el-select - v-model="indexform.useofstate" + v-model="indexform.isAvailable" placeholder="璇烽�夋嫨" > <el-option @@ -371,9 +407,9 @@ </el-row> <el-row v-if="!measurement"> <el-col :span="24"> - <el-form-item label="鎸囨爣鎻忚堪" prop="nickName"> + <el-form-item label="鎸囨爣鎻忚堪" prop="targetdesc"> <el-input - v-model="indexform.nickName" + v-model="indexform.targetdesc" placeholder="璇疯緭鍏ユ寚鏍囨弿杩�" maxlength="40" /> @@ -382,14 +418,14 @@ <el-form-item label="鏍囩" prop="desc" v-if="!measurement"> <div class="xinz-inf"> <el-tag - :key="tag" + :key="tag.tagname" type="success" v-for="tag in dynamicTags" closable :disable-transitions="false" - @close="handleClose(tag)" + @close="handleClosetag(tag)" > - {{ tag }} + {{ tag.tagname }} </el-tag> <el-select v-model="inputValue" @@ -402,7 +438,7 @@ > <el-option v-for="item in optionstag" - :key="item.tagname" + :key="item.tagid" :label="item.tagname" :value="item.tagname" > @@ -420,18 +456,19 @@ <el-row v-if="!measurement"> <el-col :span="24"> <el-form-item label="鍊肩被鍨�"> - <el-radio-group v-model="indexform.resource"> - <el-radio label="閫夐」"></el-radio> - <el-radio label="鏂囨湰"></el-radio> - <el-radio label="鏁板��"></el-radio> + <el-radio-group v-model="indexform.isenable"> + <el-radio :label="1">閫夐」</el-radio> + <el-radio :label="2">鏂囨湰</el-radio> + <el-radio :label="3">鏁板��</el-radio> </el-radio-group> - </el-form-item> </el-col - ></el-row> - <el-row v-if="!measurement"> + </el-form-item> + </el-col></el-row + > + <!-- <el-row v-if="!measurement"> <el-col :span="24"> <el-form-item label="閫傜敤鐤剧梾" prop="userName"> <el-select - v-model="indexform.useofstate" + v-model="indexform.suitDisease" placeholder="璇烽�夋嫨" > <el-option @@ -442,17 +479,14 @@ ></el-option> </el-select> </el-form-item> </el-col - ></el-row> + ></el-row> --> <el-row v-if="!measurement"> <el-col :span="24"> <el-form-item label="閫傜敤鏂瑰紡" prop="email"> - <el-select - v-model="indexform.useofstate" - placeholder="璇烽�夋嫨" - > + <el-select v-model="indexform.suitWay" placeholder="璇烽�夋嫨"> <el-option - v-for="index in qyoptions" + v-for="index in mode" :key="index.value" :label="index.label" :value="index.value" @@ -466,20 +500,20 @@ <el-table-column label="搴忓彿" align="center" - key="userid" - prop="userid" + key="guid" + prop="guid" width="50" /> <el-table-column label="鎸囨爣閫夐」" align="center" - key="nickName" - prop="nickName" + key="targetvalue" + prop="targetvalue" :show-overflow-tooltip="true" > <template slot-scope="scope"> <el-input - v-model="scope.row.nickName" + v-model="scope.row.targetvalue" placeholder="璇疯緭鍏ュ唴瀹�" ></el-input> </template> @@ -487,14 +521,14 @@ <el-table-column label="瑙f瀽瑙勫垯" align="center" - key="aphonenumber" - prop="aphonenumber" + key="targetregex" + prop="targetregex" width="460" :show-overflow-tooltip="true" > <template slot-scope="scope"> <el-input - v-model="scope.row.aphonenumber" + v-model="scope.row.targetregex" placeholder="璇疯緭鍏ュ唴瀹�" ></el-input> </template> @@ -535,6 +569,9 @@ </el-table-column> </el-table> </el-card> + <el-card class="box-card" style="margin-bottom: 20px"> + <Regular :TargetoptionList="testuserList" /> + </el-card> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="娴嬭瘯杈撳叆" prop="nickName"> @@ -560,35 +597,85 @@ </el-input> </div> <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> - <el-button @click="cancel">鍙� 娑�</el-button> + <el-button type="primary" @click="submitForm">淇� 瀛�</el-button> + <el-button @click="cancel">鍏� 闂�</el-button> </div> </el-dialog> </div> </div> - <!-- 娣诲姞绫诲埆寮规 --> - <el-dialog - :title="amendtag ? '淇敼绫诲埆' : '鏂板绫诲埆'" - width="30%" - :visible.sync="dialogFormVisible" - > - <el-form :model="classifyform"> - <el-form-item label="璇烽�夋嫨鎸囨爣澶х被"> - <el-select v-model="classifyform.broadheading" placeholder="璇烽�夋嫨"> + <!-- 娣诲姞鐤剧梾瀵硅瘽妗� --> + <el-dialog title="鎸囨爣鐤剧梾" :visible.sync="illnessVisible" width="50%"> + <div> + <div class="xinz-infs"> + <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="inputValue" + v-if="inputVisible" + @change="illnessConfirm" + :remote-method="remoteMethod" + filterable + remote + allow-create + default-first-option + placeholder="璇烽�夋嫨/鏌ヨ" + :loading="loading" + > <el-option - v-for="item in optionss" - :key="item.value" - :label="item.label" - :value="item.value" + 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="showInput" + >+ 鏂板鐤剧梾</el-button + > + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="illnessVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmillness">纭� 瀹�</el-button> + </span> + </el-dialog> + <!-- 娣诲姞绫诲埆寮规 --> + <el-dialog title="鏂板绫诲埆" width="30%" :visible.sync="dialogFormVisible"> + <div style="text-align: center; margin-bottom: 20px"> + <el-radio-group v-model="radio"> + <el-radio-button label="涓诲垎绫�"></el-radio-button> + <el-radio-button label="瀛愬垎绫�"></el-radio-button> + </el-radio-group> + </div> + <el-divider></el-divider> + + <el-form :model="classifyform"> + <el-form-item label="璇烽�夋嫨闂澶х被" v-if="radio == '瀛愬垎绫�'"> + <el-select v-model="classifyform.pid" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in deptOptions" + :key="item.id" + :label="item.indexAssortName" + :value="item.id" > </el-option> </el-select> </el-form-item> - <el-form-item - :label="amendtag ? '璇疯緭鍏ユ柊鐨勭被鍒悕绉�' : '璇疯緭鍏ョ被鍒悕绉�'" - > + <el-form-item label="璇疯緭鍏ョ被鍒悕绉�"> <el-input - v-model="classifyform.categoryname" + v-model="classifyform.indexAssortName" autocomplete="off" ></el-input> </el-form-item> @@ -598,40 +685,36 @@ <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button> </div> </el-dialog> - <!-- 鍒犻櫎绫诲埆纭妗� --> - <el-dialog title="璀﹀憡" :visible.sync="deleteVisible" width="40%"> - <div style="font-size: 20px; color: rgb(247, 76, 76)"> - 鏄惁纭鍒犻櫎鍒嗙被锛歔<span>{{ deletefenl }}</span - >]? - </div> - <div style="font-size: 20px"> - 姝ゆ搷浣滀細灏嗚绫诲埆涓嬫墍鏈夋ā鍧楄浆绉昏嚦[鏈垎绫籡锛屾槸鍚︾户缁垹闄ゆ鍒嗙被锛� - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="deleteVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="deletefenlei">纭� 瀹�</el-button> - </span> - </el-dialog> </div> </template> <script> import { - listUser, - getUser, - delUser, - addUser, - updateUser, -} from "@/api/system/user"; + gettargetInfo, + particulartarget, + gettargetInfoedit, + addtarget, + deletetarget, + getillnesslist, + illnesslistget, + getillness, + deltargetillness, + addtargetillness, + selectIvrLibaTargetAssortList, + addtreeselectIvrLibaTargetAssort, + delselectIvrLibaTargetAssort, +} from "@/api/AiCentre/index"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; +import Regular from "@/components/Regular"; //姝e垯缁勪欢 import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import { listtag } from "@/api/system/label"; +import store from "@/store"; export default { name: "questionnaire", dicts: ["sys_normal_disable", "sys_user_sex"], - components: { Treeselect }, + components: { Treeselect, Regular }, data() { return { topactiveName: "Local", //椤堕儴閫夋嫨 @@ -646,54 +729,24 @@ // 鏄剧ず鎼滅储鏉′欢 showSearch: true, measurement: false, + languagelist: [], + indexid: null, // 鎬绘潯鏁� total: 0, - namequestionnaire: "", - haoquestionnaire: "", idds: "", amendtag: false, //鏄惁淇敼绫诲埆 dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规 deleteVisible: false, //鍒嗙被鍒犻櫎寮规 deletefenl: "楂樿鍘�", //鍒犻櫎椤� + radio: "涓诲垎绫�", testvalue: "", testgovalue: "", classifyform: { categoryname: "", }, //绫诲埆琛ㄥ崟 // 琛ㄦ牸鏁版嵁 - userList: [ - { - userid: 1, - userName: "琛�甯歌銆佸翱甯歌", - nickName: "璐", - aphonenumber: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", - bphonenumber: "閫夋嫨", - cphonenumber: "鏅�氳瘽", - }, - ], - testuserList: [ - { - userid: 1, - nickName: "璐", - aphonenumber: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", - }, - { - userid: 2, - nickName: "姝e父", - aphonenumber: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", - }, - { - userid: 55, - nickName: "闈炴甯�", - aphonenumber: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", - }, - { - userid: 4, - nickName: "a姝e父", - aphonenumber: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", - status: "0", - }, - ], + targetList: null, + testuserList: [], // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -708,189 +761,75 @@ indexform: {}, numberlb: 22, numberlbs: 2, + deptOptions: [], + defaultProps: { + children: "ivrLibaTargetAssortList", + label: "indexAssortName", + }, sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟 dialogFormVisible: false, //娣诲姞绫诲埆寮规 sidecolumnval: "", //绫诲埆鎼滅储 indexopen: false, //寮规灞曠ず鍚� inputVisible: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 inputValue: "", propss: { multiple: true }, - dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"], - languagelist: [ - { - value: 1, - label: "鏅�氳瘽", - }, - { - value: 2, - label: "绮よ", - }, - { - value: 3, - label: "鑻辫", - }, - ], //璇█鍒楄〃 - qyoptions: [ - { - value: 1, - label: "鍙敤", - }, - { - value: 2, - label: "鍋滅敤", - }, - ], - optionss: [ - { - value: 1, - label: "绫诲瀷涓�", - }, - { - value: 2, - label: "绫诲瀷浜�", - }, - { - value: 3, - label: "绫诲瀷涓�", - }, - { - value: 4, - label: "绫诲瀷鍥�", - }, - ], - optionstag:[], - //绫诲埆鍒楄〃 - editableTabs: [ - { - title: "鎸囨爣鍒嗙被涓�", - number: "1", - }, - { - title: "鎸囨爣鍒嗙被浜�", - number: "2", - }, - { - title: "鎸囨爣鍒嗙被涓�", - number: "2", - }, - { - title: "鎸囨爣鍒嗙被鍥�", - number: "2", - }, - { - title: "鎸囨爣鍒嗙被浜�", - number: "2", - }, - ], + dynamicTags: [], + illnesslist: [], + illnesslistapi: [], + optionsillness: [], + qyoptions: [], + mode: [], + optionstag: [], + targetoptionList: [], + // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, pageSize: 10, - userName: undefined, - phonenumber: undefined, - status: undefined, - deptId: undefined, - IDnumber: undefined, }, - // 鍒椾俊鎭� - columns: [ - { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true }, - { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true }, - { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true }, - { key: 3, label: `閮ㄩ棬`, visible: true }, - { key: 4, label: `鎵嬫満鍙风爜`, visible: true }, - { key: 5, label: `鐘舵�乣, visible: true }, - { key: 6, label: `鍒涘缓鏃堕棿`, visible: true }, - ], + // 琛ㄥ崟鏍¢獙 - rules: { - userName: [ - { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, - { - min: 2, - max: 20, - message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", - trigger: "blur", - }, - ], - nickName: [ - { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" }, - ], - password: [ - { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" }, - { - min: 5, - max: 20, - message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", - trigger: "blur", - }, - ], - email: [ - { - type: "email", - message: "璇疯緭鍏ユ纭殑閭鍦板潃", - trigger: ["blur", "change"], - }, - ], - phonenumber: [ - { - pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, - message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", - trigger: "blur", - }, - ], - IDnumber: [ - { - pattern: - /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, - message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�", - trigger: "blur", - }, - ], - }, + rules: {}, }; }, - watch: {}, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + sidecolumnval(val) { + console.log(val); + this.$refs.tree.filter(val); + }, + }, created() { + // 鍒濆鍖栨暟鎹� this.getList(); this.gettabList(); + this.getDeptTree(); + this.mode = store.getters.mode; + this.valuetype = store.getters.valuetype; + this.languagelist = store.getters.languagelist; + this.qyoptions = store.getters.usable; }, - methods: { - /** 鏌ヨ鐢ㄦ埛鍒楄〃 */ + /** 鏌ヨ鎸囨爣鍒楄〃 */ getList() { - // this.loading = true; - listUser().then((response) => { - console.log(response); - console.log(this.userList); + this.loading = true; + gettargetInfo(this.queryParams).then((res) => { + this.targetList = res.rows; + this.total = res.total; + console.log(this.targetList); + this.loading = false; }); }, - getIndexInArray(arr, obj) { - return arr.indexOf(obj); + + processElement(element) { + // 杩斿洖涓�涓柊鐨勫璞★紝灏唀lement瀵硅薄鐨勫睘鎬soperation璁剧疆涓�1 + return { ...element, isoperation: 1 }; }, - // 娣诲姞銆佷慨鏀圭被鍒� - submitsidecolumn() { - if (this.amendtag) { - this.classifyform.tagcategoryid = this.idds; - // toamendtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } else { - // addtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } - this.classifyform = { - categoryname: "", - }; - this.idds = ""; - this.dialogFormVisible = false; + // 杩斿洖鏁扮粍涓寚瀹氬厓绱犵殑绱㈠紩 + getIndexInArray(arr, obj) { + // 杩斿洖鏁扮粍涓寚瀹氬厓绱犵殑绱㈠紩 + return arr.indexOf(obj); }, //鍒犻櫎鍒嗙被 deletefenlei(row) { @@ -907,31 +846,76 @@ this.deletefenl = row.title; } }, - // 棰樼洰鐘舵�佷慨鏀� - handleStatusChange(row) { - let text = row.status === "0" ? "鍚敤" : "鍋滅敤"; - this.$modal - .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵') - .then(function () { - return changeUserStatus(row.userId, row.status); - }) - .then(() => { - this.$modal.msgSuccess(text + "鎴愬姛"); - }) - .catch(function () { - row.status = row.status === "0" ? "1" : "0"; + + // 鐤剧梾----------------------- + illnessUpdate(row) { + this.illnessVisible = true; + this.indexid = row.id; + this.illnesslistapi = []; + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + }; + getillnesslist(illnessqueryParams).then((response) => { + console.log(response); + this.optionsillness = response.rows; + }); + getillness({ outid: row.id, type: 1 }).then((res) => { + this.illnesslist = res.rows; + console.log(res); + }); + }, + handleCloseillness(tag) { + this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); + if (tag.id) { + this.illnesslistapi.push(tag.id); + } + }, + remoteMethod(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); }, - // 渚ц竟-------------- - handleOpen(key, keyPath) { - console.log(key, keyPath); + illnessConfirm(item) { + let opeavalue = {}; + let tagname = this.inputValue; + illnesslistget(item).then((res) => { + opeavalue = res.data; + opeavalue.outid = this.indexid; + opeavalue.type = "1"; + opeavalue.icd10id = opeavalue.icdid; + opeavalue.icd10name = opeavalue.icdname; + opeavalue.icd10code = opeavalue.icdcode; + if (tagname) { + this.illnesslist.push(opeavalue); + } + }); + console.log(this.illnesslist); + this.inputVisible = false; + this.inputValue = ""; }, - handleClose(key, keyPath) { - console.log(key, keyPath); + 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("缂栬緫鎴愬姛"); }, - handleSelect(key, keyPath) { - console.log(key, keyPath); - }, + // 鏍囩----------------- gettabList() { const tagqueryParams = { @@ -944,13 +928,38 @@ 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.indexform.baseTagList[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, + }; + } + console.log(tagvalue); + this.indexform.baseTagList.push(tagvalue); + this.dynamicTags.push(tagvalue); + console.log(this.indexform.baseTagList); + console.log(this.dynamicTags); + }); } this.inputVisible = false; this.inputValue = ""; @@ -960,16 +969,23 @@ }, //娴嬭瘯琛ㄥ崟 -------------------------- addoption() { - this.testuserList.push({ - userid: 1, - nickName: "璐", - aphonenumber: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", - }); + const objvakue = { + guid: 1, + id: this.indexform.id, + targettype: this.indexform.targettype, + targetvalue: "璐", + targetregex: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", + }; + this.testuserList.push(objvakue); + // this.indexform.targetoptionList.push(objvakue); + console.log(this.testuserList); this.sortFn(); }, deloption(item) { const index = this.testuserList.indexOf(item); if (index !== -1) { + this.testuserList[index].isoperation = 3; + this.targetoptionList.push(this.testuserList[index]); this.testuserList.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱� this.sortFn(); } else { @@ -991,18 +1007,94 @@ sortFn() { this.testuserList = this.testuserList.map((item, index) => { return { - userid: index + 1, - nickName: item.nickName, - aphonenumber: item.aphonenumber, + guid: index + 1, + targetvalue: item.targetvalue, + targetregex: item.targetregex, + targetoptionid: item.targetoptionid, + id: this.indexform.id, + targettype: this.indexform.targettype, + isoperation: item.targetoptionid ? 2 : 1, + categoryName: item.categoryName, + language: item.language, }; }); console.log(this.testuserList); }, -// --------------------- - //鎼滅储绫诲埆 - sidecolumnss() {}, - // 鍒囨崲鍏变韩/鏈湴 - tophandleClick() {}, + // --------------------- + + /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ + getDeptTree() { + selectIvrLibaTargetAssortList({}).then((res) => { + this.deptOptions = res.rows; + }); + }, + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.indexAssortName.indexOf(value) !== -1; + }, + // 娣诲姞绫诲埆鏍� + submitsidecolumn() { + let calssvalue = {}; + if ( + this.classifyform.pid && + this.classifyform.indexAssortName && + this.radio == "瀛愬垎绫�" + ) { + const index = this.deptOptions.findIndex( + (obj) => obj.id == this.classifyform.pid + ); + calssvalue = this.deptOptions[index]; + console.log(calssvalue); + calssvalue.ivrLibaTargetAssortList.push(this.classifyform); + } else if (this.radio == "涓诲垎绫�" && this.classifyform.indexAssortName) { + this.classifyform.pid = null; + this.classifyform.ivrLibaTargetAssortList = []; + } else { + return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�"); + } + + addtreeselectIvrLibaTargetAssort(this.classifyform).then((res) => { + this.getDeptTree(); + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.classifyform = {}; + this.dialogFormVisible = false; + }); + }, + remove(a, b) { + if (b.pid) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.indexAssortName + '"鐨勬暟鎹」锛�') + .then(function () { + return delselectIvrLibaTargetAssort(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } else { + this.$modal + .confirm( + '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + + b.indexAssortName + + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�' + ) + .then(() => { + return delselectIvrLibaTargetAssort(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } + }, + handleNodeClick(data) { + this.queryParams.assortid = data.id; + this.getList(); + }, + // 鍙栨秷鎸夐挳 cancel() { this.indexopen = false; @@ -1011,21 +1103,14 @@ // 琛ㄥ崟閲嶇疆 reset() { - this.form = { - userId: undefined, - deptId: undefined, - userName: undefined, - nickName: undefined, - password: undefined, - phonenumber: undefined, - email: undefined, - sex: undefined, - status: "0", - remark: undefined, - postIds: [], - roleIds: [], + this.indexform = { + suitWay: undefined, + id: undefined, + targetdesc: undefined, + baseTagList: [], + targetoptionList: [], }; - this.resetForm("form"); + this.resetForm("indexform"); }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { @@ -1036,13 +1121,16 @@ resetQuery() { this.dateRange = []; this.resetForm("queryForm"); - this.queryParams.deptId = undefined; + this.queryParams={ + pageNum: 1, + pageSize: 10, + }; this.$refs.tree.setCurrentKey(null); this.handleQuery(); }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.userId); + this.ids = selection.map((item) => item.id); this.single = selection.length != 1; this.multiple = !selection.length; }, @@ -1050,21 +1138,39 @@ handleAdd() { this.reset(); this.title = "鏂板鎸囨爣"; + this.indexform = { + baseTagList: [], + targetoptionList: [], + }; + this.dynamicTags = []; + this.testuserList = [ + { + guid: 1, + isoperation: 1, + targettype: "1", + targetvalue: "", + targetregex: "", + }, + ]; this.indexopen = true; - this.measurement=false; + this.measurement = false; }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { this.reset(); + console.log(row); this.title = "鎸囨爣璇︽儏"; + this.indexform = row; + this.dynamicTags = row.baseTagList.map(this.processElement); + this.testuserList = row.targetoptionList; this.indexopen = true; - this.measurement=false; + this.measurement = false; }, handlemeasurement(row) { this.reset(); this.title = "鎸囨爣璇︽儏"; this.indexopen = true; - this.measurement=true; + this.measurement = true; }, // 淇敼鍒嗙被寮规 popoveramend(tagcategoryid) { @@ -1075,16 +1181,23 @@ /** 鏇存柊/淇敼鎻愪氦鎸夐挳 */ submitForm: function () { - this.$refs["form"].validate((valid) => { + // this.indexform.targetoptionList=[] + this.$refs["indexform"].validate((valid) => { + this.indexform.targetoptionList = this.testuserList.concat( + this.targetoptionList + ); if (valid) { - if (this.form.userId != undefined) { - updateUser(this.form).then((response) => { + if (this.indexform.id != undefined) { + this.indexform.isoperation = 2; + gettargetInfoedit(this.indexform).then((response) => { this.$modal.msgSuccess("淇敼鎴愬姛"); this.indexopen = false; this.getList(); }); } else { - addUser(this.form).then((response) => { + this.indexform.targettype = "1"; + this.indexform.isoperation = 1; + gettargetInfoedit(this.indexform).then((response) => { this.$modal.msgSuccess("鏂板鎴愬姛"); this.indexopen = false; this.getList(); @@ -1095,11 +1208,11 @@ }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { - const userIds = row.userId || this.ids; + const userIds = row.id || this.ids; this.$modal - .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�') + .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶇О涓�"' + row.targetname + '"鐨勬暟鎹」锛�') .then(function () { - return delUser(userIds); + return deletetarget(userIds); }) .then(() => { this.getList(); @@ -1139,6 +1252,29 @@ vertical-align: bottom; } } +.xinz-infs { + font-size: 18px; + overflow: hidden; + text-overflow: ellipsis; + + line-height: 48px; + + .el-tag + .el-tag { + margin-left: 10px; + } + .button-new-tag { + margin-left: 10px; + height: 32px; + line-height: 30px; + padding-top: 0; + padding-bottom: 0; + } + .input-new-tag { + width: 90px; + margin-left: 10px; + vertical-align: bottom; + } +} .sidecolumn { width: 300px; min-height: 100vh; @@ -1147,7 +1283,7 @@ margin-top: 20px; margin: 20px; padding: 30px; - background: #edf1f7; + background: #fff; 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); @@ -1228,6 +1364,37 @@ font-size: 20px; } } +::v-deep .el-tree-node__content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 46px; + font-size: 20px; + cursor: pointer; +} +::v-deep .el-tree{ + position: relative; + cursor: default; + border-radius: 5px; + background: #EFF8FE; + color: #606266; + border: 1px solid #bbe1fa; + // 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); + +} +::v-deep .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content { + background-color: #7799FB ; + color: #fff; +} +::v-deep .el-button--mini.is-circle { + padding: 7px; + margin: 0; + color: red; +} .button-text { color: rgb(70, 204, 238); } -- Gitblit v1.9.3