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