From 66cc734e81fe0497d88e0951b6aee9c9c8342f2c Mon Sep 17 00:00:00 2001 From: WXL (wul) <wl_5969728@163.com> Date: 星期三, 17 九月 2025 11:43:07 +0800 Subject: [PATCH] 电话更新 --- src/components/PatientSelection/index.vue | 585 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 585 insertions(+), 0 deletions(-) diff --git a/src/components/PatientSelection/index.vue b/src/components/PatientSelection/index.vue new file mode 100644 index 0000000..d63746e --- /dev/null +++ b/src/components/PatientSelection/index.vue @@ -0,0 +1,585 @@ +<template> + <div> + <el-dialog + title="娲惧彂鎮h�呴�夋嫨" + :visible.sync="dialogVisiblepatient" + width="70%" + :before-close="handleClosehz" + > + <div class="examine-jic"> + <div style="margin: 0 10px 20px 10px"> + <el-card class="box-card"> + <el-tag + v-for="item in overallCase" + :key="item.icdid" + type="primary" + closables + @close="handleClose(item)" + > + {{ item.name }} + </el-tag> + <div style="margin-top: 20px; text-align: right"> + 鍏遍�夋嫨<span + style="font-size: 18px; color: #409eff; margin: 0 10px" + >{{ overallCase.length }}</span + >浣嶆偅鑰� + </div> + </el-card> + </div> + <div class="jic-value"> + <el-row :gutter="20"> + <!--鐢ㄦ埛鏁版嵁--> + <el-form + :model="patientqueryParams" + ref="queryForm" + size="small" + :inline="true" + label-width="98px" + > + <el-form-item label="鎮h�咃細"> + <el-input + v-model="patientqueryParams.name" + @keyup.enter.native="handleQuery" + ></el-input> + </el-form-item> + <el-form-item label="鎮h�呯被鍨�"> + <el-select + v-model="patientqueryParams.allhosp" + placeholder="璇烽�夋嫨鏂板绫诲瀷" + > + <el-option + v-for="item in taskoptions" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鎮h�呰瘖鏂細"> + <el-input + v-model="patientqueryParams.leavediagname" + @keyup.enter.native="handleQuery" + ></el-input> + </el-form-item> + <el-form-item label="涓绘不鍖荤敓锛�"> + <el-input + v-model="patientqueryParams.drname" + @keyup.enter.native="handleQuery" + ></el-input> + </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> + <!-- 閫夋嫨鎮h�呭垪琛� --> + <el-table + ref="multipleTable" + :data="donorchargeList" + tooltip-effect="dark" + style="width: 100%" + @selection-change="handleSelectionChange" + > + <el-table-column + fixed="left" + class="checkall" + type="selection" + width="55" + > + </el-table-column> + <div v-for="(item, index) in tableLabel"> + <el-table-column + v-if="item.label == '鍑洪櫌鏃ユ湡'" + :key="index" + :prop="item.prop" + :width="item.width" + :label="item.label" + :formatter="formatData" + > + <template slot-scope="scope"> + <span>{{ formatTime(scope.row.endtime) }}</span> + </template> + </el-table-column> + <el-table-column + v-if="item.label == '鎬у埆'" + :key="index" + :prop="item.prop" + :width="item.width" + :label="item.label" + :formatter="formatData" + > + <template slot-scope="scope"> + <span>{{ scope.row.sex == 1 ? "鐢�" : "濂�" }}</span> + </template> + </el-table-column> + + <el-table-column + v-if="item.label != '鎬у埆' && item.label != '鍑洪櫌鏃ユ湡'" + :key="index" + :prop="item.prop" + :width="item.width" + :label="item.label" + :formatter="formatData" + > + </el-table-column> + </div> + </el-table> + </el-row> + <pagination + v-show="patienttotal > 0" + :total="patienttotal" + :page.sync="patientqueryParams.pageNum" + :limit.sync="patientqueryParams.pageSize" + @pagination="handleQuery" + /> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="$emit('addoption')">鍙� 娑�</el-button> + <el-button type="primary" @click="AddDispatchpatients" + >纭畾娣诲姞</el-button + > + </span> + </el-dialog> + </div> +</template> + +<script> +import { + getillnesslist, + deltargetillness, + getTaskpatientQC, + Questionnairetaskgetson, + Externallist, + Editsingletask, +} from "@/api/AiCentre/index"; +export default { + name: "Diseasetotality", + data() { + return { + patienttotal: 0, // + allpids: [], + // 褰撳墠椤甸�変腑鏁版嵁 + multipleSelection: [], + overallpatin: [], + form: {}, + patientqueryParams: { + pageNum: 1, + pageSize: 10, + allhosp: "4", + pids: null, + }, + donorchargeList: [], + donorchargeanlList: [], //妗堜緥鍒楄〃 + taskoptions: [ + { + value: "4", + label: "鍑洪櫌鐥呬汉", + }, + { + value: "1", + label: "鍦ㄩ櫌鐥呬汉", + }, + { + value: "2", + label: "闂ㄨ瘖鐥呬汉", + }, + { + value: "3", + label: "浣撴鐥呬汉", + }, + { + value: "6", + label: "闄㈠鎮h��", + }, + { + value: "5", + label: "鎵嬫湳鐥呬汉", + }, + ], + overallCase:[], + tableLabel: [ + { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "inhosptime" }, + { label: "鎮h��", width: "", prop: "name" }, + { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" }, + { label: "韬唤璇�", width: "200", prop: "idcardno" }, + { label: "鎬у埆", width: "", prop: "sex" }, + { label: "骞撮緞", width: "", prop: "age" }, + { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" }, + { label: "涓绘不鍖荤敓", width: "", prop: "drname" }, + { label: "绉戝", width: "240", prop: "dept" }, + { label: "鐥呭尯", width: "240", prop: "leavehospitaldistrictname" }, + ], + }; + }, + + props: { + dialogVisiblepatient: { + type: Boolean, + default: () => { + return false; + }, + }, + + // 5闂嵎妯℃澘銆�3闅忚妯℃澘銆�6瀹f暀 + type: { + type: Number, + default: () => { + return 5; + }, + }, + }, + + created() {}, + + mounted() { + // this.handleAddpatient(); + }, + + watch: {}, + + methods: { + // 鏁版嵁杩囨护 + formatData(row, column, cellValue) { + if (column.property === "createType") { + if (cellValue === 1) { + return "鑷姩"; + } + return "鎵嬪姩"; + } + if ( + column.property === "createTime" || + column.property === "inhosptime" + ) { + if (cellValue === null) { + return ""; + } + return dayjs(cellValue).format("YYYY-MM-DD "); + } + return cellValue; + }, + handleClosehz() { + this.$emit("addoption"); + }, + // 閫夋嫨鏁版嵁鏍囩鍒犻櫎浜嬩欢 + handleClose(item) { + console.log(item); + if (this.multipleSelection.indexOf(item) == -1 && !item.outid) { + this.overallCase.splice(this.overallCase.indexOf(item), 1); + } else if (item.outid) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + item.icd10name + '"鐨勬暟鎹」锛�') + .then(() => { + this.multipleSelection.splice( + this.multipleSelection.indexOf(item), + 1 + ); + deltargetillness(item.id).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + this.overallCase.splice(this.overallCase.indexOf(item), 1); + } + }); + // 鍙栨秷鎸傝浇鐘舵�� + this.$refs.multipleTable.toggleRowSelection(item, false); + }) + .catch(() => {}); + } else { + this.overallCase.splice(this.overallCase.indexOf(item), 1); + this.multipleSelection.splice(this.multipleSelection.indexOf(item), 1); + // 鍙栨秷鎸傝浇鐘舵�� + this.$refs.multipleTable.toggleRowSelection(item, false); + } + }, + resetQuery() { + this.patientqueryParams.name = null; + this.handleAddpatient(); + }, + // 瑙﹀彂鏌ヨ浜嬩欢 + handleAddpatients() { + this.$emit("kkoption"); + + getillnesslist(this.patientqueryParams).then((res) => { + this.donorchargeList = res.rows; + this.patienttotal = res.total; + this.Restorecheck(); + }); + }, + // 瑙﹀彂鏌ヨ浜嬩欢 + handleAddpatient(taskid) { + this.$emit("kkoption"); + if (taskid != this.taskid) { + this.recover(); + } + if (taskid) { + this.taskid = taskid; + Questionnairetaskgetson({ taskid: this.taskid }).then((res) => { + if (res.code == 200) { + this.form = res.data; + this.overallpatin = this.form.patTaskRelevances.concat(); + this.allpids = []; + this.overallpatin.forEach((item) => { + this.allpids.push(item.patid); + }); + if (this.allpids[0]) { + this.patientqueryParams.pids = this.allpids; + } else { + this.patientqueryParams.pids = null; + } + this.handleQuery(); + } + }); + } + }, + handleQuery() { + // 鑾峰彇澶栭儴鎮h�� + if (this.patientqueryParams.allhosp == 6) { + this.Externallist(); + return; + } + console.log(11); + + if (this.patientqueryParams.allhosp == 4) { + this.tableLabel = [ + // { label: "鍏ラ櫌鏃ユ湡", width: "170", prop: "starttime" }, + { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" }, + { label: "鎮h��", width: "", prop: "name" }, + { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" }, + { label: "韬唤璇�", width: "200", prop: "idcardno" }, + { label: "鎬у埆", width: "", prop: "sex" }, + { label: "骞撮緞", width: "", prop: "age" }, + { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" }, + { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" }, + { label: "鍖荤敓", width: "", prop: "drname" }, + { label: "绉戝", width: "180", prop: "dept" }, + { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" }, + ]; + } else if (this.patientqueryParams.allhosp == 1) { + this.tableLabel = [ + { label: "鍏ラ櫌鏃ユ湡", width: "150", prop: "starttime" }, + { label: "鎮h��", width: "", prop: "name" }, + { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" }, + { label: "韬唤璇�", width: "200", prop: "idcardno" }, + { label: "鎬у埆", width: "", prop: "sex" }, + { label: "骞撮緞", width: "", prop: "age" }, + { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" }, + { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" }, + { label: "鍖荤敓", width: "", prop: "drname" }, + { label: "绉戝", width: "180", prop: "dept" }, + { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" }, + ]; + } + console.log(this.patientqueryParams.allhosp); + + // 鑾峰彇鎮h�呮暟鎹� + getTaskpatientQC(this.patientqueryParams).then((response) => { + this.donorchargeList = response.rows; + this.donorchargeList.forEach((item) => { + if (item.endtime) { + item.endDay = this.daysBetween(item.endtime); + } + }); + this.Restorecheck(); + + this.patienttotal = response.total; + }); + }, + // 鑾峰彇澶栭儴鎮h�呭鍏ュ垪琛� + Externallist() { + this.tableLabel = [ + { label: "鎮h��", width: "", prop: "name" }, + { label: "韬唤璇�", width: "200", prop: "idcardno" }, + { label: "鎬у埆", width: "", prop: "sex" }, + { label: "骞撮緞", width: "", prop: "age" }, + { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" }, + ]; + this.patientqueryParams.pageSize = 1000; + + Externallist(this.patientqueryParams).then((response) => { + this.donorchargeList = response.rows; + this.donorchargeList.forEach((item) => { + if (item.endtime) { + item.endDay = this.daysBetween(item.endtime); + } + }); + // this.dialogVisiblepatient = true; + this.patienttotal = response.total; + }); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + if (this.decision) return; + // 鍒ゆ柇鏄惁鏈夊垹闄� + if (this.multipleSelection.length <= selection.length) { + this.multipleSelection = selection; + } else { + this.multipleSelection.forEach((item) => { + if (selection.includes(item)) { + } else { + if (this.multipleSelection.length == 1) { + this.multipleSelection = []; + } else { + this.multipleSelection.splice( + this.multipleSelection.indexOf(item), + 1 + ); + } + if (this.overallCase.length == 1) { + this.overallCase = []; + } else { + this.overallCase.splice(this.overallCase.indexOf(item), 1); + } + } + }); + } + // 璧嬪�肩粰鏁翠綋閫変腑鏁扮粍 + this.multipleSelection.forEach((item) => { + if (this.overallCase.every((obj) => obj.name != item.name)) { + item.isoperation = 1; + item.patid = item.id; + item.hospType = this.patientqueryParams.allhosp; + item.sfzh = item.idcardno; + item.deptCode = item.deptcode; + item.deptName = item.dept; + item.admindate = item.inhosptime; + item.diagname = item.leavediagname; + item.sfzh = item.idcardno; + if (this.patientqueryParams.allhosp == 6) { + item.patfrom = 1; + } + this.overallCase.push(item); + } + }); + console.log(this.multipleSelection, "瑙﹀彂閫夋嫨鍚巑ultipleSelection"); + }, + // 鍒囨崲椤靛悗鎭㈠閫変腑 + Restorecheck() { + console.log(this.overallCase, "this.overallCase"); + const allid = this.overallCase.map((item) => item.name); + const overlap = this.donorchargeList.filter((value) => { + return allid.includes(value.name); + }); + // 淇濇寔ids鍜屽綋鍓嶉〉闈㈢殑鍚屾鎬� + this.multipleSelection = overlap; + console.log(this.multipleSelection, "杩涘叆鍒嗛〉multipleSelection"); + + this.toggleSelection(overlap); + }, + // 鎸傝浇閫夋嫨鐘舵�� + toggleSelection(rows) { + if (rows) { + this.decision = true; + this.$nextTick(() => { + rows.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row, true); + }); + this.decision = false; + }); + console.log(123); + } else { + this.$refs.multipleTable.clearSelection(); + } + }, + AddDispatchpatients() { + console.log(this.overallCase); + this.form.patTaskRelevances.push(...this.overallCase); + console.log(this.form.patTaskRelevances); + this.form.isoperation=2; + Editsingletask(this.form).then((res) => { + if (res.code == 200) { + if (this.form.taskid) { + this.$modal.msgSuccess("淇敼鎴愬姛"); + } else { + this.$modal.msgSuccess("鏂板鎴愬姛"); + } + this.recover(); + this.$emit("addoption"); + + } + }); + // this.dialogVisiblepatient = false; + // this.$emit("addoption"); + }, + recover() { + this.donorchargeList = []; + this.donorchargeanlList = []; + this.multipleSelection = []; + this.allpids = []; + this.overallpatin = []; + this.form = {}; + this.patientqueryParams = { + pageNum: 1, + pageSize: 10, + allhosp: "4", + pids: null, + }; + this.overallCase = []; + // this.dialogVisiblepatient = false; + }, + }, +}; +</script> + +<style lang="scss" scoped> +.examine-jic { + .headline { + font-size: 24px; + border-left: 5px solid #41a1be; + padding-left: 5px; + margin-bottom: 10px; + display: flex; + justify-content: space-between; + .Add-details { + font-size: 18px; + color: #02a7f0; + cursor: pointer; + } + } + .jic-value { + font-size: 20px; + border-top: 1px solid #a7abac; + padding: 10px; + margin-bottom: 10px; + .details-jic { + padding: 10px 15px; + 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); + .details-title { + display: flex; + justify-content: space-between; + margin-bottom: 10px; + div:nth-child(2) { + color: #02a7f0; + cursor: pointer; + } + } + .details-renw { + background: #e4ebfc; + padding: 15px 5px; + border-radius: 5px; + margin-bottom: 20px; + } + } + } +} +::v-deep.el-table .el-table__header th:first-child .el-checkbox { + display: none; +} +.el-tag + .el-tag { + margin-left: 10px; + margin-bottom: 10px; +} +</style> -- Gitblit v1.9.3