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