1 |
- import{c as e,s,y as o,W as t,X as l,l as a,m as n,e as d,f as u,w as c,j as i,t as r,u as f,g as p,v as g,C as k,k as y,F as m,r as _,B as I,Y as h,Z as b,x as S,i as x,E as w,G as v,a0 as P,S as T,a1 as C,d as j,o as A,p as $,Q as F,q as V,a2 as M}from"./index-18ca6bdb.js";import{_ as O}from"./s-empty.aecf2401.js";import{_ as U}from"./su-swiper.a75e9646.js";import{_ as E}from"./su-number-box.ba4c1519.js";import{_ as L}from"./phone-international-input.b38560a8.js";import{_ as D}from"./points.c381a8e1.js";import{c as B,d as Q,f as G,e as W,p as q,S as z,g as H,_ as J}from"./s-layout.59a13930.js";import{_ as N}from"./_plugin-vue_export-helper.1b428a4d.js";import{F as X}from"./favorite.00445cb7.js";import{d as Y,a as Z,_ as K,b as R,c as ee,e as se}from"./detail-content-card.4a601d1e.js";import{S as oe}from"./spu.00365168.js";/* empty css */import"./comment-item.84cb17f5.js";import"./uni-rate.356b7f13.js";import"./su-image.0c65d690.js";import"./mp-html.a6f3ca71.js";const te=N({__name:"s-select-sku",props:{goodsInfo:{type:Object,default(){}},show:{type:Boolean,default:!1}},emits:["change","addCart","buy","close"],setup(C,{emit:j}){const A=j,$=C,F=e((()=>s.$store("user").userWallet)),V=o({selectedSku:{},currentPropertyArray:[]}),M=B($.goodsInfo.skus),O=e((()=>{let e=$.goodsInfo.skus;for(let s of e)s.value_id_array=s.properties.map((e=>e.valueId));return e}));function U(){$.goodsInfo.highPrecision?V.selectedSku.goods_num=parseInt(V.selectedSku.use_points/(V.selectedSku.highPrecisionPrice/100)):V.selectedSku.goods_num=parseInt(V.selectedSku.use_points/G(V.selectedSku.price))}async function z(){const{code:e,data:s}=await h.getDuserInfo(),o=parseFloat(q(s.integralDO.currentQuota));console.log(o),V.selectedSku.use_points=parseInt(o),U()}function H(e){const o=e.detail.value;if(console.log(typeof o),""==o)return!1;const t=parseFloat(q(F.value.integralDO.currentQuota));U(),b((()=>{V.selectedSku.use_points=parseInt(o),U()})),o<=0&&(s.$helper.toast("最低使用1积分"),b(t>=1?()=>{V.selectedSku.use_points=1,U()}:()=>{V.selectedSku.use_points=0,U()})),o>t&&(s.$helper.toast("可用积分不足"),b((()=>{V.selectedSku.use_points=parseInt(t),U()})))}function J(){V.selectedSku.id<=0?s.$helper.toast("请选择规格"):V.selectedSku.stock<=0?s.$helper.toast("库存不足"):A("addCart",V.selectedSku)}async function N(){if(2==$.goodsInfo.spuPayType){const{code:e,data:o}=await h.getDuserInfo();if(parseFloat(q(o.integralDO.currentQuota))<V.selectedSku.use_points)return s.$helper.toast("可用积分不足"),!1;if(V.selectedSku.goods_num<1||!V.selectedSku.use_points)return void s.$helper.toast("输入金额少于可购买数量");V.selectedSku.goods_num>V.selectedSku.stock&&(V.selectedSku.use_points=(V.selectedSku.stock*G(V.selectedSku.price)).toFixed(2),V.selectedSku.goods_num=V.selectedSku.stock)}V.selectedSku.id<=0?s.$helper.toast("请选择规格"):V.selectedSku.stock<=0?s.$helper.toast("库存不足"):(A("buy",V.selectedSku),V.selectedSku.use_points=0)}function X(e=!1,s=0,o=0){let t=[];if(e)for(let n of O.value)n.stock<=0||n.value_id_array.indexOf(o)>=0&&t.push(n);else t=Y();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 V.currentPropertyArray.forEach((e=>{if(""!==e.toString())return;let s=l.indexOf(e);s>=0&&l.splice(s,1)}));let a=[];e?a=[s]:V.currentPropertyArray.forEach(((e,s)=>{""!==e&&a.push(s)}));for(let n in M)if(!(a.indexOf(M[n].id)>=0))for(let e in M[n].values)M[n].values[e].disabled=l.indexOf(M[n].values[e].id)<0}function Y(){let e=[];for(let s of O.value){if(s.stock<=0)continue;let o=!0;V.currentPropertyArray.forEach((e=>{""!==e.toString()&&s.value_id_array.indexOf(e)<0&&(o=!1)})),o&&e.push(s)}return e}function Z(e,s){V.selectedSku.use_points=0;let o=!0;void 0!==V.currentPropertyArray[e]&&V.currentPropertyArray[e]===s?(o=!1,V.currentPropertyArray.splice(e,1,"")):V.currentPropertyArray[e]=s;let t=[];V.currentPropertyArray.forEach((e=>{""!==e&&t.push(e)}));let l=Y();t.length===M.length&&l.length?(l[0].goods_num=V.selectedSku.goods_num||1,V.selectedSku=l[0]):V.selectedSku={},X(o,e,s)}return t((()=>V.selectedSku),(e=>{A("change",e)}),{immediate:!0,deep:!0}),X(!1),l((()=>{1==M.length&&1==M[0].values.length&&Z(0,0)})),(e,s)=>{const o=S,t=x,l=w,h=v,b=P,j=a(n("su-number-box"),E),$=T,O=a(n("su-popup"),L);return d(),u(O,{show:C.show,round:"10",onClose:s[4]||(s[4]=e=>A("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:V.selectedSku.picUrl||C.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((()=>[r(f(C.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((()=>[2==C.goodsInfo.spuPayType?(d(),u(o,{key:0,src:D,style:{width:"30rpx",height:"30rpx"}})):p("",!0),C.goodsInfo.highPrecision?(d(),u(l,{key:1},{default:c((()=>[r(f(g(Q)(V.selectedSku.highPrecisionPrice||C.goodsInfo.highPrecisionPrice)),1)])),_:1})):(d(),u(l,{key:2},{default:c((()=>[r(f(g(G)(V.selectedSku.price||C.goodsInfo.price)),1)])),_:1}))])),_:1}),V.selectedSku.promotionFee>=0||C.goodsInfo.promotionFee>=0?(d(),u(t,{key:0,class:"origin-price-text ss-m-l-10"},{default:c((()=>[r(" 积分:"+f(g(G)(V.selectedSku.promotionFee||C.goodsInfo.promotionFee)),1)])),_:1})):p("",!0)])),_:1}),i(t,{class:"stock-text ss-m-l-20"},{default:c((()=>[r(f(g(W)("exact",V.selectedSku.stock||C.goodsInfo.stock)),1)])),_:1})])),_:1})])),_:1})])),_:1}),i(t,{class:"modal-content ss-flex-1"},{default:c((()=>[i($,{"scroll-y":"true",class:"modal-content-scroll",onTouchmove:s[3]||(s[3]=k((()=>{}),["stop"]))},{default:c((()=>[(d(!0),y(m,null,_(g(M),(e=>(d(),u(t,{class:"sku-item ss-m-b-20",key:e.id},{default:c((()=>[i(t,{class:"label-text ss-m-b-20"},{default:c((()=>[r(f(e.name),1)])),_:2},1024),i(t,{class:"ss-flex ss-col-center ss-flex-wrap"},{default:c((()=>[(d(!0),y(m,null,_(e.values,(s=>(d(),u(h,{class:I(["ss-reset-button spec-btn",[{"ui-BG-Main-Gradient":V.currentPropertyArray[e.id]===s.id},{"disabled-btn":!0===s.disabled}]]),key:s.id,disabled:!0===s.disabled,onClick:o=>Z(e.id,s.id)},{default:c((()=>[r(f(s.name),1)])),_:2},1032,["class","disabled","onClick"])))),128))])),_:2},1024)])),_:2},1024)))),128)),2==C.goodsInfo.spuPayType?(d(),u(t,{key:0,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((()=>[r("购买金额 (当前可用积分:"+f(g(q)(F.value.integralDO.currentQuota))+")",1)])),_:1}),i(t,{class:"ss-flex ss-col-center"},{default:c((()=>[i(h,{class:"ss-reset-button all-btn",onClick:z},{default:c((()=>[r("全部")])),_:1}),2==C.goodsInfo.spuPayType?(d(),u(o,{key:0,src:D,style:{width:"30rpx",height:"30rpx"}})):p("",!0),i(b,{modelValue:V.selectedSku.use_points,"onUpdate:modelValue":s[0]||(s[0]=e=>V.selectedSku.use_points=e),class:"uni-input input-points",style:{width:"100rpx","text-align":"center"},type:"number",placeholder:"0",onInput:H,disabled:!V.selectedSku.id},null,8,["modelValue","disabled"])])),_:1})])),_:1})):(d(),u(t,{key:1,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((()=>[r("购买数量")])),_:1}),i(j,{min:1,max:V.selectedSku.stock,step:1,modelValue:V.selectedSku.goods_num,"onUpdate:modelValue":s[1]||(s[1]=e=>V.selectedSku.goods_num=e),onChange:s[2]||(s[2]=e=>{var s;0!==(s=e)&&V.selectedSku.goods_num!==s&&(V.selectedSku.goods_num=s)})},null,8,["max","modelValue"])])),_:1}))])),_:1})])),_:1}),i(t,{class:"modal-footer border-top"},{default:c((()=>[C.goodsInfo.spuType&&1==C.goodsInfo.spuPayType?(d(),u(t,{key:0,class:"buy-box ss-flex ss-col-center ss-flex ss-col-center ss-row-center"},{default:c((()=>[i(h,{class:"ss-reset-button add-btn ui-Shadow-Main",onClick:J},{default:c((()=>[r("加入购物车")])),_:1}),i(h,{class:"ss-reset-button buy-btn ui-Shadow-Main",onClick:N},{default:c((()=>[r("立即购买")])),_:1})])),_:1})):(d(),u(t,{key:1,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[i(h,{class:"ss-reset-button disabled-btn one-buy-btn ui-Shadow-Main",onClick:N},{default:c((()=>[1==C.goodsInfo.spuPayType||C.goodsInfo.spuType?C.goodsInfo.spuType?(d(),y(m,{key:2},[r(" 立即兑换 ")],64)):(d(),y(m,{key:1},[r(" 立即购买 ")],64)):(d(),y(m,{key:0},[r(" 立即兑换 ")],64))])),_:1})])),_:1}))])),_:1})])),_:1})])),_:1},8,["show"])}}},[["__scopeId","data-v-ce78878e"]]),le=e=>C({url:"/promotion/activity/list-by-spu-id",method:"GET",params:{spuId:e}}),ae=N({__name:"index",setup(l){j((()=>{}));const k=o({goodsId:0,skeletonLoading:!0,goodsInfo:{},showSelectSku:!1,selectedSku:{},showModel:!1,couponInfo:[],showActivityModel:!1,activityInfo:[],activityList:[],linkId:0});function I(e){k.selectedSku=e}function h(e){e.id?E.value?s.$store("cart").add(e):V():s.$helper.toast("请选择商品规格")}function b(e){k.selectedSku.id?s.$router.go("/pages/order/confirm",{data:JSON.stringify({items:[{skuId:e.id,count:e.goods_num}],spuType:k.goodsInfo.spuType,spuPayType:k.goodsInfo.spuPayType,highPrecision:k.goodsInfo.highPrecision,deliveryType:1,pointStatus:!1})}):s.$helper.toast("请选择商品规格")}function P(){k.showActivityModel=!0}const T=e((()=>M.isEmpty(k.goodsInfo)?{}:s.$platform.share.getShareInfo({title:k.goodsInfo.name,image:s.$url.cdn(k.goodsInfo.image),desc:k.goodsInfo.subtitle,params:{page:"2"}},{type:"goods",title:k.goodsInfo.name,introduction:k.goodsInfo.introduction,image:s.$url.cdn(k.goodsInfo.picUrl),price:G(k.goodsInfo.price),original_price:G(k.goodsInfo.maretPrice)})));async function C(e){oe.getSpuDetail(e).then((e=>{0===e.code&&e.data?(k.skeletonLoading=!1,k.goodsInfo=e.data,console.log(k.goodsInfo),E.value&&X.isFavoriteExists(k.goodsId,"goods").then((e=>{0===e.code&&(k.goodsInfo.favorite=e.data)}))):k.goodsInfo=null}))}const E=e((()=>s.$store("user").isLogin));return t((()=>E.value),(e=>{e&&C(k.goodsId)})),A((e=>{if(e.id||e.linkId){if(k.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&&(k.goodsId=e.data,C(k.goodsId),async function(){z.getLinkId(3,k.goodsId).then((e=>{0===e.code&&(k.linkId=e.data.linkId)}))}())})),$("linkId",e.linkId)}else C(k.goodsId);le(k.goodsId).then((e=>{0===e.code&&e.data.forEach((e=>{[1,2,3].includes(e.type)?k.activityList.push(e):5===e.type?k.activityInfo.push(e):console.log("待实现!优先级不高")}))}))}else k.goodsInfo=null})),(e,s)=>{const o=a(n("s-empty"),O),t=a(n("su-swiper"),U),l=S,C=w,j=x,A=a(n("s-select-sku"),te),$=v,V=a(n("s-layout"),J);return d(),u(j,null,{default:c((()=>[i(V,{onShareAppMessage:T.value,navbar:"goods"},{default:c((()=>[i(Y,{modelValue:k.goodsInfo,"onUpdate:modelValue":s[0]||(s[0]=e=>k.goodsInfo=e)},null,8,["modelValue"]),k.skeletonLoading?(d(),u(Z,{key:0})):null===k.goodsInfo?(d(),u(o,{key:1,text:"商品不存在或已下架",icon:"/static/soldout-empty.png",showAction:"",actionText:"再逛逛",actionUrl:"/pages/goods/list"})):(d(),y(m,{key:2},[i(j,{class:"detail-swiper-selector"},{default:c((()=>[i(t,{class:"ss-m-b-14",isPreview:"",list:g(H)(k.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:c((()=>[i(j,{class:"ss-flex ss-row-between ss-col-center ss-m-b-26"},{default:c((()=>[i(j,{class:"price-box ss-flex ss-col-center"},{default:c((()=>[i(j,{class:"price-text ss-m-r-16 ss-flex ss-col-center"},{default:c((()=>[2==k.goodsInfo.spuPayType?(d(),u(l,{key:0,src:D,class:"ss-m-r-10",style:{width:"40rpx",height:"40rpx"}})):(d(),u(C,{key:1},{default:c((()=>[r("¥")])),_:1})),k.goodsInfo.highPrecision?(d(),u(C,{key:2},{default:c((()=>[r(f(g(Q)(k.selectedSku.highPrecisionPrice||k.goodsInfo.highPrecisionPrice)),1)])),_:1})):(d(),u(C,{key:3},{default:c((()=>[r(f(g(G)(k.selectedSku.price||k.goodsInfo.price)),1)])),_:1}))])),_:1}),k.goodsInfo.promotionFee>=0?(d(),u(j,{key:0,class:"origin-price-text"},{default:c((()=>[r(" 积分:"+f(g(G)(k.selectedSku.promotionFee||k.goodsInfo.promotionFee)),1)])),_:1})):p("",!0)])),_:1}),i(j,{class:"sales-text"})])),_:1}),i(j,{class:"discounts-box ss-flex ss-row-between ss-m-b-28"},{default:c((()=>[F("div",{class:"tag-content"},[i(j,{class:"tag-box ss-flex"},{default:c((()=>[(d(!0),y(m,null,_(k.activityInfo,(e=>(d(),u(j,{class:"tag ss-m-r-10",key:e.id,onClick:P},{default:c((()=>[r(f(e.name),1)])),_:2},1024)))),128))])),_:1})]),k.couponInfo.length?(d(),u(j,{key:0,class:"get-coupon-box ss-flex ss-col-center ss-m-l-20",onClick:s[1]||(s[1]=e=>k.showModel=!0)},{default:c((()=>[i(j,{class:"discounts-title ss-m-r-8"},{default:c((()=>[r("领券")])),_:1}),i(C,{class:"cicon-forward"})])),_:1})):p("",!0)])),_:1}),i(j,{class:"title-text ss-line-2 ss-m-b-6"},{default:c((()=>[r(f(k.goodsInfo.name),1)])),_:1}),i(j,{class:"subtitle-text ss-line-1"},{default:c((()=>[r(f(k.goodsInfo.introduction),1)])),_:1})])),_:1}),i(j,{class:"detail-cell-card detail-card ss-flex-col"},{default:c((()=>[i(K,{modelValue:k.selectedSku.goods_sku_text,"onUpdate:modelValue":s[2]||(s[2]=e=>k.selectedSku.goods_sku_text=e),sku:k.selectedSku,onClick:s[3]||(s[3]=e=>k.showSelectSku=!0)},null,8,["modelValue","sku"])])),_:1}),i(A,{goodsInfo:k.goodsInfo,show:k.showSelectSku,onAddCart:h,onBuy:b,onChange:I,onClose:s[4]||(s[4]=e=>k.showSelectSku=!1)},null,8,["goodsInfo","show"])])),_:1}),i(R,{class:"detail-comment-selector",goodsId:k.goodsId},null,8,["goodsId"]),i(ee,{class:"detail-content-selector",content:k.goodsInfo.description},null,8,["content"]),i(se,{modelValue:k.goodsInfo,"onUpdate:modelValue":s[8]||(s[8]=e=>k.goodsInfo=e)},{default:c((()=>[k.goodsInfo.stock>0&&k.goodsInfo.spuType&&1==k.goodsInfo.spuPayType?(d(),u(j,{key:0,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[i($,{class:"ss-reset-button add-btn ui-Shadow-Main",onClick:s[5]||(s[5]=e=>k.showSelectSku=!0)},{default:c((()=>[r(" 加入购物车 ")])),_:1}),i($,{class:"ss-reset-button buy-btn ui-Shadow-Main",onClick:s[6]||(s[6]=e=>k.showSelectSku=!0)},{default:c((()=>[r(" 立即购买 ")])),_:1})])),_:1})):k.goodsInfo.stock>0&&1!=k.goodsInfo.spuPayType||!k.goodsInfo.spuType?(d(),u(j,{key:1,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[i($,{class:"ss-reset-button disabled-btn buy-btn ui-Shadow-Main",onClick:s[7]||(s[7]=e=>k.showSelectSku=!0)},{default:c((()=>[1==k.goodsInfo.spuPayType||k.goodsInfo.spuType?k.goodsInfo.spuType?(d(),y(m,{key:2},[r(" 立即兑换 ")],64)):(d(),y(m,{key:1},[r(" 立即购买 ")],64)):(d(),y(m,{key:0},[r(" 立即兑换 ")],64))])),_:1})])),_:1})):(d(),u(j,{key:2,class:"buy-box ss-flex ss-col-center ss-p-r-20"},{default:c((()=>[i($,{class:"ss-reset-button disabled-btn",disabled:"",style:{background:"#999999"}},{default:c((()=>[r(" 已售罄 ")])),_:1})])),_:1}))])),_:1},8,["modelValue"])],64))])),_:1},8,["onShareAppMessage"])])),_:1})}}},[["__scopeId","data-v-3dad46b1"]]);export{ae as default};
|