index-717f082c.js 1.9 KB

1
  1. import{c as O,ai as E,bk as f,d as T,r as g,e as b,w as y,bH as m,a as I,h as N,ak as S,k as A}from"./index-5125bda4.js";import{s as B,f as H,a as u,g as K,p as R}from"./utils-8e03a7c4.js";import{P as U}from"./index-e7ac7296.js";const x=new Date().getFullYear(),[_]=O("date-picker"),$=E({},B,{columnsType:{type:Array,default:()=>["year","month","day"]},minDate:{type:Date,default:()=>new Date(x-10,0,1),validator:f},maxDate:{type:Date,default:()=>new Date(x+10,11,31),validator:f}});var j=T({name:_,props:$,emits:["confirm","cancel","change","update:modelValue"],setup(a,{emit:r,slots:v}){const n=g(a.modelValue),l=g(!1),M=()=>{const e=a.minDate.getFullYear(),t=a.maxDate.getFullYear();return u(e,t,"year",a.formatter,a.filter)},i=e=>e===a.minDate.getFullYear(),d=e=>e===a.maxDate.getFullYear(),Y=e=>e===a.minDate.getMonth()+1,k=e=>e===a.maxDate.getMonth()+1,s=e=>{const{minDate:t,columnsType:o}=a,c=o.indexOf(e),D=l.value?a.modelValue[c]:n.value[c];if(D)return+D;switch(e){case"year":return t.getFullYear();case"month":return t.getMonth()+1;case"day":return t.getDate()}},V=()=>{const e=s("year"),t=i(e)?a.minDate.getMonth()+1:1,o=d(e)?a.maxDate.getMonth()+1:12;return u(t,o,"month",a.formatter,a.filter)},P=()=>{const e=s("year"),t=s("month"),o=i(e)&&Y(t)?a.minDate.getDate():1,c=d(e)&&k(t)?a.maxDate.getDate():K(e,t);return u(o,c,"day",a.formatter,a.filter)},h=b(()=>a.columnsType.map(e=>{switch(e){case"year":return M();case"month":return V();case"day":return P();default:throw new Error(`[Vant] DatePicker: unsupported columns type: ${e}`)}}));y(n,e=>{m(e,a.modelValue)||r("update:modelValue",e)}),y(()=>a.modelValue,(e,t)=>{l.value=m(t,n.value),e=H(e,h.value),m(e,n.value)||(n.value=e),l.value=!1},{immediate:!0});const C=(...e)=>r("change",...e),w=(...e)=>r("cancel",...e),F=(...e)=>r("confirm",...e);return()=>I(U,N({modelValue:n.value,"onUpdate:modelValue":e=>n.value=e,columns:h.value,onChange:C,onCancel:w,onConfirm:F},S(a,R)),v)}});const J=A(j);export{J as D};