621 Commits

Author SHA1 Message Date
小鱼开发 6763228ed9 fix(recharge): 选中样式对齐设计规范
- border-color: var(--primary)
- background: var(--primary-light)
- 与其他组件(option-card/template-card/material-card)保持一致
2026-05-18 22:09:08 +08:00
小鱼开发 47a7232d43 fix(recharge): 选中状态移除边框变色,只保留背景色 2026-05-18 22:06:50 +08:00
小鱼开发 a9fb0838cf fix: show friendly error message in production 2026-05-18 22:02:43 +08:00
小鱼开发 ce7fc9f15f fix: show friendly error message in production 2026-05-18 22:02:26 +08:00
小鱼开发 721d690370 feat: add detailed error message for category loading failure 2026-05-18 21:51:49 +08:00
小鱼开发 61a2cf5f0d feat: add detailed error message for category loading failure 2026-05-18 21:51:32 +08:00
小鱼开发 26d0901fd2 feat: disable default context menu except input fields 2026-05-18 21:24:32 +08:00
小鱼开发 5cfdd5cf19 feat: disable default context menu except input fields 2026-05-18 21:24:17 +08:00
小鱼开发 4ea8162af4 fix(icons): white background with smaller M logo 2026-05-18 20:48:14 +08:00
小鱼开发 8da64b6e10 fix(icons): white background with smaller M logo 2026-05-18 20:47:49 +08:00
小鱼开发 91c15a24f7 ci: add environment selector and VITE_API_BASE_URL for release builds 2026-05-18 18:32:25 +08:00
小鱼开发 0b28ed8bf3 ci: add environment selector and VITE_API_BASE_URL for release builds 2026-05-18 18:31:55 +08:00
小鱼开发 8a1028bc24 fix(icons): regenerate app icons from logo.png with transparent background 2026-05-18 18:24:19 +08:00
小鱼开发 7ceb50f46c fix(icons): regenerate app icons from logo.png with transparent background 2026-05-18 18:23:50 +08:00
小鱼开发 61074d637d fix(ci): add universal sidecar for macOS; disable MSI due to WiX sidecar size issue 2026-05-18 17:47:16 +08:00
小鱼开发 285d68ecb1 fix(ci): add universal sidecar for macOS; disable MSI due to WiX sidecar size issue 2026-05-18 17:27:12 +08:00
小鱼开发 70893b2a07 feat(points): 修正充值档位价格与积分
- 100元 = 2000积分,无标签,180天有效
- 500元(热销)= 11000积分,180天有效
- 1000元(推荐)= 23000积分,365天有效
- 5000元(超值)= 125000积分,永久有效
- 1积分 = 0.05元
2026-05-18 17:27:11 +08:00
小鱼开发 9cdb04cbb5 feat(points): 修正充值档位价格与积分
- 100元 = 2000积分,无标签,180天有效
- 500元(热销)= 11000积分,180天有效
- 1000元(推荐)= 23000积分,365天有效
- 5000元(超值)= 125000积分,永久有效
- 1积分 = 0.05元
2026-05-18 16:44:16 +08:00
小鱼开发 65d2be7700 feat(points): 修正充值档位价格与积分
- 100元 = 2000积分,无标签,180天有效
- 500元(热销)= 11000积分,180天有效
- 1000元(推荐)= 23000积分,365天有效
- 5000元(超值)= 125000积分,永久有效
- 1积分 = 0.05元
2026-05-18 16:36:45 +08:00
小鱼开发 07bcbc2317 release: v1.5.16 2026-05-18 16:31:58 +08:00
小鱼开发 915c1fd9a2 chore: add sidecar binary download step to GitHub Actions workflow 2026-05-18 16:28:36 +08:00
小鱼开发 5187bd93ee chore: add GitHub Actions release workflow, signing docs, ignore sidecar binaries 2026-05-18 16:09:47 +08:00
小鱼开发 ffffb51da4 feat(points): 调整充值档位为4档
- 1元档:100积分,无标签,180天有效
- 5元档(热销):1000积分,180天有效
- 10元档(推荐):3000积分,365天有效
- 50元档(超值):25000积分,永久有效
2026-05-18 16:00:58 +08:00
小鱼开发 74fd855d33 feat(points): 充值档位添加积分有效期字段
- config/points-config.yaml: 每个档位添加 validity_days(7/30/90/180/365/0)
- points.py: 支付回调和主动查询补单时根据档位配置设置 batch_expired_at
- RechargeModal: 卡片展示有效期(永久有效 / N 天内有效)
2026-05-18 15:26:54 +08:00
小鱼开发 8809684c9d fix(canvas): 字幕预览与 libass 实际压制大小对齐
- 实测对比: libass/FreeType 渲染高度比例 0.768, Canvas 2D/CoreText 比例 0.964
- 添加 CANVAS_FONT_COMPENSATION=0.88 补偿系数用于字幕(PingFang SC)
- 标题(DouyinSansBold)单独使用 1.0 不补偿, 避免偏小
- 扣除 <video controls> 控制条高度 40px 修正 scale
2026-05-18 15:08:09 +08:00
小鱼开发 f3fbb267f9 fix: 字幕预览scale基于视频实际分辨率,修复预览与实际比例不一致 2026-05-18 14:20:20 +08:00
小鱼开发 b4ba482958 fix: 字幕字体大小从56调至50,解决预览偏大 2026-05-18 14:15:50 +08:00
小鱼开发 51fc7641b8 fix: 视频创作按钮状态管理、积分计算、封面背景图渲染
- 统一6个步骤任务按钮状态:生成中只disabled,不做文字变化
- 封面设计新增isDesigning loading state
- 进度弹窗去掉(x/y)数量显示
- 视频生成积分统一用配音音频时长口径,新增dubbingAudioDuration
- 封面背景图URL数据修复SQL
- 修复Fabric.js 7.x中originX/originY默认CENTER导致图片位置偏移
- 未选背景图时预览区显示提示
- 背景图加载失败时显示占位文字
2026-05-18 14:09:24 +08:00
小鱼开发 ddec4a607b fix(prompt): 修复 3 个提示词示例中使用二级分类名的错误 scene
将示例 JSON 中的 scene 从二级分类名改为正确的三级分类名:
- 水电改造5.9.txt: 瓷砖铺贴->墙砖定位-瓷砖铺贴
- 常见问题25选8-5.9.txt: 瓷砖铺贴->墙砖定位-瓷砖铺贴
- 油工进场5.7.txt: 墙面基层->墙固施工-墙面基层
2026-05-17 23:18:41 +08:00
小鱼开发 2d41b58021 fix(prompt): 修复 6 个提示词示例中的截断 scene
示例 JSON 中的 scene 值漏写了 '-施工翻车镜' 后缀,
导致 AI 可能模仿生成截断的 scene 名称,匹配失败。

受影响的文件:
- 半包谈价格5.8.txt
- 装修合同5.8.txt
- 装修监工5.8-2.txt
- 装修监工5.8.txt
- 防水5.7.txt
- 瓦工进场交代5.8.txt
2026-05-17 22:23:43 +08:00
小鱼开发 85f7e5c934 chore(prompt): 强化 24 个提示词的 scene 格式约束
要求 AI 输出 scene 时必须从内置素材库标题中完整原样复制,
包括连字符-前后的顺序,不得调换、缩写或改写。
从源头减少 scene 名称与数据库分类名不匹配的问题。
2026-05-17 21:37:49 +08:00
小鱼开发 2a36e4ec3d fix(material): 支持 scene 名称顺序颠倒兜底匹配
AI 生成 scene 时常将三级分类名中的 '-' 前后顺序写反
(如 瓷砖铺贴-瓷砖完工展示 vs 瓷砖完工展示-瓷砖铺贴),
导致精确匹配失败、素材匹配为空。

- match_material: 精确匹配失败后,尝试倒序匹配
- batch_match: 批量查询时同时查询原始名和倒序名,
  内存中构建 scene->category 映射,优先精确匹配、fallback 倒序
2026-05-17 21:35:44 +08:00
小鱼开发 aff4ca59ab feat: 创作主题保存/加载 + 支付二维码过期提示
- ScriptCreation: 大类/小类 selection 持久化到 project meta
- ProjectMeta: 新增 subcategoryCode 字段
- projectStore: 新增 setSubcategoryCode action
- localStorage: orderedMeta 补全 categoryCode/subcategoryCode
- RechargeModal: 过期后点击'我已支付'给出 toast 提示,按钮禁用并显示'二维码已过期'
2026-05-17 20:48:57 +08:00
小鱼开发 43e736c32d fix(wxpay): 修复微信下单重入错误
out_trade_no 原格式 MJZ{order.id:012d} 在数据库重建后 ID 从 1 重新开始,
导致与微信支付缓存中的历史订单号冲突,触发 INVALID_REQUEST 重入错误。

新格式加入时间戳:MJZ{timestamp}{order.id:08d},确保全局唯一。
2026-05-17 19:39:43 +08:00
小鱼开发 1f7201f593 fix(schema): 移除 PolishRequest 中错误的字段
PolishRequest 中误入了 message 和 result 字段(应为响应模型字段),
导致后端验证要求请求体必须包含 message,润色接口调用失败。
2026-05-16 15:14:18 +08:00
小鱼开发 d3069d423b perf(material): batch_match 批量查询优化,减少 DB 往返
- CRUD 新增 get_by_names_and_level() 批量查分类
- CRUD 新增 get_active_by_categories() 批量查素材
- CRUD 新增 increment_usage_count_batch() 批量更新 usage_count
- 重写 batch_match:从 N 次 DB 往返降到 3 次(查分类 + 查素材 + UPDATE)
- Redis 改用 pipeline 批量 sadd + expire
- 解决并发/连接池不足导致的间歇性 500 错误
2026-05-16 14:48:28 +08:00
小鱼开发 b8aad2ea62 fix(points): 视频生成积分计算使用 actualDuration
预估积分计算优先使用 actualDuration(配音合成后的实际时长),
不再依赖脚本的 duration 预估字段,确保显示值与实际扣费一致。
2026-05-16 14:38:08 +08:00
小鱼开发 0cda08aae6 style(ui): 视频生成按钮文案去掉'预计'
音频时长可精确计算积分消耗,不再显示'预计'。
2026-05-16 14:33:20 +08:00
小鱼开发 38f314481a feat: MyWorks 添加 TanStack Virtual 虚拟滚动 + TTS 预估剔除标点
- 成品网格:按行虚拟滚动,>50 个时启用,ResizeObserver 动态计算列数
- 草稿列表:始终启用虚拟滚动
- TTS 积分预估:剔除标点/空白,仅统计中文字、英文、数字
2026-05-16 14:23:21 +08:00
小鱼开发 38468735e3 refactor(VoiceMaterialLibrary): 去掉声音复刻列表的本地数据假分页 2026-05-16 10:22:06 +08:00
小鱼开发 c158fc2afd refactor(MyWorks): 去掉本地数据假分页,直接全部展示
本地数据一次性加载到内存,slice 分页无任何性能收益,
反而增加用户操作成本。参考剪映/必剪/快影等同类产品,
本地作品/草稿直接全部展示,自然滚动即可。
2026-05-16 10:19:21 +08:00
小鱼开发 9ac792db7d fix(MyWorks): 分页容器加 key,确保页码切换时旧内容被完全清除 2026-05-16 10:14:46 +08:00
小鱼开发 4c8f9696d3 refactor(MyWorks): 成品/草稿箱分页独立 + 抽取 Pagination 组件
- 成品和草稿箱各自拥有独立的 productPage / draftPage,互不干扰
- 抽取公共 Pagination 组件,消除分页 UI 代码重复
- 删除/重命名后若当前页超出范围自动回退到上一页
2026-05-16 10:09:23 +08:00
小鱼开发 08311a50d4 feat(MyWorks): 草稿箱增加翻页(每页 8 条,复用成片分页组件) 2026-05-16 10:04:48 +08:00
小鱼开发 bbb9a17757 feat(ui): 积分明细添加分页器(每页10条)
- 新增 currentPage、total 状态,pageSize 固定为 10
- Tab 切换、类型筛选、点击查询时自动重置到第 1 页
- 表格底部添加分页控件:首页/上一页/页码/下一页/尾页
- 显示总条数
2026-05-16 10:02:11 +08:00
小鱼开发 99a89fc2a5 feat(ui): 个人中心按钮调整 + 支持跳转充值明细
- 在线充值 -> 积分充值
- 新增充值明细按钮,点击通过 localStorage 传递初始 tab 跳转 usage-detail
- UsageDetail 支持从 localStorage 读取初始 tab(recharge/consume)
2026-05-16 09:58:17 +08:00
小鱼开发 7491c13d25 style(ui): 恢复积分统计颜色,调整充值按钮布局
- 剩余积分恢复绿色,今日消耗恢复红色
- 充值按钮改为小尺寸,放在卡片右侧
2026-05-16 09:55:01 +08:00
小鱼开发 c1d3731789 style(ui): 个人中心积分统计改为卡片布局
- 剩余积分、今日消耗改为两列卡片并排展示
- 使用项目现有颜色体系(白色卡片 + 边框)
- 数字旁增加单位'分'
- 充值按钮移至卡片下方全宽展示
2026-05-16 09:48:14 +08:00
小鱼开发 83b10945c8 feat(points): 新增今日消耗接口 + 个人中心字体调整
后端:
- CRUD 新增 sum_consumed_today() 方法,统计用户今日消费积分总和
- API 新增 GET /points/today-consumed 路由

前端:
- 个人中心积分数字从 40px 改为 32px
- 今日消耗从本地计算改为调用后端接口
2026-05-16 09:46:41 +08:00
小鱼开发 7421e9dd7c feat(ui): 个人中心积分统计调整
- 当前积分 -> 剩余积分
- 新增今日消耗统计(基于最近10条交易记录计算)
2026-05-16 09:43:06 +08:00