You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
3.9 KiB
2 lines
3.9 KiB
import{p as _,P as $,s as K}from"./index-105558c7.js";import{e as Y,Z as L,a5 as w,X as R,c as E,a6 as O,a7 as V,p as N,w as S,A as D}from"./index-f3701452.js";import{d as b,r as C,f as I,O as k,b as U,aP as Z}from"./index-f4658ae7.js";const j=Y({},_,{modelValue:L(),filter:Function,formatter:{type:Function,default:(e,o)=>o}}),B=Object.keys(_);function X(e,o){if(e<0)return[];const u=Array(e);let a=-1;for(;++a<e;)u[a]=o(a);return u}const q=(e,o)=>32-new Date(e,o-1,32).getDate(),M=(e,o,u,a,m,h)=>{const d=X(o-e+1,x=>{const y=w(e+x);return a(u,{text:y,value:y})});return m?m(u,d,h):d},G=(e,o)=>e.map((u,a)=>{const m=o[a];if(m.length){const h=+m[0].value,d=+m[m.length-1].value;return w(R(+u,h,d))}return u}),A=new Date().getFullYear(),[z]=E("date-picker"),J=Y({},j,{columnsType:{type:Array,default:()=>["year","month","day"]},minDate:{type:Date,default:()=>new Date(A-10,0,1),validator:O},maxDate:{type:Date,default:()=>new Date(A+10,11,31),validator:O}});var Q=b({name:z,props:J,emits:["confirm","cancel","change","update:modelValue"],setup(e,{emit:o,slots:u}){const a=C(e.modelValue),m=C(!1),h=()=>{const t=e.minDate.getFullYear(),c=e.maxDate.getFullYear();return M(t,c,"year",e.formatter,e.filter)},d=t=>t===e.minDate.getFullYear(),x=t=>t===e.maxDate.getFullYear(),y=t=>t===e.minDate.getMonth()+1,n=t=>t===e.maxDate.getMonth()+1,i=t=>{const{minDate:c,columnsType:r}=e,l=r.indexOf(t),F=m.value?e.modelValue[l]:a.value[l];if(F)return+F;switch(t){case"year":return c.getFullYear();case"month":return c.getMonth()+1;case"day":return c.getDate()}},g=()=>{const t=i("year"),c=d(t)?e.minDate.getMonth()+1:1,r=x(t)?e.maxDate.getMonth()+1:12;return M(c,r,"month",e.formatter,e.filter)},v=()=>{const t=i("year"),c=i("month"),r=d(t)&&y(c)?e.minDate.getDate():1,l=x(t)&&n(c)?e.maxDate.getDate():q(t,c);return M(r,l,"day",e.formatter,e.filter)},T=I(()=>e.columnsType.map(t=>{switch(t){case"year":return h();case"month":return g();case"day":return v();default:return[]}}));k(a,t=>{V(t,e.modelValue)||o("update:modelValue",t)}),k(()=>e.modelValue,(t,c)=>{m.value=V(c,a.value),t=G(t,T.value),V(t,a.value)||(a.value=t),m.value=!1},{immediate:!0});const P=(...t)=>o("change",...t),f=(...t)=>o("cancel",...t),s=(...t)=>o("confirm",...t);return()=>U($,Z({modelValue:a.value,"onUpdate:modelValue":t=>a.value=t,columns:T.value,onChange:P,onCancel:f,onConfirm:s},N(e,B)),u)}});const ce=S(Q),me=S(K),[W]=E("time-picker"),H=e=>/^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$/.test(e),p=["hour","minute","second"],ee=Y({},j,{minHour:D(0),maxHour:D(23),minMinute:D(0),maxMinute:D(59),minSecond:D(0),maxSecond:D(59),minTime:{type:String,validator:H},maxTime:{type:String,validator:H},columnsType:{type:Array,default:()=>["hour","minute"]},filter:Function});var te=b({name:W,props:ee,emits:["confirm","cancel","change","update:modelValue"],setup(e,{emit:o,slots:u}){const a=C(e.modelValue),m=n=>{const i=n.split(":");return p.map((g,v)=>e.columnsType.includes(g)?i[v]:"00")},h=I(()=>{let{minHour:n,maxHour:i,minMinute:g,maxMinute:v,minSecond:T,maxSecond:P}=e;if(e.minTime||e.maxTime){const f={hour:0,minute:0,second:0};e.columnsType.forEach((c,r)=>{var l;f[c]=(l=a.value[r])!=null?l:0});const{hour:s,minute:t}=f;if(e.minTime){const[c,r,l]=m(e.minTime);n=c,g=+s<=+n?r:"00",T=+s<=+n&&+t<=+g?l:"00"}if(e.maxTime){const[c,r,l]=m(e.maxTime);i=c,v=+s>=+i?r:"59",P=+s>=+i&&+t>=+v?l:"59"}}return e.columnsType.map(f=>{const{filter:s,formatter:t}=e;switch(f){case"hour":return M(+n,+i,f,t,s,a.value);case"minute":return M(+g,+v,f,t,s,a.value);case"second":return M(+T,+P,f,t,s,a.value);default:return[]}})});k(a,n=>{V(n,e.modelValue)||o("update:modelValue",n)}),k(()=>e.modelValue,n=>{n=G(n,h.value),V(n,a.value)||(a.value=n)},{immediate:!0});const d=(...n)=>o("change",...n),x=(...n)=>o("cancel",...n),y=(...n)=>o("confirm",...n);return()=>U($,Z({modelValue:a.value,"onUpdate:modelValue":n=>a.value=n,columns:h.value,onChange:d,onCancel:x,onConfirm:y},N(e,B)),u)}});const ue=S(te);export{ce as D,me as P,ue as T};
|