From d1367a2eafbc26cadf07abb3caa94a0d64d09cab Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期二, 13 八月 2024 14:14:12 +0800 Subject: [PATCH] 测试完成 --- src/views/patient/patient/index.vue | 385 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 299 insertions(+), 86 deletions(-) diff --git a/src/views/patient/patient/index.vue b/src/views/patient/patient/index.vue index 87791b7..3331263 100644 --- a/src/views/patient/patient/index.vue +++ b/src/views/patient/patient/index.vue @@ -12,6 +12,7 @@ v-model="queryParams.allhosp" @tab-click="handleClick" > + <el-tab-pane label="鎮h�呭垪琛�" name="0"></el-tab-pane> <el-tab-pane label="浣忛櫌鎮h��" name="1"></el-tab-pane> <el-tab-pane label="闂ㄨ瘖鎮h��" name="2"></el-tab-pane> <el-tab-pane label="浣撴鎮h��" name="3"></el-tab-pane> @@ -24,8 +25,11 @@ <div> <el-row :gutter="10"> <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index"> - <el-card shadow="hover"> - <div style="padding: 8px"> + <el-card + shadow="hover" + :body-style="item.router ? ' cursor: pointer' : 'cursor: default'" + > + <div style="padding: 8px" @click="$router.push(item.router)"> <span>{{ item.name }}</span> <div style=" @@ -54,7 +58,7 @@ v-show="showSearch" label-width="98px" > - <el-form-item label="闄㈠尯" prop="userName"> + <!-- <el-form-item label="闄㈠尯" prop="userName"> <el-select v-model="queryParams.value1" placeholder="璇烽�夋嫨"> <el-option v-for="item in options" @@ -64,8 +68,8 @@ > </el-option> </el-select> - </el-form-item> - <el-form-item label="绉戝/鐥呭尯" prop="userName"> + </el-form-item> --> + <!-- <el-form-item label="绉戝/鐥呭尯" prop="userName"> <el-select v-model="queryParams.value2" placeholder="璇烽�夋嫨"> <el-option v-for="item in options" @@ -75,36 +79,26 @@ > </el-option> </el-select> - </el-form-item> + </el-form-item> --> <el-form-item label-width="138px" label="涓绘不鍖荤敓" prop="userName" > - <el-select v-model="queryParams.value3" placeholder="璇烽�夋嫨"> - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - </el-form-item> - <el-form-item label="鍑洪櫌鏃ユ湡" prop="userName"> - <el-date-picker - v-model="queryParams.valuetime1" - align="right" - type="date" - placeholder="閫夋嫨鏃ユ湡" - > - </el-date-picker> - </el-form-item> - <el-form-item label="灏辫瘖缂栧彿" prop="number"> <el-input - v-model="queryParams.number" + v-model="queryParams.drname" + placeholder="璇疯緭鍏ュ尰鐢熷鍚�" + maxlength="30" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + + <el-form-item label="闂ㄨ瘖缂栧彿" prop="visitno"> + <el-input + v-model="queryParams.visitno" placeholder="璇疯緭鍏ョ紪鍙�" maxlength="30" + @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="濮撳悕" prop="name"> @@ -112,6 +106,15 @@ v-model="queryParams.name" placeholder="璇疯緭鍏ュ鍚�" maxlength="30" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鑱旂郴鐢佃瘽" prop="telcode"> + <el-input + v-model="queryParams.telcode" + placeholder="璇疯緭鍏ヨ仈绯荤數璇�" + maxlength="30" + @keyup.enter.native="handleQuery" /> </el-form-item> @@ -168,6 +171,16 @@ >鍒犻櫎</el-button > </el-col> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-s-promotion" + size="medium" + @click="distribute" + >鍚戜换鍔℃淳鍙戞偅鑰�</el-button + > + </el-col> <el-col :span="6"> <div class="documentf"> <div class="document"> @@ -203,12 +216,14 @@ > <el-table-column type="selection" width="50" align="center" /> <el-table-column + fixed label="搴忓彿" align="center" - key="patid" - prop="patid" + key="id" + prop="id" /> <el-table-column + fixed label="濮撳悕" align="center" key="name" @@ -237,8 +252,8 @@ <el-table-column label="灞呬綇鍦�" align="center" - key="age" - prop="age" + key="placeOfResidence" + prop="placeOfResidence" width="120" /> <el-table-column @@ -250,20 +265,22 @@ :show-overflow-tooltip="true" > <template slot-scope="scope"> - <span v-for="item in scope.row.tagList">{{ item }} </span> + <span v-for="item in scope.row.tagList" + >{{ item.tagname }} + </span> </template> </el-table-column> <el-table-column label="璇佷欢绫诲瀷" align="center" - key="idtype" - prop="idtype" + key="idcardtype" + prop="idcardtype" width="120" /><el-table-column label="璇佷欢鍙风爜" align="center" - key="idno" - prop="idno" + key="idcardno" + prop="idcardno" width="190" /> @@ -277,15 +294,15 @@ <el-table-column label="寤烘。鏃ユ湡" align="center" - key="uploadTime" - prop="uploadTime" + key="createTime" + prop="createTime" width="160" > </el-table-column> <el-table-column label="鏇存柊鏃ユ湡" align="center" - prop="updateTime" + prop="archivetime" width="160" > <template slot-scope="scope"> @@ -293,6 +310,7 @@ </template> </el-table-column> <el-table-column + fixed="right" label="鎿嶄綔" align="center" width="190" @@ -305,15 +323,15 @@ @click=" $router.push({ path: '/patient/patient/profile/', - query: { id: scope.row.patid }, + query: { id: scope.row.id }, }) " v-hasPermi="['system:user:edit']" ><span class="button-textsc" - ><i class="el-icon-zoom-in"></i>鏌ョ湅</span + ><i class="el-icon-zoom-in"></i>璇︽儏缂栬緫</span ></el-button > - <el-button + <!-- <el-button size="medium" type="text" @click="handleUpdate(scope.row)" @@ -321,7 +339,7 @@ ><span class="button-textxga" ><i class="el-icon-edit"></i>淇敼</span ></el-button - > + > --> <el-button size="medium" type="text" @@ -346,6 +364,127 @@ </el-row> </div> </div> + <el-dialog title="閫夋嫨浠诲姟" :visible.sync="distributeVisible" width="70%"> + <div class="preview-left"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + label-width="98px" + > + <el-select + @change="distribute" + v-model="tasktopic" + placeholder="璇烽�夋嫨浠诲姟绫诲瀷" + > + <el-option + v-for="item in taskoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form> + <el-table v-loading="loading" :data="taskuserList"> + <el-table-column + label="浠诲姟鍚嶇О" + fixed + align="center" + key="taskName" + prop="taskName" + width="140" + :show-overflow-tooltip="true" + /> + <el-table-column + label="浠诲姟鎻忚堪" + align="center" + key="taskDesc" + prop="taskDesc" + width="180" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鏈嶅姟椤圭洰" + align="center" + key="templatename" + prop="templatename" + /> + <el-table-column + label="寰呮墽琛�/鎬讳换鍔�" + align="center" + key="nickName" + prop="nickName" + > + <template slot-scope="scope"> + <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span> + </template> + </el-table-column> + <el-table-column + label="鍒涘缓浜�" + align="center" + key="createBy" + prop="createBy" + width="120" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鍒涘缓鏃堕棿" + sortable + align="center" + prop="createTime" + width="160" + > + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + <el-table-column + label="鐘舵��" + fixed="right" + align="center" + key="sendState" + prop="sendState" + width="120" + > + <template slot-scope="scope"> + <dict-tag + :options="dict.type.task_status" + :value="scope.row.sendState" + /> + </template> + </el-table-column> + + <el-table-column + label="浠诲姟璇︽儏" + fixed="right" + align="center" + width="200" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="handleUpdate(scope.row)" + ><span class="button-xq" + ><i class="el-icon-s-data"></i>閫夋嫨娲惧彂</span + ></el-button + > + </template> + </el-table-column> + </el-table> + + <pagination + v-show="tasktotal > 0" + :total="tasktotal" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="distribute" + /> + </div> + </el-dialog> <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 --> <el-dialog @@ -377,7 +516,7 @@ </el-form-item> </el-col> <el-col :span="8"> - <el-form-item label="姘戞棌" prop="age"> + <el-form-item label="骞撮緞" prop="age"> <el-input v-model="form.age" placeholder="璇疯緭鍏ュ勾榫�" @@ -390,7 +529,7 @@ <el-col :span="8"> <el-form-item label="姘戞棌" prop="name"> <el-input - v-model="form.name" + v-model="form.nation" placeholder="璇疯緭鍏ユ皯鏃�" maxlength="30" /> @@ -399,7 +538,7 @@ <el-col :span="8"> <el-form-item label="绫嶈疮" prop="age"> <el-input - v-model="form.age" + v-model="form.nativePlace" placeholder="璇疯緭鍏ョ睄璐�" maxlength="30" /> @@ -417,8 +556,8 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="璇佷欢绫诲瀷" prop="idtype"> - <el-select v-model="form.idtype" placeholder="璇烽�夋嫨鎬у埆"> + <el-form-item label="璇佷欢绫诲瀷" prop="idcardtype"> + <el-select v-model="form.idcardtype" placeholder="璇烽�夋嫨鎬у埆"> <el-option v-for="item in paperstypes" :key="item.papersname" @@ -429,9 +568,9 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="璇佷欢鍙�" prop="idno"> + <el-form-item label="璇佷欢鍙�" prop="idcardno"> <el-input - v-model="form.idno" + v-model="form.idcardno" placeholder="璇疯緭鍏ヨ瘉浠跺彿" maxlength="50" /> @@ -440,17 +579,17 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="鍑虹敓鍦�" prop="idno"> + <el-form-item label="鍑虹敓鍦�" prop="idcardno"> <el-input - v-model="form.idno" + v-model="form.birthplace" placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅" maxlength="50" /> </el-form-item> </el-col ><el-col :span="12"> - <el-form-item label="灞呬綇鍦�" prop="idno"> + <el-form-item label="灞呬綇鍦�" prop="idcardno"> <el-input - v-model="form.idno" + v-model="form.placeOfResidence" placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅" maxlength="50" /> @@ -460,7 +599,7 @@ <el-row> <el-col :span="24"> <el-form-item label="鎮h�呯被鍨�"> - <el-select v-model="form.Patienttype" placeholder="璇烽�夋嫨绫诲瀷"> + <el-select v-model="form.pattype" placeholder="璇烽�夋嫨绫诲瀷"> <el-option v-for="item in Patienttype" :key="item.value" @@ -622,14 +761,16 @@ </el-dialog> <!-- 璺宠浆鏈嶅姟瀵硅瘽妗� --> <el-dialog title="閫夋嫨鏈嶅姟绫诲瀷" :visible.sync="serviceVisible"> - <el-radio-group v-model="serviceradio"> - <el-radio :label="1">瀹f暀闅忚</el-radio> - <el-radio :label="2">闂ㄨ瘖鏈嶅姟</el-radio> - <el-radio :label="3">鍑洪櫌鏈嶅姟</el-radio> - <el-radio :label="4">澶嶈瘖鏈嶅姟</el-radio> - <el-radio :label="5">浣撴閫氱煡</el-radio> - <el-radio :label="6">闂嵎鏈嶅姟</el-radio> - </el-radio-group> + <el-card class="box-card"> + <el-radio-group v-model="serviceradio"> + <el-radio :label="1">瀹f暀闅忚</el-radio> + <el-radio :label="2">闂ㄨ瘖鏈嶅姟</el-radio> + <el-radio :label="3">鍑洪櫌鏈嶅姟</el-radio> + <el-radio :label="4">澶嶈瘖鏈嶅姟</el-radio> + <el-radio :label="5">浣撴閫氱煡</el-radio> + <el-radio :label="6">闂嵎鏈嶅姟</el-radio> + </el-radio-group> + </el-card> <div slot="footer" class="dialog-footer"> <el-button @click="serviceVisible = false">鍙� 娑�</el-button> <el-button type="primary" @click="CreateService">鍒涘缓鏈嶅姟</el-button> @@ -640,13 +781,7 @@ <script> import { delUser } from "@/api/system/user"; -import { - listpat_archive, - getpat_archive, - addpat_archive, - updatepat_archive, - delpat_archive, -} from "@/api/smartorpor/pat_archive"; + import { messagelistpatient, alterpatient, @@ -656,14 +791,16 @@ Exporterrorpatient, toleadpatient, } from "@/api/patient/homepage"; +import { getTasklist } from "@/api/AiCentre/index"; import { listtag } from "@/api/system/label"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; +import store from "@/store"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { name: "Userhuanze", - dicts: ["sys_normal_disable", "sys_user_sex"], + dicts: ["sys_normal_disable", "task_status", "sys_user_sex"], components: { Treeselect }, data() { return { @@ -679,8 +816,10 @@ showSearch: true, // 鎬绘潯鏁� total: 0, + tasktotal: 0, // 鐢ㄦ埛琛ㄦ牸鏁版嵁 userList: null, + taskuserList: null, // 寮瑰嚭灞傛爣棰� title: "", // 閮ㄩ棬鏍戦�夐」 @@ -695,8 +834,19 @@ amendtag: false, //鏄惁淇敼 serviceVisible: false, serviceradio: 1, + distributeVisible: false, + tasktopic: "5", //鏂板绫诲瀷 + // 鏌ヨ鍙傛暟 + topqueryParams: { + pageNum: 1, + pageSize: 10, + userName: undefined, + tagid: undefined, + topic: undefined, + }, // 鏃ユ湡鑼冨洿 dateRange: [], + taskoptions: [], paperstypes: [ { papersname: "韬唤璇�" }, { papersname: "鎶ょ収" }, @@ -706,7 +856,7 @@ Patienttype: [ { value: "1", - label: "浣忛櫌鎮h��", + label: "鍦ㄩ櫌鎮h��", }, { value: "2", @@ -715,6 +865,10 @@ { value: "3", label: "浣撴鎮h��", + }, + { + value: "4", + label: "鍑洪櫌鎮h��", }, ], @@ -726,14 +880,17 @@ { name: "鍦ㄩ櫌鎮h��", value: 23, + router: "/patient/inpatient", }, { - name: "绂婚櫌鎮h��", + name: "鍑洪櫌鎮h��", value: 41, + router: "/patient/hospital", }, { - name: "璇婄枟鎮h��", + name: "闂ㄨ瘖鎮h��", value: 56, + router: "/patient/outpatient", }, { name: "绂讳笘鎮h��", @@ -746,9 +903,9 @@ age: "", sex: "", tagList: [], - idno: "", + idcardno: "", telcode: "", - idtype: "", + idcardtype: "", relativetelcode: "", }, activeName: "first", //渚ц竟閫夋嫨 @@ -783,9 +940,9 @@ // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, - allhosp: "1", + allhosp: "0", pageSize: 10, - idno: undefined, + idcardno: undefined, name: undefined, status: undefined, tagIds: undefined, @@ -848,10 +1005,13 @@ created() { this.getList(); this.gettabList(); + //鑾峰彇宸茬瓫閫夊悗鐨勫彲閫変换鍔$被鍨� + this.taskoptions = store.getters.Serviceauthority; }, methods: { /** 鏌ヨ鎮h�呭垪琛� */ getList() { + console.log(this.dict.type.sys_user_sex); this.loading = true; messagelistpatient(this.queryParams).then((response) => { console.log(response); @@ -863,10 +1023,20 @@ handleClick() { this.getList(); }, + findLabelByValue(data, value) { + const item = data.find((item) => item.value === value); + return item ? item.label : null; + }, /** 鏌ヨ鏍囩鍒楄〃 */ gettabList() { - const queryParams = {}; - listtag().then((response) => { + const tagqueryParams = { + pageNum: 1, + pageSize: 1000, + tagname: undefined, + tagdescription: undefined, + tagcategoryid: "0", + }; + listtag(tagqueryParams).then((response) => { console.log(response); this.optionstag = response.rows; }); @@ -896,9 +1066,9 @@ age: "", sex: "", tagList: [], - idno: "", + idcardno: "", telcode: "", - idtype: "", + idcardtype: "", relativetelcode: "", }; // this.resetForm("form"); @@ -917,7 +1087,7 @@ }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.patid); + this.ids = selection.map((item) => item.id); this.single = selection.length != 1; this.multiple = !selection.length; }, @@ -931,7 +1101,7 @@ /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { console.log(row); - const userIds = row.patid || this.ids; + const userIds = row.id || this.ids; particularpatient(userIds).then((response) => { console.log(response); this.form = response.data; @@ -939,10 +1109,10 @@ this.amendtag = true; this.Labelchange = true; }, - //淇敼/鏂板鎮h�� submitForm() { if (this.amendtag) { + this.form.isoperation = 2; alterpatient(this.form) .then((response) => { console.log(response); @@ -952,7 +1122,8 @@ this.$modal.msgSuccess("淇敼鎴愬姛"); }); } else { - addpatient(this.form) + this.form.isoperation = 1; + alterpatient(this.form) .then((response) => { console.log(response); }) @@ -985,6 +1156,31 @@ this.$router.push({ path: "/followvisit/particty", query: { type: this.serviceradio }, + }); + }, + distribute() { + this.distributeVisible = true; + if (this.tasktopic == 1) { + this.topqueryParams.type = 3; + } else if (this.tasktopic == 2) { + this.topqueryParams.type = 1; + } else if (this.tasktopic == 3) { + this.topqueryParams.type = 1; + } else if (this.tasktopic == 4) { + this.topqueryParams.type = 1; + } else if (this.tasktopic == 5) { + this.topqueryParams.type = 1; + } else if (this.tasktopic == 6) { + this.topqueryParams.type = 2; + } + this.topqueryParams.typename = this.findLabelByValue( + this.taskoptions, + this.tasktopic + ); + getTasklist(this.topqueryParams).then((response) => { + this.taskuserList = response.rows; + this.tasktotal = response.total; + this.$forceUpdate(); }); }, /** 瀵煎嚭鎸夐挳鎿嶄綔 */ @@ -1086,6 +1282,22 @@ display: center !important; } } +.preview-left { + margin: 20px; + // margin: 20px; + padding: 30px; + background: #ffff; + border: 1px solid #dcdfe6; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), + 0 0 6px 0 rgba(0, 0, 0, 0.04); + .scriptTopic-dev { + margin-bottom: 25px; + font-size: 20px !important; + .dev-text { + margin-bottom: 10px; + } + } +} ::v-deep.el-tabs--left, .el-tabs--right { overflow: hidden; @@ -1110,6 +1322,7 @@ } ::v-deep.leftvlue .el-card__body:hover { background: #8dc8f8; + cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */ } .leftvlue { width: 80%; -- Gitblit v1.9.3