import { inject, provide, ref, type Ref } from "vue"; import { requireNotNull } from "@imengyu/imengyu-utils"; import NotConfigue from "@/api/NotConfigue"; import { showError } from "@/common/composeabe/ErrorDisplay"; import type { IHomeCommonCategoryDefine } from "./CommonCategoryDefine"; import ApiCofig from "@/common/config/ApiCofig"; import DefaultCofig from "./DefaultCategory.json"; import { isDev } from "@/common/config/AppCofig"; // 全局加载默认分类 export const COMMON_CATEGORY_KEY = 'DefaultCategory'; const defaultCommonCategory = ref({ page: [], }); export function injectCommonCategory() { return inject(COMMON_CATEGORY_KEY, defaultCommonCategory) as Ref; } export function useCommonCategoryGlobalLoader() { const commonCategoryData = ref(defaultCommonCategory.value); provide(COMMON_CATEGORY_KEY, commonCategoryData); async function loadCommonCategory() { uni.showLoading({ title: '加载中' }); try { if (isDev) { commonCategoryData.value = DefaultCofig as IHomeCommonCategoryDefine; return; } const category = (await NotConfigue.get(ApiCofig.dynamicCategoryConfigServer, '加载默认分类')).data; if (category) commonCategoryData.value = category; else showError(undefined, '默认分类未配置'); } catch (error) { showError(error, '加载默认分类失败'); } finally { uni.hideLoading(); } } return { loadCommonCategory, } }