You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

2 lines
18 KiB

"use strict";(self["webpackChunkabcdf"]=self["webpackChunkabcdf"]||[]).push([[926],{926:function(t,e,i){i.r(e),i.d(e,{default:function(){return k}});var s=function(){var t=this,e=t._self._c;return e("div",[e("div",{staticClass:"product-detail-container"},[e("div",{staticClass:"left-section"},[e("el-carousel",{ref:"carousel",staticClass:"product-carousel",attrs:{height:"500px","indicator-position":"none"},on:{change:t.handleCarouselChange}},t._l(t.info.listimg,function(t,i){return e("el-carousel-item",{key:i},[e("img",{staticClass:"carousel-img",attrs:{src:t,alt:`商品图片${i+1}`}})])}),1),e("div",{staticClass:"hint-text"},[t._v(" 温馨提示:以上图片仅供参考,若图片与实物有所不同,则以实物为准。 ")]),e("div",{staticClass:"image-indicators"},t._l(t.info.listimg,function(i,s){return e("div",{key:s,staticClass:"indicator-item",class:{active:t.activeIndex===s},on:{click:function(e){return t.handleIndicatorClick(s)}}},[e("img",{staticClass:"indicator-img",attrs:{src:i,alt:`缩略图${s+1}`}})])}),0)],1),e("div",{staticClass:"right-section"},[e("h2",{staticClass:"product-title"},[t._v(" "+t._s(t.info.title)+" ")]),e("div",{staticClass:"product-tags"},[t.info.display_tags?e("div",{staticStyle:{display:"inline-block"}},t._l(t.info.display_tags.split(","),function(i,s){return e("el-tag",{key:s,staticStyle:{"margin-right":"5px"},attrs:{effect:"dark",size:"mini"}},[t._v(t._s(i))])}),1):t._e(),e("span",{staticClass:"subtitle"},[t._v(t._s(t.info.subtitle))])]),e("div",{staticClass:"price-info"},[e("span",{staticClass:"price-label"},[t._v("售价")]),e("span",{staticClass:"price-amount"},[t._v("¥"+t._s(t.info.sku[t.selectedSpec].price/100))]),e("span",{staticClass:"sales-volume"},[t._v("已售 "+t._s(t.info.sales_number))])]),e("div",{staticClass:"product-attr"},[t._m(0),e("div",{staticClass:"attr-item spec-group"},[e("span",{staticClass:"attr-label"},[t._v("商品规格")]),e("div",{staticClass:"custom-radio-group"},t._l(t.info.sku,function(i,s){return e("label",{key:s,staticClass:"custom-radio",class:{"is-checked":t.selectedSpec===s},on:{click:function(e){t.selectedSpec=s}}},[e("span",{staticClass:"radio-text"},[t._v(t._s(i.sku_name))])])}),0)]),t.currentMinQuantity>1?e("div",{staticClass:"attr-item"},[e("span",{staticClass:"attr-label"},[t._v("起订量")]),e("span",{staticClass:"attr-value"},[t._v(t._s(t.currentMinQuantity)+"件")])]):t._e(),e("div",{staticClass:"attr-item"},[e("span",{staticClass:"attr-label"},[t._v("发货地")]),e("span",{staticClass:"attr-value"},[t._v(t._s(t.info.supplier_address))])]),e("div",{staticClass:"attr-item"},[e("span",{staticClass:"attr-label"},[t._v("其他")]),e("span",{staticClass:"attr-value"},[t._v(t._s(t.otherInfo))])]),e("div",{staticClass:"attr-item"},[e("span",{staticClass:"attr-label"},[t._v("配送范围")]),e("span",{staticClass:"attr-value"},[t._v(t._s(t.deliveryRange))])])]),e("div",{staticClass:"quantity-control"},[e("el-button",{attrs:{icon:"el-icon-minus",circle:""},on:{click:t.decreaseQuantity}}),e("span",{staticClass:"quantity-value"},[t._v(t._s(t.quantity))]),e("el-button",{attrs:{icon:"el-icon-plus",circle:""},on:{click:t.increaseQuantity}}),e("el-button",{staticClass:"buy-btn",attrs:{type:"primary"},on:{click:t.buyNow}},[t._v("一口价购买")]),e("el-button",{staticClass:"cart-btn",attrs:{type:"success"},on:{click:t.addCart}},[t._v("加入购物车")]),e("el-button",{staticClass:"bargain-btn",attrs:{type:"info"}},[t._v("议价")]),e("el-button",{staticClass:"share-btn",attrs:{icon:"el-icon-share",circle:""},on:{click:t.handleShare}})],1)])]),e("div",{staticClass:"product-bottom"},[e("div",{staticClass:"hot-recommend-sidebar"},[e("div",{staticClass:"hot-title"},[t._v("热销推荐")]),t._l(t.hotRecommendData,function(i,s){return e("div",{key:s,staticClass:"product-item",on:{click:function(e){t.id=i.id,t.onReload()}}},[e("img",{directives:[{name:"lazy",rawName:"v-lazy",value:i.headimg,expression:"item.headimg"}],attrs:{alt:""}}),e("div",{staticClass:"product-name"},[t._v(t._s(i.title))]),e("div",{staticClass:"product-price"},[t._v("¥"+t._s(i.price/100))])])})],2),e("div",{staticClass:"product-right"},[e("div",{staticClass:"product-tabs"},[e("span",{class:["tab-item",{active:!t.tabIndex}],on:{click:function(e){t.tabIndex=0}}},[t._v("商品详情")]),e("span",{class:["tab-item",{active:t.tabIndex}],on:{click:function(e){t.tabIndex=1}}},[t._v("商品评价(125)")])]),e("div",{directives:[{name:"show",rawName:"v-show",value:!t.tabIndex,expression:"!tabIndex"}],staticClass:"product-detail-main",domProps:{innerHTML:t._s(t.util.formateRichText(t.info.content))}}),e("Evaluate",{directives:[{name:"show",rawName:"v-show",value:t.tabIndex,expression:"tabIndex"}],attrs:{id:t.id}})],1)]),e("AddToCartDialog",{attrs:{product:t.sku,buyQuantity:t.quantity,visible:t.showAddCartDialog},on:{"update:visible":function(e){t.showAddCartDialog=e}}})],1)},a=[function(){var t=this,e=t._self._c;return e("div",{staticClass:"attr-item"},[e("span",{staticClass:"attr-label"},[t._v("收货方式")]),e("span",{staticClass:"attr-value"},[t._v("邮寄")])])}],n=(i(4114),function(){var t=this,e=t._self._c;return e("div",{staticClass:"product-review-section"},[e("div",{staticClass:"review-header"},[e("div",{staticClass:"rating-box"},[e("div",{staticClass:"rating-score"},[t._v(t._s(t.averageScore)+" 分")]),e("div",{staticClass:"rating-text"},[t._v("综合评分 (共 "+t._s(t.totalReviews)+" 条)")])]),e("div",{staticClass:"filter-tabs"},[e("div",{staticClass:"tab-item",class:{active:"all"===t.activeFilter},on:{click:function(e){return t.handleFilterChange("all")}}},[t._v(" 全部("+t._s(t.totalReviews)+") ")]),e("div",{staticClass:"tab-item",class:{active:"image"===t.activeFilter},on:{click:function(e){return t.handleFilterChange("image")}}},[t._v(" 有图("+t._s(t.hasImageCount)+") ")]),e("div",{staticClass:"tab-item",class:{active:"good"===t.activeFilter},on:{click:function(e){return t.handleFilterChange("good")}}},[t._v(" 好评("+t._s(t.goodReviewsCount)+") ")]),e("div",{staticClass:"tab-item",class:{active:"medium"===t.activeFilter},on:{click:function(e){return t.handleFilterChange("medium")}}},[t._v(" 中评("+t._s(t.mediumReviewsCount)+") ")]),e("div",{staticClass:"tab-item",class:{active:"bad"===t.activeFilter},on:{click:function(e){return t.handleFilterChange("bad")}}},[t._v(" 差评("+t._s(t.badReviewsCount)+") ")])])]),e("div",{staticClass:"review-list"},[t._l(t.currentPageReviews,function(i,s){return e("div",{key:i.id,staticClass:"review-item"},[e("div",{staticClass:"user-info"},[e("img",{staticClass:"avatar",attrs:{src:i.avatar,alt:i.userName+"的头像"}}),e("div",{staticClass:"user-name"},[t._v(t._s(i.userName))]),e("div",{staticClass:"rating-stars"},t._l(5,function(s){return e("span",{key:s},[t._v(" "+t._s(s<=i.rating?"★":"☆")+" ")])}),0)]),e("div",{staticClass:"review-content",class:{empty:!i.content}},[t._v(" "+t._s(i.content||"该用户没有填写评价内容")+" ")]),i.images&&i.images.length?e("div",{staticClass:"review-images"},t._l(i.images,function(s,a){return e("img",{key:a,attrs:{src:s,alt:`${i.userName}的评价图片${a+1}`},on:{click:function(e){return t.openPreview(i.images,a)}}})}),0):t._e(),e("div",{staticClass:"review-time"},[t._v(t._s(i.time))])])}),0===t.filteredReviews.length?e("div",{staticClass:"empty-state"},[e("el-empty",{attrs:{description:"暂无符合条件的评价"}})],1):t._e()],2),t.filteredReviews.length>0?e("div",{staticClass:"pagination-container"},[e("el-pagination",{attrs:{"current-page":t.currentPage,"page-sizes":[5,10,20],"page-size":t.pageSize,layout:"total, sizes, prev, pager, next, jumper",total:t.filteredReviews.length},on:{"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}})],1):t._e(),e("el-dialog",{attrs:{visible:t.previewVisible,modal:!0,title:`查看图片 ${t.previewIndex+1}/${t.previewImages.length}`,width:"80%",height:"80%","custom-class":"image-preview-dialog","close-on-click-modal":!0},on:{"update:visible":function(e){t.previewVisible=e}}},[e("div",{staticClass:"preview-container"},[e("el-button",{staticClass:"preview-btn prev-btn",attrs:{icon:"el-icon-arrow-left",circle:"",disabled:0===t.previewIndex},on:{click:function(e){return t.changePreview("prev")}}}),e("div",{staticClass:"preview-img-wrapper"},[e("img",{staticClass:"preview-img",attrs:{src:t.previewImages[t.previewIndex],alt:`预览图片 ${t.previewIndex+1}`}})]),e("el-button",{staticClass:"preview-btn next-btn",attrs:{icon:"el-icon-arrow-right",circle:"",disabled:t.previewIndex===t.previewImages.length-1},on:{click:function(e){return t.changePreview("next")}}})],1)])],1)}),r=[],c=(i(8111),i(2489),i(8237),i(9143)),o={name:"ProductReviews",props:["id"],components:{ElEmpty:c.Empty,ElPagination:c.Pagination},data(){return{activeFilter:"all",currentPage:1,pageSize:10,reviews:[{id:1,userName:"张**",avatar:"https://picsum.photos/id/64/40/40",rating:5,content:"商品质量很好,超出预期,非常满意的一次购物体验!包装很用心,完全没有损坏,会回购的。",images:["https://picsum.photos/id/26/80/80","https://picsum.photos/id/292/80/80"],time:"2023-10-15 14:30:22"},{id:2,userName:"李**",avatar:"https://picsum.photos/id/65/40/40",rating:4,content:"总体不错,就是物流有点慢,其他都还好,给个四星吧",images:[],time:"2023-10-14 09:15:47"},{id:3,userName:"王**",avatar:"https://picsum.photos/id/66/40/40",rating:5,content:"",images:["https://picsum.photos/id/431/80/80"],time:"2023-10-13 20:45:11"},{id:4,userName:"赵**",avatar:"https://picsum.photos/id/67/40/40",rating:2,content:"不太满意,和描述的有点差距,希望商家能改进",images:[],time:"2023-10-12 16:20:33"},{id:5,userName:"陈**",avatar:"https://picsum.photos/id/68/40/40",rating:5,content:"第二次购买了,品质一如既往的好,推荐给大家!",images:["https://picsum.photos/id/102/80/80","https://picsum.photos/id/103/80/80","https://picsum.photos/id/104/80/80"],time:"2023-10-11 11:05:59"},{id:6,userName:"刘**",avatar:"https://picsum.photos/id/69/40/40",rating:3,content:"一般般吧,没有特别惊艳的地方,价格还算合理",images:[],time:"2023-10-10 18:30:15"},{id:7,userName:"黄**",avatar:"https://picsum.photos/id/70/40/40",rating:5,content:"包装精美,送礼自用都合适,性价比很高",images:["https://picsum.photos/id/105/80/80"],time:"2023-10-09 08:45:27"},{id:8,userName:"周**",avatar:"https://picsum.photos/id/71/40/40",rating:4,content:"东西不错,物流很快,客服态度也好",images:["https://picsum.photos/id/106/80/80"],time:"2023-10-08 15:22:10"},{id:9,userName:"吴**",avatar:"https://picsum.photos/id/72/40/40",rating:5,content:"非常满意,推荐购买!",images:[],time:"2023-10-07 10:15:33"},{id:10,userName:"郑**",avatar:"https://picsum.photos/id/73/40/40",rating:1,content:"很差的购物体验,不会再买了",images:[],time:"2023-10-06 19:40:25"},{id:11,userName:"孙**",avatar:"https://picsum.photos/id/74/40/40",rating:5,content:"质量很好,和图片描述一致,值得购买",images:["https://picsum.photos/id/107/80/80","https://picsum.photos/id/108/80/80"],time:"2023-10-05 09:20:18"},{id:12,userName:"徐**",avatar:"https://picsum.photos/id/75/40/40",rating:4,content:"不错的商品,推荐给朋友了",images:[],time:"2023-10-04 16:50:47"},{id:13,userName:"马**",avatar:"https://picsum.photos/id/76/40/40",rating:5,content:"很好用,已经回购多次",images:["https://picsum.photos/id/109/80/80"],time:"2023-10-03 14:30:55"},{id:14,userName:"朱**",avatar:"https://picsum.photos/id/77/40/40",rating:3,content:"还行吧,没有想象中好",images:[],time:"2023-10-02 11:15:32"},{id:15,userName:"胡**",avatar:"https://picsum.photos/id/78/40/40",rating:5,content:"非常满意的一次购物,五星推荐!",images:["https://picsum.photos/id/110/80/80","https://picsum.photos/id/111/80/80"],time:"2023-10-01 08:40:17"}],previewVisible:!1,previewImages:[],previewIndex:0}},computed:{totalReviews(){return this.reviews.length},hasImageCount(){return this.reviews.filter(t=>t.images&&t.images.length).length},goodReviewsCount(){return this.reviews.filter(t=>t.rating>=4).length},mediumReviewsCount(){return this.reviews.filter(t=>3===t.rating).length},badReviewsCount(){return this.reviews.filter(t=>t.rating<=2).length},averageScore(){const t=this.reviews.reduce((t,e)=>t+e.rating,0);return(t/this.totalReviews).toFixed(1)},filteredReviews(){let t=[...this.reviews];switch(this.activeFilter){case"image":t=t.filter(t=>t.images&&t.images.length);break;case"good":t=t.filter(t=>t.rating>=4);break;case"medium":t=t.filter(t=>3===t.rating);break;case"bad":t=t.filter(t=>t.rating<=2);break;default:break}return t},currentPageReviews(){const t=(this.currentPage-1)*this.pageSize,e=t+this.pageSize;return this.filteredReviews.slice(t,e)}},mounted(){this.getList()},methods:{getList(){this.get({product_id:this.id,offset:0,limit:999},"/api/product/product_comment_list").then(t=>{})},handleFilterChange(t){this.activeFilter=t,this.currentPage=1},handleSizeChange(t){this.pageSize=t,this.currentPage=1},handleCurrentChange(t){this.currentPage=t,document.querySelector(".review-list").scrollIntoView({behavior:"smooth"})},openPreview(t,e){this.previewImages=t,this.previewIndex=e,this.previewVisible=!0},changePreview(t){"prev"===t&&this.previewIndex>0?this.previewIndex--:"next"===t&&this.previewIndex<this.previewImages.length-1&&this.previewIndex++,this.$nextTick(()=>{document.querySelector(".el-dialog__title").textContent=`查看图片 ${this.previewIndex+1}/${this.previewImages.length}`})}}},l=o,d=i(1656),u=(0,d.A)(l,n,r,!1,null,"6c3951fc",null),p=u.exports,h=function(){var t=this,e=t._self._c;return e("el-dialog",{attrs:{title:"加入购物车",visible:t.dialogVisible,width:"360px","close-on-click-modal":!1,"show-close":!1},on:{"update:visible":function(e){t.dialogVisible=e}}},[e("div",{staticClass:"cart-dialog__product"},[e("img",{directives:[{name:"lazy",rawName:"v-lazy",value:t.product.headimg,expression:"product.headimg"}],staticClass:"product-img",attrs:{alt:"商品图片"}}),e("div",{staticClass:"product-info"},[e("h4",{staticClass:"product-name"},[t._v(t._s(t.product.sku_name||"商品名称"))]),e("p",{staticClass:"product-price"},[t._v("¥"+t._s(t.product.price/100))])])]),e("div",{staticClass:"cart-dialog__quantity"},[e("label",[t._v("购买数量:")]),e("el-input-number",{staticClass:"quantity-input",attrs:{min:1,max:t.product.stock,step:1},on:{change:t.handleQuantityChange},model:{value:t.buyQuantity,callback:function(e){t.buyQuantity=e},expression:"buyQuantity"}}),t.product.stock?e("span",{staticClass:"stock-tip"},[t._v(" 库存仅剩 "+t._s(t.product.stock)+" 件 ")]):t._e()],1),e("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[e("el-button",{staticClass:"cancel-btn",on:{click:function(e){t.dialogVisible=!1}}},[t._v(" 取消 ")]),e("el-button",{staticClass:"confirm-btn",attrs:{type:"primary",loading:t.loading},on:{click:t.handleAddToCart}},[t._v(" 加入购物车 ")])],1)])},v=[],m=i(3518),g={name:"AddToCartDialog",props:{product:{type:Object,required:!0,default:()=>({id:"",name:"",price:0,avatar:"https://picsum.photos/100",stock:99})},visible:{type:Boolean,default:!1},buyQuantity:{type:Number,default:!1}},data(){return{loading:!1}},computed:{dialogVisible:{get(){return this.visible},set(t){this.$emit("update:visible",t)}}},methods:{...(0,m.i0)(["addToCart"]),handleQuantityChange(t){t>this.product.stock&&(this.buyQuantity=this.product.stock,this.$message.warning(`库存不足,最多可购买 ${this.product.stock}`))},async handleAddToCart(){this.loading=!0;try{await this.addToCart({...this.product,quantity:this.buyQuantity}),this.dialogVisible=!1,this.buyQuantity=1}catch(t){this.$message.error(t.message||"加入购物车失败,请重试")}finally{this.loading=!1}}}},C=g,_=(0,d.A)(C,h,v,!1,null,"32e5a85a",null),b=_.exports,f={name:"ProductDetail",components:{Evaluate:p,AddToCartDialog:b},data(){return{id:"",info:{},activeIndex:0,productCount:"52个",productSubtitle:"副标题",moq:1,deliveryMethod:"邮寄",selectedSpec:0,otherInfo:"下单填写留言,即免费赠送精美贺卡!",deliveryRange:"全国(可配送至全国1000多个城市,苏州市区内免配送费)",quantity:1,hotRecommendData:[],tabIndex:0,showAddCartDialog:!1,sku:{}}},computed:{currentMinQuantity(){return this.info?.sku&&0!==this.info.sku.length&&this.info.sku[this.selectedSpec].start_number||1}},watch:{selectedSpec(){this.quantity=this.currentMinQuantity}},methods:{...(0,m.i0)(["submitOrderData"]),buyNow(){const t=[{product:this.info,sku:this.info.sku[this.selectedSpec],quantity:this.quantity}];this.submitOrderData({from:"product",items:t}),this.$router.push("/Order")},handleCarouselChange(t){this.activeIndex=t},handleIndicatorClick(t){this.activeIndex=t,this.$nextTick(()=>{this.$refs.carousel&&this.$refs.carousel.setActiveItem(t)})},decreaseQuantity(){this.quantity>this.currentMinQuantity&&this.quantity--},increaseQuantity(){this.quantity++},handleShare(){this.$message.info("分享功能待实现")},addCart(){this.sku=this.info.sku[this.selectedSpec],this.showAddCartDialog=!0},getRecommend(){this.post({offset:0,limit:6,rand:!0,product_ids:this.id},"/api/search/product_recommend").then(t=>{this.hotRecommendData=t.data.list})},getDetail(){this.get({id:this.id},"/api/product/get_product_detail").then(t=>{this.info=t.data,this.info.sku&&this.info.sku.length>0&&(this.selectedSpec>=this.info.sku.length&&(this.selectedSpec=0),this.quantity=this.currentMinQuantity)})},onReload(){this.getDetail(),this.getRecommend()}},mounted(){this.$refs.carousel||console.warn("轮播组件未正确加载,请检查ref属性是否设置"),this.id=this.$route.params.id,this.onReload()}},w=f,y=(0,d.A)(w,s,a,!1,null,"049fb0ca",null),k=y.exports}}]);
//# sourceMappingURL=926.d303aa93.js.map