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/project/donatebaseinfo/EditCaseModal.vue | 1185 +++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 864 insertions(+), 321 deletions(-)
diff --git a/src/views/project/donatebaseinfo/EditCaseModal.vue b/src/views/project/donatebaseinfo/EditCaseModal.vue
index a37af4b..71ff5b8 100644
--- a/src/views/project/donatebaseinfo/EditCaseModal.vue
+++ b/src/views/project/donatebaseinfo/EditCaseModal.vue
@@ -17,12 +17,59 @@
<!-- 鍩虹淇℃伅閮ㄥ垎 -->
<el-card header="鍩虹淇℃伅" class="form-section">
<el-row :gutter="20">
- <el-col :span="11">
- <el-form-item label="妗堜緥缂栧彿" prop="caseNo">
+ <el-col :span="12">
+ <el-form-item
+ label="褰撳墠鍖荤枟鏈烘瀯"
+ prop="currentMedicalInstitution"
+ >
+ <el-input
+ v-model="formData.currentMedicalInstitution"
+ placeholder="璇疯緭鍏ュ綋鍓嶅尰鐤楁満鏋�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="褰撳墠鍖荤枟鏈烘瀯绉戝" prop="currentDept">
+ <el-input
+ v-model="formData.currentDept"
+ placeholder="璇疯緭鍏ュ綋鍓嶅尰鐤楁満鏋勭瀹�"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="棣栬瘖鍖荤枟鏈烘瀯" prop="firstMedicalInstitution">
+ <el-input
+ v-model="formData.firstMedicalInstitution"
+ placeholder="璇疯緭鍏ラ璇婂尰鐤楁満鏋�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="棣栬瘖鍖荤枟鏈烘瀯绉戝" prop="firstDept">
+ <el-input
+ v-model="formData.firstDept"
+ placeholder="璇疯緭鍏ラ璇婂尰鐤楁満鏋勭瀹�"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="鎹愮尞缂栧彿" prop="caseNo">
<el-input
v-model="formData.caseNo"
- :disabled="isEdit"
- placeholder="绯荤粺鑷姩鐢熸垚"
+ placeholder="璇疯緭鍏ユ崘鐚紪鍙�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="涓婃姤鍖婚櫌" prop="treatmenthospitalname">
+ <el-input
+ v-model="formData.treatmenthospitalname"
+ placeholder="璇疯緭鍏ヤ笂鎶ュ尰闄�"
/>
</el-form-item>
</el-col>
@@ -37,12 +84,12 @@
</el-row>
<el-row :gutter="20">
- <el-col :span="6">
+ <el-col :span="8">
<el-form-item label="濮撳悕" prop="name">
<el-input v-model="formData.name" placeholder="蹇呭~椤�" />
</el-form-item>
</el-col>
- <el-col :span="6">
+ <el-col :span="8">
<el-form-item label="鎬у埆" prop="sex">
<el-select v-model="formData.sex" placeholder="璇烽�夋嫨鎬у埆">
<el-option label="鐢�" value="1" />
@@ -50,7 +97,48 @@
</el-select>
</el-form-item>
</el-col>
- <el-col :span="6">
+ <el-col :span="8">
+ <el-form-item label="鍥界睄" prop="nationality">
+ <el-input
+ v-model="formData.nationality"
+ placeholder="璇疯緭鍏ュ浗绫�"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="8">
+ <el-form-item label="鍑虹敓鏃ユ湡" prop="birthday">
+ <el-date-picker
+ v-model="formData.birthday"
+ type="date"
+ placeholder="閫夋嫨鍑虹敓鏃ユ湡"
+ value-format="yyyy-MM-dd"
+ style="width: 100%"
+ @change="calculateAge"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="骞撮緞" prop="andAge">
+ <el-input v-model="formData.andAge" disabled />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="姘戞棌" prop="nation">
+ <el-select v-model="formData.nation" placeholder="璇烽�夋嫨姘戞棌">
+ <el-option
+ v-for="dict in dict.type.sys_nation || []"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="12">
<el-form-item label="璇佷欢绫诲瀷" prop="idcardtype">
<el-select
v-model="formData.idcardtype"
@@ -65,7 +153,7 @@
</el-select>
</el-form-item>
</el-col>
- <el-col :span="6">
+ <el-col :span="12">
<el-form-item label="璇佷欢鍙风爜" prop="idcardno">
<el-input
v-model="formData.idcardno"
@@ -76,55 +164,8 @@
</el-col>
</el-row>
- <el-row :gutter="20">
- <el-col :span="6">
- <el-form-item label="鍑虹敓鏃ユ湡" prop="birthday">
- <el-date-picker
- v-model="formData.birthday"
- type="date"
- placeholder="閫夋嫨鍑虹敓鏃ユ湡"
- value-format="yyyy-MM-dd"
- style="width: 100%"
- @change="calculateAge"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="骞撮緞" prop="andAge">
- <el-input v-model="formData.andAge" disabled />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="姘戞棌" prop="nation">
- <el-select v-model="formData.nation" placeholder="璇烽�夋嫨姘戞棌">
- <el-option
- v-for="dict in dict.type.sys_nation || []"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鍥界睄" prop="nationality">
- <el-input
- v-model="formData.nationality"
- placeholder="璇疯緭鍏ュ浗绫�"
- />
- </el-form-item>
- </el-col>
- </el-row>
+ <!-- <el-row :gutter="20">
- <el-row :gutter="20">
- <el-col :span="6">
- <el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
- <el-input
- v-model="formData.phone"
- placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
- />
- </el-form-item>
- </el-col>
<el-col :span="6">
<el-form-item label="瀛﹀巻" prop="education">
<el-select
@@ -163,45 +204,59 @@
/>
</el-form-item>
</el-col>
+ </el-row> -->
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="鐜板眳浣忓湴" prop="residenceaddress">
+ <li-area-select
+ ref="residenceSelect"
+ v-model="residenceAddress"
+ @change="handleResidenceAddressChange"
+ />
+ <el-input
+ v-model="formData.residenceaddress"
+ placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"
+ style="margin-top: 8px"
+ @blur="handleResidenceDetailBlur"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="浣忓潃" prop="registeraddress">
+ <li-area-select
+ ref="registerSelect"
+ v-model="registerAddress"
+ @change="handleRegisterAddressChange"
+ />
+ <el-input
+ v-model="formData.registeraddress"
+ placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"
+ style="margin-top: 8px"
+ />
+ </el-form-item>
+ </el-col>
</el-row>
</el-card>
<!-- 鍖荤枟淇℃伅閮ㄥ垎 -->
<el-card header="鍖荤枟淇℃伅" class="form-section">
<el-row :gutter="20">
- <el-col :span="8">
- <el-form-item label="棣栬瘖鍖婚櫌" prop="treatmenthospitalno">
- <org-selecter
- :org-type="'3'"
- v-model="formData.treatmenthospitalno"
- @change="handleHospitalChange"
+ <!-- <el-col :span="8">
+ <el-form-item label="鍏ラ櫌鏃堕棿" prop="Reporttothehospital">
+ <el-date-picker
+ v-model="formData.entryTime"
+ type="datetime"
+ placeholder="閫夋嫨鍏ラ櫌鏃堕棿"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ style="width: 100%"
/>
</el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="绉戝" prop="treatmentdeptname">
- <el-input
- v-model="formData.treatmentdeptname"
- placeholder="璇疯緭鍏ョ瀹�"
- />
- </el-form-item>
- </el-col>
+ </el-col> -->
<el-col :span="8">
<el-form-item label="浣忛櫌鍙�" prop="inpatientno">
<el-input
v-model="formData.inpatientno"
placeholder="璇疯緭鍏ヤ綇闄㈠彿"
- />
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="鐤剧梾璇婃柇" prop="diagnosisname">
- <el-input
- v-model="formData.diagnosisname"
- placeholder="璇疯緭鍏ョ柧鐥呰瘖鏂悕绉�"
/>
</el-form-item>
</el-col>
@@ -233,26 +288,39 @@
</el-form-item>
</el-col>
</el-row>
-
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="鐤剧梾璇婃柇" prop="diagnosisname">
+ <el-input
+ v-model="formData.diagnosisname"
+ placeholder="璇疯緭鍏ョ柧鐥呰瘖鏂悕绉�"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
<!-- 鐤剧梾绫诲瀷 -->
<el-row>
- <el-form-item label="鐤剧梾绫诲瀷" align="left">
- <el-checkbox-group v-model="formData.diseasetype">
- <el-checkbox
- v-for="dict in dict.type.sys_DiseaseType || []"
- :key="dict.value"
- :label="dict.value"
- >
- {{ dict.label }}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="鍏朵粬" prop="diseasetypeOther">
- <el-input
- v-model="formData.diseasetypeOther"
- placeholder="璇疯緭鍏ュ叾浠�"
- />
- </el-form-item>
+ <el-col :span="16">
+ <el-form-item label="鐤剧梾绫诲瀷" align="left">
+ <el-checkbox-group v-model="formData.diseasetype">
+ <el-checkbox
+ v-for="dict in dict.type.sys_DiseaseType || []"
+ :key="dict.value"
+ :label="dict.value"
+ >
+ {{ dict.label }}
+ </el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鍏朵粬" prop="diseasetypeOther">
+ <el-input
+ v-model="formData.diseasetypeOther"
+ placeholder="璇疯緭鍏ュ叾浠�"
+ />
+ </el-form-item>
+ </el-col>
</el-row>
<!-- 浼犳煋鐥� -->
@@ -310,48 +378,7 @@
</el-col>
</el-row>
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item
- label="褰撳墠鍖荤枟鏈烘瀯"
- prop="currentMedicalInstitution"
- >
- <el-input
- v-model="formData.currentMedicalInstitution"
- placeholder="璇疯緭鍏ュ綋鍓嶅尰鐤楁満鏋�"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="褰撳墠鍖荤枟鏈烘瀯绉戝" prop="currentDept">
- <el-input
- v-model="formData.currentDept"
- placeholder="璇疯緭鍏ュ綋鍓嶅尰鐤楁満鏋勭瀹�"
- />
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="棣栨鍖荤枟鏈烘瀯" prop="firstMedicalInstitution">
- <el-input
- v-model="formData.firstMedicalInstitution"
- placeholder="璇疯緭鍏ラ娆″尰鐤楁満鏋�"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="棣栨鍖荤枟鏈烘瀯绉戝" prop="firstDept">
- <el-input
- v-model="formData.firstDept"
- placeholder="璇疯緭鍏ラ娆″尰鐤楁満鏋勭瀹�"
- />
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row :gutter="20">
+ <!-- <el-row :gutter="20">
<el-col :span="8">
<el-form-item label="GCS璇勫垎" prop="gcsScore">
<el-input
@@ -360,14 +387,7 @@
/>
</el-form-item>
</el-col>
- <el-col :span="8">
- <el-form-item label="鍗忚皟鍛樼紪鍙�" prop="coordinatorNo">
- <el-input
- v-model="formData.coordinatorNo"
- placeholder="璇疯緭鍏ュ崗璋冨憳缂栧彿"
- />
- </el-form-item>
- </el-col>
+
<el-col :span="8">
<el-form-item label="鍗忚皟鍛樺鍚�" prop="coordinatorName">
<el-input
@@ -376,9 +396,9 @@
/>
</el-form-item>
</el-col>
- </el-row>
+ </el-row> -->
- <el-row>
+ <!-- <el-row>
<el-col :span="24">
<el-form-item label="鐥呮儏姒傚喌" prop="illnessoverview">
<el-input
@@ -389,43 +409,8 @@
/>
</el-form-item>
</el-col>
- </el-row>
+ </el-row> -->
</el-card>
-
- <!-- 鍦板潃淇℃伅閮ㄥ垎 -->
- <el-card header="鍦板潃淇℃伅" class="form-section">
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="鐜颁綇鍦板潃" prop="residenceaddress">
- <li-area-select
- ref="residenceSelect"
- v-model="residenceAddress"
- @change="handleResidenceAddressChange"
- />
- <el-input
- v-model="formData.residenceaddress"
- placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"
- style="margin-top: 8px"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="鎴风睄鍦板潃" prop="registeraddress">
- <li-area-select
- ref="registerSelect"
- v-model="registerAddress"
- @change="handleRegisterAddressChange"
- />
- <el-input
- v-model="formData.registeraddress"
- placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"
- style="margin-top: 8px"
- />
- </el-form-item>
- </el-col>
- </el-row>
- </el-card>
-
<!-- 鎰忔効鍜屼翰灞炰俊鎭儴鍒� -->
<el-card header="鎰忔効鍜屼翰灞炰俊鎭�" class="form-section">
<!-- 鏈汉鎰忔効 -->
@@ -486,10 +471,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="涓庢崘璧犺�呭叧绯�" prop="familyrelations">
+ <el-form-item label="涓庢綔鍦ㄦ崘鐚�呭叧绯�" prop="familyrelations">
<el-select
v-model="formData.familyrelations"
- placeholder="璇烽�夋嫨涓庢崘璧犺�呭叧绯�"
+ placeholder="璇烽�夋嫨涓庢崘鐚�呭叧绯�"
>
<el-option
v-for="dict in dict.type.sys_FamilyRelation || []"
@@ -503,42 +488,103 @@
</el-row>
<!-- 淇℃伅鏉ユ簮 -->
- <el-row>
- <el-col :span="12">
- <el-form-item align="left" label="淇℃伅鏉ユ簮">
- <el-checkbox-group v-model="formData.infosources">
- <el-checkbox
- v-for="dict in dict.type.sys_InfoSources || []"
- :key="dict.value"
- :label="dict.value"
- >
- {{ dict.label }}
- </el-checkbox>
- </el-checkbox-group>
+ </el-card>
+ <!-- 鍦板潃淇℃伅閮ㄥ垎 -->
+ <!-- <el-card header="鍦板潃淇℃伅" class="form-section">
+
+ </el-card> -->
+ <!-- 鎶ュ憡淇℃伅閮ㄥ垎 -->
+ <el-card header="鎶ュ憡淇℃伅" class="form-section">
+ <el-row :gutter="20">
+ <!-- <el-col :span="8">
+ <el-form-item label="鎶ュ憡浜虹紪鍙�" prop="reporterno">
+ <el-select
+ v-model="formData.reporterno"
+ @change="handleReporterChange"
+ >
+ <el-option
+ v-for="reporter in reporters"
+ :key="reporter.reportNo"
+ :label="reporter.reportName"
+ :value="reporter.reportNo"
+ />
+ </el-select>
</el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鍏朵粬" prop="infosourcesOther">
+ </el-col> -->
+ <el-row>
+ <el-col :span="12">
+ <el-form-item align="left" label="淇℃伅鏉ユ簮">
+ <el-checkbox-group v-model="formData.infosources">
+ <el-checkbox
+ v-for="dict in dict.type.sys_InfoSources || []"
+ :key="dict.value"
+ :label="dict.value"
+ >
+ {{ dict.label }}
+ </el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鍏朵粬" prop="infosourcesOther">
+ <el-input
+ v-model="formData.infosourcesOther"
+ placeholder="璇疯緭鍏ヤ俊鎭潵婧愬叾浠�"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+
+ <el-col :span="20">
+ <el-form-item label="鑾峰彇缁勭粐鍚嶇О" prop="acquisitiontissuename">
<el-input
- v-model="formData.infosourcesOther"
- placeholder="璇疯緭鍏ヤ俊鎭潵婧愬叾浠�"
+ v-model="formData.acquisitiontissuename"
+ placeholder="璇疯緭鍏ヨ幏鍙栫粍缁囧悕绉�"
/>
</el-form-item>
</el-col>
</el-row>
- <!-- 淇℃伅鍛� -->
- <el-row>
+ <!-- 涓婃姤闃舵鎶ュ憡浜� -->
<el-col :span="8">
- <el-form-item label="淇℃伅鍛�" prop="infoname">
+ <el-form-item label="涓婃姤闃舵鎶ュ憡浜�" prop="reportername">
<el-input
- v-model="formData.infoname"
- placeholder="璇疯緭鍏ヤ俊鎭憳"
+ v-model="formData.reportername"
+ placeholder="鎶ュ憡浜哄鍚�"
/>
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="鑱旂郴鐢佃瘽" prop="infophone">
+ <el-form-item label="鎶ュ憡浜鸿仈绯荤數璇�" prop="reporterphone">
+ <el-input
+ v-model="formData.reporterphone"
+ placeholder="鎶ュ憡浜鸿仈绯荤數璇�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鎶ュ憡鏃堕棿" prop="reporttime">
+ <el-date-picker
+ v-model="formData.reporttime"
+ type="date"
+ placeholder="閫夋嫨鎶ュ憡鏃堕棿"
+ value-format="yyyy-MM-dd "
+ style="width: 100%"
+ />
+ </el-form-item>
+ </el-col>
+ <!-- 鎶ュ憡淇℃伅鍛� -->
+ <el-col :span="8">
+ <el-form-item label="鎶ュ憡淇℃伅鍛�" prop="infoName">
+ <el-input
+ v-model="formData.infoName"
+ placeholder="璇疯緭鍏ユ姤鍛婁俊鎭憳"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="淇℃伅鍛樿仈绯荤數璇�" prop="infophone">
<el-input
v-model="formData.infophone"
placeholder="璇疯緭鍏ヤ俊鎭憳鑱旂郴鐢佃瘽"
@@ -546,10 +592,32 @@
</el-form-item>
</el-col>
</el-row>
+
+ <!-- <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="鎶ュ憡鏃堕棿" prop="reporttime">
+ <el-date-picker
+ v-model="formData.reporttime"
+ type="date"
+ placeholder="閫夋嫨鎶ュ憡鏃堕棿"
+ value-format="yyyy-MM-dd "
+ style="width: 100%"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="閮ㄩ棬ID" prop="deptid">
+ <el-input
+ v-model="formData.deptid"
+ placeholder="璇疯緭鍏ラ儴闂↖D"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row> -->
</el-card>
<!-- 鎹愮尞淇℃伅閮ㄥ垎 -->
- <el-card header="鎹愮尞淇℃伅" class="form-section">
+ <!-- <el-card header="鎹愮尞淇℃伅" class="form-section">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="鎹愮尞绫诲埆" prop="donationcategory">
@@ -567,7 +635,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="妗堜緥鏃堕棿" prop="donatetime">
+ <el-form-item label="妗堜緥涓婃姤鏃堕棿" prop="donatetime">
<el-date-picker
v-model="formData.donatetime"
type="datetime"
@@ -590,34 +658,21 @@
</el-col>
</el-row>
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="鑾峰彇缁勭粐缂栧彿" prop="acquisitiontissueno">
- <el-input
- v-model="formData.acquisitiontissueno"
- placeholder="璇疯緭鍏ヨ幏鍙栫粍缁囩紪鍙�"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="鑾峰彇缁勭粐鍚嶇О" prop="acquisitiontissuename">
- <el-input
- v-model="formData.acquisitiontissuename"
- placeholder="璇疯緭鍏ヨ幏鍙栫粍缁囧悕绉�"
- />
- </el-form-item>
- </el-col>
- </el-row>
-
- <!-- 绾㈠崄瀛椾細鍜岃仈绯讳汉 -->
<el-row>
<el-col :span="8">
<el-form-item align="left" label="绾㈠崄瀛椾細" prop="redorganno">
- <org-selecter
- ref="addCrossOrgSelect"
- :org-type="'2'"
- v-model="formData.redorganno"
- />
+
+ <el-select
+ v-model="formData.redorganname"
+ placeholder="璇烽�夋嫨绾㈠崄瀛椾細鏈烘瀯鍚嶇О"
+ >
+ <el-option
+ v-for="dict in dict.type.sys_redcrossagency"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ ></el-option>
+ </el-select>
</el-form-item>
</el-col>
<el-col :span="8">
@@ -640,68 +695,106 @@
</el-form-item>
</el-col>
</el-row>
- </el-card>
-
- <!-- 鎶ュ憡淇℃伅閮ㄥ垎 -->
- <el-card header="鎶ュ憡淇℃伅" class="form-section">
<el-row :gutter="20">
- <el-col :span="8">
- <el-form-item label="鎶ュ憡浜虹紪鍙�" prop="reporterno">
- <el-select
- v-model="formData.reporterno"
- @change="handleReporterChange"
- >
- <el-option
- v-for="reporter in reporters"
- :key="reporter.reportNo"
- :label="reporter.reportName"
- :value="reporter.reportNo"
- />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鎶ュ憡浜哄鍚�" prop="reportername">
+
+ <el-col :span="12">
+ <el-form-item label="鑾峰彇缁勭粐鍚嶇О" prop="acquisitiontissuename">
<el-input
- v-model="formData.reportername"
- placeholder="鎶ュ憡浜哄鍚�"
- :disabled="true"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鎶ュ憡浜虹數璇�" prop="reporterphone">
- <el-input
- v-model="formData.reporterphone"
- placeholder="鎶ュ憡浜鸿仈绯荤數璇�"
+ v-model="formData.acquisitiontissuename"
+ placeholder="璇疯緭鍏ヨ幏鍙栫粍缁囧悕绉�"
/>
</el-form-item>
</el-col>
</el-row>
-
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="鎶ュ憡鏃堕棿" prop="reporttime">
- <el-date-picker
- v-model="formData.reporttime"
- type="datetime"
- placeholder="閫夋嫨鎶ュ憡鏃堕棿"
- value-format="yyyy-MM-dd HH:mm:ss"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="閮ㄩ棬ID" prop="deptid">
- <el-input
- v-model="formData.deptid"
- placeholder="璇疯緭鍏ラ儴闂↖D"
- />
- </el-form-item>
- </el-col>
- </el-row>
- </el-card>
+ </el-card> -->
</el-form>
+
+ <!-- 鎹愮尞鑰呯櫥璁伴樁娈甸檮浠讹紙鍙紪杈戯紝瀛樺偍浜庝翰灞炵‘璁よ〃 assessannex锛� -->
+ <el-card header="鐧昏闃舵闄勪欢" class="form-section">
+ <el-tabs v-model="activeRegisterType" type="card">
+ <el-tab-pane
+ v-for="type in registerAttachmentTypes"
+ :key="type.value"
+ :label="type.label"
+ :name="type.value"
+ >
+ <div class="attachment-header">
+ <span class="upload-title">{{ type.label }}</span>
+ <el-button
+ size="mini"
+ type="primary"
+ icon="el-icon-plus"
+ @click="openUploadDialog(type.value)"
+ >
+ 娣诲姞闄勪欢
+ </el-button>
+ </div>
+
+ <el-table
+ :data="getRegisterAttachments(type.value)"
+ size="small"
+ style="width: 100%"
+ >
+ <el-table-column label="鏂囦欢鍚�" min-width="200">
+ <template slot-scope="scope">
+ <i
+ class="el-icon-document"
+ style="color: #409eff; margin-right: 8px"
+ ></i>
+ <span>{{ scope.row.fileName }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏂囦欢绫诲瀷" width="90" align="center">
+ <template slot-scope="scope">
+ <el-tag size="small">{{
+ getFileType(scope.row.fileName)
+ }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏂囦欢澶у皬" width="90" align="center">
+ <template slot-scope="scope">
+ <span>{{ formatFileSize(scope.row.fileSize) }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="涓婁紶鏃堕棿" width="155" align="center">
+ <template slot-scope="scope">
+ <span>{{
+ formatDateTime(scope.row.uploadTime || scope.row.createTime)
+ }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" width="145" align="center">
+ <template slot-scope="scope">
+ <el-button
+ size="mini"
+ type="primary"
+ @click="handlePreview(scope.row)"
+ >
+ 棰勮
+ </el-button>
+ <el-button
+ size="mini"
+ type="danger"
+ @click="handleRemoveAttachment(type.value, scope.$index)"
+ >
+ 鍒犻櫎
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <div
+ v-if="getRegisterAttachments(type.value).length === 0"
+ class="empty-attachment"
+ >
+ <el-empty
+ :description="`鏆傛棤${type.label}`"
+ :image-size="80"
+ ></el-empty>
+ </div>
+ </el-tab-pane>
+ </el-tabs>
+ </el-card>
<div slot="footer" class="dialog-footer">
<el-button @click="handleClose">鍙栨秷</el-button>
@@ -714,6 +807,55 @@
</el-button>
</div>
</el-dialog>
+
+ <!-- 涓婁紶闄勪欢瀵硅瘽妗� -->
+ <el-dialog
+ :title="`涓婁紶${getCurrentTypeLabel()}闄勪欢`"
+ :visible.sync="uploadDialogVisible"
+ width="480px"
+ :close-on-click-modal="false"
+ >
+ <el-upload
+ ref="uploadRef"
+ class="upload-demo"
+ drag
+ :action="uploadAction"
+ :headers="headers"
+ multiple
+ :file-list="tempFileList"
+ :before-upload="beforeUpload"
+ :on-change="handleFileChange"
+ :on-remove="handleTempRemove"
+ :on-success="handleUploadSuccess"
+ :auto-upload="false"
+ >
+ <i class="el-icon-upload"></i>
+ <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+ <div class="el-upload__tip" slot="tip">
+ 鏀寔涓婁紶pdf銆乯pg銆乸ng銆乨oc銆乨ocx鏍煎紡鏂囦欢锛屽崟涓枃浠朵笉瓒呰繃10MB
+ </div>
+ </el-upload>
+
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="uploadDialogVisible = false">鍙栨秷</el-button>
+ <el-button
+ type="primary"
+ @click="submitUpload"
+ :loading="uploadLoading"
+ :disabled="tempFileList.length === 0"
+ >
+ 纭涓婁紶
+ </el-button>
+ </span>
+ </el-dialog>
+
+ <!-- 鏂囦欢棰勮寮圭獥 -->
+ <FilePreviewDialog
+ :visible="previewVisible"
+ :file="currentPreviewFile"
+ @close="previewVisible = false"
+ @download="handleDownload"
+ />
</div>
</template>
@@ -722,18 +864,23 @@
getDonatebaseinfo,
updateDonatebaseinfo
} from "@/api/project/donatebaseinfo";
+import { relativesEdit, relativesAdd, relativesList } from "@/api/businessApi";
import OrgSelecter from "@/views/project/components/orgselect";
import LiAreaSelect from "@/components/Address";
+import FilePreviewDialog from "@/components/FilePreviewDialog";
+import { getToken } from "@/utils/auth";
export default {
name: "EditCaseModal",
components: {
OrgSelecter,
- LiAreaSelect
+ LiAreaSelect,
+ FilePreviewDialog
},
// 娣诲姞鎵�鏈夐渶瑕佺殑瀛楀吀绫诲瀷
dicts: [
+ "sys_redcrossagency",
"sys_bloodtype_rhd",
"sys_BloodType",
"sys_user_sex",
@@ -777,9 +924,30 @@
residenceAddress: {},
registerAddress: {},
formData: this.getDefaultFormData(),
+ // 鐧昏闃舵闄勪欢锛堝彲缂栬緫锛屽瓨鍌ㄤ簬浜插睘纭琛� assessannex锛�
+ registerAttachmentTypes: [
+ { value: "1", label: "浜轰綋鍣ㄥ畼娼滃湪鎹愮尞鑰呯櫥璁拌〃闄勪欢" },
+ { value: "5", label: "璇佷欢鐓�" },
+ { value: "6", label: "鐤剧梾璇婃柇娌荤枟" }
+ ],
+ registerAttachmentData: { "1": [], "5": [], "6": [] },
+ otherAttachments: [],
+ confirmationRecord: null,
+ activeRegisterType: "1",
+ uploadAction: process.env.VUE_APP_BASE_API + "/common/upload",
+ headers: { Authorization: "Bearer " + getToken() },
+ uploadDialogVisible: false,
+ uploadLoading: false,
+ tempFileList: [],
+ currentUploadType: "",
+ previewVisible: false,
+ currentPreviewFile: null,
rules: {
name: [
{ required: true, message: "璇疯緭鍏ユ崘鐚�呭鍚�", trigger: "blur" }
+ ],
+ caseNo: [
+ { required: true, message: "璇疯緭鍏ユ崘鐚�呯紪鍙�", trigger: "blur" }
],
sex: [{ required: true, message: "璇烽�夋嫨鎬у埆", trigger: "change" }],
idcardtype: [
@@ -800,11 +968,17 @@
bloodtype: [
{ required: true, message: "璇烽�夋嫨琛�鍨�", trigger: "change" }
],
- donatetime: [
- { required: true, message: "璇烽�夋嫨妗堜緥鏃堕棿", trigger: "change" }
- ],
+ // donatetime: [
+ // { required: true, message: "璇烽�夋嫨妗堜緥鏃堕棿", trigger: "change" }
+ // ],
reporttime: [
{ required: true, message: "璇烽�夋嫨鎶ュ憡鏃堕棿", trigger: "change" }
+ ],
+ residenceaddress: [
+ { required: true, message: "璇疯緭鍏ョ幇灞呬綇鍦拌缁嗗湴鍧�", trigger: "blur" }
+ ],
+ registeraddress: [
+ { required: true, message: "璇疯緭鍏ヤ綇鍧�璇︾粏鍦板潃", trigger: "blur" }
]
}
};
@@ -823,7 +997,7 @@
this.handleClose();
}
}
- }
+ },
},
watch: {
visible(newVal) {
@@ -917,7 +1091,7 @@
majorrelatives: null,
familyrelations: null,
infosources: [],
- infoname: null,
+ infoName: null,
infophone: null,
redorganno: null,
contactperson: null,
@@ -927,8 +1101,7 @@
donationcategory: null,
donatetime: null,
recordstate: "0",
- acquisitiontissueno: "ZJOPO",
- acquisitiontissuename: "娴欐睙鐪佷汉浣撳櫒瀹樿幏鍙栫粍缁�",
+ acquisitiontissuename: "闈掑矝澶у闄勫睘鍖婚櫌",
// 鎶ュ憡淇℃伅
reporterno: null,
@@ -958,8 +1131,11 @@
this.formData.bloodtype = "0";
this.formData.rhyin = "0";
this.formData.recordstate = "0";
- this.formData.acquisitiontissueno = "ZJOPO";
- this.formData.acquisitiontissuename = "娴欐睙鐪佷汉浣撳櫒瀹樿幏鍙栫粍缁�";
+ this.formData.acquisitiontissuename = "闈掑矝澶у闄勫睘鍖婚櫌";
+
+ // 璁剧疆淇℃伅鍛樺拰鐢佃瘽榛樿鍊�
+ this.formData.infoName = "瀛欐枃鏈�";
+ this.formData.infophone = "18661808259";
}
} catch (error) {
console.error("鍒濆鍖栬〃鍗曞け璐�:", error);
@@ -976,6 +1152,8 @@
async loadEditData() {
try {
const response = await getDonatebaseinfo(this.editData.id);
+ response.data.firstMedicalInstitution =
+ response.data.treatmenthospitalname;
const data = response.data;
console.log("鍔犺浇鍒扮殑鏁版嵁:", data);
@@ -999,25 +1177,32 @@
this.formData = { ...this.getDefaultFormData(), ...data };
console.log("鍚堝苟鍚庣殑formData:", this.formData);
+ this.formData.infoName = "瀛欐枃鏈�";
+ this.formData.infophone = "18661808259";
+ if (!this.formData.currentMedicalInstitution)
+ this.formData.currentMedicalInstitution = "闈掑矝澶у闄勫睘鍖婚櫌";
- // 璁剧疆鍦板潃淇℃伅
- if (data.residenceprovince) {
+ if (!this.formDatacurrentDept) this.formData.currentDept = "鍣ㄥ畼鎹愮尞绉�";
+ // 鏍规嵁杩斿洖鏁版嵁璁剧疆鍦板潃灞曠ず淇℃伅
+ if (data.residenceprovincename) {
this.residenceAddress = {
sheng: data.residenceprovincename,
- shi: data.residencecityname,
- qu: data.residencetownname
+ shi: data.residencecountyname,
+ qu: data.residencecommunityname
};
}
-
+ // 鎴风睄鍦板潃
if (data.registerprovince) {
this.registerAddress = {
- sheng: data.registerprovincename,
+ sheng: data.registerprovince,
shi: data.registercityname,
- qu: data.registertownname
+ qu: data.registercommunityname
};
}
+ console.log(this.registerAddress, "registerAddress12");
this.calculateAge(data.birthday);
+ await this.loadRegisterAttachments();
} catch (error) {
console.error("鑾峰彇妗堜緥鏁版嵁澶辫触:", error);
this.$message.error("鑾峰彇妗堜緥鏁版嵁澶辫触");
@@ -1121,15 +1306,342 @@
},
handleResidenceAddressChange(address) {
- this.formData.residenceprovince = address.sheng;
- this.formData.residencecity = address.shi;
- this.formData.residencetown = address.qu;
+ this.formData.residenceprovincename = address.sheng;
+ this.formData.residencecountyname = address.shi;
+ this.formData.residencecommunityname = address.qu;
+
+ // 姣忔鐜颁綇鍧�鐪佸競鍖哄彉鍖栨椂锛屽鏋滄埛绫嶅湴鍧�鐨勭渷甯傚尯瀹屽叏涓虹┖锛屽垯鑷姩濉厖
+ const registerProvinceEmpty = !this.formData.registerprovince;
+ const registerCityEmpty = !this.formData.registercityname;
+ const registerTownEmpty = !this.formData.registercommunityname;
+
+ if (registerProvinceEmpty || registerCityEmpty || registerTownEmpty) {
+ this.formData.registerprovince = address.sheng;
+ this.formData.registercityname = address.shi;
+ this.formData.registercommunityname = address.qu;
+ this.registerAddress = {
+ sheng: address.sheng,
+ shi: address.shi,
+ qu: address.qu
+ };
+ }
+ },
+ // 鐜板眳浣忓湴璇︾粏鍦板潃澶辩劍鏃讹紝濡傛灉浣忓潃璇︾粏鍦板潃涓虹┖鍒欒嚜鍔ㄥ~鍏�
+ handleResidenceDetailBlur() {
+ if (this.formData.residenceaddress && !this.formData.registeraddress) {
+ this.formData.registeraddress = this.formData.residenceaddress;
+ }
+ },
+ handleRegisterAddressChange(address) {
+ console.log(this.registerAddress, "registerAddress11");
+
+ this.formData.registerprovince = address.sheng;
+ this.formData.registercityname = address.shi;
+ this.formData.registercommunityname = address.qu;
},
- handleRegisterAddressChange(address) {
- this.formData.registerprovince = address.sheng;
- this.formData.registercity = address.shi;
- this.formData.registertown = address.qu;
+ // 鍔犺浇鐧昏闃舵闄勪欢锛堣鍙栦翰灞炵‘璁よ〃 assessannex锛屼笌纭璇︽儏椤靛叡鐢ㄥ悓涓�浠芥暟鎹級
+ // 鎹愮尞纭淇℃伅缁熶竴閫氳繃 confirmationBaseInfoList 鎺ュ彛鑾峰彇
+ async loadRegisterAttachments() {
+ const infoid = this.editData && this.editData.id;
+ if (!infoid) {
+ this.resetAttachments();
+ return;
+ }
+ try {
+ const res = await relativesList({ infoid });
+ const record = this.parseConfirmationBaseInfo(res);
+ if (record && record.id) {
+ this.confirmationRecord = record;
+ this.parseAssessannex(record.assessannex);
+ } else {
+ this.confirmationRecord = null;
+ this.resetAttachments();
+ }
+ } catch (e) {
+ console.warn("鑾峰彇浜插睘纭闄勪欢澶辫触:", e);
+ this.resetAttachments();
+ }
+ },
+
+ // 瑙f瀽 confirmationBaseInfoList 杩斿洖鐨勭‘璁ゅ熀纭�淇℃伅锛堝吋瀹规暟缁� / rows / 鍗曞璞$粨鏋勶級
+ parseConfirmationBaseInfo(res) {
+ if (!res || res.code !== 200) return null;
+ const data = res.data;
+ if (!data) return null;
+ if (Array.isArray(data)) return data[0] || null;
+ if (Array.isArray(data.rows)) return data.rows[0] || null;
+ if (Array.isArray(data.list)) return data.list[0] || null;
+ return data;
+ },
+
+ resetAttachments() {
+ Object.keys(this.registerAttachmentData).forEach(key => {
+ this.registerAttachmentData[key] = [];
+ });
+ this.otherAttachments = [];
+ },
+
+ parseAssessannex(assessannex) {
+ this.resetAttachments();
+ if (!assessannex) return;
+ try {
+ const list =
+ typeof assessannex === "string" ? JSON.parse(assessannex) : assessannex;
+ if (!Array.isArray(list)) return;
+ list.forEach(item => {
+ const type = String(item.type || "");
+ if (this.registerAttachmentData[type]) {
+ this.registerAttachmentData[type].push(item);
+ } else {
+ this.otherAttachments.push(item);
+ }
+ });
+ } catch (e) {
+ console.warn("瑙f瀽assessannex澶辫触:", e);
+ }
+ },
+
+ getRegisterAttachments(type) {
+ return this.registerAttachmentData[type] || [];
+ },
+
+ // 搴忓垪鍖栫櫥璁伴樁娈甸檮浠讹紝骞朵繚鐣欑‘璁ら樁娈电瓑鍏朵粬闄勪欢
+ serializeAssessannex() {
+ const all = [...this.otherAttachments];
+ this.registerAttachmentTypes.forEach(t => {
+ all.push(...(this.registerAttachmentData[t.value] || []));
+ });
+ return JSON.stringify(all);
+ },
+
+ getCurrentTypeLabel() {
+ const type = this.registerAttachmentTypes.find(
+ t => t.value === this.currentUploadType
+ );
+ return type ? type.label : "";
+ },
+
+ openUploadDialog(type) {
+ this.currentUploadType = type;
+ this.tempFileList = [];
+ this.uploadDialogVisible = true;
+ this.$nextTick(() => {
+ if (this.$refs.uploadRef) {
+ this.$refs.uploadRef.clearFiles();
+ }
+ });
+ },
+
+ beforeUpload(file) {
+ const allowedTypes = [
+ "application/pdf",
+ "image/jpeg",
+ "image/png",
+ "application/msword",
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
+ ];
+ const maxSize = 10 * 1024 * 1024;
+ const isTypeOk =
+ allowedTypes.includes(file.type) ||
+ file.name.endsWith(".pdf") ||
+ file.name.endsWith(".jpg") ||
+ file.name.endsWith(".jpeg") ||
+ file.name.endsWith(".png") ||
+ file.name.endsWith(".doc") ||
+ file.name.endsWith(".docx");
+ if (!isTypeOk) {
+ this.$message.error(
+ "鏂囦欢鏍煎紡涓嶆敮鎸侊紝璇蜂笂浼爌df銆乯pg銆乸ng銆乨oc鎴杁ocx鏍煎紡鏂囦欢"
+ );
+ return false;
+ }
+ if (file.size > maxSize) {
+ this.$message.error("鏂囦欢澶у皬涓嶈兘瓒呰繃10MB");
+ return false;
+ }
+ return true;
+ },
+
+ handleFileChange(file, fileList) {
+ this.tempFileList = fileList;
+ },
+
+ handleTempRemove(file, fileList) {
+ this.tempFileList = fileList;
+ },
+
+ handleUploadSuccess(response, file) {
+ if (response.code !== 200) {
+ this.$message.error(response.msg || "涓婁紶澶辫触");
+ return;
+ }
+ const newAttachment = {
+ id: Date.now(),
+ fileName: file.name,
+ fileUrl: response.url,
+ fileSize: file.size,
+ fileType: this.getFileExtension(file.name),
+ type: this.currentUploadType,
+ uploadTime: this.getCurrentTime(),
+ uploader: "褰撳墠鐢ㄦ埛"
+ };
+ if (this.registerAttachmentData[this.currentUploadType]) {
+ this.registerAttachmentData[this.currentUploadType].push(newAttachment);
+ }
+ this.$message.success("涓婁紶鎴愬姛");
+ this.uploadLoading = false;
+ this.uploadDialogVisible = false;
+ this.tempFileList = [];
+ },
+
+ submitUpload() {
+ if (this.tempFileList.length === 0) {
+ this.$message.warning("璇峰厛閫夋嫨瑕佷笂浼犵殑鏂囦欢");
+ return;
+ }
+ this.uploadLoading = true;
+ this.$refs.uploadRef.submit();
+ },
+
+ handleRemoveAttachment(type, index) {
+ this.$confirm("纭畾瑕佸垹闄よ繖涓檮浠跺悧锛�", "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ })
+ .then(() => {
+ const container = this.registerAttachmentData[type];
+ if (container && container[index]) {
+ container.splice(index, 1);
+ this.$message.success("闄勪欢鍒犻櫎鎴愬姛");
+ }
+ })
+ .catch(() => {});
+ },
+
+ handlePreview(file) {
+ this.currentPreviewFile = {
+ fileName: file.fileName,
+ fileUrl: file.fileUrl,
+ fileType: this.getFileType(file.fileName)
+ };
+ this.previewVisible = true;
+ },
+
+ handleDownload(file) {
+ const fileUrl = file.fileUrl;
+ const fileName = file.fileName;
+ if (fileUrl) {
+ const link = document.createElement("a");
+ link.href = fileUrl;
+ link.download = fileName;
+ link.style.display = "none";
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ this.$message.success("寮�濮嬩笅杞芥枃浠�");
+ } else {
+ this.$message.warning("鏂囦欢璺緞涓嶅瓨鍦紝鏃犳硶涓嬭浇");
+ }
+ },
+
+ getFileType(fileName) {
+ if (!fileName) return "other";
+ const extension = this.getFileExtension(fileName);
+ const imageTypes = ["jpg", "jpeg", "png"];
+ const pdfTypes = ["pdf"];
+ const officeTypes = ["doc", "docx"];
+ if (imageTypes.includes(extension)) return "image";
+ if (pdfTypes.includes(extension)) return "pdf";
+ if (officeTypes.includes(extension)) return "office";
+ return "other";
+ },
+
+ getFileExtension(filename) {
+ return filename
+ .split(".")
+ .pop()
+ .toLowerCase();
+ },
+
+ formatFileSize(size) {
+ if (!size) return "0 B";
+ const k = 1024;
+ const sizes = ["B", "KB", "MB", "GB"];
+ const i = Math.floor(Math.log(size) / Math.log(k));
+ return parseFloat((size / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
+ },
+
+ formatDateTime(dateTime) {
+ if (!dateTime) return "";
+ try {
+ const date = new Date(dateTime);
+ if (isNaN(date.getTime())) return dateTime;
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, "0");
+ const day = String(date.getDate()).padStart(2, "0");
+ const hours = String(date.getHours()).padStart(2, "0");
+ const minutes = String(date.getMinutes()).padStart(2, "0");
+ return `${year}-${month}-${day} ${hours}:${minutes}`;
+ } catch (error) {
+ return dateTime;
+ }
+ },
+
+ getCurrentTime() {
+ const now = new Date();
+ return `${now.getFullYear()}-${(now.getMonth() + 1)
+ .toString()
+ .padStart(2, "0")}-${now
+ .getDate()
+ .toString()
+ .padStart(2, "0")} ${now
+ .getHours()
+ .toString()
+ .padStart(2, "0")}:${now
+ .getMinutes()
+ .toString()
+ .padStart(2, "0")}:${now
+ .getSeconds()
+ .toString()
+ .padStart(2, "0")}`;
+ },
+
+ // 淇濆瓨鐧昏闃舵闄勪欢鍒颁翰灞炵‘璁よ〃 assessannex
+ async saveAssessannex() {
+ const infoid = this.formData.id;
+ if (!infoid) return;
+ const assessannex = this.serializeAssessannex();
+ try {
+ if (this.confirmationRecord && this.confirmationRecord.id) {
+ // 宸插瓨鍦ㄧ‘璁よ〃璁板綍锛氫粎鏇存柊闄勪欢瀛楁锛屼繚鐣欏叾浣欎俊鎭�
+ await relativesEdit({ ...this.confirmationRecord, assessannex });
+ } else {
+ // 纭琛ㄨ褰曚笉瀛樺湪锛氭柊澧炲畬鏁磋褰曪紙鎼哄甫鐧昏琛ㄥ熀纭�淇℃伅锛�
+ await relativesAdd(this.buildConfirmationRecord(infoid, assessannex));
+ }
+ } catch (e) {
+ console.warn("淇濆瓨鐧昏闃舵闄勪欢澶辫触:", e);
+ this.$message.warning("鐧昏闃舵闄勪欢淇濆瓨澶辫触锛岃閲嶈瘯");
+ }
+ },
+
+ // 鏋勫缓鏂板浜插睘纭琛ㄨ褰曪細鎼哄甫鎹愮尞鑰呭熀纭�淇℃伅锛岃�岄潪浠� infoid + assessannex
+ buildConfirmationRecord(infoid, assessannex) {
+ const f = this.formData;
+ return {
+ infoid,
+ caseNo: f.caseNo || "",
+ name: f.name || "",
+ sex: f.sex || "",
+ age: f.age != null ? f.age : "",
+ diagnosisname: f.diagnosisname || "",
+ treatmenthospitalname: f.treatmenthospitalname || "",
+ relativeconfirmationsign: "0",
+ state: 2,
+ assessannex
+ };
},
handleClose() {
@@ -1139,6 +1651,7 @@
this.formData = this.getDefaultFormData();
this.residenceAddress = {};
this.registerAddress = {};
+ this.resetAttachments();
this.$emit("closed");
},
@@ -1148,7 +1661,18 @@
this.$message.error("璇风‘璁よ〃鍗曞繀濉俊鎭畬鏁村悗鎻愪氦");
return;
}
-
+ // 棰濆鏍¢獙鐜板眳浣忓湴鍜屼綇鍧�鐨勭渷甯傚尯鏄惁宸查�夋嫨
+ if (
+ !this.formData.residenceprovincename ||
+ !this.formData.residencecountyname
+ ) {
+ this.$message.error("璇峰畬鍠勭幇灞呬綇鍦扮殑鐪佸競鍖轰俊鎭�");
+ return;
+ }
+ if (!this.formData.registerprovince || !this.formData.registercityname) {
+ this.$message.error("璇峰畬鍠勪綇鍧�鐨勭渷甯傚尯淇℃伅");
+ return;
+ }
this.submitLoading = true;
try {
const submitData = this.processSubmitData();
@@ -1156,6 +1680,7 @@
const result = await updateDonatebaseinfo(submitData);
if (result.code === 200) {
+ await this.saveAssessannex();
this.$message.success(this.isEdit ? "鏇存柊鎴愬姛" : "鏂板鎴愬姛");
this.$emit("success", result.data);
console.log(1122);
@@ -1224,7 +1749,7 @@
}
return data;
- }
+ },
}
};
</script>
@@ -1233,7 +1758,25 @@
.form-section {
margin-bottom: 20px;
}
+
.form-section:last-child {
margin-bottom: 0;
}
+
+.attachment-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 12px;
+}
+
+.upload-title {
+ font-size: 14px;
+ font-weight: 600;
+ color: #303133;
+}
+
+.empty-attachment {
+ padding: 12px 0;
+}
</style>
--
Gitblit v1.9.3