feat: 新增API响应模型、缓存配置和状态管理

refactor: 优化网络请求和错误处理

fix: 修复颜色引用和UI细节问题

docs: 更新API文档和设计规范

chore: 清理无用文件和脚本

perf: 优化图片导出和压缩逻辑

build: 更新依赖和构建配置

style: 调整代码格式和注释

test: 添加接口验证脚本

ci: 更新CI配置和脚本
This commit is contained in:
Developer
2026-04-29 01:39:48 +08:00
parent b6441a8919
commit a4b7105999
158 changed files with 45166 additions and 6450 deletions

View File

@@ -723,3 +723,211 @@ lib/editor/
|-------|------|------|---------|
| Phase 3 | v0.24.0 | PBR材质+环境光照+场景截图 | flutter_3d_controller深度适配 |
| Phase 4 | v0.25.0 | 3D文字+网络3D模型 | Phase 3完成 |
---
## 十四、flutter_slidable ^4.0.3 — 接口详解 (🆕 v1.9.0 新增)
> 滑动操作组件iOS风格列表项左滑/右滑操作
### 14.1 核心API
```dart
Slidable({
Key? key,
required Widget child,
SlidableController? controller,
ActionPane? startActionPane, // 左滑/上滑操作面板
ActionPane? endActionPane, // 右滑/下滑操作面板
double closeOnScrollThreshold = 8.0,
bool closeOnScroll = true,
Duration closeDuration = const Duration(milliseconds: 400),
})
ActionPane({
required Widget motion, // 动画效果
double extentToPreviousChild = 0.0,
DismissiblePane? dismissible,
List<Widget> children, // 操作按钮
})
SlidableAction({
VoidCallback? onPressed,
Color backgroundColor,
Color? foregroundColor,
Widget? icon,
String? label,
bool autoClose = true,
int flex = 1,
BorderRadius? borderRadius,
EdgeInsets? padding,
})
// 4种内置动画
ScrollMotion() // 滚动效果推荐iOS风格
BehindMotion() // 背后显示
StretchMotion() // 拉伸效果最接近iOS原生
DrawerMotion() // 抽屉效果
// 控制器
SlidableController controller;
controller.openStartActionPane();
controller.openEndActionPane();
controller.close();
```
### 14.2 可扩展功能清单
| # | 功能 | 对应API | 与现有功能结合点 | 优先级 | 状态 |
|---|------|---------|-----------------|:------:|:----:|
| SL1 | 📝 笔记滑动操作 | `endActionPane` | 笔记列表左滑删除/编辑 | P0 | ⏳ |
| SL2 | ❤️ 收藏滑动操作 | `startActionPane` | 收藏列表右滑取消收藏 | P0 | ⏳ |
| SL3 | 📜 历史滑动删除 | `DismissiblePane` | 阅读历史滑动删除 | P0 | ⏳ |
| SL4 | 🔍 搜索历史滑动 | `SlidableAction` | 搜索页历史记录管理 | P1 | ⏳ |
| SL5 | 🏷️ 标签滑动操作 | `endActionPane` | 标签重命名/删除 | P1 | ⏳ |
| SL6 | 🛠️ 工具滑动操作 | `startActionPane` | 工具置顶/取消收藏 | P1 | ⏳ |
| SL7 | 💬 句子卡片滑动 | `SlidableAction` | 收藏/分享/纠错快捷操作 | P2 | ⏳ |
| SL8 | 🎨 自定义滑动动画 | `StretchMotion` | iOS风格拉伸效果 | P2 | ⏳ |
---
## 十五、flutter_sticky_header ^0.8.0 — 接口详解 (🆕 v1.9.0 新增)
> 粘性分组头组件CustomScrollView中实现分组吸顶
### 15.1 核心API
```dart
SliverStickyHeader({
Key? key,
required Widget header,
required Widget sliver,
bool sticky = true,
SliverStickyHeaderController? controller,
bool overlapsContent = false,
})
SliverStickyHeader.builder({
Key? key,
required SliverStickyHeaderBuilderCallback builder,
required Widget sliver,
bool sticky = true,
SliverStickyHeaderController? controller,
bool overlapsContent = false,
})
typedef SliverStickyHeaderBuilderCallback =
Widget Function(BuildContext context, SliverStickyHeaderState state);
class SliverStickyHeaderState {
double get scrollPercentage; // 0.0~1.0 滚动百分比
bool get isPinned; // 是否吸顶
}
class SliverStickyHeaderController
extends ChangeNotifier {
double get scrollOffset; // 当前粘性头偏移
}
```
### 15.2 可扩展功能清单
| # | 功能 | 对应API | 与现有功能结合点 | 优先级 | 状态 |
|---|------|---------|-----------------|:------:|:----:|
| SH1 | 📂 工具中心分类吸顶 | `SliverStickyHeader` | 工具面板按分类吸顶 | P0 | ⏳ |
| SH2 | 🔥 热搜平台分组吸顶 | `SliverStickyHeader` | 热搜榜按平台分组 | P0 | ⏳ |
| SH3 | 📝 笔记日期分组吸顶 | `builder + isPinned` | 笔记列表按日期分组 | P1 | ⏳ |
| SH4 | 📜 历史日期分组吸顶 | `SliverStickyHeader` | 阅读历史按日期分组 | P1 | ⏳ |
| SH5 | 🎨 传统色色系吸顶 | `SliverStickyHeader` | 传统色按色系分组 | P1 | ⏳ |
| SH6 | 📝 汉语拼音分组吸顶 | `SliverStickyHeader` | 汉字查询A-Z分组 | P2 | ⏳ |
| SH7 | 🍶 酒方分类吸顶 | `SliverStickyHeader` | 酒方按分类分组 | P2 | ⏳ |
| SH8 | 🎭 吸顶动画效果 | `builder + scrollPercentage` | 吸顶时header渐变/缩放 | P2 | ⏳ |
---
## 十六、value_layout_builder ^0.5.0 — 接口详解 (🆕 v1.9.0 新增)
> LayoutBuilder扩展布局阶段传递自定义值flutter_sticky_header底层依赖
### 16.1 核心API
```dart
ValueLayoutBuilder<T>({
Key? key,
required ValueLayoutWidgetBuilder<T> builder,
})
typedef ValueLayoutWidgetBuilder<T> =
Widget Function(BuildContext context, BoxValueConstraints<T> constraints);
class BoxValueConstraints<T> extends BoxConstraints {
final T value;
}
class SliverValueLayoutBuilder<T> {
SliverValueWidgetBuilder<T> builder;
}
class SliverValueConstraints<T> extends SliverConstraints {
final T value;
}
```
### 16.2 可扩展功能清单
| # | 功能 | 对应API | 与现有功能结合点 | 优先级 | 状态 |
|---|------|---------|-----------------|:------:|:----:|
| VL1 | 📐 响应式断点传递 | `ValueLayoutBuilder<Breakpoint>` | 替代MediaQuery布局断点 | P2 | ⏳ |
| VL2 | 🎨 主题值布局传递 | `ValueLayoutBuilder<ThemeData>` | 配合sticky_header传递滚动偏移 | P3 | ⏳ |
| VL3 | 📊 列表项位置感知 | `SliverValueLayoutBuilder` | 列表项可见性检测 | P3 | ⏳ |
> 注:此库主要作为 flutter_sticky_header 的依赖,独立使用场景较少
---
## 十七、已有库 + API 组合扩展 (🆕 v1.9.0 新增)
### 17.1 现有库未充分利用能力
| 已有库 | 当前用途 | 🔓 可扩展功能 |
|--------|----------|---------------|
| `cached_network_image` | 图片缓存显示 | 配合热搜API显示热搜配图 |
| `connectivity_plus` | 网络检测 | 工具状态实时监测(离线灰显) |
| `image_picker` + `file_picker` | 选图 | OCR识别工具 + 图片压缩工具 |
| `share_plus` | 分享 | 所有工具结果一键分享 |
| `shimmer` | 骨架屏 | 工具列表加载态 + 搜索结果加载态 |
| `flutter_animate` | 动画 | 工具卡片入场动画 + 签到庆祝动画 |
| `confetti` | 庆祝效果 | 签到成功 + 成就解锁 |
| `lottie` | Lottie动画 | 工具加载动画 + 空状态动画 |
| `adaptive_palette` | 图片主色提取 | 句子卡片自动取色背景 |
| `flutter_svg` | SVG渲染 | 工具分类图标 + 空状态插画 |
| `google_fonts` | 字体 | 笔记编辑器字体选择 + 卡片字体 |
| `gal` | 保存到相册 | 卡片导出保存 + 传统色保存 |
| `archive` + `crypto` | 压缩/加密 | 数据导出加密 + 笔记备份 |
| `drift` | 本地数据库 | 工具使用统计持久化 + 搜索历史 |
| `flutter_secure_storage` | 安全存储 | 隐私笔记加密存储 |
### 17.2 API + 已有库组合扩展
| 组合 | 功能 | 需新增库 |
|------|------|----------|
| `/api/hanzi/search` + `drift` + `shimmer` + `flutter_sticky_header` | 17种汉语工具 + 本地缓存 + 加载态 + 分组吸顶 | ❌ |
| `/api/hot/read` + `cached_network_image` + `flutter_sticky_header` | 热搜榜 + 配图 + 平台分组吸顶 | ❌ |
| `/api/hanzi/china_colors` + `gal` + `adaptive_palette` + `flutter_sticky_header` | 传统色浏览 + 保存 + 取色 + 色系吸顶 | ❌ |
| `/api/webapi/ocr` + `image_picker` + `flutter_slidable` | OCR识别 + 历史记录滑动删除 | ❌ |
| `/api/webapi/ImgCompress` + `image_picker` + `gal` | 图片压缩 + 保存 | ❌ |
| `/api/hanzi/search` + `share_plus` + `flutter_animate` + `flutter_slidable` | 趣味工具 + 分享 + 动画 + 滑动操作 | ❌ |
| `/api/hitokoto/*` + `confetti` + `flutter_animate` | 一言句子 + 庆祝效果 + 动画 | ❌ |
| `/api/user/note` + `flutter_slidable` + `flutter_sticky_header` | 笔记CRUD + 滑动操作 + 日期分组吸顶 | ❌ |
| `/api/user/favorite` + `flutter_slidable` | 收藏管理 + 滑动取消收藏 | ❌ |
### 17.3 还需要的第三方库
| 库 | 用途 | 对应功能 | 优先级 | 状态 |
|----|------|----------|:------:|:----:|
| `flutter_markdown` | Markdown渲染 | 工具结果/笔记/说明展示 | P1 | ⬜ |
| `pull_down_button` | iOS下拉菜单 | 工具操作菜单 | P1 | ⬜ |
| `sliver_tools` | Sliver组合工具 | 多Sliver布局组合 | P2 | ⬜ |
| `bot_toast` | Toast提示 | 操作反馈 | P2 | ⬜ |
| `in_app_review` | 应用评分 | 引导用户评分 | P3 | ⬜ |
| `app_links` | 深度链接 | 外部打开工具 | P3 | ⬜ |