import * as XLSX from 'xlsx/xlsx.mjs';
|
export function useCommonFunction(){
|
/**
|
* description:判断起始时间跨度是否超过1个月
|
* @param: 开始时间,结束时间
|
* @createTime:2023-08-18
|
* @returns:超过一个月返回true,不超过一个月则返回false
|
*/
|
|
function isExceedOneMonth(dateStr1, dateStr2) {
|
// 超过一个月,返回True,否则返回False
|
// 将日期字符串转为日期对象
|
const date1 = new Date(dateStr1);
|
const date2 = new Date(dateStr2);
|
|
// 获取两个日期的年、月、日
|
const year1 = date1.getFullYear();
|
const month1 = date1.getMonth();
|
const day1 = date1.getDate();
|
|
const year2 = date2.getFullYear();
|
const month2 = date2.getMonth();
|
const day2 = date2.getDate();
|
console.log(month1, month2);
|
|
// 判断两个日期是否相差一个月
|
if (year1 === year2) {
|
// 年份相等,比较月份差值
|
if (Math.abs(month1 - month2) === 1) {
|
// 月份差值为1,还需要判断具体日期
|
if (
|
(month1 < month2 && day1 < day2) ||
|
(month1 > month2 && day1 > day2)
|
) {
|
return true;
|
}
|
}
|
} else if (Math.abs(year1 - year2) === 1) {
|
// 年份差值为1,比较月份和日期
|
if (
|
(year1 < year2 && month1 === 11 && month2 === 0 && day1 < day2) ||
|
(year1 > year2 && month1 === 0 && month2 === 11 && day1 > day2)
|
) {
|
return true;
|
}
|
}
|
|
// 默认返回false,表示两个日期字符串不相差一个月
|
return false;
|
}
|
|
/**
|
* 百分号比较大小
|
* @param: a是否大于b
|
* @returns:大于,则返回true。否则返回false
|
*/
|
function cmpp(a, b) {
|
return Number(a.replace('%', '')) >= Number(b.replace('%', ''));
|
}
|
|
/**
|
*导出为excel
|
* @param: 表格数据,待导出的表格列,excel列,excel文件名
|
* @returns
|
*/
|
function exportToExcel(exportData,tableColumns,excelColumnsName,excelName='data.xlsx'){
|
const itemsFormatted = exportData.map((item) => {
|
const newItem = {};
|
tableColumns.forEach((col) => {
|
newItem[col] = item[col];
|
});
|
return newItem;
|
});
|
// 创建xlsx对象
|
const xls = XLSX.utils.json_to_sheet(itemsFormatted);
|
|
// 编辑表头行 修改表头
|
excelColumnsName.forEach(item =>{
|
xls[item[0]].v = item[1]
|
})
|
// 创建workbook,并把sheet添加进去
|
const wb = XLSX.utils.book_new();
|
XLSX.utils.book_append_sheet(wb, xls, 'Sheet1');
|
// 将workbook转为二进制xlsx文件并下载
|
XLSX.writeFile(wb, excelName);
|
|
}
|
|
/**
|
* description:返回时间数组,间隔15分钟。
|
* @param: 异常的开始,异常结束时间
|
* @createTime:2023-08-17
|
* @returns:比如12:00:00-13:00:00 所以返回的数组元素是 12:00:00 ,12:15:00,12:30:00,12:45:00,13:00:00
|
*/
|
function descFiftyTime(begin, end) {
|
let time = [];
|
if (begin == end) {
|
time.push(begin);
|
return time;
|
}
|
time.push(begin);
|
let temp = dayjs(begin).add(15, 'minute').format('YYYY-MM-DD HH:mm:ss');
|
while (temp != end) {
|
time.push(temp);
|
temp = dayjs(temp).add(15, 'minute').format('YYYY-MM-DD HH:mm:ss');
|
}
|
// 加上异常的结束时间
|
time.push(temp);
|
return time;
|
}
|
|
return {isExceedOneMonth,cmpp,exportToExcel,descFiftyTime}
|
}
|