WXL
3 天以前 b76de9a566e4435146a970aa22333a58f87b485b
1
"use strict";const e=require("../../common/vendor.js"),o=require("../../stores/user.js"),t=require("../../stores/useHomeButton.js");if(!Array){(e.resolveComponent("up-icon")+e.resolveComponent("u-radio")+e.resolveComponent("u-radio-group")+e.resolveComponent("u--textarea")+e.resolveComponent("u-icon")+e.resolveComponent("u-popup")+e.resolveComponent("uni-icons")+e.resolveComponent("u-modal"))()}Math||((()=>"../../uni_modules/uview-plus/components/u-icon/u-icon.js")+(()=>"../../uni_modules/uview-plus/components/u-radio/u-radio.js")+(()=>"../../uni_modules/uview-plus/components/u-radio-group/u-radio-group.js")+(()=>"../../uni_modules/uview-plus/components/u--textarea/u--textarea.js")+(()=>"../../uni_modules/uview-plus/components/u-icon/u-icon.js")+(()=>"../../uni_modules/uview-plus/components/u-popup/u-popup.js")+(()=>"../../node-modules/@dcloudio/uni-ui/lib/uni-icons/uni-icons.js")+(()=>"../../uni_modules/uview-plus/components/u-modal/u-modal.js"))();const n={__name:"ethicalInfo",setup(n){const{showHomeButton:i,checkAutoLogin:a,goHome:s}=t.useHomeButton(),l=o.useUserStore();e.ref({});const r=e.ref({hospitalNo:"",donorName:"",gender:"",age:"",diagnosis:"",receiveStatus:"0",endtime:""}),u=e.ref(null),c=e.ref(null),p=e.ref([]),d=l.baseUrlHt,m=e.ref({expertconclusion:"",expertopinion:""}),v=e.ref({name:"",title:""}),g=e.ref(!1),x=e.ref("确认提交"),f=e.ref("确定要提交审查意见吗?提交后将无法修改。"),h=e.computed(()=>(new Date).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})),w=e.ref([{label:"同意",value:"1"},{label:"驳回",value:"2"}]),T=e.ref(!1),y=e.reactive({signatureUrl:"",signatureTime:"",fileName:"",serverData:null});let S=null,N=!1,z=0,b=0,L=[];const C=e.ref(""),j=e.computed(()=>L.length>0),U=e.computed(()=>""!==C.value),k=e.reactive({uploadUrl:"/api/common/upload",extraParams:{caseNo:"",expertId:"",expertName:"",type:"ethics_review_signature",bizType:"expert_review"}}),$=e.ref(!0),_=e.ref(!0),P=e.ref("提交审查"),D=e=>({0:"pending",1:"pending",2:"pending",3:"submitted",4:"submitted",5:"success",6:"error"}[e]||"pending"),Y=e.computed(()=>"3"==r.value.receiveStatus),W=e.computed(()=>Y.value);e.computed(()=>!W.value&&(""!==m.value.expertconclusion&&m.value.expertopinion.trim().length>0&&""!==y.signatureUrl&&y.signatureUrl.startsWith("http"))),e.onLoad(async e=>{a(e),u.value=e.id,c.value=e.fcid,c.value&&await F(c.value)}),e.onShow(()=>{const o=e.index.getStorageSync("userInfo");o&&(v.value.name=o.nickName||o.userName||"")});const F=async o=>{try{e.index.showLoading({title:"加载中..."});const t={fcid:o,pageNum:1,pageSize:1},n=await e.index.$uapi.get("/project/ethicalreviewopinions/listnew",t);if(200==n.code&&n.rows&&n.rows.length>0){const o=n.rows[0];if(console.log("加载的审查数据:",o),r.value={...r.value,inpatientno:o.inpatientno,name:o.name,sex:o.sex,age:o.age,ageunit:o.ageunit,expertType:o.expertType,diagnosisname:o.diagnosisname,receiveStatus:o.receiveStatus||"0",endtime:o.endtime||"",caseNo:o.caseNo||""},console.log(o.receiveStatus,"data.receiveStatus"),console.log(r.value.receiveStatus,"caseInfo.value"),o.expertconclusion&&(m.value.expertconclusion=o.expertconclusion.toString()),o.expertopinion&&(m.value.expertopinion=o.expertopinion),o.expertname)v.value.name=o.expertname;else{const o=e.index.getStorageSync("userInfo");o&&(v.value.name=o.nickName||o.userName||"")}o.sigin&&(o.sigin.startsWith("http")?y.signatureUrl=o.sigin:y.signatureUrl=`/api${o.sigin.startsWith("/")?"":"/"}${o.sigin}`,y.signatureTime=o.conclusiontime||""),o.filePatch&&B(o.filePatch),H(o),M(o.receiveStatus),k.extraParams.caseNo=o.caseNo||"",k.extraParams.expertName=v.value.name}else e.index.showToast({title:n.msg||"未找到审查数据",icon:"none"})}catch(t){if("未登录"==t.message)return;e.index.showToast({title:"加载失败",icon:"none"})}finally{e.index.hideLoading()}},H=e=>{e.receiveStatus},I=e=>{if(!e)return"";if(e.startsWith("http://")||e.startsWith("https://")){const o=e.indexOf("/",8);return-1!==o?`${d}${e.substring(o)}`:d}return e.startsWith("/")?`${d}${e}`:`${d}/${e}`},B=e=>{if(e)try{let o=[];if(e.startsWith("[")&&e.endsWith("]")){const t=e.replace(/\\"/g,'"');o=JSON.parse(t)}else if(e.includes("fileName"))o=JSON.parse(e);else{o=e.split(";").filter(e=>e.trim()).map(e=>({fileName:e.split("/").pop()||"附件",path:e,fileUrl:e}))}p.value=o.map((e,o)=>{const t=e.fileName||`附件${o+1}`,n=I(e.fileUrl||e.path||e.url||""),i=t.split(".").pop().toLowerCase();let a="file-text",s="#909399";return["jpg","jpeg","png","gif","bmp","webp"].includes(i)?(a="photo",s="#fa8c16"):["doc","docx"].includes(i)?(a="file-text",s="#1890ff"):["xls","xlsx","csv"].includes(i)?(a="file-text",s="#52c41a"):["pdf"].includes(i)?(a="file-text",s="#f56c6c"):["txt","text"].includes(i)?(a="file-text",s="#909399"):["zip","rar","7z"].includes(i)&&(a="folder",s="#722ed1"),{id:e.infoid||o+1,name:t,icon:a,color:s,size:"--",url:n,type:i,createTime:e.createTime||""}})}catch(o){console.error("解析附件失败:",o,e);const t=e.split(";").filter(e=>e.trim());p.value=t.map((e,o)=>{const t=e.split("/").pop()||`附件${o+1}`,n=I(e),i=t.split(".").pop().toLowerCase();let a="file-text",s="#909399";return["jpg","jpeg","png","gif","bmp"].includes(i)?(a="photo",s="#fa8c16"):["doc","docx"].includes(i)?(a="file-text",s="#1890ff"):["xls","xlsx"].includes(i)?(a="file-text",s="#52c41a"):["pdf"].includes(i)&&(a="file-text",s="#f56c6c"),{id:o+1,name:t,icon:a,color:s,size:"--",url:n}})}},M=e=>{switch(e){case"3":case"4":case"5":case"6":$.value=!1,_.value=!1;break;default:$.value=!0,_.value=!0,P.value="提交审查"}},O=()=>{W.value?e.index.showToast({title:"当前任务已超时,不可操作",icon:"none"}):(T.value=!0,e.nextTick$1(()=>{q()}))},J=()=>{T.value=!1,X()},q=()=>{S=e.index.createCanvasContext("signatureCanvas"),X()},X=()=>{S&&(S.clearRect(0,0,650,300),S.setStrokeStyle("#000000"),S.setLineWidth(3),S.setLineCap("round"),S.setLineJoin("round"),S.draw(),L=[],C.value="")},A=()=>{0!=L.length&&(L.pop(),S.clearRect(0,0,650,300),S.setStrokeStyle("#000000"),S.setLineWidth(3),S.setLineCap("round"),S.setLineJoin("round"),L.forEach(e=>{S.beginPath(),S.moveTo(e.startX,e.startY),S.lineTo(e.endX,e.endY),S.stroke()}),S.draw(),0==L.length?C.value="":G())},E=e=>{if(W.value)return;N=!0;const o=e.touches[0];z=o.x,b=o.y,S.beginPath(),S.moveTo(z,b)},R=e=>{if(!N||W.value)return;const o=e.touches[0],t=o.x,n=o.y;S.lineTo(t,n),S.stroke(),S.draw(!0),L.push({startX:z,startY:b,endX:t,endY:n}),z=t,b=n},V=()=>{N&&(N=!1,S.closePath(),G())},G=()=>{e.index.canvasToTempFilePath({canvasId:"signatureCanvas",success:e=>{C.value=e.tempFilePath},fail:e=>{console.error("获取画布图片失败:",e)}})},K=async()=>{if(C.value)try{e.index.showLoading({title:"保存签名中..."});const o=await Q(C.value);o?(y.signatureUrl=o.url,y.signatureTime=(new Date).toLocaleString("zh-CN"),y.fileName=o.originalFilename||`signature_${Date.now()}.png`,y.serverData=o,Z(o),e.index.hideLoading(),e.index.showToast({title:"签名保存成功",icon:"success"}),T.value=!1,X()):(e.index.hideLoading(),e.index.showToast({title:"签名上传失败",icon:"none"}))}catch(o){console.error("签名上传失败:",o),e.index.hideLoading(),e.index.showToast({title:"签名上传失败",icon:"none"})}else e.index.showToast({title:"请先签名",icon:"none"})},Q=o=>new Promise((t,n)=>{const i=e.index.getStorageSync("token"),a=e.index.getStorageSync("userInfo"),s=(null==a?void 0:a.nickName)||(null==a?void 0:a.userName)||v.value.name;e.index.uploadFile({url:"/api/common/upload",filePath:o,name:"file",header:{Authorization:`Bearer ${i}`},formData:{bizType:"expert_review_signature",caseNo:r.value.caseNo||"",expertName:s,uploadType:"signature"},success:e=>{if(200==e.statusCode){const o=JSON.parse(e.data);console.log("签名上传成功:",o),200==o.code?t({url:o.url,fileName:o.fileName,newFileName:o.newFileName,originalFilename:o.originalFilename,filePath:o.filePath||o.fileName,size:o.size}):n(new Error(o.msg||"上传失败"))}else n(new Error(`上传失败,状态码: ${e.statusCode}`))},fail:e=>{n(e)}})}),Z=o=>{try{const t={signatureUrl:y.signatureUrl,signatureTime:y.signatureTime,fileName:y.fileName,uploadData:o,caseNo:r.value.caseNo,timestamp:Date.now()};e.index.setStorageSync("expert_review_signature",t)}catch(t){console.error("保存签名到本地失败:",t)}},ee=()=>{W.value?e.index.showToast({title:"当前任务已超时,不可操作",icon:"none"}):e.index.showModal({title:"提示",content:"确定要删除签名吗?",success:o=>{o.confirm&&(y.signatureUrl="",y.signatureTime="",y.fileName="",y.serverData=null,e.index.removeStorageSync("expert_review_signature"))}})},oe=()=>{if(y.signatureUrl){let o=y.signatureUrl;o.startsWith("http")||(o=`${(null==l?void 0:l.baseUrlHt)||""}${o}`),e.index.previewImage({urls:[o]})}},te=e=>{console.log("选中结论:",e)},ne=async()=>{if(W.value)e.index.showToast({title:"当前任务已超时,不可操作",icon:"none"});else if(se(!0))try{e.index.showLoading({title:"保存中..."});const o={fcid:c.value,expertconclusion:m.value.expertconclusion,expertopinion:m.value.expertopinion,sigin:y.signatureUrl,receiveStatus:"2",conclusiontime:e.dayjs().format("YYYY-MM-DD HH:mm:ss")},t=await e.index.$uapi.post("/project/ethicalreviewopinions/edit",o);200==t.code?(e.index.showToast({title:"保存成功",icon:"success"}),r.value.receiveStatus="2",M("2")):e.index.showToast({title:t.msg||"保存失败",icon:"none"})}catch(o){console.error("保存草稿失败:",o),e.index.showToast({title:"保存失败",icon:"none"})}finally{e.index.hideLoading()}},ie=()=>{console.log(1),W.value?e.index.showToast({title:"当前任务已超时,不可操作",icon:"none"}):(console.log(2),se()&&(x.value="确认提交",f.value="确定要提交审查意见吗?提交后将无法修改。",g.value=!0))},ae=async()=>{try{e.index.showLoading({title:"提交中..."}),console.log(r.value,"form.value");const o={id:c.value,expertconclusion:m.value.expertconclusion,expertopinion:m.value.expertopinion,sigin:y.signatureUrl,expertType:r.value.expertType,receiveStatus:"1"==m.value.expertconclusion?"5":"6",conclusiontime:e.dayjs().format("YYYY-MM-DD HH:mm:ss")},t=await e.index.$uapi.post("/project/ethicalreviewopinions/edit",o);200==t.code?(e.index.showToast({title:"提交成功",icon:"success",duration:2e3}),r.value.receiveStatus=o.receiveStatus,M(o.receiveStatus),g.value=!1,setTimeout(()=>{e.index.navigateBack()},1500)):e.index.showToast({title:t.msg||"提交失败",icon:"none"})}catch(o){console.error("提交失败:",o),e.index.showToast({title:"提交失败",icon:"none"})}finally{e.index.hideLoading()}},se=(o=!1)=>m.value.expertconclusion||o?(console.log(3),m.value.expertopinion.trim()||o?(console.log(y,"signatureData"),!(!y.signatureUrl&&!o)||(e.index.showToast({title:"请进行手写签名",icon:"none"}),!1)):(e.index.showToast({title:"请输入审查意见",icon:"none"}),!1)):(e.index.showToast({title:"请选择审查结论",icon:"none"}),!1);return(o,t)=>{return e.e({a:e.t((n=r.value.receiveStatus,{0:"待接收",1:"未接收",2:"已接收",3:"超时",4:"中止",5:"完成",6:"驳回"}[n]||"未知状态")),b:e.n(D(r.value.receiveStatus)),c:e.p({name:"file-text",size:"14",color:"#909399"}),d:e.t(r.value.inpatientno||"--"),e:e.p({name:"account",size:"14",color:"#909399"}),f:e.t(r.value.name||"--"),g:e.p({name:"man",size:"14",color:"#909399"}),h:e.t(r.value.sex||"--"),i:e.t(r.value.age||"--"),j:e.t(r.value.ageunit||"岁"),k:e.p({name:"heart",size:"14",color:"#909399"}),l:e.t(r.value.diagnosisname||"--"),m:e.t(p.value.length),n:e.f(p.value,(o,t,n)=>e.e({a:"4839a6ea-4-"+n,b:e.p({name:o.icon,color:o.color,size:"18"}),c:e.t(o.name),d:o.type},o.type?{e:e.t(o.type||"文件")}:{},{f:e.t(o.size),g:"4839a6ea-5-"+n,h:o.id,i:e.o(t=>(o=>{if(o.url){e.index.showLoading({title:"加载中..."});const t=o.type||o.url.split(".").pop().toLowerCase();["jpg","jpeg","png","gif","bmp","webp"].includes(t)?e.index.previewImage({urls:[o.url],current:0,success:()=>{console.log("图片预览成功")},fail:o=>{console.error("图片预览失败:",o),e.index.showToast({title:"图片加载失败",icon:"none"})},complete:()=>{e.index.hideLoading()}}):["pdf","doc","docx","xls","xlsx","ppt","pptx","txt"].includes(t)?e.index.downloadFile({url:o.url,success:o=>{if(200==o.statusCode){const n=o.tempFilePath;e.index.openDocument({filePath:n,showMenu:!0,fileType:"pdf"==t?"pdf":"",success:()=>{console.log("打开文档成功")},fail:o=>{console.error("打开文档失败:",o),e.index.showToast({title:"无法打开该文件",icon:"none"})}})}},fail:o=>{console.error("下载文件失败:",o),e.index.showToast({title:"文件下载失败",icon:"none"})},complete:()=>{e.index.hideLoading()}}):(e.index.showToast({title:`暂不支持预览${t}格式文件`,icon:"none"}),e.index.hideLoading())}else e.index.showToast({title:`预览: ${o.name}`,icon:"none"})})(o),o.id)})),o:e.p({name:"arrow-right",size:"14",color:"#c0c4cc"}),p:Y.value},Y.value?{q:e.p({name:"clock",size:"16"})}:{},{r:e.f(w.value,(o,t,n)=>({a:o.value,b:"4839a6ea-8-"+n+",4839a6ea-7",c:e.p({name:o.value,label:o.label,customStyle:{marginBottom:"16rpx"}})})),s:e.o(te),t:e.o(e=>m.value.expertconclusion=e),v:e.p({placement:"column",activeColor:"#007aff",disabled:W.value,modelValue:m.value.expertconclusion}),w:e.o(e=>m.value.expertopinion=e),x:e.p({placeholder:"请输入详细的审查意见和改进建议...",maxlength:"1000",count:!0,height:120,border:"surround",disabled:W.value,modelValue:m.value.expertopinion}),y:e.p({name:"edit-pen",size:"16",color:"#007aff"}),z:e.t(v.value.name),A:e.p({name:"clock",size:"16",color:"#007aff"}),B:e.t(h.value),C:Y.value},Y.value?{D:e.p({name:"clock",size:"16"})}:{},{E:y.signatureUrl},y.signatureUrl?e.e({F:y.signatureUrl,G:e.o(oe),H:e.t(v.value.name),I:e.t(y.signatureTime),J:!W.value},W.value?{}:{K:e.p({name:"photo",size:"16"}),L:e.o(ee)}):e.e({M:!W.value},W.value?{}:{N:e.p({name:"edit-pen",size:"48",color:"#c0c4cc"}),O:e.o(O)}),{P:e.p(o.N),Q:e.o((...e)=>o.O&&o.O(...e)),R:!W.value},W.value?{}:e.e({S:$.value},$.value?{T:e.p({name:"file-text",size:"16",color:"#606266"}),U:e.o(ne)}:{},{V:_.value},_.value?{W:e.p({name:"checkmark",size:"16",color:"#fff"}),X:e.t(P.value),Y:e.o(ie)}:{}),{Z:W.value},W.value?{aa:e.p({name:"info-circle",size:"20",color:"#fa8c16"})}:{},{ab:"650px",ac:"300px",ad:e.o(E),ae:e.o(R),af:e.o(V),ag:e.p({name:"trash",size:"20"}),ah:e.o(X),ai:e.p({name:"play-left",size:"20"}),aj:e.o(A),ak:!j.value,al:e.p({name:"checkmark",size:"20"}),am:e.o(K),an:!U.value,ao:C.value},C.value?{ap:C.value}:{},{aq:e.o(J),ar:e.p({show:T.value,mode:"bottom",round:20,closeable:!0,closeIcon:"close"}),as:e.unref(i)},e.unref(i)?{at:e.p({type:"home",size:"24",color:"#fff"}),av:e.o((...o)=>e.unref(s)&&e.unref(s)(...o))}:{},{aw:e.o(ae),ax:e.o(e=>g.value=!1),ay:e.p({show:g.value,title:x.value,content:f.value,showCancelButton:!0}),az:e.gei(o,"")});var n}}};wx.createPage(n);