formula project

This commit is contained in:
colden
2025-12-20 12:20:43 +08:00
commit 28e1507889
156 changed files with 7444 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useDriversStore = defineStore('drivers', () => {
const driversList = ref<any[]>([])
const hasFetched = ref(false)
const isLoading = ref(false)
const fetchDrivers = async (forceRefresh = false) => {
if (hasFetched.value && !forceRefresh) {
return driversList.value
}
isLoading.value = true
try {
const response = await fetch('/api/season-drivers?season=2025')
const data = await response.json()
driversList.value = Array.isArray(data) ? data : (data?.data ?? [])
hasFetched.value = true // 标记为已获取
return driversList.value
} catch (error) {
console.error('获取drivers失败:', error)
throw error
} finally {
isLoading.value = false
}
}
const ensureDriversLoaded = async () => {
if (!hasFetched.value) {
await fetchDrivers()
}
}
fetchDrivers(true).catch(() => {})
return {
driversList,
isLoading,
hasFetched,
fetchDrivers,
ensureDriversLoaded
}
})