junny_form 0.0.9 copy "junny_form: ^0.0.9" to clipboard
junny_form: ^0.0.9 copied to clipboard

A flexible Flutter form management library that supports centralized field management, async validation, and custom field types.

Changelog #

2025-01-15 - v0.0.9 #

  • 🐛 重要修复:选择类组件 hintText 重叠显示问题
    • 🔧 修复重叠 hintText 渲染 • 修复选择类组件(JunnyChoiceField、JunnyDateField、JunnyChipsField 等)出现重叠 hintText 的问题 • 移除 buildContent 中手动的 hintText 渲染逻辑,统一由 InputDecorator 处理 • 确保所有组件的 hintText 样式完全一致 • 包括字典多选、标签多选、地址选择等所有选择类组件
  • 🏷️ 全局配置字段重命名优化
    • 📝 简化字段命名filterPlaceholderBuilderfilterHintBuilderpleaseSelectPlaceholderBuilderpleaseSelectHintBuilderpleaseEnterPlaceholderBuilderpleaseEnterHintBuilder • 统一使用 HintBuilder 后缀,提升代码可读性
    • 🔄 向后兼容性 • 需要更新初始化代码中的参数名 • 功能保持完全不变,仅为命名优化
    • 🔧 JunnySelectionFieldState.buildContent 修复 • 修复选择类组件(JunnyChoiceField、JunnyDateField 等)当值为空时不显示 hintText 的问题 • 当 formatValue(value) 为空且存在 hintText 时,正确显示带有 hintStyle 样式的提示文本 • 保持现有值不为空时的显示逻辑不变 • 确保选择类组件与输入类组件具有一致的 hintText 显示行为
    • 🏷️ 全局配置字段重命名 • 将 pleaseSelectBuilder 重命名为 pleaseSelectPlaceholderBuilder • 将 pleaseEnterBuilder 重命名为 pleaseEnterPlaceholderBuilder • 更新所有相关引用,包括 JunnyFormGlobalConfig.init 方法参数 • 统一占位符构建器的命名规范,符合 pleaseXXXPlaceholderBuilder 格式
    • 🛡️ 向后兼容性 • 功能修复不影响现有 API 使用方式 • 字段重命名需要更新初始化代码中的参数名 • 保持所有组件的默认行为和样式不变
  • 🔖 版本
    • 升级版本至 0.0.9

2025-06-11 - v0.0.8 #

  • 🐛 重要修复:Filter 组件状态恢复错误
    • 🔧 FilterSearchBar 异常处理增强 • 修复 FilterSearchBar._getHintText 方法中访问 field.effectiveInputDecoration 时的 RestorableValue.value 错误 • 添加异常处理机制,当状态恢复失败时使用备用的 hintText 获取方案 • 确保筛选弹窗可以正常重复打开,不会因状态恢复问题导致应用崩溃 • 解决 TextField 第一次输入正常,再次打开筛选弹窗时出现错误的问题
    • 🛡️ 稳定性提升 • 向后兼容,不影响现有功能 • 安全可靠,避免状态访问异常 • 确保始终有合理的 placeholder 显示
  • 新功能:字典多选字段数组格式支持
    • 🎯 JunnyDictChipsField 数据格式扩展 • 新增 saveAsArray 参数,允许将值保存为 List<String> 格式 • 支持灵活的数据保存格式配置,同时保持向后兼容 • 默认保存为逗号分隔字符串,可配置为数组格式
    • 📊 智能数据处理 • 调整 _initValueByCodesonValueChanged 方法,兼容字符串和数组两种数据格式 • 自动识别外部数据类型,根据配置明确表单数据类型 • 优化类型安全性,避免不必要的类型转换
    • 🔧 参数模型完善 • 更新 JunnyFormDictChipsParams 类,添加 saveAsArray 字段配置 • 包括构造函数、copyWith、toMap、fromMap、相等性比较的完整支持
  • 新功能:智能默认 hintText 生成
    • 🎯 自动提示文本生成 • 输入类组件:自动生成 '请输入' + title • 选择类组件:自动生成 '请选择' + title • 基于虚方法的类型安全设计,零侵入性实现
    • 🔧 技术实现优化 • 在基类 JunnyFormFieldState 中定义虚方法 getDefaultHintText() • 在 JunnyInputFieldState 和 JunnySelectionFieldState 中重写此方法 • 通过 inputDecoration getter 动态注入默认 hintText • 保持用户自定义 hintText 的优先级
    • 📊 全局配置扩展 • 新增 pleaseSelectPlaceholderBuilder 和 pleaseEnterPlaceholderBuilder 配置项 • 支持自定义默认提示文本生成规则 • 减少重复的 hintText 设置工作
  • 🔧 优化:选择字段参数系统重构
    • 参数类型体系完善 • 新增 SelectionTapParams
    • 🎯 功能特性增强 • 支持选项禁用条件 (disabledWhen) • 支持选项隐藏条件 (hiddenWhen) • 支持自定义选项标题构建器 (optionTitleBuilder) • 为 JunnyChoiceField 添加完整的 selectionParams 支持
  • 🛠️ 代码质量提升
    • 修复 BoxConstraints 错误:确保 maxWidth >= minWidth
    • 统一 hintText 显示行为:默认和自定义获得相同处理路径
    • 类型安全(无 dynamic 类型),编译时检查(无运行时反射)
    • 高扩展性(新组件只需重写一个方法),性能优秀(只在初始化时计算一次)
  • 🔖 版本
    • 升级版本至 0.0.8

2025-05-29 - v0.0.7 #

  • 新增功能:附件组件自定义字段名支持
    • 🔧 JunnyAttachmentField 增强 • 新增 attachmentsFieldName 参数,默认为 'attachments',支持自定义为 'testAttachments' 等 • 新增 deleteAttachmentsFieldName 参数,默认为 'deleteAttachments',支持自定义为 'testDeleteAttachments' 等 • 适配特殊页面中使用非标准字段名的业务需求(如同时存在 attachments 和 testAttachments) • 保持完全向后兼容性,默认行为不变
    • 📊 数据处理优化 • 更新 _getAttachmentsFromFormData() 方法支持自定义字段名 • 更新 _updateAttachmentsToFormData() 方法支持自定义字段名 • 更新 _syncInitialData() 方法支持自定义字段名 • 更新 _updateDeletedAttachments() 方法支持自定义删除字段名
    • 🛠️ 参数配置增强 • 更新 JunnyFormAttachmentParams 类,添加字段名配置选项 • 提供默认值,确保大多数情况下无需显式配置 • 完善类型安全和参数验证
    • 📝 文档和示例 • 更新组件文档注释,说明自定义字段名功能 • 在示例页面中添加自定义字段名使用演示 • 更新 README 文件,提供详细的使用说明和数据结构示例
  • 🔖 版本
    • 升级版本至 0.0.7

2025-05-29 - v0.0.6 #

  • 🚀 重大更新:附件组件v3版本适配
    • ✨ 全面重构 JunnyAttachmentField 以支持v3版本API数据结构 • 支持完整附件元数据存储,不再仅保存fileId • 按照v3数据结构存储:attachments.{fieldName}deleteAttachments.{fieldName} • 自动处理删除附件跟踪,无需手动管理 • 优化数据获取性能,减少不必要的网络请求
    • 🔧 性能优化 • 修复重复的值变化触发问题 • 移除重复的监听器添加,避免内存泄漏 • 解决循环调用风险,优化数据获取逻辑 • 实现延迟更新机制(200ms防抖),减少频繁UI刷新
    • 📊 数据管理增强 • 双重数据存储策略:同时支持字段本身和attachments字段 • 自动数据同步:初始化时智能同步v3格式数据 • 完善的删除跟踪:自动记录和管理删除的附件ID
    • 🛠️ 代码质量提升 • 优化生命周期管理,正确处理定时器清理 • 改进错误边界处理,增强稳定性 • 完善文档注释,提供详细的使用说明和示例
  • 📝 配置更新
    • 更新 AttachmentTapParams 参数结构以适配新的数据格式
    • 优化全局配置中的附件相关方法签名
  • 🔖 版本
    • 升级版本至 0.0.6

2025-05-16 - v0.0.5 #

  • 📝 文档
    • 完善 JunnyFormFieldStateparentDecorationEnabled getter 的文档注释,阐明其与 enabledreadOnly 状态的交互行为
  • ⚙️ 杂项
    • 将示例项目的 Android .cxx 目录添加到 .gitignore
    • 停止追踪示例项目的 Android .cxx 目录
  • 🔖 版本
    • 升级版本至 0.0.5

2025-05-15 - v0.0.4+2 #

  • 新增功能:表单字段类型转换器
    • 🔧 FormFieldTypeConverter 实现 • 实现基础类型、集合类型的安全转换 • 支持可空性和泛型元素类型处理 • 集成到 JunnyFormFieldState 中进行值转换
  • ♻️ 重构优化
    • 🛠️ JunnyFormFieldState 重构 • 调整类成员顺序和注释,符合最新规范 • 优化部分 Getter 和私有方法的实现
    • 🎯 JunnyWidgetField 布局控制增强 • 允许用户通过 JunnyFormWidgetParams 中的 preventChildExpansiondefaultChildAlignment 参数更精细地控制自定义子组件的布局行为 • 如果 builder 返回 Align 组件,则直接使用用户的 Align 设置 • 非 Align 组件默认情况下会防止意外拉伸并左对齐,但此行为可通过新参数配置 • 优化了内部 hintText 的处理逻辑,确保自定义组件上方提示的正确显示,并避免与 InputDecorator 的默认行为冲突
  • 📝 代码质量提升
    • 调整了 JunnyFormWidgetParams 类中成员的声明顺序,以符合 Dart 编码规范
    • 移除了 JunnyWidgetField 构造函数中冗余的 hintText: null 参数
    • 详细更新了 JunnyWidgetFieldJunnyFormWidgetParams 的文档注释,说明了新的布局参数和行为
    • 提供了更清晰的示例代码来演示新功能
  • 🔖 版本
    • 升级版本至 0.0.4+2

2025-05-14 - v0.0.4+1 #

  • 🔧 字段优化
    • 优化了 JunnyFormFieldStateInputDecorationhintText 显示逻辑,以确保在特定条件下行为正确
  • 🔖 版本
    • 升级版本至 0.0.4+1

2025-05-14 - v0.0.4 #

  • 📦 依赖更新
    • 更新了多个直接和间接依赖项至其最新的兼容版本,包括 provider, device_info_plus, http
  • 🎨 代码风格
    • 调整了 JunnyFormFieldStateInputState 中的注释结构以符合代码风格指南
  • 🔖 版本
    • 升级版本至 0.0.4

2025-05-13 - v0.0.3 #

  • 🔧 全局配置优化
    • nullErrorMessageBuilder 函数现在接收 BuildContext 参数
    • selectAttachments 函数添加了 BuildContext 参数
    • subtableLengthBuilder 函数添加了 BuildContext 参数
  • 🛠️ 代码结构优化
    • 优化代码结构,移除多余的区域注释
    • 更新示例代码中的函数签名
  • 🔖 版本
    • 升级版本至 0.0.3

2025-05-09 - v0.0.2 #

  • 🔧 表单控制器优化
    • 优化表单控制器代码结构和注释
    • 改进代码可读性和可维护性
    • 添加详细的函数级文档注释
  • 🔖 版本
    • 升级版本至 0.0.2

2024-11-20 - v0.0.1 #

  • 🎉 初始版本
    • 项目初始化
    • 基础表单组件实现
  • 🔖 版本
    • 初始版本 0.0.1
0
likes
0
points
530
downloads

Publisher

unverified uploader

Weekly Downloads

A flexible Flutter form management library that supports centralized field management, async validation, and custom field types.

Homepage

License

unknown (license)

Dependencies

dio, flutter, junny_utils, junny_widget, provider

More

Packages that depend on junny_form