Files
yshop-pro-uniapp/unpackage/dist/build/h5/assets/good-attr-select.827f4d84.js
2024-02-22 18:37:23 +08:00

2 lines
6.1 KiB
JavaScript

import{_ as e}from"./uv-image.cfd78d3c.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-d4baa715.js";import{_ as x}from"./uv-icon.b5ddbe11.js";import{_ as A}from"./space.587a4c0a.js";import{_ as j}from"./uv-button.4742932f.js";import{u as w}from"./useInterface.2c7749ae.js";import{P as C}from"./index.dcf9623e.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((()=>q.value?["拼团价","秒杀价","折扣价"][q.value.campaignType-1]:"")),T=t([]),q=t(null);function F(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 H=()=>{q.value&&(0===q.value.stock&&0===K.value||(V("select",{store:q.value,num:K.value}),L()))},K=t(1);function Q(e,a="plus"){const l=1===e.campaignState?e.campaignStock:e.stock;"plus"===a?K.value+1>l?K.value=l:K.value+=1:K.value-1<=0?K.value=1:K.value-=1}const U=()=>{if(!q.value)return K.value=0;0===K.value&&q.value.stock>0&&(K.value=1),K.value>q.value.stock&&(K.value=q.value.stock)},W=t(),E=t("select"),L=()=>{q.value=null,V("close"),W.value.close()};return N({open:(e=1,a="select")=>{E.value=a,K.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(","),q.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(","),q.value=l)}}U()}(),W.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:W,showCloseable:!1,onClose:l[6]||(l[6]=e=>V("close"))},{default:o((()=>[c(w,{class:"goodAttrSelect"},{default:o((()=>[q.value?(s(),u(w,{key:0,class:"goodAttrSelect-goods"},{default:o((()=>[c(t,{class:"attr-image",src:q.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&&q.value.campaignType?(s(),v(d,{key:1},[c(w,{class:"flex flex-ai__end"},{default:o((()=>[1===q.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(q.value.campaignPrice),1)])),_:1}),c(w,{class:"old-price"},{default:o((()=>[r("¥"+i(q.value.price),1)])),_:1})])),_:1}),c(w,{class:"stock"},{default:o((()=>[r("库存:"+i(q.value.campaignStock),1)])),_:1})],64)):(s(),v(d,{key:0},[c(w,{class:"price"},{default:o((()=>[r("¥"+i(q.value.price),1)])),_:1}),c(w,{class:"stock"},{default:o((()=>[r("库存:"+i(q.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"}),q.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",K.value<=1&&"disabled"]),onClick:l[0]||(l[0]=e=>Q(q.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:K.value,"onUpdate:modelValue":l[1]||(l[1]=e=>K.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;K.value=l<=0?1:l>t?t:l.toString().replace(/^0+/,"")}(e,q.value)),onInput:l[3]||(l[3]=e=>function(e,a){const l=/^0+|[.]*/g;k((()=>{K.value=e.detail.value.replace(l,"")}))}(e,q.value))},null,8,["modelValue"])])),_:1}),c(w,{class:g(["button",K.value>=q.value.stock&&"disabled"]),onClick:l[4]||(l[4]=e=>Q(q.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:F(a,e)}),key:l,onClick:l=>((e,a)=>{if(F(e,a))return B({title:"商品抢完啦~看看其他的吧"});q.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&&(q.value=P.value[T.value.join(",")],U()))})(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:!q.value||q.value&&0===q.value.stock||0===K.value,round:"",block:"",type:"primary",onClick:H},{default:o((()=>[r(" 确定 ")])),_:1},8,["disabled"])])),_:1})])),_:1})])),_:1},512)}}},[["__scopeId","data-v-6155dbfe"]]);export{N as G};