From d54ac083e2992a5613f5cb22849db9742dbe9a9b Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 22 十月 2025 11:06:14 +0800
Subject: [PATCH] 问卷联调
---
src/views/followvisit/discharge/index.vue | 279 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 203 insertions(+), 76 deletions(-)
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 296305f..64383b4 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -120,7 +120,29 @@
placeholder="璇疯緭鍏ラ殢璁夸汉鍛�"
></el-input>
</el-form-item>
-
+ <el-form-item label="涓绘不鍖荤敓" prop="drname">
+ <el-input
+ v-model="topqueryParams.drname"
+ placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="缁忕鍖荤敓" prop="managementDoctor">
+ <el-input
+ v-model="topqueryParams.managementDoctor"
+ placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鏃ユ湡闄愬埗" prop="status">
+ <el-select v-model="endOut" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in endOuts"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
<el-form-item label="鎮h�呰寖鍥�" prop="status">
<el-cascader
v-model="topqueryParams.scopetype"
@@ -169,7 +191,7 @@
</el-form>
<el-divider></el-divider>
<el-row :gutter="10" class="mb8">
- <el-col :span="1.5">
+ <!-- <el-col :span="1.5">
<div class="documentf">
<div class="document">
<el-button
@@ -182,11 +204,10 @@
>
</div>
</div>
- </el-col>
+ </el-col> -->
<el-col :span="1.5">
<el-button
type="primary"
- plain
icon="el-icon-plus"
size="medium"
@click="handleAdd"
@@ -238,11 +259,7 @@
<el-col :span="1.5">
<div class="documentf">
<div class="document">
- <el-button
- type="primary"
- plain
- size="medium"
- @click="affiliation()"
+ <el-button type="primary" size="medium" @click="affiliation()"
>鏈汉鎵�灞炴湇鍔�</el-button
>
</div>
@@ -252,26 +269,37 @@
<div class="documentf">
<div class="document">
<el-button type="success" size="medium" @click="onthatday()"
- >褰撴棩鏈嶅姟</el-button
+ >浠婃棩鏈嶅姟</el-button
>
</div>
</div>
</el-col>
- <el-col :span="1.5">
+ <!-- <el-col :span="1.5">
<div class="documentf">
<div class="document">
- <el-button
- :disabled="multiple"
- style="background: #983680; color: azure"
- @click="scoreDialogVisible = true"
- >婊℃剰搴﹁皟鏌�</el-button
+ <el-tooltip
+ content="璇峰厛閫変腑鏈嶅姟"
+ placement="top"
+ :disabled="!multiple"
>
+ <div class="tooltip-wrapper">
+ <el-button
+ type="primary"
+ :disabled="multiple"
+ class="purple-button"
+ @click="scoreDialogVisible = true"
+ >
+ 婊℃剰搴﹁皟鏌�
+ </el-button>
+ </div>
+ </el-tooltip>
</div>
</div>
- </el-col>
+ </el-col> -->
</el-row>
<el-table
v-loading="loading"
+ ref="userform"
:data="userList"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
@@ -306,6 +334,15 @@
}}</span></el-button
>
</template>
+ </el-table-column>
+ <el-table-column
+ label="璇婃柇鍚嶇О"
+ align="center"
+ key="leavediagname"
+ prop="leavediagname"
+ width="120"
+ :show-overflow-tooltip="true"
+ >
</el-table-column>
<el-table-column
label="浠诲姟鐘舵��"
@@ -416,10 +453,19 @@
prop="drname"
/>
<el-table-column
+ v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
label="闅忚浜哄憳"
align="center"
key="updateBy"
prop="updateBy"
+ width="120"
+ />
+ <el-table-column
+ v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
+ label="缁忕鍖荤敓"
+ align="center"
+ key="managementDoctor"
+ prop="managementDoctor"
width="120"
/>
<el-table-column
@@ -481,16 +527,6 @@
key="leavehospitaldistrictname"
prop="leavehospitaldistrictname"
width="120"
- >
- </el-table-column>
-
- <el-table-column
- label="璇婃柇鍚嶇О"
- align="center"
- key="leavediagname"
- prop="leavediagname"
- width="120"
- :show-overflow-tooltip="true"
>
</el-table-column>
@@ -617,7 +653,7 @@
</el-row>
<!-- 婊℃剰搴﹀脊妗� -->
<el-dialog
- title="闅忚璇勫垎"
+ title="闅忚婊℃剰搴﹁瘎鍒�"
:visible.sync="scoreDialogVisible"
width="80%"
:close-on-click-modal="false"
@@ -631,7 +667,7 @@
/>
<el-table-column
label="浠诲姟鍚嶇О"
- width="150"
+ width="180"
align="center"
prop="taskName"
/>
@@ -641,8 +677,7 @@
align="center"
key="authenticity"
prop="authenticity"
- sortable
- width="120"
+ width="150"
>
<template slot-scope="scope">
<el-input-number
@@ -659,8 +694,7 @@
align="center"
key="weekFinish"
prop="weekFinish"
- sortable
- width="120"
+ width="150"
>
<template slot-scope="scope">
<el-input-number
@@ -677,7 +711,7 @@
align="center"
key="standard"
prop="standard"
- sortable
+ width="150"
>
<template slot-scope="scope">
<el-input-number
@@ -694,8 +728,7 @@
align="center"
key="timeliness"
prop="timeliness"
- sortable
- width="120"
+ width="150"
>
<template slot-scope="scope">
<el-input-number
@@ -712,8 +745,7 @@
align="center"
key="library"
prop="library"
- sortable
- width="120"
+ width="150"
>
<template slot-scope="scope">
<el-input-number
@@ -730,8 +762,7 @@
align="center"
key="environment"
prop="environment"
- sortable
- width="120"
+ width="150"
>
<template slot-scope="scope">
<el-input-number
@@ -748,8 +779,7 @@
align="center"
key="doctorSatisfaction"
prop="doctorSatisfaction"
- width="120"
- sortable
+ width="150"
>
<template slot-scope="scope">
<el-input-number
@@ -766,8 +796,7 @@
align="center"
key="nurseSatisfaction"
prop="nurseSatisfaction"
- width="120"
- sortable
+ width="150"
>
<template slot-scope="scope">
<el-input-number
@@ -784,7 +813,7 @@
align="center"
key="total"
prop="total"
- sortable
+ fixed="right"
>
<template slot-scope="scope">
<span>{{ calculateTotal(scope.row) }}</span>
@@ -836,7 +865,17 @@
</el-form-item>
</el-col>
</el-row>
-
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="杩囨护鍖荤敓" width="100" prop="filterDrname">
+ <el-input
+ v-model="form.filterDrname"
+ placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+ maxlength="30"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
<el-row>
<el-col :span="24">
<el-form-item label="杩囨护鍘熷洜">
@@ -1017,6 +1056,7 @@
buidegetTasklist,
addserviceSubtask,
query360PatInfo,
+ addsatisfaction,
} from "@/api/AiCentre/index";
import { alterpatient, particularpatient } from "@/api/patient/homepage";
import Treeselect from "@riophae/vue-treeselect";
@@ -1109,7 +1149,7 @@
// value: 0,
// },
{
- name: "搴旈殢璁�",
+ name: "闇�闅忚",
value: 0,
},
{
@@ -1120,10 +1160,10 @@
name: "寰呴殢璁�",
value: 0,
},
- {
- name: "宸插彂閫�",
- value: 0,
- },
+ // {
+ // name: "宸插彂閫�",
+ // value: 0,
+ // },
// {
// name: "琛ㄥ崟宸插彂閫�",
@@ -1147,6 +1187,18 @@
qystatus: "",
btstatus: "",
},
+ // endOut: 1,
+ endOut: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+ endOuts: [
+ {
+ value: 0,
+ label: "鎴鑷冲綋鏃ユ湇鍔�",
+ },
+ {
+ value: 1,
+ label: "鍏ㄩ儴鏈嶅姟",
+ },
+ ],
topicoptionssort: [
{
value: 0,
@@ -1164,13 +1216,21 @@
value: 3,
label: "鍙戦�佹椂闂�(鍊掑簭)",
},
+ {
+ value: 7,
+ label: "搴旈殢璁挎棩鏈�(姝e簭)",
+ },
+ {
+ value: 8,
+ label: "搴旈殢璁挎棩鏈�(鍊掑簭)",
+ },
],
// 鏌ヨ鍙傛暟
topqueryParams: {
pageNum: 1,
pageSize: 10,
sendstate: 2,
- sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭)
+ sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 2, //0 鍑洪櫌鏃堕棿(姝e簭) 1 鍑洪櫌鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
serviceType: 2,
searchscope: 3,
visitCount: 1,
@@ -1178,6 +1238,7 @@
leaveldeptcodes: [],
leavehospitaldistrictcodes: [],
},
+ orgname: "",
propss: { multiple: true },
options: [],
@@ -1257,8 +1318,8 @@
YongHuXX: {
XiTongID: "SUIFANGXT",
XiTongMC: "闅忚绯荤粺",
- YongHuID: "1400466972205912064",
- YongHuXM: "JNRMYY",
+ YongHuID: localStorage.getItem("YongHuID"),
+ YongHuXM: localStorage.getItem("YongHuXM"),
ZuZhiJGID: localStorage.getItem("orgid"),
ZuZhiJGMC: localStorage.getItem("orgname"),
idp: "lyra",
@@ -1279,6 +1340,7 @@
this.serviceState = store.getters.serviceState;
this.checkboxlist = store.getters.checkboxlist;
this.errtype = this.$route.query.errtype;
+ this.orgname = localStorage.getItem("orgname");
this.leavehospitaldistrictcode =
this.$route.query.leavehospitaldistrictcode;
this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
@@ -1309,13 +1371,21 @@
/** 鏌ヨ闅忚鏈嶅姟鍒楄〃 */
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);
+ }
+ console.log(this.endOut);
+
+ if (this.endOut == 0) {
+ this.topqueryParams.endOutHospTime = this.formatDateToYYYYMMDDHHMMSS(
+ this.getEndOfDay()
+ );
+ } else {
+ this.topqueryParams.endOutHospTime = null;
}
// 鎺ュ彈寮傚父璺宠浆
if (this.errtype) {
@@ -1344,7 +1414,7 @@
this.ycvalue = response.rows[0].yc;
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[4].value = response.rows[0].yfs2;
this.yfsvalue = response.rows[0].yfs;
}
this.loading = false;
@@ -1373,9 +1443,24 @@
this.total = response.total;
});
},
+ // 鏃堕棿
+ getEndOfDay() {
+ const date = new Date(); // 鍒涘缓涓�涓〃绀哄綋鍓嶆椂闂寸殑Date瀵硅薄
+ date.setHours(23, 59, 59, 0); // 灏嗘椂闂磋缃负23:59:59.000
+ return date;
+ },
+ formatDateToYYYYMMDDHHMMSS(date) {
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, "0"); // 鏈堜唤琛ラ浂
+ const day = String(date.getDate()).padStart(2, "0"); // 鏃ユ湡琛ラ浂
+ const hours = String(date.getHours()).padStart(2, "0");
+ const minutes = String(date.getMinutes()).padStart(2, "0");
+ const seconds = String(date.getSeconds()).padStart(2, "0");
+
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+ },
affiliation() {
- this.topqueryParams.drcode = store.getters.hisUserId;
- this.topqueryParams.nurseId = store.getters.hisUserId;
+ this.topqueryParams.managementDoctorCode = store.getters.hisUserId;
this.getList(1);
},
onthatday() {
@@ -1420,7 +1505,7 @@
this.ycvalue = response.rows[0].yc;
this.cardlist[3].value = response.rows[0].fssb;
this.cardlist[4].value = response.rows[0].dsf;
- this.cardlist[5].value = response.rows[0].yfs2;
+ // this.cardlist[5].value = response.rows[0].yfs2;
this.yfsvalue = response.rows[0].yfs;
}
this.loading = false;
@@ -1570,6 +1655,8 @@
});
if (this.selectedRows.length > 0) {
+ this.multiple = false;
+ } else {
this.multiple = true;
}
},
@@ -1590,15 +1677,25 @@
// 淇濆瓨璇勫垎
saveScores() {
- // 杩欓噷鍙互娣诲姞淇濆瓨閫昏緫锛屽璋冪敤API淇濆瓨璇勫垎
- this.$message.success("璇勫垎淇濆瓨鎴愬姛");
- this.scoreDialogVisible = false;
-
- // 鏇存柊涓昏〃鏍兼暟鎹�
- this.userList = this.userList.map((user) => {
- const updatedUser = this.selectedRows.find((row) => row.id === user.id);
- return updatedUser ? updatedUser : user;
+ this.selectedRows.forEach((item) => {
+ item.createBy = null;
+ item.patName = item.sendname;
+ item.hospitaldistrictname = item.leavehospitaldistrictname;
});
+ addsatisfaction(this.selectedRows).then((res) => {
+ if (res.code == 200) {
+ this.$message.success("璇勫垎淇濆瓨鎴愬姛");
+ this.scoreDialogVisible = false;
+ this.selectedRows = [];
+ this.$refs.userform.clearSelection();
+ } else {
+ this.$modal.msgWarning("璇勫垎淇濆瓨澶辫触");
+ this.scoreDialogVisible = false;
+ this.selectedRows = [];
+ this.$refs.userform.clearSelection();
+ }
+ });
+ // 杩欓噷鍙互娣诲姞淇濆瓨閫昏緫锛屽璋冪敤API淇濆瓨璇勫垎
},
//鍒犻櫎閫夐」
handleClose(tag) {
@@ -1632,11 +1729,10 @@
},
//鎮h��360璺宠浆
gettoken360(sfzh, drcode, drname) {
+ // this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�");
+
this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
- if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
- this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
- this.postData.YeWuXX.YongHuXX.YongHuXM = "LSZYY";
- }
+
query360PatInfo(this.postData).then((res) => {
if (res.data.url) {
window.open(res.data.url, "_blank");
@@ -1750,7 +1846,7 @@
let type = "";
console.log(row, "rwo");
if (row.preachformson) {
- if (row.preachformson.includes("3")) {
+ if (row.type == 1) {
type = 1;
}
}
@@ -1806,6 +1902,7 @@
handleUpdate(row) {
particularpatient(row.patid).then((response) => {
this.form = response.data;
+ this.form.filterDrname = store.getters.nickName;
});
this.amendtag = true;
this.Labelchange = true;
@@ -1836,6 +1933,8 @@
tableRowClassName({ row, rowIndex }) {
if (row.excep == 1) {
return "warning-row";
+ } else if (row.excep == 2) {
+ return "remind-row";
}
return "";
},
@@ -1898,6 +1997,9 @@
}
::v-deep.el-table .warning-row {
background: #eec4c4;
+}
+::v-deep.el-table .remind-row {
+ background: #fcf5aa;
}
.documentf {
@@ -1978,10 +2080,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 {
@@ -1996,7 +2100,7 @@
background: #d0fdd8;
}
::v-deep.ysfleftvlue .el-card__body:hover {
- background: #8df8a4;
+ background: #0abc54;
cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
}
.button-bb {
@@ -2021,7 +2125,7 @@
color: #ffffff;
}
.button-zx {
- background: #4fabe9;
+ background: #324a9b;
padding: 5px;
border-radius: 1px;
color: #ffffff;
@@ -2032,7 +2136,30 @@
font-size: 24px;
}
}
+.purple-button {
+ background-color: #7e22ce;
+ border-color: #7e22ce;
+ color: #fff;
+}
+.purple-button:hover,
+.purple-button:focus {
+ background-color: #9333ea;
+ border-color: #9333ea;
+}
+
+.purple-button:active {
+ background-color: #6b21a8;
+ border-color: #6b21a8;
+}
+.button-textxga {
+ color: #de7897;
+}
+.purple-button.is-disabled {
+ background-color: #d8b4fe;
+ border-color: #d8b4fe;
+ opacity: 1; /* 淇濇寔绂佺敤鐘舵�侀�忔槑搴� */
+}
// 閫夐」瀛椾綋鏀惧ぇ
// ::v-deep.el-checkbox-group {
// span {
--
Gitblit v1.9.3