177 lines
5.9 KiB
Plaintext
177 lines
5.9 KiB
Plaintext
function registerEvent(picker, index) {
|
|
function setBackground(target) {
|
|
target.css({ "background-color": "#FD4845", color: "#fff" });
|
|
target
|
|
.siblings("button")
|
|
.css({ "background-color": "#FFF4F4", color: "#666" });
|
|
}
|
|
//点击某一个元素时手动添加第一次选中样式
|
|
const dom = $(picker.$el).find(".el-picker-panel__shortcut")[index];
|
|
setBackground($(dom));
|
|
$(picker.$el)
|
|
.find(".el-picker-panel__shortcut")
|
|
.on("click", function() {
|
|
setBackground($(this));
|
|
});
|
|
}
|
|
|
|
export const dataTime = {
|
|
today: {
|
|
text: "今日",
|
|
onClick(picker) {
|
|
registerEvent(picker, 0); // 选中样式
|
|
return picker.$emit("pick", [new Date(), new Date()]);
|
|
}
|
|
},
|
|
yesterday: {
|
|
text: "昨日",
|
|
onClick(picker) {
|
|
registerEvent(picker, 1);
|
|
const date = new Date();
|
|
date.setTime(date.getTime() - 3600 * 1000 * 24);
|
|
return picker.$emit("pick", [date, date]);
|
|
}
|
|
},
|
|
thisWeek: {
|
|
text: "本周",
|
|
onClick(picker) {
|
|
let end = new Date();
|
|
let week = end.getDay();
|
|
//一天的毫秒数
|
|
let millisecond = 1000 * 60 * 60 * 24;
|
|
//减去的天数
|
|
let minusDay = week != 0 ? week - 1 : 6;
|
|
//本周 周一
|
|
let monday = new Date(end.getTime() - minusDay * millisecond);
|
|
const start = new Date(monday);
|
|
start.setHours(0, 0, 0, 0);
|
|
registerEvent(picker, 2);
|
|
return picker.$emit("pick", [start, end]);
|
|
}
|
|
},
|
|
lastWeek: {
|
|
text: "上周",
|
|
onClick(picker) {
|
|
const starta = new Date();
|
|
let first = starta.getDate() - starta.getDay() - 6;
|
|
let startDate = new Date(starta.setDate(first));
|
|
const start = new Date(startDate);
|
|
start.setHours(0, 0, 0, 0);
|
|
// 上周结束时间
|
|
let currentDate = new Date();
|
|
let firsts = currentDate.getDate() - currentDate.getDay() - 6;
|
|
let last = firsts + 6;
|
|
let endDate = new Date(currentDate.setDate(last));
|
|
const end = new Date(endDate);
|
|
end.setHours(23, 59, 59, 0);
|
|
registerEvent(picker, 3);
|
|
return picker.$emit("pick", [start, end]);
|
|
}
|
|
},
|
|
thisMonth: {
|
|
text: "本月",
|
|
onClick(picker) {
|
|
let currentDate = new Date();
|
|
let currentMonth = currentDate.getMonth();
|
|
//获得当前年份4位年
|
|
let currentYear = currentDate.getFullYear();
|
|
//求出本月第一天
|
|
const start = new Date(currentYear, currentMonth, 1);
|
|
const end = new Date();
|
|
registerEvent(picker, 4);
|
|
return picker.$emit("pick", [start, end]);
|
|
}
|
|
},
|
|
lastMonth: {
|
|
text: "上月",
|
|
onClick(picker) {
|
|
let that = this;
|
|
//获取当前时间
|
|
let currentDate = new Date();
|
|
//获得当前月份0-11
|
|
let currentMonth = currentDate.getMonth();
|
|
//获得当前年份4位年
|
|
let currentYear = currentDate.getFullYear();
|
|
//获得上一个月的第一天
|
|
if (currentMonth == 0) {
|
|
currentMonth = 11; //月份为上年的最后月份
|
|
currentYear--; //年份减1
|
|
return new Date(currentYear, currentMonth, 1);
|
|
} else {
|
|
//否则,只减去月份
|
|
currentMonth--;
|
|
}
|
|
const start = new Date(currentYear, currentMonth, 1);
|
|
//获取当前时间
|
|
let currentDates = new Date();
|
|
//获得当前月份0-11
|
|
let currentMonths = currentDates.getMonth();
|
|
//获得当前年份4位年
|
|
let currentYears = currentDates.getFullYear();
|
|
//当为12月的时候年份需要加1
|
|
//月份需要更新为0 也就是下一年的第一个月
|
|
if (currentMonths == 11) {
|
|
currentYears++;
|
|
currentMonths = 0; //就为
|
|
} else {
|
|
//否则只是月份增加,以便求的下一月的第一天
|
|
currentMonths++;
|
|
}
|
|
//一天的毫秒数
|
|
let millisecond = 1000 * 60 * 60 * 24;
|
|
//求出上月的最后一天
|
|
let aa = new Date();
|
|
let thisMonth = aa.getMonth();
|
|
//获得当前年份4位年
|
|
let thisYear = aa.getFullYear();
|
|
//求出本月第一天
|
|
let firstDay = new Date(thisYear, thisMonth, 1);
|
|
let lastDay = new Date(firstDay.getTime() - millisecond);
|
|
const end = new Date(lastDay);
|
|
end.setHours(23, 59, 59, 0);
|
|
registerEvent(picker, 5);
|
|
return picker.$emit("pick", [start, end]);
|
|
}
|
|
},
|
|
nearlyAMonth: {
|
|
text: "近一个月",
|
|
onClick(picker) {
|
|
const end = new Date();
|
|
const start = new Date();
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
|
registerEvent(picker, 6);
|
|
return picker.$emit("pick", [start, end]);
|
|
}
|
|
},
|
|
nearlyThreeMonths: {
|
|
text: "近三个月",
|
|
onClick(picker) {
|
|
const end = new Date();
|
|
const start = new Date();
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
|
registerEvent(picker, 7);
|
|
return picker.$emit("pick", [start, end]);
|
|
}
|
|
},
|
|
nearlySixMonths: {
|
|
text: "近6个月",
|
|
onClick(picker) {
|
|
const end = new Date();
|
|
const start = new Date();
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 180);
|
|
registerEvent(picker, 8);
|
|
return picker.$emit("pick", [start, end]);
|
|
}
|
|
},
|
|
withinThisYear: {
|
|
text: "今年内",
|
|
onClick(picker) {
|
|
const end = new Date();
|
|
const start = new Date();
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 365);
|
|
registerEvent(picker, 9);
|
|
return picker.$emit("pick", [start, end]);
|
|
}
|
|
}
|
|
};
|
|
|