vue-ele-plus
Version:
2 lines (1 loc) • 1.76 kB
JavaScript
(function(e,d){typeof exports=="object"&&typeof module!="undefined"?module.exports=d(require("vue")):typeof define=="function"&&define.amd?define(["vue"],d):(e=typeof globalThis!="undefined"?globalThis:e||self,e.index=d(e.Vue))})(this,function(e){"use strict";const d={style:{display:"flex"}},p={style:{"margin-right":"20px"}},c=e.defineComponent({props:{startPlaceholder:{type:String,default:"\u8BF7\u9009\u62E9\u5F00\u59CB\u65E5\u671F"},endPlaceholder:{type:String,default:"\u8BF7\u9009\u62E9\u7ED3\u675F\u65E5\u671F"},disableToday:{type:Boolean,default:!0}},emits:["startChange","endChange"],setup(n,{emit:i}){const h=n,u=1e3*60*60*24;let l=e.ref(null),a=e.ref(null),s=e.ref(!0),D=t=>{if(h.disableToday)return t.getTime()<Date.now()-u},g=t=>{if(l.value)return t.getTime()<l.value.getTime()+u};return e.watch(()=>l.value,t=>{t?(i("startChange",t),s.value=!1):(s.value=!0,a.value=null)}),e.watch(()=>a.value,t=>{t&&i("endChange",{startDate:l.value,endDate:t})}),(t,r)=>{const f=e.resolveComponent("el-date-picker");return e.openBlock(),e.createElementBlock("div",d,[e.createElementVNode("div",p,[e.createVNode(f,e.mergeProps({modelValue:e.unref(l),"onUpdate:modelValue":r[0]||(r[0]=o=>e.isRef(l)?l.value=o:l=o),type:"date",placeholder:n.startPlaceholder,"disabled-date":e.unref(D)},t.$attrs.startOptions),null,16,["modelValue","placeholder","disabled-date"])]),e.createElementVNode("div",null,[e.createVNode(f,e.mergeProps({modelValue:e.unref(a),"onUpdate:modelValue":r[1]||(r[1]=o=>e.isRef(a)?a.value=o:a=o),type:"date",placeholder:n.endPlaceholder,disabled:e.unref(s),"disabled-date":e.unref(g)},t.$attrs.startOptions),null,16,["modelValue","placeholder","disabled","disabled-date"])])])}}});var m={install(n){n.component("m-choose-date",c)}};return m});