diff --git a/src/api/martial/activitySchedule.js b/src/api/martial/activitySchedule.js
index fb3c93d..83827bb 100644
--- a/src/api/martial/activitySchedule.js
+++ b/src/api/martial/activitySchedule.js
@@ -188,6 +188,15 @@ export const saveDispatch = (data) => {
* 导出赛程表
* @param {Number} competitionId - 赛事ID
*/
+// 预览赛程表数据
+export const getScheduleExportPreview = (competitionId, template, venueId) => {
+ return request({
+ url: "/api/martial/export/schedule/preview",
+ method: "get",
+ params: { competitionId, template, venueId }
+ })
+}
+
export const exportSchedule = (competitionId) => {
return request({
url: '/martial/export/schedule',
@@ -197,7 +206,7 @@ export const exportSchedule = (competitionId) => {
})
}
-// Export schedule template 2 (competition time format)
+
export const exportScheduleTemplate2 = (competitionId, venueId, venueName, timeSlot) => {
return request({
url: '/martial/export/schedule2',
diff --git a/src/views/martial/schedule/ExportPreview.vue b/src/views/martial/schedule/ExportPreview.vue
new file mode 100644
index 0000000..48aed1a
--- /dev/null
+++ b/src/views/martial/schedule/ExportPreview.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 刷新预览
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
暂无数据
+
+
+
+ 共 {{ previewData.length }} 条记录
+
+
+
+ 取消
+ 确认导出
+
+
+
+
+
+
+
diff --git a/src/views/martial/schedule/index.vue b/src/views/martial/schedule/index.vue
index fe8ddc7..71cead1 100644
--- a/src/views/martial/schedule/index.vue
+++ b/src/views/martial/schedule/index.vue
@@ -7,12 +7,13 @@
@@ -391,10 +391,12 @@ import { getVenuesByCompetition } from '@/api/martial/venue'
import { getCompetitionDetail } from '@/api/martial/competition'
import { getScheduleResult, saveAndLockSchedule, saveDraftSchedule, triggerAutoArrange, moveScheduleGroup, exportSchedule, exportScheduleTemplate2 } from '@/api/martial/activitySchedule'
import { updateCheckInStatus, getScheduleConfig } from '@/api/martial/schedulePlan'
+import ExportPreview from './ExportPreview.vue'
export default {
name: 'MartialScheduleList',
components: {
+ ExportPreview,
ArrowDown,
ArrowRight
},
@@ -408,6 +410,7 @@ export default {
selectedVenueIdForVenueTab: null, // 选中的场地ID(场地Tab)
confirmDialogVisible: false,
isScheduleCompleted: false, // 是否已完成编排
+ exportPreviewVisible: false, // 导出预览对话框
loading: false,
autoArrangeLoading: false, // 自动编排加载状态
venues: [], // 场地列表(从后端加载)
@@ -448,7 +451,7 @@ export default {
const filtered = this.competitionGroups.filter(group => {
console.log(`分组"${group.title}": venueId=${group.venueId}(${typeof group.venueId}), timeSlotIndex=${group.timeSlotIndex}(${typeof group.timeSlotIndex})`)
- const venueMatch = group.venueId === this.selectedVenueId || Number(group.venueId) === Number(this.selectedVenueId)
+ const venueMatch = String(group.venueId) === String(this.selectedVenueId)
const timeMatch = group.timeSlotIndex === this.selectedTime
console.log(` 场地匹配:${venueMatch}, 时间匹配:${timeMatch}`)
return venueMatch && timeMatch
@@ -472,8 +475,7 @@ export default {
// 如果选中了场地,进一步过滤
if (this.selectedVenueIdForVenueTab) {
groupsInTimeSlot = groupsInTimeSlot.filter(group => {
- return group.venueId === this.selectedVenueIdForVenueTab ||
- Number(group.venueId) === Number(this.selectedVenueIdForVenueTab)
+ return String(group.venueId) === String(this.selectedVenueIdForVenueTab)
})
}