From a5cba9ab040f6f97558046885dce3017f9bab7e9 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 11 八月 2026 14:12:29 +0800
Subject: [PATCH] 提交
---
src/views/followvisit/discharge/index.vue | 394 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 290 insertions(+), 104 deletions(-)
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 0ed1b45..15b77d9 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -169,7 +169,7 @@
plain
icon="el-icon-warning-outline"
size="medium"
- @click="toleadExport(1)"
+ @click="toleadExport(1, 1)"
>鎵ц澶辫触</el-button
>
</div>
@@ -183,7 +183,7 @@
plain
icon="el-icon-warning"
size="medium"
- @click="toleadExport(2)"
+ @click="toleadExport(2, 1)"
>缁撴灉寮傚父</el-button
>
</div>
@@ -373,6 +373,15 @@
</template>
</el-table-column>
<el-table-column
+ label="褰撳墠鎵ц鏂瑰紡"
+ align="center"
+ key="currentPreachform"
+ prop="currentPreachform"
+ width="160"
+ :show-overflow-tooltip="true"
+ >
+ </el-table-column>
+ <el-table-column
label="闅忚瀹屾垚鏃堕棿"
sortable
align="center"
@@ -395,16 +404,30 @@
</template></el-table-column
>
<el-table-column
+ label="寮�濮嬮殢璁挎椂闂�"
+ width="146"
+ align="center"
+ key="longSendTime"
+ prop="longSendTime"
+ :render-header="Tooltipks"
+ >
+ <template slot-scope="scope">
+ <span>{{ formatTime(scope.row.longSendTime) }}</span>
+ </template></el-table-column
+ >
+ <el-table-column
label="搴旈殢璁挎棩鏈�"
width="146"
align="center"
key="visitTime"
prop="visitTime"
+ :render-header="Tooltipy"
>
<template slot-scope="scope">
<span>{{ formatTime(scope.row.visitTime) }}</span>
</template></el-table-column
>
+
<!-- 鍘� -->
<el-table-column
label="涓绘不鍖荤敓"
@@ -412,6 +435,20 @@
align="center"
key="drname"
prop="drname"
+ />
+ <el-table-column
+ label="璐d换鎶ゅ+"
+ width="120"
+ align="center"
+ key="nurseName"
+ prop="nurseName"
+ />
+ <el-table-column
+ label="缁忕鍖荤敓"
+ align="center"
+ key="managementDoctor"
+ prop="managementDoctor"
+ width="120"
/>
<el-table-column
v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
@@ -495,20 +532,6 @@
prop="sfzh"
/>
- <el-table-column
- label="璐d换鎶ゅ+"
- width="120"
- align="center"
- key="nurseName"
- prop="nurseName"
- />
- <el-table-column
- label="缁忕鍖荤敓"
- align="center"
- key="managementDoctor"
- prop="managementDoctor"
- width="120"
- />
<!-- <el-table-column
label="鐥呭巻鍙�"
align="center"
@@ -635,6 +658,15 @@
@click="handleUpdate(scope.row)"
><span class="button-textxga"
><i class="el-icon-edit"></i>鎮h�呰繃婊�</span
+ ></el-button
+ >
+ <el-button
+ size="medium"
+ type="text"
+ v-if="orgname == '鍗楀崕澶у闄勫睘绗竴鍖婚櫌'"
+ @click="handleTransferOpen(scope.row)"
+ ><span class="button-textxgc"
+ ><i class="el-icon-sort"></i>鍙樻洿绉�/鍖�</span
></el-button
>
</template>
@@ -896,81 +928,7 @@
<el-button @click="cancel">鍙� 娑�</el-button>
</div>
</el-dialog>
- <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
- <el-dialog
- title="鍙戦�佹椂闂磋缃�"
- :visible.sync="modificationVisible"
- width="45%"
- >
- <div style="margin-bottom: 20px; color: red">
- 缁熶竴淇敼褰撳ぉ鏈彂閫佺殑浠诲姟鏃堕棿
- </div>
- <el-form
- :model="ruleForm"
- :rules="rules"
- ref="ruleForm"
- label-width="120px"
- class="demo-ruleForm"
- >
- <el-form-item label="鍙戦�佹棩鏈�">
- <el-date-picker
- v-model="ruleForm.value1"
- type="date"
- placeholder="閫夋嫨鏃ユ湡"
- >
- </el-date-picker>
- </el-form-item>
-
- <el-form-item label="鏃堕棿娈�" prop="type">
- <el-checkbox-group v-model="ruleForm.type">
- <el-checkbox label="涓婂崍" name="type"></el-checkbox>
- <el-checkbox label="涓嬪崍" name="type"></el-checkbox>
- <el-checkbox label="鏅氫笂" name="type"></el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="涓婂崍鏃堕棿鍖洪棿" required>
- <el-time-picker
- is-range
- v-model="ruleForm.value2"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿"
- placeholder="閫夋嫨鏃堕棿鑼冨洿"
- >
- </el-time-picker>
- </el-form-item>
- <el-form-item label="涓嬪崍鏃堕棿鍖洪棿" required>
- <el-time-picker
- is-range
- v-model="ruleForm.value3"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿"
- placeholder="閫夋嫨鏃堕棿鑼冨洿"
- >
- </el-time-picker>
- </el-form-item>
- <el-form-item label="鏅氫笂鏃堕棿鍖洪棿" required>
- <el-time-picker
- is-range
- v-model="ruleForm.value4"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿"
- placeholder="閫夋嫨鏃堕棿鑼冨洿"
- >
- </el-time-picker>
- </el-form-item>
- </el-form>
-
- <span slot="footer" class="dialog-footer">
- <el-button @click="modificationVisible = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="modificationVisible = false"
- >纭� 瀹�</el-button
- >
- </span>
- </el-dialog>
<!-- 鍐嶆闅忚 -->
<el-dialog title="鎮h�呭啀娆¢殢璁�" :visible.sync="dialogFormVisible">
<el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px">
@@ -1043,6 +1001,57 @@
<el-button type="primary" @click="setupsubtask">纭鍒涘缓鏈嶅姟</el-button>
</div>
</el-dialog>
+
+ <!-- 鍙樻洿绉戝/鐥呭尯寮圭獥 -->
+ <el-dialog
+ title="鍙樻洿绉戝/鐥呭尯"
+ :visible.sync="transferDialogVisible"
+ width="480px"
+ :close-on-click-modal="false"
+ >
+ <el-form :model="transferForm" label-width="100px">
+ <el-form-item label="褰撳墠绉戝">
+ <span>{{ transferForm.currentDeptName || "-" }}</span>
+ </el-form-item>
+ <el-form-item label="褰撳墠鐥呭尯">
+ <span>{{ transferForm.currentWardName || "-" }}</span>
+ </el-form-item>
+ <el-form-item label="鐩爣绉戝">
+ <el-cascader
+ v-model="transferDeptValue"
+ :options="deptOptionsks"
+ :props="cascaderPropsa"
+ placeholder="璇烽�夋嫨鐩爣绉戝"
+ filterable
+ clearable
+ style="width: 100%"
+ @change="handleDeptCascaderChange"
+ />
+ </el-form-item>
+ <el-form-item label="鐩爣鐥呭尯">
+ <el-cascader
+ v-model="transferWardValue"
+ :options="deptOptionsbq"
+ :props="cascaderPropsa"
+ placeholder="璇烽�夋嫨鐩爣鐥呭尯"
+ filterable
+ clearable
+ style="width: 100%"
+ @change="handleWardCascaderChange"
+ />
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="transferDialogVisible = false">鍙� 娑�</el-button>
+ <el-button
+ type="primary"
+ :loading="transferLoading"
+ @click="handleTransferSubmit"
+ >
+ 纭鍙樻洿
+ </el-button>
+ </div>
+ </el-dialog>
</div>
</template>
@@ -1053,6 +1062,7 @@
updateUser,
resetUserPwd,
changeUserStatus,
+ deptTreeSelect,
} from "@/api/system/user";
import {
getTaskservelist,
@@ -1060,6 +1070,7 @@
addserviceSubtask,
query360PatInfo,
addsatisfaction,
+ transferDept,
query360PatInfonh,
} from "@/api/AiCentre/index";
import { alterpatient, particularpatient } from "@/api/patient/homepage";
@@ -1094,8 +1105,7 @@
title: "鏂板褰卞儚闅忚",
// 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
addalteropen: false,
- // 淇敼鍙戦�佹椂闂村璇濇
- modificationVisible: false,
+
// 閮ㄩ棬鍚嶇О
deptName: undefined,
// 榛樿瀵嗙爜
@@ -1271,12 +1281,21 @@
pageNum: 1,
pageSize: 10,
sendstateView: 1,
- sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 1, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+ sort:
+ localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌"
+ ? 8
+ : localStorage.getItem("orgname") == "鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�"
+ ? 2
+ : 1, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
serviceType: 2,
sendstate: null,
searchscope: 3,
visitCount: 1,
scopetype: [],
+ managementDoctor:
+ localStorage.getItem("orgname") == "缂欎簯鍘夸汉姘戝尰闄�"
+ ? store.getters.nickName
+ : "",
leaveldeptcodes: [],
leavehospitaldistrictcodes: [],
},
@@ -1374,6 +1393,25 @@
leavehospitaldistrictcode: "",
serviceState: [],
checkboxlist: [],
+ // 鍙樻洿绉戝/鐥呭尯
+ transferDialogVisible: false,
+ transferForm: {
+ subId: null,
+ leavelDeptCode: "",
+ leavelDeptName: "",
+ leavehospitaldistrictcode: "",
+ leavehospitaldistrictname: "",
+ },
+ deptOptionsks: [],
+ deptOptionsbq: [],
+ transferDeptValue: [],
+ transferWardValue: [],
+ cascaderPropsa: {
+ value: "deptCode",
+ label: "label",
+ checkStrictly: true,
+ },
+ transferLoading: false,
// 琛ㄥ崟鏍¢獙
rules: {},
};
@@ -1529,10 +1567,8 @@
}
if (item.preachform) {
- if (item.endtime) {
- item.preachformson = item.preachform;
- idArray = item.preachform.split(",");
- }
+ item.preachformson = item.preachform;
+ idArray = item.preachform.split(",");
item.preachform = idArray.map((value) => {
const item = this.checkboxlist.find(
@@ -1540,6 +1576,12 @@
);
return item ? item.label : null;
});
+ }
+ if (item.currentPreachform) {
+ item.currentPreachform = this.checkboxlist.find(
+ (item) => item.value == item.currentPreachform
+ )?.value;
+ console.log(item.currentPreachform, "mi");
}
});
@@ -1576,6 +1618,32 @@
this.getList(1);
}
},
+ Tooltipy(h, { column }) {
+ return h(
+ "el-tooltip",
+ {
+ props: {
+ content: "浠诲姟閰嶇疆澶氱琛ュ伩绫诲瀷鏃讹紝鏈�鏂版墽琛岀被鍨嬬殑搴旈殢璁挎椂闂�",
+ placement: "top",
+ effect: "dark",
+ },
+ },
+ [h("span", column.label)]
+ );
+ },
+ Tooltipks(h, { column }) {
+ return h(
+ "el-tooltip",
+ {
+ props: {
+ content: "浠诲姟瀛樺湪澶氱琛ュ伩绫诲瀷鏃剁殑棣栨搴旈殢璁挎椂闂�",
+ placement: "top",
+ effect: "dark",
+ },
+ },
+ [h("span", column.label)]
+ );
+ },
// 鏃堕棿
getEndOfDay() {
const date = new Date(); // 鍒涘缓涓�涓〃绀哄綋鍓嶆椂闂寸殑Date瀵硅薄
@@ -1593,10 +1661,13 @@
return `${year}-${month}-${day}`;
},
affiliation() {
+ this.resetQuerykj();
this.topqueryParams.managementDoctorCode = store.getters.hisUserId;
this.getList(1);
},
onthatday() {
+ this.resetQuerykj();
+
this.topqueryParams.startSendDateTime = this.getCurrentDate();
this.topqueryParams.endSendDateTime = this.getCurrentDate();
this.getList(1);
@@ -1605,7 +1676,11 @@
const now = new Date();
return now.toISOString().slice(0, 10); // 鎴彇鍓�10涓瓧绗︼紝鍗� YYYY-MM-DD
},
+
buidegetTasklist(type) {
+ if (type) {
+ this.resetQuerykj();
+ }
if (this.topqueryParams.searchscope == 3) {
this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
(obj) => obj.deptCode
@@ -1814,6 +1889,24 @@
leavehospitaldistrictcodes: [],
};
this.handleQuery(1);
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuerykj() {
+ this.dateRange = [];
+ this.dateRangefs = [];
+ this.serviceStatusValue = null;
+ this.topqueryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ sendstateView: null,
+ sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭)
+ serviceType: 2,
+ searchscope: 3,
+ visitCount: 1,
+ scopetype: [],
+ leaveldeptcodes: [],
+ leavehospitaldistrictcodes: [],
+ };
},
handleSelectionChange(rows) {
// 鉁� 濡傛灉鏄仮澶嶉�変腑鐘舵�佽Е鍙戠殑锛岀洿鎺ヨ繑鍥�
@@ -2036,10 +2129,7 @@
})
.catch(() => {});
},
- // 璁剧疆鍙戦�佹椂闂�
- Sendtimesetting() {
- this.modificationVisible = true;
- },
+
// 璺宠浆璇︽儏椤�
Seedetails(row) {
let type = "";
@@ -2105,8 +2195,10 @@
this.Labelchange = true;
},
// 渚挎嵎鎸夐挳
- toleadExport(too) {
- console.log(too, "too");
+ toleadExport(too, type) {
+ if (type) {
+ this.resetQuerykj();
+ }
if (too == 1) {
this.topqueryParams.sendstate = 4;
@@ -2118,7 +2210,6 @@
this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS(
this.getEndOfDay()
);
- console.log(1111, this.topqueryParams.endSendDateTime);
this.topqueryParams.excep = null;
this.topqueryParams.sendstate = 2;
@@ -2274,6 +2365,98 @@
const seconds = String(now.getSeconds()).padStart(2, "0");
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+ },
+
+ // ---------- 鍙樻洿绉戝/鐥呭尯 ----------
+ handleTransferOpen(row) {
+ if (!this.deptOptionsks.length) {
+ deptTreeSelect(1).then((res) => {
+ this.deptOptionsks = res.data || [];
+ });
+ deptTreeSelect(2).then((res) => {
+ this.deptOptionsbq = res.data || [];
+ });
+ }
+ this.transferForm = {
+ subId: row.id || row.subtaskid,
+ leavelDeptCode: "",
+ leavelDeptName: "",
+ leavehospitaldistrictcode: "",
+ leavehospitaldistrictname: "",
+ currentDeptName: row.deptname || row.deptName || "",
+ currentWardName:
+ row.leavehospitaldistrictname || row.leavehospitaldistrictName || "",
+ };
+ this.transferDeptValue = [];
+ this.transferWardValue = [];
+ this.transferDialogVisible = true;
+ },
+ handleDeptCascaderChange(val) {
+ if (val && val.length) {
+ this.transferForm.leavelDeptCode = val[val.length - 1];
+ // 浠庨�夐」鏍戜腑鏌ユ壘瀵瑰簲鍚嶇О
+ const node = this.findCascaderNode(this.deptOptionsks, this.transferForm.leavelDeptCode);
+ this.transferForm.leavelDeptName = node ? node.label : '';
+ } else {
+ this.transferForm.leavelDeptCode = '';
+ this.transferForm.leavelDeptName = '';
+ }
+ },
+ handleWardCascaderChange(val) {
+ if (val && val.length) {
+ this.transferForm.leavehospitaldistrictcode = val[val.length - 1];
+ const node = this.findCascaderNode(this.deptOptionsbq, this.transferForm.leavehospitaldistrictcode);
+ this.transferForm.leavehospitaldistrictname = node ? node.label : '';
+ } else {
+ this.transferForm.leavehospitaldistrictcode = '';
+ this.transferForm.leavehospitaldistrictname = '';
+ }
+ },
+ findCascaderNode(options, code) {
+ for (const item of options) {
+ if (item.deptCode === code || item.value === code) return item;
+ if (item.children) {
+ const found = this.findCascaderNode(item.children, code);
+ if (found) return found;
+ }
+ }
+ return null;
+ },
+ handleTransferSubmit() {
+ const hasDept = !!this.transferForm.leavelDeptCode;
+ const hasWard = !!this.transferForm.leavehospitaldistrictcode;
+ if (!hasDept && !hasWard) {
+ this.$modal.msgError("璇疯嚦灏戦�夋嫨鐩爣绉戝鎴栫洰鏍囩梾鍖�");
+ return;
+ }
+ console.log(this.transferForm);
+
+ // 缁勮鍙樻洿鎻愮ず鏂囨湰
+ const deptName = this.transferForm.leavelDeptName || "涓嶅彉";
+ const wardName = this.transferForm.leavehospitaldistrictname || "涓嶅彉";
+ const tip = `纭灏嗙瀹ゅ彉鏇翠负"${deptName}"銆佺梾鍖哄彉鏇翠负"${wardName}"锛焋;
+ this.$modal
+ .confirm(tip, "鍙樻洿纭")
+ .then(() => {
+ this.transferLoading = true;
+ transferDept(this.transferForm)
+ .then((res) => {
+ if (res.code === 200) {
+ this.$modal.msgSuccess("绉戝/鐥呭尯鍙樻洿鎴愬姛");
+ this.transferDialogVisible = false;
+ this.getList();
+ } else {
+ this.$modal.msgError(res.msg || "鍙樻洿澶辫触");
+ }
+ })
+ .catch(() => {
+ this.$modal.msgError("鍙樻洿澶辫触锛岃閲嶈瘯");
+ })
+ .finally(() => {
+ this.transferLoading = false;
+ });
+ })
+ .catch(() => {});
},
},
};
@@ -2454,6 +2637,9 @@
.button-textxga {
color: #de7897;
}
+.button-textxgc {
+ color: #9054e4;
+}
.purple-button.is-disabled {
background-color: #d8b4fe;
border-color: #d8b4fe;
--
Gitblit v1.9.3