|
|
|
@ -170,27 +170,43 @@ const clearPopupReminder = async () => { |
|
|
|
} |
|
|
|
// 判断是否需要显示Token清除提示 |
|
|
|
const checkTokenClearTip = () => { |
|
|
|
// 1. 先判断是否已经提示过(本地缓存标记) |
|
|
|
const hasShowClearTip = localStorage.getItem('hasShowTokenClearTip') |
|
|
|
if (hasShowClearTip === '1') return |
|
|
|
console.log('进入了') |
|
|
|
|
|
|
|
// 拿到当前登录用户的 token |
|
|
|
const token = localStorage.getItem('localToken') |
|
|
|
if (!token) return |
|
|
|
|
|
|
|
// 用 token 做唯一标记 key |
|
|
|
const key = `token_clear_tip_shown_${token}` |
|
|
|
const hasShown = localStorage.getItem(key) |
|
|
|
|
|
|
|
// 只要曾经弹过,就不再弹 |
|
|
|
if (hasShown === '1') return |
|
|
|
|
|
|
|
// 格式化时间显示 |
|
|
|
const formatDate = (dateStr) => { |
|
|
|
const date = new Date(dateStr) |
|
|
|
return `${date.getFullYear()} 年 ${String(date.getMonth() + 1).padStart(2, '0')} 月 ${String(date.getDate()).padStart(2, '0')} 日` |
|
|
|
return `${date.getFullYear()} 年 ${String(date.getMonth() + 1).padStart(2, '0')} 月 ${String( |
|
|
|
date.getDate() |
|
|
|
).padStart(2, '0')} 日` |
|
|
|
} |
|
|
|
|
|
|
|
const startTime = formatDate(tokenClearTimeRange.value.startTime) |
|
|
|
const endTime = formatDate(tokenClearTimeRange.value.endTime) |
|
|
|
|
|
|
|
currentClearText.value = `【通知】${startTime} - ${endTime} 期间获得的免费 Token 已统一清除,过期未使用额度不予保留、不累计、不顺延。` |
|
|
|
currentClearText.value = `【通知】${startTime} - ${endTime} 期间获得的AI情绪大模型和夺宝奇兵大模型免费 Token 已统一清除,过期未使用额度不予保留、不累计、不顺延。` |
|
|
|
showTokenClearDialog.value = true |
|
|
|
} |
|
|
|
|
|
|
|
// 关闭Token清除弹窗,并标记已提示 |
|
|
|
// 关闭弹窗,并标记:这个token永远不再弹 |
|
|
|
const closeTokenClearDialog = () => { |
|
|
|
showTokenClearDialog.value = false |
|
|
|
localStorage.setItem('hasShowTokenClearTip', '1') |
|
|
|
|
|
|
|
const token = localStorage.getItem('localToken') |
|
|
|
if (!token) return |
|
|
|
|
|
|
|
// 标记:此用户已看过弹窗 |
|
|
|
const key = `token_clear_tip_shown_${token}` |
|
|
|
localStorage.setItem(key, '1') |
|
|
|
} |
|
|
|
// 根据当前页面类型获取对应的音频store |
|
|
|
const getCurrentAudioStore = () => { |
|
|
|
@ -1338,6 +1354,8 @@ const dialogVisible = ref(false); |
|
|
|
const rechargeDialogVisible = ref(false); |
|
|
|
const confirmDialogVisible = ref(false); |
|
|
|
const changeSuccessDialogVisible = ref(false); |
|
|
|
//兑换锁定状态 |
|
|
|
const isExchanging = ref(false); |
|
|
|
|
|
|
|
// 图片加载错误处理 |
|
|
|
const handleImageError = (event) => { |
|
|
|
@ -1392,6 +1410,9 @@ const chooseLevel = (item) => { |
|
|
|
}; |
|
|
|
|
|
|
|
const changeToken = () => { |
|
|
|
if (isExchanging.value) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (gold.value < activeLevel.value.position) { |
|
|
|
rechargeDialogVisible.value = true; |
|
|
|
return; |
|
|
|
@ -1441,7 +1462,12 @@ const goRecharge = () => { |
|
|
|
}; |
|
|
|
|
|
|
|
const goChange = async () => { |
|
|
|
if (isExchanging.value) { |
|
|
|
return; |
|
|
|
} |
|
|
|
try { |
|
|
|
//锁定兑换状态 |
|
|
|
isExchanging.value = true; |
|
|
|
await exchangeAPI({ |
|
|
|
token: String(localStorage.getItem("localToken")), |
|
|
|
num: activeLevel.value.position, |
|
|
|
@ -1458,6 +1484,9 @@ const goChange = async () => { |
|
|
|
await chatStore.getUserCount(); |
|
|
|
} catch (e) { |
|
|
|
console.error("兑换失败", e); |
|
|
|
}finally{ |
|
|
|
//解锁兑换状态 |
|
|
|
isExchanging.value = false; |
|
|
|
} |
|
|
|
}; |
|
|
|
// 8.18金币兑换Token end |
|
|
|
@ -3039,7 +3068,7 @@ body { |
|
|
|
|
|
|
|
.token-row { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
justify-content: space-around; |
|
|
|
font-size: 16px; |
|
|
|
} |
|
|
|
|
|
|
|
|