import{r as u,c as z,h as de,y as c,A as o,Q as a,I as n,al as v,u as p,J as ce,K as M,ar as re,P as B,a6 as T,aA as ue,z as r,M as d,O as i,D as _e,V as ve}from"./vendor-C3mpOp0n.js";import{_ as pe,u as me,a as S}from"./index-BlP3rxMf.js";import{h as fe,a as m,d as P,s as he,f as ge,j as ye,k as A,l as ke}from"./elementPlus-DFx51bSH.js";const Ce={class:"shop-page"},we={class:"navbar"},be={class:"nav-right"},Ve={class:"search-section"},xe={class:"category-section"},ze={class:"category-list"},Me=["onClick"],Pe={class:"products-section"},$e={class:"section-header"},qe={class:"sort-btn"},Ie={class:"products-grid"},Be=["onClick"],Te={class:"product-image"},Se=["src","alt"],Ue={key:0,class:"discount-badge"},De={class:"product-info"},Ne={class:"product-name"},Ee={class:"product-desc"},Le={class:"product-price"},Ae={class:"current-price"},Fe={key:0,class:"original-price"},Ke={class:"product-stats"},je={class:"sales"},Je={class:"stock"},Oe={class:"product-actions"},Qe={key:0,class:"empty-state"},Re={key:1,class:"load-more"},Ge={class:"cart-content"},He={key:0,class:"empty-cart"},We={key:1},Xe=["src","alt"],Ye={class:"item-info"},Ze={class:"item-price"},es={class:"item-actions"},ss={class:"cart-footer"},ts={class:"total-points"},as={__name:"Shop",setup(os){const U=ue();me();const w=u(!1),$=u(!1),f=u(""),h=u("all"),b=u("default"),q=u([]),I=u(1),D=u(!0),V=u(!1),_=u([]),k=u(0),F=u([{id:"all",name:"全部",icon:"🛍️"},{id:"electronics",name:"数码",icon:"📱"},{id:"books",name:"图书",icon:"📚"},{id:"lifestyle",name:"生活",icon:"🏠"},{id:"food",name:"美食",icon:"🍔"},{id:"sports",name:"运动",icon:"⚽"},{id:"beauty",name:"美妆",icon:"💄"}]),N=z(()=>{let s=q.value;switch(h.value!=="all"&&(s=s.filter(e=>e.category===h.value)),f.value&&(s=s.filter(e=>e.name.toLowerCase().includes(f.value.toLowerCase())||e.description.toLowerCase().includes(f.value.toLowerCase()))),b.value){case"price_asc":s.sort((e,l)=>e.points-l.points);break;case"price_desc":s.sort((e,l)=>l.points-e.points);break;case"sales":s.sort((e,l)=>l.sales-e.sales);break}return s}),K=z(()=>({default:"默认排序",price_asc:"价格从低到高",price_desc:"价格从高到低",sales:"销量优先"})[b.value]),E=z(()=>_.value.reduce((s,e)=>s+e.quantity,0)),g=z(()=>_.value.reduce((s,e)=>s+e.points*e.quantity,0)),j=s=>{h.value=s},J=s=>{b.value=s},O=fe(()=>{},300),Q=s=>{U.push(`/product/${s}`)},R=s=>{const e=_.value.find(l=>l.id===s.id);e?e.quantity{},H=s=>{const e=_.value.findIndex(l=>l.id===s);e>-1&&(_.value.splice(e,1),m.success("已从购物车移除"))},W=async()=>{try{await ke.confirm(`确定要花费 ${g.value} 积分兑换这些商品吗?`,"确认兑换",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});const s={items:_.value.map(e=>({productId:e.id,quantity:e.quantity,points:e.points})),totalPoints:g.value};await S.post("/orders",s),_.value=[],V.value=!1,k.value-=g.value,m.success("兑换成功!"),U.push("/orders")}catch(s){s!=="cancel"&&m.error("兑换失败,请重试")}},L=async(s=!1)=>{try{s?$.value=!0:(w.value=!0,I.value=1);const e=await S.get("/products",{params:{page:I.value,limit:20,category:h.value==="all"?"":h.value,keyword:f.value,sort:b.value}});s?q.value.push(...e.data.products):q.value=e.data.products,D.value=e.data.hasMore,I.value++}catch{m.error("获取商品列表失败")}finally{w.value=!1,$.value=!1}},X=()=>{L(!0)},Y=async()=>{try{const s=await S.get("/user/points");k.value=s.data.points}catch(s){console.error("获取用户积分失败:",s)}},Z=(s,e)=>s.length<=e?s:s.substring(0,e)+"...";return de(()=>{L(),Y()}),(s,e)=>{const l=v("el-icon"),C=v("el-button"),ee=v("el-input"),se=v("el-scrollbar"),x=v("el-dropdown-item"),te=v("el-dropdown-menu"),ae=v("el-dropdown"),oe=v("el-badge"),ne=v("el-input-number"),le=v("el-drawer"),ie=re("loading");return r(),c("div",Ce,[o("nav",we,[e[4]||(e[4]=o("div",{class:"nav-center"},[o("h1",{class:"nav-title"},"积分商城")],-1)),o("div",be,[a(C,{type:"text",onClick:e[0]||(e[0]=t=>s.$router.push("/points")),class:"points-btn"},{default:n(()=>[a(l,null,{default:n(()=>[a(p(P))]),_:1}),d(" "+i(k.value),1)]),_:1})])]),o("div",Ve,[a(ee,{modelValue:f.value,"onUpdate:modelValue":e[1]||(e[1]=t=>f.value=t),placeholder:"搜索商品",class:"search-input",onInput:p(O)},{prefix:n(()=>[a(l,null,{default:n(()=>[a(p(he))]),_:1})]),_:1},8,["modelValue","onInput"])]),o("div",xe,[a(se,null,{default:n(()=>[o("div",ze,[(r(!0),c(B,null,T(F.value,t=>(r(),c("div",{key:t.id,class:_e(["category-item",{active:h.value===t.id}]),onClick:y=>j(t.id)},[a(l,null,{default:n(()=>[d(i(t.icon),1)]),_:2},1024),o("span",null,i(t.name),1)],10,Me))),128))])]),_:1})]),o("div",Pe,[o("div",$e,[e[9]||(e[9]=o("h3",null,"热门商品",-1)),a(ae,{onCommand:J},{dropdown:n(()=>[a(te,null,{default:n(()=>[a(x,{command:"default"},{default:n(()=>e[5]||(e[5]=[d("默认排序")])),_:1,__:[5]}),a(x,{command:"price_asc"},{default:n(()=>e[6]||(e[6]=[d("价格从低到高")])),_:1,__:[6]}),a(x,{command:"price_desc"},{default:n(()=>e[7]||(e[7]=[d("价格从高到低")])),_:1,__:[7]}),a(x,{command:"sales"},{default:n(()=>e[8]||(e[8]=[d("销量优先")])),_:1,__:[8]})]),_:1})]),default:n(()=>[o("span",qe,[d(i(K.value)+" ",1),a(l,null,{default:n(()=>[a(p(ge))]),_:1})])]),_:1})]),ce((r(),c("div",Ie,[(r(!0),c(B,null,T(N.value,t=>(r(),c("div",{key:t.id,class:"product-card",onClick:y=>Q(t.id)},[o("div",Te,[o("img",{src:t.image,alt:t.name},null,8,Se),t.discount?(r(),c("div",Ue,i(t.discount)+"折 ",1)):M("",!0)]),o("div",De,[o("h4",Ne,i(t.name),1),o("p",Ee,i(Z(t.description,50)),1),o("div",Le,[o("span",Ae,[a(l,null,{default:n(()=>[a(p(P))]),_:1}),d(" "+i(t.points),1)]),t.originalPoints?(r(),c("span",Fe,i(t.originalPoints),1)):M("",!0)]),o("div",Ke,[o("span",je,"已售 "+i(t.sales),1),o("span",Je,"库存 "+i(t.stock),1)])]),o("div",Oe,[a(C,{type:"primary",size:"small",onClick:ve(y=>R(t),["stop"]),disabled:t.stock===0},{default:n(()=>[d(i(t.stock===0?"缺货":"兑换"),1)]),_:2},1032,["onClick","disabled"])])],8,Be))),128))])),[[ie,w.value]]),!w.value&&N.value.length===0?(r(),c("div",Qe,[a(l,{size:"60"},{default:n(()=>[a(p(ye))]),_:1}),e[10]||(e[10]=o("p",null,"暂无商品",-1))])):M("",!0),D.value?(r(),c("div",Re,[a(C,{onClick:X,loading:$.value},{default:n(()=>e[11]||(e[11]=[d(" 加载更多 ")])),_:1,__:[11]},8,["loading"])])):M("",!0)]),o("div",{class:"cart-fab",onClick:e[2]||(e[2]=t=>V.value=!0)},[a(oe,{value:E.value,hidden:E.value===0},{default:n(()=>[a(l,{size:"24"},{default:n(()=>[a(p(A))]),_:1})]),_:1},8,["value","hidden"])]),a(le,{modelValue:V.value,"onUpdate:modelValue":e[3]||(e[3]=t=>V.value=t),title:"购物车",direction:"rtl",size:"80%"},{default:n(()=>[o("div",Ge,[_.value.length===0?(r(),c("div",He,[a(l,{size:"60"},{default:n(()=>[a(p(A))]),_:1}),e[12]||(e[12]=o("p",null,"购物车是空的",-1))])):(r(),c("div",We,[(r(!0),c(B,null,T(_.value,t=>(r(),c("div",{key:t.id,class:"cart-item"},[o("img",{src:t.image,alt:t.name,class:"item-image"},null,8,Xe),o("div",Ye,[o("h4",null,i(t.name),1),o("p",Ze,[a(l,null,{default:n(()=>[a(p(P))]),_:1}),d(" "+i(t.points),1)])]),o("div",es,[a(ne,{modelValue:t.quantity,"onUpdate:modelValue":y=>t.quantity=y,min:1,max:t.stock,size:"small",onChange:y=>G(t)},null,8,["modelValue","onUpdate:modelValue","max","onChange"]),a(C,{type:"danger",size:"small",onClick:y=>H(t.id)},{default:n(()=>e[13]||(e[13]=[d(" 删除 ")])),_:2,__:[13]},1032,["onClick"])])]))),128)),o("div",ss,[o("div",ts,[e[14]||(e[14]=d(" 总计:")),a(l,null,{default:n(()=>[a(p(P))]),_:1}),d(i(g.value),1)]),a(C,{type:"primary",size:"large",onClick:W,disabled:g.value>k.value},{default:n(()=>[d(i(g.value>k.value?"积分不足":"立即兑换"),1)]),_:1},8,["disabled"])])]))])]),_:1},8,["modelValue"])])}}},ds=pe(as,[["__scopeId","data-v-2008b8d0"]]);export{ds as default};