From 67ff7fff12b672fb4214488ea606728ba118cf2d Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 11 三月 2026 15:02:24 +0800
Subject: [PATCH] 青岛档案信息维护
---
src/views/project/donatebaseinfo/EditCaseModal.vue | 1017 +++++++++++++++++++++++++++++++----------------------------
1 files changed, 533 insertions(+), 484 deletions(-)
diff --git a/src/views/project/donatebaseinfo/EditCaseModal.vue b/src/views/project/donatebaseinfo/EditCaseModal.vue
index e2876c6..28efaa4 100644
--- a/src/views/project/donatebaseinfo/EditCaseModal.vue
+++ b/src/views/project/donatebaseinfo/EditCaseModal.vue
@@ -1,464 +1,484 @@
<template>
- <el-dialog
- :title="title"
- :visible.sync="localVisible"
- width="1200px"
- :close-on-click-modal="false"
- @close="handleClose"
- >
- <el-form
- ref="formRef"
- :model="formData"
- :rules="rules"
- label-width="130px"
- label-position="right"
+ <div>
+ <el-dialog
+ :title="title"
+ :visible.sync="dialogVisible"
+ width="1200px"
+ :close-on-click-modal="false"
+ @close="handleClose"
>
- <!-- 鍩虹淇℃伅閮ㄥ垎 -->
- <el-card header="鍩虹淇℃伅" class="form-section">
- <el-row :gutter="20">
- <el-col :span="11">
- <el-form-item label="妗堜緥缂栧彿" prop="caseNo">
- <el-input
- v-model="formData.caseNo"
- :disabled="isEdit"
- placeholder="绯荤粺鑷姩鐢熸垚"
- />
- </el-form-item>
- </el-col>
- <el-col :span="11">
- <el-form-item label="鎹愮尞鑰呯紪鍙�" prop="donorno">
- <el-input
- v-model="formData.donorno"
- placeholder="璇疯緭鍏ユ崘鐚�呯紪鍙�"
- />
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row :gutter="20">
- <el-col :span="6">
- <el-form-item label="濮撳悕" prop="name">
- <el-input v-model="formData.name" placeholder="蹇呭~椤�" />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鎬у埆" prop="sex">
- <el-select v-model="formData.sex" placeholder="璇烽�夋嫨鎬у埆">
- <el-option label="鏈煡" value="0" />
- <el-option label="鐢�" value="1" />
- <el-option label="濂�" value="2" />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="璇佷欢绫诲瀷" prop="idcardtype">
- <el-select
- v-model="formData.idcardtype"
- placeholder="璇烽�夋嫨璇佷欢绫诲瀷"
- >
- <el-option label="韬唤璇�" value="1" />
- <el-option label="鍐涗汉璇�" value="2" />
- <el-option label="鎶ょ収" value="3" />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="璇佷欢鍙风爜" prop="idcardno">
- <el-input
- v-model="formData.idcardno"
- placeholder="璇疯緭鍏ヨ瘉浠跺彿鐮�"
- @blur="handleIdCardBlur"
- />
- </el-form-item>
- </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 dictOptions.sys_nation"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
+ <el-form
+ ref="formRef"
+ :model="formData"
+ :rules="rules"
+ label-width="130px"
+ label-position="right"
+ >
+ <!-- 鍩虹淇℃伅閮ㄥ垎 -->
+ <el-card header="鍩虹淇℃伅" class="form-section">
+ <el-row :gutter="20">
+ <el-col :span="11">
+ <el-form-item label="妗堜緥缂栧彿" prop="caseNo">
+ <el-input
+ v-model="formData.caseNo"
+ :disabled="isEdit"
+ placeholder="绯荤粺鑷姩鐢熸垚"
/>
- </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-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 v-model="formData.education" placeholder="璇烽�夋嫨瀛﹀巻">
- <el-option
- v-for="dict in dictOptions.sys_education"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
+ </el-form-item>
+ </el-col>
+ <el-col :span="11">
+ <el-form-item label="鎹愮尞鑰呯紪鍙�" prop="donorno">
+ <el-input
+ v-model="formData.donorno"
+ placeholder="璇疯緭鍏ユ崘鐚�呯紪鍙�"
/>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鑱屼笟" prop="occupation">
- <el-select v-model="formData.occupation" placeholder="璇烽�夋嫨鑱屼笟">
- <el-option
- v-for="dict in dictOptions.sys_occupation"
- :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="nativeplace">
- <el-input
- v-model="formData.nativeplace"
- placeholder="璇疯緭鍏ョ睄璐�"
- />
- </el-form-item>
- </el-col>
- </el-row>
- </el-card>
+ </el-form-item>
+ </el-col>
+ </el-row>
- <!-- 鍖荤枟淇℃伅閮ㄥ垎 -->
- <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-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 :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>
- </el-row>
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="琛�鍨�" prop="bloodtype">
- <el-radio-group v-model="formData.bloodtype">
- <el-radio label="1">A鍨�</el-radio>
- <el-radio label="2">B鍨�</el-radio>
- <el-radio label="3">O鍨�</el-radio>
- <el-radio label="4">AB鍨�</el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="Rh(D)" prop="rhyin">
- <el-radio-group v-model="form.rhyin">
- <el-radio
- v-for="dict in dict.type.sys_bloodtype_rhd || []"
- :key="dict.value"
- :label="dict.value"
- >{{ dict.label }}</el-radio
+ <el-row :gutter="20">
+ <el-col :span="6">
+ <el-form-item label="濮撳悕" prop="name">
+ <el-input v-model="formData.name" placeholder="蹇呭~椤�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鎬у埆" prop="sex">
+ <el-select v-model="formData.sex" placeholder="璇烽�夋嫨鎬у埆">
+ <el-option label="鏈煡" value="0" />
+ <el-option label="鐢�" value="1" />
+ <el-option label="濂�" value="2" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="璇佷欢绫诲瀷" prop="idcardtype">
+ <el-select
+ v-model="formData.idcardtype"
+ placeholder="璇烽�夋嫨璇佷欢绫诲瀷"
>
- </el-radio-group>
- </el-form-item>
- </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-col :span="8">
- <el-form-item label="GSC璇勫垎" prop="gcsScore">
- <el-input
- v-model="formData.gcsScore"
- placeholder="璇疯緭鍏SC璇勫垎"
- />
- </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
- v-model="formData.coordinatorName"
- placeholder="璇疯緭鍏ュ崗璋冨憳濮撳悕"
- />
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row>
- <el-col :span="24">
- <el-form-item label="鐥呮儏姒傚喌" prop="illnessoverview">
- <el-input
- v-model="formData.illnessoverview"
- type="textarea"
- :rows="3"
- placeholder="璇疯緭鍏ョ梾鎯呮鍐�"
- />
- </el-form-item>
- </el-col>
- </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">
- <el-row :gutter="20">
- <el-col :span="8">
- <el-form-item label="鎹愮尞绫诲埆" prop="donationcategory">
- <el-select
- v-model="formData.donationcategory"
- placeholder="璇烽�夋嫨鎹愮尞绫诲埆"
- >
- <el-option
- v-for="dict in dictOptions.sys_DonationCategory"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
+ <el-option label="韬唤璇�" :value="1" />
+ <el-option label="鍐涗汉璇�" :value="2" />
+ <el-option label="鎶ょ収" :value="3" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="璇佷欢鍙风爜" prop="idcardno">
+ <el-input
+ v-model="formData.idcardno"
+ placeholder="璇疯緭鍏ヨ瘉浠跺彿鐮�"
+ @blur="handleIdCardBlur"
/>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="妗堜緥鏃堕棿" prop="donatetime">
- <el-date-picker
- v-model="formData.donatetime"
- 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="recordstate">
- <el-select v-model="formData.recordstate" :disabled="isEdit">
- <el-option label="鏂板缓" value="0" />
- <el-option label="宸蹭笂鎶�" value="1" />
- <el-option label="瀹℃牳涓�" value="2" />
- <el-option label="宸插畬鎴�" value="3" />
- <el-option label="宸茬粓姝�" value="99" />
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
+ </el-form-item>
+ </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-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-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-select>
- </el-form-item>
- </el-col>
- <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="reporterphone">
- <el-input
- v-model="formData.reporterphone"
- placeholder="鎶ュ憡浜鸿仈绯荤數璇�"
- />
- </el-form-item>
- </el-col>
- </el-row>
+ </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 dictOptions.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-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-form>
+ <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
+ v-model="formData.education"
+ placeholder="璇烽�夋嫨瀛﹀巻"
+ >
+ <el-option
+ v-for="dict in dictOptions.sys_education"
+ :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="occupation">
+ <el-select
+ v-model="formData.occupation"
+ placeholder="璇烽�夋嫨鑱屼笟"
+ >
+ <el-option
+ v-for="dict in dictOptions.sys_occupation"
+ :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="nativeplace">
+ <el-input
+ v-model="formData.nativeplace"
+ placeholder="璇疯緭鍏ョ睄璐�"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-card>
- <div slot="footer" class="dialog-footer">
- <el-button @click="handleClose">鍙栨秷</el-button>
- <el-button type="primary" @click="handleSubmit" :loading="submitLoading">
- {{ isEdit ? "鏇存柊" : "淇濆瓨" }}
- </el-button>
- </div>
- </el-dialog>
+ <!-- 鍖荤枟淇℃伅閮ㄥ垎 -->
+ <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-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 :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>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="琛�鍨�" prop="bloodtype">
+ <el-radio-group v-model="formData.bloodtype">
+ <el-radio label="1">A鍨�</el-radio>
+ <el-radio label="2">B鍨�</el-radio>
+ <el-radio label="3">O鍨�</el-radio>
+ <el-radio label="4">AB鍨�</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="Rh(D)" prop="rhyin">
+ <el-radio-group v-model="formData.rhyin">
+ <el-radio
+ v-for="dict in dict.type.sys_bloodtype_rhd || []"
+ :key="dict.value"
+ :label="dict.value"
+ >{{ dict.label }}</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </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-col :span="8">
+ <el-form-item label="GSC璇勫垎" prop="gcsScore">
+ <el-input
+ v-model="formData.gcsScore"
+ placeholder="璇疯緭鍏SC璇勫垎"
+ />
+ </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
+ v-model="formData.coordinatorName"
+ placeholder="璇疯緭鍏ュ崗璋冨憳濮撳悕"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="鐥呮儏姒傚喌" prop="illnessoverview">
+ <el-input
+ v-model="formData.illnessoverview"
+ type="textarea"
+ :rows="3"
+ placeholder="璇疯緭鍏ョ梾鎯呮鍐�"
+ />
+ </el-form-item>
+ </el-col>
+ </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">
+ <el-row :gutter="20">
+ <el-col :span="8">
+ <el-form-item label="鎹愮尞绫诲埆" prop="donationcategory">
+ <el-select
+ v-model="formData.donationcategory"
+ placeholder="璇烽�夋嫨鎹愮尞绫诲埆"
+ >
+ <el-option
+ v-for="dict in dictOptions.sys_DonationCategory"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="妗堜緥鏃堕棿" prop="donatetime">
+ <el-date-picker
+ v-model="formData.donatetime"
+ 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="recordstate">
+ <el-select v-model="formData.recordstate" :disabled="isEdit">
+ <el-option label="鏂板缓" value="0" />
+ <el-option label="宸蹭笂鎶�" value="1" />
+ <el-option label="瀹℃牳涓�" value="2" />
+ <el-option label="宸插畬鎴�" value="3" />
+ <el-option label="宸茬粓姝�" value="99" />
+ </el-select>
+ </el-form-item>
+ </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-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-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="鎶ュ憡浜鸿仈绯荤數璇�"
+ />
+ </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-form>
+
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="handleClose">鍙栨秷</el-button>
+ <el-button
+ type="primary"
+ @click="handleSubmit"
+ :loading="submitLoading"
+ >
+ {{ isEdit ? "鏇存柊" : "淇濆瓨" }}
+ </el-button>
+ </div>
+ </el-dialog>
+ </div>
</template>
<script>
@@ -498,7 +518,6 @@
},
data() {
return {
- localVisible: this.visible,
isEdit: false,
submitLoading: false,
residenceAddress: {},
@@ -539,31 +558,49 @@
computed: {
title() {
return this.isEdit ? "缂栬緫妗堜緥淇℃伅" : "鏂板鎹愮尞妗堜緥";
+ },
+ dialogVisible: {
+ get() {
+ return this.visible;
+ },
+ set(value) {
+ this.$emit('update:visible', value);
+ if (!value) {
+ this.handleClose();
+ }
+ }
}
},
watch: {
visible(newVal) {
- this.localVisible = newVal;
+ console.log("visible鍙樺寲:", newVal);
if (newVal) {
- this.initForm();
+ this.$nextTick(() => {
+ this.initForm();
+ });
+ } else {
+ this.handleClose();
}
},
- localVisible(newVal) {
- this.$emit("update:visible", newVal);
- },
editData: {
- handler(newVal) {
- if (newVal && newVal.id) {
- this.isEdit = true;
- this.$nextTick(() => {
- // 纭繚 DOM 宸茬粡鏇存柊鍚庡啀杩涜琛ㄥ崟鎿嶄綔
- this.initForm(newVal);
- });
- }
- },
+ immediate: true,
deep: true,
- immediate: true
+ handler(newVal) {
+ console.log("editData鍙樺寲:", newVal);
+ this.isEdit = !!(newVal && newVal.id);
+ }
}
+ },
+ created() {
+ console.log('EditCaseModal created');
+ console.log('visible:', this.visible);
+ console.log('editData:', this.editData);
+ },
+ mounted() {
+ console.log('EditCaseModal mounted');
+ console.log('visible:', this.visible);
+ console.log('editData:', this.editData);
+ console.log('isEdit:', this.isEdit);
},
methods: {
getDefaultFormData() {
@@ -640,29 +677,38 @@
},
async initForm() {
- console.log(this.isEdit);
-
- if (this.isEdit) {
- await this.loadEditData();
- } else {
- this.formData = this.getDefaultFormData();
- // 璁剧疆榛樿鍊�
- this.formData.nationality = "涓浗";
- this.formData.bloodtype = "0";
- this.formData.rhyin = "0";
- this.formData.recordstate = "0";
- this.formData.acquisitiontissueno = "ZJOPO";
- this.formData.acquisitiontissuename = "娴欐睙鐪佷汉浣撳櫒瀹樿幏鍙栫粍缁�";
+ console.log('鍒濆鍖栬〃鍗曪紝isEdit:', this.isEdit);
+ try {
+ if (this.isEdit && this.editData && this.editData.id) {
+ console.log('鍔犺浇缂栬緫鏁版嵁锛宨d:', this.editData.id);
+ await this.loadEditData();
+ } else {
+ console.log('鏂板妯″紡锛屽垵濮嬪寲琛ㄥ崟');
+ this.formData = this.getDefaultFormData();
+ this.formData.nationality = "涓浗";
+ this.formData.bloodtype = "0";
+ this.formData.rhyin = "0";
+ this.formData.recordstate = "0";
+ this.formData.acquisitiontissueno = "ZJOPO";
+ this.formData.acquisitiontissuename = "娴欐睙鐪佷汉浣撳櫒瀹樿幏鍙栫粍缁�";
+ }
+ } catch (error) {
+ console.error("鍒濆鍖栬〃鍗曞け璐�:", error);
+ this.$message.error("鍒濆鍖栬〃鍗曞け璐�");
+ } finally {
+ this.$nextTick(() => {
+ if (this.$refs.formRef) {
+ this.$refs.formRef.clearValidate();
+ }
+ });
}
- this.$nextTick(() => {
- this.$refs.formRef?.clearValidate();
- });
},
async loadEditData() {
try {
const response = await getDonatebaseinfo(this.editData.id);
const data = response.data;
+ console.log('鍔犺浇鍒扮殑鏁版嵁:', data);
// 澶勭悊鏁扮粍瀛楁
const arrayFields = [
@@ -683,6 +729,7 @@
});
this.formData = { ...this.getDefaultFormData(), ...data };
+ console.log('鍚堝苟鍚庣殑formData:', this.formData);
// 璁剧疆鍦板潃淇℃伅
if (data.residenceprovince) {
@@ -703,13 +750,13 @@
this.calculateAge(data.birthday);
} catch (error) {
+ console.error("鑾峰彇妗堜緥鏁版嵁澶辫触:", error);
this.$message.error("鑾峰彇妗堜緥鏁版嵁澶辫触");
this.handleClose();
}
},
handleIdCardBlur() {
- // 韬唤璇佽嚜鍔ㄥ~鍏呴�昏緫
this.updateMessage();
},
@@ -817,7 +864,7 @@
},
handleClose() {
- this.localVisible = false;
+ console.log('鍏抽棴寮规');
this.isEdit = false;
this.submitLoading = false;
this.formData = this.getDefaultFormData();
@@ -833,6 +880,7 @@
this.submitLoading = true;
try {
const submitData = this.processSubmitData();
+ console.log('鎻愪氦鏁版嵁:', submitData);
const result = await updateDonatebaseinfo(submitData);
if (result.code === 200) {
@@ -843,6 +891,7 @@
this.$message.error(result.msg || "鎿嶄綔澶辫触");
}
} catch (error) {
+ console.error("鎿嶄綔澶辫触:", error);
this.$message.error("鎿嶄綔澶辫触");
} finally {
this.submitLoading = false;
--
Gitblit v1.9.3