死代码移除: - useWhiteboard.js: 移除未使用的 suppressInput 变量及 6 处赋值; 移除 isInputSuppressed / _getSuppressInput / _setEditor 导出; scheduleSend 从公开 API 降为内部函数; setStatus 移除未用 isErr 形参 - useLocale.js: 移除未用的 isZh/pick/locale 返回值及 computed 导入 - App.vue: 移除未用的 ref 导入 - i18n locales: 移除 5 个死 key (switch/copied/copiedLink/copyFailed/emptyText) 提前失败/日志: - 7 处 silent catch (send/connect/onerror/onMessage JSON.parse/ applyRemoteUpdate setSelectionRange/connectBoard 预取/teardownSocket) 全部加 console.error/warn, 统一 [zWB] 前缀 - App.vue onCopyText/onCopyLink 失败 console.warn 文档: - 新增 docs/error-handling.md, docs/integration.md - README.md 重写为简洁版 (简介/结构/外部依赖/Ubuntu 安装使用/docs 链接)
1.1 KiB
1.1 KiB
嵌入 mainPage
zWhiteBoard 作为 mainPage 的 git submodule(third_party/zWhiteBoard),经构建期组件 import 集成(非 iframe,与 timeTableFix / zPDF_package 同范式)。
集成方式
- mainPage 侧
src/modules/whiteboard/Whiteboard.vue套PageShell并透传:locale/:boardIdprops。 - 构建期直接
import本项目src/App.vue,共享 mainPage 的构建与 KeepAlive 缓存。 - 组件内
useWhiteboard.js同源 fetch/api/wb/*与 WS/api/ws/wb/*,反代第一方自动携带 cookie,无需 CORS。
便携式设计(无 host 依赖)
组件自身保持「无 host 依赖」:
- 不持
defineOptions({ name })(避免与宿主组件名冲突)。 - 不引 mainPage 的 i18n,仅靠
:localeprop 驱动自有 i18n 实例。 useLocale直接读本子项目模块级i18n.global,而非useI18n()(后者嵌入时会解析到宿主实例,文案回退成 key)。App.vue仅经:boardIdprop 决定连哪个白板,不耦合宿主路由。
详见 mainPage 的 docs/submodule-zWhiteBoard.md。