-
dashboard_detail
+
+
+
+
+
+
+
+
+
+
+
+
+ 当前状态:
+
+ {{ isEdit ? '编辑中' : '预览中' }}
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
+
+ 编辑
+
+
+
+
+ 取消
+
+
+
+
+
+ 保存提交
+
+
+
+
+
+
+
+ 发布
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/admin/src/views/competition/competition-detail/modules/BasicInfoCard.vue b/apps/admin/src/views/competition/competition-detail/modules/BasicInfoCard.vue
new file mode 100644
index 0000000..6716e7a
--- /dev/null
+++ b/apps/admin/src/views/competition/competition-detail/modules/BasicInfoCard.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+ 基础信息
+
+
+
+
+
+
+ 赛事名称
+
+
+
+ {{ form.name }}
+
+
+
+
+
+
+ 起止时间
+
+
+
+
+
2026-06-01
+
/
+
2026-06-05
+
+
+
+
+
+
+ 参赛总人数
+
+
+
+ 人
+
+
+
+ {{ form.total }}人
+
+
+
+
+
+
+ 分组配额
+
+
+
+
+
+
+ 单组: {{ form.teamPerGroup }}队
+
+ 晋级: {{ form.promoteCount }}队
+
+
+
+
+
diff --git a/apps/admin/src/views/competition/competition-detail/modules/QuestionConfigCard.vue b/apps/admin/src/views/competition/competition-detail/modules/QuestionConfigCard.vue
new file mode 100644
index 0000000..6777494
--- /dev/null
+++ b/apps/admin/src/views/competition/competition-detail/modules/QuestionConfigCard.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ 题包配置
+
+
+
+
+ 批量重置
+
+
+ 快速配置
+
+
+
+
+
+
+
+
+
+
+
+ {{ type === 'regular' ? '常规赛题包' : '加时赛题包' }}
+
+
+ 配置详情
+
+
+
+
+
+
+
+
+ {{ type === 'regular' ? `第${i}题` : `PK${i}` }}:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ s
+
+
+
+
+
+
+
+
+
diff --git a/apps/admin/src/views/competition/competition-detail/modules/SideMenu.vue b/apps/admin/src/views/competition/competition-detail/modules/SideMenu.vue
new file mode 100644
index 0000000..4571738
--- /dev/null
+++ b/apps/admin/src/views/competition/competition-detail/modules/SideMenu.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+ #{{ item.code }}
+
+
{{ item.name }}
+
+
+
+
+
+
diff --git a/apps/admin/src/views/competition/competition-detail/modules/TeamListCard.vue b/apps/admin/src/views/competition/competition-detail/modules/TeamListCard.vue
new file mode 100644
index 0000000..afa9e29
--- /dev/null
+++ b/apps/admin/src/views/competition/competition-detail/modules/TeamListCard.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+ 参与队伍
+
+
+
+
+
+
+ TEAM 0{{ i }}
+
+
+
+
+
+
+
+
+
+ 重庆树人小学队伍
+
+
+ BPB-53H-1EN-RL
+
+
+
+
+
+
+
diff --git a/apps/admin/src/views/competition/competition-detail/modules/data.ts b/apps/admin/src/views/competition/competition-detail/modules/data.ts
new file mode 100644
index 0000000..dbdf4de
--- /dev/null
+++ b/apps/admin/src/views/competition/competition-detail/modules/data.ts
@@ -0,0 +1,70 @@
+// src/views/competition/modules/data.ts
+
+export interface CompetitionItem {
+ id: string
+ title: string
+ date: string
+ teamCount: number
+ status: 'ongoing' | 'pending' // ongoing: 进行中, pending: 未开始
+ isHighlight?: boolean // 用于标记第一个卡片的特殊背景
+}
+
+export const competitionList: CompetitionItem[] = [
+ {
+ id: '1',
+ title: '阅读之星大赛\n辞海遨游环节', // 使用换行符或在组件中处理换行
+ date: '2026.01.12',
+ teamCount: 40,
+ status: 'ongoing',
+ isHighlight: true,
+ },
+ {
+ id: '2',
+ title: '诗词大会总决赛',
+ date: '2026.01.12',
+ teamCount: 32,
+ status: 'pending',
+ },
+ {
+ id: '3',
+ title: '趣味百科大作战',
+ date: '2026.01.12',
+ teamCount: 32,
+ status: 'pending',
+ },
+ {
+ id: '4',
+ title: '经典文学研读周',
+ date: '2026.01.12',
+ teamCount: 32,
+ status: 'pending',
+ },
+ {
+ id: '5',
+ title: '未来科学家阅读赛',
+ date: '2026.01.12',
+ teamCount: 32,
+ status: 'pending',
+ },
+ {
+ id: '6',
+ title: '历史人文知识赛',
+ date: '2026.01.12',
+ teamCount: 32,
+ status: 'pending',
+ },
+ {
+ id: '7',
+ title: '少儿绘本创意营',
+ date: '2026.01.12',
+ teamCount: 32,
+ status: 'pending',
+ },
+ {
+ id: '8',
+ title: '唐诗三百首挑战',
+ date: '2026.01.12',
+ teamCount: 32,
+ status: 'pending',
+ },
+]
diff --git a/apps/admin/src/views/competition/competition-list/index.vue b/apps/admin/src/views/competition/competition-list/index.vue
index 179d0f6..dc9174f 100644
--- a/apps/admin/src/views/competition/competition-list/index.vue
+++ b/apps/admin/src/views/competition/competition-list/index.vue
@@ -1,17 +1,19 @@
@@ -39,11 +41,7 @@ function handleAdd() {
-
+
diff --git a/apps/admin/src/views/competition/competition-list/modules/competition-card.vue b/apps/admin/src/views/competition/competition-list/modules/competition-card.vue
index 29b9ca2..b1ae253 100644
--- a/apps/admin/src/views/competition/competition-list/modules/competition-card.vue
+++ b/apps/admin/src/views/competition/competition-list/modules/competition-card.vue
@@ -2,13 +2,16 @@
import type { CompetitionItem } from './data'
import { NButton, NCard, NTag } from 'naive-ui'
import { computed } from 'vue'
+import { useRouterPush } from '@/hooks/common/router'
+
+const props = defineProps
()
+
+const { routerPushByKey } = useRouterPush()
interface Props {
item: CompetitionItem
}
-const props = defineProps()
-
// 状态配置:颜色和文本
const statusConfig = computed(() => {
if (props.item.status === 'ongoing') {
@@ -19,13 +22,17 @@ const statusConfig = computed(() => {
// 处理标题换行
const formattedTitle = computed(() => props.item.title.replace(/\n/g, '
'))
+
+function toDetail(item: CompetitionItem) {
+ routerPushByKey('competition_competition-detail', { query: { id: item.id } })
+}
props.item.title.replace(/\n/g, '
'))
-
+
{{ statusConfig.text }}
@@ -66,12 +68,7 @@ const formattedTitle = computed(() => props.item.title.replace(/\n/g, '
'))
{{ item.teamCount }} 支参赛队伍
-
+
查看配置详情