| 1 |
- import{d as e,C as a,c as s,o as t,s as l,V as c,g as u,e as n,B as i,b as d,w as o,i as r,L as f,f as _,h as v,j as m,k as p,u as k,y as g,n as y,F as b,p as h,t as C,G as w,H as x,m as j,W as q,T as B}from"./index-CA29fRnP.js";import{c as E,b as L,e as A,i as D,d as F}from"./cart.BTLp5xhL.js";import{t as G,g as H,m as I}from"./format.C630m7_9.js";import{u as S,_ as T}from"./CommandStatus.vue_vue_type_script_setup_true_lang.CIuUGCZu.js";import{_ as V}from"./_plugin-vue_export-helper.BCo6x5W8.js";const W=V(e({__name:"cart",setup(e){const V=a(null),W=a(null),z=a(!1),J=a(!1);let K=0;const M=S(()=>n("enterprise")+"/checkouts",async e=>{A(),f({url:"/pages/orders/checkout?id="+e.id})}),N=s(()=>{var e;return(null==(e=V.value)?void 0:e.amount_cents)??0}),O=s(()=>{var e;return(null==(e=V.value)?void 0:e.discount_cents)??0}),P=s(()=>{var e;return Boolean(V.value&&(null==(e=W.value)?void 0:e.address)&&z.value&&!J.value&&!M.busy)});async function Q(){if(!E.items.length||!l.token||!c())return;const e=++K;J.value=!0;try{const a=await i(n("enterprise")+"/checkout/quote",{items:L()});e===K&&(V.value=a)}catch(a){e===K&&G(a instanceof Error?a.message:"报价失败")}finally{e===K&&(J.value=!1)}}function R(e,a){a>0?D(e):F(e),Q()}function U(){q().length>1?B():H("/pages/packages/index")}function X(){var e;(null==(e=W.value)?void 0:e.address)?G("配送计划将在订单确认后生成"):H("/pages/addresses/index")}function Y(){G("发票信息将在提交订单后按企业资料处理")}function Z(){P.value&&V.value&&M.execute({items:L(),expected_amount_cents:V.value.amount_cents,agreement_accepted:!0,invoice:null})}return t(async()=>{if(K++,V.value=null,E.items.length&&l.token&&c()){try{W.value=await u(n("enterprise")+"/address")}catch{W.value=null}await Q()}}),(e,a)=>{const s=r,t=p,l=g,c=x,u=w;return _(),d(s,{class:"page checkout-page"},{default:o(()=>[v(s,{class:"checkout-header"},{default:o(()=>[v(s,{class:"back-button","aria-label":"返回",onClick:U},{default:o(()=>[m("‹")]),_:1}),v(t,{class:"header-title"},{default:o(()=>[m("确认组合订单")]),_:1}),v(t,{class:"manage-link",onClick:U},{default:o(()=>[m("管理")]),_:1})]),_:1}),k(E).items.length?(_(),y(b,{key:1},[v(s,{class:"selected-card"},{default:o(()=>[(_(!0),y(b,null,h(k(E).items,(e,a)=>(_(),d(s,{key:e.product.id,class:"selected-item"},{default:o(()=>[v(s,{class:"item-heading"},{default:o(()=>[v(t,{class:"item-name"},{default:o(()=>[m(C(e.product.name),1)]),_:2},1024),0===a?(_(),d(t,{key:0,class:"item-badge badge-blue"},{default:o(()=>[m("办公水")]),_:1})):(_(),d(t,{key:1,class:"item-badge badge-green"},{default:o(()=>[m("推荐")]),_:1}))]),_:2},1024),v(s,{class:"item-subtitle"},{default:o(()=>[m(C(e.product.liters||"--")+"L/桶 · 有效期"+C(e.product.valid_months||"--")+"个月 ",1)]),_:2},1024),v(s,{class:"item-footer"},{default:o(()=>[v(t,{class:"item-price"},{default:o(()=>[m("¥"+C(k(I)(e.product.price_cents,0)),1)]),_:2},1024),v(s,{class:"quantity-control"},{default:o(()=>[v(l,{class:"quantity-button","aria-label":"减少数量",onClick:a=>R(e.product,-1)},{default:o(()=>[m(" − ")]),_:2},1032,["onClick"]),v(t,{class:"quantity-value"},{default:o(()=>[m(C(e.quantity),1)]),_:2},1024),v(l,{class:"quantity-button","aria-label":"增加数量",onClick:a=>R(e.product,1)},{default:o(()=>[m(" + ")]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}),v(s,{class:"section-title"},{default:o(()=>[m("订单服务")]),_:1}),v(s,{class:"services-card"},{default:o(()=>[v(s,{class:"service-row",onClick:X},{default:o(()=>[v(s,{class:"service-icon icon-delivery"},{default:o(()=>[m("送")]),_:1}),v(s,{class:"service-copy"},{default:o(()=>{var e;return[v(t,{class:"service-title"},{default:o(()=>[m("首次配送计划")]),_:1}),v(t,{class:"service-description"},{default:o(()=>[m("付款后预约,本次不会直接配送全部桶")]),_:1}),(null==(e=W.value)?void 0:e.address)?(_(),d(t,{key:0,class:"service-address"},{default:o(()=>[m("配送至:"+C(W.value.address),1)]),_:1})):(_(),d(t,{key:1,class:"service-address warning-text"},{default:o(()=>[m("请先完善企业供水地址")]),_:1}))]}),_:1}),v(t,{class:"service-arrow"},{default:o(()=>[m("›")]),_:1})]),_:1}),v(s,{class:"service-divider"}),v(s,{class:"service-row",onClick:Y},{default:o(()=>[v(s,{class:"service-icon icon-invoice"},{default:o(()=>[m("票")]),_:1}),v(s,{class:"service-copy"},{default:o(()=>[v(t,{class:"service-title"},{default:o(()=>[m("企业发票")]),_:1}),v(t,{class:"service-description"},{default:o(()=>[m("增值税电子普通发票")]),_:1})]),_:1}),v(t,{class:"service-arrow"},{default:o(()=>[m("›")]),_:1})]),_:1})]),_:1}),v(s,{class:"checkout-note"},{default:o(()=>[m(" 两个套餐将分别生成水卡,配送时优先配送最早到期的同规格套餐。 ")]),_:1}),v(u,{class:"agreement-row"},{default:o(()=>[v(c,{checked:z.value,color:"#176afa",onClick:a[1]||(a[1]=e=>z.value=!z.value)},null,8,["checked"]),v(t,null,{default:o(()=>[m("我已确认套餐及配送地址,同意购水协议")]),_:1})]),_:1}),v(T,{command:k(M)},null,8,["command"])],64)):(_(),d(s,{key:0,class:"empty-card"},{default:o(()=>[v(s,{class:"empty-title"},{default:o(()=>[m("组合订单为空")]),_:1}),v(l,{class:"text-button",onClick:a[0]||(a[0]=e=>k(H)("/pages/packages/index"))},{default:o(()=>[m("返回套餐列表")]),_:1})]),_:1})),k(E).items.length?(_(),d(s,{key:2,class:"checkout-footer"},{default:o(()=>[v(s,{class:"footer-summary"},{default:o(()=>[v(t,{class:"footer-discount"},{default:o(()=>[m("优惠 ¥"+C(k(I)(O.value,0))+" · 实付",1)]),_:1}),V.value?(_(),d(t,{key:0,class:"footer-amount"},{default:o(()=>[m("¥"+C(k(I)(N.value,0)),1)]),_:1})):(_(),d(t,{key:1,class:"footer-amount loading-amount"},{default:o(()=>[m("报价中")]),_:1}))]),_:1}),v(l,{class:"confirm-button",loading:J.value||k(M).busy,disabled:!P.value,onClick:Z},{default:o(()=>[m(" 确认订单 ")]),_:1},8,["loading","disabled"])]),_:1})):j("",!0)]),_:1})}}}),[["__scopeId","data-v-0f17b524"]]);export{W as default};
|