diff --git a/src/views/personarchive/PersonArchiveForm.vue b/src/views/personarchive/PersonArchiveForm.vue index 6d3ae9ee..3d532222 100644 --- a/src/views/personarchive/PersonArchiveForm.vue +++ b/src/views/personarchive/PersonArchiveForm.vue @@ -278,14 +278,14 @@ watch(() => formData.value.address, (newValue) => { }) /** 打开弹窗 */ -const open = async (type: string, id?: number, userProfile?: any) => { +const open = async (type: string, id?: number, userProfile?: any, currentPerson?: any) => { userData.value = userProfile dialogVisible.value = true dialogTitle.value = t('action.' + type) formType.value = type resetForm() // 修改时,设置数据 - if (id) { + if (type === 'update' && id) { formLoading.value = true try { formData.value = await PersonArchiveApi.getPersonArchiveByUserid(id) @@ -308,6 +308,46 @@ const open = async (type: string, id?: number, userProfile?: any) => { } finally { formLoading.value = false } + } else if (currentPerson) { + // 创建时,如果有传入的人员信息,则使用这些信息 + const newFormData = { + id: undefined, + userid: currentPerson.id, + orgid: userProfile.dept.id, + orgname: userProfile.dept.name, + name: currentPerson.name, + gender: currentPerson.gender, + age: currentPerson.age, + idcard: currentPerson.idcard, + address: currentPerson.address || '', + phone: currentPerson.phone, + bloodtype: undefined, + sleepsituation: undefined, + height: undefined, + weight: undefined, + waist: undefined, + hip: undefined, + drinking: undefined, + disability: undefined, + drugallergy: undefined, + exposure: undefined, + diseasehistory: undefined, + surgeryhistory: undefined, + traumahistory: undefined, + transfusionhistory: undefined, + disabilitydesc: undefined, + drugallergydesc: undefined, + exposuredesc: undefined, + diseasehistorydesc: undefined, + surgeryhistorydesc: undefined, + traumahistorydesc: undefined, + transfusionhistorydesc: undefined, + createtime: undefined, + updatetime: undefined, + createby: undefined, + updateby: undefined + } + formData.value = newFormData } } defineExpose({ open }) // 提供 open 方法,用于打开弹窗 @@ -323,13 +363,13 @@ const submitForm = async () => { const data = formData.value as unknown as PersonArchiveVO if (formType.value === 'create') { data.orgid = userData.value.dept.id - data.orgname = userData.value.nickname + data.orgname = userData.value.dept.name data.createtime = dayjs().format('YYYY-MM-DD HH:mm:ss') await PersonArchiveApi.createPersonArchive(data) message.success(t('common.createSuccess')) } else { data.orgid = userData.value.dept.id - data.orgname = userData.value.nickname + data.orgname = userData.value.dept.name data.updatetime = dayjs().format('YYYY-MM-DD HH:mm:ss') await PersonArchiveApi.updatePersonArchive(data) message.success(t('common.updateSuccess')) diff --git a/src/views/personarchive/index.vue b/src/views/personarchive/index.vue index 3772b9e3..40d66668 100644 --- a/src/views/personarchive/index.vue +++ b/src/views/personarchive/index.vue @@ -38,17 +38,8 @@ v-model="queryParams.idcard" placeholder="请输入身份证号" clearable @keyu - - - - +