| | |
| | | <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-option |
| | | v-for="dict in dict.type.sys_user_sex || []" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="parseInt(dict.value)" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | v-model="formData.idcardtype" |
| | | placeholder="请选择证件类型" |
| | | > |
| | | <el-option label="身份证" :value="1" /> |
| | | <el-option label="军人证" :value="2" /> |
| | | <el-option label="护照" :value="3" /> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_IDType || []" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="parseInt(dict.value)" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-form-item label="民族" prop="nation"> |
| | | <el-select v-model="formData.nation" placeholder="请选择民族"> |
| | | <el-option |
| | | v-for="dict in dictOptions.sys_nation" |
| | | v-for="dict in dict.type.sys_nation || []" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | |
| | | placeholder="请选择学历" |
| | | > |
| | | <el-option |
| | | v-for="dict in dictOptions.sys_education" |
| | | v-for="dict in dict.type.sys_education || []" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | |
| | | placeholder="请选择职业" |
| | | > |
| | | <el-option |
| | | v-for="dict in dictOptions.sys_occupation" |
| | | v-for="dict in dict.type.sys_occupation || []" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | |
| | | </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 |
| | | v-for="dict in dict.type.sys_BloodType || []" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{ dict.label }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | v-for="dict in dict.type.sys_bloodtype_rhd || []" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{ dict.label }}</el-radio> |
| | | >{{ dict.label }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </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-row> |
| | | |
| | | <!-- 传染病 --> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item align="left" label="传染病"> |
| | | <el-checkbox-group v-model="formData.infectious"> |
| | | <el-checkbox |
| | | v-for="dict in dict.type.sys_Infectious || []" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | > |
| | | {{ dict.label }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item align="left" label="其他" prop="infectiousOther"> |
| | | <el-input |
| | | v-model="formData.infectiousOther" |
| | | placeholder="请输入其他" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- 病人状况和其他情况 --> |
| | | <el-row> |
| | | <el-col :span="9"> |
| | | <el-form-item align="left" label="病人状况"> |
| | | <el-checkbox-group v-model="formData.patientstate"> |
| | | <el-checkbox |
| | | v-for="dict in dict.type.sys_patientstate || []" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | > |
| | | {{ dict.label }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="15" align="left"> |
| | | <el-form-item label="其他情况"> |
| | | <el-checkbox-group v-model="formData.othercases"> |
| | | <el-checkbox |
| | | v-for="dict in dict.type.sys_OtherCases || []" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | > |
| | | {{ dict.label }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-row> |
| | | </el-card> |
| | | |
| | | <!-- 意愿和亲属信息部分 --> |
| | | <el-card header="意愿和亲属信息" class="form-section"> |
| | | <!-- 本人意愿 --> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item align="left" label="本人意愿 "> |
| | | <el-checkbox-group v-model="formData.selfwill"> |
| | | <el-checkbox |
| | | v-for="dict in dict.type.sys_SelfWill || []" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | > |
| | | {{ dict.label }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- 亲属状况 --> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | label="亲属状况" |
| | | prop="kinship" |
| | | class="relation" |
| | | align="left" |
| | | > |
| | | <el-checkbox-group v-model="formData.kinship"> |
| | | <el-checkbox |
| | | v-for="dict in dict.type.sys_Kinship || []" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | > |
| | | {{ dict.label }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="其他" prop="kinshipOther"> |
| | | <el-input |
| | | v-model="formData.kinshipOther" |
| | | placeholder="请输入其他" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- 主要亲属 --> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="主要亲属" prop="majorrelatives"> |
| | | <el-input |
| | | v-model="formData.majorrelatives" |
| | | placeholder="请输入主要亲属" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="与捐赠者关系" prop="familyrelations"> |
| | | <el-select |
| | | v-model="formData.familyrelations" |
| | | placeholder="请选择与捐赠者关系" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_FamilyRelation || []" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </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-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-card> |
| | | |
| | | <!-- 捐献信息部分 --> |
| | | <el-card header="捐献信息" class="form-section"> |
| | | <el-row :gutter="20"> |
| | |
| | | placeholder="请选择捐献类别" |
| | | > |
| | | <el-option |
| | | v-for="dict in dictOptions.sys_DonationCategory" |
| | | v-for="dict in dict.type.sys_DonationCategory || []" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | |
| | | <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-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="联系人" prop="contactperson"> |
| | | <el-input |
| | | v-model="formData.contactperson" |
| | | placeholder="请输入联系人" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="联系时间" prop="contacttime"> |
| | | <el-date-picker |
| | | v-model="formData.contacttime" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择报告时间" |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | LiAreaSelect |
| | | }, |
| | | |
| | | dicts: ["sys_bloodtype_rhd", "sys_BloodType"], |
| | | // 添加所有需要的字典类型 |
| | | dicts: [ |
| | | "sys_bloodtype_rhd", |
| | | "sys_BloodType", |
| | | "sys_user_sex", |
| | | "sys_IDType", |
| | | "sys_nation", |
| | | "sys_education", |
| | | "sys_occupation", |
| | | "sys_DiseaseType", |
| | | "sys_Infectious", |
| | | "sys_patientstate", |
| | | "sys_OtherCases", |
| | | "sys_SelfWill", |
| | | "sys_Kinship", |
| | | "sys_FamilyRelation", |
| | | "sys_InfoSources", |
| | | "sys_DonationCategory" |
| | | ], |
| | | |
| | | props: { |
| | | visible: { |
| | |
| | | return this.visible; |
| | | }, |
| | | set(value) { |
| | | this.$emit('update:visible', value); |
| | | this.$emit("update:visible", value); |
| | | if (!value) { |
| | | this.handleClose(); |
| | | } |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | console.log('EditCaseModal created'); |
| | | console.log('visible:', this.visible); |
| | | console.log('editData:', this.editData); |
| | | 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); |
| | | console.log("EditCaseModal mounted"); |
| | | console.log("visible:", this.visible); |
| | | console.log("editData:", this.editData); |
| | | console.log("isEdit:", this.isEdit); |
| | | }, |
| | | methods: { |
| | | getDefaultFormData() { |
| | |
| | | illnessoverview: null, |
| | | coordinatorNo: null, |
| | | coordinatorName: null, |
| | | diseasetype: [], |
| | | infectious: [], |
| | | patientstate: [], |
| | | othercases: [], |
| | | |
| | | // 地址信息 |
| | | residenceaddress: null, |
| | | residenceprovince: null, |
| | | residencecity: null, |
| | | residencetown: null, |
| | | registeraddress: null, |
| | | registerprovince: null, |
| | | registercity: null, |
| | | registertown: null, |
| | | |
| | | // 意愿和亲属信息 |
| | | selfwill: [], |
| | | kinship: [], |
| | | majorrelatives: null, |
| | | familyrelations: null, |
| | | infosources: [], |
| | | infoname: null, |
| | | infophone: null, |
| | | redorganno: null, |
| | | contactperson: null, |
| | | contacttime: null, |
| | | |
| | | // 捐献信息 |
| | | donationcategory: null, |
| | |
| | | reporttime: null, |
| | | deptid: null, |
| | | |
| | | // 数组字段 |
| | | diseasetype: [], |
| | | infectious: [], |
| | | selfwill: [], |
| | | othercases: [], |
| | | infosources: [], |
| | | kinship: [], |
| | | patientstate: [] |
| | | // 其他字段 |
| | | diseasetypeOther: null, |
| | | infectiousOther: null, |
| | | kinshipOther: null, |
| | | infosourcesOther: null |
| | | }; |
| | | }, |
| | | |
| | | async initForm() { |
| | | console.log('初始化表单,isEdit:', this.isEdit); |
| | | console.log("初始化表单,isEdit:", this.isEdit); |
| | | try { |
| | | if (this.isEdit && this.editData && this.editData.id) { |
| | | console.log('加载编辑数据,id:', this.editData.id); |
| | | console.log("加载编辑数据,id:", this.editData.id); |
| | | await this.loadEditData(); |
| | | } else { |
| | | console.log('新增模式,初始化表单'); |
| | | console.log("新增模式,初始化表单"); |
| | | this.formData = this.getDefaultFormData(); |
| | | this.formData.nationality = "中国"; |
| | | this.formData.bloodtype = "0"; |
| | |
| | | try { |
| | | const response = await getDonatebaseinfo(this.editData.id); |
| | | const data = response.data; |
| | | console.log('加载到的数据:', data); |
| | | console.log("加载到的数据:", data); |
| | | |
| | | // 处理数组字段 |
| | | const arrayFields = [ |
| | |
| | | "patientstate" |
| | | ]; |
| | | arrayFields.forEach(field => { |
| | | if (data[field]) { |
| | | if (data[field] && typeof data[field] === "string") { |
| | | data[field] = data[field].split(","); |
| | | } else { |
| | | } else if (!data[field]) { |
| | | data[field] = []; |
| | | } |
| | | }); |
| | | |
| | | this.formData = { ...this.getDefaultFormData(), ...data }; |
| | | console.log('合并后的formData:', this.formData); |
| | | console.log("合并后的formData:", this.formData); |
| | | |
| | | // 设置地址信息 |
| | | if (data.residenceprovince) { |
| | |
| | | }, |
| | | |
| | | handleClose() { |
| | | console.log('关闭弹框'); |
| | | console.log("关闭弹框"); |
| | | this.isEdit = false; |
| | | this.submitLoading = false; |
| | | this.formData = this.getDefaultFormData(); |
| | |
| | | this.submitLoading = true; |
| | | try { |
| | | const submitData = this.processSubmitData(); |
| | | console.log('提交数据:', submitData); |
| | | console.log("提交数据:", submitData); |
| | | |
| | | const result = await updateDonatebaseinfo(submitData); |
| | | if (result.code === 200) { |
| | | this.$message.success(this.isEdit ? "更新成功" : "新增成功"); |
| | | this.$emit("success", result.data); |
| | | console.log(1122); |
| | | |
| | | this.handleClose(); |
| | | } else { |
| | | this.$message.error(result.msg || "操作失败"); |
| | |
| | | "YYYY-MM-DD HH:mm:ss" |
| | | ); |
| | | } |
| | | if (data.contacttime) { |
| | | data.contacttime = this.$moment(data.contacttime).format( |
| | | "YYYY-MM-DD HH:mm:ss" |
| | | ); |
| | | } |
| | | |
| | | // 设置默认值 |
| | | if (!data.recordstate) { |