dedac69011
feat: 导出Excel多sheet,按标签分页
...
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
Test / e2e-test (push) Failing after 56s
PR Preview / deploy-preview (pull_request) Successful in 1m4s
- 文件名:精油配方YYYY-MM-DD.xlsx
- 第一个sheet"全部"包含所有配方
- 每个标签一个单独的sheet
- 使用SheetJS生成真正的xlsx格式
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 15:25:09 +00:00
e4358c92dc
fix: 导出CSV前端生成 + 新标签输入框缩小
...
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
- 导出改为前端直接生成CSV,不依赖后端API
- 新标签输入框缩短到80px
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 14:41:22 +00:00
b6b112e9cb
UI: 标签展开到下一行,全选显示数量
...
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 55s
- 标签点击后在下一行展开/收起
- 全选后右侧显示"共X个"
- 工具栏布局:新增 | 全选 共X个 | 标签▾ | 批量 | 导出
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 14:35:56 +00:00
9f0c66e583
fix: 标签保存+管理功能
...
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 57s
- 修复 create_diary 不保存 tags 的问题
- 新建标签后加入全局标签列表,移除后显示在候选区
- 标签筛选区:编辑者可新增标签,管理员可删除标签
- 标签筛选区每个标签旁加×删除按钮(管理员)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 14:32:56 +00:00
413abf60ba
fix: 拼音搜索补充字映射 + 结果按匹配度排序
...
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 16s
Test / e2e-test (push) Failing after 55s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 14:27:09 +00:00
a66ba3a0d9
UI: 参考比例提示改为"纯精油总数约为X滴"
...
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 7s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 14s
Test / e2e-test (push) Failing after 56s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 14:12:06 +00:00
65ac0b688b
feat: 配方卡片编辑按钮跳转到管理配方统一编辑器
...
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 52s
- 点击配方卡片的编辑按钮,跳转到管理配方页面打开同一个编辑器
- 不再维护两套编辑器,确保界面完全一致
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 14:06:56 +00:00
168be922ca
fix: 稀释比例改回下拉框、全选toggle修复
...
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 56s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 13:41:36 +00:00
ffee917cff
feat: 参考比例选择器 + 建议纯精油滴数
...
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 16s
Test / e2e-test (push) Successful in 54s
- 容量下方加参考比例行:3-10,12,15,20,默认6
- 选择后实时提示"纯精油约X滴"
- 单次模式根据椰子油滴数/比例计算
- 非单次根据总容量/(1+比例)计算
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 13:31:52 +00:00
4ce8ed9ff5
feat: 配方编辑器重写容量/椰子油逻辑
...
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) Has been cancelled
编辑器:
- 顶部容量选择: 单次/5ml/10ml/15ml/20ml/30ml/自定义
- 椰子油默认在最底行,单次时可编辑滴数(默认10)
- 非单次时椰子油自动填满(显示"约Xml")
- 实时提示:单次显示滴数+稀释比例,非单次显示总容量+填满+比例
- 新增精油插入到椰子油上方
- 编辑已有配方自动识别容量和稀释比例
其他:
- 拼音搜索改前缀匹配
- 输入法enter不触发保存
- 导出Excel移到标签行右侧小图标
- 新增→新增, 标签筛选→标签
- 配方名过长自动缩小
- 已审核标签viewer不可见
- ml显示整数
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 13:00:14 +00:00
8866e865f7
fix: 拼音前缀匹配、输入法enter、稀释默认值、容量填满
...
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) Successful in 52s
- 拼音搜索改为前缀匹配(s→生姜,不再匹配茶树)
- 精油编辑enter区分输入法组合键
- 新增配方默认30ml+1:6稀释,编辑时自动识别当前比例
- 非单次容量滴数四舍五入为整数
- 容量按钮等宽填满一行
- 搜索时自动展开折叠的配方列表
- 配方编辑器加新增标签功能
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 11:37:20 +00:00
e78a446abe
UI: 管理配方界面按角色调整
...
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 12s
Test / e2e-test (push) Has been cancelled
- 管理员: 搜索 + 导出Excel | 添加 + 全选 + 标签 + 批量
- 编辑者: 搜索 | 添加 + 全选 + 标签 + 批量(无导出)
- 普通用户: 全选 + 标签(无添加无导出)
- 批量操作改为下拉选择,内联在工具栏
- 我的配方和公共配方库默认折叠
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 10:57:03 +00:00
a81f7788c0
feat: 操作日志重写+已审核标签+配方名自适应
...
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 15s
Test / e2e-test (push) Successful in 1m0s
操作日志:
- 完全重写,正确映射所有 action 类型(配方/精油/用户/标签/审核)
- 三级筛选:操作类型、用户、对象类型
- 正确解析 detail JSON 显示来源/原因/角色等
- 包含精油价目修改记录
已审核标签:
- editor+ 可见可编辑,viewer 不可见
- 蓝色样式区分
其他:
- 配方卡片名称过长自动缩小字号
- 配方编辑器加新增标签输入框
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 10:52:36 +00:00
418986e46c
feat: 商业认证+核算页面重写,管理入口移到用户菜单
...
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) Successful in 55s
商业认证:
- 重写申请表单:认证类型、企业名称、联系电话、业务描述
- 状态栏样式:左侧彩色条(绿/橙/红)
- 用户管理页:同一用户只显示一条,可展开历史查看拒绝原因
- 后端 API 补充 reject_reason 字段
商业核算:
- 成分表改为标准表格(精油/用量/单价/小计)
- 总成本显示栏(绿色背景大字)
- 定价字段放在成本下方
管理入口:
- 操作日志/Bug/用户管理从主 tab 栏移到管理员用户菜单
- 添加配方按钮对所有用户可见
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 10:01:36 +00:00
ad95ba7d1f
UI: 添加精油直接加空行,去掉确认取消按钮
...
Deploy Production / test (push) Successful in 5s
Deploy Production / deploy (push) Successful in 6s
Test / unit-test (push) Successful in 4s
PR Preview / teardown-preview (pull_request) Has been skipped
Test / build-check (push) Successful in 4s
Test / e2e-test (push) Successful in 55s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 9s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 09:32:27 +00:00
c63091b504
UI: 全选按钮左置+颜色区分、placeholder浅色、应用到配方
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 09:32:27 +00:00
6931df4afd
feat: 编辑器对齐+审核记录+UI调整
...
- 新增/编辑配方编辑器与配方卡片编辑界面完全一致(含容量与稀释)
- 自定义滴数/稀释比例框缩小,应用按钮放在稀释比例同一行
- 管理员可查看所有审核记录(采纳/拒绝历史)
- 标签筛选和全选按钮对所有用户可见
- 我的配方/公共配方库均可折叠
- viewer 看配方卡片无编辑按钮
- diary 配方卡片无编辑按钮
- 退出登录跳转首页并刷新
- 新增 /api/recipe-reviews 端点
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 09:32:27 +00:00
6f9c5732eb
feat: 管理配方加共享按钮+状态+贡献统计
...
- 我的配方每行加📤 共享按钮
- 显示共享状态:已共享(绿)/等待审核(橙)
- 已共享的隐藏共享按钮
- 非管理员显示"已贡献 X 条"统计
- 配方查询页去掉共享按钮(移到管理配方)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 09:32:13 +00:00
e26cd700b9
fix: 智能识别配方名称 + 新增默认保存到个人配方
...
- 修复空格/无分隔符时配方名称无法识别的问题
- 支持"长高芳香调理8永久花10"连写格式自动分离名称
- 所有用户新增配方默认保存到个人配方(diary),不进公共库
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 09:32:13 +00:00
56bc6f2bbb
feat: 重写新增配方+共享审核完整流程
...
新增配方:
- 修复保存失败(oil→oil_name字段转换)
- 智能识别支持多条配方同时解析
- 识别结果逐条预览,可修改/放弃/保存单条/全部保存
- 编辑器加成分表格(单价/滴、小计、总成本)
- 保存到个人配方(diary)
共享审核:
- 新增 /api/recipes/{id}/reject 端点(带原因通知提交者)
- 采纳配方时通知提交者"配方已采纳"
- 拒绝时管理员输入原因
- 贡献统计含被采纳的配方数
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 09:32:13 +00:00
3c3ce30b48
feat: 共享配方审核完整流程
...
- 新增 /api/recipes/{id}/reject 端点:拒绝配方并通知提交者(含原因)
- 采纳配方时通知提交者"配方已采纳"
- 管理员拒绝配方时输入原因
- 贡献统计改为统计被采纳的配方数(含 audit_log 记录)
- 完整流程测试:共享→通知→拒绝(带原因)→通知→重新共享→采纳→通知
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 09:32:13 +00:00
a8e91dc384
feat: 权限修复、搜索改进、滑动切换、通知badge
...
Deploy Production / test (push) Successful in 4s
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 4s
PR Preview / deploy-preview (pull_request) Has been skipped
PR Preview / test (pull_request) Has been skipped
PR Preview / teardown-preview (pull_request) Successful in 13s
Deploy Production / deploy (push) Successful in 7s
Test / e2e-test (push) Successful in 52s
权限:
- viewer 不能编辑公共配方(前端+后端双重限制)
- viewer 管理配方页只显示"我的配方"
- 取消 token 链接登录,改为自注册+管理员分配角色
- 用户管理页去掉创建用户和复制链接,禁止设管理员
- 修复改权限 API 路径错误
搜索:
- 模糊匹配+同义词扩展(37组),精确/相似分层
- 精确匹配不搜精油成分(避免"西班牙牛至"污染)
- 所有搜索结果底部加"通知编辑添加"按钮
UI:
- 顶部 tab 栏按用户角色显示,切换时居中滚动
- 左右滑动按 visibleTabs 顺序切换 tab
- 用户名旁红色通知数 badge
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 21:31:17 +00:00
27c46cb803
feat: 大量管理配方和搜索改进
...
- 存为我的:修复调用错误API,改用 diaryStore.createDiary
- 存为我的:同名检测(我的配方 + 公共配方库)
- 我的配方:使用 RecipeCard 统一卡片格式
- 管理配方:按钮缩小、编辑时隐藏智能粘贴、精油搜索框支持拼音跳转
- 管理配方:批量操作改为按钮组(打标签/删除/导出卡片/分享到公共库)
- 管理配方:我的配方加勾选框、全选按钮、编辑功能
- 搜索:模糊匹配 + 同义词扩展(37组),精确/相似分层显示
- 搜索:无匹配时通知编辑添加,搜索时隐藏无匹配的收藏/我的配方区
- 搜索:配方按首字母排序
- 共享审核:通知高级编辑+管理员,我的配方显示共享状态
- 通知:搜索未收录→已添加按钮,审核类→去审核按钮跳转
- 贡献统计:非管理员显示已贡献公共配方数
- 登录弹窗:加反馈问题按钮(无需登录)
- 精油编辑:右上角加保存按钮,支持回车保存
- 后端:新增 /api/me/contribution 接口
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 21:31:17 +00:00
3a65cb7209
feat: header重排、共享配方、待审核、权限优化
...
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / teardown-preview (pull_request) Has been skipped
Test / e2e-test (push) Failing after 54s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 15s
Header:
- 登录按钮固定右侧,flex布局自适应所有屏幕
- 登录后不显示版本号,用户名在右侧
- 商业认证用户显示🏢 标识
- 手机端响应式适配
配方共享:
- 个人配方卡片加📤 共享按钮
- 提交到公共库,非管理员需审核
管理配方:
- 待审核栏从recipes动态计算(不依赖不存在的API)
- 采纳用/adopt端点,拒绝=确认删除
- senior_editor可编辑精油和公共配方
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 08:24:28 +00:00
2983036388
feat: 区分我的配方(diary)和公共配方库(recipes)
...
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 1m19s
配方查询页:
- 我的配方 → /api/diary (user_diary表),左绿色边框区分
- 收藏配方 → 收藏的公共配方
- 公共配方库 → /api/recipes (recipes表),所有公共配方
- 搜索同时过滤个人和公共配方
管理配方页:
- 我的配方 → diary store,支持搜索/标签过滤
- 公共配方库 → 所有公共配方,所有用户可见
- 管理员创建的公共配方不再误归为"我的配方"
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 20:45:05 +00:00
6563a6f7d2
Grant senior_editor oil editing, PDF export, and public recipe management
...
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 20s
Test / e2e-test (push) Failing after 1m2s
Add canManage computed (senior_editor + admin) to auth store and use it
for oil edit/delete buttons, PDF export, and public recipe section
visibility. Backend already allowed these operations for senior_editor.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-07 11:59:49 +00:00
f88521c9be
Fix CI: cd to frontend before cypress, use subshell for vite
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 6m15s
2026-04-06 22:20:47 +00:00
ee8ec23dc7
Refactor frontend to Vue 3 + Vite + Pinia + Cypress E2E
...
- Replace single-file 8441-line HTML with Vue 3 SPA
- Pinia stores: auth, oils, recipes, diary, ui
- Composables: useApi, useDialog, useSmartPaste, useOilTranslation
- 6 shared components: RecipeCard, RecipeDetailOverlay, TagPicker, etc.
- 9 page views: RecipeSearch, RecipeManager, Inventory, OilReference, etc.
- 14 Cypress E2E test specs (113 tests), all passing
- Multi-stage Dockerfile (Node build + Python runtime)
- Demo video generation scripts (TTS + subtitles + screen recording)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 18:35:00 +00:00