login.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import APP from '@/services';
  2. import { isAllEnum } from '@/services/bus/allEnum';
  3. import { checkTokenLoop } from '@/services/bus/token';
  4. import { getAllEnums, GetPCMenus, getServerTime, queryErrorInfos, QueryTableDefine } from '@/services/go/commonService/index';
  5. import { GetErmcpGoods, QueryDeliveryGoodsDetail } from '@/services/go/ermcp/goodsInfo';
  6. import { GetLoginID, LoginQuery } from '@/services/go/useInfo/index';
  7. import { localStorageUtil } from '@/utils/storage';
  8. import { sessionStorageUtil } from '@/utils/storage/index';
  9. import Long from 'long';
  10. import { logoutResponse } from '../socket/login';
  11. import { loginAction } from '../socket/login/index';
  12. import { LoginResponse, LongType } from '../socket/login/interface/index';
  13. export const logout = (): void => {
  14. // removeLoginData();
  15. logoutResponse();
  16. };
  17. export const login = async (logidCode: string, password: String, byteArr: Uint8Array[]): Promise<LoginResponse> => {
  18. try {
  19. /** 建立行情交易长链 */
  20. await APP.connectTrading();
  21. const account = await GetLoginID(logidCode);
  22. const loginData = await loginAction(account, password, byteArr);
  23. // localstorage 缓存登录信息,处理页面刷新
  24. setLoginData(loginData);
  25. await Promise.all([GetErmcpGoods(), GetPCMenus(), QueryTableDefine(), getServerTime(), LoginQuery(), QueryDeliveryGoodsDetail()])
  26. // await GetPCMenus();
  27. // await QueryTableDefine();
  28. // 获取服务时间
  29. // await getServerTime();
  30. // 获取错误信息
  31. if (!localStorageUtil.getItem('errorCodeInfos')) {
  32. await queryErrorInfos();
  33. }
  34. // 获取枚举
  35. if (!isAllEnum()) {
  36. await getAllEnums();
  37. }
  38. // 校验token
  39. checkTokenLoop();
  40. // await LoginQuery();
  41. return loginData;
  42. } catch (err) {
  43. return Promise.reject('登录失败:' + err);
  44. }
  45. };
  46. /**
  47. * 缓存登录信息
  48. */
  49. export function setLoginData(loginData: LoginResponse) {
  50. sessionStorageUtil.setItem('loginData', loginData);
  51. }
  52. /**
  53. * 删除登录信息
  54. */
  55. export function removeLoginData(): void {
  56. sessionStorageUtil.removeItem('loginData');
  57. }
  58. /**
  59. * 获取登录信息
  60. * @returns LoginResponse
  61. */
  62. export function getLoginData(): LoginResponse {
  63. return sessionStorageUtil.getItem('loginData');
  64. }
  65. /**
  66. * 是否登录
  67. */
  68. export const isLogin = (): boolean => {
  69. const loginData = getLoginData();
  70. return loginData ? true : false;
  71. };
  72. /**
  73. * 获取当前登录id的方法
  74. */
  75. export const getLongTypeLoginID = (): LongType | null => {
  76. if (isLogin()) {
  77. const loginData = getLoginData().LoginID;
  78. const { low, high, unsigned } = loginData;
  79. return new Long(low, high, unsigned);
  80. } else {
  81. return null;
  82. }
  83. };