eslink-ui-plus
Version:
vue3 component library, css framework
4 lines (3 loc) • 4.87 kB
JavaScript
(function(c,p){typeof exports=="object"&&typeof module!="undefined"?module.exports=p(require("vue"),require("element-plus")):typeof define=="function"&&define.amd?define(["vue","element-plus"],p):(c=typeof globalThis!="undefined"?globalThis:c||self,c["es-time-select-cascader"]=p(c.Vue,c.ElementPlus))})(this,function(c,p){"use strict";const o=t=>t<10?`0${t}`:t,T=(t,a,e=!0)=>{const n=[],s={31:[1,3,5,7,8,10,12],30:[4,6,9,11],28:[2]},l=Object.values(s).findIndex(m=>m.includes(a)),u=Object.keys(s)[l];let i=1;for(;i<=+u;){const m=e?`${t}-${o(a)}-${o(i)}`:`${o(i)}\u65E5`;n.push({label:m,value:`${t}-${o(a)}-${o(i)}`}),i++}return n},h=t=>{const a=t?new Date(t):new Date,e=a.getFullYear(),n=a.getMonth()+1,s=a.getDate(),l=a.getDay(),r=+new Date(`${e}-${o(n)}-${o(s)}`),u=3600*1e3*24;let i,m;l===1?(i=r,m=i+6*u):l>0?(i=r-(l-1)*u,m=i+6*u):(i=r-(7-1)*u,m=i+6*u);const q=new Date(i).toLocaleDateString().split("/").map(g=>o(g)).join("-"),x=new Date(m).toLocaleDateString().split("/").map(g=>o(g)).join("-");return{timeString:{startTime:q,endTime:x},timeStamp:{startTime:+new Date(i),endTime:+new Date(m)}}},w=t=>{const a=t?new Date(t):new Date,e=a.getFullYear(),n=a.getMonth()+1,s=new Date(e,n,0).getDate();return{timeString:{startTime:`${e}-${o(n)}-01`,endTime:`${e}-${o(n)}-${s}`},timeStamp:{startTime:+new Date(`${e}-${o(n)}-01`),endTime:+new Date(`${e}-${o(n)}-${s}`)}}},L=t=>{const e=(t?new Date(t):new Date).getFullYear();return{timeString:{startTime:`${e}-01-01`,endTime:`${e}-12-31`},timeStamp:{startTime:+new Date(`${e}-01-01`),endTime:+new Date(`${e}-12-31`)}}},b=t=>{const a=t?new Date(t):new Date,e=a.getFullYear(),n=a.getMonth()+1;let s=null;[[1,2,3],[4,5,6],[7,8,9],[10,11,12]].forEach((u,i)=>{u.includes(n)&&(s=i+1)});const r=f(s);return{timeString:{startTime:`${e}-${r[0]}`,endTime:`${e}-${r[1]}`},timeStamp:{startTime:+new Date(`${e}-${r[0]}`),endTime:+new Date(`${e}-${r[1]}`)}}},f=t=>({1:["01-01","03-31"],2:["04-01","06-30"],3:["07-01","09-30"],4:["10-01","12-31"]})[t],$=(t=5)=>{const a=[],e=new Date().getFullYear();if(t===void 0)return[];for(t--;t;)a.push(e-t),t--;return a.push(e),a},D=(t=new Date().getFullYear(),a=!0)=>{const e=[];let n=1;for(;n<=12;){const s=a?`${n}\u6708`:n,l=w(`${t}-${n}-01`).timeString;e.push({label:s,value:`${l.startTime}~${l.endTime}`,month:n}),n++}return e},y=(t=new Date().getFullYear(),a=!0)=>{const e=[];let n=1;const s={1:`${t}-01-01`,2:`${t}-04-01`,3:`${t}-07-01`,4:`${t}-10-01`};for(;n<=4;){const l=a?`\u7B2C${n}\u5B63\u5EA6`:n,r=b(s[n]).timeString;e.push({label:l,value:`${r.startTime}~${r.endTime}`}),n++}return e},S=(t=new Date().getFullYear(),a=!0)=>{const e=3600*1e3*24,n=[],s=new Date(`${t}-01-01`),l=+new Date(`${t}-12-31`);let r=h(s),u=1;for(;r.timeStamp.startTime<=l;){const i=a?`\u7B2C${u}\u5468 (${r.timeString.startTime} ~ ${r.timeString.endTime})`:`\u7B2C${u}\u5468`;n.push({label:i,value:`${r.timeString.startTime}~${r.timeString.endTime}`}),u++,r=h(r.timeStamp.endTime+e)}return n},v=(t=5)=>$(t).map(e=>({label:`${e}\u5E74`,value:`${e}\u5E74`,children:S(e).map(n=>({complateLabel:`${e}\u5E74 ${n.label}`,label:n.label,value:n.value}))})),E=(t=5)=>$(t).map(e=>({label:`${e}\u5E74`,value:`${e}\u5E74`,children:D(e).map(n=>({complateLabel:`${e}\u5E74 ${n.label}`,label:n.label,value:n.value}))})),M=(t=5)=>$(t).map(e=>({label:`${e}\u5E74`,value:`${e}\u5E74`,children:y(e).map(n=>({complateLabel:`${e}\u5E74 ${n.label}`,label:n.label,value:n.value}))})),Y=(t=5)=>$(t).map(e=>({label:`${e}\u5E74`,value:`${e}\u5E74`,children:D(e).map(n=>({label:n.label,value:n.value,children:T(e,n.month,!1).map(s=>({complateLabel:`${e}\u5E74 ${n.label} ${s.label}`,label:s.label,value:s.value}))}))})),C=(t=5)=>$(t).map(e=>{const n=L(`${e}-01-01`).timeString;return{complateLabel:`${e}\u5E74`,label:`${e}\u5E74`,value:`${n.startTime}~${n.endTime}`}});var d=c.defineComponent({name:"es-time-select-cascader",props:{type:{type:String,default:"day"},offset:{type:Number,default:5}},components:{ElCascader:p.ElCascader},setup(t){return{options:c.computed(()=>({day:Y,week:v,month:E,quarter:M,year:C})[t.type](t.offset))}}});function _(t,a,e,n,s,l){const r=c.resolveComponent("el-cascader");return c.openBlock(),c.createBlock(r,c.mergeProps(t.$attrs,{options:t.options,class:"es-time-select-cascader"}),null,16,["options"])}function k(t,a){a===void 0&&(a={});var e=a.insertAt;if(!(!t||typeof document=="undefined")){var n=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",e==="top"&&n.firstChild?n.insertBefore(s,n.firstChild):n.appendChild(s),s.styleSheet?s.styleSheet.cssText=t:s.appendChild(document.createTextNode(t))}}var B=`.es-time-select-cascader[data-v-1e279a2d] {
display: inline-block;
}`;return k(B),d.render=_,d.__scopeId="data-v-1e279a2d",d.__file="components/time-select-cascader/index.vue",d.install=t=>{t.component("es-time-select-cascader",d)},d});