feat(activity): 活动大厅全面以陪吃·陪唱·陪喝为主,增加品类快捷胶囊筛选并完善TDD门禁
这个提交包含在:
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<view class="index-container">
|
||||
<view class="index-container" :class="{ 'theme-warm': currentThemeKey === 'warm' }">
|
||||
<!-- 顶部搜索栏 (矢量SVG搜索图标,交互聚焦微动效) -->
|
||||
<view class="header-search">
|
||||
<view class="search-box">
|
||||
@@ -142,15 +142,30 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed } from 'vue';
|
||||
import { ref, computed, onMounted, onUnmounted } from 'vue';
|
||||
import { GAMES_LIST, BANNERS, EXPERTS_LIST } from '@/common/mock.js';
|
||||
import { ICONS } from '@/common/icons.js';
|
||||
import { getCurrentThemeKey } from '@/common/theme.js';
|
||||
|
||||
const games = ref(GAMES_LIST);
|
||||
const banners = ref(BANNERS);
|
||||
const experts = ref(EXPERTS_LIST);
|
||||
const currentCategory = ref('all');
|
||||
const playingId = ref(null);
|
||||
const currentThemeKey = ref(getCurrentThemeKey());
|
||||
|
||||
const onThemeChanged = (key) => {
|
||||
currentThemeKey.value = key;
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
currentThemeKey.value = getCurrentThemeKey();
|
||||
uni.$on('theme-change', onThemeChanged);
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
uni.$off('theme-change', onThemeChanged);
|
||||
});
|
||||
|
||||
const filteredExperts = computed(() => {
|
||||
if (currentCategory.value === 'all') return experts.value;
|
||||
@@ -685,6 +700,35 @@ const navTo = (url) => {
|
||||
}
|
||||
}
|
||||
|
||||
.index-container.theme-warm {
|
||||
background-color: #140E0A;
|
||||
|
||||
.header-search {
|
||||
background-color: #140E0A;
|
||||
.search-box {
|
||||
background-color: #221711;
|
||||
border-color: rgba(249, 115, 22, 0.15);
|
||||
&:focus-within {
|
||||
border-color: #F97316;
|
||||
box-shadow: 0 0 16rpx rgba(249, 115, 22, 0.35);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.category-scroll .category-item.active {
|
||||
background: linear-gradient(135deg, rgba(249, 115, 22, 0.25), rgba(245, 158, 11, 0.1));
|
||||
border-color: #F97316;
|
||||
.cat-name {
|
||||
color: #FB923C;
|
||||
}
|
||||
}
|
||||
|
||||
.expert-grid .expert-card {
|
||||
background-color: #221711;
|
||||
border-color: rgba(249, 115, 22, 0.12);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7); }
|
||||
70% { transform: scale(1); box-shadow: 0 0 0 8rpx rgba(255, 255, 255, 0); }
|
||||
|
||||
在新工单中引用
屏蔽一个用户