"use strict"; const common_vendor = require("../../common/vendor.js"); const stores_user = require("../../stores/user.js"); const stores_useHomeButton = require("../../stores/useHomeButton.js"); if (!Array) { const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); const _easycom_u_radio2 = common_vendor.resolveComponent("u-radio"); const _easycom_u_radio_group2 = common_vendor.resolveComponent("u-radio-group"); const _easycom_u__textarea2 = common_vendor.resolveComponent("u--textarea"); const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); const _easycom_u_popup2 = common_vendor.resolveComponent("u-popup"); const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons"); const _easycom_u_modal2 = common_vendor.resolveComponent("u-modal"); (_easycom_up_icon2 + _easycom_u_radio2 + _easycom_u_radio_group2 + _easycom_u__textarea2 + _easycom_u_icon2 + _easycom_u_popup2 + _easycom_uni_icons2 + _easycom_u_modal2)(); } const _easycom_up_icon = () => "../../uni_modules/uview-plus/components/u-icon/u-icon.js"; const _easycom_u_radio = () => "../../uni_modules/uview-plus/components/u-radio/u-radio.js"; const _easycom_u_radio_group = () => "../../uni_modules/uview-plus/components/u-radio-group/u-radio-group.js"; const _easycom_u__textarea = () => "../../uni_modules/uview-plus/components/u--textarea/u--textarea.js"; const _easycom_u_icon = () => "../../uni_modules/uview-plus/components/u-icon/u-icon.js"; const _easycom_u_popup = () => "../../uni_modules/uview-plus/components/u-popup/u-popup.js"; const _easycom_uni_icons = () => "../../node-modules/@dcloudio/uni-ui/lib/uni-icons/uni-icons.js"; const _easycom_u_modal = () => "../../uni_modules/uview-plus/components/u-modal/u-modal.js"; if (!Math) { (_easycom_up_icon + _easycom_u_radio + _easycom_u_radio_group + _easycom_u__textarea + _easycom_u_icon + _easycom_u_popup + _easycom_uni_icons + _easycom_u_modal)(); } const canvasWidth = 650; const canvasHeight = 300; const _sfc_main = { __name: "ethicalInfo", setup(__props) { const { showHomeButton, checkAutoLogin, goHome } = stores_useHomeButton.useHomeButton(); const userStore = stores_user.useUserStore(); common_vendor.ref({}); const caseInfo = common_vendor.ref({ hospitalNo: "", donorName: "", gender: "", age: "", diagnosis: "", receiveStatus: "0", endtime: "" }); const id = common_vendor.ref(null); const fcid = common_vendor.ref(null); const materials = common_vendor.ref([]); const form = common_vendor.ref({ expertconclusion: "", // 专家结论 expertopinion: "" // 专家意见 }); const expertInfo = common_vendor.ref({ name: "", title: "" }); const showSubmitModal = common_vendor.ref(false); const modalTitle = common_vendor.ref("确认提交"); const modalContent = common_vendor.ref("确定要提交审查意见吗?提交后将无法修改。"); const currentTime = common_vendor.computed(() => { return (/* @__PURE__ */ new Date()).toLocaleString("zh-CN", { year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit" }); }); const conclusionOptions = common_vendor.ref([ { label: "同意", value: "1" }, // 对应receiveStatus 5-完成 { label: "驳回", value: "2" } // 对应receiveStatus 6-驳回 ]); const showSignaturePanel = common_vendor.ref(false); const signatureData = common_vendor.reactive({ signatureUrl: "", signatureTime: "", fileName: "", serverData: null }); let ctx = null; let isDrawing = false; let lastX = 0; let lastY = 0; let strokeHistory = []; const tempSignatureData = common_vendor.ref(""); const canUndo = common_vendor.computed(() => strokeHistory.length > 0); const hasSignature = common_vendor.computed(() => tempSignatureData.value !== ""); const uploadConfig = common_vendor.reactive({ uploadUrl: "/api/common/upload", extraParams: { caseNo: "", expertId: "", expertName: "", type: "ethics_review_signature", bizType: "expert_review" } }); const showSaveBtn = common_vendor.ref(true); const showSubmitBtn = common_vendor.ref(true); const submitBtnText = common_vendor.ref("提交审查"); const getStatusText = (status) => { const statusMap = { 0: "待接收", 1: "未接收", 2: "已接收", 3: "超时", 4: "中止", 5: "完成", 6: "驳回" }; return statusMap[status] || "未知状态"; }; const getStatusClass = (status) => { const classMap = { 0: "pending", 1: "pending", 2: "pending", 3: "submitted", 4: "submitted", 5: "success", 6: "error" }; return classMap[status] || "pending"; }; const isTimeout = common_vendor.computed(() => { return caseInfo.value.receiveStatus == "3"; }); const isReadonly = common_vendor.computed(() => { return isTimeout.value; }); common_vendor.computed(() => { if (isReadonly.value) return false; return form.value.expertconclusion !== "" && form.value.expertopinion.trim().length > 0 && signatureData.signatureUrl !== "" && signatureData.signatureUrl.startsWith("http"); }); common_vendor.onLoad(async (options) => { checkAutoLogin(options); id.value = options.id; fcid.value = options.fcid; if (fcid.value) { await loadCaseData(fcid.value); } }); common_vendor.onShow(() => { const userInfo = common_vendor.index.getStorageSync("userInfo"); if (userInfo) { expertInfo.value.name = userInfo.nickName || userInfo.userName || ""; } }); const loadCaseData = async (id2) => { try { common_vendor.index.showLoading({ title: "加载中..." }); const params = { fcid: id2, pageNum: 1, pageSize: 1 }; const res = await common_vendor.index.$uapi.get( `/project/ethicalreviewopinions/listnew`, params ); if (res.code == 200 && res.rows && res.rows.length > 0) { const data = res.rows[0]; common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:474", "加载的审查数据:", data); caseInfo.value = { ...caseInfo.value, inpatientno: data.inpatientno, name: data.name, sex: data.sex, age: data.age, ageunit: data.ageunit, expertType: data.expertType, diagnosisname: data.diagnosisname, receiveStatus: data.receiveStatus || "0", endtime: data.endtime || "", caseNo: data.caseNo || "" }; common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:490", data.receiveStatus, "data.receiveStatus"); common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:492", caseInfo.value.receiveStatus, "caseInfo.value"); if (data.expertconclusion) { form.value.expertconclusion = data.expertconclusion.toString(); } if (data.expertopinion) { form.value.expertopinion = data.expertopinion; } if (data.expertname) { expertInfo.value.name = data.expertname; } else { const userInfo = common_vendor.index.getStorageSync("userInfo"); if (userInfo) { expertInfo.value.name = userInfo.nickName || userInfo.userName || ""; } } if (data.sigin) { if (data.sigin.startsWith("http")) { signatureData.signatureUrl = data.sigin; } else { signatureData.signatureUrl = `/api${data.sigin.startsWith("/") ? "" : "/"}${data.sigin}`; } signatureData.signatureTime = data.conclusiontime || ""; } if (data.filePatch) { parseAnnexFiles(data.filePatch); } checkTimeoutStatus(data); updateButtonStatus(data.receiveStatus); uploadConfig.extraParams.caseNo = data.caseNo || ""; uploadConfig.extraParams.expertName = expertInfo.value.name; } else { common_vendor.index.showToast({ title: res.msg || "未找到审查数据", icon: "none" }); } } catch (error) { if (error.message == "未登录") { return; } common_vendor.index.showToast({ title: "加载失败", icon: "none" }); } finally { common_vendor.index.hideLoading(); } }; const checkTimeoutStatus = (data) => { if (data.receiveStatus == "3") { return; } }; const parseAnnexFiles = (filePatch) => { if (!filePatch) return; try { let fileList = []; if (filePatch.startsWith("[") && filePatch.endsWith("]")) { const cleanJson = filePatch.replace(/\\"/g, '"'); fileList = JSON.parse(cleanJson); } else if (filePatch.includes("fileName")) { fileList = JSON.parse(filePatch); } else { const oldFileList = filePatch.split(";").filter((item) => item.trim()); fileList = oldFileList.map((file) => ({ fileName: file.split("/").pop() || `附件`, path: file, fileUrl: file })); } materials.value = fileList.map((file, index) => { const fileName = file.fileName || `附件${index + 1}`; const fileUrl = file.fileUrl || file.path || file.url || ""; const ext = fileName.split(".").pop().toLowerCase(); let icon = "file-text"; let color = "#909399"; if (["jpg", "jpeg", "png", "gif", "bmp", "webp"].includes(ext)) { icon = "photo"; color = "#fa8c16"; } else if (["doc", "docx"].includes(ext)) { icon = "file-text"; color = "#1890ff"; } else if (["xls", "xlsx", "csv"].includes(ext)) { icon = "file-text"; color = "#52c41a"; } else if (["pdf"].includes(ext)) { icon = "file-text"; color = "#f56c6c"; } else if (["txt", "text"].includes(ext)) { icon = "file-text"; color = "#909399"; } else if (["zip", "rar", "7z"].includes(ext)) { icon = "folder"; color = "#722ed1"; } return { id: file.infoid || index + 1, name: fileName, icon, color, size: "--", url: fileUrl, type: ext, createTime: file.createTime || "" }; }); } catch (error) { common_vendor.index.__f__("error", "at pages/ethicalReview/ethicalInfo.vue:643", "解析附件失败:", error, filePatch); const fileList = filePatch.split(";").filter((item) => item.trim()); materials.value = fileList.map((file, index) => { const fileName = file.split("/").pop() || `附件${index + 1}`; const ext = fileName.split(".").pop().toLowerCase(); let icon = "file-text"; let color = "#909399"; if (["jpg", "jpeg", "png", "gif", "bmp"].includes(ext)) { icon = "photo"; color = "#fa8c16"; } else if (["doc", "docx"].includes(ext)) { icon = "file-text"; color = "#1890ff"; } else if (["xls", "xlsx"].includes(ext)) { icon = "file-text"; color = "#52c41a"; } else if (["pdf"].includes(ext)) { icon = "file-text"; color = "#f56c6c"; } return { id: index + 1, name: fileName, icon, color, size: "--", url: file }; }); } }; const updateButtonStatus = (status) => { const statusNum = status; switch (statusNum) { case "3": case "4": case "5": case "6": showSaveBtn.value = false; showSubmitBtn.value = false; break; default: showSaveBtn.value = true; showSubmitBtn.value = true; submitBtnText.value = "提交审查"; } }; const openSignaturePanel = () => { if (isReadonly.value) { common_vendor.index.showToast({ title: "当前任务已超时,不可操作", icon: "none" }); return; } showSignaturePanel.value = true; common_vendor.nextTick$1(() => { initCanvas(); }); }; const closeSignaturePanel = () => { showSignaturePanel.value = false; clearCanvas(); }; const initCanvas = () => { ctx = common_vendor.index.createCanvasContext("signatureCanvas"); clearCanvas(); }; const clearCanvas = () => { if (!ctx) return; ctx.clearRect(0, 0, canvasWidth, canvasHeight); ctx.setStrokeStyle("#000000"); ctx.setLineWidth(3); ctx.setLineCap("round"); ctx.setLineJoin("round"); ctx.draw(); strokeHistory = []; tempSignatureData.value = ""; }; const undoLastStroke = () => { if (strokeHistory.length == 0) return; strokeHistory.pop(); ctx.clearRect(0, 0, canvasWidth, canvasHeight); ctx.setStrokeStyle("#000000"); ctx.setLineWidth(3); ctx.setLineCap("round"); ctx.setLineJoin("round"); strokeHistory.forEach((stroke) => { ctx.beginPath(); ctx.moveTo(stroke.startX, stroke.startY); ctx.lineTo(stroke.endX, stroke.endY); ctx.stroke(); }); ctx.draw(); if (strokeHistory.length == 0) { tempSignatureData.value = ""; } else { getCanvasImage(); } }; const onTouchStart = (e) => { if (isReadonly.value) return; isDrawing = true; const touch = e.touches[0]; lastX = touch.x; lastY = touch.y; ctx.beginPath(); ctx.moveTo(lastX, lastY); }; const onTouchMove = (e) => { if (!isDrawing || isReadonly.value) return; const touch = e.touches[0]; const currentX = touch.x; const currentY = touch.y; ctx.lineTo(currentX, currentY); ctx.stroke(); ctx.draw(true); strokeHistory.push({ startX: lastX, startY: lastY, endX: currentX, endY: currentY }); lastX = currentX; lastY = currentY; }; const onTouchEnd = () => { if (!isDrawing) return; isDrawing = false; ctx.closePath(); getCanvasImage(); }; const getCanvasImage = () => { common_vendor.index.canvasToTempFilePath({ canvasId: "signatureCanvas", success: (res) => { tempSignatureData.value = res.tempFilePath; }, fail: (err) => { common_vendor.index.__f__("error", "at pages/ethicalReview/ethicalInfo.vue:826", "获取画布图片失败:", err); } }); }; const confirmSignature = async () => { if (!tempSignatureData.value) { common_vendor.index.showToast({ title: "请先签名", icon: "none" }); return; } try { common_vendor.index.showLoading({ title: "保存签名中..." }); const uploadResult = await uploadSignature(tempSignatureData.value); if (uploadResult) { signatureData.signatureUrl = uploadResult.url; signatureData.signatureTime = (/* @__PURE__ */ new Date()).toLocaleString("zh-CN"); signatureData.fileName = uploadResult.originalFilename || `signature_${Date.now()}.png`; signatureData.serverData = uploadResult; saveSignatureToLocal(uploadResult); common_vendor.index.hideLoading(); common_vendor.index.showToast({ title: "签名保存成功", icon: "success" }); showSignaturePanel.value = false; clearCanvas(); } else { common_vendor.index.hideLoading(); common_vendor.index.showToast({ title: "签名上传失败", icon: "none" }); } } catch (error) { common_vendor.index.__f__("error", "at pages/ethicalReview/ethicalInfo.vue:874", "签名上传失败:", error); common_vendor.index.hideLoading(); common_vendor.index.showToast({ title: "签名上传失败", icon: "none" }); } }; const uploadSignature = (filePath) => { return new Promise((resolve, reject) => { const token = common_vendor.index.getStorageSync("token"); const userInfo = common_vendor.index.getStorageSync("userInfo"); const expertName = (userInfo == null ? void 0 : userInfo.nickName) || (userInfo == null ? void 0 : userInfo.userName) || expertInfo.value.name; common_vendor.index.uploadFile({ url: "/api/common/upload", filePath, name: "file", header: { Authorization: `Bearer ${token}` }, formData: { // 添加额外参数,参考附件组件 bizType: "expert_review_signature", caseNo: caseInfo.value.caseNo || "", expertName, uploadType: "signature" }, success: (res) => { if (res.statusCode == 200) { const data = JSON.parse(res.data); common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:910", "签名上传成功:", data); if (data.code == 200) { resolve({ url: data.url, fileName: data.fileName, newFileName: data.newFileName, originalFilename: data.originalFilename, filePath: data.filePath || data.fileName, size: data.size }); } else { reject(new Error(data.msg || "上传失败")); } } else { reject(new Error(`上传失败,状态码: ${res.statusCode}`)); } }, fail: (err) => { reject(err); } }); }); }; const saveSignatureToLocal = (uploadData) => { try { const signatureInfo = { signatureUrl: signatureData.signatureUrl, signatureTime: signatureData.signatureTime, fileName: signatureData.fileName, uploadData, // 保存上传返回的数据 caseNo: caseInfo.value.caseNo, timestamp: Date.now() }; common_vendor.index.setStorageSync("expert_review_signature", signatureInfo); } catch (error) { common_vendor.index.__f__("error", "at pages/ethicalReview/ethicalInfo.vue:949", "保存签名到本地失败:", error); } }; const removeSignature = () => { if (isReadonly.value) { common_vendor.index.showToast({ title: "当前任务已超时,不可操作", icon: "none" }); return; } common_vendor.index.showModal({ title: "提示", content: "确定要删除签名吗?", success: (res) => { if (res.confirm) { signatureData.signatureUrl = ""; signatureData.signatureTime = ""; signatureData.fileName = ""; signatureData.serverData = null; common_vendor.index.removeStorageSync("expert_review_signature"); } } }); }; const previewSignature = () => { if (signatureData.signatureUrl) { let previewUrl = signatureData.signatureUrl; if (!previewUrl.startsWith("http")) { previewUrl = `${(userStore == null ? void 0 : userStore.baseUrlHt) || ""}${previewUrl}`; } common_vendor.index.previewImage({ urls: [previewUrl] }); } }; const previewMaterial = (material) => { if (material.url) { common_vendor.index.showLoading({ title: "加载中..." }); const fileExt = material.type || material.url.split(".").pop().toLowerCase(); if (["jpg", "jpeg", "png", "gif", "bmp", "webp"].includes(fileExt)) { common_vendor.index.previewImage({ urls: [material.url], current: 0, success: () => { common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:1011", "图片预览成功"); }, fail: (err) => { common_vendor.index.__f__("error", "at pages/ethicalReview/ethicalInfo.vue:1014", "图片预览失败:", err); common_vendor.index.showToast({ title: "图片加载失败", icon: "none" }); }, complete: () => { common_vendor.index.hideLoading(); } }); } else if (["pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt"].includes( fileExt )) { common_vendor.index.downloadFile({ url: material.url, success: (res) => { if (res.statusCode == 200) { const filePath = res.tempFilePath; common_vendor.index.openDocument({ filePath, showMenu: true, fileType: fileExt == "pdf" ? "pdf" : "", success: () => { common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:1040", "打开文档成功"); }, fail: (err) => { common_vendor.index.__f__("error", "at pages/ethicalReview/ethicalInfo.vue:1043", "打开文档失败:", err); common_vendor.index.showToast({ title: "无法打开该文件", icon: "none" }); } }); } }, fail: (err) => { common_vendor.index.__f__("error", "at pages/ethicalReview/ethicalInfo.vue:1053", "下载文件失败:", err); common_vendor.index.showToast({ title: "文件下载失败", icon: "none" }); }, complete: () => { common_vendor.index.hideLoading(); } }); } else { common_vendor.index.showToast({ title: `暂不支持预览${fileExt}格式文件`, icon: "none" }); common_vendor.index.hideLoading(); } } else { common_vendor.index.showToast({ title: `预览: ${material.name}`, icon: "none" }); } }; const onConclusionChange = (value) => { common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:1080", "选中结论:", value); }; const saveDraft = async () => { if (isReadonly.value) { common_vendor.index.showToast({ title: "当前任务已超时,不可操作", icon: "none" }); return; } if (!validateForm(true)) return; try { common_vendor.index.showLoading({ title: "保存中..." }); const submitData = { fcid: fcid.value, expertconclusion: form.value.expertconclusion, expertopinion: form.value.expertopinion, sigin: signatureData.signatureUrl, // 使用上传后的完整路径 receiveStatus: "2", // 已接收状态 conclusiontime: common_vendor.dayjs().format("YYYY-MM-DD HH:mm:ss") }; const res = await common_vendor.index.$uapi.post( "/project/ethicalreviewopinions/edit", submitData ); if (res.code == 200) { common_vendor.index.showToast({ title: "保存成功", icon: "success" }); caseInfo.value.receiveStatus = "2"; updateButtonStatus("2"); } else { common_vendor.index.showToast({ title: res.msg || "保存失败", icon: "none" }); } } catch (error) { common_vendor.index.__f__("error", "at pages/ethicalReview/ethicalInfo.vue:1127", "保存草稿失败:", error); common_vendor.index.showToast({ title: "保存失败", icon: "none" }); } finally { common_vendor.index.hideLoading(); } }; const submitReview = () => { common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:1139", 1); if (isReadonly.value) { common_vendor.index.showToast({ title: "当前任务已超时,不可操作", icon: "none" }); return; } common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:1148", 2); if (!validateForm()) return; modalTitle.value = "确认提交"; modalContent.value = "确定要提交审查意见吗?提交后将无法修改。"; showSubmitModal.value = true; }; const confirmSubmit = async () => { try { common_vendor.index.showLoading({ title: "提交中..." }); common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:1161", caseInfo.value, "form.value"); const submitData = { id: fcid.value, expertconclusion: form.value.expertconclusion, expertopinion: form.value.expertopinion, sigin: signatureData.signatureUrl, expertType: caseInfo.value.expertType, // 根据结论设置状态 receiveStatus: form.value.expertconclusion == "1" ? "5" : "6", // 5-完成, 6-驳回 conclusiontime: common_vendor.dayjs().format("YYYY-MM-DD HH:mm:ss") }; const res = await common_vendor.index.$uapi.post( "/project/ethicalreviewopinions/edit", submitData ); if (res.code == 200) { common_vendor.index.showToast({ title: "提交成功", icon: "success", duration: 2e3 }); caseInfo.value.receiveStatus = submitData.receiveStatus; updateButtonStatus(submitData.receiveStatus); showSubmitModal.value = false; setTimeout(() => { common_vendor.index.navigateBack(); }, 1500); } else { common_vendor.index.showToast({ title: res.msg || "提交失败", icon: "none" }); } } catch (error) { common_vendor.index.__f__("error", "at pages/ethicalReview/ethicalInfo.vue:1202", "提交失败:", error); common_vendor.index.showToast({ title: "提交失败", icon: "none" }); } finally { common_vendor.index.hideLoading(); } }; const validateForm = (isDraft = false) => { if (!form.value.expertconclusion && !isDraft) { common_vendor.index.showToast({ title: "请选择审查结论", icon: "none" }); return false; } common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:1221", 3); if (!form.value.expertopinion.trim() && !isDraft) { common_vendor.index.showToast({ title: "请输入审查意见", icon: "none" }); return false; } common_vendor.index.__f__("log", "at pages/ethicalReview/ethicalInfo.vue:1230", signatureData, "signatureData"); if (!signatureData.signatureUrl && !isDraft) { common_vendor.index.showToast({ title: "请进行手写签名", icon: "none" }); return false; } return true; }; return (_ctx, _cache) => { return common_vendor.e({ a: common_vendor.t(getStatusText(caseInfo.value.receiveStatus)), b: common_vendor.n(getStatusClass(caseInfo.value.receiveStatus)), c: common_vendor.p({ name: "file-text", size: "14", color: "#909399" }), d: common_vendor.t(caseInfo.value.inpatientno || "--"), e: common_vendor.p({ name: "account", size: "14", color: "#909399" }), f: common_vendor.t(caseInfo.value.name || "--"), g: common_vendor.p({ name: "man", size: "14", color: "#909399" }), h: common_vendor.t(caseInfo.value.sex || "--"), i: common_vendor.t(caseInfo.value.age || "--"), j: common_vendor.t(caseInfo.value.ageunit || "岁"), k: common_vendor.p({ name: "heart", size: "14", color: "#909399" }), l: common_vendor.t(caseInfo.value.diagnosisname || "--"), m: common_vendor.t(materials.value.length), n: common_vendor.f(materials.value, (material, k0, i0) => { return common_vendor.e({ a: "36d8dc6e-4-" + i0, b: common_vendor.p({ name: material.icon, color: material.color, size: "18" }), c: common_vendor.t(material.name), d: material.type }, material.type ? { e: common_vendor.t(material.type || "文件") } : {}, { f: common_vendor.t(material.size), g: "36d8dc6e-5-" + i0, h: material.id, i: common_vendor.o(($event) => previewMaterial(material), material.id) }); }), o: common_vendor.p({ name: "arrow-right", size: "14", color: "#c0c4cc" }), p: isTimeout.value }, isTimeout.value ? { q: common_vendor.p({ name: "clock", size: "16" }) } : {}, { r: common_vendor.f(conclusionOptions.value, (option, k0, i0) => { return { a: option.value, b: "36d8dc6e-8-" + i0 + ",36d8dc6e-7", c: common_vendor.p({ name: option.value, label: option.label, customStyle: { marginBottom: "16rpx" } }) }; }), s: common_vendor.o(onConclusionChange), t: common_vendor.o(($event) => form.value.expertconclusion = $event), v: common_vendor.p({ placement: "column", activeColor: "#007aff", disabled: isReadonly.value, modelValue: form.value.expertconclusion }), w: common_vendor.o(($event) => form.value.expertopinion = $event), x: common_vendor.p({ placeholder: "请输入详细的审查意见和改进建议...", maxlength: "1000", count: true, height: 120, border: "surround", disabled: isReadonly.value, modelValue: form.value.expertopinion }), y: common_vendor.p({ name: "edit-pen", size: "16", color: "#007aff" }), z: common_vendor.t(expertInfo.value.name), A: common_vendor.p({ name: "clock", size: "16", color: "#007aff" }), B: common_vendor.t(currentTime.value), C: isTimeout.value }, isTimeout.value ? { D: common_vendor.p({ name: "clock", size: "16" }) } : {}, { E: signatureData.signatureUrl }, signatureData.signatureUrl ? common_vendor.e({ F: signatureData.signatureUrl, G: common_vendor.o(previewSignature), H: common_vendor.t(expertInfo.value.name), I: common_vendor.t(signatureData.signatureTime), J: !isReadonly.value }, !isReadonly.value ? { K: common_vendor.p({ name: "photo", size: "16" }), L: common_vendor.o(removeSignature) } : {}) : common_vendor.e({ M: !isReadonly.value }, !isReadonly.value ? { N: common_vendor.p({ name: "edit-pen", size: "48", color: "#c0c4cc" }), O: common_vendor.o(openSignaturePanel) } : {}), { P: common_vendor.p(_ctx.N), Q: common_vendor.o((...args) => _ctx.O && _ctx.O(...args)), R: isReadonly.value && !signatureData.signatureUrl }, isReadonly.value && !signatureData.signatureUrl ? { S: common_vendor.p({ name: "close-circle", size: "48", color: "#dcdfe6" }) } : {}, { T: !isReadonly.value }, !isReadonly.value ? common_vendor.e({ U: showSaveBtn.value }, showSaveBtn.value ? { V: common_vendor.p({ name: "file-text", size: "16", color: "#606266" }), W: common_vendor.o(saveDraft) } : {}, { X: showSubmitBtn.value }, showSubmitBtn.value ? { Y: common_vendor.p({ name: "checkmark", size: "16", color: "#fff" }), Z: common_vendor.t(submitBtnText.value), aa: common_vendor.o(submitReview) } : {}) : {}, { ab: isReadonly.value }, isReadonly.value ? { ac: common_vendor.p({ name: "info-circle", size: "20", color: "#fa8c16" }) } : {}, { ad: canvasWidth + "px", ae: canvasHeight + "px", af: common_vendor.o(onTouchStart), ag: common_vendor.o(onTouchMove), ah: common_vendor.o(onTouchEnd), ai: common_vendor.p({ name: "trash", size: "20" }), aj: common_vendor.o(clearCanvas), ak: common_vendor.p({ name: "play-left", size: "20" }), al: common_vendor.o(undoLastStroke), am: !canUndo.value, an: common_vendor.p({ name: "checkmark", size: "20" }), ao: common_vendor.o(confirmSignature), ap: !hasSignature.value, aq: tempSignatureData.value }, tempSignatureData.value ? { ar: tempSignatureData.value } : {}, { as: common_vendor.o(closeSignaturePanel), at: common_vendor.p({ show: showSignaturePanel.value, mode: "bottom", round: 20, closeable: true, closeIcon: "close" }), av: common_vendor.unref(showHomeButton) }, common_vendor.unref(showHomeButton) ? { aw: common_vendor.p({ type: "home", size: "24", color: "#fff" }), ax: common_vendor.o((...args) => common_vendor.unref(goHome) && common_vendor.unref(goHome)(...args)) } : {}, { ay: common_vendor.o(confirmSubmit), az: common_vendor.o(($event) => showSubmitModal.value = false), aA: common_vendor.p({ show: showSubmitModal.value, title: modalTitle.value, content: modalContent.value, showCancelButton: true }), aB: common_vendor.gei(_ctx, "") }); }; } }; wx.createPage(_sfc_main); //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/ethicalReview/ethicalInfo.js.map