现在前端因为有 blob 的 api,导文件太方便了,不用后端配合,直接从前端导出文件,而且只要你知道文件格式,理论上可以导出任何格式。下面是一个导出 csv 的函数,比较简单
javascript
const exportLogs = () => {
if (logs.value.length === 0) {
alert("暂无数据可导出");
return;
}
const headers = ["日志类型", "操作用户", "IP地址", "位置", "浏览器", "操作时间", "备注"];
const rows = logs.value.map((log) => {
return [
log.log_type || "",
log.username || "",
log.ip_addr || "",
log.location || "",
log.browser || "",
log.tm || "",
log.comment || "",
];
});
const csv = [
headers.join(","),
...rows.map(row => row.map(cell => `"${cell || ''}"`).join(","))
].join("\n");
const blob = new Blob(["\ufeff" + csv], {
type: "text/csv;charset=utf-8;",
});
const link = document.createElement("a");
link.href = URL.createObjectURL(blob);
link.download = `审计日志_${formatDate(new Date(), "YYYY-MM-DD")}.csv`;
link.click();
};