1 |
- import{c as e,s,y as o,W as t,X as l,l as a,m as d,e as n,f as u,w as c,j as r,t as i,u as f,v as p,g,C as y,k,F as m,r as _,B as I,Y as b,x as h,i as S,E as x,G as w,Z as v,S as P,a0 as T,d as j,o as C,p as A,Q as V,q as $,a1 as F}from"./index-9e0fc99f.js";import{_ as M}from"./s-empty.6bdb7146.js";import{_ as O}from"./su-swiper.48250edb.js";import{_ as U}from"./su-number-box.737ff030.js";import{_ as E}from"./phone-international-input.3686f9b7.js";import{_ as L}from"./points.1022ae23.js";import{c as B,f as G,d as D,p as Q,S as q,e as W,_ as z}from"./s-layout.a1f68f75.js";import{_ as H}from"./_plugin-vue_export-helper.1b428a4d.js";import{F as J}from"./favorite.66b032bd.js";import{d as N,a as X,_ as Y,b as Z,c as K,e as R}from"./detail-content-card.c6eca236.js";import{S as ee}from"./spu.445ff608.js";/* empty css */import"./comment-item.6b8e2393.js";import"./uni-rate.5e608a4e.js";import"./su-image.692eb3bb.js";import"./mp-html.691424b1.js";const se=H({__name:"s-select-sku",props:{goodsInfo:{type:Object,default(){}},show:{type:Boolean,default:!1}},emits:["change","addCart","buy","close"],setup(T,{emit:j}){const C=j,A=T,V=e((()=>s.$store("user").userWallet)),$=o({selectedSku:{},currentPropertyArray:[]}),F=B(A.goodsInfo.skus),M=e((()=>{let e=A.goodsInfo.skus;for(let s of e)s.value_id_array=s.properties.map((e=>e.valueId));return e}));function O(e){const o=e.detail.value,t=parseFloat(Q(V.value.integralDO.currentQuota));$.selectedSku.goods_num=parseInt($.selectedSku.use_points/G($.selectedSku.price)),o>t&&(s.$helper.toast("可用数字权益不足"),console.log("输入的数字权益大于可用数字权益了",o,t),b((()=>{$.selectedSku.use_points=t,$.selectedSku.goods_num=parseInt($.selectedSku.use_points/G($.selectedSku.price))})))}function q(){$.selectedSku.id<=0?s.$helper.toast("请选择规格"):$.selectedSku.stock<=0?s.$helper.toast("库存不足"):C("addCart",$.selectedSku)}function W(){if(2==A.goodsInfo.spuPayType){if($.selectedSku.goods_num<1||!$.selectedSku.use_points)return void s.$helper.toast("输入金额少于可购买数量");$.selectedSku.goods_num>$.selectedSku.stock&&($.selectedSku.use_points=($.selectedSku.stock*G($.selectedSku.price)).toFixed(2),$.selectedSku.goods_num=$.selectedSku.stock)}$.selectedSku.id<=0?s.$helper.toast("请选择规格"):$.selectedSku.stock<=0?s.$helper.toast("库存不足"):C("buy",$.selectedSku)}function z(e=!1,s=0,o=0){let t=[];if(e)for(let d of M.value)d.stock<=0||d.value_id_array.indexOf(o)>=0&&t.push(d);else t=H();let l=[];for(let d of t)l=l.concat(d.value_id_array);if(l=Array.from(new Set(l)),e){let e=l.indexOf(o);l.splice(e,1)}else $.currentPropertyArray.forEach((e=>{if(""!==e.toString())return;let s=l.indexOf(e);s>=0&&l.splice(s,1)}));let a=[];e?a=[s]:$.currentPropertyArray.forEach(((e,s)=>{""!==e&&a.push(s)}));for(let d in F)if(!(a.indexOf(F[d].id)>=0))for(let e in F[d].values)F[d].values[e].disabled=l.indexOf(F[d].values[e].id)<0}function H(){let e=[];for(let s of M.value){if(s.stock<=0)continue;let o=!0;$.currentPropertyArray.forEach((e=>{""!==e.toString()&&s.value_id_array.indexOf(e)<0&&(o=!1)})),o&&e.push(s)}return e}function J(e,s){$.selectedSku.use_points=0;let o=!0;void 0!==$.currentPropertyArray[e]&&$.currentPropertyArray[e]===s?(o=!1,$.currentPropertyArray.splice(e,1,"")):$.currentPropertyArray[e]=s;let t=[];$.currentPropertyArray.forEach((e=>{""!==e&&t.push(e)}));let l=H();t.length===F.length&&l.length?(l[0].goods_num=$.selectedSku.goods_num||1,$.selectedSku=l[0]):$.selectedSku={},z(o,e,s)}return t((()=>$.selectedSku),(e=>{C("change",e)}),{immediate:!0,deep:!0}),z(!1),l((()=>{1==F.length&&1==F[0].values.length&&J(0,0)})),(e,s)=>{const o=h,t=S,l=x,b=w,j=v,A=a(d("su-number-box"),U),M=P,B=a(d("su-popup"),E);return n(),u(B,{show:T.show,round:"10",onClose:s[5]||(s[5]=e=>C("close"))},{default:c((()=>[r(t,{class:"ss-modal-box bg-white ss-flex-col"},{default:c((()=>[r(t,{class:"modal-header ss-flex ss-col-center"},{default:c((()=>[r(t,{class:"header-left ss-m-r-30"},{default:c((()=>[r(o,{class:"sku-image",src:$.selectedSku.picUrl||T.goodsInfo.picUrl,mode:"aspectFill"},null,8,["src"])])),_:1}),r(t,{class:"header-right ss-flex-col ss-row-between ss-flex-1"},{default:c((()=>[r(t,{class:"goods-title ss-line-2"},{default:c((()=>[i(f(T.goodsInfo.name),1)])),_:1}),r(t,{class:"header-right-bottom ss-flex ss-col-center ss-row-between"},{default:c((()=>[r(t,{class:"ss-flex"},{default:c((()=>[r(t,{class:"price-text"},{default:c((()=>[2==T.goodsInfo.spuPayType?(n(),u(o,{key:0,src:L,style:{width:"30rpx",height:"30rpx"}})):(n(),u(l,{key:1},{default:c((()=>[i("¥")])),_:1})),i(" "+f(p(G)($.selectedSku.price||T.goodsInfo.price)),1)])),_:1}),$.selectedSku.promotionFee>=0||T.goodsInfo.promotionFee>=0?(n(),u(t,{key:0,class:"origin-price-text ss-m-l-10"},{default:c((()=>[i(" 数字权益:"+f(p(G)($.selectedSku.promotionFee||T.goodsInfo.promotionFee)),1)])),_:1})):g("",!0)])),_:1}),r(t,{class:"stock-text ss-m-l-20"},{default:c((()=>[i(f(p(D)("exact",$.selectedSku.stock||T.goodsInfo.stock)),1)])),_:1})])),_:1})])),_:1})])),_:1}),r(t,{class:"modal-content ss-flex-1"},{default:c((()=>[r(M,{"scroll-y":"true",class:"modal-content-scroll",onTouchmove:s[3]||(s[3]=y((()=>{}),["stop"]))},{default:c((()=>[(n(!0),k(m,null,_(p(F),(e=>(n(),u(t,{class:"sku-item ss-m-b-20",key:e.id},{default:c((()=>[r(t,{class:"label-text ss-m-b-20"},{default:c((()=>[i(f(e.name),1)])),_:2},1024),r(t,{class:"ss-flex ss-col-center ss-flex-wrap"},{default:c((()=>[(n(!0),k(m,null,_(e.values,(s=>(n(),u(b,{class:I(["ss-reset-button spec-btn",[{"ui-BG-Main-Gradient":$.currentPropertyArray[e.id]===s.id},{"disabled-btn":!0===s.disabled}]]),key:s.id,disabled:!0===s.disabled,onClick:o=>J(e.id,s.id)},{default:c((()=>[i(f(s.name),1)])),_:2},1032,["class","disabled","onClick"])))),128))])),_:2},1024)])),_:2},1024)))),128)),2==T.goodsInfo.spuPayType?(n(),u(t,{key:0,class:"buy-num-box ss-flex ss-col-center ss-row-between ss-m-b-40"},{default:c((()=>[r(t,{class:"label-text"},{default:c((()=>[i("购买金额 (当前可用数字权益:"+f(p(Q)(V.value.integralDO.currentQuota))+")",1)])),_:1}),r(t,{class:"ss-flex ss-col-center"},{default:c((()=>[2==T.goodsInfo.spuPayType?(n(),u(o,{key:0,src:L,style:{width:"30rpx",height:"30rpx"}})):g("",!0),r(j,{modelValue:$.selectedSku.use_points,"onUpdate:modelValue":s[0]||(s[0]=e=>$.selectedSku.use_points=e),class:"uni-input input-points",style:{width:"100rpx","text-align":"center"},type:"number",placeholder:"0",onInput:O,disabled:!$.selectedSku.id},null,8,["modelValue","disabled"])])),_:1})])),_:1})):(n(),u(t,{key:1,class:"buy-num-box ss-flex ss-col-center ss-row-between ss-m-b-40"},{default:c((()=>[r(t,{class:"label-text"},{default:c((()=>[i("购买数量")])),_:1}),r(A,{min:1,max:$.selectedSku.stock,step:1,modelValue:$.selectedSku.goods_num,"onUpdate:modelValue":s[1]||(s[1]=e=>$.selectedSku.goods_num=e),onChange:s[2]||(s[2]=e=>{var s;0!==(s=e)&&$.selectedSku.goods_num!==s&&($.selectedSku.goods_num=s)})},null,8,["max","modelValue"])])),_:1}))])),_:1})])),_:1}),r(t,{class:"modal-footer border-top"},{default:c((()=>[T.goodsInfo.spuType&&1==T.goodsInfo.spuPayType?(n(),u(t,{key:0,class:"buy-box ss-flex ss-col-center ss-flex ss-col-center ss-row-center"},{default:c((()=>[r(b,{class:"ss-reset-button add-btn ui-Shadow-Main",onClick:q},{default:c((()=>[i("加入购物车")])),_:1}),r(b,{class:"ss-reset-button buy-btn ui-Shadow-Main",onClick:W},{default:c((()=>[i("立即购买")])),_:1})])),_:1})):(n(),u(t,{key:1,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[r(b,{class:"ss-reset-button disabled-btn one-buy-btn ui-Shadow-Main",onClick:s[4]||(s[4]=e=>$.showSelectSku=!0)},{default:c((()=>[1==T.goodsInfo.spuPayType||T.goodsInfo.spuType?T.goodsInfo.spuType?(n(),k(m,{key:2},[i(" 立即兑换 ")],64)):(n(),k(m,{key:1},[i(" 立即购买 ")],64)):(n(),k(m,{key:0},[i(" 立即兑换 ")],64))])),_:1})])),_:1}))])),_:1})])),_:1})])),_:1},8,["show"])}}},[["__scopeId","data-v-99b521a1"]]),oe=e=>T({url:"/promotion/activity/list-by-spu-id",method:"GET",params:{spuId:e}}),te=H({__name:"index",setup(l){j((()=>{}));const y=o({goodsId:0,skeletonLoading:!0,goodsInfo:{},showSelectSku:!1,selectedSku:{},showModel:!1,couponInfo:[],showActivityModel:!1,activityInfo:[],activityList:[],linkId:0});function I(e){y.selectedSku=e}function b(e){e.id?E.value?s.$store("cart").add(e):$():s.$helper.toast("请选择商品规格")}function v(e){y.selectedSku.id?s.$router.go("/pages/order/confirm",{data:JSON.stringify({items:[{skuId:e.id,count:e.goods_num}],spuType:y.goodsInfo.spuType,spuPayType:y.goodsInfo.spuPayType,deliveryType:1,pointStatus:!1})}):s.$helper.toast("请选择商品规格")}function P(){y.showActivityModel=!0}const T=e((()=>F.isEmpty(y.goodsInfo)?{}:s.$platform.share.getShareInfo({title:y.goodsInfo.name,image:s.$url.cdn(y.goodsInfo.image),desc:y.goodsInfo.subtitle,params:{page:"2"}},{type:"goods",title:y.goodsInfo.name,introduction:y.goodsInfo.introduction,image:s.$url.cdn(y.goodsInfo.picUrl),price:G(y.goodsInfo.price),original_price:G(y.goodsInfo.maretPrice)})));async function U(e){ee.getSpuDetail(e).then((e=>{0===e.code&&e.data?(y.skeletonLoading=!1,y.goodsInfo=e.data,console.log(y.goodsInfo),E.value&&J.isFavoriteExists(y.goodsId,"goods").then((e=>{0===e.code&&(y.goodsInfo.favorite=e.data)}))):y.goodsInfo=null}))}const E=e((()=>s.$store("user").isLogin));return t((()=>E.value),(e=>{e&&U(y.goodsId)})),C((e=>{if(e.id||e.linkId){if(y.goodsId=e.id||0,!e.id&&e.linkId){console.log("如果只是没有spuId有linkId的话 要去linkId对应的spuId");const s=e.linkId.toString();q.getObjectIdByLinkId(s).then((e=>{0===e.code&&(y.goodsId=e.data,U(y.goodsId),async function(){q.getLinkId(3,y.goodsId).then((e=>{0===e.code&&(y.linkId=e.data.linkId)}))}())})),A("linkId",e.linkId)}else U(y.goodsId);oe(y.goodsId).then((e=>{0===e.code&&e.data.forEach((e=>{[1,2,3].includes(e.type)?y.activityList.push(e):5===e.type?y.activityInfo.push(e):console.log("待实现!优先级不高")}))}))}else y.goodsInfo=null})),(e,s)=>{const o=a(d("s-empty"),M),t=a(d("su-swiper"),O),l=h,j=x,C=S,A=a(d("s-select-sku"),se),$=w,F=a(d("s-layout"),z);return n(),u(C,null,{default:c((()=>[r(F,{onShareAppMessage:T.value,navbar:"goods"},{default:c((()=>[r(N,{modelValue:y.goodsInfo,"onUpdate:modelValue":s[0]||(s[0]=e=>y.goodsInfo=e)},null,8,["modelValue"]),y.skeletonLoading?(n(),u(X,{key:0})):null===y.goodsInfo?(n(),u(o,{key:1,text:"商品不存在或已下架",icon:"/static/soldout-empty.png",showAction:"",actionText:"再逛逛",actionUrl:"/pages/goods/list"})):(n(),k(m,{key:2},[r(C,{class:"detail-swiper-selector"},{default:c((()=>[r(t,{class:"ss-m-b-14",isPreview:"",list:p(W)(y.goodsInfo.sliderPicUrls),otStyle:"tag",imageMode:"widthFix",dotCur:"bg-mask-40",seizeHeight:750},null,8,["list"]),r(C,{class:"title-card detail-card ss-p-y-40 ss-p-x-20"},{default:c((()=>[r(C,{class:"ss-flex ss-row-between ss-col-center ss-m-b-26"},{default:c((()=>[r(C,{class:"price-box ss-flex ss-col-center"},{default:c((()=>[r(C,{class:"price-text ss-m-r-16 ss-flex ss-col-center"},{default:c((()=>[2==y.goodsInfo.spuPayType?(n(),u(l,{key:0,src:L,class:"ss-m-r-10",style:{width:"40rpx",height:"40rpx"}})):(n(),u(j,{key:1},{default:c((()=>[i("¥")])),_:1})),i(" "+f(p(G)(y.selectedSku.price||y.goodsInfo.price)),1)])),_:1}),y.goodsInfo.promotionFee>=0?(n(),u(C,{key:0,class:"origin-price-text"},{default:c((()=>[i(" 数字权益:"+f(p(G)(y.selectedSku.promotionFee||y.goodsInfo.promotionFee)),1)])),_:1})):g("",!0)])),_:1}),r(C,{class:"sales-text"})])),_:1}),r(C,{class:"discounts-box ss-flex ss-row-between ss-m-b-28"},{default:c((()=>[V("div",{class:"tag-content"},[r(C,{class:"tag-box ss-flex"},{default:c((()=>[(n(!0),k(m,null,_(y.activityInfo,(e=>(n(),u(C,{class:"tag ss-m-r-10",key:e.id,onClick:P},{default:c((()=>[i(f(e.name),1)])),_:2},1024)))),128))])),_:1})]),y.couponInfo.length?(n(),u(C,{key:0,class:"get-coupon-box ss-flex ss-col-center ss-m-l-20",onClick:s[1]||(s[1]=e=>y.showModel=!0)},{default:c((()=>[r(C,{class:"discounts-title ss-m-r-8"},{default:c((()=>[i("领券")])),_:1}),r(j,{class:"cicon-forward"})])),_:1})):g("",!0)])),_:1}),r(C,{class:"title-text ss-line-2 ss-m-b-6"},{default:c((()=>[i(f(y.goodsInfo.name),1)])),_:1}),r(C,{class:"subtitle-text ss-line-1"},{default:c((()=>[i(f(y.goodsInfo.introduction),1)])),_:1})])),_:1}),r(C,{class:"detail-cell-card detail-card ss-flex-col"},{default:c((()=>[r(Y,{modelValue:y.selectedSku.goods_sku_text,"onUpdate:modelValue":s[2]||(s[2]=e=>y.selectedSku.goods_sku_text=e),sku:y.selectedSku,onClick:s[3]||(s[3]=e=>y.showSelectSku=!0)},null,8,["modelValue","sku"])])),_:1}),r(A,{goodsInfo:y.goodsInfo,show:y.showSelectSku,onAddCart:b,onBuy:v,onChange:I,onClose:s[4]||(s[4]=e=>y.showSelectSku=!1)},null,8,["goodsInfo","show"])])),_:1}),r(Z,{class:"detail-comment-selector",goodsId:y.goodsId},null,8,["goodsId"]),r(K,{class:"detail-content-selector",content:y.goodsInfo.description},null,8,["content"]),r(R,{modelValue:y.goodsInfo,"onUpdate:modelValue":s[8]||(s[8]=e=>y.goodsInfo=e)},{default:c((()=>[y.goodsInfo.stock>0&&y.goodsInfo.spuType&&1==y.goodsInfo.spuPayType?(n(),u(C,{key:0,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[r($,{class:"ss-reset-button add-btn ui-Shadow-Main",onClick:s[5]||(s[5]=e=>y.showSelectSku=!0)},{default:c((()=>[i(" 加入购物车 ")])),_:1}),r($,{class:"ss-reset-button buy-btn ui-Shadow-Main",onClick:s[6]||(s[6]=e=>y.showSelectSku=!0)},{default:c((()=>[i(" 立即购买 ")])),_:1})])),_:1})):y.goodsInfo.stock>0&&1!=y.goodsInfo.spuPayType||!y.goodsInfo.spuType?(n(),u(C,{key:1,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[r($,{class:"ss-reset-button disabled-btn buy-btn ui-Shadow-Main",onClick:s[7]||(s[7]=e=>y.showSelectSku=!0)},{default:c((()=>[1==y.goodsInfo.spuPayType||y.goodsInfo.spuType?y.goodsInfo.spuType?(n(),k(m,{key:2},[i(" 立即兑换 ")],64)):(n(),k(m,{key:1},[i(" 立即购买 ")],64)):(n(),k(m,{key:0},[i(" 立即兑换 ")],64))])),_:1})])),_:1})):(n(),u(C,{key:2,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[r($,{class:"ss-reset-button disabled-btn",disabled:"",style:{background:"#999999"}},{default:c((()=>[i(" 已售罄 ")])),_:1})])),_:1}))])),_:1},8,["modelValue"])],64))])),_:1},8,["onShareAppMessage"])])),_:1})}}},[["__scopeId","data-v-95bd663c"]]);export{te as default};
|