UNPKG

dm-vue3-ui

Version:

This Components Library will help get you started developing in Vue 3.

2 lines (1 loc) 3.63 kB
"use strict";const e=require("ant-design-vue/es"),t=require("vue"),l=require("ant-design-vue"),a=require("./utils/util"),u=require("../i18n/index"),r=require("./panel/index.vue"),n=require("@vueuse/core"),i=require("../utils/index"),o=require("../utils/theme"),d={class:"dm-cron-picker"},s={key:0},c=t.defineComponent({name:"dm-cron-picker",__name:"index",props:{size:{default:"default"},trigger:{default:"click"},title:{default:u.$t("cronPicker.title")},placement:{default:"bottomLeft"},format:{default:""},disabled:{type:Boolean,default:!1},value:{default:""},runTypes:{default:()=>[]},placeholder:{default:""},onlyShowText:{type:Boolean,default:!1}},emits:["input","extra","change","update:value"],setup(c,{emit:p}){const v=c,m=p,f=i.store("platformConfig")||{},y=(null==f?void 0:f.themeColor)||"default";o.themeManager.initializeTheme(),o.themeManager.applyThemeByType(y);const T=n.useVModel(v,"value",m),h=t.ref(v.runTypes.length>0?v.runTypes[0].value:""),k=t.ref(),_=t.ref(!0),g=t.computed((()=>v.runTypes.length>0?v.runTypes:a.CRON_TIMES_LIST)),C=t.computed((()=>(()=>{const e=a.DEFAULT_PICKER_FORMAT[E.value?h.value:"default"],{formatter:t}=a.TYPE_VALUE_RESOLVER_MAP[h.value]||a.TYPE_VALUE_RESOLVER_MAP.default;return t(k.value,v.format||e)})())),E=t.computed((()=>a.PICKER_TYPE_LIST.includes(h.value))),x=e=>{let t=a.COLUMNS_MAP[h.value]||a.COLUMNS_MAP.default;k.value=e||Object.fromEntries(t.map((e=>[e,["week","day","month"].includes(e)?1:0])))},B=()=>{T.value=a.genCronExprByType(h.value,k.value)},S=t.computed((()=>{const e=(a.CRON_TIMES_LIST.find((e=>e.value===h.value))||{label:""}).label||"";return e?e+" "+C.value:""}));return t.onMounted((()=>{if(v.value){_.value=!1;const e=a.genRunStrByCron(v.value);h.value=e.runType,k.value=e.runTimes}else h.value="minute",x()})),t.watch((()=>h.value),(()=>{_.value?x():_.value=!0}),{immediate:!0}),t.watch((()=>v.value),(e=>{if(e){T.value=e||"";const t=a.genRunStrByCron(v.value);h.value=t.runType,k.value=t.runTimes}else h.value="",x()}),{immediate:!1}),t.watch((()=>T.value),((e,t)=>{const l=`${u.$t("cronPicker.every")}${a.COLUMNS_HEADER_MAP[h.value]} ${C.value}`;T.value=e,m("extra",{val:e,dateStr:l}),e!==t&&m("change",e)})),(a,n)=>{const i=e.Input,o=e.Button,c=e.InputGroup;return t.openBlock(),t.createBlock(t.unref(l.ConfigProvider),{prefixCls:"dm-ui"},{default:t.withCtx((()=>[t.createElementVNode("div",d,[a.onlyShowText?(t.openBlock(),t.createElementBlock("div",s,t.toDisplayString(S.value),1)):(t.openBlock(),t.createBlock(c,{key:1,compact:"",style:{display:"flex"}},{default:t.withCtx((()=>[a.$slots.default?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(i,{key:0,class:"cron-picker-input",size:a.size,disabled:a.disabled,value:t.unref(T),"onUpdate:value":n[0]||(n[0]=e=>t.isRef(T)?T.value=e:null),placeholder:a.placeholder},null,8,["size","disabled","value","placeholder"])),a.disabled?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(r,{key:1,trigger:a.trigger,title:a.title,size:a.size,placement:a.placement,runType:h.value,"onUpdate:runType":n[1]||(n[1]=e=>h.value=e),runTypes:a.runTypes,runtypeList:g.value,disabled:a.disabled,runTimes:k.value,format:a.format,onHandleGenCronExpr:B},{default:t.withCtx((()=>[t.renderSlot(a.$slots,"default",{},(()=>[t.createVNode(o,{size:a.size,disabled:a.disabled,class:"cron-picker-panel-button"},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(t.unref(u.$t)("cronPicker.usePickerBtnText")),1)])),_:1},8,["size","disabled"])]))])),_:3},8,["trigger","title","size","placement","runType","runTypes","runtypeList","disabled","runTimes","format"]))])),_:3}))])])),_:3})}}});module.exports=c;