websocket.js 3.4 KB

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