pages-goods-index.02c38ef5.js 15 KB

1
  1. import{v as s,c as e,W as t,X as o,l,m as a,e as d,f as c,w as n,j as i,p as u,t as r,u as f,A as p,k as m,F as g,r as _,z as y,s as k,q as b,i as h,D as x,S as v,C as w,Y as I,B as S,g as C,d as j,o as A,Z as V,a0 as M,a1 as $,a2 as P}from"./index-96d37759.js";import{_ as O}from"./s-empty.461baf71.js";import{_ as U}from"./su-swiper.a3a8097b.js";import{_ as L}from"./su-number-box.60017ff1.js";import{d as T}from"./form.94aeb2da.js";import{c as E,f as B,a as G,b as F,d as q,e as D}from"./useGoods.0edd5318.js";import{_ as z}from"./_plugin-vue_export-helper.1b428a4d.js";import{_ as R}from"./s-coupon-list.18d83d8b.js";import{R as H}from"./rewardActivity.25919fb8.js";import{a as J,_ as N}from"./s-layout.21b1277a.js";import{F as W}from"./favorite.d7505d9d.js";import{d as X,a as Y,_ as Z,b as K,c as Q,e as ss}from"./detail-content-card.f35a9937.js";import{S as es}from"./spu.eea1a97f.js";/* empty css */import"./comment-item.6364379d.js";import"./uni-rate.a9baf4d7.js";import"./su-image.c0e4deda.js";import"./mp-html.72bab81e.js";const ts=z({__name:"s-select-sku",props:{goodsInfo:{type:Object,default(){}},show:{type:Boolean,default:!1}},emits:["change","addCart","buy","close"],setup(w,{emit:I}){const S=w,C=s({selectedSku:{},currentPropertyArray:[]}),j=E(S.goodsInfo.skus),A=e((()=>{let s=S.goodsInfo.skus;for(let e of s)e.value_id_array=e.properties.map((s=>s.valueId));return s}));function V(){C.selectedSku.id<=0?k.$helper.toast("请选择规格"):C.selectedSku.stock<=0?k.$helper.toast("库存不足"):I("addCart",C.selectedSku)}function M(){C.selectedSku.id<=0?k.$helper.toast("请选择规格"):C.selectedSku.stock<=0?k.$helper.toast("库存不足"):I("buy",C.selectedSku)}function $(s=!1,e=0,t=0){let o=[];if(s)for(let d of A.value)d.stock<=0||d.value_id_array.indexOf(t)>=0&&o.push(d);else o=P();let l=[];for(let d of o)l=l.concat(d.value_id_array);if(l=Array.from(new Set(l)),s){let s=l.indexOf(t);l.splice(s,1)}else C.currentPropertyArray.forEach((s=>{if(""!==s.toString())return;let e=l.indexOf(s);e>=0&&l.splice(e,1)}));let a=[];s?a=[e]:C.currentPropertyArray.forEach(((s,e)=>{""!==s&&a.push(e)}));for(let d in j)if(!(a.indexOf(j[d].id)>=0))for(let s in j[d].values)j[d].values[s].disabled=l.indexOf(j[d].values[s].id)<0}function P(){let s=[];for(let e of A.value){if(e.stock<=0)continue;let t=!0;C.currentPropertyArray.forEach((s=>{""!==s.toString()&&e.value_id_array.indexOf(s)<0&&(t=!1)})),t&&s.push(e)}return s}function O(s,e){let t=!0;void 0!==C.currentPropertyArray[s]&&C.currentPropertyArray[s]===e?(t=!1,C.currentPropertyArray.splice(s,1,"")):C.currentPropertyArray[s]=e;let o=[];C.currentPropertyArray.forEach((s=>{""!==s&&o.push(s)}));let l=P();o.length===j.length&&l.length?(l[0].goods_num=C.selectedSku.goods_num||1,C.selectedSku=l[0]):C.selectedSku={},$(t,s,e)}return t((()=>C.selectedSku),(s=>{I("change",s)}),{immediate:!0,deep:!0}),$(!1),o((()=>{1==j.length&&1==j[0].values.length&&O(0,0)})),(s,e)=>{const t=b,o=h,k=x,S=l(a("su-number-box"),L),A=v,$=l(a("su-popup"),T);return d(),c($,{show:w.show,round:"10",onClose:e[3]||(e[3]=s=>I("close"))},{default:n((()=>[i(o,{class:"ss-modal-box bg-white ss-flex-col"},{default:n((()=>[i(o,{class:"modal-header ss-flex ss-col-center"},{default:n((()=>[i(o,{class:"header-left ss-m-r-30"},{default:n((()=>[i(t,{class:"sku-image",src:C.selectedSku.picUrl||w.goodsInfo.picUrl,mode:"aspectFill"},null,8,["src"])])),_:1}),i(o,{class:"header-right ss-flex-col ss-row-between ss-flex-1"},{default:n((()=>[i(o,{class:"goods-title ss-line-2"},{default:n((()=>[u(r(w.goodsInfo.name),1)])),_:1}),i(o,{class:"header-right-bottom ss-flex ss-col-center ss-row-between"},{default:n((()=>[i(o,{class:"ss-flex"},{default:n((()=>[i(o,{class:"price-text"},{default:n((()=>[u(r(f(B)(C.selectedSku.price||w.goodsInfo.price)),1)])),_:1})])),_:1}),i(o,{class:"stock-text ss-m-l-20"},{default:n((()=>[u(r(f(G)("exact",C.selectedSku.stock||w.goodsInfo.stock)),1)])),_:1})])),_:1})])),_:1})])),_:1}),i(o,{class:"modal-content ss-flex-1"},{default:n((()=>[i(A,{"scroll-y":"true",class:"modal-content-scroll",onTouchmove:e[2]||(e[2]=p((()=>{}),["stop"]))},{default:n((()=>[(d(!0),m(g,null,_(f(j),(s=>(d(),c(o,{class:"sku-item ss-m-b-20",key:s.id},{default:n((()=>[i(o,{class:"label-text ss-m-b-20"},{default:n((()=>[u(r(s.name),1)])),_:2},1024),i(o,{class:"ss-flex ss-col-center ss-flex-wrap"},{default:n((()=>[(d(!0),m(g,null,_(s.values,(e=>(d(),c(k,{class:y(["ss-reset-button spec-btn",[{"ui-BG-Main-Gradient":C.currentPropertyArray[s.id]===e.id},{"disabled-btn":!0===e.disabled}]]),key:e.id,disabled:!0===e.disabled,onClick:t=>O(s.id,e.id)},{default:n((()=>[u(r(e.name),1)])),_:2},1032,["class","disabled","onClick"])))),128))])),_:2},1024)])),_:2},1024)))),128)),i(o,{class:"buy-num-box ss-flex ss-col-center ss-row-between ss-m-b-40"},{default:n((()=>[i(o,{class:"label-text"},{default:n((()=>[u("购买数量")])),_:1}),i(S,{min:1,max:C.selectedSku.stock,step:1,modelValue:C.selectedSku.goods_num,"onUpdate:modelValue":e[0]||(e[0]=s=>C.selectedSku.goods_num=s),onChange:e[1]||(e[1]=s=>{var e;0!==(e=s)&&C.selectedSku.goods_num!==e&&(C.selectedSku.goods_num=e)})},null,8,["max","modelValue"])])),_:1})])),_:1})])),_:1}),i(o,{class:"modal-footer border-top"},{default:n((()=>[i(o,{class:"buy-box ss-flex ss-col-center ss-flex ss-col-center ss-row-center"},{default:n((()=>[i(k,{class:"ss-reset-button add-btn ui-Shadow-Main",onClick:V},{default:n((()=>[u("加入购物车")])),_:1}),i(k,{class:"ss-reset-button buy-btn ui-Shadow-Main",onClick:M},{default:n((()=>[u("立即购买")])),_:1})])),_:1})])),_:1})])),_:1})])),_:1},8,["show"])}}},[["__scopeId","data-v-0b7e4c36"]]),os=z({__name:"s-coupon-get",props:{modelValue:{type:Object,default(){}},show:{type:Boolean,default:!1}},emits:["get","close"],setup(t,{emit:o}){const f=t,k=s({couponInfo:e((()=>f.modelValue))});return(s,e)=>{const f=h,b=x,w=l(a("s-coupon-list"),R),I=v,S=l(a("su-popup"),T);return d(),c(S,{show:t.show,type:"bottom",round:"20",onClose:e[0]||(e[0]=s=>o("close")),showClose:"",backgroundColor:"#f2f2f2"},{default:n((()=>[i(f,{class:"model-box"},{default:n((()=>[i(f,{class:"title ss-m-t-16 ss-m-l-20 ss-flex"},{default:n((()=>[u("优惠券")])),_:1}),i(I,{class:"model-content","scroll-y":"","scroll-with-animation":!1,"enable-back-to-top":!0},{default:n((()=>[i(f,{class:"subtitle ss-m-l-20"},{default:n((()=>[u("可使用优惠券")])),_:1}),(d(!0),m(g,null,_(k.couponInfo,(s=>(d(),c(f,{key:s.id},{default:n((()=>[i(w,{data:s},{default:n((()=>[i(b,{class:y(["ss-reset-button card-btn ss-flex ss-row-center ss-col-center",s.canTake?"":"boder-btn"]),onClick:p((e=>{return t=s.id,void o("get",t);var t}),["stop"]),disabled:!s.canTake},{default:n((()=>[u(r(s.canTake?"立即领取":"已领取"),1)])),_:2},1032,["class","onClick","disabled"])])),_:2},1032,["data"])])),_:2},1024)))),128))])),_:1})])),_:1})])),_:1},8,["show"])}}},[["__scopeId","data-v-3a9aaf40"]]),ls=z({__name:"s-activity-pop",props:{modelValue:{type:Object,default(){}},show:{type:Boolean,default:!1}},emits:["close"],setup(o,{emit:p}){const y=o,b=s({activityInfo:e((()=>y.modelValue)),activityMap:{}});return t((()=>y.show),(()=>{var s;y.show&&(null==(s=b.activityInfo)||s.forEach((s=>{H.getRewardActivity(s.id).then((e=>{0===e.code&&(b.activityMap[s.id]=e.data)}))})))})),(s,e)=>{const t=h,y=w,x=v,I=l(a("su-popup"),T);return d(),c(I,{show:o.show,type:"bottom",round:"20",onClose:e[0]||(e[0]=s=>p("close")),showClose:""},{default:n((()=>[i(t,{class:"model-box"},{default:n((()=>[i(t,{class:"title ss-m-t-16 ss-m-l-20 ss-flex"},{default:n((()=>[u("营销活动")])),_:1}),i(x,{class:"model-content ss-m-t-50","scroll-y":"","scroll-with-animation":!1,"enable-back-to-top":!0},{default:n((()=>[(d(!0),m(g,null,_(b.activityInfo,(s=>(d(),c(t,{key:s.id},{default:n((()=>[i(t,{class:"ss-flex ss-col-top ss-m-b-40",onClick:e=>{return t=s,void k.$router.go("/pages/activity/index",{activityId:t.id});var t}},{default:n((()=>[i(t,{class:"model-content-tag ss-flex ss-row-center"},{default:n((()=>[u("满减")])),_:1}),i(t,{class:"ss-m-l-20 model-content-title ss-flex-1"},{default:n((()=>{var e;return[(d(!0),m(g,null,_(null==(e=b.activityMap[s.id])?void 0:e.rules,(e=>(d(),c(t,{class:"ss-m-b-24",key:e},{default:n((()=>[u(r(f(F)(b.activityMap[s.id],e)),1)])),_:2},1024)))),128))]})),_:2},1024),i(y,{class:"cicon-forward"})])),_:2},1032,["onClick"])])),_:2},1024)))),128))])),_:1})])),_:1})])),_:1},8,["show"])}}},[["__scopeId","data-v-fdb00d48"]]),as=s=>I({url:"/promotion/activity/list-by-spu-id",method:"GET",params:{spuId:s}}),ds=z({__name:"detail-activity-tip",props:{activityList:{type:Array,default:()=>[]}},setup(s){const e=s;S((s=>({"0f9834e5":f(t),"21dce2d8":f(o)})));const t=k.$url.css("/static/img/shop/goods/seckill-tip-bg.png"),o=k.$url.css("/static/img/shop/goods/groupon-tip-bg.png");return(s,t)=>{const o=b,p=h,v=x,w=l(a("su-fixed"),J);return d(),c(w,{bottom:"",placeholder:"",val:44},{default:n((()=>[i(p,null,{default:n((()=>[(d(!0),m(g,null,_(e.activityList,(s=>(d(),c(p,{key:s.id},{default:n((()=>[i(p,{class:y(["activity-box ss-p-x-38 ss-flex ss-row-between ss-col-center",1===s.type?"seckill-box":"groupon-box"])},{default:n((()=>[i(p,{class:"activity-title ss-flex"},{default:n((()=>[i(p,{class:"ss-m-r-16"},{default:n((()=>[1===s.type?(d(),c(o,{key:0,src:f(k).$url.static("/static/img/shop/goods/seckill-icon.png"),class:"activity-icon"},null,8,["src"])):3===s.type?(d(),c(o,{key:1,src:f(k).$url.static("/static/img/shop/goods/groupon-icon.png"),class:"activity-icon"},null,8,["src"])):C("",!0)])),_:2},1024),i(p,null,{default:n((()=>[u("该商品正在参与"+r(s.name)+"活动",1)])),_:2},1024)])),_:2},1024),i(v,{class:"ss-reset-button activity-go",onClick:e=>function(s){const e=s.type,t=1===e?"seckill":2===e?"TODO 拼团":"groupon";k.$router.go(`/pages/goods/${t}`,{id:s.id})}(s)},{default:n((()=>[u(" GO ")])),_:2},1032,["onClick"])])),_:2},1032,["class"])])),_:2},1024)))),128))])),_:1})])),_:1})}}},[["__scopeId","data-v-ed9697ba"]]),cs=z({__name:"index",setup(t){j((()=>{}));const o=s({goodsId:0,skeletonLoading:!0,goodsInfo:{},showSelectSku:!1,selectedSku:{},showModel:!1,couponInfo:[],showActivityModel:!1,activityInfo:[],activityList:[]});function p(s){o.selectedSku=s}function y(s){s.id?k.$store("cart").add(s):k.$helper.toast("请选择商品规格")}function b(s){o.selectedSku.id?k.$router.go("/pages/order/confirm",{data:JSON.stringify({items:[{skuId:s.id,count:s.goods_num}],deliveryType:1,pointStatus:!1})}):k.$helper.toast("请选择商品规格")}function v(){o.showActivityModel=!0}async function I(s){const{code:e}=await V.takeCoupon(s);0===e&&($({title:"领取成功"}),setTimeout((()=>{L()}),1e3))}const S=e((()=>P.isEmpty(o.goodsInfo)?{}:k.$platform.share.getShareInfo({title:o.goodsInfo.name,image:k.$url.cdn(o.goodsInfo.image),desc:o.goodsInfo.subtitle,params:{page:"2",query:o.goodsInfo.id}},{type:"goods",title:o.goodsInfo.name,image:k.$url.cdn(o.goodsInfo.picUrl),price:B(o.goodsInfo.price),original_price:B(o.goodsInfo.maretPrice)})));async function L(){const{code:s,data:e}=await V.getCouponTemplateList(o.goodsId,2,10);0===s&&(o.couponInfo=e)}return A((s=>{s.id?(o.goodsId=s.id,es.getSpuDetail(o.goodsId).then((s=>{0===s.code&&s.data?(o.skeletonLoading=!1,o.goodsInfo=s.data,W.isFavoriteExists(o.goodsId,"goods").then((s=>{0===s.code&&(o.goodsInfo.favorite=s.data)}))):o.goodsInfo=null})),L(),as(o.goodsId).then((s=>{0===s.code&&s.data.forEach((s=>{[1,2,3].includes(s.type)?o.activityList.push(s):5===s.type?o.activityInfo.push(s):console.log("待实现!优先级不高")}))}))):o.goodsInfo=null})),(s,e)=>{const t=l(a("s-empty"),O),k=l(a("su-swiper"),U),j=h,A=w,V=l(a("s-select-sku"),ts),$=x,P=l(a("s-coupon-get"),os),L=l(a("s-activity-pop"),ls),T=l(a("s-layout"),N);return d(),c(j,null,{default:n((()=>[i(T,{onShareAppMessage:f(S),navbar:"goods"},{default:n((()=>[i(X,{modelValue:o.goodsInfo,"onUpdate:modelValue":e[0]||(e[0]=s=>o.goodsInfo=s)},null,8,["modelValue"]),o.skeletonLoading?(d(),c(Y,{key:0})):null===o.goodsInfo?(d(),c(t,{key:1,text:"商品不存在或已下架",icon:"/static/soldout-empty.png",showAction:"",actionText:"再逛逛",actionUrl:"/pages/goods/list"})):(d(),m(g,{key:2},[i(j,{class:"detail-swiper-selector"},{default:n((()=>[i(k,{class:"ss-m-b-14",isPreview:"",list:f(q)(o.goodsInfo.sliderPicUrls),otStyle:"tag",imageMode:"widthFix",dotCur:"bg-mask-40",seizeHeight:750},null,8,["list"]),i(j,{class:"title-card detail-card ss-p-y-40 ss-p-x-20"},{default:n((()=>[i(j,{class:"ss-flex ss-row-between ss-col-center ss-m-b-26"},{default:n((()=>[i(j,{class:"price-box ss-flex ss-col-bottom"},{default:n((()=>[i(j,{class:"price-text ss-m-r-16"},{default:n((()=>[u(r(f(B)(o.selectedSku.price||o.goodsInfo.price)),1)])),_:1}),o.goodsInfo.marketPrice>0?(d(),c(j,{key:0,class:"origin-price-text"},{default:n((()=>[u(r(f(B)(o.selectedSku.marketPrice||o.goodsInfo.marketPrice)),1)])),_:1})):C("",!0)])),_:1}),i(j,{class:"sales-text"},{default:n((()=>[u(r(f(D)("exact",o.goodsInfo.salesCount)),1)])),_:1})])),_:1}),i(j,{class:"discounts-box ss-flex ss-row-between ss-m-b-28"},{default:n((()=>[M("div",{class:"tag-content"},[i(j,{class:"tag-box ss-flex"},{default:n((()=>[(d(!0),m(g,null,_(o.activityInfo,(s=>(d(),c(j,{class:"tag ss-m-r-10",key:s.id,onClick:v},{default:n((()=>[u(r(s.name),1)])),_:2},1024)))),128))])),_:1})]),o.couponInfo.length?(d(),c(j,{key:0,class:"get-coupon-box ss-flex ss-col-center ss-m-l-20",onClick:e[1]||(e[1]=s=>o.showModel=!0)},{default:n((()=>[i(j,{class:"discounts-title ss-m-r-8"},{default:n((()=>[u("领券")])),_:1}),i(A,{class:"cicon-forward"})])),_:1})):C("",!0)])),_:1}),i(j,{class:"title-text ss-line-2 ss-m-b-6"},{default:n((()=>[u(r(o.goodsInfo.name),1)])),_:1}),i(j,{class:"subtitle-text ss-line-1"},{default:n((()=>[u(r(o.goodsInfo.introduction),1)])),_:1})])),_:1}),i(j,{class:"detail-cell-card detail-card ss-flex-col"},{default:n((()=>[i(Z,{modelValue:o.selectedSku.goods_sku_text,"onUpdate:modelValue":e[2]||(e[2]=s=>o.selectedSku.goods_sku_text=s),sku:o.selectedSku,onClick:e[3]||(e[3]=s=>o.showSelectSku=!0)},null,8,["modelValue","sku"])])),_:1}),i(V,{goodsInfo:o.goodsInfo,show:o.showSelectSku,onAddCart:y,onBuy:b,onChange:p,onClose:e[4]||(e[4]=s=>o.showSelectSku=!1)},null,8,["goodsInfo","show"])])),_:1}),i(K,{class:"detail-comment-selector",goodsId:o.goodsId},null,8,["goodsId"]),i(Q,{class:"detail-content-selector",content:o.goodsInfo.description},null,8,["content"]),o.activityList.length>0?(d(),c(ds,{key:0,"activity-list":o.activityList},null,8,["activity-list"])):C("",!0),i(ss,{modelValue:o.goodsInfo,"onUpdate:modelValue":e[7]||(e[7]=s=>o.goodsInfo=s)},{default:n((()=>[o.goodsInfo.stock>0?(d(),c(j,{key:0,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:n((()=>[i($,{class:"ss-reset-button add-btn ui-Shadow-Main",onClick:e[5]||(e[5]=s=>o.showSelectSku=!0)},{default:n((()=>[u(" 加入购物车 ")])),_:1}),i($,{class:"ss-reset-button buy-btn ui-Shadow-Main",onClick:e[6]||(e[6]=s=>o.showSelectSku=!0)},{default:n((()=>[u(" 立即购买 ")])),_:1})])),_:1})):(d(),c(j,{key:1,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:n((()=>[i($,{class:"ss-reset-button disabled-btn",disabled:""},{default:n((()=>[u(" 已售罄 ")])),_:1})])),_:1}))])),_:1},8,["modelValue"]),i(P,{modelValue:o.couponInfo,"onUpdate:modelValue":e[8]||(e[8]=s=>o.couponInfo=s),show:o.showModel,onClose:e[9]||(e[9]=s=>o.showModel=!1),onGet:I},null,8,["modelValue","show"]),i(L,{modelValue:o.activityInfo,"onUpdate:modelValue":e[10]||(e[10]=s=>o.activityInfo=s),show:o.showActivityModel,onClose:e[11]||(e[11]=s=>o.showActivityModel=!1)},null,8,["modelValue","show"])],64))])),_:1},8,["onShareAppMessage"])])),_:1})}}},[["__scopeId","data-v-217a954b"]]);export{cs as default};