dm-vue3-ui
Version:
This Components Library will help get you started developing in Vue 3.
2 lines (1 loc) • 3.85 kB
JavaScript
const e=require("ant-design-vue/es"),t=require("vue"),a=require("../../utils/config"),l=require("../../../i18n/index"),u=require("../../utils/index"),i={class:"dm-date-picker__relative"},n={class:"custom-time-box"},v={class:"start-time-box"},r={class:"time-text"},o={class:"end-time-box"},d=t.defineComponent({__name:"index",props:{customRelativeStartUnits:{default:()=>[]},customRelativeEndUnits:{default:()=>[]},disabledRelativeEndUnit:{type:Boolean,default:!1},relativeStartMaxValue:{}},emits:["change"],setup(d,{expose:c,emit:s}){const m=d,p=t.computed((()=>m.customRelativeStartUnits.length?m.customRelativeStartUnits:a.timeUnits)),h=t.computed((()=>m.disabledRelativeEndUnit?[]:m.customRelativeEndUnits.length?m.customRelativeEndUnits:a.timeUnits)),x=t.computed((()=>-1===m.relativeStartMaxValue?null:g.value===p.value[p.value.length-1].value?m.relativeStartMaxValue:null)),f=t.ref(!1),V=t.ref(""),w=t.ref(5),g=t.ref(p.value[0].value||"s"),S=t.ref("now"),N=t.ref(""),k=t.ref(!1),y=()=>{let e=u.isTimeNumber(w.value),t=!0;if("now"!==S.value&&(t=u.isTimeNumber(S.value)),e&&t){let e=u.compareDate(w.value,g.value,S.value,N.value);return f.value=!e.isValid,V.value=e.msg,e.isValid}return f.value=!0,V.value=l.$t("datePicker.invalidTime"),!1},U=s,E=()=>{if(y()){let e=`-${w.value}${g.value}`,t="now";"now"!=S.value&&(t=`-${S.value}${N.value}`),U("change",{date:[e,t],type:"relative"})}},b=e=>{""==N.value?(S.value="now",k.value=!1):(S.value="1",k.value=!0),"start"===e&&(w.value=-1!==m.relativeStartMaxValue&&g.value===p.value[p.value.length-1].value&&w.value>m.relativeStartMaxValue?m.relativeStartMaxValue:w.value),y()};return c({setValue:(e,t)=>{let a=e.match(/^-(\d+)(s|m|h|d|w|mon|q|y)$/),l=t.match(/^-(\d+)(s|m|h|d|w|mon|q|y)$/);a&&l?(w.value=a[1],g.value=a[2],S.value=l[1],N.value=l[2],k.value=!0):a&&"now"==t&&(w.value=a[1],g.value=a[2],S.value="now",N.value="",k.value=!1),y()}}),(a,u)=>{const d=e.InputNumber,c=e.SelectOption,s=e.Select,m=e.Button;return t.openBlock(),t.createElementBlock("div",i,[t.createElementVNode("div",n,[t.createElementVNode("div",v,[t.createVNode(d,{id:"inputNumber",value:w.value,"onUpdate:value":u[0]||(u[0]=e=>w.value=e),min:1,max:x.value,onChange:u[1]||(u[1]=e=>y())},null,8,["value","max"]),t.createVNode(s,{value:g.value,"onUpdate:value":u[2]||(u[2]=e=>g.value=e),onChange:u[3]||(u[3]=e=>b("start")),dropdownMatchSelectWidth:!1},{default:t.withCtx((()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(p.value,((e,a)=>(t.openBlock(),t.createBlock(c,{key:a,value:e.value},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(e.label),1)])),_:2},1032,["value"])))),128))])),_:1},8,["value"])]),t.createElementVNode("div",r,t.toDisplayString(t.unref(l.$t)("datePicker.relative.to")),1),t.createElementVNode("div",o,[t.withDirectives(t.createVNode(d,{id:"inputNumber",value:S.value,"onUpdate:value":u[4]||(u[4]=e=>S.value=e),min:1,onChange:u[5]||(u[5]=e=>y())},null,8,["value"]),[[t.vShow,k.value]]),t.createVNode(s,{value:N.value,"onUpdate:value":u[6]||(u[6]=e=>N.value=e),onChange:u[7]||(u[7]=e=>b("end")),dropdownMatchSelectWidth:!1},{default:t.withCtx((()=>[t.createVNode(c,{value:""},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(t.unref(l.$t)("datePicker.relative.now")),1)])),_:1}),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(h.value,((e,a)=>(t.openBlock(),t.createBlock(c,{key:a,value:e.value},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(e.label),1)])),_:2},1032,["value"])))),128))])),_:1},8,["value"]),t.createVNode(m,{type:"primary",onClick:E},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(t.unref(l.$t)("datePicker.confirm")),1)])),_:1})])]),t.withDirectives(t.createElementVNode("div",{class:"error-text"},t.toDisplayString(V.value),513),[[t.vShow,f.value]])])}}});module.exports=d;
;