pages-packages-index.DO2rRq4h.js 3.7 KB

1
  1. import{d as e,C as a,c as l,o as s,R as t,a as u,b as c,w as n,i as o,g as r,f as i,h as d,j as f,k as m,n as p,F as v,p as g,z as _,t as y,u as k,y as b,m as h,T as C,s as j}from"./index-CtVdyH8W.js";import{u as x}from"./usePaged.DytIY3Mb.js";import{c as w,d as q,i as P,q as I,t as D}from"./cart.C8UdzBeJ.js";import{m as R,g as L,t as S}from"./format.Fv1-9p6q.js";import{P as T}from"./PackageCard.C9dHV7zT.js";import{P as z}from"./PageState.ExTP9tHk.js";import{_ as A}from"./_plugin-vue_export-helper.BCo6x5W8.js";const F=A(e({__name:"index",setup(e){const A=a("all"),F=[{value:"all",label:"全部"},{value:"office",label:"办公套餐"},{value:"enterprise",label:"大型企业"},{value:"device",label:"设备组合"}],{items:M,loading:U,error:B,hasMore:E,load:G}=x(e=>r("/packages",{page:e,category:"all"},!1));const H=l(()=>"all"===A.value?M.value:M.value.filter(e=>function(e){const a=String(e.category||"").toLowerCase(),l=e.name.toLowerCase();return e.includes_device||a.includes("device")||a.includes("设备")?"device":a.includes("office")||a.includes("办公")||l.includes("办公")?"office":(a.includes("enterprise")||a.includes("大型")||l.includes("大型"),"enterprise")}(e)===A.value)),J=l(()=>w.items.length),K=l(()=>w.items.reduce((e,a)=>e+a.quantity,0)),N=l(()=>w.items.reduce((e,a)=>e+a.quantity*a.product.price_cents,0));function O(e){D(e)}function Q(){C()}function V(){var e;const a=null==(e=j.configuration)?void 0:e.purchase_agreement_url;a?L("/pages/common/web?url="+encodeURIComponent(a)):S("购买须知暂未配置")}return s(()=>{M.value.length||G(!0)}),t(()=>G()),u(()=>G(!0)),(e,a)=>{const l=o,s=m,t=b;return i(),c(l,{class:"page package-page"},{default:n(()=>[d(l,{class:"package-header"},{default:n(()=>[d(l,{class:"back-button","aria-label":"返回",onClick:Q},{default:n(()=>[f("‹")]),_:1}),d(s,{class:"header-title"},{default:n(()=>[f("套餐专区")]),_:1}),d(l,{class:"purchase-link",onClick:V},{default:n(()=>[f("购买须知")]),_:1})]),_:1}),d(l,{class:"category-tabs"},{default:n(()=>[(i(),p(v,null,g(F,e=>d(l,{key:e.value,class:_(["category-tab",{active:A.value===e.value}]),onClick:a=>{var l;(l=e.value)!==A.value&&(A.value=l)}},{default:n(()=>[f(y(e.label),1)]),_:2},1032,["class","onClick"])),64))]),_:1}),d(l,{class:"selection-hint"},{default:n(()=>[d(s,{class:"hint-icon"},{default:n(()=>[f("✓")]),_:1}),d(s,null,{default:n(()=>[f("在列表直接勾选多个套餐,数量也可以马上调整;点击名称可查看详情")]),_:1})]),_:1}),(i(!0),p(v,null,g(H.value,(e,a)=>(i(),c(T,{key:e.id,item:e,featured:0===a,action:"",selected:k(I)(e.id)>0,quantity:k(I)(e.id),onToggle:O,onIncrease:k(P),onDecrease:k(q)},null,8,["item","featured","selected","quantity","onIncrease","onDecrease"]))),128)),d(z,{loading:k(U),error:k(B),empty:!H.value.length,"empty-text":"暂无可购买套餐",onRetry:a[0]||(a[0]=e=>k(G)(!0))},null,8,["loading","error","empty"]),k(E)&&!k(U)?(i(),c(t,{key:0,class:"load-more",onClick:a[1]||(a[1]=e=>k(G)())},{default:n(()=>[f("加载更多")]),_:1})):h("",!0),d(l,{class:"fixed-action packages-footer"},{default:n(()=>[J.value?(i(),c(l,{key:0,class:"selection-note"},{default:n(()=>[f(" 已选 "+y(J.value)+" 种套餐,共 "+y(K.value)+" 件,可合并下单并一次支付 ",1)]),_:1})):h("",!0),d(l,{class:"summary-row"},{default:n(()=>[d(l,{class:"summary-total"},{default:n(()=>[d(l,{class:"summary-label"},{default:n(()=>[f(y(J.value)+"项合计",1)]),_:1}),d(l,{class:"summary-amount"},{default:n(()=>[f("¥"+y(k(R)(N.value,0)),1)]),_:1})]),_:1}),d(t,{class:_(["order-button",{disabled:!J.value}]),disabled:!J.value,onClick:a[2]||(a[2]=e=>k(L)("/pages/packages/cart"))},{default:n(()=>[f(" 查看订单 · "+y(J.value),1)]),_:1},8,["class","disabled"])]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-0f4cdc9f"]]);export{F as default};