Skip to content

feat: vben-form添加arrayToStringFields属性 #5957

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 15, 2025

Conversation

milletpeak
Copy link

@milletpeak milletpeak commented Apr 15, 2025

#5917
针对这个issues,我添加了arrayToStringFields属性,使用方法
image

  1. 支持多字段使用不同的分隔符;
  2. 支持多字段使用相同的分隔符,普通数组最后一项决定分隔符;
  3. 多字段如果不传,使用默认","号分隔

#5918 有冗余代码,重新提交了PR

Summary by CodeRabbit

  • New Features
    • Added support for automatic conversion between array and string formats for specified form fields during value setting and submission, based on configurable options.
    • Introduced new configuration options to control how form fields are mapped between arrays and strings, including customizable delimiters.
    • Enhanced form configuration types to support these new mapping options and time field mapping.

Copy link

changeset-bot bot commented Apr 15, 2025

⚠️ No Changeset found

Latest commit: c4b2c18

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor

coderabbitai bot commented Apr 15, 2025

"""

Walkthrough

This update introduces two new private methods to the FormApi class for converting form field values between arrays and strings based on a configurable mapping. The configuration is defined by a new type, ArrayToStringFields, and is incorporated into the form's state and prop interfaces. The conversion methods are invoked during value setting and form submission to ensure consistent handling of fields that require transformation between array and string representations. No existing public method signatures or logic outside these conversions are changed.

Changes

File(s) Change Summary
packages/@core/ui-kit/form-ui/src/form-api.ts Added private methods handleArrayToStringFields and handleStringToArrayFields to FormApi class; integrated these into value setting and submission workflows.
packages/@core/ui-kit/form-ui/src/types.ts Introduced ArrayToStringFields type; added arrayToStringFields and fieldMappingTime as optional properties to relevant interfaces.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant FormApi
    participant FormState

    User->>FormApi: setValues(newValues)
    FormApi->>FormApi: handleStringToArrayFields(newValues)
    FormApi->>FormState: Update form values

    User->>FormApi: submitForm()
    FormApi->>FormState: Retrieve raw form values
    FormApi->>FormApi: handleArrayToStringFields(rawValues)
    FormApi-->>User: Submit processed values
Loading

Possibly related issues

Poem

A rabbit hopped through fields of code,
Where arrays and strings would often explode.
With clever paws, it mapped and split,
Ensuring each value would perfectly fit.
Now forms are smarter, conversions a breeze—
Thanks to this patch, all rabbits are pleased!
🐇✨
"""

Tip

⚡💬 Agentic Chat (Pro Plan, General Availability)
  • We're introducing multi-step agentic chat in review comments and issue comments, within and outside of PR's. This feature enhances review and issue discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments and add commits to existing pull requests.
✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bf7496f and c48e04e.

📒 Files selected for processing (2)
  • packages/@core/ui-kit/form-ui/src/form-api.ts (4 hunks)
  • packages/@core/ui-kit/form-ui/src/types.ts (6 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: post-update (windows-latest)
🔇 Additional comments (7)
packages/@core/ui-kit/form-ui/src/types.ts (4)

235-239: Well-defined type for array-to-string conversion configurations.

The ArrayToStringFields type is clearly defined with good comments explaining the different configuration formats supported. This provides flexibility for developers to specify array-to-string mappings in multiple ways.


275-279: Property addition is well-documented.

Adding the arrayToStringFields optional property to the FormRenderProps interface with descriptive comments makes the feature easily discoverable for developers.


309-313: Improved documentation for existing property.

Adding JSDoc comments for the existing fieldMappingTime property improves code understanding and maintainability.


361-365: Consistent property addition across interfaces.

The arrayToStringFields property is consistently added to the VbenFormProps interface, maintaining design coherence with FormRenderProps.

packages/@core/ui-kit/form-ui/src/form-api.ts (3)

298-298: Good integration of string-to-array conversion in setValues workflow.

The conversion is appropriately placed before setting form values to ensure arrays are properly populated from string inputs.


308-308: Good integration of array-to-string conversion in form submission workflow.

The conversion is appropriately placed after retrieving form values to ensure strings are properly formatted from array values before submission.


441-441: Appropriate handling of array fields in range time value processing.

Adding string-to-array conversion before processing range time values ensures consistent value handling.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
packages/@core/ui-kit/form-ui/src/form-api.ts (1)

489-546: ⚠️ Potential issue

Fix inconsistent handling of nested array format in handleStringToArrayFields.

There's still an inconsistency in how nested array formats are processed at lines 532-543. According to the previous review comments and type definitions, fields should always be an array of strings, but here it's being treated as a string key.

Apply this diff to fix the issue:

- else if (typeof originValues[fields] === 'string') {
-   const value = originValues[fields];
-   if (value === '') {
-     originValues[fields] = [];
-   } else {
-     const escapedSeparator = separator.replaceAll(
-       /[.*+?^${}()|[\]\\]/g,
-       String.raw`\$&`,
-     );
-     originValues[fields] = value.split(new RegExp(escapedSeparator));
-   }
- }
+ else {
+   console.warn(
+     `Invalid field configuration: fields should be an array of strings, got ${typeof fields}`,
+   );
+ }

This brings the error handling in line with what's implemented in the handleArrayToStringFields method and prevents potential runtime errors.

🧹 Nitpick comments (1)
packages/@core/ui-kit/form-ui/src/form-api.ts (1)

397-436: Implementation of array-to-string conversion looks good but could be improved.

The method correctly converts array values to strings based on the specified configuration. I like how you're handling both simple array format and nested array format configurations, and the validation at lines 427-432 is a good safeguard against incorrect configurations.

Consider extracting the configuration parsing logic (lines 410-420 and 423-435) to a shared method since it's duplicated in both array-to-string and string-to-array handlers:

- // 处理简单数组格式 ['field1', 'field2', ';'] 或 ['field1', 'field2']
- if (arrayToStringFields.every((item) => typeof item === 'string')) {
-   const lastItem =
-     arrayToStringFields[arrayToStringFields.length - 1] || '';
-   const fields =
-     lastItem.length === 1
-       ? arrayToStringFields.slice(0, -1)
-       : arrayToStringFields;
-   const separator = lastItem.length === 1 ? lastItem : ',';
-   processFields(fields, separator);
-   return;
- }
+ const parsedConfig = this.parseArrayToStringConfig(arrayToStringFields);
+ if (parsedConfig) {
+   const { fields, separator } = parsedConfig;
+   processFields(fields, separator);
+   return;
+ }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c48e04e and c4b2c18.

📒 Files selected for processing (1)
  • packages/@core/ui-kit/form-ui/src/form-api.ts (4 hunks)
🔇 Additional comments (4)
packages/@core/ui-kit/form-ui/src/form-api.ts (4)

548-561: Great implementation of the shared processing logic.

The processFields method is a good abstraction that reduces code duplication between the conversion methods. It handles null/undefined values appropriately and applies the transformation function consistently.


298-298: Proper integration of string-to-array conversion in setValues.

Calling handleStringToArrayFields before setting form values ensures that string values are converted to arrays according to the configuration, which is the correct approach.


308-308: Proper integration of array-to-string conversion in submitForm.

Calling handleArrayToStringFields after retrieving form values but before submission ensures that arrays are converted to strings according to the configuration, which is the correct approach.


442-442: Proper integration of string-to-array conversion in handleRangeTimeValue.

Adding the call to handleStringToArrayFields ensures that string values are correctly converted to arrays before processing range time values.

@jinmao88 jinmao88 merged commit d864085 into vbenjs:main Apr 15, 2025
5 checks passed
@milletpeak milletpeak deleted the add-form-field branch April 15, 2025 08:17
YuchenWell added a commit to YuchenWell/vue-vben-admin that referenced this pull request Apr 19, 2025
Squashed commit of the following:

commit 79de6bc
Author: Netfan <netfan@foxmail.com>
Date:   Thu Apr 17 22:23:05 2025 +0800

    fix: alert send wrong confirm state to beforeClose (vbenjs#5991)

    * 修复alert在按下Esc或者点击遮罩关闭时,可能发送错误的isConfirm状态

commit 14bd6dd
Author: Netfan <netfan@foxmail.com>
Date:   Thu Apr 17 20:25:49 2025 +0800

    fix: destroyOnClose works within connectedComponent (vbenjs#5989)

    * 修复destroyOnClose没能销毁connectedComponent自身的问题

commit 7f269e0
Author: PIPEDREA_WZJ <46663175+WZJvearyfunny@users.noreply.github.com>
Date:   Thu Apr 17 14:01:39 2025 +0800

    Update tailwindcss.md (vbenjs#5602)

    tailwindcss最新的版本已经是v4.x,vben中使用的是3.x的tailwindcss。在未进行兼容前,会出现运行失败的问题

commit 4baec83
Author: yuh <yuhldr@qq.com>
Date:   Thu Apr 17 14:00:46 2025 +0800

    feat: add examples: form-upload (vbenjs#5955)

    * feat: add examples: form-upload

    * fix: upload: accept and label

    * fix: upload: 设置表单值、图片预览

commit f7a4d13
Author: Netfan <netfan@foxmail.com>
Date:   Wed Apr 16 14:11:04 2025 +0800

    fix: fixed arguments of callbacks in `formApi` (vbenjs#5970)

    * 修复 `handleValuesChange` 传递的参数不是处理后的表单值的问题

    * 修复 `handleReset` 未能传递正确参数的问题

commit 0936861
Author: Netfan <netfan@foxmail.com>
Date:   Wed Apr 16 11:29:01 2025 +0800

    feat:  pass `fieldsChanged`  into the `handleValuesChange` callback function (vbenjs#5968)

    * fieldsChanged(已被改变值的字段名)将传入handleValuesChange回调函数

commit 3318d76
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Wed Apr 16 11:28:36 2025 +0800

    perf: improve `destroyOnClose` for VbenModal (vbenjs#5964)

commit 8f3881e
Author: LinaBell <15891557205@163.com>
Date:   Wed Apr 16 11:27:13 2025 +0800

    perf: `beforeClose` of drawer support promise (vbenjs#5932)

    * perf: the beforeClose function of drawer is consistent with that of modal

    * refactor: drawer test update

commit 5252480
Author: zhouda1fu <825542578@qq.com>
Date:   Wed Apr 16 11:22:59 2025 +0800

    fix: missing await in department form(vbenjs#5967)

commit d18f561
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 15 20:52:23 2025 +0800

    docs: update alert and apiComponent docs (vbenjs#5961)

commit 333998b
Author: wyc001122 <498040880@qq.com>
Date:   Tue Apr 15 20:51:38 2025 +0800

    fix: determine if scrollbar has been totally scrolled (vbenjs#5934)

    * 修复在系统屏幕缩放比例不为100%的情况下,滚动组件对是否已滚动到边界的判断可能不正确的问题

commit 3fb4fba
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Tue Apr 15 18:49:57 2025 +0800

    fix: modal closing animation (vbenjs#5960)

commit c7e6210
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Tue Apr 15 16:04:44 2025 +0800

    feat: `modal`&`drawer` support `center-footer` slot (vbenjs#5956)

commit d864085
Author: lztb <lztbwlkj@gmail.com>
Date:   Tue Apr 15 16:03:20 2025 +0800

    feat: vben-form添加arrayToStringFields属性 (vbenjs#5957)

    * feat: vben-form添加arrayToStringFields属性

    * feat: 修改handleArrayToStringFields和handleStringToArrayFields中嵌套数组格式的处理不一致

    ---------

    Co-authored-by: 米山 <17726957223@189.cn>

commit fcdc1a1
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 15 15:32:30 2025 +0800

    feat: add more expose methods for `apiComponent` (vbenjs#5958)

    * 为ApiComponent组件添加getOptions和getValue导出方法。

commit bf7496f
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 15 00:00:05 2025 +0800

    feat: add `useAlertContext` for Alert component (vbenjs#5947)

    * 新增Alert的子组件中获取弹窗上下文的能力

commit 9700150
Author: Netfan <netfan@foxmail.com>
Date:   Mon Apr 14 19:56:52 2025 +0800

    fix: table actions in fixed column (vbenjs#5945)

commit f0e9e55
Author: Netfan <netfan@foxmail.com>
Date:   Mon Apr 14 11:48:21 2025 +0800

    feat: alert support customize `footer` (vbenjs#5940)

    * Alert组件支持自定义footer

commit ff88274
Author: Netfan <netfan@foxmail.com>
Date:   Mon Apr 14 11:18:33 2025 +0800

    fix: long navigation menu can be scrolled (vbenjs#5939)

    * 修复超长的导航菜单无法纵向滚动的问题

commit afce9dc
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Sun Apr 13 23:02:07 2025 +0800

    perf: improve `destroyOnClose` for `VbenModal` (vbenjs#5935)

    * perf: 优化Vben Modal destroyOnClose,解决destroyOnClose=false,Modal依旧会被销毁的问题

    影响范围(重要):destroyOnClose默认为true,这会导致所有的modal都会默认渲染到body
    radix-vue Dialog组件默认会销毁挂载的组件,所以即使destroyOnClose=false,Modal依旧会被销毁的问题
    对于一些大表单重复渲染导致卡顿,ApiComponent也会频繁的加载数据

    * fix: modal closing animation

    ---------

    Co-authored-by: Netfan <netfan@foxmail.com>

commit b5700bd
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Sun Apr 13 20:03:18 2025 +0800

    perf: improve `autoSelect` of  `ApiComponent` (vbenjs#5936)

    * fix: 修复autoSelect不生效的问题,props.valueField已经被omit了

    * feat: ApiComponent autoSelect支持使用函数,可以满足灵活性要求更高的场景

commit a8c4786
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 14:02:35 2025 +0800

    feat: api-component support autoSelect prop (vbenjs#5931)

    * feat: api-component support autoSelect prop

    * docs: add version requirement

commit 2971ccc
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 13:41:40 2025 +0800

    docs: docs modal z-index fixed, update alert docs (vbenjs#5930)

commit 4a2c7b3
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 10:37:47 2025 +0800

    fix: alert animation (vbenjs#5927)

commit 36bf6fc
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 01:44:08 2025 +0800

    fix: builtin color change throttled in preference drawer (vbenjs#5924)

    修复偏好设置中的自定义主题色拖动选择颜色时页面会明显卡顿的问题

commit f46ec30
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 01:16:57 2025 +0800

    fix: theme mode follow the system only `auto` (vbenjs#5923)

    * 修复主题在未设置为auto时,仍然会跟随系统主题变化的问题。

commit 9bd5a19
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 00:59:56 2025 +0800

    fix: alert action button  focus, fixed vbenjs#5921 (vbenjs#5922)

    * 修复Alert组件的按钮焦点切换问题

commit 86da3ce
Author: zhang <zwtvip@qq.com>
Date:   Wed Apr 9 16:16:56 2025 +0800

    chore: 导出框架自带的组件,方便独立页面使用 (vbenjs#5876)

commit 329a176
Author: Netfan <netfan@foxmail.com>
Date:   Wed Apr 9 01:05:20 2025 +0800

    perf:  optimize bootstrap modules to speed up first-screen loading (vbenjs#5899)

    优化首屏加载速度

commit 9379093
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 8 20:28:50 2025 +0800

    feat: customizable table separator (vbenjs#5898)

    * 表格的分隔条支持定制背景色或完全移除

commit c9014d0
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Tue Apr 8 20:27:03 2025 +0800

    perf: 优化关闭页面切换动画的tab切换性能 (vbenjs#5883)

commit ed26dca
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 8 16:31:41 2025 +0800

    chore: update pnpm-lock.yaml

commit 08c6496
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 8 14:56:40 2025 +0800

    chore: update deps

commit a8c5df3
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 8 14:50:05 2025 +0800

    fix: possible circular reference issue during build (vbenjs#5894)

    * 修复构建期间出现的循环引用警告

commit 71e8d12
Author: Netfan <netfan@foxmail.com>
Date:   Mon Apr 7 01:21:30 2025 +0800

    fix: improve prompt component (vbenjs#5879)

    * fix: prompt component render fixed

    * fix: alert buttonAlign default value

commit d216fdc
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 5 13:07:52 2025 +0800

    feat: support logo text slot (vbenjs#5872)

    * 基础布局中的LOGO的文字区域允许通过插槽logo-text定制

commit 384c5d7
Author: wyc001122 <498040880@qq.com>
Date:   Sat Apr 5 11:04:59 2025 +0800

    fix: 布局为双列菜单或者水平模式下, 一级菜单高亮问题 (vbenjs#5870)

    Co-authored-by: 王泳超 <wangyongchao@testor.com.cn>

commit b0ad08d
Author: Netfan <netfan@foxmail.com>
Date:   Fri Apr 4 15:21:09 2025 +0800

    feat: use the not-found component instead of the invalid route component in the backend mode (vbenjs#5871)

    * 后端菜单模式下,使用not-found组件代替无效的路由组件
YuchenWell added a commit to YuchenWell/vue-vben-admin that referenced this pull request Apr 23, 2025
Squashed commit of the following:

commit 1437770
Author: Netfan <netfan@foxmail.com>
Date:   Wed Apr 23 12:20:52 2025 +0800

    fix: alert confirm state in beforeClose callback (vbenjs#6019)

commit b985ff0
Author: pangyajun123 <284390918@qq.com>
Date:   Mon Apr 21 19:15:05 2025 +0800

    fix: vxe-table theme token follow primary color (vbenjs#6007)

commit b148b8e
Author: wyc001122 <498040880@qq.com>
Date:   Sat Apr 19 14:35:33 2025 +0800

    fix: fix geader menu activation path (vbenjs#5997)

    Co-authored-by: 王泳超 <wangyongchao@testor.com.cn>

commit 79de6bc
Author: Netfan <netfan@foxmail.com>
Date:   Thu Apr 17 22:23:05 2025 +0800

    fix: alert send wrong confirm state to beforeClose (vbenjs#5991)

    * 修复alert在按下Esc或者点击遮罩关闭时,可能发送错误的isConfirm状态

commit 14bd6dd
Author: Netfan <netfan@foxmail.com>
Date:   Thu Apr 17 20:25:49 2025 +0800

    fix: destroyOnClose works within connectedComponent (vbenjs#5989)

    * 修复destroyOnClose没能销毁connectedComponent自身的问题

commit 7f269e0
Author: PIPEDREA_WZJ <46663175+WZJvearyfunny@users.noreply.github.com>
Date:   Thu Apr 17 14:01:39 2025 +0800

    Update tailwindcss.md (vbenjs#5602)

    tailwindcss最新的版本已经是v4.x,vben中使用的是3.x的tailwindcss。在未进行兼容前,会出现运行失败的问题

commit 4baec83
Author: yuh <yuhldr@qq.com>
Date:   Thu Apr 17 14:00:46 2025 +0800

    feat: add examples: form-upload (vbenjs#5955)

    * feat: add examples: form-upload

    * fix: upload: accept and label

    * fix: upload: 设置表单值、图片预览

commit f7a4d13
Author: Netfan <netfan@foxmail.com>
Date:   Wed Apr 16 14:11:04 2025 +0800

    fix: fixed arguments of callbacks in `formApi` (vbenjs#5970)

    * 修复 `handleValuesChange` 传递的参数不是处理后的表单值的问题

    * 修复 `handleReset` 未能传递正确参数的问题

commit 0936861
Author: Netfan <netfan@foxmail.com>
Date:   Wed Apr 16 11:29:01 2025 +0800

    feat:  pass `fieldsChanged`  into the `handleValuesChange` callback function (vbenjs#5968)

    * fieldsChanged(已被改变值的字段名)将传入handleValuesChange回调函数

commit 3318d76
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Wed Apr 16 11:28:36 2025 +0800

    perf: improve `destroyOnClose` for VbenModal (vbenjs#5964)

commit 8f3881e
Author: LinaBell <15891557205@163.com>
Date:   Wed Apr 16 11:27:13 2025 +0800

    perf: `beforeClose` of drawer support promise (vbenjs#5932)

    * perf: the beforeClose function of drawer is consistent with that of modal

    * refactor: drawer test update

commit 5252480
Author: zhouda1fu <825542578@qq.com>
Date:   Wed Apr 16 11:22:59 2025 +0800

    fix: missing await in department form(vbenjs#5967)

commit d18f561
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 15 20:52:23 2025 +0800

    docs: update alert and apiComponent docs (vbenjs#5961)

commit 333998b
Author: wyc001122 <498040880@qq.com>
Date:   Tue Apr 15 20:51:38 2025 +0800

    fix: determine if scrollbar has been totally scrolled (vbenjs#5934)

    * 修复在系统屏幕缩放比例不为100%的情况下,滚动组件对是否已滚动到边界的判断可能不正确的问题

commit 3fb4fba
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Tue Apr 15 18:49:57 2025 +0800

    fix: modal closing animation (vbenjs#5960)

commit c7e6210
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Tue Apr 15 16:04:44 2025 +0800

    feat: `modal`&`drawer` support `center-footer` slot (vbenjs#5956)

commit d864085
Author: lztb <lztbwlkj@gmail.com>
Date:   Tue Apr 15 16:03:20 2025 +0800

    feat: vben-form添加arrayToStringFields属性 (vbenjs#5957)

    * feat: vben-form添加arrayToStringFields属性

    * feat: 修改handleArrayToStringFields和handleStringToArrayFields中嵌套数组格式的处理不一致

    ---------

    Co-authored-by: 米山 <17726957223@189.cn>

commit fcdc1a1
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 15 15:32:30 2025 +0800

    feat: add more expose methods for `apiComponent` (vbenjs#5958)

    * 为ApiComponent组件添加getOptions和getValue导出方法。

commit bf7496f
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 15 00:00:05 2025 +0800

    feat: add `useAlertContext` for Alert component (vbenjs#5947)

    * 新增Alert的子组件中获取弹窗上下文的能力

commit 9700150
Author: Netfan <netfan@foxmail.com>
Date:   Mon Apr 14 19:56:52 2025 +0800

    fix: table actions in fixed column (vbenjs#5945)

commit f0e9e55
Author: Netfan <netfan@foxmail.com>
Date:   Mon Apr 14 11:48:21 2025 +0800

    feat: alert support customize `footer` (vbenjs#5940)

    * Alert组件支持自定义footer

commit ff88274
Author: Netfan <netfan@foxmail.com>
Date:   Mon Apr 14 11:18:33 2025 +0800

    fix: long navigation menu can be scrolled (vbenjs#5939)

    * 修复超长的导航菜单无法纵向滚动的问题

commit afce9dc
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Sun Apr 13 23:02:07 2025 +0800

    perf: improve `destroyOnClose` for `VbenModal` (vbenjs#5935)

    * perf: 优化Vben Modal destroyOnClose,解决destroyOnClose=false,Modal依旧会被销毁的问题

    影响范围(重要):destroyOnClose默认为true,这会导致所有的modal都会默认渲染到body
    radix-vue Dialog组件默认会销毁挂载的组件,所以即使destroyOnClose=false,Modal依旧会被销毁的问题
    对于一些大表单重复渲染导致卡顿,ApiComponent也会频繁的加载数据

    * fix: modal closing animation

    ---------

    Co-authored-by: Netfan <netfan@foxmail.com>

commit b5700bd
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Sun Apr 13 20:03:18 2025 +0800

    perf: improve `autoSelect` of  `ApiComponent` (vbenjs#5936)

    * fix: 修复autoSelect不生效的问题,props.valueField已经被omit了

    * feat: ApiComponent autoSelect支持使用函数,可以满足灵活性要求更高的场景

commit a8c4786
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 14:02:35 2025 +0800

    feat: api-component support autoSelect prop (vbenjs#5931)

    * feat: api-component support autoSelect prop

    * docs: add version requirement

commit 2971ccc
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 13:41:40 2025 +0800

    docs: docs modal z-index fixed, update alert docs (vbenjs#5930)

commit 4a2c7b3
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 10:37:47 2025 +0800

    fix: alert animation (vbenjs#5927)

commit 36bf6fc
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 01:44:08 2025 +0800

    fix: builtin color change throttled in preference drawer (vbenjs#5924)

    修复偏好设置中的自定义主题色拖动选择颜色时页面会明显卡顿的问题

commit f46ec30
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 01:16:57 2025 +0800

    fix: theme mode follow the system only `auto` (vbenjs#5923)

    * 修复主题在未设置为auto时,仍然会跟随系统主题变化的问题。

commit 9bd5a19
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 12 00:59:56 2025 +0800

    fix: alert action button  focus, fixed vbenjs#5921 (vbenjs#5922)

    * 修复Alert组件的按钮焦点切换问题

commit 86da3ce
Author: zhang <zwtvip@qq.com>
Date:   Wed Apr 9 16:16:56 2025 +0800

    chore: 导出框架自带的组件,方便独立页面使用 (vbenjs#5876)

commit 329a176
Author: Netfan <netfan@foxmail.com>
Date:   Wed Apr 9 01:05:20 2025 +0800

    perf:  optimize bootstrap modules to speed up first-screen loading (vbenjs#5899)

    优化首屏加载速度

commit 9379093
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 8 20:28:50 2025 +0800

    feat: customizable table separator (vbenjs#5898)

    * 表格的分隔条支持定制背景色或完全移除

commit c9014d0
Author: ming4762 <zhongming4762@hotmail.com>
Date:   Tue Apr 8 20:27:03 2025 +0800

    perf: 优化关闭页面切换动画的tab切换性能 (vbenjs#5883)

commit ed26dca
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 8 16:31:41 2025 +0800

    chore: update pnpm-lock.yaml

commit 08c6496
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 8 14:56:40 2025 +0800

    chore: update deps

commit a8c5df3
Author: Netfan <netfan@foxmail.com>
Date:   Tue Apr 8 14:50:05 2025 +0800

    fix: possible circular reference issue during build (vbenjs#5894)

    * 修复构建期间出现的循环引用警告

commit 71e8d12
Author: Netfan <netfan@foxmail.com>
Date:   Mon Apr 7 01:21:30 2025 +0800

    fix: improve prompt component (vbenjs#5879)

    * fix: prompt component render fixed

    * fix: alert buttonAlign default value

commit d216fdc
Author: Netfan <netfan@foxmail.com>
Date:   Sat Apr 5 13:07:52 2025 +0800

    feat: support logo text slot (vbenjs#5872)

    * 基础布局中的LOGO的文字区域允许通过插槽logo-text定制

commit 384c5d7
Author: wyc001122 <498040880@qq.com>
Date:   Sat Apr 5 11:04:59 2025 +0800

    fix: 布局为双列菜单或者水平模式下, 一级菜单高亮问题 (vbenjs#5870)

    Co-authored-by: 王泳超 <wangyongchao@testor.com.cn>

commit b0ad08d
Author: Netfan <netfan@foxmail.com>
Date:   Fri Apr 4 15:21:09 2025 +0800

    feat: use the not-found component instead of the invalid route component in the backend mode (vbenjs#5871)

    * 后端菜单模式下,使用not-found组件代替无效的路由组件
@github-actions github-actions bot locked and limited conversation to collaborators May 16, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants