Files
reader-star/apps/admin/src/components/common/app-provider.vue
rjl 3270e24c25 feat(competition): 新增比赛管理功能并优化UI交互
- 添加比赛创建向导,支持分步配置基础信息、分组管理、硬件绑定和题目配置
- 实现比赛卡片组件,支持复制和删除操作
- 优化比赛详情页的表单交互和样式
- 新增全局组件类型定义和图标
- 添加比赛海报上传功能
- 完善比赛状态管理,新增"已结束"状态
2026-01-21 08:41:36 +08:00

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>