websocket.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. let socket = []
  2. import {
  3. Api_getQuotationNew
  4. } from "@/api/index.js"
  5. const state = {
  6. bids: [],
  7. asks: [],
  8. daymarket: {},
  9. //
  10. getQuotationStatus: false,
  11. usdtList: [],
  12. optional: [],
  13. marketAll: [],
  14. currencyVal: {},
  15. currencySuspend: false
  16. }
  17. const mutations = {
  18. set_currencySuspend: (state, status) => {
  19. state.currencySuspend = status;
  20. },
  21. set_currency_val: (state, val) => {
  22. state.currencyVal = val;
  23. },
  24. set_bids: (state, val) => {
  25. state.bids = val;
  26. },
  27. set_asks: (state, val) => {
  28. state.asks = val;
  29. },
  30. set_daymarket: (state, val) => {
  31. state.daymarket = val;
  32. },
  33. // SET_CONTRACT: (state, contract) => {
  34. // // 合约账户
  35. // state.contractAccount = contract;
  36. // },
  37. // SET_BIBI: (state, bibi) => {
  38. // // 币币账户
  39. // state.bibiAccount = bibi;
  40. // },
  41. // SET_LEGAL: (state, legal) => {
  42. // // 法币账户
  43. // state.legalAccount = legal;
  44. // },
  45. // SET_GIFTMONEY: (state, GiftMoney) => {
  46. // // 赠金账户
  47. // state.GiftMoneyAccount = GiftMoney;
  48. // },
  49. // SET_STOCKS_COLOR: (state, code) => {
  50. // state.stocksColor = code
  51. // },
  52. // SET_TOKEN: (state, token) => {
  53. // setToken(token)
  54. // state.token = token
  55. // }
  56. }
  57. const nums = (arr) => {
  58. const att = arr.map(el => {
  59. return el[0]
  60. })
  61. const num = Math.max.apply(null, att)
  62. arr.forEach(el => {
  63. let n = Math.round(el[0] / num * 10000) / 100
  64. el[2] = n > 100 ? 100 : n;
  65. })
  66. return arr
  67. }
  68. const actions = {
  69. openSocket({
  70. commit,
  71. state
  72. }, data) {
  73. },
  74. closeSocket({
  75. commit,
  76. state
  77. }, data) {
  78. console.log('关闭socket', socket)
  79. try {
  80. socket.disconnect()
  81. // socket.forEach(el => {
  82. // el.disconnect()
  83. // });
  84. // socket
  85. // socket.close()
  86. } catch {}
  87. socket = null;
  88. },
  89. getQuotationNew({
  90. commit,
  91. state
  92. }, data) {
  93. commit('set_currencySuspend', true)
  94. const rq = () => {
  95. Api_getQuotationNew().then(res => {
  96. if (res && res.length > 0) {
  97. let newArr = res.find((item) => item.name == 'USDT').quotation || [];
  98. if (!state.currencyVal || !state.currencyVal?.currency_id) {
  99. state.currencyVal = newArr[0];
  100. }
  101. // 首页推荐
  102. if (newArr && newArr.length > 0) {
  103. const nums = newArr.length > 3 ? 3 : newArr.length;
  104. state.usdtList = newArr.slice(0, nums);
  105. } else {
  106. state.usdtList = []
  107. }
  108. // 自选
  109. state.optional = newArr.slice(0, 6)
  110. // 全部
  111. state.marketAll = newArr
  112. }
  113. }).catch(err => {
  114. if (state.currencySuspend && data?.noRefresh) {
  115. console.log(11111 , state.currencySuspend , data?.noRefresh)
  116. rq()
  117. }
  118. }).finally(() => {
  119. setTimeout(() => {
  120. // noRefresh : 是否不刷新,true 不会继续调用
  121. if (state.currencySuspend && !data?.noRefresh) {
  122. console.log(22222 , state.currencySuspend , data?.noRefresh)
  123. rq()
  124. }
  125. }, 3000)
  126. })
  127. }
  128. rq()
  129. },
  130. }
  131. export default {
  132. namespaced: true,
  133. state,
  134. mutations,
  135. actions
  136. }