feat: 新功能改进 #20

Merged
hera merged 57 commits from feat/next-improvements into main 2026-04-10 20:30:37 +00:00
Owner

待添加

待添加
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 15:42:07 +00:00
UI: 批量操作展开菜单+区域独立全选(保持原布局)
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 15s
Test / e2e-test (push) Failing after 56s
ca37d9aa1d
- 批量操作改为按钮展开下一行菜单(打标签/导出卡片/共享/删除)
- 共享仅在只选了我的配方时显示
- 我的配方和公共配方库标题加✓小全选按钮
- 两个都全选后顶部全选按钮激活
- 保持原有工具栏布局不变

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hera force-pushed feat/next-improvements from 09a3b9b95d to ca37d9aa1d 2026-04-10 15:42:07 +00:00 Compare
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 15:46:20 +00:00
fix: 对齐+左对齐+所有用户可新增
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 13s
Test / e2e-test (push) Failing after 52s
ce5d31ee84
- 配方查询页section-label与section-header padding对齐
- 管理配方页标题左对齐,toggle图标靠右
- 新增按钮对所有用户可见(新增到个人配方)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 15:50:37 +00:00
feat: 批量打标签改为标签选择器
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 55s
27f82d2dd1
- 点击批量打标签展开标签选择面板
- 已选标签(绿色pill可删除)+ 候选标签(点击添加)+ 新标签输入
- 和编辑器内的标签样式一致
- 确认后批量添加到所有选中配方

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 15:54:19 +00:00
feat: 审核配方只通知管理员 + 指派高级编辑审核
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 53s
1d9631f5df
- 去审核按钮仅管理员可见,其他用户显示已读
- 共享配方通知只发管理员
- 管理员待审核栏加"指派"按钮,选择高级编辑者审核
- 指派后发送通知给被指派人
- 新增 /api/recipes/{id}/assign-review 端点

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 15:55:42 +00:00
fix: 贡献统计共享后实时更新
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 15s
Test / e2e-test (push) Failing after 53s
fc04539b28
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 15:58:47 +00:00
fix: 贡献统计和共享状态基于真实数据
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 13s
Test / e2e-test (push) Failing after 56s
f3e4329d1f
- 后端返回 adopted_names 和 pending_names 列表
- 共享状态根据实际被采纳/待审核的配方名匹配
- 不再按公共库同名配方误判为已共享
- 共享后实时刷新统计

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 16:02:10 +00:00
fix: 指派审核功能修复
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 56s
d42403f6ed
- pending recipes 初始化 _showAssign 和 _assignTo 属性
- 修复 Vue 响应式问题导致下拉框和发送按钮无反应

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 16:07:58 +00:00
UI: 管理配方界面优化
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 15s
Test / e2e-test (push) Failing after 55s
eae2b5dfee
- 取消改为预览按钮 + ✕关闭
- 去掉配方行的owner显示和铅笔编辑按钮(点击行即编辑)
- 搜索框和新增按钮合并到一行,紧凑排版
- 参考比例显示"约为X滴,现在为Y滴"(实际数据)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 16:27:17 +00:00
feat: 预览按钮显示配方卡片,去掉✕关闭
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 20s
Test / e2e-test (push) Failing after 56s
4beae71072
- 预览按钮生成配方卡片并用RecipeDetailOverlay展示
- 去掉编辑器右上角的✕按钮
- 预览时可返回继续编辑

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 16:32:34 +00:00
UI: 容量按钮缩小、自定义默认空、保存验证、比例提示加"时,"
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 17s
Test / e2e-test (push) Failing after 56s
d38582167b
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 16:44:48 +00:00
UI: 容量按钮更窄、比例标签颜色统一
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 17s
Test / e2e-test (push) Failing after 57s
fb2f1d47e6
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:04:35 +00:00
UI: 容量按钮高度增加宽度缩窄,比例框缩小
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 17s
Test / e2e-test (push) Failing after 56s
fa2535d3bf
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:10:57 +00:00
feat: 审核同名配方智能检测
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 24s
Test / e2e-test (push) Failing after 55s
0985719212
- 完全相同:提示"已有一模一样的",不采纳
- 内容不同:显示两个配方成分对比,可选择直接采纳或改名后采纳
- 存为我的只检查个人配方同名

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:16:20 +00:00
fix: 配方卡片名称字号细分6级,确保完整显示
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 22s
Test / e2e-test (push) Failing after 53s
636ec9df09
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:18:39 +00:00
fix: 图片上传自动压缩增强
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 55s
34970fb5e9
- 渐进式缩小:最多5轮,每轮缩小30%+降低JPEG质量
- 确保最终一定在大小限制内
- QR/logo最大500KB/800px,背景最大1MB/1200px

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:24:01 +00:00
fix: 支持HEIC格式上传 + 压缩目标调小
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 5s
Test / e2e-test (push) Failing after 56s
PR Preview / deploy-preview (pull_request) Successful in 1m0s
bec537bad2
- HEIC/HEIF格式自动转换为JPEG后压缩
- 压缩目标调小确保不超后端限制(QR/logo 300KB,背景 600KB)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:29:16 +00:00
fix: HEIC上传修复 + 去掉保存按钮改为自动保存
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 56s
07a40977e1
- HEIC检测兼容MIME type和文件名
- heic2any返回数组时取第一个
- 转换失败时提示用户手动转JPG
- 去掉保存品牌按钮,显示"所有修改自动保存"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:32:37 +00:00
fix: HEIC双重回退+标签文案统一+accept格式
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 15s
Test / e2e-test (push) Failing after 56s
812da98abc
- HEIC转换:heic2any失败后用createImageBitmap回退
- accept限定具体格式让iOS自动转HEIC
- 品牌名称标签改为"显示在卡片右上角二维码下方"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:40:32 +00:00
fix: accept改回image/*让iOS自动转HEIC
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 8s
Test / e2e-test (push) Failing after 56s
5b51403274
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:45:46 +00:00
fix: 品牌标语说明统一格式 + 对齐在卡片和预览生效
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 12s
Test / e2e-test (push) Failing after 53s
2da0130c4c
- 标签改为"✍ 品牌名称或标语"+"显示在二维码下方"(与其他说明格式一致)
- 靠左/居中/靠右在预览和配方卡片中都生效
- 修复align-items:center覆盖textAlign的问题

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 17:54:11 +00:00
fix: 小卡片字号恢复 + 配方卡片布局优化
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 53s
c3c531522e
小卡片(RecipeCard):
- 恢复原始固定字号16px

配方卡片(RecipeDetailOverlay):
- doTERRA行上移与二维码顶端对齐
- 二维码左移与内容右侧对齐
- 配方名自适应字号(26/22/18/16px)
- 允许最多两行显示,text-wrap:balance均匀分配

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 18:10:45 +00:00
fix: 二维码对齐内容区域 + 裁剪提示精简
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 16s
Test / e2e-test (push) Failing after 56s
97c53bb3c3
- QR位置改为top:36px right:36px,与内容padding对齐
- doTERRA行和二维码顶端齐平
- 裁剪提示精简为一行

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 18:28:08 +00:00
feat: 审核流程完善 + 共享状态提示 + 贡献统计含拒绝
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 16s
Test / e2e-test (push) Failing after 55s
866950c2f6
审核流程:
- 高级编辑者可看到待审核配方,点击推荐通过→通知管理员
- 高级编辑者可直接拒绝(和管理员相同逻辑)
- 管理员收到推荐通知后最终决定
- 去审核通知点击自动展开待审核列表
- 新增 /api/recipes/{id}/recommend 端点

共享:
- 已共享配方再点共享→提示"已共享,感谢贡献"
- 审核中配方再点共享→提示"正在审核中,请耐心等待"

贡献统计:
- 被拒绝的配方也计入总申请数(0/1不会变回0/0)
- reject_recipe日志记录from_user

其他:
- 配方卡片去掉编辑按钮

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 18:30:25 +00:00
UI: 管理配方顶部布局重新设计
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 15s
Test / e2e-test (push) Failing after 56s
936d242080
- 搜索框独占一行,宽度拉满
- 按钮改为圆角药片(chip)样式:新增 | 全选(数量) | 标签 | 批量 | 取消
- 选中时绿色高亮,全选显示数量badge
- 整体紧凑美观

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 18:34:10 +00:00
fix: 搜索框对所有用户可见
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 55s
234db1730c
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 18:42:10 +00:00
feat: 批量标签支持移除已有标签
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 16s
Test / e2e-test (push) Failing after 52s
8a447989ae
- 批量打标签面板底部显示选中配方的所有已有标签
- 点击标签切换"移除"状态(红色删除线)
- 确认后同时添加新标签和移除标记的标签

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 18:49:23 +00:00
fix: 编辑配方时正确识别容量和稀释比例
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 52s
a09cdcc60c
- 补充15ml/20ml的容量匹配
- 稀释比例取最近的可选值(3-20)
- 自定义时显示ml而非drops
- 无椰子油时默认单次模式

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 18:56:52 +00:00
fix: 容量和稀释比例无默认选择
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 55s
3adcfc1169
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 19:05:54 +00:00
fix: 审核同名配方流程优化
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 55s
8a7fb75b75
- 一模一样:提示忽略,确认后删除重复,从待审核消失
- 不一样:显示对比,改名后采纳 / 放弃(删除并从待审核消失)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 19:13:11 +00:00
fix: 贡献统计去重 + 已共享内容变更可重新共享
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 16s
Test / e2e-test (push) Failing after 55s
b6f8df89ed
贡献统计:
- 按配方名去重(拒绝后重新申请不重复计数)
- 已采纳+待审核+被拒绝的唯一配方名总数

已共享状态:
- 已共享配方修改内容后,对比公共库版本
- 内容不同时"已共享"消失,可重新共享
- 内容相同时保持"已共享"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 19:19:24 +00:00
fix: 管理配方预览去掉收藏和存为我的按钮
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 8s
Test / e2e-test (push) Failing after 53s
3f99bbdc39
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 19:29:46 +00:00
feat: 商业认证操作全部记入审计日志
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 6s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 15s
Test / e2e-test (push) Failing after 56s
c13879c596
- 申请认证、通过、拒绝、直接开通、撤销都记录audit_log
- 操作日志增加商业认证筛选
- ACTION_MAP增加5种商业认证操作的中文映射

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 19:33:21 +00:00
fix: 英文翻译编辑仅管理员可见
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 13s
Test / e2e-test (push) Failing after 56s
4ae756c214
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 19:39:00 +00:00
feat: 已添加配方通知联动
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 16s
Test / e2e-test (push) Failing after 52s
caa795c2d4
- 点击"已添加"后:
  1. 标记所有同标题通知为已读(其他编辑者不用重复处理)
  2. 通知其他管理员/高级编辑"已有人添加,无需重复处理"
  3. 通知原始搜索用户"你搜索的配方已添加"
- 新增 /api/notifications/{id}/added 端点

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 19:43:26 +00:00
feat: 管理员/高级编辑可直接添加到公共库 + 已添加确认
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 13s
Test / e2e-test (push) Failing after 55s
b570ef5093
- 管理员和高级编辑新增配方时弹出选择:公共配方库/个人配方
- 直接添加到公共库不走审核流程
- 普通用户仍然只能添加到个人配方
- "已添加"按钮点击前先确认

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 19:55:23 +00:00
fix: 高级编辑直接添加公共库+编辑者权限精确控制
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 17s
Test / e2e-test (push) Failing after 56s
650c04a972
公共库添加:
- 高级编辑直接添加到公共库时owner_id设为admin,所有人可见
- 高级编辑添加不触发审核通知

精油价目权限:
- 编辑精油改为canManage(senior_editor+admin)
- editor只能编辑配方,不能编辑精油价目

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 20:03:48 +00:00
feat: 高级编辑共享跳过审核 + 去重 + 通知 + 已分享状态
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 15s
Test / e2e-test (push) Failing after 53s
480e843316
共享流程:
- 高级编辑/管理员共享直接进公共库(跳过审核)
- 普通用户共享仍需管理员审核
- 高级编辑共享后通知管理员"已添加"(非待审核)

去重检测:
- 同名同内容:提示"已有一模一样的"
- 同名不同内容:提示改名后共享

状态显示:
- 共享后对比公共库内容,相同则显示"已共享"
- 修改内容后"已共享"消失,可重新共享

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 20:12:12 +00:00
fix: 新增配方去重+编辑者权限+共享去重统一
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 15s
Test / e2e-test (push) Failing after 52s
6d2620eb6a
新增去重:
- 新增配方保存前检查公共库和个人配方同名
- 完全相同提示已有,内容不同显示差异可改名

编辑者权限:
- editor可编辑所有公共配方(前端+后端)
- editor不能编辑精油价目(已有)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 20:15:13 +00:00
fix: 共享去重显示具体差异内容
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 15s
Test / e2e-test (push) Failing after 53s
9e15e1beed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera added 1 commit 2026-04-10 20:27:46 +00:00
fix: 更新e2e测试适配新UI
All checks were successful
PR Preview / test (pull_request) Has been skipped
Deploy Production / test (push) Successful in 5s
Test / unit-test (push) Successful in 4s
PR Preview / teardown-preview (pull_request) Successful in 13s
PR Preview / deploy-preview (pull_request) Has been skipped
Test / build-check (push) Successful in 4s
Deploy Production / deploy (push) Successful in 5s
Test / e2e-test (push) Successful in 53s
5a34b11720
- recipe-detail: 移除编辑按钮测试(已从卡片移除)
- 新增卡片视图测试(doTERRA品牌、语言切换)
- 所有CI spec通过(27 e2e + 168 unit)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

🚀 Preview: https://pr-20.oil.oci.euphon.net

DB is a copy of production.

🚀 **Preview**: https://pr-20.oil.oci.euphon.net DB is a copy of production.
hera merged commit 5a34b11720 into main 2026-04-10 20:30:37 +00:00
Author
Owner

🗑️ Preview torn down.

🗑️ Preview torn down.
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hera/oil-formula-calculator#20