diff --git a/apps/admin/src/assets/imgs/add-f1.png b/apps/admin/src/assets/imgs/add-f1.png new file mode 100644 index 0000000..78a66ff Binary files /dev/null and b/apps/admin/src/assets/imgs/add-f1.png differ diff --git a/apps/admin/src/components/common/app-provider.vue b/apps/admin/src/components/common/app-provider.vue index 810afe5..17833ac 100644 --- a/apps/admin/src/components/common/app-provider.vue +++ b/apps/admin/src/components/common/app-provider.vue @@ -10,10 +10,10 @@ const ContextHolder = defineComponent({ name: 'ContextHolder', setup() { function register() { - window.$loadingBar = useLoadingBar() - window.$dialog = useDialog() - window.$message = useMessage() - window.$notification = useNotification() + window.$loadingBar = useLoadingBar() // 注册全局 loading bar + window.$dialog = useDialog()// 注册全局 dialog + window.$message = useMessage()// 注册全局 message + window.$notification = useNotification() // 注册全局 notification } register() diff --git a/apps/admin/src/views/competition/competition-add/index.vue b/apps/admin/src/views/competition/competition-add/index.vue index 1b4e72c..5ee98e2 100644 --- a/apps/admin/src/views/competition/competition-add/index.vue +++ b/apps/admin/src/views/competition/competition-add/index.vue @@ -1,64 +1,182 @@ - - - - - - 比赛配置编辑 - - - 正在编辑:阅读之星年度总决赛 - + + + + + + + + + + + + 比赛创建向导 + + + Setup Configuration Wizard + + + + + + + + + + + + + + + + + - - 存为草稿 - - 发布比赛 + + + + + competitionData = val" + /> + + + + + + + + Configuration Progress + + + Step {{ currentStep }} of 4 + + + + + 上一步 - - - - - - - - - - - - - - - - - - - - + + {{ currentStep === 4 ? '完成并发布' : '下一步' }} + + + + - - diff --git a/apps/admin/src/views/competition/competition-add/modules/BasicInfo.vue b/apps/admin/src/views/competition/competition-add/modules/BasicInfo.vue index e522867..06a40d0 100644 --- a/apps/admin/src/views/competition/competition-add/modules/BasicInfo.vue +++ b/apps/admin/src/views/competition/competition-add/modules/BasicInfo.vue @@ -1,6 +1,6 @@ - - - 基础活动信息 + + + + + + 第一步: 基础定义 + + + 请确认比赛名称与参与规模。这将作为系统自动生成分组与终端连接数的依据。 + + + + + + + 比赛项目名称 + + + + + + + + 开始时间 + + + + + + 结束时间 + + + + + + + + + + 参赛小组总数 (GROUPS) + + + + + - + + + + + + + + + + + + + + 系统将预设 {{ formData.groupCount }} 个队伍 + + + + + + + 单组包含队伍 (TEAMS) + + + + + - + + + + + + + + + + + + + + 每组将有 {{ formData.teamCount }} 支队伍同时进行比赛 + + + + - - - - - - - - - - - - - - - - - (对) - - - - - (对) - - - - + + + + 活动海报 + + + 建议上传 16:9 或 4:3 比例的图片,以获得最佳的全屏显示效果。 + + + + + + + + + + 更换 + + + 删除 + + + + + + + 点击上传海报 + 支持 JPG/PNG 格式 + + + + + + + diff --git a/apps/admin/src/views/competition/competition-add/modules/GroupManagement.vue b/apps/admin/src/views/competition/competition-add/modules/GroupManagement.vue index eba37c5..dce753c 100644 --- a/apps/admin/src/views/competition/competition-add/modules/GroupManagement.vue +++ b/apps/admin/src/views/competition/competition-add/modules/GroupManagement.vue @@ -1,5 +1,5 @@ - - - - - - - 您可以通过Excel模版批量导入队伍名称 - - - - - - - - Excel批量导入 - - - - - - 添加分组 - - + + + + + + 参赛名单录入 + + + 系统已根据您的设置生成了 {{ groups.length }} 个分组。您可以手动填写或批量导入。 + + + + + + Excel 导入名单 + - + - - - {{ group.name }} - - ID: {{ group.id }} - + + + {{ group.name }} - - - NO.{{ String(i).padStart(2, '0') }} 队名 + + + TEAM {{ tIndex + 1 }} - + diff --git a/apps/admin/src/views/competition/competition-add/modules/HardwareBinding.vue b/apps/admin/src/views/competition/competition-add/modules/HardwareBinding.vue index 43a0d62..0ca6477 100644 --- a/apps/admin/src/views/competition/competition-add/modules/HardwareBinding.vue +++ b/apps/admin/src/views/competition/competition-add/modules/HardwareBinding.vue @@ -1,44 +1,77 @@ - + + + + 点阵笔硬件绑定 + + + 请将点阵笔序列号 (SN) 绑定至对应队伍。建议使用扫码枪快速录入。 + + + - - + + 自动发现模式已开启 @@ -52,38 +85,24 @@ const hardwareGroups = ref([ - - - 分组 {{ group.groupId }} 硬件状态 + + + 硬件绑定: 第 {{ idx + 1 }} 分组 - - + + {{ pen.label }} - - 笔SN编号 (如: SN88219) - - + v-model:value="pen.sn" size="small" placeholder="点阵笔 SN" class="bg-transparent" + :bordered="false" + /> - - + + @@ -93,11 +112,12 @@ const hardwareGroups = ref([ diff --git a/apps/admin/src/views/competition/competition-add/modules/QuestionConfig.vue b/apps/admin/src/views/competition/competition-add/modules/QuestionConfig.vue index 48dba32..191b9a4 100644 --- a/apps/admin/src/views/competition/competition-add/modules/QuestionConfig.vue +++ b/apps/admin/src/views/competition/competition-add/modules/QuestionConfig.vue @@ -1,6 +1,15 @@ + + 比赛赛题包配置 + - + - 常规赛题包 + 主赛环节 - 共 {{ regularQuestions.length }} 题 / 总计 {{ regularTotalScore }} 分 + 共 {{ props.modelValue?.questions?.regular?.length || 0 }} 题 / 总计 {{ regularTotalScore }} 分 @@ -141,22 +154,22 @@ const pkTotalScore = computed(() => pkQuestions.value.reduce((acc, cur) => acc + - + - 加时赛题包 + 加时PK环节 - 共 {{ pkQuestions.length }} 题 / 总计 {{ pkTotalScore }} 分 + 共 {{ props.modelValue?.questions?.pk?.length || 0 }} 题 / 总计 {{ pkTotalScore }} 分 diff --git a/apps/admin/src/views/competition/competition-detail/modules/BasicInfoCard.vue b/apps/admin/src/views/competition/competition-detail/modules/BasicInfoCard.vue index 8911294..7e5dd03 100644 --- a/apps/admin/src/views/competition/competition-detail/modules/BasicInfoCard.vue +++ b/apps/admin/src/views/competition/competition-detail/modules/BasicInfoCard.vue @@ -1,15 +1,15 @@ @@ -48,15 +48,15 @@ const form = reactive({ - 参赛总人数 + 参赛队伍总数 - 人 + 对 - {{ form.total }}人 + {{ form.total }}对 @@ -70,9 +70,9 @@ const form = reactive({ - 单组: {{ form.teamPerGroup }}队 + 单组队伍: {{ form.teamPerGroup }}队 - 晋级: {{ form.promoteCount }}队 + 队伍数量: {{ 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 index 1c71776..8c52a6e 100644 --- a/apps/admin/src/views/competition/competition-detail/modules/QuestionConfigCard.vue +++ b/apps/admin/src/views/competition/competition-detail/modules/QuestionConfigCard.vue @@ -1,5 +1,6 @@ @@ -20,69 +85,102 @@ const scoreOptions = [ - + 批量重置 - + 快速配置 - - - - - - - {{ type === 'regular' ? '常规赛题包' : '加时赛题包' }} + + + + + + 常规赛题包 - - 共 {{ type === 'regular' ? 10 : 5 }} 题 / 总计 {{ type === 'regular' ? 10 : 7 }} 分 + + 共 {{ regularQuestions.length }} 题 / 总计 {{ regularTotalScore }} 分 - - - - - - - {{ type === 'regular' ? `第${i}题` : `PK${i}` }}: + + + + {{ item.label }}: - - - - - - + + s + + + + + + + + + + + + + 加时赛题包 + + + 共 {{ pkQuestions.length }} 题 / 总计 {{ pkTotalScore }} 分 + + + + + + {{ item.label }}: + + + + + + + + + + + + + + + + + + 秒 + + + + + + + + 取消 + + + 应用 + + + + diff --git a/apps/admin/src/views/competition/competition-list/index.vue b/apps/admin/src/views/competition/competition-list/index.vue index dc9174f..f8f81b8 100644 --- a/apps/admin/src/views/competition/competition-list/index.vue +++ b/apps/admin/src/views/competition/competition-list/index.vue @@ -1,19 +1,29 @@ @@ -42,9 +52,11 @@ 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 b1ae253..f02c0b1 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 @@ -1,11 +1,16 @@ - + + + + + + + + + + + + 复制活动 + + + + + + + + + + + 删除活动 + + + @@ -57,15 +130,16 @@ function toDetail(item: CompetitionItem) { /> - - - {{ item.date }} + + + {{ item.date }} - + + {{ item.teamCount }} 支参赛队伍 diff --git a/apps/admin/src/views/competition/competition-list/modules/data.ts b/apps/admin/src/views/competition/competition-list/modules/data.ts index dbdf4de..030c142 100644 --- a/apps/admin/src/views/competition/competition-list/modules/data.ts +++ b/apps/admin/src/views/competition/competition-list/modules/data.ts @@ -5,7 +5,7 @@ export interface CompetitionItem { title: string date: string teamCount: number - status: 'ongoing' | 'pending' // ongoing: 进行中, pending: 未开始 + status: 'ongoing' | 'pending' | 'ended' // ongoing: 进行中, pending: 未开始, ended: 已结束 isHighlight?: boolean // 用于标记第一个卡片的特殊背景 } @@ -30,7 +30,7 @@ export const competitionList: CompetitionItem[] = [ title: '趣味百科大作战', date: '2026.01.12', teamCount: 32, - status: 'pending', + status: 'ended', }, { id: '4',
- 正在编辑:阅读之星年度总决赛 -
+ 请确认比赛名称与参与规模。这将作为系统自动生成分组与终端连接数的依据。 +
+ 系统已根据您的设置生成了 {{ groups.length }} 个分组。您可以手动填写或批量导入。 +
+ 请将点阵笔序列号 (SN) 绑定至对应队伍。建议使用扫码枪快速录入。 +