Number(U)).filter(U=>!Number.isNaN(U)):[],m.internal_cost=i.internal_cost!=null&&i.internal_cost!==""?Number(i.internal_cost):void 0,await va(m.diagnosis_id,m.id),Ql(()=>{var U;(U=ce.value)==null||U.clearValidate()})}catch(e){C.msgError((e==null?void 0:e.message)||"加载异常"),K.value=!1}finally{Ze.value=!1}}async function ba(){if(ce.value){await ce.value.validate(),Xe.value=!0;try{const t={id:m.id,recipient_name:m.recipient_name,recipient_phone:m.recipient_phone,shipping_address:m.shipping_address,is_follow_up:m.is_follow_up,prev_staff:m.prev_staff||"",service_channel:m.service_channel||"",service_package:Array.isArray(m.service_package)?m.service_package.join(","):"",express_company:m.express_company||"auto",tracking_number:m.tracking_number||"",fee_type:m.fee_type,amount:m.amount,remark_extra:m.remark_extra||"",medication_days:m.medication_days!=null&&String(m.medication_days).trim()!==""?m.medication_days:"",dose_unit:m.dose_unit||"剂",dose_count:m.dose_count||1,internal_cost:m.internal_cost!=null&&String(m.internal_cost).trim()!==""?m.internal_cost:""};m.region&&m.region.length>0?(t.shipping_province=m.region[0]||"",t.shipping_city=m.region[1]||"",t.shipping_district=m.region[2]||""):(t.shipping_province="",t.shipping_city="",t.shipping_district=""),t.pay_order_ids=[...m.pay_order_ids],await Ut(t),C.msgSuccess("保存成功"),K.value=!1,L()}catch{}finally{Xe.value=!1}}}const fe=x(!1),at=x("prescription"),Re=x(0),ve=x(null),te=x(""),ze=x(!1),xa=R(()=>at.value==="prescription"?"处方业务审核":"关联支付单审核");function kt(t,e){at.value=e,Re.value=t.id,ve.value=t,te.value="",fe.value=!0}async function wt(t){if(t==="reject"&&!te.value.trim()){C.msgError("驳回或阻止时必须填写明确的审核意见");return}ze.value=!0;try{const e={id:Re.value,action:t,remark:te.value.trim()};if(at.value==="prescription"?await El(e):await Tl(e),C.msgSuccess(t==="approve"?"审核通过成功":"已成功驳回该单"),fe.value=!1,L(),q.value&&Re.value)try{const i=await M({id:Re.value}),d=(i==null?void 0:i.data)??i??null;d&&(p.value=d)}catch{}}catch{}finally{ze.value=!1}}async function ka(t){try{await re.confirm("确认撤回该业务订单?撤回后状态为「已取消」,未双审通过或双审均驳回等场景下均可安全撤回。","撤回警告",{type:"warning",confirmButtonText:"确定撤回",cancelButtonText:"暂不处理"}),await $l({id:t.id}),C.msgSuccess("撤回成功"),L()}catch{}}const lt=x(0),De=x(!1),ae=x(!1),P=x(null);function wa(t){if(!t)return"0.00";const e=Number(t.m_cost)||0,i=Number(t.proces_cost)||0,d=Number(t.lis_cost)||0;return(e+i+d).toFixed(2)}function ha(t){return!Array.isArray(t)||t.length===0?"0":t.reduce((i,d)=>i+(Number(d.quantity)||0),0).toFixed(0)}async function Va(){if(!m.id){C.msgError("请先保存订单");return}ae.value=!0;try{const t=await Rt({id:m.id,dose_count:m.dose_count||1,medication_days:m.medication_days||void 0}),e=(t==null?void 0:t.data)??t;e&&e.success&&(P.value=e,De.value=!0,C.msgSuccess("预下单测试成功"))}catch{}finally{ae.value=!1}}async function Sa(){var t;if(!((t=p.value)!=null&&t.id)){C.msgError("订单数据不存在");return}ae.value=!0;try{const e=await Rt({id:p.value.id,dose_count:p.value.dose_count||1,medication_days:p.value.medication_days||void 0}),i=(e==null?void 0:e.data)??e;i&&i.success&&(P.value=i,De.value=!0)}catch{}finally{ae.value=!1}}async function Na(t){var e;try{await re.confirm("将把本单关联处方提交至甘草药管家开放平台(先 CTM_PREVIEW 预检查再 CTM_SUBMIT_RECIPEL 正式下单;成功后将按甘草侧规则扣费,详见 https://apidoc.igancao.com/service-doc/scm-outer-recipel.html )。确定继续?","上传甘草药方",{type:"warning",confirmButtonText:"确定上传",cancelButtonText:"取消"}),lt.value=t.id;const i=await jl({id:t.id}),d=(i==null?void 0:i.data)??i,c=(d==null?void 0:d.recipel_order_no)!=null?String(d.recipel_order_no):"";if(C.msgSuccess(c?`上传成功,甘草处方单号:${c}`:"上传成功"),L(),q.value&&Number((e=p.value)==null?void 0:e.id)===t.id)try{const V=await M({id:t.id}),g=(V==null?void 0:V.data)??V??null;g&&(p.value=g)}catch{}}catch{}finally{lt.value=0}}Kl(async()=>{await Ft(),await Bt(),L()});const ye=x(!1),Ie=x(!1),ge=x(0),D=Ae({express_company:"auto",tracking_number:""});function Ca(t){ge.value=t.id,D.express_company=String(t.express_company||"auto")||"auto",D.tracking_number=String(t.tracking_number||""),ye.value=!0}async function ht(){var t;if(!D.tracking_number.trim()){C.msgError("请填写快递单号");return}Ie.value=!0;try{const e=await M({id:ge.value}),i=(e==null?void 0:e.data)??e;if(!i){C.msgError("加载订单数据失败");return}if(await Ut({id:i.id,recipient_name:i.recipient_name||"",recipient_phone:i.recipient_phone||"",shipping_province:i.shipping_province||"",shipping_city:i.shipping_city||"",shipping_district:i.shipping_district||"",shipping_address:i.shipping_address||"",is_follow_up:i.is_follow_up?1:0,medication_days:i.medication_days!=null&&String(i.medication_days).trim()!==""?i.medication_days:"",prev_staff:i.prev_staff||"",service_channel:i.service_channel||"",service_package:i.service_package||"",fee_type:Number(i.fee_type)||3,amount:Number(i.amount)||0,remark_extra:i.remark_extra||"",internal_cost:i.internal_cost!=null&&i.internal_cost!==""?i.internal_cost:"",pay_order_ids:Array.isArray(i.pay_order_ids)?i.pay_order_ids:[],express_company:D.express_company||"auto",tracking_number:D.tracking_number.trim()}),C.msgSuccess("快递单号已保存"),ye.value=!1,L(),q.value&&((t=p.value)==null?void 0:t.id)===ge.value)try{const d=await M({id:ge.value}),c=(d==null?void 0:d.data)??d??null;c&&(p.value=c)}catch{}if(We({fulfillment_status:2,tracking_number:D.tracking_number}))try{await re.confirm(`快递单号「${D.tracking_number}」已保存,是否立即确认发货?`,"确认发货",{type:"success",confirmButtonText:"确认发货",cancelButtonText:"稍后再说"}),st({id:ge.value,tracking_number:D.tracking_number,express_company:D.express_company})}catch{}}catch{}finally{Ie.value=!1}}const be=x(!1),Le=x(!1),qe=x(0),H=Ae({express_company:"auto",tracking_number:""});function st(t){qe.value=t.id,H.express_company=String(t.express_company||"auto")||"auto",H.tracking_number=String(t.tracking_number||""),be.value=!0}async function Vt(){var t;if(!H.tracking_number.trim()){C.msgError("请先填写快递单号再确认发货");return}Le.value=!0;try{if(await Ul({id:qe.value,express_company:H.express_company||"auto",tracking_number:H.tracking_number.trim()}),C.msgSuccess("确认发货成功,订单已进入「已发货」状态"),be.value=!1,L(),q.value&&((t=p.value)==null?void 0:t.id)===qe.value)try{const e=await M({id:qe.value}),i=(e==null?void 0:e.data)??e??null;i&&(p.value=i)}catch{}}catch{}finally{Le.value=!1}}const xe=x(!1),Fe=x(!1),ke=x(0),Be=x(),it=x(!1),Me=x([]),N=Ae({add_mode:"create",order_type:3,pay_amount:void 0,pay_remark:"",link_pay_order_ids:[],completion_request:0}),Oa={add_mode:[{required:!0,message:"请选择添加方式",trigger:"change"}],order_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],pay_amount:[{required:!0,message:"请输入支付金额",trigger:"blur"},{validator:(t,e,i)=>{const d=Number(e);!Number.isFinite(d)||d<=0?i(new Error("金额须大于 0")):i()},trigger:"blur"}],link_pay_order_ids:[{required:!0,message:"请至少选择一个支付单",trigger:"change",validator:(t,e,i)=>{!Array.isArray(e)||e.length===0?i(new Error("请至少选择一个支付单")):i()}}]};async function Aa(t,e,i=[]){var d;if(!t){Me.value=[];return}try{it.value=!0;const c=await ut({diagnosis_id:t,prescription_order_id:e}),V=(c==null?void 0:c.lists)??((d=c==null?void 0:c.data)==null?void 0:d.lists)??[],g=Array.isArray(V)?V.filter(G=>!i.includes(G.id)):[];Me.value=g}catch{Me.value=[]}finally{it.value=!1}}function St(t){var d,c;ke.value=t.id,N.add_mode="create",N.order_type=3,N.pay_amount=void 0,N.pay_remark="",N.link_pay_order_ids=[],N.completion_request=0,xe.value=!0;const e=t.diagnosis_id||((d=p.value)==null?void 0:d.diagnosis_id),i=t.pay_order_ids||((c=p.value)==null?void 0:c.pay_order_ids)||[];e&&Aa(e,t.id,i)}async function Pa(){var t;if(Be.value){await Be.value.validate(),Fe.value=!0;try{if(N.add_mode==="create")await Rl({id:ke.value,order_type:N.order_type,pay_amount:N.pay_amount,pay_remark:N.pay_remark||"",completion_request:N.completion_request}),C.msgSuccess("支付单已新增,请等待审核");else{const e=N.link_pay_order_ids;if(e.length===0){C.msgError("请至少选择一个支付单");return}await zl({id:ke.value,pay_order_ids:e,completion_request:N.completion_request}),C.msgSuccess(`已关联 ${e.length} 个支付单,请等待审核`)}if(xe.value=!1,L(),q.value&&((t=p.value)==null?void 0:t.id)===ke.value)try{const e=await M({id:ke.value}),i=(e==null?void 0:e.data)??e??null;i&&(p.value=i)}catch{}}catch{}finally{Fe.value=!1}}}async function Nt(t){var e;try{if(await re.confirm("确认将该订单标记为「已完成」?此操作不可撤销。","完成订单",{type:"success",confirmButtonText:"确认完成",cancelButtonText:"暂不处理"}),await Dl({id:t.id}),C.msgSuccess("订单已标记为「已完成」"),L(),q.value&&((e=p.value)==null?void 0:e.id)===t.id)try{const i=await M({id:t.id}),d=(i==null?void 0:i.data)??i??null;d&&(p.value=d)}catch{}}catch{}}async function Ea(t){var e;try{if(await re.confirm("确认撤回处方审核?撤回后将重置为「待审核」状态。","撤回处方审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await Il({id:t.id}),C.msgSuccess("处方审核已撤回"),L(),q.value&&((e=p.value)==null?void 0:e.id)===t.id)try{const i=await M({id:t.id}),d=(i==null?void 0:i.data)??i??null;d&&(p.value=d)}catch{}}catch{}}async function Ta(t){var e;try{if(await re.confirm("确认撤回支付单审核?撤回后将重置为「待审核」状态。","撤回支付单审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await Ll({id:t.id}),C.msgSuccess("支付单审核已撤回"),L(),q.value&&((e=p.value)==null?void 0:e.id)===t.id)try{const i=await M({id:t.id}),d=(i==null?void 0:i.data)??i??null;d&&(p.value=d)}catch{}}catch{}}const $a="成都双流甄养堂互联网医院",ja="成都双流甄养堂互联网医院有限公司 联系方式:4001667339",Ua="地址:四川省成都市双流区黄甲街道黄龙大道二段280号",Ge=x(!1),nt=x(!1),y=x(null),Ra=R(()=>{var e;const t=(e=y.value)==null?void 0:e.herbs;return Array.isArray(t)?t:[]}),Ct=R(()=>{var e;const t=(e=y.value)==null?void 0:e.dietary_taboo;return Array.isArray(t)?t.filter(Boolean).join("、"):typeof t=="string"&&t.trim()?t.trim():""});function Ot(t){if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function za(t){return t?Ot(t):"—"}function Da(t){return t===1||t==="1"?"男":t===0||t==="0"?"女":"—"}function Ia(t){return t==null||t===""?"—":`${t}岁`}async function La(t){if(!t.prescription_id){C.msgWarning("该订单未关联处方");return}Ge.value=!0,nt.value=!0,y.value=null;try{const e=await ql({id:t.prescription_id});y.value=(e==null?void 0:e.data)??e??null}catch(e){C.msgError((e==null?void 0:e.message)||"加载处方详情失败"),Ge.value=!1}finally{nt.value=!1}}return(t,e)=>{const i=Qa,d=Wa,c=Ja,V=Ya,g=Za,G=Ka,A=Xa,b=al,U=sl,qa=ll,T=il,we=tl,Fa=Sl,Ba=nl,he=ol,Ma=rl,F=dl,le=ul,se=pl,k=cl,Ve=ml,ie=_l,rt=fl,At=yl,Pt=vl,ot=gl,Ga=bl,Ha=xl,Se=kl,Ne=wl,He=Vl,Et=hl,$=Wl("perms"),ne=el;return o(),_("div",Jl,[e[159]||(e[159]=n("header",{class:"po-page-head"},[n("div",null,[n("h1",{class:"po-page-title"},"处方业务订单"),n("p",{class:"po-page-desc"},[u("履约与双审;点「详情」可同屏查看"),n("strong",null,"处方单"),u("与"),n("strong",null,"关联支付单"),u("。")])])],-1)),a(A,{class:"!border-none po-filter-card shadow-sm",shadow:"never"},{default:l(()=>[a(G,{class:"ls-form",model:B,inline:""},{default:l(()=>[a(d,{class:"w-[260px]",label:"订单号"},{default:l(()=>[a(i,{modelValue:B.order_no,"onUpdate:modelValue":e[0]||(e[0]=s=>B.order_no=s),placeholder:"业务订单号",clearable:"",onKeyup:Tt(I(Ke),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(d,{class:"w-[140px]",label:"处方ID"},{default:l(()=>[a(i,{modelValue:B.prescription_id,"onUpdate:modelValue":e[1]||(e[1]=s=>B.prescription_id=s),placeholder:"处方ID",clearable:"",onKeyup:Tt(I(Ke),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(d,{class:"w-[180px]",label:"履约状态"},{default:l(()=>[a(V,{modelValue:B.fulfillment_status,"onUpdate:modelValue":e[2]||(e[2]=s=>B.fulfillment_status=s),placeholder:"全部",clearable:""},{default:l(()=>[a(c,{label:"待双审通过",value:1}),a(c,{label:"履约中",value:2}),a(c,{label:"已发货",value:5}),a(c,{label:"已完成",value:3}),a(c,{label:"已取消",value:4})]),_:1},8,["modelValue"])]),_:1}),a(d,null,{default:l(()=>[a(g,{type:"primary",onClick:I(Ke)},{default:l(()=>[...e[60]||(e[60]=[u("查询",-1)])]),_:1},8,["onClick"]),a(g,{onClick:Ht},{default:l(()=>[...e[61]||(e[61]=[u("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),O((o(),v(A,{class:"!border-none mt-4 po-table-card shadow-sm",shadow:"never"},{default:l(()=>[n("div",Zl,[e[62]||(e[62]=n("span",{class:"po-table-title text-gray-800"},"订单列表",-1)),n("span",Xl,"共 "+r(I(Y).count)+" 条",1)]),a(we,{data:I(Y).lists,size:"default",stripe:"",class:"po-data-table"},{default:l(()=>[a(b,{label:"订单号",prop:"order_no","min-width":"150","show-overflow-tooltip":""}),a(b,{label:"处方ID",prop:"prescription_id",width:"86"}),a(b,{label:"诊单ID",prop:"diagnosis_id",width:"86"}),a(b,{label:"开方人",prop:"doctor_name",width:"90","show-overflow-tooltip":""}),a(b,{label:"创建人",prop:"creator_name",width:"90","show-overflow-tooltip":""}),a(b,{label:"收货人","min-width":"100"},{default:l(({row:s})=>[n("div",null,r(s.recipient_name||"—"),1),n("div",es,r(s.recipient_phone||""),1)]),_:1}),a(b,{label:"费用类别",width:"96"},{default:l(({row:s})=>[u(r(Ee(s.fee_type)),1)]),_:1}),a(b,{label:"金额","min-width":"100"},{default:l(({row:s})=>[n("div",ts,[n("span",as,"¥"+r(s.amount),1),a(qa,{placement:"top",width:200,trigger:"hover"},{reference:l(()=>[a(U,{class:"text-gray-400 cursor-pointer hover:text-primary"},{default:l(()=>[a(I(Nl))]),_:1})]),default:l(()=>[n("div",ls,[n("div",ss,[e[63]||(e[63]=n("span",{class:"text-gray-500"},"业务订单单据:",-1)),n("span",is,"¥"+r(s.amount),1)]),n("div",ns,[e[64]||(e[64]=n("span",{class:"text-gray-500"},"定金下限:",-1)),n("span",null,"¥"+r(J(s.deposit_min_amount)),1)]),n("div",rs,[e[65]||(e[65]=n("span",{class:"text-gray-500"},"实付(关联):",-1)),n("span",os,"¥"+r(J(s.linked_pay_paid_total)),1)]),dt()&&s.internal_cost!=null&&s.internal_cost!==""?(o(),_("div",us,[e[66]||(e[66]=n("span",{class:"text-gray-500"},"内部成本:",-1)),n("span",ds,"¥"+r(J(s.internal_cost)),1)])):f("",!0)])]),_:2},1024)])]),_:1}),dt()?(o(),v(b,{key:0,label:"内部成本",width:"92"},{default:l(({row:s})=>[u(r(s.internal_cost!=null&&s.internal_cost!==""?`¥${s.internal_cost}`:"—"),1)]),_:1})):f("",!0),a(b,{label:"处方审核",width:"96"},{default:l(({row:s})=>[a(T,{type:mt(s.prescription_audit_status),size:"small"},{default:l(()=>[u(r(pt(s.prescription_audit_status)),1)]),_:2},1032,["type"])]),_:1}),a(b,{label:"支付单审核",width:"102"},{default:l(({row:s})=>[a(T,{type:mt(s.payment_slip_audit_status),size:"small"},{default:l(()=>[u(r(pt(s.payment_slip_audit_status)),1)]),_:2},1032,["type"])]),_:1}),a(b,{label:"履约",width:"96"},{default:l(({row:s})=>[a(T,{type:Qt(s.fulfillment_status),size:"small"},{default:l(()=>[u(r(Wt(s.fulfillment_status)),1)]),_:2},1032,["type"])]),_:1}),a(b,{label:"关联支付单",width:"100"},{default:l(({row:s})=>[Number(s.linked_pay_order_count)>0?(o(),_("span",{key:0,class:"text-primary cursor-default",title:s.linked_pay_order_id?`#${s.linked_pay_order_id}…`:""},r(s.linked_pay_order_count)+" 笔 ",9,ps)):(o(),_("span",ms,"—"))]),_:1}),a(b,{label:"创建时间","min-width":"144"},{default:l(({row:s})=>[u(r(Z(s.create_time)),1)]),_:1}),a(b,{label:"操作",width:"310",fixed:"right"},{default:l(({row:s})=>[n("div",cs,[O((o(),v(g,{type:"primary",link:"",onClick:S=>ca(s.id)},{default:l(()=>[...e[67]||(e[67]=[u("详情/审核",-1)])]),_:1},8,["onClick"])),[[$,["tcm.prescriptionOrder/detail"]]]),Yt(s)?O((o(),v(g,{key:0,type:"primary",link:"",onClick:S=>ga(s)},{default:l(()=>[...e[68]||(e[68]=[u("编辑",-1)])]),_:1},8,["onClick"])),[[$,["tcm.prescriptionOrder/edit"]]]):f("",!0),aa(s)?O((o(),v(g,{key:1,type:"success",link:"",onClick:S=>Ca(s)},{default:l(()=>[...e[69]||(e[69]=[u("修改单号",-1)])]),_:1},8,["onClick"])),[[$,["tcm.prescriptionOrder/edit"]]]):f("",!0),We(s)?O((o(),v(g,{key:2,type:"primary",link:"",onClick:S=>st(s)},{default:l(()=>[...e[70]||(e[70]=[u("确认发货",-1)])]),_:1},8,["onClick"])),[[$,["tcm.prescriptionOrder/ship"]]]):f("",!0),ct(s)?O((o(),v(g,{key:3,type:"success",link:"",onClick:S=>St(s)},{default:l(()=>[...e[71]||(e[71]=[u("补齐支付单",-1)])]),_:1},8,["onClick"])),[[$,["tcm.prescriptionOrder/addPayOrder"]]]):f("",!0),_t(s)?O((o(),v(g,{key:4,type:"primary",link:"",onClick:S=>Nt(s)},{default:l(()=>[...e[72]||(e[72]=[u("完成订单",-1)])]),_:1},8,["onClick"])),[[$,["tcm.prescriptionOrder/complete"]]]):f("",!0),ta(s)?O((o(),v(g,{key:5,type:"danger",link:"",onClick:S=>ka(s)},{default:l(()=>[...e[73]||(e[73]=[u("撤回",-1)])]),_:1},8,["onClick"])),[[$,["tcm.prescriptionOrder/withdraw"]]]):f("",!0),la(s)?O((o(),v(g,{key:6,type:"warning",link:"",loading:lt.value===s.id,onClick:S=>Na(s)},{default:l(()=>[...e[74]||(e[74]=[u("上传药方",-1)])]),_:1},8,["loading","onClick"])),[[$,["tcm.prescriptionOrder/submitGancaoRecipel"]]]):f("",!0)])]),_:1})]),_:1},8,["data"]),n("div",_s,[a(Fa,{modelValue:I(Y),"onUpdate:modelValue":e[3]||(e[3]=s=>Yl(Y)?Y.value=s:null),onChange:I(L)},null,8,["modelValue","onChange"])])]),_:1})),[[ne,I(Y).loading]]),a(ot,{modelValue:q.value,"onUpdate:modelValue":e[13]||(e[13]=s=>q.value=s),class:"po-detail-drawer",size:"80%","destroy-on-close":"","close-on-click-modal":!1},{header:l(()=>{var s,S;return[n("div",fs,[n("div",vs,[e[75]||(e[75]=n("span",{class:"po-detail-drawer-title text-gray-800 font-semibold text-lg"},"业务订单详情",-1)),(s=p.value)!=null&&s.order_no?(o(),v(T,{key:0,type:"primary",effect:"plain",round:"",class:"ml-3"},{default:l(()=>[u(r(p.value.order_no),1)]),_:1})):f("",!0),(S=p.value)!=null&&S.gancao_reciperl_order_no?(o(),v(T,{key:1,type:"success",effect:"plain",round:"",class:"ml-2"},{default:l(()=>[u("甘草 "+r(p.value.gancao_reciperl_order_no),1)]),_:1})):f("",!0)]),p.value?(o(),_("div",ys,[Jt(p.value)?O((o(),v(g,{key:0,type:"warning",size:"small",plain:"",onClick:e[4]||(e[4]=w=>kt(p.value,"prescription"))},{default:l(()=>[...e[76]||(e[76]=[u(" 处方审核 ",-1)])]),_:1})),[[$,["tcm.prescriptionOrder/auditPrescription"]]]):f("",!0),Xt(p.value)?O((o(),v(g,{key:1,type:"info",size:"small",plain:"",onClick:e[5]||(e[5]=w=>Ea(p.value))},{default:l(()=>[...e[77]||(e[77]=[u(" 撤回处方审核 ",-1)])]),_:1})),[[$,["tcm.prescriptionOrder/auditPrescription"]]]):f("",!0),Zt(p.value)?O((o(),v(g,{key:2,type:"warning",size:"small",plain:"",onClick:e[6]||(e[6]=w=>kt(p.value,"payment"))},{default:l(()=>[...e[78]||(e[78]=[u(" 支付审核 ",-1)])]),_:1})),[[$,["tcm.prescriptionOrder/auditPayment"]]]):f("",!0),ea(p.value)?O((o(),v(g,{key:3,type:"info",size:"small",plain:"",onClick:e[7]||(e[7]=w=>Ta(p.value))},{default:l(()=>[...e[79]||(e[79]=[u(" 撤回支付审核 ",-1)])]),_:1})),[[$,["tcm.prescriptionOrder/auditPayment"]]]):f("",!0),We(p.value)?O((o(),v(g,{key:4,type:"primary",size:"small",plain:"",onClick:e[8]||(e[8]=w=>st(p.value))},{default:l(()=>[...e[80]||(e[80]=[u(" 确认发货 ",-1)])]),_:1})),[[$,["tcm.prescriptionOrder/ship"]]]):f("",!0),ct(p.value)?O((o(),v(g,{key:5,type:"success",size:"small",plain:"",onClick:e[9]||(e[9]=w=>St(p.value))},{default:l(()=>[...e[81]||(e[81]=[u(" 关联支付单 ",-1)])]),_:1})),[[$,["tcm.prescriptionOrder/addPayOrder"]]]):f("",!0),_t(p.value)?O((o(),v(g,{key:6,type:"primary",size:"small",plain:"",onClick:e[10]||(e[10]=w=>Nt(p.value))},{default:l(()=>[...e[82]||(e[82]=[u(" 完成订单 ",-1)])]),_:1})),[[$,["tcm.prescriptionOrder/complete"]]]):f("",!0)])):f("",!0)])]}),default:l(()=>[Qe.value?(o(),v(Ba,{key:0,rows:12,animated:"",class:"px-6 py-4"})):p.value?(o(),_("div",gs,[n("div",bs,[a(Ma,{active:Te.value,"align-center":"","finish-status":"success"},{default:l(()=>[a(he,{title:"业务订单创建",description:Z(p.value.create_time)},null,8,["description"]),a(he,{title:"处方单双审",status:$e.value},{description:l(()=>[$e.value==="error"?(o(),_("span",xs,"处方被驳回")):$e.value==="wait"?(o(),_("span",ks,"等待审核")):$e.value==="success"?(o(),_("span",ws,"双审通过")):(o(),_("span",hs,"进行中"))]),_:1},8,["status"]),a(he,{title:"支付单审核",status:je.value},{description:l(()=>[je.value==="error"?(o(),_("span",Vs,"支付审核驳回")):je.value==="wait"?(o(),_("span",Ss,"等待审核")):je.value==="success"?(o(),_("span",Ns,"审核通过")):(o(),_("span",Cs,"进行中"))]),_:1},8,["status"]),a(he,{title:"发货与履约",status:de.value},{description:l(()=>[de.value==="process"?(o(),_("span",Os,"等待发货/补充单号")):de.value==="wait"?(o(),_("span",As,"待转入履约")):de.value==="success"?(o(),_("span",Ps,"已发货")):de.value==="error"?(o(),_("span",Es,"订单已取消")):f("",!0)]),_:1},8,["status"]),a(he,{title:"订单完成"})]),_:1},8,["active"])]),a(le,{gutter:16,class:"mb-5"},{default:l(()=>[a(F,{xs:12,sm:8},{default:l(()=>[a(A,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[83]||(e[83]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"业务金额",-1)),n("div",Ts,"¥"+r(p.value.amount),1)]),_:1})]),_:1}),a(F,{xs:12,sm:8},{default:l(()=>[a(A,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[84]||(e[84]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"关联订单总额",-1)),n("div",$s,"¥"+r(p.value.linked_pay_paid_total||0),1)]),_:1})]),_:1}),a(F,{xs:12,sm:8},{default:l(()=>[a(A,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[85]||(e[85]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"关联收款笔数",-1)),n("div",js,r(Ye.value.length)+" 笔",1)]),_:1})]),_:1})]),_:1}),n("div",Us,[a(A,{shadow:"never",class:"po-panel po-panel-rx border-gray-100 h-full relative overflow-hidden"},{header:l(()=>[n("div",Ds,[n("div",Is,[e[91]||(e[91]=n("span",{class:"font-medium text-[15px]"},"处方详情",-1)),p.value.doctor_name?(o(),_("span",Ls,[e[88]||(e[88]=u(" 开方人:",-1)),n("span",qs,r(p.value.doctor_name),1)])):f("",!0),p.value.prescription_id?(o(),v(g,{key:1,type:"primary",size:"small",link:"",onClick:e[11]||(e[11]=s=>La(p.value))},{default:l(()=>[...e[89]||(e[89]=[u(" 详细 ",-1)])]),_:1})):f("",!0),p.value.id?(o(),v(g,{key:2,type:"warning",size:"small",link:"",loading:ae.value,icon:I(jt),onClick:Sa},{default:l(()=>[...e[90]||(e[90]=[u(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):f("",!0)]),n("span",Fs,"ID: "+r(p.value.prescription_id||"—"),1)])]),default:l(()=>[p.value.prescription_audit_status===1?(o(),_("div",Rs,[...e[86]||(e[86]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):f("",!0),p.value.prescription_audit_status===2?(o(),_("div",zs,[...e[87]||(e[87]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):f("",!0),String(p.value.prescription_detail_error||"").trim()?(o(),v(se,{key:2,title:p.value.prescription_detail_error,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},null,8,["title"])):h.value?(o(),_(z,{key:3},[a(Ve,{column:2,border:"",size:"small",class:"po-desc bg-white"},{default:l(()=>[a(k,{label:"处方编号",span:2},{default:l(()=>[u(r(h.value.sn||"—"),1)]),_:1}),a(k,{label:"患者"},{default:l(()=>[u(r(h.value.patient_name||"—"),1)]),_:1}),a(k,{label:"性别 / 年龄"},{default:l(()=>[u(r(h.value.gender_desc||"—")+" · "+r(h.value.age??"—")+"岁 ",1)]),_:1}),a(k,{label:"手机"},{default:l(()=>[u(r(h.value.phone||"—"),1)]),_:1}),a(k,{label:"处方日期"},{default:l(()=>[u(r(h.value.prescription_date||"—"),1)]),_:1}),a(k,{label:"医师"},{default:l(()=>[u(r(h.value.doctor_name||"—"),1)]),_:1}),a(k,{label:"类型"},{default:l(()=>[u(r(h.value.prescription_type||"—"),1)]),_:1}),a(k,{label:"临床诊断",span:2},{default:l(()=>[u(r(h.value.clinical_diagnosis||"—"),1)]),_:1}),a(k,{label:"剂数 / 用法",span:2},{default:l(()=>[u(r(p.value.dose_count??h.value.dose_count??"—")+" "+r(p.value.dose_unit||"剂")+" · "+r(h.value.usage_instruction||h.value.usage_method||"—"),1)]),_:1}),a(k,{label:"处方金额"},{default:l(()=>[n("span",Bs,"¥"+r(h.value.amount??"—"),1)]),_:1}),a(k,{label:"消费者审核"},{default:l(()=>[a(T,{type:ua(h.value.audit_status),size:"small"},{default:l(()=>[u(r(oa(h.value.audit_status)),1)]),_:1},8,["type"])]),_:1}),a(k,{label:"用量"},{default:l(()=>[h.value.dosage_amount?(o(),_(z,{key:0},[u(r(h.value.dosage_amount)+r(h.value.dosage_unit||"g")+" ",1),h.value.prescription_type==="饮片"&&h.value.need_decoction!==null?(o(),_("span",Ms," ("+r(h.value.need_decoction?"代煎":"不代煎")+") ",1)):f("",!0)],64)):(o(),_(z,{key:1},[u("—")],64))]),_:1}),a(k,{label:"服用方式"},{default:l(()=>[h.value.usage_days||h.value.times_per_day?(o(),_(z,{key:0},[h.value.usage_days?(o(),_("span",Gs,"服用"+r(h.value.usage_days)+"天",1)):f("",!0),h.value.usage_days&&h.value.times_per_day?(o(),_("span",Hs,",")):f("",!0),h.value.times_per_day?(o(),_("span",Ks,"每天"+r(h.value.times_per_day)+"次",1)):f("",!0)],64)):(o(),_(z,{key:1},[u("—")],64))]),_:1}),a(k,{label:"状态",span:2},{default:l(()=>[a(T,{type:Number(h.value.void_status)===1?"danger":"success",size:"small"},{default:l(()=>[u(r(Number(h.value.void_status)===1?"已作废":"正常"),1)]),_:1},8,["type"])]),_:1})]),_:1}),na.value?(o(),_("div",Ws,[e[92]||(e[92]=n("div",{class:"text-xs font-medium text-gray-500 mb-2 px-1"},"药材明细",-1)),vt.value.length?(o(),v(we,{key:0,data:vt.value,size:"small",border:"",stripe:"","max-height":"260"},{default:l(()=>[a(b,{type:"index",label:"#",width:"48",align:"center"}),a(b,{prop:"name",label:"药名","min-width":"120","show-overflow-tooltip":""}),a(b,{prop:"dosage",label:"用量(g)",width:"96",align:"right"})]),_:1},8,["data"])):(o(),v(ie,{key:1,description:"无处方药材明细","image-size":64}))])):h.value?(o(),v(se,{key:1,type:"warning",closable:!1,"show-icon":"",class:"mt-4",title:"无权限查看药材明细",description:"无权限"})):f("",!0)],64)):(o(),v(ie,{key:4,description:"无处方数据","image-size":72}))]),_:1}),n("div",Qs,[a(A,{shadow:"never",class:"po-panel border-gray-100"},{header:l(()=>[...e[93]||(e[93]=[n("div",{class:"flex items-center justify-between"},[n("span",{class:"font-medium text-[15px]"},"未关联的收款记录"),n("span",{class:"text-xs text-gray-400"},"本诊单下未被占用的支付单")],-1)])]),default:l(()=>[X.value.length?(o(),v(we,{key:0,data:X.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:l(()=>[a(b,{prop:"id",label:"ID",width:"70"}),a(b,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),a(b,{label:"类型",width:"90"},{default:l(({row:s})=>[u(r(s.order_type_desc||Ee(s.order_type)),1)]),_:1}),a(b,{label:"金额",width:"86",align:"right"},{default:l(({row:s})=>[n("span",Ys,"¥"+r(s.amount),1)]),_:1}),a(b,{label:"状态",width:"82",align:"center"},{default:l(({row:s})=>[a(T,{type:yt(s.status),size:"small"},{default:l(()=>[u(r(s.status_desc||ft(s.status)),1)]),_:2},1032,["type"])]),_:1}),a(b,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),a(b,{label:"创建时间","min-width":"136"},{default:l(({row:s})=>[u(r(gt(s.create_time)),1)]),_:1})]),_:1},8,["data"])):(o(),v(ie,{key:1,description:"无未关联的收款单","image-size":60}))]),_:1}),a(A,{shadow:"never",class:"po-panel po-panel-pay border-gray-100 relative overflow-hidden"},{header:l(()=>[n("div",Xs,[n("div",ei,[e[97]||(e[97]=n("span",{class:"font-medium text-[15px]"},"关联收款记录",-1)),p.value.creator_name?(o(),_("span",ti,[e[96]||(e[96]=u(" 创建人:",-1)),n("span",ai,r(p.value.creator_name),1)])):f("",!0)])])]),default:l(()=>[p.value.payment_slip_audit_status===1?(o(),_("div",Js,[...e[94]||(e[94]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):f("",!0),p.value.payment_slip_audit_status===2?(o(),_("div",Zs,[...e[95]||(e[95]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):f("",!0),Ye.value.length?(o(),v(we,{key:2,data:Ye.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:l(()=>[a(b,{prop:"id",label:"ID",width:"70"}),a(b,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),a(b,{label:"类型",width:"90"},{default:l(({row:s})=>[u(r(s.order_type_desc||Ee(s.order_type)),1)]),_:1}),a(b,{label:"金额",width:"86",align:"right"},{default:l(({row:s})=>[n("span",li,"¥"+r(s.amount),1)]),_:1}),a(b,{label:"状态",width:"82",align:"center"},{default:l(({row:s})=>[a(T,{type:yt(s.status),size:"small"},{default:l(()=>[u(r(s.status_desc||ft(s.status)),1)]),_:2},1032,["type"])]),_:1}),a(b,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),a(b,{label:"创建时间","min-width":"136"},{default:l(({row:s})=>[u(r(gt(s.create_time)),1)]),_:1})]),_:1},8,["data"])):(o(),v(ie,{key:3,description:"未关联收款单","image-size":60}))]),_:1})])]),a(A,{shadow:"never",class:"po-panel po-panel-biz border-gray-100 mb-4"},{header:l(()=>[...e[98]||(e[98]=[n("span",{class:"font-medium text-[15px]"},"履约与收货信息",-1)])]),default:l(()=>[a(Ve,{column:3,border:"",size:"small",class:"po-desc"},{default:l(()=>[a(k,{label:"诊单ID"},{default:l(()=>[u(r(p.value.diagnosis_id),1)]),_:1}),a(k,{label:"创建时间"},{default:l(()=>[u(r(Z(p.value.create_time)),1)]),_:1}),a(k,{label:"收货人"},{default:l(()=>[u(r(p.value.recipient_name),1)]),_:1}),a(k,{label:"手机"},{default:l(()=>[u(r(p.value.recipient_phone),1)]),_:1}),a(k,{label:"收货地址",span:2},{default:l(()=>[u(r(ra.value),1)]),_:1}),a(k,{label:"复诊"},{default:l(()=>[u(r(p.value.is_follow_up?"是":"否"),1)]),_:1}),a(k,{label:"用药疗程"},{default:l(()=>[u(r(p.value.medication_days?p.value.medication_days+" 天":"—"),1)]),_:1}),a(k,{label:"上次医护"},{default:l(()=>[u(r(p.value.prev_staff||"—"),1)]),_:1}),a(k,{label:"服务渠道"},{default:l(()=>[u(r(p.value.service_channel||"—"),1)]),_:1}),a(k,{label:"服务套餐"},{default:l(()=>[u(r(Kt(p.value.service_package)),1)]),_:1}),a(k,{label:"费用类别"},{default:l(()=>[u(r(Ee(p.value.fee_type)),1)]),_:1}),p.value.internal_cost!=null&&p.value.internal_cost!==""?(o(),v(k,{key:0,label:"内部成本"},{default:l(()=>[u(" ¥"+r(p.value.internal_cost),1)]),_:1})):f("",!0),a(k,{label:"快递单号",span:p.value.internal_cost!=null&&p.value.internal_cost!==""?1:2},{default:l(()=>[u(r(p.value.tracking_number||"—"),1)]),_:1},8,["span"]),a(k,{label:"快递公司"},{default:l(()=>[u(r(ma(p.value.express_company)),1)]),_:1}),a(k,{label:"备注",span:3},{default:l(()=>[u(r(p.value.remark_extra||"—"),1)]),_:1}),a(k,{label:"处方审核意见",span:3},{default:l(()=>[n("span",si,r(p.value.prescription_audit_remark||"—"),1)]),_:1}),a(k,{label:"支付审核意见",span:3},{default:l(()=>[n("span",ii,r(p.value.payment_slip_audit_remark||"—"),1)]),_:1})]),_:1})]),_:1}),String(p.value.tracking_number||"").trim()?(o(),v(A,{key:0,shadow:"never",class:"po-panel po-panel-logistics border-gray-100"},{header:l(()=>[...e[99]||(e[99]=[n("span",{class:"font-medium text-[15px]"},"物流轨迹",-1)])]),default:l(()=>{var s,S,w,E,Ce,Oe;return[e[105]||(e[105]=n("p",{class:"po-logistics-tip text-gray-400 text-xs mb-3 font-normal"}," 优先读库,无记录时走快递100;顺丰建议手机后四位正确(已自动带入收货手机)。 ",-1)),n("div",ni,[a(V,{modelValue:pe.value,"onUpdate:modelValue":e[12]||(e[12]=W=>pe.value=W),placeholder:"承运商",style:{width:"140px"}},{default:l(()=>[a(c,{label:"自动识别",value:"auto"}),a(c,{label:"顺丰速运",value:"sf"}),a(c,{label:"京东快递",value:"jd"}),a(c,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),O((o(),v(g,{type:"primary",plain:"",size:"default",loading:Ue.value,onClick:xt},{icon:l(()=>[a(U,null,{default:l(()=>[a(I(Cl))]),_:1})]),default:l(()=>[e[100]||(e[100]=u(" 刷新轨迹 ",-1))]),_:1},8,["loading"])),[[$,["tcm.prescriptionOrder/logisticsTrace"]]]),n("div",ri,[a(rt,{href:Je.value.sf,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:l(()=>[...e[101]||(e[101]=[u("顺丰官网",-1)])]),_:1},8,["href"]),a(rt,{href:Je.value.jd,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:l(()=>[...e[102]||(e[102]=[u("京东物流",-1)])]),_:1},8,["href"]),a(rt,{href:Je.value.jt,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:l(()=>[...e[103]||(e[103]=[u("极兔",-1)])]),_:1},8,["href"])])]),String(((s=j.value)==null?void 0:s.hint)||"").trim()?(o(),v(se,{key:0,title:String(((S=j.value)==null?void 0:S.hint)||""),type:"info",closable:!1,class:"mb-4","show-icon":""},null,8,["title"])):f("",!0),Ue.value&&!j.value?(o(),_("div",oi,[a(U,{class:"is-loading mr-1"},{default:l(()=>[a(I(Ol))]),_:1}),e[104]||(e[104]=u("正在加载物流轨迹... ",-1))])):j.value?(o(),_("div",ui,[(w=j.value)!=null&&w.state_text?(o(),_("div",di,[n("span",pi,"状态:"+r(j.value.state_text),1),(E=j.value)!=null&&E.carrier_label?(o(),v(T,{key:0,size:"small",type:"info"},{default:l(()=>[u(r(j.value.carrier_label),1)]),_:1})):f("",!0),(Ce=j.value)!=null&&Ce.source?(o(),_("span",mi," ["+r(j.value.source==="database"?"数据库缓存":"API拉取")+"] ",1)):f("",!0),(Oe=j.value)!=null&&Oe.last_query_time?(o(),_("span",ci," 更新时间:"+r(j.value.last_query_time),1)):f("",!0)])):f("",!0),bt.value.length?(o(),v(Pt,{key:1,class:"mt-2 pl-2"},{default:l(()=>[(o(!0),_(z,null,oe(bt.value,(W,Q)=>(o(),v(At,{key:Q,type:Q===0?"primary":"info",hollow:Q!==0,timestamp:W.time,placement:"top"},{default:l(()=>[n("span",{class:zt(Q===0?"text-gray-800 font-medium":"text-gray-500")},r(W.context),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(o(),v(ie,{key:2,description:"暂无轨迹节点记录","image-size":64}))])):f("",!0)]}),_:1})):f("",!0),a(A,{shadow:"never",class:"po-panel border-gray-100 mt-4"},{header:l(()=>[...e[106]||(e[106]=[n("span",{class:"font-medium text-[15px]"},"操作日志",-1)])]),default:l(()=>[me.value.length?(o(),v(Pt,{key:0,class:"mt-2 pl-2"},{default:l(()=>[(o(!0),_(z,null,oe(me.value,(s,S)=>(o(),v(At,{key:s.id,type:S===0?"primary":"info",hollow:S!==0,timestamp:Z(s.create_time),placement:"top"},{default:l(()=>[n("div",_i,[n("span",fi,r(s.admin_name),1),a(T,{size:"small",type:"info"},{default:l(()=>[u(r(pa(s.action)),1)]),_:2},1024)]),n("span",{class:zt(S===0?"text-gray-800 font-medium":"text-gray-500")},r(s.summary),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(o(),v(ie,{key:1,description:"暂无操作日志","image-size":64}))]),_:1})])):f("",!0)]),_:1},8,["modelValue"]),a(Ne,{modelValue:K.value,"onUpdate:modelValue":e[33]||(e[33]=s=>K.value=s),title:"编辑业务订单",width:"680px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[34]||(e[34]=s=>{var S;return(S=ce.value)==null?void 0:S.clearValidate()})},{footer:l(()=>[a(g,{onClick:e[32]||(e[32]=s=>K.value=!1)},{default:l(()=>[...e[112]||(e[112]=[u("取消",-1)])]),_:1}),a(g,{type:"primary",loading:Xe.value,onClick:ba},{default:l(()=>[...e[113]||(e[113]=[u("确认保存",-1)])]),_:1},8,["loading"])]),default:l(()=>[O((o(),v(G,{ref_key:"editFormRef",ref:ce,model:m,rules:ya,"label-width":"110px",class:"pr-4"},{default:l(()=>[a(le,{gutter:24},{default:l(()=>[a(F,{span:12},{default:l(()=>[a(d,{label:"收货人",prop:"recipient_name"},{default:l(()=>[a(i,{modelValue:m.recipient_name,"onUpdate:modelValue":e[14]||(e[14]=s=>m.recipient_name=s),maxlength:"50"},null,8,["modelValue"])]),_:1})]),_:1}),a(F,{span:12},{default:l(()=>[a(d,{label:"收货手机",prop:"recipient_phone"},{default:l(()=>[a(i,{modelValue:m.recipient_phone,"onUpdate:modelValue":e[15]||(e[15]=s=>m.recipient_phone=s),maxlength:"20"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),a(d,{label:"省/市/区",prop:"region"},{default:l(()=>[a(Ga,{modelValue:m.region,"onUpdate:modelValue":e[16]||(e[16]=s=>m.region=s),options:Pe.value,props:{emitPath:!0},placeholder:"请选择省/市/区",clearable:"",filterable:"",class:"w-full"},null,8,["modelValue","options"])]),_:1}),a(d,{label:"详细地址",prop:"shipping_address"},{default:l(()=>[a(i,{modelValue:m.shipping_address,"onUpdate:modelValue":e[17]||(e[17]=s=>m.shipping_address=s),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),a(le,{gutter:24},{default:l(()=>[a(F,{span:12},{default:l(()=>[a(d,{label:"是否复诊"},{default:l(()=>[a(Ha,{modelValue:m.is_follow_up,"onUpdate:modelValue":e[18]||(e[18]=s=>m.is_follow_up=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),a(F,{span:12},{default:l(()=>[a(d,{label:"用药疗程"},{default:l(()=>[a(Se,{modelValue:m.medication_days,"onUpdate:modelValue":e[19]||(e[19]=s=>m.medication_days=s),min:1,max:999,step:1,class:"w-full",placeholder:"天数(选填)"},{append:l(()=>[...e[107]||(e[107]=[u("天",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),a(le,{gutter:24},{default:l(()=>[a(F,{span:12},{default:l(()=>[a(d,{label:"剂数",prop:"dose_count"},{default:l(()=>[a(Se,{modelValue:m.dose_count,"onUpdate:modelValue":e[20]||(e[20]=s=>m.dose_count=s),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),a(F,{span:12},{default:l(()=>[a(d,{label:"剂量单位",prop:"dose_unit"},{default:l(()=>[a(V,{modelValue:m.dose_unit,"onUpdate:modelValue":e[21]||(e[21]=s=>m.dose_unit=s),placeholder:"请选择",class:"w-full"},{default:l(()=>[a(c,{label:"剂",value:"剂"}),a(c,{label:"丸",value:"丸"}),a(c,{label:"袋",value:"袋"}),a(c,{label:"盒",value:"盒"}),a(c,{label:"瓶",value:"瓶"}),a(c,{label:"膏",value:"膏"}),a(c,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),m.id?(o(),v(le,{key:0,gutter:24},{default:l(()=>[a(F,{span:24},{default:l(()=>[a(d,{label:"甘草预下单"},{default:l(()=>[a(g,{type:"primary",plain:"",loading:ae.value,icon:I(jt),onClick:Va},{default:l(()=>[...e[108]||(e[108]=[u(" 测试价格 ",-1)])]),_:1},8,["loading","icon"]),e[109]||(e[109]=n("span",{class:"ml-3 text-xs text-gray-400"}," 测试当前配置的甘草预下单价格(不会真实提交订单) ",-1))]),_:1})]),_:1})]),_:1})):f("",!0),a(d,{label:"上次医生"},{default:l(()=>[a(i,{modelValue:m.prev_staff,"onUpdate:modelValue":e[22]||(e[22]=s=>m.prev_staff=s),maxlength:"100",placeholder:"上次诊疗的医生/医助"},null,8,["modelValue"])]),_:1}),a(le,{gutter:24},{default:l(()=>[a(F,{span:12},{default:l(()=>[a(d,{label:"服务渠道"},{default:l(()=>[a(i,{modelValue:m.service_channel,"onUpdate:modelValue":e[23]||(e[23]=s=>m.service_channel=s),maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),a(F,{span:12},{default:l(()=>[a(d,{label:"服务套餐"},{default:l(()=>[a(V,{modelValue:m.service_package,"onUpdate:modelValue":e[24]||(e[24]=s=>m.service_package=s),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"请选择服务套餐",clearable:"",class:"w-full"},{default:l(()=>[(o(!0),_(z,null,oe(ue.value,s=>(o(),v(c,{key:s.value,label:s.name,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),a(d,{label:"物流设置"},{default:l(()=>[n("div",vi,[a(V,{modelValue:m.express_company,"onUpdate:modelValue":e[25]||(e[25]=s=>m.express_company=s),placeholder:"承运商",class:"w-[140px]"},{default:l(()=>[a(c,{label:"自动识别",value:"auto"}),a(c,{label:"顺丰速运",value:"sf"}),a(c,{label:"京东快递",value:"jd"}),a(c,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),a(i,{modelValue:m.tracking_number,"onUpdate:modelValue":e[26]||(e[26]=s=>m.tracking_number=s),maxlength:"80",placeholder:"快递单号",class:"flex-1"},null,8,["modelValue"])])]),_:1}),a(d,{label:"费用类别",prop:"fee_type"},{default:l(()=>[a(V,{modelValue:m.fee_type,"onUpdate:modelValue":e[27]||(e[27]=s=>m.fee_type=s),class:"w-full"},{default:l(()=>[a(c,{label:"挂号费",value:1}),a(c,{label:"问诊费",value:2}),a(c,{label:"药品费用",value:3}),a(c,{label:"首付费用",value:4}),a(c,{label:"尾款费用",value:5}),a(c,{label:"其他费用",value:6}),a(c,{label:"全部费用",value:7})]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"关联支付单"},{default:l(()=>[a(V,{modelValue:m.pay_order_ids,"onUpdate:modelValue":e[28]||(e[28]=s=>m.pay_order_ids=s),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"多选本诊单已支付收款单",loading:et.value},{default:l(()=>[(o(!0),_(z,null,oe(_e.value,s=>(o(),v(c,{key:s.id,label:`${s.order_no} · ¥${s.amount} · ${tt(s.order_type)}`,value:s.id,class:"!h-auto py-1.5"},{default:l(()=>[n("div",yi,[n("div",gi,[n("span",bi,r(s.order_no),1),n("span",xi,"¥"+r(s.amount),1)]),n("div",ki,[n("span",wi,[u(r(tt(s.order_type)),1),s.remark?(o(),_(z,{key:0},[u(" · "+r(s.remark),1)],64)):f("",!0)]),n("span",hi,r(String(s.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),n("div",Vi,[e[110]||(e[110]=u(" 可对照此处关联收款记录。已选收款合计:",-1)),n("span",Si,"¥"+r(J(_a.value)),1),e[111]||(e[111]=u("。 ",-1))])]),_:1}),a(d,{label:"订单金额",prop:"amount"},{default:l(()=>[a(Se,{modelValue:m.amount,"onUpdate:modelValue":e[29]||(e[29]=s=>m.amount=s),min:fa.value,step:.01,precision:2,class:"w-full font-medium"},null,8,["modelValue","min"]),ee.value>0?(o(),_("div",Ni," 须 ≥ 定金门槛 ¥"+r(J(ee.value))+"。若您手动填写的金额比关联的支付总额小,请确保符合您的业务逻辑。 ",1)):f("",!0)]),_:1}),O((o(),v(d,{label:"内部成本"},{default:l(()=>[a(Se,{modelValue:m.internal_cost,"onUpdate:modelValue":e[30]||(e[30]=s=>m.internal_cost=s),min:0,step:.01,precision:2,class:"w-full",placeholder:"内部管理核算(选填)"},null,8,["modelValue"])]),_:1})),[[$,["finance.account_log/lists"]]]),a(d,{label:"备注补充"},{default:l(()=>[a(i,{modelValue:m.remark_extra,"onUpdate:modelValue":e[31]||(e[31]=s=>m.remark_extra=s),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])),[[ne,Ze.value]])]),_:1},8,["modelValue"]),a(Ne,{modelValue:fe.value,"onUpdate:modelValue":e[39]||(e[39]=s=>fe.value=s),title:xa.value,width:"480px","destroy-on-close":"",onClosed:e[40]||(e[40]=s=>te.value="")},{footer:l(()=>[a(g,{onClick:e[36]||(e[36]=s=>fe.value=!1)},{default:l(()=>[...e[115]||(e[115]=[u("取消",-1)])]),_:1}),a(g,{type:"primary",loading:ze.value,onClick:e[37]||(e[37]=s=>wt("approve"))},{default:l(()=>[...e[116]||(e[116]=[u("同意通过",-1)])]),_:1},8,["loading"]),a(g,{type:"danger",loading:ze.value,onClick:e[38]||(e[38]=s=>wt("reject"))},{default:l(()=>[...e[117]||(e[117]=[u("驳回阻止",-1)])]),_:1},8,["loading"])]),default:l(()=>[ve.value&&ve.value.completion_request===1?(o(),v(se,{key:0,title:"完单申请",type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:l(()=>[n("div",Ci,[e[114]||(e[114]=n("div",{class:"font-medium mb-1"},"该订单已申请完成",-1)),n("div",Oi," 申请人:"+r(ve.value.completion_request_by_name||"—"),1),n("div",Ai," 申请时间:"+r(Z(ve.value.completion_request_time)),1)])]),_:1})):f("",!0),e[118]||(e[118]=n("p",{class:"text-[13px] text-gray-500 mb-3 bg-gray-50/80 border border-gray-100 p-2 rounded"},"驳回时必须填写意见;通过时意见选填。",-1)),a(i,{modelValue:te.value,"onUpdate:modelValue":e[35]||(e[35]=s=>te.value=s),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"在此输入审核意见..."},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),a(Ne,{modelValue:ye.value,"onUpdate:modelValue":e[44]||(e[44]=s=>ye.value=s),title:"修改快递单号",width:"420px","destroy-on-close":"","close-on-click-modal":!1},{footer:l(()=>[a(g,{onClick:e[43]||(e[43]=s=>ye.value=!1)},{default:l(()=>[...e[120]||(e[120]=[u("取消",-1)])]),_:1}),a(g,{type:"primary",loading:Ie.value,onClick:ht},{default:l(()=>[...e[121]||(e[121]=[u("保存单号",-1)])]),_:1},8,["loading"])]),default:l(()=>[O((o(),v(G,{"label-width":"90px",class:"pr-2",onSubmit:$t(ht,["prevent"])},{default:l(()=>[a(d,{label:"承运商"},{default:l(()=>[a(V,{modelValue:D.express_company,"onUpdate:modelValue":e[41]||(e[41]=s=>D.express_company=s),class:"w-full",placeholder:"选择承运商"},{default:l(()=>[a(c,{label:"自动识别",value:"auto"}),a(c,{label:"顺丰速运",value:"sf"}),a(c,{label:"京东快递",value:"jd"}),a(c,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"快递单号"},{default:l(()=>[a(i,{modelValue:D.tracking_number,"onUpdate:modelValue":e[42]||(e[42]=s=>D.tracking_number=s),maxlength:"80",placeholder:"请输入快递单号",clearable:"",autofocus:""},null,8,["modelValue"])]),_:1}),e[119]||(e[119]=n("div",{class:"text-xs text-gray-400 pl-[90px] -mt-1 leading-relaxed"}," 仅更新快递信息,其他字段不受影响。 ",-1))]),_:1})),[[ne,Ie.value]])]),_:1},8,["modelValue"]),a(Ne,{modelValue:be.value,"onUpdate:modelValue":e[48]||(e[48]=s=>be.value=s),title:"确认发货",width:"440px","destroy-on-close":"","close-on-click-modal":!1},{footer:l(()=>[a(g,{onClick:e[47]||(e[47]=s=>be.value=!1)},{default:l(()=>[...e[122]||(e[122]=[u("取消",-1)])]),_:1}),a(g,{type:"primary",loading:Le.value,onClick:Vt},{default:l(()=>[...e[123]||(e[123]=[u(" 确认发货 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(se,{title:"确认后订单状态将变更为「已发货」,请核对快递信息无误。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),O((o(),v(G,{"label-width":"90px",class:"pr-2",onSubmit:$t(Vt,["prevent"])},{default:l(()=>[a(d,{label:"承运商"},{default:l(()=>[a(V,{modelValue:H.express_company,"onUpdate:modelValue":e[45]||(e[45]=s=>H.express_company=s),class:"w-full"},{default:l(()=>[a(c,{label:"自动识别",value:"auto"}),a(c,{label:"顺丰速运",value:"sf"}),a(c,{label:"京东快递",value:"jd"}),a(c,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"快递单号"},{default:l(()=>[a(i,{modelValue:H.tracking_number,"onUpdate:modelValue":e[46]||(e[46]=s=>H.tracking_number=s),maxlength:"80",placeholder:"请输入快递单号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1})),[[ne,Le.value]])]),_:1},8,["modelValue"]),a(Ne,{modelValue:xe.value,"onUpdate:modelValue":e[56]||(e[56]=s=>xe.value=s),title:"补齐支付单",width:"600px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[57]||(e[57]=s=>{var S;return(S=Be.value)==null?void 0:S.clearValidate()})},{footer:l(()=>[a(g,{onClick:e[55]||(e[55]=s=>xe.value=!1)},{default:l(()=>[...e[130]||(e[130]=[u("取消",-1)])]),_:1}),a(g,{type:"primary",loading:Fe.value,onClick:Pa},{default:l(()=>[...e[131]||(e[131]=[u("确认新增",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(se,{title:"可以手动创建新支付单,或关联已存在但未绑定的支付单。",type:"info",closable:!1,"show-icon":"",class:"mb-4"}),O((o(),v(G,{ref_key:"addPayOrderFormRef",ref:Be,model:N,rules:Oa,"label-width":"90px",class:"pr-2"},{default:l(()=>[a(d,{label:"添加方式",prop:"add_mode"},{default:l(()=>[a(Et,{modelValue:N.add_mode,"onUpdate:modelValue":e[49]||(e[49]=s=>N.add_mode=s)},{default:l(()=>[a(He,{value:"create"},{default:l(()=>[...e[124]||(e[124]=[u("手动创建",-1)])]),_:1}),a(He,{value:"link"},{default:l(()=>[...e[125]||(e[125]=[u("关联已有",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),N.add_mode==="create"?(o(),_(z,{key:0},[a(d,{label:"费用类别",prop:"order_type"},{default:l(()=>[a(V,{modelValue:N.order_type,"onUpdate:modelValue":e[50]||(e[50]=s=>N.order_type=s),class:"w-full"},{default:l(()=>[a(c,{label:"挂号费",value:1}),a(c,{label:"问诊费",value:2}),a(c,{label:"药品费用",value:3}),a(c,{label:"首付费用",value:4}),a(c,{label:"尾款费用",value:5}),a(c,{label:"其他费用",value:6}),a(c,{label:"全部费用",value:7})]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"支付金额",prop:"pay_amount"},{default:l(()=>[a(Se,{modelValue:N.pay_amount,"onUpdate:modelValue":e[51]||(e[51]=s=>N.pay_amount=s),min:.01,step:.01,precision:2,class:"w-full",placeholder:"请输入支付金额(元)"},null,8,["modelValue"])]),_:1}),a(d,{label:"备注",prop:"pay_remark"},{default:l(()=>[a(i,{modelValue:N.pay_remark,"onUpdate:modelValue":e[52]||(e[52]=s=>N.pay_remark=s),type:"textarea",rows:3,maxlength:"200","show-word-limit":"",placeholder:"支付说明(选填)"},null,8,["modelValue"])]),_:1})],64)):(o(),v(d,{key:1,label:"选择支付单",prop:"link_pay_order_id"},{default:l(()=>[a(V,{modelValue:N.link_pay_order_ids,"onUpdate:modelValue":e[53]||(e[53]=s=>N.link_pay_order_ids=s),class:"w-full",placeholder:"选择未绑定的支付单(可多选)",loading:it.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":""},{default:l(()=>[(o(!0),_(z,null,oe(Me.value,s=>(o(),v(c,{key:s.id,label:`${s.order_no} · ¥${s.amount} · ${tt(s.order_type)}`,value:s.id},{default:l(()=>[n("div",Pi,[n("span",Ei,r(s.order_no),1),n("span",Ti,"¥"+r(s.amount),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),e[126]||(e[126]=n("div",{class:"text-xs text-gray-500 mt-1.5"}," 仅显示本诊单下未被其他业务订单占用的支付单,可同时选择多个 ",-1))]),_:1})),a(d,{label:"完单申请"},{default:l(()=>[a(Et,{modelValue:N.completion_request,"onUpdate:modelValue":e[54]||(e[54]=s=>N.completion_request=s)},{default:l(()=>[a(He,{value:0},{default:l(()=>[...e[127]||(e[127]=[u("不申请",-1)])]),_:1}),a(He,{value:1},{default:l(()=>[...e[128]||(e[128]=[u("申请完成订单",-1)])]),_:1})]),_:1},8,["modelValue"]),e[129]||(e[129]=n("div",{class:"text-xs text-gray-400 mt-1"},' 选择"申请完成订单"后,审核人员可在支付审核时看到此申请 ',-1))]),_:1})]),_:1},8,["model"])),[[ne,Fe.value]])]),_:1},8,["modelValue"]),a(ot,{modelValue:Ge.value,"onUpdate:modelValue":e[58]||(e[58]=s=>Ge.value=s),title:"查看处方",size:"920px","close-on-click-modal":!1},{default:l(()=>[O((o(),_("div",$i,[y.value?(o(),_("div",ji,[n("div",Ui,[n("h2",{class:"cf-slip-title"},r($a)+"处方笺"),n("div",Ri,[Number(y.value.void_status)===1?(o(),v(T,{key:0,type:"danger",size:"small"},{default:l(()=>[...e[132]||(e[132]=[u("已作废",-1)])]),_:1})):Number(y.value.business_prescription_audit_rejected)===1?(o(),v(T,{key:1,type:"danger",size:"small",class:"mr-1"},{default:l(()=>[...e[133]||(e[133]=[u("已驳回",-1)])]),_:1})):Number(y.value.audit_status)===1?(o(),v(T,{key:2,type:"success",size:"small",class:"mr-1"},{default:l(()=>[...e[134]||(e[134]=[u("已通过",-1)])]),_:1})):Number(y.value.audit_status)===0?(o(),v(T,{key:3,type:"warning",size:"small",class:"mr-1"},{default:l(()=>[...e[135]||(e[135]=[u("待审核",-1)])]),_:1})):(o(),v(T,{key:4,type:"danger",size:"small",class:"mr-1"},{default:l(()=>[...e[136]||(e[136]=[u("已驳回",-1)])]),_:1})),Number(y.value.void_status)!==1?(o(),_(z,{key:5},[e[137]||(e[137]=n("div",null,"普通处方",-1)),e[138]||(e[138]=n("div",{class:"text-sm"},"当日有效",-1))],64)):f("",!0)])]),Number(y.value.void_status)===1?(o(),_("div",zi," 作废人:"+r(y.value.void_by_name||"—")+",作废时间:"+r(za(y.value.void_time)),1)):Number(y.value.business_prescription_audit_rejected)===1?(o(),_("div",Di,[e[139]||(e[139]=n("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),y.value.business_prescription_audit_remark?(o(),_("div",Ii," 驳回意见:"+r(y.value.business_prescription_audit_remark),1)):(o(),_("div",Li,"暂无驳回意见说明。"))])):Number(y.value.audit_status)===2?(o(),_("div",qi,[e[140]||(e[140]=n("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),y.value.audit_remark?(o(),_("div",Fi,"驳回意见:"+r(y.value.audit_remark),1)):(o(),_("div",Bi,"暂无文字意见,请联系审核人员。"))])):f("",!0),n("div",Mi,[n("div",Gi,[n("span",Hi,[e[141]||(e[141]=n("em",null,"日期",-1)),u(r(y.value.prescription_date||"—"),1)]),n("span",Ki,[e[142]||(e[142]=n("em",null,"电话",-1)),u(r(y.value.phone||"—"),1)]),n("span",Wi,[e[143]||(e[143]=n("em",null,"门诊号",-1)),u(r(y.value.visit_no||"—"),1)])]),n("div",Qi,[n("span",Yi,[e[144]||(e[144]=n("em",null,"姓名",-1)),u(r(y.value.patient_name||"—"),1)]),n("span",Ji,[e[145]||(e[145]=n("em",null,"性别",-1)),u(r(Da(y.value.gender)),1)]),n("span",Zi,[e[146]||(e[146]=n("em",null,"年龄",-1)),u(r(Ia(y.value.age)),1)])]),y.value.pulse||y.value.tongue?(o(),_("div",Xi,[y.value.pulse?(o(),_("span",en,[e[147]||(e[147]=n("em",null,"面象",-1)),u(r(y.value.pulse),1)])):f("",!0),y.value.tongue?(o(),_("span",tn,[e[148]||(e[148]=n("em",null,"舌象",-1)),u(r(y.value.tongue),1)])):f("",!0)])):f("",!0),n("div",an,[n("span",ln,[e[149]||(e[149]=n("em",null,"临床诊断",-1)),u(r(y.value.clinical_diagnosis||"—"),1)])])]),n("div",sn,[e[150]||(e[150]=n("div",{class:"cf-slip-rp-label"},"RP",-1)),n("div",nn,[(o(!0),_(z,null,oe(Ra.value,(s,S)=>(o(),_("div",{key:S,class:"cf-slip-herb"},r(s.name)+" "+r(s.dosage)+"克 ",1))),128))])]),n("div",rn,[n("div",on,[n("div",null," 服用"+r(y.value.usage_days??y.value.dose_count)+"天, "+r(y.value.prescription_type||"浓缩水丸")+" "+r(y.value.usage_instruction||""),1),n("div",null,[u(" 服用时间: "+r(y.value.usage_time?" "+y.value.usage_time:"")+" ",1),e[151]||(e[151]=n("span",{class:"cf-slip-inline-gap"},null,-1)),u(" 服用方式: "+r(y.value.usage_way?" "+y.value.usage_way:""),1)]),Ct.value?(o(),_("div",un,"忌口:"+r(Ct.value),1)):f("",!0),y.value.usage_notes?(o(),_("div",dn,r(y.value.usage_notes),1)):f("",!0)]),n("div",pn,[n("span",mn,[e[152]||(e[152]=u(" 医师 ",-1)),y.value.doctor_signature?(o(),_("img",{key:0,src:y.value.doctor_signature,alt:"医师签名",class:"cf-slip-sign-img"},null,8,cn)):(o(),_("span",_n,r(y.value.doctor_name||"—"),1))])])]),n("div",{class:"cf-slip-hospital"},[n("div",null,r(ja)),n("div",null,r(Ua))]),y.value.audit_by_name||y.value.audit_remark?(o(),_("div",fn,[y.value.audit_by_name?(o(),_("div",vn,[u(" 审核人:"+r(y.value.audit_by_name)+" ",1),y.value.audit_time?(o(),_("span",yn,r(Ot(y.value.audit_time)),1)):f("",!0)])):f("",!0),y.value.audit_remark?(o(),_("div",gn,"审核意见:"+r(y.value.audit_remark),1)):f("",!0)])):f("",!0)])):f("",!0)])),[[ne,nt.value]])]),_:1},8,["modelValue"]),a(ot,{modelValue:De.value,"onUpdate:modelValue":e[59]||(e[59]=s=>De.value=s),title:"甘草预下单测试结果",size:"800px","destroy-on-close":""},{default:l(()=>{var s,S;return[P.value?(o(),_("div",bn,[a(A,{shadow:"never",class:"mb-4"},{header:l(()=>[n("div",xn,[e[154]||(e[154]=n("span",{class:"font-semibold"},"价格信息",-1)),a(T,{type:"success"},{default:l(()=>[...e[153]||(e[153]=[u("预下单成功",-1)])]),_:1})])]),default:l(()=>[a(Ve,{column:2,border:""},{default:l(()=>[a(k,{label:"药材成本"},{default:l(()=>{var w;return[n("span",kn,"¥"+r(((w=P.value.fee)==null?void 0:w.m_cost)||"0.00"),1)]}),_:1}),a(k,{label:"制作费"},{default:l(()=>{var w;return[n("span",wn,"¥"+r((((w=P.value.fee)==null?void 0:w.proces_cost)||0).toFixed(2)),1)]}),_:1}),a(k,{label:"物流费"},{default:l(()=>{var w;return[n("span",hn,"¥"+r((((w=P.value.fee)==null?void 0:w.lis_cost)||0).toFixed(2)),1)]}),_:1}),a(k,{label:"总计"},{default:l(()=>[n("span",Vn," ¥"+r(wa(P.value.fee)),1)]),_:1})]),_:1})]),_:1}),a(A,{shadow:"never",class:"mb-4"},{header:l(()=>[...e[155]||(e[155]=[n("span",{class:"font-semibold"},"配送信息",-1)])]),default:l(()=>[a(Ve,{column:2,border:""},{default:l(()=>[a(k,{label:"调配中心"},{default:l(()=>{var w;return[u(r(((w=P.value.result)==null?void 0:w.ds_name)||"—"),1)]}),_:1}),a(k,{label:"调配中心ID"},{default:l(()=>{var w;return[u(r(((w=P.value.result)==null?void 0:w.ds_id)||"—"),1)]}),_:1}),a(k,{label:"服用天数范围",span:2},{default:l(()=>{var w,E,Ce,Oe,W,Q;return[u(r(((E=(w=P.value.result)==null?void 0:w.take_days)==null?void 0:E.min)||"—")+" - "+r(((Oe=(Ce=P.value.result)==null?void 0:Ce.take_days)==null?void 0:Oe.max)||"—")+" 天 (默认: "+r(((Q=(W=P.value.result)==null?void 0:W.take_days)==null?void 0:Q.default)||"—")+" 天) ",1)]}),_:1})]),_:1})]),_:1}),(S=(s=P.value.result)==null?void 0:s.rule_check)!=null&&S.length?(o(),v(A,{key:0,shadow:"never",class:"mb-4"},{header:l(()=>[...e[156]||(e[156]=[n("span",{class:"font-semibold"},"医嘱备注",-1)])]),default:l(()=>[n("div",Sn,r(P.value.result.rule_check.map(w=>w.msg).join(" ")),1)]),_:1})):f("",!0),a(A,{shadow:"never"},{header:l(()=>{var w,E;return[n("div",Nn,[e[157]||(e[157]=n("span",{class:"font-semibold"},"药材明细",-1)),n("span",Cn,"共 "+r(((E=(w=P.value.result)==null?void 0:w.m_list)==null?void 0:E.length)||0)+" 味药",1)])]}),default:l(()=>{var w;return[a(we,{data:((w=P.value.result)==null?void 0:w.m_list)||[],border:"",stripe:"","max-height":"400"},{default:l(()=>[a(b,{type:"index",label:"#",width:"50",align:"center"}),a(b,{prop:"title",label:"药材名称","min-width":"120","show-overflow-tooltip":""}),a(b,{prop:"quantity",label:"用量",width:"80",align:"right"},{default:l(({row:E})=>[u(r(E.quantity)+r(E.unit),1)]),_:1}),a(b,{prop:"price",label:"单价(元/克)",width:"110",align:"right"},{default:l(({row:E})=>[u(" ¥"+r(Number(E.price).toFixed(4)),1)]),_:1}),a(b,{label:"小计",width:"100",align:"right"},{default:l(({row:E})=>[n("span",On," ¥"+r((Number(E.price)*Number(E.quantity)).toFixed(2)),1)]),_:1}),a(b,{prop:"is_available",label:"库存状态",width:"100",align:"center"},{default:l(({row:E})=>[a(T,{type:E.is_available===1?"success":"danger",size:"small"},{default:l(()=>[u(r(E.is_available===1?"有货":"缺货"),1)]),_:2},1032,["type"])]),_:1}),a(b,{prop:"brief",label:"备注","min-width":"120","show-overflow-tooltip":""})]),_:1},8,["data"])]}),_:1}),a(A,{shadow:"never",class:"mt-4"},{header:l(()=>[...e[158]||(e[158]=[n("span",{class:"font-semibold"},"订单信息",-1)])]),default:l(()=>[a(Ve,{column:2,border:""},{default:l(()=>[a(k,{label:"订单号",span:2},{default:l(()=>[u(r(P.value.order_no||"—"),1)]),_:1}),a(k,{label:"剂数"},{default:l(()=>[n("span",An,r(P.value.dose_count||"—")+"剂",1)]),_:1}),a(k,{label:"单剂量"},{default:l(()=>{var w;return[n("span",Pn,r(ha((w=P.value.result)==null?void 0:w.m_list))+"克 ",1)]}),_:1})]),_:1})]),_:1})])):f("",!0)]}),_:1},8,["modelValue"])])}}}),xr=Gl(Tn,[["__scopeId","data-v-ca6e9014"]]);export{xr as default};
diff --git a/server/public/admin/assets/order_list-g18expch.css b/server/public/admin/assets/order_list-g18expch.css
new file mode 100644
index 00000000..a9db5e31
--- /dev/null
+++ b/server/public/admin/assets/order_list-g18expch.css
@@ -0,0 +1 @@
+@charset "UTF-8";.prescription-order-page[data-v-ca6e9014]{max-width:1440px;margin:0 auto}.po-page-title[data-v-ca6e9014]{margin:0 0 6px;font-size:20px;font-weight:600;color:var(--el-text-color-primary);letter-spacing:.02em}.po-page-desc[data-v-ca6e9014]{margin:0;font-size:13px;line-height:1.55;color:var(--el-text-color-secondary)}.po-filter-card[data-v-ca6e9014]{border-radius:8px}.po-filter-card[data-v-ca6e9014] .el-card__body{padding-bottom:12px}.po-table-card[data-v-ca6e9014]{border-radius:8px}.po-table-card[data-v-ca6e9014] .el-card__body{padding-top:16px}.po-table-toolbar[data-v-ca6e9014]{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.po-table-title[data-v-ca6e9014]{font-size:16px;font-weight:600}.po-data-table[data-v-ca6e9014] th.el-table__cell{font-weight:600;background:var(--el-fill-color-light)!important}.po-detail-drawer[data-v-ca6e9014] .el-drawer__header{margin-bottom:0;padding:16px 24px;border-bottom:1px solid var(--el-border-color-lighter)}.stat-card[data-v-ca6e9014]{border-radius:8px}.stat-title[data-v-ca6e9014]{font-weight:500}.po-panel[data-v-ca6e9014]{border-radius:8px;transition:all .3s}.po-panel[data-v-ca6e9014] .el-card__header{padding:14px 16px;background-color:var(--el-bg-color-page);border-bottom:1px solid var(--el-border-color-lighter)}.po-panel[data-v-ca6e9014] .el-card__body{padding:16px}.po-desc[data-v-ca6e9014] .el-descriptions__label{width:120px;color:var(--el-text-color-regular)}.po-audit-remark[data-v-ca6e9014]{color:var(--el-color-danger);font-weight:600;white-space:pre-wrap;word-break:break-word}.cf-slip-wrap[data-v-ca6e9014]{min-height:160px}.cf-slip-print[data-v-ca6e9014]{width:100%;max-width:148mm;min-height:210mm;margin:0 auto;padding:20px 24px;background:#fff;font-size:14px;color:#333;box-sizing:border-box;border:1px solid var(--el-border-color-lighter);border-radius:4px}.cf-slip-header[data-v-ca6e9014]{display:flex;justify-content:space-between;align-items:flex-start;position:relative;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #ddd}.cf-slip-title[data-v-ca6e9014]{flex:1;text-align:center;font-size:20px;font-weight:600;margin:0;padding:0 120px 0 0;line-height:1.35}.cf-slip-type[data-v-ca6e9014]{position:absolute;right:0;top:0;text-align:right;font-size:14px;line-height:1.4}.cf-slip-void[data-v-ca6e9014]{font-size:13px;color:var(--el-color-danger);margin-bottom:12px;padding:8px 12px;background:#fef0f0;border-radius:4px}.cf-slip-info[data-v-ca6e9014]{margin-bottom:16px;padding:12px 0;border-bottom:1px solid #eee}.cf-slip-row[data-v-ca6e9014]{display:flex;flex-wrap:wrap;margin-bottom:10px;gap:8px 0}.cf-slip-row[data-v-ca6e9014]:last-child{margin-bottom:0}.cf-slip-row-full .cf-slip-item[data-v-ca6e9014]{flex:1 1 100%;min-width:100%}.cf-slip-item[data-v-ca6e9014]{flex:1;min-width:0;display:inline-flex;align-items:baseline;gap:6px;font-size:14px}.cf-slip-item em[data-v-ca6e9014]{font-style:normal;color:#909399;flex-shrink:0;min-width:56px}.cf-slip-rp[data-v-ca6e9014]{margin:16px 0;padding:12px;border:1px solid #eee}.cf-slip-rp-label[data-v-ca6e9014]{font-weight:600;margin-bottom:8px}.cf-slip-herbs[data-v-ca6e9014]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 16px}.cf-slip-herb[data-v-ca6e9014]{white-space:nowrap;font-size:14px}.cf-slip-footer[data-v-ca6e9014]{margin-top:16px;padding-top:12px;border-top:1px dashed #ddd;display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.cf-slip-footer-left[data-v-ca6e9014]{flex:1;min-width:0;line-height:1.6}.cf-slip-footer-right[data-v-ca6e9014]{flex-shrink:0}.cf-slip-inline-gap[data-v-ca6e9014]{display:inline-block;width:20px}.cf-slip-dietary[data-v-ca6e9014],.cf-slip-notes[data-v-ca6e9014]{margin-top:6px;font-size:13px}.cf-slip-sign[data-v-ca6e9014]{display:inline-flex;align-items:center;gap:8px}.cf-slip-sign-img[data-v-ca6e9014]{height:32px;max-width:120px;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.cf-slip-hospital[data-v-ca6e9014]{border-top:1px dashed #ddd;padding-top:12px;margin-top:16px;font-size:13px;color:#606266;line-height:1.65}.cf-slip-audit[data-v-ca6e9014]{font-size:13px;color:#606266;margin-top:16px;padding-top:12px;border-top:1px dashed #ddd}.audit-stamp[data-v-ca6e9014]{position:absolute;top:18px;right:-14px;width:72px;height:72px;border:3px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:rotate(20deg);opacity:.8;pointer-events:none;z-index:10;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:700;font-size:13px;letter-spacing:1px;box-shadow:inset 0 0 0 1px #ffffff80}.audit-stamp[data-v-ca6e9014]:after{content:"";position:absolute;top:4px;left:4px;right:4px;bottom:4px;border:1px double currentColor;border-radius:50%;opacity:.6}.audit-stamp .stamp-inner[data-v-ca6e9014]{text-align:center;line-height:1.1}.stamp-pass[data-v-ca6e9014]{color:var(--el-color-success)}.stamp-reject[data-v-ca6e9014]{color:var(--el-color-danger)}
diff --git a/server/public/admin/assets/order_list-yQNZfjah.js b/server/public/admin/assets/order_list-yQNZfjah.js
deleted file mode 100644
index 60098837..00000000
--- a/server/public/admin/assets/order_list-yQNZfjah.js
+++ /dev/null
@@ -1 +0,0 @@
-import{D as Oa,B as Aa,C as Ca,P as Ea,Q as Pa,i as Ta,J as $a,L as ja,M as Ua,N as za,a3 as Ra,d as La,U as Ia,a4 as Da,a5 as qa,a6 as Fa,V as Ba,W as Ma,K as Ha,a7 as Ka,a8 as Qa,T as Wa,a0 as Ga,a9 as Ya,aa as Ja,e as Xa,g as Za,h as el,Y as tl,G as al,I as ll,a as _e}from"./element-plus-Dmpg6ayE.js";import{_ as sl}from"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import{w as Nt,s as Ot}from"./@vue/runtime-dom-iFk_KP8y.js";import{i as il,K as rl,l as nl}from"./@element-plus/icons-vue-DsycZ37q.js";import{m as ol,n as ul,o as I,q as At,r as dl,s as pl,t as ml,u as _l,v as cl,w as fl,x as vl,y as yl,z as gl,a as bl,p as Je,A as xl}from"./tcm-BCaX4wIV.js";import{u as kl}from"./usePaging-B_C_SZ2Z.js";import{u as wl,i as N,_ as Vl}from"./index-DWk_b8Nv.js";import{f as Et,b as hl,as as Sl,ak as n,I as c,J as r,O as u,a as t,aN as l,aP as h,G as v,H as y,F,ap as ce,A as T,n as Nl}from"./@vue/runtime-core-C0pg79pw.js";import{y as L,a as Ol,r as fe,o as b}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as o,o as Ct}from"./@vue/shared-mAAVTE9n.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const Al={class:"prescription-order-page prescription-order-list px-4 py-4 pb-8"},Cl={class:"po-table-toolbar"},El={class:"po-table-hint text-gray-400"},Pl={class:"text-xs text-gray-400"},Tl={class:"flex items-center gap-1"},$l={class:"text-red-500 font-medium whitespace-nowrap"},jl={class:"text-sm"},Ul={class:"flex justify-between mb-1"},zl={class:"font-medium text-red-500"},Rl={class:"flex justify-between mb-1"},Ll={class:"flex justify-between mb-1"},Il={class:"font-medium"},Dl={key:0,class:"flex justify-between"},ql={class:"font-medium text-orange-600"},Fl=["title"],Bl={key:1},Ml={class:"flex items-center gap-1 flex-wrap"},Hl={class:"flex justify-end mt-4"},Kl={class:"po-detail-drawer-head flex items-center justify-between"},Ql={class:"flex items-center"},Wl={key:0,class:"flex items-center gap-2 mr-6"},Gl={key:1,class:"po-detail-body px-6 pb-6 h-full overflow-y-auto"},Yl={class:"bg-gray-50/80 border border-gray-100 rounded-lg p-5 mb-5 shadow-sm"},Jl={key:0,class:"text-red-500 font-medium"},Xl={key:1},Zl={key:2,class:"text-green-600"},es={key:3,class:"text-gray-400"},ts={key:0,class:"text-red-500 font-medium"},as={key:1},ls={key:2,class:"text-green-600"},ss={key:3,class:"text-gray-400"},is={key:0,class:"text-primary font-medium"},rs={key:1},ns={key:2,class:"text-green-600"},os={key:3,class:"text-red-500 font-medium"},us={class:"stat-value text-red-500 font-bold text-xl"},ds={class:"stat-value text-green-600 font-bold text-xl"},ps={class:"stat-value text-primary font-bold text-xl"},ms={class:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4"},_s={key:0,class:"audit-stamp stamp-pass"},cs={key:1,class:"audit-stamp stamp-reject"},fs={class:"flex items-center justify-between"},vs={class:"flex items-center gap-3"},ys={key:0,class:"text-xs text-gray-500"},gs={class:"text-primary font-medium"},bs={class:"text-xs text-gray-400"},xs={class:"text-red-500 font-medium"},ks={key:0,class:"mt-4"},ws={class:"flex flex-col gap-4 h-full"},Vs={class:"text-red-500"},hs={key:0,class:"audit-stamp stamp-pass"},Ss={key:1,class:"audit-stamp stamp-reject"},Ns={class:"flex items-center justify-between"},Os={class:"flex items-center gap-3"},As={key:0,class:"text-xs text-gray-500"},Cs={class:"text-primary font-medium"},Es={class:"text-red-500"},Ps={class:"po-audit-remark"},Ts={class:"po-audit-remark"},$s={class:"flex flex-wrap items-center gap-3 mb-4"},js={class:"ml-2 flex items-center gap-4 border-l pl-4 border-gray-200"},Us={key:1,class:"py-6 text-center text-sm text-gray-500"},zs={key:2,class:"logistics-content bg-gray-50/50 p-4 rounded-md"},Rs={key:0,class:"text-sm mb-4 font-medium flex items-center gap-2"},Ls={class:"text-gray-800"},Is={key:1,class:"text-xs text-gray-400 ml-1"},Ds={key:2,class:"text-xs text-gray-400"},qs={class:"flex items-center gap-2 mb-1"},Fs={class:"font-medium text-[13px]"},Bs={class:"flex gap-2 w-full"},Ms={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},Hs={class:"flex items-center justify-between"},Ks={class:"font-medium text-[13px] text-gray-800"},Qs={class:"text-orange-500 font-medium ml-4"},Ws={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},Gs={class:"truncate pr-2"},Ys={class:"shrink-0"},Js={class:"text-xs text-gray-500 mt-1.5 leading-normal"},Xs={class:"text-primary font-medium"},Zs={key:0,class:"text-xs text-amber-500 mt-1.5 leading-normal"},ei={class:"text-sm"},ti={class:"text-gray-600"},ai={class:"text-gray-600"},li={class:"flex items-center justify-between"},si={class:"text-sm"},ii={class:"text-orange-500 font-medium ml-4"},ri={class:"cf-slip-wrap"},ni={key:0,class:"cf-slip-print"},oi={class:"cf-slip-header"},ui={class:"cf-slip-type"},di={key:0,class:"cf-slip-void"},pi={key:1,class:"rounded border border-red-200 bg-red-50 text-red-800 text-sm px-3 py-2 mb-3"},mi={key:0,class:"mt-1"},_i={key:1,class:"mt-1 text-red-600/80"},ci={key:2,class:"rounded border border-red-200 bg-red-50 text-red-800 text-sm px-3 py-2 mb-3"},fi={key:0,class:"mt-1"},vi={key:1,class:"mt-1 text-red-600/80"},yi={class:"cf-slip-info"},gi={class:"cf-slip-row"},bi={class:"cf-slip-item"},xi={class:"cf-slip-item"},ki={class:"cf-slip-item"},wi={class:"cf-slip-row"},Vi={class:"cf-slip-item"},hi={class:"cf-slip-item"},Si={class:"cf-slip-item"},Ni={key:0,class:"cf-slip-row"},Oi={key:0,class:"cf-slip-item"},Ai={key:1,class:"cf-slip-item"},Ci={class:"cf-slip-row cf-slip-row-full"},Ei={class:"cf-slip-item"},Pi={class:"cf-slip-rp"},Ti={class:"cf-slip-herbs"},$i={class:"cf-slip-footer"},ji={class:"cf-slip-footer-left"},Ui={key:0,class:"cf-slip-dietary"},zi={key:1,class:"cf-slip-notes"},Ri={class:"cf-slip-footer-right"},Li={class:"cf-slip-sign"},Ii=["src"],Di={key:1},qi={key:3,class:"cf-slip-audit text-sm text-gray-600 mt-4 pt-3 border-t border-dashed border-gray-200"},Fi={key:0},Bi={key:0,class:"ml-2 text-gray-400"},Mi={key:1,class:"mt-1"},Hi=Et({name:"prescriptionOrderList"}),Ki=Et({...Hi,setup(Qi){const Pt=wl(),Tt=[0,3,6],Xe=()=>{const a=Pt.userInfo;if(!a)return!1;if(Number(a.root)===1)return!0;const e=Array.isArray(a.role_ids)?a.role_ids.map(i=>Number(i)):[];return Tt.some(i=>e.includes(i))},j=fe({order_no:"",prescription_id:"",fulfillment_status:""});async function $t(a){const e={...a};return e.prescription_id===""||e.prescription_id===void 0?delete e.prescription_id:e.prescription_id=Number(e.prescription_id),(e.fulfillment_status===""||e.fulfillment_status===void 0)&&delete e.fulfillment_status,e.order_no||delete e.order_no,ol(e)}const{pager:M,getLists:U,resetPage:ze,resetParams:jt}=kl({fetchFun:$t,params:j});function Ut(){j.order_no="",j.prescription_id="",j.fulfillment_status="",jt()}function ve(a){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付费用",5:"尾款费用",6:"其他费用",7:"全部费用"}[Number(a)]??"—"}function Ze(a){return a===1?"已通过":a===2?"已驳回":"待审核"}function et(a){return a===1?"success":a===2?"danger":"info"}function zt(a){return{1:"待双审通过",2:"待发货",3:"已完成",4:"已取消",5:"已发货"}[Number(a)]??"—"}function Rt(a){const e=Number(a);return e===3?"success":e===5?"primary":e===4?"danger":e===2?"warning":"info"}function H(a){const e=Number(a);return Number.isNaN(e)?"—":e.toFixed(2)}function K(a){if(a==null||a==="")return"—";if(typeof a=="number"&&a>1e9&&a<1e11){const e=new Date(a*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}return String(a)}function Lt(a){const e=Number(a.fulfillment_status);return e===1||e===2}function It(a){const e=Number(a.fulfillment_status);return e===3||e===4?!1:Number(a.prescription_audit_status)===0}function Dt(a){const e=Number(a.fulfillment_status);return e===3||e===4?!1:Number(a.prescription_audit_status)===1&&Number(a.payment_slip_audit_status)===0}function qt(a){const e=Number(a.fulfillment_status);if(e===3||e===4)return!1;const i=Number(a.prescription_audit_status),p=Number(a.payment_slip_audit_status);return(i===1||i===2)&&p===0}function Ft(a){const e=Number(a.fulfillment_status);if(e===3||e===4)return!1;const i=Number(a.prescription_audit_status),p=Number(a.payment_slip_audit_status);return i===1&&(p===1||p===2)}function Bt(a){return Number(a.fulfillment_status)===1}function Re(a){return Number(a.fulfillment_status)===2}function tt(a){return Number(a.fulfillment_status)===5}function at(a){return Number(a.fulfillment_status)===5&&Number(a.payment_slip_audit_status)===1}function Mt(a){return Number(a.fulfillment_status)===5}function lt(a){return{1:"待支付",2:"已支付",3:"已取消",4:"已退款",5:"待审核"}[Number(a)]??"—"}const z=b(!1),Le=b(!1),d=b(null),ye=T(()=>{if(!d.value)return 0;const a=Number(d.value.fulfillment_status),e=Number(d.value.prescription_audit_status),i=Number(d.value.payment_slip_audit_status);return a===3?5:a===5?4:a===4?e===2?1:i===2?2:3:a===2?3:e===0||e===2?1:i===0||i===2?2:3}),ge=T(()=>{var e;const a=Number((e=d.value)==null?void 0:e.prescription_audit_status);return a===1?"success":a===2?"error":ye.value===1?"process":"wait"}),be=T(()=>{var e;const a=Number((e=d.value)==null?void 0:e.payment_slip_audit_status);return a===1?"success":a===2?"error":ye.value===2?"process":"wait"}),Z=T(()=>{var e;const a=Number((e=d.value)==null?void 0:e.fulfillment_status);return a===3||a===5?"success":a===4?"error":ye.value===3?"process":"wait"}),Ie=T(()=>{const a=d.value;if(!a)return[];const e=a.linked_pay_orders;return Array.isArray(e)?e:[]}),Q=b([]);async function Ht(a,e,i){var p;if(!a){Q.value=[];return}try{const _=await Je({diagnosis_id:a,prescription_order_id:e}),O=(_==null?void 0:_.lists)??((p=_==null?void 0:_.data)==null?void 0:p.lists)??[],g=Array.isArray(O)?O.filter(A=>!i.includes(A.id)):[];Q.value=g}catch{Q.value=[]}}function Kt(a){return a?Array.isArray(a)?a.map(e=>({name:String((e==null?void 0:e.name)??"").trim(),dosage:Number(e==null?void 0:e.dosage)||0})):[]:[]}const S=T(()=>{var e;const a=(e=d.value)==null?void 0:e.prescription;return a&&typeof a=="object"?a:null}),st=T(()=>{var a;return Kt((a=S.value)==null?void 0:a.herbs)}),Qt=T(()=>{var a;return((a=d.value)==null?void 0:a.prescription_detail_herbs_visible)!==!1});function Wt(a){const e=Number(a);return e===1?"已通过":e===2?"已驳回":"待审核"}function Gt(a){const e=Number(a);return e===1?"success":e===2?"danger":"warning"}function it(a){const e=Number(a);return e===2?"success":e===1?"warning":"info"}function rt(a){return a==null||a===""?"—":typeof a=="string"&&String(a).includes("-")?String(a):K(a)}const ee=b("auto"),xe=b(!1),C=b(null),te=b([]);async function Yt(a){try{const e=await xl({id:a});te.value=(e==null?void 0:e.data)??e??[]}catch{te.value=[]}}function Jt(a){return{create:"创建",edit:"编辑",audit_rx_approve:"处方审核",audit_rx_reject:"处方审核",audit_pay_approve:"支付审核",audit_pay_reject:"支付审核",fill_tracking:"填快递单",ship:"确认发货",withdraw:"撤销",add_pay_order:"补齐支付单",complete:"完成订单"}[a]||a}const De=T(()=>{var i;const a=String(((i=d.value)==null?void 0:i.tracking_number)||"").trim();if(!a)return{sf:"javascript:void(0)",jd:"javascript:void(0)",jt:"javascript:void(0)"};const e=encodeURIComponent(a);return{sf:`https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/${e}`,jd:`https://www.jdl.com/#/trackQuery?waybillCode=${e}`,jt:`https://www.jtexpress.com.cn/index/query/gzquery.html?bills=${e}`}}),nt=T(()=>{const a=C.value;return!a||!Array.isArray(a.traces)?[]:a.traces});function Xt(a){const e=String(a||"").toLowerCase();return e==="sf"?"顺丰速运":e==="jd"?"京东快递":e==="jt"||e==="jtexpress"?"极兔速递":"自动识别"}async function ot(){var e;const a=Number((e=d.value)==null?void 0:e.id);if(a){xe.value=!0;try{const i=await ul({id:a,express_company:ee.value});C.value=(i==null?void 0:i.data)??i}catch{C.value=null}finally{xe.value=!1}}}async function Zt(a){d.value=null,Q.value=[],C.value=null,ee.value="auto",te.value=[],z.value=!0,Le.value=!0;try{const e=await I({id:a}),i=(e==null?void 0:e.data)??e??null;if(d.value=i,i){ee.value=String(i.express_company||"auto")||"auto",String(i.tracking_number||"").trim()&&ot(),Yt(a);const p=i.diagnosis_id,_=i.pay_order_ids||[];p&&Ht(p,a,_)}}catch(e){N.msgError((e==null?void 0:e.message)||"加载失败"),z.value=!1}finally{Le.value=!1}}const B=b(!1),qe=b(!1),Fe=b(!1),ae=b(),m=fe({id:0,diagnosis_id:0,recipient_name:"",recipient_phone:"",shipping_address:"",is_follow_up:0,medication_days:void 0,prev_staff:"",service_channel:"",service_package:"",express_company:"auto",tracking_number:"",fee_type:3,amount:0,remark_extra:"",pay_order_ids:[],internal_cost:void 0}),le=b([]),Be=b(!1),W=b(0);function Me(a){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(a)]||"未知"}const ea=T(()=>{const a=new Set(m.pay_order_ids.map(i=>Number(i)));let e=0;for(const i of le.value)a.has(Number(i.id))&&(e+=Number(i.amount)||0);return Math.round(e*100)/100}),ta=T(()=>{const a=W.value;return a>0?Math.round(a*100)/100:0});async function aa(a,e){var i;if(!a){le.value=[];return}try{Be.value=!0;const p=await Je({diagnosis_id:a,...e?{prescription_order_id:e}:{}}),_=(p==null?void 0:p.lists)??((i=p==null?void 0:p.data)==null?void 0:i.lists)??[];le.value=Array.isArray(_)?_:[]}catch{le.value=[]}finally{Be.value=!1}}const la={recipient_name:[{required:!0,message:"请输入收货人",trigger:"blur"}],recipient_phone:[{required:!0,message:"请输入手机",trigger:"blur"}],shipping_address:[{required:!0,message:"请输入地址",trigger:"blur"}],fee_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],amount:[{required:!0,message:"请输入金额",trigger:"blur"},{validator:(a,e,i)=>{const p=W.value,_=Number(e);if(p>0&&(!Number.isFinite(_)||_0?i.medication_days:void 0,m.prev_staff=i.prev_staff||"",m.service_channel=i.service_channel||"",m.service_package=i.service_package||"",m.express_company=String(i.express_company||"auto")||"auto",m.tracking_number=i.tracking_number||"",m.fee_type=Number(i.fee_type)||3,W.value=Number(i.deposit_min_amount)||0;let p=Number(i.amount)||0;const _=Math.round((Number(i.linked_pay_paid_total)||0)*100)/100,O=W.value;if(O>0){const A=Math.round(O*100)/100;pNumber(A)).filter(A=>!Number.isNaN(A)):[],m.internal_cost=i.internal_cost!=null&&i.internal_cost!==""?Number(i.internal_cost):void 0,await aa(m.diagnosis_id,m.id),Nl(()=>{var A;(A=ae.value)==null||A.clearValidate()})}catch(e){N.msgError((e==null?void 0:e.message)||"加载异常"),B.value=!1}finally{qe.value=!1}}async function ia(){if(ae.value){await ae.value.validate(),Fe.value=!0;try{const a={id:m.id,recipient_name:m.recipient_name,recipient_phone:m.recipient_phone,shipping_address:m.shipping_address,is_follow_up:m.is_follow_up,prev_staff:m.prev_staff||"",service_channel:m.service_channel||"",service_package:m.service_package||"",express_company:m.express_company||"auto",tracking_number:m.tracking_number||"",fee_type:m.fee_type,amount:m.amount,remark_extra:m.remark_extra||"",medication_days:m.medication_days!=null&&String(m.medication_days).trim()!==""?m.medication_days:"",internal_cost:m.internal_cost!=null&&String(m.internal_cost).trim()!==""?m.internal_cost:""};a.pay_order_ids=[...m.pay_order_ids],await At(a),N.msgSuccess("保存成功"),B.value=!1,U()}catch{}finally{Fe.value=!1}}}const se=b(!1),He=b("prescription"),ke=b(0),ie=b(null),G=b(""),we=b(!1),ra=T(()=>He.value==="prescription"?"处方业务审核":"关联支付单审核");function ut(a,e){He.value=e,ke.value=a.id,ie.value=a,G.value="",se.value=!0}async function dt(a){if(a==="reject"&&!G.value.trim()){N.msgError("驳回或阻止时必须填写明确的审核意见");return}we.value=!0;try{const e={id:ke.value,action:a,remark:G.value.trim()};if(He.value==="prescription"?await dl(e):await pl(e),N.msgSuccess(a==="approve"?"审核通过成功":"已成功驳回该单"),se.value=!1,U(),z.value&&ke.value)try{const i=await I({id:ke.value}),p=(i==null?void 0:i.data)??i??null;p&&(d.value=p)}catch{}}catch{}finally{we.value=!1}}async function na(a){try{await _e.confirm("确认撤回该业务订单?撤回后状态为「已取消」,未双审通过或双审均驳回等场景下均可安全撤回。","撤回警告",{type:"warning",confirmButtonText:"确定撤回",cancelButtonText:"暂不处理"}),await ml({id:a.id}),N.msgSuccess("撤回成功"),U()}catch{}}hl(()=>{U()});const re=b(!1),Ve=b(!1),ne=b(0),$=fe({express_company:"auto",tracking_number:""});function oa(a){ne.value=a.id,$.express_company=String(a.express_company||"auto")||"auto",$.tracking_number=String(a.tracking_number||""),re.value=!0}async function pt(){var a;if(!$.tracking_number.trim()){N.msgError("请填写快递单号");return}Ve.value=!0;try{const e=await I({id:ne.value}),i=(e==null?void 0:e.data)??e;if(!i){N.msgError("加载订单数据失败");return}if(await At({id:i.id,recipient_name:i.recipient_name||"",recipient_phone:i.recipient_phone||"",shipping_address:i.shipping_address||"",is_follow_up:i.is_follow_up?1:0,medication_days:i.medication_days!=null&&String(i.medication_days).trim()!==""?i.medication_days:"",prev_staff:i.prev_staff||"",service_channel:i.service_channel||"",service_package:i.service_package||"",fee_type:Number(i.fee_type)||3,amount:Number(i.amount)||0,remark_extra:i.remark_extra||"",internal_cost:i.internal_cost!=null&&i.internal_cost!==""?i.internal_cost:"",pay_order_ids:Array.isArray(i.pay_order_ids)?i.pay_order_ids:[],express_company:$.express_company||"auto",tracking_number:$.tracking_number.trim()}),N.msgSuccess("快递单号已保存"),re.value=!1,U(),z.value&&((a=d.value)==null?void 0:a.id)===ne.value)try{const p=await I({id:ne.value}),_=(p==null?void 0:p.data)??p??null;_&&(d.value=_)}catch{}if(Re({fulfillment_status:2,tracking_number:$.tracking_number}))try{await _e.confirm(`快递单号「${$.tracking_number}」已保存,是否立即确认发货?`,"确认发货",{type:"success",confirmButtonText:"确认发货",cancelButtonText:"稍后再说"}),Ke({id:ne.value,tracking_number:$.tracking_number,express_company:$.express_company})}catch{}}catch{}finally{Ve.value=!1}}const oe=b(!1),he=b(!1),Se=b(0),D=fe({express_company:"auto",tracking_number:""});function Ke(a){Se.value=a.id,D.express_company=String(a.express_company||"auto")||"auto",D.tracking_number=String(a.tracking_number||""),oe.value=!0}async function mt(){var a;if(!D.tracking_number.trim()){N.msgError("请先填写快递单号再确认发货");return}he.value=!0;try{if(await _l({id:Se.value,express_company:D.express_company||"auto",tracking_number:D.tracking_number.trim()}),N.msgSuccess("确认发货成功,订单已进入「已发货」状态"),oe.value=!1,U(),z.value&&((a=d.value)==null?void 0:a.id)===Se.value)try{const e=await I({id:Se.value}),i=(e==null?void 0:e.data)??e??null;i&&(d.value=i)}catch{}}catch{}finally{he.value=!1}}const ue=b(!1),Ne=b(!1),de=b(0),Oe=b(),Qe=b(!1),Ae=b([]),V=fe({add_mode:"create",order_type:3,pay_amount:void 0,pay_remark:"",link_pay_order_ids:[],completion_request:0}),ua={add_mode:[{required:!0,message:"请选择添加方式",trigger:"change"}],order_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],pay_amount:[{required:!0,message:"请输入支付金额",trigger:"blur"},{validator:(a,e,i)=>{const p=Number(e);!Number.isFinite(p)||p<=0?i(new Error("金额须大于 0")):i()},trigger:"blur"}],link_pay_order_ids:[{required:!0,message:"请至少选择一个支付单",trigger:"change",validator:(a,e,i)=>{!Array.isArray(e)||e.length===0?i(new Error("请至少选择一个支付单")):i()}}]};async function da(a,e,i=[]){var p;if(!a){Ae.value=[];return}try{Qe.value=!0;const _=await Je({diagnosis_id:a,prescription_order_id:e}),O=(_==null?void 0:_.lists)??((p=_==null?void 0:_.data)==null?void 0:p.lists)??[],g=Array.isArray(O)?O.filter(A=>!i.includes(A.id)):[];Ae.value=g}catch{Ae.value=[]}finally{Qe.value=!1}}function _t(a){var p,_;de.value=a.id,V.add_mode="create",V.order_type=3,V.pay_amount=void 0,V.pay_remark="",V.link_pay_order_ids=[],V.completion_request=0,ue.value=!0;const e=a.diagnosis_id||((p=d.value)==null?void 0:p.diagnosis_id),i=a.pay_order_ids||((_=d.value)==null?void 0:_.pay_order_ids)||[];e&&da(e,a.id,i)}async function pa(){var a;if(Oe.value){await Oe.value.validate(),Ne.value=!0;try{if(V.add_mode==="create")await cl({id:de.value,order_type:V.order_type,pay_amount:V.pay_amount,pay_remark:V.pay_remark||"",completion_request:V.completion_request}),N.msgSuccess("支付单已新增,请等待审核");else{const e=V.link_pay_order_ids;if(e.length===0){N.msgError("请至少选择一个支付单");return}await fl({id:de.value,pay_order_ids:e,completion_request:V.completion_request}),N.msgSuccess(`已关联 ${e.length} 个支付单,请等待审核`)}if(ue.value=!1,U(),z.value&&((a=d.value)==null?void 0:a.id)===de.value)try{const e=await I({id:de.value}),i=(e==null?void 0:e.data)??e??null;i&&(d.value=i)}catch{}}catch{}finally{Ne.value=!1}}}async function ct(a){var e;try{if(await _e.confirm("确认将该订单标记为「已完成」?此操作不可撤销。","完成订单",{type:"success",confirmButtonText:"确认完成",cancelButtonText:"暂不处理"}),await vl({id:a.id}),N.msgSuccess("订单已标记为「已完成」"),U(),z.value&&((e=d.value)==null?void 0:e.id)===a.id)try{const i=await I({id:a.id}),p=(i==null?void 0:i.data)??i??null;p&&(d.value=p)}catch{}}catch{}}async function ma(a){var e;try{if(await _e.confirm("确认撤回处方审核?撤回后将重置为「待审核」状态。","撤回处方审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await yl({id:a.id}),N.msgSuccess("处方审核已撤回"),U(),z.value&&((e=d.value)==null?void 0:e.id)===a.id)try{const i=await I({id:a.id}),p=(i==null?void 0:i.data)??i??null;p&&(d.value=p)}catch{}}catch{}}async function _a(a){var e;try{if(await _e.confirm("确认撤回支付单审核?撤回后将重置为「待审核」状态。","撤回支付单审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await gl({id:a.id}),N.msgSuccess("支付单审核已撤回"),U(),z.value&&((e=d.value)==null?void 0:e.id)===a.id)try{const i=await I({id:a.id}),p=(i==null?void 0:i.data)??i??null;p&&(d.value=p)}catch{}}catch{}}const ca="成都双流甄养堂互联网医院",fa="成都双流甄养堂互联网医院有限公司 联系方式:4001667339",va="地址:四川省成都市双流区黄甲街道黄龙大道二段280号",Ce=b(!1),We=b(!1),f=b(null),ya=T(()=>{var e;const a=(e=f.value)==null?void 0:e.herbs;return Array.isArray(a)?a:[]}),ft=T(()=>{var e;const a=(e=f.value)==null?void 0:e.dietary_taboo;return Array.isArray(a)?a.filter(Boolean).join("、"):typeof a=="string"&&a.trim()?a.trim():""});function vt(a){if(!a)return"";const e=new Date(a*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function ga(a){return a?vt(a):"—"}function ba(a){return a===1||a==="1"?"男":a===0||a==="0"?"女":"—"}function xa(a){return a==null||a===""?"—":`${a}岁`}async function ka(a){if(!a.prescription_id){N.msgWarning("该订单未关联处方");return}Ce.value=!0,We.value=!0,f.value=null;try{const e=await bl({id:a.prescription_id});f.value=(e==null?void 0:e.data)??e??null}catch(e){N.msgError((e==null?void 0:e.message)||"加载处方详情失败"),Ce.value=!1}finally{We.value=!1}}return(a,e)=>{const i=Ca,p=Aa,_=Pa,O=Ea,g=Ta,A=Oa,R=$a,x=za,Ge=La,wa=Ra,P=Ia,Ee=Ua,Va=sl,ha=Da,pe=Fa,Sa=qa,q=Ma,Pe=Ba,Y=Ha,k=Qa,yt=Ka,J=Wa,Ye=Ga,gt=Ja,bt=Ya,xt=Xa,Na=Za,Te=el,me=tl,$e=ll,kt=al,E=Sl("perms"),X=ja;return n(),c("div",Al,[e[144]||(e[144]=r("header",{class:"po-page-head"},[r("div",null,[r("h1",{class:"po-page-title"},"处方业务订单"),r("p",{class:"po-page-desc"},[u("履约与双审;点「详情」可同屏查看"),r("strong",null,"处方单"),u("与"),r("strong",null,"关联支付单"),u("。")])])],-1)),t(R,{class:"!border-none po-filter-card shadow-sm",shadow:"never"},{default:l(()=>[t(A,{class:"ls-form",model:j,inline:""},{default:l(()=>[t(p,{class:"w-[260px]",label:"订单号"},{default:l(()=>[t(i,{modelValue:j.order_no,"onUpdate:modelValue":e[0]||(e[0]=s=>j.order_no=s),placeholder:"业务订单号",clearable:"",onKeyup:Nt(L(ze),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(p,{class:"w-[140px]",label:"处方ID"},{default:l(()=>[t(i,{modelValue:j.prescription_id,"onUpdate:modelValue":e[1]||(e[1]=s=>j.prescription_id=s),placeholder:"处方ID",clearable:"",onKeyup:Nt(L(ze),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(p,{class:"w-[180px]",label:"履约状态"},{default:l(()=>[t(O,{modelValue:j.fulfillment_status,"onUpdate:modelValue":e[2]||(e[2]=s=>j.fulfillment_status=s),placeholder:"全部",clearable:""},{default:l(()=>[t(_,{label:"待双审通过",value:1}),t(_,{label:"履约中",value:2}),t(_,{label:"已发货",value:5}),t(_,{label:"已完成",value:3}),t(_,{label:"已取消",value:4})]),_:1},8,["modelValue"])]),_:1}),t(p,null,{default:l(()=>[t(g,{type:"primary",onClick:L(ze)},{default:l(()=>[...e[56]||(e[56]=[u("查询",-1)])]),_:1},8,["onClick"]),t(g,{onClick:Ut},{default:l(()=>[...e[57]||(e[57]=[u("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),h((n(),v(R,{class:"!border-none mt-4 po-table-card shadow-sm",shadow:"never"},{default:l(()=>[r("div",Cl,[e[58]||(e[58]=r("span",{class:"po-table-title text-gray-800"},"订单列表",-1)),r("span",El,"共 "+o(L(M).count)+" 条",1)]),t(Ee,{data:L(M).lists,size:"default",stripe:"",class:"po-data-table"},{default:l(()=>[t(x,{label:"订单号",prop:"order_no","min-width":"150","show-overflow-tooltip":""}),t(x,{label:"处方ID",prop:"prescription_id",width:"86"}),t(x,{label:"诊单ID",prop:"diagnosis_id",width:"86"}),t(x,{label:"开方人",prop:"doctor_name",width:"90","show-overflow-tooltip":""}),t(x,{label:"创建人",prop:"creator_name",width:"90","show-overflow-tooltip":""}),t(x,{label:"收货人","min-width":"100"},{default:l(({row:s})=>[r("div",null,o(s.recipient_name||"—"),1),r("div",Pl,o(s.recipient_phone||""),1)]),_:1}),t(x,{label:"费用类别",width:"96"},{default:l(({row:s})=>[u(o(ve(s.fee_type)),1)]),_:1}),t(x,{label:"金额","min-width":"100"},{default:l(({row:s})=>[r("div",Tl,[r("span",$l,"¥"+o(s.amount),1),t(wa,{placement:"top",width:200,trigger:"hover"},{reference:l(()=>[t(Ge,{class:"text-gray-400 cursor-pointer hover:text-primary"},{default:l(()=>[t(L(il))]),_:1})]),default:l(()=>[r("div",jl,[r("div",Ul,[e[59]||(e[59]=r("span",{class:"text-gray-500"},"业务订单单据:",-1)),r("span",zl,"¥"+o(s.amount),1)]),r("div",Rl,[e[60]||(e[60]=r("span",{class:"text-gray-500"},"定金下限:",-1)),r("span",null,"¥"+o(H(s.deposit_min_amount)),1)]),r("div",Ll,[e[61]||(e[61]=r("span",{class:"text-gray-500"},"实付(关联):",-1)),r("span",Il,"¥"+o(H(s.linked_pay_paid_total)),1)]),Xe()&&s.internal_cost!=null&&s.internal_cost!==""?(n(),c("div",Dl,[e[62]||(e[62]=r("span",{class:"text-gray-500"},"内部成本:",-1)),r("span",ql,"¥"+o(H(s.internal_cost)),1)])):y("",!0)])]),_:2},1024)])]),_:1}),Xe()?(n(),v(x,{key:0,label:"内部成本",width:"92"},{default:l(({row:s})=>[u(o(s.internal_cost!=null&&s.internal_cost!==""?`¥${s.internal_cost}`:"—"),1)]),_:1})):y("",!0),t(x,{label:"处方审核",width:"96"},{default:l(({row:s})=>[t(P,{type:et(s.prescription_audit_status),size:"small"},{default:l(()=>[u(o(Ze(s.prescription_audit_status)),1)]),_:2},1032,["type"])]),_:1}),t(x,{label:"支付单审核",width:"102"},{default:l(({row:s})=>[t(P,{type:et(s.payment_slip_audit_status),size:"small"},{default:l(()=>[u(o(Ze(s.payment_slip_audit_status)),1)]),_:2},1032,["type"])]),_:1}),t(x,{label:"履约",width:"96"},{default:l(({row:s})=>[t(P,{type:Rt(s.fulfillment_status),size:"small"},{default:l(()=>[u(o(zt(s.fulfillment_status)),1)]),_:2},1032,["type"])]),_:1}),t(x,{label:"关联支付单",width:"100"},{default:l(({row:s})=>[Number(s.linked_pay_order_count)>0?(n(),c("span",{key:0,class:"text-primary cursor-default",title:s.linked_pay_order_id?`#${s.linked_pay_order_id}…`:""},o(s.linked_pay_order_count)+" 笔 ",9,Fl)):(n(),c("span",Bl,"—"))]),_:1}),t(x,{label:"创建时间","min-width":"144"},{default:l(({row:s})=>[u(o(K(s.create_time)),1)]),_:1}),t(x,{label:"操作",width:"310",fixed:"right"},{default:l(({row:s})=>[r("div",Ml,[h((n(),v(g,{type:"primary",link:"",onClick:w=>Zt(s.id)},{default:l(()=>[...e[63]||(e[63]=[u("详情/审核",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/detail"]]]),Lt(s)?h((n(),v(g,{key:0,type:"primary",link:"",onClick:w=>sa(s)},{default:l(()=>[...e[64]||(e[64]=[u("编辑",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/edit"]]]):y("",!0),Mt(s)?h((n(),v(g,{key:1,type:"success",link:"",onClick:w=>oa(s)},{default:l(()=>[...e[65]||(e[65]=[u("修改单号",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/edit"]]]):y("",!0),Re(s)?h((n(),v(g,{key:2,type:"primary",link:"",onClick:w=>Ke(s)},{default:l(()=>[...e[66]||(e[66]=[u("确认发货",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/ship"]]]):y("",!0),tt(s)?h((n(),v(g,{key:3,type:"success",link:"",onClick:w=>_t(s)},{default:l(()=>[...e[67]||(e[67]=[u("补齐支付单",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/addPayOrder"]]]):y("",!0),at(s)?h((n(),v(g,{key:4,type:"primary",link:"",onClick:w=>ct(s)},{default:l(()=>[...e[68]||(e[68]=[u("完成订单",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/complete"]]]):y("",!0),Bt(s)?h((n(),v(g,{key:5,type:"danger",link:"",onClick:w=>na(s)},{default:l(()=>[...e[69]||(e[69]=[u("撤回",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/withdraw"]]]):y("",!0)])]),_:1})]),_:1},8,["data"]),r("div",Hl,[t(Va,{modelValue:L(M),"onUpdate:modelValue":e[3]||(e[3]=s=>Ol(M)?M.value=s:null),onChange:L(U)},null,8,["modelValue","onChange"])])]),_:1})),[[X,L(M).loading]]),t(xt,{modelValue:z.value,"onUpdate:modelValue":e[13]||(e[13]=s=>z.value=s),class:"po-detail-drawer",size:"80%","destroy-on-close":"","close-on-click-modal":!1},{header:l(()=>{var s;return[r("div",Kl,[r("div",Ql,[e[70]||(e[70]=r("span",{class:"po-detail-drawer-title text-gray-800 font-semibold text-lg"},"业务订单详情",-1)),(s=d.value)!=null&&s.order_no?(n(),v(P,{key:0,type:"primary",effect:"plain",round:"",class:"ml-3"},{default:l(()=>[u(o(d.value.order_no),1)]),_:1})):y("",!0)]),d.value?(n(),c("div",Wl,[It(d.value)?h((n(),v(g,{key:0,type:"warning",size:"small",plain:"",onClick:e[4]||(e[4]=w=>ut(d.value,"prescription"))},{default:l(()=>[...e[71]||(e[71]=[u(" 处方审核 ",-1)])]),_:1})),[[E,["tcm.prescriptionOrder/auditPrescription"]]]):y("",!0),qt(d.value)?h((n(),v(g,{key:1,type:"info",size:"small",plain:"",onClick:e[5]||(e[5]=w=>ma(d.value))},{default:l(()=>[...e[72]||(e[72]=[u(" 撤回处方审核 ",-1)])]),_:1})),[[E,["tcm.prescriptionOrder/auditPrescription"]]]):y("",!0),Dt(d.value)?h((n(),v(g,{key:2,type:"warning",size:"small",plain:"",onClick:e[6]||(e[6]=w=>ut(d.value,"payment"))},{default:l(()=>[...e[73]||(e[73]=[u(" 支付审核 ",-1)])]),_:1})),[[E,["tcm.prescriptionOrder/auditPayment"]]]):y("",!0),Ft(d.value)?h((n(),v(g,{key:3,type:"info",size:"small",plain:"",onClick:e[7]||(e[7]=w=>_a(d.value))},{default:l(()=>[...e[74]||(e[74]=[u(" 撤回支付审核 ",-1)])]),_:1})),[[E,["tcm.prescriptionOrder/auditPayment"]]]):y("",!0),Re(d.value)?h((n(),v(g,{key:4,type:"primary",size:"small",plain:"",onClick:e[8]||(e[8]=w=>Ke(d.value))},{default:l(()=>[...e[75]||(e[75]=[u(" 确认发货 ",-1)])]),_:1})),[[E,["tcm.prescriptionOrder/ship"]]]):y("",!0),tt(d.value)?h((n(),v(g,{key:5,type:"success",size:"small",plain:"",onClick:e[9]||(e[9]=w=>_t(d.value))},{default:l(()=>[...e[76]||(e[76]=[u(" 关联支付单 ",-1)])]),_:1})),[[E,["tcm.prescriptionOrder/addPayOrder"]]]):y("",!0),at(d.value)?h((n(),v(g,{key:6,type:"primary",size:"small",plain:"",onClick:e[10]||(e[10]=w=>ct(d.value))},{default:l(()=>[...e[77]||(e[77]=[u(" 完成订单 ",-1)])]),_:1})),[[E,["tcm.prescriptionOrder/complete"]]]):y("",!0)])):y("",!0)])]}),default:l(()=>[Le.value?(n(),v(ha,{key:0,rows:12,animated:"",class:"px-6 py-4"})):d.value?(n(),c("div",Gl,[r("div",Yl,[t(Sa,{active:ye.value,"align-center":"","finish-status":"success"},{default:l(()=>[t(pe,{title:"业务订单创建",description:K(d.value.create_time)},null,8,["description"]),t(pe,{title:"处方单双审",status:ge.value},{description:l(()=>[ge.value==="error"?(n(),c("span",Jl,"处方被驳回")):ge.value==="wait"?(n(),c("span",Xl,"等待审核")):ge.value==="success"?(n(),c("span",Zl,"双审通过")):(n(),c("span",es,"进行中"))]),_:1},8,["status"]),t(pe,{title:"支付单审核",status:be.value},{description:l(()=>[be.value==="error"?(n(),c("span",ts,"支付审核驳回")):be.value==="wait"?(n(),c("span",as,"等待审核")):be.value==="success"?(n(),c("span",ls,"审核通过")):(n(),c("span",ss,"进行中"))]),_:1},8,["status"]),t(pe,{title:"发货与履约",status:Z.value},{description:l(()=>[Z.value==="process"?(n(),c("span",is,"等待发货/补充单号")):Z.value==="wait"?(n(),c("span",rs,"待转入履约")):Z.value==="success"?(n(),c("span",ns,"已发货")):Z.value==="error"?(n(),c("span",os,"订单已取消")):y("",!0)]),_:1},8,["status"]),t(pe,{title:"订单完成"})]),_:1},8,["active"])]),t(Pe,{gutter:16,class:"mb-5"},{default:l(()=>[t(q,{xs:12,sm:8},{default:l(()=>[t(R,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[78]||(e[78]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"业务金额",-1)),r("div",us,"¥"+o(d.value.amount),1)]),_:1})]),_:1}),t(q,{xs:12,sm:8},{default:l(()=>[t(R,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[79]||(e[79]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"关联订单总额",-1)),r("div",ds,"¥"+o(d.value.linked_pay_paid_total||0),1)]),_:1})]),_:1}),t(q,{xs:12,sm:8},{default:l(()=>[t(R,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[80]||(e[80]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"关联收款笔数",-1)),r("div",ps,o(Ie.value.length)+" 笔",1)]),_:1})]),_:1})]),_:1}),r("div",ms,[t(R,{shadow:"never",class:"po-panel po-panel-rx border-gray-100 h-full relative overflow-hidden"},{header:l(()=>[r("div",fs,[r("div",vs,[e[85]||(e[85]=r("span",{class:"font-medium text-[15px]"},"处方详情",-1)),d.value.doctor_name?(n(),c("span",ys,[e[83]||(e[83]=u(" 开方人:",-1)),r("span",gs,o(d.value.doctor_name),1)])):y("",!0),d.value.prescription_id?(n(),v(g,{key:1,type:"primary",size:"small",link:"",onClick:e[11]||(e[11]=s=>ka(d.value))},{default:l(()=>[...e[84]||(e[84]=[u(" 详细 ",-1)])]),_:1})):y("",!0)]),r("span",bs,"ID: "+o(d.value.prescription_id||"—"),1)])]),default:l(()=>[d.value.prescription_audit_status===1?(n(),c("div",_s,[...e[81]||(e[81]=[r("div",{class:"stamp-inner"},"审核通过",-1)])])):y("",!0),d.value.prescription_audit_status===2?(n(),c("div",cs,[...e[82]||(e[82]=[r("div",{class:"stamp-inner"},"已驳回",-1)])])):y("",!0),String(d.value.prescription_detail_error||"").trim()?(n(),v(Y,{key:2,title:d.value.prescription_detail_error,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},null,8,["title"])):S.value?(n(),c(F,{key:3},[t(yt,{column:2,border:"",size:"small",class:"po-desc bg-white"},{default:l(()=>[t(k,{label:"处方编号",span:2},{default:l(()=>[u(o(S.value.sn||"—"),1)]),_:1}),t(k,{label:"患者"},{default:l(()=>[u(o(S.value.patient_name||"—"),1)]),_:1}),t(k,{label:"性别 / 年龄"},{default:l(()=>[u(o(S.value.gender_desc||"—")+" · "+o(S.value.age??"—")+"岁 ",1)]),_:1}),t(k,{label:"手机"},{default:l(()=>[u(o(S.value.phone||"—"),1)]),_:1}),t(k,{label:"处方日期"},{default:l(()=>[u(o(S.value.prescription_date||"—"),1)]),_:1}),t(k,{label:"医师"},{default:l(()=>[u(o(S.value.doctor_name||"—"),1)]),_:1}),t(k,{label:"类型"},{default:l(()=>[u(o(S.value.prescription_type||"—"),1)]),_:1}),t(k,{label:"临床诊断",span:2},{default:l(()=>[u(o(S.value.clinical_diagnosis||"—"),1)]),_:1}),t(k,{label:"剂数 / 用法",span:2},{default:l(()=>[u(o(S.value.dose_count??"—")+" 剂 · "+o(S.value.usage_instruction||S.value.usage_method||"—"),1)]),_:1}),t(k,{label:"处方金额"},{default:l(()=>[r("span",xs,"¥"+o(S.value.amount??"—"),1)]),_:1}),t(k,{label:"消费者审核"},{default:l(()=>[t(P,{type:Gt(S.value.audit_status),size:"small"},{default:l(()=>[u(o(Wt(S.value.audit_status)),1)]),_:1},8,["type"])]),_:1}),t(k,{label:"状态",span:2},{default:l(()=>[t(P,{type:Number(S.value.void_status)===1?"danger":"success",size:"small"},{default:l(()=>[u(o(Number(S.value.void_status)===1?"已作废":"正常"),1)]),_:1},8,["type"])]),_:1})]),_:1}),Qt.value?(n(),c("div",ks,[e[86]||(e[86]=r("div",{class:"text-xs font-medium text-gray-500 mb-2 px-1"},"药材明细",-1)),st.value.length?(n(),v(Ee,{key:0,data:st.value,size:"small",border:"",stripe:"","max-height":"260"},{default:l(()=>[t(x,{type:"index",label:"#",width:"48",align:"center"}),t(x,{prop:"name",label:"药名","min-width":"120","show-overflow-tooltip":""}),t(x,{prop:"dosage",label:"用量(g)",width:"96",align:"right"})]),_:1},8,["data"])):(n(),v(J,{key:1,description:"无处方药材明细","image-size":64}))])):S.value?(n(),v(Y,{key:1,type:"warning",closable:!1,"show-icon":"",class:"mt-4",title:"无权限查看药材明细",description:"无权限"})):y("",!0)],64)):(n(),v(J,{key:4,description:"无处方数据","image-size":72}))]),_:1}),r("div",ws,[t(R,{shadow:"never",class:"po-panel border-gray-100"},{header:l(()=>[...e[87]||(e[87]=[r("div",{class:"flex items-center justify-between"},[r("span",{class:"font-medium text-[15px]"},"未关联的收款记录"),r("span",{class:"text-xs text-gray-400"},"本诊单下未被占用的支付单")],-1)])]),default:l(()=>[Q.value.length?(n(),v(Ee,{key:0,data:Q.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:l(()=>[t(x,{prop:"id",label:"ID",width:"70"}),t(x,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),t(x,{label:"类型",width:"90"},{default:l(({row:s})=>[u(o(s.order_type_desc||ve(s.order_type)),1)]),_:1}),t(x,{label:"金额",width:"86",align:"right"},{default:l(({row:s})=>[r("span",Vs,"¥"+o(s.amount),1)]),_:1}),t(x,{label:"状态",width:"82",align:"center"},{default:l(({row:s})=>[t(P,{type:it(s.status),size:"small"},{default:l(()=>[u(o(s.status_desc||lt(s.status)),1)]),_:2},1032,["type"])]),_:1}),t(x,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),t(x,{label:"创建时间","min-width":"136"},{default:l(({row:s})=>[u(o(rt(s.create_time)),1)]),_:1})]),_:1},8,["data"])):(n(),v(J,{key:1,description:"无未关联的收款单","image-size":60}))]),_:1}),t(R,{shadow:"never",class:"po-panel po-panel-pay border-gray-100 relative overflow-hidden"},{header:l(()=>[r("div",Ns,[r("div",Os,[e[91]||(e[91]=r("span",{class:"font-medium text-[15px]"},"关联收款记录",-1)),d.value.creator_name?(n(),c("span",As,[e[90]||(e[90]=u(" 创建人:",-1)),r("span",Cs,o(d.value.creator_name),1)])):y("",!0)])])]),default:l(()=>[d.value.payment_slip_audit_status===1?(n(),c("div",hs,[...e[88]||(e[88]=[r("div",{class:"stamp-inner"},"审核通过",-1)])])):y("",!0),d.value.payment_slip_audit_status===2?(n(),c("div",Ss,[...e[89]||(e[89]=[r("div",{class:"stamp-inner"},"已驳回",-1)])])):y("",!0),Ie.value.length?(n(),v(Ee,{key:2,data:Ie.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:l(()=>[t(x,{prop:"id",label:"ID",width:"70"}),t(x,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),t(x,{label:"类型",width:"90"},{default:l(({row:s})=>[u(o(s.order_type_desc||ve(s.order_type)),1)]),_:1}),t(x,{label:"金额",width:"86",align:"right"},{default:l(({row:s})=>[r("span",Es,"¥"+o(s.amount),1)]),_:1}),t(x,{label:"状态",width:"82",align:"center"},{default:l(({row:s})=>[t(P,{type:it(s.status),size:"small"},{default:l(()=>[u(o(s.status_desc||lt(s.status)),1)]),_:2},1032,["type"])]),_:1}),t(x,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),t(x,{label:"创建时间","min-width":"136"},{default:l(({row:s})=>[u(o(rt(s.create_time)),1)]),_:1})]),_:1},8,["data"])):(n(),v(J,{key:3,description:"未关联收款单","image-size":60}))]),_:1})])]),t(R,{shadow:"never",class:"po-panel po-panel-biz border-gray-100 mb-4"},{header:l(()=>[...e[92]||(e[92]=[r("span",{class:"font-medium text-[15px]"},"履约与收货信息",-1)])]),default:l(()=>[t(yt,{column:3,border:"",size:"small",class:"po-desc"},{default:l(()=>[t(k,{label:"诊单ID"},{default:l(()=>[u(o(d.value.diagnosis_id),1)]),_:1}),t(k,{label:"创建时间"},{default:l(()=>[u(o(K(d.value.create_time)),1)]),_:1}),t(k,{label:"收货人"},{default:l(()=>[u(o(d.value.recipient_name),1)]),_:1}),t(k,{label:"手机"},{default:l(()=>[u(o(d.value.recipient_phone),1)]),_:1}),t(k,{label:"收货地址",span:2},{default:l(()=>[u(o(d.value.shipping_address),1)]),_:1}),t(k,{label:"复诊"},{default:l(()=>[u(o(d.value.is_follow_up?"是":"否"),1)]),_:1}),t(k,{label:"用药疗程"},{default:l(()=>[u(o(d.value.medication_days?d.value.medication_days+" 天":"—"),1)]),_:1}),t(k,{label:"上次医护"},{default:l(()=>[u(o(d.value.prev_staff||"—"),1)]),_:1}),t(k,{label:"服务渠道"},{default:l(()=>[u(o(d.value.service_channel||"—"),1)]),_:1}),t(k,{label:"服务套餐"},{default:l(()=>[u(o(d.value.service_package||"—"),1)]),_:1}),t(k,{label:"费用类别"},{default:l(()=>[u(o(ve(d.value.fee_type)),1)]),_:1}),d.value.internal_cost!=null&&d.value.internal_cost!==""?(n(),v(k,{key:0,label:"内部成本"},{default:l(()=>[u(" ¥"+o(d.value.internal_cost),1)]),_:1})):y("",!0),t(k,{label:"快递单号",span:d.value.internal_cost!=null&&d.value.internal_cost!==""?1:2},{default:l(()=>[u(o(d.value.tracking_number||"—"),1)]),_:1},8,["span"]),t(k,{label:"快递公司"},{default:l(()=>[u(o(Xt(d.value.express_company)),1)]),_:1}),t(k,{label:"备注",span:3},{default:l(()=>[u(o(d.value.remark_extra||"—"),1)]),_:1}),t(k,{label:"处方审核意见",span:3},{default:l(()=>[r("span",Ps,o(d.value.prescription_audit_remark||"—"),1)]),_:1}),t(k,{label:"支付审核意见",span:3},{default:l(()=>[r("span",Ts,o(d.value.payment_slip_audit_remark||"—"),1)]),_:1})]),_:1})]),_:1}),String(d.value.tracking_number||"").trim()?(n(),v(R,{key:0,shadow:"never",class:"po-panel po-panel-logistics border-gray-100"},{header:l(()=>[...e[93]||(e[93]=[r("span",{class:"font-medium text-[15px]"},"物流轨迹",-1)])]),default:l(()=>{var s,w,wt,Vt,ht,St;return[e[99]||(e[99]=r("p",{class:"po-logistics-tip text-gray-400 text-xs mb-3 font-normal"}," 优先读库,无记录时走快递100;顺丰建议手机后四位正确(已自动带入收货手机)。 ",-1)),r("div",$s,[t(O,{modelValue:ee.value,"onUpdate:modelValue":e[12]||(e[12]=je=>ee.value=je),placeholder:"承运商",style:{width:"140px"}},{default:l(()=>[t(_,{label:"自动识别",value:"auto"}),t(_,{label:"顺丰速运",value:"sf"}),t(_,{label:"京东快递",value:"jd"}),t(_,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),h((n(),v(g,{type:"primary",plain:"",size:"default",loading:xe.value,onClick:ot},{icon:l(()=>[t(Ge,null,{default:l(()=>[t(L(rl))]),_:1})]),default:l(()=>[e[94]||(e[94]=u(" 刷新轨迹 ",-1))]),_:1},8,["loading"])),[[E,["tcm.prescriptionOrder/logisticsTrace"]]]),r("div",js,[t(Ye,{href:De.value.sf,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:l(()=>[...e[95]||(e[95]=[u("顺丰官网",-1)])]),_:1},8,["href"]),t(Ye,{href:De.value.jd,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:l(()=>[...e[96]||(e[96]=[u("京东物流",-1)])]),_:1},8,["href"]),t(Ye,{href:De.value.jt,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:l(()=>[...e[97]||(e[97]=[u("极兔",-1)])]),_:1},8,["href"])])]),String(((s=C.value)==null?void 0:s.hint)||"").trim()?(n(),v(Y,{key:0,title:String(((w=C.value)==null?void 0:w.hint)||""),type:"info",closable:!1,class:"mb-4","show-icon":""},null,8,["title"])):y("",!0),xe.value&&!C.value?(n(),c("div",Us,[t(Ge,{class:"is-loading mr-1"},{default:l(()=>[t(L(nl))]),_:1}),e[98]||(e[98]=u("正在加载物流轨迹... ",-1))])):C.value?(n(),c("div",zs,[(wt=C.value)!=null&&wt.state_text?(n(),c("div",Rs,[r("span",Ls,"状态:"+o(C.value.state_text),1),(Vt=C.value)!=null&&Vt.carrier_label?(n(),v(P,{key:0,size:"small",type:"info"},{default:l(()=>[u(o(C.value.carrier_label),1)]),_:1})):y("",!0),(ht=C.value)!=null&&ht.source?(n(),c("span",Is," ["+o(C.value.source==="database"?"数据库缓存":"API拉取")+"] ",1)):y("",!0),(St=C.value)!=null&&St.last_query_time?(n(),c("span",Ds," 更新时间:"+o(C.value.last_query_time),1)):y("",!0)])):y("",!0),nt.value.length?(n(),v(bt,{key:1,class:"mt-2 pl-2"},{default:l(()=>[(n(!0),c(F,null,ce(nt.value,(je,Ue)=>(n(),v(gt,{key:Ue,type:Ue===0?"primary":"info",hollow:Ue!==0,timestamp:je.time,placement:"top"},{default:l(()=>[r("span",{class:Ct(Ue===0?"text-gray-800 font-medium":"text-gray-500")},o(je.context),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(n(),v(J,{key:2,description:"暂无轨迹节点记录","image-size":64}))])):y("",!0)]}),_:1})):y("",!0),t(R,{shadow:"never",class:"po-panel border-gray-100 mt-4"},{header:l(()=>[...e[100]||(e[100]=[r("span",{class:"font-medium text-[15px]"},"操作日志",-1)])]),default:l(()=>[te.value.length?(n(),v(bt,{key:0,class:"mt-2 pl-2"},{default:l(()=>[(n(!0),c(F,null,ce(te.value,(s,w)=>(n(),v(gt,{key:s.id,type:w===0?"primary":"info",hollow:w!==0,timestamp:K(s.create_time),placement:"top"},{default:l(()=>[r("div",qs,[r("span",Fs,o(s.admin_name),1),t(P,{size:"small",type:"info"},{default:l(()=>[u(o(Jt(s.action)),1)]),_:2},1024)]),r("span",{class:Ct(w===0?"text-gray-800 font-medium":"text-gray-500")},o(s.summary),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(n(),v(J,{key:1,description:"暂无操作日志","image-size":64}))]),_:1})])):y("",!0)]),_:1},8,["modelValue"]),t(me,{modelValue:B.value,"onUpdate:modelValue":e[30]||(e[30]=s=>B.value=s),title:"编辑业务订单",width:"680px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[31]||(e[31]=s=>{var w;return(w=ae.value)==null?void 0:w.clearValidate()})},{footer:l(()=>[t(g,{onClick:e[29]||(e[29]=s=>B.value=!1)},{default:l(()=>[...e[103]||(e[103]=[u("取消",-1)])]),_:1}),t(g,{type:"primary",loading:Fe.value,onClick:ia},{default:l(()=>[...e[104]||(e[104]=[u("确认保存",-1)])]),_:1},8,["loading"])]),default:l(()=>[h((n(),v(A,{ref_key:"editFormRef",ref:ae,model:m,rules:la,"label-width":"110px",class:"pr-4"},{default:l(()=>[t(Pe,{gutter:24},{default:l(()=>[t(q,{span:12},{default:l(()=>[t(p,{label:"收货人",prop:"recipient_name"},{default:l(()=>[t(i,{modelValue:m.recipient_name,"onUpdate:modelValue":e[14]||(e[14]=s=>m.recipient_name=s),maxlength:"50"},null,8,["modelValue"])]),_:1})]),_:1}),t(q,{span:12},{default:l(()=>[t(p,{label:"收货手机",prop:"recipient_phone"},{default:l(()=>[t(i,{modelValue:m.recipient_phone,"onUpdate:modelValue":e[15]||(e[15]=s=>m.recipient_phone=s),maxlength:"20"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(p,{label:"收货地址",prop:"shipping_address"},{default:l(()=>[t(i,{modelValue:m.shipping_address,"onUpdate:modelValue":e[16]||(e[16]=s=>m.shipping_address=s),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(Pe,{gutter:24},{default:l(()=>[t(q,{span:12},{default:l(()=>[t(p,{label:"是否复诊"},{default:l(()=>[t(Na,{modelValue:m.is_follow_up,"onUpdate:modelValue":e[17]||(e[17]=s=>m.is_follow_up=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),t(q,{span:12},{default:l(()=>[t(p,{label:"用药疗程"},{default:l(()=>[t(Te,{modelValue:m.medication_days,"onUpdate:modelValue":e[18]||(e[18]=s=>m.medication_days=s),min:1,max:999,step:1,class:"w-full",placeholder:"天数(选填)"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(p,{label:"上次医生"},{default:l(()=>[t(i,{modelValue:m.prev_staff,"onUpdate:modelValue":e[19]||(e[19]=s=>m.prev_staff=s),maxlength:"100",placeholder:"上次诊疗的医生/医助"},null,8,["modelValue"])]),_:1}),t(Pe,{gutter:24},{default:l(()=>[t(q,{span:12},{default:l(()=>[t(p,{label:"服务渠道"},{default:l(()=>[t(i,{modelValue:m.service_channel,"onUpdate:modelValue":e[20]||(e[20]=s=>m.service_channel=s),maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),t(q,{span:12},{default:l(()=>[t(p,{label:"服务套餐"},{default:l(()=>[t(i,{modelValue:m.service_package,"onUpdate:modelValue":e[21]||(e[21]=s=>m.service_package=s),maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(p,{label:"物流设置"},{default:l(()=>[r("div",Bs,[t(O,{modelValue:m.express_company,"onUpdate:modelValue":e[22]||(e[22]=s=>m.express_company=s),placeholder:"承运商",class:"w-[140px]"},{default:l(()=>[t(_,{label:"自动识别",value:"auto"}),t(_,{label:"顺丰速运",value:"sf"}),t(_,{label:"京东快递",value:"jd"}),t(_,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),t(i,{modelValue:m.tracking_number,"onUpdate:modelValue":e[23]||(e[23]=s=>m.tracking_number=s),maxlength:"80",placeholder:"快递单号",class:"flex-1"},null,8,["modelValue"])])]),_:1}),t(p,{label:"费用类别",prop:"fee_type"},{default:l(()=>[t(O,{modelValue:m.fee_type,"onUpdate:modelValue":e[24]||(e[24]=s=>m.fee_type=s),class:"w-full"},{default:l(()=>[t(_,{label:"挂号费",value:1}),t(_,{label:"问诊费",value:2}),t(_,{label:"药品费用",value:3}),t(_,{label:"首付费用",value:4}),t(_,{label:"尾款费用",value:5}),t(_,{label:"其他费用",value:6}),t(_,{label:"全部费用",value:7})]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"关联支付单"},{default:l(()=>[t(O,{modelValue:m.pay_order_ids,"onUpdate:modelValue":e[25]||(e[25]=s=>m.pay_order_ids=s),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"多选本诊单已支付收款单",loading:Be.value},{default:l(()=>[(n(!0),c(F,null,ce(le.value,s=>(n(),v(_,{key:s.id,label:`${s.order_no} · ¥${s.amount} · ${Me(s.order_type)}`,value:s.id,class:"!h-auto py-1.5"},{default:l(()=>[r("div",Ms,[r("div",Hs,[r("span",Ks,o(s.order_no),1),r("span",Qs,"¥"+o(s.amount),1)]),r("div",Ws,[r("span",Gs,[u(o(Me(s.order_type)),1),s.remark?(n(),c(F,{key:0},[u(" · "+o(s.remark),1)],64)):y("",!0)]),r("span",Ys,o(String(s.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),r("div",Js,[e[101]||(e[101]=u(" 可对照此处关联收款记录。已选收款合计:",-1)),r("span",Xs,"¥"+o(H(ea.value)),1),e[102]||(e[102]=u("。 ",-1))])]),_:1}),t(p,{label:"订单金额",prop:"amount"},{default:l(()=>[t(Te,{modelValue:m.amount,"onUpdate:modelValue":e[26]||(e[26]=s=>m.amount=s),min:ta.value,step:.01,precision:2,class:"w-full font-medium"},null,8,["modelValue","min"]),W.value>0?(n(),c("div",Zs," 须 ≥ 定金门槛 ¥"+o(H(W.value))+"。若您手动填写的金额比关联的支付总额小,请确保符合您的业务逻辑。 ",1)):y("",!0)]),_:1}),h((n(),v(p,{label:"内部成本"},{default:l(()=>[t(Te,{modelValue:m.internal_cost,"onUpdate:modelValue":e[27]||(e[27]=s=>m.internal_cost=s),min:0,step:.01,precision:2,class:"w-full",placeholder:"内部管理核算(选填)"},null,8,["modelValue"])]),_:1})),[[E,["finance.account_log/lists"]]]),t(p,{label:"备注补充"},{default:l(()=>[t(i,{modelValue:m.remark_extra,"onUpdate:modelValue":e[28]||(e[28]=s=>m.remark_extra=s),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])),[[X,qe.value]])]),_:1},8,["modelValue"]),t(me,{modelValue:se.value,"onUpdate:modelValue":e[36]||(e[36]=s=>se.value=s),title:ra.value,width:"480px","destroy-on-close":"",onClosed:e[37]||(e[37]=s=>G.value="")},{footer:l(()=>[t(g,{onClick:e[33]||(e[33]=s=>se.value=!1)},{default:l(()=>[...e[106]||(e[106]=[u("取消",-1)])]),_:1}),t(g,{type:"primary",loading:we.value,onClick:e[34]||(e[34]=s=>dt("approve"))},{default:l(()=>[...e[107]||(e[107]=[u("同意通过",-1)])]),_:1},8,["loading"]),t(g,{type:"danger",loading:we.value,onClick:e[35]||(e[35]=s=>dt("reject"))},{default:l(()=>[...e[108]||(e[108]=[u("驳回阻止",-1)])]),_:1},8,["loading"])]),default:l(()=>[ie.value&&ie.value.completion_request===1?(n(),v(Y,{key:0,title:"完单申请",type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:l(()=>[r("div",ei,[e[105]||(e[105]=r("div",{class:"font-medium mb-1"},"该订单已申请完成",-1)),r("div",ti," 申请人:"+o(ie.value.completion_request_by_name||"—"),1),r("div",ai," 申请时间:"+o(K(ie.value.completion_request_time)),1)])]),_:1})):y("",!0),e[109]||(e[109]=r("p",{class:"text-[13px] text-gray-500 mb-3 bg-gray-50/80 border border-gray-100 p-2 rounded"},"驳回时必须填写意见;通过时意见选填。",-1)),t(i,{modelValue:G.value,"onUpdate:modelValue":e[32]||(e[32]=s=>G.value=s),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"在此输入审核意见..."},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),t(me,{modelValue:re.value,"onUpdate:modelValue":e[41]||(e[41]=s=>re.value=s),title:"修改快递单号",width:"420px","destroy-on-close":"","close-on-click-modal":!1},{footer:l(()=>[t(g,{onClick:e[40]||(e[40]=s=>re.value=!1)},{default:l(()=>[...e[111]||(e[111]=[u("取消",-1)])]),_:1}),t(g,{type:"primary",loading:Ve.value,onClick:pt},{default:l(()=>[...e[112]||(e[112]=[u("保存单号",-1)])]),_:1},8,["loading"])]),default:l(()=>[h((n(),v(A,{"label-width":"90px",class:"pr-2",onSubmit:Ot(pt,["prevent"])},{default:l(()=>[t(p,{label:"承运商"},{default:l(()=>[t(O,{modelValue:$.express_company,"onUpdate:modelValue":e[38]||(e[38]=s=>$.express_company=s),class:"w-full",placeholder:"选择承运商"},{default:l(()=>[t(_,{label:"自动识别",value:"auto"}),t(_,{label:"顺丰速运",value:"sf"}),t(_,{label:"京东快递",value:"jd"}),t(_,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"快递单号"},{default:l(()=>[t(i,{modelValue:$.tracking_number,"onUpdate:modelValue":e[39]||(e[39]=s=>$.tracking_number=s),maxlength:"80",placeholder:"请输入快递单号",clearable:"",autofocus:""},null,8,["modelValue"])]),_:1}),e[110]||(e[110]=r("div",{class:"text-xs text-gray-400 pl-[90px] -mt-1 leading-relaxed"}," 仅更新快递信息,其他字段不受影响。 ",-1))]),_:1})),[[X,Ve.value]])]),_:1},8,["modelValue"]),t(me,{modelValue:oe.value,"onUpdate:modelValue":e[45]||(e[45]=s=>oe.value=s),title:"确认发货",width:"440px","destroy-on-close":"","close-on-click-modal":!1},{footer:l(()=>[t(g,{onClick:e[44]||(e[44]=s=>oe.value=!1)},{default:l(()=>[...e[113]||(e[113]=[u("取消",-1)])]),_:1}),t(g,{type:"primary",loading:he.value,onClick:mt},{default:l(()=>[...e[114]||(e[114]=[u(" 确认发货 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[t(Y,{title:"确认后订单状态将变更为「已发货」,请核对快递信息无误。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),h((n(),v(A,{"label-width":"90px",class:"pr-2",onSubmit:Ot(mt,["prevent"])},{default:l(()=>[t(p,{label:"承运商"},{default:l(()=>[t(O,{modelValue:D.express_company,"onUpdate:modelValue":e[42]||(e[42]=s=>D.express_company=s),class:"w-full"},{default:l(()=>[t(_,{label:"自动识别",value:"auto"}),t(_,{label:"顺丰速运",value:"sf"}),t(_,{label:"京东快递",value:"jd"}),t(_,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"快递单号"},{default:l(()=>[t(i,{modelValue:D.tracking_number,"onUpdate:modelValue":e[43]||(e[43]=s=>D.tracking_number=s),maxlength:"80",placeholder:"请输入快递单号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1})),[[X,he.value]])]),_:1},8,["modelValue"]),t(me,{modelValue:ue.value,"onUpdate:modelValue":e[53]||(e[53]=s=>ue.value=s),title:"补齐支付单",width:"600px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[54]||(e[54]=s=>{var w;return(w=Oe.value)==null?void 0:w.clearValidate()})},{footer:l(()=>[t(g,{onClick:e[52]||(e[52]=s=>ue.value=!1)},{default:l(()=>[...e[121]||(e[121]=[u("取消",-1)])]),_:1}),t(g,{type:"primary",loading:Ne.value,onClick:pa},{default:l(()=>[...e[122]||(e[122]=[u("确认新增",-1)])]),_:1},8,["loading"])]),default:l(()=>[t(Y,{title:"可以手动创建新支付单,或关联已存在但未绑定的支付单。",type:"info",closable:!1,"show-icon":"",class:"mb-4"}),h((n(),v(A,{ref_key:"addPayOrderFormRef",ref:Oe,model:V,rules:ua,"label-width":"90px",class:"pr-2"},{default:l(()=>[t(p,{label:"添加方式",prop:"add_mode"},{default:l(()=>[t(kt,{modelValue:V.add_mode,"onUpdate:modelValue":e[46]||(e[46]=s=>V.add_mode=s)},{default:l(()=>[t($e,{value:"create"},{default:l(()=>[...e[115]||(e[115]=[u("手动创建",-1)])]),_:1}),t($e,{value:"link"},{default:l(()=>[...e[116]||(e[116]=[u("关联已有",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),V.add_mode==="create"?(n(),c(F,{key:0},[t(p,{label:"费用类别",prop:"order_type"},{default:l(()=>[t(O,{modelValue:V.order_type,"onUpdate:modelValue":e[47]||(e[47]=s=>V.order_type=s),class:"w-full"},{default:l(()=>[t(_,{label:"挂号费",value:1}),t(_,{label:"问诊费",value:2}),t(_,{label:"药品费用",value:3}),t(_,{label:"首付费用",value:4}),t(_,{label:"尾款费用",value:5}),t(_,{label:"其他费用",value:6}),t(_,{label:"全部费用",value:7})]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"支付金额",prop:"pay_amount"},{default:l(()=>[t(Te,{modelValue:V.pay_amount,"onUpdate:modelValue":e[48]||(e[48]=s=>V.pay_amount=s),min:.01,step:.01,precision:2,class:"w-full",placeholder:"请输入支付金额(元)"},null,8,["modelValue"])]),_:1}),t(p,{label:"备注",prop:"pay_remark"},{default:l(()=>[t(i,{modelValue:V.pay_remark,"onUpdate:modelValue":e[49]||(e[49]=s=>V.pay_remark=s),type:"textarea",rows:3,maxlength:"200","show-word-limit":"",placeholder:"支付说明(选填)"},null,8,["modelValue"])]),_:1})],64)):(n(),v(p,{key:1,label:"选择支付单",prop:"link_pay_order_id"},{default:l(()=>[t(O,{modelValue:V.link_pay_order_ids,"onUpdate:modelValue":e[50]||(e[50]=s=>V.link_pay_order_ids=s),class:"w-full",placeholder:"选择未绑定的支付单(可多选)",loading:Qe.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":""},{default:l(()=>[(n(!0),c(F,null,ce(Ae.value,s=>(n(),v(_,{key:s.id,label:`${s.order_no} · ¥${s.amount} · ${Me(s.order_type)}`,value:s.id},{default:l(()=>[r("div",li,[r("span",si,o(s.order_no),1),r("span",ii,"¥"+o(s.amount),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),e[117]||(e[117]=r("div",{class:"text-xs text-gray-500 mt-1.5"}," 仅显示本诊单下未被其他业务订单占用的支付单,可同时选择多个 ",-1))]),_:1})),t(p,{label:"完单申请"},{default:l(()=>[t(kt,{modelValue:V.completion_request,"onUpdate:modelValue":e[51]||(e[51]=s=>V.completion_request=s)},{default:l(()=>[t($e,{value:0},{default:l(()=>[...e[118]||(e[118]=[u("不申请",-1)])]),_:1}),t($e,{value:1},{default:l(()=>[...e[119]||(e[119]=[u("申请完成订单",-1)])]),_:1})]),_:1},8,["modelValue"]),e[120]||(e[120]=r("div",{class:"text-xs text-gray-400 mt-1"},' 选择"申请完成订单"后,审核人员可在支付审核时看到此申请 ',-1))]),_:1})]),_:1},8,["model"])),[[X,Ne.value]])]),_:1},8,["modelValue"]),t(xt,{modelValue:Ce.value,"onUpdate:modelValue":e[55]||(e[55]=s=>Ce.value=s),title:"查看处方",size:"920px","close-on-click-modal":!1},{default:l(()=>[h((n(),c("div",ri,[f.value?(n(),c("div",ni,[r("div",oi,[r("h2",{class:"cf-slip-title"},o(ca)+"处方笺"),r("div",ui,[Number(f.value.void_status)===1?(n(),v(P,{key:0,type:"danger",size:"small"},{default:l(()=>[...e[123]||(e[123]=[u("已作废",-1)])]),_:1})):Number(f.value.business_prescription_audit_rejected)===1?(n(),v(P,{key:1,type:"danger",size:"small",class:"mr-1"},{default:l(()=>[...e[124]||(e[124]=[u("已驳回",-1)])]),_:1})):Number(f.value.audit_status)===1?(n(),v(P,{key:2,type:"success",size:"small",class:"mr-1"},{default:l(()=>[...e[125]||(e[125]=[u("已通过",-1)])]),_:1})):Number(f.value.audit_status)===0?(n(),v(P,{key:3,type:"warning",size:"small",class:"mr-1"},{default:l(()=>[...e[126]||(e[126]=[u("待审核",-1)])]),_:1})):(n(),v(P,{key:4,type:"danger",size:"small",class:"mr-1"},{default:l(()=>[...e[127]||(e[127]=[u("已驳回",-1)])]),_:1})),Number(f.value.void_status)!==1?(n(),c(F,{key:5},[e[128]||(e[128]=r("div",null,"普通处方",-1)),e[129]||(e[129]=r("div",{class:"text-sm"},"当日有效",-1))],64)):y("",!0)])]),Number(f.value.void_status)===1?(n(),c("div",di," 作废人:"+o(f.value.void_by_name||"—")+",作废时间:"+o(ga(f.value.void_time)),1)):Number(f.value.business_prescription_audit_rejected)===1?(n(),c("div",pi,[e[130]||(e[130]=r("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),f.value.business_prescription_audit_remark?(n(),c("div",mi," 驳回意见:"+o(f.value.business_prescription_audit_remark),1)):(n(),c("div",_i,"暂无驳回意见说明。"))])):Number(f.value.audit_status)===2?(n(),c("div",ci,[e[131]||(e[131]=r("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),f.value.audit_remark?(n(),c("div",fi,"驳回意见:"+o(f.value.audit_remark),1)):(n(),c("div",vi,"暂无文字意见,请联系审核人员。"))])):y("",!0),r("div",yi,[r("div",gi,[r("span",bi,[e[132]||(e[132]=r("em",null,"日期",-1)),u(o(f.value.prescription_date||"—"),1)]),r("span",xi,[e[133]||(e[133]=r("em",null,"电话",-1)),u(o(f.value.phone||"—"),1)]),r("span",ki,[e[134]||(e[134]=r("em",null,"门诊号",-1)),u(o(f.value.visit_no||"—"),1)])]),r("div",wi,[r("span",Vi,[e[135]||(e[135]=r("em",null,"姓名",-1)),u(o(f.value.patient_name||"—"),1)]),r("span",hi,[e[136]||(e[136]=r("em",null,"性别",-1)),u(o(ba(f.value.gender)),1)]),r("span",Si,[e[137]||(e[137]=r("em",null,"年龄",-1)),u(o(xa(f.value.age)),1)])]),f.value.pulse||f.value.tongue?(n(),c("div",Ni,[f.value.pulse?(n(),c("span",Oi,[e[138]||(e[138]=r("em",null,"面象",-1)),u(o(f.value.pulse),1)])):y("",!0),f.value.tongue?(n(),c("span",Ai,[e[139]||(e[139]=r("em",null,"舌象",-1)),u(o(f.value.tongue),1)])):y("",!0)])):y("",!0),r("div",Ci,[r("span",Ei,[e[140]||(e[140]=r("em",null,"临床诊断",-1)),u(o(f.value.clinical_diagnosis||"—"),1)])])]),r("div",Pi,[e[141]||(e[141]=r("div",{class:"cf-slip-rp-label"},"RP",-1)),r("div",Ti,[(n(!0),c(F,null,ce(ya.value,(s,w)=>(n(),c("div",{key:w,class:"cf-slip-herb"},o(s.name)+" "+o(s.dosage)+"克 ",1))),128))])]),r("div",$i,[r("div",ji,[r("div",null," 服用"+o(f.value.usage_days??f.value.dose_count)+"天, "+o(f.value.prescription_type||"浓缩水丸")+" "+o(f.value.usage_instruction||""),1),r("div",null,[u(" 服用时间: "+o(f.value.usage_time?" "+f.value.usage_time:"")+" ",1),e[142]||(e[142]=r("span",{class:"cf-slip-inline-gap"},null,-1)),u(" 服用方式: "+o(f.value.usage_way?" "+f.value.usage_way:""),1)]),ft.value?(n(),c("div",Ui,"忌口:"+o(ft.value),1)):y("",!0),f.value.usage_notes?(n(),c("div",zi,o(f.value.usage_notes),1)):y("",!0)]),r("div",Ri,[r("span",Li,[e[143]||(e[143]=u(" 医师 ",-1)),f.value.doctor_signature?(n(),c("img",{key:0,src:f.value.doctor_signature,alt:"医师签名",class:"cf-slip-sign-img"},null,8,Ii)):(n(),c("span",Di,o(f.value.doctor_name||"—"),1))])])]),r("div",{class:"cf-slip-hospital"},[r("div",null,o(fa)),r("div",null,o(va))]),f.value.audit_by_name||f.value.audit_remark?(n(),c("div",qi,[f.value.audit_by_name?(n(),c("div",Fi,[u(" 审核人:"+o(f.value.audit_by_name)+" ",1),f.value.audit_time?(n(),c("span",Bi,o(vt(f.value.audit_time)),1)):y("",!0)])):y("",!0),f.value.audit_remark?(n(),c("div",Mi,"审核意见:"+o(f.value.audit_remark),1)):y("",!0)])):y("",!0)])):y("",!0)])),[[X,We.value]])]),_:1},8,["modelValue"])])}}}),jr=Vl(Ki,[["__scopeId","data-v-be5363e9"]]);export{jr as default};
diff --git a/server/public/admin/assets/overflow-JSSQqshi.js b/server/public/admin/assets/overflow-CsM7NCF_.js
similarity index 88%
rename from server/public/admin/assets/overflow-JSSQqshi.js
rename to server/public/admin/assets/overflow-CsM7NCF_.js
index 4d118037..200cb1e3 100644
--- a/server/public/admin/assets/overflow-JSSQqshi.js
+++ b/server/public/admin/assets/overflow-CsM7NCF_.js
@@ -1 +1 @@
-import{J as m}from"./element-plus-Dmpg6ayE.js";import{_ as p,p as i}from"./index-DWk_b8Nv.js";import{ak as e,I as a,a as o,aN as n}from"./@vue/runtime-core-C0pg79pw.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const c={};function s(_,l){const t=i,r=m;return e(),a("div",null,[o(r,{header:"基础使用",shadow:"never",class:"!border-none"},{default:n(()=>[o(t,{class:"w-20 m-4",content:"超出自动打点,悬浮弹窗显示全部内容"}),o(t,{class:"w-60 m-4",content:"超出自动打点,悬浮弹窗显示全部内容"})]),_:1})])}const W=p(c,[["render",s]]);export{W as default};
+import{J as m}from"./element-plus-DCRlGjqn.js";import{_ as p,p as i}from"./index-DsBUBCgs.js";import{ak as e,I as a,a as o,aN as n}from"./@vue/runtime-core-C0pg79pw.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const c={};function s(_,l){const t=i,r=m;return e(),a("div",null,[o(r,{header:"基础使用",shadow:"never",class:"!border-none"},{default:n(()=>[o(t,{class:"w-20 m-4",content:"超出自动打点,悬浮弹窗显示全部内容"}),o(t,{class:"w-60 m-4",content:"超出自动打点,悬浮弹窗显示全部内容"})]),_:1})])}const W=p(c,[["render",s]]);export{W as default};
diff --git a/server/public/admin/assets/paiban-D7Qzys7x.js b/server/public/admin/assets/paiban-BLpZMF0K.js
similarity index 93%
rename from server/public/admin/assets/paiban-D7Qzys7x.js
rename to server/public/admin/assets/paiban-BLpZMF0K.js
index f33eeb53..7aa01111 100644
--- a/server/public/admin/assets/paiban-D7Qzys7x.js
+++ b/server/public/admin/assets/paiban-BLpZMF0K.js
@@ -1 +1 @@
-import{D as J,B as P,G as U,I as q,T as H,i as O,J as Q}from"./element-plus-Dmpg6ayE.js";import{d,g as K}from"./dayjs-DG77mNTn.js";import{g as X}from"./tcm-BCaX4wIV.js";import{r as Z,g as ee}from"./doctor-B1l88RG7.js";import{i as y,_ as te}from"./index-DWk_b8Nv.js";import{f as ae,b as oe,d as se,ak as c,I as u,a as g,aN as m,J as p,F as w,ap as E,G as k,O as B,H as le,A as I,n as re}from"./@vue/runtime-core-C0pg79pw.js";import{Q as Y,o as R}from"./@vue/shared-mAAVTE9n.js";import{o as b,r as ie}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const ne={class:"paiban-container"},ce={class:"doctor-list"},de={key:2,class:"paiban-time-container"},me={class:"date-selector"},ue={key:0,class:"time-slots-container"},pe={class:"time-slots-grid"},ve=["onClick"],fe={class:"slot-time"},_e=ae({__name:"paiban",setup(ye){d.extend(K);const v=b(!1),h=b([]),f=b([]),l=b(0),i=b([]);let D=null,T=!1;const o=ie({date:"",selectedTime:""}),V=I(()=>{if(!l.value||i.value.length===0)return[];const e=[],s=["日","一","二","三","四","五","六"],a=d().startOf("day");for(const r of i.value){const n=d(r);if(n.isBefore(a))continue;const _=`${n.format("MM月DD日")} (${s[n.day()]})`;e.push({date:r,label:_})}return e}),$=I(()=>{if(!o.date||f.value.length===0)return[];const e=d().format("YYYY-MM-DD");if(!(o.date===e))return f.value;const a=d();return f.value.map(r=>{const n=d(`${o.date} ${r.time}`);return n.isBefore(a)||n.isSame(a,"minute")?{...r,available:!1}:r})}),N=async()=>{try{v.value=!0;const e=await X();h.value=e||[],h.value.length>0&&!l.value&&(l.value=h.value[0].id,await C())}catch(e){console.error("加载医生列表失败:",e),y.msgError("加载医生列表失败")}finally{v.value=!1}},C=async()=>{o.selectedTime="",o.date="",f.value=[],i.value=[],l.value&&await A()},A=async()=>{if(l.value)try{v.value=!0;const e=d().format("YYYY-MM-DD"),s=d().add(6,"day").format("YYYY-MM-DD"),a=await Z({doctor_id:l.value,start_date:e,end_date:s,status:1});if(a!=null&&a.lists&&a.lists.length>0){if(i.value=[...new Set(a.lists.map(r=>r.date))],i.value.sort(),await re(),i.value.length>0){const r=d().format("YYYY-MM-DD"),n=i.value.includes(r)?r:i.value[0];M(n)}}else i.value=[],y.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),y.msgError("加载医生排班失败"),i.value=[]}finally{v.value=!1}},M=e=>{o.date=e,o.selectedTime="",l.value&&S()},S=async(e=!1)=>{if(!(!l.value||!o.date)){if(T){console.log("正在加载中,跳过本次请求");return}try{T=!0,e||(v.value=!0);const s=await ee({doctor_id:l.value,appointment_date:o.date,period:"all"});f.value=((s==null?void 0:s.slots)||[]).map(a=>({time:a.time,available:a.available,quota:a.available?1:0}))}catch(s){console.error("加载时间段失败:",s),e||y.msgError("加载时间段失败"),f.value=[]}finally{T=!1,e||(v.value=!1)}}},F=e=>{if(!e.available){y.msgWarning("该时间段不可预约");return}o.selectedTime=e.time},L=()=>{x(),D=window.setInterval(()=>{l.value&&o.date&&S(!0)},5e3)},x=()=>{D&&(clearInterval(D),D=null)};return oe(()=>{N(),L()}),se(()=>{x()}),(e,s)=>{const a=q,r=U,n=P,_=H,z=O,G=J,W=Q;return c(),u("div",ne,[g(W,{shadow:"never"},{header:m(()=>[...s[1]||(s[1]=[p("div",{class:"card-header"},[p("span",null,"医生排班管理")],-1)])]),default:m(()=>[g(G,{model:o,"label-width":"100px",class:"paiban-form"},{default:m(()=>[g(n,{label:"选择医生:"},{default:m(()=>[p("div",ce,[g(r,{modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=t=>l.value=t),onChange:C},{default:m(()=>[(c(!0),u(w,null,E(h.value,t=>(c(),k(a,{key:t.id,value:t.id,class:"doctor-radio"},{default:m(()=>[B(Y(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),g(n,{label:"排班时间:"},{default:m(()=>[l.value?l.value&&i.value.length===0?(c(),k(_,{key:1,description:"该医生暂无排班","image-size":80})):(c(),u("div",de,[p("div",me,[(c(!0),u(w,null,E(V.value,t=>(c(),k(z,{key:t.date,type:o.date===t.date?"primary":"",onClick:j=>M(t.date),class:"date-button"},{default:m(()=>[B(Y(t.label),1)]),_:2},1032,["type","onClick"]))),128))]),o.date?(c(),u("div",ue,[p("div",pe,[(c(!0),u(w,null,E($.value,t=>(c(),u("div",{key:t.time,class:R(["time-slot-item",{available:t.available,unavailable:!t.available,selected:o.selectedTime===t.time}]),onClick:j=>F(t)},[p("div",fe,Y(t.time),1),p("div",{class:R(["slot-status",{"status-available":t.available}])},Y(t.available?"可约":"已约"),3)],10,ve))),128))])])):le("",!0)])):(c(),k(_,{key:0,description:"请先选择医生","image-size":80}))]),_:1})]),_:1},8,["model"])]),_:1})])}}}),ot=te(_e,[["__scopeId","data-v-79f98e7f"]]);export{ot as default};
+import{D as J,B as P,G as U,I as q,T as H,i as O,J as Q}from"./element-plus-DCRlGjqn.js";import{d,g as K}from"./dayjs-DG77mNTn.js";import{g as X}from"./tcm-PvaD3bI2.js";import{r as Z,g as ee}from"./doctor-E6C8uXfZ.js";import{i as y,_ as te}from"./index-DsBUBCgs.js";import{f as ae,b as oe,d as se,ak as c,I as u,a as g,aN as m,J as p,F as w,ap as E,G as k,O as B,H as le,A as I,n as re}from"./@vue/runtime-core-C0pg79pw.js";import{Q as Y,o as R}from"./@vue/shared-mAAVTE9n.js";import{o as b,r as ie}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const ne={class:"paiban-container"},ce={class:"doctor-list"},de={key:2,class:"paiban-time-container"},me={class:"date-selector"},ue={key:0,class:"time-slots-container"},pe={class:"time-slots-grid"},ve=["onClick"],fe={class:"slot-time"},_e=ae({__name:"paiban",setup(ye){d.extend(K);const v=b(!1),h=b([]),f=b([]),l=b(0),i=b([]);let D=null,T=!1;const o=ie({date:"",selectedTime:""}),V=I(()=>{if(!l.value||i.value.length===0)return[];const e=[],s=["日","一","二","三","四","五","六"],a=d().startOf("day");for(const r of i.value){const n=d(r);if(n.isBefore(a))continue;const _=`${n.format("MM月DD日")} (${s[n.day()]})`;e.push({date:r,label:_})}return e}),$=I(()=>{if(!o.date||f.value.length===0)return[];const e=d().format("YYYY-MM-DD");if(!(o.date===e))return f.value;const a=d();return f.value.map(r=>{const n=d(`${o.date} ${r.time}`);return n.isBefore(a)||n.isSame(a,"minute")?{...r,available:!1}:r})}),N=async()=>{try{v.value=!0;const e=await X();h.value=e||[],h.value.length>0&&!l.value&&(l.value=h.value[0].id,await C())}catch(e){console.error("加载医生列表失败:",e),y.msgError("加载医生列表失败")}finally{v.value=!1}},C=async()=>{o.selectedTime="",o.date="",f.value=[],i.value=[],l.value&&await A()},A=async()=>{if(l.value)try{v.value=!0;const e=d().format("YYYY-MM-DD"),s=d().add(6,"day").format("YYYY-MM-DD"),a=await Z({doctor_id:l.value,start_date:e,end_date:s,status:1});if(a!=null&&a.lists&&a.lists.length>0){if(i.value=[...new Set(a.lists.map(r=>r.date))],i.value.sort(),await re(),i.value.length>0){const r=d().format("YYYY-MM-DD"),n=i.value.includes(r)?r:i.value[0];M(n)}}else i.value=[],y.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),y.msgError("加载医生排班失败"),i.value=[]}finally{v.value=!1}},M=e=>{o.date=e,o.selectedTime="",l.value&&S()},S=async(e=!1)=>{if(!(!l.value||!o.date)){if(T){console.log("正在加载中,跳过本次请求");return}try{T=!0,e||(v.value=!0);const s=await ee({doctor_id:l.value,appointment_date:o.date,period:"all"});f.value=((s==null?void 0:s.slots)||[]).map(a=>({time:a.time,available:a.available,quota:a.available?1:0}))}catch(s){console.error("加载时间段失败:",s),e||y.msgError("加载时间段失败"),f.value=[]}finally{T=!1,e||(v.value=!1)}}},F=e=>{if(!e.available){y.msgWarning("该时间段不可预约");return}o.selectedTime=e.time},L=()=>{x(),D=window.setInterval(()=>{l.value&&o.date&&S(!0)},5e3)},x=()=>{D&&(clearInterval(D),D=null)};return oe(()=>{N(),L()}),se(()=>{x()}),(e,s)=>{const a=q,r=U,n=P,_=H,z=O,G=J,W=Q;return c(),u("div",ne,[g(W,{shadow:"never"},{header:m(()=>[...s[1]||(s[1]=[p("div",{class:"card-header"},[p("span",null,"医生排班管理")],-1)])]),default:m(()=>[g(G,{model:o,"label-width":"100px",class:"paiban-form"},{default:m(()=>[g(n,{label:"选择医生:"},{default:m(()=>[p("div",ce,[g(r,{modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=t=>l.value=t),onChange:C},{default:m(()=>[(c(!0),u(w,null,E(h.value,t=>(c(),k(a,{key:t.id,value:t.id,class:"doctor-radio"},{default:m(()=>[B(Y(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),g(n,{label:"排班时间:"},{default:m(()=>[l.value?l.value&&i.value.length===0?(c(),k(_,{key:1,description:"该医生暂无排班","image-size":80})):(c(),u("div",de,[p("div",me,[(c(!0),u(w,null,E(V.value,t=>(c(),k(z,{key:t.date,type:o.date===t.date?"primary":"",onClick:j=>M(t.date),class:"date-button"},{default:m(()=>[B(Y(t.label),1)]),_:2},1032,["type","onClick"]))),128))]),o.date?(c(),u("div",ue,[p("div",pe,[(c(!0),u(w,null,E($.value,t=>(c(),u("div",{key:t.time,class:R(["time-slot-item",{available:t.available,unavailable:!t.available,selected:o.selectedTime===t.time}]),onClick:j=>F(t)},[p("div",fe,Y(t.time),1),p("div",{class:R(["slot-status",{"status-available":t.available}])},Y(t.available?"可约":"已约"),3)],10,ve))),128))])])):le("",!0)])):(c(),k(_,{key:0,description:"请先选择医生","image-size":80}))]),_:1})]),_:1},8,["model"])]),_:1})])}}}),ot=te(_e,[["__scopeId","data-v-79f98e7f"]]);export{ot as default};
diff --git a/server/public/admin/assets/patient-call-nKsjAgq4.js b/server/public/admin/assets/patient-call-C8vi8ml_.js
similarity index 97%
rename from server/public/admin/assets/patient-call-nKsjAgq4.js
rename to server/public/admin/assets/patient-call-C8vi8ml_.js
index cf6a81c2..6f254382 100644
--- a/server/public/admin/assets/patient-call-nKsjAgq4.js
+++ b/server/public/admin/assets/patient-call-C8vi8ml_.js
@@ -1 +1 @@
-import{E as a,K as Q,i as W,d as $,T as X,J as Y,b as G}from"./element-plus-Dmpg6ayE.js";import{V as K}from"./@element-plus/icons-vue-DsycZ37q.js";import{F as C,u as M,g as k,a as L,l as T,r as Z,y as E}from"./@tencentcloud/call-uikit-vue-6oZM4bBc.js";import{u as ee,r as te,_ as oe}from"./index-DWk_b8Nv.js";import{f as le,b as ae,n as O,d as ne,ak as m,I as d,a as r,aN as c,J as n,O as f,G as z,H as h,A as se}from"./@vue/runtime-core-C0pg79pw.js";import{Q as w,o as ie}from"./@vue/shared-mAAVTE9n.js";import{y as A,o as y}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./@tencentcloud/call-engine-js-BX2W9Lhf.js";import"./@tencentcloud/chat-AC2Y2r2A.js";import"./rtc-detect-Chu-fZvE.js";import"./@tencentcloud/tui-core-8M7p1XHw.js";import"./tim-upload-plugin-HO4N4AW9.js";import"./tim-profanity-filter-plugin-Dn_Cf-mP.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const re={class:"patient-test"},ce={key:0,class:"init-section"},ue={key:1,class:"status"},pe={class:"flex items-center"},me={class:"mt-2"},fe={key:0},ve={key:0,class:"call-actions mt-4"},de={key:2,id:"call-container",class:"call-container phone-call-shell"},ge={key:3,class:"waiting-container"},Ie={key:4,class:"phone-call-kit-host phone-call-kit-host--offscreen","aria-hidden":"true"},_e=le({__name:"patient-call",setup(Ce){const B=ee(),S=se(()=>B.userInfo),U=y(!1),g=y(!1),D=y(""),o=y(!1),s=y(!1),p=y(null),v=y(null);let I=null;ae(()=>{V()});function b(t){try{const e=k.getData(L.CALL,T.CALL_STATUS),u=k.getData(L.CALL,T.CALL_ROLE),i=!!k.getData(L.CALL,T.IS_GROUP),_=o.value;if(e==="calling"&&u===Z.CALLEE){o.value=!0,p.value={isGroup:i,from:t},_||(a.info("检测到待接听的来电,请点击接听"),G({title:"来电提醒",message:"有待接听的视频通话",type:"warning",duration:0,position:"top-right"})),s.value=!1;return}if(e==="connected"){o.value=!1,p.value=null,s.value=!0;return}e==="idle"&&(o.value||s.value)&&(o.value=!1,s.value=!1,p.value=null)}catch(e){console.warn("syncIncomingFromTUIStore:",t,e)}}function x(){b("watch")}function P(){I&&(I(),I=null);const t={[T.CALL_STATUS]:x,[T.CALL_ROLE]:x};try{k.watch(L.CALL,t),I=()=>{try{k.unwatch(L.CALL,t)}catch{}}}catch(e){console.warn("TUIStore.watch 失败:",e)}}const R=()=>{v.value&&clearInterval(v.value);let t=0;const e=90;v.value=setInterval(()=>{t+=1,b("poll"),t>=e&&v.value&&(clearInterval(v.value),v.value=null)},500)},F=({oldStatus:t,newStatus:e})=>{console.log("========================================"),console.log("=== 通话状态变化回调触发 ==="),console.log("oldStatus:",t),console.log("newStatus:",e),console.log("STATUS 常量:",E),console.log("========================================"),e===E.BE_INVITED&&(console.log(">>> 收到来电邀请"),o.value=!0,p.value={oldStatus:t,newStatus:e},G({title:"来电提醒",message:"收到视频通话请求",type:"info",duration:0,position:"top-right"}),a.success("收到来电,请点击接听按钮")),(e===E.CALLING_C2C_VIDEO||e===E.CALLING_GROUP_VIDEO)&&(console.log(">>> 通话已接通"),a.success("通话已接通"),o.value=!1,s.value=!0),e===E.IDLE&&(o.value||s.value)&&(console.log(">>> 通话已结束"),o.value=!1,s.value=!1,p.value=null,a.info("通话已结束"))},V=async()=>{try{U.value=!0;const t=S.value.id;if(!t)throw new Error("未获取到当前用户ID,请重新登录");console.log("=== 开始初始化医疗助理端 ==="),console.log("当前用户ID:",t),a.info("正在获取签名...");const e=await te.get({url:"/tcm.diagnosis/getDoctorSignature",params:{patient_id:t}});if(!e)throw new Error("获取签名失败");const{sdkAppId:u,userId:i,userSig:_}=e;if(D.value=i,console.log("医疗助理签名获取成功:",{userId:i,sdkAppId:u,userSigLength:_.length}),console.log("完整签名信息:",e),a.info("正在初始化通话组件..."),console.log("=== 开始调用 TUICallKitServer.init ==="),!C||typeof C.init!="function")throw new Error("TUICallKitServer 未正确加载,请刷新页面重试");try{await C.init({userID:i,userSig:_,SDKAppID:Number(u)})}catch(l){console.warn("TUICallKitServer.init 出现错误,但继续执行:",l)}console.log("=== TUICallKitServer.init 完成 ===");const N={statusChanged:F,onError:l=>{console.error("=== TUICallKit 错误回调 ===",l),a.error(`通话错误: ${(l==null?void 0:l.message)||"未知错误"}`)},onInvited:l=>{console.log("=== 收到邀请回调 (onInvited) ===",l),a.info("收到通话邀请 (onInvited)")},afterCalling:()=>{console.log("=== afterCalling 回调 ===")}};try{C.setCallback(N)}catch(l){console.warn("设置回调时出现错误,但继续执行:",l)}console.log("回调设置完成"),a.info("等待初始化完成..."),await new Promise(l=>setTimeout(l,2e3)),g.value=!0,await O(),await new Promise(l=>setTimeout(l,300)),P(),b("post-init"),R(),a.success("医疗助理端初始化成功,等待来电..."),console.log("=== 医疗助理端初始化完成 ==="),console.log("userId:",i),console.log("等待来电中..."),console.log("请在医生端发起群组通话,目标用户ID应该是:",i)}catch(t){console.error("=== 初始化失败 ===",t),a.error(t.message||"初始化失败")}finally{U.value=!1}};async function j(){var t;await O(),await new Promise(e=>setTimeout(e,400));try{const e=C;if(typeof e.closeMicrophone=="function")return await e.closeMicrophone(),!0;const u=(t=e.getTUICallEngineInstance)==null?void 0:t.call(e);if(u&&typeof u.closeMicrophone=="function")return await u.closeMicrophone(),!0}catch(e){console.warn("接听后关闭麦克风失败(可在通话条手动关麦):",e)}return!1}const J=async()=>{try{console.log("接听来电"),await C.accept(),a.success("已接听通话"),o.value=!1,s.value=!0,await j()&&a.info("已关闭本地麦克风")}catch(t){console.error("接听失败:",t),a.error(t.message||"接听失败")}},q=async()=>{try{console.log("拒绝来电"),await C.reject(),a.info("已拒绝通话"),o.value=!1,p.value=null}catch(t){console.error("拒绝失败:",t),a.error(t.message||"拒绝失败")}},H=()=>{g.value=!1,D.value="",o.value=!1,s.value=!1,p.value=null};return ne(()=>{v.value&&(clearInterval(v.value),v.value=null),I&&(I(),I=null),g.value&&(o.value=!1,s.value=!1,p.value=null)}),(t,e)=>{const u=Q,i=W,_=$,N=X,l=Y;return m(),d("div",re,[r(l,null,{header:c(()=>[...e[0]||(e[0]=[n("div",{class:"card-header"},[n("span",null,"医疗助理端 - 接听来电")],-1)])]),default:c(()=>[g.value?h("",!0):(m(),d("div",ce,[r(u,{type:"info",closable:!1,class:"mb-4"},{default:c(()=>[n("p",null,[e[1]||(e[1]=n("strong",null,"当前登录用户:",-1)),f(" "+w(S.value.nickname||S.value.name||"未知"),1)]),n("p",null,[e[2]||(e[2]=n("strong",null,"用户ID:",-1)),f(" "+w(S.value.id||"未获取"),1)]),e[3]||(e[3]=n("p",null,[n("strong",null,"状态:"),f(" 正在初始化...")],-1))]),_:1}),U.value?h("",!0):(m(),z(i,{key:0,type:"primary",onClick:V,loading:U.value,size:"large"},{default:c(()=>[...e[4]||(e[4]=[f(" 重新初始化 ",-1)])]),_:1},8,["loading"]))])),g.value?(m(),d("div",ue,[r(u,{type:o.value?"warning":"success",closable:!1},{title:c(()=>[n("div",pe,[r(_,{class:ie(["mr-2",{"animate-pulse":o.value}])},{default:c(()=>[r(A(K))]),_:1},8,["class"]),n("span",null,w(o.value?"收到来电!":"医疗助理端已初始化,等待来电..."),1)])]),default:c(()=>[n("div",me,[n("p",null,[e[5]||(e[5]=n("strong",null,"医疗助理ID:",-1)),f(" "+w(D.value),1)]),n("p",null,[e[6]||(e[6]=n("strong",null,"状态:",-1)),f(" "+w(o.value?"来电中":"在线"),1)]),o.value&&p.value?(m(),d("p",fe,[e[7]||(e[7]=n("strong",null,"通话类型:",-1)),f(" "+w(p.value.isGroup?"群组视频通话":"视频通话"),1)])):h("",!0)])]),_:1},8,["type"]),o.value?(m(),d("div",ve,[r(i,{type:"success",size:"large",onClick:J,icon:A(K)},{default:c(()=>[...e[8]||(e[8]=[f(" 接听 ",-1)])]),_:1},8,["icon"]),r(i,{type:"danger",size:"large",onClick:q},{default:c(()=>[...e[9]||(e[9]=[f(" 拒绝 ",-1)])]),_:1})])):(m(),z(i,{key:1,type:"danger",onClick:H,class:"mt-4"},{default:c(()=>[...e[10]||(e[10]=[f(" 重置 ",-1)])]),_:1}))])):h("",!0),o.value||s.value?(m(),d("div",de,[r(A(M),{class:"TUICallKit-mobile"})])):g.value?(m(),d("div",ge,[r(N,{description:"等待来电中..."},{image:c(()=>[r(_,{size:80,color:"#909399"},{default:c(()=>[r(A(K))]),_:1})]),_:1})])):h("",!0),g.value&&!o.value&&!s.value?(m(),d("div",Ie,[r(A(M),{class:"TUICallKit-mobile"})])):h("",!0)]),_:1})])}}}),ut=oe(_e,[["__scopeId","data-v-56c22385"]]);export{ut as default};
+import{E as a,K as Q,i as W,d as $,T as X,J as Y,b as G}from"./element-plus-DCRlGjqn.js";import{V as K}from"./@element-plus/icons-vue-jYCthPJY.js";import{F as C,u as M,g as k,a as L,l as T,r as Z,y as E}from"./@tencentcloud/call-uikit-vue-6oZM4bBc.js";import{u as ee,r as te,_ as oe}from"./index-DsBUBCgs.js";import{f as le,b as ae,n as O,d as ne,ak as m,I as d,a as r,aN as c,J as n,O as f,G as z,H as h,A as se}from"./@vue/runtime-core-C0pg79pw.js";import{Q as w,o as ie}from"./@vue/shared-mAAVTE9n.js";import{y as A,o as y}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./@tencentcloud/call-engine-js-BX2W9Lhf.js";import"./@tencentcloud/chat-AC2Y2r2A.js";import"./rtc-detect-Chu-fZvE.js";import"./@tencentcloud/tui-core-8M7p1XHw.js";import"./tim-upload-plugin-HO4N4AW9.js";import"./tim-profanity-filter-plugin-Dn_Cf-mP.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const re={class:"patient-test"},ce={key:0,class:"init-section"},ue={key:1,class:"status"},pe={class:"flex items-center"},me={class:"mt-2"},fe={key:0},ve={key:0,class:"call-actions mt-4"},de={key:2,id:"call-container",class:"call-container phone-call-shell"},ge={key:3,class:"waiting-container"},Ie={key:4,class:"phone-call-kit-host phone-call-kit-host--offscreen","aria-hidden":"true"},_e=le({__name:"patient-call",setup(Ce){const B=ee(),S=se(()=>B.userInfo),U=y(!1),g=y(!1),D=y(""),o=y(!1),s=y(!1),p=y(null),v=y(null);let I=null;ae(()=>{V()});function b(t){try{const e=k.getData(L.CALL,T.CALL_STATUS),u=k.getData(L.CALL,T.CALL_ROLE),i=!!k.getData(L.CALL,T.IS_GROUP),_=o.value;if(e==="calling"&&u===Z.CALLEE){o.value=!0,p.value={isGroup:i,from:t},_||(a.info("检测到待接听的来电,请点击接听"),G({title:"来电提醒",message:"有待接听的视频通话",type:"warning",duration:0,position:"top-right"})),s.value=!1;return}if(e==="connected"){o.value=!1,p.value=null,s.value=!0;return}e==="idle"&&(o.value||s.value)&&(o.value=!1,s.value=!1,p.value=null)}catch(e){console.warn("syncIncomingFromTUIStore:",t,e)}}function x(){b("watch")}function P(){I&&(I(),I=null);const t={[T.CALL_STATUS]:x,[T.CALL_ROLE]:x};try{k.watch(L.CALL,t),I=()=>{try{k.unwatch(L.CALL,t)}catch{}}}catch(e){console.warn("TUIStore.watch 失败:",e)}}const R=()=>{v.value&&clearInterval(v.value);let t=0;const e=90;v.value=setInterval(()=>{t+=1,b("poll"),t>=e&&v.value&&(clearInterval(v.value),v.value=null)},500)},F=({oldStatus:t,newStatus:e})=>{console.log("========================================"),console.log("=== 通话状态变化回调触发 ==="),console.log("oldStatus:",t),console.log("newStatus:",e),console.log("STATUS 常量:",E),console.log("========================================"),e===E.BE_INVITED&&(console.log(">>> 收到来电邀请"),o.value=!0,p.value={oldStatus:t,newStatus:e},G({title:"来电提醒",message:"收到视频通话请求",type:"info",duration:0,position:"top-right"}),a.success("收到来电,请点击接听按钮")),(e===E.CALLING_C2C_VIDEO||e===E.CALLING_GROUP_VIDEO)&&(console.log(">>> 通话已接通"),a.success("通话已接通"),o.value=!1,s.value=!0),e===E.IDLE&&(o.value||s.value)&&(console.log(">>> 通话已结束"),o.value=!1,s.value=!1,p.value=null,a.info("通话已结束"))},V=async()=>{try{U.value=!0;const t=S.value.id;if(!t)throw new Error("未获取到当前用户ID,请重新登录");console.log("=== 开始初始化医疗助理端 ==="),console.log("当前用户ID:",t),a.info("正在获取签名...");const e=await te.get({url:"/tcm.diagnosis/getDoctorSignature",params:{patient_id:t}});if(!e)throw new Error("获取签名失败");const{sdkAppId:u,userId:i,userSig:_}=e;if(D.value=i,console.log("医疗助理签名获取成功:",{userId:i,sdkAppId:u,userSigLength:_.length}),console.log("完整签名信息:",e),a.info("正在初始化通话组件..."),console.log("=== 开始调用 TUICallKitServer.init ==="),!C||typeof C.init!="function")throw new Error("TUICallKitServer 未正确加载,请刷新页面重试");try{await C.init({userID:i,userSig:_,SDKAppID:Number(u)})}catch(l){console.warn("TUICallKitServer.init 出现错误,但继续执行:",l)}console.log("=== TUICallKitServer.init 完成 ===");const N={statusChanged:F,onError:l=>{console.error("=== TUICallKit 错误回调 ===",l),a.error(`通话错误: ${(l==null?void 0:l.message)||"未知错误"}`)},onInvited:l=>{console.log("=== 收到邀请回调 (onInvited) ===",l),a.info("收到通话邀请 (onInvited)")},afterCalling:()=>{console.log("=== afterCalling 回调 ===")}};try{C.setCallback(N)}catch(l){console.warn("设置回调时出现错误,但继续执行:",l)}console.log("回调设置完成"),a.info("等待初始化完成..."),await new Promise(l=>setTimeout(l,2e3)),g.value=!0,await O(),await new Promise(l=>setTimeout(l,300)),P(),b("post-init"),R(),a.success("医疗助理端初始化成功,等待来电..."),console.log("=== 医疗助理端初始化完成 ==="),console.log("userId:",i),console.log("等待来电中..."),console.log("请在医生端发起群组通话,目标用户ID应该是:",i)}catch(t){console.error("=== 初始化失败 ===",t),a.error(t.message||"初始化失败")}finally{U.value=!1}};async function j(){var t;await O(),await new Promise(e=>setTimeout(e,400));try{const e=C;if(typeof e.closeMicrophone=="function")return await e.closeMicrophone(),!0;const u=(t=e.getTUICallEngineInstance)==null?void 0:t.call(e);if(u&&typeof u.closeMicrophone=="function")return await u.closeMicrophone(),!0}catch(e){console.warn("接听后关闭麦克风失败(可在通话条手动关麦):",e)}return!1}const J=async()=>{try{console.log("接听来电"),await C.accept(),a.success("已接听通话"),o.value=!1,s.value=!0,await j()&&a.info("已关闭本地麦克风")}catch(t){console.error("接听失败:",t),a.error(t.message||"接听失败")}},q=async()=>{try{console.log("拒绝来电"),await C.reject(),a.info("已拒绝通话"),o.value=!1,p.value=null}catch(t){console.error("拒绝失败:",t),a.error(t.message||"拒绝失败")}},H=()=>{g.value=!1,D.value="",o.value=!1,s.value=!1,p.value=null};return ne(()=>{v.value&&(clearInterval(v.value),v.value=null),I&&(I(),I=null),g.value&&(o.value=!1,s.value=!1,p.value=null)}),(t,e)=>{const u=Q,i=W,_=$,N=X,l=Y;return m(),d("div",re,[r(l,null,{header:c(()=>[...e[0]||(e[0]=[n("div",{class:"card-header"},[n("span",null,"医疗助理端 - 接听来电")],-1)])]),default:c(()=>[g.value?h("",!0):(m(),d("div",ce,[r(u,{type:"info",closable:!1,class:"mb-4"},{default:c(()=>[n("p",null,[e[1]||(e[1]=n("strong",null,"当前登录用户:",-1)),f(" "+w(S.value.nickname||S.value.name||"未知"),1)]),n("p",null,[e[2]||(e[2]=n("strong",null,"用户ID:",-1)),f(" "+w(S.value.id||"未获取"),1)]),e[3]||(e[3]=n("p",null,[n("strong",null,"状态:"),f(" 正在初始化...")],-1))]),_:1}),U.value?h("",!0):(m(),z(i,{key:0,type:"primary",onClick:V,loading:U.value,size:"large"},{default:c(()=>[...e[4]||(e[4]=[f(" 重新初始化 ",-1)])]),_:1},8,["loading"]))])),g.value?(m(),d("div",ue,[r(u,{type:o.value?"warning":"success",closable:!1},{title:c(()=>[n("div",pe,[r(_,{class:ie(["mr-2",{"animate-pulse":o.value}])},{default:c(()=>[r(A(K))]),_:1},8,["class"]),n("span",null,w(o.value?"收到来电!":"医疗助理端已初始化,等待来电..."),1)])]),default:c(()=>[n("div",me,[n("p",null,[e[5]||(e[5]=n("strong",null,"医疗助理ID:",-1)),f(" "+w(D.value),1)]),n("p",null,[e[6]||(e[6]=n("strong",null,"状态:",-1)),f(" "+w(o.value?"来电中":"在线"),1)]),o.value&&p.value?(m(),d("p",fe,[e[7]||(e[7]=n("strong",null,"通话类型:",-1)),f(" "+w(p.value.isGroup?"群组视频通话":"视频通话"),1)])):h("",!0)])]),_:1},8,["type"]),o.value?(m(),d("div",ve,[r(i,{type:"success",size:"large",onClick:J,icon:A(K)},{default:c(()=>[...e[8]||(e[8]=[f(" 接听 ",-1)])]),_:1},8,["icon"]),r(i,{type:"danger",size:"large",onClick:q},{default:c(()=>[...e[9]||(e[9]=[f(" 拒绝 ",-1)])]),_:1})])):(m(),z(i,{key:1,type:"danger",onClick:H,class:"mt-4"},{default:c(()=>[...e[10]||(e[10]=[f(" 重置 ",-1)])]),_:1}))])):h("",!0),o.value||s.value?(m(),d("div",de,[r(A(M),{class:"TUICallKit-mobile"})])):g.value?(m(),d("div",ge,[r(N,{description:"等待来电中..."},{image:c(()=>[r(_,{size:80,color:"#909399"},{default:c(()=>[r(A(K))]),_:1})]),_:1})])):h("",!0),g.value&&!o.value&&!s.value?(m(),d("div",Ie,[r(A(M),{class:"TUICallKit-mobile"})])):h("",!0)]),_:1})])}}}),ut=oe(_e,[["__scopeId","data-v-56c22385"]]);export{ut as default};
diff --git a/server/public/admin/assets/pay-v9y4qZZ2.js b/server/public/admin/assets/pay-D33WrCtT.js
similarity index 85%
rename from server/public/admin/assets/pay-v9y4qZZ2.js
rename to server/public/admin/assets/pay-D33WrCtT.js
index 9ac188ea..f8708fb8 100644
--- a/server/public/admin/assets/pay-v9y4qZZ2.js
+++ b/server/public/admin/assets/pay-D33WrCtT.js
@@ -1 +1 @@
-import{r as a}from"./index-DWk_b8Nv.js";function e(){return a.get({url:"/setting.pay.pay_way/getPayWay"})}function s(t){return a.post({url:"/setting.pay.pay_way/setPayWay",params:t})}function y(){return a.get({url:"/setting.pay.pay_config/lists"})}function g(t){return a.post({url:"/setting.pay.pay_config/setConfig",params:t})}function i(t){return a.get({url:"/setting.pay.pay_config/getConfig",params:t})}export{y as a,e as b,s as c,i as g,g as s};
+import{r as a}from"./index-DsBUBCgs.js";function e(){return a.get({url:"/setting.pay.pay_way/getPayWay"})}function s(t){return a.post({url:"/setting.pay.pay_way/setPayWay",params:t})}function y(){return a.get({url:"/setting.pay.pay_config/lists"})}function g(t){return a.post({url:"/setting.pay.pay_config/setConfig",params:t})}function i(t){return a.get({url:"/setting.pay.pay_config/getConfig",params:t})}export{y as a,e as b,s as c,i as g,g as s};
diff --git a/server/public/admin/assets/pc-BWruUdu5.js b/server/public/admin/assets/pc-BKimXPJq.js
similarity index 89%
rename from server/public/admin/assets/pc-BWruUdu5.js
rename to server/public/admin/assets/pc-BKimXPJq.js
index a30c42b1..d43e7121 100644
--- a/server/public/admin/assets/pc-BWruUdu5.js
+++ b/server/public/admin/assets/pc-BKimXPJq.js
@@ -1 +1 @@
-import{i as x,D as v,B as D,C as b,J as g}from"./element-plus-Dmpg6ayE.js";import{b as k}from"./decoration-Bm7sdIO5.js";import{f as n,ar as w,as as B,ak as s,I as C,a as o,aN as e,J as E,O as p,aP as V,G as N}from"./@vue/runtime-core-C0pg79pw.js";import{y as a,o as P}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as I}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-DWk_b8Nv.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const F={class:"decoration-pc min-w-[1100px]"},J=n({name:"decorationPc"}),Dt=n({...J,setup(q){const r=P({update_time:"",pc_url:""});return(async()=>{try{r.value=await k()}catch(i){console.log(i)}})(),(i,t)=>{const m=x,c=w("router-link"),l=D,_=b,d=v,u=g,f=B("copy");return s(),C("div",F,[o(u,{shadow:"never",class:"!border-none flex-1 flex"},{default:e(()=>[t[3]||(t[3]=E("div",{class:"text-xl font-medium"},"首页装修",-1)),o(c,{to:{path:"/decoration/pc_details",query:{url:a(r).pc_url}}},{default:e(()=>[o(m,{class:"m-5",type:"primary",size:"large"},{default:e(()=>[...t[1]||(t[1]=[p("去装修",-1)])]),_:1})]),_:1},8,["to"]),o(d,null,{default:e(()=>[o(l,{label:"最近更新"},{default:e(()=>[p(I(a(r).update_time),1)]),_:1}),o(l,{label:"PC端链接"},{default:e(()=>[o(_,{style:{width:"350px"},modelValue:a(r).pc_url,"onUpdate:modelValue":t[0]||(t[0]=y=>a(r).pc_url=y),disabled:""},null,8,["modelValue"]),V((s(),N(m,{type:"primary"},{default:e(()=>[...t[2]||(t[2]=[p("复制",-1)])]),_:1})),[[f,a(r).pc_url]])]),_:1})]),_:1})]),_:1})])}}});export{Dt as default};
+import{i as x,D as v,B as D,C as b,J as g}from"./element-plus-DCRlGjqn.js";import{b as k}from"./decoration-B1aWgelJ.js";import{f as n,ar as w,as as B,ak as s,I as C,a as o,aN as e,J as E,O as p,aP as V,G as N}from"./@vue/runtime-core-C0pg79pw.js";import{y as a,o as P}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as I}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-DsBUBCgs.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const F={class:"decoration-pc min-w-[1100px]"},J=n({name:"decorationPc"}),Dt=n({...J,setup(q){const r=P({update_time:"",pc_url:""});return(async()=>{try{r.value=await k()}catch(i){console.log(i)}})(),(i,t)=>{const m=x,c=w("router-link"),l=D,_=b,d=v,u=g,f=B("copy");return s(),C("div",F,[o(u,{shadow:"never",class:"!border-none flex-1 flex"},{default:e(()=>[t[3]||(t[3]=E("div",{class:"text-xl font-medium"},"首页装修",-1)),o(c,{to:{path:"/decoration/pc_details",query:{url:a(r).pc_url}}},{default:e(()=>[o(m,{class:"m-5",type:"primary",size:"large"},{default:e(()=>[...t[1]||(t[1]=[p("去装修",-1)])]),_:1})]),_:1},8,["to"]),o(d,null,{default:e(()=>[o(l,{label:"最近更新"},{default:e(()=>[p(I(a(r).update_time),1)]),_:1}),o(l,{label:"PC端链接"},{default:e(()=>[o(_,{style:{width:"350px"},modelValue:a(r).pc_url,"onUpdate:modelValue":t[0]||(t[0]=y=>a(r).pc_url=y),disabled:""},null,8,["modelValue"]),V((s(),N(m,{type:"primary"},{default:e(()=>[...t[2]||(t[2]=[p("复制",-1)])]),_:1})),[[f,a(r).pc_url]])]),_:1})]),_:1})]),_:1})])}}});export{Dt as default};
diff --git a/server/public/admin/assets/pc_details-CT6yJ3_6.js b/server/public/admin/assets/pc_details-iEWAq5pT.js
similarity index 57%
rename from server/public/admin/assets/pc_details-CT6yJ3_6.js
rename to server/public/admin/assets/pc_details-iEWAq5pT.js
index eed956db..db3153a8 100644
--- a/server/public/admin/assets/pc_details-CT6yJ3_6.js
+++ b/server/public/admin/assets/pc_details-iEWAq5pT.js
@@ -1 +1 @@
-import{i as b,J as P}from"./element-plus-Dmpg6ayE.js";import{m as B}from"./@element-plus/icons-vue-DsycZ37q.js";import{a as N,s as V}from"./decoration-Bm7sdIO5.js";import{i as C,_ as E}from"./index-DWk_b8Nv.js";import I from"./preview-pc-riMgcvDF.js";import{a as h}from"./vue-router-CYz6RFzi.js";import{f as v,w as J,as as O,ak as d,I as S,a as p,aN as m,J as u,O as f,aP as M,G as R,A as T}from"./@vue/runtime-core-C0pg79pw.js";import{y as s,a as j,o as _,r as A}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-Dyw4Bs8T.js";import"./attr-CBvYrA2k.js";import"./index-DGzewPWT.js";import"./picker-Df7KkdWk.js";import"./index-BKLtguGT.js";import"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import"./article-CKzso6NG.js";import"./usePaging-B_C_SZ2Z.js";import"./picker-B5ZiOH7-.js";import"./index-i7zXlMKf.js";import"./index-CtFRZE9b.js";import"./index.vue_vue_type_script_setup_true_lang-DyQAa4vY.js";import"./file-CSSg91XZ.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./content.vue_vue_type_script_setup_true_lang-BfxsednI.js";import"./decoration-img-C_6VQE85.js";import"./attr.vue_vue_type_script_setup_true_lang-6feMPF8O.js";import"./content-BBNLXtq1.js";import"./attr.vue_vue_type_script_setup_true_lang-CHvdnOTe.js";import"./content.vue_vue_type_script_setup_true_lang-DHTycTmO.js";import"./attr.vue_vue_type_script_setup_true_lang-ChVRECak.js";import"./add-nav.vue_vue_type_script_setup_true_lang-DbPUenSv.js";import"./content-DkpUAg9J.js";import"./attr.vue_vue_type_script_setup_true_lang-DaJjxgj9.js";import"./content.vue_vue_type_script_setup_true_lang-GEFFCTZx.js";import"./attr.vue_vue_type_script_setup_true_lang-CfPY9LZg.js";import"./content--_otKNcP.js";import"./attr.vue_vue_type_script_setup_true_lang-DwghrNvi.js";import"./index.vue_vue_type_script_setup_true_lang-HG7uja_e.js";import"./content-CzET6ZOY.js";import"./content.vue_vue_type_script_setup_true_lang-C7hhBdwq.js";import"./attr.vue_vue_type_script_setup_true_lang-eatfXr14.js";import"./content-CVQDRtl6.js";import"./attr.vue_vue_type_script_setup_true_lang-CxDRo6h6.js";import"./content.vue_vue_type_script_setup_true_lang-CucsgKGv.js";import"./attr.vue_vue_type_script_setup_true_lang-11IwTsyi.js";import"./content-BkT0XQYO.js";const G={class:"decoration-pages min-w-[1100px]"},H={class:"flex justify-between w-full"},U={class:"flex-1 h-full"},W=v({name:"decorationPc"}),q=v({...W,setup(z){const g=h();let n;(t=>{t.HOME="4"})(n||(n={}));const a=A({4:{id:4,type:4,name:"首页装修",pageData:[]}}),r=_("4"),e=_(0),i=T(()=>{var t;return((t=a[r.value])==null?void 0:t.pageData)??[]}),w=async()=>{await C.confirm("确定离开此页面?系统可能不会保存您所做的更改。"),g.back()},c=async()=>{const t=await N({id:r.value});a[String(t.id)].pageData=JSON.parse(t.data),e.value=i.value.findIndex(o=>!o.disabled)},D=async()=>{await V({...a[r.value],data:JSON.stringify(a[r.value].pageData)}),c()};return J(r,()=>{e.value=i.value.findIndex(t=>!t.disabled),c()},{immediate:!0}),(t,o)=>{const l=b,y=P,x=O("perms");return d(),S("div",G,[p(y,{shadow:"never",class:"!border-none !rounded-none !bg-primary"},{default:m(()=>[u("div",H,[p(l,{link:"",type:"primary",icon:s(B),style:{color:"#fff"},onClick:w},{default:m(()=>[...o[1]||(o[1]=[f(" 返回 ",-1)])]),_:1},8,["icon"]),M((d(),R(l,{onClick:D},{default:m(()=>[...o[2]||(o[2]=[f(" 保存 ",-1)])]),_:1})),[[x,["decorate:pages:save"]]])])]),_:1}),u("div",U,[p(I,{modelValue:s(e),"onUpdate:modelValue":o[0]||(o[0]=k=>j(e)?e.value=k:null),pageData:s(i)},null,8,["modelValue","pageData"])])])}}}),Do=E(q,[["__scopeId","data-v-9bc87a24"]]);export{Do as default};
+import{i as b,J as P}from"./element-plus-DCRlGjqn.js";import{o as B}from"./@element-plus/icons-vue-jYCthPJY.js";import{a as N,s as V}from"./decoration-B1aWgelJ.js";import{i as C,_ as E}from"./index-DsBUBCgs.js";import I from"./preview-pc-CvSPsETB.js";import{a as h}from"./vue-router-CYz6RFzi.js";import{f as v,w as J,as as O,ak as d,I as S,a as p,aN as m,J as u,O as f,aP as M,G as R,A as T}from"./@vue/runtime-core-C0pg79pw.js";import{y as s,a as j,o as _,r as A}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-C3uhURtD.js";import"./attr-BhVdfhGs.js";import"./index-BmvifxBX.js";import"./picker-BMroZii1.js";import"./index-dlM42V9p.js";import"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import"./article-0uhoq4JM.js";import"./usePaging-B_C_SZ2Z.js";import"./picker-h7OmyGiV.js";import"./index-DrXr9qPh.js";import"./index-CF2_JamS.js";import"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import"./file-DRO9_cYT.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./content.vue_vue_type_script_setup_true_lang-BSDktndu.js";import"./decoration-img-C01Pis81.js";import"./attr.vue_vue_type_script_setup_true_lang-8nl6mPaU.js";import"./content-1tt_sX8-.js";import"./attr.vue_vue_type_script_setup_true_lang-CKdpBsQw.js";import"./content.vue_vue_type_script_setup_true_lang-DrSRY1kT.js";import"./attr.vue_vue_type_script_setup_true_lang-CgPvCAfT.js";import"./add-nav.vue_vue_type_script_setup_true_lang-DkUMUIoP.js";import"./content-BIImGJq8.js";import"./attr.vue_vue_type_script_setup_true_lang-CcUccVfL.js";import"./content.vue_vue_type_script_setup_true_lang-C1DG1CXu.js";import"./attr.vue_vue_type_script_setup_true_lang-CfPY9LZg.js";import"./content-RbPN8Ina.js";import"./attr.vue_vue_type_script_setup_true_lang-BH3CMFHL.js";import"./index.vue_vue_type_script_setup_true_lang-Dqs8IDbj.js";import"./content-D3iKOBjB.js";import"./content.vue_vue_type_script_setup_true_lang-Bz6BJBy-.js";import"./attr.vue_vue_type_script_setup_true_lang-eatfXr14.js";import"./content-CqWGwsK_.js";import"./attr.vue_vue_type_script_setup_true_lang-Cc55Bg2h.js";import"./content.vue_vue_type_script_setup_true_lang-DPgrpOzA.js";import"./attr.vue_vue_type_script_setup_true_lang-11IwTsyi.js";import"./content-DIAiU9iD.js";const G={class:"decoration-pages min-w-[1100px]"},H={class:"flex justify-between w-full"},U={class:"flex-1 h-full"},W=v({name:"decorationPc"}),q=v({...W,setup(z){const g=h();let n;(t=>{t.HOME="4"})(n||(n={}));const a=A({4:{id:4,type:4,name:"首页装修",pageData:[]}}),r=_("4"),e=_(0),i=T(()=>{var t;return((t=a[r.value])==null?void 0:t.pageData)??[]}),w=async()=>{await C.confirm("确定离开此页面?系统可能不会保存您所做的更改。"),g.back()},c=async()=>{const t=await N({id:r.value});a[String(t.id)].pageData=JSON.parse(t.data),e.value=i.value.findIndex(o=>!o.disabled)},D=async()=>{await V({...a[r.value],data:JSON.stringify(a[r.value].pageData)}),c()};return J(r,()=>{e.value=i.value.findIndex(t=>!t.disabled),c()},{immediate:!0}),(t,o)=>{const l=b,y=P,x=O("perms");return d(),S("div",G,[p(y,{shadow:"never",class:"!border-none !rounded-none !bg-primary"},{default:m(()=>[u("div",H,[p(l,{link:"",type:"primary",icon:s(B),style:{color:"#fff"},onClick:w},{default:m(()=>[...o[1]||(o[1]=[f(" 返回 ",-1)])]),_:1},8,["icon"]),M((d(),R(l,{onClick:D},{default:m(()=>[...o[2]||(o[2]=[f(" 保存 ",-1)])]),_:1})),[[x,["decorate:pages:save"]]])])]),_:1}),u("div",U,[p(I,{modelValue:s(e),"onUpdate:modelValue":o[0]||(o[0]=k=>j(e)?e.value=k:null),pageData:s(i)},null,8,["modelValue","pageData"])])])}}}),Do=E(q,[["__scopeId","data-v-9bc87a24"]]);export{Do as default};
diff --git a/server/public/admin/assets/perm-BfOX4s25.js b/server/public/admin/assets/perm-DykBtP9q.js
similarity index 67%
rename from server/public/admin/assets/perm-BfOX4s25.js
rename to server/public/admin/assets/perm-DykBtP9q.js
index cad98f7c..185f6da9 100644
--- a/server/public/admin/assets/perm-BfOX4s25.js
+++ b/server/public/admin/assets/perm-DykBtP9q.js
@@ -1 +1 @@
-import{u as i}from"./index-DWk_b8Nv.js";const l=s=>{const e=i().perms,o="*";if(s.length>0){let r=!0;return s.forEach(t=>{!e.includes(t)&&!e.includes(o)&&(r=!1)}),r}else return!0};export{l as h};
+import{u as i}from"./index-DsBUBCgs.js";const l=s=>{const e=i().perms,o="*";if(s.length>0){let r=!0;return s.forEach(t=>{!e.includes(t)&&!e.includes(o)&&(r=!1)}),r}else return!0};export{l as h};
diff --git a/server/public/admin/assets/picker-Df7KkdWk.js b/server/public/admin/assets/picker-BMroZii1.js
similarity index 93%
rename from server/public/admin/assets/picker-Df7KkdWk.js
rename to server/public/admin/assets/picker-BMroZii1.js
index 74b3d32b..a0f83ddd 100644
--- a/server/public/admin/assets/picker-Df7KkdWk.js
+++ b/server/public/admin/assets/picker-BMroZii1.js
@@ -1 +1 @@
-import{D as F,B as z,C as L,i as J,L as Q,M as W,N as X,H as Y,v as Z,r as ee,G as te,I as le,y as ae,w as ne,x as se}from"./element-plus-Dmpg6ayE.js";import{_ as q,c as oe}from"./index-DWk_b8Nv.js";import{w as ie,s as me}from"./@vue/runtime-dom-iFk_KP8y.js";import{P as de}from"./index-BKLtguGT.js";import{_ as ue}from"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import{L as pe}from"./@element-plus/icons-vue-DsycZ37q.js";import{k as re}from"./article-CKzso6NG.js";import{u as ce}from"./usePaging-B_C_SZ2Z.js";import{f as k,w as O,ak as r,I as V,a as d,aN as x,aP as _e,G as g,J as l,O as R,F as T,ap as $,H as b,A as N}from"./@vue/runtime-core-C0pg79pw.js";import{o as E,y as o,a as I,r as fe,u as xe}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as C,o as ve}from"./@vue/shared-mAAVTE9n.js";var w=(n=>(n.SHOP_PAGES="shop",n.APPTOOL="application_tool",n.OTHER_LINK="other_link",n))(w||{}),a=(n=>(n.SHOP_PAGES="shop",n.ARTICLE_LIST="article",n.CUSTOM_LINK="custom",n.MINI_PROGRAM="mini_program",n))(a||{});const ye={class:"article-list"},he={class:"flex row-center"},Pe={class:"flex items-center"},Se={class:"ml-4 overflow-hidden"},Ve={class:"text-base line-clamp-2"},ge={class:"flex justify-end mt-4"},we=k({__name:"article-list",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,m=E({path:"/pages/news_detail/news_detail",name:"",query:{},type:a.ARTICLE_LIST}),t=fe({name:"",is_show:1}),{pager:e,getLists:_,resetPage:s}=ce({fetchFun:re,params:t}),i=f=>f==Number(m.value.id),p=f=>{m.value={id:f.id,name:f.title,path:"/pages/news_detail/news_detail",query:{id:f.id},type:a.ARTICLE_LIST},y("update:modelValue",m.value)};return O(()=>c.modelValue,f=>{if(f.type!=a.ARTICLE_LIST)return m.value={id:"",name:"",path:"/pages/news_detail/news_detail",type:a.SHOP_PAGES};m.value=f},{immediate:!0}),_(),(f,v)=>{const u=L,P=J,A=z,G=F,M=Y,H=X,U=Z,K=ee,j=W,B=ue,D=Q;return r(),V("div",ye,[d(G,{ref:"formRef",model:o(t),inline:!0},{default:x(()=>[d(A,{class:"w-[280px]",label:"文章名称"},{default:x(()=>[d(u,{modelValue:o(t).name,"onUpdate:modelValue":v[0]||(v[0]=S=>o(t).name=S),placeholder:"请输入",clearable:"",onKeyup:ie(o(s),["enter"])},null,8,["modelValue","onKeyup"]),d(P,{type:"primary",class:"ml-4",icon:o(pe),onClick:o(s)},null,8,["icon","onClick"])]),_:1})]),_:1},8,["model"]),_e((r(),g(j,{size:"large",data:o(e).lists,height:"432px",onRowClick:p},{default:x(()=>[d(H,{label:"选择","min-width":"50"},{default:x(({row:S})=>[l("div",he,[d(M,{"model-value":i(S.id),size:"large",onChange:Qe=>p(S)},null,8,["model-value","onChange"])])]),_:1}),d(H,{label:"文章名称","min-width":"180"},{default:x(({row:S})=>[l("div",Pe,[d(U,{fit:"cover",src:S.image,class:"flex-none w-[58px] h-[58px]"},null,8,["src"]),l("div",Se,[d(K,{effect:"dark",content:S.title,placement:"top"},{default:x(()=>[l("div",Ve,C(S.title),1)]),_:2},1032,["content"])])])]),_:1}),d(H,{label:"创建时间",prop:"create_time","min-width":"140"})]),_:1},8,["data"])),[[D,o(e).loading]]),l("div",ge,[d(B,{modelValue:o(e),"onUpdate:modelValue":v[1]||(v[1]=S=>I(e)?e.value=S:null),onChange:o(_)},null,8,["modelValue","onChange"])])])}}}),Ie=q(we,[["__scopeId","data-v-1686cf19"]]),ke={class:"custom-link h-[530px]"},Oe={class:"flex flex-wrap items-center mt-4"},Ee={class:"ml-4 flex-1 min-w-[100px]"},Ae=k({__name:"custom-link",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=h,y=m=>{c("update:modelValue",{path:"/pages/webview/webview",query:{url:m},type:a.CUSTOM_LINK})};return(m,t)=>{var _;const e=L;return r(),V("div",ke,[t[1]||(t[1]=l("div",{class:"text-xl font-medium"},"自定义链接",-1)),l("div",Oe,[t[0]||(t[0]=l("div",{class:"w-[86px] text-right"},"自定义链接",-1)),l("div",Ee,[d(e,{class:"max-w-[320px]","model-value":(_=n.modelValue.query)==null?void 0:_.url,placeholder:"请输入链接地址",onInput:y},null,8,["model-value"])])]),t[2]||(t[2]=l("div",{class:"form-tips ml-[101px] max-w-[320px]"}," 请填写完整的带有“https://”或“http://”的链接地址,链接的域名必须在微信公众平台设置业务域名 ",-1))])}}}),be={class:"mini-program h-[530px]"},Ce={class:"flex flex-wrap items-center mt-4"},Le={class:"ml-4 flex-1 min-w-[100px]"},Ge={class:"flex flex-wrap items-center mt-4"},He={class:"ml-4 flex-1 min-w-[100px]"},Re={class:"flex flex-wrap items-center mt-4"},Te={class:"ml-4 flex-1 min-w-[100px]"},$e={class:"flex flex-wrap items-center mt-4"},qe={class:"ml-4 flex-1 min-w-[100px]"},Ne=k({__name:"mini-program",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,m=(t,e)=>{y("update:modelValue",{...c.modelValue,name:"小程序跳转",query:{...c.modelValue.query,[t]:e},type:a.MINI_PROGRAM})};return O(()=>c.modelValue,t=>{var e;(e=t.query)!=null&&e.env_version||m("env_version","release")},{immediate:!0}),(t,e)=>{var p,f,v,u;const _=L,s=le,i=te;return r(),V("div",be,[e[11]||(e[11]=l("div",{class:"text-xl font-medium"},"跳转小程序",-1)),l("div",Ce,[e[4]||(e[4]=l("div",{class:"w-[86px] text-right"},"小程序APPID",-1)),l("div",Le,[d(_,{class:"max-w-[320px]","model-value":(p=n.modelValue.query)==null?void 0:p.appId,placeholder:"请输入小程序appId",onInput:e[0]||(e[0]=P=>m("appId",P))},null,8,["model-value"])])]),l("div",Ge,[e[5]||(e[5]=l("div",{class:"w-[86px] text-right"},"小程序路径",-1)),l("div",He,[d(_,{class:"max-w-[320px]","model-value":(f=n.modelValue.query)==null?void 0:f.path,placeholder:"请输入小程序路径链接地址",onInput:e[1]||(e[1]=P=>m("path",P))},null,8,["model-value"])])]),l("div",Re,[e[6]||(e[6]=l("div",{class:"w-[86px] text-right"},"传递参数",-1)),l("div",Te,[d(_,{class:"max-w-[320px]","model-value":(v=n.modelValue.query)==null?void 0:v.query,placeholder:"请输入小程序跳转参数(选填)",onInput:e[2]||(e[2]=P=>m("query",P))},null,8,["model-value"])])]),e[12]||(e[12]=l("div",{class:"form-tips ml-[100px] max-w-[320px]"},[l("div",null,"示例:id=2&ustm=jiny&name=234"),l("div",{class:"text-error"}," 注意:不允许输入中文、特殊字符等。如果出现对不起,当前页面无法访问,大概率是跳转参数的问题!! ")],-1)),l("div",$e,[e[10]||(e[10]=l("div",{class:"w-[86px] text-right"},"小程序版本",-1)),l("div",qe,[d(i,{"model-value":(u=n.modelValue.query)==null?void 0:u.env_version,onChange:e[3]||(e[3]=P=>m("env_version",P))},{default:x(()=>[d(s,{value:"release"},{default:x(()=>[...e[7]||(e[7]=[R("正式版",-1)])]),_:1}),d(s,{value:"trial"},{default:x(()=>[...e[8]||(e[8]=[R("体验版",-1)])]),_:1}),d(s,{value:"develop"},{default:x(()=>[...e[9]||(e[9]=[R("开发版",-1)])]),_:1})]),_:1},8,["model-value"])])]),e[13]||(e[13]=l("div",null,[l("div",{class:"form-tips ml-[100px] max-w-[320px]"},[l("div",{class:"mt-4"}," 1. 小程序APPID和小程序路径链接地址,小程序路径链接地址请填写小程序的页面路径,如:pages/index/index "),l("div",{class:"mt-2"},[l("span",null,"2. 如果是H5(浏览器)中需要跳转到小程序,则需要以下配置--->"),l("a",{href:"https://mp.weixin.qq.com/",class:"text-primary",target:"_blank",rel:"nofollow"}," 小程序管理后台 -> 设置 -> 隐私与安全 -> 明文 scheme 拉起此小程序 (点击跳转去配置) ")])])],-1))])}}}),Me={class:"shop-pages h-[530px]"},Ue={class:"link-list flex flex-wrap"},Ke=["onClick"],je=k({__name:"shop-pages",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=h,y=E([{path:"/pages/index/index",name:"商城首页",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/news/news",name:"文章资讯",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/user/user",name:"个人中心",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/collection/collection",name:"我的收藏",type:a.SHOP_PAGES},{path:"/pages/customer_service/customer_service",name:"联系客服",type:a.SHOP_PAGES},{path:"/pages/user_set/user_set",name:"个人设置",type:a.SHOP_PAGES},{path:"/pages/as_us/as_us",name:"关于我们",type:a.SHOP_PAGES},{path:"/pages/user_data/user_data",name:"个人资料",type:a.SHOP_PAGES},{path:"/pages/agreement/agreement",name:"隐私政策",query:{type:"privacy"},type:a.SHOP_PAGES},{path:"/pages/agreement/agreement",name:"服务协议",query:{type:"service"},type:a.SHOP_PAGES},{path:"/pages/search/search",name:"搜索",type:a.SHOP_PAGES},{path:"/packages/pages/user_wallet/user_wallet",name:"我的钱包",type:a.SHOP_PAGES}]),m=t=>{c("update:modelValue",t)};return(t,e)=>(r(),V("div",Me,[l("div",Ue,[(r(!0),V(T,null,$(o(y),(_,s)=>(r(),V("div",{class:ve(["link-item border border-br px-5 py-[5px] rounded-[3px] cursor-pointer mr-[10px] mb-[10px]",{"border-primary text-primary":n.modelValue.path==_.path&&n.modelValue.name==_.name}]),key:s,onClick:i=>m(_)},C(_.name),11,Ke))),128))])]))}}),Be={class:"link flex"},De={class:"flex-1 ml-4 link-content"},Fe=k({__name:"index",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,m=E([{name:"商城页面",type:w.SHOP_PAGES,children:[{name:"基础页面",type:a.SHOP_PAGES,link:{}}]},{name:"应用工具",type:w.APPTOOL,children:[{name:"文章资讯",type:a.ARTICLE_LIST,link:{}}]},{name:"其他",type:w.OTHER_LINK,children:[{name:"自定义链接",type:a.CUSTOM_LINK,link:{}},{name:"跳转小程序",type:a.MINI_PROGRAM,link:{}}]}]),t=N({get(){let s={};return m.value.forEach(i=>{const p=i.children.find(f=>f.type==e.value);p&&(s=p)}),s.link},set(s){m.value.forEach(i=>{i.children.forEach(p=>{p.type==e.value&&(p.link=s)})})}}),e=E(a.SHOP_PAGES),_=s=>{e.value=s};return O(t,s=>{s.type&&y("update:modelValue",s)},{deep:!0}),O(()=>c.modelValue,s=>{e.value=s.type,t.value=s},{immediate:!0}),(s,i)=>{const p=ne,f=se,v=ae;return r(),V("div",Be,[d(v,{"default-active":o(e),class:"flex-none w-[180px] min-h-[350px] link-menu","default-openeds":[o(w).SHOP_PAGES,o(w).APPTOOL,o(w).OTHER_LINK],onSelect:_},{default:x(()=>[(r(!0),V(T,null,$(o(m),(u,P)=>(r(),g(f,{index:u.type,key:P},{title:x(()=>[l("span",null,C(u.name),1)]),default:x(()=>[(r(!0),V(T,null,$(u.children,(A,G)=>(r(),g(p,{index:A.type,key:G,style:{"min-width":"160px"}},{default:x(()=>[l("span",null,C(A.name),1)]),_:2},1032,["index"]))),128))]),_:2},1032,["index"]))),128))]),_:1},8,["default-active","default-openeds"]),l("div",De,[o(a).SHOP_PAGES==o(e)?(r(),g(je,{key:0,modelValue:o(t),"onUpdate:modelValue":i[0]||(i[0]=u=>I(t)?t.value=u:null)},null,8,["modelValue"])):b("",!0),o(a).ARTICLE_LIST==o(e)?(r(),g(Ie,{key:1,modelValue:o(t),"onUpdate:modelValue":i[1]||(i[1]=u=>I(t)?t.value=u:null)},null,8,["modelValue"])):b("",!0),o(a).CUSTOM_LINK==o(e)?(r(),g(Ae,{key:2,modelValue:o(t),"onUpdate:modelValue":i[2]||(i[2]=u=>I(t)?t.value=u:null)},null,8,["modelValue"])):b("",!0),o(a).MINI_PROGRAM==o(e)?(r(),g(Ne,{key:3,modelValue:o(t),"onUpdate:modelValue":i[3]||(i[3]=u=>I(t)?t.value=u:null)},null,8,["modelValue"])):b("",!0)])])}}}),ze=q(Fe,[["__scopeId","data-v-e991fd93"]]),Je=k({__name:"picker",props:{modelValue:{type:Object},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,m=xe(),t=E({path:"",type:a.SHOP_PAGES}),e=()=>{y("update:modelValue",t.value)},_=N(()=>{var s,i,p;switch((s=c.modelValue)==null?void 0:s.type){case a.SHOP_PAGES:return c.modelValue.name;case a.ARTICLE_LIST:return c.modelValue.name;case a.CUSTOM_LINK:return(i=c.modelValue.query)==null?void 0:i.url;default:return(p=c.modelValue)==null?void 0:p.name}});return O(()=>c.modelValue,s=>{s!=null&&s.type&&(t.value=s)},{immediate:!0}),(s,i)=>{const p=oe,f=L;return r(),V("div",{class:"link-picker flex-1",onClick:i[2]||(i[2]=v=>{var u;return!n.disabled&&((u=o(m))==null?void 0:u.open())})},[d(f,{"model-value":o(_),placeholder:"请选择链接",readonly:"",disabled:n.disabled},{suffix:x(()=>{var v;return[(v=n.modelValue)!=null&&v.path?(r(),g(p,{key:1,name:"el-icon-Close",onClick:i[0]||(i[0]=me(u=>!n.disabled&&y("update:modelValue",{}),["stop"]))})):(r(),g(p,{key:0,name:"el-icon-ArrowRight"}))]}),_:1},8,["model-value","disabled"]),d(de,{ref_key:"popupRef",ref:m,width:"1050px",title:"链接选择",onConfirm:e},{default:x(()=>[d(ze,{modelValue:o(t),"onUpdate:modelValue":i[1]||(i[1]=v=>I(t)?t.value=v:null)},null,8,["modelValue"])]),_:1},512)])}}}),it=q(Je,[["__scopeId","data-v-84fe1e25"]]);export{it as _};
+import{D as F,B as z,C as L,i as J,L as Q,M as W,N as X,H as Y,v as Z,r as ee,G as te,I as le,y as ae,w as ne,x as se}from"./element-plus-DCRlGjqn.js";import{_ as q,c as oe}from"./index-DsBUBCgs.js";import{w as ie,s as me}from"./@vue/runtime-dom-iFk_KP8y.js";import{P as de}from"./index-dlM42V9p.js";import{_ as ue}from"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import{K as pe}from"./@element-plus/icons-vue-jYCthPJY.js";import{k as re}from"./article-0uhoq4JM.js";import{u as ce}from"./usePaging-B_C_SZ2Z.js";import{f as k,w as O,ak as r,I as V,a as d,aN as x,aP as _e,G as g,J as l,O as R,F as T,ap as $,H as b,A as N}from"./@vue/runtime-core-C0pg79pw.js";import{o as E,y as o,a as I,r as fe,u as xe}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as C,o as ve}from"./@vue/shared-mAAVTE9n.js";var w=(n=>(n.SHOP_PAGES="shop",n.APPTOOL="application_tool",n.OTHER_LINK="other_link",n))(w||{}),a=(n=>(n.SHOP_PAGES="shop",n.ARTICLE_LIST="article",n.CUSTOM_LINK="custom",n.MINI_PROGRAM="mini_program",n))(a||{});const ye={class:"article-list"},he={class:"flex row-center"},Pe={class:"flex items-center"},Se={class:"ml-4 overflow-hidden"},Ve={class:"text-base line-clamp-2"},ge={class:"flex justify-end mt-4"},we=k({__name:"article-list",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,m=E({path:"/pages/news_detail/news_detail",name:"",query:{},type:a.ARTICLE_LIST}),t=fe({name:"",is_show:1}),{pager:e,getLists:_,resetPage:s}=ce({fetchFun:re,params:t}),i=f=>f==Number(m.value.id),p=f=>{m.value={id:f.id,name:f.title,path:"/pages/news_detail/news_detail",query:{id:f.id},type:a.ARTICLE_LIST},y("update:modelValue",m.value)};return O(()=>c.modelValue,f=>{if(f.type!=a.ARTICLE_LIST)return m.value={id:"",name:"",path:"/pages/news_detail/news_detail",type:a.SHOP_PAGES};m.value=f},{immediate:!0}),_(),(f,v)=>{const u=L,P=J,A=z,G=F,M=Y,H=X,K=Z,U=ee,j=W,B=ue,D=Q;return r(),V("div",ye,[d(G,{ref:"formRef",model:o(t),inline:!0},{default:x(()=>[d(A,{class:"w-[280px]",label:"文章名称"},{default:x(()=>[d(u,{modelValue:o(t).name,"onUpdate:modelValue":v[0]||(v[0]=S=>o(t).name=S),placeholder:"请输入",clearable:"",onKeyup:ie(o(s),["enter"])},null,8,["modelValue","onKeyup"]),d(P,{type:"primary",class:"ml-4",icon:o(pe),onClick:o(s)},null,8,["icon","onClick"])]),_:1})]),_:1},8,["model"]),_e((r(),g(j,{size:"large",data:o(e).lists,height:"432px",onRowClick:p},{default:x(()=>[d(H,{label:"选择","min-width":"50"},{default:x(({row:S})=>[l("div",he,[d(M,{"model-value":i(S.id),size:"large",onChange:Qe=>p(S)},null,8,["model-value","onChange"])])]),_:1}),d(H,{label:"文章名称","min-width":"180"},{default:x(({row:S})=>[l("div",Pe,[d(K,{fit:"cover",src:S.image,class:"flex-none w-[58px] h-[58px]"},null,8,["src"]),l("div",Se,[d(U,{effect:"dark",content:S.title,placement:"top"},{default:x(()=>[l("div",Ve,C(S.title),1)]),_:2},1032,["content"])])])]),_:1}),d(H,{label:"创建时间",prop:"create_time","min-width":"140"})]),_:1},8,["data"])),[[D,o(e).loading]]),l("div",ge,[d(B,{modelValue:o(e),"onUpdate:modelValue":v[1]||(v[1]=S=>I(e)?e.value=S:null),onChange:o(_)},null,8,["modelValue","onChange"])])])}}}),Ie=q(we,[["__scopeId","data-v-1686cf19"]]),ke={class:"custom-link h-[530px]"},Oe={class:"flex flex-wrap items-center mt-4"},Ee={class:"ml-4 flex-1 min-w-[100px]"},Ae=k({__name:"custom-link",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=h,y=m=>{c("update:modelValue",{path:"/pages/webview/webview",query:{url:m},type:a.CUSTOM_LINK})};return(m,t)=>{var _;const e=L;return r(),V("div",ke,[t[1]||(t[1]=l("div",{class:"text-xl font-medium"},"自定义链接",-1)),l("div",Oe,[t[0]||(t[0]=l("div",{class:"w-[86px] text-right"},"自定义链接",-1)),l("div",Ee,[d(e,{class:"max-w-[320px]","model-value":(_=n.modelValue.query)==null?void 0:_.url,placeholder:"请输入链接地址",onInput:y},null,8,["model-value"])])]),t[2]||(t[2]=l("div",{class:"form-tips ml-[101px] max-w-[320px]"}," 请填写完整的带有“https://”或“http://”的链接地址,链接的域名必须在微信公众平台设置业务域名 ",-1))])}}}),be={class:"mini-program h-[530px]"},Ce={class:"flex flex-wrap items-center mt-4"},Le={class:"ml-4 flex-1 min-w-[100px]"},Ge={class:"flex flex-wrap items-center mt-4"},He={class:"ml-4 flex-1 min-w-[100px]"},Re={class:"flex flex-wrap items-center mt-4"},Te={class:"ml-4 flex-1 min-w-[100px]"},$e={class:"flex flex-wrap items-center mt-4"},qe={class:"ml-4 flex-1 min-w-[100px]"},Ne=k({__name:"mini-program",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,m=(t,e)=>{y("update:modelValue",{...c.modelValue,name:"小程序跳转",query:{...c.modelValue.query,[t]:e},type:a.MINI_PROGRAM})};return O(()=>c.modelValue,t=>{var e;(e=t.query)!=null&&e.env_version||m("env_version","release")},{immediate:!0}),(t,e)=>{var p,f,v,u;const _=L,s=le,i=te;return r(),V("div",be,[e[11]||(e[11]=l("div",{class:"text-xl font-medium"},"跳转小程序",-1)),l("div",Ce,[e[4]||(e[4]=l("div",{class:"w-[86px] text-right"},"小程序APPID",-1)),l("div",Le,[d(_,{class:"max-w-[320px]","model-value":(p=n.modelValue.query)==null?void 0:p.appId,placeholder:"请输入小程序appId",onInput:e[0]||(e[0]=P=>m("appId",P))},null,8,["model-value"])])]),l("div",Ge,[e[5]||(e[5]=l("div",{class:"w-[86px] text-right"},"小程序路径",-1)),l("div",He,[d(_,{class:"max-w-[320px]","model-value":(f=n.modelValue.query)==null?void 0:f.path,placeholder:"请输入小程序路径链接地址",onInput:e[1]||(e[1]=P=>m("path",P))},null,8,["model-value"])])]),l("div",Re,[e[6]||(e[6]=l("div",{class:"w-[86px] text-right"},"传递参数",-1)),l("div",Te,[d(_,{class:"max-w-[320px]","model-value":(v=n.modelValue.query)==null?void 0:v.query,placeholder:"请输入小程序跳转参数(选填)",onInput:e[2]||(e[2]=P=>m("query",P))},null,8,["model-value"])])]),e[12]||(e[12]=l("div",{class:"form-tips ml-[100px] max-w-[320px]"},[l("div",null,"示例:id=2&ustm=jiny&name=234"),l("div",{class:"text-error"}," 注意:不允许输入中文、特殊字符等。如果出现对不起,当前页面无法访问,大概率是跳转参数的问题!! ")],-1)),l("div",$e,[e[10]||(e[10]=l("div",{class:"w-[86px] text-right"},"小程序版本",-1)),l("div",qe,[d(i,{"model-value":(u=n.modelValue.query)==null?void 0:u.env_version,onChange:e[3]||(e[3]=P=>m("env_version",P))},{default:x(()=>[d(s,{value:"release"},{default:x(()=>[...e[7]||(e[7]=[R("正式版",-1)])]),_:1}),d(s,{value:"trial"},{default:x(()=>[...e[8]||(e[8]=[R("体验版",-1)])]),_:1}),d(s,{value:"develop"},{default:x(()=>[...e[9]||(e[9]=[R("开发版",-1)])]),_:1})]),_:1},8,["model-value"])])]),e[13]||(e[13]=l("div",null,[l("div",{class:"form-tips ml-[100px] max-w-[320px]"},[l("div",{class:"mt-4"}," 1. 小程序APPID和小程序路径链接地址,小程序路径链接地址请填写小程序的页面路径,如:pages/index/index "),l("div",{class:"mt-2"},[l("span",null,"2. 如果是H5(浏览器)中需要跳转到小程序,则需要以下配置--->"),l("a",{href:"https://mp.weixin.qq.com/",class:"text-primary",target:"_blank",rel:"nofollow"}," 小程序管理后台 -> 设置 -> 隐私与安全 -> 明文 scheme 拉起此小程序 (点击跳转去配置) ")])])],-1))])}}}),Me={class:"shop-pages h-[530px]"},Ke={class:"link-list flex flex-wrap"},Ue=["onClick"],je=k({__name:"shop-pages",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=h,y=E([{path:"/pages/index/index",name:"商城首页",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/news/news",name:"文章资讯",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/user/user",name:"个人中心",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/collection/collection",name:"我的收藏",type:a.SHOP_PAGES},{path:"/pages/customer_service/customer_service",name:"联系客服",type:a.SHOP_PAGES},{path:"/pages/user_set/user_set",name:"个人设置",type:a.SHOP_PAGES},{path:"/pages/as_us/as_us",name:"关于我们",type:a.SHOP_PAGES},{path:"/pages/user_data/user_data",name:"个人资料",type:a.SHOP_PAGES},{path:"/pages/agreement/agreement",name:"隐私政策",query:{type:"privacy"},type:a.SHOP_PAGES},{path:"/pages/agreement/agreement",name:"服务协议",query:{type:"service"},type:a.SHOP_PAGES},{path:"/pages/search/search",name:"搜索",type:a.SHOP_PAGES},{path:"/packages/pages/user_wallet/user_wallet",name:"我的钱包",type:a.SHOP_PAGES}]),m=t=>{c("update:modelValue",t)};return(t,e)=>(r(),V("div",Me,[l("div",Ke,[(r(!0),V(T,null,$(o(y),(_,s)=>(r(),V("div",{class:ve(["link-item border border-br px-5 py-[5px] rounded-[3px] cursor-pointer mr-[10px] mb-[10px]",{"border-primary text-primary":n.modelValue.path==_.path&&n.modelValue.name==_.name}]),key:s,onClick:i=>m(_)},C(_.name),11,Ue))),128))])]))}}),Be={class:"link flex"},De={class:"flex-1 ml-4 link-content"},Fe=k({__name:"index",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,m=E([{name:"商城页面",type:w.SHOP_PAGES,children:[{name:"基础页面",type:a.SHOP_PAGES,link:{}}]},{name:"应用工具",type:w.APPTOOL,children:[{name:"文章资讯",type:a.ARTICLE_LIST,link:{}}]},{name:"其他",type:w.OTHER_LINK,children:[{name:"自定义链接",type:a.CUSTOM_LINK,link:{}},{name:"跳转小程序",type:a.MINI_PROGRAM,link:{}}]}]),t=N({get(){let s={};return m.value.forEach(i=>{const p=i.children.find(f=>f.type==e.value);p&&(s=p)}),s.link},set(s){m.value.forEach(i=>{i.children.forEach(p=>{p.type==e.value&&(p.link=s)})})}}),e=E(a.SHOP_PAGES),_=s=>{e.value=s};return O(t,s=>{s.type&&y("update:modelValue",s)},{deep:!0}),O(()=>c.modelValue,s=>{e.value=s.type,t.value=s},{immediate:!0}),(s,i)=>{const p=ne,f=se,v=ae;return r(),V("div",Be,[d(v,{"default-active":o(e),class:"flex-none w-[180px] min-h-[350px] link-menu","default-openeds":[o(w).SHOP_PAGES,o(w).APPTOOL,o(w).OTHER_LINK],onSelect:_},{default:x(()=>[(r(!0),V(T,null,$(o(m),(u,P)=>(r(),g(f,{index:u.type,key:P},{title:x(()=>[l("span",null,C(u.name),1)]),default:x(()=>[(r(!0),V(T,null,$(u.children,(A,G)=>(r(),g(p,{index:A.type,key:G,style:{"min-width":"160px"}},{default:x(()=>[l("span",null,C(A.name),1)]),_:2},1032,["index"]))),128))]),_:2},1032,["index"]))),128))]),_:1},8,["default-active","default-openeds"]),l("div",De,[o(a).SHOP_PAGES==o(e)?(r(),g(je,{key:0,modelValue:o(t),"onUpdate:modelValue":i[0]||(i[0]=u=>I(t)?t.value=u:null)},null,8,["modelValue"])):b("",!0),o(a).ARTICLE_LIST==o(e)?(r(),g(Ie,{key:1,modelValue:o(t),"onUpdate:modelValue":i[1]||(i[1]=u=>I(t)?t.value=u:null)},null,8,["modelValue"])):b("",!0),o(a).CUSTOM_LINK==o(e)?(r(),g(Ae,{key:2,modelValue:o(t),"onUpdate:modelValue":i[2]||(i[2]=u=>I(t)?t.value=u:null)},null,8,["modelValue"])):b("",!0),o(a).MINI_PROGRAM==o(e)?(r(),g(Ne,{key:3,modelValue:o(t),"onUpdate:modelValue":i[3]||(i[3]=u=>I(t)?t.value=u:null)},null,8,["modelValue"])):b("",!0)])])}}}),ze=q(Fe,[["__scopeId","data-v-e991fd93"]]),Je=k({__name:"picker",props:{modelValue:{type:Object},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,m=xe(),t=E({path:"",type:a.SHOP_PAGES}),e=()=>{y("update:modelValue",t.value)},_=N(()=>{var s,i,p;switch((s=c.modelValue)==null?void 0:s.type){case a.SHOP_PAGES:return c.modelValue.name;case a.ARTICLE_LIST:return c.modelValue.name;case a.CUSTOM_LINK:return(i=c.modelValue.query)==null?void 0:i.url;default:return(p=c.modelValue)==null?void 0:p.name}});return O(()=>c.modelValue,s=>{s!=null&&s.type&&(t.value=s)},{immediate:!0}),(s,i)=>{const p=oe,f=L;return r(),V("div",{class:"link-picker flex-1",onClick:i[2]||(i[2]=v=>{var u;return!n.disabled&&((u=o(m))==null?void 0:u.open())})},[d(f,{"model-value":o(_),placeholder:"请选择链接",readonly:"",disabled:n.disabled},{suffix:x(()=>{var v;return[(v=n.modelValue)!=null&&v.path?(r(),g(p,{key:1,name:"el-icon-Close",onClick:i[0]||(i[0]=me(u=>!n.disabled&&y("update:modelValue",{}),["stop"]))})):(r(),g(p,{key:0,name:"el-icon-ArrowRight"}))]}),_:1},8,["model-value","disabled"]),d(de,{ref_key:"popupRef",ref:m,width:"1050px",title:"链接选择",onConfirm:e},{default:x(()=>[d(ze,{modelValue:o(t),"onUpdate:modelValue":i[1]||(i[1]=v=>I(t)?t.value=v:null)},null,8,["modelValue"])]),_:1},512)])}}}),it=q(Je,[["__scopeId","data-v-84fe1e25"]]);export{it as _};
diff --git a/server/public/admin/assets/picker-B5ZiOH7-.js b/server/public/admin/assets/picker-h7OmyGiV.js
similarity index 94%
rename from server/public/admin/assets/picker-B5ZiOH7-.js
rename to server/public/admin/assets/picker-h7OmyGiV.js
index 6302d837..0aebe6ac 100644
--- a/server/public/admin/assets/picker-B5ZiOH7-.js
+++ b/server/public/admin/assets/picker-h7OmyGiV.js
@@ -1 +1 @@
-import{P as I}from"./index-BKLtguGT.js";import{s as T}from"./element-plus-Dmpg6ayE.js";import{_ as F,a as D,F as M}from"./index-i7zXlMKf.js";import{e as q,_ as E,c as J}from"./index-DWk_b8Nv.js";import{_ as K}from"./index-DGzewPWT.js";import{D as O}from"./vuedraggable-C3E4D3Yv.js";import{f as j,w as G,am as V,A as _,n as H,ar as U,ak as Q,I as W,a as s,M as X,aN as p,J as i,O as Y,aP as Z,aq as x}from"./@vue/runtime-core-C0pg79pw.js";import{K as ee,o as n}from"./@vue/reactivity-BIbyPIZJ.js";import{h as le}from"./@vueuse/shared-D8934tfB.js";import{s as $,q as te}from"./@vue/runtime-dom-iFk_KP8y.js";import{o as k,p as ae}from"./@vue/shared-mAAVTE9n.js";const oe=j({components:{Popup:I,Draggable:O,FileItem:M,Material:D,Preview:F},props:{modelValue:{type:[String,Array],default:()=>[]},type:{type:String,default:"image"},size:{type:String,default:"100px"},width:{type:String,default:""},height:{type:String,default:""},fileSize:{type:String,default:"100px"},limit:{type:Number,default:1},disabled:{type:Boolean,default:!1},hiddenUpload:{type:Boolean,default:!1},uploadClass:{type:String,default:""},excludeDomain:{type:Boolean,default:!1}},emits:["change","update:modelValue"],setup(e,{emit:t}){const g=n(),w=n(),y=n(""),C=n(!1),a=n([]),m=n([]),r=n(!0),f=n(-1),{disabled:b,limit:d,modelValue:S}=ee(e),{getImageUrl:v}=q(),o=_(()=>{switch(e.type){case"image":return"图片";case"video":return"视频";default:return""}}),c=_(()=>e.limit-a.value.length>0),h=_(()=>r.value?d.value==-1?null:d.value-a.value.length:1),A=le(()=>{const l=m.value.map(u=>e.excludeDomain?u.uri:u.url);r.value?a.value=[...a.value,...l]:a.value.splice(f.value,1,l.shift()),z()},1e3,!1),B=l=>{var u;b.value||(l>=0?(r.value=!1,f.value=l):r.value=!0,(u=g.value)==null||u.open())},L=l=>{m.value=l},z=()=>{const l=d.value!=1?a.value:a.value[0]||"";t("update:modelValue",l),t("change",l),P()},N=l=>{a.value.splice(l,1),z()},R=l=>{y.value=e.excludeDomain?v(l):l,C.value=!0},P=()=>{H(()=>{var l;e.hiddenUpload&&(a.value=[]),(l=w.value)==null||l.clearSelect()})};return G(S,l=>{a.value=Array.isArray(l)?l:l==""?[]:[l]},{immediate:!0}),V("limit",e.limit),V("hiddenUpload",e.hiddenUpload),{popupRef:g,materialRef:w,fileList:a,tipsText:o,handleConfirm:A,meterialLimit:h,showUpload:c,showPopup:B,selectChange:L,deleteImg:N,previewUrl:y,showPreview:C,handlePreview:R,handleClose:P,getImageUrl:v}}}),ie={class:"material-select"},se=["onClick"],ne={class:"operation-btns text-xs text-center"},re=["onClick"],de={class:"material-wrap"};function ue(e,t,g,w,y,C){const a=U("file-item"),m=K,r=U("draggable"),f=J,b=D,d=T,S=I,v=U("preview");return Q(),W("div",ie,[s(S,{ref:"popupRef",width:"1050px","custom-class":"body-padding",title:`选择${e.tipsText}`,onConfirm:e.handleConfirm,onClose:e.handleClose},X({default:p(()=>[s(d,null,{default:p(()=>[i("div",de,[s(b,{ref:"materialRef",type:e.type,"file-size":e.fileSize,limit:e.meterialLimit,onChange:e.selectChange},null,8,["type","file-size","limit","onChange"])])]),_:1})]),_:2},[e.hiddenUpload?void 0:{name:"trigger",fn:p(()=>[i("div",{class:"material-select__trigger clearfix",onClick:t[2]||(t[2]=$(()=>{},["stop"]))},[s(r,{class:"draggable",modelValue:e.fileList,"onUpdate:modelValue":t[0]||(t[0]=o=>e.fileList=o),animation:"300","item-key":"id"},{item:p(({element:o,index:c})=>[i("div",{class:k(["material-preview",{"is-disabled":e.disabled,"is-one":e.limit==1}]),onClick:h=>e.showPopup(c)},[s(m,{onClose:h=>e.deleteImg(c)},{default:p(()=>[s(a,{uri:e.excludeDomain?e.getImageUrl(o):o,"file-size":e.size,width:e.width,height:e.height,type:e.type},null,8,["uri","file-size","width","height","type"])]),_:2},1032,["onClose"]),i("div",ne,[t[4]||(t[4]=i("span",null,"修改",-1)),t[5]||(t[5]=Y(" | ",-1)),i("span",{onClick:$(h=>e.handlePreview(o),["stop"])},"查看",8,re)])],10,se)]),_:1},8,["modelValue"]),Z(i("div",{class:k(["material-upload",{"is-disabled":e.disabled,"is-one":e.limit==1,[e.uploadClass]:!0}]),onClick:t[1]||(t[1]=o=>e.showPopup(-1))},[x(e.$slots,"upload",{},()=>[i("div",{class:"upload-btn",style:ae({width:e.width||e.size,height:e.height||e.size})},[s(f,{size:25,name:"el-icon-Plus"}),t[6]||(t[6]=i("span",null,"添加",-1))],4)],!0)],2),[[te,e.showUpload]])])]),key:"0"}]),1032,["title","onConfirm","onClose"]),s(v,{modelValue:e.showPreview,"onUpdate:modelValue":t[3]||(t[3]=o=>e.showPreview=o),url:e.previewUrl,type:e.type},null,8,["modelValue","url","type"])])}const Se=E(oe,[["render",ue],["__scopeId","data-v-e3d55648"]]);export{Se as _};
+import{P as I}from"./index-dlM42V9p.js";import{s as T}from"./element-plus-DCRlGjqn.js";import{_ as F,a as D,F as M}from"./index-DrXr9qPh.js";import{e as q,_ as E,c as J}from"./index-DsBUBCgs.js";import{_ as K}from"./index-BmvifxBX.js";import{D as O}from"./vuedraggable-C3E4D3Yv.js";import{f as j,w as G,am as V,A as _,n as H,ar as U,ak as Q,I as W,a as s,M as X,aN as p,J as i,O as Y,aP as Z,aq as x}from"./@vue/runtime-core-C0pg79pw.js";import{K as ee,o as n}from"./@vue/reactivity-BIbyPIZJ.js";import{h as le}from"./@vueuse/shared-D8934tfB.js";import{s as $,q as te}from"./@vue/runtime-dom-iFk_KP8y.js";import{o as k,p as ae}from"./@vue/shared-mAAVTE9n.js";const oe=j({components:{Popup:I,Draggable:O,FileItem:M,Material:D,Preview:F},props:{modelValue:{type:[String,Array],default:()=>[]},type:{type:String,default:"image"},size:{type:String,default:"100px"},width:{type:String,default:""},height:{type:String,default:""},fileSize:{type:String,default:"100px"},limit:{type:Number,default:1},disabled:{type:Boolean,default:!1},hiddenUpload:{type:Boolean,default:!1},uploadClass:{type:String,default:""},excludeDomain:{type:Boolean,default:!1}},emits:["change","update:modelValue"],setup(e,{emit:t}){const g=n(),w=n(),y=n(""),C=n(!1),a=n([]),m=n([]),r=n(!0),f=n(-1),{disabled:b,limit:d,modelValue:S}=ee(e),{getImageUrl:v}=q(),o=_(()=>{switch(e.type){case"image":return"图片";case"video":return"视频";default:return""}}),c=_(()=>e.limit-a.value.length>0),h=_(()=>r.value?d.value==-1?null:d.value-a.value.length:1),A=le(()=>{const l=m.value.map(u=>e.excludeDomain?u.uri:u.url);r.value?a.value=[...a.value,...l]:a.value.splice(f.value,1,l.shift()),z()},1e3,!1),B=l=>{var u;b.value||(l>=0?(r.value=!1,f.value=l):r.value=!0,(u=g.value)==null||u.open())},L=l=>{m.value=l},z=()=>{const l=d.value!=1?a.value:a.value[0]||"";t("update:modelValue",l),t("change",l),P()},N=l=>{a.value.splice(l,1),z()},R=l=>{y.value=e.excludeDomain?v(l):l,C.value=!0},P=()=>{H(()=>{var l;e.hiddenUpload&&(a.value=[]),(l=w.value)==null||l.clearSelect()})};return G(S,l=>{a.value=Array.isArray(l)?l:l==""?[]:[l]},{immediate:!0}),V("limit",e.limit),V("hiddenUpload",e.hiddenUpload),{popupRef:g,materialRef:w,fileList:a,tipsText:o,handleConfirm:A,meterialLimit:h,showUpload:c,showPopup:B,selectChange:L,deleteImg:N,previewUrl:y,showPreview:C,handlePreview:R,handleClose:P,getImageUrl:v}}}),ie={class:"material-select"},se=["onClick"],ne={class:"operation-btns text-xs text-center"},re=["onClick"],de={class:"material-wrap"};function ue(e,t,g,w,y,C){const a=U("file-item"),m=K,r=U("draggable"),f=J,b=D,d=T,S=I,v=U("preview");return Q(),W("div",ie,[s(S,{ref:"popupRef",width:"1050px","custom-class":"body-padding",title:`选择${e.tipsText}`,onConfirm:e.handleConfirm,onClose:e.handleClose},X({default:p(()=>[s(d,null,{default:p(()=>[i("div",de,[s(b,{ref:"materialRef",type:e.type,"file-size":e.fileSize,limit:e.meterialLimit,onChange:e.selectChange},null,8,["type","file-size","limit","onChange"])])]),_:1})]),_:2},[e.hiddenUpload?void 0:{name:"trigger",fn:p(()=>[i("div",{class:"material-select__trigger clearfix",onClick:t[2]||(t[2]=$(()=>{},["stop"]))},[s(r,{class:"draggable",modelValue:e.fileList,"onUpdate:modelValue":t[0]||(t[0]=o=>e.fileList=o),animation:"300","item-key":"id"},{item:p(({element:o,index:c})=>[i("div",{class:k(["material-preview",{"is-disabled":e.disabled,"is-one":e.limit==1}]),onClick:h=>e.showPopup(c)},[s(m,{onClose:h=>e.deleteImg(c)},{default:p(()=>[s(a,{uri:e.excludeDomain?e.getImageUrl(o):o,"file-size":e.size,width:e.width,height:e.height,type:e.type},null,8,["uri","file-size","width","height","type"])]),_:2},1032,["onClose"]),i("div",ne,[t[4]||(t[4]=i("span",null,"修改",-1)),t[5]||(t[5]=Y(" | ",-1)),i("span",{onClick:$(h=>e.handlePreview(o),["stop"])},"查看",8,re)])],10,se)]),_:1},8,["modelValue"]),Z(i("div",{class:k(["material-upload",{"is-disabled":e.disabled,"is-one":e.limit==1,[e.uploadClass]:!0}]),onClick:t[1]||(t[1]=o=>e.showPopup(-1))},[x(e.$slots,"upload",{},()=>[i("div",{class:"upload-btn",style:ae({width:e.width||e.size,height:e.height||e.size})},[s(f,{size:25,name:"el-icon-Plus"}),t[6]||(t[6]=i("span",null,"添加",-1))],4)],!0)],2),[[te,e.showUpload]])])]),key:"0"}]),1032,["title","onConfirm","onClose"]),s(v,{modelValue:e.showPreview,"onUpdate:modelValue":t[3]||(t[3]=o=>e.showPreview=o),url:e.previewUrl,type:e.type},null,8,["modelValue","url","type"])])}const Se=E(oe,[["render",ue],["__scopeId","data-v-e3d55648"]]);export{Se as _};
diff --git a/server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-JVrY6m1N.js b/server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-7QCUQ1IR.js
similarity index 96%
rename from server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-JVrY6m1N.js
rename to server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-7QCUQ1IR.js
index 5447ffcb..d7e28c03 100644
--- a/server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-JVrY6m1N.js
+++ b/server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-7QCUQ1IR.js
@@ -1 +1 @@
-import{a3 as M,s as W,i as $,C as L,r as z}from"./element-plus-Dmpg6ayE.js";import{c as T,x as R,y as O}from"./index-DWk_b8Nv.js";import{s as _}from"./@vue/runtime-dom-iFk_KP8y.js";import{b as P}from"./@vueuse/core-DIKi2bJB.js";import{f as U,w as j,n as h,b as A,ak as u,I as r,a as n,aN as a,J as i,F as V,ap as k,G as D,O as G,A as J}from"./@vue/runtime-core-C0pg79pw.js";import{o as Q,Q as q}from"./@vue/shared-mAAVTE9n.js";import{y as x,o as H,u as K,r as X}from"./@vue/reactivity-BIbyPIZJ.js";const Y={class:"icon-select"},Z={class:"flex justify-between"},ee=["onClick"],oe={class:"h-[280px]"},te={class:"flex flex-wrap"},se={key:0,class:"flex items-center"},de=U({__name:"picker",props:{modelValue:{default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(c,{emit:y}){const d=y,v=H(0),b=[{name:"element图标",icons:R()},{name:"本地图标",icons:O()}],m=K(),e=X({inputValue:"",popoverVisible:!1,popoverWidth:0,mouseoverSelect:!1,inputFocus:!1}),w=()=>{e.inputFocus=e.popoverVisible=!0},C=()=>{e.inputFocus=!1,e.popoverVisible=e.mouseoverSelect},g=t=>{e.mouseoverSelect=e.popoverVisible=!1,d("update:modelValue",t),d("change",t)},F=()=>{d("update:modelValue",""),d("change","")},S=J(()=>{var l;const t=((l=b[v.value])==null?void 0:l.icons)??[];if(!e.inputValue)return t;const o=e.inputValue.toLowerCase();return t.filter(p=>{if(p.toLowerCase().indexOf(o)!==-1)return p})}),B=()=>{h(()=>{var o;const t=(o=m.value)==null?void 0:o.$el.offsetWidth;e.popoverWidth=t<300?300:t})};return P(document.body,"click",()=>{e.popoverVisible=!!(e.inputFocus||e.mouseoverSelect)}),j(()=>e.popoverVisible,async t=>{var o,l;await h(),t?(o=m.value)==null||o.focus():(l=m.value)==null||l.blur()}),A(()=>{B()}),(t,o)=>{const l=T,p=$,E=W,N=z,I=M;return u(),r("div",Y,[n(I,{trigger:"contextmenu",visible:e.popoverVisible,"onUpdate:visible":o[3]||(o[3]=s=>e.popoverVisible=s),width:e.popoverWidth},{reference:a(()=>[n(x(L),{ref_key:"inputRef",ref:m,modelValue:e.inputValue,"onUpdate:modelValue":o[2]||(o[2]=s=>e.inputValue=s),modelModifiers:{trim:!0},placeholder:"搜索图标",autofocus:!1,disabled:c.disabled,onFocus:w,onBlur:C,clearable:""},{prepend:a(()=>[c.modelValue?(u(),r("div",se,[n(N,{class:"flex-1 w-20",content:c.modelValue,placement:"top"},{default:a(()=>[(u(),D(l,{class:"mr-1",key:c.modelValue,name:c.modelValue,size:16},null,8,["name"]))]),_:1},8,["content"])])):(u(),r(V,{key:1},[G("无")],64))]),append:a(()=>[n(p,null,{default:a(()=>[n(l,{name:"el-icon-Close",size:18,onClick:F})]),_:1})]),_:1},8,["modelValue","disabled"])]),default:a(()=>[i("div",{onMouseover:o[0]||(o[0]=_(s=>e.mouseoverSelect=!0,["stop"])),onMouseout:o[1]||(o[1]=_(s=>e.mouseoverSelect=!1,["stop"]))},[i("div",null,[i("div",Z,[o[4]||(o[4]=i("div",{class:"mb-3"},"请选择图标",-1)),i("div",null,[(u(),r(V,null,k(b,(s,f)=>i("span",{key:f,class:Q(["cursor-pointer text-sm ml-2",{"text-primary":f==x(v)}]),onClick:le=>v.value=f},q(s.name),11,ee)),64))])]),i("div",oe,[n(E,null,{default:a(()=>[i("div",te,[(u(!0),r(V,null,k(S.value,s=>(u(),r("div",{key:s,class:"m-1"},[n(p,{onClick:f=>g(s)},{default:a(()=>[n(l,{name:s,size:18},null,8,["name"])]),_:2},1032,["onClick"])]))),128))])]),_:1})])])],32)]),_:1},8,["visible","width"])])}}});export{de as _};
+import{a4 as M,s as W,i as $,C as L,r as z}from"./element-plus-DCRlGjqn.js";import{c as T,x as R,y as O}from"./index-DsBUBCgs.js";import{s as _}from"./@vue/runtime-dom-iFk_KP8y.js";import{b as P}from"./@vueuse/core-DIKi2bJB.js";import{f as U,w as j,n as h,b as A,ak as u,I as r,a as n,aN as a,J as i,F as V,ap as k,G as D,O as G,A as J}from"./@vue/runtime-core-C0pg79pw.js";import{o as Q,Q as q}from"./@vue/shared-mAAVTE9n.js";import{y as x,o as H,u as K,r as X}from"./@vue/reactivity-BIbyPIZJ.js";const Y={class:"icon-select"},Z={class:"flex justify-between"},ee=["onClick"],oe={class:"h-[280px]"},te={class:"flex flex-wrap"},se={key:0,class:"flex items-center"},de=U({__name:"picker",props:{modelValue:{default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(c,{emit:y}){const d=y,v=H(0),b=[{name:"element图标",icons:R()},{name:"本地图标",icons:O()}],m=K(),e=X({inputValue:"",popoverVisible:!1,popoverWidth:0,mouseoverSelect:!1,inputFocus:!1}),w=()=>{e.inputFocus=e.popoverVisible=!0},C=()=>{e.inputFocus=!1,e.popoverVisible=e.mouseoverSelect},g=t=>{e.mouseoverSelect=e.popoverVisible=!1,d("update:modelValue",t),d("change",t)},F=()=>{d("update:modelValue",""),d("change","")},S=J(()=>{var l;const t=((l=b[v.value])==null?void 0:l.icons)??[];if(!e.inputValue)return t;const o=e.inputValue.toLowerCase();return t.filter(p=>{if(p.toLowerCase().indexOf(o)!==-1)return p})}),B=()=>{h(()=>{var o;const t=(o=m.value)==null?void 0:o.$el.offsetWidth;e.popoverWidth=t<300?300:t})};return P(document.body,"click",()=>{e.popoverVisible=!!(e.inputFocus||e.mouseoverSelect)}),j(()=>e.popoverVisible,async t=>{var o,l;await h(),t?(o=m.value)==null||o.focus():(l=m.value)==null||l.blur()}),A(()=>{B()}),(t,o)=>{const l=T,p=$,E=W,N=z,I=M;return u(),r("div",Y,[n(I,{trigger:"contextmenu",visible:e.popoverVisible,"onUpdate:visible":o[3]||(o[3]=s=>e.popoverVisible=s),width:e.popoverWidth},{reference:a(()=>[n(x(L),{ref_key:"inputRef",ref:m,modelValue:e.inputValue,"onUpdate:modelValue":o[2]||(o[2]=s=>e.inputValue=s),modelModifiers:{trim:!0},placeholder:"搜索图标",autofocus:!1,disabled:c.disabled,onFocus:w,onBlur:C,clearable:""},{prepend:a(()=>[c.modelValue?(u(),r("div",se,[n(N,{class:"flex-1 w-20",content:c.modelValue,placement:"top"},{default:a(()=>[(u(),D(l,{class:"mr-1",key:c.modelValue,name:c.modelValue,size:16},null,8,["name"]))]),_:1},8,["content"])])):(u(),r(V,{key:1},[G("无")],64))]),append:a(()=>[n(p,null,{default:a(()=>[n(l,{name:"el-icon-Close",size:18,onClick:F})]),_:1})]),_:1},8,["modelValue","disabled"])]),default:a(()=>[i("div",{onMouseover:o[0]||(o[0]=_(s=>e.mouseoverSelect=!0,["stop"])),onMouseout:o[1]||(o[1]=_(s=>e.mouseoverSelect=!1,["stop"]))},[i("div",null,[i("div",Z,[o[4]||(o[4]=i("div",{class:"mb-3"},"请选择图标",-1)),i("div",null,[(u(),r(V,null,k(b,(s,f)=>i("span",{key:f,class:Q(["cursor-pointer text-sm ml-2",{"text-primary":f==x(v)}]),onClick:le=>v.value=f},q(s.name),11,ee)),64))])]),i("div",oe,[n(E,null,{default:a(()=>[i("div",te,[(u(!0),r(V,null,k(S.value,s=>(u(),r("div",{key:s,class:"m-1"},[n(p,{onClick:f=>g(s)},{default:a(()=>[n(l,{name:s,size:18},null,8,["name"])]),_:2},1032,["onClick"])]))),128))])]),_:1})])])],32)]),_:1},8,["visible","width"])])}}});export{de as _};
diff --git a/server/public/admin/assets/popover_input-q1ECJaJ_.js b/server/public/admin/assets/popover_input-DjV7SYQZ.js
similarity index 89%
rename from server/public/admin/assets/popover_input-q1ECJaJ_.js
rename to server/public/admin/assets/popover_input-DjV7SYQZ.js
index b673e250..b94b5604 100644
--- a/server/public/admin/assets/popover_input-q1ECJaJ_.js
+++ b/server/public/admin/assets/popover_input-DjV7SYQZ.js
@@ -1 +1 @@
-import{i as d,J as _}from"./element-plus-Dmpg6ayE.js";import{_ as p}from"./index.vue_vue_type_script_setup_true_lang-DyQAa4vY.js";import{f as u,ak as f,I as c,a as t,aN as o,J as s,O as r}from"./@vue/runtime-core-C0pg79pw.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";const v={class:"flex flex-wrap"},x={class:"m-4"},w={class:"m-4"},B={class:"m-4"},C={class:"m-4"},N={class:"m-4"},F=u({__name:"popover_input",setup(b){const l=a=>{console.log(a)};return(a,e)=>{const n=d,i=p,m=_;return f(),c("div",null,[t(m,{header:"基础使用",shadow:"never",class:"!border-none"},{default:o(()=>[s("div",v,[s("div",x,[t(i,{onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[0]||(e[0]=[r(" 点击输入 ",-1)])]),_:1})]),_:1})]),s("div",w,[t(i,{type:"number",onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[1]||(e[1]=[r(" 输入数字 ",-1)])]),_:1})]),_:1})]),s("div",B,[t(i,{size:"small",onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[2]||(e[2]=[r(" 调整大小 ",-1)])]),_:1})]),_:1})]),s("div",C,[t(i,{limit:20,"show-limit":!0,onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[3]||(e[3]=[r(" 限制输入长度 ",-1)])]),_:1})]),_:1})]),s("div",N,[t(i,{value:"默认值",onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[4]||(e[4]=[r(" 默认值 ",-1)])]),_:1})]),_:1})])])]),_:1})])}}});export{F as default};
+import{i as d,J as _}from"./element-plus-DCRlGjqn.js";import{_ as p}from"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import{f as u,ak as f,I as c,a as t,aN as o,J as s,O as r}from"./@vue/runtime-core-C0pg79pw.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";const v={class:"flex flex-wrap"},x={class:"m-4"},w={class:"m-4"},B={class:"m-4"},C={class:"m-4"},N={class:"m-4"},F=u({__name:"popover_input",setup(b){const l=a=>{console.log(a)};return(a,e)=>{const n=d,i=p,m=_;return f(),c("div",null,[t(m,{header:"基础使用",shadow:"never",class:"!border-none"},{default:o(()=>[s("div",v,[s("div",x,[t(i,{onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[0]||(e[0]=[r(" 点击输入 ",-1)])]),_:1})]),_:1})]),s("div",w,[t(i,{type:"number",onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[1]||(e[1]=[r(" 输入数字 ",-1)])]),_:1})]),_:1})]),s("div",B,[t(i,{size:"small",onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[2]||(e[2]=[r(" 调整大小 ",-1)])]),_:1})]),_:1})]),s("div",C,[t(i,{limit:20,"show-limit":!0,onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[3]||(e[3]=[r(" 限制输入长度 ",-1)])]),_:1})]),_:1})]),s("div",N,[t(i,{value:"默认值",onConfirm:l},{default:o(()=>[t(n,null,{default:o(()=>[...e[4]||(e[4]=[r(" 默认值 ",-1)])]),_:1})]),_:1})])])]),_:1})])}}});export{F as default};
diff --git a/server/public/admin/assets/post-DVV_yBbz.js b/server/public/admin/assets/post-BT5vbLl2.js
similarity index 86%
rename from server/public/admin/assets/post-DVV_yBbz.js
rename to server/public/admin/assets/post-BT5vbLl2.js
index e50d344e..0956a177 100644
--- a/server/public/admin/assets/post-DVV_yBbz.js
+++ b/server/public/admin/assets/post-BT5vbLl2.js
@@ -1 +1 @@
-import{r as e}from"./index-DWk_b8Nv.js";function o(t){return e.get({url:"/dept.jobs/lists",params:t},{ignoreCancelToken:!0})}function r(t){return e.get({url:"/dept.jobs/all",params:t})}function n(t){return e.post({url:"/dept.jobs/add",params:t})}function u(t){return e.post({url:"/dept.jobs/edit",params:t})}function l(t){return e.post({url:"/dept.jobs/delete",params:t})}function d(t){return e.get({url:"/dept.jobs/detail",params:t})}export{u as a,n as b,d as c,o as d,l as e,r as j};
+import{r as e}from"./index-DsBUBCgs.js";function o(t){return e.get({url:"/dept.jobs/lists",params:t},{ignoreCancelToken:!0})}function r(t){return e.get({url:"/dept.jobs/all",params:t})}function n(t){return e.post({url:"/dept.jobs/add",params:t})}function u(t){return e.post({url:"/dept.jobs/edit",params:t})}function l(t){return e.post({url:"/dept.jobs/delete",params:t})}function d(t){return e.get({url:"/dept.jobs/detail",params:t})}export{u as a,n as b,d as c,o as d,l as e,r as j};
diff --git a/server/public/admin/assets/prescription-drawer-CPZFLH2u.js b/server/public/admin/assets/prescription-drawer-CVr3NYw9.js
similarity index 97%
rename from server/public/admin/assets/prescription-drawer-CPZFLH2u.js
rename to server/public/admin/assets/prescription-drawer-CVr3NYw9.js
index 4f4dcc95..b6fab7b0 100644
--- a/server/public/admin/assets/prescription-drawer-CPZFLH2u.js
+++ b/server/public/admin/assets/prescription-drawer-CVr3NYw9.js
@@ -1 +1 @@
-import{D as $,B as z,C as H,P,Q as A,V as J,W as L,G as Q,I as W,h as X,X as j,i as K,M as Z,N as ee,g as le,e as ae}from"./element-plus-Dmpg6ayE.js";import{e as oe}from"./tcm-BCaX4wIV.js";import{i as w,_ as te}from"./index-DWk_b8Nv.js";import{M as ue}from"./index-SNmtJ_Bs.js";import{f as ne,ak as re,G as de,aN as o,a as e,O as m,J as k}from"./@vue/runtime-core-C0pg79pw.js";import{y as u,a as se,o as x,r as ie}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./medicine-DCa5VHZd.js";const pe={class:"w-full"},me=ne({__name:"prescription-drawer",emits:["success"],setup(_e,{expose:C,emit:D}){const S=D,_=x(!1),f=x(),y=x(!1),l=ie({appointment_id:0,diagnosis_id:0,prescription_name:"",prescription_type:"浓缩水丸",patient_name:"",gender:1,age:0,visit_no:"",prescription_date:"",tongue:"",tongue_image:"",pulse:"",pulse_condition:"",clinical_diagnosis:"",herbs:[],dose_count:7,dose_unit:"剂",usage_days:7,usage_instruction:"水煎服,一日二次",usage_time:"饭前",usage_way:"温水送服",dietary_taboo:[],usage_notes:"",doctor_name:"",is_shared:0,audit_status:1}),q={prescription_name:[{required:!0,message:"请输入处方名称",trigger:"blur"}],patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],prescription_date:[{required:!0,message:"请选择处方日期",trigger:"change"}],clinical_diagnosis:[{required:!0,message:"请输入临床诊断",trigger:"blur"}],dose_count:[{required:!0,message:"请输入剂数",trigger:"blur"}],doctor_name:[{required:!0,message:"请输入医师姓名",trigger:"blur"}]},I=()=>{l.herbs.push({name:"",dosage:0})},Y=d=>{l.herbs.splice(d,1)},M=()=>{l.appointment_id=0,l.diagnosis_id=0,l.prescription_name="",l.prescription_type="浓缩水丸",l.patient_name="",l.gender=1,l.age=0,l.visit_no="",l.prescription_date=new Date().toISOString().split("T")[0],l.tongue="",l.tongue_image="",l.pulse="",l.pulse_condition="",l.clinical_diagnosis="",l.herbs=[],l.dose_count=7,l.dose_unit="剂",l.usage_days=7,l.usage_instruction="水煎服,一日二次",l.usage_time="饭前",l.usage_way="温水送服",l.dietary_taboo=[],l.usage_notes="",l.doctor_name="",l.is_shared=0,l.audit_status=0},N=d=>{var a;M(),l.appointment_id=d.id||0,l.diagnosis_id=d.diagnosis_id||0,l.patient_name=d.patient_name||"",l.gender=d.patient_gender==="男"?1:0,l.age=parseInt(d.patient_age)||0,l.visit_no=((a=d.id)==null?void 0:a.toString())||"",l.prescription_date=d.appointment_date||new Date().toISOString().split("T")[0],l.doctor_name=d.doctor_name||"",_.value=!0},U=()=>{var d;_.value=!1,(d=f.value)==null||d.resetFields()},R=async()=>{if(f.value){if(await f.value.validate(),!l.herbs||l.herbs.length===0){w.msgError("请至少添加一味药材");return}for(let d=0;d{const i=H,r=z,n=A,g=P,s=L,p=J,E=W,B=Q,b=X,T=j,V=K,c=ee,h=Z,F=le,O=$,G=ae;return re(),de(G,{modelValue:u(_),"onUpdate:modelValue":a[22]||(a[22]=t=>se(_)?_.value=t:null),title:"创建处方单",size:"90%","close-on-click-modal":!1,onClose:U},{footer:o(()=>[e(V,{onClick:U},{default:o(()=>[...a[28]||(a[28]=[m("取消",-1)])]),_:1}),e(V,{type:"primary",onClick:R,loading:u(y)},{default:o(()=>[...a[29]||(a[29]=[m("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(O,{ref_key:"formRef",ref:f,model:u(l),rules:q,"label-width":"120px",class:"prescription-form"},{default:o(()=>[e(r,{label:"处方名称",prop:"prescription_name"},{default:o(()=>[e(i,{modelValue:u(l).prescription_name,"onUpdate:modelValue":a[0]||(a[0]=t=>u(l).prescription_name=t),placeholder:"请输入处方名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(r,{label:"处方类型",prop:"prescription_type"},{default:o(()=>[e(g,{modelValue:u(l).prescription_type,"onUpdate:modelValue":a[1]||(a[1]=t=>u(l).prescription_type=t),placeholder:"请选择处方类型",class:"w-full"},{default:o(()=>[e(n,{label:"浓缩水丸",value:"浓缩水丸"}),e(n,{label:"饮片",value:"饮片"}),e(n,{label:"颗粒",value:"颗粒"}),e(n,{label:"丸剂",value:"丸剂"}),e(n,{label:"散剂",value:"散剂"}),e(n,{label:"膏方",value:"膏方"}),e(n,{label:"汤剂",value:"汤剂"})]),_:1},8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:12},{default:o(()=>[e(r,{label:"患者姓名",prop:"patient_name"},{default:o(()=>[e(i,{modelValue:u(l).patient_name,"onUpdate:modelValue":a[2]||(a[2]=t=>u(l).patient_name=t),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:12},{default:o(()=>[e(r,{label:"门诊号",prop:"visit_no"},{default:o(()=>[e(i,{modelValue:u(l).visit_no,"onUpdate:modelValue":a[3]||(a[3]=t=>u(l).visit_no=t),placeholder:"自动生成或手动输入"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:8},{default:o(()=>[e(r,{label:"性别",prop:"gender"},{default:o(()=>[e(B,{modelValue:u(l).gender,"onUpdate:modelValue":a[4]||(a[4]=t=>u(l).gender=t)},{default:o(()=>[e(E,{label:1},{default:o(()=>[...a[23]||(a[23]=[m("男",-1)])]),_:1}),e(E,{label:0},{default:o(()=>[...a[24]||(a[24]=[m("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(s,{span:8},{default:o(()=>[e(r,{label:"年龄",prop:"age"},{default:o(()=>[e(b,{modelValue:u(l).age,"onUpdate:modelValue":a[5]||(a[5]=t=>u(l).age=t),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:8},{default:o(()=>[e(r,{label:"处方日期",prop:"prescription_date"},{default:o(()=>[e(T,{modelValue:u(l).prescription_date,"onUpdate:modelValue":a[6]||(a[6]=t=>u(l).prescription_date=t),type:"date",placeholder:"选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:12},{default:o(()=>[e(r,{label:"面象",prop:"tongue"},{default:o(()=>[e(i,{modelValue:u(l).tongue,"onUpdate:modelValue":a[7]||(a[7]=t=>u(l).tongue=t),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:12},{default:o(()=>[e(r,{label:"舌象",prop:"tongue_image"},{default:o(()=>[e(i,{modelValue:u(l).tongue_image,"onUpdate:modelValue":a[8]||(a[8]=t=>u(l).tongue_image=t),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:12},{default:o(()=>[e(r,{label:"脉象",prop:"pulse"},{default:o(()=>[e(i,{modelValue:u(l).pulse,"onUpdate:modelValue":a[9]||(a[9]=t=>u(l).pulse=t),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:12},{default:o(()=>[e(r,{label:"脉象详情",prop:"pulse_condition"},{default:o(()=>[e(i,{modelValue:u(l).pulse_condition,"onUpdate:modelValue":a[10]||(a[10]=t=>u(l).pulse_condition=t),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(r,{label:"临床诊断",prop:"clinical_diagnosis"},{default:o(()=>[e(i,{modelValue:u(l).clinical_diagnosis,"onUpdate:modelValue":a[11]||(a[11]=t=>u(l).clinical_diagnosis=t),type:"textarea",rows:3,placeholder:"请输入临床诊断",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(r,{label:"药材配方",prop:"herbs",required:""},{default:o(()=>[k("div",pe,[e(V,{type:"primary",size:"small",onClick:I},{default:o(()=>[...a[25]||(a[25]=[m(" 添加药材 ",-1)])]),_:1}),e(h,{data:u(l).herbs,class:"mt-2",border:""},{default:o(()=>[e(c,{label:"序号",type:"index",width:"60"}),e(c,{label:"药材名称","min-width":"220"},{default:o(({row:t})=>[e(ue,{modelValue:t.name,"onUpdate:modelValue":v=>t.name=v},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(c,{label:"剂量(克)","min-width":"120"},{default:o(({row:t})=>[e(b,{modelValue:t.dosage,"onUpdate:modelValue":v=>t.dosage=v,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(c,{label:"操作",width:"80"},{default:o(({$index:t})=>[e(V,{type:"danger",link:"",onClick:v=>Y(t)},{default:o(()=>[...a[26]||(a[26]=[m(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:8},{default:o(()=>[e(r,{label:"剂数",prop:"dose_count"},{default:o(()=>[e(b,{modelValue:u(l).dose_count,"onUpdate:modelValue":a[12]||(a[12]=t=>u(l).dose_count=t),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:8},{default:o(()=>[e(r,{label:"剂量单位",prop:"dose_unit"},{default:o(()=>[e(g,{modelValue:u(l).dose_unit,"onUpdate:modelValue":a[13]||(a[13]=t=>u(l).dose_unit=t),placeholder:"请选择",class:"w-full"},{default:o(()=>[e(n,{label:"剂",value:"剂"}),e(n,{label:"丸",value:"丸"}),e(n,{label:"袋",value:"袋"}),e(n,{label:"盒",value:"盒"}),e(n,{label:"瓶",value:"瓶"}),e(n,{label:"膏",value:"膏"}),e(n,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(s,{span:8},{default:o(()=>[e(r,{label:"服用天数",prop:"usage_days"},{default:o(()=>[e(b,{modelValue:u(l).usage_days,"onUpdate:modelValue":a[14]||(a[14]=t=>u(l).usage_days=t),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(r,{label:"用法",prop:"usage_instruction"},{default:o(()=>[e(i,{modelValue:u(l).usage_instruction,"onUpdate:modelValue":a[15]||(a[15]=t=>u(l).usage_instruction=t),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:12},{default:o(()=>[e(r,{label:"服用时间",prop:"usage_time"},{default:o(()=>[e(g,{modelValue:u(l).usage_time,"onUpdate:modelValue":a[16]||(a[16]=t=>u(l).usage_time=t),placeholder:"请选择服用时间",class:"w-full"},{default:o(()=>[e(n,{label:"饭前",value:"饭前"}),e(n,{label:"饭后",value:"饭后"}),e(n,{label:"饭中",value:"饭中"}),e(n,{label:"空腹",value:"空腹"}),e(n,{label:"睡前",value:"睡前"}),e(n,{label:"晨起",value:"晨起"}),e(n,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(s,{span:12},{default:o(()=>[e(r,{label:"服用方式",prop:"usage_way"},{default:o(()=>[e(g,{modelValue:u(l).usage_way,"onUpdate:modelValue":a[17]||(a[17]=t=>u(l).usage_way=t),placeholder:"请选择服用方式",class:"w-full"},{default:o(()=>[e(n,{label:"温水送服",value:"温水送服"}),e(n,{label:"开水冲服",value:"开水冲服"}),e(n,{label:"黄酒送服",value:"黄酒送服"}),e(n,{label:"淡盐水送服",value:"淡盐水送服"}),e(n,{label:"米汤送服",value:"米汤送服"}),e(n,{label:"嚼服",value:"嚼服"}),e(n,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(r,{label:"忌口",prop:"dietary_taboo"},{default:o(()=>[e(g,{modelValue:u(l).dietary_taboo,"onUpdate:modelValue":a[18]||(a[18]=t=>u(l).dietary_taboo=t),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"w-full"},{default:o(()=>[e(n,{label:"辛辣食物",value:"辛辣食物"}),e(n,{label:"生冷食物",value:"生冷食物"}),e(n,{label:"油腻食物",value:"油腻食物"}),e(n,{label:"海鲜",value:"海鲜"}),e(n,{label:"牛羊肉",value:"牛羊肉"}),e(n,{label:"鸡蛋",value:"鸡蛋"}),e(n,{label:"豆制品",value:"豆制品"}),e(n,{label:"酒类",value:"酒类"}),e(n,{label:"浓茶",value:"浓茶"}),e(n,{label:"咖啡",value:"咖啡"}),e(n,{label:"烟草",value:"烟草"}),e(n,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1}),e(r,{label:"其他说明",prop:"usage_notes"},{default:o(()=>[e(i,{modelValue:u(l).usage_notes,"onUpdate:modelValue":a[19]||(a[19]=t=>u(l).usage_notes=t),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(r,{label:"医师姓名",prop:"doctor_name"},{default:o(()=>[e(i,{modelValue:u(l).doctor_name,"onUpdate:modelValue":a[20]||(a[20]=t=>u(l).doctor_name=t),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),e(r,{label:"是否共享",prop:"is_shared"},{default:o(()=>[e(F,{modelValue:u(l).is_shared,"onUpdate:modelValue":a[21]||(a[21]=t=>u(l).is_shared=t),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),a[27]||(a[27]=k("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),el=te(me,[["__scopeId","data-v-da2c137f"]]);export{el as default};
+import{D as $,B as z,C as H,P,Q as A,V as J,W as L,G as Q,I as W,h as X,X as j,i as K,M as Z,N as ee,g as le,e as ae}from"./element-plus-DCRlGjqn.js";import{e as oe}from"./tcm-PvaD3bI2.js";import{i as w,_ as te}from"./index-DsBUBCgs.js";import{M as ue}from"./index-Be5le6OV.js";import{f as ne,ak as re,G as de,aN as o,a as e,O as m,J as k}from"./@vue/runtime-core-C0pg79pw.js";import{y as u,a as se,o as x,r as ie}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./medicine-Bp9pVVOa.js";const pe={class:"w-full"},me=ne({__name:"prescription-drawer",emits:["success"],setup(_e,{expose:C,emit:D}){const S=D,_=x(!1),f=x(),y=x(!1),l=ie({appointment_id:0,diagnosis_id:0,prescription_name:"",prescription_type:"浓缩水丸",patient_name:"",gender:1,age:0,visit_no:"",prescription_date:"",tongue:"",tongue_image:"",pulse:"",pulse_condition:"",clinical_diagnosis:"",herbs:[],dose_count:7,dose_unit:"剂",usage_days:7,usage_instruction:"水煎服,一日二次",usage_time:"饭前",usage_way:"温水送服",dietary_taboo:[],usage_notes:"",doctor_name:"",is_shared:0,audit_status:1}),q={prescription_name:[{required:!0,message:"请输入处方名称",trigger:"blur"}],patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],prescription_date:[{required:!0,message:"请选择处方日期",trigger:"change"}],clinical_diagnosis:[{required:!0,message:"请输入临床诊断",trigger:"blur"}],dose_count:[{required:!0,message:"请输入剂数",trigger:"blur"}],doctor_name:[{required:!0,message:"请输入医师姓名",trigger:"blur"}]},I=()=>{l.herbs.push({name:"",dosage:0})},Y=d=>{l.herbs.splice(d,1)},M=()=>{l.appointment_id=0,l.diagnosis_id=0,l.prescription_name="",l.prescription_type="浓缩水丸",l.patient_name="",l.gender=1,l.age=0,l.visit_no="",l.prescription_date=new Date().toISOString().split("T")[0],l.tongue="",l.tongue_image="",l.pulse="",l.pulse_condition="",l.clinical_diagnosis="",l.herbs=[],l.dose_count=7,l.dose_unit="剂",l.usage_days=7,l.usage_instruction="水煎服,一日二次",l.usage_time="饭前",l.usage_way="温水送服",l.dietary_taboo=[],l.usage_notes="",l.doctor_name="",l.is_shared=0,l.audit_status=0},N=d=>{var a;M(),l.appointment_id=d.id||0,l.diagnosis_id=d.diagnosis_id||0,l.patient_name=d.patient_name||"",l.gender=d.patient_gender==="男"?1:0,l.age=parseInt(d.patient_age)||0,l.visit_no=((a=d.id)==null?void 0:a.toString())||"",l.prescription_date=d.appointment_date||new Date().toISOString().split("T")[0],l.doctor_name=d.doctor_name||"",_.value=!0},U=()=>{var d;_.value=!1,(d=f.value)==null||d.resetFields()},R=async()=>{if(f.value){if(await f.value.validate(),!l.herbs||l.herbs.length===0){w.msgError("请至少添加一味药材");return}for(let d=0;d{const i=H,r=z,n=A,g=P,s=L,p=J,E=W,B=Q,b=X,T=j,V=K,c=ee,h=Z,F=le,O=$,G=ae;return re(),de(G,{modelValue:u(_),"onUpdate:modelValue":a[22]||(a[22]=t=>se(_)?_.value=t:null),title:"创建处方单",size:"90%","close-on-click-modal":!1,onClose:U},{footer:o(()=>[e(V,{onClick:U},{default:o(()=>[...a[28]||(a[28]=[m("取消",-1)])]),_:1}),e(V,{type:"primary",onClick:R,loading:u(y)},{default:o(()=>[...a[29]||(a[29]=[m("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(O,{ref_key:"formRef",ref:f,model:u(l),rules:q,"label-width":"120px",class:"prescription-form"},{default:o(()=>[e(r,{label:"处方名称",prop:"prescription_name"},{default:o(()=>[e(i,{modelValue:u(l).prescription_name,"onUpdate:modelValue":a[0]||(a[0]=t=>u(l).prescription_name=t),placeholder:"请输入处方名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(r,{label:"处方类型",prop:"prescription_type"},{default:o(()=>[e(g,{modelValue:u(l).prescription_type,"onUpdate:modelValue":a[1]||(a[1]=t=>u(l).prescription_type=t),placeholder:"请选择处方类型",class:"w-full"},{default:o(()=>[e(n,{label:"浓缩水丸",value:"浓缩水丸"}),e(n,{label:"饮片",value:"饮片"}),e(n,{label:"颗粒",value:"颗粒"}),e(n,{label:"丸剂",value:"丸剂"}),e(n,{label:"散剂",value:"散剂"}),e(n,{label:"膏方",value:"膏方"}),e(n,{label:"汤剂",value:"汤剂"})]),_:1},8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:12},{default:o(()=>[e(r,{label:"患者姓名",prop:"patient_name"},{default:o(()=>[e(i,{modelValue:u(l).patient_name,"onUpdate:modelValue":a[2]||(a[2]=t=>u(l).patient_name=t),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:12},{default:o(()=>[e(r,{label:"门诊号",prop:"visit_no"},{default:o(()=>[e(i,{modelValue:u(l).visit_no,"onUpdate:modelValue":a[3]||(a[3]=t=>u(l).visit_no=t),placeholder:"自动生成或手动输入"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:8},{default:o(()=>[e(r,{label:"性别",prop:"gender"},{default:o(()=>[e(B,{modelValue:u(l).gender,"onUpdate:modelValue":a[4]||(a[4]=t=>u(l).gender=t)},{default:o(()=>[e(E,{label:1},{default:o(()=>[...a[23]||(a[23]=[m("男",-1)])]),_:1}),e(E,{label:0},{default:o(()=>[...a[24]||(a[24]=[m("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(s,{span:8},{default:o(()=>[e(r,{label:"年龄",prop:"age"},{default:o(()=>[e(b,{modelValue:u(l).age,"onUpdate:modelValue":a[5]||(a[5]=t=>u(l).age=t),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:8},{default:o(()=>[e(r,{label:"处方日期",prop:"prescription_date"},{default:o(()=>[e(T,{modelValue:u(l).prescription_date,"onUpdate:modelValue":a[6]||(a[6]=t=>u(l).prescription_date=t),type:"date",placeholder:"选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:12},{default:o(()=>[e(r,{label:"面象",prop:"tongue"},{default:o(()=>[e(i,{modelValue:u(l).tongue,"onUpdate:modelValue":a[7]||(a[7]=t=>u(l).tongue=t),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:12},{default:o(()=>[e(r,{label:"舌象",prop:"tongue_image"},{default:o(()=>[e(i,{modelValue:u(l).tongue_image,"onUpdate:modelValue":a[8]||(a[8]=t=>u(l).tongue_image=t),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:12},{default:o(()=>[e(r,{label:"脉象",prop:"pulse"},{default:o(()=>[e(i,{modelValue:u(l).pulse,"onUpdate:modelValue":a[9]||(a[9]=t=>u(l).pulse=t),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:12},{default:o(()=>[e(r,{label:"脉象详情",prop:"pulse_condition"},{default:o(()=>[e(i,{modelValue:u(l).pulse_condition,"onUpdate:modelValue":a[10]||(a[10]=t=>u(l).pulse_condition=t),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(r,{label:"临床诊断",prop:"clinical_diagnosis"},{default:o(()=>[e(i,{modelValue:u(l).clinical_diagnosis,"onUpdate:modelValue":a[11]||(a[11]=t=>u(l).clinical_diagnosis=t),type:"textarea",rows:3,placeholder:"请输入临床诊断",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(r,{label:"药材配方",prop:"herbs",required:""},{default:o(()=>[k("div",pe,[e(V,{type:"primary",size:"small",onClick:I},{default:o(()=>[...a[25]||(a[25]=[m(" 添加药材 ",-1)])]),_:1}),e(h,{data:u(l).herbs,class:"mt-2",border:""},{default:o(()=>[e(c,{label:"序号",type:"index",width:"60"}),e(c,{label:"药材名称","min-width":"220"},{default:o(({row:t})=>[e(ue,{modelValue:t.name,"onUpdate:modelValue":v=>t.name=v},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(c,{label:"剂量(克)","min-width":"120"},{default:o(({row:t})=>[e(b,{modelValue:t.dosage,"onUpdate:modelValue":v=>t.dosage=v,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(c,{label:"操作",width:"80"},{default:o(({$index:t})=>[e(V,{type:"danger",link:"",onClick:v=>Y(t)},{default:o(()=>[...a[26]||(a[26]=[m(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:8},{default:o(()=>[e(r,{label:"剂数",prop:"dose_count"},{default:o(()=>[e(b,{modelValue:u(l).dose_count,"onUpdate:modelValue":a[12]||(a[12]=t=>u(l).dose_count=t),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(s,{span:8},{default:o(()=>[e(r,{label:"剂量单位",prop:"dose_unit"},{default:o(()=>[e(g,{modelValue:u(l).dose_unit,"onUpdate:modelValue":a[13]||(a[13]=t=>u(l).dose_unit=t),placeholder:"请选择",class:"w-full"},{default:o(()=>[e(n,{label:"剂",value:"剂"}),e(n,{label:"丸",value:"丸"}),e(n,{label:"袋",value:"袋"}),e(n,{label:"盒",value:"盒"}),e(n,{label:"瓶",value:"瓶"}),e(n,{label:"膏",value:"膏"}),e(n,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(s,{span:8},{default:o(()=>[e(r,{label:"服用天数",prop:"usage_days"},{default:o(()=>[e(b,{modelValue:u(l).usage_days,"onUpdate:modelValue":a[14]||(a[14]=t=>u(l).usage_days=t),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(r,{label:"用法",prop:"usage_instruction"},{default:o(()=>[e(i,{modelValue:u(l).usage_instruction,"onUpdate:modelValue":a[15]||(a[15]=t=>u(l).usage_instruction=t),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(s,{span:12},{default:o(()=>[e(r,{label:"服用时间",prop:"usage_time"},{default:o(()=>[e(g,{modelValue:u(l).usage_time,"onUpdate:modelValue":a[16]||(a[16]=t=>u(l).usage_time=t),placeholder:"请选择服用时间",class:"w-full"},{default:o(()=>[e(n,{label:"饭前",value:"饭前"}),e(n,{label:"饭后",value:"饭后"}),e(n,{label:"饭中",value:"饭中"}),e(n,{label:"空腹",value:"空腹"}),e(n,{label:"睡前",value:"睡前"}),e(n,{label:"晨起",value:"晨起"}),e(n,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(s,{span:12},{default:o(()=>[e(r,{label:"服用方式",prop:"usage_way"},{default:o(()=>[e(g,{modelValue:u(l).usage_way,"onUpdate:modelValue":a[17]||(a[17]=t=>u(l).usage_way=t),placeholder:"请选择服用方式",class:"w-full"},{default:o(()=>[e(n,{label:"温水送服",value:"温水送服"}),e(n,{label:"开水冲服",value:"开水冲服"}),e(n,{label:"黄酒送服",value:"黄酒送服"}),e(n,{label:"淡盐水送服",value:"淡盐水送服"}),e(n,{label:"米汤送服",value:"米汤送服"}),e(n,{label:"嚼服",value:"嚼服"}),e(n,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(r,{label:"忌口",prop:"dietary_taboo"},{default:o(()=>[e(g,{modelValue:u(l).dietary_taboo,"onUpdate:modelValue":a[18]||(a[18]=t=>u(l).dietary_taboo=t),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"w-full"},{default:o(()=>[e(n,{label:"辛辣食物",value:"辛辣食物"}),e(n,{label:"生冷食物",value:"生冷食物"}),e(n,{label:"油腻食物",value:"油腻食物"}),e(n,{label:"海鲜",value:"海鲜"}),e(n,{label:"牛羊肉",value:"牛羊肉"}),e(n,{label:"鸡蛋",value:"鸡蛋"}),e(n,{label:"豆制品",value:"豆制品"}),e(n,{label:"酒类",value:"酒类"}),e(n,{label:"浓茶",value:"浓茶"}),e(n,{label:"咖啡",value:"咖啡"}),e(n,{label:"烟草",value:"烟草"}),e(n,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1}),e(r,{label:"其他说明",prop:"usage_notes"},{default:o(()=>[e(i,{modelValue:u(l).usage_notes,"onUpdate:modelValue":a[19]||(a[19]=t=>u(l).usage_notes=t),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(r,{label:"医师姓名",prop:"doctor_name"},{default:o(()=>[e(i,{modelValue:u(l).doctor_name,"onUpdate:modelValue":a[20]||(a[20]=t=>u(l).doctor_name=t),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),e(r,{label:"是否共享",prop:"is_shared"},{default:o(()=>[e(F,{modelValue:u(l).is_shared,"onUpdate:modelValue":a[21]||(a[21]=t=>u(l).is_shared=t),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),a[27]||(a[27]=k("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),el=te(me,[["__scopeId","data-v-da2c137f"]]);export{el as default};
diff --git a/server/public/admin/assets/preview-CGS5X6P8.js b/server/public/admin/assets/preview-VkVXURnh.js
similarity index 59%
rename from server/public/admin/assets/preview-CGS5X6P8.js
rename to server/public/admin/assets/preview-VkVXURnh.js
index 8a9becfb..bc376196 100644
--- a/server/public/admin/assets/preview-CGS5X6P8.js
+++ b/server/public/admin/assets/preview-VkVXURnh.js
@@ -1 +1 @@
-import{i as A,r as O,s as z}from"./element-plus-Dmpg6ayE.js";import{s as k}from"./@vue/runtime-dom-iFk_KP8y.js";import{v as F,h as T,N as j,O as q}from"./@element-plus/icons-vue-DsycZ37q.js";import{e as G}from"./index-Dyw4Bs8T.js";import{l as H}from"./lodash-es-BADexyn7.js";import{f as J,ak as n,G as C,aN as u,I as v,a as l,O as L,H as V,J as d,F as U,ap as W,aq as g,at as K,A as b}from"./@vue/runtime-core-C0pg79pw.js";import{o as D}from"./@vue/shared-mAAVTE9n.js";import{y as f,o as Q}from"./@vue/reactivity-BIbyPIZJ.js";import{_ as R}from"./index-DWk_b8Nv.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./attr-CBvYrA2k.js";import"./index-DGzewPWT.js";import"./picker-Df7KkdWk.js";import"./index-BKLtguGT.js";import"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import"./article-CKzso6NG.js";import"./usePaging-B_C_SZ2Z.js";import"./picker-B5ZiOH7-.js";import"./index-i7zXlMKf.js";import"./index-CtFRZE9b.js";import"./index.vue_vue_type_script_setup_true_lang-DyQAa4vY.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./file-CSSg91XZ.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./content.vue_vue_type_script_setup_true_lang-BfxsednI.js";import"./decoration-img-C_6VQE85.js";import"./attr.vue_vue_type_script_setup_true_lang-6feMPF8O.js";import"./content-BBNLXtq1.js";import"./attr.vue_vue_type_script_setup_true_lang-CHvdnOTe.js";import"./content.vue_vue_type_script_setup_true_lang-DHTycTmO.js";import"./attr.vue_vue_type_script_setup_true_lang-ChVRECak.js";import"./add-nav.vue_vue_type_script_setup_true_lang-DbPUenSv.js";import"./content-DkpUAg9J.js";import"./attr.vue_vue_type_script_setup_true_lang-DaJjxgj9.js";import"./content.vue_vue_type_script_setup_true_lang-GEFFCTZx.js";import"./attr.vue_vue_type_script_setup_true_lang-CfPY9LZg.js";import"./content--_otKNcP.js";import"./decoration-Bm7sdIO5.js";import"./attr.vue_vue_type_script_setup_true_lang-DwghrNvi.js";import"./index.vue_vue_type_script_setup_true_lang-HG7uja_e.js";import"./content-CzET6ZOY.js";import"./content.vue_vue_type_script_setup_true_lang-C7hhBdwq.js";import"./attr.vue_vue_type_script_setup_true_lang-eatfXr14.js";import"./content-CVQDRtl6.js";import"./attr.vue_vue_type_script_setup_true_lang-CxDRo6h6.js";import"./content.vue_vue_type_script_setup_true_lang-CucsgKGv.js";import"./attr.vue_vue_type_script_setup_true_lang-11IwTsyi.js";import"./content-BkT0XQYO.js";const X={class:"shadow mx-[30px] pages-preview"},Y=["onClick"],Z={key:0,class:"widget-btns py-[5px]"},x=J({__name:"preview",props:{pageMeta:{type:Object,default:()=>null},pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue","updatePageData"],setup(i,{emit:M}){const p=i,s=M,y=Q(-1),N=()=>{p.modelValue===-1?s("update:modelValue",y.value):(y.value=p.modelValue,s("update:modelValue",-1))},B=(t,e)=>{t.disabled||s("update:modelValue",e)},P=b(()=>t=>t===0),$=b(()=>t=>{var e;return((e=p.pageData)==null?void 0:e.length)===t+1}),_=b(()=>t=>(t==null?void 0:t.enabled)==0),E=t=>{t.enabled!==void 0&&(t.enabled=t.enabled?0:1)},h=(t,e)=>{if(t<0||t>=p.pageData.length||e<0||e>=p.pageData.length)return;const a=H(p.pageData),c=a.splice(t,1)[0];a.splice(e,0,c),s("updatePageData",a),s("update:modelValue",e)};return(t,e)=>{const a=A,c=O,S=z;return n(),C(S,{class:"pages-preview-container"},{default:u(()=>[i.pageMeta!==null?(n(),v("div",{key:0,class:"absolute right-4 top-4",onClick:N},[l(a,null,{default:u(()=>[...e[0]||(e[0]=[L("页面设置",-1)])]),_:1})])):V("",!0),d("div",X,[(n(!0),v(U,null,W(i.pageData,(o,r)=>(n(),v("div",{key:o.id,class:D(["relative",{"cursor-pointer":!(o!=null&&o.disabled)}]),onClick:m=>B(o,r)},[d("div",{class:D(["absolute w-full h-full z-[100] border-dashed",{select:r==i.modelValue,hide:_.value(o.content),"border-[#dcdfe6] border-2":!(o!=null&&o.disabled)}])},null,2),g(t.$slots,"default",{},()=>{var m;return[(n(),C(K((m=f(G)[o==null?void 0:o.name])==null?void 0:m.content),{content:o.content,styles:o.styles,key:o.id},null,8,["content","styles"]))]},!0),r==i.modelValue?(n(),v("div",Z,[d("div",null,[l(c,{effect:"dark",content:_.value(o.content)?"显示":"隐藏",placement:"right"},{default:u(()=>[l(a,{class:"py-[5px]",type:"primary",icon:_.value(o.content)?f(F):f(T),onClick:m=>E(o.content)},null,8,["icon","onClick"])]),_:2},1032,["content"])]),d("div",null,[l(c,{effect:"dark",content:"上移",placement:"right"},{default:u(()=>[l(a,{class:"py-[5px]",type:"primary",icon:f(j),disabled:P.value(r),onClick:k(m=>h(r,r-1),["stop"])},null,8,["icon","disabled","onClick"])]),_:2},1024)]),d("div",null,[l(c,{effect:"dark",content:"下移",placement:"right"},{default:u(()=>[l(a,{class:"py-[5px]",type:"primary",icon:f(q),disabled:$.value(r),onClick:k(m=>h(r,r+1),["stop"])},null,8,["icon","disabled","onClick"])]),_:2},1024)])])):V("",!0)],10,Y))),128))])]),_:3})}}}),Mo=R(x,[["__scopeId","data-v-a459312e"]]);export{Mo as default};
+import{i as A,r as O,s as z}from"./element-plus-DCRlGjqn.js";import{s as h}from"./@vue/runtime-dom-iFk_KP8y.js";import{v as F,h as T,N as j,O as q}from"./@element-plus/icons-vue-jYCthPJY.js";import{e as G}from"./index-C3uhURtD.js";import{k as H}from"./lodash-es-C2A-Pj28.js";import{f as J,ak as n,G as C,aN as u,I as v,a as l,O as L,H as V,J as d,F as U,ap as W,aq as g,at as K,A as b}from"./@vue/runtime-core-C0pg79pw.js";import{o as D}from"./@vue/shared-mAAVTE9n.js";import{y as f,o as Q}from"./@vue/reactivity-BIbyPIZJ.js";import{_ as R}from"./index-DsBUBCgs.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./attr-BhVdfhGs.js";import"./index-BmvifxBX.js";import"./picker-BMroZii1.js";import"./index-dlM42V9p.js";import"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import"./article-0uhoq4JM.js";import"./usePaging-B_C_SZ2Z.js";import"./picker-h7OmyGiV.js";import"./index-DrXr9qPh.js";import"./index-CF2_JamS.js";import"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./file-DRO9_cYT.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./content.vue_vue_type_script_setup_true_lang-BSDktndu.js";import"./decoration-img-C01Pis81.js";import"./attr.vue_vue_type_script_setup_true_lang-8nl6mPaU.js";import"./content-1tt_sX8-.js";import"./attr.vue_vue_type_script_setup_true_lang-CKdpBsQw.js";import"./content.vue_vue_type_script_setup_true_lang-DrSRY1kT.js";import"./attr.vue_vue_type_script_setup_true_lang-CgPvCAfT.js";import"./add-nav.vue_vue_type_script_setup_true_lang-DkUMUIoP.js";import"./content-BIImGJq8.js";import"./attr.vue_vue_type_script_setup_true_lang-CcUccVfL.js";import"./content.vue_vue_type_script_setup_true_lang-C1DG1CXu.js";import"./attr.vue_vue_type_script_setup_true_lang-CfPY9LZg.js";import"./content-RbPN8Ina.js";import"./decoration-B1aWgelJ.js";import"./attr.vue_vue_type_script_setup_true_lang-BH3CMFHL.js";import"./index.vue_vue_type_script_setup_true_lang-Dqs8IDbj.js";import"./content-D3iKOBjB.js";import"./content.vue_vue_type_script_setup_true_lang-Bz6BJBy-.js";import"./attr.vue_vue_type_script_setup_true_lang-eatfXr14.js";import"./content-CqWGwsK_.js";import"./attr.vue_vue_type_script_setup_true_lang-Cc55Bg2h.js";import"./content.vue_vue_type_script_setup_true_lang-DPgrpOzA.js";import"./attr.vue_vue_type_script_setup_true_lang-11IwTsyi.js";import"./content-DIAiU9iD.js";const X={class:"shadow mx-[30px] pages-preview"},Y=["onClick"],Z={key:0,class:"widget-btns py-[5px]"},x=J({__name:"preview",props:{pageMeta:{type:Object,default:()=>null},pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue","updatePageData"],setup(i,{emit:M}){const p=i,s=M,y=Q(-1),N=()=>{p.modelValue===-1?s("update:modelValue",y.value):(y.value=p.modelValue,s("update:modelValue",-1))},B=(t,e)=>{t.disabled||s("update:modelValue",e)},P=b(()=>t=>t===0),$=b(()=>t=>{var e;return((e=p.pageData)==null?void 0:e.length)===t+1}),_=b(()=>t=>(t==null?void 0:t.enabled)==0),E=t=>{t.enabled!==void 0&&(t.enabled=t.enabled?0:1)},k=(t,e)=>{if(t<0||t>=p.pageData.length||e<0||e>=p.pageData.length)return;const a=H(p.pageData),c=a.splice(t,1)[0];a.splice(e,0,c),s("updatePageData",a),s("update:modelValue",e)};return(t,e)=>{const a=A,c=O,S=z;return n(),C(S,{class:"pages-preview-container"},{default:u(()=>[i.pageMeta!==null?(n(),v("div",{key:0,class:"absolute right-4 top-4",onClick:N},[l(a,null,{default:u(()=>[...e[0]||(e[0]=[L("页面设置",-1)])]),_:1})])):V("",!0),d("div",X,[(n(!0),v(U,null,W(i.pageData,(o,r)=>(n(),v("div",{key:o.id,class:D(["relative",{"cursor-pointer":!(o!=null&&o.disabled)}]),onClick:m=>B(o,r)},[d("div",{class:D(["absolute w-full h-full z-[100] border-dashed",{select:r==i.modelValue,hide:_.value(o.content),"border-[#dcdfe6] border-2":!(o!=null&&o.disabled)}])},null,2),g(t.$slots,"default",{},()=>{var m;return[(n(),C(K((m=f(G)[o==null?void 0:o.name])==null?void 0:m.content),{content:o.content,styles:o.styles,key:o.id},null,8,["content","styles"]))]},!0),r==i.modelValue?(n(),v("div",Z,[d("div",null,[l(c,{effect:"dark",content:_.value(o.content)?"显示":"隐藏",placement:"right"},{default:u(()=>[l(a,{class:"py-[5px]",type:"primary",icon:_.value(o.content)?f(F):f(T),onClick:m=>E(o.content)},null,8,["icon","onClick"])]),_:2},1032,["content"])]),d("div",null,[l(c,{effect:"dark",content:"上移",placement:"right"},{default:u(()=>[l(a,{class:"py-[5px]",type:"primary",icon:f(j),disabled:P.value(r),onClick:h(m=>k(r,r-1),["stop"])},null,8,["icon","disabled","onClick"])]),_:2},1024)]),d("div",null,[l(c,{effect:"dark",content:"下移",placement:"right"},{default:u(()=>[l(a,{class:"py-[5px]",type:"primary",icon:f(q),disabled:$.value(r),onClick:h(m=>k(r,r+1),["stop"])},null,8,["icon","disabled","onClick"])]),_:2},1024)])])):V("",!0)],10,Y))),128))])]),_:3})}}}),Mo=R(x,[["__scopeId","data-v-a459312e"]]);export{Mo as default};
diff --git a/server/public/admin/assets/preview-pc-riMgcvDF.js b/server/public/admin/assets/preview-pc-CvSPsETB.js
similarity index 59%
rename from server/public/admin/assets/preview-pc-riMgcvDF.js
rename to server/public/admin/assets/preview-pc-CvSPsETB.js
index 3d675acb..10493a29 100644
--- a/server/public/admin/assets/preview-pc-riMgcvDF.js
+++ b/server/public/admin/assets/preview-pc-CvSPsETB.js
@@ -1 +1 @@
-import{i as $,r as B}from"./element-plus-Dmpg6ayE.js";import{M as N,v as S,h as R}from"./@element-plus/icons-vue-DsycZ37q.js";import{e as q}from"./index-Dyw4Bs8T.js";import{f as z,ak as r,I as i,J as l,H as y,F as D,ap as E,aq as I,G as A,at as F,a as s,aN as _,A as P}from"./@vue/runtime-core-C0pg79pw.js";import{o as h,p as v}from"./@vue/shared-mAAVTE9n.js";import{y as e,u as j}from"./@vue/reactivity-BIbyPIZJ.js";import{_ as G}from"./index-DWk_b8Nv.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./attr-CBvYrA2k.js";import"./index-DGzewPWT.js";import"./picker-Df7KkdWk.js";import"./index-BKLtguGT.js";import"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import"./article-CKzso6NG.js";import"./usePaging-B_C_SZ2Z.js";import"./picker-B5ZiOH7-.js";import"./index-i7zXlMKf.js";import"./index-CtFRZE9b.js";import"./index.vue_vue_type_script_setup_true_lang-DyQAa4vY.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./file-CSSg91XZ.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./content.vue_vue_type_script_setup_true_lang-BfxsednI.js";import"./decoration-img-C_6VQE85.js";import"./attr.vue_vue_type_script_setup_true_lang-6feMPF8O.js";import"./content-BBNLXtq1.js";import"./attr.vue_vue_type_script_setup_true_lang-CHvdnOTe.js";import"./content.vue_vue_type_script_setup_true_lang-DHTycTmO.js";import"./attr.vue_vue_type_script_setup_true_lang-ChVRECak.js";import"./add-nav.vue_vue_type_script_setup_true_lang-DbPUenSv.js";import"./content-DkpUAg9J.js";import"./attr.vue_vue_type_script_setup_true_lang-DaJjxgj9.js";import"./content.vue_vue_type_script_setup_true_lang-GEFFCTZx.js";import"./attr.vue_vue_type_script_setup_true_lang-CfPY9LZg.js";import"./content--_otKNcP.js";import"./decoration-Bm7sdIO5.js";import"./attr.vue_vue_type_script_setup_true_lang-DwghrNvi.js";import"./index.vue_vue_type_script_setup_true_lang-HG7uja_e.js";import"./content-CzET6ZOY.js";import"./content.vue_vue_type_script_setup_true_lang-C7hhBdwq.js";import"./attr.vue_vue_type_script_setup_true_lang-eatfXr14.js";import"./content-CVQDRtl6.js";import"./attr.vue_vue_type_script_setup_true_lang-CxDRo6h6.js";import"./content.vue_vue_type_script_setup_true_lang-CucsgKGv.js";import"./attr.vue_vue_type_script_setup_true_lang-11IwTsyi.js";import"./content-BkT0XQYO.js";const H={class:"pages-preview"},J={class:"relative flex justify-center h-full mt-5 mx-10"},L=["src"],M={class:"max-w-[1200px] w-full absolute"},T=["onClick"],W=z({__name:"preview-pc",props:{pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue"],setup(a,{emit:k}){const u=j(),b=k,c=P(()=>o=>(o==null?void 0:o.enabled)==0),C=o=>{var m;(m=u.value[o])==null||m.open()},V=o=>{o.enabled!==void 0&&(o.enabled=o.enabled?0:1)},x=(o,m)=>{o.disabled||b("update:modelValue",m)};return(o,m)=>{const f=$,d=B;return r(),i("div",H,[l("div",J,[o.$route.query.url?(r(),i("iframe",{key:0,ref:"previewIframeRef",class:"flex-1 h-full",width:"100%",height:"100%",scrolling:"no",src:o.$route.query.url},null,8,L)):y("",!0),l("div",M,[(r(!0),i(D,null,E(a.pageData,(t,n)=>(r(),i("div",{key:t.id,class:h(["absolute left-0 top-0",{"cursor-pointer":!(t!=null&&t.disabled)}]),onClick:p=>x(t,n)},[l("div",{class:h(["absolute w-full h-full z-[100] border-dashed",{select:n==a.modelValue,"border-[#dcdfe6] border-2":!(t!=null&&t.disabled),hide:e(c)(t.content)}]),style:v(t.styles)},null,6),I(o.$slots,"default",{},()=>{var p;return[(r(),A(F((p=e(q)[t==null?void 0:t.name])==null?void 0:p.content),{content:t.content,styles:t.styles,key:t.id,ref_for:!0,ref_key:"commonComponentRef",ref:u},null,8,["content","styles"]))]},!0),n==a.modelValue?(r(),i("div",{key:0,class:"widget-btns py-[5px]",style:v({top:t.styles.top,left:t.styles.width})},[l("div",null,[s(d,{effect:"dark",content:"编辑组件内容",placement:"right"},{default:_(()=>[s(f,{class:"py-[5px]",type:"primary",icon:e(N),onClick:p=>C(n)},null,8,["icon","onClick"])]),_:2},1024)]),l("div",null,[s(d,{effect:"dark",content:e(c)(t.content)?"显示":"隐藏",placement:"right"},{default:_(()=>[s(f,{class:"py-[5px]",type:"primary",icon:e(c)(t.content)?e(S):e(R),onClick:p=>V(t.content)},null,8,["icon","onClick"])]),_:2},1032,["content"])])],4)):y("",!0)],10,T))),128))])])])}}}),ho=G(W,[["__scopeId","data-v-ccf0ad8b"]]);export{ho as default};
+import{i as $,r as B}from"./element-plus-DCRlGjqn.js";import{M as N,v as S,h as R}from"./@element-plus/icons-vue-jYCthPJY.js";import{e as q}from"./index-C3uhURtD.js";import{f as z,ak as r,I as i,J as l,H as y,F as D,ap as E,aq as I,G as A,at as F,a as s,aN as _,A as P}from"./@vue/runtime-core-C0pg79pw.js";import{o as h,p as v}from"./@vue/shared-mAAVTE9n.js";import{y as e,u as j}from"./@vue/reactivity-BIbyPIZJ.js";import{_ as G}from"./index-DsBUBCgs.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./attr-BhVdfhGs.js";import"./index-BmvifxBX.js";import"./picker-BMroZii1.js";import"./index-dlM42V9p.js";import"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import"./article-0uhoq4JM.js";import"./usePaging-B_C_SZ2Z.js";import"./picker-h7OmyGiV.js";import"./index-DrXr9qPh.js";import"./index-CF2_JamS.js";import"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./file-DRO9_cYT.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./content.vue_vue_type_script_setup_true_lang-BSDktndu.js";import"./decoration-img-C01Pis81.js";import"./attr.vue_vue_type_script_setup_true_lang-8nl6mPaU.js";import"./content-1tt_sX8-.js";import"./attr.vue_vue_type_script_setup_true_lang-CKdpBsQw.js";import"./content.vue_vue_type_script_setup_true_lang-DrSRY1kT.js";import"./attr.vue_vue_type_script_setup_true_lang-CgPvCAfT.js";import"./add-nav.vue_vue_type_script_setup_true_lang-DkUMUIoP.js";import"./content-BIImGJq8.js";import"./attr.vue_vue_type_script_setup_true_lang-CcUccVfL.js";import"./content.vue_vue_type_script_setup_true_lang-C1DG1CXu.js";import"./attr.vue_vue_type_script_setup_true_lang-CfPY9LZg.js";import"./content-RbPN8Ina.js";import"./decoration-B1aWgelJ.js";import"./attr.vue_vue_type_script_setup_true_lang-BH3CMFHL.js";import"./index.vue_vue_type_script_setup_true_lang-Dqs8IDbj.js";import"./content-D3iKOBjB.js";import"./content.vue_vue_type_script_setup_true_lang-Bz6BJBy-.js";import"./attr.vue_vue_type_script_setup_true_lang-eatfXr14.js";import"./content-CqWGwsK_.js";import"./attr.vue_vue_type_script_setup_true_lang-Cc55Bg2h.js";import"./content.vue_vue_type_script_setup_true_lang-DPgrpOzA.js";import"./attr.vue_vue_type_script_setup_true_lang-11IwTsyi.js";import"./content-DIAiU9iD.js";const H={class:"pages-preview"},J={class:"relative flex justify-center h-full mt-5 mx-10"},L=["src"],M={class:"max-w-[1200px] w-full absolute"},T=["onClick"],W=z({__name:"preview-pc",props:{pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue"],setup(a,{emit:k}){const u=j(),b=k,c=P(()=>o=>(o==null?void 0:o.enabled)==0),C=o=>{var m;(m=u.value[o])==null||m.open()},V=o=>{o.enabled!==void 0&&(o.enabled=o.enabled?0:1)},x=(o,m)=>{o.disabled||b("update:modelValue",m)};return(o,m)=>{const f=$,d=B;return r(),i("div",H,[l("div",J,[o.$route.query.url?(r(),i("iframe",{key:0,ref:"previewIframeRef",class:"flex-1 h-full",width:"100%",height:"100%",scrolling:"no",src:o.$route.query.url},null,8,L)):y("",!0),l("div",M,[(r(!0),i(D,null,E(a.pageData,(t,n)=>(r(),i("div",{key:t.id,class:h(["absolute left-0 top-0",{"cursor-pointer":!(t!=null&&t.disabled)}]),onClick:p=>x(t,n)},[l("div",{class:h(["absolute w-full h-full z-[100] border-dashed",{select:n==a.modelValue,"border-[#dcdfe6] border-2":!(t!=null&&t.disabled),hide:e(c)(t.content)}]),style:v(t.styles)},null,6),I(o.$slots,"default",{},()=>{var p;return[(r(),A(F((p=e(q)[t==null?void 0:t.name])==null?void 0:p.content),{content:t.content,styles:t.styles,key:t.id,ref_for:!0,ref_key:"commonComponentRef",ref:u},null,8,["content","styles"]))]},!0),n==a.modelValue?(r(),i("div",{key:0,class:"widget-btns py-[5px]",style:v({top:t.styles.top,left:t.styles.width})},[l("div",null,[s(d,{effect:"dark",content:"编辑组件内容",placement:"right"},{default:_(()=>[s(f,{class:"py-[5px]",type:"primary",icon:e(N),onClick:p=>C(n)},null,8,["icon","onClick"])]),_:2},1024)]),l("div",null,[s(d,{effect:"dark",content:e(c)(t.content)?"显示":"隐藏",placement:"right"},{default:_(()=>[s(f,{class:"py-[5px]",type:"primary",icon:e(c)(t.content)?e(S):e(R),onClick:p=>V(t.content)},null,8,["icon","onClick"])]),_:2},1032,["content"])])],4)):y("",!0)],10,T))),128))])])])}}}),ho=G(W,[["__scopeId","data-v-ccf0ad8b"]]);export{ho as default};
diff --git a/server/public/admin/assets/progress-mXZLUVHP.js b/server/public/admin/assets/progress-CMlzjJnd.js
similarity index 67%
rename from server/public/admin/assets/progress-mXZLUVHP.js
rename to server/public/admin/assets/progress-CMlzjJnd.js
index 87b6c8a5..004a510f 100644
--- a/server/public/admin/assets/progress-mXZLUVHP.js
+++ b/server/public/admin/assets/progress-CMlzjJnd.js
@@ -1 +1 @@
-import{d as kt,X as Et,Q as St,P as Vt,C as xt,i as It,F as Mt,G as $t,L as Ct,N as Tt,U as At,a2 as Dt,M as Pt,T as Rt}from"./element-plus-Dmpg6ayE.js";import{w as Ut}from"./@vue/runtime-dom-iFk_KP8y.js";import{a as Yt}from"./vue-router-CYz6RFzi.js";import{d as K}from"./dayjs-DG77mNTn.js";import{g as Bt,P as Lt,L as et,u as zt,Q as Ft}from"./@element-plus/icons-vue-DsycZ37q.js";import{d as Gt,a as nt}from"./doctor-B1l88RG7.js";import{u as Ot,_ as Kt}from"./index-DWk_b8Nv.js";import{f as at,b as Qt,d as jt,ak as i,I as p,J as a,a as o,aN as u,O as N,F as L,ap as st,G as $,H as k,aP as qt,A as C}from"./@vue/runtime-core-C0pg79pw.js";import{o as T,y as A,r as Ht}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as c,o as Q}from"./@vue/shared-mAAVTE9n.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./lodash-D3kF6u-c.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const Jt={class:"dp-page"},Wt={class:"dp-glass dp-toolbar"},Xt={class:"dp-toolbar-row"},Zt={class:"dp-field-label"},wt={class:"dp-field-label"},te={class:"dp-field-label"},ee={class:"dp-toolbar-actions"},ne={key:0,class:"dp-glass dp-doc-section"},se={class:"dp-section-head"},ae={class:"dp-glass dp-table-wrap"},oe={class:"dp-table-head"},le={class:"dp-table-head-left"},ie={key:0,class:"dp-table-range"},re={class:"dp-table-badges"},de={key:0,class:"dp-chip dp-chip--account"},ue={key:1,class:"dp-chip dp-chip--doc"},pe={key:2,class:"dp-chip dp-chip--count"},ce={key:3,class:"dp-chip dp-chip--muted"},me={class:"dp-my-patients-eta"},_e={class:"dp-cell-user-body"},fe={class:"dp-avatar"},ve={class:"dp-user-meta"},ge={class:"dp-user-name"},he={class:"dp-user-phone"},be={class:"dp-time"},ye={class:"dp-steps"},Ne={class:"dp-step-dot"},ke={class:"dp-step-text"},Ee={class:"dp-step-name"},Se={key:0,class:"dp-step-hint"},Ve={key:1,class:"dp-muted"},xe={key:1,class:"dp-muted"},Ie=at({name:"doctorProgress"}),Me=at({...Ie,setup($e){const ot=Yt(),j=Ot(),D=T(!1),E=T([]),f=T(void 0),S=T([]),P=()=>K().format("YYYY-MM-DD"),b=T([P(),P()]),v=Ht({status:"",patient_name:""}),q=C(()=>{const e=f.value;if(e===void 0)return"";const t=E.value.find(n=>Number(n.id)===e);return t?String(t.name||t.account||""):""}),lt=C(()=>{var t;const e=(t=j.userInfo)==null?void 0:t.id;return e!=null&&e!==""?Number(e):NaN}),H=C(()=>{const e=j.userInfo||{};return String(e.name||e.account||"").trim()});function z(e){const t=lt.value;if(Number.isNaN(t))return!1;const n=e==null?void 0:e.assistant_id;return n==null||n===""?!1:Number(n)===t}const it=15,J=T(0);let R=null;function W(e){const t=String(e.appointment_date||"");let n=e.appointment_time||"";return typeof n=="string"&&n.length>5&&(n=n.slice(0,5)),`${t} ${n}`.trim()}function rt(e){const t=e.appointment_date;if(!t)return null;let n=e.appointment_time||"00:00";typeof n=="string"&&n.length>5&&(n=n.slice(0,5));const l=K(`${t} ${n}`);return l.isValid()?l:null}function X(e){const t=Math.max(0,Math.round(e));if(t===0)return"不到 1 分钟";if(t<60)return`${t} 分钟`;const n=Math.floor(t/60),l=t%60;return l===0?`${n} 小时`:`${n} 小时${l} 分钟`}function dt(e){if(J.value,!z(e))return"";const t=Number(e.status);if(t===3)return"面诊已完成(医生已点完成)";if(t===4)return"已过号,无法按序预估";if(t!==1)return"";const n=K(),l=rt(e),r=l?l.isAfter(n):!1,m=r&&l?Math.max(0,l.diff(n,"minute")):0,y=S.value.filter(d=>d.appointment_date===e.appointment_date&&Number(d.status)===1).slice().sort((d,I)=>{const B=W(d).localeCompare(W(I));return B!==0?B:Number(d.id)-Number(I.id)}).findIndex(d=>Number(d.id)===Number(e.id)),g=y>=0?y:0,x=g*it,_=[];return r&&_.push(`距预约时段还有约 ${X(m)}`),g===0?_.push(r?"到号后可优先安排面诊":"已到号,可尽快面诊"):_.push(`前面约 ${g} 人,按序粗估约 ${X(x)}`),_.join(";")}function Z(){const e=v.status;return e===""||e===void 0||e===null}const U=C(()=>Z()?S.value.filter(e=>Number(e.status)===3).length:0),F=C(()=>Z()?S.value.filter(e=>Number(e.status)!==3):S.value),ut=C(()=>U.value>0&&F.value.length===0?`本时段有 ${U.value} 条「已完成」已隐藏,可在状态中选择「已完成」查看`:"该时段内暂无挂号");function pt(e){const t=String(e||"?").trim();return t?t[0]:"?"}function ct(e){const t=e.appointment_date||"";let n=e.appointment_time||"";return typeof n=="string"&&n.length>5&&(n=n.slice(0,5)),t?`${t} ${n}`.trim():"—"}function mt(e){return e===3?"success":e===4?"warning":e===2?"info":"primary"}function w(e){const t=Number(e.status)===2,n=!t&&[1,3,4].includes(Number(e.status)),l=!!e.diagnosis_confirmed,r=Number(e.status)===3,m=!!e.has_prescription;return[{label:"挂号",done:n,current:n&&!l&&Number(e.status)===1,hint:t?"已取消":Number(e.status)===4?"已过号":""},{label:"确认诊单",done:l,current:n&&!l,hint:""},{label:"就诊中",done:r,current:n&&l&&!r&&Number(e.status)===1,hint:Number(e.status)===1&&l?"待完诊":""},{label:"开方",done:m,current:r&&!m,hint:""}]}function _t(e){const n=w(e).filter(l=>l.done).length;return Math.round(n/4*100)}const G=2e3,ft=15e3;let Y=null;async function vt(){const e=await Gt({role_id:1,page_type:0,page_no:1,progress_board:1});if(E.value=(e==null?void 0:e.lists)||[],!E.value.length){f.value=void 0,S.value=[];return}const t=E.value.some(n=>Number(n.id)===f.value);(f.value===void 0||!t)&&(f.value=Number(E.value[0].id))}async function V(e){var n,l;if(f.value===void 0){S.value=[];return}const t=(e==null?void 0:e.silent)===!0;t||(D.value=!0);try{const r={doctor_id:f.value,page_type:1,page_no:1,page_size:G,prescription_today_only:1,exclude_cancelled:1,progress_board:1};((n=b.value)==null?void 0:n.length)===2&&(r.start_date=b.value[0],r.end_date=b.value[1]),v.status!==""&&(r.status=v.status),(l=v.patient_name)!=null&&l.trim()&&(r.patient_name=v.patient_name.trim());const m=await nt(r);let h=(m==null?void 0:m.lists)||[];const y=Number((m==null?void 0:m.count)??h.length);if(y>h.length&&h.length>=G){const g=[],x=Math.min(Math.ceil(y/G),20);for(let _=2;_<=x;_++){const d=await nt({...r,page_no:_}),I=(d==null?void 0:d.lists)||[];if(!I.length)break;g.push(...I)}h=[...h,...g]}S.value=[...h].sort((g,x)=>{const _=`${g.appointment_date||""} ${g.appointment_time||""}`,d=`${x.appointment_date||""} ${x.appointment_time||""}`;return _.localeCompare(d)})}catch(r){console.error(r),t||(S.value=[])}finally{t||(D.value=!1)}}function gt(){typeof document<"u"&&document.hidden||V({silent:!0}).catch(()=>{})}function ht(){v.status="",v.patient_name="",b.value=[P(),P()],V()}function bt(e){ot.push({path:"/tcm/diagnosis",query:{id:String(e)}})}return Qt(async()=>{await vt(),await V(),Y=setInterval(gt,ft),R=setInterval(()=>{J.value+=1},6e4)}),jt(()=>{Y!=null&&(clearInterval(Y),Y=null),R!=null&&(clearInterval(R),R=null)}),(e,t)=>{var tt;const n=kt,l=Et,r=St,m=Vt,h=xt,y=It,g=Mt,x=$t,_=Rt,d=Tt,I=At,B=Dt,yt=Pt,Nt=Ct;return i(),p("div",Jt,[a("section",Wt,[a("div",Xt,[a("span",Zt,[o(n,null,{default:u(()=>[o(A(Bt))]),_:1}),t[9]||(t[9]=N(" 预约日期 ",-1))]),o(l,{modelValue:b.value,"onUpdate:modelValue":t[0]||(t[0]=s=>b.value=s),type:"daterange","range-separator":"—","start-placeholder":"开始","end-placeholder":"结束","value-format":"YYYY-MM-DD","unlink-panels":"",class:"dp-field-date",onChange:t[1]||(t[1]=()=>V())},null,8,["modelValue"]),a("span",wt,[o(n,null,{default:u(()=>[o(A(Lt))]),_:1}),t[10]||(t[10]=N(" 状态 ",-1))]),o(m,{modelValue:v.status,"onUpdate:modelValue":t[2]||(t[2]=s=>v.status=s),placeholder:"全部",clearable:"",class:"dp-field-select",onChange:t[3]||(t[3]=()=>V())},{default:u(()=>[o(r,{label:"全部状态",value:""}),o(r,{label:"已预约(待就诊)",value:"1"}),o(r,{label:"已完成",value:"3"}),o(r,{label:"已过号",value:"4"})]),_:1},8,["modelValue"]),a("span",te,[o(n,null,{default:u(()=>[o(A(et))]),_:1}),t[11]||(t[11]=N(" 患者 ",-1))]),o(h,{modelValue:v.patient_name,"onUpdate:modelValue":t[4]||(t[4]=s=>v.patient_name=s),placeholder:"姓名",clearable:"",class:"dp-field-search",onKeyup:t[5]||(t[5]=Ut(()=>V(),["enter"]))},null,8,["modelValue"]),a("div",ee,[o(y,{type:"primary",loading:D.value,icon:A(et),onClick:t[6]||(t[6]=()=>V())},{default:u(()=>[...t[12]||(t[12]=[N(" 查询 ",-1)])]),_:1},8,["loading","icon"]),o(y,{icon:A(zt),onClick:ht},{default:u(()=>[...t[13]||(t[13]=[N("重置",-1)])]),_:1},8,["icon"])])])]),E.value.length?(i(),p("section",ne,[a("div",se,[o(n,{class:"dp-section-icon"},{default:u(()=>[o(A(Ft))]),_:1}),t[14]||(t[14]=a("span",{class:"dp-section-title"},"选择医生",-1)),t[15]||(t[15]=a("span",{class:"dp-section-hint"},"切换后自动加载该医生挂号",-1))]),o(x,{modelValue:f.value,"onUpdate:modelValue":t[7]||(t[7]=s=>f.value=s),class:"dp-doc-pills",onChange:t[8]||(t[8]=()=>V())},{default:u(()=>[(i(!0),p(L,null,st(E.value,s=>(i(),$(g,{key:s.id,label:Number(s.id),class:"dp-doc-pill"},{default:u(()=>[N(c(s.name||s.account||"—"),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])):k("",!0),qt((i(),p("section",ae,[a("div",oe,[a("div",le,[t[16]||(t[16]=a("span",{class:"dp-table-title"},"患者列表",-1)),((tt=b.value)==null?void 0:tt.length)===2?(i(),p("span",ie,c(b.value[0])+" ~ "+c(b.value[1]),1)):k("",!0)]),a("div",re,[H.value?(i(),p("span",de,"当前账号 "+c(H.value),1)):k("",!0),q.value?(i(),p("span",ue,c(q.value),1)):k("",!0),f.value!==void 0&&!D.value?(i(),p("span",pe,c(F.value.length)+" 人",1)):k("",!0),U.value>0?(i(),p("span",ce,"已隐藏已完成 "+c(U.value),1)):k("",!0)])]),E.value.length?f.value===void 0?(i(),$(_,{key:1,description:"请选择医生"})):(i(),$(yt,{key:2,data:F.value,class:"dp-table",size:"default","empty-text":ut.value},{default:u(()=>[o(d,{label:"患者","min-width":"200",fixed:"left"},{default:u(({row:s})=>[a("div",{class:Q(["dp-cell-user",{"is-my-patients":z(s)}])},[z(s)?(i(),p(L,{key:0},[t[17]||(t[17]=a("div",{class:"dp-my-patients-caption"},"我的患者",-1)),a("div",me,c(dt(s)),1)],64)):k("",!0),a("div",_e,[a("div",fe,c(pt(s.patient_name)),1),a("div",ve,[a("span",ge,c(s.patient_name||"—"),1),a("span",he,c(s.patient_phone||"—"),1)])])],2)]),_:1}),o(d,{label:"预约时间",width:"170"},{default:u(({row:s})=>[a("span",be,c(ct(s)),1)]),_:1}),o(d,{label:"挂号",width:"104",align:"center"},{default:u(({row:s})=>[o(I,{type:mt(s.status),effect:"light",round:"",size:"small"},{default:u(()=>[N(c(s.status_desc),1)]),_:2},1032,["type"])]),_:1}),o(d,{label:"面诊进度","min-width":"360"},{default:u(({row:s})=>[a("div",ye,[(i(!0),p(L,null,st(w(s),(M,O)=>(i(),p(L,{key:O},[a("div",{class:Q(["dp-step",{"is-done":M.done,"is-current":M.current&&!M.done}])},[a("div",Ne,c(O+1),1),a("div",ke,[a("span",Ee,c(M.label),1),M.hint?(i(),p("span",Se,c(M.hint),1)):k("",!0)])],2),O<3?(i(),p("div",{key:0,class:Q(["dp-step-line",{"is-done":M.done}])},null,2)):k("",!0)],64))),128))]),o(B,{percentage:_t(s),"stroke-width":8,class:"dp-progress"},null,8,["percentage"])]),_:1}),o(d,{label:"处方",width:"92",align:"center"},{default:u(({row:s})=>[s.has_prescription?(i(),$(I,{key:0,type:"success",effect:"dark",round:"",size:"small"},{default:u(()=>[...t[18]||(t[18]=[N("已开",-1)])]),_:1})):(i(),p("span",Ve,"未开"))]),_:1}),o(d,{label:"操作",width:"96",fixed:"right",align:"center"},{default:u(({row:s})=>[s.diagnosis_id?(i(),$(y,{key:0,type:"primary",size:"small",round:"",plain:"",onClick:M=>bt(s.diagnosis_id)},{default:u(()=>[...t[19]||(t[19]=[N(" 诊单 ",-1)])]),_:1},8,["onClick"])):(i(),p("span",xe,"—"))]),_:1})]),_:1},8,["data","empty-text"])):(i(),$(_,{key:0,description:"暂无医生数据"}))])),[[Nt,D.value]])])}}}),fn=Kt(Me,[["__scopeId","data-v-6bc1551c"]]);export{fn as default};
+import{d as Nt,X as Et,Q as St,P as xt,C as Vt,i as It,F as Mt,G as $t,L as Ct,N as Tt,U as At,a3 as Dt,M as Pt,T as Rt}from"./element-plus-DCRlGjqn.js";import{w as Ut}from"./@vue/runtime-dom-iFk_KP8y.js";import{a as Yt}from"./vue-router-CYz6RFzi.js";import{d as K}from"./dayjs-DG77mNTn.js";import{k as Bt,P as zt,K as et,x as Ft,Q as Lt}from"./@element-plus/icons-vue-jYCthPJY.js";import{d as Gt,c as nt}from"./doctor-E6C8uXfZ.js";import{u as Ot,_ as Kt}from"./index-DsBUBCgs.js";import{f as at,b as Qt,d as jt,ak as i,I as p,J as a,a as o,aN as u,O as k,F as z,ap as st,G as $,H as N,aP as qt,A as C}from"./@vue/runtime-core-C0pg79pw.js";import{o as T,y as A,r as Ht}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as c,o as Q}from"./@vue/shared-mAAVTE9n.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./lodash-D3kF6u-c.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const Jt={class:"dp-page"},Wt={class:"dp-glass dp-toolbar"},Xt={class:"dp-toolbar-row"},Zt={class:"dp-field-label"},wt={class:"dp-field-label"},te={class:"dp-field-label"},ee={class:"dp-toolbar-actions"},ne={key:0,class:"dp-glass dp-doc-section"},se={class:"dp-section-head"},ae={class:"dp-glass dp-table-wrap"},oe={class:"dp-table-head"},le={class:"dp-table-head-left"},ie={key:0,class:"dp-table-range"},re={class:"dp-table-badges"},de={key:0,class:"dp-chip dp-chip--account"},ue={key:1,class:"dp-chip dp-chip--doc"},pe={key:2,class:"dp-chip dp-chip--count"},ce={key:3,class:"dp-chip dp-chip--muted"},me={class:"dp-my-patients-eta"},_e={class:"dp-cell-user-body"},fe={class:"dp-avatar"},ve={class:"dp-user-meta"},ge={class:"dp-user-name"},he={class:"dp-user-phone"},be={class:"dp-time"},ye={class:"dp-steps"},ke={class:"dp-step-dot"},Ne={class:"dp-step-text"},Ee={class:"dp-step-name"},Se={key:0,class:"dp-step-hint"},xe={key:1,class:"dp-muted"},Ve={key:1,class:"dp-muted"},Ie=at({name:"doctorProgress"}),Me=at({...Ie,setup($e){const ot=Yt(),j=Ot(),D=T(!1),E=T([]),f=T(void 0),S=T([]),P=()=>K().format("YYYY-MM-DD"),b=T([P(),P()]),v=Ht({status:"",patient_name:""}),q=C(()=>{const e=f.value;if(e===void 0)return"";const t=E.value.find(n=>Number(n.id)===e);return t?String(t.name||t.account||""):""}),lt=C(()=>{var t;const e=(t=j.userInfo)==null?void 0:t.id;return e!=null&&e!==""?Number(e):NaN}),H=C(()=>{const e=j.userInfo||{};return String(e.name||e.account||"").trim()});function F(e){const t=lt.value;if(Number.isNaN(t))return!1;const n=e==null?void 0:e.assistant_id;return n==null||n===""?!1:Number(n)===t}const it=15,J=T(0);let R=null;function W(e){const t=String(e.appointment_date||"");let n=e.appointment_time||"";return typeof n=="string"&&n.length>5&&(n=n.slice(0,5)),`${t} ${n}`.trim()}function rt(e){const t=e.appointment_date;if(!t)return null;let n=e.appointment_time||"00:00";typeof n=="string"&&n.length>5&&(n=n.slice(0,5));const l=K(`${t} ${n}`);return l.isValid()?l:null}function X(e){const t=Math.max(0,Math.round(e));if(t===0)return"不到 1 分钟";if(t<60)return`${t} 分钟`;const n=Math.floor(t/60),l=t%60;return l===0?`${n} 小时`:`${n} 小时${l} 分钟`}function dt(e){if(J.value,!F(e))return"";const t=Number(e.status);if(t===3)return"面诊已完成(医生已点完成)";if(t===4)return"已过号,无法按序预估";if(t!==1)return"";const n=K(),l=rt(e),r=l?l.isAfter(n):!1,m=r&&l?Math.max(0,l.diff(n,"minute")):0,y=S.value.filter(d=>d.appointment_date===e.appointment_date&&Number(d.status)===1).slice().sort((d,I)=>{const B=W(d).localeCompare(W(I));return B!==0?B:Number(d.id)-Number(I.id)}).findIndex(d=>Number(d.id)===Number(e.id)),g=y>=0?y:0,V=g*it,_=[];return r&&_.push(`距预约时段还有约 ${X(m)}`),g===0?_.push(r?"到号后可优先安排面诊":"已到号,可尽快面诊"):_.push(`前面约 ${g} 人,按序粗估约 ${X(V)}`),_.join(";")}function Z(){const e=v.status;return e===""||e===void 0||e===null}const U=C(()=>Z()?S.value.filter(e=>Number(e.status)===3).length:0),L=C(()=>Z()?S.value.filter(e=>Number(e.status)!==3):S.value),ut=C(()=>U.value>0&&L.value.length===0?`本时段有 ${U.value} 条「已完成」已隐藏,可在状态中选择「已完成」查看`:"该时段内暂无挂号");function pt(e){const t=String(e||"?").trim();return t?t[0]:"?"}function ct(e){const t=e.appointment_date||"";let n=e.appointment_time||"";return typeof n=="string"&&n.length>5&&(n=n.slice(0,5)),t?`${t} ${n}`.trim():"—"}function mt(e){return e===3?"success":e===4?"warning":e===2?"info":"primary"}function w(e){const t=Number(e.status)===2,n=!t&&[1,3,4].includes(Number(e.status)),l=!!e.diagnosis_confirmed,r=Number(e.status)===3,m=!!e.has_prescription;return[{label:"挂号",done:n,current:n&&!l&&Number(e.status)===1,hint:t?"已取消":Number(e.status)===4?"已过号":""},{label:"确认诊单",done:l,current:n&&!l,hint:""},{label:"就诊中",done:r,current:n&&l&&!r&&Number(e.status)===1,hint:Number(e.status)===1&&l?"待完诊":""},{label:"开方",done:m,current:r&&!m,hint:""}]}function _t(e){const n=w(e).filter(l=>l.done).length;return Math.round(n/4*100)}const G=2e3,ft=15e3;let Y=null;async function vt(){const e=await Gt({role_id:1,page_type:0,page_no:1,progress_board:1});if(E.value=(e==null?void 0:e.lists)||[],!E.value.length){f.value=void 0,S.value=[];return}const t=E.value.some(n=>Number(n.id)===f.value);(f.value===void 0||!t)&&(f.value=Number(E.value[0].id))}async function x(e){var n,l;if(f.value===void 0){S.value=[];return}const t=(e==null?void 0:e.silent)===!0;t||(D.value=!0);try{const r={doctor_id:f.value,page_type:1,page_no:1,page_size:G,prescription_today_only:1,exclude_cancelled:1,progress_board:1};((n=b.value)==null?void 0:n.length)===2&&(r.start_date=b.value[0],r.end_date=b.value[1]),v.status!==""&&(r.status=v.status),(l=v.patient_name)!=null&&l.trim()&&(r.patient_name=v.patient_name.trim());const m=await nt(r);let h=(m==null?void 0:m.lists)||[];const y=Number((m==null?void 0:m.count)??h.length);if(y>h.length&&h.length>=G){const g=[],V=Math.min(Math.ceil(y/G),20);for(let _=2;_<=V;_++){const d=await nt({...r,page_no:_}),I=(d==null?void 0:d.lists)||[];if(!I.length)break;g.push(...I)}h=[...h,...g]}S.value=[...h].sort((g,V)=>{const _=`${g.appointment_date||""} ${g.appointment_time||""}`,d=`${V.appointment_date||""} ${V.appointment_time||""}`;return _.localeCompare(d)})}catch(r){console.error(r),t||(S.value=[])}finally{t||(D.value=!1)}}function gt(){typeof document<"u"&&document.hidden||x({silent:!0}).catch(()=>{})}function ht(){v.status="",v.patient_name="",b.value=[P(),P()],x()}function bt(e){ot.push({path:"/tcm/diagnosis",query:{id:String(e)}})}return Qt(async()=>{await vt(),await x(),Y=setInterval(gt,ft),R=setInterval(()=>{J.value+=1},6e4)}),jt(()=>{Y!=null&&(clearInterval(Y),Y=null),R!=null&&(clearInterval(R),R=null)}),(e,t)=>{var tt;const n=Nt,l=Et,r=St,m=xt,h=Vt,y=It,g=Mt,V=$t,_=Rt,d=Tt,I=At,B=Dt,yt=Pt,kt=Ct;return i(),p("div",Jt,[a("section",Wt,[a("div",Xt,[a("span",Zt,[o(n,null,{default:u(()=>[o(A(Bt))]),_:1}),t[9]||(t[9]=k(" 预约日期 ",-1))]),o(l,{modelValue:b.value,"onUpdate:modelValue":t[0]||(t[0]=s=>b.value=s),type:"daterange","range-separator":"—","start-placeholder":"开始","end-placeholder":"结束","value-format":"YYYY-MM-DD","unlink-panels":"",class:"dp-field-date",onChange:t[1]||(t[1]=()=>x())},null,8,["modelValue"]),a("span",wt,[o(n,null,{default:u(()=>[o(A(zt))]),_:1}),t[10]||(t[10]=k(" 状态 ",-1))]),o(m,{modelValue:v.status,"onUpdate:modelValue":t[2]||(t[2]=s=>v.status=s),placeholder:"全部",clearable:"",class:"dp-field-select",onChange:t[3]||(t[3]=()=>x())},{default:u(()=>[o(r,{label:"全部状态",value:""}),o(r,{label:"已预约(待就诊)",value:"1"}),o(r,{label:"已完成",value:"3"}),o(r,{label:"已过号",value:"4"})]),_:1},8,["modelValue"]),a("span",te,[o(n,null,{default:u(()=>[o(A(et))]),_:1}),t[11]||(t[11]=k(" 患者 ",-1))]),o(h,{modelValue:v.patient_name,"onUpdate:modelValue":t[4]||(t[4]=s=>v.patient_name=s),placeholder:"姓名",clearable:"",class:"dp-field-search",onKeyup:t[5]||(t[5]=Ut(()=>x(),["enter"]))},null,8,["modelValue"]),a("div",ee,[o(y,{type:"primary",loading:D.value,icon:A(et),onClick:t[6]||(t[6]=()=>x())},{default:u(()=>[...t[12]||(t[12]=[k(" 查询 ",-1)])]),_:1},8,["loading","icon"]),o(y,{icon:A(Ft),onClick:ht},{default:u(()=>[...t[13]||(t[13]=[k("重置",-1)])]),_:1},8,["icon"])])])]),E.value.length?(i(),p("section",ne,[a("div",se,[o(n,{class:"dp-section-icon"},{default:u(()=>[o(A(Lt))]),_:1}),t[14]||(t[14]=a("span",{class:"dp-section-title"},"选择医生",-1)),t[15]||(t[15]=a("span",{class:"dp-section-hint"},"切换后自动加载该医生挂号",-1))]),o(V,{modelValue:f.value,"onUpdate:modelValue":t[7]||(t[7]=s=>f.value=s),class:"dp-doc-pills",onChange:t[8]||(t[8]=()=>x())},{default:u(()=>[(i(!0),p(z,null,st(E.value,s=>(i(),$(g,{key:s.id,label:Number(s.id),class:"dp-doc-pill"},{default:u(()=>[k(c(s.name||s.account||"—"),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])):N("",!0),qt((i(),p("section",ae,[a("div",oe,[a("div",le,[t[16]||(t[16]=a("span",{class:"dp-table-title"},"患者列表",-1)),((tt=b.value)==null?void 0:tt.length)===2?(i(),p("span",ie,c(b.value[0])+" ~ "+c(b.value[1]),1)):N("",!0)]),a("div",re,[H.value?(i(),p("span",de,"当前账号 "+c(H.value),1)):N("",!0),q.value?(i(),p("span",ue,c(q.value),1)):N("",!0),f.value!==void 0&&!D.value?(i(),p("span",pe,c(L.value.length)+" 人",1)):N("",!0),U.value>0?(i(),p("span",ce,"已隐藏已完成 "+c(U.value),1)):N("",!0)])]),E.value.length?f.value===void 0?(i(),$(_,{key:1,description:"请选择医生"})):(i(),$(yt,{key:2,data:L.value,class:"dp-table",size:"default","empty-text":ut.value},{default:u(()=>[o(d,{label:"患者","min-width":"200",fixed:"left"},{default:u(({row:s})=>[a("div",{class:Q(["dp-cell-user",{"is-my-patients":F(s)}])},[F(s)?(i(),p(z,{key:0},[t[17]||(t[17]=a("div",{class:"dp-my-patients-caption"},"我的患者",-1)),a("div",me,c(dt(s)),1)],64)):N("",!0),a("div",_e,[a("div",fe,c(pt(s.patient_name)),1),a("div",ve,[a("span",ge,c(s.patient_name||"—"),1),a("span",he,c(s.patient_phone||"—"),1)])])],2)]),_:1}),o(d,{label:"预约时间",width:"170"},{default:u(({row:s})=>[a("span",be,c(ct(s)),1)]),_:1}),o(d,{label:"挂号",width:"104",align:"center"},{default:u(({row:s})=>[o(I,{type:mt(s.status),effect:"light",round:"",size:"small"},{default:u(()=>[k(c(s.status_desc),1)]),_:2},1032,["type"])]),_:1}),o(d,{label:"面诊进度","min-width":"360"},{default:u(({row:s})=>[a("div",ye,[(i(!0),p(z,null,st(w(s),(M,O)=>(i(),p(z,{key:O},[a("div",{class:Q(["dp-step",{"is-done":M.done,"is-current":M.current&&!M.done}])},[a("div",ke,c(O+1),1),a("div",Ne,[a("span",Ee,c(M.label),1),M.hint?(i(),p("span",Se,c(M.hint),1)):N("",!0)])],2),O<3?(i(),p("div",{key:0,class:Q(["dp-step-line",{"is-done":M.done}])},null,2)):N("",!0)],64))),128))]),o(B,{percentage:_t(s),"stroke-width":8,class:"dp-progress"},null,8,["percentage"])]),_:1}),o(d,{label:"处方",width:"92",align:"center"},{default:u(({row:s})=>[s.has_prescription?(i(),$(I,{key:0,type:"success",effect:"dark",round:"",size:"small"},{default:u(()=>[...t[18]||(t[18]=[k("已开",-1)])]),_:1})):(i(),p("span",xe,"未开"))]),_:1}),o(d,{label:"操作",width:"96",fixed:"right",align:"center"},{default:u(({row:s})=>[s.diagnosis_id?(i(),$(y,{key:0,type:"primary",size:"small",round:"",plain:"",onClick:M=>bt(s.diagnosis_id)},{default:u(()=>[...t[19]||(t[19]=[k(" 诊单 ",-1)])]),_:1},8,["onClick"])):(i(),p("span",Ve,"—"))]),_:1})]),_:1},8,["data","empty-text"])):(i(),$(_,{key:0,description:"暂无医生数据"}))])),[[kt,D.value]])])}}}),fn=Kt(Me,[["__scopeId","data-v-6bc1551c"]]);export{fn as default};
diff --git a/server/public/admin/assets/protocol-BU2sV6Rz.js b/server/public/admin/assets/protocol-RgYFtpFZ.js
similarity index 82%
rename from server/public/admin/assets/protocol-BU2sV6Rz.js
rename to server/public/admin/assets/protocol-RgYFtpFZ.js
index 05e03a6f..4f77a1ca 100644
--- a/server/public/admin/assets/protocol-BU2sV6Rz.js
+++ b/server/public/admin/assets/protocol-RgYFtpFZ.js
@@ -1 +1 @@
-import{_ as h}from"./index-_E7jYQiT.js";import{D as w,B as y,C as g,J as E,i as B}from"./element-plus-Dmpg6ayE.js";import{_ as U}from"./index.vue_vue_type_style_index_0_lang-D1-Jsym2.js";import{c as k,d as C}from"./website-BQObevlt.js";import{f,as as P,ak as c,I as D,J as i,a as o,aN as m,aP as F,G as N,O as I,F as G}from"./@vue/runtime-core-C0pg79pw.js";import{y as l,o as J}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./index-DWk_b8Nv.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./@wangeditor/editor-Cyf37SuL.js";import"./@wangeditor/editor-for-vue-qHmT1xEb.js";import"./picker-B5ZiOH7-.js";import"./index-BKLtguGT.js";import"./index-i7zXlMKf.js";import"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import"./index-DGzewPWT.js";import"./index-CtFRZE9b.js";import"./index.vue_vue_type_script_setup_true_lang-DyQAa4vY.js";import"./file-CSSg91XZ.js";import"./usePaging-B_C_SZ2Z.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";const O={class:"xl:flex"},j={class:"xl:flex"},A=f({name:"webProtocol"}),zt=f({...A,setup(T){const e=J({service_title:"",service_content:"",privacy_title:"",privacy_content:"",health_title:"",health_content:""}),_=async()=>{const u=await k();Object.assign(e.value,u)},v=async()=>{await C({...e.value}),_()};return _(),(u,t)=>{const a=g,n=y,p=w,s=U,d=E,b=B,V=h,x=P("perms");return c(),D(G,null,[i("div",O,[o(d,{class:"!border-none flex-1 xl:mr-4 mb-4",shadow:"never"},{header:m(()=>[...t[6]||(t[6]=[i("span",{class:"font-medium"},"服务协议",-1)])]),default:m(()=>[o(p,{model:l(e),"label-width":"80px"},{default:m(()=>[o(n,{label:"协议名称"},{default:m(()=>[o(a,{modelValue:l(e).service_title,"onUpdate:modelValue":t[0]||(t[0]=r=>l(e).service_title=r)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(s,{class:"mb-10",modelValue:l(e).service_content,"onUpdate:modelValue":t[1]||(t[1]=r=>l(e).service_content=r),height:"500"},null,8,["modelValue"])]),_:1}),o(d,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:m(()=>[...t[7]||(t[7]=[i("span",{class:"font-medium"},"隐私协议",-1)])]),default:m(()=>[o(p,{model:l(e),"label-width":"80px"},{default:m(()=>[o(n,{label:"协议名称"},{default:m(()=>[o(a,{modelValue:l(e).privacy_title,"onUpdate:modelValue":t[2]||(t[2]=r=>l(e).privacy_title=r)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(s,{class:"mb-10",modelValue:l(e).privacy_content,"onUpdate:modelValue":t[3]||(t[3]=r=>l(e).privacy_content=r),height:"500"},null,8,["modelValue"])]),_:1})]),i("div",j,[o(d,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:m(()=>[...t[8]||(t[8]=[i("span",{class:"font-medium"},"卫健委备案信息",-1)])]),default:m(()=>[o(p,{model:l(e),"label-width":"80px"},{default:m(()=>[o(n,{label:"协议名称"},{default:m(()=>[o(a,{modelValue:l(e).health_title,"onUpdate:modelValue":t[4]||(t[4]=r=>l(e).health_title=r)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(s,{class:"mb-10",modelValue:l(e).health_content,"onUpdate:modelValue":t[5]||(t[5]=r=>l(e).health_content=r),height:"500"},null,8,["modelValue"])]),_:1})]),F((c(),N(V,null,{default:m(()=>[o(b,{type:"primary",onClick:v},{default:m(()=>[...t[9]||(t[9]=[I("保存",-1)])]),_:1})]),_:1})),[[x,["setting.web.web_setting/setAgreement"]]])],64)}}});export{zt as default};
+import{_ as h}from"./index-Bpp7evyC.js";import{D as w,B as y,C as g,J as E,i as B}from"./element-plus-DCRlGjqn.js";import{_ as U}from"./index.vue_vue_type_style_index_0_lang-DFsRVdCe.js";import{c as k,d as C}from"./website-DBKOzmMR.js";import{f,as as P,ak as c,I as D,J as i,a as o,aN as m,aP as F,G as N,O as I,F as G}from"./@vue/runtime-core-C0pg79pw.js";import{y as l,o as J}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./index-DsBUBCgs.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./@wangeditor/editor-Cyf37SuL.js";import"./@wangeditor/editor-for-vue-qHmT1xEb.js";import"./picker-h7OmyGiV.js";import"./index-dlM42V9p.js";import"./index-DrXr9qPh.js";import"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import"./index-BmvifxBX.js";import"./index-CF2_JamS.js";import"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import"./file-DRO9_cYT.js";import"./usePaging-B_C_SZ2Z.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";const O={class:"xl:flex"},j={class:"xl:flex"},A=f({name:"webProtocol"}),zt=f({...A,setup(T){const e=J({service_title:"",service_content:"",privacy_title:"",privacy_content:"",health_title:"",health_content:""}),_=async()=>{const u=await k();Object.assign(e.value,u)},v=async()=>{await C({...e.value}),_()};return _(),(u,t)=>{const a=g,n=y,p=w,s=U,d=E,b=B,V=h,x=P("perms");return c(),D(G,null,[i("div",O,[o(d,{class:"!border-none flex-1 xl:mr-4 mb-4",shadow:"never"},{header:m(()=>[...t[6]||(t[6]=[i("span",{class:"font-medium"},"服务协议",-1)])]),default:m(()=>[o(p,{model:l(e),"label-width":"80px"},{default:m(()=>[o(n,{label:"协议名称"},{default:m(()=>[o(a,{modelValue:l(e).service_title,"onUpdate:modelValue":t[0]||(t[0]=r=>l(e).service_title=r)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(s,{class:"mb-10",modelValue:l(e).service_content,"onUpdate:modelValue":t[1]||(t[1]=r=>l(e).service_content=r),height:"500"},null,8,["modelValue"])]),_:1}),o(d,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:m(()=>[...t[7]||(t[7]=[i("span",{class:"font-medium"},"隐私协议",-1)])]),default:m(()=>[o(p,{model:l(e),"label-width":"80px"},{default:m(()=>[o(n,{label:"协议名称"},{default:m(()=>[o(a,{modelValue:l(e).privacy_title,"onUpdate:modelValue":t[2]||(t[2]=r=>l(e).privacy_title=r)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(s,{class:"mb-10",modelValue:l(e).privacy_content,"onUpdate:modelValue":t[3]||(t[3]=r=>l(e).privacy_content=r),height:"500"},null,8,["modelValue"])]),_:1})]),i("div",j,[o(d,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:m(()=>[...t[8]||(t[8]=[i("span",{class:"font-medium"},"卫健委备案信息",-1)])]),default:m(()=>[o(p,{model:l(e),"label-width":"80px"},{default:m(()=>[o(n,{label:"协议名称"},{default:m(()=>[o(a,{modelValue:l(e).health_title,"onUpdate:modelValue":t[4]||(t[4]=r=>l(e).health_title=r)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(s,{class:"mb-10",modelValue:l(e).health_content,"onUpdate:modelValue":t[5]||(t[5]=r=>l(e).health_content=r),height:"500"},null,8,["modelValue"])]),_:1})]),F((c(),N(V,null,{default:m(()=>[o(b,{type:"primary",onClick:v},{default:m(()=>[...t[9]||(t[9]=[I("保存",-1)])]),_:1})]),_:1})),[[x,["setting.web.web_setting/setAgreement"]]])],64)}}});export{zt as default};
diff --git a/server/public/admin/assets/qywx-CdbIpoXq.js b/server/public/admin/assets/qywx-CmUPW_-S.js
similarity index 77%
rename from server/public/admin/assets/qywx-CdbIpoXq.js
rename to server/public/admin/assets/qywx-CmUPW_-S.js
index f558e2c7..39d840d9 100644
--- a/server/public/admin/assets/qywx-CdbIpoXq.js
+++ b/server/public/admin/assets/qywx-CmUPW_-S.js
@@ -1 +1 @@
-import{K as ne,J as ie,U as re,i as ue,D as de,B as me,C as ce,M as pe,N as fe,q as _e,L as ye,g as ve,P as ge,Q as be,Y as xe,a7 as we,a8 as Se}from"./element-plus-Dmpg6ayE.js";import{_ as Ve}from"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import{w as A}from"./@vue/runtime-dom-iFk_KP8y.js";import{K as Ce,M as Ee}from"./@element-plus/icons-vue-DsycZ37q.js";import{u as ke}from"./usePaging-B_C_SZ2Z.js";import{r as V,i as k,_ as qe}from"./index-DWk_b8Nv.js";import{f as he,b as De,d as Te,ak as _,I as q,a as e,aN as t,J as n,O as o,aP as Ue,G as L,F as Ie,ap as Ke,H as Le}from"./@vue/runtime-core-C0pg79pw.js";import{Q as i}from"./@vue/shared-mAAVTE9n.js";import{y as d,a as Ne,o as h,r as N}from"./@vue/reactivity-BIbyPIZJ.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";function Be(C){return V.get({url:"/qywx.customer/lists",params:C})}function Pe(){return V.post({url:"/qywx.customer/sync"})}function ze(){return V.get({url:"/qywx.customer/stats"})}function Fe(){return V.get({url:"/qywx.customer/getSyncSettings"})}function je(C){return V.post({url:"/qywx.customer/saveSyncSettings",params:C})}const Oe={class:"qywx-customer-page p-4"},$e={class:"flex items-center justify-between"},Me={class:"flex gap-2"},Ae={class:"grid grid-cols-4 gap-4 mb-4"},Ge={class:"text-2xl font-bold text-primary"},Je={class:"text-2xl font-bold text-success"},Qe={class:"text-sm font-medium"},Re={class:"flex items-center gap-2"},He={class:"font-medium"},Ye={class:"text-xs text-gray-400"},We={key:0},Xe={key:1,class:"text-gray-400"},Ze={class:"flex justify-end mt-4"},et=he({__name:"qywx",setup(C){const D=h(!1),b=h(!1),T=h(!1),r=h(null),y=N({total:0,today:0,lastSync:"",syncStatus:"idle",syncStatusText:"未同步"}),u=N({auto_sync:!1,interval:3600}),m=N({name:"",follow_user:""});let x=null;async function G(s){return Be(s)}const{pager:w,getLists:U,resetPage:I,resetParams:J}=ke({fetchFun:G,params:m});function Q(){m.name="",m.follow_user="",J()}async function B(){D.value=!0;try{await Pe(),k.msgSuccess("同步成功"),await P(),await U()}catch(s){k.msgError((s==null?void 0:s.message)||"同步失败")}finally{D.value=!1}}async function P(){try{const s=await ze();Object.assign(y,s.data||s)}catch(s){console.error("加载统计失败",s)}}async function R(){try{const s=await Fe();Object.assign(u,s.data||s),u.auto_sync&&z()}catch(s){console.error("加载同步设置失败",s)}}async function H(){try{await je(u),k.msgSuccess("保存成功"),b.value=!1,F(),u.auto_sync&&z()}catch(s){k.msgError((s==null?void 0:s.message)||"保存失败")}}function z(){x||(x=window.setInterval(()=>{B()},u.interval*1e3))}function F(){x&&(clearInterval(x),x=null)}function Y(s){r.value=s,T.value=!0}function E(s){return s?new Date(typeof s=="number"?s*1e3:s).toLocaleString("zh-CN"):"—"}return De(()=>{U(),P(),R()}),Te(()=>{F()}),(s,l)=>{const p=ue,W=ne,v=ie,K=re,j=ce,S=me,O=de,X=_e,f=fe,Z=pe,ee=Ve,te=ve,g=be,le=ge,$=xe,c=Se,ae=we,se=ye;return _(),q("div",Oe,[e(v,{shadow:"never",class:"mb-4"},{header:t(()=>[n("div",$e,[l[11]||(l[11]=n("span",{class:"text-lg font-semibold"},"企业微信客户管理",-1)),n("div",Me,[e(p,{type:"primary",loading:D.value,onClick:B},{icon:t(()=>[e(d(Ce))]),default:t(()=>[l[9]||(l[9]=o(" 立即同步 ",-1))]),_:1},8,["loading"]),e(p,{onClick:l[0]||(l[0]=a=>b.value=!0)},{icon:t(()=>[e(d(Ee))]),default:t(()=>[l[10]||(l[10]=o(" 同步设置 ",-1))]),_:1})])])]),default:t(()=>[e(W,{title:"功能说明",type:"info",closable:!1,class:"mb-4"},{default:t(()=>[...l[12]||(l[12]=[n("div",{class:"text-sm"},[n("p",null,"自动从企业微信同步外部联系人(客户)信息,包括客户基本信息、跟进人等。"),n("p",{class:"mt-1"},"同步后的数据可用于患者信息匹配和自动关联。")],-1)])]),_:1}),n("div",Ae,[e(v,{shadow:"hover"},{default:t(()=>[l[13]||(l[13]=n("div",{class:"text-gray-500 text-sm mb-1"},"总客户数",-1)),n("div",Ge,i(y.total),1)]),_:1}),e(v,{shadow:"hover"},{default:t(()=>[l[14]||(l[14]=n("div",{class:"text-gray-500 text-sm mb-1"},"今日新增",-1)),n("div",Je,i(y.today),1)]),_:1}),e(v,{shadow:"hover"},{default:t(()=>[l[15]||(l[15]=n("div",{class:"text-gray-500 text-sm mb-1"},"最后同步",-1)),n("div",Qe,i(y.lastSync||"未同步"),1)]),_:1}),e(v,{shadow:"hover"},{default:t(()=>[l[16]||(l[16]=n("div",{class:"text-gray-500 text-sm mb-1"},"同步状态",-1)),e(K,{type:y.syncStatus==="success"?"success":"info",size:"small"},{default:t(()=>[o(i(y.syncStatusText),1)]),_:1},8,["type"])]),_:1})])]),_:1}),e(v,{shadow:"never"},{default:t(()=>[e(O,{model:m,inline:"",class:"mb-4"},{default:t(()=>[e(S,{label:"客户名称"},{default:t(()=>[e(j,{modelValue:m.name,"onUpdate:modelValue":l[1]||(l[1]=a=>m.name=a),placeholder:"搜索客户名称",clearable:"",onKeyup:A(d(I),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(S,{label:"跟进人"},{default:t(()=>[e(j,{modelValue:m.follow_user,"onUpdate:modelValue":l[2]||(l[2]=a=>m.follow_user=a),placeholder:"跟进人姓名",clearable:"",onKeyup:A(d(I),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(S,null,{default:t(()=>[e(p,{type:"primary",onClick:d(I)},{default:t(()=>[...l[17]||(l[17]=[o("查询",-1)])]),_:1},8,["onClick"]),e(p,{onClick:Q},{default:t(()=>[...l[18]||(l[18]=[o("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"]),Ue((_(),L(Z,{data:d(w).lists,stripe:""},{default:t(()=>[e(f,{label:"客户信息","min-width":"200"},{default:t(({row:a})=>[n("div",Re,[e(X,{size:40,src:a.avatar},null,8,["src"]),n("div",null,[n("div",He,i(a.name),1),n("div",Ye,i(a.external_userid),1)])])]),_:1}),e(f,{label:"类型",width:"80"},{default:t(({row:a})=>[e(K,{size:"small"},{default:t(()=>[o(i(a.type===1?"微信":"企微"),1)]),_:2},1024)]),_:1}),e(f,{label:"性别",width:"60"},{default:t(({row:a})=>[o(i(a.gender===1?"男":a.gender===2?"女":"未知"),1)]),_:1}),e(f,{label:"跟进人","min-width":"150"},{default:t(({row:a})=>[a.follow_users&&a.follow_users.length?(_(),q("div",We,[(_(!0),q(Ie,null,Ke(a.follow_users,(M,oe)=>(_(),L(K,{key:oe,size:"small",class:"mr-1 mb-1"},{default:t(()=>[o(i(M.name),1)]),_:2},1024))),128))])):(_(),q("span",Xe,"—"))]),_:1}),e(f,{label:"添加时间",width:"160"},{default:t(({row:a})=>[o(i(E(a.create_time)),1)]),_:1}),e(f,{label:"更新时间",width:"160"},{default:t(({row:a})=>[o(i(E(a.update_time)),1)]),_:1}),e(f,{label:"操作",width:"120",fixed:"right"},{default:t(({row:a})=>[e(p,{type:"primary",link:"",onClick:M=>Y(a)},{default:t(()=>[...l[19]||(l[19]=[o("查看详情",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[se,d(w).loading]]),n("div",Ze,[e(ee,{modelValue:d(w),"onUpdate:modelValue":l[3]||(l[3]=a=>Ne(w)?w.value=a:null),onChange:d(U)},null,8,["modelValue","onChange"])])]),_:1}),e($,{modelValue:b.value,"onUpdate:modelValue":l[7]||(l[7]=a=>b.value=a),title:"同步设置",width:"500px"},{footer:t(()=>[e(p,{onClick:l[6]||(l[6]=a=>b.value=!1)},{default:t(()=>[...l[21]||(l[21]=[o("取消",-1)])]),_:1}),e(p,{type:"primary",onClick:H},{default:t(()=>[...l[22]||(l[22]=[o("保存",-1)])]),_:1})]),default:t(()=>[e(O,{model:u,"label-width":"120px"},{default:t(()=>[e(S,{label:"自动同步"},{default:t(()=>[e(te,{modelValue:u.auto_sync,"onUpdate:modelValue":l[4]||(l[4]=a=>u.auto_sync=a)},null,8,["modelValue"]),l[20]||(l[20]=n("div",{class:"text-xs text-gray-400 mt-1"}," 开启后将定时自动同步企业微信客户数据 ",-1))]),_:1}),e(S,{label:"同步间隔"},{default:t(()=>[e(le,{modelValue:u.interval,"onUpdate:modelValue":l[5]||(l[5]=a=>u.interval=a),disabled:!u.auto_sync},{default:t(()=>[e(g,{label:"每小时",value:3600}),e(g,{label:"每2小时",value:7200}),e(g,{label:"每4小时",value:14400}),e(g,{label:"每6小时",value:21600}),e(g,{label:"每12小时",value:43200}),e(g,{label:"每天",value:86400})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e($,{modelValue:T.value,"onUpdate:modelValue":l[8]||(l[8]=a=>T.value=a),title:"客户详情",width:"600px"},{default:t(()=>[r.value?(_(),L(ae,{key:0,column:2,border:""},{default:t(()=>[e(c,{label:"客户名称"},{default:t(()=>[o(i(r.value.name),1)]),_:1}),e(c,{label:"External ID"},{default:t(()=>[o(i(r.value.external_userid),1)]),_:1}),e(c,{label:"性别"},{default:t(()=>[o(i(r.value.gender===1?"男":r.value.gender===2?"女":"未知"),1)]),_:1}),e(c,{label:"类型"},{default:t(()=>[o(i(r.value.type===1?"微信用户":"企业微信用户"),1)]),_:1}),e(c,{label:"企业名称",span:2},{default:t(()=>[o(i(r.value.corp_name||"—"),1)]),_:1}),e(c,{label:"职位",span:2},{default:t(()=>[o(i(r.value.position||"—"),1)]),_:1}),e(c,{label:"添加时间",span:2},{default:t(()=>[o(i(E(r.value.create_time)),1)]),_:1}),e(c,{label:"更新时间",span:2},{default:t(()=>[o(i(E(r.value.update_time)),1)]),_:1})]),_:1})):Le("",!0)]),_:1},8,["modelValue"])])}}}),jt=qe(et,[["__scopeId","data-v-02092ac5"]]);export{jt as default};
+import{K as ne,J as ie,U as re,i as ue,D as de,B as me,C as ce,M as pe,N as fe,q as _e,L as ye,g as ve,P as ge,Q as be,Z as xe,a8 as we,a9 as Se}from"./element-plus-DCRlGjqn.js";import{_ as Ve}from"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import{w as A}from"./@vue/runtime-dom-iFk_KP8y.js";import{L as Ce,M as Ee}from"./@element-plus/icons-vue-jYCthPJY.js";import{u as ke}from"./usePaging-B_C_SZ2Z.js";import{r as V,i as k,_ as qe}from"./index-DsBUBCgs.js";import{f as he,b as De,d as Te,ak as _,I as q,a as e,aN as t,J as n,O as o,aP as Ue,G as N,F as Ie,ap as Le,H as Ne}from"./@vue/runtime-core-C0pg79pw.js";import{Q as i}from"./@vue/shared-mAAVTE9n.js";import{y as d,a as Be,o as h,r as B}from"./@vue/reactivity-BIbyPIZJ.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";function Ke(C){return V.get({url:"/qywx.customer/lists",params:C})}function Pe(){return V.post({url:"/qywx.customer/sync"})}function ze(){return V.get({url:"/qywx.customer/stats"})}function Fe(){return V.get({url:"/qywx.customer/getSyncSettings"})}function je(C){return V.post({url:"/qywx.customer/saveSyncSettings",params:C})}const Oe={class:"qywx-customer-page p-4"},$e={class:"flex items-center justify-between"},Me={class:"flex gap-2"},Ae={class:"grid grid-cols-4 gap-4 mb-4"},Ge={class:"text-2xl font-bold text-primary"},Je={class:"text-2xl font-bold text-success"},Qe={class:"text-sm font-medium"},Re={class:"flex items-center gap-2"},He={class:"font-medium"},Ze={class:"text-xs text-gray-400"},We={key:0},Xe={key:1,class:"text-gray-400"},Ye={class:"flex justify-end mt-4"},et=he({__name:"qywx",setup(C){const D=h(!1),b=h(!1),T=h(!1),r=h(null),y=B({total:0,today:0,lastSync:"",syncStatus:"idle",syncStatusText:"未同步"}),u=B({auto_sync:!1,interval:3600}),m=B({name:"",follow_user:""});let x=null;async function G(s){return Ke(s)}const{pager:w,getLists:U,resetPage:I,resetParams:J}=ke({fetchFun:G,params:m});function Q(){m.name="",m.follow_user="",J()}async function K(){D.value=!0;try{await Pe(),k.msgSuccess("同步成功"),await P(),await U()}catch(s){k.msgError((s==null?void 0:s.message)||"同步失败")}finally{D.value=!1}}async function P(){try{const s=await ze();Object.assign(y,s.data||s)}catch(s){console.error("加载统计失败",s)}}async function R(){try{const s=await Fe();Object.assign(u,s.data||s),u.auto_sync&&z()}catch(s){console.error("加载同步设置失败",s)}}async function H(){try{await je(u),k.msgSuccess("保存成功"),b.value=!1,F(),u.auto_sync&&z()}catch(s){k.msgError((s==null?void 0:s.message)||"保存失败")}}function z(){x||(x=window.setInterval(()=>{K()},u.interval*1e3))}function F(){x&&(clearInterval(x),x=null)}function Z(s){r.value=s,T.value=!0}function E(s){return s?new Date(typeof s=="number"?s*1e3:s).toLocaleString("zh-CN"):"—"}return De(()=>{U(),P(),R()}),Te(()=>{F()}),(s,l)=>{const p=ue,W=ne,v=ie,L=re,j=ce,S=me,O=de,X=_e,f=fe,Y=pe,ee=Ve,te=ve,g=be,le=ge,$=xe,c=Se,ae=we,se=ye;return _(),q("div",Oe,[e(v,{shadow:"never",class:"mb-4"},{header:t(()=>[n("div",$e,[l[11]||(l[11]=n("span",{class:"text-lg font-semibold"},"企业微信客户管理",-1)),n("div",Me,[e(p,{type:"primary",loading:D.value,onClick:K},{icon:t(()=>[e(d(Ce))]),default:t(()=>[l[9]||(l[9]=o(" 立即同步 ",-1))]),_:1},8,["loading"]),e(p,{onClick:l[0]||(l[0]=a=>b.value=!0)},{icon:t(()=>[e(d(Ee))]),default:t(()=>[l[10]||(l[10]=o(" 同步设置 ",-1))]),_:1})])])]),default:t(()=>[e(W,{title:"功能说明",type:"info",closable:!1,class:"mb-4"},{default:t(()=>[...l[12]||(l[12]=[n("div",{class:"text-sm"},[n("p",null,"自动从企业微信同步外部联系人(客户)信息,包括客户基本信息、跟进人等。"),n("p",{class:"mt-1"},"同步后的数据可用于患者信息匹配和自动关联。")],-1)])]),_:1}),n("div",Ae,[e(v,{shadow:"hover"},{default:t(()=>[l[13]||(l[13]=n("div",{class:"text-gray-500 text-sm mb-1"},"总客户数",-1)),n("div",Ge,i(y.total),1)]),_:1}),e(v,{shadow:"hover"},{default:t(()=>[l[14]||(l[14]=n("div",{class:"text-gray-500 text-sm mb-1"},"今日新增",-1)),n("div",Je,i(y.today),1)]),_:1}),e(v,{shadow:"hover"},{default:t(()=>[l[15]||(l[15]=n("div",{class:"text-gray-500 text-sm mb-1"},"最后同步",-1)),n("div",Qe,i(y.lastSync||"未同步"),1)]),_:1}),e(v,{shadow:"hover"},{default:t(()=>[l[16]||(l[16]=n("div",{class:"text-gray-500 text-sm mb-1"},"同步状态",-1)),e(L,{type:y.syncStatus==="success"?"success":"info",size:"small"},{default:t(()=>[o(i(y.syncStatusText),1)]),_:1},8,["type"])]),_:1})])]),_:1}),e(v,{shadow:"never"},{default:t(()=>[e(O,{model:m,inline:"",class:"mb-4"},{default:t(()=>[e(S,{label:"客户名称"},{default:t(()=>[e(j,{modelValue:m.name,"onUpdate:modelValue":l[1]||(l[1]=a=>m.name=a),placeholder:"搜索客户名称",clearable:"",onKeyup:A(d(I),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(S,{label:"跟进人"},{default:t(()=>[e(j,{modelValue:m.follow_user,"onUpdate:modelValue":l[2]||(l[2]=a=>m.follow_user=a),placeholder:"跟进人姓名",clearable:"",onKeyup:A(d(I),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(S,null,{default:t(()=>[e(p,{type:"primary",onClick:d(I)},{default:t(()=>[...l[17]||(l[17]=[o("查询",-1)])]),_:1},8,["onClick"]),e(p,{onClick:Q},{default:t(()=>[...l[18]||(l[18]=[o("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"]),Ue((_(),N(Y,{data:d(w).lists,stripe:""},{default:t(()=>[e(f,{label:"客户信息","min-width":"200"},{default:t(({row:a})=>[n("div",Re,[e(X,{size:40,src:a.avatar},null,8,["src"]),n("div",null,[n("div",He,i(a.name),1),n("div",Ze,i(a.external_userid),1)])])]),_:1}),e(f,{label:"类型",width:"80"},{default:t(({row:a})=>[e(L,{size:"small"},{default:t(()=>[o(i(a.type===1?"微信":"企微"),1)]),_:2},1024)]),_:1}),e(f,{label:"性别",width:"60"},{default:t(({row:a})=>[o(i(a.gender===1?"男":a.gender===2?"女":"未知"),1)]),_:1}),e(f,{label:"跟进人","min-width":"150"},{default:t(({row:a})=>[a.follow_users&&a.follow_users.length?(_(),q("div",We,[(_(!0),q(Ie,null,Le(a.follow_users,(M,oe)=>(_(),N(L,{key:oe,size:"small",class:"mr-1 mb-1"},{default:t(()=>[o(i(M.name),1)]),_:2},1024))),128))])):(_(),q("span",Xe,"—"))]),_:1}),e(f,{label:"添加时间",width:"160"},{default:t(({row:a})=>[o(i(E(a.create_time)),1)]),_:1}),e(f,{label:"更新时间",width:"160"},{default:t(({row:a})=>[o(i(E(a.update_time)),1)]),_:1}),e(f,{label:"操作",width:"120",fixed:"right"},{default:t(({row:a})=>[e(p,{type:"primary",link:"",onClick:M=>Z(a)},{default:t(()=>[...l[19]||(l[19]=[o("查看详情",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[se,d(w).loading]]),n("div",Ye,[e(ee,{modelValue:d(w),"onUpdate:modelValue":l[3]||(l[3]=a=>Be(w)?w.value=a:null),onChange:d(U)},null,8,["modelValue","onChange"])])]),_:1}),e($,{modelValue:b.value,"onUpdate:modelValue":l[7]||(l[7]=a=>b.value=a),title:"同步设置",width:"500px"},{footer:t(()=>[e(p,{onClick:l[6]||(l[6]=a=>b.value=!1)},{default:t(()=>[...l[21]||(l[21]=[o("取消",-1)])]),_:1}),e(p,{type:"primary",onClick:H},{default:t(()=>[...l[22]||(l[22]=[o("保存",-1)])]),_:1})]),default:t(()=>[e(O,{model:u,"label-width":"120px"},{default:t(()=>[e(S,{label:"自动同步"},{default:t(()=>[e(te,{modelValue:u.auto_sync,"onUpdate:modelValue":l[4]||(l[4]=a=>u.auto_sync=a)},null,8,["modelValue"]),l[20]||(l[20]=n("div",{class:"text-xs text-gray-400 mt-1"}," 开启后将定时自动同步企业微信客户数据 ",-1))]),_:1}),e(S,{label:"同步间隔"},{default:t(()=>[e(le,{modelValue:u.interval,"onUpdate:modelValue":l[5]||(l[5]=a=>u.interval=a),disabled:!u.auto_sync},{default:t(()=>[e(g,{label:"每小时",value:3600}),e(g,{label:"每2小时",value:7200}),e(g,{label:"每4小时",value:14400}),e(g,{label:"每6小时",value:21600}),e(g,{label:"每12小时",value:43200}),e(g,{label:"每天",value:86400})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),e($,{modelValue:T.value,"onUpdate:modelValue":l[8]||(l[8]=a=>T.value=a),title:"客户详情",width:"600px"},{default:t(()=>[r.value?(_(),N(ae,{key:0,column:2,border:""},{default:t(()=>[e(c,{label:"客户名称"},{default:t(()=>[o(i(r.value.name),1)]),_:1}),e(c,{label:"External ID"},{default:t(()=>[o(i(r.value.external_userid),1)]),_:1}),e(c,{label:"性别"},{default:t(()=>[o(i(r.value.gender===1?"男":r.value.gender===2?"女":"未知"),1)]),_:1}),e(c,{label:"类型"},{default:t(()=>[o(i(r.value.type===1?"微信用户":"企业微信用户"),1)]),_:1}),e(c,{label:"企业名称",span:2},{default:t(()=>[o(i(r.value.corp_name||"—"),1)]),_:1}),e(c,{label:"职位",span:2},{default:t(()=>[o(i(r.value.position||"—"),1)]),_:1}),e(c,{label:"添加时间",span:2},{default:t(()=>[o(i(E(r.value.create_time)),1)]),_:1}),e(c,{label:"更新时间",span:2},{default:t(()=>[o(i(E(r.value.update_time)),1)]),_:1})]),_:1})):Ne("",!0)]),_:1},8,["modelValue"])])}}}),jt=qe(et,[["__scopeId","data-v-02092ac5"]]);export{jt as default};
diff --git a/server/public/admin/assets/recharge_record-D8KzKP8y.js b/server/public/admin/assets/recharge_record-CrveScIC.js
similarity index 89%
rename from server/public/admin/assets/recharge_record-D8KzKP8y.js
rename to server/public/admin/assets/recharge_record-CrveScIC.js
index 5e1cbcd2..33f9fa7c 100644
--- a/server/public/admin/assets/recharge_record-D8KzKP8y.js
+++ b/server/public/admin/assets/recharge_record-CrveScIC.js
@@ -1 +1 @@
-import{K as $,D as F,B as I,C as J,P as O,Q,i as S,J as j,M as q,N as A,L as G}from"./element-plus-Dmpg6ayE.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import{h as M,i as W}from"./index-DWk_b8Nv.js";import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-BfmZk1Ml.js";import{_ as Y}from"./index.vue_vue_type_script_setup_true_lang-BzILDzNF.js";import{w as v}from"./@vue/runtime-dom-iFk_KP8y.js";import{b as V,c as Z}from"./finance-D5VZU_9K.js";import{u as ee}from"./usePaging-B_C_SZ2Z.js";import{f as C,as as te,ak as c,I as ae,a as e,aN as l,O as p,aP as x,G as h,J as f,H as oe}from"./@vue/runtime-core-C0pg79pw.js";import{y as t,a as le,r as ne}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as k,o as se}from"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-BKLtguGT.js";const re={class:"flex items-center"},ie={class:"flex justify-end mt-4"},me=C({name:"rechargeRecord"}),tt=C({...me,setup(pe){const n=ne({sn:"",user_info:"",pay_way:"",pay_status:"",start_time:"",end_time:""}),{pager:r,getLists:d,resetPage:_,resetParams:E}=ee({fetchFun:V,params:n}),T=async b=>{await W.confirm("确认退款?"),await Z({recharge_id:b}),d()};return d(),(b,o)=>{const U=$,y=J,i=I,m=Q,g=O,B=Y,u=S,K=X,N=F,w=j,P=M,s=A,z=q,D=H,L=te("perms"),R=G;return c(),ae("div",null,[e(w,{class:"!border-none",shadow:"never"},{default:l(()=>[e(U,{type:"warning",title:"温馨提示:用户充值记录",closable:!1,"show-icon":""}),e(N,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:t(n),inline:!0},{default:l(()=>[e(i,{class:"w-[280px]",label:"充值单号"},{default:l(()=>[e(y,{modelValue:t(n).sn,"onUpdate:modelValue":o[0]||(o[0]=a=>t(n).sn=a),placeholder:"请输入充值单号",clearable:"",onKeyup:v(t(_),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(i,{class:"w-[280px]",label:"用户信息"},{default:l(()=>[e(y,{modelValue:t(n).user_info,"onUpdate:modelValue":o[1]||(o[1]=a=>t(n).user_info=a),placeholder:"请输入用户账号/昵称/手机号",clearable:"",onKeyup:v(t(_),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(i,{class:"w-[280px]",label:"支付方式"},{default:l(()=>[e(g,{modelValue:t(n).pay_way,"onUpdate:modelValue":o[2]||(o[2]=a=>t(n).pay_way=a)},{default:l(()=>[e(m,{label:"全部",value:""}),e(m,{label:"微信支付",value:2})]),_:1},8,["modelValue"])]),_:1}),e(i,{class:"w-[280px]",label:"支付状态"},{default:l(()=>[e(g,{modelValue:t(n).pay_status,"onUpdate:modelValue":o[3]||(o[3]=a=>t(n).pay_status=a)},{default:l(()=>[e(m,{label:"全部",value:""}),e(m,{label:"未支付",value:0}),e(m,{label:"已支付",value:1})]),_:1},8,["modelValue"])]),_:1}),e(i,{label:"下单时间"},{default:l(()=>[e(B,{startTime:t(n).start_time,"onUpdate:startTime":o[4]||(o[4]=a=>t(n).start_time=a),endTime:t(n).end_time,"onUpdate:endTime":o[5]||(o[5]=a=>t(n).end_time=a)},null,8,["startTime","endTime"])]),_:1}),e(i,null,{default:l(()=>[e(u,{type:"primary",onClick:t(_)},{default:l(()=>[...o[7]||(o[7]=[p("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:t(E)},{default:l(()=>[...o[8]||(o[8]=[p("重置",-1)])]),_:1},8,["onClick"]),e(K,{class:"ml-2.5","fetch-fun":t(V),params:t(n),"page-size":t(r).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(w,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[x((c(),h(z,{size:"large",data:t(r).lists},{default:l(()=>[e(s,{label:"用户信息","min-width":"160"},{default:l(({row:a})=>[f("div",re,[e(P,{class:"flex-none mr-2",src:a.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),p(" "+k(a.nickname),1)])]),_:1}),e(s,{label:"充值单号",prop:"sn","min-width":"190"}),e(s,{label:"充值金额",prop:"order_amount","min-width":"100"}),e(s,{label:"支付方式",prop:"pay_way_text","min-width":"100"}),e(s,{label:"支付状态",prop:"","min-width":"100"},{default:l(({row:a})=>[f("span",{class:se({"text-error":a.pay_status==0})},k(a.pay_status_text),3)]),_:1}),e(s,{label:"提交时间",prop:"create_time","min-width":"180"}),e(s,{label:"支付时间",prop:"pay_time","min-width":"180"}),e(s,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[a.pay_status==1?x((c(),h(u,{key:0,type:"primary",link:"",disabled:a.refund_status==1,onClick:de=>T(a.id)},{default:l(()=>[...o[9]||(o[9]=[p(" 退款 ",-1)])]),_:1},8,["disabled","onClick"])),[[L,["recharge.recharge/refund"]]]):oe("",!0)]),_:1})]),_:1},8,["data"])),[[R,t(r).loading]]),f("div",ie,[e(D,{modelValue:t(r),"onUpdate:modelValue":o[6]||(o[6]=a=>le(r)?r.value=a:null),onChange:t(d)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{tt as default};
+import{K as $,D as F,B as I,C as J,P as O,Q,i as S,J as j,M as q,N as A,L as G}from"./element-plus-DCRlGjqn.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import{h as M,i as W}from"./index-DsBUBCgs.js";import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-CLNYCQPu.js";import{_ as Y}from"./index.vue_vue_type_script_setup_true_lang-B1hInEWx.js";import{w as v}from"./@vue/runtime-dom-iFk_KP8y.js";import{b as V,c as Z}from"./finance-vyug3kmy.js";import{u as ee}from"./usePaging-B_C_SZ2Z.js";import{f as C,as as te,ak as c,I as ae,a as e,aN as l,O as p,aP as x,G as h,J as f,H as oe}from"./@vue/runtime-core-C0pg79pw.js";import{y as t,a as le,r as ne}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as k,o as se}from"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-dlM42V9p.js";const re={class:"flex items-center"},ie={class:"flex justify-end mt-4"},me=C({name:"rechargeRecord"}),tt=C({...me,setup(pe){const n=ne({sn:"",user_info:"",pay_way:"",pay_status:"",start_time:"",end_time:""}),{pager:r,getLists:d,resetPage:_,resetParams:E}=ee({fetchFun:V,params:n}),T=async b=>{await W.confirm("确认退款?"),await Z({recharge_id:b}),d()};return d(),(b,o)=>{const U=$,y=J,i=I,m=Q,g=O,B=Y,u=S,K=X,N=F,w=j,P=M,s=A,z=q,D=H,L=te("perms"),R=G;return c(),ae("div",null,[e(w,{class:"!border-none",shadow:"never"},{default:l(()=>[e(U,{type:"warning",title:"温馨提示:用户充值记录",closable:!1,"show-icon":""}),e(N,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:t(n),inline:!0},{default:l(()=>[e(i,{class:"w-[280px]",label:"充值单号"},{default:l(()=>[e(y,{modelValue:t(n).sn,"onUpdate:modelValue":o[0]||(o[0]=a=>t(n).sn=a),placeholder:"请输入充值单号",clearable:"",onKeyup:v(t(_),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(i,{class:"w-[280px]",label:"用户信息"},{default:l(()=>[e(y,{modelValue:t(n).user_info,"onUpdate:modelValue":o[1]||(o[1]=a=>t(n).user_info=a),placeholder:"请输入用户账号/昵称/手机号",clearable:"",onKeyup:v(t(_),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(i,{class:"w-[280px]",label:"支付方式"},{default:l(()=>[e(g,{modelValue:t(n).pay_way,"onUpdate:modelValue":o[2]||(o[2]=a=>t(n).pay_way=a)},{default:l(()=>[e(m,{label:"全部",value:""}),e(m,{label:"微信支付",value:2})]),_:1},8,["modelValue"])]),_:1}),e(i,{class:"w-[280px]",label:"支付状态"},{default:l(()=>[e(g,{modelValue:t(n).pay_status,"onUpdate:modelValue":o[3]||(o[3]=a=>t(n).pay_status=a)},{default:l(()=>[e(m,{label:"全部",value:""}),e(m,{label:"未支付",value:0}),e(m,{label:"已支付",value:1})]),_:1},8,["modelValue"])]),_:1}),e(i,{label:"下单时间"},{default:l(()=>[e(B,{startTime:t(n).start_time,"onUpdate:startTime":o[4]||(o[4]=a=>t(n).start_time=a),endTime:t(n).end_time,"onUpdate:endTime":o[5]||(o[5]=a=>t(n).end_time=a)},null,8,["startTime","endTime"])]),_:1}),e(i,null,{default:l(()=>[e(u,{type:"primary",onClick:t(_)},{default:l(()=>[...o[7]||(o[7]=[p("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:t(E)},{default:l(()=>[...o[8]||(o[8]=[p("重置",-1)])]),_:1},8,["onClick"]),e(K,{class:"ml-2.5","fetch-fun":t(V),params:t(n),"page-size":t(r).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(w,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[x((c(),h(z,{size:"large",data:t(r).lists},{default:l(()=>[e(s,{label:"用户信息","min-width":"160"},{default:l(({row:a})=>[f("div",re,[e(P,{class:"flex-none mr-2",src:a.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),p(" "+k(a.nickname),1)])]),_:1}),e(s,{label:"充值单号",prop:"sn","min-width":"190"}),e(s,{label:"充值金额",prop:"order_amount","min-width":"100"}),e(s,{label:"支付方式",prop:"pay_way_text","min-width":"100"}),e(s,{label:"支付状态",prop:"","min-width":"100"},{default:l(({row:a})=>[f("span",{class:se({"text-error":a.pay_status==0})},k(a.pay_status_text),3)]),_:1}),e(s,{label:"提交时间",prop:"create_time","min-width":"180"}),e(s,{label:"支付时间",prop:"pay_time","min-width":"180"}),e(s,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[a.pay_status==1?x((c(),h(u,{key:0,type:"primary",link:"",disabled:a.refund_status==1,onClick:de=>T(a.id)},{default:l(()=>[...o[9]||(o[9]=[p(" 退款 ",-1)])]),_:1},8,["disabled","onClick"])),[[L,["recharge.recharge/refund"]]]):oe("",!0)]),_:1})]),_:1},8,["data"])),[[R,t(r).loading]]),f("div",ie,[e(D,{modelValue:t(r),"onUpdate:modelValue":o[6]||(o[6]=a=>le(r)?r.value=a:null),onChange:t(d)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{tt as default};
diff --git a/server/public/admin/assets/refund-log-lqdg3tzR.js b/server/public/admin/assets/refund-log-C1q1KieC.js
similarity index 81%
rename from server/public/admin/assets/refund-log-lqdg3tzR.js
rename to server/public/admin/assets/refund-log-C1q1KieC.js
index 9a6c3d7a..4936c4d1 100644
--- a/server/public/admin/assets/refund-log-lqdg3tzR.js
+++ b/server/public/admin/assets/refund-log-C1q1KieC.js
@@ -1 +1 @@
-import{_ as o}from"./refund-log.vue_vue_type_script_setup_true_lang-gLb3pbTv.js";import"./element-plus-Dmpg6ayE.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/runtime-core-C0pg79pw.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./finance-D5VZU_9K.js";import"./index-DWk_b8Nv.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";export{o as default};
+import{_ as o}from"./refund-log.vue_vue_type_script_setup_true_lang-ib3kPJ_x.js";import"./element-plus-DCRlGjqn.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/runtime-core-C0pg79pw.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./finance-vyug3kmy.js";import"./index-DsBUBCgs.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";export{o as default};
diff --git a/server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-gLb3pbTv.js b/server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-ib3kPJ_x.js
similarity index 92%
rename from server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-gLb3pbTv.js
rename to server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-ib3kPJ_x.js
index 105acad2..ab9669b2 100644
--- a/server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-gLb3pbTv.js
+++ b/server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-ib3kPJ_x.js
@@ -1 +1 @@
-import{Y as E,M as L,N,U as B,L as C}from"./element-plus-Dmpg6ayE.js";import{r as T}from"./finance-D5VZU_9K.js";import{f as D,w as I,ak as s,I as R,a as o,aN as a,aP as U,G as r,O as d,H as c,A as z}from"./@vue/runtime-core-C0pg79pw.js";import{a as A,y as p,o as h}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as u}from"./@vue/shared-mAAVTE9n.js";const G={class:"code-preview"},S=D({__name:"refund-log",props:{modelValue:{type:Boolean},refundId:{}},emits:["update:modelValue"],setup(v,{emit:y}){const i=h(!1),_=h([]),f=v,V=y,n=z({get(){return f.modelValue},set(t){V("update:modelValue",t)}}),b=async()=>{i.value=!0,_.value=[];try{const t=await T({record_id:f.refundId});_.value=t}catch(t){console.log(t)}i.value=!1};return I(n,t=>{t&&b()}),(t,g)=>{const l=N,m=B,w=L,x=E,k=C;return s(),R("div",G,[o(x,{modelValue:p(n),"onUpdate:modelValue":g[0]||(g[0]=e=>A(n)?n.value=e:null),width:"760px",title:"退款日志"},{default:a(()=>[U((s(),r(w,{size:"large",data:p(_),height:"500"},{default:a(()=>[o(l,{label:"流水单号",prop:"sn","min-width":"190"}),o(l,{label:"退款金额","min-width":"110"},{default:a(({row:e})=>[d(" ¥"+u(e.refund_amount),1)]),_:1}),o(l,{label:"退款状态",prop:"","min-width":"100"},{default:a(({row:e})=>[e.refund_status==0?(s(),r(m,{key:0,type:"warning"},{default:a(()=>[d(u(e.refund_status_text),1)]),_:2},1024)):c("",!0),e.refund_status==1?(s(),r(m,{key:1},{default:a(()=>[d(u(e.refund_status_text),1)]),_:2},1024)):c("",!0),e.refund_status==2?(s(),r(m,{key:2,type:"danger"},{default:a(()=>[d(u(e.refund_status_text),1)]),_:2},1024)):c("",!0)]),_:1}),o(l,{label:"记录时间",prop:"create_time","min-width":"180"}),o(l,{label:"操作人",prop:"handler","min-width":"120"})]),_:1},8,["data"])),[[k,p(i)]])]),_:1},8,["modelValue"])])}}});export{S as _};
+import{Z as E,M as L,N,U as B,L as C}from"./element-plus-DCRlGjqn.js";import{r as T}from"./finance-vyug3kmy.js";import{f as D,w as I,ak as s,I as R,a as o,aN as a,aP as U,G as r,O as d,H as c,A as z}from"./@vue/runtime-core-C0pg79pw.js";import{a as A,y as p,o as h}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as u}from"./@vue/shared-mAAVTE9n.js";const G={class:"code-preview"},S=D({__name:"refund-log",props:{modelValue:{type:Boolean},refundId:{}},emits:["update:modelValue"],setup(v,{emit:y}){const i=h(!1),_=h([]),f=v,V=y,n=z({get(){return f.modelValue},set(t){V("update:modelValue",t)}}),b=async()=>{i.value=!0,_.value=[];try{const t=await T({record_id:f.refundId});_.value=t}catch(t){console.log(t)}i.value=!1};return I(n,t=>{t&&b()}),(t,g)=>{const l=N,m=B,w=L,x=E,k=C;return s(),R("div",G,[o(x,{modelValue:p(n),"onUpdate:modelValue":g[0]||(g[0]=e=>A(n)?n.value=e:null),width:"760px",title:"退款日志"},{default:a(()=>[U((s(),r(w,{size:"large",data:p(_),height:"500"},{default:a(()=>[o(l,{label:"流水单号",prop:"sn","min-width":"190"}),o(l,{label:"退款金额","min-width":"110"},{default:a(({row:e})=>[d(" ¥"+u(e.refund_amount),1)]),_:1}),o(l,{label:"退款状态",prop:"","min-width":"100"},{default:a(({row:e})=>[e.refund_status==0?(s(),r(m,{key:0,type:"warning"},{default:a(()=>[d(u(e.refund_status_text),1)]),_:2},1024)):c("",!0),e.refund_status==1?(s(),r(m,{key:1},{default:a(()=>[d(u(e.refund_status_text),1)]),_:2},1024)):c("",!0),e.refund_status==2?(s(),r(m,{key:2,type:"danger"},{default:a(()=>[d(u(e.refund_status_text),1)]),_:2},1024)):c("",!0)]),_:1}),o(l,{label:"记录时间",prop:"create_time","min-width":"180"}),o(l,{label:"操作人",prop:"handler","min-width":"120"})]),_:1},8,["data"])),[[k,p(i)]])]),_:1},8,["modelValue"])])}}});export{S as _};
diff --git a/server/public/admin/assets/refund_record-BM0eqNDQ.js b/server/public/admin/assets/refund_record-D7tpyPDx.js
similarity index 91%
rename from server/public/admin/assets/refund_record-BM0eqNDQ.js
rename to server/public/admin/assets/refund_record-D7tpyPDx.js
index 077422eb..94826a54 100644
--- a/server/public/admin/assets/refund_record-BM0eqNDQ.js
+++ b/server/public/admin/assets/refund_record-D7tpyPDx.js
@@ -1 +1 @@
-import{J as Z,D as ee,B as te,C as ne,P as ae,Q as oe,i as le,m as se,l as re,M as ie,N as de,U as me,L as ue}from"./element-plus-Dmpg6ayE.js";import{_ as pe}from"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import{h as _e,i as fe}from"./index-DWk_b8Nv.js";import{_ as ce}from"./index.vue_vue_type_script_setup_true_lang-BzILDzNF.js";import{w as h}from"./@vue/runtime-dom-iFk_KP8y.js";import{d as ge,e as ye,f as be}from"./finance-D5VZU_9K.js";import{u as ve}from"./usePaging-B_C_SZ2Z.js";import{_ as we}from"./refund-log.vue_vue_type_script_setup_true_lang-gLb3pbTv.js";import{f as S,as as xe,ak as i,I as D,a as t,aN as a,J as r,O as d,F as Ve,ap as ke,G as _,aP as K,H as w}from"./@vue/runtime-core-C0pg79pw.js";import{Q as m}from"./@vue/shared-mAAVTE9n.js";import{y as n,a as U,r as F,o as x}from"./@vue/reactivity-BIbyPIZJ.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const Ce={class:"flex flex-wrap"},Te={class:"w-1/2 md:w-1/4"},Ee={class:"text-6xl"},he={class:"w-1/2 md:w-1/4"},Ke={class:"text-6xl"},Ue={class:"w-1/2 md:w-1/4"},Re={class:"text-6xl"},Le={class:"w-1/2 md:w-1/4"},Pe={class:"text-6xl"},$e={class:"flex items-center"},Be={class:"flex justify-end mt-4"},Ne=S({name:"refundRecord"}),Tt=S({...Ne,setup(De){const l=F({sn:"",order_sn:"",user_info:"",refund_type:"",start_time:"",end_time:"",refund_status:""}),g=F({total:0,ing:0,success:0,error:0}),b=x(!1),R=x(0),V=x(0),L=x([{name:"全部",type:"",numKey:"total"},{name:"退款中",type:0,numKey:"ing"},{name:"退款成功",type:1,numKey:"success"},{name:"退款失败",type:2,numKey:"error"}]),{pager:f,getLists:k,resetPage:y,resetParams:I}=ve({fetchFun:ge,params:l}),O=async u=>{await fe.confirm("确认重新退款?"),await ye({record_id:u}),k(),P()},j=async u=>{b.value=!0,R.value=u},A=u=>{l.refund_status=L.value[u].type,y()},P=async()=>{const u=await be();Object.assign(g,u)};return P(),k(),(u,e)=>{const C=Z,T=ne,c=te,$=oe,J=ae,Q=ce,v=le,q=ee,p=de,z=_e,E=me,G=ie,H=re,M=se,W=pe,B=xe("perms"),X=ue;return i(),D("div",null,[t(C,{class:"!border-none mb-4",shadow:"never"},{default:a(()=>[r("div",Ce,[r("div",Te,[e[9]||(e[9]=r("div",{class:"leading-10"},"累计退款金额 (元)",-1)),r("div",Ee,m(n(g).total),1)]),r("div",he,[e[10]||(e[10]=r("div",{class:"leading-10"},"退款中金额 (元)",-1)),r("div",Ke,m(n(g).ing),1)]),r("div",Ue,[e[11]||(e[11]=r("div",{class:"leading-10"},"退款成功金额 (元)",-1)),r("div",Re,m(n(g).success),1)]),r("div",Le,[e[12]||(e[12]=r("div",{class:"leading-10"},"退款失败金额 (元)",-1)),r("div",Pe,m(n(g).error),1)])])]),_:1}),t(C,{class:"!border-none",shadow:"never"},{default:a(()=>[t(q,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:n(l),inline:!0},{default:a(()=>[t(c,{class:"w-[280px]",label:"退款单号"},{default:a(()=>[t(T,{modelValue:n(l).sn,"onUpdate:modelValue":e[0]||(e[0]=o=>n(l).sn=o),placeholder:"请输入退款单号",clearable:"",onKeyup:h(n(y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"来源单号"},{default:a(()=>[t(T,{modelValue:n(l).order_sn,"onUpdate:modelValue":e[1]||(e[1]=o=>n(l).order_sn=o),placeholder:"请输入来源单号",clearable:"",onKeyup:h(n(y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"用户信息"},{default:a(()=>[t(T,{modelValue:n(l).user_info,"onUpdate:modelValue":e[2]||(e[2]=o=>n(l).user_info=o),placeholder:"请输入用户信息",clearable:"",onKeyup:h(n(y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"退款类型"},{default:a(()=>[t(J,{modelValue:n(l).refund_type,"onUpdate:modelValue":e[3]||(e[3]=o=>n(l).refund_type=o)},{default:a(()=>[t($,{label:"全部",value:""}),t($,{label:"后台退款",value:1})]),_:1},8,["modelValue"])]),_:1}),t(c,{label:"记录时间"},{default:a(()=>[t(Q,{startTime:n(l).start_time,"onUpdate:startTime":e[4]||(e[4]=o=>n(l).start_time=o),endTime:n(l).end_time,"onUpdate:endTime":e[5]||(e[5]=o=>n(l).end_time=o)},null,8,["startTime","endTime"])]),_:1}),t(c,null,{default:a(()=>[t(v,{type:"primary",onClick:n(y)},{default:a(()=>[...e[13]||(e[13]=[d("查询",-1)])]),_:1},8,["onClick"]),t(v,{onClick:n(I)},{default:a(()=>[...e[14]||(e[14]=[d("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),t(C,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[t(M,{modelValue:n(V),"onUpdate:modelValue":e[6]||(e[6]=o=>U(V)?V.value=o:null),onTabChange:A},{default:a(()=>[(i(!0),D(Ve,null,ke(n(L),(o,N)=>(i(),_(H,{label:`${o.name}(${n(f).extend[o.numKey]??0})`,name:N,key:N},{default:a(()=>[K((i(),_(G,{size:"large",data:n(f).lists},{default:a(()=>[t(p,{label:"退款单号",prop:"sn","min-width":"190"}),t(p,{label:"用户信息","min-width":"160"},{default:a(({row:s})=>[r("div",$e,[t(z,{class:"flex-none mr-2",src:s.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),d(" "+m(s.nickname),1)])]),_:1}),t(p,{label:"来源单号",prop:"order_sn","min-width":"190"}),t(p,{label:"退款金额","min-width":"100"},{default:a(({row:s})=>[d(" ¥ "+m(s.refund_amount),1)]),_:1}),t(p,{label:"退款类型",prop:"refund_type_text","min-width":"100"}),t(p,{label:"退款状态",prop:"","min-width":"100"},{default:a(({row:s})=>[s.refund_status==0?(i(),_(E,{key:0,type:"warning"},{default:a(()=>[d(m(s.refund_status_text),1)]),_:2},1024)):w("",!0),s.refund_status==1?(i(),_(E,{key:1},{default:a(()=>[d(m(s.refund_status_text),1)]),_:2},1024)):w("",!0),s.refund_status==2?(i(),_(E,{key:2,type:"danger"},{default:a(()=>[d(m(s.refund_status_text),1)]),_:2},1024)):w("",!0)]),_:1}),t(p,{label:"记录时间",prop:"create_time","min-width":"180"}),t(p,{label:"操作",width:"180",fixed:"right"},{default:a(({row:s})=>[K((i(),_(v,{type:"primary",link:"",onClick:Y=>j(s.id)},{default:a(()=>[...e[15]||(e[15]=[d(" 退款日志 ",-1)])]),_:1},8,["onClick"])),[[B,["finance.refund/log"]]]),s.refund_status==2?K((i(),_(v,{key:0,type:"primary",link:"",onClick:Y=>O(s.id)},{default:a(()=>[...e[16]||(e[16]=[d(" 重新退款 ",-1)])]),_:1},8,["onClick"])),[[B,["recharge.recharge/refundAgain"]]]):w("",!0)]),_:1})]),_:1},8,["data"])),[[X,n(f).loading]])]),_:1},8,["label","name"]))),128))]),_:1},8,["modelValue"]),r("div",Be,[t(W,{modelValue:n(f),"onUpdate:modelValue":e[7]||(e[7]=o=>U(f)?f.value=o:null),onChange:n(k)},null,8,["modelValue","onChange"])])]),_:1}),t(we,{modelValue:n(b),"onUpdate:modelValue":e[8]||(e[8]=o=>U(b)?b.value=o:null),"refund-id":n(R)},null,8,["modelValue","refund-id"])])}}});export{Tt as default};
+import{J as Z,D as ee,B as te,C as ne,P as ae,Q as oe,i as le,m as se,l as re,M as ie,N as de,U as me,L as ue}from"./element-plus-DCRlGjqn.js";import{_ as pe}from"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import{h as _e,i as fe}from"./index-DsBUBCgs.js";import{_ as ce}from"./index.vue_vue_type_script_setup_true_lang-B1hInEWx.js";import{w as h}from"./@vue/runtime-dom-iFk_KP8y.js";import{d as ge,e as ye,f as be}from"./finance-vyug3kmy.js";import{u as ve}from"./usePaging-B_C_SZ2Z.js";import{_ as we}from"./refund-log.vue_vue_type_script_setup_true_lang-ib3kPJ_x.js";import{f as S,as as xe,ak as i,I as D,a as t,aN as a,J as r,O as d,F as Ve,ap as ke,G as _,aP as K,H as w}from"./@vue/runtime-core-C0pg79pw.js";import{Q as m}from"./@vue/shared-mAAVTE9n.js";import{y as n,a as U,r as F,o as x}from"./@vue/reactivity-BIbyPIZJ.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const Ce={class:"flex flex-wrap"},Te={class:"w-1/2 md:w-1/4"},Ee={class:"text-6xl"},he={class:"w-1/2 md:w-1/4"},Ke={class:"text-6xl"},Ue={class:"w-1/2 md:w-1/4"},Re={class:"text-6xl"},Le={class:"w-1/2 md:w-1/4"},Pe={class:"text-6xl"},$e={class:"flex items-center"},Be={class:"flex justify-end mt-4"},Ne=S({name:"refundRecord"}),Tt=S({...Ne,setup(De){const l=F({sn:"",order_sn:"",user_info:"",refund_type:"",start_time:"",end_time:"",refund_status:""}),g=F({total:0,ing:0,success:0,error:0}),b=x(!1),R=x(0),V=x(0),L=x([{name:"全部",type:"",numKey:"total"},{name:"退款中",type:0,numKey:"ing"},{name:"退款成功",type:1,numKey:"success"},{name:"退款失败",type:2,numKey:"error"}]),{pager:f,getLists:k,resetPage:y,resetParams:I}=ve({fetchFun:ge,params:l}),O=async u=>{await fe.confirm("确认重新退款?"),await ye({record_id:u}),k(),P()},j=async u=>{b.value=!0,R.value=u},A=u=>{l.refund_status=L.value[u].type,y()},P=async()=>{const u=await be();Object.assign(g,u)};return P(),k(),(u,e)=>{const C=Z,T=ne,c=te,$=oe,J=ae,Q=ce,v=le,q=ee,p=de,z=_e,E=me,G=ie,H=re,M=se,W=pe,B=xe("perms"),X=ue;return i(),D("div",null,[t(C,{class:"!border-none mb-4",shadow:"never"},{default:a(()=>[r("div",Ce,[r("div",Te,[e[9]||(e[9]=r("div",{class:"leading-10"},"累计退款金额 (元)",-1)),r("div",Ee,m(n(g).total),1)]),r("div",he,[e[10]||(e[10]=r("div",{class:"leading-10"},"退款中金额 (元)",-1)),r("div",Ke,m(n(g).ing),1)]),r("div",Ue,[e[11]||(e[11]=r("div",{class:"leading-10"},"退款成功金额 (元)",-1)),r("div",Re,m(n(g).success),1)]),r("div",Le,[e[12]||(e[12]=r("div",{class:"leading-10"},"退款失败金额 (元)",-1)),r("div",Pe,m(n(g).error),1)])])]),_:1}),t(C,{class:"!border-none",shadow:"never"},{default:a(()=>[t(q,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:n(l),inline:!0},{default:a(()=>[t(c,{class:"w-[280px]",label:"退款单号"},{default:a(()=>[t(T,{modelValue:n(l).sn,"onUpdate:modelValue":e[0]||(e[0]=o=>n(l).sn=o),placeholder:"请输入退款单号",clearable:"",onKeyup:h(n(y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"来源单号"},{default:a(()=>[t(T,{modelValue:n(l).order_sn,"onUpdate:modelValue":e[1]||(e[1]=o=>n(l).order_sn=o),placeholder:"请输入来源单号",clearable:"",onKeyup:h(n(y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"用户信息"},{default:a(()=>[t(T,{modelValue:n(l).user_info,"onUpdate:modelValue":e[2]||(e[2]=o=>n(l).user_info=o),placeholder:"请输入用户信息",clearable:"",onKeyup:h(n(y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"退款类型"},{default:a(()=>[t(J,{modelValue:n(l).refund_type,"onUpdate:modelValue":e[3]||(e[3]=o=>n(l).refund_type=o)},{default:a(()=>[t($,{label:"全部",value:""}),t($,{label:"后台退款",value:1})]),_:1},8,["modelValue"])]),_:1}),t(c,{label:"记录时间"},{default:a(()=>[t(Q,{startTime:n(l).start_time,"onUpdate:startTime":e[4]||(e[4]=o=>n(l).start_time=o),endTime:n(l).end_time,"onUpdate:endTime":e[5]||(e[5]=o=>n(l).end_time=o)},null,8,["startTime","endTime"])]),_:1}),t(c,null,{default:a(()=>[t(v,{type:"primary",onClick:n(y)},{default:a(()=>[...e[13]||(e[13]=[d("查询",-1)])]),_:1},8,["onClick"]),t(v,{onClick:n(I)},{default:a(()=>[...e[14]||(e[14]=[d("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),t(C,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[t(M,{modelValue:n(V),"onUpdate:modelValue":e[6]||(e[6]=o=>U(V)?V.value=o:null),onTabChange:A},{default:a(()=>[(i(!0),D(Ve,null,ke(n(L),(o,N)=>(i(),_(H,{label:`${o.name}(${n(f).extend[o.numKey]??0})`,name:N,key:N},{default:a(()=>[K((i(),_(G,{size:"large",data:n(f).lists},{default:a(()=>[t(p,{label:"退款单号",prop:"sn","min-width":"190"}),t(p,{label:"用户信息","min-width":"160"},{default:a(({row:s})=>[r("div",$e,[t(z,{class:"flex-none mr-2",src:s.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),d(" "+m(s.nickname),1)])]),_:1}),t(p,{label:"来源单号",prop:"order_sn","min-width":"190"}),t(p,{label:"退款金额","min-width":"100"},{default:a(({row:s})=>[d(" ¥ "+m(s.refund_amount),1)]),_:1}),t(p,{label:"退款类型",prop:"refund_type_text","min-width":"100"}),t(p,{label:"退款状态",prop:"","min-width":"100"},{default:a(({row:s})=>[s.refund_status==0?(i(),_(E,{key:0,type:"warning"},{default:a(()=>[d(m(s.refund_status_text),1)]),_:2},1024)):w("",!0),s.refund_status==1?(i(),_(E,{key:1},{default:a(()=>[d(m(s.refund_status_text),1)]),_:2},1024)):w("",!0),s.refund_status==2?(i(),_(E,{key:2,type:"danger"},{default:a(()=>[d(m(s.refund_status_text),1)]),_:2},1024)):w("",!0)]),_:1}),t(p,{label:"记录时间",prop:"create_time","min-width":"180"}),t(p,{label:"操作",width:"180",fixed:"right"},{default:a(({row:s})=>[K((i(),_(v,{type:"primary",link:"",onClick:Y=>j(s.id)},{default:a(()=>[...e[15]||(e[15]=[d(" 退款日志 ",-1)])]),_:1},8,["onClick"])),[[B,["finance.refund/log"]]]),s.refund_status==2?K((i(),_(v,{key:0,type:"primary",link:"",onClick:Y=>O(s.id)},{default:a(()=>[...e[16]||(e[16]=[d(" 重新退款 ",-1)])]),_:1},8,["onClick"])),[[B,["recharge.recharge/refundAgain"]]]):w("",!0)]),_:1})]),_:1},8,["data"])),[[X,n(f).loading]])]),_:1},8,["label","name"]))),128))]),_:1},8,["modelValue"]),r("div",Be,[t(W,{modelValue:n(f),"onUpdate:modelValue":e[7]||(e[7]=o=>U(f)?f.value=o:null),onChange:n(k)},null,8,["modelValue","onChange"])])]),_:1}),t(we,{modelValue:n(b),"onUpdate:modelValue":e[8]||(e[8]=o=>U(b)?b.value=o:null),"refund-id":n(R)},null,8,["modelValue","refund-id"])])}}});export{Tt as default};
diff --git a/server/public/admin/assets/relations-add-Bg4Fxdpi.js b/server/public/admin/assets/relations-add-mAwef3nT.js
similarity index 74%
rename from server/public/admin/assets/relations-add-Bg4Fxdpi.js
rename to server/public/admin/assets/relations-add-mAwef3nT.js
index 8076d92b..c45da28b 100644
--- a/server/public/admin/assets/relations-add-Bg4Fxdpi.js
+++ b/server/public/admin/assets/relations-add-mAwef3nT.js
@@ -1 +1 @@
-import{_ as o}from"./relations-add.vue_vue_type_script_setup_true_lang-C6N6sEvb.js";import"./element-plus-Dmpg6ayE.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/runtime-core-C0pg79pw.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./code-Cp_4CaAu.js";import"./index-DWk_b8Nv.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-BKLtguGT.js";import"./useDictOptions-7gUIpUOu.js";export{o as default};
+import{_ as o}from"./relations-add.vue_vue_type_script_setup_true_lang-BC_0jkd3.js";import"./element-plus-DCRlGjqn.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/runtime-core-C0pg79pw.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./code-Dqg7h3jf.js";import"./index-DsBUBCgs.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-dlM42V9p.js";import"./useDictOptions-CvKg9Pzf.js";export{o as default};
diff --git a/server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-C6N6sEvb.js b/server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-BC_0jkd3.js
similarity index 91%
rename from server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-C6N6sEvb.js
rename to server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-BC_0jkd3.js
index 2c271863..121b6fb3 100644
--- a/server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-C6N6sEvb.js
+++ b/server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-BC_0jkd3.js
@@ -1 +1 @@
-import{D as A,B as I,P,Q as N,C as O}from"./element-plus-Dmpg6ayE.js";import{a as S}from"./code-Cp_4CaAu.js";import{P as $}from"./index-BKLtguGT.js";import{u as G}from"./useDictOptions-7gUIpUOu.js";import{f as L,ak as u,I as m,a as t,aN as n,F as i,ap as _,G as y,A as M}from"./@vue/runtime-core-C0pg79pw.js";import{y as a,u as g,r as Q,o as T}from"./@vue/reactivity-BIbyPIZJ.js";const j={class:"edit-popup"},Y=L({__name:"relations-add",props:{column:{type:Array,default:()=>[]},types:{type:Array,default:()=>[]}},emits:["add","close","edit"],setup(k,{expose:x,emit:C}){const v=C,V=g(),d=g(),p=T("add"),E=M(()=>p.value=="edit"?"编辑关联":"新增关联"),o=Q({name:"",model:"",type:"",local_key:"",foreign_key:""}),R={name:[{required:!0,message:"请输入关联名称"}],type:[{required:!0,message:"请选择关联类型"}],model:[{required:!0,message:"请选择关联模型"}],local_key:[{required:!0,message:"请选择关联健"}],foreign_key:[{required:!0,message:"请输入外键"}]},{optionsData:q}=G({models:{api:S}}),w=async()=>{var r,e;await((r=V.value)==null?void 0:r.validate()),(e=d.value)==null||e.close(),v(p.value,o)},D=(r="add")=>{var e;p.value=r,(e=d.value)==null||e.open()},F=r=>{for(const e in o)r[e]!=null&&r[e]!=null&&(o[e]=r[e])},U=()=>{v("close")};return x({open:D,setFormData:F}),(r,e)=>{const f=N,c=P,s=I,b=O,B=A;return u(),m("div",j,[t($,{ref_key:"popupRef",ref:d,title:a(E),async:!0,width:"550px",onConfirm:w,onClose:U},{default:n(()=>[t(B,{ref_key:"formRef",ref:V,model:a(o),"label-width":"84px",rules:R},{default:n(()=>[t(s,{label:"关联类型",prop:"type"},{default:n(()=>[t(c,{class:"flex-1",modelValue:a(o).type,"onUpdate:modelValue":e[0]||(e[0]=l=>a(o).type=l),placeholder:"请选择关联类型"},{default:n(()=>[(u(!0),m(i,null,_(k.types,(l,h)=>(u(),y(f,{key:h,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"关联名称",prop:"name"},{default:n(()=>[t(b,{modelValue:a(o).name,"onUpdate:modelValue":e[1]||(e[1]=l=>a(o).name=l),placeholder:"请输入关联名称"},null,8,["modelValue"])]),_:1}),t(s,{label:"关联模型",prop:"model"},{default:n(()=>[t(c,{class:"flex-1",modelValue:a(o).model,"onUpdate:modelValue":e[2]||(e[2]=l=>a(o).model=l),placeholder:"请选择关联模型"},{default:n(()=>[(u(!0),m(i,null,_(a(q).models,l=>(u(),y(f,{label:l,value:l,key:l},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"关联健",prop:"local_key"},{default:n(()=>[t(c,{class:"flex-1",modelValue:a(o).local_key,"onUpdate:modelValue":e[3]||(e[3]=l=>a(o).local_key=l),clearable:"",placeholder:"请选择关联健"},{default:n(()=>[(u(!0),m(i,null,_(k.column,l=>(u(),y(f,{key:l.id,value:l.column_name,label:`${l.column_name}:${l.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"外键",prop:"foreign_key"},{default:n(()=>[t(b,{modelValue:a(o).foreign_key,"onUpdate:modelValue":e[4]||(e[4]=l=>a(o).foreign_key=l),placeholder:"关联表外键或中间表的外键"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{Y as _};
+import{D as A,B as I,P,Q as N,C as O}from"./element-plus-DCRlGjqn.js";import{a as S}from"./code-Dqg7h3jf.js";import{P as $}from"./index-dlM42V9p.js";import{u as G}from"./useDictOptions-CvKg9Pzf.js";import{f as L,ak as u,I as m,a as t,aN as n,F as i,ap as _,G as y,A as M}from"./@vue/runtime-core-C0pg79pw.js";import{y as a,u as g,r as Q,o as T}from"./@vue/reactivity-BIbyPIZJ.js";const j={class:"edit-popup"},Y=L({__name:"relations-add",props:{column:{type:Array,default:()=>[]},types:{type:Array,default:()=>[]}},emits:["add","close","edit"],setup(k,{expose:x,emit:C}){const v=C,V=g(),d=g(),p=T("add"),E=M(()=>p.value=="edit"?"编辑关联":"新增关联"),o=Q({name:"",model:"",type:"",local_key:"",foreign_key:""}),R={name:[{required:!0,message:"请输入关联名称"}],type:[{required:!0,message:"请选择关联类型"}],model:[{required:!0,message:"请选择关联模型"}],local_key:[{required:!0,message:"请选择关联健"}],foreign_key:[{required:!0,message:"请输入外键"}]},{optionsData:q}=G({models:{api:S}}),w=async()=>{var r,e;await((r=V.value)==null?void 0:r.validate()),(e=d.value)==null||e.close(),v(p.value,o)},D=(r="add")=>{var e;p.value=r,(e=d.value)==null||e.open()},F=r=>{for(const e in o)r[e]!=null&&r[e]!=null&&(o[e]=r[e])},U=()=>{v("close")};return x({open:D,setFormData:F}),(r,e)=>{const f=N,c=P,s=I,b=O,B=A;return u(),m("div",j,[t($,{ref_key:"popupRef",ref:d,title:a(E),async:!0,width:"550px",onConfirm:w,onClose:U},{default:n(()=>[t(B,{ref_key:"formRef",ref:V,model:a(o),"label-width":"84px",rules:R},{default:n(()=>[t(s,{label:"关联类型",prop:"type"},{default:n(()=>[t(c,{class:"flex-1",modelValue:a(o).type,"onUpdate:modelValue":e[0]||(e[0]=l=>a(o).type=l),placeholder:"请选择关联类型"},{default:n(()=>[(u(!0),m(i,null,_(k.types,(l,h)=>(u(),y(f,{key:h,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"关联名称",prop:"name"},{default:n(()=>[t(b,{modelValue:a(o).name,"onUpdate:modelValue":e[1]||(e[1]=l=>a(o).name=l),placeholder:"请输入关联名称"},null,8,["modelValue"])]),_:1}),t(s,{label:"关联模型",prop:"model"},{default:n(()=>[t(c,{class:"flex-1",modelValue:a(o).model,"onUpdate:modelValue":e[2]||(e[2]=l=>a(o).model=l),placeholder:"请选择关联模型"},{default:n(()=>[(u(!0),m(i,null,_(a(q).models,l=>(u(),y(f,{label:l,value:l,key:l},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"关联健",prop:"local_key"},{default:n(()=>[t(c,{class:"flex-1",modelValue:a(o).local_key,"onUpdate:modelValue":e[3]||(e[3]=l=>a(o).local_key=l),clearable:"",placeholder:"请选择关联健"},{default:n(()=>[(u(!0),m(i,null,_(k.column,l=>(u(),y(f,{key:l.id,value:l.column_name,label:`${l.column_name}:${l.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"外键",prop:"foreign_key"},{default:n(()=>[t(b,{modelValue:a(o).foreign_key,"onUpdate:modelValue":e[4]||(e[4]=l=>a(o).foreign_key=l),placeholder:"关联表外键或中间表的外键"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{Y as _};
diff --git a/server/public/admin/assets/rich_text-BkZKCgNi.js b/server/public/admin/assets/rich_text-C8-S28BG.js
similarity index 77%
rename from server/public/admin/assets/rich_text-BkZKCgNi.js
rename to server/public/admin/assets/rich_text-C8-S28BG.js
index bc9d9a3e..a8cb9a88 100644
--- a/server/public/admin/assets/rich_text-BkZKCgNi.js
+++ b/server/public/admin/assets/rich_text-C8-S28BG.js
@@ -1 +1 @@
-import{J as l}from"./element-plus-Dmpg6ayE.js";import{_ as n}from"./index.vue_vue_type_style_index_0_lang-D1-Jsym2.js";import{f as s,ak as d,I as u,a as r,aN as a}from"./@vue/runtime-core-C0pg79pw.js";import{y as m,r as _}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./@wangeditor/editor-Cyf37SuL.js";import"./@wangeditor/editor-for-vue-qHmT1xEb.js";import"./picker-B5ZiOH7-.js";import"./index-BKLtguGT.js";import"./index-DWk_b8Nv.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-i7zXlMKf.js";import"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import"./index-DGzewPWT.js";import"./index-CtFRZE9b.js";import"./index.vue_vue_type_script_setup_true_lang-DyQAa4vY.js";import"./file-CSSg91XZ.js";import"./usePaging-B_C_SZ2Z.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";const ho=s({__name:"rich_text",setup(c){const o=_({value1:"",value2:""});return(f,t)=>{const i=n,e=l;return d(),u("div",null,[r(e,{header:"基础使用",shadow:"never",class:"!border-none"},{default:a(()=>[r(i,{modelValue:m(o).value1,"onUpdate:modelValue":t[0]||(t[0]=p=>m(o).value1=p),height:"500px"},null,8,["modelValue"])]),_:1}),r(e,{header:"简洁模式",shadow:"never",class:"!border-none mt-4"},{default:a(()=>[r(i,{modelValue:m(o).value2,"onUpdate:modelValue":t[1]||(t[1]=p=>m(o).value2=p),height:"500px",mode:"simple"},null,8,["modelValue"])]),_:1})])}}});export{ho as default};
+import{J as l}from"./element-plus-DCRlGjqn.js";import{_ as n}from"./index.vue_vue_type_style_index_0_lang-DFsRVdCe.js";import{f as s,ak as d,I as u,a as r,aN as a}from"./@vue/runtime-core-C0pg79pw.js";import{y as m,r as _}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./@wangeditor/editor-Cyf37SuL.js";import"./@wangeditor/editor-for-vue-qHmT1xEb.js";import"./picker-h7OmyGiV.js";import"./index-dlM42V9p.js";import"./index-DsBUBCgs.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-DrXr9qPh.js";import"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import"./index-BmvifxBX.js";import"./index-CF2_JamS.js";import"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import"./file-DRO9_cYT.js";import"./usePaging-B_C_SZ2Z.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";const ho=s({__name:"rich_text",setup(c){const o=_({value1:"",value2:""});return(f,t)=>{const i=n,e=l;return d(),u("div",null,[r(e,{header:"基础使用",shadow:"never",class:"!border-none"},{default:a(()=>[r(i,{modelValue:m(o).value1,"onUpdate:modelValue":t[0]||(t[0]=p=>m(o).value1=p),height:"500px"},null,8,["modelValue"])]),_:1}),r(e,{header:"简洁模式",shadow:"never",class:"!border-none mt-4"},{default:a(()=>[r(i,{modelValue:m(o).value2,"onUpdate:modelValue":t[1]||(t[1]=p=>m(o).value2=p),height:"500px",mode:"simple"},null,8,["modelValue"])]),_:1})])}}});export{ho as default};
diff --git a/server/public/admin/assets/role-BIezdAsx.js b/server/public/admin/assets/role-ChMtxk-x.js
similarity index 83%
rename from server/public/admin/assets/role-BIezdAsx.js
rename to server/public/admin/assets/role-ChMtxk-x.js
index ccc12649..289c41cc 100644
--- a/server/public/admin/assets/role-BIezdAsx.js
+++ b/server/public/admin/assets/role-ChMtxk-x.js
@@ -1 +1 @@
-import{r as t}from"./index-DWk_b8Nv.js";function l(r){return t.get({url:"/auth.role/lists",params:r})}function o(r){return t.get({url:"/auth.role/all",params:r})}function u(r){return t.post({url:"/auth.role/add",params:r})}function n(r){return t.post({url:"/auth.role/edit",params:r})}function a(r){return t.post({url:"/auth.role/delete",params:r})}export{n as a,u as b,l as c,a as d,o as r};
+import{r as t}from"./index-DsBUBCgs.js";function l(r){return t.get({url:"/auth.role/lists",params:r})}function o(r){return t.get({url:"/auth.role/all",params:r})}function u(r){return t.post({url:"/auth.role/add",params:r})}function n(r){return t.post({url:"/auth.role/edit",params:r})}function a(r){return t.post({url:"/auth.role/delete",params:r})}export{n as a,u as b,l as c,a as d,o as r};
diff --git a/server/public/admin/assets/roster-_tBANg8j.js b/server/public/admin/assets/roster-CL5VYWNx.js
similarity index 88%
rename from server/public/admin/assets/roster-_tBANg8j.js
rename to server/public/admin/assets/roster-CL5VYWNx.js
index e9bc37da..10598578 100644
--- a/server/public/admin/assets/roster-_tBANg8j.js
+++ b/server/public/admin/assets/roster-CL5VYWNx.js
@@ -1 +1 @@
-import{D as qe,B as Ue,C as $e,i as Ie,K as Se,M as Me,N as Be,L as We,J as Ne,Y as Re,ab as he,P as Te,Q as Le,h as Fe,G as Ae,I as Ge,X as Oe,ac as Pe,H as ze,a as je}from"./element-plus-Dmpg6ayE.js";import{d as M,g as He}from"./dayjs-DG77mNTn.js";import{i as m,_ as Je}from"./index-DWk_b8Nv.js";import{a as Qe}from"./admin-CN6Ez_uX.js";import{b as Ke,c as Xe,r as Ze,e as et}from"./doctor-B1l88RG7.js";import{f as ae,b as tt,ak as f,I as k,a,aN as o,J as v,O as s,aP as at,G as B,F as h,ap as T,H as te,A as L}from"./@vue/runtime-core-C0pg79pw.js";import{o as _}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as Y,o as lt}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const ot={class:"doctor-roster p-4"},st={class:"flex justify-between items-center"},nt={class:"mb-4"},rt={class:"text-center mb-4 text-gray-600"},ut=["onClick"],dt={key:0,class:"text-xs text-gray-400 text-center py-2"},it={key:1,class:"space-y-1"},mt={class:"flex items-center gap-2 flex-wrap"},pt={class:"w-full space-y-2"},ft=ae({name:"doctorRoster"}),vt=ae({...ft,setup(_t){M.extend(He);const F=_(""),g=_(M().startOf("isoWeek")),A=_(!1),W=_(!1),V=_(null),x=_(""),j=_([]),U=_(!1),G=_(!1),d=_({id:null,doctorId:0,date:"",start_time:"09:00",end_time:"12:00",shift_type:"",slot_minutes:15,status:1,quota:0,max_patients:0,remark:""}),$=_(!1),O=_(!1),H=()=>[{start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,quota:0},{start_time:"14:00",end_time:"18:00",shift_type:"day",slot_minutes:15,quota:0}],r=_({doctorIds:[],dateRange:[],weekdays:[1,2,3,4,5],status:1,remark:"",segments:H()}),q=_([]),le=L(()=>{const t=F.value.trim();return t?q.value.filter(e=>e.doctorName.includes(t)):q.value}),oe=L(()=>!V.value||!x.value?"当日排班":`${V.value.doctorName} · ${x.value}`),se=L(()=>{const t=[],e=["周一","周二","周三","周四","周五","周六","周日"];for(let u=0;u<7;u++){const i=g.value.add(u,"day");t.push({date:i.format("YYYY-MM-DD"),label:`${e[u]} ${i.format("MM-DD")}`})}return t}),ne=L(()=>{const t=g.value.format("YYYY-MM-DD"),e=g.value.add(6,"day").format("YYYY-MM-DD");return`${t} 至 ${e}`});function J(t){return{1:"出诊",2:"停诊",3:"休息",4:"请假"}[t]??String(t)}function Q(t){return t==="day"?"白班":t==="night"?"夜班":"—"}function re(t){return t===1?"bg-emerald-50 text-emerald-800 border border-emerald-100":t===2?"bg-amber-50 text-amber-900 border border-amber-100":t===3?"bg-slate-100 text-slate-600 border border-slate-200":"bg-gray-100 text-gray-700 border border-gray-200"}function ue(t){const e=`${t.start_time}-${t.end_time}`,u=Q(t.shift_type),i=u!=="—"?` ${u}`:"";if(t.status===1){const n=t.quota>0?` 号源${t.quota}`:"";return`${e}${i} 出诊${n}`}return`${e}${i} ${J(t.status)}`}function K(t,e){return t.rostersByDate[e]||[]}function N(){if(!V.value||!x.value)return;const t=q.value.find(e=>e.doctorId===V.value.doctorId);t&&(j.value=[...t.rostersByDate[x.value]||[]].sort((e,u)=>e.start_time.localeCompare(u.start_time)))}function de(t,e){V.value=t,x.value=e,N(),W.value=!0}function X(t){if(!V.value||!x.value){m.msgWarning("请先选择日期格子");return}t?d.value={id:t.id,doctorId:V.value.doctorId,date:x.value,start_time:t.start_time||"09:00",end_time:t.end_time||"12:00",shift_type:t.shift_type||"",slot_minutes:t.slot_minutes||15,status:t.status,quota:t.quota??0,max_patients:t.max_patients??0,remark:t.remark||""}:d.value={id:null,doctorId:V.value.doctorId,date:x.value,start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,status:1,quota:0,max_patients:0,remark:""},U.value=!0}async function ie(){const t=d.value;if(!t.start_time||!t.end_time){m.msgWarning("请填写接诊开始与结束时间");return}if(t.status===1&&t.start_time>=t.end_time){m.msgWarning("出诊时结束时间须晚于开始时间");return}if(t.start_time>=t.end_time){m.msgWarning("结束时间须晚于开始时间");return}G.value=!0;try{const e={doctor_id:t.doctorId,date:t.date,period:"segment",start_time:t.start_time,end_time:t.end_time,slot_minutes:t.slot_minutes||15,status:t.status,quota:t.status===1?t.quota:0,max_patients:t.status===1?t.max_patients:0,remark:t.remark||""};t.shift_type&&(e.shift_type=t.shift_type),t.id&&(e.id=t.id),await Ke(e),m.msgSuccess("保存成功"),U.value=!1,await c(),N()}catch{m.msgError("保存失败")}finally{G.value=!1}}async function me(t){try{await je.confirm("确定删除该时段?","提示",{type:"warning"})}catch{return}try{await Xe({id:t.id}),m.msgSuccess("已删除"),await c(),N()}catch{m.msgError("删除失败")}}const pe=async()=>{try{const t=await Qe({page_no:1,page_size:1e3,role_id:1});q.value=((t==null?void 0:t.lists)||[]).map(e=>({doctorId:e.id,doctorName:e.name||e.account,rostersByDate:{}})),await c()}catch(t){console.error("加载医生列表失败:",t),m.msgError("加载医生列表失败")}},c=async()=>{A.value=!0;try{const t={start_date:g.value.format("YYYY-MM-DD"),end_date:g.value.add(6,"day").format("YYYY-MM-DD")},e=await Ze(t),u=(e==null?void 0:e.lists)||[];q.value.forEach(i=>{i.rostersByDate={},u.forEach(n=>{if(n.doctor_id!==i.doctorId)return;const b=n.date;i.rostersByDate[b]||(i.rostersByDate[b]=[]),i.rostersByDate[b].push({id:n.id,status:n.status,quota:n.quota||0,max_patients:n.max_patients,start_time:n.start_time||fe(n.period),end_time:n.end_time||ve(n.period),shift_type:n.shift_type,slot_minutes:n.slot_minutes??15,remark:n.remark,period:n.period})})}),N()}catch(t){console.error("加载排班数据失败:",t),m.msgError("加载排班数据失败")}finally{A.value=!1}};function fe(t){return t==="morning"?"09:00":t==="afternoon"?"14:00":t==="night"?"18:00":"09:00"}function ve(t){return t==="morning"?"12:00":t==="afternoon"?"18:00":t==="night"?"22:00":"12:00"}const _e=()=>{c()},ye=()=>{g.value=g.value.subtract(1,"week"),c()},ge=()=>{g.value=g.value.add(1,"week"),c()},be=()=>{g.value=M().startOf("isoWeek"),c()},ke=()=>{r.value={doctorIds:[],dateRange:[],weekdays:[1,2,3,4,5],status:1,remark:"",segments:H()},$.value=!0},Ve=()=>{r.value.segments.push({start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,quota:0})},xe=()=>{r.value.segments.push({start_time:"18:00",end_time:"22:00",shift_type:"night",slot_minutes:15,quota:0})},ce=t=>{r.value.segments.length<=1||r.value.segments.splice(t,1)},we=async()=>{if(r.value.doctorIds.length===0){m.msgWarning("请选择医生");return}if(!r.value.dateRange||r.value.dateRange.length!==2){m.msgWarning("请选择日期范围");return}if(r.value.weekdays.length===0){m.msgWarning("请选择星期");return}for(const t of r.value.segments){if(!t.start_time||!t.end_time){m.msgWarning("请完善时段模板的开始与结束时间");return}if(t.start_time>=t.end_time){m.msgWarning("时段模板中结束时间须晚于开始时间");return}}O.value=!0;try{const t=[],e=M(r.value.dateRange[0]),u=M(r.value.dateRange[1]);let i=e;for(;i.isBefore(u)||i.isSame(u,"day");){const n=i.day();r.value.weekdays.includes(n)&&r.value.doctorIds.forEach(b=>{r.value.segments.forEach(w=>{const y={doctor_id:b,date:i.format("YYYY-MM-DD"),period:"segment",start_time:w.start_time,end_time:w.end_time,slot_minutes:w.slot_minutes||15,status:r.value.status,quota:r.value.status===1?w.quota:0,max_patients:0,remark:r.value.remark};w.shift_type&&(y.shift_type=w.shift_type),t.push(y)})}),i=i.add(1,"day")}if(t.length===0){m.msgWarning("没有符合条件的排班数据");return}await et({rosters:t}),m.msgSuccess(`批量保存成功!共处理 ${t.length} 条记录`),$.value=!1,await c()}catch(t){console.error("批量保存失败:",t),m.msgError("批量保存失败")}finally{O.value=!1}};return tt(()=>{pe()}),(t,e)=>{const u=Ie,i=$e,n=Ue,b=qe,w=Se,y=Be,Z=Me,De=Ne,P=Re,R=he,I=Le,z=Te,S=Fe,D=Ge,ee=Ae,Ce=Oe,E=ze,Ye=Pe,Ee=We;return f(),k("div",ot,[a(De,{shadow:"never"},{header:o(()=>[v("div",st,[e[25]||(e[25]=v("span",{class:"text-lg font-medium"},"医生排班管理",-1)),v("div",null,[a(u,{type:"success",onClick:ke},{default:o(()=>[...e[21]||(e[21]=[s("批量排班",-1)])]),_:1}),a(u,{onClick:ye},{default:o(()=>[...e[22]||(e[22]=[s("上一周",-1)])]),_:1}),a(u,{onClick:ge},{default:o(()=>[...e[23]||(e[23]=[s("下一周",-1)])]),_:1}),a(u,{type:"primary",onClick:be},{default:o(()=>[...e[24]||(e[24]=[s("本周",-1)])]),_:1})])])]),default:o(()=>[v("div",nt,[a(b,{inline:""},{default:o(()=>[a(n,{label:"医生"},{default:o(()=>[a(i,{modelValue:F.value,"onUpdate:modelValue":e[0]||(e[0]=l=>F.value=l),placeholder:"请输入医生姓名",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),a(n,null,{default:o(()=>[a(u,{type:"primary",onClick:_e},{default:o(()=>[...e[26]||(e[26]=[s("查询",-1)])]),_:1})]),_:1})]),_:1})]),a(w,{type:"info",closable:!1,class:"mb-4","show-icon":""},{default:o(()=>[...e[27]||(e[27]=[s(" 每条排班为一段连续可挂号时间;同一天可添加多段(如白班 + 夜班)。休息时段不添加出诊段即可。号源间隔默认 15 分钟;号源数填 0 表示按时段长度自动满号。 ",-1)])]),_:1}),v("div",rt,Y(ne.value),1),at((f(),B(Z,{data:le.value,border:""},{default:o(()=>[a(y,{prop:"doctorName",label:"医生",width:"120",fixed:""}),(f(!0),k(h,null,T(se.value,l=>(f(),B(y,{key:l.date,label:l.label,"min-width":"168"},{default:o(({row:C})=>[v("div",{class:"day-cell rounded border border-dashed border-gray-200 p-1 min-h-[56px] cursor-pointer hover:bg-gray-50",onClick:p=>de(C,l.date)},[K(C,l.date).length===0?(f(),k("div",dt,"点击管理")):(f(),k("div",it,[(f(!0),k(h,null,T(K(C,l.date),p=>(f(),k("div",{key:p.id,class:lt(["text-xs px-1 py-0.5 rounded leading-tight",re(p.status)])},Y(ue(p)),3))),128))]))],8,ut)]),_:2},1032,["label"]))),128))]),_:1},8,["data"])),[[Ee,A.value]])]),_:1}),a(P,{modelValue:W.value,"onUpdate:modelValue":e[3]||(e[3]=l=>W.value=l),title:oe.value,width:"720px","destroy-on-close":""},{footer:o(()=>[a(u,{onClick:e[1]||(e[1]=l=>W.value=!1)},{default:o(()=>[...e[30]||(e[30]=[s("关闭",-1)])]),_:1}),a(u,{type:"primary",onClick:e[2]||(e[2]=l=>X())},{default:o(()=>[...e[31]||(e[31]=[s("添加时段",-1)])]),_:1})]),default:o(()=>[a(Z,{data:j.value,border:"",size:"small","max-height":"360"},{default:o(()=>[a(y,{label:"时间",width:"150"},{default:o(({row:l})=>[s(Y(l.start_time)+" - "+Y(l.end_time),1)]),_:1}),a(y,{label:"班次",width:"80"},{default:o(({row:l})=>[s(Y(Q(l.shift_type)),1)]),_:1}),a(y,{label:"状态",width:"88"},{default:o(({row:l})=>[s(Y(J(l.status)),1)]),_:1}),a(y,{label:"间隔",width:"72"},{default:o(({row:l})=>[s(Y(l.slot_minutes||15)+" 分",1)]),_:1}),a(y,{label:"号源",width:"72"},{default:o(({row:l})=>[s(Y(l.status===1?l.quota||"不限":"-"),1)]),_:1}),a(y,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),a(y,{label:"操作",width:"140",fixed:"right"},{default:o(({row:l})=>[a(u,{type:"primary",link:"",onClick:C=>X(l)},{default:o(()=>[...e[28]||(e[28]=[s("编辑",-1)])]),_:1},8,["onClick"]),a(u,{type:"danger",link:"",onClick:C=>me(l)},{default:o(()=>[...e[29]||(e[29]=[s("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue","title"]),a(P,{modelValue:U.value,"onUpdate:modelValue":e[13]||(e[13]=l=>U.value=l),title:d.value.id?"编辑时段":"添加时段",width:"520px","destroy-on-close":""},{footer:o(()=>[a(u,{onClick:e[12]||(e[12]=l=>U.value=!1)},{default:o(()=>[...e[39]||(e[39]=[s("取消",-1)])]),_:1}),a(u,{type:"primary",loading:G.value,onClick:ie},{default:o(()=>[...e[40]||(e[40]=[s("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[a(b,{model:d.value,"label-width":"110px"},{default:o(()=>[a(n,{label:"接诊时间",required:""},{default:o(()=>[v("div",mt,[a(R,{modelValue:d.value.start_time,"onUpdate:modelValue":e[4]||(e[4]=l=>d.value.start_time=l),start:"00:00",step:"00:5",end:"23:45",placeholder:"开始",style:{width:"120px"}},null,8,["modelValue"]),e[32]||(e[32]=v("span",null,"至",-1)),a(R,{modelValue:d.value.end_time,"onUpdate:modelValue":e[5]||(e[5]=l=>d.value.end_time=l),start:"00:00",step:"00:5",end:"23:45",placeholder:"结束",style:{width:"120px"}},null,8,["modelValue"])])]),_:1}),a(n,{label:"班次标签"},{default:o(()=>[a(z,{modelValue:d.value.shift_type,"onUpdate:modelValue":e[6]||(e[6]=l=>d.value.shift_type=l),placeholder:"选填",clearable:"",style:{width:"200px"}},{default:o(()=>[a(I,{label:"白班",value:"day"}),a(I,{label:"夜班",value:"night"})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"号源间隔(分)"},{default:o(()=>[a(S,{modelValue:d.value.slot_minutes,"onUpdate:modelValue":e[7]||(e[7]=l=>d.value.slot_minutes=l),min:5,max:120,step:5},null,8,["modelValue"]),e[33]||(e[33]=v("span",{class:"ml-2 text-gray-500 text-sm"},"默认 15",-1))]),_:1}),a(n,{label:"状态"},{default:o(()=>[a(ee,{modelValue:d.value.status,"onUpdate:modelValue":e[8]||(e[8]=l=>d.value.status=l)},{default:o(()=>[a(D,{label:1},{default:o(()=>[...e[34]||(e[34]=[s("出诊",-1)])]),_:1}),a(D,{label:2},{default:o(()=>[...e[35]||(e[35]=[s("停诊",-1)])]),_:1}),a(D,{label:3},{default:o(()=>[...e[36]||(e[36]=[s("休息",-1)])]),_:1}),a(D,{label:4},{default:o(()=>[...e[37]||(e[37]=[s("请假",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.value.status===1?(f(),B(n,{key:0,label:"号源上限"},{default:o(()=>[a(S,{modelValue:d.value.quota,"onUpdate:modelValue":e[9]||(e[9]=l=>d.value.quota=l),min:0,max:200},null,8,["modelValue"]),e[38]||(e[38]=v("div",{class:"text-gray-500 text-xs mt-1"},"0 表示不限制(由时段÷间隔计算可约数)",-1))]),_:1})):te("",!0),d.value.status===1?(f(),B(n,{key:1,label:"最大接诊"},{default:o(()=>[a(S,{modelValue:d.value.max_patients,"onUpdate:modelValue":e[10]||(e[10]=l=>d.value.max_patients=l),min:0,max:500},null,8,["modelValue"])]),_:1})):te("",!0),a(n,{label:"备注"},{default:o(()=>[a(i,{modelValue:d.value.remark,"onUpdate:modelValue":e[11]||(e[11]=l=>d.value.remark=l),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(P,{modelValue:$.value,"onUpdate:modelValue":e[20]||(e[20]=l=>$.value=l),title:"批量排班",width:"780px","destroy-on-close":""},{footer:o(()=>[a(u,{onClick:e[19]||(e[19]=l=>$.value=!1)},{default:o(()=>[...e[58]||(e[58]=[s("取消",-1)])]),_:1}),a(u,{type:"primary",onClick:we,loading:O.value},{default:o(()=>[...e[59]||(e[59]=[s("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[a(b,{model:r.value,"label-width":"100px"},{default:o(()=>[a(n,{label:"选择医生",required:""},{default:o(()=>[a(z,{modelValue:r.value.doctorIds,"onUpdate:modelValue":e[14]||(e[14]=l=>r.value.doctorIds=l),multiple:"",placeholder:"请选择医生",class:"w-full",filterable:""},{default:o(()=>[(f(!0),k(h,null,T(q.value,l=>(f(),B(I,{key:l.doctorId,label:l.doctorName,value:l.doctorId},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"日期范围",required:""},{default:o(()=>[a(Ce,{modelValue:r.value.dateRange,"onUpdate:modelValue":e[15]||(e[15]=l=>r.value.dateRange=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"星期",required:""},{default:o(()=>[a(Ye,{modelValue:r.value.weekdays,"onUpdate:modelValue":e[16]||(e[16]=l=>r.value.weekdays=l)},{default:o(()=>[a(E,{label:1},{default:o(()=>[...e[41]||(e[41]=[s("周一",-1)])]),_:1}),a(E,{label:2},{default:o(()=>[...e[42]||(e[42]=[s("周二",-1)])]),_:1}),a(E,{label:3},{default:o(()=>[...e[43]||(e[43]=[s("周三",-1)])]),_:1}),a(E,{label:4},{default:o(()=>[...e[44]||(e[44]=[s("周四",-1)])]),_:1}),a(E,{label:5},{default:o(()=>[...e[45]||(e[45]=[s("周五",-1)])]),_:1}),a(E,{label:6},{default:o(()=>[...e[46]||(e[46]=[s("周六",-1)])]),_:1}),a(E,{label:0},{default:o(()=>[...e[47]||(e[47]=[s("周日",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"时段模板"},{default:o(()=>[v("div",pt,[(f(!0),k(h,null,T(r.value.segments,(l,C)=>(f(),k("div",{key:C,class:"flex flex-wrap items-center gap-2 p-2 bg-gray-50 rounded"},[a(R,{modelValue:l.start_time,"onUpdate:modelValue":p=>l.start_time=p,start:"00:00",step:"00:05",end:"23:45",placeholder:"开始",style:{width:"110px"}},null,8,["modelValue","onUpdate:modelValue"]),e[49]||(e[49]=v("span",null,"—",-1)),a(R,{modelValue:l.end_time,"onUpdate:modelValue":p=>l.end_time=p,start:"00:00",step:"00:05",end:"23:45",placeholder:"结束",style:{width:"110px"}},null,8,["modelValue","onUpdate:modelValue"]),a(z,{modelValue:l.shift_type,"onUpdate:modelValue":p=>l.shift_type=p,placeholder:"班次",clearable:"",style:{width:"100px"}},{default:o(()=>[a(I,{label:"白班",value:"day"}),a(I,{label:"夜班",value:"night"})]),_:1},8,["modelValue","onUpdate:modelValue"]),e[50]||(e[50]=v("span",{class:"text-sm text-gray-500"},"间隔",-1)),a(S,{modelValue:l.slot_minutes,"onUpdate:modelValue":p=>l.slot_minutes=p,min:5,max:120,step:5,style:{width:"100px"}},null,8,["modelValue","onUpdate:modelValue"]),e[51]||(e[51]=v("span",{class:"text-sm text-gray-500"},"号源0=不限",-1)),a(S,{modelValue:l.quota,"onUpdate:modelValue":p=>l.quota=p,min:0,max:200,style:{width:"100px"}},null,8,["modelValue","onUpdate:modelValue"]),a(u,{type:"danger",link:"",onClick:p=>ce(C),disabled:r.value.segments.length<=1},{default:o(()=>[...e[48]||(e[48]=[s("删除",-1)])]),_:1},8,["onClick","disabled"])]))),128)),a(u,{type:"primary",link:"",onClick:Ve},{default:o(()=>[...e[52]||(e[52]=[s("+ 增加一段",-1)])]),_:1}),a(u,{type:"success",link:"",onClick:xe},{default:o(()=>[...e[53]||(e[53]=[s("+ 夜班 18:00–22:00",-1)])]),_:1})])]),_:1}),a(n,{label:"排班状态",required:""},{default:o(()=>[a(ee,{modelValue:r.value.status,"onUpdate:modelValue":e[17]||(e[17]=l=>r.value.status=l)},{default:o(()=>[a(D,{label:1},{default:o(()=>[...e[54]||(e[54]=[s("出诊",-1)])]),_:1}),a(D,{label:2},{default:o(()=>[...e[55]||(e[55]=[s("停诊",-1)])]),_:1}),a(D,{label:3},{default:o(()=>[...e[56]||(e[56]=[s("休息",-1)])]),_:1}),a(D,{label:4},{default:o(()=>[...e[57]||(e[57]=[s("请假",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"备注"},{default:o(()=>[a(i,{modelValue:r.value.remark,"onUpdate:modelValue":e[18]||(e[18]=l=>r.value.remark=l),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),ta=Je(vt,[["__scopeId","data-v-396c02a7"]]);export{ta as default};
+import{D as qe,B as Ue,C as $e,i as Ie,K as Se,M as Me,N as Be,L as We,J as Ne,Z as he,ac as Re,P as Te,Q as Le,h as Fe,G as Ae,I as Ge,X as Oe,ad as Pe,H as ze,a as je}from"./element-plus-DCRlGjqn.js";import{d as M,g as He}from"./dayjs-DG77mNTn.js";import{i as m,_ as Je}from"./index-DsBUBCgs.js";import{a as Qe}from"./admin-CgQa4RCf.js";import{e as Ke,f as Xe,r as Ze,h as et}from"./doctor-E6C8uXfZ.js";import{f as ae,b as tt,ak as f,I as k,a,aN as o,J as v,O as s,aP as at,G as B,F as R,ap as T,H as te,A as L}from"./@vue/runtime-core-C0pg79pw.js";import{o as _}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as Y,o as lt}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const ot={class:"doctor-roster p-4"},st={class:"flex justify-between items-center"},nt={class:"mb-4"},rt={class:"text-center mb-4 text-gray-600"},ut=["onClick"],dt={key:0,class:"text-xs text-gray-400 text-center py-2"},it={key:1,class:"space-y-1"},mt={class:"flex items-center gap-2 flex-wrap"},pt={class:"w-full space-y-2"},ft=ae({name:"doctorRoster"}),vt=ae({...ft,setup(_t){M.extend(He);const F=_(""),g=_(M().startOf("isoWeek")),A=_(!1),W=_(!1),V=_(null),x=_(""),j=_([]),U=_(!1),G=_(!1),d=_({id:null,doctorId:0,date:"",start_time:"09:00",end_time:"12:00",shift_type:"",slot_minutes:15,status:1,quota:0,max_patients:0,remark:""}),$=_(!1),O=_(!1),H=()=>[{start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,quota:0},{start_time:"14:00",end_time:"18:00",shift_type:"day",slot_minutes:15,quota:0}],r=_({doctorIds:[],dateRange:[],weekdays:[1,2,3,4,5],status:1,remark:"",segments:H()}),q=_([]),le=L(()=>{const t=F.value.trim();return t?q.value.filter(e=>e.doctorName.includes(t)):q.value}),oe=L(()=>!V.value||!x.value?"当日排班":`${V.value.doctorName} · ${x.value}`),se=L(()=>{const t=[],e=["周一","周二","周三","周四","周五","周六","周日"];for(let u=0;u<7;u++){const i=g.value.add(u,"day");t.push({date:i.format("YYYY-MM-DD"),label:`${e[u]} ${i.format("MM-DD")}`})}return t}),ne=L(()=>{const t=g.value.format("YYYY-MM-DD"),e=g.value.add(6,"day").format("YYYY-MM-DD");return`${t} 至 ${e}`});function J(t){return{1:"出诊",2:"停诊",3:"休息",4:"请假"}[t]??String(t)}function Q(t){return t==="day"?"白班":t==="night"?"夜班":"—"}function re(t){return t===1?"bg-emerald-50 text-emerald-800 border border-emerald-100":t===2?"bg-amber-50 text-amber-900 border border-amber-100":t===3?"bg-slate-100 text-slate-600 border border-slate-200":"bg-gray-100 text-gray-700 border border-gray-200"}function ue(t){const e=`${t.start_time}-${t.end_time}`,u=Q(t.shift_type),i=u!=="—"?` ${u}`:"";if(t.status===1){const n=t.quota>0?` 号源${t.quota}`:"";return`${e}${i} 出诊${n}`}return`${e}${i} ${J(t.status)}`}function K(t,e){return t.rostersByDate[e]||[]}function N(){if(!V.value||!x.value)return;const t=q.value.find(e=>e.doctorId===V.value.doctorId);t&&(j.value=[...t.rostersByDate[x.value]||[]].sort((e,u)=>e.start_time.localeCompare(u.start_time)))}function de(t,e){V.value=t,x.value=e,N(),W.value=!0}function X(t){if(!V.value||!x.value){m.msgWarning("请先选择日期格子");return}t?d.value={id:t.id,doctorId:V.value.doctorId,date:x.value,start_time:t.start_time||"09:00",end_time:t.end_time||"12:00",shift_type:t.shift_type||"",slot_minutes:t.slot_minutes||15,status:t.status,quota:t.quota??0,max_patients:t.max_patients??0,remark:t.remark||""}:d.value={id:null,doctorId:V.value.doctorId,date:x.value,start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,status:1,quota:0,max_patients:0,remark:""},U.value=!0}async function ie(){const t=d.value;if(!t.start_time||!t.end_time){m.msgWarning("请填写接诊开始与结束时间");return}if(t.status===1&&t.start_time>=t.end_time){m.msgWarning("出诊时结束时间须晚于开始时间");return}if(t.start_time>=t.end_time){m.msgWarning("结束时间须晚于开始时间");return}G.value=!0;try{const e={doctor_id:t.doctorId,date:t.date,period:"segment",start_time:t.start_time,end_time:t.end_time,slot_minutes:t.slot_minutes||15,status:t.status,quota:t.status===1?t.quota:0,max_patients:t.status===1?t.max_patients:0,remark:t.remark||""};t.shift_type&&(e.shift_type=t.shift_type),t.id&&(e.id=t.id),await Ke(e),m.msgSuccess("保存成功"),U.value=!1,await w(),N()}catch{m.msgError("保存失败")}finally{G.value=!1}}async function me(t){try{await je.confirm("确定删除该时段?","提示",{type:"warning"})}catch{return}try{await Xe({id:t.id}),m.msgSuccess("已删除"),await w(),N()}catch{m.msgError("删除失败")}}const pe=async()=>{try{const t=await Qe({page_no:1,page_size:1e3,role_id:1});q.value=((t==null?void 0:t.lists)||[]).map(e=>({doctorId:e.id,doctorName:e.name||e.account,rostersByDate:{}})),await w()}catch(t){console.error("加载医生列表失败:",t),m.msgError("加载医生列表失败")}},w=async()=>{A.value=!0;try{const t={start_date:g.value.format("YYYY-MM-DD"),end_date:g.value.add(6,"day").format("YYYY-MM-DD")},e=await Ze(t),u=(e==null?void 0:e.lists)||[];q.value.forEach(i=>{i.rostersByDate={},u.forEach(n=>{if(n.doctor_id!==i.doctorId)return;const b=n.date;i.rostersByDate[b]||(i.rostersByDate[b]=[]),i.rostersByDate[b].push({id:n.id,status:n.status,quota:n.quota||0,max_patients:n.max_patients,start_time:n.start_time||fe(n.period),end_time:n.end_time||ve(n.period),shift_type:n.shift_type,slot_minutes:n.slot_minutes??15,remark:n.remark,period:n.period})})}),N()}catch(t){console.error("加载排班数据失败:",t),m.msgError("加载排班数据失败")}finally{A.value=!1}};function fe(t){return t==="morning"?"09:00":t==="afternoon"?"14:00":t==="night"?"18:00":"09:00"}function ve(t){return t==="morning"?"12:00":t==="afternoon"?"18:00":t==="night"?"22:00":"12:00"}const _e=()=>{w()},ye=()=>{g.value=g.value.subtract(1,"week"),w()},ge=()=>{g.value=g.value.add(1,"week"),w()},be=()=>{g.value=M().startOf("isoWeek"),w()},ke=()=>{r.value={doctorIds:[],dateRange:[],weekdays:[1,2,3,4,5],status:1,remark:"",segments:H()},$.value=!0},Ve=()=>{r.value.segments.push({start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,quota:0})},xe=()=>{r.value.segments.push({start_time:"18:00",end_time:"22:00",shift_type:"night",slot_minutes:15,quota:0})},we=t=>{r.value.segments.length<=1||r.value.segments.splice(t,1)},ce=async()=>{if(r.value.doctorIds.length===0){m.msgWarning("请选择医生");return}if(!r.value.dateRange||r.value.dateRange.length!==2){m.msgWarning("请选择日期范围");return}if(r.value.weekdays.length===0){m.msgWarning("请选择星期");return}for(const t of r.value.segments){if(!t.start_time||!t.end_time){m.msgWarning("请完善时段模板的开始与结束时间");return}if(t.start_time>=t.end_time){m.msgWarning("时段模板中结束时间须晚于开始时间");return}}O.value=!0;try{const t=[],e=M(r.value.dateRange[0]),u=M(r.value.dateRange[1]);let i=e;for(;i.isBefore(u)||i.isSame(u,"day");){const n=i.day();r.value.weekdays.includes(n)&&r.value.doctorIds.forEach(b=>{r.value.segments.forEach(c=>{const y={doctor_id:b,date:i.format("YYYY-MM-DD"),period:"segment",start_time:c.start_time,end_time:c.end_time,slot_minutes:c.slot_minutes||15,status:r.value.status,quota:r.value.status===1?c.quota:0,max_patients:0,remark:r.value.remark};c.shift_type&&(y.shift_type=c.shift_type),t.push(y)})}),i=i.add(1,"day")}if(t.length===0){m.msgWarning("没有符合条件的排班数据");return}await et({rosters:t}),m.msgSuccess(`批量保存成功!共处理 ${t.length} 条记录`),$.value=!1,await w()}catch(t){console.error("批量保存失败:",t),m.msgError("批量保存失败")}finally{O.value=!1}};return tt(()=>{pe()}),(t,e)=>{const u=Ie,i=$e,n=Ue,b=qe,c=Se,y=Be,Z=Me,De=Ne,P=he,h=Re,I=Le,z=Te,S=Fe,D=Ge,ee=Ae,Ce=Oe,E=ze,Ye=Pe,Ee=We;return f(),k("div",ot,[a(De,{shadow:"never"},{header:o(()=>[v("div",st,[e[25]||(e[25]=v("span",{class:"text-lg font-medium"},"医生排班管理",-1)),v("div",null,[a(u,{type:"success",onClick:ke},{default:o(()=>[...e[21]||(e[21]=[s("批量排班",-1)])]),_:1}),a(u,{onClick:ye},{default:o(()=>[...e[22]||(e[22]=[s("上一周",-1)])]),_:1}),a(u,{onClick:ge},{default:o(()=>[...e[23]||(e[23]=[s("下一周",-1)])]),_:1}),a(u,{type:"primary",onClick:be},{default:o(()=>[...e[24]||(e[24]=[s("本周",-1)])]),_:1})])])]),default:o(()=>[v("div",nt,[a(b,{inline:""},{default:o(()=>[a(n,{label:"医生"},{default:o(()=>[a(i,{modelValue:F.value,"onUpdate:modelValue":e[0]||(e[0]=l=>F.value=l),placeholder:"请输入医生姓名",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),a(n,null,{default:o(()=>[a(u,{type:"primary",onClick:_e},{default:o(()=>[...e[26]||(e[26]=[s("查询",-1)])]),_:1})]),_:1})]),_:1})]),a(c,{type:"info",closable:!1,class:"mb-4","show-icon":""},{default:o(()=>[...e[27]||(e[27]=[s(" 每条排班为一段连续可挂号时间;同一天可添加多段(如白班 + 夜班)。休息时段不添加出诊段即可。号源间隔默认 15 分钟;号源数填 0 表示按时段长度自动满号。 ",-1)])]),_:1}),v("div",rt,Y(ne.value),1),at((f(),B(Z,{data:le.value,border:""},{default:o(()=>[a(y,{prop:"doctorName",label:"医生",width:"120",fixed:""}),(f(!0),k(R,null,T(se.value,l=>(f(),B(y,{key:l.date,label:l.label,"min-width":"168"},{default:o(({row:C})=>[v("div",{class:"day-cell rounded border border-dashed border-gray-200 p-1 min-h-[56px] cursor-pointer hover:bg-gray-50",onClick:p=>de(C,l.date)},[K(C,l.date).length===0?(f(),k("div",dt,"点击管理")):(f(),k("div",it,[(f(!0),k(R,null,T(K(C,l.date),p=>(f(),k("div",{key:p.id,class:lt(["text-xs px-1 py-0.5 rounded leading-tight",re(p.status)])},Y(ue(p)),3))),128))]))],8,ut)]),_:2},1032,["label"]))),128))]),_:1},8,["data"])),[[Ee,A.value]])]),_:1}),a(P,{modelValue:W.value,"onUpdate:modelValue":e[3]||(e[3]=l=>W.value=l),title:oe.value,width:"720px","destroy-on-close":""},{footer:o(()=>[a(u,{onClick:e[1]||(e[1]=l=>W.value=!1)},{default:o(()=>[...e[30]||(e[30]=[s("关闭",-1)])]),_:1}),a(u,{type:"primary",onClick:e[2]||(e[2]=l=>X())},{default:o(()=>[...e[31]||(e[31]=[s("添加时段",-1)])]),_:1})]),default:o(()=>[a(Z,{data:j.value,border:"",size:"small","max-height":"360"},{default:o(()=>[a(y,{label:"时间",width:"150"},{default:o(({row:l})=>[s(Y(l.start_time)+" - "+Y(l.end_time),1)]),_:1}),a(y,{label:"班次",width:"80"},{default:o(({row:l})=>[s(Y(Q(l.shift_type)),1)]),_:1}),a(y,{label:"状态",width:"88"},{default:o(({row:l})=>[s(Y(J(l.status)),1)]),_:1}),a(y,{label:"间隔",width:"72"},{default:o(({row:l})=>[s(Y(l.slot_minutes||15)+" 分",1)]),_:1}),a(y,{label:"号源",width:"72"},{default:o(({row:l})=>[s(Y(l.status===1?l.quota||"不限":"-"),1)]),_:1}),a(y,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),a(y,{label:"操作",width:"140",fixed:"right"},{default:o(({row:l})=>[a(u,{type:"primary",link:"",onClick:C=>X(l)},{default:o(()=>[...e[28]||(e[28]=[s("编辑",-1)])]),_:1},8,["onClick"]),a(u,{type:"danger",link:"",onClick:C=>me(l)},{default:o(()=>[...e[29]||(e[29]=[s("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue","title"]),a(P,{modelValue:U.value,"onUpdate:modelValue":e[13]||(e[13]=l=>U.value=l),title:d.value.id?"编辑时段":"添加时段",width:"520px","destroy-on-close":""},{footer:o(()=>[a(u,{onClick:e[12]||(e[12]=l=>U.value=!1)},{default:o(()=>[...e[39]||(e[39]=[s("取消",-1)])]),_:1}),a(u,{type:"primary",loading:G.value,onClick:ie},{default:o(()=>[...e[40]||(e[40]=[s("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[a(b,{model:d.value,"label-width":"110px"},{default:o(()=>[a(n,{label:"接诊时间",required:""},{default:o(()=>[v("div",mt,[a(h,{modelValue:d.value.start_time,"onUpdate:modelValue":e[4]||(e[4]=l=>d.value.start_time=l),start:"00:00",step:"00:5",end:"23:45",placeholder:"开始",style:{width:"120px"}},null,8,["modelValue"]),e[32]||(e[32]=v("span",null,"至",-1)),a(h,{modelValue:d.value.end_time,"onUpdate:modelValue":e[5]||(e[5]=l=>d.value.end_time=l),start:"00:00",step:"00:5",end:"23:45",placeholder:"结束",style:{width:"120px"}},null,8,["modelValue"])])]),_:1}),a(n,{label:"班次标签"},{default:o(()=>[a(z,{modelValue:d.value.shift_type,"onUpdate:modelValue":e[6]||(e[6]=l=>d.value.shift_type=l),placeholder:"选填",clearable:"",style:{width:"200px"}},{default:o(()=>[a(I,{label:"白班",value:"day"}),a(I,{label:"夜班",value:"night"})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"号源间隔(分)"},{default:o(()=>[a(S,{modelValue:d.value.slot_minutes,"onUpdate:modelValue":e[7]||(e[7]=l=>d.value.slot_minutes=l),min:5,max:120,step:5},null,8,["modelValue"]),e[33]||(e[33]=v("span",{class:"ml-2 text-gray-500 text-sm"},"默认 15",-1))]),_:1}),a(n,{label:"状态"},{default:o(()=>[a(ee,{modelValue:d.value.status,"onUpdate:modelValue":e[8]||(e[8]=l=>d.value.status=l)},{default:o(()=>[a(D,{label:1},{default:o(()=>[...e[34]||(e[34]=[s("出诊",-1)])]),_:1}),a(D,{label:2},{default:o(()=>[...e[35]||(e[35]=[s("停诊",-1)])]),_:1}),a(D,{label:3},{default:o(()=>[...e[36]||(e[36]=[s("休息",-1)])]),_:1}),a(D,{label:4},{default:o(()=>[...e[37]||(e[37]=[s("请假",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.value.status===1?(f(),B(n,{key:0,label:"号源上限"},{default:o(()=>[a(S,{modelValue:d.value.quota,"onUpdate:modelValue":e[9]||(e[9]=l=>d.value.quota=l),min:0,max:200},null,8,["modelValue"]),e[38]||(e[38]=v("div",{class:"text-gray-500 text-xs mt-1"},"0 表示不限制(由时段÷间隔计算可约数)",-1))]),_:1})):te("",!0),d.value.status===1?(f(),B(n,{key:1,label:"最大接诊"},{default:o(()=>[a(S,{modelValue:d.value.max_patients,"onUpdate:modelValue":e[10]||(e[10]=l=>d.value.max_patients=l),min:0,max:500},null,8,["modelValue"])]),_:1})):te("",!0),a(n,{label:"备注"},{default:o(()=>[a(i,{modelValue:d.value.remark,"onUpdate:modelValue":e[11]||(e[11]=l=>d.value.remark=l),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(P,{modelValue:$.value,"onUpdate:modelValue":e[20]||(e[20]=l=>$.value=l),title:"批量排班",width:"780px","destroy-on-close":""},{footer:o(()=>[a(u,{onClick:e[19]||(e[19]=l=>$.value=!1)},{default:o(()=>[...e[58]||(e[58]=[s("取消",-1)])]),_:1}),a(u,{type:"primary",onClick:ce,loading:O.value},{default:o(()=>[...e[59]||(e[59]=[s("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[a(b,{model:r.value,"label-width":"100px"},{default:o(()=>[a(n,{label:"选择医生",required:""},{default:o(()=>[a(z,{modelValue:r.value.doctorIds,"onUpdate:modelValue":e[14]||(e[14]=l=>r.value.doctorIds=l),multiple:"",placeholder:"请选择医生",class:"w-full",filterable:""},{default:o(()=>[(f(!0),k(R,null,T(q.value,l=>(f(),B(I,{key:l.doctorId,label:l.doctorName,value:l.doctorId},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"日期范围",required:""},{default:o(()=>[a(Ce,{modelValue:r.value.dateRange,"onUpdate:modelValue":e[15]||(e[15]=l=>r.value.dateRange=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"星期",required:""},{default:o(()=>[a(Ye,{modelValue:r.value.weekdays,"onUpdate:modelValue":e[16]||(e[16]=l=>r.value.weekdays=l)},{default:o(()=>[a(E,{label:1},{default:o(()=>[...e[41]||(e[41]=[s("周一",-1)])]),_:1}),a(E,{label:2},{default:o(()=>[...e[42]||(e[42]=[s("周二",-1)])]),_:1}),a(E,{label:3},{default:o(()=>[...e[43]||(e[43]=[s("周三",-1)])]),_:1}),a(E,{label:4},{default:o(()=>[...e[44]||(e[44]=[s("周四",-1)])]),_:1}),a(E,{label:5},{default:o(()=>[...e[45]||(e[45]=[s("周五",-1)])]),_:1}),a(E,{label:6},{default:o(()=>[...e[46]||(e[46]=[s("周六",-1)])]),_:1}),a(E,{label:0},{default:o(()=>[...e[47]||(e[47]=[s("周日",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"时段模板"},{default:o(()=>[v("div",pt,[(f(!0),k(R,null,T(r.value.segments,(l,C)=>(f(),k("div",{key:C,class:"flex flex-wrap items-center gap-2 p-2 bg-gray-50 rounded"},[a(h,{modelValue:l.start_time,"onUpdate:modelValue":p=>l.start_time=p,start:"00:00",step:"00:05",end:"23:45",placeholder:"开始",style:{width:"110px"}},null,8,["modelValue","onUpdate:modelValue"]),e[49]||(e[49]=v("span",null,"—",-1)),a(h,{modelValue:l.end_time,"onUpdate:modelValue":p=>l.end_time=p,start:"00:00",step:"00:05",end:"23:45",placeholder:"结束",style:{width:"110px"}},null,8,["modelValue","onUpdate:modelValue"]),a(z,{modelValue:l.shift_type,"onUpdate:modelValue":p=>l.shift_type=p,placeholder:"班次",clearable:"",style:{width:"100px"}},{default:o(()=>[a(I,{label:"白班",value:"day"}),a(I,{label:"夜班",value:"night"})]),_:1},8,["modelValue","onUpdate:modelValue"]),e[50]||(e[50]=v("span",{class:"text-sm text-gray-500"},"间隔",-1)),a(S,{modelValue:l.slot_minutes,"onUpdate:modelValue":p=>l.slot_minutes=p,min:5,max:120,step:5,style:{width:"100px"}},null,8,["modelValue","onUpdate:modelValue"]),e[51]||(e[51]=v("span",{class:"text-sm text-gray-500"},"号源0=不限",-1)),a(S,{modelValue:l.quota,"onUpdate:modelValue":p=>l.quota=p,min:0,max:200,style:{width:"100px"}},null,8,["modelValue","onUpdate:modelValue"]),a(u,{type:"danger",link:"",onClick:p=>we(C),disabled:r.value.segments.length<=1},{default:o(()=>[...e[48]||(e[48]=[s("删除",-1)])]),_:1},8,["onClick","disabled"])]))),128)),a(u,{type:"primary",link:"",onClick:Ve},{default:o(()=>[...e[52]||(e[52]=[s("+ 增加一段",-1)])]),_:1}),a(u,{type:"success",link:"",onClick:xe},{default:o(()=>[...e[53]||(e[53]=[s("+ 夜班 18:00–22:00",-1)])]),_:1})])]),_:1}),a(n,{label:"排班状态",required:""},{default:o(()=>[a(ee,{modelValue:r.value.status,"onUpdate:modelValue":e[17]||(e[17]=l=>r.value.status=l)},{default:o(()=>[a(D,{label:1},{default:o(()=>[...e[54]||(e[54]=[s("出诊",-1)])]),_:1}),a(D,{label:2},{default:o(()=>[...e[55]||(e[55]=[s("停诊",-1)])]),_:1}),a(D,{label:3},{default:o(()=>[...e[56]||(e[56]=[s("休息",-1)])]),_:1}),a(D,{label:4},{default:o(()=>[...e[57]||(e[57]=[s("请假",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"备注"},{default:o(()=>[a(i,{modelValue:r.value.remark,"onUpdate:modelValue":e[18]||(e[18]=l=>r.value.remark=l),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),ta=Je(vt,[["__scopeId","data-v-396c02a7"]]);export{ta as default};
diff --git a/server/public/admin/assets/setting-INJkhGl8.js b/server/public/admin/assets/setting-5FbWccMg.js
similarity index 89%
rename from server/public/admin/assets/setting-INJkhGl8.js
rename to server/public/admin/assets/setting-5FbWccMg.js
index 1763168d..2dc9675c 100644
--- a/server/public/admin/assets/setting-INJkhGl8.js
+++ b/server/public/admin/assets/setting-5FbWccMg.js
@@ -1 +1 @@
-import{D as j,B as A,C as H,U as G,d as Q,i as X,J as Y,Y as Z,E as v}from"./element-plus-Dmpg6ayE.js";import{_ as $}from"./index-_E7jYQiT.js";import{_ as oo}from"./picker-B5ZiOH7-.js";import{d as eo,W as to,l as so}from"./@element-plus/icons-vue-DsycZ37q.js";import{u as ro,a as ao,i as m,K as no,b as lo,L as io,_ as mo}from"./index-DWk_b8Nv.js";import{a as po}from"./wecomOauthPostMessage-C_e6VGrO.js";import{f as W,b as co,d as uo,ak as p,I as u,a as t,aN as r,J as d,G as _o,F as B,O as _,H as wo,n as D}from"./@vue/runtime-core-C0pg79pw.js";import{y as V,o as w,r as q}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as fo}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-BKLtguGT.js";import"./index-i7zXlMKf.js";import"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import"./index-DGzewPWT.js";import"./index-CtFRZE9b.js";import"./index.vue_vue_type_script_setup_true_lang-DyQAa4vY.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./file-CSSg91XZ.js";import"./usePaging-B_C_SZ2Z.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const go={class:"user-setting"},ko={class:"w-80"},bo={class:"w-80"},vo={class:"flex items-center gap-3"},yo={class:"w-80"},ho={class:"w-80"},xo={class:"w-80"},Vo={class:"bind-qrcode-wrap"},Uo={key:0,class:"text-center py-8"},Eo={key:1,id:"bind_wxwork_qrcode",class:"bind-qrcode"},Io=W({name:"userSetting"}),Co=W({...Io,setup(Bo){const U=w(),f=ro(),e=q({avatar:"",account:"",name:"",work_wechat_userid:"",password_old:"",password:"",password_confirm:""}),L=q({avatar:[{required:!0,message:"头像不能为空",trigger:["change"]}],name:[{required:!0,message:"请输入名称",trigger:["blur"]}]}),g="like_admin_wx_bind_oauth",E=w(!1),y=w({corp_id:"",agent_id:""}),k=w(!1),b=w(!1);let l=null;const S=async()=>{const s=f.userInfo;for(const o in e)s[o]!==void 0&&(e[o]=s[o])},M=async()=>{if(e.password_old||e.password||e.password_confirm){if(!e.password_old)return m.msgError("请输入当前密码");if(!e.password)return m.msgError("请输入新的密码");if(!e.password_confirm)return m.msgError("请输入确定密码");if(e.password_confirm!=e.password)return m.msgError("两次输入的密码不一样")}if(e.password_old&&e.password&&e.password_confirm){if(e.password_old.length<6||e.password_old.length>32)return m.msgError("密码长度在6到32之间");if(e.password.length<6||e.password.length>32)return m.msgError("密码长度在6到32之间");if(e.password_confirm.length<6||e.password_confirm.length>32)return m.msgError("密码长度在6到32之间")}const{work_wechat_userid:s,...o}=e;await io(o),f.getUserInfo()},N=async()=>{var s;await((s=U.value)==null?void 0:s.validate()),M()},R=()=>window.location.origin+window.location.pathname+"?bind_wxwork=1",z=async()=>{k.value=!0,b.value=!0,window.WwLogin||await new Promise((o,c)=>{const a=document.createElement("script");a.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",a.onload=()=>o(),a.onerror=()=>c(new Error("加载企业微信JS失败")),document.head.appendChild(a)}),await D(),b.value=!1,await D(),l==null||l(),l=po({pathIncludes:"user/setting",lockKey:g,wxBindState:"bind_wxwork",onCode:o=>I(o)});const s=encodeURIComponent(R());new window.WwLogin({id:"bind_wxwork_qrcode",appid:y.value.corp_id,agentid:y.value.agent_id,redirect_uri:s,lang:"zh",state:"bind_wxwork",href:"",self_redirect:!1})},F=()=>{b.value=!1,l==null||l(),l=null},O=async()=>{await m.confirm("确定要解绑企业微信吗?解绑后将无法使用企业微信扫码登录。");try{await no(),e.work_wechat_userid="",v.success("解绑成功"),f.getUserInfo()}catch(s){v.error((s==null?void 0:s.msg)||"解绑失败")}},I=async s=>{try{const o=await lo({code:s});e.work_wechat_userid=(o==null?void 0:o.work_wechat_userid)||"",k.value=!1,v.success("企业微信绑定成功"),f.getUserInfo()}catch(o){v.error((o==null?void 0:o.msg)||(o==null?void 0:o.message)||"绑定失败")}finally{const o=window.location.pathname;window.history.replaceState({},"",o)}};return co(async()=>{try{const i=await ao();i!=null&&i.enabled&&(E.value=!0,y.value={corp_id:i.corp_id,agent_id:i.agent_id})}catch{}const s=new URLSearchParams(window.location.search),o=s.get("code"),c=s.get("state"),a=s.get("bind_wxwork");if(o&&(c==="bind_wxwork"||a==="1")){if(sessionStorage.getItem(g)===o)return;sessionStorage.setItem(g,o),I(o).finally(()=>{sessionStorage.removeItem(g)})}}),S(),uo(()=>{l==null||l(),l=null}),(s,o)=>{const c=oo,a=A,i=H,h=Q,C=G,x=X,T=j,J=Y,K=$,P=Z;return p(),u("div",go,[t(J,{class:"!border-none",shadow:"never"},{default:r(()=>[t(T,{ref_key:"formRef",ref:U,class:"ls-form",model:e,rules:L,"label-width":"100px"},{default:r(()=>[t(a,{label:"头像:",prop:"avatar"},{default:r(()=>[t(c,{modelValue:e.avatar,"onUpdate:modelValue":o[0]||(o[0]=n=>e.avatar=n),limit:1},null,8,["modelValue"])]),_:1}),t(a,{label:"账号:",prop:"account"},{default:r(()=>[d("div",ko,[t(i,{modelValue:e.account,"onUpdate:modelValue":o[1]||(o[1]=n=>e.account=n),disabled:""},null,8,["modelValue"])])]),_:1}),t(a,{label:"名称:",prop:"name"},{default:r(()=>[d("div",bo,[t(i,{modelValue:e.name,"onUpdate:modelValue":o[2]||(o[2]=n=>e.name=n),placeholder:"请输入名称"},null,8,["modelValue"])])]),_:1}),E.value?(p(),_o(a,{key:0,label:"企业微信:"},{default:r(()=>[d("div",vo,[e.work_wechat_userid?(p(),u(B,{key:0},[t(C,{type:"success",size:"large"},{default:r(()=>[t(h,{class:"mr-1"},{default:r(()=>[t(V(eo))]),_:1}),_(" 已绑定("+fo(e.work_wechat_userid)+") ",1)]),_:1}),t(x,{type:"danger",link:"",onClick:O},{default:r(()=>[...o[7]||(o[7]=[_("解绑",-1)])]),_:1})],64)):(p(),u(B,{key:1},[t(C,{type:"info",size:"large"},{default:r(()=>[...o[8]||(o[8]=[_("未绑定",-1)])]),_:1}),t(x,{type:"primary",onClick:z},{default:r(()=>[t(h,{class:"mr-1"},{default:r(()=>[t(V(to))]),_:1}),o[9]||(o[9]=_(" 扫码绑定 ",-1))]),_:1})],64))])]),_:1})):wo("",!0),t(a,{label:"当前密码:",prop:"password_old"},{default:r(()=>[d("div",yo,[t(i,{modelValue:e.password_old,"onUpdate:modelValue":o[3]||(o[3]=n=>e.password_old=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),t(a,{label:"新的密码:",prop:"password"},{default:r(()=>[d("div",ho,[t(i,{modelValue:e.password,"onUpdate:modelValue":o[4]||(o[4]=n=>e.password=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),t(a,{label:"确定密码:",prop:"password_confirm"},{default:r(()=>[d("div",xo,[t(i,{modelValue:e.password_confirm,"onUpdate:modelValue":o[5]||(o[5]=n=>e.password_confirm=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),t(K,null,{default:r(()=>[t(x,{type:"primary",onClick:N},{default:r(()=>[...o[10]||(o[10]=[_("保存",-1)])]),_:1})]),_:1}),t(P,{modelValue:k.value,"onUpdate:modelValue":o[6]||(o[6]=n=>k.value=n),title:"扫码绑定企业微信",width:"440px","close-on-click-modal":!1,onClose:F},{default:r(()=>[d("div",Vo,[b.value?(p(),u("div",Uo,[t(h,{class:"is-loading",size:36,color:"var(--el-color-primary)"},{default:r(()=>[t(V(so))]),_:1}),o[11]||(o[11]=d("div",{class:"mt-3 text-gray-400"},"加载企业微信扫码...",-1))])):(p(),u("div",Eo))]),o[12]||(o[12]=d("div",{class:"text-center text-sm text-gray-400 mt-2 mb-2"}," 请使用企业微信扫描二维码完成绑定 ",-1))]),_:1},8,["modelValue"])])}}}),Be=mo(Co,[["__scopeId","data-v-e7afb159"]]);export{Be as default};
+import{D as j,B as A,C as H,U as G,d as Q,i as X,J as Z,Z as Y,E as v}from"./element-plus-DCRlGjqn.js";import{_ as $}from"./index-Bpp7evyC.js";import{_ as oo}from"./picker-h7OmyGiV.js";import{d as eo,W as to,l as so}from"./@element-plus/icons-vue-jYCthPJY.js";import{u as ro,a as ao,i as m,K as no,b as lo,L as io,_ as mo}from"./index-DsBUBCgs.js";import{a as po}from"./wecomOauthPostMessage-C_e6VGrO.js";import{f as W,b as co,d as uo,ak as p,I as u,a as t,aN as r,J as d,G as _o,F as B,O as _,H as wo,n as D}from"./@vue/runtime-core-C0pg79pw.js";import{y as V,o as w,r as q}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as fo}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-dlM42V9p.js";import"./index-DrXr9qPh.js";import"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import"./index-BmvifxBX.js";import"./index-CF2_JamS.js";import"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./file-DRO9_cYT.js";import"./usePaging-B_C_SZ2Z.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const go={class:"user-setting"},ko={class:"w-80"},bo={class:"w-80"},vo={class:"flex items-center gap-3"},yo={class:"w-80"},ho={class:"w-80"},xo={class:"w-80"},Vo={class:"bind-qrcode-wrap"},Uo={key:0,class:"text-center py-8"},Eo={key:1,id:"bind_wxwork_qrcode",class:"bind-qrcode"},Io=W({name:"userSetting"}),Co=W({...Io,setup(Bo){const U=w(),f=ro(),e=q({avatar:"",account:"",name:"",work_wechat_userid:"",password_old:"",password:"",password_confirm:""}),L=q({avatar:[{required:!0,message:"头像不能为空",trigger:["change"]}],name:[{required:!0,message:"请输入名称",trigger:["blur"]}]}),g="like_admin_wx_bind_oauth",E=w(!1),y=w({corp_id:"",agent_id:""}),k=w(!1),b=w(!1);let l=null;const S=async()=>{const s=f.userInfo;for(const o in e)s[o]!==void 0&&(e[o]=s[o])},M=async()=>{if(e.password_old||e.password||e.password_confirm){if(!e.password_old)return m.msgError("请输入当前密码");if(!e.password)return m.msgError("请输入新的密码");if(!e.password_confirm)return m.msgError("请输入确定密码");if(e.password_confirm!=e.password)return m.msgError("两次输入的密码不一样")}if(e.password_old&&e.password&&e.password_confirm){if(e.password_old.length<6||e.password_old.length>32)return m.msgError("密码长度在6到32之间");if(e.password.length<6||e.password.length>32)return m.msgError("密码长度在6到32之间");if(e.password_confirm.length<6||e.password_confirm.length>32)return m.msgError("密码长度在6到32之间")}const{work_wechat_userid:s,...o}=e;await io(o),f.getUserInfo()},N=async()=>{var s;await((s=U.value)==null?void 0:s.validate()),M()},R=()=>window.location.origin+window.location.pathname+"?bind_wxwork=1",z=async()=>{k.value=!0,b.value=!0,window.WwLogin||await new Promise((o,c)=>{const a=document.createElement("script");a.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",a.onload=()=>o(),a.onerror=()=>c(new Error("加载企业微信JS失败")),document.head.appendChild(a)}),await D(),b.value=!1,await D(),l==null||l(),l=po({pathIncludes:"user/setting",lockKey:g,wxBindState:"bind_wxwork",onCode:o=>I(o)});const s=encodeURIComponent(R());new window.WwLogin({id:"bind_wxwork_qrcode",appid:y.value.corp_id,agentid:y.value.agent_id,redirect_uri:s,lang:"zh",state:"bind_wxwork",href:"",self_redirect:!1})},F=()=>{b.value=!1,l==null||l(),l=null},O=async()=>{await m.confirm("确定要解绑企业微信吗?解绑后将无法使用企业微信扫码登录。");try{await no(),e.work_wechat_userid="",v.success("解绑成功"),f.getUserInfo()}catch(s){v.error((s==null?void 0:s.msg)||"解绑失败")}},I=async s=>{try{const o=await lo({code:s});e.work_wechat_userid=(o==null?void 0:o.work_wechat_userid)||"",k.value=!1,v.success("企业微信绑定成功"),f.getUserInfo()}catch(o){v.error((o==null?void 0:o.msg)||(o==null?void 0:o.message)||"绑定失败")}finally{const o=window.location.pathname;window.history.replaceState({},"",o)}};return co(async()=>{try{const i=await ao();i!=null&&i.enabled&&(E.value=!0,y.value={corp_id:i.corp_id,agent_id:i.agent_id})}catch{}const s=new URLSearchParams(window.location.search),o=s.get("code"),c=s.get("state"),a=s.get("bind_wxwork");if(o&&(c==="bind_wxwork"||a==="1")){if(sessionStorage.getItem(g)===o)return;sessionStorage.setItem(g,o),I(o).finally(()=>{sessionStorage.removeItem(g)})}}),S(),uo(()=>{l==null||l(),l=null}),(s,o)=>{const c=oo,a=A,i=H,h=Q,C=G,x=X,T=j,J=Z,K=$,P=Y;return p(),u("div",go,[t(J,{class:"!border-none",shadow:"never"},{default:r(()=>[t(T,{ref_key:"formRef",ref:U,class:"ls-form",model:e,rules:L,"label-width":"100px"},{default:r(()=>[t(a,{label:"头像:",prop:"avatar"},{default:r(()=>[t(c,{modelValue:e.avatar,"onUpdate:modelValue":o[0]||(o[0]=n=>e.avatar=n),limit:1},null,8,["modelValue"])]),_:1}),t(a,{label:"账号:",prop:"account"},{default:r(()=>[d("div",ko,[t(i,{modelValue:e.account,"onUpdate:modelValue":o[1]||(o[1]=n=>e.account=n),disabled:""},null,8,["modelValue"])])]),_:1}),t(a,{label:"名称:",prop:"name"},{default:r(()=>[d("div",bo,[t(i,{modelValue:e.name,"onUpdate:modelValue":o[2]||(o[2]=n=>e.name=n),placeholder:"请输入名称"},null,8,["modelValue"])])]),_:1}),E.value?(p(),_o(a,{key:0,label:"企业微信:"},{default:r(()=>[d("div",vo,[e.work_wechat_userid?(p(),u(B,{key:0},[t(C,{type:"success",size:"large"},{default:r(()=>[t(h,{class:"mr-1"},{default:r(()=>[t(V(eo))]),_:1}),_(" 已绑定("+fo(e.work_wechat_userid)+") ",1)]),_:1}),t(x,{type:"danger",link:"",onClick:O},{default:r(()=>[...o[7]||(o[7]=[_("解绑",-1)])]),_:1})],64)):(p(),u(B,{key:1},[t(C,{type:"info",size:"large"},{default:r(()=>[...o[8]||(o[8]=[_("未绑定",-1)])]),_:1}),t(x,{type:"primary",onClick:z},{default:r(()=>[t(h,{class:"mr-1"},{default:r(()=>[t(V(to))]),_:1}),o[9]||(o[9]=_(" 扫码绑定 ",-1))]),_:1})],64))])]),_:1})):wo("",!0),t(a,{label:"当前密码:",prop:"password_old"},{default:r(()=>[d("div",yo,[t(i,{modelValue:e.password_old,"onUpdate:modelValue":o[3]||(o[3]=n=>e.password_old=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),t(a,{label:"新的密码:",prop:"password"},{default:r(()=>[d("div",ho,[t(i,{modelValue:e.password,"onUpdate:modelValue":o[4]||(o[4]=n=>e.password=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),t(a,{label:"确定密码:",prop:"password_confirm"},{default:r(()=>[d("div",xo,[t(i,{modelValue:e.password_confirm,"onUpdate:modelValue":o[5]||(o[5]=n=>e.password_confirm=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),t(K,null,{default:r(()=>[t(x,{type:"primary",onClick:N},{default:r(()=>[...o[10]||(o[10]=[_("保存",-1)])]),_:1})]),_:1}),t(P,{modelValue:k.value,"onUpdate:modelValue":o[6]||(o[6]=n=>k.value=n),title:"扫码绑定企业微信",width:"440px","close-on-click-modal":!1,onClose:F},{default:r(()=>[d("div",Vo,[b.value?(p(),u("div",Uo,[t(h,{class:"is-loading",size:36,color:"var(--el-color-primary)"},{default:r(()=>[t(V(so))]),_:1}),o[11]||(o[11]=d("div",{class:"mt-3 text-gray-400"},"加载企业微信扫码...",-1))])):(p(),u("div",Eo))]),o[12]||(o[12]=d("div",{class:"text-center text-sm text-gray-400 mt-2 mb-2"}," 请使用企业微信扫描二维码完成绑定 ",-1))]),_:1},8,["modelValue"])])}}}),Be=mo(Co,[["__scopeId","data-v-e7afb159"]]);export{Be as default};
diff --git a/server/public/admin/assets/setup-D592UMoK.js b/server/public/admin/assets/setup-C1ENi8BY.js
similarity index 77%
rename from server/public/admin/assets/setup-D592UMoK.js
rename to server/public/admin/assets/setup-C1ENi8BY.js
index b3f34bee..cff7e148 100644
--- a/server/public/admin/assets/setup-D592UMoK.js
+++ b/server/public/admin/assets/setup-C1ENi8BY.js
@@ -1 +1 @@
-import{_ as y}from"./index-_E7jYQiT.js";import{D as k,B as w,J as B,i as V}from"./element-plus-Dmpg6ayE.js";import{_ as x}from"./picker-B5ZiOH7-.js";import{a as C,b as D}from"./user-C24uvj2m.js";import{f as l,as as E,ak as n,I as N,a as e,aN as m,J as i,aP as S,G as U,O as j}from"./@vue/runtime-core-C0pg79pw.js";import{y as p,r as F}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./index-DWk_b8Nv.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-BKLtguGT.js";import"./index-i7zXlMKf.js";import"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import"./index-DGzewPWT.js";import"./index-CtFRZE9b.js";import"./index.vue_vue_type_script_setup_true_lang-DyQAa4vY.js";import"./file-CSSg91XZ.js";import"./usePaging-B_C_SZ2Z.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";const I={class:"user-setup"},J=l({name:"userSetup"}),ht=l({...J,setup(h){const o=F({default_avatar:""}),a=async()=>{try{const r=await C();for(const t in o)o[t]=r[t]}catch(r){console.log("获取=>",r)}},_=async()=>{try{await D(o),a()}catch(r){console.log("保存=>",r)}};return a(),(r,t)=>{const u=x,s=w,c=k,d=B,f=V,v=y,g=E("perms");return n(),N("div",I,[e(d,{shadow:"never",class:"!border-none"},{default:m(()=>[t[2]||(t[2]=i("div",{class:"font-medium mb-7"},"基本设置",-1)),e(c,{ref:"formRef",model:p(o),"label-width":"120px"},{default:m(()=>[e(s,{label:"用户默认头像"},{default:m(()=>[i("div",null,[e(u,{modelValue:p(o).default_avatar,"onUpdate:modelValue":t[0]||(t[0]=b=>p(o).default_avatar=b),limit:1},null,8,["modelValue"])])]),_:1}),e(s,null,{default:m(()=>[...t[1]||(t[1]=[i("div",null,[i("div",{class:"form-tips"}," 用户注册时给的默认头像,建议尺寸:400*400像素,支持jpg,jpeg,png格式 ")],-1)])]),_:1})]),_:1},8,["model"])]),_:1}),S((n(),U(v,null,{default:m(()=>[e(f,{type:"primary",onClick:_},{default:m(()=>[...t[3]||(t[3]=[j("保存",-1)])]),_:1})]),_:1})),[[g,["setting.user.user/setConfig"]]])])}}});export{ht as default};
+import{_ as y}from"./index-Bpp7evyC.js";import{D as k,B as w,J as B,i as V}from"./element-plus-DCRlGjqn.js";import{_ as x}from"./picker-h7OmyGiV.js";import{a as C,b as D}from"./user-9FhefezY.js";import{f as l,as as E,ak as n,I as N,a as e,aN as m,J as i,aP as S,G as U,O as j}from"./@vue/runtime-core-C0pg79pw.js";import{y as p,r as F}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./index-DsBUBCgs.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-dlM42V9p.js";import"./index-DrXr9qPh.js";import"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import"./index-BmvifxBX.js";import"./index-CF2_JamS.js";import"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import"./file-DRO9_cYT.js";import"./usePaging-B_C_SZ2Z.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";const I={class:"user-setup"},J=l({name:"userSetup"}),ht=l({...J,setup(h){const o=F({default_avatar:""}),a=async()=>{try{const r=await C();for(const t in o)o[t]=r[t]}catch(r){console.log("获取=>",r)}},_=async()=>{try{await D(o),a()}catch(r){console.log("保存=>",r)}};return a(),(r,t)=>{const u=x,s=w,c=k,d=B,f=V,v=y,g=E("perms");return n(),N("div",I,[e(d,{shadow:"never",class:"!border-none"},{default:m(()=>[t[2]||(t[2]=i("div",{class:"font-medium mb-7"},"基本设置",-1)),e(c,{ref:"formRef",model:p(o),"label-width":"120px"},{default:m(()=>[e(s,{label:"用户默认头像"},{default:m(()=>[i("div",null,[e(u,{modelValue:p(o).default_avatar,"onUpdate:modelValue":t[0]||(t[0]=b=>p(o).default_avatar=b),limit:1},null,8,["modelValue"])])]),_:1}),e(s,null,{default:m(()=>[...t[1]||(t[1]=[i("div",null,[i("div",{class:"form-tips"}," 用户注册时给的默认头像,建议尺寸:400*400像素,支持jpg,jpeg,png格式 ")],-1)])]),_:1})]),_:1},8,["model"])]),_:1}),S((n(),U(v,null,{default:m(()=>[e(f,{type:"primary",onClick:_},{default:m(()=>[...t[3]||(t[3]=[j("保存",-1)])]),_:1})]),_:1})),[[g,["setting.user.user/setConfig"]]])])}}});export{ht as default};
diff --git a/server/public/admin/assets/statistics--YHyEZxF.js b/server/public/admin/assets/statistics-C0FenTWL.js
similarity index 86%
rename from server/public/admin/assets/statistics--YHyEZxF.js
rename to server/public/admin/assets/statistics-C0FenTWL.js
index aafffb71..599277eb 100644
--- a/server/public/admin/assets/statistics--YHyEZxF.js
+++ b/server/public/admin/assets/statistics-C0FenTWL.js
@@ -1 +1 @@
-import{_ as C}from"./index-_E7jYQiT.js";import{J as g,B as D,C as h,D as B,i as E}from"./element-plus-Dmpg6ayE.js";import{e as I,f as V}from"./website-BQObevlt.js";import{f as c,b as S,as as N,ak as p,I as F,a as r,aN as i,J as s,O as a,aP as J,G as M}from"./@vue/runtime-core-C0pg79pw.js";import{y as m,o as R,r as G}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./index-DWk_b8Nv.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";const O={class:"website-statistics"},P={class:"flex flex-col"},T={class:"w-80"},U=c({name:"webInformation"}),Et=c({...U,setup(W){const l=R(),o=G({clarity_code:""}),_={},n=async()=>{const e=await I();for(const t in o)o[t]=e[t]},d=async()=>{var e;await((e=l.value)==null?void 0:e.validate()),await V(o),n()};return S(()=>{n()}),(e,t)=>{const f=h,u=D,y=g,b=B,w=E,v=C,x=N("perms");return p(),F("div",O,[r(b,{ref_key:"formRef",ref:l,rules:_,class:"ls-form",model:m(o),"scroll-to-error":"","label-width":"120px"},{default:i(()=>[r(y,{shadow:"never",class:"!border-none"},{default:i(()=>[t[2]||(t[2]=s("div",{class:"text-xl font-medium mb-[20px]"},"Clarity配置",-1)),r(u,{label:"应用ID",prop:"clarity_code"},{default:i(()=>[s("div",P,[s("div",T,[r(f,{modelValue:m(o).clarity_code,"onUpdate:modelValue":t[0]||(t[0]=k=>m(o).clarity_code=k),modelModifiers:{trim:!0},placeholder:"请填写应用ID",maxlength:"10","show-word-limit":""},null,8,["modelValue"])]),t[1]||(t[1]=s("div",{class:"form-tips"},[a(" 请前往"),s("a",{class:"text-primary",href:"https://clarity.microsoft.com",target:"_blank"}," 《Clarity官网》 "),a(" 创建Clarity统计应用 ")],-1))])]),_:1})]),_:1})]),_:1},8,["model"]),J((p(),M(v,null,{default:i(()=>[r(w,{type:"primary",onClick:d},{default:i(()=>[...t[3]||(t[3]=[a("保存",-1)])]),_:1})]),_:1})),[[x,["setting.web.web_setting/setWebsite"]]])])}}});export{Et as default};
+import{_ as C}from"./index-Bpp7evyC.js";import{J as g,B as D,C as h,D as B,i as E}from"./element-plus-DCRlGjqn.js";import{e as I,f as V}from"./website-DBKOzmMR.js";import{f as c,b as S,as as N,ak as p,I as F,a as r,aN as i,J as s,O as a,aP as J,G as M}from"./@vue/runtime-core-C0pg79pw.js";import{y as m,o as R,r as G}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./index-DsBUBCgs.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";const O={class:"website-statistics"},P={class:"flex flex-col"},T={class:"w-80"},U=c({name:"webInformation"}),Et=c({...U,setup(W){const l=R(),o=G({clarity_code:""}),_={},n=async()=>{const e=await I();for(const t in o)o[t]=e[t]},d=async()=>{var e;await((e=l.value)==null?void 0:e.validate()),await V(o),n()};return S(()=>{n()}),(e,t)=>{const f=h,u=D,y=g,b=B,w=E,v=C,x=N("perms");return p(),F("div",O,[r(b,{ref_key:"formRef",ref:l,rules:_,class:"ls-form",model:m(o),"scroll-to-error":"","label-width":"120px"},{default:i(()=>[r(y,{shadow:"never",class:"!border-none"},{default:i(()=>[t[2]||(t[2]=s("div",{class:"text-xl font-medium mb-[20px]"},"Clarity配置",-1)),r(u,{label:"应用ID",prop:"clarity_code"},{default:i(()=>[s("div",P,[s("div",T,[r(f,{modelValue:m(o).clarity_code,"onUpdate:modelValue":t[0]||(t[0]=k=>m(o).clarity_code=k),modelModifiers:{trim:!0},placeholder:"请填写应用ID",maxlength:"10","show-word-limit":""},null,8,["modelValue"])]),t[1]||(t[1]=s("div",{class:"form-tips"},[a(" 请前往"),s("a",{class:"text-primary",href:"https://clarity.microsoft.com",target:"_blank"}," 《Clarity官网》 "),a(" 创建Clarity统计应用 ")],-1))])]),_:1})]),_:1})]),_:1},8,["model"]),J((p(),M(v,null,{default:i(()=>[r(w,{type:"primary",onClick:d},{default:i(()=>[...t[3]||(t[3]=[a("保存",-1)])]),_:1})]),_:1})),[[x,["setting.web.web_setting/setWebsite"]]])])}}});export{Et as default};
diff --git a/server/public/admin/assets/style-C5m2K9Dk.js b/server/public/admin/assets/style-CUefTRP6.js
similarity index 77%
rename from server/public/admin/assets/style-C5m2K9Dk.js
rename to server/public/admin/assets/style-CUefTRP6.js
index 7c2875f9..9f985113 100644
--- a/server/public/admin/assets/style-C5m2K9Dk.js
+++ b/server/public/admin/assets/style-CUefTRP6.js
@@ -1 +1 @@
-import{_ as x}from"./index-_E7jYQiT.js";import{m as k,l as B,J as N,i as T}from"./element-plus-Dmpg6ayE.js";import{a as h,s as D}from"./decoration-Bm7sdIO5.js";import{_ as E}from"./mobile-style.vue_vue_type_script_setup_true_lang-B3uTNLek.js";import{f as J,b as I,ak as m,I as l,a as n,aN as a,J as O,F as d,ap as P,G as u,at as U,O as F,A as L}from"./@vue/runtime-core-C0pg79pw.js";import{o as c,m as R,a as S,y as _}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./index-DWk_b8Nv.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index.vue_vue_type_script_setup_true_lang-HG7uja_e.js";import"./theme-picker-BnVPZoF_.js";const A={class:"mt-[-10px]"},Et=J({__name:"style",setup(G){const e=c(0),s=c([{name:"移动端",id:5,component:R(E),data:{themeColorId:1,topTextColor:"white",navigationBarColor:"",themeColor1:"",themeColor2:"",buttonColor:"white"}}]),o=L(()=>s.value[e.value]||{}),p=async()=>{const i=await h({id:o.value.id});o.value.data=JSON.parse(i.data)},f=async()=>{await D({id:o.value.id,type:o.value.id,data:JSON.stringify(o.value.data)}),p()};return I(async()=>{await p()}),(i,r)=>{const b=B,v=k,y=N,C=T,V=x;return m(),l(d,null,[n(y,{shadow:"never",class:"!border-none"},{default:a(()=>[O("div",A,[n(v,{modelValue:_(e),"onUpdate:modelValue":r[0]||(r[0]=t=>S(e)?e.value=t:null)},{default:a(()=>[(m(!0),l(d,null,P(_(s),(t,g)=>(m(),u(b,{key:t.id,label:t.name,name:g},{default:a(()=>[(m(),u(U(t.component),{modelValue:t.data,"onUpdate:modelValue":w=>t.data=w},null,8,["modelValue","onUpdate:modelValue"]))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])])]),_:1}),n(V,{class:"mt-4",fixed:!0},{default:a(()=>[n(C,{type:"primary",onClick:f},{default:a(()=>[...r[1]||(r[1]=[F("保存",-1)])]),_:1})]),_:1})],64)}}});export{Et as default};
+import{_ as x}from"./index-Bpp7evyC.js";import{m as k,l as B,J as N,i as T}from"./element-plus-DCRlGjqn.js";import{a as h,s as D}from"./decoration-B1aWgelJ.js";import{_ as E}from"./mobile-style.vue_vue_type_script_setup_true_lang-AFCBR1sF.js";import{f as J,b as I,ak as m,I as l,a as n,aN as a,J as O,F as d,ap as P,G as u,at as U,O as F,A as L}from"./@vue/runtime-core-C0pg79pw.js";import{o as c,m as R,a as S,y as _}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./index-DsBUBCgs.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index.vue_vue_type_script_setup_true_lang-Dqs8IDbj.js";import"./theme-picker-Idz3c41M.js";const A={class:"mt-[-10px]"},Et=J({__name:"style",setup(G){const e=c(0),s=c([{name:"移动端",id:5,component:R(E),data:{themeColorId:1,topTextColor:"white",navigationBarColor:"",themeColor1:"",themeColor2:"",buttonColor:"white"}}]),o=L(()=>s.value[e.value]||{}),p=async()=>{const i=await h({id:o.value.id});o.value.data=JSON.parse(i.data)},f=async()=>{await D({id:o.value.id,type:o.value.id,data:JSON.stringify(o.value.data)}),p()};return I(async()=>{await p()}),(i,r)=>{const b=B,v=k,y=N,C=T,V=x;return m(),l(d,null,[n(y,{shadow:"never",class:"!border-none"},{default:a(()=>[O("div",A,[n(v,{modelValue:_(e),"onUpdate:modelValue":r[0]||(r[0]=t=>S(e)?e.value=t:null)},{default:a(()=>[(m(!0),l(d,null,P(_(s),(t,g)=>(m(),u(b,{key:t.id,label:t.name,name:g},{default:a(()=>[(m(),u(U(t.component),{modelValue:t.data,"onUpdate:modelValue":w=>t.data=w},null,8,["modelValue","onUpdate:modelValue"]))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])])]),_:1}),n(V,{class:"mt-4",fixed:!0},{default:a(()=>[n(C,{type:"primary",onClick:f},{default:a(()=>[...r[1]||(r[1]=[F("保存",-1)])]),_:1})]),_:1})],64)}}});export{Et as default};
diff --git a/server/public/admin/assets/tabbar-BgeBV1-s.js b/server/public/admin/assets/tabbar-09dTnVJt.js
similarity index 76%
rename from server/public/admin/assets/tabbar-BgeBV1-s.js
rename to server/public/admin/assets/tabbar-09dTnVJt.js
index 482628ca..95aa8bd7 100644
--- a/server/public/admin/assets/tabbar-BgeBV1-s.js
+++ b/server/public/admin/assets/tabbar-09dTnVJt.js
@@ -1 +1 @@
-import{_ as k}from"./index-_E7jYQiT.js";import{J as B,s as f,i as C}from"./element-plus-Dmpg6ayE.js";import{c as E,d as T}from"./decoration-Bm7sdIO5.js";import P from"./menu-mDEmyn7p.js";import{_ as N}from"./attr.vue_vue_type_script_setup_true_lang-D1CFAoKr.js";import I from"./content-DDwZ9510.js";import{f as b,w as M,as as R,ak as p,I as J,J as i,a as m,aN as n,G as c,at as v,Z as O,aP as S,O as U,A as z}from"./@vue/runtime-core-C0pg79pw.js";import{r as A,m as G,y as e,a as L,o as Z}from"./@vue/reactivity-BIbyPIZJ.js";import{P as $}from"./@vue/shared-mAAVTE9n.js";import{_ as j}from"./index-DWk_b8Nv.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-DGzewPWT.js";import"./picker-Df7KkdWk.js";import"./index-BKLtguGT.js";import"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import"./article-CKzso6NG.js";import"./usePaging-B_C_SZ2Z.js";import"./picker-B5ZiOH7-.js";import"./index-i7zXlMKf.js";import"./index-CtFRZE9b.js";import"./index.vue_vue_type_script_setup_true_lang-DyQAa4vY.js";import"./file-CSSg91XZ.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./index.vue_vue_type_script_setup_true_lang-HG7uja_e.js";import"./decoration-img-C_6VQE85.js";const q={attr:N,content:I},F={class:"decoration-tabbar"},H={class:"flex-1 min-h-0 w-full"},K={class:"h-full"},Q={class:"flex min-w-[900px] scroll-view-content"},W={class:"flex-1 pages-preview-box"},X={class:"pages-preview mx-[30px]"},Y={class:"px-5 pb-5"},tt=b({name:"decorationTabbar"}),ot=b({...tt,setup(et){let d;(t=>{t.MOBILE="1",t.PC="2"})(d||(d={}));const a=Z("1"),l=A({1:{id:1,type:1,name:"移动端导航栏",data:{style:{default_color:"",selected_color:""},list:[]},component:G(q)}}),r=z(()=>l[a.value]),_=async()=>{const t=await E({type:a.value});l[1].data=t},x=async()=>{const{data:t}=r.value;await T({...t}),_()};return M(a,()=>{_()},{immediate:!0}),(t,s)=>{const w=B,u=f,h=f,y=C,g=k,V=R("perms");return p(),J("div",F,[i("div",H,[i("div",K,[m(h,null,{default:n(()=>[i("div",Q,[m(w,{shadow:"never",class:"!border-none flex","body-style":{"padding-right":0}},{default:n(()=>[m(P,{class:"!h-full flex-none",modelValue:e(a),"onUpdate:modelValue":s[0]||(s[0]=o=>L(a)?a.value=o:null),menus:e(l)},null,8,["modelValue","menus"])]),_:1}),i("div",W,[i("div",X,[m(u,{height:"100%"},{default:n(()=>{var o;return[(p(),c(v((o=e(r).component)==null?void 0:o.content),$(O(e(r).data)),null,16))]}),_:1})])]),m(u,{class:"attr-setting flex-none"},{default:n(()=>{var o;return[i("div",Y,[(p(),c(v((o=e(r).component)==null?void 0:o.attr),{modelValue:e(r).data,"onUpdate:modelValue":s[1]||(s[1]=D=>e(r).data=D)},null,8,["modelValue"]))])]}),_:1})])]),_:1})])]),S((p(),c(g,{fixed:!0},{default:n(()=>[m(y,{type:"primary",onClick:x},{default:n(()=>[...s[2]||(s[2]=[U("保存",-1)])]),_:1})]),_:1})),[[V,["decorate:tabbar:save"]]])])}}}),po=j(ot,[["__scopeId","data-v-e8ac299a"]]);export{po as default};
+import{_ as k}from"./index-Bpp7evyC.js";import{J as B,s as f,i as C}from"./element-plus-DCRlGjqn.js";import{c as E,d as T}from"./decoration-B1aWgelJ.js";import P from"./menu-Dxt8bNZJ.js";import{_ as N}from"./attr.vue_vue_type_script_setup_true_lang-CTRtapA_.js";import I from"./content-C3zacqsk.js";import{f as b,w as M,as as R,ak as p,I as J,J as i,a as m,aN as n,G as c,at as v,Z as O,aP as S,O as U,A as z}from"./@vue/runtime-core-C0pg79pw.js";import{r as A,m as G,y as e,a as L,o as Z}from"./@vue/reactivity-BIbyPIZJ.js";import{P as $}from"./@vue/shared-mAAVTE9n.js";import{_ as j}from"./index-DsBUBCgs.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./index-BmvifxBX.js";import"./picker-BMroZii1.js";import"./index-dlM42V9p.js";import"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import"./article-0uhoq4JM.js";import"./usePaging-B_C_SZ2Z.js";import"./picker-h7OmyGiV.js";import"./index-DrXr9qPh.js";import"./index-CF2_JamS.js";import"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import"./file-DRO9_cYT.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./index.vue_vue_type_script_setup_true_lang-Dqs8IDbj.js";import"./decoration-img-C01Pis81.js";const q={attr:N,content:I},F={class:"decoration-tabbar"},H={class:"flex-1 min-h-0 w-full"},K={class:"h-full"},Q={class:"flex min-w-[900px] scroll-view-content"},W={class:"flex-1 pages-preview-box"},X={class:"pages-preview mx-[30px]"},Y={class:"px-5 pb-5"},tt=b({name:"decorationTabbar"}),ot=b({...tt,setup(et){let d;(t=>{t.MOBILE="1",t.PC="2"})(d||(d={}));const a=Z("1"),l=A({1:{id:1,type:1,name:"移动端导航栏",data:{style:{default_color:"",selected_color:""},list:[]},component:G(q)}}),r=z(()=>l[a.value]),_=async()=>{const t=await E({type:a.value});l[1].data=t},x=async()=>{const{data:t}=r.value;await T({...t}),_()};return M(a,()=>{_()},{immediate:!0}),(t,s)=>{const w=B,u=f,h=f,y=C,g=k,V=R("perms");return p(),J("div",F,[i("div",H,[i("div",K,[m(h,null,{default:n(()=>[i("div",Q,[m(w,{shadow:"never",class:"!border-none flex","body-style":{"padding-right":0}},{default:n(()=>[m(P,{class:"!h-full flex-none",modelValue:e(a),"onUpdate:modelValue":s[0]||(s[0]=o=>L(a)?a.value=o:null),menus:e(l)},null,8,["modelValue","menus"])]),_:1}),i("div",W,[i("div",X,[m(u,{height:"100%"},{default:n(()=>{var o;return[(p(),c(v((o=e(r).component)==null?void 0:o.content),$(O(e(r).data)),null,16))]}),_:1})])]),m(u,{class:"attr-setting flex-none"},{default:n(()=>{var o;return[i("div",Y,[(p(),c(v((o=e(r).component)==null?void 0:o.attr),{modelValue:e(r).data,"onUpdate:modelValue":s[1]||(s[1]=D=>e(r).data=D)},null,8,["modelValue"]))])]}),_:1})])]),_:1})])]),S((p(),c(g,{fixed:!0},{default:n(()=>[m(y,{type:"primary",onClick:x},{default:n(()=>[...s[2]||(s[2]=[U("保存",-1)])]),_:1})]),_:1})),[[V,["decorate:tabbar:save"]]])])}}}),po=j(ot,[["__scopeId","data-v-e8ac299a"]]);export{po as default};
diff --git a/server/public/admin/assets/tcm-BCaX4wIV.js b/server/public/admin/assets/tcm-PvaD3bI2.js
similarity index 59%
rename from server/public/admin/assets/tcm-BCaX4wIV.js
rename to server/public/admin/assets/tcm-PvaD3bI2.js
index a9f8a6d5..4c8b2352 100644
--- a/server/public/admin/assets/tcm-BCaX4wIV.js
+++ b/server/public/admin/assets/tcm-PvaD3bI2.js
@@ -1 +1 @@
-import{r as t}from"./index-DWk_b8Nv.js";function i(r){return t.get({url:"/tcm.diagnosis/lists",params:r})}function n(r){return t.get({url:"/tcm.diagnosis/assistantDiagnosisStats",params:r})}function s(r){return t.post({url:"/tcm.diagnosis/add",params:r})}function o(r){return t.post({url:"/tcm.diagnosis/edit",params:r})}function c(r){return t.post({url:"/tcm.diagnosis/delete",params:r})}function a(r){return t.get({url:"/tcm.diagnosis/detail",params:r})}function u(r){return t.post({url:"/tcm.diagnosis/checkPhone",params:r})}function p(r){return t.post({url:"/tcm.diagnosis/checkIdCard",params:r})}function d(r){return t.post({url:"/tcm.diagnosis/fillIdCard",params:r})}function l(r){return t.post({url:"/tcm.diagnosis/assign",params:r})}function g(r){return t.get({url:"/tcm.diagnosis/assignLogList",params:r})}function m(){return t.get({url:"/tcm.diagnosis/getAssistants"})}function f(){return t.get({url:"/tcm.diagnosis/getDoctors"})}function O(r){return t.post({url:"/tcm.bloodRecord/add",params:r})}function C(r){return t.post({url:"/tcm.bloodRecord/edit",params:r})}function h(r){return t.post({url:"/tcm.bloodRecord/delete",params:r})}function R(r){return t.get({url:"/tcm.bloodRecord/getRecordsByPatient",params:r})}function y(r){return t.post({url:"/tcm.diagnosis/getCallSignature",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function L(r){return t.post({url:"/tcm.diagnosis/startCall",params:r})}function D(r){return t.post({url:"/tcm.diagnosis/endCall",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function P(r){return t.get({url:"/tcm.diagnosis/getCallRecords",params:r})}function A(r){return t.post({url:"/tcm.diagnosis/bindCallRoom",params:r})}function b(r){return t.post({url:"/tcm.diagnosis/attachLocalCallRecording",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function k(r){return t.get({url:"/tcm.diagnosis/watchCall",params:r})}function W(r){return t.post({url:"/tcm.diagnosis/generateMiniProgramQrcode",params:r})}function E(r){return t.post({url:"/tcm.diagnosis/generateOrderQrcode",params:r})}function B(r){return t.get({url:"/tcm.diagnosis/getImChatMessages",params:r})}function I(r){return t.get({url:"/tcm.diagnosis/getWechatChatRecords",params:r})}function v(r){return t.post({url:"/tcm.diagnosis/addWechatChatRecord",params:r})}function x(r){return t.post({url:"/tcm.diagnosis/deleteWechatChatRecord",params:r})}function S(r){return t.get({url:"/tcm.diagnosis/getWechatExternalContact",params:r})}function T(r){return t.get({url:"/tcm.prescription/lists",params:r})}function w(r){return t.post({url:"/tcm.prescription/add",params:r})}function M(r){return t.post({url:"/tcm.prescription/edit",params:r})}function Q(r){return t.post({url:"/tcm.prescription/delete",params:r})}function q(r){return t.get({url:"/tcm.prescription/detail",params:r})}function G(r){return t.get({url:"/tcm.prescription/listByDiagnosis",params:r})}function V(r){return t.get({url:"/tcm.prescription/getByAppointment",params:r})}function j(r){return t.post({url:"/tcm.prescription/void",params:r})}function z(r){return t.post({url:"/tcm.prescription/audit",params:r})}function F(r){return t.post({url:"/tcm.prescriptionOrder/create",params:r})}function H(r){return t.get({url:"/tcm.prescriptionOrder/lists",params:r})}function J(r){return t.get({url:"/tcm.prescriptionOrder/paidPayOrders",params:r})}function K(r){return t.post({url:"/tcm.prescriptionOrder/withdraw",params:r})}function N(r){return t.get({url:"/tcm.prescriptionOrder/logisticsTrace",params:r})}function U(r){return t.get({url:"/tcm.prescriptionOrder/detail",params:r})}function X(r){return t.post({url:"/tcm.prescriptionOrder/edit",params:r})}function Y(r){return t.post({url:"/tcm.prescriptionOrder/auditPrescription",params:r})}function Z(r){return t.post({url:"/tcm.prescriptionOrder/auditPayment",params:r})}function _(r){return t.post({url:"/tcm.prescriptionOrder/revokeRxAudit",params:r})}function $(r){return t.post({url:"/tcm.prescriptionOrder/revokePayAudit",params:r})}function rr(r){return t.post({url:"/tcm.prescriptionOrder/ship",params:r})}function tr(r){return t.post({url:"/tcm.prescriptionOrder/addPayOrder",params:r})}function er(r){return t.post({url:"/tcm.prescriptionOrder/linkPayOrder",params:r})}function ir(r){return t.post({url:"/tcm.prescriptionOrder/complete",params:r})}function nr(r){return t.get({url:"/tcm.prescriptionOrder/logs",params:r})}function sr(r){return t.get({url:"/tcm.prescriptionLibrary/lists",params:r})}function or(r){return t.post({url:"/tcm.prescriptionLibrary/add",params:r})}function cr(r){return t.post({url:"/tcm.prescriptionLibrary/edit",params:r})}function ar(r){return t.post({url:"/tcm.prescriptionLibrary/delete",params:r})}export{c as $,nr as A,E as B,y as C,W as D,V as E,a as F,u as G,p as H,s as I,o as J,g as K,k as L,R as M,h as N,C as O,O as P,P as Q,G as R,B as S,j as T,i as U,m as V,l as W,d as X,I as Y,v as Z,x as _,q as a,S as a0,n as a1,b as a2,D as a3,A as a4,L as a5,F as b,T as c,z as d,w as e,M as f,f as g,Q as h,sr as i,or as j,cr as k,ar as l,H as m,N as n,U as o,J as p,X as q,Y as r,Z as s,K as t,rr as u,tr as v,er as w,ir as x,_ as y,$ as z};
+import{r as t}from"./index-DsBUBCgs.js";function i(r){return t.get({url:"/tcm.diagnosis/lists",params:r})}function n(r){return t.get({url:"/tcm.diagnosis/assistantDiagnosisStats",params:r})}function s(r){return t.post({url:"/tcm.diagnosis/add",params:r})}function o(r){return t.post({url:"/tcm.diagnosis/edit",params:r})}function c(r){return t.post({url:"/tcm.diagnosis/delete",params:r})}function a(r){return t.get({url:"/tcm.diagnosis/detail",params:r})}function u(r){return t.post({url:"/tcm.diagnosis/checkPhone",params:r})}function p(r){return t.post({url:"/tcm.diagnosis/checkIdCard",params:r})}function d(r){return t.post({url:"/tcm.diagnosis/fillIdCard",params:r})}function l(r){return t.post({url:"/tcm.diagnosis/assign",params:r})}function g(r){return t.get({url:"/tcm.diagnosis/assignLogList",params:r})}function m(){return t.get({url:"/tcm.diagnosis/getAssistants"})}function f(){return t.get({url:"/tcm.diagnosis/getDoctors"})}function O(r){return t.post({url:"/tcm.bloodRecord/add",params:r})}function C(r){return t.post({url:"/tcm.bloodRecord/edit",params:r})}function R(r){return t.post({url:"/tcm.bloodRecord/delete",params:r})}function h(r){return t.get({url:"/tcm.bloodRecord/getRecordsByPatient",params:r})}function y(r){return t.post({url:"/tcm.diagnosis/getCallSignature",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function L(r){return t.post({url:"/tcm.diagnosis/startCall",params:r})}function P(r){return t.post({url:"/tcm.diagnosis/endCall",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function D(r){return t.get({url:"/tcm.diagnosis/getCallRecords",params:r})}function b(r){return t.post({url:"/tcm.diagnosis/bindCallRoom",params:r})}function A(r){return t.post({url:"/tcm.diagnosis/attachLocalCallRecording",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function k(r){return t.get({url:"/tcm.diagnosis/watchCall",params:r})}function W(r){return t.post({url:"/tcm.diagnosis/generateMiniProgramQrcode",params:r})}function v(r){return t.post({url:"/tcm.diagnosis/generateOrderQrcode",params:r})}function E(r){return t.get({url:"/tcm.diagnosis/getImChatMessages",params:r})}function w(r){return t.get({url:"/tcm.diagnosis/getWechatChatRecords",params:r})}function B(r){return t.post({url:"/tcm.diagnosis/addWechatChatRecord",params:r})}function I(r){return t.post({url:"/tcm.diagnosis/deleteWechatChatRecord",params:r})}function S(r){return t.get({url:"/tcm.diagnosis/getWechatExternalContact",params:r})}function x(r){return t.get({url:"/tcm.prescription/lists",params:r})}function G(r){return t.post({url:"/tcm.prescription/add",params:r})}function T(r){return t.post({url:"/tcm.prescription/edit",params:r})}function M(r){return t.post({url:"/tcm.prescription/delete",params:r})}function Q(r){return t.get({url:"/tcm.prescription/detail",params:r})}function q(r){return t.get({url:"/tcm.prescription/listByDiagnosis",params:r})}function V(r){return t.get({url:"/tcm.prescription/getByAppointment",params:r})}function j(r){return t.post({url:"/tcm.prescription/void",params:r})}function z(r){return t.post({url:"/tcm.prescription/audit",params:r})}function F(r){return t.post({url:"/tcm.prescriptionOrder/create",params:r})}function H(r){return t.get({url:"/tcm.prescriptionOrder/lists",params:r})}function J(r){return t.get({url:"/tcm.prescriptionOrder/paidPayOrders",params:r})}function K(r){return t.post({url:"/tcm.prescriptionOrder/withdraw",params:r})}function N(r){return t.get({url:"/tcm.prescriptionOrder/logisticsTrace",params:r})}function U(r){return t.get({url:"/tcm.prescriptionOrder/detail",params:r})}function X(r){return t.post({url:"/tcm.prescriptionOrder/edit",params:r})}function Y(r){return t.post({url:"/tcm.prescriptionOrder/auditPrescription",params:r})}function Z(r){return t.post({url:"/tcm.prescriptionOrder/auditPayment",params:r})}function _(r){return t.post({url:"/tcm.prescriptionOrder/revokeRxAudit",params:r})}function $(r){return t.post({url:"/tcm.prescriptionOrder/revokePayAudit",params:r})}function rr(r){return t.post({url:"/tcm.prescriptionOrder/ship",params:r})}function tr(r){return t.post({url:"/tcm.prescriptionOrder/addPayOrder",params:r})}function er(r){return t.post({url:"/tcm.prescriptionOrder/linkPayOrder",params:r})}function ir(r){return t.post({url:"/tcm.prescriptionOrder/complete",params:r})}function nr(r){return t.post({url:"/tcm.prescriptionOrder/submitGancaoRecipel",params:r})}function sr(r){return t.post({url:"/tcm.prescriptionOrder/previewGancaoRecipel",params:r})}function or(r){return t.get({url:"/tcm.prescriptionOrder/logs",params:r})}function cr(r){return t.get({url:"/tcm.prescriptionLibrary/lists",params:r})}function ar(r){return t.post({url:"/tcm.prescriptionLibrary/add",params:r})}function ur(r){return t.post({url:"/tcm.prescriptionLibrary/edit",params:r})}function pr(r){return t.post({url:"/tcm.prescriptionLibrary/delete",params:r})}export{B as $,_ as A,$ as B,or as C,v as D,y as E,W as F,V as G,a as H,u as I,p as J,s as K,o as L,g as M,k as N,h as O,R as P,C as Q,O as R,D as S,q as T,E as U,j as V,i as W,m as X,l as Y,d as Z,w as _,Q as a,I as a0,c as a1,S as a2,n as a3,A as a4,P as a5,b as a6,L as a7,F as b,x as c,z as d,G as e,T as f,f as g,M as h,cr as i,ar as j,ur as k,pr as l,H as m,N as n,U as o,J as p,X as q,Y as r,Z as s,K as t,sr as u,nr as v,rr as w,tr as x,er as y,ir as z};
diff --git a/server/public/admin/assets/theme-picker-BnVPZoF_.js b/server/public/admin/assets/theme-picker-Idz3c41M.js
similarity index 87%
rename from server/public/admin/assets/theme-picker-BnVPZoF_.js
rename to server/public/admin/assets/theme-picker-Idz3c41M.js
index 2c627c4b..3ac9e7ca 100644
--- a/server/public/admin/assets/theme-picker-BnVPZoF_.js
+++ b/server/public/admin/assets/theme-picker-Idz3c41M.js
@@ -1 +1 @@
-import{d as u}from"./@vueuse/core-DIKi2bJB.js";import{f,ak as e,I as p,F as x,ap as _,J as s}from"./@vue/runtime-core-C0pg79pw.js";import{o as h,p as k,Q as g}from"./@vue/shared-mAAVTE9n.js";import{y as a}from"./@vue/reactivity-BIbyPIZJ.js";import{_ as v}from"./index-DWk_b8Nv.js";import"./@vueuse/shared-D8934tfB.js";import"./lodash-D3kF6u-c.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./element-plus-Dmpg6ayE.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const y={class:"flex flex-wrap"},C=["onClick"],V={class:"ml-[14px]"},w=f({__name:"theme-picker",props:{themeColors:{},modelValue:{}},emits:["update:modelValue","change"],setup(i,{emit:l}){const n=i,m=l,t=u(n,"modelValue",m),c=r=>{t.value=r.id,m("change",r)};return(r,B)=>(e(),p("div",y,[(e(!0),p(x,null,_(i.themeColors,(o,d)=>(e(),p("div",{class:h(["py-[18px] px-[20px] flex items-center text-[14px] shadow rounded-lg mr-[20px] mb-[20px] cursor-pointer",{"is-select":a(t)==o.id,unselect:a(t)!=o.id}]),key:d,onClick:I=>c(o)},[s("div",{class:"rounded-full h-[34px] w-[34px]",style:k(`background: linear-gradient(to right, ${o.color1}, ${o.color2})`)},null,4),s("div",V,g(o.name),1)],10,C))),128))]))}}),no=v(w,[["__scopeId","data-v-48f4aa49"]]);export{no as default};
+import{d as u}from"./@vueuse/core-DIKi2bJB.js";import{f,ak as e,I as p,F as x,ap as _,J as s}from"./@vue/runtime-core-C0pg79pw.js";import{o as h,p as k,Q as g}from"./@vue/shared-mAAVTE9n.js";import{y as a}from"./@vue/reactivity-BIbyPIZJ.js";import{_ as v}from"./index-DsBUBCgs.js";import"./@vueuse/shared-D8934tfB.js";import"./lodash-D3kF6u-c.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./element-plus-DCRlGjqn.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const y={class:"flex flex-wrap"},C=["onClick"],V={class:"ml-[14px]"},w=f({__name:"theme-picker",props:{themeColors:{},modelValue:{}},emits:["update:modelValue","change"],setup(i,{emit:l}){const n=i,m=l,t=u(n,"modelValue",m),c=r=>{t.value=r.id,m("change",r)};return(r,B)=>(e(),p("div",y,[(e(!0),p(x,null,_(i.themeColors,(o,d)=>(e(),p("div",{class:h(["py-[18px] px-[20px] flex items-center text-[14px] shadow rounded-lg mr-[20px] mb-[20px] cursor-pointer",{"is-select":a(t)==o.id,unselect:a(t)!=o.id}]),key:d,onClick:I=>c(o)},[s("div",{class:"rounded-full h-[34px] w-[34px]",style:k(`background: linear-gradient(to right, ${o.color1}, ${o.color2})`)},null,4),s("div",V,g(o.name),1)],10,C))),128))]))}}),no=v(w,[["__scopeId","data-v-48f4aa49"]]);export{no as default};
diff --git a/server/public/admin/assets/tongji-CDlB6kN_.js b/server/public/admin/assets/tongji-DGmFZfE1.js
similarity index 96%
rename from server/public/admin/assets/tongji-CDlB6kN_.js
rename to server/public/admin/assets/tongji-DGmFZfE1.js
index e897c594..f9f4c5b4 100644
--- a/server/public/admin/assets/tongji-CDlB6kN_.js
+++ b/server/public/admin/assets/tongji-DGmFZfE1.js
@@ -1 +1 @@
-import{D as Q,B as q,P as H,Q as W,G as X,F as $,X as A,i as K,J as Z,L as tt,M as et,N as st,U as at,T as ot,E as lt}from"./element-plus-Dmpg6ayE.js";import{d as nt,f as it}from"./doctor-B1l88RG7.js";import{f as rt,b as dt,ak as a,I as i,a as o,aN as s,F as f,ap as y,G as v,O as c,H as _t,J as l,aP as ct}from"./@vue/runtime-core-C0pg79pw.js";import{Q as p}from"./@vue/shared-mAAVTE9n.js";import{o as E,r as pt}from"./@vue/reactivity-BIbyPIZJ.js";import{_ as ut}from"./index-DWk_b8Nv.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const mt={class:"statistics-page"},ft={key:0},yt={class:"status-overview"},vt={class:"status-section"},gt={key:0},ht={class:"dept-grid"},bt={class:"dept-header"},kt={class:"dept-name"},Et={class:"dept-total"},Vt={class:"status-tags"},Ct={key:1,class:"text-gray-400"},wt={class:"status-section"},Tt={key:0},xt={class:"channel-grid"},Dt={class:"channel-header"},Mt={class:"channel-name"},Bt={class:"channel-total"},Lt={class:"status-tags"},Nt={key:1,class:"text-gray-400"},St={key:1,class:"empty-data"},Ft=rt({__name:"tongji",setup(jt){const g=E(!1),x=E([]),h=E([]),_=E([]),r=pt({doctor_id:"",time_type:"today",start_date:"",end_date:""}),S=async()=>{try{const e=await nt({role_id:1});x.value=e.lists||[]}catch(e){console.error("获取医生列表失败:",e)}},V=async()=>{g.value=!0;try{const e={time_type:r.time_type};r.doctor_id&&(e.doctor_id=r.doctor_id),r.time_type==="custom"&&_.value&&_.value.length===2&&(e.start_date=_.value[0],e.end_date=_.value[1]);const t=await it(e);h.value=t.lists||[],h.value.forEach(d=>{d.dept_status_details||(d.dept_status_details=[]),d.channel_status_details||(d.channel_status_details=[])})}catch(e){console.error("获取统计数据错误:",e),lt.error(e.msg||"获取统计数据失败")}finally{g.value=!1}},F=()=>{r.time_type!=="custom"&&(_.value=[])},j=()=>{r.doctor_id="",r.time_type="today",_.value=[],V()},O=e=>e.statuses?Object.values(e.statuses).reduce((t,d)=>t+d,0):0,P=e=>e.statuses?Object.values(e.statuses).reduce((t,d)=>t+d,0):0,D=e=>({1:"已挂号",2:"已取消",3:"已完成",4:"已过号"})[e]||`状态${e}`,M=e=>({1:"info",2:"danger",3:"success",4:"warning"})[e]||"default";return dt(()=>{S(),V()}),(e,t)=>{const d=W,R=H,b=q,k=$,U=X,Y=A,B=K,G=Q,L=Z,C=st,N=at,I=et,z=ot,J=tt;return a(),i("div",mt,[o(L,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[3]||(t[3]=[l("div",{class:"card-header"},[l("span",{class:"card-title"},"筛选条件")],-1)])]),default:s(()=>[o(G,{inline:!0,model:r,class:"filter-form"},{default:s(()=>[o(b,{label:"医生"},{default:s(()=>[o(R,{modelValue:r.doctor_id,"onUpdate:modelValue":t[0]||(t[0]=n=>r.doctor_id=n),placeholder:"全部医生",clearable:"",filterable:"",style:{width:"200px"}},{default:s(()=>[(a(!0),i(f,null,y(x.value,n=>(a(),v(d,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(b,{label:"时间范围"},{default:s(()=>[o(U,{modelValue:r.time_type,"onUpdate:modelValue":t[1]||(t[1]=n=>r.time_type=n),onChange:F},{default:s(()=>[o(k,{label:"today"},{default:s(()=>[...t[4]||(t[4]=[c("今天",-1)])]),_:1}),o(k,{label:"week"},{default:s(()=>[...t[5]||(t[5]=[c("最近7天",-1)])]),_:1}),o(k,{label:"month"},{default:s(()=>[...t[6]||(t[6]=[c("最近30天",-1)])]),_:1}),o(k,{label:"custom"},{default:s(()=>[...t[7]||(t[7]=[c("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),r.time_type==="custom"?(a(),v(b,{key:0},{default:s(()=>[o(Y,{modelValue:_.value,"onUpdate:modelValue":t[2]||(t[2]=n=>_.value=n),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):_t("",!0),o(b,null,{default:s(()=>[o(B,{type:"primary",onClick:V,loading:g.value},{default:s(()=>[...t[8]||(t[8]=[c("查询",-1)])]),_:1},8,["loading"]),o(B,{onClick:j},{default:s(()=>[...t[9]||(t[9]=[c("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),ct((a(),v(L,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[10]||(t[10]=[l("div",{class:"card-header"},[l("span",{class:"card-title"},"医生统计数据")],-1)])]),default:s(()=>[h.value.length>0?(a(),i("div",ft,[o(I,{data:h.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:s(()=>[o(C,{prop:"doctor_name",label:"医生姓名",width:"120"}),o(C,{label:"状态明细","min-width":"700"},{default:s(({row:n})=>[l("div",yt,[l("div",vt,[t[11]||(t[11]=l("h4",{class:"section-title"},"部门状态",-1)),n.dept_status_details&&n.dept_status_details.length>0?(a(),i("div",gt,[l("div",ht,[(a(!0),i(f,null,y(n.dept_status_details,(u,w)=>(a(),i("div",{key:w,class:"dept-item"},[l("div",bt,[l("span",kt,p(u.dept_name),1),l("span",Et,"("+p(O(u))+")",1)]),l("div",Vt,[(a(!0),i(f,null,y(u.statuses,(T,m)=>(a(),v(N,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(p(D(m))+": "+p(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),i("span",Ct,"暂无部门状态明细"))]),l("div",wt,[t[12]||(t[12]=l("h4",{class:"section-title"},"渠道状态",-1)),n.channel_status_details&&n.channel_status_details.length>0?(a(),i("div",Tt,[l("div",xt,[(a(!0),i(f,null,y(n.channel_status_details,(u,w)=>(a(),i("div",{key:w,class:"channel-item"},[l("div",Dt,[l("span",Mt,p(u.channel_name),1),l("span",Bt,"("+p(P(u))+")",1)]),l("div",Lt,[(a(!0),i(f,null,y(u.statuses,(T,m)=>(a(),v(N,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(p(D(m))+": "+p(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),i("span",Nt,"暂无渠道状态明细"))])])]),_:1}),o(C,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(a(),i("div",St,[o(z,{description:"暂无统计数据"})]))]),_:1})),[[J,g.value]])])}}}),be=ut(Ft,[["__scopeId","data-v-aa7d2a93"]]);export{be as default};
+import{D as Q,B as q,P as H,Q as W,G as X,F as $,X as A,i as K,J as Z,L as tt,M as et,N as st,U as at,T as ot,E as lt}from"./element-plus-DCRlGjqn.js";import{d as nt,i as it}from"./doctor-E6C8uXfZ.js";import{f as rt,b as dt,ak as a,I as i,a as o,aN as s,F as f,ap as y,G as v,O as c,H as _t,J as l,aP as ct}from"./@vue/runtime-core-C0pg79pw.js";import{Q as p}from"./@vue/shared-mAAVTE9n.js";import{o as E,r as pt}from"./@vue/reactivity-BIbyPIZJ.js";import{_ as ut}from"./index-DsBUBCgs.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const mt={class:"statistics-page"},ft={key:0},yt={class:"status-overview"},vt={class:"status-section"},gt={key:0},ht={class:"dept-grid"},bt={class:"dept-header"},kt={class:"dept-name"},Et={class:"dept-total"},Vt={class:"status-tags"},Ct={key:1,class:"text-gray-400"},wt={class:"status-section"},Tt={key:0},xt={class:"channel-grid"},Dt={class:"channel-header"},Mt={class:"channel-name"},Bt={class:"channel-total"},Lt={class:"status-tags"},Nt={key:1,class:"text-gray-400"},St={key:1,class:"empty-data"},Ft=rt({__name:"tongji",setup(jt){const g=E(!1),x=E([]),h=E([]),_=E([]),r=pt({doctor_id:"",time_type:"today",start_date:"",end_date:""}),S=async()=>{try{const e=await nt({role_id:1});x.value=e.lists||[]}catch(e){console.error("获取医生列表失败:",e)}},V=async()=>{g.value=!0;try{const e={time_type:r.time_type};r.doctor_id&&(e.doctor_id=r.doctor_id),r.time_type==="custom"&&_.value&&_.value.length===2&&(e.start_date=_.value[0],e.end_date=_.value[1]);const t=await it(e);h.value=t.lists||[],h.value.forEach(d=>{d.dept_status_details||(d.dept_status_details=[]),d.channel_status_details||(d.channel_status_details=[])})}catch(e){console.error("获取统计数据错误:",e),lt.error(e.msg||"获取统计数据失败")}finally{g.value=!1}},F=()=>{r.time_type!=="custom"&&(_.value=[])},j=()=>{r.doctor_id="",r.time_type="today",_.value=[],V()},O=e=>e.statuses?Object.values(e.statuses).reduce((t,d)=>t+d,0):0,P=e=>e.statuses?Object.values(e.statuses).reduce((t,d)=>t+d,0):0,D=e=>({1:"已挂号",2:"已取消",3:"已完成",4:"已过号"})[e]||`状态${e}`,M=e=>({1:"info",2:"danger",3:"success",4:"warning"})[e]||"default";return dt(()=>{S(),V()}),(e,t)=>{const d=W,R=H,b=q,k=$,U=X,Y=A,B=K,G=Q,L=Z,C=st,N=at,I=et,z=ot,J=tt;return a(),i("div",mt,[o(L,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[3]||(t[3]=[l("div",{class:"card-header"},[l("span",{class:"card-title"},"筛选条件")],-1)])]),default:s(()=>[o(G,{inline:!0,model:r,class:"filter-form"},{default:s(()=>[o(b,{label:"医生"},{default:s(()=>[o(R,{modelValue:r.doctor_id,"onUpdate:modelValue":t[0]||(t[0]=n=>r.doctor_id=n),placeholder:"全部医生",clearable:"",filterable:"",style:{width:"200px"}},{default:s(()=>[(a(!0),i(f,null,y(x.value,n=>(a(),v(d,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(b,{label:"时间范围"},{default:s(()=>[o(U,{modelValue:r.time_type,"onUpdate:modelValue":t[1]||(t[1]=n=>r.time_type=n),onChange:F},{default:s(()=>[o(k,{label:"today"},{default:s(()=>[...t[4]||(t[4]=[c("今天",-1)])]),_:1}),o(k,{label:"week"},{default:s(()=>[...t[5]||(t[5]=[c("最近7天",-1)])]),_:1}),o(k,{label:"month"},{default:s(()=>[...t[6]||(t[6]=[c("最近30天",-1)])]),_:1}),o(k,{label:"custom"},{default:s(()=>[...t[7]||(t[7]=[c("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),r.time_type==="custom"?(a(),v(b,{key:0},{default:s(()=>[o(Y,{modelValue:_.value,"onUpdate:modelValue":t[2]||(t[2]=n=>_.value=n),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):_t("",!0),o(b,null,{default:s(()=>[o(B,{type:"primary",onClick:V,loading:g.value},{default:s(()=>[...t[8]||(t[8]=[c("查询",-1)])]),_:1},8,["loading"]),o(B,{onClick:j},{default:s(()=>[...t[9]||(t[9]=[c("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),ct((a(),v(L,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[10]||(t[10]=[l("div",{class:"card-header"},[l("span",{class:"card-title"},"医生统计数据")],-1)])]),default:s(()=>[h.value.length>0?(a(),i("div",ft,[o(I,{data:h.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:s(()=>[o(C,{prop:"doctor_name",label:"医生姓名",width:"120"}),o(C,{label:"状态明细","min-width":"700"},{default:s(({row:n})=>[l("div",yt,[l("div",vt,[t[11]||(t[11]=l("h4",{class:"section-title"},"部门状态",-1)),n.dept_status_details&&n.dept_status_details.length>0?(a(),i("div",gt,[l("div",ht,[(a(!0),i(f,null,y(n.dept_status_details,(u,w)=>(a(),i("div",{key:w,class:"dept-item"},[l("div",bt,[l("span",kt,p(u.dept_name),1),l("span",Et,"("+p(O(u))+")",1)]),l("div",Vt,[(a(!0),i(f,null,y(u.statuses,(T,m)=>(a(),v(N,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(p(D(m))+": "+p(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),i("span",Ct,"暂无部门状态明细"))]),l("div",wt,[t[12]||(t[12]=l("h4",{class:"section-title"},"渠道状态",-1)),n.channel_status_details&&n.channel_status_details.length>0?(a(),i("div",Tt,[l("div",xt,[(a(!0),i(f,null,y(n.channel_status_details,(u,w)=>(a(),i("div",{key:w,class:"channel-item"},[l("div",Dt,[l("span",Mt,p(u.channel_name),1),l("span",Bt,"("+p(P(u))+")",1)]),l("div",Lt,[(a(!0),i(f,null,y(u.statuses,(T,m)=>(a(),v(N,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(p(D(m))+": "+p(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),i("span",Nt,"暂无渠道状态明细"))])])]),_:1}),o(C,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(a(),i("div",St,[o(z,{description:"暂无统计数据"})]))]),_:1})),[[J,g.value]])])}}}),be=ut(Ft,[["__scopeId","data-v-aa7d2a93"]]);export{be as default};
diff --git a/server/public/admin/assets/upload-CwmjoJh6.js b/server/public/admin/assets/upload-BoDql_JI.js
similarity index 87%
rename from server/public/admin/assets/upload-CwmjoJh6.js
rename to server/public/admin/assets/upload-BoDql_JI.js
index 2088dd52..a4dae5a4 100644
--- a/server/public/admin/assets/upload-CwmjoJh6.js
+++ b/server/public/admin/assets/upload-BoDql_JI.js
@@ -1 +1 @@
-import{i as _,J as u}from"./element-plus-Dmpg6ayE.js";import{U as l}from"./index-CtFRZE9b.js";import{f as c,ak as f,I as y,a as o,aN as t,J as p,O as n}from"./@vue/runtime-core-C0pg79pw.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-DWk_b8Nv.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const g={class:"flex flex-wrap"},v={class:"m-4"},w={class:"m-4"},h={class:"m-4"},x={class:"m-4"},mo=c({__name:"upload",setup(B){const s=e=>{console.log("上传文件的状态发生改变",e)},i=e=>{console.log("上传文件成功",e)},m=e=>{console.log("上传文件失败",e)};return(e,r)=>{const a=_,d=u;return f(),y("div",null,[o(d,{header:"基础使用",shadow:"never",class:"!border-none"},{default:t(()=>[p("div",g,[p("div",v,[o(l,{onChange:s,onSuccess:i,onError:m,"show-progress":!0},{default:t(()=>[o(a,{type:"primary"},{default:t(()=>[...r[0]||(r[0]=[n("上传图片",-1)])]),_:1})]),_:1})]),p("div",w,[o(l,{type:"video",onChange:s,onSuccess:i,onError:m,"show-progress":!0},{default:t(()=>[o(a,{type:"primary"},{default:t(()=>[...r[1]||(r[1]=[n("上传视频",-1)])]),_:1})]),_:1})]),p("div",h,[o(l,{multiple:!1,onChange:s,onSuccess:i,onError:m,"show-progress":!0},{default:t(()=>[o(a,{type:"primary"},{default:t(()=>[...r[2]||(r[2]=[n("取消多选",-1)])]),_:1})]),_:1})]),p("div",x,[o(l,{limit:2,onChange:s,onSuccess:i,onError:m,"show-progress":!0},{default:t(()=>[o(a,{type:"primary"},{default:t(()=>[...r[3]||(r[3]=[n("一次最多上传2张",-1)])]),_:1})]),_:1})])])]),_:1})])}}});export{mo as default};
+import{i as _,J as u}from"./element-plus-DCRlGjqn.js";import{U as l}from"./index-CF2_JamS.js";import{f as c,ak as f,I as y,a as o,aN as t,J as p,O as n}from"./@vue/runtime-core-C0pg79pw.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@vue/reactivity-BIbyPIZJ.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-DsBUBCgs.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const g={class:"flex flex-wrap"},v={class:"m-4"},w={class:"m-4"},h={class:"m-4"},x={class:"m-4"},mo=c({__name:"upload",setup(B){const s=e=>{console.log("上传文件的状态发生改变",e)},i=e=>{console.log("上传文件成功",e)},m=e=>{console.log("上传文件失败",e)};return(e,r)=>{const a=_,d=u;return f(),y("div",null,[o(d,{header:"基础使用",shadow:"never",class:"!border-none"},{default:t(()=>[p("div",g,[p("div",v,[o(l,{onChange:s,onSuccess:i,onError:m,"show-progress":!0},{default:t(()=>[o(a,{type:"primary"},{default:t(()=>[...r[0]||(r[0]=[n("上传图片",-1)])]),_:1})]),_:1})]),p("div",w,[o(l,{type:"video",onChange:s,onSuccess:i,onError:m,"show-progress":!0},{default:t(()=>[o(a,{type:"primary"},{default:t(()=>[...r[1]||(r[1]=[n("上传视频",-1)])]),_:1})]),_:1})]),p("div",h,[o(l,{multiple:!1,onChange:s,onSuccess:i,onError:m,"show-progress":!0},{default:t(()=>[o(a,{type:"primary"},{default:t(()=>[...r[2]||(r[2]=[n("取消多选",-1)])]),_:1})]),_:1})]),p("div",x,[o(l,{limit:2,onChange:s,onSuccess:i,onError:m,"show-progress":!0},{default:t(()=>[o(a,{type:"primary"},{default:t(()=>[...r[3]||(r[3]=[n("一次最多上传2张",-1)])]),_:1})]),_:1})])])]),_:1})])}}});export{mo as default};
diff --git a/server/public/admin/assets/useDictOptions-7gUIpUOu.js b/server/public/admin/assets/useDictOptions-CvKg9Pzf.js
similarity index 84%
rename from server/public/admin/assets/useDictOptions-7gUIpUOu.js
rename to server/public/admin/assets/useDictOptions-CvKg9Pzf.js
index 128c8641..af33f17d 100644
--- a/server/public/admin/assets/useDictOptions-7gUIpUOu.js
+++ b/server/public/admin/assets/useDictOptions-CvKg9Pzf.js
@@ -1 +1 @@
-import"./index-DWk_b8Nv.js";import{t as p,r as f}from"./@vue/reactivity-BIbyPIZJ.js";function d(a){const s=f({}),r=Object.keys(a),i=r.map(o=>{const t=a[o];return s[o]=[],()=>t.api(p(t.params)||{})}),e=async()=>{(await Promise.allSettled(i.map(t=>t()))).forEach((t,u)=>{const n=r[u];if(t.status=="fulfilled"){const{transformData:c}=a[n],l=c?c(t.value):t.value;s[n]=l}})};return e(),{optionsData:s,refresh:e}}export{d as u};
+import"./index-DsBUBCgs.js";import{t as p,r as f}from"./@vue/reactivity-BIbyPIZJ.js";function d(a){const s=f({}),r=Object.keys(a),i=r.map(o=>{const t=a[o];return s[o]=[],()=>t.api(p(t.params)||{})}),e=async()=>{(await Promise.allSettled(i.map(t=>t()))).forEach((t,u)=>{const n=r[u];if(t.status=="fulfilled"){const{transformData:c}=a[n],l=c?c(t.value):t.value;s[n]=l}})};return e(),{optionsData:s,refresh:e}}export{d as u};
diff --git a/server/public/admin/assets/useMenuOa-By63luzh.js b/server/public/admin/assets/useMenuOa-BLpnQXF0.js
similarity index 92%
rename from server/public/admin/assets/useMenuOa-By63luzh.js
rename to server/public/admin/assets/useMenuOa-BLpnQXF0.js
index a8cecd6b..8697aaf6 100644
--- a/server/public/admin/assets/useMenuOa-By63luzh.js
+++ b/server/public/admin/assets/useMenuOa-BLpnQXF0.js
@@ -1 +1 @@
-import{a as i,b as c,c as g}from"./wx_oa-DAhGf1fY.js";import{i as o}from"./index-DWk_b8Nv.js";import{r as h,u as d,o as l}from"./@vue/reactivity-BIbyPIZJ.js";const r=d(),u=l([]),n=l(0),O=h({name:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]},{min:1,max:12,message:"长度限制12个字符",trigger:["blur","change"]}],menuType:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]}],visitType:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]}],url:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]},{pattern:/(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/,message:"请输入合法的网址链接",trigger:["blur","change"]}],appId:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]}],pagePath:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]}]}),x=s=>(s&&(r.value=s),{menuList:u,menuIndex:n,handleAddMenu:()=>{u.value.push({name:"菜单名称",has_menu:!1,type:"view",url:"",appid:"",pagepath:"",sub_button:[]})},handleAddSubMenu:e=>{const a=n.value;if(u.value[a].sub_button.length>=5){o.msgError("已添加上限~");return}u.value[a].sub_button.push(e)},handleEditSubMenu:(e,a)=>{const t=n.value;u.value[t].sub_button[a]=e},handleDelMenu:e=>{e!=0&&n.value--,u.value.splice(e,1)},handleDelSubMenu:(e,a)=>{u.value[e].sub_button.splice(a,1)},getOaMenuFunc:async()=>{try{u.value=await g()}catch(e){console.log("获取菜单=>",e)}},handleSave:async()=>{const e=r.value.value;for(let a=0;a{const e=r.value.value;for(let a=0;a(s&&(r.value=s),{menuList:u,menuIndex:n,handleAddMenu:()=>{u.value.push({name:"菜单名称",has_menu:!1,type:"view",url:"",appid:"",pagepath:"",sub_button:[]})},handleAddSubMenu:e=>{const a=n.value;if(u.value[a].sub_button.length>=5){o.msgError("已添加上限~");return}u.value[a].sub_button.push(e)},handleEditSubMenu:(e,a)=>{const t=n.value;u.value[t].sub_button[a]=e},handleDelMenu:e=>{e!=0&&n.value--,u.value.splice(e,1)},handleDelSubMenu:(e,a)=>{u.value[e].sub_button.splice(a,1)},getOaMenuFunc:async()=>{try{u.value=await g()}catch(e){console.log("获取菜单=>",e)}},handleSave:async()=>{const e=r.value.value;for(let a=0;a{const e=r.value.value;for(let a=0;a{const v=await J();for(const o in l)l[o]=v[o]},k=async()=>{var v;await((v=w.value)==null?void 0:v.validate()),await W(l),V()};return V(),(v,o)=>{const I=E,b=S,m=F,a=B,q=j,p=N,U=R,y=C,f=x("copy"),A=x("perms");return n(),K("div",null,[t(b,{class:"!border-none",shadow:"never"},{default:i(()=>[t(I,{type:"warning",title:"温馨提示:填写微信小程序开发配置,请前往微信公众平台申请小程序并完成认证",closable:!1,"show-icon":""})]),_:1}),t(U,{ref_key:"formRef",ref:w,model:s(l),rules:D,"label-width":s(c).isMobile?"80px":"160px"},{default:i(()=>[t(b,{class:"!border-none mt-4",shadow:"never"},{default:i(()=>[o[12]||(o[12]=e("div",{class:"font-medium mb-7"},"微信小程序",-1)),t(a,{label:"小程序名称",prop:"name"},{default:i(()=>[e("div",P,[t(m,{modelValue:s(l).name,"onUpdate:modelValue":o[0]||(o[0]=d=>s(l).name=d),placeholder:"请输入小程序名称"},null,8,["modelValue"])])]),_:1}),t(a,{label:"原始ID",prop:"original_id"},{default:i(()=>[e("div",T,[t(m,{modelValue:s(l).original_id,"onUpdate:modelValue":o[1]||(o[1]=d=>s(l).original_id=d),placeholder:"请输入原始ID"},null,8,["modelValue"])])]),_:1}),t(a,{label:"小程序码",prop:"qr_code"},{default:i(()=>[e("div",z,[e("div",null,[t(q,{modelValue:s(l).qr_code,"onUpdate:modelValue":o[2]||(o[2]=d=>s(l).qr_code=d),limit:1},null,8,["modelValue"])]),o[11]||(o[11]=e("div",{class:"form-tips"},"建议尺寸:宽400px*高400px。jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),t(b,{class:"!border-none mt-4",shadow:"never"},{default:i(()=>[o[14]||(o[14]=e("div",{class:"font-medium mb-7"},"开发者ID",-1)),t(a,{label:"AppID",prop:"app_id"},{default:i(()=>[e("div",H,[t(m,{modelValue:s(l).app_id,"onUpdate:modelValue":o[3]||(o[3]=d=>s(l).app_id=d),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),t(a,{label:"AppSecret",prop:"app_secret"},{default:i(()=>[e("div",L,[t(m,{modelValue:s(l).app_secret,"onUpdate:modelValue":o[4]||(o[4]=d=>s(l).app_secret=d),placeholder:"请输入AppSecret"},null,8,["modelValue"])])]),_:1}),t(a,null,{default:i(()=>[...o[13]||(o[13]=[e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret ",-1)])]),_:1})]),_:1}),t(b,{class:"!border-none mt-4",shadow:"never"},{default:i(()=>[o[25]||(o[25]=e("div",{class:"font-medium mb-7"},"服务器域名",-1)),t(a,{label:"request合法域名",prop:"appId"},{default:i(()=>[e("div",Q,[e("div",X,[e("div",Y,[t(m,{modelValue:s(l).request_domain,"onUpdate:modelValue":o[5]||(o[5]=d=>s(l).request_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[15]||(o[15]=[_("复制",-1)])]),_:1})),[[f,s(l).request_domain]])]),o[16]||(o[16]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),t(a,{label:"socket合法域名"},{default:i(()=>[e("div",Z,[e("div",$,[e("div",h,[t(m,{modelValue:s(l).socket_domain,"onUpdate:modelValue":o[6]||(o[6]=d=>s(l).socket_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[17]||(o[17]=[_("复制",-1)])]),_:1})),[[f,s(l).socket_domain]])]),o[18]||(o[18]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写wss协议域名 ",-1))])]),_:1}),t(a,{label:"uploadFile合法域名"},{default:i(()=>[e("div",oo,[e("div",eo,[e("div",lo,[t(m,{modelValue:s(l).upload_file_domain,"onUpdate:modelValue":o[7]||(o[7]=d=>s(l).upload_file_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[19]||(o[19]=[_("复制",-1)])]),_:1})),[[f,s(l).upload_file_domain]])]),o[20]||(o[20]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),t(a,{label:"downloadFile合法域名"},{default:i(()=>[e("div",to,[e("div",so,[e("div",io,[t(m,{modelValue:s(l).download_file_domain,"onUpdate:modelValue":o[8]||(o[8]=d=>s(l).download_file_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[21]||(o[21]=[_("复制",-1)])]),_:1})),[[f,s(l).download_file_domain]])]),o[22]||(o[22]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),t(a,{label:"udp合法域名"},{default:i(()=>[e("div",ao,[e("div",mo,[e("div",no,[t(m,{modelValue:s(l).udp_domain,"onUpdate:modelValue":o[9]||(o[9]=d=>s(l).udp_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[23]||(o[23]=[_("复制",-1)])]),_:1})),[[f,s(l).udp_domain]])]),o[24]||(o[24]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写udp协议域名 ",-1))])]),_:1})]),_:1}),t(b,{class:"!border-none mt-4",shadow:"never"},{default:i(()=>[o[28]||(o[28]=e("div",{class:"font-medium mb-7"},"业务域名",-1)),t(a,{label:"业务域名"},{default:i(()=>[e("div",po,[e("div",ro,[e("div",uo,[t(m,{modelValue:s(l).business_domain,"onUpdate:modelValue":o[10]||(o[10]=d=>s(l).business_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[26]||(o[26]=[_("复制",-1)])]),_:1})),[[f,s(l).business_domain]])]),o[27]||(o[27]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->业务域名,填写业务域名 ",-1))])]),_:1})]),_:1})]),_:1},8,["model","label-width"]),r((n(),u(y,null,{default:i(()=>[t(p,{type:"primary",onClick:k},{default:i(()=>[...o[29]||(o[29]=[_("保存",-1)])]),_:1})]),_:1})),[[A,["channel.mnp_settings/setConfig"]]])])}}});export{fe as default};
+import{_ as C}from"./index-Bpp7evyC.js";import{K as E,J as S,B,C as F,i as N,D as R}from"./element-plus-DCRlGjqn.js";import{_ as j}from"./picker-h7OmyGiV.js";import{g as J,s as W}from"./weapp-Cf8Vtmdt.js";import{e as G}from"./index-DsBUBCgs.js";import{f as g,as as x,ak as n,I as K,a as t,aN as i,J as e,aP as r,G as u,O as _}from"./@vue/runtime-core-C0pg79pw.js";import{y as s,r as M,u as O}from"./@vue/reactivity-BIbyPIZJ.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./@element-plus/icons-vue-jYCthPJY.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-dlM42V9p.js";import"./index-DrXr9qPh.js";import"./index.vue_vue_type_script_setup_true_lang-CwEtReGd.js";import"./index-BmvifxBX.js";import"./index-CF2_JamS.js";import"./index.vue_vue_type_script_setup_true_lang-BuPXZ-mu.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./file-DRO9_cYT.js";import"./usePaging-B_C_SZ2Z.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const P={class:"w-80"},T={class:"w-80"},z={class:"flex-1"},H={class:"w-80"},L={class:"w-80"},Q={class:"flex-1 min-w-0"},X={class:"sm:flex"},Y={class:"mr-4 sm:w-80 flex"},Z={class:"flex-1 min-w-0"},$={class:"sm:flex"},h={class:"mr-4 sm:w-80 flex"},oo={class:"flex-1 min-w-0"},eo={class:"sm:flex"},lo={class:"mr-4 sm:w-80 flex"},to={class:"flex-1 min-w-0"},so={class:"sm:flex"},io={class:"mr-4 sm:w-80 flex"},ao={class:"flex-1 min-w-0"},mo={class:"sm:flex"},no={class:"mr-4 sm:w-80 flex"},po={class:"flex-1 min-w-0"},ro={class:"sm:flex"},uo={class:"mr-4 sm:w-80 flex"},_o=g({name:"weappConfig"}),fe=g({..._o,setup(fo){const c=G(),l=M({name:"",original_id:"",qr_code:"",app_id:"",app_secret:"",business_domain:"",download_file_domain:"",request_domain:"",socket_domain:"",tcpDomain:"",udp_domain:"",upload_file_domain:""}),w=O(),D={app_id:[{required:!0,message:"请输入AppID",trigger:["blur","change"]}],app_secret:[{required:!0,message:"请输入AppSecret",trigger:["blur","change"]}]},V=async()=>{const v=await J();for(const o in l)l[o]=v[o]},k=async()=>{var v;await((v=w.value)==null?void 0:v.validate()),await W(l),V()};return V(),(v,o)=>{const I=E,b=S,m=F,a=B,q=j,p=N,U=R,y=C,f=x("copy"),A=x("perms");return n(),K("div",null,[t(b,{class:"!border-none",shadow:"never"},{default:i(()=>[t(I,{type:"warning",title:"温馨提示:填写微信小程序开发配置,请前往微信公众平台申请小程序并完成认证",closable:!1,"show-icon":""})]),_:1}),t(U,{ref_key:"formRef",ref:w,model:s(l),rules:D,"label-width":s(c).isMobile?"80px":"160px"},{default:i(()=>[t(b,{class:"!border-none mt-4",shadow:"never"},{default:i(()=>[o[12]||(o[12]=e("div",{class:"font-medium mb-7"},"微信小程序",-1)),t(a,{label:"小程序名称",prop:"name"},{default:i(()=>[e("div",P,[t(m,{modelValue:s(l).name,"onUpdate:modelValue":o[0]||(o[0]=d=>s(l).name=d),placeholder:"请输入小程序名称"},null,8,["modelValue"])])]),_:1}),t(a,{label:"原始ID",prop:"original_id"},{default:i(()=>[e("div",T,[t(m,{modelValue:s(l).original_id,"onUpdate:modelValue":o[1]||(o[1]=d=>s(l).original_id=d),placeholder:"请输入原始ID"},null,8,["modelValue"])])]),_:1}),t(a,{label:"小程序码",prop:"qr_code"},{default:i(()=>[e("div",z,[e("div",null,[t(q,{modelValue:s(l).qr_code,"onUpdate:modelValue":o[2]||(o[2]=d=>s(l).qr_code=d),limit:1},null,8,["modelValue"])]),o[11]||(o[11]=e("div",{class:"form-tips"},"建议尺寸:宽400px*高400px。jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),t(b,{class:"!border-none mt-4",shadow:"never"},{default:i(()=>[o[14]||(o[14]=e("div",{class:"font-medium mb-7"},"开发者ID",-1)),t(a,{label:"AppID",prop:"app_id"},{default:i(()=>[e("div",H,[t(m,{modelValue:s(l).app_id,"onUpdate:modelValue":o[3]||(o[3]=d=>s(l).app_id=d),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),t(a,{label:"AppSecret",prop:"app_secret"},{default:i(()=>[e("div",L,[t(m,{modelValue:s(l).app_secret,"onUpdate:modelValue":o[4]||(o[4]=d=>s(l).app_secret=d),placeholder:"请输入AppSecret"},null,8,["modelValue"])])]),_:1}),t(a,null,{default:i(()=>[...o[13]||(o[13]=[e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret ",-1)])]),_:1})]),_:1}),t(b,{class:"!border-none mt-4",shadow:"never"},{default:i(()=>[o[25]||(o[25]=e("div",{class:"font-medium mb-7"},"服务器域名",-1)),t(a,{label:"request合法域名",prop:"appId"},{default:i(()=>[e("div",Q,[e("div",X,[e("div",Y,[t(m,{modelValue:s(l).request_domain,"onUpdate:modelValue":o[5]||(o[5]=d=>s(l).request_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[15]||(o[15]=[_("复制",-1)])]),_:1})),[[f,s(l).request_domain]])]),o[16]||(o[16]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),t(a,{label:"socket合法域名"},{default:i(()=>[e("div",Z,[e("div",$,[e("div",h,[t(m,{modelValue:s(l).socket_domain,"onUpdate:modelValue":o[6]||(o[6]=d=>s(l).socket_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[17]||(o[17]=[_("复制",-1)])]),_:1})),[[f,s(l).socket_domain]])]),o[18]||(o[18]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写wss协议域名 ",-1))])]),_:1}),t(a,{label:"uploadFile合法域名"},{default:i(()=>[e("div",oo,[e("div",eo,[e("div",lo,[t(m,{modelValue:s(l).upload_file_domain,"onUpdate:modelValue":o[7]||(o[7]=d=>s(l).upload_file_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[19]||(o[19]=[_("复制",-1)])]),_:1})),[[f,s(l).upload_file_domain]])]),o[20]||(o[20]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),t(a,{label:"downloadFile合法域名"},{default:i(()=>[e("div",to,[e("div",so,[e("div",io,[t(m,{modelValue:s(l).download_file_domain,"onUpdate:modelValue":o[8]||(o[8]=d=>s(l).download_file_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[21]||(o[21]=[_("复制",-1)])]),_:1})),[[f,s(l).download_file_domain]])]),o[22]||(o[22]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),t(a,{label:"udp合法域名"},{default:i(()=>[e("div",ao,[e("div",mo,[e("div",no,[t(m,{modelValue:s(l).udp_domain,"onUpdate:modelValue":o[9]||(o[9]=d=>s(l).udp_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[23]||(o[23]=[_("复制",-1)])]),_:1})),[[f,s(l).udp_domain]])]),o[24]||(o[24]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写udp协议域名 ",-1))])]),_:1})]),_:1}),t(b,{class:"!border-none mt-4",shadow:"never"},{default:i(()=>[o[28]||(o[28]=e("div",{class:"font-medium mb-7"},"业务域名",-1)),t(a,{label:"业务域名"},{default:i(()=>[e("div",po,[e("div",ro,[e("div",uo,[t(m,{modelValue:s(l).business_domain,"onUpdate:modelValue":o[10]||(o[10]=d=>s(l).business_domain=d),disabled:""},null,8,["modelValue"])]),r((n(),u(p,null,{default:i(()=>[...o[26]||(o[26]=[_("复制",-1)])]),_:1})),[[f,s(l).business_domain]])]),o[27]||(o[27]=e("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->业务域名,填写业务域名 ",-1))])]),_:1})]),_:1})]),_:1},8,["model","label-width"]),r((n(),u(y,null,{default:i(()=>[t(p,{type:"primary",onClick:k},{default:i(()=>[...o[29]||(o[29]=[_("保存",-1)])]),_:1})]),_:1})),[[A,["channel.mnp_settings/setConfig"]]])])}}});export{fe as default};
diff --git a/server/public/admin/assets/website-BQObevlt.js b/server/public/admin/assets/website-DBKOzmMR.js
similarity index 91%
rename from server/public/admin/assets/website-BQObevlt.js
rename to server/public/admin/assets/website-DBKOzmMR.js
index 4192e577..3c4fc872 100644
--- a/server/public/admin/assets/website-BQObevlt.js
+++ b/server/public/admin/assets/website-DBKOzmMR.js
@@ -1 +1 @@
-import{r as t}from"./index-DWk_b8Nv.js";function i(){return t.get({url:"/setting.web.web_setting/getCopyright"})}function n(e){return t.post({url:"/setting.web.web_setting/setCopyright",params:e})}function r(){return t.get({url:"/setting.web.web_setting/getWebsite"})}function g(e){return t.post({url:"/setting.web.web_setting/setWebsite",params:e})}function o(){return t.get({url:"/setting.web.web_setting/getAgreement"})}function u(e){return t.post({url:"/setting.web.web_setting/setAgreement",params:e})}function b(){return t.get({url:"/setting.web.web_setting/getSiteStatistics"})}function w(e){return t.post({url:"/setting.web.web_setting/setSiteStatistics",params:e})}export{r as a,g as b,o as c,u as d,b as e,w as f,i as g,n as s};
+import{r as t}from"./index-DsBUBCgs.js";function i(){return t.get({url:"/setting.web.web_setting/getCopyright"})}function n(e){return t.post({url:"/setting.web.web_setting/setCopyright",params:e})}function r(){return t.get({url:"/setting.web.web_setting/getWebsite"})}function g(e){return t.post({url:"/setting.web.web_setting/setWebsite",params:e})}function o(){return t.get({url:"/setting.web.web_setting/getAgreement"})}function u(e){return t.post({url:"/setting.web.web_setting/setAgreement",params:e})}function b(){return t.get({url:"/setting.web.web_setting/getSiteStatistics"})}function w(e){return t.post({url:"/setting.web.web_setting/setSiteStatistics",params:e})}export{r as a,g as b,o as c,u as d,b as e,w as f,i as g,n as s};
diff --git a/server/public/admin/assets/wx_oa-DAhGf1fY.js b/server/public/admin/assets/wx_oa-B3acFtgG.js
similarity index 93%
rename from server/public/admin/assets/wx_oa-DAhGf1fY.js
rename to server/public/admin/assets/wx_oa-B3acFtgG.js
index 1d23df1a..50cc518e 100644
--- a/server/public/admin/assets/wx_oa-DAhGf1fY.js
+++ b/server/public/admin/assets/wx_oa-B3acFtgG.js
@@ -1 +1 @@
-import{r as t}from"./index-DWk_b8Nv.js";function a(n){return t.post({url:"/channel.official_account_setting/setConfig",params:n})}function c(){return t.get({url:"/channel.official_account_setting/getConfig"})}function u(){return t.get({url:"/channel.official_account_menu/detail"})}function l(n){return t.post({url:"/channel.official_account_menu/save",params:n})}function o(n){return t.post({url:"/channel.official_account_menu/saveAndPublish",params:n})}function i(n){return t.get({url:"/channel.official_account_reply/lists",params:n})}function r(n){return t.post({url:"/channel.official_account_reply/delete",params:n})}function f(n){return t.post({url:"/channel.official_account_reply/status",params:n})}function s(n){return t.post({url:"/channel.official_account_reply/add",params:n})}function _(n){return t.post({url:"/channel.official_account_reply/edit",params:n})}function p(n){return t.get({url:"/channel.official_account_reply/detail",params:n})}export{o as a,l as b,u as c,i as d,f as e,_ as f,c as g,s as h,p as i,r as o,a as s};
+import{r as t}from"./index-DsBUBCgs.js";function a(n){return t.post({url:"/channel.official_account_setting/setConfig",params:n})}function c(){return t.get({url:"/channel.official_account_setting/getConfig"})}function u(){return t.get({url:"/channel.official_account_menu/detail"})}function l(n){return t.post({url:"/channel.official_account_menu/save",params:n})}function o(n){return t.post({url:"/channel.official_account_menu/saveAndPublish",params:n})}function i(n){return t.get({url:"/channel.official_account_reply/lists",params:n})}function r(n){return t.post({url:"/channel.official_account_reply/delete",params:n})}function f(n){return t.post({url:"/channel.official_account_reply/status",params:n})}function s(n){return t.post({url:"/channel.official_account_reply/add",params:n})}function _(n){return t.post({url:"/channel.official_account_reply/edit",params:n})}function p(n){return t.get({url:"/channel.official_account_reply/detail",params:n})}export{o as a,l as b,u as c,i as d,f as e,_ as f,c as g,s as h,p as i,r as o,a as s};
diff --git a/server/public/admin/index.html b/server/public/admin/index.html
index cbd6e32a..09d4f130 100644
--- a/server/public/admin/index.html
+++ b/server/public/admin/index.html
@@ -60,7 +60,7 @@
document.head.appendChild(link);
})();
-
+
@@ -72,14 +72,14 @@
-
-
+
+
-
+
@@ -97,7 +97,7 @@
-
+
diff --git a/server/route/api_gancao.php b/server/route/api_gancao.php
index bd3c1900..9ce9168d 100644
--- a/server/route/api_gancao.php
+++ b/server/route/api_gancao.php
@@ -7,5 +7,5 @@
use think\facade\Route;
-// 甘草订单状态回调
-Route::post('gancao/callback/order-status', 'api.GancaoCallback/orderStatus');
+// 甘草订单状态回调(URL 须与 .env GANCAO_SCM_CALLBACK_URL 对应)
+Route::post('api/gancao/callback/order-status', 'app\api\controller\GancaoCallbackController@orderStatus');
diff --git a/server/server.zip b/server/server.zip
index a479a6fb..cd88ea0d 100644
Binary files a/server/server.zip and b/server/server.zip differ