fix: 参赛记录分权限导出

This commit is contained in:
Shu Guang 2025-05-17 19:58:37 +08:00
parent b85c9fe383
commit ffabdcb595

View File

@ -39,6 +39,7 @@
import { exportData } from "@/utils/excel";
import { AllCompetition } from "@/api";
import RecordAction from "@/components/record/RecordAction";
import dayjs from 'dayjs';
export default {
name: "Record",
@ -165,7 +166,8 @@ export default {
this.$api
.RegistrationAll(this.query)
.then((data) => {
return exportExcel(data.data);
// this exportExcel
return exportExcel.call(this, data.data);
})
.catch((e) => {
console.error(e);
@ -185,15 +187,14 @@ const statusMap = {
};
//
function formatDate(dateString) {
const date = new Date(dateString);
if (isNaN(date.getTime())) {
console.error(`Invalid date: ${dateString}`);
return "Invalid Date";
if (!dateString) return '';
try {
return dayjs(dateString).format('YYYY-MM-DD HH:mm:ss');
} catch (error) {
console.error(`Error formatting date: ${dateString}`, error);
return dateString;
}
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, "0");
const day = String(date.getDate()).padStart(2, "0");
return `${year}-${month}-${day}`;
}
function createTableColumns(h) {
return [
@ -246,19 +247,32 @@ function createTableColumns(h) {
}
function exportExcel(data) {
//
let filteredData = data;
if (this.$store.state.user.userPrivileges == 2) {
filteredData = data.filter(item => item.studentId == this.$store.state.user.userId);
}
const header = createTableColumns().map((v) => v.title);
header.pop(); //
//
const formattedData = filteredData.map(item => ({
...item,
registrationTime: formatDate(item.registrationTime)
}));
return exportData({
name: `参赛记录信息-${formatDate(new Date())}`, //
data,
name: `参赛记录信息-${dayjs().format('YYYY-MM-DD HH:mm:ss')}`,
data: formattedData,
header,
keyMap: {
competitionId: "名称",
studentId: "参赛人",
teamLeaderId: "组队编号",
competitionName: "名称",
studentName: "参赛人",
teamLeaderName: "队长",
competitionType: "类型",
awardLevel: "成绩",
competitionType: "类型",
additionalInfo: "备注信息",
registrationTime: "登记时间",
},
});