ConfigurationApi.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { UpdateServerRequestModule } from '@/api/RequestModules';
  2. import { LogUtils } from '@imengyu/imengyu-utils';
  3. import { DataModel } from '@imengyu/js-request-transform';
  4. import type { VillageTreeAnimProps } from '../light/LightVillageApi';
  5. import DefaultConfiguration from './DefaultConfiguration.json';
  6. export const CommonConfigurationConfig = {
  7. /**
  8. * 应用id
  9. */
  10. appId: 4,
  11. appConfigId: 14,
  12. }
  13. export interface IBannerItem {
  14. height: number;
  15. images: string[];
  16. }
  17. export interface IConfigurationItem {
  18. banners: {
  19. homeTop: string;
  20. homeTitle: {
  21. url: string;
  22. width: number;
  23. height: number;
  24. innerStyle?: Record<string, unknown>;
  25. };
  26. home: IBannerItem;
  27. dig: IBannerItem;
  28. discover: IBannerItem;
  29. },
  30. ShareAppTempEntranceContent: {
  31. content: string;
  32. images: string[];
  33. title: string;
  34. },
  35. tree: {
  36. fruitImage: string;
  37. backgroundImage: string;
  38. offsetX: number;
  39. offsetY: number;
  40. animWater: string[];
  41. animWaterAnimProps: VillageTreeAnimProps;
  42. animFertilize: string[];
  43. animFertilizeAnimProps: VillageTreeAnimProps;
  44. },
  45. sharePost: {
  46. villageDefault: string,
  47. default: string
  48. }
  49. }
  50. export class ConfigurationApi extends UpdateServerRequestModule<DataModel> {
  51. constructor() {
  52. super();
  53. }
  54. /**
  55. * 获取当前配置,有缓存,会根据激活的历史版本获取对应配置
  56. * @returns
  57. */
  58. async getConfig() {
  59. try {
  60. return (await this.get<{
  61. data: IConfigurationItem
  62. }>('/app-configuration-get', '获取配置', {
  63. name: CommonConfigurationConfig.appConfigId,
  64. appId: CommonConfigurationConfig.appId,
  65. })).data!.data;
  66. } catch (error) {
  67. LogUtils.printLog("ConfigurationApi", 'error', '获取配置失败,使用默认配置', error);
  68. return DefaultConfiguration as unknown as IConfigurationItem;
  69. }
  70. }
  71. }
  72. export default new ConfigurationApi();