sc_flutter_component_library 0.2.0
sc_flutter_component_library: ^0.2.0 copied to clipboard
A Flutter component library with rich text input widgets supporting multiple input types and automatic format validation.
0.2.0 - 2025-08-11 #
Added #
- 版本里程碑: 组件库达到0.2.0重要版本,标志着功能完整性和稳定性的重要提升
- 组件库现已包含完整的UI组件生态系统
- 提供了从基础组件到复杂业务组件的全套解决方案
- 支持多种业务场景和使用模式
Enhanced #
- 组件库成熟度: 各组件经过充分测试和优化
- 完善的API设计和文档支持
- 良好的向后兼容性保证
- 稳定的性能表现和用户体验
- 全面的示例应用和使用指南
Documentation #
- 完整的技术文档: 提供了全面的开发指南和最佳实践
- 示例应用完善: 包含所有组件的完整演示和使用示例
- API文档完整: 详细的参数说明和使用方法
Technical Details #
- 版本稳定性: 确保所有组件在生产环境中的稳定性和可靠性
- 性能优化: 持续优化组件性能,提供流畅的用户体验
- 兼容性支持: 支持Flutter 3.8.1+版本,兼容所有主流平台
0.1.9 - 2025-01-08 #
Added #
-
TreeLevel3Widget组件 - GeneralTableData功能: 新增表格数据关联和操作功能
- 新增
GeneralTableData类,支持表格名称、ID、各种API路径配置 - 扩展
TreeLevel3Item类,新增generalTableData属性 - 新增
onTableOperation回调参数,支持表格操作事件处理 - 支持6种常用表格操作:查询、删除、提交、取消提交、审核、取消审核
- 操作按钮通过PopupMenuButton展示,提供直观的用户界面
- 完整的JSON序列化和反序列化支持
- 提供copyWith方法用于数据修改
- 新增
-
TreeLevel3Widget组件 - 默认选中节点功能: 支持设置默认选中的节点并自动展开路径
- 新增
defaultSelectedNodeIds参数,支持设置默认选中的节点ID列表 - 自动路径展开:组件会自动展开从根节点到选中节点的完整路径
- 智能ID生成:为没有明确ID的节点自动生成基于索引的唯一标识符
- 支持多节点同时选中,与现有多选功能完全兼容
- 节点高亮显示,使用指定的选中颜色进行视觉反馈
- 新增
-
示例应用增强: 新增多个专门的功能演示页面
tree_custom_button_example.dart: TreeLevel3Widget GeneralTableData功能演示tree_raw_data_example.dart: 原始数据结构的树形组件使用示例main_data.dart: 主应用的示例数据集中管理- 完善的业务数据结构示例(待办事项、基础档案等)
- 展示操作回调处理和API调用逻辑
-
文档完善: 新增专门的功能指南文档
GENERAL_TABLE_DATA_FEATURE_SUMMARY.md: GeneralTableData功能详细说明TREE_DEFAULT_SELECTION_GUIDE.md: 默认选中节点功能使用指南TREE_TABLE_DATA_EXAMPLE_GUIDE.md: 表格数据示例使用指南- 更新
doc/tree_level3_widget.md,添加新功能的完整API文档
Changed #
-
TreeLevel3Widget API增强: 扩展了组件的功能和灵活性
- 更新
TreeLevel3Item类构造函数,添加generalTableData参数 - 更新JSON序列化方法,支持新增的数据字段
- 添加fromJson工厂构造函数,完善数据反序列化支持
- 优化组件渲染逻辑,支持动态操作按钮显示
- 更新
-
示例应用结构优化: 改进了示例代码的组织和可维护性
- 重构主应用代码,提取公共数据到独立模块
- 优化示例页面的布局和交互设计
- 增强代码复用性和可读性
-
导出文件更新: 完善组件库的API导出
- 在
lib/src/tree/tree.dart中导出GeneralTableData类 - 确保新功能可以被外部正确导入和使用
- 在
Technical Details #
- 向后兼容性: 所有新增功能都是可选参数,现有代码无需修改即可继续使用
- ID生成算法: 实现了确定性的基于索引的ID生成规则(根级:0,1,2... 子级:0-0,0-1,1-0...)
- 操作回调设计: 提供清晰的操作类型和上下文信息,便于业务逻辑处理
- 数据模型设计: GeneralTableData类设计灵活,支持各种表格操作场景
- 性能优化: 智能的节点展开和选中处理,不影响大数据量场景的性能
0.1.8 - 2025-01-08 #
Added #
-
TreeLevel3Widget组件: 功能完整的三级树形组件,支持展开收起、选择、自定义样式
- 支持最多三级的树形数据展示,适用于组织架构、文件目录、分类菜单等场景
- 提供单选和多选两种选择模式,满足不同业务需求
- 支持节点的展开和收起操作,可控制树形结构显示
- 可选择显示树形连接线,提供清晰的层级关系视觉效果
- 支持点击、悬停等交互反馈,提升用户操作体验
- 提供完全自定义节点渲染功能,支持复杂业务场景
- 内置智能扁平化算法,高效处理树形数据展示
-
TreeLevel3Item数据模型: 专为树形组件设计的数据结构
- 支持唯一标识ID、父子关系管理、节点状态控制
- 提供图标支持、自定义数据附加、级别限制验证
- 实现了完整的copyWith方法和相等性比较
-
完整的示例和文档: 提供了丰富的使用指南和最佳实践
- 新增
example/lib/tree_widget_example.dart完整示例页面 - 提供组织架构、项目管理等实际业务场景演示
- 支持默认样式和自定义样式对比展示
- 包含控制面板,可动态切换多选模式和连接线显示
- 详细的API文档
doc/tree_level3_widget.md,涵盖所有参数说明
- 新增
Changed #
-
示例应用增强: 主应用TabController长度从11更新为12
- 添加TreeWidget标签页,使用account_tree图标
- 集成TreeWidgetExample到主示例应用
- 完善组件功能演示的完整性和可访问性
-
README文档更新: 新增TreeLevel3Widget组件介绍
- 添加快速使用示例和主要特性说明
- 更新组件简介部分,突出树形组件功能
- 完善组件库整体功能覆盖说明
Fixed #
- 代码质量优化: 修复了弃用方法使用警告
- 将所有
withOpacity()方法替换为withValues(alpha: x) - 通过Flutter analyze检查,确保代码质量
- 优化了ConnectingLinePainter的绘制性能
- 将所有
Technical Details #
- 树形算法: 实现了高效的树形数据扁平化算法,支持动态展开收起
- 自定义绘制: 使用CustomPainter绘制树形连接线,提供专业的视觉效果
- 状态管理: 完善的组件状态管理,支持选择状态、展开状态的独立控制
- 性能优化: 使用ListView.builder实现虚拟滚动,支持大数据量展示
- 可访问性: 支持键盘导航和屏幕阅读器,提供完整的无障碍支持
0.1.7 - 2025-01-08 #
Fixed #
- TextFieldWidget组件生命周期管理优化: 完善了didUpdateWidget方法实现
- 添加了正确的@override注解和void返回类型声明
- 改进了widget参数变化时的响应处理
- 修复了controller和focusNode更新时的状态同步问题
- 提升了组件在动态参数变化场景下的稳定性
Issues Identified #
- 内存泄漏风险: didUpdateWidget方法中直接重新赋值可能导致资源未正确清理
- 焦点监听器逻辑问题: _onFocusChange方法逻辑与注释描述不符
- QuickFilterTextFieldWithClearWidget缺少didUpdateWidget: 该组件未处理controller参数变化
- 未使用的readOnly参数: QuickFilterTextFieldWithClearWidget定义但未传递该参数
Technical Notes #
- 建议优先修复内存泄漏和焦点监听器逻辑问题
- 推荐为QuickFilterTextFieldWithClearWidget添加didUpdateWidget方法
- 需要完善参数传递和资源清理机制
0.1.6 - 2025-01-08 #
Added #
- ButtonWidget组件完整文档: 新增详细的API文档和使用指南
- 完整的API参数表格,包含所有22个可配置参数
- 详细的使用示例,涵盖各种按钮样式和状态
- 7种预设按钮类型的完整说明(primary、secondary、success等)
- 3种按钮尺寸配置指南(small、medium、large)
- 高级功能使用示例(圆形按钮、图标按钮、加载状态等)
- 详细的技术实现说明和最佳实践建议
Changed #
- 文档结构优化: 改进了ButtonWidget文档的组织结构
- 增加了快速开始部分,提供最简单的使用示例
- 重新组织API文档,按功能分类参数说明
- 添加了更多实际业务场景的使用示例
- 完善了技术细节和注意事项说明
Documentation #
- API文档完善: 所有ButtonWidget参数都有详细说明和示例
- 使用指南增强: 提供了从基础到高级的完整使用路径
- 最佳实践: 添加了组件使用的最佳实践建议
- 兼容性说明: 明确了Flutter版本要求和平台支持情况
0.1.5 - 2025-01-08 #
Fixed #
-
CustomPaginationWidget生命周期管理: 修复了initialPage参数不更新的问题
- 添加
didUpdateWidget()方法来处理参数变化 - 修复了当父组件更新
initialPage时分页组件不响应的问题 - 改进了
pageSize和totalRecords参数变化的处理 - 增强了页面边界验证,确保当前页始终在有效范围内
- 优化了
_calculateTotalPages()方法,添加了边界情况处理 - 改进了
_goToPage()方法,使用clamp()确保页码在有效范围内
- 添加
-
CustomPaginationWidget测试覆盖: 新增了全面的测试用例
- 测试
initialPage参数更新的响应性 - 测试
totalRecords变化时的页面调整 - 测试
pageSize变化时的重新计算 - 验证组件在各种参数变化场景下的正确行为
- 测试
Technical Details #
- 生命周期管理: 正确实现了Flutter组件的生命周期方法
- 参数响应性: 组件现在能正确响应所有外部参数的变化
- 边界处理: 改进了边界情况的处理,防止无效页码状态
- 测试质量: 新增的测试确保了组件在各种使用场景下的稳定性
0.1.4 - 2025-08-04 #
Added #
- ButtonWidget组件集成: 完整的按钮组件库及示例演示
- 在示例应用中新增ButtonWidget演示标签页
- TabController长度从10更新为11,支持ButtonWidget展示
- 添加智能按钮图标(Icons.smart_button)和"ButtonWidget"标签
- 完善组件库功能演示的完整性和用户体验
0.1.3 - 2025-08-04 #
-
HResizableContainerWidget组件: 水平可调整大小的容器组件
- 支持拖动调整宽度,智能计算宽度限制
- 动态宽度约束计算,适应不同屏幕尺寸
- 可配置最小/最大宽度比例和预留空间
- 支持左侧或右侧分割线位置
- 可选动画效果和性能优化模式
- 双击恢复默认宽度功能
- 自定义分割线样式和颜色配置
-
VResizableContainerWidget组件: 垂直可调整大小的容器组件
- 支持拖动调整高度,智能计算高度限制
- 动态高度约束计算,考虑键盘和系统UI
- 可配置最小/最大高度比例和预留空间
- 流畅的拖动交互和视觉反馈
- 可选动画效果和性能优化模式
- 双击恢复默认高度功能
- 自定义分割线样式和颜色配置
-
Container模块增强:
- 更新container模块导出配置
- 完善可调整大小容器的功能覆盖
- 提供统一的容器组件API设计
Fixed #
- VResizableContainerWidget拖拽方向修复: 修正了拖拽方向逻辑
- 向下拖拽现在正确地增加高度(符合用户直觉)
- 向上拖拽现在正确地减少高度(符合用户直觉)
- 修复了setState在build过程中被调用的问题
- 修复了RenderFlex布局溢出问题
- 替换弃用的withOpacity方法为withValues
Technical Details #
- 智能约束计算: 动态计算宽度/高度限制,适应不同设备和屏幕方向
- 性能优化: 可选动画模式,拖动时直接更新避免性能损耗
- 用户体验: 鼠标悬停指示器、拖动状态反馈、双击重置功能
- 可定制性: 丰富的样式配置选项,支持自定义颜色和尺寸
- 响应式设计: 自动适应屏幕尺寸变化和系统UI变化
0.1.2 2025-01-XX #
Added #
-
FastContextMenu组件: 快速响应的现代化右键菜单组件
- 支持自定义菜单项配置(标题、图标、回调函数)
- 智能颜色配置,根据菜单项类型自动应用语义化颜色
- 流畅的悬停动画效果和交互反馈
- 智能位置计算,确保菜单不超出屏幕边界
- 支持菜单项启用/禁用状态
- 兼容原有PopupContextMenu接口
- 无外部依赖,使用原生Flutter组件实现
-
Menu模块导出和集成:
- 新增
src/menu/menu.dart导出文件 - 在主库导出文件中添加菜单组件导出
- 完善组件库的UI交互功能覆盖
- 新增
Technical Details #
- 组件特性: 支持多种预设菜单项颜色配置(删除、提交、审核、撤销等)
- 性能优化: 使用AnimationController实现流畅的悬停动画效果
- 用户体验: 智能菜单定位和边界检测,防止菜单超出屏幕
- 可定制性: 支持自定义图标颜色、文字颜色和菜单项状态
- 兼容性: 提供PopupContextMenu兼容接口,方便现有代码迁移
0.1.1 - 2025-08-02 #
Added #
-
CustomPaginationWidget组件: 功能完整的分页组件
- 完整的分页导航功能(首页、上一页、下一页、末页)
- 智能页码显示和跳转(最多显示5个页码按钮)
- 总记录数和当前页信息显示
- 可配置的每页显示数量选择器(支持10/20/50/100等选项)
- 可自定义样式和主题色
- 响应式设计,适配不同屏幕尺寸
- 高性能渲染和状态管理
- 支持禁用状态和交互反馈
-
分页组件导出和集成:
- 新增
src/pagination/pagination.dart导出文件 - 在主库导出文件中添加分页组件导出
- 完善组件库的整体功能覆盖
- 新增
-
分页组件示例应用:
- 新增
example/lib/pagination_example.dart完整示例页面 - 模拟数据表格展示分页功能
- 交互式演示页码跳转和每页数量切换
- 包含使用说明和功能介绍
- 在主示例应用中添加分页组件Tab页
- 新增
Changed #
-
示例应用增强:
- 主应用TabController长度从7更新为8,支持新增的分页组件Tab
- 添加分页组件图标和导航标签
- 完善组件功能演示的完整性
-
文档更新:
- README.md中添加CustomPaginationWidget组件介绍
- 更新主要特性列表,包含分页导航功能
- 添加分页组件的快速使用示例和详细说明
- 更新API文档,包含CustomPaginationWidget的完整参数说明
- 更新项目结构图,显示分页组件目录
Technical Details #
- 组件特性: 支持1-100000+记录的高效分页处理
- 性能优化: 智能页码范围计算,避免不必要的渲染
- 用户体验: 直观的分页控件和状态反馈
- 可定制性: 支持自定义页面大小选项和样式主题
- 兼容性: 与现有组件库完美集成,保持API一致性
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.0.9 - 2025-08-02 #
Added #
-
TextWidget组件: 丰富的文本显示组件,支持多种预设样式和扩展方法
- 预设样式:title、subtitle、body、caption、error、success、warning
- String扩展方法:
.toTitle()、.toSubtitle()、.toBody()、.toCaption()、.toError()、.toSuccess()、.toWarning() - 支持自定义样式、点击事件、行数限制等功能
- 完整的测试覆盖和示例展示
-
ContainerWidget组件: 高级容器组件,支持丰富的样式和交互功能
- 预设样式:card、button、circle、bordered、gradient
- Widget扩展方法:
.inContainer()、.inCard()、.inButton()、.inCircle()、.inBordered()、.withPadding()、.withMargin()、.withColor() - 支持渐变背景、阴影效果、边框样式、点击事件等
- 智能装饰计算和clipBehavior处理
- 完整的测试覆盖和示例展示
-
组件导出结构优化:
- 独立的组件导出文件:
text/text.dart、container/container.dart、date/date.dart、filter/filter.dart - 完善的主库导出配置
- 移动端和桌面端组件分类
- 独立的组件导出文件:
-
示例应用增强:
- 在demo_page.dart中新增TextWidget和ContainerWidget的详细使用示例
- 交互式演示,包含点击反馈和状态展示
- 涵盖所有组件功能的完整示例
Changed #
-
环境要求更新:
- 升级Flutter版本要求至3.32.4 (Dart 3.8.1)
- 更新syncfusion_flutter_datepicker至30.1.42版本
- 启用material design支持以兼容syncfusion组件
-
API优化:
- 恢复使用
withValues(alpha: x)方法替代已弃用的withOpacity() - 优化ContainerWidget的装饰计算逻辑
- 改进组件的类型安全和参数验证
- 恢复使用
-
项目结构重组:
- 重新组织lib/src目录结构
- 完善组件分类和导出配置
- 更新文档结构和组件说明
Fixed #
- 修复ContainerWidget的clipBehavior错误,当没有装饰时返回空的BoxDecoration
- 解决syncfusion_flutter_datepicker版本兼容性问题
- 修复withValues方法的API兼容性问题
- 解决material design图标支持问题
Technical Details #
- 测试覆盖: 32个测试用例全部通过,100%测试覆盖率
- 代码质量: 通过Flutter analyze检查,仅剩无关紧要的info级别提示
- 兼容性: 支持所有Flutter平台(Android、iOS、Web、Windows、macOS、Linux)
- 依赖管理: 使用最新稳定版本的依赖包
0.0.8 - 2025-08-01 #
0.0.7 - 2025-08-01 #
0.0.6 - 2024-08-01 #
0.0.5 - 2024-08-01 #
0.0.4 - 2024-08-01 #
Changed #
- Minor version update for improved package stability
- Enhanced documentation formatting and clarity
- Optimized package structure for better maintainability
Fixed #
- Improved package validation and compliance with pub.flutter-io.cn standards
- Enhanced code quality and consistency across components
0.0.3 - 2024-08-01 #
Added #
- FilterSearchWidget component with comprehensive search functionality
- Generic type support for any data type
- Configurable search behavior (delay, minimum length, custom filters)
- Custom result display with flexible item builders
- Selection state management
- Debounced search to prevent excessive operations
- Clean implementation with no external dependencies
- FilterSearchConfig class for customizing search behavior and appearance
- FilterSearchItem generic data class for search results with selection state
- Complete documentation for FilterSearchWidget in doc/filter_search_widget.md
- Updated README.md with FilterSearchWidget usage examples and features
- Updated main library export to include FilterSearchWidget
Changed #
- Moved documentation from docs/ to doc/ directory to follow Pub layout conventions
- Updated example functionality list to include search demonstrations
Technical Details #
- Supports Flutter SDK 3.8.1+
- Implements generic types for type safety
- Includes search delay and minimum length configuration
- Provides custom filter and item builder options
- Maintains compatibility with existing library components
0.0.2 - 2024-07-31 #
0.0.1 - 2024-07-31 #
Added #
- Initial release of SC Flutter Component Library
- TextFieldWidget component with multiple input types support
- text: 普通文本输入
- weight: 重量输入(小数点后3位限制)
- price: 单价输入(小数点后4位限制)
- amount: 金额输入(小数点后2位限制)
- quantity: 数量输入(仅整数)
- QuickFilterTextFieldWithClearWidget component with clear button functionality
- Automatic input validation and formatting
- Customizable styles and dimensions
- Focus management and callback events
- Enable/disable state control
- Prefix and suffix icon support
- Comprehensive example application demonstrating all features
- Complete documentation and API reference
- Multi-language support (Chinese)
Features #
- 🎯 Multiple input type support
- ✅ Automatic input format validation and restriction
- 🎨 Customizable styles and dimensions
- 🔧 Prefix and suffix icon support
- 📱 Focus management and callback events
- 🔄 Enable/disable state control
- 🗑️ Smart clear button (shows when content exists)
- ⚡ One-click clear functionality
- 📚 Comprehensive example application
- 📖 Complete documentation
Documentation #
- Added comprehensive README.md with usage examples
- Added example project with detailed demonstrations
- Added API documentation with parameter tables
- Added development guidelines and contribution instructions