配方卡片加入上传个人二维码功能 #4

Closed
opened 2026-04-07 21:52:36 +00:00 by hera · 6 comments
Owner

配方查询页面中,点击配方,如果没有上传过二维码和背景图片的话,会在出现的配方卡片预览上方跳出一个提示,说你可以上传自己的二维码生成属于自己的配方卡片,然后在配方卡片下方出现一个上传二维码按钮,点击以后就跳转到我的二维码页面,上传以后要返回到之前在查看的配方卡片,具体的样式参考主分支

配方查询页面中,点击配方,如果没有上传过二维码和背景图片的话,会在出现的配方卡片预览上方跳出一个提示,说你可以上传自己的二维码生成属于自己的配方卡片,然后在配方卡片下方出现一个上传二维码按钮,点击以后就跳转到我的二维码页面,上传以后要返回到之前在查看的配方卡片,具体的样式参考主分支
Collaborator

已完成!PR #5 创建好了:#5


改动概览

RecipeDetailOverlay.vue

  • 新增 showBrandHint 计算属性:登录用户 未设置 qr_code 也未设置 brand_bg 时为 true
  • 卡片语言切换下方加了一条提示横幅(带淡入动画):「 上传你的专属二维码,生成属于自己的配方卡片」
  • 卡片底部操作栏新增「📲 上传我的二维码」按钮(绿色渐变样式),点击时把当前配方 _id 存入 localStorage('oil_return_recipe_id') 然后跳转到 /mydiary

MyDiary.vue

  • 品牌设置 Tab 新增 「我的二维码图片」 上传区——选图后直接读取 base64,通过现有的 PUT /api/brand 接口存到 qr_code 字段(绕过了不存在的 /api/brand-upload 端点)
  • 上传成功后检查 localStorage,有待返回的配方 ID 就 toast 提示再自动 router.push('/?openRecipe=<id>')
  • 顺手修复了 loadBrandSettings 里字段名对不上后端的 bug(logo_urlbrand_logobg_urlbrand_bg

RecipeSearch.vue

  • onMounted 里处理 ?openRecipe=<id> 参数:recipes 已加载就直接打开,否则用 watch 等数据就位再开
已完成!PR #5 创建好了:https://git.euphon.cloud/hera/oil-formula-calculator/pulls/5 --- ## 改动概览 ### `RecipeDetailOverlay.vue` - 新增 `showBrandHint` 计算属性:登录用户 **且** 未设置 `qr_code` 也未设置 `brand_bg` 时为 `true` - 卡片语言切换下方加了一条提示横幅(带淡入动画):「✨ 上传你的专属二维码,生成属于自己的配方卡片」 - 卡片底部操作栏新增「📲 上传我的二维码」按钮(绿色渐变样式),点击时把当前配方 `_id` 存入 `localStorage('oil_return_recipe_id')` 然后跳转到 `/mydiary` ### `MyDiary.vue` - 品牌设置 Tab 新增 **「我的二维码图片」** 上传区——选图后直接读取 base64,通过现有的 `PUT /api/brand` 接口存到 `qr_code` 字段(绕过了不存在的 `/api/brand-upload` 端点) - 上传成功后检查 localStorage,有待返回的配方 ID 就 toast 提示再自动 `router.push('/?openRecipe=<id>')` - 顺手修复了 `loadBrandSettings` 里字段名对不上后端的 bug(`logo_url` → `brand_logo`,`bg_url` → `brand_bg`) ### `RecipeSearch.vue` - `onMounted` 里处理 `?openRecipe=<id>` 参数:recipes 已加载就直接打开,否则用 `watch` 等数据就位再开
Author
Owner

在未登录的状态也需要提示,如果对方选择想要上传,就再提示他去注册/登陆

在未登录的状态也需要提示,如果对方选择想要上传,就再提示他去注册/登陆
Author
Owner

rebase

rebase
Collaborator

已更新 PR #5

改动很简单:

  • showBrandHint:去掉了 authStore.isLoggedIn 的前提条件,现在未登录用户只要没有 brand 资产(qr_code / brand_bg 均为空)也会看到提示横幅
  • goUploadQr:点击「📲 上传我的二维码」按钮时,若未登录则调用 ui.openLogin()(和收藏/保存日记的处理方式一致),弹出登录/注册框,已登录才跳转到 /mydiary
已更新 PR #5 ✅ 改动很简单: - **`showBrandHint`**:去掉了 `authStore.isLoggedIn` 的前提条件,现在未登录用户只要没有 brand 资产(qr_code / brand_bg 均为空)也会看到提示横幅 - **`goUploadQr`**:点击「📲 上传我的二维码」按钮时,若未登录则调用 `ui.openLogin()`(和收藏/保存日记的处理方式一致),弹出登录/注册框,已登录才跳转到 `/mydiary`
Author
Owner

累加到pr5

累加到pr5
Collaborator

PR #5 已更新

feature/qr-upload-hint rebase 到了最新的 main(包含 dev PR 合并后的那几个提交),解决了 RecipeDetailOverlay.vue 里一处小冲突(保留了注释 // Reload recipes so the data is fresh when re-opened),然后 force push 到远端。现在 PR 的 diff 干净、没有多余的 merge commit。

PR #5 已更新 ✅ 把 `feature/qr-upload-hint` rebase 到了最新的 `main`(包含 dev PR 合并后的那几个提交),解决了 `RecipeDetailOverlay.vue` 里一处小冲突(保留了注释 `// Reload recipes so the data is fresh when re-opened`),然后 force push 到远端。现在 PR 的 diff 干净、没有多余的 merge commit。
hera closed this issue 2026-04-09 19:05:20 +00:00
Sign in to join this conversation.
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hera/oil-formula-calculator#4