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/decide/DecideInfo.vue | 104 ++++++++++++++++++++++++++++++++++++---------------
1 files changed, 73 insertions(+), 31 deletions(-)
diff --git a/src/views/business/decide/DecideInfo.vue b/src/views/business/decide/DecideInfo.vue
index 0590feb..ed708d2 100644
--- a/src/views/business/decide/DecideInfo.vue
+++ b/src/views/business/decide/DecideInfo.vue
@@ -35,7 +35,7 @@
<el-form-item label="璐熻矗浜�" prop="responsibleusername">
<el-input
v-model="form.responsibleusername"
- :readonly="!isEdit"
+ :disabled="isReadOnly || !isEdit"
/>
</el-form-item>
</el-col>
@@ -43,7 +43,7 @@
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="鍣ㄥ畼鑾峰彇鏈烘瀯" prop="gainhospitalname">
- <el-input v-model="form.gainhospitalname" :readonly="!isEdit" />
+ <el-input v-model="form.gainhospitalname" :disabled="isReadOnly || !isEdit" />
</el-form-item>
</el-col>
@@ -56,7 +56,7 @@
<span class="detail-title">鑴戞浜″垽瀹氫俊鎭�</span>
<el-button
- v-if="!isEdit"
+ v-if="!isReadOnly && !isEdit"
style="float: right; margin-left: 10px;"
type="primary"
@click="handleEdit"
@@ -68,25 +68,25 @@
<el-form :model="form" ref="brainForm" :rules="rules" label-width="120px" class="paper-form">
<div class="form-row">
<el-form-item label="姝讳骸鍘熷洜" prop="deathreason" class="col-1-3">
- <el-input v-model="form.deathreason" :readonly="!isEdit" />
+ <el-input v-model="form.deathreason" :disabled="isReadOnly || !isEdit" />
</el-form-item>
- </div>
-
- <div class="form-row">
<el-form-item label="姝讳骸鏃堕棿" prop="deathtime" class="col-1-3">
<el-date-picker
v-model="form.deathtime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
- :disabled="!isEdit"
+ :disabled="isReadOnly || !isEdit"
/>
</el-form-item>
+ </div>
+
+ <div class="form-row">
<el-form-item label="鍒ゅ畾鍖荤敓涓�" prop="deathjudgedocto" class="col-1-3">
- <el-input v-model="form.deathjudgedocto" :readonly="!isEdit" />
+ <el-input v-model="form.deathjudgedocto" :disabled="isReadOnly || !isEdit" />
</el-form-item>
<el-form-item label="鍒ゅ畾鍖荤敓浜�" prop="deathjudgedoctt" class="col-1-3">
- <el-input v-model="form.deathjudgedoctt" :readonly="!isEdit" />
+ <el-input v-model="form.deathjudgedoctt" :disabled="isReadOnly || !isEdit" />
</el-form-item>
</div>
<div class="form-row">
@@ -94,16 +94,16 @@
<div
v-for="(doctor, index) in brainExtraDoctors"
:key="index"
- style="display: flex; align-items: center; margin-bottom: 8px;"
+ style="display: flex; align-items: center; margin-bottom: 8px; width: 100%;"
>
<el-input
v-model="brainExtraDoctors[index]"
placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
style="flex: 1; margin-right: 10px;"
- :readonly="!isEdit"
+ :disabled="isReadOnly || !isEdit"
/>
<el-button
- v-if="isEdit"
+ v-if="!isReadOnly && isEdit"
type="danger"
icon="el-icon-minus"
circle
@@ -112,7 +112,7 @@
/>
</div>
<el-button
- v-if="isEdit"
+ v-if="!isReadOnly && isEdit"
type="primary"
icon="el-icon-plus"
size="small"
@@ -143,6 +143,7 @@
<span class="upload-title">{{ type.label }}</span>
<el-tooltip content="鐐瑰嚮涓婁紶璇ョ被鍨嬭瘎浼拌〃" placement="top">
<el-button
+ v-if="!isReadOnly"
size="mini"
type="primary"
icon="el-icon-plus"
@@ -215,7 +216,7 @@
>涓嬭浇</el-button
>
<el-button
- v-if="isEdit"
+ v-if="!isReadOnly && isEdit"
size="mini"
type="text"
icon="el-icon-delete"
@@ -247,7 +248,7 @@
<div slot="header" class="clearfix">
<span class="detail-title">蹇冩浜″垽瀹氫俊鎭�</span>
<el-button
- v-if="isEdit"
+ v-if="!isReadOnly && isEdit"
style="float: right; margin-left: 10px;"
type="success"
@click="handleSave"
@@ -256,7 +257,7 @@
淇濆瓨淇℃伅
</el-button>
<el-button
- v-else
+ v-else-if="!isReadOnly"
style="float: right; margin-left: 10px;"
type="primary"
@click="handleEdit"
@@ -268,30 +269,30 @@
<el-form :model="form" ref="heartForm" :rules="rules" label-width="120px" class="paper-form">
<div class="form-row">
<el-form-item label="蹇冩浜″師鍥�" prop="heartdeathreason" class="col-1-3">
- <el-input v-model="form.heartdeathreason" :readonly="!isEdit" />
+ <el-input v-model="form.heartdeathreason" :disabled="isReadOnly || !isEdit" />
</el-form-item>
- </div>
-
- <div class="form-row">
<el-form-item label="蹇冩浜″垽瀹氬畬鎴愭椂闂�" prop="heartdeathtime" class="col-1-3">
<el-date-picker
v-model="form.heartdeathtime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
- :disabled="!isEdit"
+ :disabled="isReadOnly || !isEdit"
/>
</el-form-item>
+ </div>
+
+ <div class="form-row">
<el-form-item label="鍒ゅ畾鍖荤敓涓�" prop="heartdeathjudgedocto" class="col-1-3">
<el-input
v-model="form.heartdeathjudgedocto"
- :readonly="!isEdit"
+ :disabled="isReadOnly || !isEdit"
/>
</el-form-item>
<el-form-item label="鍒ゅ畾鍖荤敓浜�" prop="heartdeathjudgedoctt" class="col-1-3">
<el-input
v-model="form.heartdeathjudgedoctt"
- :readonly="!isEdit"
+ :disabled="isReadOnly || !isEdit"
/>
</el-form-item>
</div>
@@ -300,16 +301,16 @@
<div
v-for="(doctor, index) in heartExtraDoctors"
:key="index"
- style="display: flex; align-items: center; margin-bottom: 8px;"
+ style="display: flex; align-items: center; margin-bottom: 8px; width: 100%;"
>
<el-input
v-model="heartExtraDoctors[index]"
placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
style="flex: 1; margin-right: 10px;"
- :readonly="!isEdit"
+ :disabled="isReadOnly || !isEdit"
/>
<el-button
- v-if="isEdit"
+ v-if="!isReadOnly && isEdit"
type="danger"
icon="el-icon-minus"
circle
@@ -318,7 +319,7 @@
/>
</div>
<el-button
- v-if="isEdit"
+ v-if="!isReadOnly && isEdit"
type="primary"
icon="el-icon-plus"
size="small"
@@ -349,6 +350,7 @@
<span class="upload-title">{{ type.label }}</span>
<el-tooltip content="鐐瑰嚮涓婁紶璇ョ被鍨嬭瘎浼拌〃" placement="top">
<el-button
+ v-if="!isReadOnly"
size="mini"
type="primary"
icon="el-icon-plus"
@@ -421,7 +423,7 @@
>涓嬭浇</el-button
>
<el-button
- v-if="isEdit"
+ v-if="!isReadOnly && isEdit"
size="mini"
type="text"
icon="el-icon-delete"
@@ -450,7 +452,7 @@
<!-- 搴曢儴鎿嶄綔鎸夐挳 -->
<div style="text-align: center; margin: 30px 0;">
<el-button
- v-if="isEdit"
+ v-if="!isReadOnly && isEdit"
type="primary"
@click="handleSave"
:loading="saveLoading"
@@ -458,7 +460,7 @@
淇濆瓨淇℃伅
</el-button>
<el-button
- v-if="isEdit"
+ v-if="!isReadOnly && isEdit"
type="success"
@click="accomplish"
:loading="saveLoading"
@@ -569,6 +571,7 @@
deathinfoadd,
queryDathInfoBaseInfo
} from "@/api/businessApi";
+import { getDonatebaseinfo } from "@/api/project/donatebaseinfo";
import { getToken } from "@/utils/auth";
import CaseBasicInfo from "@/components/CaseBasicInfo";
import FilePreviewDialog from "@/components/FilePreviewDialog";
@@ -693,6 +696,10 @@
};
},
computed: {
+ // 鏌ョ湅妯″紡锛氬彧璇伙紝绂佺敤琛ㄥ崟骞堕殣钘忎繚瀛樻寜閽�
+ isReadOnly() {
+ return this.$route.query.mode === "view";
+ },
getCurrentBrainDeathTypeLabel() {
const type = this.brainDeathAttachmentTypes.find(
t => t.value === this.currentUploadType
@@ -715,6 +722,9 @@
if (this.$route.query.judgmentType) {
this.activeJudgmentType = this.$route.query.judgmentType;
}
+
+ // 鏌ョ湅妯″紡涓嬮粯璁ゅ彧璇�
+ this.isEdit = !this.isReadOnly;
this.getDetail(this.infoid);
this.getAttachmentList();
@@ -1177,6 +1187,7 @@
},
// 淇濆瓨淇℃伅
async handleSave() {
+ if (this.saveLoading) return;
// 鏍规嵁褰撳墠鏍囩閫夋嫨楠岃瘉瑙勫垯
let formRef =
this.activeJudgmentType === "brain" ? "brainForm" : "heartForm";
@@ -1221,6 +1232,12 @@
if (submitData.id) {
response = await deathinfoedit(submitData);
} else {
+ // 鏂板鏃舵牎楠屾槸鍚﹀凡鏈夌浉鍚屾偅鑰�
+ const exists = await this.checkPatientExists();
+ if (exists) {
+ this.$message.warning("璇ユ偅鑰呭凡瀛樺湪锛岃鍕块噸澶嶆坊鍔�");
+ return;
+ }
response = await deathinfoadd(submitData);
}
@@ -1246,6 +1263,31 @@
});
},
+ // 鏂板鏃舵牎楠屾槸鍚﹀凡鏈夌浉鍚屾偅鑰咃紙鎸変綇闄㈠彿锛�
+ 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 queryDathInfoBaseInfo({
+ inpatientno,
+ pageNum: 1,
+ pageSize: 1
+ });
+ const list = res.rows || res.data || [];
+ return list.some(item => item && item.id != null && item.id !== "");
+ } catch (e) {
+ return false;
+ }
+ },
+
// 鏂囦欢澶у皬鏍煎紡鍖�
formatFileSize(size) {
if (size === 0) return "0 B";
--
Gitblit v1.9.3