Files
crawler-plugin/admin-frontend-vue
huangzd1997 9166656673 perf(C6): 去重总数据列表顺序翻页改 keyset(前后端契约一起改)
背景:列表页 `ORDER BY id DESC LIMIT offset,size`,带筛选且选择性低时每页都要
对命中集做一次 filesort;深翻页 offset 也白扫索引。

改法(保持跳页/回退/改每页的原有行为):
- 后端:page 接口新增可选 `last_id` 游标 —— 传了就 `id < lastId` + `LIMIT size`(无 offset),
  响应新增 `nextLastId`(本页最后一行 id);不传仍是原 OFFSET 分页
- 管理前端:只有"下一页"用游标(上一页响应带回),跳页/改每页/筛选清空游标走 OFFSET
- 测试:新增 2 个后端契约测试(keyset 无 offset + nextLastId;无游标保持 LIMIT 30,15)

验证:mvn test 2897 全绿;admin-frontend-vue vue-tsc 通过 + 1619 测试全绿;
已部署 JAR 2b9ab774c60c3f5d802c9a2cee549008(双节点 health=200)与 admin-vue-20260914-112055。
2026-09-14 11:21:40 +08:00
..

Admin Frontend Vue

独立的后台管理前端工程,与客户端 frontend-vue 完全分离。

本地开发

npm install
$env:VITE_API_TARGET = "http://127.0.0.1:18080"
npm run dev

开发入口:http://localhost:5174/admin-vue/

构建

npm run build
npm test

构建产物在 dist/,部署到 Nginx 的 /admin-vue/ 根目录。该工程不写入客户端的 new_web_source,也不打进 Java JAR。

运行时契约

  • 登录态:复用同源 Cookie/Session。
  • 当前用户:GET /api/admin/current-user
  • 菜单树:GET /api/admin/current-user/menusJava 返回树形菜单。
  • 退出登录:POST /api/admin/logout
  • 前端路由:History 模式,基准路径 /admin-vue/
  • 权限粒度:菜单/页面级,不定义按钮级权限。

首批页面

  • /admin-vue/account/users
  • /admin-vue/account/menus
  • /admin-vue/account/groups

当前首批页面已接入 Java 现有用户、菜单和数据权限分组 API;Java 菜单接口完成树形响应和 Flyway 菜单迁移后,路由权限守卫即可按最终菜单树工作。