petstore-frontend/dist/build/h5/assets/pages-report-Report.4YqXiEo9.js
2026-04-12 22:57:48 +08:00

2 lines
8.2 KiB
JavaScript

import{m as e,n as a,p as l,r as t,q as s,u as o,J as n,K as u,c as r,b as i,d as c,w as p,v as d,x as f,z as m,e as v,F as _,f as b,g,A as k,h,i as y,I as w,D as T,t as C,E as x,s as N,j as V,L as z,M as U,N as I,O as j}from"./index-DrZc8biM.js";import{b as $,B as q,i as P,f as A,A as B}from"./index.DsJtDI4O.js";import{T as J,u as M}from"./useNavigator.BKsocaY0.js";import{A as O}from"./AppIcon.M7CZvvJr.js";import{_ as R}from"./_plugin-vue_export-helper.2L545UbL.js";const F=R({__name:"Report",emits:["change-page"],setup(R,{emit:F}){const S=e(),D=a(),{goPage:E,navigateTo:H}=M(),K=(()=>{var e,a;const t=(null==(e=l)?void 0:e().statusBarHeight)||20;let s=t+44;const o=null==(a=uni.getMenuButtonBoundingClientRect)?void 0:a.call(uni);if(o&&o.top&&o.height){s=t+2*Math.max(o.top-t,4)+o.height}return`padding-top:${t}px;height:${s}px;`})(),L=t({petName:"",serviceType:"",appointmentTime:"",before:"",after:"",remark:""}),G=t(null),Q=t([]),W=t(null),X=t(!1),Y=s(()=>Q.value.map(e=>({label:e.name,value:e.name}))),Z=s(()=>G.value?`https://api.qrserver.com/v1/create-qr-code/?size=180x180&data=${encodeURIComponent(G.value.reportUrl)}`:""),ee=e=>{z({count:1,success:a=>{const l=a.tempFilePaths[0];U({title:"上传中..."}),I({url:`${q}/upload/image`,filePath:l,name:"file",success:a=>{j();const l=JSON.parse(a.data);200===l.code?L.value[e]=P(l.data.url):V({title:l.message||"上传失败",icon:"none"})},fail:()=>{j(),V({title:"上传失败",icon:"none"})}})}})},ae=e=>{const a=e.detail.value;L.value.serviceType=Y.value[a].value},le=async()=>{if(!L.value.petName)return V({title:"请输入宠物名字",icon:"none"});if(!L.value.serviceType)return V({title:"请选择服务类型",icon:"none"});X.value=!0;const e={appointmentId:W.value||null,userId:S.id,petName:L.value.petName,serviceType:L.value.serviceType,appointmentTime:L.value.appointmentTime||null,beforePhoto:L.value.before,afterPhoto:L.value.after,remark:L.value.remark},a=await A(e);if(X.value=!1,200===a.code){const e=a.data.reportToken;let l=B;l=window.location.origin;const t=`${l}/report.html?token=${e}`;G.value={token:e,reportUrl:t}}else V({title:a.message||"提交失败",icon:"none"})},te=()=>{N({data:G.value.reportUrl,success:()=>V({title:"链接已复制",icon:"none"})})},se=()=>{V({title:"请长按二维码图片保存",icon:"none"})},oe=()=>H("home"),ne=()=>{G.value=null,L.value={petName:"",serviceType:"",appointmentTime:"",before:"",after:"",remark:""},H("home")};return o(async()=>{await(async()=>{if(!D.id)return;const e=await $(D.id);200===e.code&&(Q.value=e.data)})();const e=JSON.parse(n("petstore_report_prefill")||"null");e&&(W.value=e.appointmentId,L.value.petName=e.petName||"",L.value.serviceType=e.serviceType||"",L.value.appointmentTime=e.appointmentTime?e.appointmentTime.slice(0,16):"",u("petstore_report_prefill"))}),(e,a)=>{const l=k,t=b,s=y,o=w,n=T,u=x;return g(),r(_,null,[i("div",{class:"page-shell report-page"},[c(t,{class:"report-nav nav-gradient",style:d(f(K))},{default:p(()=>[c(l,{class:"nav-back",onClick:oe},{default:p(()=>[c(O,{name:"back",size:18,color:"#ffffff"})]),_:1}),c(l,{class:"nav-title"},{default:p(()=>[h("洗护美容报告")]),_:1}),c(t,{class:"nav-placeholder"})]),_:1},8,["style"]),G.value?(g(),r("div",{key:0,class:"result-wrap"},[c(t,{class:"notice-bar success"},{default:p(()=>[h("✓ 提交成功,可复制链接或扫描二维码分享给宠主")]),_:1}),c(t,{class:"page-section result-content"},{default:p(()=>[c(t,{class:"result-link-row"},{default:p(()=>[c(t,{class:"field-label field-label-tight"},{default:p(()=>[h("报告链接")]),_:1}),c(s,{class:"van-button van-button--small van-button--primary",onClick:te},{default:p(()=>[h("复制")]),_:1})]),_:1}),c(o,{class:"van-field report-url-input",value:G.value.reportUrl,readonly:""},null,8,["value"]),c(t,{class:"qr-wrap"},{default:p(()=>[i("img",{src:Z.value,alt:"二维码",class:"qr-img"},null,8,["src"])]),_:1}),c(s,{class:"van-button van-button--primary van-button--block",onClick:se},{default:p(()=>[h("保存二维码到相册")]),_:1}),c(s,{class:"van-button van-button--block btn-ghost",onClick:ne},{default:p(()=>[h("返回首页")]),_:1})]),_:1})])):(g(),r("div",{key:1,class:"report-form"},[c(t,{class:"page-section report-hero"},{default:p(()=>[c(t,{class:"hero-title"},{default:p(()=>[h("填写服务记录")]),_:1}),c(t,{class:"hero-sub"},{default:p(()=>[h("完善本次服务细节,提交后可生成分享链接与二维码。")]),_:1})]),_:1}),c(t,{class:"van-cell-group page-section form-section"},{default:p(()=>[c(t,{class:"module-title section-title"},{default:p(()=>[i("span",{class:"section-icon"},[c(O,{name:"profile",size:12})]),c(l,null,{default:p(()=>[h("基础信息")]),_:1})]),_:1}),c(t,{class:"section-body"},{default:p(()=>[c(t,{class:"form-field-wrap"},{default:p(()=>[c(t,{class:"field-label"},{default:p(()=>[h("宠物名字")]),_:1}),c(o,{modelValue:L.value.petName,"onUpdate:modelValue":a[0]||(a[0]=e=>L.value.petName=e),class:"van-field",placeholder:"请输入宠物名字"},null,8,["modelValue"])]),_:1}),c(t,{class:"form-field-wrap"},{default:p(()=>[c(t,{class:"field-label"},{default:p(()=>[h("服务类型")]),_:1}),c(n,{mode:"selector",range:Y.value,"range-key":"label",onChange:ae},{default:p(()=>[c(t,{class:"van-field picker-field"},{default:p(()=>[h(C(L.value.serviceType||"请选择"),1)]),_:1})]),_:1},8,["range"])]),_:1}),c(t,{class:"form-field-wrap"},{default:p(()=>[c(t,{class:"field-label"},{default:p(()=>[h("服务时间")]),_:1}),c(o,{modelValue:L.value.appointmentTime,"onUpdate:modelValue":a[1]||(a[1]=e=>L.value.appointmentTime=e),type:"datetime-local",class:"van-field"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),c(t,{class:"van-cell-group page-section form-section"},{default:p(()=>[c(t,{class:"module-title section-title"},{default:p(()=>[i("span",{class:"section-icon"},[c(O,{name:"camera",size:12})]),c(l,null,{default:p(()=>[h("服务照片")]),_:1})]),_:1}),c(t,{class:"section-body"},{default:p(()=>[c(t,{class:"photo-row"},{default:p(()=>[c(t,{class:"photo-col"},{default:p(()=>[c(t,{class:"field-label"},{default:p(()=>[h("服务前")]),_:1}),c(t,{class:"upload-wrap"},{default:p(()=>[L.value.before?(g(),m(t,{key:0,class:"upload-preview"},{default:p(()=>[i("img",{src:L.value.before,class:"preview-img"},null,8,["src"]),c(t,{class:"preview-remove",onClick:a[2]||(a[2]=e=>L.value.before="")},{default:p(()=>[h("✕")]),_:1})]),_:1})):(g(),m(t,{key:1,class:"upload-box",onClick:a[3]||(a[3]=e=>ee("before"))},{default:p(()=>[i("span",{class:"upload-icon"},[c(O,{name:"camera",size:16,color:"#94a3b8"})]),i("span",{class:"upload-tip"},"上传照片")]),_:1}))]),_:1})]),_:1}),c(t,{class:"photo-col"},{default:p(()=>[c(t,{class:"field-label"},{default:p(()=>[h("服务后")]),_:1}),c(t,{class:"upload-wrap"},{default:p(()=>[L.value.after?(g(),m(t,{key:0,class:"upload-preview"},{default:p(()=>[i("img",{src:L.value.after,class:"preview-img"},null,8,["src"]),c(t,{class:"preview-remove",onClick:a[4]||(a[4]=e=>L.value.after="")},{default:p(()=>[h("✕")]),_:1})]),_:1})):(g(),m(t,{key:1,class:"upload-box",onClick:a[5]||(a[5]=e=>ee("after"))},{default:p(()=>[i("span",{class:"upload-icon"},[c(O,{name:"camera",size:16,color:"#94a3b8"})]),i("span",{class:"upload-tip"},"上传照片")]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),c(t,{class:"van-cell-group page-section form-section"},{default:p(()=>[c(t,{class:"module-title section-title"},{default:p(()=>[i("span",{class:"section-icon"},[c(O,{name:"orders",size:12})]),c(l,null,{default:p(()=>[h("服务备注")]),_:1})]),_:1}),c(t,{class:"section-body"},{default:p(()=>[c(t,{class:"form-field-wrap"},{default:p(()=>[c(t,{class:"field-label"},{default:p(()=>[h("备注")]),_:1}),c(u,{modelValue:L.value.remark,"onUpdate:modelValue":a[6]||(a[6]=e=>L.value.remark=e),class:"van-field remark-textarea",placeholder:"输入本次服务过程、状态、注意事项..."},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),c(t,{class:"page-section form-submit-wrap"},{default:p(()=>[c(s,{class:"van-button van-button--primary van-button--block report-submit-btn",onClick:le},{default:p(()=>[h("提交并生成分享链接")]),_:1})]),_:1})])),X.value?(g(),m(t,{key:2,class:"loading-mask"},{default:p(()=>[c(t,{class:"loading-box"},{default:p(()=>[h("提交中...")]),_:1})]),_:1})):v("",!0)]),c(J,{"current-page":"report",onChange:f(E)},null,8,["onChange"])],64)}}},[["__scopeId","data-v-e2283bdf"]]);export{F as default};