From 4c9fdc87987140e8b2c3f0dfc2f6608cdb6be774 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 21 十月 2026 17:39:24 +0800
Subject: [PATCH] 青岛维护
---
src/views/business/maintain/maintainInfo.vue | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 54 insertions(+), 6 deletions(-)
diff --git a/src/views/business/maintain/maintainInfo.vue b/src/views/business/maintain/maintainInfo.vue
index 155204f..dbe4550 100644
--- a/src/views/business/maintain/maintainInfo.vue
+++ b/src/views/business/maintain/maintainInfo.vue
@@ -6,16 +6,20 @@
<div slot="header" class="clearfix">
<span class="detail-title">璇勪及鍚勯」璁板綍</span>
<el-button
+ v-if="!isReadOnly"
type="primary"
size="mini"
+ :loading="saveLoading"
@click="toggleEditMode"
style="float: right;margin-left: 20px;"
>
淇濆瓨缂栬緫
</el-button>
<el-button
+ v-if="!isReadOnly"
type="success"
size="mini"
+ :loading="saveLoading"
@click="accomplish"
style="float: right;margin-left: 20px;"
>
@@ -30,6 +34,7 @@
<div slot="header" class="clearfix">
<span class="detail-title">鍩瑰吇缁撴灉璁板綍</span>
<el-button
+ v-if="!isReadOnly"
type="primary"
size="mini"
icon="el-icon-plus"
@@ -120,6 +125,7 @@
</template>
</el-table-column>
<el-table-column
+ v-if="!isReadOnly"
label="鎿嶄綔"
align="center"
width="200"
@@ -151,6 +157,7 @@
<div slot="header" class="clearfix">
<span class="detail-title">鎶ょ悊鏍告煡璁板綍</span>
<el-button
+ v-if="!isReadOnly"
type="primary"
size="mini"
icon="el-icon-plus"
@@ -196,6 +203,7 @@
</template>
</el-table-column>
<el-table-column
+ v-if="!isReadOnly"
label="鎿嶄綔"
align="center"
width="180"
@@ -228,7 +236,7 @@
<liver-kidney-panel
ref="liverKidney"
:initial-data="assessmentData.liverKidney"
- :is-editing="isEdit && activeTab === 'liverKidney'"
+ :is-editing="!isReadOnly && isEdit && activeTab === 'liverKidney'"
@data-change="handleLiverKidneyDataChange"
/>
</el-tab-pane>
@@ -238,7 +246,7 @@
<blood-routine-panel
ref="bloodRoutine"
:initial-data="assessmentData.bloodRoutine"
- :is-editing="isEdit && activeTab === 'bloodRoutine'"
+ :is-editing="!isReadOnly && isEdit && activeTab === 'bloodRoutine'"
@data-change="handleBloodRoutineDataChange"
/>
</el-tab-pane>
@@ -248,7 +256,7 @@
<urine-routine-panel
ref="urineRoutine"
:initial-data="assessmentData.urineRoutine"
- :is-editing="isEdit && activeTab === 'urineRoutine'"
+ :is-editing="!isReadOnly && isEdit && activeTab === 'urineRoutine'"
@data-change="handleUrineRoutineDataChange"
/>
</el-tab-pane>
@@ -256,7 +264,7 @@
<heart-lab-panel
ref="heartLab"
:initial-data="assessmentData.heartLab"
- :is-editing="isEdit && activeTab === 'heartLab'"
+ :is-editing="!isReadOnly && isEdit && activeTab === 'heartLab'"
@data-change="handleHeartLabDataChange"
/>
</el-tab-pane>
@@ -264,7 +272,7 @@
<lung-lab-panel
ref="lungLab"
:initial-data="assessmentData.lungLab"
- :is-editing="isEdit && activeTab === 'lungLab'"
+ :is-editing="!isReadOnly && isEdit && activeTab === 'lungLab'"
@data-change="handleLungLabDataChange"
/>
</el-tab-pane>
@@ -272,7 +280,7 @@
<pancreas-lab-panel
ref="pancreasLab"
:initial-data="assessmentData.pancreasLab"
- :is-editing="isEdit && activeTab === 'pancreasLab'"
+ :is-editing="!isReadOnly && isEdit && activeTab === 'pancreasLab'"
@data-change="handlePancreasLabDataChange"
/>
</el-tab-pane>
@@ -516,6 +524,7 @@
<script>
import { maintainList, maintainedit, maintainAdd } from "@/api/businessApi";
+import { getDonatebaseinfo } from "@/api/project/donatebaseinfo";
import Pagination from "@/components/Pagination";
import UploadAttachment from "@/components/UploadAttachment";
import FilePreviewDialog from "@/components/FilePreviewDialog";
@@ -558,6 +567,7 @@
isEdit: true,
currentMaintenanceId: null,
isEditMode: false,
+ saveLoading: false,
form: {
id: undefined,
caseNo: "",
@@ -676,6 +686,12 @@
watch: {
$route(to, from) {
this.loadMaintenanceData();
+ }
+ },
+ computed: {
+ // 鏌ョ湅妯″紡锛氬彧璇伙紝绂佺敤琛ㄥ崟骞堕殣钘忎繚瀛樻寜閽�
+ isReadOnly() {
+ return this.$route.query.mode === "view";
}
},
methods: {
@@ -805,7 +821,17 @@
},
// 淇濆瓨鎵�鏈夋暟鎹�
async handleSave() {
+ if (this.saveLoading) return;
+ this.saveLoading = true;
try {
+ // 鏂板鏃舵牎楠屾槸鍚﹀凡鏈夌浉鍚屾偅鑰�
+ if (!this.currentMaintenanceId) {
+ const exists = await this.checkPatientExists();
+ if (exists) {
+ this.$message.warning("璇ユ偅鑰呭凡瀛樺湪锛岃鍕块噸澶嶆坊鍔�");
+ return;
+ }
+ }
const saveData = {
...this.form,
itemDesc: {
@@ -851,6 +877,28 @@
} catch (error) {
console.error("淇濆瓨鏁版嵁澶辫触:", error);
this.$message.error("淇濆瓨澶辫触");
+ } finally {
+ this.saveLoading = false;
+ }
+ },
+ // 鏂板鏃舵牎楠屾槸鍚﹀凡鏈夌浉鍚屾偅鑰咃紙鎸変綇闄㈠彿锛�
+ async checkPatientExists() {
+ let inpatientno = this.form.inpatientno;
+ if (!inpatientno && this.caseId) {
+ try {
+ const caseRes = await getDonatebaseinfo(this.caseId);
+ inpatientno = (caseRes.data && caseRes.data.inpatientno) || "";
+ } catch (e) {
+ inpatientno = "";
+ }
+ }
+ if (!inpatientno) return false;
+ try {
+ const res = await maintainList({ inpatientno, pageNum: 1, pageSize: 1 });
+ const list = res.data || [];
+ return list.some(item => item && item.id != null && item.id !== "");
+ } catch (e) {
+ return false;
}
},
// 5. 鍦� methods 涓坊鍔犳暟鎹鐞嗘柟娉�
--
Gitblit v1.9.3