index.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import APP from '@/services';
  2. import { isLogin } from '@/services/bus/login';
  3. import { checkTokenLoop, handleTokenCheck } from '@/services/bus/token';
  4. import { GetPCMenus, getServerTime, queryErrorInfos, QueryTableDefine } from '@/services/go/commonService/index';
  5. import { getAppConfig, getCommonApiUrl } from '@/services/go/config';
  6. import { LoginQuery } from '@/services/go/useInfo/index';
  7. import { setServiceURL } from '@/services/request/serviceURL';
  8. import ProtobufCtr from '@/services/socket/protobuf/index';
  9. import { localStorageUtil } from '@/utils/storage';
  10. import { message } from 'ant-design-vue';
  11. /**
  12. * 全局数据刷新
  13. */
  14. export async function globalDataRefresh(): Promise<string> {
  15. // 全局初始化依赖查询
  16. await queryDependencies();
  17. try {
  18. // 首先判断是否登录 如果没有登录不需要长链
  19. if (isLogin()) {
  20. // 获取服务时间,token校验需要用到
  21. await getServerTime();
  22. await LoginQuery();
  23. // 建立行情交易长链x
  24. await APP.connectTrading();
  25. // token 校验处理
  26. const res = await handleTokenCheck()
  27. .then(() => true)
  28. .catch(() => false);
  29. if (!res) {
  30. // Router.push({ path: '/login' }); // 回到登录页面
  31. return Promise.reject('刷新时token校验失败');
  32. } else {
  33. // token校验成功 马上轮询
  34. checkTokenLoop();
  35. await GetPCMenus();
  36. await QueryTableDefine();
  37. }
  38. } else {
  39. // 重置数据中心数据
  40. APP.reset();
  41. }
  42. if (!localStorageUtil.getItem('errorCodeInfos')) {
  43. await queryErrorInfos();
  44. }
  45. // await queryGoodsList();
  46. return Promise.resolve('ok');
  47. } catch (error) {
  48. return Promise.reject('刷新数据加载失败');
  49. }
  50. }
  51. /**
  52. * 全局依赖的数据查询,涉及各个方面
  53. */
  54. async function queryDependencies(): Promise<number> {
  55. try {
  56. // 加载proto文件
  57. await ProtobufCtr.loadProto('./proto/mtp.proto');
  58. /** 获取接口查询配置信息 */
  59. const config = await getAppConfig();
  60. const apiUrl = await getCommonApiUrl(config.data.apiUrl);
  61. if (apiUrl.data.code === 200) setServiceURL(apiUrl.data.data);
  62. // await APP.connectQuote();
  63. /** 数据返回 */
  64. return Promise.resolve(1);
  65. } catch (error) {
  66. message.error(error.message);
  67. return Promise.reject(error);
  68. }
  69. }