| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { ref } from 'vue'
- import { defineStore } from 'pinia'
- import type { VillageListItem } from '@/api/light/LightVillageApi';
- import FollowVillageApi from '@/api/light/FollowVillageApi';
- import LightVillageApi from '@/api/light/LightVillageApi';
- /**
- * 村庄各页面共享 数据
- */
- export const useVillageStore = defineStore('village', () => {
-
- const currentVillage = ref<VillageListItem | null>(null);
- const currentLonlat = ref<{ longitude: number, latitude: number } | null>(null);
- const myFollowVillages = ref<VillageListItem[]>([]);
- const myJoinedVillages = ref<VillageListItem[]>([]);
- async function setCurrentVillage(village: VillageListItem) {
- currentVillage.value = await LightVillageApi.getVillageDetails(village.id);
- console.log('切换当前激活村社', currentVillage.value);
- uni.setStorageSync('currentVillage', village.id);
- }
- function loadCurrentVillage() {
- return uni.getStorageSync('currentVillage') as number|unknown;
- }
- async function reloadVillageInfo() {
- try {
- if (!currentVillage.value)
- return null;
- const oldVillage = currentVillage.value.clone();
- await setCurrentVillage(oldVillage as VillageListItem);
- return oldVillage;
- } catch (error) {
- console.error(error);
- return null;
- }
- }
- function setCurrentLonlat(lonlat: { longitude: number, latitude: number }) {
- currentLonlat.value = lonlat;
- }
- async function loadMyFollowVillages() {
- const villages = await FollowVillageApi.getFollowVillageList();
- myFollowVillages.value = villages.list;
- }
- async function loadMyJoinedVillages() {
- const res = await FollowVillageApi.getClaimedVallageList();
- myJoinedVillages.value = res;
- }
- return {
- currentVillage,
- currentLonlat,
- myFollowVillages,
- myJoinedVillages,
- loadCurrentVillage,
- reloadVillageInfo,
- setCurrentVillage,
- setCurrentLonlat,
- loadMyFollowVillages,
- loadMyJoinedVillages,
- }
- })
|