daikins/.svn/pristine/b2/b2067ba157f1e4731dded10375a...

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]);
}
}
};