- 添加比赛创建向导,支持分步配置基础信息、分组管理、硬件绑定和题目配置 - 实现比赛卡片组件,支持复制和删除操作 - 优化比赛详情页的表单交互和样式 - 新增全局组件类型定义和图标 - 添加比赛海报上传功能 - 完善比赛状态管理,新增"已结束"状态
40 lines
953 B
Vue
40 lines
953 B
Vue
<script setup lang="ts">
|
|
import { useDialog, useLoadingBar, useMessage, useNotification } from 'naive-ui'
|
|
import { createTextVNode, defineComponent } from 'vue'
|
|
|
|
defineOptions({
|
|
name: 'AppProvider',
|
|
})
|
|
|
|
const ContextHolder = defineComponent({
|
|
name: 'ContextHolder',
|
|
setup() {
|
|
function register() {
|
|
window.$loadingBar = useLoadingBar() // 注册全局 loading bar
|
|
window.$dialog = useDialog()// 注册全局 dialog
|
|
window.$message = useMessage()// 注册全局 message
|
|
window.$notification = useNotification() // 注册全局 notification
|
|
}
|
|
|
|
register()
|
|
|
|
return () => createTextVNode()
|
|
},
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<NLoadingBarProvider>
|
|
<NDialogProvider>
|
|
<NNotificationProvider>
|
|
<NMessageProvider>
|
|
<ContextHolder />
|
|
<slot />
|
|
</NMessageProvider>
|
|
</NNotificationProvider>
|
|
</NDialogProvider>
|
|
</NLoadingBarProvider>
|
|
</template>
|
|
|
|
<style scoped></style>
|