Commit Graph

13 Commits

Author SHA1 Message Date
ae540a1a70 feat: PDF 页签从 iframe 改为构建期组件挂载,清理 iframe 配置与文档
前后端分离:UI/交互在 zPDF_package,能力由 zTools2 的 /api/pdf/* REST API 提供。
组件经同源 fetch 调用,httpOnly cookie(zk_pdf)经反代第一方自动携带,无需 CORS。
与 timeTableFix 集成范式完全一致。

- src/modules/pdf/Pdf.vue:iframe 包装器重写为组件挂载包装器,套 PageShell +
  透传 :locale;删除 pageSrc/getLiveness/scheduleFailCheck/openExternal 等 iframe 逻辑
- src/modules/pdf/index.js:注释从 iframe 改为构建期组件 import(requiresAlive 探针保留)
- src/config/app.config.js:移除 pdf.pagePath(iframe src),保留探针配置
- src/i18n/{zh-CN,en}.js:移除 pdf.openExternal(iframe 降级按钮文案,已无用)
- docs/submodule-zPDF_package.md:集成方式改为构建期组件 import,补 cookie 认证说明
- docs/deployment.md:拓扑去 /api/pdf 页面行,措辞改为组件 fetch
- third_party/zPDF_package:子模块指针升级到 4d12b61(去 iframe 表述)
2026-07-27 17:14:07 +08:00
304ebc9448 feat: 配置简化为同源相对路径,统一 /api/ 路由约定
配合 zTools2 路由统一到 /api/,简化环境感知配置:
- app.config.js:去掉 BASE_URL 的 dev/prod 分支,iframe 与探针一律用同源相对路径
  (/api/pdf、/api/health、/api/wb-page/{id}),默认空 baseUrl;保留 VITE_API_BASE 覆盖。
  这样无论 dev(vite proxy)还是任意部署环境(反代),同源相对路径都自动指向当前环境 zTools2,
  不再误打到 f.zikai.wang 等其它环境域名。
- vite.config.js:dev proxy 从 /api /pdf /health /static /upload /files /wb /ws 多条
  简化为单条 /api(含 ws:true,覆盖 /api/ws WebSocket)。
- deploy.sh:Apache vhost 从多条 ProxyPass 简化为单条 /api/,a2enmod 增加 proxy_wstunnel。
- docs/deployment.md:更新拓扑/模式说明,新增路由约定(所有入口在 /api/ 下,反代只需一条规则)。
- 同步更新 zPDF_package 子模块指针(其 vite proxy 亦简化为单条 /api)。
2026-07-27 15:44:49 +08:00
04f11b5432 feat: 新增 PDF 转换页签(iframe 嵌入 zTools2 /pdf,zPDF_package 子模块)
mainPage 用 iframe 嵌入 zTools2 同源托管的 /pdf 页面(PDF 转换:上传 epub、
进度显示、下载、用户软删/管理员硬删)。同源使 cookie 第一方生效,无需 CORS。

- src/modules/pdf/:页签模块(requiresAlive 存活校验 + iframe + 降级提示)
- src/config/app.config.js:新增 pdf 服务配置(baseUrl/healthPath/pagePath)
- i18n:tabs.pdf 中英文案 + pdf.openExternal
- third_party/zPDF_package:git submodule(源码管理,iframe 集成非构建期编译)
- docs/submodule-zPDF_package.md:集成/升级/移除文档
- README:更新结构、子模块列表、文档链接
2026-07-27 11:35:28 +08:00
3e5c1d5494 feat: 升级 timeTableFix 子模块(时区选择)+ 修正 README 构建路径
- 子模块 timeTableFix 升级至时区选择版本:加载自动检测用户时区,取不到
  回退墨尔本;仅作新建事件默认 tzid 与下载 ICS 的 X-WR-TIMEZONE,不换算
- 修正 README:构建输出到 dist/(非 /root/html),由 npm run deploy rsync
  到站点根;补 npm run deploy 命令;细节记于 docs/readme-fixes.md
- 集成构建验证通过(npm run build)
2026-07-27 09:51:43 +08:00
Zikai
cb50c23c84 chore: 页脚移除 'Built with Vue 3' 字样
- 页脚仅保留版权年份,去掉技术栈宣传文字
- 同步更新 timeTableFix 子模块 gitlink(导入按钮高亮)
- 移除无用的 .footer__dot 样式
2026-07-24 09:25:37 +00:00
Zikai
05a594d0cb docs: 更新 timeTableFix 子模块 gitlink 2026-07-24 09:16:24 +00:00
Zikai
08c1b457e4 docs: 精简 README(结构/依赖/使用),更新子模块 gitlink
- mainPage README 精简为结构/外部依赖/如何使用/开发命令
- 子模块 z449 (9ed486c) / timeTableFix (78d7afe) README 同步精简,细节移至各自 docs/
2026-07-24 09:15:38 +00:00
Zikai
d9309756c7 fix: 子模块 i18n 桥接 -- 透传 :locale prop,修复嵌入页显示 i18n ID
根因:子项目组件用 useI18n({useScope:'global'}) 注入,嵌入时解析到宿主
mainPage 的 i18n 实例(不含子项目文案)-> 文案回退成 key(显示 ID)。

修复:
- z449 / timeTableFix 组件改用 useLocale composable 直读自身模块级 i18n 实例
- ttf 新增独立 i18n(中英 locale + useLocale),抽取所有硬编码中文
- mainPage 侧 Timetable/MobileGameWrapper 包装器透传 :locale prop
- 两个子模块 gitlink 更新至各自修复 commit

验证:构建后两个子模块 chunk 含真实中文文案,无 useI18n 注入残留
2026-07-24 09:02:38 +00:00
Zikai
6ad6c15e9d feat: 拆分移动游戏项目为独立 z449 子模块(git submodule + i18n prop 桥接)
- mobile-game 模块源码迁出至独立仓库 z449(third_party/z449),独立可渲染/维护
- z449 App.vue 为便携式组件:自带独立 vue-i18n 实例与 locale 文案
- mainPage 侧 MobileGameWrapper 透传 :locale prop,子模块 watch 同步语言
- mainPage i18n 精简:仅保留 tabs.mobileGame,删除 mobileGame.* 大块文案
- 文档:新增 docs/submodule-z449.md,更新 README/architecture/add-module
2026-07-23 07:04:08 +00:00
61e65052d4 fix: 补语义令牌修复嵌入页下载按钮不可见 + 停用 /ttf/ 独立入口
- variables.css 补 --success/--danger/--warn 等语义令牌:timeTableFix 嵌入时
  其按钮(btn-success/danger)依赖这些令牌,缺失会导致背景/边框为空、按钮不可见
- docs/submodule-timeTableFix.md 移除 /ttf/ 独立访问说明(已停用)
- 升级 timeTableFix 子模块至 2d7b8d0(README 移除 systemd 部署)
2026-07-23 04:46:40 +00:00
b511998372 chore: 升级 timeTableFix 子模块至 c68d106(前端视觉与 mainPage 协调)
子模块前端改为浅色极简 + 靛蓝主色,与主页视觉统一;
设计令牌对齐,嵌入时由宿主 :root 令牌驱动。
2026-07-23 04:24:34 +00:00
a844f364dc refactor: 引入 PageShell 统一页面外壳,高内聚低耦合
- 新增可复用 PageShell 组件(titleKey/fluid/padded + actions 插槽),
  统一容器宽度(1080px)、垂直节奏与标题,消除各模块重复包裹
- whiteboard/calendar/mobile-game 全部改用 PageShell,去掉各自手写的
  .container/.__inner/.__title 重复样式;calendar 用 fluid 全宽变体
- timetable 改用 mainPage 侧包装器 Timetable.vue:import 子模块 App.vue
  套 PageShell(对齐其他页宽度),并持有 KeepAlive 匹配名 name:'timetable'
- 子模块 timeTableFix 的 App.vue 去掉 defineOptions(保持纯净),name 约定
  由 mainPage 包装器持有,消除跨仓库脆弱约定;submodule 升级到 17aeea8
- 注册表清理:去掉无效 try/catch,order 缺省改 999(避免与 hidden 页 99 冲突),
  注释文档化全部元数据字段与 KeepAlive 约定
- 新增页签照 timetable 模式复用 PageShell,注册方式一致
2026-07-23 04:04:40 +00:00
91d55f1b11 feat: timeTableFix 改为构建期组件集成 + git submodule
- 弃用 iframe 嵌入:直接 import 子模块 timeTableFix 的 App.vue 为懒加载路由
  组件,共享 mainPage 构建/依赖(ical.js)/KeepAlive 缓存,无运行期割裂
- git submodule 接入 third_party/timeTableFix(固定到 a49a725),.gitmodules
  使用无凭据 URL;.gitignore 忽略子模块 node_modules
- 删旧 iframe 包装组件 Timetable.vue,移除 app.config 中 timeTableFix 配置
- timetable 模块不再 requiresAlive(构建期已打包,无远程依赖)
- README 更新:项目结构、submodule clone/升级流程、存活校验描述
- 子模块样式隔离(scoped + ttf- 前缀)已在 timeTableFix 侧完成,无泄漏
2026-07-23 02:54:00 +00:00