|
|
@ -1,6 +1,7 @@ |
|
|
import { defineStore } from 'pinia'; |
|
|
import { defineStore } from 'pinia'; |
|
|
import { Position, WeatherInfo } from '/@/api/weather/model'; |
|
|
import { Position, WeatherInfo } from '/@/api/weather/model'; |
|
|
import { getPosition, getWeather } from '/@/api/weather'; |
|
|
import { getPosition, getWeather } from '/@/api/weather'; |
|
|
|
|
|
import { useLocaleStoreWithOut } from './locale'; |
|
|
|
|
|
|
|
|
interface WeatherState { |
|
|
interface WeatherState { |
|
|
currentCity?: Position; |
|
|
currentCity?: Position; |
|
|
@ -17,6 +18,9 @@ export const useWeatherStore = defineStore({ |
|
|
}), |
|
|
}), |
|
|
actions: { |
|
|
actions: { |
|
|
async updateWeather() { |
|
|
async updateWeather() { |
|
|
|
|
|
const localeStore = useLocaleStoreWithOut(); |
|
|
|
|
|
// 中文环境天气api有效
|
|
|
|
|
|
if (localeStore.getLocale.includes('zh')) { |
|
|
const hour = new Date().getHours(); |
|
|
const hour = new Date().getHours(); |
|
|
if (hour - this.lastUpdateHour != 0) { |
|
|
if (hour - this.lastUpdateHour != 0) { |
|
|
const position = await getPosition(); |
|
|
const position = await getPosition(); |
|
|
@ -28,9 +32,9 @@ export const useWeatherStore = defineStore({ |
|
|
this.weather = weatherResult.data; |
|
|
this.weather = weatherResult.data; |
|
|
this.lastUpdateHour = hour; |
|
|
this.lastUpdateHour = hour; |
|
|
return Promise.resolve(this.weather); |
|
|
return Promise.resolve(this.weather); |
|
|
} else { |
|
|
|
|
|
return Promise.resolve(this.weather); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
return Promise.resolve(this.weather); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|