| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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<IHomeCommonCategoryDefine>({
- page: [],
- });
- export function injectCommonCategory() {
- return inject(COMMON_CATEGORY_KEY, defaultCommonCategory) as Ref<IHomeCommonCategoryDefine>;
- }
- export function useCommonCategoryGlobalLoader() {
- const commonCategoryData = ref<IHomeCommonCategoryDefine>(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<IHomeCommonCategoryDefine>(ApiCofig.dynamicCategoryConfigServer, '加载默认分类')).data;
- if (category)
- commonCategoryData.value = category;
- else
- showError(undefined, '默认分类未配置');
- } catch (error) {
- showError(error, '加载默认分类失败');
- } finally {
- uni.hideLoading();
- }
- }
- return {
- loadCommonCategory,
- }
- }
|