fix: 修复兑换中心偶尔无法打开问题
This commit is contained in:
@@ -398,19 +398,25 @@ function goToActivation() {
|
||||
<!-- 激活码引导页 -->
|
||||
<div v-if="activeTab === 'activation'" class="activation-guide-container">
|
||||
<div class="activation-content">
|
||||
<div class="guide-icon">🎁</div>
|
||||
<h3 class="guide-title">激活码兑换</h3>
|
||||
<p class="guide-desc">如果您持有意心AI的会员激活码或Token兑换码,<br>请点击下方按钮前往控制台进行兑换。</p>
|
||||
<el-button
|
||||
type="primary"
|
||||
size="large"
|
||||
class="redeem-jump-btn"
|
||||
round
|
||||
<div class="guide-icon">
|
||||
🎁
|
||||
</div>
|
||||
<h3 class="guide-title">
|
||||
激活码兑换
|
||||
</h3>
|
||||
<p class="guide-desc">
|
||||
如果您持有意心AI的会员激活码或Token兑换码,<br>请点击下方按钮前往控制台进行兑换。
|
||||
</p>
|
||||
<el-button
|
||||
type="primary"
|
||||
size="large"
|
||||
class="redeem-jump-btn"
|
||||
round
|
||||
@click="goToActivation"
|
||||
>
|
||||
前往兑换中心
|
||||
</el-button>
|
||||
|
||||
|
||||
<div class="guide-tips">
|
||||
<p>💡 兑换成功后权益将立即生效</p>
|
||||
</div>
|
||||
@@ -864,31 +870,31 @@ function goToActivation() {
|
||||
min-height: 400px;
|
||||
background: linear-gradient(to bottom, #fff, #fdfdfd);
|
||||
border-radius: 8px;
|
||||
|
||||
|
||||
.activation-content {
|
||||
text-align: center;
|
||||
max-width: 400px;
|
||||
|
||||
|
||||
.guide-icon {
|
||||
font-size: 64px;
|
||||
margin-bottom: 24px;
|
||||
animation: float-icon 3s ease-in-out infinite;
|
||||
}
|
||||
|
||||
|
||||
.guide-title {
|
||||
font-size: 24px;
|
||||
font-weight: 800;
|
||||
color: #2c3e50;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
|
||||
.guide-desc {
|
||||
color: #606266;
|
||||
line-height: 1.6;
|
||||
margin-bottom: 32px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
|
||||
.redeem-jump-btn {
|
||||
width: 200px;
|
||||
height: 48px;
|
||||
@@ -899,13 +905,13 @@ function goToActivation() {
|
||||
border: none;
|
||||
box-shadow: 0 4px 12px rgba(255, 117, 140, 0.3);
|
||||
transition: all 0.3s;
|
||||
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 6px 16px rgba(255, 117, 140, 0.4);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.guide-tips {
|
||||
margin-top: 24px;
|
||||
font-size: 13px;
|
||||
|
||||
@@ -86,7 +86,6 @@ const navItems = [
|
||||
// { name: 'userInfo', label: '用户信息', icon: 'User' },
|
||||
{ name: 'apiKey', label: 'API密钥', icon: 'Key' },
|
||||
|
||||
|
||||
{ name: 'rechargeLog', label: '充值记录', icon: 'Document' },
|
||||
{ name: 'usageStatistics', label: '用量统计', icon: 'Histogram' },
|
||||
{ name: 'premiumService', label: '尊享服务', icon: 'ColdDrink' },
|
||||
@@ -105,6 +104,10 @@ function handleConfirm(activeNav: string) {
|
||||
// 导航切换
|
||||
function handleNavChange(nav: string) {
|
||||
activeNav.value = nav;
|
||||
// 同步更新 store 中的 tab 状态,防止下次通过 store 打开同一 tab 时因值未变而不触发 watch
|
||||
if (userStore.userCenterActiveTab !== nav) {
|
||||
userStore.userCenterActiveTab = nav;
|
||||
}
|
||||
}
|
||||
|
||||
// 联系售后
|
||||
@@ -307,6 +310,9 @@ watch(() => guideTourStore.shouldStartUserCenterTour, (shouldStart) => {
|
||||
// ============ 监听 Store 状态,控制用户中心弹窗 (新增) ============
|
||||
watch(() => userStore.isUserCenterVisible, (val) => {
|
||||
dialogVisible.value = val;
|
||||
if (val && userStore.userCenterActiveTab) {
|
||||
activeNav.value = userStore.userCenterActiveTab;
|
||||
}
|
||||
});
|
||||
|
||||
watch(() => userStore.userCenterActiveTab, (val) => {
|
||||
|
||||
@@ -52,8 +52,8 @@ export const useUserStore = defineStore(
|
||||
|
||||
// 新增:打开用户中心方法
|
||||
const openUserCenter = (tab: string = 'user') => {
|
||||
userCenterActiveTab.value = tab;
|
||||
isUserCenterVisible.value = true;
|
||||
userCenterActiveTab.value = tab;
|
||||
};
|
||||
|
||||
// 新增:关闭用户中心方法
|
||||
|
||||
Reference in New Issue
Block a user