From 55b71c3e08d6cac94d7b4c459450700bd86cb648 Mon Sep 17 00:00:00 2001 From: heimawl <1785969728@qq.com> Date: 星期二, 20 六月 2023 13:46:14 +0800 Subject: [PATCH] 完成部分患者数据交互api封装,创建ai知识库相关路由页面 --- src/views/patient/patient/index.vue | 428 +++++++++++++++++++++-------------------------------- 1 files changed, 172 insertions(+), 256 deletions(-) diff --git a/src/views/patient/patient/index.vue b/src/views/patient/patient/index.vue index 487ba90..936ad34 100644 --- a/src/views/patient/patient/index.vue +++ b/src/views/patient/patient/index.vue @@ -1,32 +1,6 @@ <template> <div class="app-container"> <el-row :gutter="20"> - <!--閮ㄩ棬鏁版嵁--> - <!-- <el-col :span="4" :xs="24"> - <div class="head-container"> - <el-input - v-model="deptName" - placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" - clearable - size="small" - prefix-icon="el-icon-search" - style="margin-bottom: 20px" - /> - </div> - <div class="head-container"> - <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" - /> - </div> - </el-col> --> <!--鐢ㄦ埛鏁版嵁--> <el-col :span="24" :xs="24"> <el-form @@ -37,27 +11,27 @@ v-show="showSearch" label-width="98px" > - <el-form-item label="濮撳悕" prop="userName"> + <el-form-item label="濮撳悕" prop="name"> <el-input - v-model="queryParams.userName" + v-model="queryParams.name" placeholder="璇疯緭鍏ュ鍚�" clearable style="width: 200px" @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="韬唤璇佸彿鐮�" prop="IDnumber"> + <el-form-item label="韬唤璇佸彿鐮�" prop="iccardno"> <el-input - v-model="queryParams.IDnumber" + v-model="queryParams.iccardno" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙风爜" clearable style="width: 250px" @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="鑱旂郴鏂瑰紡" prop="phonenumber"> + <el-form-item label="鑱旂郴鏂瑰紡" prop="telcode"> <el-input - v-model="queryParams.phonenumber" + v-model="queryParams.telcode" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�" clearable style="width: 280px" @@ -65,31 +39,37 @@ /> </el-form-item> <el-row> - <el-form-item label="鎮h�呮爣绛�" prop="status"> - <el-cascader - v-model="queryParams.status" - :options="optionss" - :props="propss" - clearable - ></el-cascader> + <el-form-item label="鎮h�呮爣绛�" prop="tagId"> + <el-select + v-model="queryParams.tagIds" + multiple + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in optionstag" + :key="item.tagid" + :label="item.tagname" + :value="item.tagid" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-button + type="primary" + icon="el-icon-search" + size="medium" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button + icon="el-icon-refresh" + size="medium" + @click="resetQuery" + >閲嶇疆</el-button + > </el-form-item> </el-row> - - <!-- <el-form-item label="鍒涘缓鏃堕棿"> - <el-date-picker - v-model="dateRange" - style="width: 240px" - value-format="yyyy-MM-dd" - type="daterange" - range-separator="-" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - ></el-date-picker> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="el-icon-search" size="medium" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> --> </el-form> <el-row :gutter="10" class="mb8"> @@ -156,11 +136,6 @@ </el-col> <!-- <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" @@ -170,65 +145,60 @@ <el-table-column label="搴忓彿" align="center" - key="userId" - prop="userId" + key="patid" + prop="patid" /> - <el-table-column - label="濮撳悕" - align="center" - key="userName" - prop="userName" - :show-overflow-tooltip="true" - /> - <el-table-column - label="鎬у埆" - align="center" - key="nickName" - prop="nickName" - :show-overflow-tooltip="true" - /> + <el-table-column label="濮撳悕" align="center" key="name" prop="name" /> + <el-table-column label="鎬у埆" align="center" key="sex" prop="sex"> + <template slot-scope="scope"> + <span>{{ scope.row.sex == 1 ? "鐢�" : "濂�" }}</span> + </template> + </el-table-column> <el-table-column label="鎮h�呮爣绛�" align="center" - key="deptName" - prop="dept.deptName" + key="tagList" + prop="tagList" + width="160" :show-overflow-tooltip="true" - /> + > + <template slot-scope="scope"> + <span v-for="item in scope.row.tagList">{{ item }} </span> + </template> + </el-table-column> <el-table-column label="璇佷欢绫诲瀷" align="center" - key="phonenumber" - prop="phonenumber" + key="iccardtype" + prop="iccardtype" width="120" /><el-table-column label="璇佷欢鍙风爜" align="center" - key="phonenumber" - prop="phonenumber" - width="120" + key="iccardno" + prop="iccardno" + width="190" /> <el-table-column label="骞撮緞" align="center" - key="phonenumber" - prop="phonenumber" - v-if="columns[4].visible" + key="age" + prop="age" width="120" /> <el-table-column label="鑱旂郴鏂瑰紡" align="center" - key="phonenumber" - prop="phonenumber" - v-if="columns[4].visible" + key="telcode" + prop="telcode" width="120" /> <el-table-column label="寤烘。鏃ユ湡" align="center" - prop="createTime" - v-if="columns[6].visible" + key="archivetime" + prop="archivetime" width="160" > <template slot-scope="scope"> @@ -238,8 +208,7 @@ <el-table-column label="鏇存柊鏃ユ湡" align="center" - prop="createTime" - v-if="columns[6].visible" + prop="updateTime" width="160" > <template slot-scope="scope"> @@ -252,14 +221,29 @@ width="160" class-name="small-padding fixed-width" > - <template slot-scope="scope" v-if="scope.row.userId !== 1"> + <template slot-scope="scope"> <el-button size="medium" type="text" - icon="el-icon-edit" - @click="$router.push('/patient/patient/profile/')" + @click=" + $router.push({ + path: '/patient/patient/profile/', + query: { id: scope.row.patid }, + }) + " v-hasPermi="['system:user:edit']" - >鏌ョ湅</el-button + ><span class="button-textsc" + ><i class="el-icon-zoom-in"></i>鏌ョ湅</span + ></el-button + > + <el-button + size="medium" + type="text" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textxg" + ><i class="el-icon-edit"></i>淇敼</span + ></el-button > </template> </el-table-column> @@ -276,13 +260,18 @@ </el-row> <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 --> - <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body> + <el-dialog + :title="title" + :visible.sync="Labelchange" + width="900px" + append-to-body + > <el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-row> <el-col :span="12"> <el-form-item label="濮撳悕" prop="nickName"> <el-input - v-model="form.nickName" + v-model="form.name" placeholder="璇疯緭鍏ュ鍚�" maxlength="30" /> @@ -304,17 +293,20 @@ <el-row> <el-col :span="12"> <el-form-item label="璇佷欢绫诲瀷" prop="phonenumber"> - <el-input - v-model="form.phonenumber" - placeholder="璇烽�夋嫨璇佷欢绫诲瀷" - maxlength="11" - /> + <el-select v-model="form.iccardtype" placeholder="璇烽�夋嫨鎬у埆"> + <el-option + v-for="item in paperstypes" + :key="item.papersname" + :label="item.papersname" + :value="item.papersname" + ></el-option> + </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="璇佷欢鍙�" prop="email"> <el-input - v-model="form.email" + v-model="form.iccardno" placeholder="璇疯緭鍏ヨ瘉浠跺彿" maxlength="50" /> @@ -325,7 +317,7 @@ <el-col :span="12"> <el-form-item label="鏈汉鎵嬫満鍙�" prop="userName"> <el-input - v-model="form.userName" + v-model="form.telcode" placeholder="璇疯緭鍏ユ墜鏈哄彿" maxlength="30" /> @@ -334,7 +326,7 @@ <el-col :span="12"> <el-form-item label="浜插睘鎵嬫満鍙�" prop="password"> <el-input - v-model="form.password" + v-model="form.relativetelcode" placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿" type="password" maxlength="20" @@ -345,65 +337,30 @@ </el-row> <el-row> <el-col :span="12"> + <el-form-item label="骞撮緞" prop="nickName"> + <el-input + v-model="form.age" + placeholder="璇疯緭鍏ュ勾榫�" + maxlength="30" + /> + </el-form-item> + </el-col> + <el-col :span="12"> <el-form-item label="鎮h�呮爣绛�"> <!-- <el-select v-model="form.sex" placeholder="璇烽�夋嫨"> --> - <el-cascader - :options="optionss" - :props="propss" - clearable - ></el-cascader> + <el-select v-model="form.tagList" multiple placeholder="璇烽�夋嫨"> + <el-option + v-for="item in optionstag" + :key="item.tagid" + :label="item.tagname" + :value="item.tagid" + > + </el-option> + </el-select> <!-- </el-select> --> </el-form-item> </el-col> - <!-- <el-col :span="12"> - <el-form-item label="鐘舵��"> - <el-radio-group v-model="form.status"> - <el-radio - v-for="dict in dict.type.sys_normal_disable" - :key="dict.value" - :label="dict.value" - >{{ dict.label }}</el-radio - > - </el-radio-group> - </el-form-item> - </el-col> --> </el-row> - <!-- <el-row> - <el-col :span="12"> - <el-form-item label="宀椾綅"> - <el-select - v-model="form.postIds" - multiple - placeholder="璇烽�夋嫨宀椾綅" - > - <el-option - v-for="item in postOptions" - :key="item.postId" - :label="item.postName" - :value="item.postId" - :disabled="item.status == 1" - ></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="瑙掕壊"> - <el-select - v-model="form.roleIds" - multiple - placeholder="璇烽�夋嫨瑙掕壊" - > - <el-option - v-for="item in roleOptions" - :key="item.roleId" - :label="item.roleName" - :value="item.roleId" - :disabled="item.status == 1" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> --> <el-row> <el-col :span="24"> <el-form-item label="澶囨敞"> @@ -515,8 +472,6 @@ <script> import { - listUser, - getUser, delUser, addUser, updateUser, @@ -524,7 +479,16 @@ changeUserStatus, deptTreeSelect, } from "@/api/system/user"; -import { listpatient } from "@/api/patient/homepage"; +import { + listpatient, + messagelistpatient, + alterpatient, + addpatient, + deletepatient, + Exporterrorpatient, +} from "@/api/patient/homepage"; +import { listtag } from "@/api/system/label"; + import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; @@ -559,47 +523,35 @@ deptName: undefined, // 榛樿瀵嗙爜 initPassword: undefined, + amendtag: false, //鏄惁淇敼 // 鏃ユ湡鑼冨洿 dateRange: [], - // 宀椾綅閫夐」 - postOptions: [], - // 瑙掕壊閫夐」 - roleOptions: [], + paperstypes: [ + { papersname: "韬唤璇�" }, + { papersname: "鎶ょ収" }, + { papersname: "涓浗娓境灞呮皯韬唤璇�" }, + { papersname: "涓浗鍙版咕灞呮皯韬唤璇�" }, + ], // 琛ㄥ崟鍙傛暟 - form: {}, + form: { + name: "", + age: "", + sex: "", + tagList: [], + iccardno: "", + telcode: "", + iccardtype: "", + relativetelcode: "", + }, //瀵煎叆杩涘害 dractive: 1, // 瀵煎叆灞曠ず琛ㄥ崟 uploadingData: {}, total: 0, // 鎬绘潯鏁� ImportQuantity: 999, //瀵煎叆鎮h�呮暟閲� - // 鏌ヨ鍙傛暟 - queryParams: { - pageNum: 1, - pageSize: 10, - jobName: undefined, - jobGroup: undefined, - status: undefined, - }, + Labelchange: false, //淇敼鏂板寮圭獥 propss: { multiple: true }, - optionss: [ - { - value: 1, - label: "涓滃崡", - }, - { - value: 2, - label: "瑗垮寳", - }, - { - value: 3, - label: "浠ㄤ花浠�", - }, - { - value: 4, - label: "鍏椋掗", - }, - ], + optionstag: [], //鏍囩鍒楄〃 defaultProps: { children: "children", label: "label", @@ -622,24 +574,13 @@ // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, - name: "鐜嬪ぇ", pageSize: 10, - userName: undefined, - phonenumber: undefined, + iccardno: undefined, + name: undefined, status: undefined, - deptId: undefined, - IDnumber: undefined, + tagIds: undefined, + telcode: 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: [ @@ -696,6 +637,7 @@ }, created() { this.getList(); + this.gettabList(); this.getDeptTree(); this.getConfigKey("sys.user.initPassword").then((response) => { this.initPassword = response.msg; @@ -705,11 +647,19 @@ /** 鏌ヨ鎮h�呭垪琛� */ getList() { this.loading = true; - listUser(this.queryParams).then((response) => { + messagelistpatient(this.queryParams).then((response) => { console.log(response); this.userList = response.rows; this.total = response.total; this.loading = false; + }); + }, + /** 鏌ヨ鏍囩鍒楄〃 */ + gettabList() { + const queryParams = {}; + listtag(this.addDateRange(queryParams)).then((response) => { + console.log(response); + this.optionstag = response.rows; }); }, // 鏌ヨ瀵煎叆灞曠ず鍒楄〃 @@ -760,18 +710,10 @@ // 琛ㄥ崟閲嶇疆 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: [], + isupload: "", + tagname: "", + tagcategoryid: "", + tagdescription: "", }; this.resetForm("form"); }, @@ -784,54 +726,25 @@ resetQuery() { this.dateRange = []; this.resetForm("queryForm"); - this.queryParams.deptId = undefined; this.$refs.tree.setCurrentKey(null); this.handleQuery(); }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.userId); + this.ids = selection.map((item) => item.patid); this.single = selection.length != 1; this.multiple = !selection.length; }, - // 鏇村鎿嶄綔瑙﹀彂 - handleCommand(command, row) { - switch (command) { - case "handleResetPwd": - this.handleResetPwd(row); - break; - case "handleAuthRole": - this.handleAuthRole(row); - break; - default: - break; - } - }, + /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset(); - getUser().then((response) => { - this.postOptions = response.posts; - this.roleOptions = response.roles; - this.open = true; - this.title = "鏂板鎮h��"; - this.form.password = this.initPassword; - }); + this.Labelchange = true; }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { + this.Labelchange = true; this.reset(); - const userId = row.userId || this.ids; - getUser(userId).then((response) => { - this.form = response.data; - this.postOptions = response.posts; - this.roleOptions = response.roles; - this.$set(this.form, "postIds", response.postIds); - this.$set(this.form, "roleIds", response.roleIds); - this.open = true; - this.title = "淇敼鐢ㄦ埛"; - this.form.password = ""; - }); }, /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */ handleResetPwd(row) { @@ -990,4 +903,7 @@ height: 100px; } } +.button-textsc { + color: #28cfe6; +} </style> -- Gitblit v1.9.3