dm-vue3-ui
Version:
This Components Library will help get you started developing in Vue 3.
2 lines (1 loc) • 3.42 kB
JavaScript
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={class:"dm-cron-picker"},o={key:0},d=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(d,{emit:s}){const c=d,p=s,v=n.useVModel(c,"value",p),m=t.ref(c.runTypes.length>0?c.runTypes[0].value:""),f=t.ref(),y=t.ref(!0),T=t.computed((()=>c.runTypes.length>0?c.runTypes:a.CRON_TIMES_LIST)),k=t.computed((()=>(()=>{const e=a.DEFAULT_PICKER_FORMAT[_.value?m.value:"default"],{formatter:t}=a.TYPE_VALUE_RESOLVER_MAP[m.value]||a.TYPE_VALUE_RESOLVER_MAP.default;return t(f.value,c.format||e)})())),_=t.computed((()=>a.PICKER_TYPE_LIST.includes(m.value))),E=e=>{let t=a.COLUMNS_MAP[m.value]||a.COLUMNS_MAP.default;f.value=e||Object.fromEntries(t.map((e=>[e,["week","day","month"].includes(e)?1:0])))},g=()=>{v.value=a.genCronExprByType(m.value,f.value)},C=t.computed((()=>{const e=(a.CRON_TIMES_LIST.find((e=>e.value===m.value))||{label:""}).label||"";return e?e+" "+k.value:""}));return t.onMounted((()=>{if(c.value){y.value=!1;const e=a.genRunStrByCron(c.value);m.value=e.runType,f.value=e.runTimes}else m.value="minute",E()})),t.watch((()=>m.value),(()=>{y.value?E():y.value=!0}),{immediate:!0}),t.watch((()=>c.value),(e=>{if(e){v.value=e||"";const t=a.genRunStrByCron(c.value);m.value=t.runType,f.value=t.runTimes}else m.value="",E()}),{immediate:!1}),t.watch((()=>v.value),((e,t)=>{const l=`${u.$t("cronPicker.every")}${a.COLUMNS_HEADER_MAP[m.value]} ${k.value}`;v.value=e,p("extra",{val:e,dateStr:l}),e!==t&&p("change",e)})),(a,n)=>{const d=e.Input,s=e.Button,c=e.InputGroup;return t.openBlock(),t.createBlock(t.unref(l.ConfigProvider),{prefixCls:"dm-ui"},{default:t.withCtx((()=>[t.createElementVNode("div",i,[a.onlyShowText?(t.openBlock(),t.createElementBlock("div",o,t.toDisplayString(C.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(d,{key:0,class:"cron-picker-input",size:a.size,disabled:a.disabled,value:t.unref(v),"onUpdate:value":n[0]||(n[0]=e=>t.isRef(v)?v.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:m.value,"onUpdate:runType":n[1]||(n[1]=e=>m.value=e),runTypes:a.runTypes,runtypeList:T.value,disabled:a.disabled,runTimes:f.value,format:a.format,onHandleGenCronExpr:g},{default:t.withCtx((()=>[t.renderSlot(a.$slots,"default",{},(()=>[t.createVNode(s,{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=d;
;