From 0d7443623155fa14136d9a18ebd30dd203e4bb82 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 21 十二月 2023 16:37:17 +0800 Subject: [PATCH] 指标完成 --- src/views/index.vue | 54 ++- src/views/patient/physical/index.vue | 2 src/api/AiCentre/indicator.js | 51 ++ src/views/patient/propaganda/index.vue | 28 vue.config.js | 2 src/views/patient/patient/index.vue | 1 src/store/getters.js | 139 +++++++- src/views/patient/subsequent/index.vue | 4 src/views/repositoryai/intention/index.vue | 606 +++++++++++++++++++++++---------------- src/views/followvisit/discharge/index.vue | 2 10 files changed, 563 insertions(+), 326 deletions(-) diff --git a/src/api/AiCentre/indicator.js b/src/api/AiCentre/indicator.js index 853d389..e4fdfd7 100644 --- a/src/api/AiCentre/indicator.js +++ b/src/api/AiCentre/indicator.js @@ -1,12 +1,5 @@ import request from "@/utils/request"; -// 鏌ヨ鎸囨爣鍒楄〃 -export function listtarget(data) { - return request({ - url: "/smartor/target/list", - method: "post", - data: data, - }); -} + // 鏌ヨ鎸囨爣鍙婂叾鍏宠仈閫夐」 export function gettargetInfo(data) { return request({ @@ -22,10 +15,10 @@ method: "get", }); } -// 鏌ヨ鎸囨爣鍙婂叾鍏宠仈閫夐」 +// 淇敼鎸囨爣鍙婂叾鍏宠仈閫夐」 export function gettargetInfoedit(data) { return request({ - url: "/smartor/target/edit", + url: "/smartor/target/saveOrupdateIvrLibaTarget", method: "post", data: data, }); @@ -46,3 +39,41 @@ method: "get", }); } +// 鏌ヨ鐤剧梾 +export function getillnesslist(data) { + return request({ + url: "/smartor/icd10/list", + method: "post", + data: data, + }); +} +// 鐤剧梾璇︽儏 +export function illnesslistget(Id) { + return request({ + url: "/smartor/icd10/getInfo/" + Id, + method: "get", + }); +} +// 鏌ヨ鎸囨爣鐤剧梾 +export function getillness(data) { + return request({ + url: "/smartor/outicd10/list", + method: "post", + data: data, + }); +} +// 鏂板鎸囨爣鐤剧梾 +export function addtargetillness(data) { + return request({ + url: "/smartor/outicd10/add", + method: "post", + data: data, + }); +} +// 鍒犻櫎鎸囨爣鐤剧梾 +export function deltargetillness(Id) { + return request({ + url: "/smartor/outicd10/remove/" + Id, + method: "get", + }); +} diff --git a/src/store/getters.js b/src/store/getters.js index 884cd73..2c9ecce 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -1,31 +1,118 @@ const getters = { - sidebar: state => state.app.sidebar, - size: state => state.app.size, - device: state => state.app.device, - dict: state => state.dict.dict, - visitedViews: state => state.tagsView.visitedViews, - cachedViews: state => state.tagsView.cachedViews, - token: state => state.user.token, - avatar: state => state.user.avatar, - name: state => state.user.name, - introduction: state => state.user.introduction, - roles: state => state.user.roles, - permissions: state => state.user.permissions, - permission_routes: state => state.permission.routes, - topbarRouters:state => state.permission.topbarRouters, - defaultRoutes:state => state.permission.defaultRoutes, - sidebarRouters:state => state.permission.sidebarRouters, - mode:state =>[{ - value: 1, - label: "璋冩煡琛�", + sidebar: (state) => state.app.sidebar, + size: (state) => state.app.size, + device: (state) => state.app.device, + dict: (state) => state.dict.dict, + visitedViews: (state) => state.tagsView.visitedViews, + cachedViews: (state) => state.tagsView.cachedViews, + token: (state) => state.user.token, + avatar: (state) => state.user.avatar, + name: (state) => state.user.name, + introduction: (state) => state.user.introduction, + roles: (state) => state.user.roles, + permissions: (state) => state.user.permissions, + permission_routes: (state) => state.permission.routes, + topbarRouters: (state) => state.permission.topbarRouters, + defaultRoutes: (state) => state.permission.defaultRoutes, + sidebarRouters: (state) => state.permission.sidebarRouters, + // 閫傜敤鏂瑰紡 + mode: (state) => [ + { + value: "1", + label: "璋冩煡琛�", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "2", + label: "鏅鸿兘璇煶", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "3", + label: "浜哄伐", + raw: { + cssClass: "", + listClass: "", + }, + }, + ], + // 鍊肩被鍨� + valuetype: (state) => [ + { + value: "1", + label: "閫夐」", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "2", + label: "鏂囨湰", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "3", + label: "鏁板��", + raw: { + cssClass: "", + listClass: "", + }, + }, + ], + // 鏄惁鍙敤 + usable: (state) => [ + { + value: '0', + label: "鍙敤", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: '1', + label: "鍋滅敤", + raw: { + cssClass: "", + listClass: "", + }, + }, + ], + // 璇█ + languagelist: (state) => [ + { + value: "1", + label: "鏅�氳瘽", + raw: { + cssClass: "", + listClass: "", + }, }, { - value: 2, - label: "鏅鸿兘璇煶", + value: "2", + label: "绮よ", + raw: { + cssClass: "", + listClass: "", + }, }, { - value: 3, - label: "閫傜敤鏂瑰紡", - },], -} -export default getters + value: "3", + label: "鑻辫", + raw: { + cssClass: "", + listClass: "", + }, + }, +],}; +export default getters; diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue index 877cd5d..2020f3d 100644 --- a/src/views/followvisit/discharge/index.vue +++ b/src/views/followvisit/discharge/index.vue @@ -49,7 +49,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="闂ㄨ瘖闅忚鐘舵��" prop="status"> + <el-form-item label="鍑洪櫌闅忚鐘舵��" prop="status"> <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨"> <el-option v-for="item in topicoptions" diff --git a/src/views/index.vue b/src/views/index.vue index 17f699a..e86fe40 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -176,76 +176,76 @@ <div class="empenty"> <el-row> <el-col :span="4" - ><div class="grid-content bg-purple">璇婄枟棰勭害</div></el-col + ><div class="grid-contents bg-purple">璇婄枟棰勭害</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">123娆�</div></el-col + ><div class="grid-contents bg-purple-light">123娆�</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple">杞瘖鏈嶅姟</div></el-col + ><div class="grid-contents bg-purple">杞瘖鏈嶅姟</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">231娆�</div></el-col + ><div class="grid-contents bg-purple-light">231娆�</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple">淇℃伅鎺ㄩ��</div></el-col + ><div class="grid-contents bg-purple">淇℃伅鎺ㄩ��</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">900娆�</div></el-col + ><div class="grid-contents bg-purple-light">900娆�</div></el-col > </el-row ><el-row> <el-col :span="4" - ><div class="grid-content bg-purple">鏍囪瘑涓庡鑸�</div></el-col + ><div class="grid-contents bg-purple">鏍囪瘑涓庡鑸�</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">23娆�</div></el-col + ><div class="grid-contents bg-purple-light">23娆�</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple"> + ><div class="grid-contents bg-purple"> 鎮h�呬究鍒╀繚闅滄湇鍔� </div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">13娆�</div></el-col + ><div class="grid-contents bg-purple-light">13娆�</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple">杩滅▼鍖荤枟</div></el-col + ><div class="grid-contents bg-purple">杩滅▼鍖荤枟</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">31娆�</div></el-col + ><div class="grid-contents bg-purple-light">31娆�</div></el-col > </el-row ><el-row> <el-col :span="4" - ><div class="grid-content bg-purple">鎮h�呭弽棣�</div></el-col + ><div class="grid-contents bg-purple">鎮h�呭弽棣�</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">150浜�</div></el-col + ><div class="grid-contents bg-purple-light">150浜�</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple">鎮h�呯鐞�</div></el-col + ><div class="grid-contents bg-purple">鎮h�呯鐞�</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">231浜�</div></el-col + ><div class="grid-contents bg-purple-light">231浜�</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple">鍋ュ悍瀹f暀</div></el-col + ><div class="grid-contents bg-purple">鍋ュ悍瀹f暀</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">400</div></el-col + ><div class="grid-contents bg-purple-light">400</div></el-col > </el-row> <el-row> <el-col :span="4" - ><div class="grid-content bg-purple">鍙嶉鍗犳瘮</div></el-col + ><div class="grid-contents bg-purple">鍙嶉鍗犳瘮</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">23%</div></el-col + ><div class="grid-contents bg-purple-light">23%</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple">绠$悊鍗犳瘮</div></el-col + ><div class="grid-contents bg-purple">绠$悊鍗犳瘮</div></el-col > <el-col :span="4" - ><div class="grid-content bg-purple-light">32%</div></el-col + ><div class="grid-contents bg-purple-light">32%</div></el-col > </el-row> </div> @@ -757,7 +757,7 @@ .empenty { width: 100%; padding: 20px 0; - height: 280px; + min-height: 280px; } .cooperate { width: 100%; @@ -919,7 +919,13 @@ .grid-content { min-height: 36px; border-radius: 20px; - padding: 0 20px; + padding: 0 10px; +} +.grid-contents { + min-height: 36px; + border-radius: 20px; + padding: 0 10px; + padding-right: 0; } .row-bg { padding: 10px 0; diff --git a/src/views/patient/patient/index.vue b/src/views/patient/patient/index.vue index 6b8e649..5777449 100644 --- a/src/views/patient/patient/index.vue +++ b/src/views/patient/patient/index.vue @@ -855,6 +855,7 @@ methods: { /** 鏌ヨ鎮h�呭垪琛� */ getList() { + console.log(this.dict.type.sys_user_sex); this.loading = true; messagelistpatient(this.queryParams).then((response) => { console.log(response); diff --git a/src/views/patient/physical/index.vue b/src/views/patient/physical/index.vue index 2d4c184..de46790 100644 --- a/src/views/patient/physical/index.vue +++ b/src/views/patient/physical/index.vue @@ -47,7 +47,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="闂ㄨ瘖闅忚鐘舵��" prop="status"> + <el-form-item label="浣撴鐘舵��" prop="status"> <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨"> <el-option v-for="item in topicoptions" diff --git a/src/views/patient/propaganda/index.vue b/src/views/patient/propaganda/index.vue index ef96e52..aa7da26 100644 --- a/src/views/patient/propaganda/index.vue +++ b/src/views/patient/propaganda/index.vue @@ -27,7 +27,7 @@ end-placeholder="缁撴潫鏃ユ湡" ></el-date-picker> </el-form-item> - <el-form-item label="闅忚绫诲瀷" prop="status"> + <el-form-item label="瀹f暀绫诲瀷" prop="status"> <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨"> <el-option v-for="item in topicoptions" @@ -49,7 +49,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="闂ㄨ瘖闅忚鐘舵��" prop="status"> + <el-form-item label="瀹f暀鐘舵��" prop="status"> <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨"> <el-option v-for="item in topicoptions" @@ -294,7 +294,7 @@ @pagination="getList" /> </el-row> - <!-- 娣诲姞鎴栦慨鏀归棬璇婇殢璁垮璇濇 --> + <!-- 娣诲姞鎴栦慨鏀归棬璇婂鏁欏璇濇 --> <el-dialog :title="title" :visible.sync="addalteropen" @@ -318,8 +318,8 @@ ></el-row> <el-row :gutter="20"> <el-col :span="24" - ><el-form-item label="闅忚绫诲瀷"> - <el-select v-model="form.region" placeholder="璇烽�夋嫨闅忚绫诲瀷"> + ><el-form-item label="瀹f暀绫诲瀷"> + <el-select v-model="form.region" placeholder="璇烽�夋嫨瀹f暀绫诲瀷"> <el-option label="鍖哄煙涓�" value="shanghai"></el-option> <el-option label="鍖哄煙浜�" value="beijing"></el-option> </el-select> </el-form-item @@ -337,7 +337,7 @@ </el-row> <el-row :gutter="20"> <el-col :span="24"> - <el-form-item label="闂ㄨ瘖闅忚瑕佹眰"> + <el-form-item label="闂ㄨ瘖瀹f暀瑕佹眰"> <el-input type="textarea" v-model="form.desc"></el-input> </el-form-item> </el-col> @@ -385,7 +385,7 @@ // 鐢ㄦ埛琛ㄦ牸鏁版嵁 userList: null, // 寮瑰嚭灞傛爣棰� - title: "鏂板闂ㄨ瘖闅忚", + title: "鏂板闂ㄨ瘖瀹f暀", // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰 addalteropen: false, // 閮ㄩ棬鍚嶇О @@ -401,13 +401,13 @@ dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」 inputVisible: false, inputValue: "", - previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规 + previewVisible: false, //闂ㄨ瘖瀹f暀棰勮寮规 radio: "", radios: [], - previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷 + previewtype: 2, //棰勮闂ㄨ瘖瀹f暀绫诲瀷 total: 0, // 鎬绘潯鏁� - ImportQuantity: 999, //瀵奸棬璇婇殢璁挎暟閲� - //棰勮闂ㄨ瘖闅忚淇℃伅 + ImportQuantity: 999, //瀵奸棬璇婂鏁欐暟閲� + //棰勮闂ㄨ瘖瀹f暀淇℃伅 previewvalue: { username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�", }, @@ -595,7 +595,7 @@ }); }, methods: { - /** 鏌ヨ闂ㄨ瘖闅忚鍒楄〃 */ + /** 鏌ヨ闂ㄨ瘖瀹f暀鍒楄〃 */ getList() { this.loading = true; listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then( @@ -606,7 +606,7 @@ } ); }, - // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏 + // 鏌ョ湅闂ㄨ瘖瀹f暀璇︽儏 Referencequestion(row) { this.previewVisible = true; }, @@ -624,7 +624,7 @@ this.options = []; } }, - // 闂ㄨ瘖闅忚鐘舵�佷慨鏀� + // 闂ㄨ瘖瀹f暀鐘舵�佷慨鏀� handleStatusChange(row) { let text = row.status === "0" ? "鍚敤" : "鍋滅敤"; this.$modal diff --git a/src/views/patient/subsequent/index.vue b/src/views/patient/subsequent/index.vue index 6eb7b8d..a89e850 100644 --- a/src/views/patient/subsequent/index.vue +++ b/src/views/patient/subsequent/index.vue @@ -28,7 +28,7 @@ end-placeholder="缁撴潫鏃ユ湡" ></el-date-picker> </el-form-item> - <el-form-item label="闅忚绫诲瀷" prop="status"> + <el-form-item label="澶嶈瘖绫诲瀷" prop="status"> <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨"> <el-option v-for="item in topicoptions" @@ -50,7 +50,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="闂ㄨ瘖闅忚鐘舵��" prop="status"> + <el-form-item label="澶嶈瘖鐘舵��" prop="status"> <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨"> <el-option v-for="item in topicoptions" diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue index 7f90ce3..10dd668 100644 --- a/src/views/repositoryai/intention/index.vue +++ b/src/views/repositoryai/intention/index.vue @@ -89,12 +89,15 @@ /> </el-form-item> <el-form-item label="鏍囩" prop="sickness"> - <el-cascader - v-model="queryParams.sickness" - :options="dynamicTags" - :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-select v-model="queryParams.value" placeholder="璇烽�夋嫨"> @@ -181,31 +184,30 @@ <!-- <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="搴忓彿" align="center" - key="guid" - prop="guid" + key="targetID" + prop="targetID" /> <el-table-column label="鍊肩被鍨�" 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" @@ -213,53 +215,73 @@ prop="targetname" :show-overflow-tooltip="true" > - <template slot-scope="scope"> - <span>{{ scope.row.warndown }}~{{ scope.row.warnup }}</span> - </template> </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> @@ -319,7 +341,7 @@ append-to-body > <el-form - ref="form" + ref="indexform" :model="indexform" :rules="rules" label-width="100px" @@ -328,7 +350,7 @@ <el-col :span="12"> <el-form-item label="鎸囨爣鍚嶇О" prop="deptId"> <el-input - v-model="indexform.name" + v-model="indexform.targetname" placeholder="璇疯緭鍏ユ寚鏍囩绫�" maxlength="40" /> @@ -337,7 +359,7 @@ <el-col :span="12"> <el-form-item label="鐗堟湰鍙�" prop="deptId"> <el-input - v-model="indexform.versions" + v-model="indexform.version" placeholder="璇疯緭鍏ユ寚鏍囩绫�" maxlength="40" /> @@ -361,9 +383,9 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鏄惁鍙敤" prop="deptId"> + <el-form-item label="鏄惁鍙敤" prop="isAvailable"> <el-select - v-model="indexform.useofstate" + v-model="indexform.isAvailable" placeholder="璇烽�夋嫨" > <el-option @@ -378,9 +400,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" /> @@ -389,14 +411,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" @@ -409,7 +431,7 @@ > <el-option v-for="item in optionstag" - :key="item.tagname" + :key="item.tagid" :label="item.tagname" :value="item.tagname" > @@ -427,18 +449,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 @@ -449,17 +472,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" @@ -473,20 +493,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> @@ -494,14 +514,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> @@ -567,12 +587,60 @@ </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="鎸囨爣鐤剧梾" :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 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="amendtag ? '淇敼绫诲埆' : '鏂板绫诲埆'" @@ -631,12 +699,16 @@ updateUser, } from "@/api/system/user"; import { - listtarget, gettargetInfo, particulartarget, gettargetInfoedit, addtarget, deletetarget, + getillnesslist, + illnesslistget, + getillness, + deltargetillness, + addtargetillness, } from "@/api/AiCentre/index"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; @@ -662,10 +734,10 @@ // 鏄剧ず鎼滅储鏉′欢 showSearch: true, measurement: false, + languagelist: [], + indexid: null, // 鎬绘潯鏁� total: 0, - namequestionnaire: "", - haoquestionnaire: "", idds: "", amendtag: false, //鏄惁淇敼绫诲埆 dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规 @@ -677,39 +749,8 @@ 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: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -729,35 +770,17 @@ 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: "鍋滅敤", - }, - ], + dynamicTags: [], + illnesslist: [], + illnesslistapi: [], + optionsillness: [], + qyoptions: [], mode: [], optionstag: [], + targetoptionList: [], //绫诲埆鍒楄〃 editableTabs: [ { @@ -791,62 +814,9 @@ 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: {}, @@ -854,16 +824,24 @@ this.getList(); this.gettabList(); this.mode = store.getters.mode; - console.log(this.mode); + this.valuetype = store.getters.valuetype; + this.languagelist = store.getters.languagelist; + this.qyoptions = store.getters.usable; }, methods: { /** 鏌ヨ鎸囨爣鍒楄〃 */ getList() { - listtarget(this.queryParams).then((res) => { - this.userlist = res.data; - 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; }); + }, + processElement(element) { + return { ...element, isoperation: 1 }; }, getIndexInArray(arr, obj) { return arr.indexOf(obj); @@ -907,21 +885,7 @@ 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"; - }); - }, + // 渚ц竟-------------- handleOpen(key, keyPath) { console.log(key, keyPath); @@ -932,6 +896,76 @@ handleSelect(key, keyPath) { console.log(key, keyPath); }, + // 鐤剧梾----------------------- + illnessUpdate(row) { + this.illnessVisible = true; + this.indexid = row.targetID; + this.illnesslistapi = []; + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + }; + getillnesslist(illnessqueryParams).then((response) => { + console.log(response); + this.optionsillness = response.rows; + }); + getillness({ outid: row.targetID, 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) { + 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.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 = ""; + }, + 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("缂栬緫鐤剧梾鎴愬姛"); + }, + // 鏍囩----------------- gettabList() { const tagqueryParams = { @@ -944,13 +978,37 @@ 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, + }; + } + 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 +1018,23 @@ }, //娴嬭瘯琛ㄥ崟 -------------------------- addoption() { - this.testuserList.push({ - userid: 1, - nickName: "璐", - aphonenumber: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", - }); + const objvakue = { + guid: 1, + targetid: this.indexform.targetid, + 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,9 +1056,15 @@ 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, + targetid: this.indexform.targetid, + targettype: this.indexform.targettype, + isoperation: item.targetoptionid ? 2 : 1, + categoryName: item.categoryName, + language: item.language, }; }); console.log(this.testuserList); @@ -1011,21 +1082,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, + targetID: undefined, + targetdesc: undefined, + baseTagList: [], + targetoptionList: [], }; - this.resetForm("form"); + this.resetForm("indexform"); }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { @@ -1042,7 +1106,7 @@ }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.userId); + this.ids = selection.map((item) => item.targetID); this.single = selection.length != 1; this.multiple = !selection.length; }, @@ -1050,13 +1114,31 @@ 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; }, /** 淇敼鎸夐挳鎿嶄綔 */ 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; }, @@ -1075,16 +1157,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.targetID != 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 +1184,11 @@ }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { - const userIds = row.userId || this.ids; + const userIds = row.targetID || this.ids; this.$modal - .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�') + .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶇О涓�"' + row.targetname + '"鐨勬暟鎹」锛�') .then(function () { - return delUser(userIds); + return deletetarget(userIds); }) .then(() => { this.getList(); @@ -1139,6 +1228,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; diff --git a/vue.config.js b/vue.config.js index 82d5566..610b425 100644 --- a/vue.config.js +++ b/vue.config.js @@ -35,7 +35,7 @@ proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { - // target1: `http://192.168.1.4:8080`, + // target: `http://192.168.2.8:8089`, target:`http://localhost:8089`, // target: `http://www.hxsoft.com:8080`, changeOrigin: true, -- Gitblit v1.9.3