style(header): 演示模式菜单文案改为「进入演示 / 退出演示」
Some checks failed
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled

两端都是四字,动作对称。spec 与 plan 文档同步更新。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-26 07:51:11 -06:00
parent bd6c5d19f8
commit 6766c4dcd5
4 changed files with 14 additions and 16 deletions

View File

@@ -212,7 +212,7 @@ const options = computed<Array<DropdownOption | DropdownDividerOption>>(() => [
并把第 227 行的结尾 `]` 改为 `])`
**这一步是必需的,不是风格偏好**:原来的 `options` 是普通数组,只在 setup 时求值一次。新菜单项的 `label`(「学生视角」/「退出学生视角」)和 `show` 都要跟随状态变化,留在普通数组里永远不会更新。同文件的 `menus`(第 119 行)本来就是 computed改完两者一致。
**这一步是必需的,不是风格偏好**:原来的 `options` 是普通数组,只在 setup 时求值一次。新菜单项的 `label`(「进入演示」/「退出演示」)和 `show` 都要跟随状态变化,留在普通数组里永远不会更新。同文件的 `menus`(第 119 行)本来就是 computed改完两者一致。
模板里 `:options="options"`(第 280 行不用动computed 在模板中自动解包。
@@ -239,7 +239,7 @@ function handleToggleDemoMode() {
```ts
{
label: userStore.demoMode ? "退出学生视角" : "学生视角",
label: userStore.demoMode ? "退出演示" : "进入演示",
key: "demo-mode",
show: userStore.canToggleDemoMode,
icon: renderIcon("fluent-emoji:graduation-cap"),
@@ -247,7 +247,7 @@ function handleToggleDemoMode() {
},
```
文案本身就是状态指示器:看到「退出学生视角」说明当前正处于演示模式。按设计不额外加横幅。
文案本身就是状态指示器:看到「退出演示」说明当前正处于演示模式。按设计不额外加横幅。
- [ ] **Step 4: 格式化并冒烟构建**
@@ -265,12 +265,12 @@ Expected: 构建成功,无报错。
用超管账号登录,逐项核对:
1. 右上角用户名下拉菜单出现「学生视角」,图标正常显示(不是空白方块)
2. 点击 →「后台」菜单项消失,下拉菜单文案变为「退出学生视角
3. 刷新页面 → 仍是学生界面,菜单仍显示「退出学生视角
1. 右上角用户名下拉菜单出现「进入演示」,图标正常显示(不是空白方块)
2. 点击 →「后台」菜单项消失,下拉菜单文案变为「退出演示
3. 刷新页面 → 仍是学生界面,菜单仍显示「退出演示
4. 地址栏直接输入 `/admin` → 弹回首页
5. 点「退出学生视角」→「后台」入口恢复,文案变回「学生视角
6. 进入 `/admin/problem/list`,打开下拉菜单点「学生视角」→ 自动跳回首页
5. 点「退出演示」→「后台」入口恢复,文案变回「进入演示
6. 进入 `/admin/problem/list`,打开下拉菜单点「进入演示」→ 自动跳回首页
7. 退出登录后重新用超管登录 → 演示模式已重置为关闭状态
8. 用教师管理员账号登录 → 下拉菜单中**没有**这一项