From c8e9849cb5f24848df0174c13bfbbff37bb08a5a Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 21 七月 2026 15:45:30 +0800
Subject: [PATCH] 维护
---
src/views/project/donatebaseinfo/EditCaseModal.vue | 833 +++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 519 insertions(+), 314 deletions(-)
diff --git a/src/views/project/donatebaseinfo/EditCaseModal.vue b/src/views/project/donatebaseinfo/EditCaseModal.vue
index adf8394..e0cae19 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,13 +204,34 @@
/>
</el-form-item>
</el-col>
- </el-row>
+ </el-row> -->
<el-row :gutter="20">
- <el-col :span="8">
- <el-form-item label="涓婃姤鍖婚櫌" prop="treatmenthospitalname">
+ <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.treatmenthospitalname"
- placeholder="璇疯緭鍏ヤ笂鎶ュ尰闄�"
+ 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>
@@ -179,39 +241,22 @@
<!-- 鍖荤枟淇℃伅閮ㄥ垎 -->
<el-card header="鍖荤枟淇℃伅" class="form-section">
<el-row :gutter="20">
- <el-col :span="8">
+ <!-- <el-col :span="8">
<el-form-item label="鍏ラ櫌鏃堕棿" prop="Reporttothehospital">
- <el-input
- v-model="formData.Reporttothehospital"
- placeholder="璇疯緭鍏ュ叆闄㈡椂闂�"
- />
-
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鍏ラ櫌绉戝" prop="treatmentdeptname">
- <el-input
- v-model="formData.treatmentdeptname"
- placeholder="璇疯緭鍏ョ瀹�"
+ <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> -->
<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>
@@ -243,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>
<!-- 浼犳煋鐥� -->
@@ -320,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
@@ -370,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
@@ -386,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
@@ -399,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">
<!-- 鏈汉鎰忔効 -->
@@ -496,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 || []"
@@ -513,55 +488,118 @@
</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-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>
+ <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="璇疯緭鍏ヤ俊鎭憳鑱旂郴鐢佃瘽"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-col :span="8">
+ <el-form-item label="鎶ュ憡浜虹瀛�" prop="reportername">
+ <el-input
+ v-model="formData.reportername"
+ placeholder="鎶ュ憡浜哄鍚�"
+ :disabled="true"
+ />
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="鍏朵粬" prop="infosourcesOther">
+ <el-form-item label="鑱旂郴鐢佃瘽" prop="reporterphone">
<el-input
- v-model="formData.infosourcesOther"
- placeholder="璇疯緭鍏ヤ俊鎭潵婧愬叾浠�"
+ v-model="formData.reporterphone"
+ placeholder="鎶ュ憡浜鸿仈绯荤數璇�"
/>
</el-form-item>
</el-col>
</el-row>
- <!-- 淇℃伅鍛� -->
- <el-row>
- <el-col :span="8">
- <el-form-item label="淇℃伅鍛�" prop="infoname">
- <el-input
- v-model="formData.infoname"
- placeholder="璇疯緭鍏ヤ俊鎭憳"
+ <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="8">
- <el-form-item label="鑱旂郴鐢佃瘽" prop="infophone">
+ <!-- <el-col :span="12">
+ <el-form-item label="閮ㄩ棬ID" prop="deptid">
<el-input
- v-model="formData.infophone"
- placeholder="璇疯緭鍏ヤ俊鎭憳鑱旂郴鐢佃瘽"
+ v-model="formData.deptid"
+ placeholder="璇疯緭鍏ラ儴闂↖D"
/>
</el-form-item>
- </el-col>
+ </el-col> -->
</el-row>
</el-card>
<!-- 鎹愮尞淇℃伅閮ㄥ垎 -->
<el-card header="鎹愮尞淇℃伅" class="form-section">
<el-row :gutter="20">
- <el-col :span="8">
+ <!-- <el-col :span="8">
<el-form-item label="鎹愮尞绫诲埆" prop="donationcategory">
<el-select
v-model="formData.donationcategory"
@@ -575,9 +613,9 @@
/>
</el-select>
</el-form-item>
- </el-col>
+ </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"
@@ -600,34 +638,26 @@
</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
+ <!-- <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">
@@ -650,67 +680,84 @@
</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="acquisitiontissueno">
<el-input
- v-model="formData.reportername"
- placeholder="鎶ュ憡浜哄鍚�"
- :disabled="true"
+ v-model="formData.acquisitiontissueno"
+ placeholder="璇疯緭鍏ヨ幏鍙栫粍缁囩紪鍙�"
/>
</el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鎶ュ憡浜虹數璇�" prop="reporterphone">
- <el-input
- v-model="formData.reporterphone"
- placeholder="鎶ュ憡浜鸿仈绯荤數璇�"
- />
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row :gutter="20">
+ </el-col> -->
<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-form-item label="鑾峰彇缁勭粐鍚嶇О" prop="acquisitiontissuename">
<el-input
- v-model="formData.deptid"
- placeholder="璇疯緭鍏ラ儴闂↖D"
+ v-model="formData.acquisitiontissuename"
+ placeholder="璇疯緭鍏ヨ幏鍙栫粍缁囧悕绉�"
/>
</el-form-item>
</el-col>
</el-row>
</el-card>
+ <!-- 涓婃姤闃舵闄勪欢 -->
+<el-card v-if="reportAttachments && reportAttachments.length > 0" class="form-section" shadow="never">
+ <div slot="header" class="section-header">
+ <i class="el-icon-paperclip" style="color: #409EFF; margin-right: 8px;"></i>
+ <span>涓婃姤闃舵闄勪欢</span>
+ </div>
+ <div class="attachment-list">
+ <el-tabs v-model="reportActiveTab" type="border-card">
+ <el-tab-pane
+ v-for="category in reportCategories"
+ :key="category"
+ :label="category + '(' + getReportCategoryCount(category) + ')'"
+ :name="category"
+ >
+ <el-table :data="getReportCategoryFiles(category)" style="width: 100%" size="small" border>
+ <el-table-column label="鏂囦欢鍚�" min-width="200">
+ <template #default="scope">
+ <i class="el-icon-document" style="margin-right: 8px; color: #409EFF;"></i>
+ <span class="file-name">{{ scope.row.fileName }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏂囦欢绫诲瀷" width="100">
+ <template #default="scope">
+ <el-tag size="small">{{ getFileType(scope.row.fileName) }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column label="鍒涘缓鏃堕棿" width="160">
+ <template #default="scope">
+ <span>{{ formatDateTime(scope.row.createTime) }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" width="120">
+ <template #default="scope">
+ <el-button size="mini" type="primary" @click="handleReportPreview(scope.row)">棰勮</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-tab-pane>
+ </el-tabs>
+ </div>
+</el-card>
+
+<!-- 鍔犺浇涓崰浣� -->
+<el-card v-else-if="reportAttachmentLoading" class="form-section" shadow="never">
+ <div slot="header" class="section-header">
+ <i class="el-icon-paperclip" style="color: #409EFF; margin-right: 8px;"></i>
+ <span>涓婃姤闃舵闄勪欢</span>
+ </div>
+ <div style="text-align:center; padding:20px;">鍔犺浇闄勪欢涓�...</div>
+</el-card>
+
+<!-- 鏈� reportId 浣嗘棤闄勪欢 -->
+<el-card v-else-if="editData.reportId" class="form-section" shadow="never">
+ <div slot="header" class="section-header">
+ <i class="el-icon-paperclip" style="color: #409EFF; margin-right: 8px;"></i>
+ <span>涓婃姤闃舵闄勪欢</span>
+ </div>
+ <div style="text-align:center; padding:20px; color:#909399;">鏆傛棤涓婃姤闄勪欢</div>
+</el-card>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -733,6 +780,7 @@
updateDonatebaseinfo
} from "@/api/project/donatebaseinfo";
import OrgSelecter from "@/views/project/components/orgselect";
+import { donateInfo } from "@/api/businessApi/index";
import LiAreaSelect from "@/components/Address";
export default {
@@ -744,6 +792,7 @@
// 娣诲姞鎵�鏈夐渶瑕佺殑瀛楀吀绫诲瀷
dicts: [
+ "sys_redcrossagency",
"sys_bloodtype_rhd",
"sys_BloodType",
"sys_user_sex",
@@ -787,9 +836,16 @@
residenceAddress: {},
registerAddress: {},
formData: this.getDefaultFormData(),
+ reportAttachments: [], // 涓婃姤闃舵鐨勯檮浠跺垪琛�
+ reportAttachmentLoading: false, // 鍔犺浇鐘舵��
+ reportActiveTab: "鐧昏琛ㄩ檮浠�", // 褰撳墠婵�娲荤殑闄勪欢鍒嗙被 Tab
+ presetCategories: ["鐧昏琛ㄩ檮浠�", "璇佷欢鐓�", "鐤剧梾璇婃柇娌荤枟"], // 棰勮鍒嗙被
rules: {
name: [
{ required: true, message: "璇疯緭鍏ユ崘鐚�呭鍚�", trigger: "blur" }
+ ],
+ caseNo: [
+ { required: true, message: "璇疯緭鍏ユ崘鐚�呯紪鍙�", trigger: "blur" }
],
sex: [{ required: true, message: "璇烽�夋嫨鎬у埆", trigger: "change" }],
idcardtype: [
@@ -815,6 +871,12 @@
],
reporttime: [
{ required: true, message: "璇烽�夋嫨鎶ュ憡鏃堕棿", trigger: "change" }
+ ],
+ residenceaddress: [
+ { required: true, message: "璇疯緭鍏ョ幇灞呬綇鍦拌缁嗗湴鍧�", trigger: "blur" }
+ ],
+ registeraddress: [
+ { required: true, message: "璇疯緭鍏ヤ綇鍧�璇︾粏鍦板潃", trigger: "blur" }
]
}
};
@@ -833,6 +895,21 @@
this.handleClose();
}
}
+ },
+ reportCategories() {
+ if (!this.reportAttachments || this.reportAttachments.length === 0)
+ return [];
+ const cats = new Set();
+ this.reportAttachments.forEach(item => {
+ const type = item.fileType || item.filetype || "";
+ if (this.presetCategories.includes(type)) {
+ cats.add(type);
+ } else {
+ cats.add("鏈垎绫�");
+ }
+ });
+ const order = ["鐧昏琛ㄩ檮浠�", "璇佷欢鐓�", "鐤剧梾璇婃柇娌荤枟", "鏈垎绫�"];
+ return order.filter(c => cats.has(c));
}
},
watch: {
@@ -844,6 +921,16 @@
});
} else {
this.handleClose();
+ }
+ },
+ "editData.reportId": {
+ immediate: true,
+ handler(newVal) {
+ if (newVal) {
+ this.loadReportAttachments(newVal);
+ } else {
+ this.reportAttachments = [];
+ }
}
},
editData: {
@@ -927,7 +1014,7 @@
majorrelatives: null,
familyrelations: null,
infosources: [],
- infoname: null,
+ infoName: null,
infophone: null,
redorganno: null,
contactperson: null,
@@ -937,8 +1024,7 @@
donationcategory: null,
donatetime: null,
recordstate: "0",
- acquisitiontissueno: "ZJOPO",
- acquisitiontissuename: "娴欐睙鐪佷汉浣撳櫒瀹樿幏鍙栫粍缁�",
+ acquisitiontissuename: "闈掑矝澶у闄勫睘鍖婚櫌",
// 鎶ュ憡淇℃伅
reporterno: null,
@@ -968,8 +1054,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);
@@ -986,6 +1075,8 @@
async loadEditData() {
try {
const response = await getDonatebaseinfo(this.editData.id);
+ response.data.firstMedicalInstitution =
+ response.data.treatmenthospitalname;
const data = response.data;
console.log("鍔犺浇鍒扮殑鏁版嵁:", data);
@@ -1009,23 +1100,29 @@
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);
} catch (error) {
@@ -1131,15 +1228,38 @@
},
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.registercity = address.shi;
- this.formData.registertown = address.qu;
+ this.formData.registercityname = address.shi;
+ this.formData.registercommunityname = address.qu;
},
handleClose() {
@@ -1158,7 +1278,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();
@@ -1234,6 +1365,79 @@
}
return data;
+ },
+ /** 鍔犺浇涓婃姤妗堜緥闄勪欢 */
+ async loadReportAttachments(reportId) {
+ this.reportAttachmentLoading = true;
+ try {
+ const res = await donateInfo(reportId);
+ const data = res.data || res;
+ this.reportAttachments = (data.annexfilesList || []).map(item => ({
+ ...item,
+ fileType: item.fileType || item.filetype || "" // 鍏煎瀛楁澶у皬鍐�
+ }));
+ } catch (error) {
+ console.error("鍔犺浇涓婃姤闄勪欢澶辫触:", error);
+ this.$message.error("鍔犺浇涓婃姤闄勪欢澶辫触");
+ } finally {
+ this.reportAttachmentLoading = false;
+ }
+ },
+
+ /** 鑾峰彇鏌愬垎绫绘枃浠舵暟閲� */
+ getReportCategoryCount(category) {
+ return this.reportAttachments.filter(item => {
+ const type = item.fileType || "";
+ if (category === "鏈垎绫�") {
+ return !this.presetCategories.includes(type);
+ }
+ return type === category;
+ }).length;
+ },
+
+ /** 鑾峰彇鏌愬垎绫绘枃浠跺垪琛� */
+ getReportCategoryFiles(category) {
+ return this.reportAttachments.filter(item => {
+ const type = item.fileType || "";
+ if (category === "鏈垎绫�") {
+ return !this.presetCategories.includes(type);
+ }
+ return type === category;
+ });
+ },
+
+ /** 棰勮涓婃姤闄勪欢锛堢洿鎺ュ湪鏂扮獥鍙f墦寮�锛� */
+ handleReportPreview(file) {
+ const url = file.fileUrl || file.path;
+ if (url) {
+ window.open(url, "_blank");
+ } else {
+ this.$message.warning("鏂囦欢鍦板潃涓嶅瓨鍦�");
+ }
+ },
+
+ /** 鑾峰彇鏂囦欢绫诲瀷锛堢敤浜庢爣绛炬樉绀猴級 */
+ getFileType(fileName) {
+ if (!fileName) return "other";
+ const extension = fileName
+ .split(".")
+ .pop()
+ .toLowerCase();
+ const imageTypes = ["jpg", "jpeg", "png", "gif", "bmp", "webp"];
+ const pdfTypes = ["pdf"];
+ const officeTypes = ["doc", "docx", "xls", "xlsx"];
+ if (imageTypes.includes(extension)) return "image";
+ if (pdfTypes.includes(extension)) return "pdf";
+ if (officeTypes.includes(extension)) return "office";
+ return "other";
+ },
+
+ /** 鏃ユ湡鏃堕棿鏍煎紡鍖栵紙澶嶇敤锛� */
+ formatDateTime(dateTime) {
+ if (!dateTime) return "";
+ return this.$moment
+ ? this.$moment(dateTime).format("YYYY-MM-DD HH:mm:ss")
+ : dateTime;
}
}
};
@@ -1243,6 +1447,7 @@
.form-section {
margin-bottom: 20px;
}
+
.form-section:last-child {
margin-bottom: 0;
}
--
Gitblit v1.9.3