Files
xk-admin/packages/effects
金毛88 f840d235ef feat: 偏好设置小部件支持位置选择与拖拽排序
- 顶栏各小部件按钮支持选择位置(header/user-dropdown/none),偏好设置按钮额外保留 auto/fixed 智能兜底,移动端/全屏内容模式下自动切 fixed 浮动保命,避免偏好入口死锁
- draggable-list.vue 的 listRef 未在模板绑定,Sortable 永不初始化导致小部件无法拖拽;加 ref 绑定与 data-key 让 onEnd 从 DOM 读真实新顺序
- preferences.ts 的 updatePreferences 用 defu(merge) 合并数组,对 widget.order 是 concat 语义,每次拖拽触发更新都会把当前 order 追加一次,localStorage 里膨胀到上百条;改用 mergeWithArrayOverride 整体替换,加载缓存时 sanitizeCachedArray 去重已存在的脏数据
- preferences 按钮之前在 widget.order 里因 labelMap 未登记显示成裸字符串,且 widgetChecks 缺 refresh 导致刷新按钮不按 order 渲染;统一 preferences 与其它 widget 的拖拽排序与位置 select,refresh 补进 rightSlots.widgetChecks 并补模板渲染
- 补 sortablejs 依赖、WidgetPreferences.order 类型字段、preferences-drawer.vue 的 widgetOrder 绑定
2026-07-19 21:34:11 +08:00
..
2026-07-10 10:15:40 +08:00
2026-06-16 16:25:21 +08:00
2026-06-03 13:25:23 +08:00
2026-05-18 16:50:14 +08:00

Effects 目录

effects 目录专门用于存放与轻微耦合相关的代码和逻辑。如果你的包具有以下特点,建议将其放置在 effects 目录下:

  • 状态管理:使用状态管理框架 pinia并包含处理副作用如异步操作、API 调用)的部分。
  • 用户偏好设置:使用 @vben-core/preferences 处理用户偏好设置,涉及本地存储或浏览器缓存逻辑(如使用 localStorage)。
  • 导航和路由:处理导航、页面跳转等场景,需要管理路由变化的逻辑。
  • 组件库依赖:包含与特定组件库紧密耦合或依赖大型仓库的部分。

通过将相关代码归类到 effects 目录,可以使项目结构更加清晰,便于维护和扩展。