deploy: auto commit repo-root changes 2026-07-05 13:47:57

This commit is contained in:
hajimi
2026-07-05 13:47:57 +08:00
parent f641276b9d
commit 299d508d7c
81 changed files with 137 additions and 79 deletions
@@ -17,7 +17,13 @@
<view class="ai-game-info__badge">AI</view>
<text class="ai-game-info__name">{{ gameName || '加载中...' }}</text>
</view>
<text class="ai-game-info__tip">基于近{{ drawCount }}期历史数据深度分析</text>
<view class="ai-game-info__meta">
<text class="ai-game-info__tip">基于近{{ drawCount }}期历史数据深度分析 · {{ AI_DAILY_FREE_TEXT }}</text>
<view class="ai-quota">
<text class="ai-quota__label">今日剩余</text>
<text class="ai-quota__value">{{ freeRemain }}</text>
</view>
</view>
</view>
<!-- 模块1: 历史开奖数据 -->
@@ -186,12 +192,23 @@ import {
getLotteryAiTrend,
getLotteryAiStats
} from '@/api/lottery'
import { useUserStore } from '@/stores/user'
import { AI_DAILY_FREE_TEXT, getAiFreeRemain } from '@/config/ai'
const statusBarHeight = ref(0)
const bodyHeight = ref(600)
const gameCode = ref('')
const gameName = ref('')
const drawCount = ref(30)
const userStore = useUserStore()
const vipInfo = computed(() => userStore.userInfo?.vip_info || {})
const aiRemainOverride = ref<number | null>(null)
const freeRemain = computed(() => aiRemainOverride.value ?? getAiFreeRemain(vipInfo.value))
const syncAiRemain = (res: any) => {
if (res?.remain_count !== undefined && res?.remain_count !== null) {
aiRemainOverride.value = Number(res.remain_count)
}
}
uni.getSystemInfo({
success: (res) => {
@@ -374,6 +391,7 @@ async function startAnalysis() {
modules.hotCold.loading = true
try {
const data = await getLotteryAiHotCold({ code: gameCode.value })
syncAiRemain(data)
modules.hotCold.data = data
modules.hotCold.loading = false
modules.hotCold.done = true
@@ -394,6 +412,7 @@ async function startAnalysis() {
modules.trend.loading = true
try {
const data = await getLotteryAiTrend({ code: gameCode.value })
syncAiRemain(data)
modules.trend.data = data
modules.trend.loading = false
modules.trend.done = true
@@ -412,6 +431,7 @@ async function startAnalysis() {
modules.stats.loading = true
try {
const data = await getLotteryAiStats({ code: gameCode.value })
syncAiRemain(data)
modules.stats.data = data
modules.stats.loading = false
modules.stats.done = true
@@ -436,6 +456,9 @@ async function startAnalysis() {
onLoad((opts: any) => {
gameCode.value = opts?.code || ''
gameName.value = opts?.name || ''
if (userStore.isLogin && !userStore.userInfo?.id) {
userStore.getUser().catch(() => { /* ignore */ })
}
startAnalysis()
})
</script>
@@ -567,6 +590,7 @@ onLoad((opts: any) => {
display: flex;
align-items: center;
gap: 16rpx;
flex-wrap: wrap;
&__badge {
background: rgba(255, 255, 255, 0.25);
@@ -583,10 +607,44 @@ onLoad((opts: any) => {
color: #fff;
}
&__meta {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 16rpx;
margin-top: 10rpx;
}
&__tip {
font-size: 24rpx;
color: rgba(255, 255, 255, 0.8);
margin-top: 8rpx;
flex: 1;
min-width: 360rpx;
line-height: 1.45;
}
}
.ai-quota {
display: flex;
align-items: center;
gap: 10rpx;
padding: 8rpx 14rpx;
border-radius: 999rpx;
background: rgba(255, 255, 255, 0.18);
border: 1px solid rgba(255, 255, 255, 0.28);
white-space: nowrap;
&__label {
font-size: 22rpx;
color: rgba(255, 255, 255, 0.76);
}
&__value {
font-size: 24rpx;
font-weight: 700;
color: #fff;
}
}