login.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. /**
  2. * Copyright (c) 2013-Now https://jeesite.com All rights reserved.
  3. * No deletion without permission, or be held responsible to law.
  4. * @author ThinkGem
  5. */
  6. import { defHttp } from '@jeesite/core/utils/http/axios';
  7. import { UserInfo } from '@jeesite/types/store';
  8. import { ErrorMessageMode, Result } from '@jeesite/types/axios';
  9. import { useGlobSetting } from '@jeesite/core/hooks/setting';
  10. import { encryptByBase64 } from '@jeesite/core/utils/cipher';
  11. import { Menu } from '@jeesite/core/router/types';
  12. import { useAppStore } from '@jeesite/core/store/modules/app';
  13. const { adminPath } = useGlobSetting();
  14. export interface LoginParams {
  15. id: string;
  16. pwd: string;
  17. }
  18. export interface LoginResult {
  19. result: string;
  20. message: string;
  21. sessionid: string;
  22. isValidCodeLogin: boolean;
  23. user: UserInfo;
  24. demoMode: boolean;
  25. useCorpModel: boolean;
  26. currentCorpCode: string;
  27. currentCorpName: string;
  28. modifyPasswordTip: string;
  29. modifyPasswordMsg: string;
  30. msgEnabled: boolean;
  31. sysCode: string;
  32. roleCode: string;
  33. postCode: string;
  34. title: string;
  35. company: string;
  36. version: string;
  37. year: string;
  38. lang: string;
  39. }
  40. export interface AuthInfo {
  41. stringPermissions: string[];
  42. roles: string[];
  43. }
  44. export interface AuthorizationInfoResult extends Result {
  45. data?: Record<string, any> | null;
  46. }
  47. export const loginApi = (params: LoginParams, mode: ErrorMessageMode = 'none') => {
  48. params.pwd = encryptByBase64(params.pwd);
  49. return defHttp.post<LoginResult>(
  50. { url: adminPath + '/login', params, timeout: 20 * 1000 },
  51. { errorMessageMode: mode },
  52. );
  53. };
  54. export const switchSys = (sysCode: string) => {
  55. const params = sysCode ? '/' + sysCode : sysCode;
  56. return defHttp.get({ url: adminPath + '/switch' + params });
  57. };
  58. export const switchRole = (roleCode: string) => {
  59. const params = roleCode ? '/' + roleCode : roleCode;
  60. return defHttp.get({ url: adminPath + '/switchRole' + params });
  61. };
  62. export const switchPost = (postCode: string) => {
  63. const params = postCode ? '/' + postCode : postCode;
  64. return defHttp.get({ url: adminPath + '/switchPost' + params });
  65. };
  66. export const switchSkin = (name = '') => {
  67. if (name == '') {
  68. const appStore = useAppStore();
  69. if (appStore.getDarkMode === 'dark') {
  70. name = 'skin-dark';
  71. } else {
  72. const themeColor = appStore.getProjectConfig.themeColor;
  73. name = themeColor == '#1890ff' ? 'skin-blue-light3' : 'skin-blue3';
  74. }
  75. }
  76. return defHttp.get({ url: adminPath + '/switchSkin/' + name });
  77. };
  78. export const userInfoApi = (mode: ErrorMessageMode = 'message') =>
  79. defHttp.get<LoginResult>({ url: adminPath + '/index', timeout: 10 * 1000 }, { errorMessageMode: mode });
  80. export const authInfoApi = () => defHttp.get<AuthInfo>({ url: adminPath + '/authInfo' });
  81. // 展示授权信息,不用于授权拦截判断。
  82. export const authorizationInfoApi = () =>
  83. defHttp.get<AuthorizationInfoResult>(
  84. { url: adminPath + '/sys/info', timeout: 10 * 1000 },
  85. { errorMessageMode: 'none', isTransformResponse: false },
  86. );
  87. export const machineCodeApi = () =>
  88. defHttp.get<string>({ url: adminPath + '/sys/code', timeout: 10 * 1000 }, { errorMessageMode: 'none' });
  89. export const openLocalFileApi = (filePath: string) =>
  90. defHttp.get<Result>(
  91. { url: adminPath + '/sys/openLocalFile', params: { filePath }, timeout: 10 * 1000 },
  92. { errorMessageMode: 'none', isTransformResponse: false },
  93. );
  94. export const openOfficeFileApi = (fileId: string | number) =>
  95. defHttp.get<Result>(
  96. { url: adminPath + '/sys/openOfficeFile', params: { fid: fileId }, timeout: 10 * 1000 },
  97. { errorMessageMode: 'none', isTransformResponse: false },
  98. );
  99. export const offlineAuthorizationApi = (license: string) =>
  100. defHttp.get<Result>(
  101. { url: adminPath + '/sys/noNet', params: { license }, timeout: 10 * 1000 },
  102. { errorMessageMode: 'none', isTransformResponse: false },
  103. );
  104. export const checkAuthApi = () =>
  105. defHttp.get<Result>(
  106. { url: adminPath + '/sys/checkAuth', timeout: 10 * 1000 },
  107. { errorMessageMode: 'none', isTransformResponse: false, skipErrorMessage: true },
  108. );
  109. export { getMapLocalApi, setMapLocalApi } from './mapLocal';
  110. export { getCellLocalApi, setCellLocalApi } from './cellLocal';
  111. export const menuRouteApi = () => defHttp.get<Menu[]>({ url: adminPath + '/menuRoute' });
  112. export const logoutApi = () => defHttp.get({ url: adminPath + '/logout' });
  113. export const healthApi = () =>
  114. defHttp.get<Result>(
  115. { url: adminPath + '/sys/health' },
  116. { isTransformResponse: false, skipSuccessMessage: true, skipErrorMessage: true },
  117. );