From 475a352a4bfd7ac3a81e8c7c92d3bb64e2e01037 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期五, 27 二月 2026 15:48:37 +0800
Subject: [PATCH] 青岛维护提交
---
src/views/business/maintain/index.vue | 392 +++++++++++++++++++++++++++++--------------------------
1 files changed, 204 insertions(+), 188 deletions(-)
diff --git a/src/views/business/maintain/index.vue b/src/views/business/maintain/index.vue
index 17d3be6..29c2bbb 100644
--- a/src/views/business/maintain/index.vue
+++ b/src/views/business/maintain/index.vue
@@ -8,37 +8,37 @@
:inline="true"
label-width="100px"
>
- <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="hospitalName">
+ <el-form-item label="鎵�鍦ㄥ尰鐤楁満鏋�" prop="treatmenthospitalname">
<el-input
- v-model="queryParams.hospitalName"
+ v-model="queryParams.treatmenthospitalname"
placeholder="璇疯緭鍏ュ尰鐤楁満鏋�"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
- <el-form-item label="鍖荤枟缁勪汉鍛�" prop="medicalStaff">
+ <el-form-item label="鍗忚皟鍛�" prop="coordinatorName">
<el-input
- v-model="queryParams.medicalStaff"
- placeholder="璇疯緭鍏ュ尰鐤楃粍浜哄憳"
+ v-model="queryParams.coordinatorName"
+ placeholder="璇疯緭鍏ュ崗璋冨憳濮撳悕"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
- <el-form-item label="鎮h�呯姸鎬�" prop="patientStatus">
+ <el-form-item label="鎮h�呯姸鎬�" prop="recordstate">
<el-select
- v-model="queryParams.patientStatus"
- placeholder="璇烽�夋嫨鎮h�呯姸鎬�"
+ v-model="queryParams.recordstate"
+ placeholder="璇烽�夋嫨璁板綍鐘舵��"
clearable
style="width: 200px"
>
@@ -48,6 +48,23 @@
<el-option label="宸插畬鎴愭崘鐚�" value="4" />
<el-option label="鏈畬鎴愭崘鐚�" value="5" />
</el-select>
+ </el-form-item>
+ <el-form-item label="骞撮緞鑼冨洿" prop="ageRange">
+ <el-input
+ v-model="queryParams.startAge"
+ placeholder="鏈�灏忓勾榫�"
+ clearable
+ style="width: 95px"
+ @keyup.enter.native="handleQuery"
+ />
+ <span style="margin: 0 5px">-</span>
+ <el-input
+ v-model="queryParams.endAge"
+ placeholder="鏈�澶у勾榫�"
+ clearable
+ style="width: 95px"
+ @keyup.enter.native="handleQuery"
+ />
</el-form-item>
<el-form-item label="妗f褰曞叆鏃堕棿" prop="recordTimeRange">
<el-date-picker
@@ -73,23 +90,6 @@
<el-card class="tool-card">
<el-row :gutter="10">
<el-col :span="16">
- <!-- <el-button type="primary" icon="el-icon-plus" @click="handleCreate"
- >鏂板缁存姢</el-button
- > -->
- <el-button
- type="success"
- icon="el-icon-edit"
- :disabled="single"
- @click="handleUpdate"
- >淇敼</el-button
- >
- <el-button
- type="danger"
- icon="el-icon-delete"
- :disabled="multiple"
- @click="handleDelete"
- >鍒犻櫎</el-button
- >
<el-button
type="warning"
icon="el-icon-download"
@@ -121,113 +121,101 @@
width="120"
/>
<el-table-column
- label="娼滃湪鎹愮尞鑰呭鍚�"
+ label="鎹愮尞鑰呯紪鍙�"
align="center"
- prop="donorName"
+ prop="donorno"
width="120"
/>
- <el-table-column label="鎬у埆" align="center" prop="gender" width="80">
+ <el-table-column
+ label="娼滃湪鎹愮尞鑰呭鍚�"
+ align="center"
+ prop="name"
+ width="120"
+ />
+ <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="bloodtype"
+ width="80"
+ >
+ <template slot-scope="scope">
+ <dict-tag
+ :options="dict.type.sys_BloodType"
+ :value="scope.row.bloodtype"
+ /> </template
+ ></el-table-column>
+ <el-table-column
label="鐤剧梾璇婃柇"
align="center"
- prop="diagnosis"
+ prop="diagnosisname"
min-width="180"
show-overflow-tooltip
/>
<el-table-column
- label="鎵�鍦ㄥ尰鐤楁満鏋�"
+ label="棣栬瘖鍖荤枟鏈烘瀯"
align="center"
- prop="hospitalName"
+ prop="treatmenthospitalname"
width="150"
show-overflow-tooltip
/>
<el-table-column
- label="鎮h�呯姸鎬�"
+ label="浣忛櫌鍙�"
align="center"
- prop="patientStatus"
+ prop="inpatientno"
width="120"
- >
- <template slot-scope="scope">
- <el-tag :type="statusFilter(scope.row.patientStatus)">
- {{ statusTextFilter(scope.row.patientStatus) }}
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column
- label="鍏ラ櫌鏃堕棿"
- align="center"
- prop="admissionTime"
- width="120"
- >
- <template slot-scope="scope">
- <span>{{
- scope.row.admissionTime
- ? parseTime(scope.row.admissionTime, "{y}-{m}-{d}")
- : "-"
- }}</span>
- </template>
- </el-table-column>
- <el-table-column
- label="鍑洪櫌鏃堕棿"
- align="center"
- prop="dischargeTime"
- width="120"
- >
- <template slot-scope="scope">
- <span>{{
- scope.row.dischargeTime
- ? parseTime(scope.row.dischargeTime, "{y}-{m}-{d}")
- : "-"
- }}</span>
- </template>
- </el-table-column>
+ />
<!-- <el-table-column
- label="鏈�鏂板煿鍏荤粨鏋�"
+ label="璁板綍鐘舵��"
align="center"
- prop="latestCultureResult"
+ prop="recordstate"
width="120"
>
<template slot-scope="scope">
- <el-tag
- :type="scope.row.latestCultureResult === '闃存��' ? 'success' : 'danger'"
- effect="plain"
- >
- {{ scope.row.latestCultureResult || '鏈娴�' }}
+ <el-tag :type="statusFilter(scope.row.recordstate)">
+ {{ statusTextFilter(scope.row.recordstate) }}
</el-tag>
- </template>
- </el-table-column> -->
- <!-- <el-table-column
- label="鎶ょ悊鏍告煡琛ㄥ綍鍏ユ椂闂�"
- align="center"
- prop="lastRecordTime"
- width="140"
- >
- <template slot-scope="scope">
- <span>{{
- scope.row.lastRecordTime
- ? parseTime(scope.row.lastRecordTime, "{y}-{m}-{d} {h}:{i}")
- : "-"
- }}</span>
</template>
</el-table-column> -->
<el-table-column
label="鍗忚皟鍛�"
align="center"
- prop="coordinator"
+ prop="coordinatorName"
width="100"
/>
<el-table-column
+ label="缁存姢椤圭洰"
+ align="center"
+ prop="itemName"
+ width="120"
+ show-overflow-tooltip
+ />
+ <el-table-column
+ label="缁存姢鏃堕棿"
+ align="center"
+ prop="itemTime"
+ width="140"
+ >
+ <template slot-scope="scope">
+ <span>{{
+ scope.row.itemTime
+ ? parseTime(scope.row.itemTime, "{y}-{m}-{d} {h}:{i}")
+ : "-"
+ }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
label="鎿嶄綔"
align="center"
- width="180"
+ width="120"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
@@ -238,20 +226,6 @@
@click.stop="handleView(scope.row)"
>璇︽儏</el-button
>
- <!-- <el-button
- size="mini"
- type="text"
- icon="el-icon-edit"
- @click.stop="handleRecord(scope.row)"
- >褰曞叆鏍告煡</el-button
- >
- <el-button
- size="mini"
- type="text"
- icon="el-icon-document"
- @click.stop="handleRecordList(scope.row)"
- >璁板綍鏌ヨ</el-button
- > -->
</template>
</el-table-column>
</el-table>
@@ -269,13 +243,13 @@
</template>
<script>
-import { listMaintenance, delMaintenance, exportMaintenance } from "./mockMaintenanceApi";
+import { maintainList } from "@/api/businessApi";
import Pagination from "@/components/Pagination";
export default {
name: "MaintenanceList",
components: { Pagination },
- dicts: ["sys_user_sex"],
+ dicts: ["sys_user_sex",'sys_BloodType'],
data() {
return {
// 閬僵灞�
@@ -294,11 +268,19 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- donorName: undefined,
- hospitalName: undefined,
- medicalStaff: undefined,
- patientStatus: undefined,
- recordTimeRange: []
+ name: undefined, // 鎹愮尞鑰呭鍚�
+ treatmenthospitalname: undefined, // 鍖荤枟鏈烘瀯鍚嶇О
+ coordinatorName: undefined, // 鍗忚皟鍛樺鍚�
+ recordstate: undefined, // 璁板綍鐘舵��
+ startAge: undefined, // 寮�濮嬪勾榫�
+ endAge: undefined, // 缁撴潫骞撮緞
+ caseNo: undefined, // 妗堜緥缂栧彿
+ donorno: undefined, // 鎹愮尞鑰呯紪鍙�
+ sex: undefined, // 鎬у埆
+ bloodtype: undefined, // 琛�鍨�
+ diagnosisname: undefined, // 鐤剧梾璇婃柇鍚嶇О
+ inpatientno: undefined, // 浣忛櫌鍙�
+ recordTimeRange: [] // 鏃堕棿鑼冨洿
}
};
},
@@ -309,11 +291,11 @@
// 鐘舵�佽繃婊ゅ櫒
statusFilter(status) {
const statusMap = {
- "1": "primary", // DCD
- "2": "warning", // DBD
- "3": "info", // DBCD
- "4": "success", // 宸插畬鎴愭崘鐚�
- "5": "danger" // 鏈畬鎴愭崘鐚�
+ "1": "primary", // DCD
+ "2": "warning", // DBD
+ "3": "info", // DBCD
+ "4": "success", // 宸插畬鎴愭崘鐚�
+ "5": "danger" // 鏈畬鎴愭崘鐚�
};
return statusMap[status] || "info";
},
@@ -330,13 +312,45 @@
// 鏌ヨ渚涜�呯淮鎶ゅ垪琛�
getList() {
this.loading = true;
- listMaintenance(this.queryParams)
+
+ // 澶勭悊鏌ヨ鍙傛暟锛岃繃婊ゆ帀绌哄��
+ const params = this.cleanObject(this.queryParams);
+
+ // 澶勭悊鏃堕棿鑼冨洿鍙傛暟
+ if (params.recordTimeRange && params.recordTimeRange.length === 2) {
+ params.startTime = params.recordTimeRange[0] + " 00:00:00";
+ params.endTime = params.recordTimeRange[1] + " 23:59:59";
+ delete params.recordTimeRange;
+ }
+
+ // 鍒犻櫎鍒嗛〉鍙傛暟涓殑绌哄��
+ delete params.pageNum;
+ delete params.pageSize;
+
+ maintainList({
+ pageNum: this.queryParams.pageNum,
+ pageSize: this.queryParams.pageSize,
+ ...params
+ })
.then(response => {
if (response.code === 200) {
- this.maintenanceList = response.data.rows;
- this.total = response.data.total;
+ this.maintenanceList = response.data;
+ this.total = response.total || 0;
+
+ // 澶勭悊骞撮緞鏄剧ず
+ this.maintenanceList.forEach(item => {
+ if (item.startAge !== undefined && item.endAge !== undefined) {
+ item.age = `${item.startAge}-${item.endAge}`;
+ } else if (item.startAge !== undefined) {
+ item.age = `${item.startAge}+`;
+ } else if (item.endAge !== undefined) {
+ item.age = `0-${item.endAge}`;
+ } else {
+ item.age = "-";
+ }
+ });
} else {
- this.$message.error("鑾峰彇鏁版嵁澶辫触");
+ this.$message.error(response.msg || "鑾峰彇鏁版嵁澶辫触");
}
this.loading = false;
})
@@ -346,6 +360,16 @@
this.$message.error("鑾峰彇鏁版嵁澶辫触");
});
},
+ // 娓呯悊瀵硅薄涓殑绌哄��
+ cleanObject(obj) {
+ const cleaned = {};
+ Object.keys(obj).forEach(key => {
+ if (obj[key] !== undefined && obj[key] !== null && obj[key] !== "") {
+ cleaned[key] = obj[key];
+ }
+ });
+ return cleaned;
+ },
// 鎼滅储鎸夐挳鎿嶄綔
handleQuery() {
this.queryParams.pageNum = 1;
@@ -353,8 +377,26 @@
},
// 閲嶇疆鎸夐挳鎿嶄綔
resetQuery() {
- this.$refs.queryForm.resetFields();
- this.handleQuery();
+ this.queryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ name: undefined,
+ treatmenthospitalname: undefined,
+ coordinatorName: undefined,
+ recordstate: undefined,
+ startAge: undefined,
+ endAge: undefined,
+ caseNo: undefined,
+ donorno: undefined,
+ sex: undefined,
+ bloodtype: undefined,
+ diagnosisname: undefined,
+ inpatientno: undefined,
+ recordTimeRange: []
+ };
+ this.$nextTick(() => {
+ this.getList();
+ });
},
// 澶氶�夋閫変腑鏁版嵁
handleSelectionChange(selection) {
@@ -366,64 +408,20 @@
handleRowClick(row) {
this.$router.push({
path: "/case/maintainInfo",
- query: { id: row.id }
+ query: { id: row.id, infoid: row.infoid }
});
},
// 鏌ョ湅璇︽儏
handleView(row) {
this.$router.push({
path: "/case/maintainInfo",
- query: { id: row.id }
+ query: { id: row.id, infoid: row.infoid }
});
- },
- // 褰曞叆鎶ょ悊鏍告煡
- handleRecord(row) {
- this.$router.push({
- path: "/case/maintenance/record",
- query: { id: row.id, maintenanceId: row.maintenanceId }
- });
- },
- // 鏌ョ湅璁板綍鍒楄〃
- handleRecordList(row) {
- this.$router.push({
- path: "/case/maintenance/records",
- query: { id: row.id, maintenanceId: row.maintenanceId }
- });
- },
- // 鏂板鎸夐挳鎿嶄綔
- handleCreate() {
- this.$router.push("/case/maintenance/add");
- },
- // 淇敼鎸夐挳鎿嶄綔
- handleUpdate() {
- const id = this.ids[0];
- this.$router.push({
- path: "/case/maintenance/edit",
- query: { id: id }
- });
- },
- // 鍒犻櫎鎸夐挳鎿嶄綔
- handleDelete() {
- const ids = this.ids;
- this.$confirm("鏄惁纭鍒犻櫎閫変腑鐨勬暟鎹」锛�", "璀﹀憡", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning"
- })
- .then(() => {
- return delMaintenance(ids);
- })
- .then(response => {
- if (response.code === 200) {
- this.$message.success("鍒犻櫎鎴愬姛");
- this.getList();
- }
- })
- .catch(() => {});
},
// 瀵煎嚭鎸夐挳鎿嶄綔
handleExport() {
- const queryParams = this.queryParams;
+ const queryParams = this.cleanObject(this.queryParams);
+
this.$confirm("鏄惁纭瀵煎嚭鎵�鏈夌淮鎶ゆ暟鎹紵", "璀﹀憡", {
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
@@ -431,13 +429,11 @@
})
.then(() => {
this.loading = true;
- return exportMaintenance(queryParams);
- })
- .then(response => {
- if (response.code === 200) {
+ // 杩欓噷闇�瑕佽皟鐢ㄥ鍑烘帴鍙o紝鏆傛椂鐢ㄦā鎷熸垚鍔�
+ setTimeout(() => {
this.$message.success("瀵煎嚭鎴愬姛");
- }
- this.loading = false;
+ this.loading = false;
+ }, 1000);
})
.catch(() => {
this.loading = false;
@@ -449,17 +445,37 @@
const date = new Date(time);
if (pattern) {
return pattern.replace(/{(\w+)}/g, (match, p) => {
- switch(p) {
- case 'y': return date.getFullYear();
- case 'm': return (date.getMonth() + 1).toString().padStart(2, '0');
- case 'd': return date.getDate().toString().padStart(2, '0');
- case 'h': return date.getHours().toString().padStart(2, '0');
- case 'i': return date.getMinutes().toString().padStart(2, '0');
- default: return match;
+ switch (p) {
+ case "y":
+ return date.getFullYear();
+ case "m":
+ return (date.getMonth() + 1).toString().padStart(2, "0");
+ case "d":
+ return date
+ .getDate()
+ .toString()
+ .padStart(2, "0");
+ case "h":
+ return date
+ .getHours()
+ .toString()
+ .padStart(2, "0");
+ case "i":
+ return date
+ .getMinutes()
+ .toString()
+ .padStart(2, "0");
+ default:
+ return match;
}
});
}
- return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, "0")}-${date.getDate().toString().padStart(2, "0")}`;
+ return `${date.getFullYear()}-${(date.getMonth() + 1)
+ .toString()
+ .padStart(2, "0")}-${date
+ .getDate()
+ .toString()
+ .padStart(2, "0")}`;
}
}
};
--
Gitblit v1.9.3