1 |
- import{X as e,S as o,Y as s,o as a,c as t,w as l,a as d,f as n,t as i,e as u,k as r,i as c,l as m,b as g,d as p,F as f,O as _,M as h,N as k,g as y,p as C,r as S,y as v,$ as w,n as x,j as b,z as I,Z as T,v as P,x as L,U as B}from"./index-3b24b149.js";import{_ as V}from"./mp-html.3776ff53.js";import{r as N}from"./uni-app.es.9206f90a.js";import{d as M}from"./index.5656217b.js";import{a as j,t as $}from"./cart.16c23af5.js";import{G as A,h as U,a as E}from"./index.e4b8df8e.js";import{_ as O}from"./_plugin-vue_export-helper.1b428a4d.js";import{C as D}from"./index.13c90436.js";import{l as G,_ as R}from"./comment.a825bfb3.js";import{A as H}from"./index.f29cfa79.js";import{_ as Y}from"./u-popup.c8f8fe8c.js";import"./u-icon.72a24694.js";const F={name:"ShareSheet",components:{},emits:["update:modelValue"],props:{modelValue:{Type:Boolean,default:!1},cancelWithMask:{type:Boolean,default:!0},shareTitle:{type:String,default:"商品分享"},shareImageUrl:{type:String,default:""},cancelText:{type:String,default:"关闭"}},data:()=>({}),created(){this.initSharesheet()},methods:{initSharesheet(){},onMaskClick(){this.cancelWithMask&&this.handleCancel()},getShareUrl(){const{path:a,query:t}=e();return new Promise(((e,l)=>{o.h5Url().then((o=>{const l=s(o,a,t);e(l)}))}))},handleCopyLink(){const e=this;e.getShareUrl().then((o=>{uni.setClipboardData({data:o,success:()=>e.$toast("链接复制成功,快去发送给朋友吧~"),fail:({errMsg:o})=>e.$toast("复制失败 "+o),complete:()=>e.handleCancel()})}))},handleCancel(){this.$emit("update:modelValue",!1)}}};const Q={components:{GoodsSkuPopup:A},emits:["update:modelValue"],props:{modelValue:{Type:Boolean,default:!1},skuMode:{type:Number,default:1},goods:{type:Object,default:{}}},data:()=>({goodsInfo:{},maxBuyNum:null}),computed:{activedBtnBackgroundColor(){return U(this.appTheme.mainBg,.1)}},created(){const e=this,{goods:o}=e;e.goodsInfo={_id:o.goods_id,name:o.goods_name,goods_thumb:o.goods_image,sku_list:e.getSkuList(),spec_list:e.getSpecList()},e.maxBuyNum=e.getMaxBuyNum()},methods:{onChangeValue(e){this.$emit("update:modelValue",e)},getSkuList(){const e=this,{goods:{goods_name:o,goods_image:s,skuList:a}}=e,t=[];return a.forEach((a=>{t.push({_id:a.id,goods_sku_id:a.goods_sku_id,goods_id:a.goods_id,goods_name:o,image:a.image_url?a.image_url:s,price:100*a.goods_price,stock:a.stock_num,spec_value_ids:a.spec_value_ids,sku_name_arr:e.getSkuNameArr(a.spec_value_ids)})})),t},getSkuNameArr(e){const o=this,s=[];return e&&e.forEach(((e,a)=>{const t=o.getSpecValueName(e,a);s.push(t)})),s.length?s:["默认"]},getSpecValueName(e,o){const{goods:{specList:s}}=this;return s[o].valueList.find((o=>o.spec_value_id==e)).spec_value},getSpecList(){const{goods:{specList:e}}=this,o=[];return e.forEach((e=>{const s=[];e.valueList.forEach((e=>{s.push({name:e.spec_value})})),o.push({name:e.spec_name,list:s})})),o.length?o:[{name:"默认",list:[{name:"默认"}]}]},getMaxBuyNum(){const{goods:e}=this;return e.is_restrict?e.restrict_single:null},openSkuPopup(){},closeSkuPopup(){},addCart(e){const o=this,{goods_id:s,goods_sku_id:a,buy_num:t}=e;j(s,a,t).then((e=>{o.$toast(e.message),o.onChangeValue(!1);const s=e.data.cartTotal;C(s),o.$emit("addCart",s)}))},buyNow(e){this.$navTo("pages/checkout/index",{mode:"buyNow",goodsId:e.goods_id,goodsSkuId:e.goods_sku_id,goodsNum:e.buy_num}),this.onChangeValue(!1)}}};const W="goods.service/list";const Z=O({components:{ShareSheet:O(F,[["render",function(e,o,s,g,p,f){const _=c,h=m;return a(),t(_,{class:r(["sharesheet",{show:s.modelValue}])},{default:l((()=>[d(_,{class:"mask-class sharesheet__mask",onClick:f.onMaskClick},null,8,["onClick"]),d(_,{class:"sharesheet__container"},{default:l((()=>[d(_,{class:"sharesheet__list"},{default:l((()=>[d(_,{class:"share-item",onClick:o[0]||(o[0]=e=>f.handleCopyLink())},{default:l((()=>[d(_,{class:"item-image",style:{backgroundColor:"#38beec"}},{default:l((()=>[d(h,{class:"iconfont icon-link"})])),_:1}),d(_,{class:"item-name"},{default:l((()=>[d(h,null,{default:l((()=>[n("复制链接")])),_:1})])),_:1})])),_:1})])),_:1}),s.cancelText?(a(),t(_,{key:0,class:"sharesheet__footer",onClick:o[1]||(o[1]=e=>f.handleCancel())},{default:l((()=>[d(_,{class:"btn-cancel"},{default:l((()=>[n(i(s.cancelText),1)])),_:1})])),_:1})):u("",!0)])),_:1})])),_:1},8,["class"])}],["__scopeId","data-v-02fa27e6"]]),CustomerBtn:D,SlideImage:O({props:{video:{type:Object,default:()=>null},videoCover:{type:Object,default:()=>null},images:{type:Array,default:[]}},data:()=>({indicatorDots:!0,autoplay:!0,interval:4e3,duration:800,currentIndex:1}),methods:{onVideoPlay(e){this.autoplay=!1},setCurrent({detail:e}){this.currentIndex=e.current+1},onPreviewImages(e){const o=[];this.images.forEach((e=>{o.push(e.preview_url)})),uni.previewImage({current:o[e],urls:o})}}},[["render",function(e,o,s,r,C,S){const v=_,w=c,x=h,b=y,I=k,T=m;return a(),t(w,{class:"images-swiper"},{default:l((()=>[d(I,{class:"swiper-box",autoplay:C.autoplay,duration:C.duration,"indicator-dots":C.indicatorDots,interval:C.interval,circular:!0,onChange:S.setCurrent},{default:l((()=>[s.video?(a(),t(x,{key:0},{default:l((()=>[d(w,{class:"slide-video"},{default:l((()=>[d(v,{id:"myVideo",class:"video",poster:s.videoCover.preview_url,src:s.video.external_url,controls:"","x5-playsinline":"",playsinline:"","x5-video-player-type":"h5","x5-video-player-fullscreen":"","x5-video-orientation":"portrait","enable-progress-gesture":!1,onPlay:S.onVideoPlay},null,8,["poster","src","onPlay"])])),_:1})])),_:1})):u("",!0),(a(!0),g(f,null,p(s.images,((e,o)=>(a(),t(x,{key:o,onClick:e=>S.onPreviewImages(o)},{default:l((()=>[d(w,{class:"slide-image"},{default:l((()=>[d(b,{class:"image",draggable:!1,src:e.preview_url},null,8,["src"])])),_:2},1024)])),_:2},1032,["onClick"])))),128))])),_:1},8,["autoplay","duration","indicator-dots","interval","onChange"]),d(w,{class:"swiper-count"},{default:l((()=>[d(T,null,{default:l((()=>[n(i(C.currentIndex),1)])),_:1}),d(T,null,{default:l((()=>[n("/")])),_:1}),d(T,null,{default:l((()=>[n(i(s.images.length+(s.video?1:0)),1)])),_:1})])),_:1})])),_:1})}],["__scopeId","data-v-0062d7ee"]]),SkuPopup:O(Q,[["render",function(e,o,s,l,d,n){const i=S("goods-sku-popup");return a(),t(i,{modelValue:s.modelValue,onInput:n.onChangeValue,"border-radius":"20",localdata:d.goodsInfo,mode:s.skuMode,maskCloseAble:!0,priceColor:e.appTheme.mainBg,buyNowBackgroundColor:e.appTheme.mainBg,addCartColor:e.appTheme.viceText,addCartBackgroundColor:e.appTheme.viceBg,activedStyle:{color:e.appTheme.mainBg,borderColor:e.appTheme.mainBg,backgroundColor:n.activedBtnBackgroundColor},onOpen:n.openSkuPopup,onClose:n.closeSkuPopup,onAddCart:n.addCart,onBuyNow:n.buyNow,buyNowText:"立即购买",maxBuyNum:d.maxBuyNum},null,8,["modelValue","onInput","localdata","mode","priceColor","buyNowBackgroundColor","addCartColor","addCartBackgroundColor","activedStyle","onOpen","onClose","onAddCart","onBuyNow","maxBuyNum"])}]]),Comment:O({components:{AvatarImage:H},props:{goodsId:{type:Number,default:null},limit:{type:Number,default:2}},data:()=>({isLoading:!0,rates:{10:5,20:3,30:1},list:[],total:0}),created(){this.getCommentList()},methods:{getCommentList(){const e=this;e.isLoading=!0,G(e.goodsId,e.limit).then((o=>{e.list=o.data.list,e.total=o.data.total})).catch((e=>e)).finally((()=>e.isLoading=!1))},onTargetToComment(){this.$navTo("pages/comment/index",{goodsId:this.goodsId})}}},[["render",function(e,o,s,r,_,h){const k=m,y=c,C=S("avatar-image"),w=N(v("u-rate"),R);return!_.isLoading&&_.list.length?(a(),t(y,{key:0,class:"goods-comment m-top20"},{default:l((()=>[d(y,{class:"item-title dis-flex"},{default:l((()=>[d(y,{class:"block-left flex-box"},{default:l((()=>[n(" 商品评价 ("),d(k,{class:"total"},{default:l((()=>[n(i(_.total)+"条",1)])),_:1}),n(") ")])),_:1}),d(y,{class:"block-right"},{default:l((()=>[d(k,{onClick:h.onTargetToComment,class:"show-more col-9"},{default:l((()=>[n("查看更多")])),_:1},8,["onClick"]),d(k,{class:"iconfont icon-arrow-right col-9"})])),_:1})])),_:1}),d(y,{class:"comment-list"},{default:l((()=>[(a(!0),g(f,null,p(_.list,((e,o)=>(a(),t(y,{class:"comment-item",key:o},{default:l((()=>[d(y,{class:"comment-item_row dis-flex flex-y-center"},{default:l((()=>[d(y,{class:"user-info dis-flex flex-y-center"},{default:l((()=>[d(y,{class:"user-avatar"},{default:l((()=>[d(C,{url:e.user.avatar_url,width:50},null,8,["url"])])),_:2},1024),d(k,{class:"user-name"},{default:l((()=>[n(i(e.user.nick_name),1)])),_:2},1024)])),_:2},1024),d(y,{class:"star-rating"},{default:l((()=>[d(w,{"active-color":"#f4a213",current:_.rates[e.score],disabled:!0},null,8,["current"])])),_:2},1024)])),_:2},1024),d(y,{class:"item-content m-top20"},{default:l((()=>[d(k,{class:"f-26 twoline-hide"},{default:l((()=>[n(i(e.content),1)])),_:2},1024)])),_:2},1024),d(y,{class:"comment-time"},{default:l((()=>[n(i(e.create_time),1)])),_:2},1024)])),_:2},1024)))),128))])),_:1})])),_:1})):u("",!0)}],["__scopeId","data-v-94b3762a"]]),Service:O({props:{goodsId:{type:Number,default:null}},data:()=>({isLoading:!0,showPopup:!1,list:[]}),created(){this.getServiceList()},methods:{getServiceList(){const e=this;var o;e.isLoading=!0,(o=e.goodsId,w.get(W,{goodsId:o})).then((o=>e.list=o.data.list)).finally((()=>e.isLoading=!1))},handlePopup(){this.showPopup=!this.showPopup}}},[["render",function(e,o,s,r,_,h){const k=m,y=c,C=b,S=N(v("u-popup"),Y);return _.list.length?(a(),t(y,{key:0,class:"service-wrapper",style:x(e.appThemeStyle)},{default:l((()=>[d(y,{class:"service-simple",onClick:h.handlePopup},{default:l((()=>[d(y,{class:"s-list"},{default:l((()=>[(a(!0),g(f,null,p(_.list,((e,o)=>(a(),t(y,{class:"s-item",key:o},{default:l((()=>[d(k,{class:"item-icon iconfont icon-fuwu"}),d(k,{class:"item-val"},{default:l((()=>[n(i(e.name),1)])),_:2},1024)])),_:2},1024)))),128))])),_:1}),d(y,{class:"s-arrow f-26 col-9 t-r"},{default:l((()=>[d(k,{class:"iconfont icon-arrow-right"})])),_:1})])),_:1},8,["onClick"]),d(S,{modelValue:_.showPopup,"onUpdate:modelValue":o[0]||(o[0]=e=>_.showPopup=e),mode:"bottom",closeable:!0,"border-radius":26},{default:l((()=>[d(y,{class:"service-content"},{default:l((()=>[d(y,{class:"title"},{default:l((()=>[n("服务")])),_:1}),d(C,{class:"content-scroll","scroll-y":!0},{default:l((()=>[d(y,{class:"s-list clearfix"},{default:l((()=>[(a(!0),g(f,null,p(_.list,((e,o)=>(a(),t(y,{class:"s-item",key:o},{default:l((()=>[d(k,{class:"item-icon iconfont icon-fuwu"}),d(y,{class:"item-val"},{default:l((()=>[n(i(e.name),1)])),_:2},1024),d(y,{class:"item-summary"},{default:l((()=>[n(i(e.summary),1)])),_:2},1024)])),_:2},1024)))),128))])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue"])])),_:1},8,["style"])):u("",!0)}],["__scopeId","data-v-f70a2bec"]])},data:()=>({isLoading:!0,goodsId:null,goods:{},cartTotal:0,showSkuPopup:!1,skuMode:1,showShareSheet:!1,isEnableCart:!1,isShowCustomerBtn:!1}),async onLoad(e){this.onRecordQuery(e),this.onRefreshPage(),this.isShowCustomerBtn=await I.isShowCustomerBtn()},methods:{onRecordQuery(e){const o=T(e);this.goodsId=e.goodsId?parseInt(e.goodsId):parseInt(o.gid)},onRefreshPage(){const e=this;e.isLoading=!0,Promise.all([e.getGoodsDetail(),e.getCartTotal()]).finally((()=>e.isLoading=!1))},getGoodsDetail(){const e=this;return new Promise(((o,s)=>{M(e.goodsId).then((s=>{e.goods=s.data.detail,e.goods.goods_type==E.PHYSICAL.value&&(e.isEnableCart=!0),o(s)})).catch(s)}))},getCartTotal(){const e=this;return new Promise(((o,s)=>{$().then((s=>{e.cartTotal=s.data.cartTotal,o(s)})).catch(s)}))},onAddCart(e){this.cartTotal=e},onShowSkuPopup(e=1){const o=this;o.isEnableCart?o.skuMode=e:o.skuMode=3,o.showSkuPopup=!o.showSkuPopup},onShowShareSheet(){this.showShareSheet=!this.showShareSheet},onTargetHome(e){this.$navTo("pages/index/index")},onTargetCart(){this.$navTo("pages/cart/index")}},onShareAppMessage(){const e=this,o=e.$getShareUrlParams({goodsId:e.goodsId});return{title:e.goods.goods_name,path:`/pages/goods/detail?${o}`}},onShareTimeline(){const e=this,o=e.$getShareUrlParams({goodsId:e.goodsId});return{title:e.goods.goods_name,path:`/pages/goods/detail?${o}`}}},[["render",function(e,o,s,r,_,h){const k=S("SlideImage"),y=m,C=c,w=B,b=S("Service"),I=S("SkuPopup"),T=S("Comment"),M=N(v("mp-html"),V),j=S("customer-btn"),$=S("share-sheet");return P((a(),t(C,{class:"container",style:x(e.appThemeStyle)},{default:l((()=>[_.isLoading?u("",!0):(a(),t(k,{key:0,video:_.goods.video,videoCover:_.goods.videoCover,images:_.goods.goods_images},null,8,["video","videoCover","images"])),_.isLoading?u("",!0):(a(),t(C,{key:1,class:"goods-info m-top20"},{default:l((()=>[d(C,{class:"info-item info-item__top dis-flex flex-x-between flex-y-end"},{default:l((()=>[d(C,{class:"block-left dis-flex flex-y-center"},{default:l((()=>[d(y,{class:"floor-price__samll"},{default:l((()=>[n("¥")])),_:1}),d(y,{class:"floor-price"},{default:l((()=>[n(i(_.goods.goods_price_min),1)])),_:1}),_.goods.is_user_grade?(a(),t(C,{key:0,class:"user-grade"},{default:l((()=>[d(y,null,{default:l((()=>[n("会员价")])),_:1})])),_:1})):u("",!0),_.goods.line_price_min>0?(a(),t(y,{key:1,class:"original-price"},{default:l((()=>[n("¥"+i(_.goods.line_price_min),1)])),_:1})):u("",!0)])),_:1}),d(C,{class:"block-right dis-flex"},{default:l((()=>[d(C,{class:"goods-sales"},{default:l((()=>[d(y,null,{default:l((()=>[n("已售"+i(_.goods.goods_sales)+"件",1)])),_:1})])),_:1})])),_:1})])),_:1}),d(C,{class:"info-item info-item__name dis-flex flex-y-center"},{default:l((()=>[d(C,{class:"goods-name flex-box"},{default:l((()=>[d(y,{class:"twoline-hide"},{default:l((()=>[n(i(_.goods.goods_name),1)])),_:1})])),_:1}),d(C,{class:"goods-share__line"}),d(C,{class:"goods-share"},{default:l((()=>[d(w,{class:"share-btn dis-flex flex-dir-column",onClick:o[0]||(o[0]=e=>h.onShowShareSheet())},{default:l((()=>[d(y,{class:"share__icon iconfont icon-fenxiang"}),d(y,{class:"f-24"},{default:l((()=>[n("分享")])),_:1})])),_:1})])),_:1})])),_:1}),_.goods.selling_point?(a(),t(C,{key:0,class:"info-item info-item_selling-point"},{default:l((()=>[d(y,null,{default:l((()=>[n(i(_.goods.selling_point),1)])),_:1})])),_:1})):u("",!0)])),_:1})),20==_.goods.spec_type?(a(),t(C,{key:2,class:"goods-choice m-top20 b-f",onClick:o[1]||(o[1]=e=>h.onShowSkuPopup(1))},{default:l((()=>[d(C,{class:"spec-list"},{default:l((()=>[d(C,{class:"flex-box"},{default:l((()=>[d(y,{class:"col-8"},{default:l((()=>[n("选择:")])),_:1}),(a(!0),g(f,null,p(_.goods.specList,((e,o)=>(a(),t(y,{class:"spec-name",key:o},{default:l((()=>[n(i(e.spec_name),1)])),_:2},1024)))),128))])),_:1}),d(C,{class:"f-26 col-9 t-r"},{default:l((()=>[d(y,{class:"iconfont icon-arrow-right"})])),_:1})])),_:1})])),_:1})):u("",!0),_.isLoading?u("",!0):(a(),t(b,{key:3,"goods-id":_.goodsId},null,8,["goods-id"])),_.isLoading?u("",!0):(a(),t(I,{key:4,modelValue:_.showSkuPopup,"onUpdate:modelValue":o[2]||(o[2]=e=>_.showSkuPopup=e),skuMode:_.skuMode,goods:_.goods,onAddCart:h.onAddCart},null,8,["modelValue","skuMode","goods","onAddCart"])),_.isLoading?u("",!0):(a(),t(T,{key:5,"goods-id":_.goodsId,limit:2},null,8,["goods-id"])),_.isLoading?u("",!0):(a(),t(C,{key:6,class:"goods-content m-top20"},{default:l((()=>[d(C,{class:"item-title b-f"},{default:l((()=>[d(y,null,{default:l((()=>[n("商品描述")])),_:1})])),_:1}),""!=_.goods.content?(a(),t(C,{key:0,class:"goods-content__detail b-f"},{default:l((()=>[d(M,{content:_.goods.content},null,8,["content"])])),_:1})):u("",!0)])),_:1})),d(C,{class:"footer-fixed"},{default:l((()=>[d(C,{class:"footer-container"},{default:l((()=>[d(C,{class:"foo-item-fast"},{default:l((()=>[d(C,{class:"fast-item fast-item--home",onClick:h.onTargetHome},{default:l((()=>[d(C,{class:"fast-icon"},{default:l((()=>[d(y,{class:"iconfont icon-shouye"})])),_:1}),d(C,{class:"fast-text"},{default:l((()=>[d(y,null,{default:l((()=>[n("首页")])),_:1})])),_:1})])),_:1},8,["onClick"]),_.isShowCustomerBtn?(a(),t(j,{key:0},{default:l((()=>[d(C,{class:"fast-item"},{default:l((()=>[d(C,{class:"fast-icon"},{default:l((()=>[d(y,{class:"iconfont icon-kefu1"})])),_:1}),d(C,{class:"fast-text"},{default:l((()=>[d(y,null,{default:l((()=>[n("客服")])),_:1})])),_:1})])),_:1})])),_:1})):u("",!0),d(C,{class:"fast-item fast-item--cart",onClick:h.onTargetCart},{default:l((()=>[_.cartTotal>0?(a(),t(C,{key:0,class:"fast-badge fast-badge--fixed"},{default:l((()=>[n(i(_.cartTotal>99?"99+":_.cartTotal),1)])),_:1})):u("",!0),d(C,{class:"fast-icon"},{default:l((()=>[d(y,{class:"iconfont icon-gouwuche"})])),_:1}),d(C,{class:"fast-text"},{default:l((()=>[d(y,null,{default:l((()=>[n("购物车")])),_:1})])),_:1})])),_:1},8,["onClick"])])),_:1}),d(C,{class:"foo-item-btn"},{default:l((()=>[d(C,{class:"btn-wrapper"},{default:l((()=>[_.isEnableCart?(a(),t(C,{key:0,class:"btn-item btn-item-deputy",onClick:o[3]||(o[3]=e=>h.onShowSkuPopup(2))},{default:l((()=>[d(y,null,{default:l((()=>[n("加入购物车")])),_:1})])),_:1})):u("",!0),d(C,{class:"btn-item btn-item-main",onClick:o[4]||(o[4]=e=>h.onShowSkuPopup(3))},{default:l((()=>[d(y,null,{default:l((()=>[n("立即购买")])),_:1})])),_:1})])),_:1})])),_:1})])),_:1})])),_:1}),d($,{modelValue:_.showShareSheet,"onUpdate:modelValue":o[5]||(o[5]=e=>_.showShareSheet=e),shareTitle:_.goods.goods_name,shareImageUrl:_.goods.goods_image},null,8,["modelValue","shareTitle","shareImageUrl"])])),_:1},8,["style"])),[[L,!_.isLoading]])}],["__scopeId","data-v-0dc1f207"]]);export{Z as default};
|