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/assess/assessInfo.vue | 53 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 44 insertions(+), 9 deletions(-)
diff --git a/src/views/business/assess/assessInfo.vue b/src/views/business/assess/assessInfo.vue
index bb6f49c..2607bf8 100644
--- a/src/views/business/assess/assessInfo.vue
+++ b/src/views/business/assess/assessInfo.vue
@@ -12,12 +12,12 @@
<el-form class="paper-form">
<div class="form-row">
<el-form-item label-width="100px" label="鎹愮尞鍐冲畾" class="col-full">
- <el-checkbox-group v-model="organdecisionValues" @change="handleOrganDecisionChange" :disabled="!isEdit">
+ <el-checkbox-group v-model="organdecisionValues" @change="handleOrganDecisionChange" :disabled="!isEdit || isReadOnly">
<el-checkbox v-for="dict in dict.type.sys_Organ" :key="dict.value" :label="dict.value">{{ dict.label }}
</el-checkbox>
</el-checkbox-group>
<el-input v-if="showOtherInput" v-model="organdecisionOther" placeholder="璇疯緭鍏ュ叾浠栨崘鐚喅瀹氱殑鍏蜂綋鍐呭"
- style="margin-top: 10px; width: 300px;" :readonly="!isEdit" @input="handleOtherDecisionInput"></el-input>
+ style="margin-top: 10px; width: 300px;" :readonly="!isEdit || isReadOnly" @input="handleOtherDecisionInput"></el-input>
</el-form-item>
</div>
</el-form>
@@ -35,13 +35,13 @@
<el-tab-pane v-for="(assessment, index) in getOrganAssessments(scope.row)"
:key="`${scope.row.organno}_${index}`" :label="`绗�${index + 1}娆¤瘎浼癭" :name="String(index)">
<organ-assessment-form :organ-data="scope.row" :assessment-index="index"
- :readonly="!canAssessOrgan(scope.row)" :current-user="currentUser"
+ :readonly="!canAssessOrgan(scope.row) || isReadOnly" :current-user="currentUser"
@update-assessment="handleUpdateAssessment" @delete-assessment="handleDeleteAssessment"
@save-assessment="handleSaveAssessment" />
</el-tab-pane>
<!-- 娣诲姞璇勪及鎸夐挳 -->
- <el-tab-pane name="add" v-if="canAssessOrgan(scope.row) && isEdit">
+ <el-tab-pane name="add" v-if="canAssessOrgan(scope.row) && isEdit && !isReadOnly">
<template slot="label">
<el-button type="text" icon="el-icon-plus" @click.stop="handleAddNewAssessment(scope.row)"
size="mini">
@@ -255,7 +255,7 @@
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" align="center" width="150" class-name="small-padding fixed-width">
+ <el-table-column v-if="!isReadOnly" label="鎿嶄綔" align="center" width="150" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button v-if="canAssessOrgan(scope.row) && isEdit" size="mini" type="text"
@click="handleToggleExpand(scope.row)">
@@ -275,7 +275,7 @@
</el-card>
<!-- 鏁翠綋淇濆瓨鎸夐挳 -->
- <div class="footer-actions" v-if="isEdit">
+ <div class="footer-actions" v-if="isEdit && !isReadOnly">
<el-button type="primary" @click="handleSaveAll" :loading="saveLoading">淇濆瓨璇勪及琛�</el-button>
<el-button type="success" @click="accomplish" :loading="saveLoading">璇勪及瀹屾垚</el-button>
</div>
@@ -291,6 +291,7 @@
assessedit,
assessAdd
} from "@/api/businessApi/index";
+import { getDonatebaseinfo } from "@/api/project/donatebaseinfo";
import CaseBasicInfo from "@/components/CaseBasicInfo";
import FilePreviewDialog from "@/components/FilePreviewDialog";
import OrganAssessmentForm from "@/components/assessInfoComponents/OrganAssessmentForm.vue";
@@ -360,6 +361,10 @@
};
},
computed: {
+ // 鏌ョ湅妯″紡锛氬彧璇伙紝绂佺敤琛ㄥ崟骞堕殣钘忎繚瀛樻寜閽�
+ isReadOnly() {
+ return this.$route.query.mode === "view";
+ },
isCoordinator() {
return this.currentUser.role == "coordinator";
},
@@ -550,7 +555,7 @@
type: "warning"
})
.then(() => {
- this.form.assessState = 3;
+ this.assessmentData.assessState = 3;
this.handleSaveAll();
})
@@ -558,8 +563,17 @@
},
// 鏁翠綋淇濆瓨鏂规硶
async handleSaveAll() {
+ if (this.saveLoading) return;
this.saveLoading = true;
try {
+ // 鏂板鏃舵牎楠屾槸鍚﹀凡鏈夌浉鍚屾偅鑰�
+ if (!this.assessmentData.id) {
+ const exists = await this.checkPatientExists();
+ if (exists) {
+ this.$message.warning("璇ユ偅鑰呭凡瀛樺湪锛岃鍕块噸澶嶆坊鍔�");
+ return;
+ }
+ }
const saveData = {
id: this.assessmentData.id || undefined,
infoid: this.infoid,
@@ -621,6 +635,29 @@
this.$message.error("淇濆瓨澶辫触锛岃閲嶈瘯");
} finally {
this.saveLoading = false;
+ }
+ },
+ // 鏂板鏃舵牎楠屾槸鍚﹀凡鏈夌浉鍚屾偅鑰咃紙鎸変綇闄㈠彿锛�
+ async checkPatientExists() {
+ let inpatientno = this.assessmentData.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 evaluateBaseInfolist({ inpatientno, pageNum: 1, pageSize: 1 });
+ let list = res.data || [];
+ if (!Array.isArray(list)) {
+ list = list.rows || list.list || [];
+ }
+ return list.some(item => item && item.id != null && item.id !== "");
+ } catch (e) {
+ return false;
}
},
@@ -1558,8 +1595,6 @@
.paper-form {
border-left: 1px solid #d0d3db;
background: #fff;
- /* 瓒呭灞忛檺鍒惰〃鍗曟渶澶у搴︼紝鍙充晶鐣欑櫧锛岄伩鍏嶅瓧娈靛垎甯冭繃寮� */
- max-width: 1400px;
}
.paper-form >>> .form-row {
--
Gitblit v1.9.3