pages-rights-index.Bj07W_LL.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 _,n as f,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,V as C}from"./index-D_BH170g.js";import{u as I}from"./useResource.BXPLue3g.js";import{u as M,_ as z}from"./CommandStatus.vue_vue_type_script_setup_true_lang.MyV2EXqU.js";import{t as V,g as B,v as R,c as $}from"./format.D9X84le1.js";import{I as q}from"./IdentityGuard.XrmWZ7K5.js";import{P as A}from"./PageState.DTLqkY_x.js";import{B as G}from"./BottomNav.D99yTib4.js";import{Q as P}from"./QuantityInput.jxAgyucv.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:E,load:F}=I(()=>n(o("enterprise")+"/rights")),L=I(()=>n("/addresses")),N=e(null),U=e(1),W=e(0),D=l(()=>{var a;return(null==(a=L.data.value)?void 0:a.items.map(a=>`${a.label||"配送地址"}:${a.address}`))||[]}),H=l(()=>{var a;const e=(null==(a=L.data.value)?void 0:a.items.findIndex(a=>a.id===W.value))??-1;return e>=0?e:0});function J(){var a;const e=(null==(a=L.data.value)?void 0:a.items)||[],l=e.find(a=>a.is_default)||e[0];l&&(W.value=l.id)}const K=M(()=>o("enterprise")+"/deliveries",async()=>{N.value=null,V("配送预约已提交"),await F()});function O(a){var e;const l=null==(e=L.data.value)?void 0:e.items[a.detail.value];l&&(W.value=l.id)}return s(()=>{var a;(null==(a=t.active)?void 0:a.role.startsWith("enterprise_"))&&(F(),L.load().then(J))}),u(F),(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:_(S),error:_(E),onRetry:_(F)},null,8,["loading","error","onRetry"]),_(Q)?(m(),f(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(_(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,_(Q).summary.available/Math.max(1,_(Q).summary.purchased)*100)+"%"})},null,8,["style"])]),_:1}),c(l,{class:"row hero-subtitle"},{default:r(()=>[c(s,null,{default:r(()=>[p("剩余 "+y(_(Q).summary.remaining)+" 桶",1)]),_:1}),c(s,null,{default:r(()=>[p("配送冻结 "+y(_(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=>_(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),f(v,null,w(_(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(_(R)(a.days_left))+" 天",1)]),_:2},1024)]),_:2},1024),_(C)()?(m(),f(v,{key:0},[N.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:U.value,"onUpdate:modelValue":e[1]||(e[1]=a=>U.value=a),max:Math.min(1e4,a.available)},null,8,["modelValue","max"])]),_:2},1024),c(t,{class:"primary",disabled:_(K).busy||a.available<1,onClick:e=>async function(a){W.value?await $("预约配送",`确认预约 ${U.value} 桶?将冻结对应供水权益,等待平台安排配送。`)&&K.execute({sku_id:a,quantity:U.value,address_id:W.value}):V("请先新增或选择配送地址")}(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=>{N.value=a.sku_id,U.value=1}},{default:r(()=>[p(" 预约配送 ")]),_:2},1032,["disabled","onClick"]))],64)):x("",!0)]),_:2},1024))),128)),c(A,{empty:!_(Q).items.length,"empty-text":"还没有供水权益,购买后由平台登记"},null,8,["empty"]),c(z,{command:_(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};