From 17b041e2e7ebd5afe75403fefc57cc6a88b51dad Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期二, 06 八月 2024 13:23:58 +0800 Subject: [PATCH] 测试完成 --- src/views/patient/physical/index.vue | 23 src/utils/ruoyi.js | 5 src/views/patient/patient/outpatient.vue | 186 ---- src/api/AiCentre/SingleTask.js | 11 src/views/patient/patient/index.vue | 12 src/views/patient/questionnaire/index.vue | 43 src/views/patient/subsequent/index.vue | 35 src/views/patient/propaganda/index.vue | 61 - src/main.js | 2 src/views/patient/propaganda/Missionotice.vue | 717 +++++++++++++++++++ src/views/patient/patient/hospital.vue | 810 +++++++++++++++++++++ src/views/patient/patient/behospitalized.vue | 283 +----- src/views/patient/patient/profile/index.vue | 2 13 files changed, 1,714 insertions(+), 476 deletions(-) diff --git a/src/api/AiCentre/SingleTask.js b/src/api/AiCentre/SingleTask.js index 664e852..3b89b35 100644 --- a/src/api/AiCentre/SingleTask.js +++ b/src/api/AiCentre/SingleTask.js @@ -3,7 +3,7 @@ // 鏌ヨ瀹f暀浠诲姟鍒楄〃 export function gethetasklist(data) { return request({ - url: "/smartor/hetask/getPatHeTaskList", + url: "/smartor/serviceSubtask/getPatHeTaskList", method: "post", data: data, }); @@ -12,21 +12,21 @@ // 鍒犻櫎瀹f暀浠诲姟 export function delhetaskinfo(Id) { return request({ - url: "/smartor/hetask/remove/" + Id, + url: "/smartor/serviceSubtask/remove/" + Id, method: "get", }); } // 鏌ヨ瀹f暀浠诲姟璇︽儏鍒楄〃 export function gethetaskinfo(Id) { return request({ - url: "/smartor/hetask/getInfo/" + Id, + url: "/smartor/serviceSubtask/getInfo/" + Id, method: "get", }); } // 鏂板妯$増 export function addhetask(data) { return request({ - url: "/smartor/hetask/add", + url: "/smartor/serviceSubtask/add", method: "post", data: data, }); @@ -34,7 +34,7 @@ // 淇敼瀹f暀浠诲姟 export function edithetask(data) { return request({ - url: "/smartor/hetask/edit", + url: "/smartor/serviceSubtask/edit", method: "post", data: data, }); @@ -78,6 +78,7 @@ data: data, }); } + // 鏌ヨ闂ㄨ瘖鍑洪櫌鏈嶅姟鍒楄〃 export function getTaskservelist(data) { return request({ diff --git a/src/main.js b/src/main.js index 680da18..5ca998f 100644 --- a/src/main.js +++ b/src/main.js @@ -45,6 +45,7 @@ import { getConfigKey } from "@/api/system/config"; import { parseTime, + formatTime, resetForm, addDateRange, selectDictLabel, @@ -91,6 +92,7 @@ Vue.prototype.getDicts = getDicts; Vue.prototype.getConfigKey = getConfigKey; Vue.prototype.parseTime = parseTime; +Vue.prototype.formatTime = formatTime; Vue.prototype.resetForm = resetForm; Vue.prototype.addDateRange = addDateRange; Vue.prototype.selectDictLabel = selectDictLabel; diff --git a/src/utils/ruoyi.js b/src/utils/ruoyi.js index 243c4c7..8aae64f 100644 --- a/src/utils/ruoyi.js +++ b/src/utils/ruoyi.js @@ -4,6 +4,7 @@ * 閫氱敤js鏂规硶灏佽澶勭悊 * Copyright (c) 2019 ruoyi */ +import dayjs from 'dayjs'; // 鏃ユ湡鏍煎紡鍖� export function parseTime(time, pattern) { @@ -45,6 +46,10 @@ }) return time_str } +// 杩囨护鍣� +export function formatTime(val){ + return dayjs(val).format('YYYY-MM-DD') + } // 琛ㄥ崟閲嶇疆 export function resetForm(refName) { diff --git a/src/views/patient/patient/behospitalized.vue b/src/views/patient/patient/behospitalized.vue index cf5db95..60beeb6 100644 --- a/src/views/patient/patient/behospitalized.vue +++ b/src/views/patient/patient/behospitalized.vue @@ -152,32 +152,37 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="50" align="center" /> - <el-table-column - fixed + <!-- <el-table-column label="搴忓彿" - align="center" - key="inhospid" - prop="inhospid" - /><el-table-column fixed - label="鎮h�呭鍚�" + align="center" + key="id" + prop="id" + /> --> + <el-table-column + label="鍏ラ櫌鏃堕棿" + align="center" + key="createTime" + prop="createTime" + width="160" + > + <template slot-scope="scope"> + <span>{{ formatTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + + <el-table-column + label="浣忛櫌鍙�" + align="center" + key="patid" + prop="patid" + /> + <el-table-column + label="濮撳悕" align="center" key="patname" prop="patname" /> - <el-table-column - label="搴婁綅鍙�" - align="center" - key="bedNo" - prop="bedNo" - /> - <el-table-column - label="浣忛櫌鍙�" - align="center" - key="deptcode" - prop="Patientnumber" - /> - <el-table-column label="鎬у埆" align="center" key="sex" prop="sex"> <template slot-scope="scope"> <span>{{ scope.row.sex == 1 ? "鐢�" : "濂�" }}</span> @@ -191,92 +196,69 @@ width="120" /> <el-table-column - label="璐圭敤锛堢己锛�" + label="鑱旂郴鐢佃瘽" align="center" key="telephone" prop="telephone" width="120" /> - <el-table-column - label="鍏ョ鏃堕棿" + <!-- <el-table-column + label="鎮h�呮爣绛撅紙缂猴級" align="center" - key="createTime" - prop="createTime" + key="tagList" + prop="tagList" width="160" + :show-overflow-tooltip="true" > <template slot-scope="scope"> - <span>{{ parseTime(scope.row.createTime) }}</span> + <span v-for="item in scope.row.tagList">{{ item }} </span> </template> - </el-table-column> - <el-table-column - label="鍑洪櫌鏃堕棿" - align="center" - key="endtime" - prop="endtime" - width="160" - > - <template slot-scope="scope"> - <span>{{ parseTime(scope.row.endtime) }}</span> - </template> - </el-table-column> + </el-table-column> --> <el-table-column - label="鎶ょ悊绛夌骇锛堢己锛�" + label="鍏ラ櫌璇婃柇" align="center" - key="idcardtype" - prop="idcardtype" - width="120" - /> - <el-table-column - label="鐥呮儏鐘舵�侊紙缂猴級" - align="center" - key="idcardno" - prop="idcardno" + key="diagname" + prop="diagname" width="190" /> + <!-- <el-table-column + label="涓昏堪" + align="center" + key="mainsuit" + prop="mainsuit" + width="120" + /> --> <el-table-column - label="涓讳换鍖诲笀" + label="鐥呭尯" + align="center" + key="deptname" + prop="deptname" + width="120" + /> + <el-table-column + label="搴婁綅鍙�" + align="center" + key="bedNo" + prop="bedNo" + width="120" + /> + <el-table-column + label="涓绘不鍖荤敓" align="center" key="drname" prop="drname" width="120" /> <el-table-column - label="涓绘不鍖诲笀锛堝緟瀹氾級" + label="璐d换鎶ゅ+" align="center" - key="telcode" - prop="telcode" + key="Sister" + prop="Sister" width="120" /> - <el-table-column - label="浣忛櫌鍖诲笀锛堝緟瀹氾級" - align="center" - key="telcode" - prop="telcode" - width="120" - /> - <el-table-column - label="浣忛櫌鐥呭尯" - align="center" - key="telcode" - prop="telcode" - width="120" - /> - <el-table-column - label="鍏ラ櫌璇婃柇" - align="center" - key="telcode" - prop="telcode" - width="120" - /> - <el-table-column - label="鍑洪櫌灏忕粨" - align="center" - key="telcode" - prop="telcode" - width="120" - /> + <el-table-column label="鎿嶄綔" fixed="right" @@ -299,15 +281,6 @@ ><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> </el-table> @@ -321,125 +294,6 @@ /> </el-col> </el-row> - - <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 --> - <el-dialog - :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'" - :visible.sync="Labelchange" - width="900px" - > - <el-form ref="form" :model="form" :rules="rules" label-width="100px"> - <el-row> - <el-col :span="12"> - <el-form-item label="濮撳悕" prop="name"> - <el-input - v-model="form.name" - placeholder="璇疯緭鍏ュ鍚�" - maxlength="30" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鎬у埆" prop="sex"> - <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆"> - <el-option - v-for="dict in dict.type.sys_user_sex" - :key="dict.value" - :label="dict.label" - :value="dict.value" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="璇佷欢绫诲瀷" prop="idcardtype"> - <el-select v-model="form.idcardtype" 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="idcardno"> - <el-input - v-model="form.idcardno" - placeholder="璇疯緭鍏ヨ瘉浠跺彿" - maxlength="50" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="鏈汉鎵嬫満鍙�" prop="telcode"> - <el-input - v-model="form.telcode" - placeholder="璇疯緭鍏ユ墜鏈哄彿" - maxlength="30" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="浜插睘鎵嬫満鍙�" prop="relativetelcode"> - <el-input - v-model="form.relativetelcode" - placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿" - type="password" - maxlength="20" - show-password - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="骞撮緞" prop="age"> - <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-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-row> - <el-row> - <el-col :span="24"> - <el-form-item label="澶囨敞"> - <el-input - v-model="form.remark" - type="textarea" - placeholder="璇疯緭鍏ュ唴瀹�" - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> - <el-button @click="cancel">鍙� 娑�</el-button> - </div> - </el-dialog> <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� --> <el-dialog @@ -534,6 +388,7 @@ <script> import { delUser } from "@/api/system/user"; +import formatTime from "@/filters/index"; import { listpatient, @@ -546,6 +401,7 @@ import { listtag } from "@/api/system/label"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; +import { listDept } from "@/api/system/dept"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { @@ -609,8 +465,8 @@ optionstag: [], //鏍囩鍒楄〃 Patientrange: [ { - name: "鍏ㄩ儴", - id: 1, + name: "鍏ㄩ儴绉戝", + id: 999, }, { name: "褰撳墠绉戝", @@ -702,6 +558,7 @@ }, created() { this.getList(); + this.listDept(); this.gettabList(); }, methods: { @@ -715,6 +572,12 @@ this.loading = false; }); }, + listDept() { + listDept(this.queryParams).then((res) => { + this.deptList = res.data; + console.log(this.deptList, "this.deptList"); + }); + }, /** 鏌ヨ鏍囩鍒楄〃 */ gettabList() { const tagqueryParams = { diff --git a/src/views/patient/patient/hospital.vue b/src/views/patient/patient/hospital.vue new file mode 100644 index 0000000..ff41d50 --- /dev/null +++ b/src/views/patient/patient/hospital.vue @@ -0,0 +1,810 @@ +<template> + <div class="app-container"> + <el-row :gutter="20"> + <!--鐢ㄦ埛鏁版嵁--> + <el-col :span="24" :xs="24"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="98px" + > + <el-form-item label="濮撳悕" prop="name"> + <el-input + v-model="queryParams.patname" + placeholder="璇疯緭鍏ュ鍚�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎮h�呯紪鍙�" prop="patid"> + <el-input + v-model="queryParams.patid" + placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�" + clearable + style="width: 250px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + + <el-form-item label="鎶ょ悊绛夌骇" prop="tagId"> + <el-select v-model="queryParams.Patientid" placeholder="璇烽�夋嫨"> + <el-option + v-for="dict in dict.type.nursinggrade" + :key="dict.value" + :label="dict.label" + :value="dict.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鎮h�呰寖鍥�" prop="tagId"> + <el-select v-model="queryParams.Patientid" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in Patientrange" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label=" 鍏ラ櫌鏃ユ湡 " prop="createTime"> + <el-date-picker + clearable + v-model="queryParams.createTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨 灏辫瘖鏃ユ湡 " + > + </el-date-picker> + </el-form-item> + + <el-row> + <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> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="medium" + @click="handleAdd" + v-hasPermi="['system:user:add']" + >鏂板</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="medium" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['system:user:edit']" + >淇敼</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="medium" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:user:remove']" + >鍒犻櫎</el-button + > + </el-col> + <el-col :span="19"> + <div class="documentf"> + <div class="document"> + <el-button + type="info" + plain + icon="el-icon-upload2" + size="medium" + @click="handleImport" + v-hasPermi="['system:user:import']" + >瀵煎叆</el-button + > + </div> + <div class="document"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="medium" + @click="handleExport" + v-hasPermi="['system:user:export']" + >瀵煎嚭</el-button + > + </div> + </div> + </el-col> + <!-- <el-col :span="1.5"> </el-col> --> + </el-row> + <el-table + v-loading="loading" + :data="userList" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="50" align="center" /> + <!-- <el-table-column + label="搴忓彿" + fixed + align="center" + key="id" + prop="id" + /> --> + <el-table-column + label="鍑洪櫌鏃堕棿" + align="center" + key="endtime" + prop="endtime" + width="160" + > + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.endtime) }}</span> + </template> + </el-table-column> + + <el-table-column + label="浣忛櫌鍙�" + align="center" + key="patid" + prop="patid" + /> + <el-table-column + label="濮撳悕" + align="center" + key="patname" + prop="patname" + /> + <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="骞撮緞" + align="center" + key="age" + prop="age" + width="120" + /> + <el-table-column + label="鑱旂郴鐢佃瘽" + align="center" + key="telephone" + prop="telephone" + width="120" + /> + + <!-- <el-table-column + label="鍏ラ櫌璇婃柇" + align="center" + key="diagname" + prop="diagname" + width="190" + /> --> + <el-table-column + label="鍑洪櫌璇婃柇" + align="center" + key="leavediagname" + prop="leavediagname" + width="190" + /> + <!-- <el-table-column + label="涓昏堪" + align="center" + key="mainsuit" + prop="mainsuit" + width="120" + /> --> + <el-table-column + label="鐥呭尯" + align="center" + key="deptname" + prop="deptname" + width="120" + /> + <el-table-column + label="搴婁綅鍙�" + align="center" + key="bedNo" + prop="bedNo" + width="120" + /> + <el-table-column + label="涓绘不鍖荤敓" + align="center" + key="drname" + prop="drname" + width="120" + /> + <el-table-column + label="璐d换鎶ゅ+" + align="center" + key="Sister" + prop="Sister" + width="120" + /> + + <el-table-column + label="鎿嶄綔" + fixed="right" + align="center" + width="160" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click=" + $router.push({ + path: '/patient/patient/profile/', + query: { id: scope.row.patid }, + }) + " + v-hasPermi="['system:user:edit']" + ><span class="button-textsc" + ><i class="el-icon-zoom-in"></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="getList" + /> + </el-col> + </el-row> + + <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� --> + <el-dialog + :title="upload.title" + :visible.sync="upload.open" + width="70%" + append-to-body + > + <el-steps :active="dractive" simple> + <el-step title="涓婁紶瀵煎叆鏂囦欢" icon="el-icon-upload"></el-step> + <el-step title="瀵煎叆妫�鏌�" icon="el-icon-picture"></el-step> + <el-step title="瀵煎叆缁撴灉" icon="el-icon-picture"></el-step> + </el-steps> + <!-- 涓婁紶瀵煎叆鏂囦欢 --> + <div class="download" v-if="dractive == 1"> + <el-upload + class="upload-demo" + ref="upload" + :limit="1" + accept=".xlsx, .xls" + :headers="upload.headers" + :action="upload.url + '?updateSupport=' + upload.updateSupport" + :disabled="upload.isUploading" + :on-progress="handleFileUploadProgress" + :on-success="handleFileSuccess" + :auto-upload="false" + drag + > + <i class="el-icon-upload"></i> + <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> + <div class="el-upload__tip text-center" slot="tip"> + <div class="el-upload__tip" slot="tip"> + <el-checkbox v-model="upload.updateSupport" /> + 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹� + </div> + <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span> + <el-link + type="primary" + :underline="false" + style="font-size: 24px; vertical-align: baseline" + @click="importTemplate" + >涓嬭浇妯℃澘</el-link + > + </div> + </el-upload> + </div> + <!-- 瀵煎叆妫�鏌� --> + <div class="uploading" v-else-if="dractive == 2"> + <el-table :data="uploadingData" style="width: 100%"> + <el-table-column prop="serial" label="搴忓彿"> </el-table-column> + <el-table-column prop="name" label="濮撳悕"> </el-table-column> + <el-table-column prop="sex" label="鎬у埆"> </el-table-column> + <el-table-column prop="certificate" label="璇佷欢绫诲瀷"> + </el-table-column> + <el-table-column prop="certificatenum" label="璇佷欢鍙风爜"> + </el-table-column> + <el-table-column prop="goday" label="鍑虹敓鏃ユ湡"> </el-table-column> + <el-table-column prop="menum" label="鏈汉鑱旂郴鏂瑰紡"> </el-table-column> + <el-table-column prop="younum" label="浜插睘鑱旂郴鏂瑰紡"> + </el-table-column> + <el-table-column prop="tag" label="鎮h�呮爣绛�"> </el-table-column> + <el-table-column prop="erry" label="閿欒鍘熷洜"> </el-table-column> + </el-table> + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="geterryList" + /> + </div> + <!-- 瀹屾垚 --> + <div class="drexamine" v-else-if="dractive == 3"> + <img + src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" + /> + <p>瀵煎叆鎮h�呮垚鍔燂紒</p> + <p>鏈鍏辫瀵煎叆{{ ImportQuantity }}浣嶆偅鑰�</p> + </div> + + <div slot="footer" class="dialog-footer" v-if="dractive == 3"> + <!-- <el-button type="primary" @click="submitFileForm">涓嬩竴姝�</el-button> --> + <el-button @click="submitclose">瀹屾垚</el-button> + </div> + <div slot="footer" v-else> + <el-button type="primary" @click="submitFileForm">涓嬩竴姝�</el-button> + <el-button @click="submitclose">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { delUser } from "@/api/system/user"; + +import { + listpatient, + particularpatient, + addpatient, + deletepatient, + Exporterrorpatient, + toleadpatient, +} from "@/api/patient/record"; +import { listtag } from "@/api/system/label"; +import { getToken } from "@/utils/auth"; +import Treeselect from "@riophae/vue-treeselect"; +import { listDept } from "@/api/system/dept"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; + +export default { + name: "behospitalized", + dicts: ["sys_normal_disable", "sys_user_sex", "nursinggrade"], + components: { Treeselect }, + data() { + return { + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 鐢ㄦ埛琛ㄦ牸鏁版嵁 + userList: null, + // 寮瑰嚭灞傛爣棰� + title: "", + // 閮ㄩ棬鏍戦�夐」 + deptOptions: undefined, + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 閮ㄩ棬鍚嶇О + deptName: undefined, + // 榛樿瀵嗙爜 + initPassword: undefined, + amendtag: false, //鏄惁淇敼 + // 鏃ユ湡鑼冨洿 + dateRange: [], + paperstypes: [ + { papersname: "韬唤璇�" }, + { papersname: "鎶ょ収" }, + { papersname: "涓浗娓境灞呮皯韬唤璇�" }, + { papersname: "涓浗鍙版咕灞呮皯韬唤璇�" }, + ], + // 琛ㄥ崟鍙傛暟 + form: { + name: "", + age: "", + sex: "", + tagList: [], + idcardno: "", + telcode: "", + idcardtype: "", + relativetelcode: "", + }, + //瀵煎叆杩涘害 + dractive: 1, + // 瀵煎叆灞曠ず琛ㄥ崟 + uploadingData: {}, + total: 0, // 鎬绘潯鏁� + ImportQuantity: 999, //瀵煎叆鎮h�呮暟閲� + Labelchange: false, //淇敼鏂板寮圭獥 + propss: { multiple: true }, + optionstag: [], //鏍囩鍒楄〃 + Patientrange: [ + { + name: "鍏ㄩ儴绉戝", + id: 999, + }, + { + name: "褰撳墠绉戝", + id: 1, + }, + ], + defaultProps: { + children: "children", + label: "label", + }, + // 鐢ㄦ埛瀵煎叆鍙傛暟 + upload: { + // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛� + open: false, + // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛� + title: "", + // 鏄惁绂佺敤涓婁紶 + isUploading: false, + // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹� + updateSupport: 0, + // 璁剧疆涓婁紶鐨勮姹傚ご閮� + headers: { Authorization: "Bearer " + getToken() }, + // 涓婁紶鐨勫湴鍧� + url: process.env.VUE_APP_BASE_API + "/system/user/importData", + }, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + idcardno: undefined, + name: undefined, + status: undefined, + tagIds: undefined, + telcode: undefined, + }, + // 琛ㄥ崟鏍¢獙 + 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", + // }, + // ], + }, + }; + }, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + deptName(val) { + this.$refs.tree.filter(val); + }, + }, + created() { + this.getList(); + this.listDept(); + this.gettabList(); + }, + methods: { + /** 鏌ヨ鎮h�呭垪琛� */ + getList() { + this.loading = true; + listpatient(this.queryParams).then((response) => { + console.log(response); + this.userList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + listDept() { + listDept(this.queryParams).then((res) => { + this.deptList = res.data; + console.log(this.deptList, "this.deptList"); + }); + }, + /** 鏌ヨ鏍囩鍒楄〃 */ + gettabList() { + const tagqueryParams = { + pageNum: 1, + pageSize: 1000, + tagname: undefined, + tagdescription: undefined, + tagcategoryid: "0", + }; + listtag(tagqueryParams).then((response) => { + console.log(response); + this.optionstag = response.rows; + }); + }, + // 鏌ヨ瀵煎叆灞曠ず鍒楄〃 + geterryList() { + this.loading = true; + listJob(this.queryParams).then((response) => { + this.jobList = 1; + this.total = 1; + this.loading = false; + }); + }, + + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + // 鑺傜偣鍗曞嚮浜嬩欢 + handleNodeClick(data) { + this.queryParams.deptId = data.id; + this.handleQuery(); + }, + + // 鍙栨秷鎸夐挳 + cancel() { + this.Labelchange = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + name: "", + age: "", + sex: "", + tagList: [], + idcardno: "", + telcode: "", + idcardtype: "", + relativetelcode: "", + }; + // this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.$refs.tree.setCurrentKey(null); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.patid); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.Labelchange = true; + this.amendtag = false; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + console.log(row); + const userIds = row.patid || this.ids; + particularpatient(userIds).then((response) => { + console.log(response); + this.form = response.data; + }); + this.amendtag = true; + this.Labelchange = true; + }, + + //淇敼/鏂板鎮h�� + submitForm() { + if (this.amendtag) { + alterpatient(this.form) + .then((response) => { + console.log(response); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("淇敼鎴愬姛"); + }); + } else { + addpatient(this.form) + .then((response) => { + console.log(response); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("娣诲姞鎴愬姛"); + }); + } + this.reset(); + // this.idds = ""; + this.Labelchange = false; + }, + + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const userIds = row.userId || this.ids; + this.$modal + .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�') + .then(function () { + return deletepatient(userIds); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download( + "smartor/patarchive/export", + { + ...this.queryParams, + }, + `user_${new Date().getTime()}.xlsx` + ); + }, + /** 瀵煎叆鎸夐挳鎿嶄綔 */ + handleImport() { + this.upload.title = "鐢ㄦ埛瀵煎叆"; + this.upload.open = true; + }, + /** 涓嬭浇妯℃澘鎿嶄綔 */ + importTemplate() { + this.download( + "system/user/importTemplate", + {}, + `user_template_${new Date().getTime()}.xlsx` + ); + }, + // 鏂囦欢涓婁紶涓鐞� + handleFileUploadProgress(event, file, fileList) { + this.upload.isUploading = true; + }, + // 鏂囦欢涓婁紶鎴愬姛澶勭悊 + handleFileSuccess(response, file, fileList) { + this.upload.open = false; + this.upload.isUploading = false; + this.$refs.upload.clearFiles(); + this.$alert( + "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + + response.msg + + "</div>", + "瀵煎叆缁撴灉", + { dangerouslyUseHTMLString: true } + ); + this.getList(); + }, + // 鎻愪氦涓婁紶鏂囦欢 + submitFileForm() { + // 涓婁紶 + if (this.dractive == 1) { + this.$refs.upload.submit(); + this.dractive++; + } else { + this.dractive++; + } + }, + submitclose() { + this.upload.open = false; + this.dractive = 1; + }, + }, +}; +</script> + +<style lang="scss" scoped> +.el-button--primary.is-plain { + color: #ffffff; + background: #409eff; + border-color: #4fabe9; +} +.document { + width: 100px; + height: 50px; +} +.documentf { + display: flex; + justify-content: flex-end; +} +.download { + text-align: center; + .el-upload__tip { + font-size: 23px; + } + .el-upload__text { + font-size: 23px; + } +} +.uploading { + margin-top: 20px; + margin: 20px; + padding: 30px; + background: #ffffff; + 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); +} +.drexamine { + display: flex; + align-items: center; + justify-content: center; + padding: 30px; + background: #daeaf5; + img { + width: 100px; + height: 100px; + } +} +.button-textsc { + color: #28cfe6; +} +</style> diff --git a/src/views/patient/patient/index.vue b/src/views/patient/patient/index.vue index 3f579d0..487b9d0 100644 --- a/src/views/patient/patient/index.vue +++ b/src/views/patient/patient/index.vue @@ -648,6 +648,12 @@ Exporterrorpatient, toleadpatient, } from "@/api/patient/homepage"; +import { + getTaskservelist, + getTaskInfo, + Editsingletask, + +} from "@/api/AiCentre/index"; import { listtag } from "@/api/system/label"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; @@ -698,7 +704,7 @@ Patienttype: [ { value: "1", - label: "浣忛櫌鎮h��", + label: "鍦ㄩ櫌鎮h��", }, { value: "2", @@ -708,6 +714,10 @@ value: "3", label: "浣撴鎮h��", }, + { + value: "4", + label: "鍑洪櫌鎮h��", + }, ], cardlist: [ diff --git a/src/views/patient/patient/outpatient.vue b/src/views/patient/patient/outpatient.vue index da3eef5..220fc5b 100644 --- a/src/views/patient/patient/outpatient.vue +++ b/src/views/patient/patient/outpatient.vue @@ -42,7 +42,6 @@ </el-select> </el-form-item> <el-row> - <el-form-item label=" 灏辫瘖鏃ユ湡 " prop="createTime"> <el-date-picker clearable @@ -142,45 +141,56 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="50" align="center" /> - <el-table-column + <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" - /> + /> --> <el-table-column - label="濮撳悕" - fixed + label="灏辫瘖鏃堕棿" align="center" - key="patname" - prop="patname" - /> + key="createTime" + prop="createTime" + width="160" + > + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + <el-table-column - label="鎮h�呯紪鍙�" + label="闂ㄨ瘖鍙�" align="center" key="patid" prop="patid" + /> + <el-table-column + label="濮撳悕" + align="center" + key="patname" + prop="patname" /> <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="骞撮緞锛堢己锛�" + <el-table-column + label="骞撮緞" align="center" key="age" prop="age" width="120" /> <el-table-column - label="鑱旂郴鐢佃瘽锛堢己锛�" + label="鑱旂郴鐢佃瘽" align="center" key="telephone" prop="telephone" width="120" - /> --> + /> <!-- <el-table-column label="鎮h�呮爣绛撅紙缂猴級" align="center" @@ -201,39 +211,27 @@ prop="diagname" width="190" /> - <el-table-column + <!-- <el-table-column label="涓昏堪" align="center" key="mainsuit" prop="mainsuit" width="120" - /> + /> --> <el-table-column - label="绉戝" + label="灏辫瘖绉戝" align="center" key="deptname" prop="deptname" width="120" /> <el-table-column - label="鍖荤敓" + label="鎺ヨ瘖鍖荤敓" align="center" key="drname" prop="drname" width="120" /> - - <el-table-column - label="灏辫瘖鏃堕棿" - align="center" - key="createTime" - prop="createTime" - width="160" - > - <template slot-scope="scope"> - <span>{{ parseTime(scope.row.createTime) }}</span> - </template> - </el-table-column> <el-table-column label="鎿嶄綔" @@ -257,15 +255,6 @@ ><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> </el-table> @@ -279,125 +268,6 @@ /> </el-col> </el-row> - - <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 --> - <el-dialog - :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'" - :visible.sync="Labelchange" - width="900px" - > - <el-form ref="form" :model="form" :rules="rules" label-width="100px"> - <el-row> - <el-col :span="12"> - <el-form-item label="濮撳悕" prop="name"> - <el-input - v-model="form.name" - placeholder="璇疯緭鍏ュ鍚�" - maxlength="30" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鎬у埆" prop="sex"> - <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆"> - <el-option - v-for="dict in dict.type.sys_user_sex" - :key="dict.value" - :label="dict.label" - :value="dict.value" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="璇佷欢绫诲瀷" prop="idcardtype"> - <el-select v-model="form.idcardtype" 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="idcardno"> - <el-input - v-model="form.idcardno" - placeholder="璇疯緭鍏ヨ瘉浠跺彿" - maxlength="50" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="鏈汉鎵嬫満鍙�" prop="telcode"> - <el-input - v-model="form.telcode" - placeholder="璇疯緭鍏ユ墜鏈哄彿" - maxlength="30" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="浜插睘鎵嬫満鍙�" prop="relativetelcode"> - <el-input - v-model="form.relativetelcode" - placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿" - type="password" - maxlength="20" - show-password - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="骞撮緞" prop="age"> - <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-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-row> - <el-row> - <el-col :span="24"> - <el-form-item label="澶囨敞"> - <el-input - v-model="form.remark" - type="textarea" - placeholder="璇疯緭鍏ュ唴瀹�" - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> - <el-button @click="cancel">鍙� 娑�</el-button> - </div> - </el-dialog> <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� --> <el-dialog @@ -567,7 +437,7 @@ Patientrange: [ { name: "鍏ㄩ儴", - id: 1, + id: 999, }, { name: "褰撳墠绉戝", diff --git a/src/views/patient/patient/profile/index.vue b/src/views/patient/patient/profile/index.vue index 9427432..6f02c8d 100644 --- a/src/views/patient/patient/profile/index.vue +++ b/src/views/patient/patient/profile/index.vue @@ -952,7 +952,7 @@ gettabList() { const tagqueryParams = { pageNum: 1, - pageSize: 1000, + pageSize: 10000, tagcategoryid: "0", }; listtag(tagqueryParams).then((response) => { diff --git a/src/views/patient/physical/index.vue b/src/views/patient/physical/index.vue index 679f42a..1f71c34 100644 --- a/src/views/patient/physical/index.vue +++ b/src/views/patient/physical/index.vue @@ -175,29 +175,24 @@ label="濮撳悕" fixed align="center" - key="types" - prop="types" + key="patientname" + prop="patientname" /> <el-table-column - label="浣撴缂栧彿" + label="灏辫瘖缂栧彿" align="center" sortable - key="userName" - prop="userName" + key="hospno" + prop="hospno" width="120" /> - <el-table-column - label="骞撮緞" - align="center" - key="nickName" - prop="nickName" - /> + <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> <el-table-column label="浣撴鍗曚綅" align="center" - key="phonenumber" - prop="phonenumber" + key="depname" + prop="depname" width="120" > </el-table-column> @@ -701,7 +696,7 @@ this.loading = true; listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then( (response) => { - this.userList = response.rows; + this.userList = []; this.total = response.total; this.loading = false; } diff --git a/src/views/patient/propaganda/Missionotice.vue b/src/views/patient/propaganda/Missionotice.vue new file mode 100644 index 0000000..710fb7e --- /dev/null +++ b/src/views/patient/propaganda/Missionotice.vue @@ -0,0 +1,717 @@ +<template> + <div class="app-container"> + <el-row :gutter="20"> + <!--鐢ㄦ埛鏁版嵁--> + <el-form + :model="topqueryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="98px" + > + <el-form-item label="浠诲姟鍚嶇О"> + <el-input v-model="topqueryParams.name"></el-input> + </el-form-item> + <el-form-item label="瀹℃牳浜�"> + <el-input v-model="topqueryParams.name"></el-input> + </el-form-item> + <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 label="閫氱煡绫诲瀷" prop="status"> + <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in topicoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="妯$増" prop="status"> + <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in topicoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="閫氱煡鐘舵��" prop="status"> + <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in topicoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-button + type="primary" + icon="el-icon-search" + size="medium" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" + >閲嶇疆</el-button + > + </el-form-item> + </el-form> + <el-divider></el-divider> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="medium" + @click="handleAdd" + v-hasPermi="['system:user:add']" + >鏂板</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="medium" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['system:user:edit']" + >淇敼</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="medium" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:user:remove']" + >鍒犻櫎</el-button + > + </el-col> + <el-col :span="19"> + <div class="documentf"> + <div class="document"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="medium" + @click="handleExport" + v-hasPermi="['system:user:export']" + >瀵煎嚭</el-button + > + </div> + </div> + </el-col> + <!-- <el-col :span="1.5"> </el-col> --> + </el-row> + <el-table + v-loading="loading" + :data="userList" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="50" align="center" /> + <el-table-column fixed label="搴忓彿" align="center" key="id" prop="id" /> + <el-table-column + label="濮撳悕" + fixed + align="center" + key="sendname" + prop="sendname" + /> + <el-table-column + label="闂ㄨ瘖鍙�/鐥呭巻鍙�" + align="center" + sortable + key="medicalRecordNo" + prop="medicalRecordNo" + width="150" + /> + + <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> + <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" /> + <el-table-column + label="绉戝/鐥呭尯" + align="center" + key="dept" + prop="dept" + width="120" + > + </el-table-column> + + <el-table-column + label="鐤剧梾鍚嶇О" + align="center" + key="icdName" + prop="icdName" + width="120" + :show-overflow-tooltip="true" + > + </el-table-column> + + <el-table-column + label="閫氱煡妯$増" + align="center" + key="templatename" + prop="templatename" + width="120" + > + </el-table-column> + <el-table-column + label="閫氱煡鏂瑰紡" + align="center" + key="serviceform" + prop="serviceform" + width="120" + > + </el-table-column> + <el-table-column + label="鎿嶄綔浜哄憳" + align="center" + key="operatePerson" + prop="operatePerson" + width="120" + /> + + <el-table-column + label="灏辫瘖鏃堕棿" + align="center" + key="visitTime" + prop="visitTime" + width="160" + > + </el-table-column> + <el-table-column + label="閫氱煡鏃堕棿" + align="center" + key="senddate" + prop="senddate" + width="160" + > + </el-table-column> + + <el-table-column + fixed="right" + label="浠诲姟璇︽儏" + align="center" + width="200" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-xq" + ><i class="el-icon-s-data"></i>璇︽儏</span + ></el-button + > + <el-button + size="medium" + type="text" + @click="handleDelete(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-sc" + ><i class="el-icon-delete"></i>鍒犻櫎</span + ></el-button + > + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total > 0" + :total="total" + :page.sync="topqueryParams.pageNum" + :limit.sync="topqueryParams.pageSize" + @pagination="getList" + /> + </el-row> + </div> +</template> + +<script> +import { + listUser, + getUser, + delUser, + addUser, + updateUser, + resetUserPwd, + changeUserStatus, +} from "@/api/system/user"; +import { + getTaskservelist, + getTaskInfo, + Editsingletask, +} from "@/api/AiCentre/index"; +import { gethetasklist, delhetaskinfo } from "@/api/AiCentre/index"; +import Treeselect from "@riophae/vue-treeselect"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; + +export default { + name: "User", + dicts: ["sys_normal_disable", "sys_user_sex"], + components: { Treeselect }, + data() { + return { + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 鐢ㄦ埛琛ㄦ牸鏁版嵁 + userList: null, + // 寮瑰嚭灞傛爣棰� + title: "鏂板闂ㄨ瘖閫氱煡", + + // 閮ㄩ棬鍚嶇О + deptName: undefined, + // 榛樿瀵嗙爜 + initPassword: undefined, + // 鏃ユ湡鑼冨洿 + dateRange: [], + // 宀椾綅閫夐」 + postOptions: [], + // 瑙掕壊閫夐」 + roleOptions: [], + dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」 + inputVisible: false, + inputValue: "", + previewVisible: false, //闂ㄨ瘖閫氱煡棰勮寮规 + radio: "", + radios: [], + previewtype: 2, //棰勮闂ㄨ瘖閫氱煡绫诲瀷 + total: 0, // 鎬绘潯鏁� + ImportQuantity: 999, //瀵奸棬璇婇�氱煡鏁伴噺 + //棰勮闂ㄨ瘖閫氱煡淇℃伅 + previewvalue: { + username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�", + }, + value: [], + list: [], + loading: false, + states: ["Alabama", "North Dakota", "Ohio", "Oklahoma", "Oregon", ,], + pickerOptions: { + disabledDate(time) { + return time.getTime() > Date.now(); + }, + shortcuts: [ + { + text: "浠婂ぉ", + onClick(picker) { + picker.$emit("pick", new Date()); + }, + }, + { + text: "鏄ㄥぉ", + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24); + picker.$emit("pick", date); + }, + }, + { + text: "涓�鍛ㄥ墠", + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit("pick", date); + }, + }, + ], + }, + // 琛ㄥ崟鍙傛暟 + form: { + phonenumber: "", + totagid: "", + types: "", + nickName: "", + qystatus: "", + btstatus: "", + }, + // 鏌ヨ鍙傛暟 + topqueryParams: { + pageNum: 1, + pageSize: 10, + type: 1, + }, + propss: { multiple: true }, + options: [], + + topicoptions: [ + { + value: 1, + label: "寰呭鏍�", + }, + { + value: 2, + label: "鎵ц涓�", + }, + { + value: 3, + label: "鎵ц瀹屾垚", + }, + { + value: 4, + label: "宸插仠姝�", + }, + ], + // 琛ㄥ崟鏍¢獙 + 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", + }, + ], + }, + }; + }, + watch: {}, + created() { + this.getList(); + this.getConfigKey("sys.user.initPassword").then((response) => { + this.initPassword = response.msg; + }); + }, + // 鎼滅储 + mounted() { + this.list = this.states.map((item) => { + return { value: `value:${item}`, label: `label:${item}` }; + }); + }, + methods: { + /** 鏌ヨ闂ㄨ瘖閫氱煡鍒楄〃 */ + getList() { + this.loading = true; + getTaskservelist(this.topqueryParams).then((response) => { + this.userList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 鏌ョ湅闂ㄨ瘖閫氱煡璇︽儏 + Referencequestion(row) { + this.previewVisible = true; + }, + // 娣诲姞寮规鎼滅储 + remoteMethod(query) { + if (query !== "") { + this.loading = true; + setTimeout(() => { + this.loading = false; + this.options = this.list.filter((item) => { + return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1; + }); + }, 200); + } else { + this.options = []; + } + }, + // 闂ㄨ瘖閫氱煡鐘舵�佷慨鏀� + handleStatusChange(row) { + let text = row.status === "0" ? "鍚敤" : "鍋滅敤"; + this.$modal + .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵') + .then(function () { + return changeUserStatus(row.id, row.status); + }) + .then(() => { + this.$modal.msgSuccess(text + "鎴愬姛"); + }) + .catch(function () { + row.status = row.status === "0" ? "1" : "0"; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.addalteropen = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: undefined, + deptId: undefined, + userName: undefined, + nickName: undefined, + password: undefined, + phonenumber: undefined, + email: undefined, + sex: undefined, + status: "0", + remark: undefined, + postIds: [], + roleIds: [], + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.topqueryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.topqueryParams.deptId = undefined; + this.$refs.tree.setCurrentKey(null); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.userId); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + //鍒犻櫎閫夐」 + handleClose(tag) { + this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); + }, + //瑙﹀彂鏂板杈撳叆 + showInput() { + this.inputVisible = true; + this.$nextTick((_) => { + this.$refs.saveTagInput.$refs.input.focus(); + }); + }, + //鑾峰彇澶卞幓鐒︾偣瑙﹀彂 + handleInputConfirm() { + let inputValue = this.inputValue; + if (inputValue) { + this.dynamicTags.push(inputValue); + } + this.inputVisible = false; + this.inputValue = ""; + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.$router.push({ + path: "/followvisit/particty", + query: { type: 1 }, + }); + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.$router.push({ + path: "/followvisit/record/detailpage/", + query: { id: "1", type: row.hosptype }, + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const userIds = row.id || this.ids; + this.$modal + .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�') + .then(function () { + return delhetaskinfo(ids); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download( + "system/user/export", + { + ...this.topqueryParams, + }, + `user_${new Date().getTime()}.xlsx` + ); + }, + }, +}; +</script> + +<style lang="scss" scoped> +.el-button--primary.is-plain { + color: #ffffff; + background: #409eff; + border-color: #4fabe9; +} + +.document { + width: 100px; + height: 50px; +} + +.documentf { + display: flex; + justify-content: flex-end; +} + +.download { + text-align: center; + + .el-upload__tip { + font-size: 23px; + } + + .el-upload__text { + font-size: 23px; + } +} + +.uploading { + margin-top: 20px; + margin: 20px; + padding: 30px; + background: #ffffff; + 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); +} + +.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; +} + +.drexamine { + display: flex; + align-items: center; + justify-content: center; + padding: 30px; + background: #daeaf5; + + img { + width: 100px; + height: 100px; + } +} + +.qrcode-dialo { + // text-align: center; + // display: flex; + margin: 20px; + padding: 30px; + background: #edf1f7; + border: 1px solid #dcdfe6; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), + 0 0 6px 0 rgba(0, 0, 0, 0.04); + + .topic-dev { + margin-bottom: 25px; + font-size: 20px !important; + + .dev-text { + margin-bottom: 10px; + } + } +} +.button-bb { + font-weight: 500; + color: #2ba05c; +} +.button-xq { + font-weight: 500; + color: #409eff; +} +.button-sc { + font-weight: 500; + color: #dd302a; +} +.button-zx { + background: #4fabe9; + padding: 5px; + border-radius: 1px; + color: #ffffff; +} + +::v-deep.el-radio-group { + span { + font-size: 24px; + } +} + +::v-deep.el-checkbox-group { + span { + font-size: 24px; + } +} +</style> diff --git a/src/views/patient/propaganda/index.vue b/src/views/patient/propaganda/index.vue index 86d879e..cb2e9bd 100644 --- a/src/views/patient/propaganda/index.vue +++ b/src/views/patient/propaganda/index.vue @@ -138,8 +138,8 @@ label="濮撳悕" fixed align="center" - key="name" - prop="name" + key="sendname" + prop="sendname" /> <el-table-column label="鐥呭巻鍙�" @@ -172,26 +172,20 @@ </el-table-column> <el-table-column - label="瀹f暀鍐呭" + label="瀹f暀妯$増" align="center" - key="heTask" - prop="heTask" + key="templatename" + prop="templatename" width="120" > - <template slot-scope="scope"> - <span>{{ scope.row.heTask.preachname }}</span> - </template> </el-table-column> <el-table-column label="瀹f暀鏂瑰紡" align="center" - key="topicnumberaa" - prop="topicnumberaa" + key="serviceform" + prop="serviceform" width="120" > - <template slot-scope="scope"> - <span>{{ scope.row.heTask.preachform }}</span> - </template> </el-table-column> <el-table-column label="鎿嶄綔浜哄憳" @@ -203,7 +197,6 @@ <el-table-column label="灏辫瘖鏃堕棿" - sortable align="center" key="visitTime" prop="visitTime" @@ -212,37 +205,13 @@ </el-table-column> <el-table-column label="瀹f暀鏃堕棿" - sortable align="center" - prop="sendTime" - width="160" - > - <template slot-scope="scope"> - <span>{{ scope.row.heTask.sendTime }}</span> - </template> - </el-table-column> - <el-table-column - label="鎺ユ敹鏃堕棿" - sortable - align="center" - key="receiveTime" - prop="receiveTime" + key="senddate" + prop="senddate" width="160" > </el-table-column> - <el-table-column - label="閫氱煡鐘舵��" - fixed="right" - align="center" - key="sendStatus" - prop="sendStatus" - width="120" - :show-overflow-tooltip="true" - > - <template slot-scope="scope"> - <div>鏈畬鎴�</div> - </template> - </el-table-column> + <el-table-column fixed="right" label="浠诲姟璇︽儏" @@ -294,6 +263,11 @@ resetUserPwd, changeUserStatus, } from "@/api/system/user"; +import { + getTaskservelist, + getTaskInfo, + Editsingletask, +} from "@/api/AiCentre/index"; import { gethetasklist, delhetaskinfo } from "@/api/AiCentre/index"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; @@ -390,6 +364,7 @@ topqueryParams: { pageNum: 1, pageSize: 10, + type: 1, }, propss: { multiple: true }, options: [], @@ -477,7 +452,7 @@ /** 鏌ヨ闂ㄨ瘖瀹f暀鍒楄〃 */ getList() { this.loading = true; - gethetasklist(this.topqueryParams).then((response) => { + getTaskservelist(this.topqueryParams).then((response) => { this.userList = response.rows; this.total = response.total; this.loading = false; @@ -589,7 +564,7 @@ handleUpdate(row) { this.$router.push({ path: "/followvisit/record/detailpage/", - query: { id: "1", type: row.hosptype}, + query: { id: "1", type: row.hosptype }, }); }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ diff --git a/src/views/patient/questionnaire/index.vue b/src/views/patient/questionnaire/index.vue index a06d5ff..5cdc131 100644 --- a/src/views/patient/questionnaire/index.vue +++ b/src/views/patient/questionnaire/index.vue @@ -168,23 +168,18 @@ label="濮撳悕" fixed align="center" - key="types" - prop="types" + key="patientname" + prop="patientname" /> <el-table-column label="搴婂彿" align="center" sortable - key="userName" - prop="userName" + key="bedNo" + prop="bedNo" width="120" /> - <el-table-column - label="骞撮緞" - align="center" - key="nickName" - prop="nickName" - /> + <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> <el-table-column label="绉戝/鐥呭尯" align="center" @@ -209,8 +204,8 @@ <el-table-column label="鍙戦�佹柟寮�" align="center" - key="topicnumber" - prop="topicnumber" + key="topicnumberc" + prop="topicnumberc" width="120" :show-overflow-tooltip="true" > @@ -221,8 +216,8 @@ <el-table-column label="鍙戦�佸唴瀹�" align="center" - key="topicnumberaa" - prop="topicnumberaa" + key="topicnumberb" + prop="topicnumberb" width="120" /> <el-table-column @@ -270,8 +265,8 @@ <el-table-column label="鍙戦�佺姸鎬�" align="center" - key="topicnumber" - prop="topicnumber" + key="topicnumbera" + prop="topicnumbera" width="120" :show-overflow-tooltip="true" > @@ -460,7 +455,6 @@ <script> import { - listUser, getUser, delUser, addUser, @@ -468,6 +462,8 @@ resetUserPwd, changeUserStatus, } from "@/api/system/user"; +import { getTaskservelist } from "@/api/AiCentre/index"; + import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; @@ -593,6 +589,7 @@ topqueryParams: { pageNum: 1, pageSize: 10, + type: 6, userName: undefined, tagid: undefined, topic: undefined, @@ -683,13 +680,11 @@ /** 鏌ヨ闂ㄨ瘖闅忚鍒楄〃 */ getList() { this.loading = true; - listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then( - (response) => { - this.userList = response.rows; - this.total = response.total; - this.loading = false; - } - ); + getTaskservelist(this.topqueryParams).then((response) => { + this.userList = response.rows; + this.total = response.total; + this.loading = false; + }); }, // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏 Referencequestion(row) { diff --git a/src/views/patient/subsequent/index.vue b/src/views/patient/subsequent/index.vue index 1ccd83e..3798091 100644 --- a/src/views/patient/subsequent/index.vue +++ b/src/views/patient/subsequent/index.vue @@ -171,37 +171,27 @@ label="搴忓彿" fixed align="center" - key="userId" - prop="userId" + key="id" + prop="id" /> <el-table-column label="濮撳悕" fixed align="center" - key="types" - prop="types" + key="sendname" + prop="sendname" /> <el-table-column - label="鐥呭巻鍙�" + label="灏辫瘖鍙�" align="center" sortable - key="userName" - prop="userName" + key="hospno" + prop="hospno" width="120" /> - <el-table-column - label="骞撮緞" - align="center" - key="nickName" - prop="nickName" - /> - <el-table-column - label="搴婂彿" - align="center" - key="nickName" - prop="nickName" - /> + <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> + <el-table-column label="搴婂彿" align="center" key="bedNo" prop="bedNo" /> <el-table-column label="绉戝/鐥呭尯" align="center" @@ -209,6 +199,9 @@ prop="phonenumber" width="120" > + <template slot-scope="scope"> + <div>澶栫闂ㄨ瘖</div> + </template> </el-table-column> <el-table-column @@ -482,6 +475,8 @@ changeUserStatus, } from "@/api/system/user"; import Treeselect from "@riophae/vue-treeselect"; +import { getTaskservelist } from "@/api/AiCentre/index"; + import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { @@ -696,7 +691,7 @@ /** 鏌ヨ闂ㄨ瘖闅忚鍒楄〃 */ getList() { this.loading = true; - listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then( + getTaskservelist(this.topqueryParams).then( (response) => { this.userList = response.rows; this.total = response.total; -- Gitblit v1.9.3