CommonCategoryApi.ts 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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)}`, '编辑配置', {
  71. id: CommonCategoryConfig.getAppConfigId(isDev),
  72. name,
  73. data: json,
  74. accessKey: CommonCategoryConfig.getAccessKey(isDev),
  75. autoSelectNewToActive: autoSelectNewToActive ?? false,
  76. }, {
  77. saveToHistoryId: saveToHistoryId || undefined,
  78. })).data;
  79. }
  80. /**
  81. * 获取配置历史版本列表
  82. * @param page 页码
  83. * @param pageSize 页大小
  84. * @returns
  85. */
  86. async getConfigHistoryList(isDev: boolean, page: number, pageSize = 10) {
  87. return (await this.get<{
  88. allCount: number;
  89. allPage: number;
  90. empty: boolean;
  91. items: ICommonCategoryConfigHistoryItem[];
  92. pageIndex: number;
  93. pageSize: number;
  94. }>(
  95. `/app-configuration-history/${page}/${pageSize}?appConfigurationId=${CommonCategoryConfig.getAppConfigId(isDev)}`,
  96. '获取配置历史版本列表'
  97. )).data;
  98. }
  99. /**
  100. * 删除配置历史版本
  101. * @param id 历史版本id
  102. * @returns
  103. */
  104. async deleteConfigHistory(isDev: boolean, id: number) {
  105. return (await this.delete(`/app-configuration-history/${id}`, '删除配置历史版本', {
  106. accessKey: CommonCategoryConfig.getAccessKey(isDev),
  107. appConfigurationId: CommonCategoryConfig.getAppConfigId(isDev),
  108. })).data;
  109. }
  110. /**
  111. * 设置配置历史版本为活动版本
  112. * @param historyId 历史版本id
  113. * @returns
  114. */
  115. async setActiveConfigHistory(isDev: boolean, historyId: number) {
  116. return (await this.post(`/app-configuration-set-active-history`, '设置配置历史版本为活动版本', {
  117. accessKey: CommonCategoryConfig.getAccessKey(isDev),
  118. id: CommonCategoryConfig.getAppConfigId(isDev),
  119. historyId,
  120. })).data;
  121. }
  122. }
  123. export default new CommonCategoryApi();