index.f5c4fb11.js 4.2 KB

1
  1. import{r as g,m as C}from"./index.cc1909d0.js";import{d as y,T as I,a as s,q as p,I as _,j as h,ac as S,ad as j,z as x,x as b,O as v,B as D}from"./vendor.a0144ce9.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */var f="./assets/icon-sell-out.437e8d6c.png",U=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:f});const O="_addGoodsCart_13nlj_1",T="_goodsSection_13nlj_16",A="_sellOut_13nlj_21",G="_sellOutImg_13nlj_32",J="_goodsImg_13nlj_36",P="_goodsPrice_13nlj_43",F="_goodsStore_13nlj_52",L="_title_13nlj_57",V="_radio_13nlj_62";var i={addGoodsCart:O,goodsSection:T,sellOut:A,sellOutImg:G,goodsImg:J,goodsPrice:P,goodsStore:F,title:L,"radio-group":"_radio-group_13nlj_62",radio:V};function w(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!b(t)}var W=y({name:"add-goods-cart",props:{item:{type:Object,default:{}},defaultRadio:{type:Number,default:0},showType:{type:String,default:"cart"},onGetCartCount:{type:Function,default:t=>{}}},data(){return{radio:"",selectItem:{id:"",pic:"",stock:0,price:0,spDataJson:"",skuCode:""},total:1,totalData:{}}},computed:{skuStockList(){const t=this.item.skuStockList||[{id:-1,price:this.item.price,pic:this.item.pic,stock:this.item.stock,spData:null}];t.forEach(a=>{if(a.stock=a.stock-a.lockStock,a.spData){const r=JSON.parse(a.spData);let m="";r.forEach(k=>{m+=`${k.value}`}),a.spDataJson=m}else a.spDataJson="\u9ED8\u8BA4"});let o=0;if(this.defaultRadio){let a=t.findIndex(r=>r.id==this.defaultRadio);o=a>-1?a:0}const{id:e,price:d,pic:l,stock:c,spDataJson:n,skuCode:u}=t[o];return this.getProductAddCartCount(e),this.radio=e,this.selectItem={id:e,price:d,pic:l||this.item.pic,stock:c,spDataJson:n,skuCode:u},t}},methods:{async onAddCart(){const t=this.selectItem,o=this.item,e={price:t.price,productSkuId:t.id,quantity:this.total,productId:o.id,hidden:this.showType==="cart"?0:1};try{let{code:d,data:l}=await g.post("/api-mall-portal/cart/add",{data:e});d===200&&(this.totalData[t.id]=this.total,this.showType==="cart"?(this.onGetCartCount(),this.$nextTick(()=>{setTimeout(()=>{I({icon:"success",message:"\u6DFB\u52A0\u5546\u54C1\u6210\u529F"})},500)})):this.$router.push({path:"/cartConfirm",query:{cartIds:l.id}}))}catch{}},async getProductAddCartCount(t){var o;if(t=t||((o=this.skuStockList.find(e=>e.id==this.radio))==null?void 0:o.id),this.totalData[t]){this.total=this.totalData[t];return}if(!!t)try{let e=await g.get(`/api-mall-portal/product/cart/${t}`);this.totalData[t]=this.total=e.data||1}catch{}}},render(){return s("div",{class:i.addGoodsCart},[s(p,{titleStyle:{paddingLeft:"12px"}},{icon:()=>s("div",{class:i.goodsSection},[s(_,{src:this.selectItem.pic,class:i.goodsImg,fit:"cover"},null),this.selectItem.stock<=0&&s("div",{class:i.sellOut},[s(_,{src:f,fit:"cover",class:i.sellOutImg},null)])]),title:()=>s("div",{class:i.goodsInfo},[s("p",{class:i.goodsPrice},[s("span",null,[h("\uFFE5")]),C(this.selectItem.price)]),s("p",{class:i.goodsStore},[h("\u5E93\u5B58\uFF1A"),this.selectItem.stock])])}),s(p,null,{title:()=>s("div",{class:i.title},[h("\u89C4\u683C")]),label:()=>{let t;return s(S,{class:i["radio-group"],modelValue:this.radio},w(t=this.skuStockList.map(o=>{const e=o.id===this.radio,d=e?"primary":"default";return s(j,{class:i.radio,name:o.id,onClick:()=>{if(this.radio==o.id)return;const{id:l,price:c,pic:n,stock:u,spDataJson:a,skuCode:r}=o;this.radio=o.id,this.selectItem={id:l,price:c,pic:n||this.item.pic,stock:u,spDataJson:a,skuCode:r},this.getProductAddCartCount(l)}},{default:()=>[s(x,{size:"large",plain:e,type:d},{default:()=>[o.spDataJson]})]})}))?t:{default:()=>[t]})}}),s(p,{title:"\u8D2D\u4E70\u6570\u91CF",style:{margin:"12px 0"},border:!1,titleClass:i.title,center:!0},{default:()=>[s(v,{modelValue:this.total,"onUpdate:modelValue":t=>this.total=t,inputWidth:"50px",theme:"round",buttonSize:"24px",max:this.selectItem.stock,min:1,disabled:this.selectItem.stock<=0,integer:!0},null)]}),s("div",{class:["btnGroup"],style:{marginBottom:"8px"}},[s(D,{block:!0,round:!0,type:"primary",text:"\u786E\u5B9A",disabled:this.selectItem.stock<=0,onClick:()=>this.onAddCart()},null)])])}});export{W as A,U as _,f as i};