Files
yshop-pro-uniapp/unpackage/dist/build/h5/assets/good-attr-select.3f64fa6c.js

2 lines
6.1 KiB
JavaScript

import{_ as e}from"./uv-image.b3f882de.js";import{t as a,x as l,a as t,o as s,j as u,w as o,h as c,i as n,I as r,l as i,e as v,F as d,z as f,f as p,Q as m,m as g,k as _,a2 as k,G as S,H as b,B as y,a5 as h}from"./index-90c12cc1.js";import{_ as x}from"./uv-icon.c815b875.js";import{_ as A}from"./space.af0e7a6e.js";import{_ as j}from"./uv-button.8e862d87.js";import{u as w}from"./useInterface.bd4f041a.js";import{P as C}from"./index.188c29d6.js";import{_ as I}from"./_plugin-vue_export-helper.1b428a4d.js";const N=I({__name:"good-attr-select",props:{goodsDetail:{type:Object},skuId:{type:[String,Number]}},emits:["select","close"],setup(I,{expose:N,emit:V}){const z=I,{toast:B}=w(),{goodsDetail:O,skuId:D}=a(z),G=l((()=>O.value.storeInfo)),J=l((()=>O.value.productAttr)),P=l((()=>O.value.productValue)),R=l((()=>F.value?["拼团价","秒杀价","折扣价"][F.value.campaignType-1]:"")),T=t([]),F=t(null);function H(e,a){const l=JSON.parse(JSON.stringify(T.value));l[e]=a;const t=l.filter((e=>e));if(t.length<J.value.length)return!1;const s=t.filter((e=>e));for(const u in P.value)if(u.includes(s)){const e=P.value[u];if((1===e.campaignState?e.campaignStock:e.stock)>0)return!1}return!0}const K=()=>{F.value&&(0===F.value.stock&&0===Q.value||(V("select",{store:F.value,num:Q.value}),L()))},Q=t(1);function U(e,a="plus"){const l=1===e.campaignState?e.campaignStock:e.stock;"plus"===a?Q.value+1>l?Q.value=l:Q.value+=1:Q.value-1<=0?Q.value=1:Q.value-=1}const W=()=>{if(!F.value)return Q.value=0;0===Q.value&&F.value.stock>0&&(Q.value=1),Q.value>F.value.stock&&(Q.value=F.value.stock)},q=t(),E=t("select"),L=()=>{F.value=null,V("close"),q.value.close()};return N({open:(e=1,a="select")=>{E.value=a,Q.value=e||1;const l=J.value.length;T.value=new Array(l).fill(""),function(){const e=P.value;if(D.value)for(const a in e){const l=e[a],t=1===l.campaignState?l.campaignStock:l.stock;if(l.id===D.value&&t>0){T.value=a.split(","),F.value=l;break}}if(T.value.filter((e=>e)).length<=0){const a=Reflect.ownKeys(e);if(a.length>0){let l,t;for(const s of a){const a=e[s];if((1===a.campaignState?a.campaignStock:a.stock)>0){l=a,t=s;break}}l&&(T.value=t.split(","),F.value=l)}}W()}(),q.value.show()},close:L}),(a,l)=>{const t=S(b("uv-image"),e),w=y,I=S(b("uv-icon"),x),N=h,z=S(b("space"),A),O=S(b("uv-button"),j);return s(),u(C,{ref_key:"popupRef",ref:q,showCloseable:!1,onClose:l[6]||(l[6]=e=>V("close"))},{default:o((()=>[c(w,{class:"goodAttrSelect"},{default:o((()=>[F.value?(s(),u(w,{key:0,class:"goodAttrSelect-goods"},{default:o((()=>[c(t,{class:"attr-image",src:F.value.image||n(G).image,width:"150rpx",height:"150rpx"},null,8,["src"]),c(w,{class:"attr-info"},{default:o((()=>[c(w,{class:"name"},{default:o((()=>[r(i(n(G).storeName),1)])),_:1}),c(w,{class:"attr-info-bottom"},{default:o((()=>["singleBuy"!==E.value&&F.value.campaignType?(s(),v(d,{key:1},[c(w,{class:"flex flex-ai__end"},{default:o((()=>[1===F.value.campaignState?(s(),u(w,{key:0,class:"price-name"},{default:o((()=>[r(i(n(R)),1)])),_:1})):f("",!0),c(w,{class:"price primary-color"},{default:o((()=>[r("¥"+i(F.value.campaignPrice),1)])),_:1}),c(w,{class:"old-price"},{default:o((()=>[r("¥"+i(F.value.price),1)])),_:1})])),_:1}),c(w,{class:"stock"},{default:o((()=>[r("库存:"+i(F.value.campaignStock),1)])),_:1})],64)):(s(),v(d,{key:0},[c(w,{class:"price"},{default:o((()=>[r("¥"+i(F.value.price),1)])),_:1}),c(w,{class:"stock"},{default:o((()=>[r("库存:"+i(F.value.stock),1)])),_:1})],64))])),_:1})])),_:1})])),_:1})):(s(),u(w,{key:1,class:"goodAttrSelect-goods"},{default:o((()=>[c(t,{class:"attr-image",src:n(G).image,width:"150rpx",height:"150rpx"},null,8,["src"]),c(w,{class:"attr-info"},{default:o((()=>[c(w,{class:"name"},{default:o((()=>[r(i(n(G).storeName),1)])),_:1}),c(w,{class:"attr-info-bottom"},{default:o((()=>[c(w,{class:"price"},{default:o((()=>[r("¥"+i(n(G).price),1)])),_:1}),c(w,{class:"stock"},{default:o((()=>[r("库存:"+i(n(G).stock),1)])),_:1})])),_:1})])),_:1})])),_:1})),p("div",{class:"line"}),F.value?(s(),u(w,{key:2,class:"goodAttrSelect-attr row"},{default:o((()=>[c(w,{class:"goodAttrSelect-attr-title"},{default:o((()=>[r(" 数量 ")])),_:1}),c(w,{class:"goodAttrSelect-attr-content"},{default:o((()=>[c(w,{class:"cart-num flex flex-ai__center flex-jc__sb",onClick:l[5]||(l[5]=m((()=>{}),["stop"]))},{default:o((()=>[c(w,{class:g(["button",Q.value<=1&&"disabled"]),onClick:l[0]||(l[0]=e=>U(F.value,"minus"))},{default:o((()=>[c(I,{name:"minus",color:"#333",size:"24rpx"})])),_:1},8,["class"]),c(w,{class:"input"},{default:o((()=>[c(N,{type:"number",inputmode:"numeric",modelValue:Q.value,"onUpdate:modelValue":l[1]||(l[1]=e=>Q.value=e),onBlur:l[2]||(l[2]=e=>function(e,a){const l=Number(e.detail.value),t=1===a.campaignState?a.campaignStock:a.stock;Q.value=l<=0?1:l>t?t:l.toString().replace(/^0+/,"")}(e,F.value)),onInput:l[3]||(l[3]=e=>function(e,a){const l=/^0+|[.]*/g;k((()=>{Q.value=e.detail.value.replace(l,"")}))}(e,F.value))},null,8,["modelValue"])])),_:1}),c(w,{class:g(["button",Q.value>=F.value.stock&&"disabled"]),onClick:l[4]||(l[4]=e=>U(F.value,"plus"))},{default:o((()=>[c(I,{name:"plus",color:"#333",size:"24rpx"})])),_:1},8,["class"])])),_:1})])),_:1})])),_:1})):f("",!0),p("div",{class:"line"}),(s(!0),v(d,null,_(n(J),((e,a)=>(s(),u(w,{class:"goodAttrSelect-attr",key:a},{default:o((()=>[c(w,{class:"goodAttrSelect-attr-title"},{default:o((()=>[r(i(e.attrName),1)])),_:2},1024),c(w,{class:"goodAttrSelect-attr-content"},{default:o((()=>[c(z,{wrap:"warp",gap:""},{default:o((()=>[(s(!0),v(d,null,_(e.attrValueArr,((e,l)=>(s(),u(w,{class:g({attr:!0,check:T.value[a]===e,disabled:H(a,e)}),key:l,onClick:l=>((e,a)=>{if(H(e,a))return B({title:"商品抢完啦~看看其他的吧"});F.value=void 0,T.value[e]&&T.value[e]===a?T.value[e]="":(T.value[e]=a,T.value.filter((e=>e)).length===J.value.length&&(F.value=P.value[T.value.join(",")],W()))})(a,e)},{default:o((()=>[r(i(e),1)])),_:2},1032,["class","onClick"])))),128))])),_:2},1024)])),_:2},1024)])),_:2},1024)))),128)),c(w,{class:"goodAttrSelect-action"},{default:o((()=>[c(O,{disabled:!F.value||F.value&&0===F.value.stock||0===Q.value,round:"",block:"",type:"primary",onClick:K},{default:o((()=>[r(" 确定 ")])),_:1},8,["disabled"])])),_:1})])),_:1})])),_:1},512)}}},[["__scopeId","data-v-6155dbfe"]]);export{N as G};