From d3c60e18b95b50751f8088fa2d23cd8ff7f173bc Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 01 七月 2026 11:05:17 +0800
Subject: [PATCH] 测试完成
---
src/views/followvisit/outpatient/index.vue | 447 ++++++++++++++++++++++++++++++-------------------------
1 files changed, 245 insertions(+), 202 deletions(-)
diff --git a/src/views/followvisit/outpatient/index.vue b/src/views/followvisit/outpatient/index.vue
index 8d1eff9..af22d65 100644
--- a/src/views/followvisit/outpatient/index.vue
+++ b/src/views/followvisit/outpatient/index.vue
@@ -1,67 +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 }}
- </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-row>
- </div>
+ <statistics-cards
+ :cardlist="cardlist"
+ :ycvalue="ycvalue"
+ :jgvalue="jgvalue"
+ :show-warning-condition="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'"
+ />
<el-row :gutter="20">
<!--鐢ㄦ埛鏁版嵁-->
<el-form
@@ -79,7 +23,7 @@
></el-input>
</el-form-item>
- <el-form-item label="妫�鏌ユ椂闂�">
+ <el-form-item label="闂ㄨ瘖鏃堕棿">
<el-date-picker
v-model="dateRange"
style="width: 240px"
@@ -103,21 +47,22 @@
v-model="topqueryParams.scopetype"
placeholder="榛樿鍏ㄩ儴"
:options="sourcetype"
+ filterable
+ clearable
:props="{ expandTrigger: 'hover' }"
@change="handleChange"
></el-cascader>
</el-form-item>
- <el-form-item label="浠诲姟鐘舵��" prop="status">
- <el-select v-model="topqueryParams.sendstate" 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>
@@ -138,8 +83,7 @@
<el-col :span="1.5">
<el-button
type="primary"
- plain
- icon="el-icon-plus"
+ icon="el-icon-plus"
size="medium"
@click="handleAdd"
>鏂板</el-button
@@ -154,7 +98,6 @@
icon="el-icon-upload2"
size="medium"
@click="handleExport"
- v-hasPermi="['system:user:export']"
>瀵煎嚭</el-button
>
</div>
@@ -192,7 +135,7 @@
<el-table
v-loading="loading"
:data="userList"
- height="660"
+ height="808"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
>
@@ -208,45 +151,57 @@
<!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
<el-table-column
label="濮撳悕"
- fixed
+ width="100"
align="center"
key="sendname"
prop="sendname"
- />
+ >
+ <template slot-scope="scope">
+ <el-button
+ size="medium"
+ type="text"
+ @click="
+ $router.push({
+ path: '/patient/indexls/',
+ query: { sfzh: scope.row.idcardno },
+ })
+ "
+ ><span class="button-textsc">{{
+ scope.row.sendname
+ }}</span></el-button
+ >
+ </template>
+ </el-table-column>
<el-table-column
- label="浠诲姟鐘舵��"
+ label="闅忚鐘舵��"
align="center"
- key="sendstate"
- prop="sendstate"
+ key="sendstateView"
+ prop="sendstateView"
width="120"
>
<template slot-scope="scope">
- <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="danger" :disable-transitions="false">宸插畬鎴�</el-tag>
- </div>
+ <el-tooltip
+ class="item"
+ effect="dark"
+ :content="scope.row.remark"
+ placement="top-start"
+ >
+ <div v-if="scope.row.sendstateView == 1">
+ <el-tag type="primary" :disable-transitions="false"
+ >寰呴殢璁�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstateView == 2">
+ <el-tag type="success" :disable-transitions="false"
+ >宸插畬鎴�</el-tag
+ >
+ </div>
+ <div v-if="scope.row.sendstateView == 3">
+ <el-tag type="warning" :disable-transitions="false"
+ >鏃犻渶闅忚</el-tag
+ >
+ </div>
+ </el-tooltip>
</template>
</el-table-column>
<!-- <el-table-column
@@ -258,7 +213,7 @@
/>
<el-table-column
- label="浜哄伐澶勭悊鎰忚"
+ label="澶勭悊鎰忚"
align="center"
key="suggest"
prop="suggest"
@@ -274,12 +229,12 @@
<el-table-column
label="闅忚浜哄憳"
align="center"
- key="createBy"
- prop="createBy"
+ key="updateBy"
+ prop="updateBy"
width="120"
/>
<el-table-column
- label="闅忚鏃堕棿"
+ label="闅忚瀹屾垚鏃堕棿"
sortable
align="center"
prop="finishtime"
@@ -290,7 +245,7 @@
</template>
</el-table-column>
<el-table-column
- label="褰卞儚缁撴灉"
+ label="闅忚缁撴灉"
width="200"
align="center"
key="remark"
@@ -306,7 +261,7 @@
</template>
</el-table-column>
<el-table-column
- label="褰卞儚鏃ユ湡"
+ label="妫�鏌ユ棩鏈�"
width="200"
align="center"
key="endtime"
@@ -318,17 +273,17 @@
>
<el-table-column
label="搴旈殢璁挎棩鏈�"
- width="200"
+ width="146"
align="center"
- key="longSendTime"
- prop="longSendTime"
+ key="visitTime"
+ prop="visitTime"
>
<template slot-scope="scope">
- <span>{{ formatTime(scope.row.longSendTime) }}</span>
+ <span>{{ formatTime(scope.row.visitTime) }}</span>
</template></el-table-column
>
<el-table-column
- label="褰卞儚澶╂暟"
+ label="宸叉鏌ュぉ鏁�"
width="120"
align="center"
key="endDay"
@@ -377,7 +332,7 @@
/> -->
<!-- <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> -->
- <!-- <el-table-column label="鎬у埆" align="center" key="sex" prop="sex" /> -->
+ <!-- <el-table-column label="鎬у埆"width="100" align="center" key="sex" prop="sex" /> -->
<!-- <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" /> -->
<el-table-column
label="绉戝"
@@ -407,12 +362,60 @@
</el-table-column> -->
<!-- <el-table-column
- label="褰卞儚闅忚妯℃澘鍚嶇О"
+ label="闂ㄨ瘖闅忚妯℃澘鍚嶇О"
align="center"
key="templatename"
prop="templatename"
width="200"
/>
+ <el-table-column
+ label="浠诲姟鐘舵��"
+ align="center"
+ 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="浠诲姟鎵ц鏂瑰紡"
align="center"
@@ -494,7 +497,7 @@
@pagination="getList"
/>
</el-row>
- <!-- 娣诲姞鎴栦慨鏀瑰奖鍍忛殢璁垮璇濇 -->
+ <!-- 娣诲姞鎴栦慨鏀归棬璇婇殢璁垮璇濇 -->
<el-dialog
:title="title"
:visible.sync="addalteropen"
@@ -537,7 +540,7 @@
</el-row>
<el-row :gutter="20">
<el-col :span="24">
- <el-form-item label="褰卞儚闅忚瑕佹眰">
+ <el-form-item label="闂ㄨ瘖闅忚瑕佹眰">
<el-input type="textarea" v-model="form.desc"></el-input>
</el-form-item>
</el-col>
@@ -640,11 +643,12 @@
import Treeselect from "@riophae/vue-treeselect";
import store from "@/store";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import StatisticsCards from "@/components/StatisticsCards";
export default {
name: "Discharge",
dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
- components: { Treeselect },
+ components: { Treeselect,StatisticsCards },
data() {
return {
// 閬僵灞�
@@ -662,7 +666,7 @@
// 鐢ㄦ埛琛ㄦ牸鏁版嵁
userList: null,
// 寮瑰嚭灞傛爣棰�
- title: "鏂板褰卞儚闅忚",
+ title: "鏂板闂ㄨ瘖闅忚",
// 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
addalteropen: false,
// 淇敼鍙戦�佹椂闂村璇濇
@@ -684,13 +688,13 @@
yfsvalue: "",
inputValue: "",
preachform: "",
- previewVisible: false, //褰卞儚闅忚棰勮寮规
+ previewVisible: false, //闂ㄨ瘖闅忚棰勮寮规
radio: "",
radios: [],
- previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
+ previewtype: 2, //棰勮闂ㄨ瘖闅忚绫诲瀷
total: 0, // 鎬绘潯鏁�
- ImportQuantity: 999, //瀵煎奖鍍忛殢璁挎暟閲�
- //棰勮褰卞儚闅忚淇℃伅
+ ImportQuantity: 999, //瀵奸棬璇婇殢璁挎暟閲�
+ //棰勮闂ㄨ瘖闅忚淇℃伅
previewvalue: {
username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
},
@@ -714,41 +718,62 @@
},
],
loading: false,
+ 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: "涓嶆墽琛�" }],
+ },
+ ],
cardlist: [
{
- name: "褰卞儚鎶ュ憡鎬婚噺",
- value: 0,
- },
- // {
- // name: "鎮h�呰繃婊�",
- // value: 0,
- // },
- {
- name: "搴旈殢璁�",
+ name: "鎮h�呮湇鍔℃�婚噺",
value: 0,
},
- // {
- // name: "寮傚父",
- // value: 0,
- // },
- // {
- // name: "鍙戦�佸け璐�",
- // value: 0,
- // },
+ {
+ name: "鏃犻渶闅忚",
+ value: 0,
+ },
+ {
+ name: "闇�闅忚",
+ value: 0,
+ },
{
name: "寰呴殢璁�",
value: 0,
},
{
- name: "宸查殢璁�",
+ name: "宸插畬鎴�",
value: 0,
},
-
- // {
- // name: "宸插彂閫佹湭棰嗗彇",
- // value: 0,
- // },
],
// 琛ㄥ崟鍙傛暟
@@ -764,39 +789,38 @@
topqueryParams: {
pageNum: 1,
pageSize: 10,
- serviceType: 3,
- searchscope: 3,
+ serviceType: 11,
+ sendstate:2,
scopetype: [],
- leaveldeptcodes: [],
- leavehospitaldistrictcodes: [],
+
},
propss: { multiple: true },
options: [],
- topicoptions: [
+ topicoptions: [
+ {
+ value: null,
+ label: "鍏ㄩ儴",
+ },
{
value: 1,
- label: "琚鍙�",
+ label: "寰呴殢璁�",
},
{
value: 2,
- label: "寰呭彂閫�",
+ label: "闅忚涓�",
},
{
value: 3,
- label: "宸插彂閫佹湭棰嗗彇",
+ label: "鏈畬鎴�",
},
{
value: 4,
- label: "涓嶆墽琛�",
+ label: "宸插畬鎴�",
},
{
value: 5,
- label: "鍙戦�佸け璐�",
- },
- {
- value: 6,
- label: "宸插畬鎴�",
+ label: "鏃犻渶闅忚",
},
],
topicoptionsyj: [
@@ -849,35 +873,31 @@
this.getList(1);
},
methods: {
- /** 鏌ヨ褰卞儚闅忚鏈嶅姟鍒楄〃 */
+ /** 鏌ヨ闂ㄨ瘖闅忚鏈嶅姟鍒楄〃 */
getList(refresh) {
// 榛樿鍏ㄩ儴
- if (this.topqueryParams.searchscope == 3) {
- this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
- (obj) => obj.deptCode
- );
- this.topqueryParams.leavehospitaldistrictcodes =
- store.getters.belongWards.map((obj) => obj.districtCode);
- }
+
// 鎺ュ彈寮傚父璺宠浆
- if (this.errtype) {
- this.topqueryParams.leavehospitaldistrictcodes.push(
- this.leavehospitaldistrictcode
- );
- console.log(this.topqueryParams.leavehospitaldistrictcodes, "11");
- }
+
this.loading = true;
+
+
+
+ if (!this.followupAuthority()) {
+ this.$message.warning("鏈厤缃瀹�/鐥呭尯鐩稿叧鏉冮檺涓嶅彲鏌ヨ");
+ return Promise.reject(new Error("鏃犳潈闄愭煡璇�"));
+ }
getTaskservelist(this.topqueryParams).then((response) => {
this.userList = response.rows[0].serviceSubtaskList;
this.total = response.total;
if (refresh) {
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.cardlist[3].value = response.rows[0].fssb;
- // this.cardlist[4].value = response.rows[0].dfs;
+ // this.cardlist[4].value = response.rows[0].dsf;
// this.cardlist[5].value = response.rows[0].yfs2;
this.yfsvalue = response.rows[0].yfs;
}
@@ -907,7 +927,7 @@
this.total = response.total;
});
},
- // 鏌ョ湅褰卞儚闅忚璇︽儏
+ // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
Referencequestion(row) {
this.previewVisible = true;
},
@@ -925,7 +945,7 @@
this.options = [];
}
},
- // 褰卞儚闅忚鐘舵�佷慨鏀�
+ // 闂ㄨ瘖闅忚鐘舵�佷慨鏀�
handleStatusChange(row) {
let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
this.$modal
@@ -965,13 +985,7 @@
},
/** 鎼滅储鎸夐挳鎿嶄綔 */
handleQuery(refresh) {
- if (this.topqueryParams.searchscope == 3) {
- this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
- (obj) => obj.deptCode
- );
- this.topqueryParams.leavehospitaldistrictcodes =
- store.getters.belongWards.map((obj) => obj.districtCode);
- }
+
this.topqueryParams.pageNum = 1;
this.topqueryParams.startOutHospTime = this.dateRange[0];
this.topqueryParams.endOutHospTime = this.dateRange[1];
@@ -984,7 +998,6 @@
let code = value.slice(-1)[0];
this.topqueryParams.leavehospitaldistrictcodes = [];
this.topqueryParams.leaveldeptcodes = [];
-
if (type == 1) {
this.topqueryParams.leaveldeptcodes.push(code);
this.topqueryParams.leavehospitaldistrictcodes = [];
@@ -997,14 +1010,45 @@
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.topqueryParams = {
pageNum: 1,
pageSize: 10,
- serviceType: 3,
- searchscope: 2,
+ serviceType: 11,
+ sendstate:2,
};
this.handleQuery(1);
},
@@ -1040,7 +1084,7 @@
path: "/followvisit/QuestionnaireTask",
query: {
type: 2,
- serviceType: 3,
+ serviceType: 11,
},
});
},
@@ -1143,12 +1187,9 @@
Seedetails(row) {
let type = "";
console.log(row, "rwo");
- if (row.preachformson) {
- if (row.preachformson.includes("3")) {
+ if (row.type == 1) {
type = 1;
- console.log(type, "rwo");
}
- }
this.$router.push({
path: "/followvisit/record/detailpage/",
query: {
@@ -1174,7 +1215,7 @@
this.topqueryParams.pageNum = null;
this.topqueryParams.pageSize = null;
this.download(
- "smartor/serviceSubtask/export",
+ "smartor/serviceSubtask/patItemExport",
{
...this.topqueryParams,
},
@@ -1285,10 +1326,12 @@
}
}
::v-deep.leftvlue .el-card__body {
- background: #d0e9fd;
+ background: #F2F8FF;
+ color: #324A9B;
}
::v-deep.leftvlue .el-card__body:hover {
- background: #8dc8f8;
+ background: #3664D9;
+ color: #fff;
cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
}
::v-deep.errleftvlue .el-card__body {
--
Gitblit v1.9.3