pages-goods-index.e69e664b.js 16 KB

1
  1. import{y as e,c as s,W as o,X as t,l,m as a,e as n,f as d,w as c,j as i,t as u,u as r,v as f,g as p,C as m,k as g,F as y,r as _,B as k,s as b,x as h,i as I,G as v,S as x,E as w,Y as S,D as C,d as j,o as A,p as V,Q as M,q as $,Z as O,a0 as L,a1 as P}from"./index-cfc52cf7.js";import{_ as F}from"./s-empty.4175a02e.js";import{_ as U}from"./su-swiper.ddb4cfd7.js";import{_ as E}from"./su-number-box.25266dd8.js";import{_ as T}from"./phone-international-input.545bb0d8.js";import{c as B,f as G,d as D,e as R,a as q,S as z,g as H,_ as J}from"./s-layout.6472cd71.js";import{_ as N}from"./_plugin-vue_export-helper.1b428a4d.js";import{_ as Q}from"./s-coupon-list.89e7fe99.js";import{R as W}from"./rewardActivity.4ce0b287.js";import{F as X}from"./favorite.75814580.js";import{d as Y,a as Z,_ as K,b as ee,c as se,e as oe}from"./detail-content-card.a69b11a7.js";import{S as te}from"./spu.f8bc5cbe.js";/* empty css */import"./comment-item.9135e221.js";import"./uni-rate.7bb41aed.js";import"./su-image.44c6efb0.js";import"./mp-html.c6dcb700.js";const le=N({__name:"s-select-sku",props:{goodsInfo:{type:Object,default(){}},show:{type:Boolean,default:!1}},emits:["change","addCart","buy","close"],setup(w,{emit:S}){const C=S,j=w,A=e({selectedSku:{},currentPropertyArray:[]}),V=B(j.goodsInfo.skus),M=s((()=>{let e=j.goodsInfo.skus;for(let s of e)s.value_id_array=s.properties.map((e=>e.valueId));return e}));function $(){A.selectedSku.id<=0?b.$helper.toast("请选择规格"):A.selectedSku.stock<=0?b.$helper.toast("库存不足"):C("addCart",A.selectedSku)}function O(){A.selectedSku.id<=0?b.$helper.toast("请选择规格"):A.selectedSku.stock<=0?b.$helper.toast("库存不足"):C("buy",A.selectedSku)}function L(e=!1,s=0,o=0){let t=[];if(e)for(let n of M.value)n.stock<=0||n.value_id_array.indexOf(o)>=0&&t.push(n);else t=P();let l=[];for(let n of t)l=l.concat(n.value_id_array);if(l=Array.from(new Set(l)),e){let e=l.indexOf(o);l.splice(e,1)}else A.currentPropertyArray.forEach((e=>{if(""!==e.toString())return;let s=l.indexOf(e);s>=0&&l.splice(s,1)}));let a=[];e?a=[s]:A.currentPropertyArray.forEach(((e,s)=>{""!==e&&a.push(s)}));for(let n in V)if(!(a.indexOf(V[n].id)>=0))for(let e in V[n].values)V[n].values[e].disabled=l.indexOf(V[n].values[e].id)<0}function P(){let e=[];for(let s of M.value){if(s.stock<=0)continue;let o=!0;A.currentPropertyArray.forEach((e=>{""!==e.toString()&&s.value_id_array.indexOf(e)<0&&(o=!1)})),o&&e.push(s)}return e}function F(e,s){let o=!0;void 0!==A.currentPropertyArray[e]&&A.currentPropertyArray[e]===s?(o=!1,A.currentPropertyArray.splice(e,1,"")):A.currentPropertyArray[e]=s;let t=[];A.currentPropertyArray.forEach((e=>{""!==e&&t.push(e)}));let l=P();t.length===V.length&&l.length?(l[0].goods_num=A.selectedSku.goods_num||1,A.selectedSku=l[0]):A.selectedSku={},L(o,e,s)}return o((()=>A.selectedSku),(e=>{console.log(e),C("change",e)}),{immediate:!0,deep:!0}),L(!1),t((()=>{1==V.length&&1==V[0].values.length&&F(0,0)})),(e,s)=>{const o=h,t=I,b=v,S=l(a("su-number-box"),E),j=x,M=l(a("su-popup"),T);return n(),d(M,{show:w.show,round:"10",onClose:s[3]||(s[3]=e=>C("close"))},{default:c((()=>[i(t,{class:"ss-modal-box bg-white ss-flex-col"},{default:c((()=>[i(t,{class:"modal-header ss-flex ss-col-center"},{default:c((()=>[i(t,{class:"header-left ss-m-r-30"},{default:c((()=>[i(o,{class:"sku-image",src:A.selectedSku.picUrl||w.goodsInfo.picUrl,mode:"aspectFill"},null,8,["src"])])),_:1}),i(t,{class:"header-right ss-flex-col ss-row-between ss-flex-1"},{default:c((()=>[i(t,{class:"goods-title ss-line-2"},{default:c((()=>[u(r(w.goodsInfo.name),1)])),_:1}),i(t,{class:"header-right-bottom ss-flex ss-col-center ss-row-between"},{default:c((()=>[i(t,{class:"ss-flex"},{default:c((()=>[i(t,{class:"price-text"},{default:c((()=>[u(r(f(G)(A.selectedSku.price||w.goodsInfo.price)),1)])),_:1}),A.selectedSku.promotionFee>=0||w.goodsInfo.promotionFee>=0?(n(),d(t,{key:0,class:"origin-price-text ss-m-l-10"},{default:c((()=>[u(" 数字权益:"+r(f(G)(A.selectedSku.promotionFee||w.goodsInfo.promotionFee)),1)])),_:1})):p("",!0)])),_:1}),i(t,{class:"stock-text ss-m-l-20"},{default:c((()=>[u(r(f(D)("exact",A.selectedSku.stock||w.goodsInfo.stock)),1)])),_:1})])),_:1})])),_:1})])),_:1}),i(t,{class:"modal-content ss-flex-1"},{default:c((()=>[i(j,{"scroll-y":"true",class:"modal-content-scroll",onTouchmove:s[2]||(s[2]=m((()=>{}),["stop"]))},{default:c((()=>[(n(!0),g(y,null,_(f(V),(e=>(n(),d(t,{class:"sku-item ss-m-b-20",key:e.id},{default:c((()=>[i(t,{class:"label-text ss-m-b-20"},{default:c((()=>[u(r(e.name),1)])),_:2},1024),i(t,{class:"ss-flex ss-col-center ss-flex-wrap"},{default:c((()=>[(n(!0),g(y,null,_(e.values,(s=>(n(),d(b,{class:k(["ss-reset-button spec-btn",[{"ui-BG-Main-Gradient":A.currentPropertyArray[e.id]===s.id},{"disabled-btn":!0===s.disabled}]]),key:s.id,disabled:!0===s.disabled,onClick:o=>F(e.id,s.id)},{default:c((()=>[u(r(s.name),1)])),_:2},1032,["class","disabled","onClick"])))),128))])),_:2},1024)])),_:2},1024)))),128)),i(t,{class:"buy-num-box ss-flex ss-col-center ss-row-between ss-m-b-40"},{default:c((()=>[i(t,{class:"label-text"},{default:c((()=>[u("购买数量")])),_:1}),i(S,{min:1,max:A.selectedSku.stock,step:1,modelValue:A.selectedSku.goods_num,"onUpdate:modelValue":s[0]||(s[0]=e=>A.selectedSku.goods_num=e),onChange:s[1]||(s[1]=e=>{var s;0!==(s=e)&&A.selectedSku.goods_num!==s&&(A.selectedSku.goods_num=s)})},null,8,["max","modelValue"])])),_:1})])),_:1})])),_:1}),i(t,{class:"modal-footer border-top"},{default:c((()=>[i(t,{class:"buy-box ss-flex ss-col-center ss-flex ss-col-center ss-row-center"},{default:c((()=>[i(b,{class:"ss-reset-button add-btn ui-Shadow-Main",onClick:$},{default:c((()=>[u("加入购物车")])),_:1}),i(b,{class:"ss-reset-button buy-btn ui-Shadow-Main",onClick:O},{default:c((()=>[u("立即购买")])),_:1})])),_:1})])),_:1})])),_:1})])),_:1},8,["show"])}}},[["__scopeId","data-v-0e6da8d9"]]),ae=N({__name:"s-coupon-get",props:{modelValue:{type:Object,default(){}},show:{type:Boolean,default:!1}},emits:["get","close"],setup(o,{emit:t}){const f=o,p=t,b=e({couponInfo:s((()=>f.modelValue))});return(e,s)=>{const t=I,f=v,h=l(a("s-coupon-list"),Q),w=x,S=l(a("su-popup"),T);return n(),d(S,{show:o.show,type:"bottom",round:"20",onClose:s[0]||(s[0]=e=>p("close")),showClose:"",backgroundColor:"#f2f2f2"},{default:c((()=>[i(t,{class:"model-box"},{default:c((()=>[i(t,{class:"title ss-m-t-16 ss-m-l-20 ss-flex"},{default:c((()=>[u("优惠券")])),_:1}),i(w,{class:"model-content","scroll-y":"","scroll-with-animation":!1,"enable-back-to-top":!0},{default:c((()=>[i(t,{class:"subtitle ss-m-l-20"},{default:c((()=>[u("可使用优惠券")])),_:1}),(n(!0),g(y,null,_(b.couponInfo,(e=>(n(),d(t,{key:e.id},{default:c((()=>[i(h,{data:e},{default:c((()=>[i(f,{class:k(["ss-reset-button card-btn ss-flex ss-row-center ss-col-center",e.canTake?"":"boder-btn"]),onClick:m((s=>{return o=e.id,void p("get",o);var o}),["stop"]),disabled:!e.canTake},{default:c((()=>[u(r(e.canTake?"立即领取":"已领取"),1)])),_:2},1032,["class","onClick","disabled"])])),_:2},1032,["data"])])),_:2},1024)))),128))])),_:1})])),_:1})])),_:1},8,["show"])}}},[["__scopeId","data-v-3a9aaf40"]]),ne=N({__name:"s-activity-pop",props:{modelValue:{type:Object,default(){}},show:{type:Boolean,default:!1}},emits:["close"],setup(t,{emit:p}){const m=t,k=p,h=e({activityInfo:s((()=>m.modelValue)),activityMap:{}});return o((()=>m.show),(()=>{var e;m.show&&(null==(e=h.activityInfo)||e.forEach((e=>{W.getRewardActivity(e.id).then((s=>{0===s.code&&(h.activityMap[e.id]=s.data)}))})))})),(e,s)=>{const o=I,p=w,m=x,v=l(a("su-popup"),T);return n(),d(v,{show:t.show,type:"bottom",round:"20",onClose:s[0]||(s[0]=e=>k("close")),showClose:""},{default:c((()=>[i(o,{class:"model-box"},{default:c((()=>[i(o,{class:"title ss-m-t-16 ss-m-l-20 ss-flex"},{default:c((()=>[u("营销活动")])),_:1}),i(m,{class:"model-content ss-m-t-50","scroll-y":"","scroll-with-animation":!1,"enable-back-to-top":!0},{default:c((()=>[(n(!0),g(y,null,_(h.activityInfo,(e=>(n(),d(o,{key:e.id},{default:c((()=>[i(o,{class:"ss-flex ss-col-top ss-m-b-40",onClick:s=>{return o=e,void b.$router.go("/pages/activity/index",{activityId:o.id});var o}},{default:c((()=>[i(o,{class:"model-content-tag ss-flex ss-row-center"},{default:c((()=>[u("满减")])),_:1}),i(o,{class:"ss-m-l-20 model-content-title ss-flex-1"},{default:c((()=>{var s;return[(n(!0),g(y,null,_(null==(s=h.activityMap[e.id])?void 0:s.rules,(s=>(n(),d(o,{class:"ss-m-b-24",key:s},{default:c((()=>[u(r(f(R)(h.activityMap[e.id],s)),1)])),_:2},1024)))),128))]})),_:2},1024),i(p,{class:"cicon-forward"})])),_:2},1032,["onClick"])])),_:2},1024)))),128))])),_:1})])),_:1})])),_:1},8,["show"])}}},[["__scopeId","data-v-fdb00d48"]]),de=e=>S({url:"/promotion/activity/list-by-spu-id",method:"GET",params:{spuId:e}}),ce=N({__name:"detail-activity-tip",props:{activityList:{type:Array,default:()=>[]}},setup(e){C((e=>({52218784:f(s),"932ed426":f(o)})));const s=b.$url.css("/static/images/seckill-tip-bg.png"),o=b.$url.css("/static/images/groupon-tip-bg.png"),t=e;return(e,s)=>{const o=h,m=I,x=v,w=l(a("su-fixed"),q);return n(),d(w,{bottom:"",placeholder:"",val:44},{default:c((()=>[i(m,null,{default:c((()=>[(n(!0),g(y,null,_(t.activityList,(e=>(n(),d(m,{key:e.id},{default:c((()=>[i(m,{class:k(["activity-box ss-p-x-38 ss-flex ss-row-between ss-col-center",1===e.type?"seckill-box":"groupon-box"])},{default:c((()=>[i(m,{class:"activity-title ss-flex"},{default:c((()=>[i(m,{class:"ss-m-r-16"},{default:c((()=>[1===e.type?(n(),d(o,{key:0,src:f(b).$url.static("/static/images/seckill-icon.png"),class:"activity-icon"},null,8,["src"])):3===e.type?(n(),d(o,{key:1,src:f(b).$url.static("/static/images/groupon-icon.png"),class:"activity-icon"},null,8,["src"])):p("",!0)])),_:2},1024),i(m,null,{default:c((()=>[u("该商品正在参与"+r(e.name)+"活动",1)])),_:2},1024)])),_:2},1024),i(x,{class:"ss-reset-button activity-go",onClick:s=>function(e){const s=e.type,o=1===s?"seckill":2===s?"TODO 拼团":"groupon";b.$router.go(`/pages/goods/${o}`,{id:e.id})}(e)},{default:c((()=>[u(" GO ")])),_:2},1032,["onClick"])])),_:2},1032,["class"])])),_:2},1024)))),128))])),_:1})])),_:1})}}},[["__scopeId","data-v-fb4b78d9"]]),ie=N({__name:"index",setup(t){j((()=>{}));const m=e({goodsId:0,skeletonLoading:!0,goodsInfo:{},showSelectSku:!1,selectedSku:{},showModel:!1,couponInfo:[],showActivityModel:!1,activityInfo:[],activityList:[],linkId:0});function k(e){m.selectedSku=e}function h(e){e.id?B.value?b.$store("cart").add(e):$():b.$helper.toast("请选择商品规格")}function x(e){m.selectedSku.id?b.$router.go("/pages/order/confirm",{data:JSON.stringify({items:[{skuId:e.id,count:e.goods_num}],deliveryType:1,pointStatus:!1})}):b.$helper.toast("请选择商品规格")}function S(){m.showActivityModel=!0}async function C(e){const{code:s}=await O.takeCoupon(e);0===s&&(L({title:"领取成功"}),setTimeout((()=>{!async function(){const{code:e,data:s}=await O.getCouponTemplateList(m.goodsId,2,10);0===e&&(m.couponInfo=s)}()}),1e3))}const E=s((()=>P.isEmpty(m.goodsInfo)?{}:b.$platform.share.getShareInfo({title:m.goodsInfo.name,image:b.$url.cdn(m.goodsInfo.image),desc:m.goodsInfo.subtitle,params:{page:"2"}},{type:"goods",title:m.goodsInfo.name,introduction:m.goodsInfo.introduction,image:b.$url.cdn(m.goodsInfo.picUrl),price:G(m.goodsInfo.price),original_price:G(m.goodsInfo.maretPrice)})));async function T(e){te.getSpuDetail(e).then((e=>{0===e.code&&e.data?(m.skeletonLoading=!1,m.goodsInfo=e.data,B.value&&X.isFavoriteExists(m.goodsId,"goods").then((e=>{0===e.code&&(m.goodsInfo.favorite=e.data)}))):m.goodsInfo=null}))}const B=s((()=>b.$store("user").isLogin));return o((()=>B.value),(e=>{e&&T(m.goodsId)})),A((e=>{if(console.log("options.id",e.id,"options.linkId",e.linkId),e.id||e.linkId){if(m.goodsId=e.id||0,!e.id&&e.linkId){console.log("如果只是没有spuId有linkId的话 要去linkId对应的spuId");const s=e.linkId.toString();z.getObjectIdByLinkId(s).then((e=>{0===e.code&&(m.goodsId=e.data,T(m.goodsId),async function(){z.getLinkId(3,m.goodsId).then((e=>{0===e.code&&(m.linkId=e.data.linkId)}))}())})),V("linkId",e.linkId)}else T(m.goodsId);de(m.goodsId).then((e=>{0===e.code&&e.data.forEach((e=>{[1,2,3].includes(e.type)?m.activityList.push(e):5===e.type?m.activityInfo.push(e):console.log("待实现!优先级不高")}))}))}else m.goodsInfo=null})),(e,s)=>{const o=l(a("s-empty"),F),t=l(a("su-swiper"),U),b=I,j=w,A=l(a("s-select-sku"),le),V=v,$=l(a("s-coupon-get"),ae),O=l(a("s-activity-pop"),ne),L=l(a("s-layout"),J);return n(),d(b,null,{default:c((()=>[i(L,{onShareAppMessage:E.value,navbar:"goods"},{default:c((()=>[i(Y,{modelValue:m.goodsInfo,"onUpdate:modelValue":s[0]||(s[0]=e=>m.goodsInfo=e)},null,8,["modelValue"]),m.skeletonLoading?(n(),d(Z,{key:0})):null===m.goodsInfo?(n(),d(o,{key:1,text:"商品不存在或已下架",icon:"/static/soldout-empty.png",showAction:"",actionText:"再逛逛",actionUrl:"/pages/goods/list"})):(n(),g(y,{key:2},[i(b,{class:"detail-swiper-selector"},{default:c((()=>[i(t,{class:"ss-m-b-14",isPreview:"",list:f(H)(m.goodsInfo.sliderPicUrls),otStyle:"tag",imageMode:"widthFix",dotCur:"bg-mask-40",seizeHeight:750},null,8,["list"]),i(b,{class:"title-card detail-card ss-p-y-40 ss-p-x-20"},{default:c((()=>[i(b,{class:"ss-flex ss-row-between ss-col-center ss-m-b-26"},{default:c((()=>[i(b,{class:"price-box ss-flex ss-col-center"},{default:c((()=>[i(b,{class:"price-text ss-m-r-16"},{default:c((()=>[u(r(f(G)(m.selectedSku.price||m.goodsInfo.price)),1)])),_:1}),m.goodsInfo.promotionFee>=0?(n(),d(b,{key:0,class:"origin-price-text"},{default:c((()=>[u(" 数字权益:"+r(f(G)(m.selectedSku.promotionFee||m.goodsInfo.promotionFee)),1)])),_:1})):p("",!0)])),_:1}),i(b,{class:"sales-text"})])),_:1}),i(b,{class:"discounts-box ss-flex ss-row-between ss-m-b-28"},{default:c((()=>[M("div",{class:"tag-content"},[i(b,{class:"tag-box ss-flex"},{default:c((()=>[(n(!0),g(y,null,_(m.activityInfo,(e=>(n(),d(b,{class:"tag ss-m-r-10",key:e.id,onClick:S},{default:c((()=>[u(r(e.name),1)])),_:2},1024)))),128))])),_:1})]),m.couponInfo.length?(n(),d(b,{key:0,class:"get-coupon-box ss-flex ss-col-center ss-m-l-20",onClick:s[1]||(s[1]=e=>m.showModel=!0)},{default:c((()=>[i(b,{class:"discounts-title ss-m-r-8"},{default:c((()=>[u("领券")])),_:1}),i(j,{class:"cicon-forward"})])),_:1})):p("",!0)])),_:1}),i(b,{class:"title-text ss-line-2 ss-m-b-6"},{default:c((()=>[u(r(m.goodsInfo.name),1)])),_:1}),i(b,{class:"subtitle-text ss-line-1"},{default:c((()=>[u(r(m.goodsInfo.introduction),1)])),_:1})])),_:1}),i(b,{class:"detail-cell-card detail-card ss-flex-col"},{default:c((()=>[i(K,{modelValue:m.selectedSku.goods_sku_text,"onUpdate:modelValue":s[2]||(s[2]=e=>m.selectedSku.goods_sku_text=e),sku:m.selectedSku,onClick:s[3]||(s[3]=e=>m.showSelectSku=!0)},null,8,["modelValue","sku"])])),_:1}),i(A,{goodsInfo:m.goodsInfo,show:m.showSelectSku,onAddCart:h,onBuy:x,onChange:k,onClose:s[4]||(s[4]=e=>m.showSelectSku=!1)},null,8,["goodsInfo","show"])])),_:1}),i(ee,{class:"detail-comment-selector",goodsId:m.goodsId},null,8,["goodsId"]),i(se,{class:"detail-content-selector",content:m.goodsInfo.description},null,8,["content"]),m.activityList.length>0?(n(),d(ce,{key:0,"activity-list":m.activityList},null,8,["activity-list"])):p("",!0),i(oe,{modelValue:m.goodsInfo,"onUpdate:modelValue":s[7]||(s[7]=e=>m.goodsInfo=e)},{default:c((()=>[m.goodsInfo.stock>0?(n(),d(b,{key:0,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[i(V,{class:"ss-reset-button add-btn ui-Shadow-Main",onClick:s[5]||(s[5]=e=>m.showSelectSku=!0)},{default:c((()=>[u(" 加入购物车 ")])),_:1}),i(V,{class:"ss-reset-button buy-btn ui-Shadow-Main",onClick:s[6]||(s[6]=e=>m.showSelectSku=!0)},{default:c((()=>[u(" 立即购买 ")])),_:1})])),_:1})):(n(),d(b,{key:1,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[i(V,{class:"ss-reset-button disabled-btn",disabled:""},{default:c((()=>[u(" 已售罄 ")])),_:1})])),_:1}))])),_:1},8,["modelValue"]),i($,{modelValue:m.couponInfo,"onUpdate:modelValue":s[8]||(s[8]=e=>m.couponInfo=e),show:m.showModel,onClose:s[9]||(s[9]=e=>m.showModel=!1),onGet:C},null,8,["modelValue","show"]),i(O,{modelValue:m.activityInfo,"onUpdate:modelValue":s[10]||(s[10]=e=>m.activityInfo=e),show:m.showActivityModel,onClose:s[11]||(s[11]=e=>m.showActivityModel=!1)},null,8,["modelValue","show"])],64))])),_:1},8,["onShareAppMessage"])])),_:1})}}},[["__scopeId","data-v-83646c72"]]);export{ie as default};