"use strict";
|
const common_vendor = require("../../common/vendor.js");
|
const utils_dict = require("../../utils/dict.js");
|
const stores_useHomeButton = require("../../stores/useHomeButton.js");
|
if (!Array) {
|
const _easycom_u_loading_icon2 = common_vendor.resolveComponent("u-loading-icon");
|
_easycom_u_loading_icon2();
|
}
|
const _easycom_u_loading_icon = () => "../../uni_modules/uview-plus/components/u-loading-icon/u-loading-icon.js";
|
if (!Math) {
|
_easycom_u_loading_icon();
|
}
|
const _sfc_main = {
|
__name: "CaseInfo",
|
setup(__props) {
|
const { showHomeButton, checkAutoLogin, goHome } = stores_useHomeButton.useHomeButton();
|
const dict = common_vendor.ref({});
|
const caseDetail = common_vendor.ref({});
|
const loading = common_vendor.ref(false);
|
const activeTab = common_vendor.ref("basic");
|
const caseId = common_vendor.ref(null);
|
const tabs = common_vendor.ref([
|
{ id: "basic", label: "基本信息" },
|
{ id: "medical", label: "医疗信息" },
|
{ id: "contact", label: "联系信息" },
|
{ id: "transport", label: "转运信息" }
|
]);
|
const hasTransport = common_vendor.computed(() => {
|
return caseDetail.value.serviceTransport;
|
});
|
common_vendor.computed(() => {
|
return caseDetail.value.reportStatus === "1" || caseDetail.value.reportStatus === "2" || caseDetail.value.reportStatus === "4";
|
});
|
common_vendor.onLoad(async (options) => {
|
checkAutoLogin(options);
|
if (options.id) {
|
caseId.value = options.id;
|
dict.value = await utils_dict.useDict(
|
"sys_user_sex",
|
"sys_BloodType",
|
"sys_IDType",
|
"sys_AgeUnit"
|
);
|
await loadCaseDetail(options.id);
|
}
|
});
|
const loadCaseDetail = async (id) => {
|
loading.value = true;
|
try {
|
const res = await common_vendor.index.$uapi.get(
|
`/project/donatebaseinforeport/getInfo/${id}`
|
);
|
if (res.data) {
|
caseDetail.value = res.data;
|
} else {
|
throw new Error(res.msg || "数据加载失败");
|
}
|
} catch (error) {
|
common_vendor.index.__f__("error", "at pages/case/CaseInfo.vue:473", "加载案例详情失败:", error);
|
common_vendor.index.showToast({
|
title: "数据加载失败,请重试",
|
icon: "none"
|
});
|
} finally {
|
loading.value = false;
|
}
|
};
|
const getStatusClass = (status) => {
|
const map = {
|
1: "reported",
|
2: "read",
|
3: "agreed",
|
4: "rejected"
|
};
|
return map[status] || "reported";
|
};
|
const getStatusText = (status) => {
|
const map = {
|
1: "已上报",
|
2: "已阅读",
|
3: "已同意",
|
4: "已驳回"
|
};
|
return map[status] || "已上报";
|
};
|
const getGenderText = (gender) => {
|
if (!dict.value.sys_user_sex)
|
return gender;
|
const genderItem = dict.value.sys_user_sex.find(
|
(item) => item.dictValue === gender
|
);
|
return genderItem ? genderItem.dictLabel : gender;
|
};
|
const getBloodTypeText = (bloodType) => {
|
if (!dict.value.sys_BloodType)
|
return bloodType;
|
const bloodTypeItem = dict.value.sys_BloodType.find(
|
(item) => item.dictValue === bloodType
|
);
|
return bloodTypeItem ? bloodTypeItem.dictLabel : bloodType;
|
};
|
const getAgeUnitText = (ageunit) => {
|
if (!ageunit)
|
return "";
|
const unitMap = {
|
year: "岁",
|
month: "个月",
|
day: "天"
|
};
|
return unitMap[ageunit] || ageunit;
|
};
|
const getFullRegisterAddress = () => {
|
const {
|
registerprovincename,
|
registercityname,
|
registertownname,
|
registercommunityname,
|
registeraddress
|
} = caseDetail.value;
|
const parts = [
|
registerprovincename,
|
registercityname,
|
registertownname,
|
registercommunityname,
|
registeraddress
|
];
|
return parts.filter((part) => part).join("");
|
};
|
const getFullResidenceAddress = () => {
|
const {
|
residenceprovincename,
|
residencecountyname,
|
residencetownname,
|
residencecommunityname,
|
residenceaddress
|
} = caseDetail.value;
|
const parts = [
|
residenceprovincename,
|
residencecountyname,
|
residencetownname,
|
residencecommunityname,
|
residenceaddress
|
];
|
return parts.filter((part) => part).join("");
|
};
|
const getTransportStatusText = (status) => {
|
const map = {
|
1: "待转运",
|
2: "转运中",
|
3: "转运完成",
|
4: "转运取消",
|
5: "暂存"
|
};
|
return map[status] || "未知";
|
};
|
const getTransportStatusClass = (status) => {
|
const map = {
|
1: "pending",
|
2: "transporting",
|
3: "completed",
|
4: "cancelled",
|
5: "draft"
|
};
|
return map[status] || "pending";
|
};
|
const formatDateTime = (dateTime) => {
|
if (!dateTime)
|
return "";
|
return dateTime.replace("T", " ").substring(0, 16);
|
};
|
const switchTab = (tabId) => {
|
activeTab.value = tabId;
|
};
|
const goBack = () => {
|
if (showHomeButton) {
|
common_vendor.index.switchTab({ url: "/pages/index/index" });
|
} else {
|
common_vendor.index.navigateBack();
|
}
|
};
|
const handleEdit = () => {
|
common_vendor.index.navigateTo({
|
url: `/pages/case/CaseDetails?id=${caseId.value}&edit=true`
|
});
|
};
|
const createTransport = () => {
|
if (caseDetail.value.reportStatus !== "3") {
|
common_vendor.index.showToast({ title: "案例需先审批同意", icon: "none" });
|
return;
|
}
|
common_vendor.index.navigateTo({
|
url: `/pages/transport/create?caseId=${caseId.value}&caseNo=${caseDetail.value.caseNo}`
|
});
|
};
|
const viewTransportDetail = () => {
|
if (hasTransport.value && caseDetail.value.serviceTransport[0]) {
|
const transport = caseDetail.value.serviceTransport[0];
|
common_vendor.index.navigateTo({
|
url: `/pages/transport/detail?id=${transport.id}`
|
});
|
}
|
};
|
return (_ctx, _cache) => {
|
return common_vendor.e({
|
a: caseDetail.value.hospitalLogo,
|
b: common_vendor.t(caseDetail.value.treatmenthospitalname || "未填写治疗医院"),
|
c: common_vendor.t(caseDetail.value.donorNo ? "器官捐献案例" : "案例详情"),
|
d: common_vendor.t(getStatusText(caseDetail.value.reportStatus)),
|
e: common_vendor.n(getStatusClass(caseDetail.value.reportStatus)),
|
f: common_vendor.t(caseDetail.value.caseNo || "未生成"),
|
g: common_vendor.t(formatDateTime(caseDetail.value.reporttime)),
|
h: common_vendor.f(tabs.value, (tab, k0, i0) => {
|
return {
|
a: common_vendor.t(tab.label),
|
b: tab.id,
|
c: activeTab.value === tab.id ? 1 : "",
|
d: common_vendor.o(($event) => switchTab(tab.id), tab.id)
|
};
|
}),
|
i: activeTab.value === "basic"
|
}, activeTab.value === "basic" ? {
|
j: common_vendor.t(caseDetail.value.name || "未填写"),
|
k: common_vendor.t(getGenderText(caseDetail.value.sex)),
|
l: common_vendor.t(caseDetail.value.age || "0"),
|
m: common_vendor.t(getAgeUnitText(caseDetail.value.ageunit)),
|
n: common_vendor.t(caseDetail.value.idcardno || "未填写"),
|
o: common_vendor.t(getBloodTypeText(caseDetail.value.bloodType)),
|
p: common_vendor.t(caseDetail.value.nation || "未填写"),
|
q: common_vendor.t(caseDetail.value.nationality || "未填写"),
|
r: common_vendor.t(caseDetail.value.nativeplace || "未填写"),
|
s: common_vendor.t(caseDetail.value.education || "未填写"),
|
t: common_vendor.t(caseDetail.value.occupation || "未填写"),
|
v: common_vendor.t(getFullRegisterAddress() || "未填写"),
|
w: common_vendor.t(getFullResidenceAddress() || "未填写")
|
} : {}, {
|
x: activeTab.value === "medical"
|
}, activeTab.value === "medical" ? {
|
y: common_vendor.t(caseDetail.value.diagnosisname || "未填写"),
|
z: common_vendor.t(caseDetail.value.illnessoverview || "未填写"),
|
A: common_vendor.t(caseDetail.value.patientstate || "未填写"),
|
B: common_vendor.t(caseDetail.value.inpatientno || "未填写"),
|
C: common_vendor.t(caseDetail.value.gcsScore || "未评估"),
|
D: common_vendor.t(caseDetail.value.infectious || "无"),
|
E: common_vendor.t(caseDetail.value.infectiousOther ? `(${caseDetail.value.infectiousOther})` : ""),
|
F: common_vendor.t(caseDetail.value.rhYin === "1" ? "是" : "否")
|
} : {}, {
|
G: activeTab.value === "contact"
|
}, activeTab.value === "contact" ? {
|
H: common_vendor.t(caseDetail.value.treatmenthospitalname || "未填写"),
|
I: common_vendor.t(caseDetail.value.treatmentdeptname || "未填写"),
|
J: common_vendor.t(caseDetail.value.toHospital || "未填写"),
|
K: common_vendor.t(caseDetail.value.phone || "未填写"),
|
L: common_vendor.t(caseDetail.value.infoName || "未填写"),
|
M: common_vendor.t(caseDetail.value.infoNo || "未填写"),
|
N: common_vendor.t(caseDetail.value.icuDoctor || "未填写"),
|
O: common_vendor.t(caseDetail.value.icuDoctorPhone || "未填写"),
|
P: common_vendor.t(caseDetail.value.coordinatorName || "未填写"),
|
Q: common_vendor.t(caseDetail.value.coordinatorNo || "未填写")
|
} : {}, {
|
R: activeTab.value === "transport"
|
}, activeTab.value === "transport" ? common_vendor.e({
|
S: caseDetail.value.reportStatus === "3"
|
}, caseDetail.value.reportStatus === "3" ? common_vendor.e({
|
T: caseDetail.value.isTransport === "2" && !hasTransport.value
|
}, caseDetail.value.isTransport === "2" && !hasTransport.value ? {
|
U: common_vendor.o(createTransport)
|
} : {}, {
|
V: hasTransport.value
|
}, hasTransport.value ? {
|
W: common_vendor.o(viewTransportDetail)
|
} : {}) : {}, {
|
X: common_vendor.t(caseDetail.value.isTransport === "2" ? "需要" : "不需要"),
|
Y: hasTransport.value && caseDetail.value.serviceTransport
|
}, hasTransport.value && caseDetail.value.serviceTransport ? {
|
Z: common_vendor.f(caseDetail.value.serviceTransport, (transport, k0, i0) => {
|
return common_vendor.e({
|
a: common_vendor.t(transport.reportId || transport.id),
|
b: common_vendor.t(transport.transportStartPlace),
|
c: common_vendor.t(formatDateTime(transport.transportStartTime)),
|
d: common_vendor.t(transport.contactPerson),
|
e: common_vendor.t(getTransportStatusText(transport.transitStatus)),
|
f: common_vendor.n(getTransportStatusClass(transport.transitStatus)),
|
g: transport.doctor
|
}, transport.doctor ? {
|
h: common_vendor.t(transport.doctor)
|
} : {}, {
|
i: transport.nurse
|
}, transport.nurse ? {
|
j: common_vendor.t(transport.nurse)
|
} : {}, {
|
k: transport.driver
|
}, transport.driver ? {
|
l: common_vendor.t(transport.driver)
|
} : {}, {
|
m: transport.icuDoctor
|
}, transport.icuDoctor ? {
|
n: common_vendor.t(transport.icuDoctor)
|
} : {}, {
|
o: transport.id
|
});
|
})
|
} : caseDetail.value.isTransport === "2" ? common_vendor.e({
|
ab: caseDetail.value.reportStatus !== "3"
|
}, caseDetail.value.reportStatus !== "3" ? {} : {}) : {}, {
|
aa: caseDetail.value.isTransport === "2"
|
}) : {}, {
|
ac: common_vendor.o(goBack),
|
ad: caseDetail.value.reportStatus === "1" || caseDetail.value.reportStatus === "2"
|
}, caseDetail.value.reportStatus === "1" || caseDetail.value.reportStatus === "2" ? {
|
ae: common_vendor.o(handleEdit)
|
} : {}, {
|
af: loading.value
|
}, loading.value ? {
|
ag: common_vendor.p({
|
show: loading.value,
|
text: "加载中..."
|
})
|
} : {}, {
|
ah: common_vendor.gei(_ctx, "")
|
});
|
};
|
}
|
};
|
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-e2759137"]]);
|
wx.createPage(MiniProgramPage);
|
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/case/CaseInfo.js.map
|