diff --git a/pages/index/index.vue b/pages/index/index.vue index 4e75e1a..5b2957b 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -52,13 +52,6 @@ - - - 幸运色:{{ luckyColor }} @@ -66,11 +59,11 @@ @@ -206,6 +199,9 @@ + + + @@ -216,8 +212,11 @@ import { onShareAppMessage, onShareTimeline, onShow } from "@dcloudio/uni-app"; import { useUserStore } from "@/stores/user"; import { getRecommendList } from "@/api/system"; +import LoginPopup from "@/components/LoginPopup/LoginPopup.vue"; + const userStore = useUserStore(); const statusBarHeight = ref(getStatusBarHeight()); +const loginPopupRef = ref(null); const userInfo = computed(() => userStore?.userInfo || {}); const greetingText = computed(() => { @@ -233,9 +232,7 @@ const greetingText = computed(() => { const handleLogin = () => { if (!userInfo.value.nickName) { - // 触发全局登录逻辑,假设 LoginPopup 组件已在 App.vue 或全局混入中处理 - // 或者跳转到登录页,这里假设通过 userStore 或 eventBus 触发登录弹窗 - uni.$emit("show-login-popup"); + loginPopupRef.value?.open(); } }; const luckyScore = ref(98); @@ -502,31 +499,15 @@ onShareTimeline(() => { flex: 1; z-index: 2; - .fire-circle { - width: 140rpx; - height: 140rpx; - background: rgba(255, 255, 255, 0.5); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 24rpx; - box-shadow: 0 8rpx 24rpx rgba(168, 90, 90, 0.1); - - .fire-icon { - width: 64rpx; - height: 64rpx; - } - } - .lucky-color-tag { background: #fff; - padding: 10rpx 32rpx; - border-radius: 30rpx; - font-size: 24rpx; + padding: 12rpx 36rpx; + border-radius: 40rpx; + font-size: 26rpx; color: #d81e06; font-weight: 600; - box-shadow: 0 4rpx 12rpx rgba(216, 30, 6, 0.1); + box-shadow: 0 4rpx 12rpx rgba(216, 30, 6, 0.15); + letter-spacing: 2rpx; } } @@ -535,18 +516,22 @@ onShareTimeline(() => { .open-lucky-btn { width: 100%; - height: 96rpx; - background: rgba(255, 255, 255, 0.4); - border: 2rpx solid rgba(255, 255, 255, 0.6); - border-radius: 48rpx; + height: 108rpx; + background: #fff; + border-radius: 54rpx; display: flex; align-items: center; justify-content: center; - color: #fff; - font-size: 32rpx; - font-weight: bold; - margin-bottom: 24rpx; - backdrop-filter: blur(5rpx); + color: #d81e06; + font-size: 34rpx; + font-weight: 800; + margin-bottom: 32rpx; + box-shadow: 0 8rpx 20rpx rgba(216, 30, 6, 0.2); + letter-spacing: 2rpx; + + &::after { + border: none; + } } .progress-section {