dm-vue3-ui
Version:
This Components Library will help get you started developing in Vue 3.
2 lines (1 loc) • 5.11 kB
JavaScript
const e=require("ant-design-vue/es"),t=require("vue"),a=require("@vueuse/core"),r=require("../picker/index.vue"),l=require("../../cron-tab/components/pop-tab.vue"),o=require("../../cron-tab/components/cron-tab-result.vue"),n=require("../../i18n/index"),i=require("cron-parser"),c=require("../../cron-tab/util"),u={class:"cron-picker-panel-body"},s={class:"cron-tab-content"},d={class:"cron-picker-panel-item-title"},p={class:"cron-picker-panel-item-title"},v={key:0,class:"footer-button"},m=((e,t)=>{const a=e.__vccOpts||e;for(const[r,l]of t)a[r]=l;return a})(t.defineComponent({__name:"index",props:{size:{default:"default"},title:{default:n.$t("cronPicker.title")},placement:{default:"bottomLeft"},panelVisible:{type:Boolean},disabled:{type:Boolean,default:!1},runtypeList:{default:()=>[]},runTypes:{default:()=>[]},runTimes:{},format:{default:""},runType:{},isHaveTab:{type:Boolean,default:!1},expression:{default:""},tabSelect:{default:"time"}},emits:["setStatus","handleGenCronExpr","handleTabCronExpr","update:panelVisible","update:runType"],setup(m,{emit:f}){const b=m,k=f,y=a.useVModel(b,"runType",k),x=()=>{C.value=!1,b.isHaveTab&&"tab"===T.value?k("handleTabCronExpr",V.value):k("handleGenCronExpr")},C=t.ref(!1),T=t.ref(b.tabSelect),V=t.ref(b.expression),N=t.ref(10),h=t.ref([]);t.watch(V,(e=>{h.value=B(e)}));const B=e=>{let t=[];try{const a=i.parseExpression(e);for(let e=0;e<N.value;e+=1){const e=a.next(),r=c.zerofill(e.getFullYear()),l=c.zerofill(e.getMonth()+1),o=c.zerofill(e.getDate()),n=c.zerofill(e.getHours()),i=c.zerofill(e.getMinutes()),u=c.zerofill(e.getSeconds());t.push(`${r}-${l}-${o} ${n}:${i}:${u}`)}}catch(a){t=["此表达式暂时无法解析!"]}return t},g=()=>{h.value=[]},w=e=>{h.value=B(e)};return t.watch((()=>b.expression),(e=>{V.value=e}),{immediate:!0}),(a,i)=>{const c=e.RadioButton,m=e.RadioGroup,f=e.Space,b=e.Button,k=e.Popover;return t.openBlock(),t.createBlock(k,{trigger:"click",title:a.title,size:a.size,placement:a.placement,visible:C.value,"onUpdate:visible":i[4]||(i[4]=e=>C.value=e),overlayClassName:a.isHaveTab?"cron-picker-panel cron-tab-panel":"cron-picker-panel"},{content:t.withCtx((()=>[t.createElementVNode("div",u,[t.createElementVNode("div",s,[a.isHaveTab?(t.openBlock(),t.createBlock(m,{key:0,class:"tab-radio",value:T.value,"onUpdate:value":i[0]||(i[0]=e=>T.value=e)},{default:t.withCtx((()=>[t.createVNode(c,{value:"time"},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(t.unref(n.$t)("cronPicker.timePicker")),1)])),_:1}),t.createVNode(c,{value:"tab"},{default:t.withCtx((()=>i[5]||(i[5]=[t.createTextVNode("Crontab")]))),_:1})])),_:1},8,["value"])):t.createCommentVNode("",!0),"time"!==T.value&&a.isHaveTab?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(f,{key:1,size:24,direction:"vertical"},{default:t.withCtx((()=>[t.createVNode(f,{size:8,direction:"vertical"},{default:t.withCtx((()=>[t.createElementVNode("label",d,t.toDisplayString(t.unref(n.$t)("cronPicker.frequency")),1),t.createVNode(m,{class:"cron-picker-panel-radio-group",value:t.unref(y),"onUpdate:value":i[1]||(i[1]=e=>t.isRef(y)?y.value=e:null),"button-style":"solid"},{default:t.withCtx((()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.runtypeList,((e,a)=>(t.openBlock(),t.createBlock(c,{class:"cron-picker-panel-radio-button",key:a,value:e.value},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(e.label),1)])),_:2},1032,["value"])))),128))])),_:1},8,["value"])])),_:1}),t.createVNode(f,{size:8,direction:"vertical",style:{width:"100%"}},{default:t.withCtx((()=>[t.createElementVNode("label",p,t.toDisplayString(t.unref(n.$t)("cronPicker.time")),1),t.createVNode(r,{disabled:a.disabled,runTypes:a.runTypes,runTimes:a.runTimes,format:a.format,runType:t.unref(y)},null,8,["disabled","runTypes","runTimes","format","runType"])])),_:1})])),_:1})),"tab"===T.value&&a.isHaveTab?(t.openBlock(),t.createBlock(l,{key:2,modelValue:V.value,"onUpdate:modelValue":i[2]||(i[2]=e=>V.value=e),onParse:w},null,8,["modelValue"])):t.createCommentVNode("",!0),a.isHaveTab&&"tab"===T.value?(t.openBlock(),t.createBlock(o,{key:3,previews:h.value,onEmptyPre:g},null,8,["previews"])):t.createCommentVNode("",!0)]),a.isHaveTab?(t.openBlock(),t.createElementBlock("div",v,[t.createVNode(b,{class:"tab-confirm",type:"primary",onClick:x},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(t.unref(n.$t)("cronPicker.confirm")),1)])),_:1}),t.createVNode(b,{class:"tab-cancel",onClick:i[3]||(i[3]=e=>C.value=!1)},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(t.unref(n.$t)("cronPicker.cancel")),1)])),_:1})])):t.createCommentVNode("",!0),a.isHaveTab?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(b,{key:1,class:"cron-picker-panel-confirm-button",block:"",type:"primary",onClick:x},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(t.unref(n.$t)("cronPicker.confirm")),1)])),_:1}))])])),default:t.withCtx((()=>[t.renderSlot(a.$slots,"default",{},void 0,!0)])),_:3},8,["title","size","placement","visible","overlayClassName"])}}}),[["__scopeId","data-v-48b8d6ea"]]);module.exports=m;
;