2 lines
6.1 KiB
JavaScript
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
|