- 所有页面共用顶栏(教程 / 挑战 / 自由创作 / 作品展,右边“教学”和用户菜单); 没登录时顶栏有“登录”按钮,关掉登录框不再白屏;/submission/:id 全屏页不带顶栏 - 后台改成“教学”侧栏,分出题 / 班级 / 管理三组;“全部提交”留在侧栏里打开; admin 也能进作品展管理(后端本来就允许) - 路由按角色守卫:meta.role 为 staff / super,学生和 admin 进不了无权页面 - 配色只在 theme.ts 定义,同时生成 --wp-* CSS 变量和 Naive UI 主题,暗色值先定好 - 图标改用打包进来的 lucide(断网也能显示),去掉 @iconify/vue 和 PUBLIC_ICONIFY_URL; 代码字体换成打包的 JetBrains Mono,编辑器默认字号 24 → 16 - 教程面板去掉和顶栏重复的切换和图标按钮,图标按钮都补上文字或提示 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e47fac1732
commit
ff1eb2982e
43 files changed
+837
-429
No files matched your search
+10
-23
@@ -1,32 +1,17 @@
|
||||
<script setup lang="ts">
|
||||
import { dateZhCN, zhCN } from "naive-ui"
|
||||
import type { GlobalThemeOverrides } from "naive-ui"
|
||||
import Login from "./components/Login.vue"
|
||||
import AppShell from "./components/layout/AppShell.vue"
|
||||
import { onMounted } from "vue"
|
||||
import { Account } from "./api"
|
||||
import { user } from "./store/user"
|
||||
import { useRoute } from "vue-router"
|
||||
import { loadUser } from "./store/session"
|
||||
import { light, naiveOverrides } from "./theme"
|
||||
import hljs from "highlight.js/lib/core"
|
||||
|
||||
const themeOverrides: GlobalThemeOverrides = {
|
||||
common: {
|
||||
borderRadius: "6px",
|
||||
borderRadiusSmall: "4px",
|
||||
},
|
||||
Card: {
|
||||
borderRadius: "8px",
|
||||
},
|
||||
}
|
||||
const route = useRoute()
|
||||
const themeOverrides = naiveOverrides(light)
|
||||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
const data = await Account.getMyProfile()
|
||||
user.loaded = true
|
||||
user.username = data.username
|
||||
user.role = data.role
|
||||
} catch {
|
||||
user.loaded = true
|
||||
}
|
||||
})
|
||||
onMounted(loadUser)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -40,7 +25,9 @@ onMounted(async () => {
|
||||
<n-modal-provider>
|
||||
<n-message-provider :max="1">
|
||||
<n-dialog-provider>
|
||||
<router-view></router-view>
|
||||
<!-- 全屏预览这类页面不要顶栏 -->
|
||||
<router-view v-if="route.meta.bare" />
|
||||
<AppShell v-else />
|
||||
<Login />
|
||||
</n-dialog-provider>
|
||||
</n-message-provider>
|
||||
|
||||
Reference in new issue
Block a user