u-select.D1byBxM2.js 5.6 KB

1
  1. import{an as e,as as l,b as a,d as t,r as u,c as s,$ as o,w as n,a as r,o as i,i as c,n as d,e as m,u as v,f,g as p,k as y,p as _,t as h,l as b,br as x,h as g,j as A,bs as k,F as N,O as V,aw as C,_ as S}from"./index-CU9Dsx61.js";const{t:I}=e(),B=S(t({name:"u-select",options:{addGlobalClass:!0,virtualHost:!0,styleIsolation:"shared"},props:{...a,list:{type:Array,default:()=>[]},border:{type:Boolean,default:!0},modelValue:{type:Boolean,default:!1},cancelColor:{type:String,default:()=>l("contentColor")},confirmColor:{type:String,default:()=>l("primary")},zIndex:{type:[String,Number],default:0},safeAreaInsetBottom:{type:Boolean,default:!1},maskCloseAble:{type:Boolean,default:!0},defaultValue:{type:Array,default:()=>[0]},preserveSelection:{type:Boolean,default:!0},mode:{type:String,default:"single-column"},valueName:{type:String,default:"value"},labelName:{type:String,default:"label"},childName:{type:String,default:"children"},title:{type:String,default:""},cancelText:{type:String,default:()=>I("uSelect.cancelText")},confirmText:{type:String,default:()=>I("uSelect.confirmText")}},emits:["update:modelValue","confirm","cancel","click"],setup(e,{emit:l}){const a=e,t=l,S=u([0]),I=u([]),B=u(!1),T=u(a.defaultValue&&a.defaultValue.length?a.defaultValue.slice():null),w=u([]),j=u([]),z=u(0),P=u(!1),F=s((()=>a.zIndex?a.zIndex:o.zIndex.popup)),G=s({get:()=>a.modelValue,set:e=>t("update:modelValue",e)});function H(){}function O(){}function U(e){let l=-1;const t=e.detail.value;if(w.value=[],S.value=t,"mutil-column-auto"==a.mode){j.value.map(((e,a)=>{e!=t[a]&&(l=a)}));for(let e=l+1;e<z.value;e++){const u=I.value[e-1],s=e-1==l?t[l]:0;I.value[e]=Array.isArray(u)&&u[s]&&"object"==typeof u[s]?u[s][a.childName]:[],S.value[e]=0}t.map(((e,l)=>{let u=I.value[l][t[l]],s={value:u?u[a.valueName]:null,label:u?u[a.labelName]:null};u&&void 0!==u.extra&&(s.extra=u.extra),w.value.push(s)})),j.value=[...t]}else if("single-column"==a.mode){let e=I.value[0][t[0]],l={value:e?e[a.valueName]:null,label:e?e[a.labelName]:null};e&&void 0!==e.extra&&(l.extra=e.extra),w.value.push(l)}else"mutil-column"==a.mode&&t.map(((e,l)=>{let u=I.value[l][t[l]],s={value:u?u[a.valueName]:null,label:u?u[a.labelName]:null};u&&void 0!==u.extra&&(s.extra=u.extra),w.value.push(s)}))}function $(){t("update:modelValue",!1)}function q(e=null){e&&t(e,w.value),"confirm"===e&&(T.value=S.value?S.value.slice():null),$()}function D(e){return Array.isArray(e)&&e.length>0&&Array.isArray(e[0])}return n((()=>a.modelValue),(async e=>{e?(await C(),function(){if("single-column"==a.mode)z.value=1;else if("mutil-column"==a.mode)z.value=a.list.length;else if("mutil-column-auto"==a.mode){let e=1,l=a.list;for(;Array.isArray(l)&&l[0]&&"object"==typeof l[0]&&a.childName in l[0];)l=l[0][a.childName],e++;z.value=e}}(),function(){let e=null;e=a.preserveSelection?T.value&&T.value.length?T.value:a.defaultValue:a.defaultValue&&a.defaultValue.length?a.defaultValue:T.value,S.value=e&&e.length==z.value?e.slice():Array(z.value).fill(0),j.value=[...S.value]}(),function(){let e=[];if(w.value=[],"mutil-column-auto"==a.mode){let l=a.list[S.value.length?S.value[0]:0];for(let t=0;t<z.value;t++)0==t?(e[t]=D(a.list)?a.list[t]||[]:a.list,l=l&&"object"==typeof l?l[a.childName]:[]):(e[t]=Array.isArray(l)?l:[],l=Array.isArray(l)&&l[S.value[t]]&&"object"==typeof l[S.value[t]]?l[S.value[t]][a.childName]:[])}else"single-column"==a.mode?e[0]=Array.isArray(a.list)&&!D(a.list)?a.list:[]:"mutil-column"==a.mode&&(e=D(a.list)?a.list:[a.list]);I.value=e}(),w.value=[],function(){for(let e=0;e<z.value;e++){const l=I.value[e][S.value[e]];let t={value:l?l[a.valueName]:null,label:l?l[a.labelName]:null};l&&void 0!==l.extra&&(t.extra=l.extra),w.value.push(t)}}(),B.value=!0):B.value=!1}),{immediate:!0}),(e,l)=>{const a=c,t=k,u=x,s=V;return i(),r(a,{class:m(["u-select",e.customClass]),style:d(v(o).toStyle(e.customStyle))},{default:f((()=>[p(s,{maskCloseAble:e.maskCloseAble,mode:"bottom",popup:!1,modelValue:G.value,"onUpdate:modelValue":l[4]||(l[4]=e=>G.value=e),length:"auto",safeAreaInsetBottom:e.safeAreaInsetBottom,onClose:$,"z-index":F.value},{default:f((()=>[p(a,{class:"u-select"},{default:f((()=>[p(a,{class:"u-select__header",onTouchmove:l[3]||(l[3]=y((()=>{}),["stop","prevent"]))},{default:f((()=>[p(a,{class:"u-select__header__cancel u-select__header__btn",style:d({color:e.cancelColor}),"hover-class":"u-hover-class","hover-stay-time":150,onClick:l[0]||(l[0]=e=>q("cancel"))},{default:f((()=>[_(h(e.cancelText),1)])),_:1},8,["style"]),p(a,{class:"u-select__header__title u-line-1"},{default:f((()=>[_(h(e.title),1)])),_:1}),p(a,{class:"u-select__header__confirm u-select__header__btn",style:d({color:P.value?e.cancelColor:e.confirmColor}),"hover-class":"u-hover-class","hover-stay-time":150,onTouchmove:l[1]||(l[1]=y((()=>{}),["stop"])),onClick:l[2]||(l[2]=y((e=>q("confirm")),["stop"]))},{default:f((()=>[_(h(e.confirmText),1)])),_:1},8,["style"])])),_:1}),p(a,{class:"u-select__body"},{default:f((()=>[e.modelValue&&B.value?(i(),r(u,{key:0,value:S.value,class:"u-select__body__picker-view","mask-class":"u-picker-view-mask","indicator-class":"u-picker-view-indicator",onPickstart:H,onPickend:O,onChange:U},{default:f((()=>[(i(!0),g(N,null,A(I.value,((l,u)=>(i(),r(t,{key:u},{default:f((()=>[(i(!0),g(N,null,A(l,((l,t)=>(i(),r(a,{class:"u-select__body__picker-view__item",key:t},{default:f((()=>[p(a,{class:"u-line-1"},{default:f((()=>[_(h(l[e.labelName]),1)])),_:2},1024)])),_:2},1024)))),128))])),_:2},1024)))),128))])),_:1},8,["value"])):b("",!0)])),_:1})])),_:1})])),_:1},8,["maskCloseAble","modelValue","safeAreaInsetBottom","z-index"])])),_:1},8,["class","style"])}}}),[["__scopeId","data-v-5691fef2"]]);export{B as _};