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/ethicalReview/ethicalReviewInfo.vue | 80 +++++++++++++++++++++++++++++++++++++---
1 files changed, 74 insertions(+), 6 deletions(-)
diff --git a/src/views/business/ethicalReview/ethicalReviewInfo.vue b/src/views/business/ethicalReview/ethicalReviewInfo.vue
index 6321ef7..a68f190 100644
--- a/src/views/business/ethicalReview/ethicalReviewInfo.vue
+++ b/src/views/business/ethicalReview/ethicalReviewInfo.vue
@@ -14,10 +14,11 @@
<el-input
v-model="form.initiateTheme"
placeholder="璇疯緭鍏ュ彂璧蜂富棰�"
+ :disabled="isReadOnly"
/>
</el-form-item>
<el-form-item label="鍙戣捣浜�" prop="initiatePerson" class="col-1-3">
- <el-input v-model="form.initiatePerson" />
+ <el-input v-model="form.initiatePerson" :disabled="isReadOnly" />
</el-form-item>
<!-- <el-col :span="8">
<el-form-item label="瀹℃煡鐘舵��" prop="status">
@@ -37,7 +38,11 @@
<div class="form-row">
<el-form-item label="浼︾悊瀹℃煡缁撹" prop="expertConclusion" class="col-1-3">
- <el-select v-model="form.expertConclusion" style="width: 100%">
+ <el-select
+ v-model="form.expertConclusion"
+ style="width: 100%"
+ :disabled="isReadOnly"
+ >
<el-option label="鍚屾剰" value="1" />
<el-option label="瀹℃煡涓�" value="2" />
<el-option label="涓嶅悓鎰�" value="0" />
@@ -51,6 +56,7 @@
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
+ :disabled="isReadOnly"
/>
</el-form-item>
</div>
@@ -62,6 +68,7 @@
:rows="2"
v-model="form.expertOpinion"
placeholder="璇疯緭鍏ユ剰瑙�"
+ :disabled="isReadOnly"
/>
</el-form-item>
</div>
@@ -73,6 +80,7 @@
:rows="3"
v-model="form.remark"
placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�"
+ :disabled="isReadOnly"
/>
</el-form-item>
</div>
@@ -87,6 +95,7 @@
<!-- 浣跨敤 UploadAttachment 缁勪欢 -->
<UploadAttachment
+ v-if="!isReadOnly"
ref="uploadAttachment"
:file-list="attachmentFileList"
:limit="10"
@@ -144,6 +153,7 @@
涓嬭浇
</el-button>
<el-button
+ v-if="!isReadOnly"
size="mini"
type="danger"
@click="handleRemoveAttachment(scope.$index)"
@@ -181,10 +191,16 @@
>
鍒锋柊
</el-button>
- <el-button size="mini" type="primary" @click="handleAddExpert">
+ <el-button
+ v-if="!isReadOnly"
+ size="mini"
+ type="primary"
+ @click="handleAddExpert"
+ >
娣诲姞涓撳
</el-button>
<el-button
+ v-if="!isReadOnly"
size="mini"
type="primary"
@click="handleSendToNormalExperts"
@@ -193,6 +209,7 @@
鍙戦�佷笓瀹�
</el-button>
<el-button
+ v-if="!isReadOnly"
size="mini"
type="success"
@click="handleSendToChiefExpert"
@@ -378,7 +395,13 @@
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" width="180" align="center" fixed="right">
+ <el-table-column
+ v-if="!isReadOnly"
+ label="鎿嶄綔"
+ width="180"
+ align="center"
+ fixed="right"
+ >
<template slot-scope="scope">
<el-button
size="mini"
@@ -417,12 +440,17 @@
</el-table>
</el-card>
<div style="text-align: center; margin: 30px 0;">
- <el-button type="primary" @click="handleSave" :loading="saveLoading">
+ <el-button
+ v-if="!isReadOnly"
+ type="primary"
+ @click="handleSave"
+ :loading="saveLoading"
+ >
淇濆瓨
</el-button>
<el-button
- v-if="form.status != '3'"
+ v-if="!isReadOnly && form.status != '3'"
type="success"
@click="handleCompleteReview"
:loading="completeLoading"
@@ -431,6 +459,7 @@
</el-button>
<el-button
+ v-if="!isReadOnly"
type="warning"
@click="handleSuspendReview"
:disabled="form.status == '2' || form.status == '3'"
@@ -440,6 +469,7 @@
</el-button>
<el-button
+ v-if="!isReadOnly"
type="danger"
@click="handleEndReview"
:disabled="form.status == '2'"
@@ -808,6 +838,7 @@
sendcall
} from "@/api/businessApi";
import { listExternalperson } from "@/api/project/externalperson";
+import { getDonatebaseinfo } from "@/api/project/donatebaseinfo";
import CaseBasicInfo from "@/components/CaseBasicInfo";
import UploadAttachment from "@/components/UploadAttachment";
import FilePreviewDialog from "@/components/FilePreviewDialog";
@@ -966,6 +997,11 @@
};
},
computed: {
+ // 鏌ョ湅妯″紡锛氬彧璇伙紝绂佺敤琛ㄥ崟骞堕殣钘忎繚瀛樻寜閽�
+ isReadOnly() {
+ return this.$route.query.mode === "view";
+ },
+
// 璁$畻灞炴�э細鑾峰彇涓撳鍒楄〃锛堢‘淇濆搷搴斿紡锛�
ethicalreviewopinionsList() {
return this.form.ethicalreviewopinionsList || [];
@@ -1505,6 +1541,7 @@
// 淇濆瓨淇℃伅
async handleSave() {
+ if (this.saveLoading) return;
this.$refs.form.validate(async valid => {
if (valid) {
this.saveLoading = true;
@@ -1527,6 +1564,12 @@
if (submitData.id) {
response = await ethicalreviewedit(submitData);
} else {
+ // 鏂板鏃舵牎楠屾槸鍚﹀凡鏈夌浉鍚屾偅鑰�
+ const exists = await this.checkPatientExists();
+ if (exists) {
+ this.$message.warning("璇ユ偅鑰呭凡瀛樺湪锛岃鍕块噸澶嶆坊鍔�");
+ return;
+ }
response = await ethicalreviewadd(submitData);
}
@@ -1556,6 +1599,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 reviewinitiateBaseInfoList({
+ inpatientno,
+ pageNum: 1,
+ pageSize: 1
+ });
+ const list = res.data || [];
+ return list.some(item => item && item.id != null && item.id !== "");
+ } catch (e) {
+ return false;
+ }
+ },
+
// 瀹℃煡瀹屾垚
async handleCompleteReview() {
this.$confirm("纭畾瑕佸皢鏈浼︾悊瀹℃煡鐘舵�佽涓哄畬鎴愬悧锛�", "鎻愮ず", {
--
Gitblit v1.9.3