vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
2 lines (1 loc) • 2.33 kB
JavaScript
"use strict";const e=require("vue"),h=require("./day/index.cjs"),y=require("./date.vue.cjs"),B=require("./hook/useDatePicker.cjs"),c=require("@vuux/icons"),C={key:0,class:"presets"},V=["onClick"],g=e.defineComponent({name:"DatePicker",__name:"index",props:e.mergeModels({clear:{type:Boolean},readonly:{type:Boolean},disabled:{type:Boolean},placeholder:{default:"请选择日期"},shadow:{type:Boolean},presets:{default:()=>[]}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change","clear"],["update:modelValue"]),setup(t,{emit:i}){const n=t,d=i,l=e.useModel(t,"modelValue"),s=e.useTemplateRef("selectEl"),{classNames:u,visible:m,onChange:k,handleShow:r,handleClear:v,handleSelectPresets:p}=B.useDatePicker(n,s,l,d);return(E,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(u))},[e.createElementVNode("div",{class:"date-input",onClick:a[0]||(a[0]=e.withModifiers((...o)=>e.unref(r)&&e.unref(r)(...o),["stop"]))},[e.withDirectives(e.createElementVNode("div",{class:"date-value"},e.toDisplayString(t.placeholder),513),[[e.vShow,!l.value]]),e.withDirectives(e.createElementVNode("div",{class:"date-value"},e.toDisplayString(l.value),513),[[e.vShow,l.value]]),l.value&&t.clear&&!t.readonly?(e.openBlock(),e.createBlock(e.unref(c.Icon),{key:0,name:"Icon9176904",class:"is-icon is-clear",size:14,onClick:e.withModifiers(e.unref(v),["stop"])},null,8,["onClick"])):(e.openBlock(),e.createBlock(e.unref(c.Icon),{key:1,name:"Icon3109624",class:"is-icon",opacity:.9}))]),e.createVNode(e.Transition,{name:"ease-drop"},{default:e.withCtx(()=>[e.unref(m)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"selectEl",ref:s,class:e.normalizeClass(["date-select",{"is-shadow":t.shadow}])},[n.presets.length>0?(e.openBlock(),e.createElementBlock("div",C,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.presets,(o,f)=>(e.openBlock(),e.createElementBlock("div",{key:f,class:e.normalizeClass(["item",[e.unref(h)(l.value).isSame(o.value,"day")?"is-active":""]]),onClick:w=>e.unref(p)(o)},e.toDisplayString(o.label),11,V))),128))])):e.createCommentVNode("",!0),e.createVNode(y,{ref:"dateEl",modelValue:l.value,"onUpdate:modelValue":a[1]||(a[1]=o=>l.value=o),onChange:e.unref(k)},null,8,["modelValue","onChange"])],2)):e.createCommentVNode("",!0)]),_:1})],2))}});module.exports=g;