Files
ruoyi-plus-vben5-h/packages/effects
Caisin 2b1fcb038b feat(common-ui): add labelFn support to ApiComponent (#7801)
* feat: allow api-component labels to be derived from option data

ApiComponent already normalizes option records into the label/value shape used by
consuming controls, but label text could only come from a single field. Add
labelFn so callers can build labels from the full option record while keeping
labelField as the fallback path.

This keeps the change inside the existing component instead of introducing a
wrapper, and it also normalizes direct options through the same transform path
as API-loaded options for consistent behavior.

Constraint: Must extend the existing ApiComponent API instead of adding a second
Constraint: wrapper component
Rejected: Add a separate ApiLabelComponent wrapper |
Rejected: extra surface area for one option-mapping concern
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep labelFn as a presentation transform and preserve labelField
Directive: fallback for existing callers
Tested: pnpm exec eslint api-component.vue index.ts types.ts
Tested: pnpm exec vue-tsc --noEmit -p packages/effects/common-ui/tsconfig.json
Not-tested: runtime integration in consuming select/tree-select components

* Update packages/effects/common-ui/src/components/api-component/api-component.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-04-13 17:52:17 +08:00
..
2026-03-14 09:14:23 +08:00
2026-04-13 17:52:16 +08:00
2026-03-14 09:14:23 +08:00

Effects 目录

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

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

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