From de147dda682f8ac597bbcc8555b57acbdf45dba2 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期四, 13 十一月 2025 16:55:51 +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