CommonCategoryApi.ts 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. import { UpdateServerRequestModule } from '@/api/RequestModules';
  2. import { DataModel } from '@imengyu/js-request-transform';
  3. import type { IHomeCommonCategoryDefine } from '../CommonCategoryDefine';
  4. export const CommonCategoryConfig = {
  5. /**
  6. * 应用id
  7. */
  8. appId: 2,
  9. appConfig: {
  10. dev: {
  11. id: 3,
  12. accessKey: '3hSiTCiGNiF2c3yyB6JNtA4eEf2jX8Yi2w87W2F6FYxH2W7e',
  13. },
  14. prod: {
  15. id: 5,
  16. accessKey: 'Cn7rTk8dtdciZsicrebKrrtwF44HFYmhc6NpSFdnD38d4XMS',
  17. },
  18. },
  19. getAppConfigId: (isDev: boolean) => {
  20. return isDev ? CommonCategoryConfig.appConfig.dev.id : CommonCategoryConfig.appConfig.prod.id;
  21. },
  22. getAccessKey: (isDev: boolean) => {
  23. return isDev ? CommonCategoryConfig.appConfig.dev.accessKey : CommonCategoryConfig.appConfig.prod.accessKey;
  24. },
  25. }
  26. export interface ICommonCategoryConfigItem {
  27. activeHistoryId: number;
  28. data: IHomeCommonCategoryDefine;
  29. }
  30. export interface ICommonCategoryConfigHistoryItem {
  31. data: IHomeCommonCategoryDefine;
  32. }
  33. export class CommonCategoryApi extends UpdateServerRequestModule<DataModel> {
  34. constructor() {
  35. super();
  36. }
  37. /**
  38. * 获取当前配置,有缓存,会根据激活的历史版本获取对应配置
  39. * @returns
  40. */
  41. async getConfig(isDev: boolean) {
  42. return (await this.get<ICommonCategoryConfigHistoryItem>('/app-configuration-get', '获取配置', {
  43. name: CommonCategoryConfig.getAppConfigId(isDev),
  44. appId: CommonCategoryConfig.appId,
  45. accessKey: CommonCategoryConfig.getAccessKey(isDev),
  46. })).data!.data as IHomeCommonCategoryDefine;
  47. }
  48. /**
  49. * 获取顶级配置,不使用缓存
  50. * @returns
  51. */
  52. async getConfigWithoutCache(isDev: boolean) {
  53. return (await this.get<ICommonCategoryConfigItem>('/app-configuration/' + CommonCategoryConfig.getAppConfigId(isDev), '获取配置')).data;
  54. }
  55. /**
  56. * 编辑配置
  57. * @param json 配置数据
  58. * @param saveToHistoryId 保存到历史版本id:为0时创建新历史版本;为空不保存到历史版本;为其他值时保存到指定ID历史版本
  59. * @param name 历史版本名称:为空时使用默认名称
  60. * @param autoSelectNewToActive 自动选择新创建的历史版本为活动版本:为true时自动选择新创建的历史版本为活动版本;为false时不自动选择;为空时不自动选择
  61. * @returns
  62. */
  63. async editConfig(
  64. isDev: boolean,
  65. json: ICommonCategoryConfigHistoryItem['data'],
  66. name?: string,
  67. saveToHistoryId?: number,
  68. autoSelectNewToActive?: boolean,
  69. ) {
  70. return (await this.post(`/app-configuration-edit/${CommonCategoryConfig.getAppConfigId(isDev)}?saveToHistoryId=${saveToHistoryId ?? ''}`, '编辑配置', {
  71. id: CommonCategoryConfig.getAppConfigId(isDev),
  72. name,
  73. data: json,
  74. accessKey: CommonCategoryConfig.getAccessKey(isDev),
  75. autoSelectNewToActive: autoSelectNewToActive ?? false,
  76. })).data;
  77. }
  78. /**
  79. * 获取配置历史版本列表
  80. * @param page 页码
  81. * @param pageSize 页大小
  82. * @returns
  83. */
  84. async getConfigHistoryList(isDev: boolean, page: number, pageSize = 10) {
  85. return (await this.get<{
  86. allCount: number;
  87. allPage: number;
  88. empty: boolean;
  89. items: ICommonCategoryConfigHistoryItem[];
  90. pageIndex: number;
  91. pageSize: number;
  92. }>(
  93. `/app-configuration-history/${page}/${pageSize}?appConfigurationId=${CommonCategoryConfig.getAppConfigId(isDev)}`,
  94. '获取配置历史版本列表'
  95. )).data;
  96. }
  97. /**
  98. * 删除配置历史版本
  99. * @param id 历史版本id
  100. * @returns
  101. */
  102. async deleteConfigHistory(isDev: boolean, id: number) {
  103. return (await this.delete(`/app-configuration-history/${id}`, '删除配置历史版本', {
  104. accessKey: CommonCategoryConfig.getAccessKey(isDev),
  105. appConfigurationId: CommonCategoryConfig.getAppConfigId(isDev),
  106. })).data;
  107. }
  108. /**
  109. * 设置配置历史版本为活动版本
  110. * @param historyId 历史版本id
  111. * @returns
  112. */
  113. async setActiveConfigHistory(isDev: boolean, historyId: number) {
  114. return (await this.post(`/app-configuration-set-active-history`, '设置配置历史版本为活动版本', {
  115. accessKey: CommonCategoryConfig.getAccessKey(isDev),
  116. id: CommonCategoryConfig.getAppConfigId(isDev),
  117. historyId,
  118. })).data;
  119. }
  120. }
  121. export default new CommonCategoryApi();