feat(前台): 登录后首页改成个人首页;题目详情页的代码要求挪到最前面、样例并排显示
- 登录后 / 是个人首页:继续学习、最近提交、进行中/即将开始的比赛、公告; 没登录仍是题目列表,题目列表另有 /problem 地址,顶栏「题目」指向它 - 继续学习按服务端留痕取最近打开的一课,不用 localStorage(机房一机多人) - 题目详情:标题下加难度与时空限制,代码要求提到最前,小节收紧, 样例输入/输出并排;工具栏「提交信息」「更多操作」改为「本题提交」「更多」 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d3823430f9
commit
31aa5f6e74
6 files changed
+731
-131
No files matched your search
@@ -0,0 +1,22 @@
|
||||
<script setup lang="ts">
|
||||
import { STORAGE_KEY } from "utils/constants"
|
||||
import storage from "utils/storage"
|
||||
import { useUserStore } from "shared/store/user"
|
||||
|
||||
// 两边都按需加载:没登录的访客只拿题目列表那一份,登录了的学生只拿首页那一份
|
||||
const Dashboard = defineAsyncComponent(() => import("./dashboard.vue"))
|
||||
const ProblemList = defineAsyncComponent(() => import("oj/problem/list.vue"))
|
||||
|
||||
const userStore = useUserStore()
|
||||
|
||||
// profile 回来之前先按上次的登录标记猜一个:干等的话 /profile 一失败首页就是
|
||||
// 白的,而先按「没登录」渲染又会让每个学生都先闪一下题目列表
|
||||
const showDashboard = computed(() =>
|
||||
userStore.isFinished ? userStore.isAuthed : !!storage.get(STORAGE_KEY.AUTHED),
|
||||
)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Dashboard v-if="showDashboard" />
|
||||
<ProblemList v-else />
|
||||
</template>
|
||||
Reference in new issue
Block a user