pages-rights-index.CD1HSEcy.js 5.6 KB

1
  1. import{d as a,C as e,c as l,o as s,s as t,a as u,b as d,w as r,i,g as n,e as o,f as m,h as c,u as f,n as _,F as v,j as p,t as y,k as g,A as h,$ as k,y as b,m as x,p as w,z as j,W as C}from"./index-B7mGv1Fq.js";import{u as I}from"./useResource.ia1HMdu2.js";import{u as M,_ as z}from"./CommandStatus.vue_vue_type_script_setup_true_lang.DJTBB3-M.js";import{t as $,g as B,v as R,c as V}from"./format.BtDMOhNb.js";import{I as q}from"./IdentityGuard.BDZX2t10.js";import{P as A}from"./PageState.CP4JAtYF.js";import{B as G}from"./BottomNav.BgH2bjst.js";import{Q as P}from"./QuantityInput.D5ZK8FmY.js";import{_ as Q}from"./_plugin-vue_export-helper.BCo6x5W8.js";const S=Q(a({__name:"index",setup(a){const{data:Q,loading:S,error:W,load:E}=I(()=>n(o("enterprise")+"/rights")),F=I(()=>n("/addresses")),L=e(null),N=e(1),U=e(0),D=l(()=>{var a;return(null==(a=F.data.value)?void 0:a.items.map(a=>`${a.label||"配送地址"}:${a.address}`))||[]}),H=l(()=>{var a;const e=(null==(a=F.data.value)?void 0:a.items.findIndex(a=>a.id===U.value))??-1;return e>=0?e:0});function J(){var a;const e=(null==(a=F.data.value)?void 0:a.items)||[],l=e.find(a=>a.is_default)||e[0];l&&(U.value=l.id)}const K=M(()=>o("enterprise")+"/deliveries",async()=>{L.value=null,$("配送预约已提交"),await E()});function O(a){var e;const l=null==(e=F.data.value)?void 0:e.items[a.detail.value];l&&(U.value=l.id)}return s(()=>{var a;(null==(a=t.active)?void 0:a.role.startsWith("enterprise_"))&&(E(),F.load().then(J))}),u(E),(a,e)=>{const l=i,s=g,t=b,u=k;return m(),d(l,{class:"page"},{default:r(()=>[c(q,{kind:"enterprise"},{default:r(()=>[c(A,{loading:f(S),error:f(W),onRetry:f(E)},null,8,["loading","error","onRetry"]),f(Q)?(m(),_(v,{key:0},[c(l,{class:"hero"},{default:r(()=>[c(l,{class:"hero-subtitle"},{default:r(()=>[p("企业供水可用权益")]),_:1}),c(l,{class:"number"},{default:r(()=>[p(y(f(Q).summary.available)+" ",1),c(s,{class:"muted"},{default:r(()=>[p("桶")]),_:1})]),_:1}),c(l,{class:"progress"},{default:r(()=>[c(l,{class:"progress-fill",style:h({width:Math.min(100,f(Q).summary.available/Math.max(1,f(Q).summary.purchased)*100)+"%"})},null,8,["style"])]),_:1}),c(l,{class:"row hero-subtitle"},{default:r(()=>[c(s,null,{default:r(()=>[p("剩余 "+y(f(Q).summary.remaining)+" 桶",1)]),_:1}),c(s,null,{default:r(()=>[p("配送冻结 "+y(f(Q).summary.frozen)+" 桶",1)]),_:1})]),_:1})]),_:1}),c(l,{class:"section"},{default:r(()=>[c(l,{class:"title"},{default:r(()=>[p("供水账户")]),_:1}),c(s,{class:"muted",onClick:e[0]||(e[0]=a=>f(B)("/pages/rights/ledger"))},{default:r(()=>[p("权益明细 ›")]),_:1})]),_:1}),D.value.length?(m(),d(l,{key:0,class:"card address-picker"},{default:r(()=>[c(l,{class:"row"},{default:r(()=>[c(l,null,{default:r(()=>[c(l,{class:"title"},{default:r(()=>[p("配送到哪个地址")]),_:1}),c(l,{class:"muted"},{default:r(()=>[p("预约时会使用所选地址")]),_:1})]),_:1}),c(u,{range:D.value,value:H.value,onChange:O},{default:r(()=>[c(t,{class:"secondary"},{default:r(()=>[p("切换地址")]),_:1})]),_:1},8,["range","value"])]),_:1}),c(l,{class:"address-current"},{default:r(()=>[p(y(D.value[H.value]),1)]),_:1})]),_:1})):x("",!0),(m(!0),_(v,null,w(f(Q).items,a=>(m(),d(l,{key:a.id,class:"card"},{default:r(()=>[c(l,{class:"row"},{default:r(()=>[c(s,{class:j(["tag","healthy"===a.severity?"green":"orange"])},{default:r(()=>[p(y("healthy"===a.severity?"用水正常":"建议补水"),1)]),_:2},1032,["class"]),c(s,{class:"muted"},{default:r(()=>[p(y(a.liters)+"L",1)]),_:2},1024)]),_:2},1024),c(l,{class:"title",style:{margin:"20rpx 0"}},{default:r(()=>[p(y(a.sku_name),1)]),_:2},1024),c(l,{class:"row"},{default:r(()=>[c(l,null,{default:r(()=>[c(s,{class:"amount"},{default:r(()=>[p(y(a.available),1)]),_:2},1024),c(s,{class:"muted"},{default:r(()=>[p("桶可预约")]),_:1})]),_:2},1024),c(s,{class:"muted"},{default:r(()=>[p("现场满桶 "+y(a.full_qty),1)]),_:2},1024)]),_:2},1024),c(l,{class:"progress"},{default:r(()=>[c(l,{class:"progress-fill",style:h({width:Math.min(100,a.available/Math.max(1,a.remaining)*100)+"%"})},null,8,["style"])]),_:2},1024),c(l,{class:"row muted"},{default:r(()=>[c(s,null,{default:r(()=>[p("冻结 "+y(a.frozen)+" 桶",1)]),_:2},1024),c(s,null,{default:r(()=>[p("预计用水 "+y(f(R)(a.days_left))+" 天",1)]),_:2},1024)]),_:2},1024),f(C)()?(m(),_(v,{key:0},[L.value===a.sku_id?(m(),d(l,{key:0,class:"booking"},{default:r(()=>[c(l,{class:"row"},{default:r(()=>[c(s,null,{default:r(()=>[p("预约桶数")]),_:1}),c(P,{modelValue:N.value,"onUpdate:modelValue":e[1]||(e[1]=a=>N.value=a),max:Math.min(1e4,a.available)},null,8,["modelValue","max"])]),_:2},1024),c(t,{class:"primary",disabled:f(K).busy||a.available<1,onClick:e=>async function(a){U.value?await V("预约配送",`确认预约 ${N.value} 桶?将冻结对应供水权益,等待平台安排配送。`)&&K.execute({sku_id:a,quantity:N.value,address_id:U.value}):$("请先新增或选择配送地址")}(a.sku_id)},{default:r(()=>[p(" 确认预约配送 ")]),_:2},1032,["disabled","onClick"])]),_:2},1024)):(m(),d(t,{key:1,class:"secondary",style:{"margin-top":"24rpx"},disabled:a.available<1,onClick:e=>{L.value=a.sku_id,N.value=1}},{default:r(()=>[p(" 预约配送 ")]),_:2},1032,["disabled","onClick"]))],64)):x("",!0)]),_:2},1024))),128)),c(A,{empty:!f(Q).items.length,"empty-text":"还没有供水权益,购买后由平台登记"},null,8,["empty"]),c(z,{command:f(K)},null,8,["command"]),c(l,{class:"notice"},{default:r(()=>[p(" 权益按企业和水品汇总。可预约桶数已扣除配送冻结数量,现场满桶数不等于可预约权益。 ")]),_:1})],64)):x("",!0)]),_:1}),c(G,{active:"/pages/rights/index"})]),_:1})}}}),[["__scopeId","data-v-da6d9739"]]);export{S as default};