diff --git a/frontend/src/components/RecipeDetailOverlay.vue b/frontend/src/components/RecipeDetailOverlay.vue index 0f0d420..90e1a05 100644 --- a/frontend/src/components/RecipeDetailOverlay.vue +++ b/frontend/src/components/RecipeDetailOverlay.vue @@ -49,76 +49,45 @@
- -
- -
- -
{{ brand.brand_name }}
+ +
+ + + +
+ +
{{ brand.brand_name }}
-
-
+ +
+
{{ cardLang === 'en' ? 'doTERRA · Gifts of the Earth' : 'doTERRA · 来自大地的礼物' }}
-
+
{{ getCardRecipeName() }}
-
+
- -
    -
  • - - {{ getCardOilName(ing.oil) }} - - - {{ ing.drops }} {{ cardLang === 'en' ? 'drops' : '滴' }} - - - {{ oilsStore.fmtPrice(oilsStore.pricePerDrop(ing.oil) * ing.drops) }} - - {{ oilsStore.fmtPrice(retailPerDrop(ing.oil) * ing.drops) }} +
      +
    • + {{ getCardOilName(ing.oil) }} + {{ ing.drops }} {{ cardLang === 'en' ? 'drops' : '滴' }} + {{ oilsStore.fmtPrice(oilsStore.pricePerDrop(ing.oil) * ing.drops) }} + {{ oilsStore.fmtPrice(retailPerDrop(ing.oil) * ing.drops) }}
    - -
    {{ dilutionDesc }}
    +
    {{ dilutionDesc }}
    - -
    - {{ '📝 ' + displayRecipe.note }} +
    📝 {{ displayRecipe.note }}
    + +
    + {{ cardLang === 'en' ? 'Total Cost' : '配方总成本' }} + {{ priceInfo.cost }}{{ priceInfo.retail }}
    - -
    -
    - {{ cardLang === 'en' ? 'Total Cost' : '配方总成本' }} -
    -
    - {{ priceInfo.cost }} - {{ priceInfo.retail }} -
    -
    - - -
    - -
    - +
    + {{ cardLang === 'en' ? 'Date: ' : '制作日期:' }}{{ todayStr }}
    diff --git a/frontend/src/views/MyDiary.vue b/frontend/src/views/MyDiary.vue index 197002d..6b9040b 100644 --- a/frontend/src/views/MyDiary.vue +++ b/frontend/src/views/MyDiary.vue @@ -169,28 +169,30 @@
    -
    - -
    - -
    {{ brandName }}
    + +
    + + + +
    + +
    {{ brandName }}
    - -
    -
    doTERRA · 来自大地的礼物
    -
    配方名称
    -
    薰衣草 · 乳香 · 茶树
    -
    - -
    - 配方总成本 - ¥12.50 -
    - -
    - - - 制作日期:{{ new Date().toLocaleDateString('zh-CN') }} + +
    +
    doTERRA · 来自大地的礼物
    +
    配方名称
    +
    +
    薰衣草 · 乳香 · 茶树
    + +
    + 配方总成本 + ¥12.50 +
    + +
    + 制作日期:{{ new Date().toLocaleDateString('zh-CN') }} +
    @@ -1047,7 +1049,7 @@ async function applyBusiness() { color: var(--sage-dark); } -/* Card preview mini — matches actual card layout */ +/* Card preview mini */ .card-preview-mini { position: relative; width: 280px; @@ -1056,79 +1058,8 @@ async function applyBusiness() { border: 1px solid #e0ccaa; overflow: hidden; font-family: 'Noto Serif SC', serif; - padding: 16px; + padding: 18px; } -.card-preview-bg { - position: absolute; - inset: 0; - background-size: cover; - background-position: center; - opacity: 0.15; -} -.card-preview-content { - position: relative; - z-index: 1; - padding-right: 60px; /* leave room for QR area */ -} -.card-preview-qr-area { - position: absolute; - top: 16px; - right: 16px; - display: flex; - flex-direction: column; - align-items: center; - gap: 2px; - z-index: 2; - max-width: 50px; -} -.card-preview-qr { - width: 40px; - height: 40px; - object-fit: contain; - border-radius: 4px; -} -.card-preview-qr-text { - font-size: 6px; - color: var(--text-light); - line-height: 1.2; - white-space: pre-line; - max-width: 50px; - text-align: center; -} -.card-preview-cost { - position: relative; - z-index: 1; - margin-top: 12px; - height: 22px; - background: linear-gradient(135deg, var(--sage), #5a7d5e); - border-radius: 6px; - display: flex; - align-items: center; - justify-content: space-between; - padding: 0 10px; - color: white; - font-size: 9px; -} -.card-preview-bottom { - position: relative; - z-index: 1; - display: flex; - justify-content: space-between; - align-items: flex-end; - margin-top: 8px; -} -.card-preview-logo { - height: 16px; - width: auto; - object-fit: contain; - opacity: 0.6; -} -.card-preview-date { - font-size: 8px; - color: var(--text-light); - letter-spacing: 0.5px; -} -/* brand name now inside .card-preview-qr-text */ .hint-text { font-size: 13px;