1 |
- import{C as e,c as s,a2 as o,a1 as t,b as l,d as r,o as c,e as a,w as d,i as u,u as n,s as i,y as f,z as k,k as _,j as p,f as m,F as g,h as S,G as h,l as b,m as x,B as y,S as P}from"./index-520dfaee.js";import{_ as w}from"./su-number-box.f5462364.js";import{_ as I}from"./s-layout.5146c957.js";import{d as A}from"./useGoods.7c6b9280.js";import{_ as C}from"./_plugin-vue_export-helper.1b428a4d.js";const v=C({__name:"s-select-sku",props:{goodsInfo:{type:Object,default(){}},show:{type:Boolean,default:!1},isScore:{type:Boolean,default:!1}},emits:["change","addCart","buy","close"],setup(C,{emit:v}){const j=C,O=e({selectedSkuPrice:{},currentSkuArray:[]});j.goodsInfo.is_sku||(O.selectedSkuPrice=j.goodsInfo.sku_prices[0]);const E=j.goodsInfo.skus,$=s((()=>{let e=j.goodsInfo.sku_prices;return j.goodsInfo.is_sku&&e.forEach((e=>{e.goods_sku_id_arr=e.goods_sku_ids.split(",")})),e}));o((()=>O.selectedSkuPrice),(e=>{v("change",e)}),{immediate:!0,deep:!0});const B=s((()=>{let e,s;return t.isEmpty(O.selectedSkuPrice)?(e=j.goodsInfo.price[0],s=j.goodsInfo.score||0):(e=O.selectedSkuPrice.price,s=O.selectedSkuPrice.score||0),{price:e,score:s}}));function G(){O.selectedSkuPrice.goods_id?O.selectedSkuPrice.stock<=0?i.$helper.toast("库存不足"):v("addCart",O.selectedSkuPrice):i.$helper.toast("请选择规格")}function M(){O.selectedSkuPrice.goods_id?O.selectedSkuPrice.stock<=0?i.$helper.toast("库存不足"):v("buy",O.selectedSkuPrice):i.$helper.toast("请选择规格")}function V(e=!1,s=0,o=0){let t=[];if(e)for(let c of $.value)c.stock<=0||c.goods_sku_id_arr.indexOf(o.toString())>=0&&t.push(c);else t=F();let l=[];for(let c of t)l=l.concat(c.goods_sku_id_arr);if(l=Array.from(new Set(l)),e){let e=l.indexOf(o.toString());l.splice(e,1)}else O.currentSkuArray.forEach((e=>{if(""!=e.toString()){let s=l.indexOf(e.toString());s>=0&&l.splice(s,1)}}));let r=[];e?r=[s]:O.currentSkuArray.forEach(((e,s)=>{""!=e&&r.push(s)}));for(let c in E)if(!(r.indexOf(E[c].id)>=0))for(let e in E[c].children)l.indexOf(E[c].children[e].id.toString())>=0?E[c].children[e].disabled=!1:E[c].children[e].disabled=!0}function F(){let e=[];for(let o of $.value)if(!(o.stock<=0)){var s=!0;O.currentSkuArray.forEach((e=>{""!=e.toString()&&o.goods_sku_id_arr.indexOf(e.toString())<0&&(s=!1)})),s&&e.push(o)}return e}return V(!1),(e,s)=>{const o=b,t=x,j=y,$=l(r("su-number-box"),w),z=P,T=l(r("su-popup"),I);return c(),a(T,{show:C.show,round:"10",onClose:s[3]||(s[3]=e=>v("close"))},{default:d((()=>[u(t,{class:"ss-modal-box bg-white ss-flex-col"},{default:d((()=>[u(t,{class:"modal-header ss-flex ss-col-center"},{default:d((()=>[u(t,{class:"header-left ss-m-r-30"},{default:d((()=>[u(o,{class:"sku-image",src:n(i).$url.cdn(O.selectedSkuPrice.image||C.goodsInfo.image),mode:"aspectFill"},null,8,["src"])])),_:1}),u(t,{class:"header-right ss-flex-col ss-row-between ss-flex-1"},{default:d((()=>[u(t,{class:"goods-title ss-line-2"},{default:d((()=>[f(k(C.goodsInfo.title),1)])),_:1}),u(t,{class:"header-right-bottom ss-flex ss-col-center ss-row-between"},{default:d((()=>[u(t,{class:"ss-flex"},{default:d((()=>[n(B).price>0?(c(),a(t,{key:0,class:"price-text"},{default:d((()=>[f(k(n(B).price),1)])),_:1})):_("",!0),u(t,{class:"ss-flex"},{default:d((()=>[n(B).price>0&&n(B).score>0?(c(),a(t,{key:0,class:"score-text ss-m-l-4"},{default:d((()=>[f("+")])),_:1})):_("",!0),n(B).score>0?(c(),a(o,{key:1,src:n(i).$url.static("/assets/addons/shopro/uniapp/goods/score1.svg"),class:"score-img"},null,8,["src"])):_("",!0),n(B).score>0?(c(),a(t,{key:2,class:"score-text"},{default:d((()=>[f(k(n(B).score),1)])),_:1})):_("",!0)])),_:1})])),_:1}),u(t,{class:"stock-text ss-m-l-20"},{default:d((()=>[f(k(O.selectedSkuPrice.stock?n(A)(C.goodsInfo.stock_show_type,O.selectedSkuPrice.stock):n(A)(C.goodsInfo.stock_show_type,C.goodsInfo.stock)),1)])),_:1})])),_:1})])),_:1})])),_:1}),u(t,{class:"modal-content ss-flex-1"},{default:d((()=>[u(z,{"scroll-y":"true",class:"modal-content-scroll",onTouchmove:s[2]||(s[2]=p((()=>{}),["stop"]))},{default:d((()=>[(c(!0),m(g,null,S(C.goodsInfo.skus,(e=>(c(),a(t,{class:"sku-item ss-m-b-20",key:e.id},{default:d((()=>[u(t,{class:"label-text ss-m-b-20"},{default:d((()=>[f(k(e.name),1)])),_:2},1024),u(t,{class:"ss-flex ss-col-center ss-flex-wrap"},{default:d((()=>[(c(!0),m(g,null,S(e.children,(e=>(c(),a(j,{class:h(["ss-reset-button spec-btn",[{"ui-BG-Main-Gradient":O.currentSkuArray[e.parent_id]==e.id},{"disabled-btn":1==e.disabled}]]),key:e.id,disabled:1==e.disabled,onClick:s=>function(e,s){let o=!0;null!=O.currentSkuArray[e]&&O.currentSkuArray[e]==s?(o=!1,O.currentSkuArray.splice(e,1,"")):O.currentSkuArray[e]=s;let t=[];O.currentSkuArray.forEach((e=>{""!=e&&t.push(e)}));let l=F();t.length==E.length&&l.length?(l[0].goods_num=O.selectedSkuPrice.goods_num||1,O.selectedSkuPrice=l[0]):O.selectedSkuPrice={},V(o,e,s)}(e.parent_id,e.id)},{default:d((()=>[f(k(e.name),1)])),_:2},1032,["class","disabled","onClick"])))),128))])),_:2},1024)])),_:2},1024)))),128)),u(t,{class:"buy-num-box ss-flex ss-col-center ss-row-between ss-m-b-40"},{default:d((()=>[u(t,{class:"label-text"},{default:d((()=>[f("购买数量")])),_:1}),u($,{min:1,max:O.selectedSkuPrice.stock,step:1,modelValue:O.selectedSkuPrice.goods_num,"onUpdate:modelValue":s[0]||(s[0]=e=>O.selectedSkuPrice.goods_num=e),onChange:s[1]||(s[1]=e=>{var s;0!==(s=e)&&O.selectedSkuPrice.goods_num!==s&&(O.selectedSkuPrice.goods_num=s)})},null,8,["max","modelValue"])])),_:1})])),_:1})])),_:1}),u(t,{class:"modal-footer border-top"},{default:d((()=>[C.isScore?(c(),a(t,{key:0,class:"buy-box ss-flex ss-col-center ss-flex ss-col-center ss-row-center"},{default:d((()=>[u(j,{class:"ss-reset-button score-btn ui-Shadow-Main",onClick:M},{default:d((()=>[f("立即兑换")])),_:1})])),_:1})):(c(),a(t,{key:1,class:"buy-box ss-flex ss-col-center ss-flex ss-col-center ss-row-center"},{default:d((()=>[u(j,{class:"ss-reset-button add-btn ui-Shadow-Main",onClick:G},{default:d((()=>[f("加入购物车")])),_:1}),u(j,{class:"ss-reset-button buy-btn ui-Shadow-Main",onClick:M},{default:d((()=>[f("立即购买")])),_:1})])),_:1}))])),_:1})])),_:1})])),_:1},8,["show"])}}},[["__scopeId","data-v-664032a3"]]);export{v as _};
|