Files
jurong_circle_frontdesk/dist/assets/ProductDetail-C9NaqNoj.js

2 lines
7.2 KiB
JavaScript
Raw Normal View History

2025-07-26 15:35:53 +08:00
import{r as v,c as X,h as Y,y as i,A as e,J as Z,Q as o,I as r,al as u,ar as ee,K as V,O as d,P as m,a6 as g,aB as se,aA as te,z as l,M as f,u as h,H as I}from"./vendor-C3mpOp0n.js";import{_ as ae,u as oe,a as k}from"./index-BlP3rxMf.js";import{a as C,n as le,k as ne,d as R,o as ie,u as de,l as re}from"./elementPlus-DFx51bSH.js";const ue={class:"product-detail-page"},ce={class:"navbar"},_e={class:"nav-left"},ve={class:"nav-right"},pe={class:"product-content"},me={key:0,class:"product-detail"},ge={class:"product-images"},fe=["src","alt"],he={class:"product-info"},ye={class:"product-header"},ke={class:"product-title"},be={class:"product-tags"},we={class:"product-price"},Ve={class:"current-price"},Ce={class:"price-number"},xe={key:0,class:"original-price"},Pe={key:1,class:"discount-info"},$e={class:"product-stats"},ze={class:"stat-item"},De={class:"stat-value"},Be={class:"stat-item"},Ue={class:"stat-value"},Ne={class:"stat-item"},Ie={class:"stat-value"},Re={class:"product-description"},Te={class:"product-details"},Me={class:"detail-label"},qe={class:"detail-value"},Ae={class:"purchase-options"},Ee={class:"quantity-selector"},Se={class:"action-buttons"},Le={class:"product-reviews"},Fe={class:"reviews-header"},He={class:"review-count"},Je={key:0,class:"no-reviews"},Ke={key:1,class:"reviews-list"},Oe={class:"review-header"},Qe={class:"reviewer-info"},je={class:"reviewer-name"},Ge={class:"review-meta"},We={class:"review-date"},Xe={class:"review-content"},Ye={key:0,class:"review-images"},Ze=["src","onClick"],es={class:"recommended-products"},ss={class:"recommended-grid"},ts=["onClick"],as=["src","alt"],os={class:"item-info"},ls={class:"item-price"},ns={__name:"ProductDetail",setup(is){const T=se(),x=te();oe();const P=v(!1),a=v(null),y=v(1),b=v([]),B=v([]),$=v(!1),z=v(0),D=v(0),w=X(()=>a.value?a.value.points*y.value:0),M=async()=>{try{P.value=!0;const n=T.params.id,[s,_,p]=await Promise.all([k.get(`/products/${n}`),k.get(`/products/${n}/reviews`),k.get(`/products/${n}/recommended`)]);a.value=s.data,b.value=_.data,B.value=p.data}catch{C.error("获取商品详情失败"),x.go(-1)}finally{P.value=!1}},q=()=>{C.success("已添加到购物车"),D.value++},A=async()=>{try{await re.confirm(`确定要花费 ${w.value} 积分兑换 ${y.value}${a.value.name} 吗?`,"确认兑换",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});const n={items:[{productId:a.value.id,quantity:y.value,points:a.value.points}],totalPoints:w.value};await k.post("/orders",n),C.success("兑换成功!"),x.push("/orders")}catch(n){n!=="cancel"&&C.error("兑换失败,请重试")}},E=n=>{x.push(`/product/${n}`)},S=n=>{},L=n=>new Date(n).toLocaleDateString("zh-CN"),F=async()=>{try{const n=await k.get("/user/points");z.value=n.data.points}catch(n){console.error("获取用户积分失败:",n)}};return Y(()=>{M(),F()}),(n,s)=>{const _=u("el-icon"),p=u("el-button"),H=u("el-badge"),J=u("el-carousel-item"),K=u("el-carousel"),U=u("el-tag"),N=u("el-rate"),O=u("el-input-number"),Q=u("el-avatar"),j=u("el-drawer"),G=ee("loading");return l(),i("div",ue,[e("nav",ce,[e("div",_e,[o(p,{type:"text",onClick:s[0]||(s[0]=t=>n.$router.go(-1)),class:"back-btn"},{default:r(()=>[o(_,null,{default:r(()=>[o(h(le))]),_:1}),s[5]||(s[5]=f(" 返回 "))]),_:1,__:[5]})]),s[6]||(s[6]=e("div",{class:"nav-center"},[e("h1",{class:"nav-title"},"商品详情")],-1)),e("div",ve,[o(p,{type:"text",onClick:s[1]||(s[1]=t=>$.value=!0),class:"cart-btn"},{default:r(()=>[o(H,{value:D.value,hidden:D.value===0},{default:r(()=>[o(_,null,{default:r(()=>[o(h(ne))]),_:1})]),_:1},8,["value","hidden"])]),_:1})])]),Z((l(),i("div",pe,[a.value?(l(),i("div",me,[e("div",ge,[o(K,{interval:4e3,type:"card",height:"300px","indicator-position":"outside"},{default:r(()=>[(l(!0),i(m,null,g(a.value.images,(t,c)=>(l(),I(J,{key:c},{default:r(()=>[e("img",{src:t,alt:a.value.name,class:"product-image"},null,8,fe)]),_:2},1024))),128))]),_:1})]),e("div",he,[e("div",ye,[e("h1",ke,d(a.value.name),1),e("div",be,[(l(!0),i(m,null,g(a.value.tags,t=>(l(),I(U,{key:t,size:"small",class:"product-tag"},{default:r(()=>[f