junny_dev_kit 1.1.1+2
junny_dev_kit: ^1.1.1+2 copied to clipboard
JunnySoft开发工具包.
1.1.1+2 - 2025-08-11 #
✨ 路由统计增强 #
- 在
lib/src/utils/route_stack_observer.dart的_trackPageView()捕获并上报push的arguments - 新增统计字段:
route_name、args_count、args_keys、args(或args_type/args_string) - 当
route.settings.name为空时,以route.runtimeType作为回退
更多历史版本请查看 CHANGELOG_ARCHIVE.md
1.1.1+1 - 2025-08-04 #
🔧 文件下载优化与依赖更新 #
🏗️ 文件下载功能优化
- ♻️ OSS 文件下载请求头优化
• 修改
FileDataExtension.downloadSingleFile()方法的请求头配置 • 将Content-Type: application/octet-stream改为Accept: application/octet-stream• 添加Cache-Control: no-cache禁用缓存,确保获取最新文件 • 为 OSS 签名请求添加dateTime: DateTime.now().toUtc()参数 • 提升文件下载的可靠性和时效性
📦 依赖更新
- ⬆️ mailer 依赖升级 • 将 mailer 从 6.4.1 升级到 6.5.0 • 获得最新的邮件发送功能和安全性改进
1.1.1 - 2025-08-04 #
🔧 数据库清理架构优化 #
✨ 新增功能
- 🆕 LocaleDBUtils 工具类 • 新增独立的语种数据库操作工具类 • 提供完整的语种数据 CRUD 操作 • 支持语种代码查询和存在性检查
🏗️ 架构重构
-
♻️ 数据库清理逻辑重构 • 修复
clearCacheAndToLogin()方法逻辑漏洞 • 解决清理用户缓存时意外清除 account 数据库的问题 • 实现精确的按类型清理逻辑,避免重复清理 -
🔄 DatabaseUtils 架构优化 • 将
getUserMenu()和setSubSystemMenu()业务逻辑迁移到 MenuDBUtils • DatabaseUtils 改为纯粹的中间层委托,不包含具体业务实现 • 提升代码架构的一致性和可维护性
📏 命名规范统一
- 🎯 清理方法命名标准化
• 单一数据类型工具类统一使用
clear()方法 • InitStatusDBUtils、LocaleDBUtils、DictDBUtils、AccountDBUtils、UserInfoDBUtils • 多种数据类型工具类保留具体命名(如 MenuDBUtils 的 clearUserMenus 等) • 提升 API 设计一致性和简洁性
🐛 问题修复
- 🔧 缓存清理逻辑修复 • 修复 BusinessUtils._clearDatabaseCache() 中的重复清理问题 • 采用互斥清理策略:精确清理 vs 批量清理 • 优化 DatabaseUtils 批量清理方法,统一调用专业工具类
🚀 性能优化
- ⚡ 清理操作优化 • 使用并行清理提升性能(Future.wait) • 避免不必要的重复数据库操作 • 优化翻译数据库的复杂清理流程
1.1.0 - 2025-08-02 #
🎉 重大功能发布 - 通用菜单系统与地址数据库架构升级 #
✨ 新增功能 #
- 🆕 通用菜单模块 - 完全配置化的工作台和子系统菜单组件
• 新增
UniversalMenuWidget通用菜单组件 • 新增UniversalWorkbenchPage工作台页面组件 • 新增UniversalSubSystemPage子系统页面组件 • 支持完全配置化的字段映射和显示控制
🏗️ 架构重构 #
- ♻️ 地址数据库架构重构:从JSON文件迁移到预置ObjectBox数据库
• 删除
assets/others/address.json,新增预置数据库文件 • 实现独立的地址数据库管理系统AddressDBUtils• 支持预置数据库文件的自动复制和初始化机制 • 提供完整的地址查询API(按ID、父级ID、层级、地名搜索等)
🔧 配置系统 #
- 📋 菜单配置系统
•
MenuFieldConfig: 自定义数据字段名映射 •MenuDisplayConfig: 控制布局样式和显示策略 •MenuRouteConfig: 管理导航行为 •MenuIconProvider: 自定义图标映射逻辑 • 新增配置组类简化参数传递
🗃️ 数据处理优化 #
-
📊 菜单数据处理器 •
MenuDataSource: 抽象数据源接口 •UniversalMenuProcessor: 菜单数据处理器 •WorkbenchDataProcessor: 工作台数据处理器 •MultiLevelMenuProcessor: 多层级菜单处理器 • 支持多层级菜单结构和权限验证 -
📊 JunnyAddress模型结构简化 • 字段名统一:
parentBusinessId→parentId• 移除不必要的索引注解和Relations注释代码 • 简化模型结构,提升查询性能
🎨 UI组件 #
- 🖼️ 统一菜单UI组件
•
UnifiedMenuCard: 统一菜单卡片组件 •MenuTabView: 分组标签视图 •MenuDataLoader: 菜单数据加载器 •MenuDataService: 菜单数据服务 • 支持工作台和子系统两种显示模式
🔌 提供者接口 #
- 🔗 菜单服务提供者
•
MenuStorageProvider: 菜单存储提供者 •MenuTranslationProvider: 菜单翻译提供者 • 支持缓存机制和国际化
🗑️ 废弃标记 #
- ⚠️ 标记setAddresses方法为废弃 • 预置地址数据库为只读,不支持写入操作 • 提供迁移指南,建议使用独立的用户地址数据库
🔧 代码优化 #
-
🧹 DatabaseUtils架构调整 • 移除地址相关的直接管理,委托给AddressDBUtils • 删除setAddressesJson方法,简化初始化流程 • 新增initAddressData委托方法
-
💻 翻译模型优化 • 简化
JunnyLocale模型结构 • 移除冗余的localDbId字段 • 使用 assignable ID 优化数据库存储 -
🧹 菜单数据库工具优化 • 简化
MenuDBUtils.setSubsystemMenusFromObjects方法签名 • 移除重复的方法实现,统一菜单对象存储逻辑 • 优化异常处理,使用 rethrow 保持错误堆栈
📦 资源配置更新 #
- 🔧 pubspec.yaml资源路径调整
• 从
assets/others/更新为assets/address_db/• 自动生成文件同步更新(ObjectBox模型、Assets生成代码)
📚 文档完善 #
- 📖 新增详细的菜单模块文档 • 新增详细的 README 文档和使用指南 • 包含完整的API参考和最佳实践 • 更新实际API参数和配置示例
1.0.1+2 - 2025-07-26 #
� 架构优化 #
- ♻️ 用户信息监听系统重构:从ValueNotifier迁移到ObjectBox Stream响应式方案
• 新增
userInfoStream方法,基于 ObjectBox 原生响应式查询 • 使用box.query().watch(triggerImmediately: true)实现自动监听 • 自动解析 JSON 数据并提供 broadcast stream 支持
🗑️ 代码清理 #
- 🧹 移除废弃的ValueNotifier相关代码
• 删除
getUserInfoNotifier、_notifyUserInfoChanged、disposeAllNotifiers方法 • 移除手动通知逻辑和 ValueNotifier 相关代码 • 清理不再需要的 import 依赖
🔧 使用方更新 #
- 💻 更新相关组件使用新的Stream API
• DatabaseUtils 新增
userInfoStream方法 • 更新junnysoft_app.dart水印监听使用 StreamBuilder • 更新business_utils.dart移除手动清理逻辑 • 更新示例文件使用 StreamBuilder 替代 ValueListenableBuilder
⚡ 性能优化 #
- 🚀 基于ObjectBox原生响应式查询的性能提升 • 基于 ObjectBox 原生响应式查询,性能更优 • 无需手动通知和清理,减少内存泄漏风险 • 与 ObjectBox 官方推荐的数据观察者模式保持一致 • 代码更简洁,维护成本更低
📦 依赖更新 #
- 🔧 新增依赖包
• 新增
flat_buffers: ^23.5.26依赖,支持高性能序列化 • 优化.pubignore配置,改进包发布流程
1.0.0 - 2025-07-26 #
🎉 重大版本发布 - 数据库架构全面升级 #
🏗️ 架构重构 #
- ♻️ 数据库引擎完全迁移:从 Isar 4.0.0-dev.14 迁移到 ObjectBox • 完全替换底层数据库引擎,提升性能和稳定性 • 保持所有业务API完全兼容,零业务代码变更 • 支持更高效的数据存储和查询操作 • 优化内存使用和磁盘空间占用
🗃️ 数据模型重构 #
- 📊 核心数据模型全面升级
•
JunnyAccount- 用户账户信息模型 •JunnyAddress- 地址信息模型 •JunnyDict- 字典数据模型 •JunnyInitStatus- 初始化状态模型 •JunnyLocale- 本地化配置模型 •JunnyQuickMenu- 快捷菜单模型 •JunnySubsystemMenu- 子系统菜单模型 •JunnyUserInfo- 用户信息模型 •JunnyUserMenu- 用户菜单模型 •JunnyLanguage- 翻译语言模型 •JunnyLanguageLog- 翻译日志模型
🔧 数据库工具类重构 #
- 🛠️ 专业化数据库操作工具
•
AccountDBUtils- 账户数据操作工具 •AddressDBUtils- 地址数据操作工具 •DictDBUtils- 字典数据操作工具 •InitStatusDBUtils- 初始化状态操作工具 •MenuDBUtils- 菜单数据操作工具 •UserInfoDBUtils- 用户信息操作工具 •DatabaseCleanupManager- 数据库清理管理器 • 移除DbAsyncManager,优化异步操作架构
🚀 性能优化 #
- ⚡ 用户信息变更监听优化
• 使用
ValueNotifier替代Stream实现 • 降低内存占用,提升响应速度 • 支持智能更新判断,避免不必要的通知 • 新增getAllUserInfo方法支持批量数据获取
🌐 翻译系统优化 #
- 🔄 翻译缓存架构升级
• 新增
QueryCache查询缓存层 • 优化翻译数据库连接管理 • 改进翻译数据持久化机制 • 支持翻译数据库重连和故障恢复
🧹 代码清理 #
- 🗑️ 移除过时文件和依赖 • 删除所有 Isar 相关生成文件 (*.g.dart) • 移除数据库相关文档文件 • 清理过时的配置和工具类 • 优化项目结构和依赖关系
📦 依赖更新 #
- 📋 核心依赖升级
• 移除
isar和isar_flutter_libs依赖 • 新增objectbox和objectbox_flutter_libs依赖 • 更新相关开发工具依赖 • 优化构建配置文件
🔒 稳定性提升 #
- 🛡️ 数据安全和一致性保障 • 完善数据库操作异常处理机制 • 支持数据库连接故障自动恢复 • 优化并发操作安全性 • 提供完整的数据迁移和回滚支持
📝 开发体验 #
- 💻 开发工具和示例完善
• 新增
UserInfoListenerExample用户信息监听示例 • 完善数据库操作文档和注释 • 优化代码生成和构建流程 • 提供详细的迁移指南和最佳实践
0.13.5-dev - 2025-06-30 #
🐛 Bug修复 #
- 🔧 修复FormControlMixin子表禁用逻辑缺陷
• 修复
isSubtableDisabled方法缺少页面类型判断的问题 • 确保普通编辑页面(add/modify)正确调用_isEditDisabled逻辑 • 确保流程页面正确调用_isWorkflowDisabled逻辑 • 统一返回值类型为bool,保持API一致性 • 解决普通编辑页面子表禁用状态判断错误的问题
0.13.4-dev - 2025-06-27 #
🐛 Bug修复 #
- 🔧 修复组织机构树页面用户数据字段映射问题
• 修复用户数据的
id和userId字段双向赋值逻辑 • 确保无论数据源格式如何都能正确处理用户数据 • 避免因缺少userId字段导致的数据处理错误
0.13.3-dev - 2025-06-27 #
🏗️ 架构重构 #
- ♻️ 列表Mixin架构重构,支持分页和非分页两种模式
• 重构
ListPageMixin,保持原有分页功能完全不变 • 新增ListDataMixin,支持非分页全量数据获取 • 重命名list_page_mixin.dart为list_mixin.dart统一管理 • 抽取通用的删除逻辑,实现代码复用
✨ 新功能 #
- 🚀 非分页列表支持
• 新增
ListDataMixin支持一次性获取所有数据 • 适用于数据量较小的简单列表场景 • 支持客户端筛选和排序 • 只支持下拉刷新,不支持上拉加载
📚 文档更新 #
- 📖 完善详细的文档注释和使用示例
• 为
ListPageMixin和ListDataMixin添加完整的类级别文档 • 每个公开方法都有详细的参数说明和返回值描述 • 提供丰富的代码使用示例 • 新增docs/list_mixins_guide.md详细使用指南 • 创建lib/src/examples/list_mixins_example.dart完整示例代码
🔧 开发体验优化 #
- 💡 智能提示增强 • 通过详细的文档注释,IDE 可以提供更好的智能提示 • 清晰的方法分类:必须实现 vs 可选重写 • 统一的文档格式和 emoji 图标,提升可读性
0.13.2-dev - 2025-06-25 #
🏗️ 架构重构 #
- ♻️ Tree组件迁移修复和优化
• 完成组织机构页面的Tree组件重构迁移
• 将
JunnyTreeNode<T>迁移到TreeViewNode<T>• 更新数据访问方式:node.data→node.content• 适配新的TreeController API:findNodes→searchNodes
✨ 新功能 #
- 🚀 Tree组件性能优化 • 配置JunnyTreeController的titleProvider和childrenProvider • 实现智能筛选策略:单字段用searchNodes,多字段用filterNodes • 支持多字段筛选:组织名称、组织代码、组织层级 • 提供不同匹配策略:模糊匹配和精确匹配
🐛 Bug 修复 #
- 🔧 修复Tree组件类型错误
• 解决
JunnyTreeNode未定义的编译错误 • 修复findNodes方法不存在的问题 • 清理未使用的筛选条件检查方法
📚 文档更新 #
- 📖 完善Tree组件迁移指南 • 更新迁移步骤和注意事项 • 添加性能优化建议 • 提供完整的代码示例