feat(competition): 新增比赛活动管理功能模块

实现比赛活动的创建、编辑、详情查看功能,包括基础信息配置、分组管理、题库配置和硬件绑定
添加比赛列表页面的路由跳转逻辑,优化卡片点击交互
完善比赛详情页的编辑状态管理,支持基础信息和题包配置的修改
新增本地SVG图标资源,更新系统Logo组件样式
This commit is contained in:
2026-01-19 18:03:45 +08:00
parent 77315b36ed
commit d13077a3f1
24 changed files with 971 additions and 200 deletions

View File

@ -0,0 +1,57 @@
<script setup lang="ts">
import { NCard, NDatePicker, NForm, NFormItemGi, NGrid, NInput, NInputNumber } from 'naive-ui'
import { reactive, useTemplateRef } from 'vue'
const formRef = useTemplateRef('formRef')
const formData = reactive({
name: '阅读之星年度总决赛',
startTime: null,
endTime: null,
groupCount: 40,
teamCount: 4,
})
defineExpose({
formRef,
formData,
})
</script>
<template>
<NCard :bordered="false" class="rounded-xl shadow-sm">
<div class="mb-4 flex items-center gap-2 border-l-4 border-blue-600 pl-3">
<span class="text-base font-bold">基础活动信息</span>
</div>
<NForm ref="formRef" label-placement="top" :show-feedback="false">
<NGrid :x-gap="24" :y-gap="24" cols="1 s:2 m:4 l:5" responsive="screen">
<NFormItemGi span="1" label="比赛名称">
<NInput v-model:value="formData.name" placeholder="请输入比赛名称" />
</NFormItemGi>
<NFormItemGi label="开始时间">
<NDatePicker
v-model:value="formData.startTime" type="datetime" clearable class="w-full"
placeholder="年 / 月 / 日 --:--"
/>
</NFormItemGi>
<NFormItemGi label="结束时间">
<NDatePicker
v-model:value="formData.endTime" type="datetime" clearable class="w-full"
placeholder="年 / 月 / 日 --:--"
/>
</NFormItemGi>
<NFormItemGi label="小组总数">
<NInputNumber v-model:value="formData.groupCount" class="w-full" />
</NFormItemGi>
<NFormItemGi label="单组队伍">
<NInputNumber v-model:value="formData.teamCount" class="w-full" />
</NFormItemGi>
</NGrid>
</NForm>
</NCard>
</template>