| | |
| | | "use strict"; |
| | | const common_vendor = require("../../common/vendor.js"); |
| | | const stores_user = require("../../stores/user.js"); |
| | | const utils_dict = require("../../utils/dict.js"); |
| | | const utils_useDictMapper = require("../../utils/useDictMapper.js"); |
| | | if (!Array) { |
| | | const _easycom_u_input2 = common_vendor.resolveComponent("u-input"); |
| | | const _easycom_u_textarea2 = common_vendor.resolveComponent("u-textarea"); |
| | | const _easycom_u_button2 = common_vendor.resolveComponent("u-button"); |
| | | const _easycom_u_picker2 = common_vendor.resolveComponent("u-picker"); |
| | | const _easycom_u_datetime_picker2 = common_vendor.resolveComponent("u-datetime-picker"); |
| | | const _easycom_u_loading_icon2 = common_vendor.resolveComponent("u-loading-icon"); |
| | | (_easycom_u_input2 + _easycom_u_textarea2 + _easycom_u_button2 + _easycom_u_picker2 + _easycom_u_datetime_picker2 + _easycom_u_loading_icon2)(); |
| | | const _easycom_u_button2 = common_vendor.resolveComponent("u-button"); |
| | | (_easycom_u_input2 + _easycom_u_textarea2 + _easycom_u_datetime_picker2 + _easycom_u_button2)(); |
| | | } |
| | | const _easycom_u_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js"; |
| | | const _easycom_u_textarea = () => "../../uni_modules/uview-plus/components/u-textarea/u-textarea.js"; |
| | | const _easycom_u_button = () => "../../uni_modules/uview-plus/components/u-button/u-button.js"; |
| | | const _easycom_u_picker = () => "../../uni_modules/uview-plus/components/u-picker/u-picker.js"; |
| | | const _easycom_u_datetime_picker = () => "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.js"; |
| | | const _easycom_u_loading_icon = () => "../../uni_modules/uview-plus/components/u-loading-icon/u-loading-icon.js"; |
| | | const _easycom_u_button = () => "../../uni_modules/uview-plus/components/u-button/u-button.js"; |
| | | if (!Math) { |
| | | (_easycom_u_input + _easycom_u_textarea + _easycom_u_button + common_vendor.unref(attachmentUpload) + _easycom_u_picker + _easycom_u_datetime_picker + _easycom_u_loading_icon)(); |
| | | (_easycom_u_input + common_vendor.unref(AreaSelect) + _easycom_u_textarea + _easycom_u_datetime_picker + common_vendor.unref(attachmentUpload) + _easycom_u_button)(); |
| | | } |
| | | const attachmentUpload = () => "../../components/attachment/index.js"; |
| | | const AreaSelect = () => "../../components/AreaSelect/index.js"; |
| | | const _sfc_main = { |
| | | __name: "CaseDetails", |
| | | setup(__props) { |
| | | const dict = common_vendor.ref({}); |
| | | const requiredDictTypes = [ |
| | | "sys_IDType", |
| | | "sys_user_sex", |
| | | "sys_Nation", |
| | | "sys_BloodType", |
| | | "sys_Infectious", |
| | | "sys_AgeUnit", |
| | | // 年龄单位(已存在) |
| | | "sys_education", |
| | | "sys_occupation" |
| | | ]; |
| | | const { dictData, loading: dictLoading } = utils_useDictMapper.useDictMapper(requiredDictTypes); |
| | | const getDictList = (dictType) => dictData.value[dictType] || []; |
| | | const nationList = common_vendor.computed( |
| | | () => getDictList("sys_Nation").map((item) => item.label) |
| | | ); |
| | | const idCardTypeList = common_vendor.computed( |
| | | () => getDictList("sys_IDType").map((item) => item.label) |
| | | ); |
| | | const infectiousList = common_vendor.computed(() => getDictList("sys_Infectious")); |
| | | const educationList = common_vendor.computed( |
| | | () => getDictList("sys_education").map((item) => item.label) |
| | | ); |
| | | const occupationList = common_vendor.computed( |
| | | () => getDictList("sys_occupation").map((item) => item.label) |
| | | ); |
| | | const ageUnitList = common_vendor.computed( |
| | | () => getDictList("sys_AgeUnit").map((item) => item.label) |
| | | ); |
| | | const userStore = stores_user.useUserStore(); |
| | | const isEditMode = common_vendor.ref(false); |
| | | const currentId = common_vendor.ref(null); |
| | | const selectedInfectious = common_vendor.ref([]); |
| | | const loading = common_vendor.ref(false); |
| | | const currentTime = common_vendor.ref(""); |
| | | const disabledColor = common_vendor.ref("#f5f5f7"); |
| | | const isReadonly = common_vendor.ref(false); |
| | | common_vendor.ref(false); |
| | | common_vendor.ref(0); |
| | | const nationIndex = common_vendor.ref(-1); |
| | | const idCardTypeIndex = common_vendor.ref(-1); |
| | | const educationIndex = common_vendor.ref(-1); |
| | | const occupationIndex = common_vendor.ref(-1); |
| | | const idCardError = common_vendor.ref(""); |
| | | const attachments = common_vendor.ref([]); |
| | | const ageUnitIndex = common_vendor.ref(-1); |
| | | const showReportTimePicker = common_vendor.ref(false); |
| | | const reportTimeValue = common_vendor.ref(Date.now()); |
| | | const residenceAddress = common_vendor.ref({ sheng: "", shi: "", qu: "" }); |
| | | const registerAddress = common_vendor.ref({ sheng: "", shi: "", qu: "" }); |
| | | const form = common_vendor.ref({ |
| | | caseNo: "", |
| | | treatmenthospitalname: "", |
| | |
| | | coordinatorName: "", |
| | | coordinatorNo: "", |
| | | treatmentdeptname: "", |
| | | deptName: "", |
| | | name: "", |
| | | nation: "", |
| | | nationality: "中国", |
| | |
| | | birthday: "", |
| | | age: "", |
| | | ageunit: "", |
| | | // 新增:年龄单位 |
| | | inpatientno: "", |
| | | gcsScore: "", |
| | | diagnosisname: "", |
| | | bloodType: "", |
| | | rhYin: "", |
| | | infoName: "", |
| | | phone: "", |
| | | icuDoctor: "", |
| | | icuDoctorPhone: "", |
| | | reportername: "", |
| | | reporterno: "", |
| | | reporterphone: "", |
| | | // 报告者联系电话 |
| | | reporttime: "", |
| | | contactperson: "", |
| | | // 新增:联系人(协调员) |
| | | education: "", |
| | | // 新增:学历 |
| | | illnessoverview: "", |
| | | // 新增:病情概况 |
| | | infectious: "", |
| | | // 传染病情况 |
| | | infectiousOther: "", |
| | | // 传染病其他 |
| | | isTransport: "", |
| | | // 新增:是否需要转运,默认1不需要 |
| | | nativeplace: "", |
| | | // 新增:籍贯 |
| | | occupation: "", |
| | | // 新增:职业 |
| | | patientstate: "", |
| | | // 新增:病人状况 |
| | | registeraddress: "", |
| | | // 新增:户籍地址 |
| | | registerprovince: "", |
| | | // 新增:户籍地址省编号 |
| | | registerprovincename: "", |
| | | // 新增:户籍地址省名称 |
| | | registercityname: "", |
| | | // 新增:市名称 |
| | | registertownname: "", |
| | | // 新增:所属街道(镇)名称 |
| | | registercommunityname: "", |
| | | // 新增:社区(村)名称 |
| | | residenceaddress: "", |
| | | // 新增:现住地址 |
| | | residenceprovince: "", |
| | | // 新增:现住地址省代码 |
| | | residenceprovincename: "", |
| | | // 新增:现住地址省名称 |
| | | residencecountycode: "", |
| | | // 新增:所属区域编号 |
| | | residencecountyname: "", |
| | | // 新增:所属区域名称 |
| | | residencetownname: "", |
| | | // 新增:所属街道(镇)名称 |
| | | residencecommunity: "", |
| | | // 新增:社区(村)编号 |
| | | residencecommunityname: "", |
| | | // 新增:社区(村)名称 |
| | | remark: "", |
| | | // 新增:备注 |
| | | reportStatus: "1", |
| | | // 新增:上报状态,默认1已上报 |
| | | terminationCase: 0, |
| | | // 新增:是否终止案例,默认0开启 |
| | | annexfilesList: [] |
| | | // 附件文件地址集合 |
| | | }); |
| | | const attachments = common_vendor.ref([]); |
| | | const infectiousDiseaselist = common_vendor.ref([]); |
| | | const nationLabel = common_vendor.ref([]); |
| | | const isReadonly = common_vendor.ref(false); |
| | | const id = common_vendor.ref(null); |
| | | const selectShow = common_vendor.ref(false); |
| | | const showHospitalPicker = common_vendor.ref(false); |
| | | const showNationPicker = common_vendor.ref(false); |
| | | common_vendor.ref(false); |
| | | const showDatePicker = common_vendor.ref(false); |
| | | const showReporterPicker = common_vendor.ref(false); |
| | | const birthdayValue = common_vendor.ref(0); |
| | | const hospitalOptions = common_vendor.ref([ |
| | | { label: "青岛镜湖医院", value: "qdhospital1" }, |
| | | { label: "青岛科大医院", value: "qdhospital2" }, |
| | | { label: "青岛大学附属医院", value: "qdhospital3" }, |
| | | { label: "青岛市立医院", value: "qdhospital4" } |
| | | ]); |
| | | const pickerColumns = common_vendor.ref([ |
| | | [ |
| | | { label: "神经外科", value: "neurosurgery" }, |
| | | { label: "心血管内科", value: "cardiology" }, |
| | | { label: "重症医学科", value: "icu" }, |
| | | { label: "急诊科", value: "emergency" }, |
| | | { label: "神经内科", value: "neurology" }, |
| | | { label: "呼吸内科", value: "respiratory" }, |
| | | { label: "消化内科", value: "gastroenterology" }, |
| | | { label: "肾内科", value: "nephrology" } |
| | | ] |
| | | ]); |
| | | const nationOptions = common_vendor.ref([ |
| | | { label: "汉族", value: "han" }, |
| | | { label: "回族", value: "hui" }, |
| | | { label: "满族", value: "man" }, |
| | | { label: "蒙古族", value: "menggu" } |
| | | ]); |
| | | const idCardTypeOptions = common_vendor.ref([ |
| | | { label: "居民身份证", value: "idcard" }, |
| | | { label: "护照", value: "passport" }, |
| | | { label: "军官证", value: "officer" } |
| | | ]); |
| | | const genderOptions = common_vendor.ref([ |
| | | { label: "男", value: "1" }, |
| | | { label: "女", value: "2" } |
| | | ]); |
| | | const bloodTypeOptions = common_vendor.ref([ |
| | | const genderOptions = common_vendor.computed(() => { |
| | | const sexDict = getDictList("sys_user_sex"); |
| | | if (sexDict.length) |
| | | return sexDict.map((item) => ({ label: item.label, value: item.value })); |
| | | return [ |
| | | { label: "男", value: "1" }, |
| | | { label: "女", value: "2" } |
| | | ]; |
| | | }); |
| | | const bloodTypeOptions = [ |
| | | { label: "A型", value: "A型" }, |
| | | { label: "B型", value: "B型" }, |
| | | { label: "O型", value: "O型" }, |
| | | { label: "AB型", value: "AB型" } |
| | | ]); |
| | | common_vendor.ref([ |
| | | { label: "需要", value: "2" }, |
| | | { label: "不需要", value: "1" } |
| | | ]); |
| | | const rhOptions = common_vendor.ref([ |
| | | ]; |
| | | const rhOptions = [ |
| | | { label: "阳性", value: "1" }, |
| | | { label: "阴性", value: "0" } |
| | | ]); |
| | | const reporterOptions = common_vendor.ref([ |
| | | { label: "张医生", value: "doctor1" }, |
| | | { label: "李医生", value: "doctor2" } |
| | | ]); |
| | | const loading = common_vendor.ref(false); |
| | | const currentTime = common_vendor.ref(""); |
| | | const disabledColor = common_vendor.ref("#f5f5f7"); |
| | | const isFormValid = common_vendor.computed(() => { |
| | | return form.value.name && // form.value.idcardno && |
| | | form.value.diagnosisname && form.value.toHospital; |
| | | }); |
| | | const hospitalIndex = common_vendor.ref(-1); |
| | | const deptIndex = common_vendor.ref(-1); |
| | | const nationIndex = common_vendor.ref(-1); |
| | | const idCardTypeIndex = common_vendor.ref(-1); |
| | | const hospitalLabels = common_vendor.computed( |
| | | () => hospitalOptions.value.map((item) => item.label) |
| | | ]; |
| | | const isFormValid = common_vendor.computed( |
| | | () => form.value.name && form.value.diagnosisname && form.value.toHospital |
| | | ); |
| | | const ageDisplay = common_vendor.computed(() => { |
| | | if (!form.value.age || !form.value.ageunit) { |
| | | return "自动计算"; |
| | | const currentAgeUnitText = common_vendor.computed(() => { |
| | | if (ageUnitIndex.value >= 0 && ageUnitList.value[ageUnitIndex.value]) { |
| | | return ageUnitList.value[ageUnitIndex.value]; |
| | | } |
| | | return `${form.value.age}${form.value.ageunit}`; |
| | | if (form.value.ageunit) { |
| | | const found = getDictList("sys_AgeUnit").find( |
| | | (item) => item.value === form.value.ageunit |
| | | ); |
| | | return found ? found.label : form.value.ageunit; |
| | | } |
| | | return ""; |
| | | }); |
| | | const deptLabels = common_vendor.computed(() => { |
| | | return pickerColumns.value[0].map((item) => item.label); |
| | | const currentNationText = common_vendor.computed(() => { |
| | | if (nationIndex.value >= 0 && nationList.value[nationIndex.value]) |
| | | return nationList.value[nationIndex.value]; |
| | | return form.value.nation || ""; |
| | | }); |
| | | const nationLabels = common_vendor.computed( |
| | | () => nationLabel.value.map((item) => item.label) |
| | | ); |
| | | const idCardTypeLabels = common_vendor.computed( |
| | | () => idCardTypeOptions.value.map((item) => item.label) |
| | | ); |
| | | common_vendor.computed(() => { |
| | | return hospitalIndex.value >= 0 ? hospitalLabels.value[hospitalIndex.value] : "请选择医疗机构"; |
| | | const currentIdCardTypeText = common_vendor.computed(() => { |
| | | if (idCardTypeIndex.value >= 0 && idCardTypeList.value[idCardTypeIndex.value]) |
| | | return idCardTypeList.value[idCardTypeIndex.value]; |
| | | if (form.value.idcardtype) { |
| | | const found = getDictList("sys_IDType").find( |
| | | (item) => item.value == form.value.idcardtype |
| | | ); |
| | | return found ? found.label : form.value.idcardtype; |
| | | } |
| | | return ""; |
| | | }); |
| | | common_vendor.computed(() => { |
| | | return deptIndex.value >= 0 ? deptLabels.value[deptIndex.value] : "请选择科室"; |
| | | const currentEducationText = common_vendor.computed(() => { |
| | | if (educationIndex.value >= 0 && educationList.value[educationIndex.value]) |
| | | return educationList.value[educationIndex.value]; |
| | | if (form.value.education) { |
| | | const found = getDictList("sys_education").find( |
| | | (item) => item.value == form.value.education |
| | | ); |
| | | return found ? found.label : form.value.education; |
| | | } |
| | | return ""; |
| | | }); |
| | | const currentNation = common_vendor.computed(() => { |
| | | return nationIndex.value >= 0 ? nationLabels.value[nationIndex.value] : form.value.nation ? form.value.nation : "请选择民族"; |
| | | const currentOccupationText = common_vendor.computed(() => { |
| | | if (occupationIndex.value >= 0 && occupationList.value[occupationIndex.value]) |
| | | return occupationList.value[occupationIndex.value]; |
| | | if (form.value.occupation) { |
| | | const found = getDictList("sys_occupation").find( |
| | | (item) => item.value == form.value.occupation |
| | | ); |
| | | return found ? found.label : form.value.occupation; |
| | | } |
| | | return ""; |
| | | }); |
| | | const currentIdCardType = common_vendor.computed(() => { |
| | | return idCardTypeIndex.value >= 0 ? idCardTypeLabels.value[idCardTypeIndex.value] : "请选择证件类型"; |
| | | }); |
| | | const updateCurrentTime = () => { |
| | | const now = /* @__PURE__ */ new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = String(now.getMonth() + 1).padStart(2, "0"); |
| | | const day = String(now.getDate()).padStart(2, "0"); |
| | | const hours = String(now.getHours()).padStart(2, "0"); |
| | | const minutes = String(now.getMinutes()).padStart(2, "0"); |
| | | const seconds = String(now.getSeconds()).padStart(2, "0"); |
| | | const timeStr = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | currentTime.value = timeStr; |
| | | if (!form.value.reporttime) { |
| | | form.value.reporttime = timeStr; |
| | | } |
| | | }; |
| | | const generateCaseNo = () => { |
| | | const now = /* @__PURE__ */ new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = String(now.getMonth() + 1).padStart(2, "0"); |
| | | const day = String(now.getDate()).padStart(2, "0"); |
| | | const hours = String(now.getHours()).padStart(2, "0"); |
| | | const minutes = String(now.getMinutes()).padStart(2, "0"); |
| | | form.value.caseNo = `opo${year}${month}${day}${hours}${minutes}`; |
| | | }; |
| | | const onNationChange = (e) => { |
| | | const index = parseInt(e.detail.value); |
| | | nationIndex.value = index; |
| | | form.value.nation = nationOptions.value[index].label; |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:670", form.value.nation, "form.value.nation"); |
| | | form.value.nation = nationList.value[index]; |
| | | }; |
| | | const onIdCardTypeChange = (e) => { |
| | | const index = parseInt(e.detail.value); |
| | | idCardTypeIndex.value = index; |
| | | form.value.idcardtype = idCardTypeOptions.value[index].value; |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:677", form.value.idcardtype, "form.value.idcardtype"); |
| | | const selectedLabel = idCardTypeList.value[index]; |
| | | const dictItem = getDictList("sys_IDType").find( |
| | | (item) => item.label == selectedLabel |
| | | ); |
| | | form.value.idcardtype = dictItem ? dictItem.value : selectedLabel; |
| | | }; |
| | | const onEducationChange = (e) => { |
| | | const index = parseInt(e.detail.value); |
| | | educationIndex.value = index; |
| | | const selectedLabel = educationList.value[index]; |
| | | const dictItem = getDictList("sys_education").find( |
| | | (item) => item.label == selectedLabel |
| | | ); |
| | | form.value.education = dictItem ? dictItem.value : selectedLabel; |
| | | }; |
| | | const onOccupationChange = (e) => { |
| | | const index = parseInt(e.detail.value); |
| | | occupationIndex.value = index; |
| | | const selectedLabel = occupationList.value[index]; |
| | | const dictItem = getDictList("sys_occupation").find( |
| | | (item) => item.label == selectedLabel |
| | | ); |
| | | form.value.occupation = dictItem ? dictItem.value : selectedLabel; |
| | | }; |
| | | const onAgeUnitChange = (e) => { |
| | | const index = parseInt(e.detail.value); |
| | | ageUnitIndex.value = index; |
| | | const selectedLabel = ageUnitList.value[index]; |
| | | const dictItem = getDictList("sys_AgeUnit").find( |
| | | (item) => item.label === selectedLabel |
| | | ); |
| | | form.value.ageunit = dictItem ? dictItem.value : selectedLabel; |
| | | }; |
| | | const onBirthdayChange = (e) => { |
| | | form.value.birthday = e.detail.value; |
| | | calculateAge(); |
| | | }; |
| | | const onDateConfirm = (e) => { |
| | | const date = new Date(e.value); |
| | | form.value.birthday = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, "0")}-${date.getDate().toString().padStart(2, "0")}`; |
| | | calculateAge(); |
| | | showDatePicker.value = false; |
| | | const calculateAge = () => { |
| | | if (!form.value.birthday) { |
| | | form.value.age = ""; |
| | | form.value.ageunit = ""; |
| | | ageUnitIndex.value = -1; |
| | | return; |
| | | } |
| | | const birthDate = new Date(form.value.birthday); |
| | | const today = /* @__PURE__ */ new Date(); |
| | | if (isNaN(birthDate.getTime())) |
| | | return; |
| | | if (birthDate > today) { |
| | | common_vendor.index.showToast({ title: "出生日期不能是未来日期", icon: "none" }); |
| | | form.value.age = ""; |
| | | form.value.ageunit = ""; |
| | | ageUnitIndex.value = -1; |
| | | return; |
| | | } |
| | | const daysDiff = Math.floor((today - birthDate) / (1e3 * 60 * 60 * 24)); |
| | | if (daysDiff < 0) |
| | | return; |
| | | let years = today.getFullYear() - birthDate.getFullYear(); |
| | | let months = today.getMonth() - birthDate.getMonth(); |
| | | let days = today.getDate() - birthDate.getDate(); |
| | | let ageValue, ageUnit; |
| | | if (years >= 1) { |
| | | if (months < 0 || months === 0 && days < 0) |
| | | years--; |
| | | ageValue = years.toString(); |
| | | ageUnit = "岁"; |
| | | } else if (daysDiff >= 30) { |
| | | let totalMonths = years * 12 + months; |
| | | if (days < 0) |
| | | totalMonths--; |
| | | ageValue = Math.max(1, totalMonths).toString(); |
| | | ageUnit = "个月"; |
| | | } else { |
| | | ageValue = Math.max(1, daysDiff).toString(); |
| | | ageUnit = "天"; |
| | | } |
| | | form.value.age = ageValue; |
| | | form.value.ageunit = ageUnit; |
| | | const unitList = ageUnitList.value; |
| | | const idx = unitList.findIndex((item) => item === ageUnit); |
| | | ageUnitIndex.value = idx >= 0 ? idx : -1; |
| | | }; |
| | | const idCardError = common_vendor.ref(""); |
| | | const validateIdCard = () => { |
| | | const idCard = form.value.idcardno; |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:700", idCard, "当前输入"); |
| | | if (!idCard) { |
| | | idCardError.value = ""; |
| | | return true; |
| | | } |
| | | if (idCard.length !== 18) { |
| | | idCardError.value = "身份证号码必须是18位"; |
| | | return false; |
| | |
| | | idCardError.value = "身份证号码格式不正确"; |
| | | return false; |
| | | } |
| | | const birthStr = idCard.substring(6, 14); |
| | | const year = birthStr.substring(0, 4); |
| | | const month = birthStr.substring(4, 6); |
| | | const day = birthStr.substring(6, 8); |
| | | const birthDate = /* @__PURE__ */ new Date(`${year}-${month}-${day}`); |
| | | if (isNaN(birthDate.getTime())) { |
| | | idCardError.value = "身份证号码中的出生日期无效"; |
| | | return false; |
| | | } |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:729", 3); |
| | | const currentYear = (/* @__PURE__ */ new Date()).getFullYear(); |
| | | const birthYear = parseInt(year, 10); |
| | | if (birthYear < 1900 || birthYear > currentYear) { |
| | | idCardError.value = "出生年份不在有效范围内"; |
| | | return false; |
| | | } |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:738", 4); |
| | | if (!validateIdCardCheckCode(idCard)) { |
| | | idCardError.value = "身份证号码校验失败"; |
| | | return false; |
| | | } |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:745", 5); |
| | | idCardError.value = ""; |
| | | return true; |
| | | }; |
| | | const onIdCardChange = (value) => { |
| | | if (validateIdCard()) { |
| | | extractBirthdayFromIdCard(); |
| | | } |
| | | }; |
| | | const handleGcsBlur = () => { |
| | | const val = Number(form.value.gcsScore); |
| | | if (!val && val !== 0) |
| | | return; |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:762", val); |
| | | if (val > 7) { |
| | | common_vendor.index.showToast({ |
| | | title: "GCS评分不能大于7", |
| | | icon: "none" |
| | | }); |
| | | form.value.gcsScore = ""; |
| | | } |
| | | if (val < 3) { |
| | | common_vendor.index.showToast({ |
| | | title: "GCS评分不能小于3", |
| | | icon: "none" |
| | | }); |
| | | form.value.gcsScore = ""; |
| | | } |
| | | }; |
| | | const validateIdCardCheckCode = (idCard) => { |
| | | const coefficientArray = [ |
| | | 7, |
| | | 9, |
| | |
| | | ]; |
| | | const checkCodeMap = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"]; |
| | | let sum = 0; |
| | | for (let i = 0; i < 17; i++) { |
| | | for (let i = 0; i < 17; i++) |
| | | sum += parseInt(idCard.charAt(i), 10) * coefficientArray[i]; |
| | | } |
| | | const checkCode = checkCodeMap[sum % 11]; |
| | | return checkCode === idCard.charAt(17).toUpperCase(); |
| | | if (checkCode != idCard.charAt(17).toUpperCase()) { |
| | | idCardError.value = "身份证号码校验失败"; |
| | | return false; |
| | | } |
| | | idCardError.value = ""; |
| | | return true; |
| | | }; |
| | | const onIdCardChange = () => { |
| | | if (validateIdCard()) |
| | | extractBirthdayFromIdCard(); |
| | | }; |
| | | const extractBirthdayFromIdCard = () => { |
| | | const idCard = form.value.idcardno; |
| | | if (!idCard || idCard.length !== 18) { |
| | | if (!idCard || idCard.length !== 18) |
| | | return; |
| | | } |
| | | try { |
| | | const birthStr = idCard.substring(6, 14); |
| | | const year = birthStr.substring(0, 4); |
| | | const month = birthStr.substring(4, 6); |
| | | const day = birthStr.substring(6, 8); |
| | | const birthDate = /* @__PURE__ */ new Date(`${year}-${month}-${day}`); |
| | | if (isNaN(birthDate.getTime())) { |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:816", "身份证号码中的出生日期无效"); |
| | | return; |
| | | } |
| | | const today = /* @__PURE__ */ new Date(); |
| | | if (birthDate > today) { |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:823", "出生日期不能是未来日期"); |
| | | return; |
| | | } |
| | | const monthNum = parseInt(month, 10); |
| | | const dayNum = parseInt(day, 10); |
| | | if (monthNum < 1 || monthNum > 12) { |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:832", "月份无效"); |
| | | return; |
| | | } |
| | | const daysInMonth = new Date(year, monthNum, 0).getDate(); |
| | | if (dayNum < 1 || dayNum > daysInMonth) { |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:839", "日期无效"); |
| | | return; |
| | | } |
| | | form.value.birthday = `${year}-${month.padStart(2, "0")}-${day.padStart( |
| | | 2, |
| | | "0" |
| | | )}`; |
| | | calculateAge(); |
| | | const genderCode = parseInt(idCard.charAt(16), 10); |
| | | if (!isNaN(genderCode)) { |
| | | form.value.sex = genderCode % 2 === 1 ? "1" : "2"; |
| | | } |
| | | common_vendor.index.showToast({ |
| | | title: "已自动提取出生日期和性别", |
| | | icon: "success", |
| | | duration: 1500 |
| | | }); |
| | | } catch (error) { |
| | | common_vendor.index.__f__("error", "at pagesSub/case/CaseDetails.vue:864", "解析身份证出生日期失败:", error); |
| | | } |
| | | const year = idCard.substring(6, 10); |
| | | const month = idCard.substring(10, 12); |
| | | const day = idCard.substring(12, 14); |
| | | const birthDate = /* @__PURE__ */ new Date(`${year}-${month}-${day}`); |
| | | if (isNaN(birthDate.getTime())) |
| | | return; |
| | | form.value.birthday = `${year}-${month}-${day}`; |
| | | calculateAge(); |
| | | const genderCode = parseInt(idCard.charAt(16), 10); |
| | | if (!isNaN(genderCode)) |
| | | form.value.sex = genderCode % 2 === 1 ? "1" : "2"; |
| | | common_vendor.index.showToast({ |
| | | title: "已自动提取出生日期和性别", |
| | | icon: "success", |
| | | duration: 1500 |
| | | }); |
| | | }; |
| | | const textareaStyle = (isError) => { |
| | | return isError ? "border: 2rpx solid #ff4757; border-radius: 12rpx; min-height: 120rpx; padding: 20rpx 24rpx;" : "border: 2rpx solid #e5e5e7; border-radius: 12rpx; min-height: 120rpx; padding: 20rpx 24rpx;"; |
| | | }; |
| | | common_vendor.onMounted(() => { |
| | | setInterval(updateCurrentTime, 1e3); |
| | | }); |
| | | common_vendor.onLoad(async (options) => { |
| | | id.value = options.id; |
| | | if (options.id) { |
| | | currentId.value = options.id; |
| | | isEditMode.value = true; |
| | | await loadCaseData(options.id); |
| | | } else { |
| | | isEditMode.value = false; |
| | | generateDonorNo(); |
| | | const handleGcsBlur = () => { |
| | | const val = Number(form.value.gcsScore); |
| | | if (!val && val !== 0) |
| | | return; |
| | | if (val > 7) { |
| | | common_vendor.index.showToast({ title: "GCS评分不能大于7", icon: "none" }); |
| | | form.value.gcsScore = ""; |
| | | } |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:891", userStore.userInfo, "userStoreuserInfo"); |
| | | if (!userStore.userInfo) { |
| | | await userStore.refreshUserInfo(); |
| | | } |
| | | form.value.treatmenthospitalname = userStore.userInfo.orgName; |
| | | form.value.toHospital = userStore.userInfo.orgName; |
| | | form.value.coordinatorName = userStore.userInfo.coordinatorName; |
| | | form.value.coordinatorNo = userStore.userInfo.coordinatorNo; |
| | | form.value.infoName = userStore.userInfo.nickName; |
| | | form.value.phone = userStore.userInfo.phonenumber; |
| | | form.value.reportername = userStore.userInfo.name; |
| | | form.value.reporterno = userStore.userInfo.userId; |
| | | dict.value = await utils_dict.useDict( |
| | | "sys_IDType", |
| | | "sys_user_sex", |
| | | "sys_Nation", |
| | | "sys_BloodType", |
| | | "sys_Infectious", |
| | | "sys_AgeUnit", |
| | | // 新增年龄单位 |
| | | "sys_education", |
| | | // 新增学历 |
| | | "sys_occupation" |
| | | // 新增职业 |
| | | ); |
| | | initOptions(); |
| | | updateCurrentTime(); |
| | | }); |
| | | const initOptions = () => { |
| | | infectiousDiseaselist.value = dict.value.sys_Infectious || []; |
| | | idCardTypeOptions.value = dict.value.sys_IDType || []; |
| | | nationLabel.value = dict.value.sys_Nation || []; |
| | | if (form.value.infectious) { |
| | | selectedInfectious.value = form.value.infectious.split(",").filter((item) => item.trim() !== ""); |
| | | if (val < 3) { |
| | | common_vendor.index.showToast({ title: "GCS评分不能小于3", icon: "none" }); |
| | | form.value.gcsScore = ""; |
| | | } |
| | | }; |
| | | const toggleInfectious = (value) => { |
| | | const index = selectedInfectious.value.indexOf(value); |
| | | if (index === -1) { |
| | | if (index === -1) |
| | | selectedInfectious.value.push(value); |
| | | } else { |
| | | else |
| | | selectedInfectious.value.splice(index, 1); |
| | | } |
| | | form.value.infectious = selectedInfectious.value.join(","); |
| | | }; |
| | | const isInfectiousSelected = (value) => { |
| | | return selectedInfectious.value.includes(value); |
| | | const isInfectiousSelected = (value) => selectedInfectious.value.includes(value); |
| | | const onReportTimeConfirm = (e) => { |
| | | const date = new Date(e.value); |
| | | const year = date.getFullYear(); |
| | | const month = String(date.getMonth() + 1).padStart(2, "0"); |
| | | const day = String(date.getDate()).padStart(2, "0"); |
| | | const hours = String(date.getHours()).padStart(2, "0"); |
| | | const minutes = String(date.getMinutes()).padStart(2, "0"); |
| | | const seconds = String(date.getSeconds()).padStart(2, "0"); |
| | | form.value.reporttime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | showReportTimePicker.value = false; |
| | | }; |
| | | const updateCurrentTime = () => { |
| | | const now = /* @__PURE__ */ new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = String(now.getMonth() + 1).padStart(2, "0"); |
| | | const day = String(now.getDate()).padStart(2, "0"); |
| | | const hours = String(now.getHours()).padStart(2, "0"); |
| | | const minutes = String(now.getMinutes()).padStart(2, "0"); |
| | | const seconds = String(now.getSeconds()).padStart(2, "0"); |
| | | currentTime.value = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | form.value.reporttime = currentTime.value; |
| | | }; |
| | | const generateDonorNo = () => { |
| | | const date = /* @__PURE__ */ new Date(); |
| | | date.getTime().toString().slice(-6); |
| | | }; |
| | | const calculateAge = () => { |
| | | if (!form.value.birthday) { |
| | | form.value.age = ""; |
| | | form.value.ageunit = ""; |
| | | return; |
| | | } |
| | | const birthDate = new Date(form.value.birthday); |
| | | const today = /* @__PURE__ */ new Date(); |
| | | if (isNaN(birthDate.getTime())) { |
| | | form.value.age = ""; |
| | | form.value.ageunit = ""; |
| | | return; |
| | | } |
| | | if (birthDate > today) { |
| | | common_vendor.index.showToast({ |
| | | title: "出生日期不能是未来日期", |
| | | icon: "none" |
| | | }); |
| | | form.value.age = ""; |
| | | form.value.ageunit = ""; |
| | | return; |
| | | } |
| | | const timeDiff = today.getTime() - birthDate.getTime(); |
| | | const daysDiff = Math.floor(timeDiff / (1e3 * 60 * 60 * 24)); |
| | | if (daysDiff < 0) { |
| | | form.value.age = ""; |
| | | form.value.ageunit = ""; |
| | | return; |
| | | } |
| | | const years = today.getFullYear() - birthDate.getFullYear(); |
| | | const months = today.getMonth() - birthDate.getMonth(); |
| | | const days = today.getDate() - birthDate.getDate(); |
| | | let ageValue, ageUnit; |
| | | if (years >= 1) { |
| | | let actualYears = years; |
| | | if (months < 0 || months === 0 && days < 0) { |
| | | actualYears = years - 1; |
| | | } |
| | | ageValue = actualYears.toString(); |
| | | ageUnit = "岁"; |
| | | } else if (daysDiff >= 30) { |
| | | let totalMonths = years * 12 + months; |
| | | if (days < 0) { |
| | | totalMonths--; |
| | | } |
| | | ageValue = Math.max(1, totalMonths).toString(); |
| | | ageUnit = "个月"; |
| | | } else { |
| | | ageValue = Math.max(1, daysDiff).toString(); |
| | | ageUnit = "天"; |
| | | } |
| | | form.value.age = ageValue; |
| | | form.value.ageunit = ageUnit; |
| | | }; |
| | | const handleBaseUpload = (file) => { |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:1053", "基础附件上传成功:", file); |
| | | attachments.value.push(file); |
| | | }; |
| | | const handleBaseUpload = (file) => attachments.value.push(file); |
| | | const handleFilesUpdate = (files) => { |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:1059", files, "files"); |
| | | attachments.value = files.map((file) => ({ |
| | | ...file |
| | | // 确保只存储半路径 |
| | | // url: file.url.startsWith("http") |
| | | // ? file.url.replace(baseUrlHt, "") |
| | | // : file.url, |
| | | })); |
| | | attachments.value = files.map((file) => ({ ...file })); |
| | | }; |
| | | const handlePreview = (file) => { |
| | | const fullUrl = file.url.startsWith("http") ? file.url : baseUrlHt + (file.url.startsWith("/") ? "" : "/") + file.url; |
| | | const fullUrl = file.url.startsWith("http") ? file.url : (file.url.startsWith("/") ? "" : "/") + file.url; |
| | | if (file.type.includes("image")) { |
| | | common_vendor.index.previewImage({ |
| | | urls: attachments.value.filter((f) => f.type.includes("image")).map( |
| | | (f) => f.url.startsWith("http") ? f.url : baseUrlHt + (f.url.startsWith("/") ? "" : "/") + f.url |
| | | (f) => f.url.startsWith("http") ? f.url : (f.url.startsWith("/") ? "" : "/") + f.url |
| | | ), |
| | | current: fullUrl |
| | | }); |
| | | } else if (file.type.includes("pdf")) { |
| | | common_vendor.index.downloadFile({ |
| | | url: fullUrl, |
| | | success: (res) => { |
| | | common_vendor.index.openDocument({ |
| | | filePath: res.tempFilePath, |
| | | fileType: "pdf", |
| | | showMenu: true |
| | | }); |
| | | }, |
| | | fail: (err) => { |
| | | common_vendor.index.__f__("error", "at pagesSub/case/CaseDetails.vue:1098", "打开文档失败:", err); |
| | | common_vendor.index.showToast({ title: "打开文件失败", icon: "none" }); |
| | | } |
| | | success: (res) => common_vendor.index.openDocument({ |
| | | filePath: res.tempFilePath, |
| | | fileType: "pdf", |
| | | showMenu: true |
| | | }) |
| | | }); |
| | | } else { |
| | | common_vendor.index.showToast({ title: "暂不支持此文件类型预览", icon: "none" }); |
| | | } |
| | | }; |
| | | const onConfirm = (e) => { |
| | | if (e.value && e.value[0]) { |
| | | form.value.treatmentdeptname = e.value[0].label; |
| | | } |
| | | selectShow.value = false; |
| | | const onResidenceChange = (val) => { |
| | | form.value.residenceprovincename = val.sheng; |
| | | form.value.residenceprovince = val.provinceCode || ""; |
| | | form.value.residencecountyname = val.shi; |
| | | form.value.residencetownname = val.qu; |
| | | }; |
| | | const onHospitalConfirm = (e) => { |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:1115", e, "民族"); |
| | | if (e.value && e.value[0]) { |
| | | form.value.treatmenthospitalname = e.value[0].label; |
| | | } |
| | | showHospitalPicker.value = false; |
| | | const onRegisterChange = (val) => { |
| | | form.value.registerprovincename = val.sheng; |
| | | form.value.registerprovince = val.provinceCode || ""; |
| | | form.value.registercityname = val.shi; |
| | | form.value.registertownname = val.qu; |
| | | }; |
| | | const onNationConfirm = (e) => { |
| | | if (e.value && e.value[0]) { |
| | | form.value.nation = e.value[0].label; |
| | | } |
| | | showNationPicker.value = false; |
| | | }; |
| | | const onReporterConfirm = (e) => { |
| | | if (e.value && e.value[0]) { |
| | | form.value.reporterno = e.value[0].label; |
| | | } |
| | | showReporterPicker.value = false; |
| | | }; |
| | | const handleCancel = () => common_vendor.index.navigateBack(); |
| | | const resetForm = () => { |
| | | common_vendor.index.showModal({ |
| | | title: "确认重置", |
| | |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | Object.keys(form.value).forEach((key) => { |
| | | if (!["id", "caseNo"].includes(key)) { |
| | | if (!["id", "caseNo"].includes(key)) |
| | | form.value[key] = ""; |
| | | } |
| | | }); |
| | | hospitalIndex.value = -1; |
| | | deptIndex.value = -1; |
| | | form.value.nationality = "中国"; |
| | | form.value.reportStatus = "1"; |
| | | form.value.terminationCase = 0; |
| | | nationIndex.value = -1; |
| | | idCardTypeIndex.value = -1; |
| | | educationIndex.value = -1; |
| | | occupationIndex.value = -1; |
| | | ageUnitIndex.value = -1; |
| | | selectedInfectious.value = []; |
| | | attachments.value = []; |
| | | form.value.nationality = "中国"; |
| | | form.value.isTransport = ""; |
| | | form.value.terminationCase = 0; |
| | | form.value.reportStatus = "1"; |
| | | if (!isEditMode.value) { |
| | | generateDonorNo(); |
| | | } |
| | | residenceAddress.value = { sheng: "", shi: "", qu: "" }; |
| | | registerAddress.value = { sheng: "", shi: "", qu: "" }; |
| | | if (!isEditMode.value) |
| | | generateCaseNo(); |
| | | updateCurrentTime(); |
| | | common_vendor.index.showToast({ title: "表单已重置", icon: "success" }); |
| | | } |
| | | } |
| | |
| | | }; |
| | | const handleSubmit = async () => { |
| | | if (!isFormValid.value) { |
| | | common_vendor.index.showToast({ |
| | | title: "请填写姓名、证件号码和疾病诊断", |
| | | icon: "none" |
| | | }); |
| | | common_vendor.index.showToast({ title: "请填写姓名、疾病诊断和上报医院", icon: "none" }); |
| | | return; |
| | | } |
| | | try { |
| | | loading.value = true; |
| | | common_vendor.index.showLoading({ title: isEditMode.value ? "修改中..." : "提交中..." }); |
| | | const submitData = { |
| | | ...form.value, |
| | | treatmenthospitalname: form.value.toHospital, |
| | | age: parseInt(form.value.age) || 0, |
| | | annexfilesList: attachments.value.map((file) => ({ |
| | | path: file.url, |
| | |
| | | ); |
| | | } |
| | | common_vendor.index.hideLoading(); |
| | | if (res.code === 200) { |
| | | if (res.code == 200) { |
| | | common_vendor.index.showToast({ |
| | | title: isEditMode.value ? "修改成功" : "上报成功", |
| | | icon: "success" |
| | | }); |
| | | removeDraft(); |
| | | setTimeout(() => { |
| | | common_vendor.index.navigateBack(); |
| | | }, 1500); |
| | | setTimeout(() => common_vendor.index.navigateBack(), 1500); |
| | | } else { |
| | | throw new Error(res.msg || "操作失败"); |
| | | } |
| | | } catch (error) { |
| | | common_vendor.index.__f__("error", "at pagesSub/case/CaseDetails.vue:1252", "操作失败:", error); |
| | | common_vendor.index.showToast({ |
| | | title: error.message || (isEditMode.value ? "修改失败" : "上报失败"), |
| | | icon: "none" |
| | |
| | | loading.value = false; |
| | | } |
| | | }; |
| | | const removeDraft = () => { |
| | | try { |
| | | common_vendor.index.removeStorageSync("caseReportDraft"); |
| | | } catch (e) { |
| | | common_vendor.index.__f__("error", "at pagesSub/case/CaseDetails.vue:1265", "移除草稿失败", e); |
| | | } |
| | | }; |
| | | const handleCancel = () => { |
| | | common_vendor.index.navigateBack(); |
| | | }; |
| | | const loadCaseData = async (id2) => { |
| | | const loadCaseData = async (id) => { |
| | | try { |
| | | loading.value = true; |
| | | const res = await common_vendor.index.$uapi.get( |
| | | `/project/donatebaseinforeport/getInfo/${id2}` |
| | | `/project/donatebaseinforeport/getInfo/${id}` |
| | | ); |
| | | if (res.code) { |
| | | form.value = res.data; |
| | | if (res.data.infectious) { |
| | | if (res.data.infectious) |
| | | selectedInfectious.value = res.data.infectious.split(",").filter((item) => item.trim() !== ""); |
| | | if (form.value.nation) { |
| | | const idx = nationList.value.findIndex( |
| | | (item) => item == form.value.nation |
| | | ); |
| | | nationIndex.value = idx >= 0 ? idx : -1; |
| | | } |
| | | currentNation.value = form.value.nation; |
| | | idCardTypeIndex.value = form.value.idcardtype; |
| | | if (form.value.idcardtype) { |
| | | const dictList = getDictList("sys_IDType"); |
| | | const idx = dictList.findIndex( |
| | | (item) => item.value == form.value.idcardtype |
| | | ); |
| | | idCardTypeIndex.value = idx >= 0 ? idx : -1; |
| | | } |
| | | if (form.value.education) { |
| | | const dictList = getDictList("sys_education"); |
| | | const idx = dictList.findIndex( |
| | | (item) => item.value == form.value.education |
| | | ); |
| | | educationIndex.value = idx >= 0 ? idx : -1; |
| | | } |
| | | if (form.value.occupation) { |
| | | const dictList = getDictList("sys_occupation"); |
| | | const idx = dictList.findIndex( |
| | | (item) => item.value == form.value.occupation |
| | | ); |
| | | occupationIndex.value = idx >= 0 ? idx : -1; |
| | | } |
| | | if (form.value.ageunit) { |
| | | const unitList = ageUnitList.value; |
| | | const idx = unitList.findIndex((item) => item === form.value.ageunit); |
| | | ageUnitIndex.value = idx >= 0 ? idx : -1; |
| | | } |
| | | if (res.data.residenceprovincename) { |
| | | residenceAddress.value = { |
| | | sheng: res.data.residenceprovincename, |
| | | shi: res.data.residencecountyname, |
| | | qu: res.data.residencetownname |
| | | }; |
| | | } |
| | | if (res.data.registerprovincename) { |
| | | registerAddress.value = { |
| | | sheng: res.data.registerprovincename, |
| | | shi: res.data.registercityname, |
| | | qu: res.data.registertownname |
| | | }; |
| | | } |
| | | if (res.data.annexfilesList) { |
| | | attachments.value = res.data.annexfilesList; |
| | | attachments.value.forEach((item) => { |
| | | item.url = item.path; |
| | | item.name = item.fileName; |
| | | }); |
| | | attachments.value = res.data.annexfilesList.map((item) => ({ |
| | | url: item.path, |
| | | name: item.fileName, |
| | | type: item.type || "" |
| | | })); |
| | | } |
| | | common_vendor.index.__f__("log", "at pagesSub/case/CaseDetails.vue:1299", 3, "res"); |
| | | common_vendor.index.showToast({ |
| | | title: "数据加载成功", |
| | | icon: "success" |
| | | }); |
| | | } else { |
| | | throw new Error(res.msg || "数据加载失败"); |
| | | } |
| | | } catch (error) { |
| | | common_vendor.index.__f__("error", "at pagesSub/case/CaseDetails.vue:1309", "加载案例数据失败:", error); |
| | | common_vendor.index.showToast({ |
| | | title: "数据加载失败,请重试", |
| | | icon: "none" |
| | | }); |
| | | common_vendor.index.showToast({ title: "数据加载失败,请重试", icon: "none" }); |
| | | } finally { |
| | | loading.value = false; |
| | | } |
| | | }; |
| | | common_vendor.onMounted(() => { |
| | | updateCurrentTime(); |
| | | setInterval(updateCurrentTime, 1e3); |
| | | }); |
| | | common_vendor.onLoad(async (options) => { |
| | | if (options.id) { |
| | | currentId.value = options.id; |
| | | isEditMode.value = true; |
| | | await new Promise((resolve) => { |
| | | if (!dictLoading.value) |
| | | resolve(); |
| | | else { |
| | | const stopWatch = common_vendor.watch(dictLoading, (val) => { |
| | | if (!val) { |
| | | stopWatch(); |
| | | resolve(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | await loadCaseData(options.id); |
| | | } else { |
| | | isEditMode.value = false; |
| | | generateCaseNo(); |
| | | updateCurrentTime(); |
| | | } |
| | | if (!userStore.userInfo) |
| | | await userStore.refreshUserInfo(); |
| | | const user = userStore.userInfo; |
| | | if (user) { |
| | | if (!form.value.treatmenthospitalname) |
| | | form.value.treatmenthospitalname = user.orgName; |
| | | if (!form.value.toHospital) |
| | | form.value.toHospital = user.orgName; |
| | | if (!form.value.coordinatorName) |
| | | form.value.coordinatorName = user.coordinatorName; |
| | | if (!form.value.coordinatorNo) |
| | | form.value.coordinatorNo = user.coordinatorNo; |
| | | if (!form.value.infoName) |
| | | form.value.infoName = user.nickName; |
| | | if (!form.value.phone) |
| | | form.value.phone = user.phonenumber; |
| | | if (!form.value.reportername) |
| | | form.value.reportername = user.name; |
| | | if (!form.value.reporterno) |
| | | form.value.reporterno = user.userId; |
| | | } |
| | | updateCurrentTime(); |
| | | }); |
| | | return (_ctx, _cache) => { |
| | | return common_vendor.e({ |
| | | a: common_vendor.t(isEditMode.value ? "修改案例" : "上报案例"), |
| | | b: common_vendor.o(($event) => form.value.toHospital = $event), |
| | | b: common_vendor.o(($event) => form.value.caseNo = $event), |
| | | c: common_vendor.p({ |
| | | placeholder: "系统自动生成", |
| | | disabled: true, |
| | | disabledColor: disabledColor.value, |
| | | modelValue: form.value.caseNo |
| | | }), |
| | | d: common_vendor.o(($event) => form.value.toHospital = $event), |
| | | e: common_vendor.p({ |
| | | placeholder: "请输入上报医院", |
| | | maxlength: "100", |
| | | modelValue: form.value.toHospital |
| | | }), |
| | | d: common_vendor.o(($event) => form.value.deptName = $event), |
| | | e: common_vendor.p({ |
| | | f: common_vendor.o(($event) => form.value.deptName = $event), |
| | | g: common_vendor.p({ |
| | | placeholder: "请输入上报科室", |
| | | maxlength: "50", |
| | | modelValue: form.value.deptName |
| | | }), |
| | | f: common_vendor.o(($event) => form.value.name = $event), |
| | | g: common_vendor.p({ |
| | | h: common_vendor.o(($event) => form.value.name = $event), |
| | | i: common_vendor.p({ |
| | | type: "text", |
| | | placeholder: "请输入姓名", |
| | | maxlength: "20", |
| | | modelValue: form.value.name |
| | | }), |
| | | h: common_vendor.t(currentNation.value), |
| | | i: nationLabels.value, |
| | | j: nationIndex.value, |
| | | k: common_vendor.o(onNationChange), |
| | | l: common_vendor.o(($event) => form.value.nationality = $event), |
| | | m: common_vendor.p({ |
| | | j: common_vendor.t(currentNationText.value || "请选择民族"), |
| | | k: nationList.value, |
| | | l: nationIndex.value, |
| | | m: common_vendor.o(onNationChange), |
| | | n: common_vendor.o(($event) => form.value.nationality = $event), |
| | | o: common_vendor.p({ |
| | | type: "text", |
| | | placeholder: "请输入国籍", |
| | | modelValue: form.value.nationality |
| | | }), |
| | | n: common_vendor.t(currentIdCardType.value), |
| | | o: idCardTypeLabels.value, |
| | | p: idCardTypeIndex.value, |
| | | q: common_vendor.o(onIdCardTypeChange), |
| | | r: common_vendor.o(onIdCardChange), |
| | | s: common_vendor.o(($event) => form.value.idcardno = $event), |
| | | t: common_vendor.p({ |
| | | p: common_vendor.t(currentIdCardTypeText.value || "请选择证件类型"), |
| | | q: idCardTypeList.value, |
| | | r: idCardTypeIndex.value, |
| | | s: common_vendor.o(onIdCardTypeChange), |
| | | t: common_vendor.o(onIdCardChange), |
| | | v: common_vendor.o(($event) => form.value.idcardno = $event), |
| | | w: common_vendor.p({ |
| | | type: "idcard", |
| | | placeholder: "请输入证件号码", |
| | | maxlength: "18", |
| | | modelValue: form.value.idcardno |
| | | }), |
| | | v: idCardError.value |
| | | x: idCardError.value |
| | | }, idCardError.value ? { |
| | | w: common_vendor.t(idCardError.value) |
| | | y: common_vendor.t(idCardError.value) |
| | | } : {}, { |
| | | x: common_vendor.f(genderOptions.value, (gender, k0, i0) => { |
| | | z: common_vendor.f(genderOptions.value, (gender, k0, i0) => { |
| | | return { |
| | | a: common_vendor.t(gender.label), |
| | | b: gender.value, |
| | | c: form.value.sex === gender.value ? 1 : "", |
| | | c: form.value.sex == gender.value ? 1 : "", |
| | | d: common_vendor.o(($event) => form.value.sex = gender.value, gender.value) |
| | | }; |
| | | }), |
| | | y: common_vendor.t(form.value.birthday || "选择出生日期"), |
| | | z: form.value.birthday, |
| | | A: common_vendor.o(onBirthdayChange), |
| | | B: common_vendor.o(($event) => ageDisplay.value = $event), |
| | | C: common_vendor.p({ |
| | | placeholder: "自动计算", |
| | | disabled: true, |
| | | disabledColor: disabledColor.value, |
| | | border: "none", |
| | | modelValue: ageDisplay.value |
| | | }), |
| | | D: common_vendor.o(($event) => form.value.inpatientno = $event), |
| | | A: common_vendor.t(form.value.birthday || "选择出生日期"), |
| | | B: form.value.birthday, |
| | | C: common_vendor.o(onBirthdayChange), |
| | | D: common_vendor.o(($event) => form.value.age = $event), |
| | | E: common_vendor.p({ |
| | | placeholder: "请输入住院号", |
| | | placeholder: "输入或自动计算", |
| | | type: "number", |
| | | modelValue: form.value.age |
| | | }), |
| | | F: common_vendor.t(currentAgeUnitText.value || "单位"), |
| | | G: ageUnitList.value, |
| | | H: ageUnitIndex.value, |
| | | I: common_vendor.o(onAgeUnitChange), |
| | | J: common_vendor.o(($event) => form.value.phone = $event), |
| | | K: common_vendor.p({ |
| | | placeholder: "请输入联系电话", |
| | | type: "number", |
| | | modelValue: form.value.phone |
| | | }), |
| | | L: common_vendor.t(currentEducationText.value || "请选择学历"), |
| | | M: educationList.value, |
| | | N: educationIndex.value, |
| | | O: common_vendor.o(onEducationChange), |
| | | P: common_vendor.t(currentOccupationText.value || "请选择职业"), |
| | | Q: occupationList.value, |
| | | R: occupationIndex.value, |
| | | S: common_vendor.o(onOccupationChange), |
| | | T: common_vendor.o(($event) => form.value.nativeplace = $event), |
| | | U: common_vendor.p({ |
| | | placeholder: "请输入籍贯", |
| | | modelValue: form.value.nativeplace |
| | | }), |
| | | V: common_vendor.o(onResidenceChange), |
| | | W: common_vendor.o(($event) => residenceAddress.value = $event), |
| | | X: common_vendor.p({ |
| | | modelValue: residenceAddress.value |
| | | }), |
| | | Y: common_vendor.o(($event) => form.value.residenceaddress = $event), |
| | | Z: common_vendor.p({ |
| | | placeholder: "请输入详细地址", |
| | | border: "none", |
| | | modelValue: form.value.residenceaddress |
| | | }), |
| | | aa: common_vendor.o(onRegisterChange), |
| | | ab: common_vendor.o(($event) => registerAddress.value = $event), |
| | | ac: common_vendor.p({ |
| | | modelValue: registerAddress.value |
| | | }), |
| | | ad: common_vendor.o(($event) => form.value.registeraddress = $event), |
| | | ae: common_vendor.p({ |
| | | placeholder: "请输入详细地址", |
| | | border: "none", |
| | | modelValue: form.value.registeraddress |
| | | }), |
| | | af: common_vendor.o(($event) => form.value.inpatientno = $event), |
| | | ag: common_vendor.p({ |
| | | placeholder: "请输入住院号", |
| | | modelValue: form.value.inpatientno |
| | | }), |
| | | F: common_vendor.o(handleGcsBlur), |
| | | G: common_vendor.o(($event) => form.value.gcsScore = $event), |
| | | H: common_vendor.p({ |
| | | ah: common_vendor.o(handleGcsBlur), |
| | | ai: common_vendor.o(($event) => form.value.gcsScore = $event), |
| | | aj: common_vendor.p({ |
| | | type: "number", |
| | | maxlength: "1", |
| | | placeholder: "≤7", |
| | | border: "none", |
| | | modelValue: form.value.gcsScore |
| | | }), |
| | | I: common_vendor.o(($event) => form.value.diagnosisname = $event), |
| | | J: common_vendor.p({ |
| | | ak: common_vendor.o(($event) => form.value.diagnosisname = $event), |
| | | al: common_vendor.p({ |
| | | placeholder: "请输入疾病诊断名称", |
| | | count: true, |
| | | maxlength: "200", |
| | | customStyle: textareaStyle(!form.value.diagnosisname), |
| | | modelValue: form.value.diagnosisname |
| | | }), |
| | | K: common_vendor.f(bloodTypeOptions.value, (bloodType, k0, i0) => { |
| | | am: common_vendor.f(bloodTypeOptions, (bloodType, k0, i0) => { |
| | | return { |
| | | a: form.value.bloodType === bloodType.value ? 1 : "", |
| | | a: form.value.bloodType == bloodType.value ? 1 : "", |
| | | b: common_vendor.t(bloodType.label), |
| | | c: bloodType.value, |
| | | d: common_vendor.o(($event) => form.value.bloodType = bloodType.value, bloodType.value) |
| | | }; |
| | | }), |
| | | L: common_vendor.f(rhOptions.value, (rh, k0, i0) => { |
| | | an: common_vendor.f(rhOptions, (rh, k0, i0) => { |
| | | return { |
| | | a: form.value.rhYin === rh.value ? 1 : "", |
| | | a: form.value.rhYin == rh.value ? 1 : "", |
| | | b: common_vendor.t(rh.label), |
| | | c: rh.value, |
| | | d: common_vendor.o(($event) => form.value.rhYin = rh.value, rh.value) |
| | | }; |
| | | }), |
| | | M: common_vendor.f(infectiousDiseaselist.value, (disease, k0, i0) => { |
| | | ao: common_vendor.f(infectiousList.value, (disease, k0, i0) => { |
| | | return common_vendor.e({ |
| | | a: isInfectiousSelected(disease.value) |
| | | }, isInfectiousSelected(disease.value) ? {} : {}, { |
| | | b: isInfectiousSelected(disease.value) ? 1 : "", |
| | | c: common_vendor.t(disease.label), |
| | | d: disease.value, |
| | | e: common_vendor.o(($event) => toggleInfectious(disease.value), disease.value) |
| | | e: isInfectiousSelected(disease.value) ? 1 : "", |
| | | f: common_vendor.o(($event) => toggleInfectious(disease.value), disease.value) |
| | | }); |
| | | }), |
| | | N: common_vendor.o(($event) => form.value.infectiousOther = $event), |
| | | O: common_vendor.p({ |
| | | ap: common_vendor.o(($event) => form.value.infectiousOther = $event), |
| | | aq: common_vendor.p({ |
| | | placeholder: "请输入其他传染病", |
| | | border: "none", |
| | | modelValue: form.value.infectiousOther |
| | | }), |
| | | P: common_vendor.o(($event) => form.value.icuDoctor = $event), |
| | | Q: common_vendor.p({ |
| | | placeholder: "请输入ICU评估医生", |
| | | border: "none", |
| | | modelValue: form.value.icuDoctor |
| | | }), |
| | | R: common_vendor.o(($event) => form.value.icuDoctorPhone = $event), |
| | | S: common_vendor.p({ |
| | | placeholder: "请输入ICU医生电话", |
| | | type: "number", |
| | | border: "none", |
| | | modelValue: form.value.icuDoctorPhone |
| | | }), |
| | | T: common_vendor.o(($event) => form.value.infoName = $event), |
| | | U: common_vendor.p({ |
| | | ar: common_vendor.o(($event) => form.value.infoName = $event), |
| | | as: common_vendor.p({ |
| | | placeholder: "请输入信息员", |
| | | border: "none", |
| | | modelValue: form.value.infoName |
| | | }), |
| | | V: common_vendor.o(($event) => form.value.phone = $event), |
| | | W: common_vendor.p({ |
| | | placeholder: "请输入联系电话", |
| | | type: "number", |
| | | border: "none", |
| | | modelValue: form.value.phone |
| | | at: common_vendor.t(form.value.reporttime || "选择报告时间"), |
| | | av: common_vendor.o(($event) => showReportTimePicker.value = true), |
| | | aw: common_vendor.o(onReportTimeConfirm), |
| | | ax: common_vendor.o(($event) => showReportTimePicker.value = false), |
| | | ay: common_vendor.o(($event) => reportTimeValue.value = $event), |
| | | az: common_vendor.p({ |
| | | show: showReportTimePicker.value, |
| | | mode: "datetime", |
| | | title: "选择报告时间", |
| | | modelValue: reportTimeValue.value |
| | | }), |
| | | X: common_vendor.o(($event) => currentTime.value = $event), |
| | | Y: common_vendor.p({ |
| | | disabled: true, |
| | | disabledColor: disabledColor.value, |
| | | border: "none", |
| | | modelValue: currentTime.value |
| | | }), |
| | | Z: common_vendor.o(handleCancel), |
| | | aa: common_vendor.o(resetForm), |
| | | ab: common_vendor.t(loading.value ? "提交中..." : isEditMode.value ? "保存修改" : "提交上报"), |
| | | ac: common_vendor.o(handleSubmit), |
| | | ad: common_vendor.p({ |
| | | disabled: !isFormValid.value || loading.value |
| | | }), |
| | | ae: common_vendor.sr("attachment", "2006fde2-18"), |
| | | af: common_vendor.o(handleFilesUpdate), |
| | | ag: common_vendor.o(handleBaseUpload), |
| | | ah: common_vendor.o(handlePreview), |
| | | ai: common_vendor.p({ |
| | | aA: common_vendor.sr("attachment", "2006fde2-19"), |
| | | aB: common_vendor.o(handleFilesUpdate), |
| | | aC: common_vendor.o(handleBaseUpload), |
| | | aD: common_vendor.o(handlePreview), |
| | | aE: common_vendor.p({ |
| | | files: attachments.value, |
| | | readonly: isReadonly.value, |
| | | maxCount: 5 |
| | | }), |
| | | aj: common_vendor.sr("uPicker", "2006fde2-19"), |
| | | ak: common_vendor.o(onConfirm), |
| | | al: common_vendor.o(($event) => selectShow.value = false), |
| | | am: common_vendor.p({ |
| | | show: selectShow.value, |
| | | columns: pickerColumns.value, |
| | | keyName: "label", |
| | | title: "请选择科室" |
| | | aF: common_vendor.o(handleCancel), |
| | | aG: common_vendor.o(resetForm), |
| | | aH: common_vendor.t(loading.value ? "提交中..." : isEditMode.value ? "保存修改" : "提交上报"), |
| | | aI: common_vendor.o(handleSubmit), |
| | | aJ: common_vendor.p({ |
| | | disabled: !isFormValid.value || loading.value |
| | | }), |
| | | an: common_vendor.o(onHospitalConfirm), |
| | | ao: common_vendor.o(($event) => showHospitalPicker.value = false), |
| | | ap: common_vendor.p({ |
| | | show: showHospitalPicker.value, |
| | | columns: [hospitalOptions.value], |
| | | keyName: "label", |
| | | title: "请选择医疗机构" |
| | | }), |
| | | aq: common_vendor.o(onNationConfirm), |
| | | ar: common_vendor.o(($event) => showNationPicker.value = false), |
| | | as: common_vendor.p({ |
| | | show: showNationPicker.value, |
| | | columns: [nationOptions.value], |
| | | keyName: "label", |
| | | title: "请选择民族" |
| | | }), |
| | | at: common_vendor.o(onDateConfirm), |
| | | av: common_vendor.o(($event) => showDatePicker.value = false), |
| | | aw: common_vendor.o(($event) => birthdayValue.value = $event), |
| | | ax: common_vendor.p({ |
| | | show: showDatePicker.value, |
| | | mode: "date", |
| | | title: "选择出生日期", |
| | | modelValue: birthdayValue.value |
| | | }), |
| | | ay: common_vendor.o(onReporterConfirm), |
| | | az: common_vendor.o(($event) => showReporterPicker.value = false), |
| | | aA: common_vendor.p({ |
| | | show: showReporterPicker.value, |
| | | columns: [reporterOptions.value], |
| | | keyName: "label", |
| | | title: "请选择报告人" |
| | | }), |
| | | aB: common_vendor.p({ |
| | | show: loading.value, |
| | | text: "提交中..." |
| | | }), |
| | | aC: common_vendor.gei(_ctx, "") |
| | | aK: common_vendor.gei(_ctx, "") |
| | | }); |
| | | }; |
| | | } |