Files
workspace/code/fms/.workbuddy/memory/MEMORY.md
T
2026-08-02 22:05:44 +08:00

1.5 KiB
Raw Blame History

FMS 项目长期记忆

设计令牌作用域(重要踩坑)

  • --fms-* 设计令牌必须在 :root 上定义(全局),不能只放在 .theme-root。
  • 原因:a-modal 等 antdv 组件默认 teleport 到 <body>,脱离 .theme-root,令牌在其内部全部失效,表现为 "var(--fms-border) is not defined" 报错 + 边框/颜色丢失。
  • 现状:fms-vue/src/styles/main.scss 的 :root 已声明全部令牌;.theme-root 仅保留 color/background/overflow。

fms-file 附件组件关键约定

  • 宫格/列表双模式由 FileListPanel.vue 的 viewMode(grid/list)控制。
  • 上传:点击/拖拽/粘贴均汇入 addFiles(),允许重复上传同一文件(前端已移除去重,后端无同名约束)。
  • 拖拽重复入栈防护在 handleDragEnter/Leave 的 e.currentTarget !== e.target 判断,非靠去重。
  • 待上传文件虚拟 id 形如 _pending_N,deleteSelected 需降序删除防索引漂移。

项目结构速查

  • 后端 fms-api/ Spring Boot 4.1 + Java 21 + SQL Server(Druid 多组织路由);端口 8088,context-path /api。
  • 前端 fms-vue/ Vue 3 + Vite + Pinia + antdv-next;dev :5180,代理 /api→127.0.0.1:8088。
  • 通用数据接口:/data/loaddata、/data/page、/data/saveobjt、/data/nextid、/auth/login、/file/upload。勿新增业务端点。
  • 开发纪律:改完不自行 build/起服务,除非用户要求;可用 vite build(或 --mode development --emptyOutDir false 规避 dist 清理权限问题)验证。