|
|
|
@ -3,7 +3,7 @@ |
|
|
|
<view class="top-bar"> |
|
|
|
<view class="top-left"> |
|
|
|
<text class="top-logo">🍸</text> |
|
|
|
<text class="top-brand">纯瘾大</text> |
|
|
|
<text class="top-brand">就是纯瘾大</text> |
|
|
|
<text v-if="card.cardNo" class="card-badge">🎫 {{ card.cardNo }}</text> |
|
|
|
</view> |
|
|
|
<view class="top-right"> |
|
|
|
@ -91,7 +91,20 @@ export default { |
|
|
|
async function loadCategories() { |
|
|
|
try { |
|
|
|
const res = await get(API.MENU_CATEGORIES) |
|
|
|
if (Array.isArray(res)) categories.value = ['all', ...res] |
|
|
|
if (Array.isArray(res)) { |
|
|
|
// 智能排序:全部 + 鸡尾酒优先,其余按后端顺序 |
|
|
|
const cocktail = res.filter(c => c.includes('鸡尾酒')) |
|
|
|
const others = res.filter(c => !c.includes('鸡尾酒')) |
|
|
|
const sorted = ['all', ...cocktail, ...others] |
|
|
|
categories.value = sorted |
|
|
|
// 默认选中鸡尾酒;没有则选全部 |
|
|
|
if (cocktail.length > 0) { |
|
|
|
activeCate.value = cocktail[0] |
|
|
|
await loadProducts(cocktail[0]) |
|
|
|
} else { |
|
|
|
await loadProducts('all') |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (e) {} |
|
|
|
} |
|
|
|
|
|
|
|
@ -129,7 +142,6 @@ export default { |
|
|
|
|
|
|
|
onMounted(async () => { |
|
|
|
await loadCategories() |
|
|
|
await loadProducts('all') |
|
|
|
}) |
|
|
|
|
|
|
|
return { card, cart, categories, activeCate, products, showCart, bellPressed, bellWaving, onCateChange, onAddToCart, onBellPress, onGoConfirm, goMyOrders } |
|
|
|
@ -142,7 +154,7 @@ export default { |
|
|
|
.top-bar{height:100rpx;display:flex;align-items:center;justify-content:space-between;padding:0 28rpx;border-bottom:1px solid var(--border);flex-shrink:0} |
|
|
|
.top-left{display:flex;align-items:center;gap:16rpx} |
|
|
|
.top-logo{font-size:44rpx} |
|
|
|
.top-brand{font-size:40rpx;font-weight:900;color:var(--gold);letter-spacing:4rpx} |
|
|
|
.top-brand{font-size:36rpx;font-weight:900;color:var(--gold);letter-spacing:4rpx} |
|
|
|
.card-badge{background:linear-gradient(135deg,var(--gold-dark),var(--gold));color:#1A1A1A;padding:10rpx 24rpx;border-radius:28rpx;font-weight:800;font-size:26rpx;letter-spacing:6rpx;animation:card-appear-top .5s ease} |
|
|
|
.my-btn{font-size:26rpx;color:var(--gold);font-weight:600} |
|
|
|
.menu-scroll{flex:1} |
|
|
|
|