From bcb9976e7680ce67fadb6fec7ab5fca36552cdbc Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 28 一月 2026 17:10:49 +0800
Subject: [PATCH] 青岛维护
---
src/views/business/decide/index.vue | 320 ++++++++++++++++++++++++++++++++++++----------------
1 files changed, 220 insertions(+), 100 deletions(-)
diff --git a/src/views/business/decide/index.vue b/src/views/business/decide/index.vue
index 73c4a50..88b380a 100644
--- a/src/views/business/decide/index.vue
+++ b/src/views/business/decide/index.vue
@@ -8,27 +8,27 @@
:inline="true"
label-width="100px"
>
- <el-form-item label="浣忛櫌鍙�" prop="hospitalNo">
+ <el-form-item label="浣忛櫌鍙�" prop="inpatientno">
<el-input
- v-model="queryParams.hospitalNo"
+ v-model="queryParams.inpatientno"
placeholder="璇疯緭鍏ヤ綇闄㈠彿"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
- <el-form-item label="鎹愮尞鑰呭鍚�" prop="donorName">
+ <el-form-item label="鎹愮尞鑰呭鍚�" prop="name">
<el-input
- v-model="queryParams.donorName"
+ v-model="queryParams.name"
placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
- <el-form-item label="姝讳骸鍘熷洜" prop="deathReason">
+ <el-form-item label="姝讳骸鍘熷洜" prop="deathreason">
<el-select
- v-model="queryParams.deathReason"
+ v-model="queryParams.deathreason"
placeholder="璇烽�夋嫨姝讳骸鍘熷洜"
clearable
style="width: 200px"
@@ -73,13 +73,6 @@
>淇敼</el-button
>
<el-button
- type="danger"
- icon="el-icon-delete"
- :disabled="multiple"
- @click="handleDelete"
- >鍒犻櫎</el-button
- >
- <el-button
type="warning"
icon="el-icon-download"
@click="handleExport"
@@ -103,95 +96,114 @@
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
+ label="妗堜緥缂栧彿"
+ align="center"
+ prop="caseNo"
+ width="120"
+ />
+ <el-table-column
label="浣忛櫌鍙�"
align="center"
- prop="hospitalNo"
+ prop="inpatientno"
width="120"
/>
<el-table-column
label="鎹愮尞鑰呭鍚�"
align="center"
- prop="donorName"
+ prop="name"
width="120"
/>
- <el-table-column label="鎬у埆" align="center" prop="gender" width="80">
+ <el-table-column label="鎬у埆" align="center" prop="sex" width="80">
<template slot-scope="scope">
<dict-tag
:options="dict.type.sys_user_sex"
- :value="parseInt(scope.row.gender)"
+ :value="scope.row.sex"
/>
</template>
</el-table-column>
<el-table-column label="骞撮緞" align="center" prop="age" width="80" />
<el-table-column
+ label="娌荤枟鍖婚櫌"
+ align="center"
+ prop="treatmenthospitalname"
+ width="180"
+ show-overflow-tooltip
+ />
+ <el-table-column
label="鐤剧梾璇婃柇"
align="center"
- prop="diagnosis"
- min-width="180"
+ prop="diagnosisname"
+ min-width="200"
show-overflow-tooltip
/>
<el-table-column
label="姝讳骸鍘熷洜"
align="center"
- prop="deathReason"
+ prop="deathreason"
width="120"
>
<template slot-scope="scope">
- <el-tag :type="reasonFilter(scope.row.deathReason)">
- {{ reasonTextFilter(scope.row.deathReason) }}
+ <el-tag :type="reasonFilter(scope.row.deathreason)">
+ {{ reasonTextFilter(scope.row.deathreason) }}
</el-tag>
</template>
</el-table-column>
<el-table-column
label="姝讳骸鏃堕棿"
align="center"
- prop="deathTime"
+ prop="deathtime"
width="160"
>
<template slot-scope="scope">
<span>{{
- scope.row.deathTime
- ? parseTime(scope.row.deathTime, "{y}-{m}-{d} {h}:{i}")
+ scope.row.deathtime
+ ? parseTime(scope.row.deathtime, "{y}-{m}-{d} {h}:{i}")
: "-"
}}</span>
</template>
</el-table-column>
<el-table-column
- label="鍒ゅ畾鍖荤敓"
+ label="鍒ゅ畾鍖荤敓涓�"
align="center"
- prop="judgmentDoctor"
+ prop="deathjudgedocto"
width="120"
/>
- <el-table-column
+ <el-table-column
label="鍒ゅ畾鍖荤敓浜�"
align="center"
- prop="judgmentDoctortwo"
+ prop="deathjudgedoctt"
width="120"
/>
<el-table-column
- label="鐧昏鏃堕棿"
+ label="璁板綍鐘舵��"
align="center"
- prop="registrationTime"
+ prop="recordstate"
+ width="100"
+ >
+ <template slot-scope="scope">
+ <el-tag :type="statusFilter(scope.row.recordstate)">
+ {{ statusTextFilter(scope.row.recordstate) }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鍒涘缓鏃堕棿"
+ align="center"
+ prop="createTime"
width="160"
>
<template slot-scope="scope">
<span>{{
- scope.row.registrationTime
- ? parseTime(scope.row.registrationTime, "{y}-{m}-{d} {h}:{i}")
+ scope.row.createTime
+ ? parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}")
: "-"
}}</span>
</template>
</el-table-column>
- <el-table-column
- label="鐧昏浜�"
- align="center"
- prop="registrant"
- width="100"
- />
<el-table-column
label="鎿嶄綔"
align="center"
- width="210"
+ width="180"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
@@ -208,14 +220,6 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>淇敼</el-button
- >
- <el-button
- size="mini"
- type="text"
- icon="el-icon-delete"
- style="color: #F56C6C"
- @click="handleDelete(scope.row)"
- >鍒犻櫎</el-button
>
</template>
</el-table-column>
@@ -234,7 +238,7 @@
</template>
<script>
-import { listDeathJudgment, delDeathJudgment, exportDeathJudgment } from "./mockDeathJudgmentApi";
+import { queryDathInfoBaseInfo, deathinfoedit,deathinfoInfo } from "@/api/businessApi";
import Pagination from "@/components/Pagination";
export default {
@@ -259,11 +263,13 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- hospitalNo: undefined,
- donorName: undefined,
- deathReason: undefined,
+ inpatientno: undefined,
+ name: undefined,
+ deathreason: undefined,
deathTimeRange: []
- }
+ },
+ // 鎵�鏈夋暟鎹紙鐢ㄤ簬鍓嶇绛涢�夛級
+ allTableData: []
};
},
created() {
@@ -273,55 +279,157 @@
// 姝讳骸鍘熷洜杩囨护鍣�
reasonFilter(reason) {
const reasonMap = {
- "brain_death": "primary", // 鑴戞浜�
- "heart_death": "danger", // 蹇冩浜�
- "other": "info" // 鍏朵粬
+ brain_death: "primary",
+ heart_death: "danger",
+ other: "info"
};
return reasonMap[reason] || "info";
},
+
reasonTextFilter(reason) {
const reasonMap = {
- "brain_death": "鑴戞浜�",
- "heart_death": "蹇冩浜�",
- "other": "鍏朵粬"
+ brain_death: "鑴戞浜�",
+ heart_death: "蹇冩浜�",
+ other: "鍏朵粬"
};
return reasonMap[reason] || "鏈煡";
},
- // 鏌ヨ姝讳骸鍒ゅ畾鍒楄〃
- getList() {
- this.loading = true;
- listDeathJudgment(this.queryParams)
- .then(response => {
- if (response.code === 200) {
- this.deathJudgmentList = response.data.rows;
- this.total = response.data.total;
- } else {
- this.$message.error("鑾峰彇鏁版嵁澶辫触");
- }
- this.loading = false;
- })
- .catch(error => {
- console.error("鑾峰彇姝讳骸鍒ゅ畾鍒楄〃澶辫触:", error);
- this.loading = false;
- this.$message.error("鑾峰彇鏁版嵁澶辫触");
- });
+
+ // 璁板綍鐘舵�佽繃婊ゅ櫒
+ statusFilter(status) {
+ const statusMap = {
+ "0": "warning", // 缁存姢涓�
+ "1": "success", // 宸插畬鎴�
+ "99": "danger" // 宸茬粓姝�
+ };
+ return statusMap[status] || "info";
},
+
+ statusTextFilter(status) {
+ const statusMap = {
+ "0": "缁存姢涓�",
+ "1": "宸插畬鎴�",
+ "99": "宸茬粓姝�"
+ };
+ return statusMap[status] || "鏈煡鐘舵��";
+ },
+
+ // 鏌ヨ姝讳骸鍒ゅ畾鍒楄〃
+ async getList() {
+ this.loading = true;
+ try {
+ const response = await queryDathInfoBaseInfo(this.queryParams);
+
+ // 鏍规嵁瀹為檯鎺ュ彛杩斿洖缁撴瀯璋冩暣
+ let realData = [];
+ realData = response.data;
+ this.total = response.total;
+ // if (Array.isArray(response)) {
+ // realData = response;
+ // } else if (response && response.data) {
+ // realData = response.data;
+ // } else if (response && response.rows) {
+ // realData = response.rows;
+ // this.total = response.total || response.rows.length;
+ // } else if (response && response.code === 200) {
+ // realData = response.data.rows || response.data;
+ // this.total = response.data.total || realData.length;
+ // } else {
+ // realData = [];
+ // }
+
+ // 瀛樺偍鎵�鏈夋暟鎹敤浜庡墠绔瓫閫�
+ this.allTableData = realData;
+
+ // 搴旂敤鍓嶇绛涢�夋潯浠�
+ let filteredData = this.applyFrontendFilter(realData);
+
+ // 鍓嶇鍒嗛〉澶勭悊锛堝鏋滄帴鍙d笉鏀寔鍚庣鍒嗛〉锛�
+ if (!response.total && !response.data) {
+ const startIndex =
+ (this.queryParams.pageNum - 1) * this.queryParams.pageSize;
+ const endIndex = startIndex + this.queryParams.pageSize;
+ this.deathJudgmentList = filteredData.slice(startIndex, endIndex);
+ this.total = filteredData.length;
+ } else {
+ // 鎺ュ彛宸插垎椤碉紝鐩存帴浣跨敤杩斿洖鏁版嵁
+ this.deathJudgmentList = filteredData;
+ }
+ } catch (error) {
+ console.error("鑾峰彇姝讳骸鍒ゅ畾鏁版嵁澶辫触:", error);
+ this.$message.error("鏁版嵁鍔犺浇澶辫触");
+ this.deathJudgmentList = [];
+ this.total = 0;
+ } finally {
+ this.loading = false;
+ }
+ },
+
+ // 搴旂敤鍓嶇绛涢��
+ applyFrontendFilter(data) {
+ let filteredData = data;
+
+ // 浣忛櫌鍙风瓫閫�
+ if (this.queryParams.inpatientno) {
+ filteredData = filteredData.filter(
+ item =>
+ item.inpatientno &&
+ item.inpatientno.includes(this.queryParams.inpatientno)
+ );
+ }
+
+ // 濮撳悕绛涢��
+ if (this.queryParams.name) {
+ filteredData = filteredData.filter(
+ item => item.name && item.name.includes(this.queryParams.name)
+ );
+ }
+
+ // 姝讳骸鍘熷洜绛涢��
+ if (this.queryParams.deathreason) {
+ filteredData = filteredData.filter(
+ item => item.deathreason === this.queryParams.deathreason
+ );
+ }
+
+ // 姝讳骸鏃堕棿鑼冨洿绛涢��
+ if (
+ this.queryParams.deathTimeRange &&
+ this.queryParams.deathTimeRange.length === 2
+ ) {
+ const [startDate, endDate] = this.queryParams.deathTimeRange;
+ filteredData = filteredData.filter(item => {
+ if (!item.deathtime) return false;
+ const deathTime = new Date(item.deathtime).getTime();
+ const startTime = new Date(startDate).getTime();
+ const endTime = new Date(endDate + " 23:59:59").getTime();
+ return deathTime >= startTime && deathTime <= endTime;
+ });
+ }
+
+ return filteredData;
+ },
+
// 鎼滅储鎸夐挳鎿嶄綔
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
+
// 閲嶇疆鎸夐挳鎿嶄綔
resetQuery() {
this.$refs.queryForm.resetFields();
- this.handleQuery();
+ this.queryParams.pageNum = 1;
+ this.getList();
},
+
// 澶氶�夋閫変腑鏁版嵁
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
+
// 鏌ョ湅璇︽儏
handleView(row) {
this.$router.push({
@@ -329,10 +437,12 @@
query: { id: row.id }
});
},
+
// 鏂板鎸夐挳鎿嶄綔
handleCreate() {
this.$router.push("/case/DecideInfo");
},
+
// 淇敼鎸夐挳鎿嶄綔
handleUpdate(row) {
const id = row.id || this.ids[0];
@@ -341,28 +451,9 @@
query: { id: id }
});
},
- // 鍒犻櫎鎸夐挳鎿嶄綔
- handleDelete(row) {
- const ids = row.id ? [row.id] : this.ids;
- this.$confirm("鏄惁纭鍒犻櫎閫変腑鐨勬暟鎹」锛�", "璀﹀憡", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning"
- })
- .then(() => {
- return delDeathJudgment(ids);
- })
- .then(response => {
- if (response.code === 200) {
- this.$message.success("鍒犻櫎鎴愬姛");
- this.getList();
- }
- })
- .catch(() => {});
- },
- // 瀵煎嚭鎸夐挳鎿嶄綔
+
+ // 瀵煎嚭鎸夐挳鎿嶄綔锛堟ā鎷熻皟鐢級
handleExport() {
- const queryParams = this.queryParams;
this.$confirm("鏄惁纭瀵煎嚭鎵�鏈夋浜″垽瀹氭暟鎹紵", "璀﹀憡", {
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
@@ -370,12 +461,19 @@
})
.then(() => {
this.loading = true;
- return exportDeathJudgment(queryParams);
+ // 妯℃嫙瀵煎嚭鎿嶄綔
+ return new Promise(resolve => {
+ setTimeout(() => {
+ resolve({ code: 200 });
+ }, 1000);
+ });
})
.then(response => {
if (response.code === 200) {
this.$message.success("瀵煎嚭鎴愬姛");
// 瀹為檯椤圭洰涓繖閲屽鐞嗘枃浠朵笅杞�
+ // 鍙互娣诲姞浠ヤ笅浠g爜鏉ヨЕ鍙戞枃浠朵笅杞�
+ // this.downloadFile();
}
this.loading = false;
})
@@ -383,6 +481,18 @@
this.loading = false;
});
},
+
+ // 鏂囦欢涓嬭浇鏂规硶锛堥鐣欙級
+ downloadFile() {
+ // 瀹為檯椤圭洰涓殑鏂囦欢涓嬭浇閫昏緫
+ const link = document.createElement("a");
+ link.style.display = "none";
+ link.href = "/api/export/death-judgment"; // 鏇挎崲涓哄疄闄呭鍑烘帴鍙�
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ },
+
// 鏃堕棿鏍煎紡鍖�
parseTime(time, pattern) {
if (!time) return "";
@@ -440,4 +550,14 @@
.fixed-width .el-button {
margin: 0 5px;
}
+
+/* 琛ㄦ牸鏍峰紡浼樺寲 */
+::v-deep .el-table .cell {
+ padding: 8px 4px;
+}
+
+::v-deep .el-table th {
+ background-color: #f5f7fa;
+ font-weight: bold;
+}
</style>
--
Gitblit v1.9.3