feat(competition): 新增比赛管理功能并优化UI交互
- 添加比赛创建向导,支持分步配置基础信息、分组管理、硬件绑定和题目配置 - 实现比赛卡片组件,支持复制和删除操作 - 优化比赛详情页的表单交互和样式 - 新增全局组件类型定义和图标 - 添加比赛海报上传功能 - 完善比赛状态管理,新增"已结束"状态
This commit is contained in:
@ -1,15 +1,15 @@
|
||||
<script setup lang="ts">
|
||||
import { NCard, NDatePicker, NGrid, NGridItem, NInput, NInputNumber } from 'naive-ui'
|
||||
import { reactive } from 'vue'
|
||||
import { ref } from 'vue'
|
||||
|
||||
defineProps<{ isEdit: boolean }>()
|
||||
|
||||
const form = reactive({
|
||||
const form = ref({
|
||||
name: '第九届阅读之星大赛',
|
||||
dateRange: null,
|
||||
total: 40,
|
||||
teamPerGroup: 4,
|
||||
promoteCount: 4,
|
||||
total: 40, // 参赛队伍总数
|
||||
teamPerGroup: 4, // 单组队伍数量
|
||||
promoteCount: 10, // 队伍数量
|
||||
})
|
||||
</script>
|
||||
|
||||
@ -48,15 +48,15 @@ const form = reactive({
|
||||
<!-- 参赛总人数 -->
|
||||
<NGridItem>
|
||||
<div class="mb-2 text-xs text-gray-400 font-medium">
|
||||
参赛总人数
|
||||
参赛队伍总数
|
||||
</div>
|
||||
<NInputNumber v-if="isEdit" v-model:value="form.total" :disabled="true" :show-button="false">
|
||||
<template #suffix>
|
||||
人
|
||||
对
|
||||
</template>
|
||||
</NInputNumber>
|
||||
<div v-else class="inline-flex items-center rounded bg-blue-100 px-2.5 py-0.5 text-sm text-blue-700 font-bold">
|
||||
{{ form.total }}人
|
||||
{{ form.total }}对
|
||||
</div>
|
||||
</NGridItem>
|
||||
|
||||
@ -70,9 +70,9 @@ const form = reactive({
|
||||
<NInputNumber v-model:value="form.promoteCount" :disabled="true" size="small" placeholder="晋级" :show-button="false" />
|
||||
</div>
|
||||
<div v-else class="flex items-center gap-3 text-sm text-gray-700">
|
||||
<span>单组: <strong>{{ form.teamPerGroup }}队</strong></span>
|
||||
<span>单组队伍: <strong>{{ form.teamPerGroup }}队</strong></span>
|
||||
<span class="h-3 w-[1px] bg-gray-300" />
|
||||
<span>晋级: <strong>{{ form.promoteCount }}队</strong></span>
|
||||
<span>队伍数量: <strong>{{ form.promoteCount }}队</strong></span>
|
||||
</div>
|
||||
</NGridItem>
|
||||
</NGrid>
|
||||
|
||||
Reference in New Issue
Block a user