export const timeSelect = { setup() { function timestampToTime(timestamp) { var date = new Date(timestamp); // 时间戳为10位需*1000,时间戳为13位的话不需乘1000 let Y = date.getFullYear() + "-"; let M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-"; let D = date.getDate() + " "; return Y + M + D; } // 周选择器开始时间和结束时间 function formatWeekTime(val) { if (val == "") { queryParams.value.datetime = []; queryParams.value.weekStartDate = ""; queryParams.value.WeekEndDate = ""; return; } let todayDay = val ? new Date(val) : new Date(); console.log(todayDay); let todayOfWeek = todayDay.getDay(); console.log(todayOfWeek); let spendDay = 1; if (todayOfWeek !== 0) { spendDay = 7 - todayOfWeek; // 开始时间到结束时间还有几天 } // 86400000为一天的毫秒数 let startTimeNum = todayDay.valueOf() - (6 - spendDay) * 86400000; // 开始时间时间戳 let endTimeNum = todayDay.valueOf() + spendDay * 86400000; // 结束时间时间戳 let startTimeStr = timestampToTime(startTimeNum); // 时间戳转字符串 let endTimeStr = timestampToTime(endTimeNum); let startDate = proxy .moment(startTimeStr) .add(5, "days") .format("YYYY-MM-DD"); let endDate = proxy .moment(endTimeStr) .add(5, "days") .format("YYYY-MM-DD"); queryParams.value.weekStartDate = startDate; queryParams.value.WeekEndDate = endDate; queryParams.value.datetime = [startDate, endDate]; } //选择周 function changeWeek() { queryParams.value.monthTime = queryParams.value.yearTime = ""; formatWeekTime(queryParams.value.weekTime); } //选择月 function changeMonth() { queryParams.value.weekTime = queryParams.value.yearTime = ""; formatWeekTime(queryParams.value.weekTime); queryParams.value.datetime = [ proxy .moment(queryParams.value.monthTime) .startOf("months") .format("YYYY-MM-DD"), proxy .moment(queryParams.value.monthTime) .endOf("months") .format("YYYY-MM-DD"), ]; } //选择年 function changeYear() { queryParams.value.monthTime = queryParams.value.weekTime = ""; changeweek(queryParams.value.weekTime); queryParams.value.datetime = [ proxy .moment(queryParams.value.yearTime) .startOf("years") .format("YYYY-MM-DD"), proxy .moment(queryParams.value.yearTime) .endOf("years") .format("YYYY-MM-DD"), ]; } // 暴露出去 return { changeWeek, changeMonth, changeYear, }; }, };