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/GetWitness/GetWitnessInfo.vue | 82 ++++++++++++++++++++++++++++++++++-------
1 files changed, 68 insertions(+), 14 deletions(-)
diff --git a/src/views/business/GetWitness/GetWitnessInfo.vue b/src/views/business/GetWitness/GetWitnessInfo.vue
index ccf0995..7ca94a4 100644
--- a/src/views/business/GetWitness/GetWitnessInfo.vue
+++ b/src/views/business/GetWitness/GetWitnessInfo.vue
@@ -14,11 +14,12 @@
<div class="form-row">
<el-form-item label="鎵嬫湳鍖荤敓" prop="operationdoctor" class="col-1-3">
- <el-input v-model="form.operationdoctor" />
+ <el-input v-model="form.operationdoctor" :disabled="isReadOnly" />
</el-form-item>
<el-form-item label="鎵嬫湳寮�濮嬫椂闂�" prop="operationbegtime" class="col-1-3">
<el-date-picker
v-model="form.operationbegtime"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@@ -27,6 +28,7 @@
<el-form-item label="鎵嬫湳缁撴潫鏃堕棿" prop="operationendtime" class="col-1-3">
<el-date-picker
v-model="form.operationendtime"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@@ -42,6 +44,7 @@
>
<el-date-picker
v-model="form.abdominalaortacannulatime"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@@ -54,6 +57,7 @@
>
<el-date-picker
v-model="form.abdominalaortaperfusiontime"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@@ -65,6 +69,7 @@
<el-form-item label="闂ㄩ潤鑴夋彃绠℃椂闂�" prop="portalveincannulatime" class="col-1-3">
<el-date-picker
v-model="form.portalveincannulatime"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@@ -73,6 +78,7 @@
<el-form-item label="闂ㄩ潤鑴夌亴娉ㄦ椂闂�" prop="portalveinperfusiontime" class="col-1-3">
<el-date-picker
v-model="form.portalveinperfusiontime"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@@ -92,6 +98,7 @@
<el-form-item label="杩涙墜鏈鏃堕棿" prop="coordinatorInOperating" class="col-1-3">
<el-date-picker
v-model="form.coordinatorInOperating"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@@ -100,6 +107,7 @@
<el-form-item label="鍑烘墜鏈鏃堕棿" prop="coordinatorOutOperating" class="col-1-3">
<el-date-picker
v-model="form.coordinatorOutOperating"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@@ -124,13 +132,13 @@
</el-form-item>
</el-col> -->
<el-form-item label="鏄惁榛樺搥缂呮��" prop="isspendremember" class="col-1-3">
- <el-select v-model="form.isspendremember" style="width: 100%">
+ <el-select v-model="form.isspendremember" :disabled="isReadOnly" style="width: 100%">
<el-option label="鏄�" :value="1" />
<el-option label="鍚�" :value="0" />
</el-select>
</el-form-item>
<el-form-item label="鎭㈠閬椾綋浠" prop="isrestoreremains" class="col-1-3">
- <el-select v-model="form.isrestoreremains" style="width: 100%">
+ <el-select v-model="form.isrestoreremains" :disabled="isReadOnly" style="width: 100%">
<el-option label="鏄�" :value="1" />
<el-option label="鍚�" :value="0" />
</el-select>
@@ -142,13 +150,13 @@
<div class="form-row">
<el-form-item label="璐熻矗浜哄鍚�" prop="responsibleusername" class="col-1-3">
- <el-input v-model="form.responsibleusername" />
+ <el-input v-model="form.responsibleusername" :disabled="isReadOnly" />
</el-form-item>
<el-form-item label="鍗忚皟鍛樹竴" prop="coordinatedusernameo" class="col-1-3">
- <el-input v-model="form.coordinatedusernameo" />
+ <el-input v-model="form.coordinatedusernameo" :disabled="isReadOnly" />
</el-form-item>
<el-form-item label="鍗忚皟鍛樹簩" prop="coordinatedusernamet" class="col-1-3">
- <el-input v-model="form.coordinatedusernamet" />
+ <el-input v-model="form.coordinatedusernamet" :disabled="isReadOnly" />
</el-form-item>
</div>
@@ -159,6 +167,7 @@
<el-form-item label="鑾峰彇鏈烘瀯鍚嶇О" prop="gainhospitalname" class="col-1-3">
<el-input
v-model="form.gainhospitalname"
+ :disabled="isReadOnly"
placeholder="璇疯緭鍏ヨ幏鍙栨満鏋勫悕绉�"
/>
</el-form-item>
@@ -197,6 +206,7 @@
<el-form-item label-width="100px" label="鎹愮尞鍣ㄥ畼">
<el-checkbox-group
v-model="selectedOrgans"
+ :disabled="isReadOnly"
@change="handleOrganSelectionChange"
>
<el-checkbox
@@ -248,6 +258,7 @@
size="small"
style="width: 100%"
v-model="scope.row.organStartTime"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="閫夋嫨鑾峰彇寮�濮嬫椂闂�"
@@ -267,6 +278,7 @@
size="small"
style="width: 100%"
v-model="scope.row.organgettime"
+ :disabled="isReadOnly"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="閫夋嫨鍣ㄥ畼绂讳綋鏃堕棿"
@@ -298,6 +310,7 @@
<template slot-scope="scope">
<el-autocomplete
v-model="scope.row.gainhospitalname"
+ :disabled="isReadOnly"
:fetch-suggestions="queryHospitalSearch"
placeholder="璇烽�夋嫨鎴栬緭鍏ヨ幏鍙栧尰闄�"
style="width: 100%"
@@ -315,12 +328,13 @@
<template slot-scope="scope">
<el-input
v-model="scope.row.organgetdoct"
+ :disabled="isReadOnly"
placeholder="鑾峰彇鍖诲笀"
/>
</template>
</el-table-column>
- <!-- <el-table-column
+ <el-table-column
label="鑾峰彇鐘舵��"
align="center"
width="120"
@@ -329,6 +343,7 @@
<template slot-scope="scope">
<el-select
v-model="scope.row.organstate"
+ :disabled="isReadOnly"
placeholder="璇烽�夋嫨鑾峰彇鐘舵��"
style="width: 100%"
>
@@ -340,9 +355,9 @@
/>
</el-select>
</template>
- </el-table-column> -->
+ </el-table-column>
- <el-table-column
+ <!-- <el-table-column
label="璇存槑"
align="center"
prop="notgetreason"
@@ -352,13 +367,15 @@
<el-input
type="textarea"
clearable
+ :disabled="isReadOnly"
v-model="scope.row.notgetreason"
placeholder="璇疯緭鍏ユ湭鑾峰彇璇存槑"
/>
</template>
- </el-table-column>
+ </el-table-column> -->
<el-table-column
+ v-if="!isReadOnly"
label="鎿嶄綔"
align="center"
width="120"
@@ -407,6 +424,7 @@
>
<div style="margin-bottom: 10px; text-align: right;">
<el-button
+ v-if="!isReadOnly"
size="mini"
type="primary"
icon="el-icon-plus"
@@ -436,6 +454,7 @@
<el-select
v-model="scope.row.fileType"
size="small"
+ :disabled="isReadOnly"
@change="updateAttachmentCategory(scope.row, $event)"
placeholder="閫夋嫨鍒嗙被"
>
@@ -474,6 +493,7 @@
>棰勮</el-button
>
<el-button
+ v-if="!isReadOnly"
size="mini"
type="danger"
@click="handleRemoveAttachmentByFile(scope.row)"
@@ -491,7 +511,7 @@
</el-tab-pane>
</el-tabs>
</el-card>
- <div style="text-align: center; margin: 30px 0;">
+ <div v-if="!isReadOnly" style="text-align: center; margin: 30px 0;">
<el-button type="primary" @click="handleSave" :loading="saveLoading">
淇濆瓨
</el-button>
@@ -516,7 +536,7 @@
<el-input v-model="currentRecord.organname" readonly />
</el-form-item>
</el-col>
- <!-- <el-col :span="12">
+ <el-col :span="12">
<el-form-item label="鑾峰彇鐘舵��">
<el-select v-model="currentRecord.organstate" style="width: 100%">
<el-option
@@ -527,7 +547,7 @@
/>
</el-select>
</el-form-item>
- </el-col> -->
+ </el-col>
</el-row>
<el-row :gutter="20">
@@ -644,6 +664,7 @@
<script>
import { witnessList, witnessadd, witnessedit } from "@/api/businessApi";
+import { getDonatebaseinfo } from "@/api/project/donatebaseinfo";
import FilePreviewDialog from "@/components/FilePreviewDialog";
import CaseBasicInfo from "@/components/CaseBasicInfo";
import { getToken } from "@/utils/auth";
@@ -781,6 +802,10 @@
};
},
computed: {
+ // 鏌ョ湅妯″紡锛氬彧璇伙紝绂佺敤琛ㄥ崟骞堕殣钘忎繚瀛樻寜閽�
+ isReadOnly() {
+ return this.$route.query.mode === "view";
+ },
// 褰撳墠鐢ㄦ埛淇℃伅
currentUser() {
return JSON.parse(sessionStorage.getItem("user") || "{}");
@@ -818,7 +843,7 @@
record =>
!record.organStartTime ||
!record.organgettime ||
- !record.gainhospitalno ||
+ !record.gainhospitalname ||
!record.organgetdoct
).length;
},
@@ -1209,10 +1234,19 @@
},
// 淇濆瓨鍩烘湰淇℃伅
async handleSave() {
+ if (this.saveLoading) return;
this.$refs.form.validate(async valid => {
if (valid) {
this.saveLoading = true;
try {
+ // 鏂板鏃舵牎楠屾槸鍚﹀凡鏈夌浉鍚屾偅鑰�
+ if (!this.form.id) {
+ const exists = await this.checkPatientExists();
+ if (exists) {
+ this.$message.warning("璇ユ偅鑰呭凡瀛樺湪锛岃鍕块噸澶嶆坊鍔�");
+ return;
+ }
+ }
console.log(this.procurementData.serviceDonationwitnessorgans);
const saveData = {
@@ -1250,6 +1284,26 @@
}
});
},
+ // 鏂板鏃舵牎楠屾槸鍚﹀凡鏈夌浉鍚屾偅鑰咃紙鎸変綇闄㈠彿锛�
+ 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 witnessList({ inpatientno, pageNum: 1, pageSize: 1 });
+ const list = res.data || [];
+ return list.some(item => item && item.id != null && item.id !== "");
+ } catch (e) {
+ return false;
+ }
+ },
// 淇濆瓨鑾峰彇璁板綍
async handleSaveProcurement() {
if (!this.form.id) {
--
Gitblit v1.9.3