otb-module
Version:
otb-module是基于现有的element-ui库进行的二次封装,简化组件的各自用法,将所有基础组件归纳于一个表单中, 集成表单组件,另还有增删改查的CRUD组件、预览图片/PDF的preview组件、上传文件的upload组件、分页组件与导出组件等等。 引入组件后以数据驱动组件从而加载Dom,让开发变得更简单,让代码更易维护。
137 lines (123 loc) • 3.81 kB
JavaScript
export default {
// 当前日期对象
initDate(date = new Date()) {
return {
year: new Date(date).getFullYear(),
month: new Date(date).getMonth() + 1,
day: new Date(date).getDate(),
hour: new Date(date).getHours(),
minute: new Date(date).getMinutes(),
second: new Date(date).getSeconds()
};
},
// 日期格式化方法
date(date, symbol = "-") {
date = this.initDate(date);
date.month = date.month < 10 ? "0" + date.month : date.month;
date.day = date.day < 10 ? "0" + date.day : date.day;
return (date.year + symbol + date.month + symbol + date.day);
},
// 时间格式化方法
time(time, symbol = ":") {
if (time) time = `0 ${time}`
time = this.initDate(time);
time.hour = time.hour < 10 ? "0" + time.hour : time.hour;
time.minute = time.minute < 10 ? "0" + time.minute : time.minute;
time.second = time.second < 10 ? "0" + time.second : time.second;
return (time.hour + symbol + time.minute + symbol + time.second);
},
// 日期时间格式化方法
datetime(datetime, symbol = ["-", ":"]) {
datetime = this.initDate(datetime);
datetime.month = datetime.month < 10 ? "0" + datetime.month : datetime.month;
datetime.day = datetime.day < 10 ? "0" + datetime.day : datetime.day;
datetime.hour = datetime.hour < 10 ? "0" + datetime.hour : datetime.hour;
datetime.minute = datetime.minute < 10 ? "0" + datetime.minute : datetime.minute;
datetime.second = datetime.second < 10 ? "0" + datetime.second : datetime.second;
return (
datetime.year +
symbol[0] +
datetime.month +
symbol[0] +
datetime.day +
" " +
datetime.hour +
symbol[1] +
datetime.minute +
symbol[1] +
datetime.second
);
},
// 获取某月天数方法
monthNumber(date) {
let year = new Date(date).getFullYear();
let month = new Date(date).getMonth() + 1;
return new Date(year, month, 0).getDate();
},
// 获取某年天数方法
yearNumber(n = 0) {
n = Math.floor(Math.abs(n));
n = new Date().getFullYear() - n;
let number = 0;
for (let i = 1; i <= 12; i++) {
number += new Date(n, i, 0).getDate();
}
return number;
},
// 多久以前
howLongAgo(d = 0, m = 0, y = 0, symbol = ["-", ":"]) {
d = Math.floor(Math.abs(d));
m = Math.floor(Math.abs(m));
y = Math.floor(Math.abs(y));
let one = 24 * 60 * 60 * 1000;
let nowTimestamp = new Date().getTime();
// 按月算多少天
let month = 0;
if (m > 0) {
for (let i = 1; i <= m; i++) {
month += this.monthNumber(i);
}
}
// 按年算多少天
let year = 0;
if (y > 0) {
for (let i = 1; i <= y; i++) {
year += this.yearNumber(i);
}
}
let timestamp = nowTimestamp - (d + month + year) * one;
return this.datetime(timestamp, symbol);
},
// 时间数组(日) 最长31 多了没意思
dayList(params) {
let list = [];
let nowDay = new Date().getDate();
if (params - nowDay >= 0) {
let outMin = this.monthNumber(1) - (params - nowDay) + 1;
let outMax = this.monthNumber(1);
if (outMin - 1 <= 0) {
let inMin = this.monthNumber(2) + outMin;
let inMax = this.monthNumber(2);
for (let i = inMin; i <= inMax; i++) {
list.push(i);
}
}
for (let i = outMin; i <= outMax; i++) {
list.push(i);
}
}
for (let i = 1; i <= nowDay; i++) {
list.push(i);
}
return list;
},
// 时间戳
timestamp(date) {
return new Date(date).getTime()
},
// 时间差
timeDifference(begin, end) {
let difference = this.timestamp(end) - this.timestamp(begin)
return Math.abs(difference / (24 * 60 * 60 * 1000)) + 1
}
};