From d90b45d7e9e38e34c044b772006004f2a4cb8b8e Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期五, 26 六月 2026 13:51:50 +0800
Subject: [PATCH] 测试完成
---
src/views/followvisit/discharge/index.vue | 399 ++++++++++++++++++++++++++++++++++----------------------
1 files changed, 239 insertions(+), 160 deletions(-)
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 0f3f605..8725d92 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -1,86 +1,11 @@
<template>
<div class="app-container">
- <div class="leftvlue" style="margin-bottom: 20px">
- <el-row :gutter="10">
- <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
- <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="
- text-align: center;
- font-size: 18px;
- margin-top: 10px;
- font-weight: 600;
- "
- >
- {{ item.value ? item.value : 0 }}
- </div>
- </div>
- </el-card>
- </el-col>
- <el-col :span="2.5">
- <div class="ysfleftvlue">
- <el-card shadow="hover">
- <div style="padding: 8px">
- <span>琛ㄥ崟宸插彂閫�</span>
- <div
- style="
- text-align: center;
- font-size: 18px;
- margin-top: 10px;
- font-weight: 600;
- "
- >
- {{ yfsvalue }}
- </div>
- </div>
- </el-card>
- </div>
- </el-col>
- <el-col :span="2.5">
- <div class="errleftvlue">
- <el-card shadow="hover">
- <div style="padding: 8px">
- <span>寮傚父</span>
- <div
- style="
- text-align: center;
- font-size: 18px;
- margin-top: 10px;
- font-weight: 600;
- "
- >
- {{ ycvalue }}
- </div>
- </div>
- </el-card>
- </div>
- </el-col>
- <el-col :span="2.5" v-if="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'">
- <div class="jgleftvlue">
- <el-card shadow="hover ">
- <div style="padding: 8px">
- <span>璀﹀憡</span>
- <div
- style="
- text-align: center;
- font-size: 18px;
- margin-top: 10px;
- font-weight: 600;
- "
- >
- {{ jgvalue }}
- </div>
- </div>
- </el-card>
- </div>
- </el-col>
- </el-row>
- </div>
+ <statistics-cards
+ :cardlist="cardlist"
+ :ycvalue="ycvalue"
+ :jgvalue="jgvalue"
+ :show-warning-condition="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'"
+ />
<el-row :gutter="20">
<!--鐢ㄦ埛鏁版嵁-->
<el-form
@@ -169,19 +94,20 @@
:options="sourcetype"
:props="{ expandTrigger: 'hover' }"
@change="handleChange"
+ filterable
+ clearable
></el-cascader>
</el-form-item>
- <el-form-item label="鏈嶅姟鐘舵��" prop="status">
- <el-select v-model="topqueryParams.sendstateView" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in topicoptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
+ <el-form-item label="闅忚鐘舵��" prop="status">
+ <el-cascader
+ v-model="serviceStatusValue"
+ placeholder="璇烽�夋嫨"
+ :options="serviceStatusOptions"
+ :props="cascaderProps"
+ @change="handleServiceStatusChange"
+ clearable
+ ></el-cascader>
</el-form-item>
<el-form-item label="鎺掑簭鏂瑰紡" prop="status">
@@ -225,7 +151,7 @@
</div>
</div>
</el-col>
- <el-col :span="1.5">
+ <!-- <el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
@@ -233,7 +159,7 @@
@click="handleAdd"
>鏂板</el-button
>
- </el-col>
+ </el-col> -->
<el-col :span="1.5">
<div class="documentf">
@@ -383,6 +309,7 @@
effect="dark"
:content="scope.row.remark"
placement="top-start"
+ popper-class="statistics-tooltip"
>
<div v-if="scope.row.sendstateView == 1">
<el-tag type="primary" :disable-transitions="false"
@@ -390,22 +317,12 @@
>
</div>
<div v-if="scope.row.sendstateView == 2">
- <el-tag type="primary" :disable-transitions="false"
- >闅忚涓�</el-tag
- >
- </div>
- <div v-if="scope.row.sendstateView == 3">
- <el-tag type="warning" :disable-transitions="false"
- >鏈畬鎴�</el-tag
- >
- </div>
- <div v-if="scope.row.sendstateView == 4">
<el-tag type="success" :disable-transitions="false"
>宸插畬鎴�</el-tag
>
</div>
- <div v-if="scope.row.sendstateView == 5">
- <el-tag type="danger" :disable-transitions="false"
+ <div v-if="scope.row.sendstateView == 3">
+ <el-tag type="warning" :disable-transitions="false"
>鏃犻渶闅忚</el-tag
>
</div>
@@ -427,6 +344,7 @@
/>
</template>
</el-table-column>
+
<el-table-column
label="浠诲姟鎵ц鏂瑰紡"
align="center"
@@ -452,7 +370,7 @@
</el-table-column>
<el-table-column
label="鍑洪櫌鏃ユ湡"
- width="200"
+ width="146"
align="center"
key="endtime"
prop="endtime"
@@ -463,7 +381,7 @@
>
<el-table-column
label="搴旈殢璁挎棩鏈�"
- width="200"
+ width="146"
align="center"
key="visitTime"
prop="visitTime"
@@ -489,13 +407,53 @@
width="120"
/>
<el-table-column
- v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
- label="缁忕鍖荤敓"
+ label="浠诲姟鐘舵��"
align="center"
- key="managementDoctor"
- prop="managementDoctor"
+ key="sendstate"
+ prop="sendstate"
width="120"
- />
+ >
+ <template slot-scope="scope">
+ <el-tooltip
+ class="item"
+ effect="dark"
+ :content="scope.row.remark"
+ placement="top-start"
+ >
+ <div v-if="scope.row.sendstate == 1">
+ <el-tag type="primary" :disable-transitions="false"
+ >琛ㄥ崟宸查鍙�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 2">
+ <el-tag type="primary" :disable-transitions="false"
+ >寰呴殢璁�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 3">
+ <el-tag type="success" :disable-transitions="false"
+ >琛ㄥ崟宸插彂閫�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 4">
+ <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+ </div>
+ <div v-if="scope.row.sendstate == 5">
+ <el-tag type="danger" :disable-transitions="false"
+ >鍙戦�佸け璐�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 6">
+ <el-tag type="success" :disable-transitions="false"
+ >宸插畬鎴�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstate == 7">
+ <el-tag type="danger" :disable-transitions="false">瓒呮椂</el-tag>
+ </div>
+ </el-tooltip>
+ </template>
+ </el-table-column>
<el-table-column
label="鍑洪櫌澶╂暟"
width="120"
@@ -508,13 +466,6 @@
</template>
</el-table-column>
<el-table-column
- label="韬唤璇佸彿鐮�"
- width="200"
- align="center"
- key="sfzh"
- prop="sfzh"
- />
- <el-table-column
label="鑱旂郴鐢佃瘽"
width="200"
align="center"
@@ -522,13 +473,27 @@
prop="phone"
/>
<el-table-column
+ label="韬唤璇佸彿鐮�"
+ width="200"
+ align="center"
+ key="sfzh"
+ 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"
@@ -580,6 +545,7 @@
</span>
</template>
</el-table-column> -->
+
<el-table-column
label="浠诲姟缁撴灉璇存槑"
width="220"
@@ -901,6 +867,11 @@
type="textarea"
placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
></el-input>
+ <!-- 鎻愰啋鏂囧瓧 -->
+ <div class="filter-warning">
+ <i class="el-icon-warning-outline"></i>
+ 璇ュ姛鑳介�傜敤浜庢浜°�佸垪鍏ュ尰闄㈤粦鍚嶅崟銆佹槑纭嫆缁濋殢璁跨瓑鎮h�呯殑杩囨护鎺掗櫎锛岃繃婊ゅ悗璇ユ偅鑰呮墍鏈夎繘琛屼腑浠诲姟鍏ㄩ儴鍋滄涓旀棤娉曞尮閰嶆柊鐨勯殢璁夸换鍔★紝璇疯皑鎱庢搷浣滐紒
+ </div>
</el-form-item>
</el-col>
</el-row>
@@ -1078,13 +1049,15 @@
} from "@/api/AiCentre/index";
import { alterpatient, particularpatient } from "@/api/patient/homepage";
import Treeselect from "@riophae/vue-treeselect";
+import StatisticsCards from "@/components/StatisticsCards";
+
import store from "@/store";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Discharge",
dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
- components: { Treeselect },
+ components: { Treeselect, StatisticsCards },
data() {
return {
// 閬僵灞�
@@ -1124,7 +1097,7 @@
dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
inputVisible: false,
Labelchange: false,
- ycvalue: "",
+ ycvalue: 0,
jgvalue: "",
yfsvalue: "",
inputValue: "",
@@ -1137,7 +1110,41 @@
// 婊℃剰搴﹁皟鏌ユ暟鎹�
scoreDialogVisible: false,
selectedRows: [],
-
+ // 绾ц仈閫夋嫨鍣ㄧ粦瀹氬��
+ serviceStatusValue: 10,
+ cascaderProps: {
+ expandTrigger: "hover", // 鎮仠灞曞紑
+ checkStrictly: true, // 鉁� 鍏抽敭锛氬厑璁搁�変腑浠绘剰涓�绾�
+ emitPath: false, // 鉁� 鍙繑鍥為�変腑鐨勫�硷紝涓嶈繑鍥炶矾寰勬暟缁�
+ },
+ // 鏈嶅姟鐘舵�侀�夐」锛堜竴绾у拰浜岀骇鍊间笉鍐茬獊锛�
+ serviceStatusOptions: [
+ {
+ value: null,
+ label: "鍏ㄩ儴",
+ },
+ {
+ value: 10, // 涓�绾э細寰呴殢璁�
+ label: "寰呴殢璁�",
+ children: [
+ { value: 1, label: "琚鍙�" },
+ { value: 2, label: "寰呭彂閫�" },
+ { value: 3, label: "宸插彂閫�" },
+ { value: 5, label: "鍙戦�佸け璐�" },
+ { value: 7, label: "瓒呮椂" },
+ ],
+ },
+ {
+ value: 20, // 涓�绾э細宸插畬鎴�
+ label: "宸插畬鎴�",
+ children: [{ value: 6, label: "宸插畬鎴�" }],
+ },
+ {
+ value: 30, // 涓�绾э細鏃犻渶闅忚
+ label: "鏃犻渶闅忚",
+ children: [{ value: 4, label: "涓嶆墽琛�" }],
+ },
+ ],
value: [],
list: [],
@@ -1160,34 +1167,26 @@
loading: false,
cardlist: [
{
- name: "鍑洪櫌鏈嶅姟鎬婚噺",
+ name: "鎮h�呮湇鍔℃�婚噺",
value: 0,
},
- // {
- // name: "鎮h�呰繃婊�",
- // value: 0,
- // },
+
+ {
+ name: "鏃犻渶闅忚",
+ value: 0,
+ },
{
name: "闇�闅忚",
- value: 0,
- },
- {
- name: "鍙戦�佸け璐�",
value: 0,
},
{
name: "寰呴殢璁�",
value: 0,
},
- // {
- // name: "宸插彂閫�",
- // value: 0,
- // },
-
- // {
- // name: "琛ㄥ崟宸插彂閫�",
- // value: 0,
- // },
+ {
+ name: "宸插畬鎴�",
+ value: 0,
+ },
],
zcrules: {
date1: [
@@ -1207,7 +1206,8 @@
btstatus: "",
},
// endOut: 1,
- endOut: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+ endOut:
+ localStorage.getItem("orgname") == "鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
endOuts: [
{
value: 0,
@@ -1252,10 +1252,10 @@
topqueryParams: {
pageNum: 1,
pageSize: 10,
- sendstateView:
- localStorage.getItem("orgname") == "鐪佺珛鍚屽痉缈犺嫅闄㈠尯" ? null : 2,
- sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 2, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+ sendstateView: 1,
+ sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 1, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
serviceType: 2,
+ sendstate: null,
searchscope: 3,
visitCount: 1,
scopetype: [],
@@ -1364,10 +1364,9 @@
// 鐩戝惉璺敱鍙傛暟鍙樺寲
"$route.query": {
handler(newQuery, oldQuery) {
- if (newQuery.errtype !== oldQuery.errtype) {
+ if (newQuery?.errtype !== oldQuery?.errtype) {
console.log(22);
-
- this.loadData(); // 閲嶆柊鍔犺浇鏁版嵁
+ this.loadData();
}
},
immediate: true,
@@ -1477,16 +1476,14 @@
this.total = response.total;
if (refresh) {
this.cardlist[0].value =
- Number(response.rows[0].wzx) +
- Number(response.rows[0].ysf) +
- Number(response.rows[0].fssb);
+ Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0;
// this.cardlist[1].value = response.rows[0].wzx;
- this.cardlist[1].value = response.rows[0].ysf;
- this.ycvalue = response.rows[0].yc;
+ this.cardlist[1].value = response.rows[0].wxsf || 0;
+ this.ycvalue = Number(response.rows[0].yc) || 0;
this.jgvalue = response.rows[0].jg;
- this.cardlist[2].value = response.rows[0].fssb;
- this.cardlist[3].value = response.rows[0].dsf;
- // this.cardlist[4].value = response.rows[0].yfs2;
+ this.cardlist[2].value = response.rows[0].xsf || 0;
+ this.cardlist[3].value = response.rows[0].dsf || 0;
+ this.cardlist[4].value = response.rows[0].ywc || 0;
this.yfsvalue = response.rows[0].yfs;
}
this.loading = false;
@@ -1590,10 +1587,10 @@
this.userList = response.rows[0].serviceSubtaskList;
this.total = response.total;
this.cardlist[0].value =
- Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+ Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0;
this.cardlist[1].value = response.rows[0].wzx;
this.cardlist[2].value = response.rows[0].ysf;
- this.ycvalue = response.rows[0].yc;
+ this.ycvalue = Number(response.rows[0].yc) || 0;
this.jgvalue = response.rows[0].jg;
this.cardlist[3].value = response.rows[0].fssb;
this.cardlist[4].value = response.rows[0].dsf;
@@ -1698,10 +1695,20 @@
},
// 鎮h�呰寖鍥村鐞�
handleChange(value) {
- let type = value[0];
- let code = value.slice(-1)[0];
+ console.log("閫夋嫨鐨勬偅鑰呰寖鍥�:", value);
+
+ // 娓呯┖涔嬪墠鐨勬煡璇㈠弬鏁�
this.topqueryParams.leavehospitaldistrictcodes = [];
this.topqueryParams.leaveldeptcodes = [];
+ this.topqueryParams.searchscope = null;
+
+ if (!value || value.length === 0) {
+ return;
+ }
+
+ let type = value[0];
+ let code = value.slice(-1)[0];
+
if (type == 1) {
this.topqueryParams.leaveldeptcodes.push(code);
this.topqueryParams.leavehospitaldistrictcodes = [];
@@ -1714,10 +1721,42 @@
this.topqueryParams.searchscope = 3;
}
},
+ // 鏈嶅姟鐘舵�佸彉鏇村鐞�
+ handleServiceStatusChange(value) {
+ // 娓呯┖閫夋嫨
+ if (value === null || value === undefined || value === "") {
+ this.topqueryParams.sendstateView = null;
+ this.topqueryParams.sendstate = null;
+ return;
+ }
+ console.log(value, "value");
+
+ // 涓�绾ц妭鐐圭殑鍊硷紙澶т簬绛変簬10锛�
+ if (value >= 10) {
+ // 閫変腑浜嗕竴绾�
+ switch (value) {
+ case 10:
+ this.topqueryParams.sendstateView = 1; // 寰呴殢璁�
+ break;
+ case 20:
+ this.topqueryParams.sendstateView = 2; // 宸插畬鎴�
+ break;
+ case 30:
+ this.topqueryParams.sendstateView = 3; // 鏃犻渶闅忚
+ break;
+ }
+ this.topqueryParams.sendstate = null;
+ } else {
+ // 閫変腑浜嗕簩绾э紙鍏蜂綋鐘舵�侊級
+ this.topqueryParams.sendstateView = null;
+ this.topqueryParams.sendstate = value;
+ }
+ },
/** 閲嶇疆鎸夐挳鎿嶄綔 */
resetQuery() {
this.dateRange = [];
this.dateRangefs = [];
+ this.serviceStatusValue = 10;
this.topqueryParams = {
pageNum: 1,
pageSize: 10,
@@ -1733,6 +1772,8 @@
this.handleQuery(1);
},
handleSelectionChange(rows) {
+ console.log(rows, 911);
+
this.selectedRows = rows.map((row) => {
// 鍒濆鍖栬瘎鍒嗗瓧娈�
return {
@@ -2052,6 +2093,7 @@
const originalPageSize = this.topqueryParams.pageSize;
this.topqueryParams.pageNum = null;
this.topqueryParams.pageSize = null;
+ this.topqueryParams.subIdList = this.selectedRows.map((item) => item.id);
this.download(
"smartor/serviceSubtask/patItemExport",
{
@@ -2300,10 +2342,47 @@
border-color: #d8b4fe;
opacity: 1; /* 淇濇寔绂佺敤鐘舵�侀�忔槑搴� */
}
+.statistics-tooltip {
+ background: #ffffff !important;
+ color: #1976d2 !important;
+ border: 1px solid #bbdefb !important;
+ border-radius: 8px !important;
+ padding: 10px 14px !important;
+ font-size: 13px !important;
+ line-height: 1.6 !important;
+ box-shadow: 0 4px 12px rgba(25, 118, 210, 0.15) !important;
+}
+.statistics-tooltip .popper__arrow {
+ border-bottom-color: #bbdefb !important;
+}
+
+.statistics-tooltip .popper__arrow::after {
+ border-bottom-color: #ffffff !important;
+}
// 閫夐」瀛椾綋鏀惧ぇ
// ::v-deep.el-checkbox-group {
// span {
// font-size: 24px;
// }
// }
+.filter-warning {
+ margin-top: 8px;
+ padding: 10px 14px;
+ background: #fff7e6;
+ border: 1px solid #ffe58f;
+ border-radius: 6px;
+ color: #d46b08;
+ font-size: 18px;
+ line-height: 1.6;
+ display: flex;
+ align-items: flex-start;
+ gap: 6px;
+}
+
+.filter-warning .el-icon-warning-outline {
+ font-size: 16px;
+ color: #faad14;
+ flex-shrink: 0;
+ margin-top: 2px;
+}
</style>
--
Gitblit v1.9.3