fix(前端): 接回阶段 2 临时关掉、之后忘了打开的配置推送和 MaxKB
扫前端死代码时发现 apps/web 比 ojnext 多两个"没人调用的导出":
useConfigUpdate 和 useMaxKB。查下去不是死代码,是**搬运时丢的接线** ——
ojnext 的 App.vue 调了这两个,apps/web 的没调,那里留着一句:
// 配置推送和 MaxKB 仍属于 Phase 3;在它们迁入前不连接旧 WebSocket。
阶段 2 因为后端还没有 /ws/config 而暂时关掉,说好阶段 3 迁完再开,然后就忘了。
阶段 3 早已完成。
表现是两个**静默**的功能缺失:管理员改站点配置后学生要刷新才生效;
知识库挂件根本不出现。都不报错,所以此前所有验证都没发现 ——
包括我昨天那轮浏览器走查,因为我不知道该期待它们出现。
## 验证
后端侧本来就是齐的(POST /admin/website 里已经调 publishConfigUpdate)。
接回来之后实测:
- 浏览器控制台出现 `[WebSocket] 连接成功: ws://localhost:8080/ws/config`
(之前根本不会连)
- 改站点名 → 收到 8 条 config_update 推送
- **页面全程不刷新,站点名从"判题狗-推送测试"自己变成"判题狗-实时生效了"**
中途我一度断言"configUpdateChannel 没有任何发布者",那是错的 ——
路由调的是封装函数 publishConfigUpdate,我 grep 的是常量名。
## 顺带:两边前端的死代码规模已对齐
各 7 个没人调用的导出函数 + 2 个没人引用的 .vue。检测器已确认
unplugin-vue-components 只解析 Naive UI(无 src/components 目录),
本地组件必须显式 import,所以"没人 import"的判定是可靠的;
并用 3 个明确在用的导出反测过检测器本身。这批还没删。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,8 @@ import { darkTheme, dateZhCN, zhCN } from "naive-ui"
|
||||
import "normalize.css"
|
||||
import "./index.css"
|
||||
import { useConfigStore } from "shared/store/config"
|
||||
import { useConfigUpdate } from "shared/composables/configUpdate"
|
||||
import { useMaxKB } from "shared/composables/maxkb"
|
||||
import { useUserStore } from "shared/store/user"
|
||||
|
||||
const isDark = useDark()
|
||||
@@ -15,7 +17,11 @@ onMounted(() => {
|
||||
userStore.getMyProfile()
|
||||
})
|
||||
|
||||
// 配置推送和 MaxKB 仍属于 Phase 3;在它们迁入前不连接旧 WebSocket。
|
||||
// 配置实时推送 + MaxKB 挂件。阶段 2 时因为后端还没有 /ws/config 而暂时关掉,
|
||||
// 阶段 3 迁完之后一直没接回来 —— 表现是管理员改站点配置后学生要刷新才生效、
|
||||
// 知识库挂件根本不出现,且没有任何报错。两者现在都走新后端的 /ws/config。
|
||||
useConfigUpdate()
|
||||
useMaxKB()
|
||||
|
||||
// 延迟加载 highlight.js,避免阻塞首屏
|
||||
const hljsInstance = ref<any>(null)
|
||||
|
||||
Reference in New Issue
Block a user