<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"
|
>
|
<!-- 基础信息部分 -->
|
<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-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-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-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-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="请输入GSC评分"
|
/>
|
</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="请输入部门ID" />
|
</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>
|
</template>
|
|
<script>
|
import {
|
getDonatebaseinfo,
|
updateDonatebaseinfo
|
} from "@/api/project/donatebaseinfo";
|
import OrgSelecter from "@/views/project/components/orgselect";
|
import LiAreaSelect from "@/components/Address";
|
|
export default {
|
name: "EditCaseModal",
|
components: {
|
OrgSelecter,
|
LiAreaSelect
|
},
|
|
dicts: ["sys_bloodtype_rhd", "sys_BloodType"],
|
|
props: {
|
visible: {
|
type: Boolean,
|
default: false
|
},
|
editData: {
|
type: Object,
|
default: () => ({})
|
},
|
dictOptions: {
|
type: Object,
|
default: () => ({})
|
},
|
reporters: {
|
type: Array,
|
default: () => []
|
}
|
},
|
data() {
|
return {
|
localVisible: this.visible,
|
isEdit: false,
|
submitLoading: false,
|
residenceAddress: {},
|
registerAddress: {},
|
formData: this.getDefaultFormData(),
|
rules: {
|
name: [
|
{ required: true, message: "请输入捐献者姓名", trigger: "blur" }
|
],
|
sex: [{ required: true, message: "请选择性别", trigger: "change" }],
|
idcardtype: [
|
{ required: true, message: "请选择证件类型", trigger: "change" }
|
],
|
idcardno: [
|
{ required: true, message: "请输入证件号码", trigger: "blur" }
|
],
|
birthday: [
|
{ required: true, message: "请选择出生日期", trigger: "change" }
|
],
|
treatmenthospitalno: [
|
{ required: true, message: "请选择首诊医院", trigger: "change" }
|
],
|
diagnosisname: [
|
{ required: true, message: "请输入疾病诊断", trigger: "blur" }
|
],
|
bloodtype: [
|
{ required: true, message: "请选择血型", trigger: "change" }
|
],
|
donatetime: [
|
{ required: true, message: "请选择案例时间", trigger: "change" }
|
],
|
reporttime: [
|
{ required: true, message: "请选择报告时间", trigger: "change" }
|
]
|
}
|
};
|
},
|
computed: {
|
title() {
|
return this.isEdit ? "编辑案例信息" : "新增捐献案例";
|
}
|
},
|
watch: {
|
visible(newVal) {
|
this.localVisible = newVal;
|
if (newVal) {
|
this.initForm();
|
}
|
},
|
localVisible(newVal) {
|
this.$emit("update:visible", newVal);
|
},
|
editData: {
|
handler(newVal) {
|
if (newVal && newVal.id) {
|
this.isEdit = true;
|
this.$nextTick(() => {
|
// 确保 DOM 已经更新后再进行表单操作
|
this.initForm(newVal);
|
});
|
}
|
},
|
deep: true,
|
immediate: true
|
}
|
},
|
methods: {
|
getDefaultFormData() {
|
return {
|
// 基础信息
|
caseNo: null,
|
donorno: null,
|
donateno: null,
|
name: null,
|
sex: null,
|
idcardtype: null,
|
idcardno: null,
|
birthday: null,
|
andAge: "",
|
age: null,
|
ageunit: "年",
|
age2: null,
|
ageunit2: "月",
|
nation: null,
|
nationality: "中国",
|
nativeplace: null,
|
phone: null,
|
education: null,
|
occupation: null,
|
|
// 医疗信息
|
treatmenthospitalno: null,
|
treatmenthospitalname: null,
|
treatmentdeptname: null,
|
inpatientno: null,
|
diagnosisname: null,
|
bloodtype: "0",
|
rhyin: "0",
|
currentMedicalInstitution: null,
|
currentDept: null,
|
firstMedicalInstitution: null,
|
firstDept: null,
|
gcsScore: null,
|
illnessoverview: null,
|
coordinatorNo: null,
|
coordinatorName: null,
|
|
// 地址信息
|
residenceaddress: null,
|
residenceprovince: null,
|
residencecity: null,
|
registeraddress: null,
|
registerprovince: null,
|
registercity: null,
|
|
// 捐献信息
|
donationcategory: null,
|
donatetime: null,
|
recordstate: "0",
|
acquisitiontissueno: "ZJOPO",
|
acquisitiontissuename: "浙江省人体器官获取组织",
|
|
// 报告信息
|
reporterno: null,
|
reportername: null,
|
reporterphone: null,
|
reporttime: null,
|
deptid: null,
|
|
// 数组字段
|
diseasetype: [],
|
infectious: [],
|
selfwill: [],
|
othercases: [],
|
infosources: [],
|
kinship: [],
|
patientstate: []
|
};
|
},
|
|
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 = "浙江省人体器官获取组织";
|
}
|
this.$nextTick(() => {
|
this.$refs.formRef?.clearValidate();
|
});
|
},
|
|
async loadEditData() {
|
try {
|
const response = await getDonatebaseinfo(this.editData.id);
|
const data = response.data;
|
|
// 处理数组字段
|
const arrayFields = [
|
"diseasetype",
|
"infectious",
|
"selfwill",
|
"othercases",
|
"infosources",
|
"kinship",
|
"patientstate"
|
];
|
arrayFields.forEach(field => {
|
if (data[field]) {
|
data[field] = data[field].split(",");
|
} else {
|
data[field] = [];
|
}
|
});
|
|
this.formData = { ...this.getDefaultFormData(), ...data };
|
|
// 设置地址信息
|
if (data.residenceprovince) {
|
this.residenceAddress = {
|
sheng: data.residenceprovincename,
|
shi: data.residencecityname,
|
qu: data.residencetownname
|
};
|
}
|
|
if (data.registerprovince) {
|
this.registerAddress = {
|
sheng: data.registerprovincename,
|
shi: data.registercityname,
|
qu: data.registertownname
|
};
|
}
|
|
this.calculateAge(data.birthday);
|
} catch (error) {
|
this.$message.error("获取案例数据失败");
|
this.handleClose();
|
}
|
},
|
|
handleIdCardBlur() {
|
// 身份证自动填充逻辑
|
this.updateMessage();
|
},
|
|
updateMessage() {
|
const idCardReg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
|
|
if (idCardReg.test(this.formData.idcardno)) {
|
const orgBirthday = this.formData.idcardno.substring(6, 14);
|
const orgGender = this.formData.idcardno.substring(16, 17);
|
|
const sex = orgGender % 2 == 1 ? "1" : "2";
|
const birthday = `${orgBirthday.substring(
|
0,
|
4
|
)}-${orgBirthday.substring(4, 6)}-${orgBirthday.substring(6, 8)}`;
|
|
this.formData.sex = sex;
|
this.formData.birthday = birthday;
|
this.calculateAge(birthday);
|
}
|
},
|
|
calculateAge(birthday) {
|
if (!birthday) {
|
this.formData.age = this.formData.age2 = null;
|
this.formData.andAge = "";
|
return;
|
}
|
|
const birthDate = new Date(birthday);
|
const today = new Date();
|
|
let yearDiff = today.getFullYear() - birthDate.getFullYear();
|
let monthDiff = today.getMonth() - birthDate.getMonth();
|
let dayDiff = today.getDate() - birthDate.getDate();
|
|
if (dayDiff < 0) {
|
monthDiff--;
|
const lastDayOfMonth = new Date(
|
today.getFullYear(),
|
today.getMonth(),
|
0
|
).getDate();
|
dayDiff += lastDayOfMonth;
|
}
|
|
if (monthDiff < 0) {
|
yearDiff--;
|
monthDiff += 12;
|
}
|
|
this.formData.age = yearDiff;
|
this.formData.ageunit = "岁";
|
this.formData.age2 = monthDiff;
|
this.formData.ageunit2 = "月";
|
|
if (yearDiff === 0) {
|
if (monthDiff === 0) {
|
this.formData.age = dayDiff;
|
this.formData.ageunit = "天";
|
this.formData.age2 = null;
|
} else {
|
this.formData.age = monthDiff;
|
this.formData.ageunit = "月";
|
this.formData.age2 = dayDiff;
|
this.formData.ageunit2 = "天";
|
}
|
}
|
|
this.formData.andAge = [
|
this.formData.age && this.formData.age !== 0
|
? `${this.formData.age}${this.formData.ageunit}`
|
: "",
|
this.formData.age2 && this.formData.age2 !== 0
|
? `${this.formData.age2}${this.formData.ageunit2}`
|
: ""
|
]
|
.filter(Boolean)
|
.join(" ");
|
},
|
|
handleHospitalChange(hospitalInfo) {
|
if (hospitalInfo && hospitalInfo.organizationname) {
|
this.formData.treatmenthospitalname = hospitalInfo.organizationname;
|
}
|
},
|
|
handleReporterChange(reporterNo) {
|
const reporter = this.reporters.find(r => r.reportNo === reporterNo);
|
if (reporter) {
|
this.formData.reportername = reporter.reportName;
|
}
|
},
|
|
handleResidenceAddressChange(address) {
|
this.formData.residenceprovince = address.sheng;
|
this.formData.residencecity = address.shi;
|
this.formData.residencetown = address.qu;
|
},
|
|
handleRegisterAddressChange(address) {
|
this.formData.registerprovince = address.sheng;
|
this.formData.registercity = address.shi;
|
this.formData.registertown = address.qu;
|
},
|
|
handleClose() {
|
this.localVisible = false;
|
this.isEdit = false;
|
this.submitLoading = false;
|
this.formData = this.getDefaultFormData();
|
this.residenceAddress = {};
|
this.registerAddress = {};
|
this.$emit("closed");
|
},
|
|
async handleSubmit() {
|
const valid = await this.$refs.formRef.validate().catch(() => false);
|
if (!valid) return;
|
|
this.submitLoading = true;
|
try {
|
const submitData = this.processSubmitData();
|
|
const result = await updateDonatebaseinfo(submitData);
|
if (result.code === 200) {
|
this.$message.success(this.isEdit ? "更新成功" : "新增成功");
|
this.$emit("success", result.data);
|
this.handleClose();
|
} else {
|
this.$message.error(result.msg || "操作失败");
|
}
|
} catch (error) {
|
this.$message.error("操作失败");
|
} finally {
|
this.submitLoading = false;
|
}
|
},
|
|
processSubmitData() {
|
const data = { ...this.formData };
|
|
// 处理数组字段为字符串
|
const arrayFields = [
|
"diseasetype",
|
"infectious",
|
"selfwill",
|
"othercases",
|
"infosources",
|
"kinship",
|
"patientstate"
|
];
|
arrayFields.forEach(field => {
|
if (Array.isArray(data[field])) {
|
data[field] = data[field].join(",");
|
} else if (!data[field]) {
|
data[field] = "";
|
}
|
});
|
|
// 处理日期字段
|
if (data.birthday) {
|
data.birthday = this.$moment(data.birthday).format(
|
"YYYY-MM-DD HH:mm:ss"
|
);
|
}
|
if (data.reporttime) {
|
data.reporttime = this.$moment(data.reporttime).format(
|
"YYYY-MM-DD HH:mm:ss"
|
);
|
}
|
if (data.donatetime) {
|
data.donatetime = this.$moment(data.donatetime).format(
|
"YYYY-MM-DD HH:mm:ss"
|
);
|
}
|
|
// 设置默认值
|
if (!data.recordstate) {
|
data.recordstate = "0";
|
}
|
if (!data.workflow) {
|
data.workflow = 0;
|
}
|
|
return data;
|
}
|
}
|
};
|
</script>
|
|
<style scoped>
|
.form-section {
|
margin-bottom: 20px;
|
}
|
.form-section:last-child {
|
margin-bottom: 0;
|
}
|
</style>
|