lxf
2025-07-11 57ca8f40c4a33e7c1de314e6b24635e1fd53eafb
src/views/cryptos/index.vue
@@ -42,7 +42,7 @@
      </div>
    </div> -->
    <!-- <ex-hot :listData="hList"></ex-hot> -->
    <list-quatation :listData="qList" />
    <list-quatation :listData="qList" @onfetchQList="fetchQList"/>
    <van-popup v-model:show="item.showPopUp" style="border-radius:10px;" :close-on-click-overlay="false"
      v-for="item in popupNewsList" :key="item.id">
      <div class="w-350 p-20 box-border">
@@ -73,6 +73,7 @@
import { _getUnreadMsg } from '@/service/im.api'
import { _getNewsList1, _getPopupNews } from '@/service/user.api'
import { BASE_URL } from "@/config";
import { _getCoinList } from '@/service/quotes.api';
const THEME = 'dark'
export default {
  name: "HomePage",
@@ -98,7 +99,7 @@
      currency: 'home/currency',
      coinArr: 'home/coinArr',
      hotArr: 'home/hotArr',
      userInfo: 'user/userInfo'
      userInfo: 'user/userInfo',
    }),
  },
  data() {
@@ -122,6 +123,7 @@
      unreadMsg_timer: null,
      unreadMsg_num: '',
      popupNewsList: [],
      getVal: 1,
    }
  },
  methods: {
@@ -132,16 +134,40 @@
        //console.log('\n *** \n'+unread_num*1+'\n *** \n')
      })
    },
    async fetchQList() { // 获取行情
      const list = await _getHomeList(this.coinArr.join(',')).catch(() => {
        //TODO: 轮询
        // this.timeout = setTimeout(() => {
        //   this.fetchQList()
        // }, 1000)
    async fetchQList(v) { // 获取行情
      let coninArr = ''
      // if (v) { this.getVal = v }
      let arr = getStorage('qoutes')
      // 优先用本地缓存的 coins
      let coins = (arr && arr.coins && arr.coins.length) ? arr.coins : arr
      if (coins && coins.length) {
        // 如果本地有 coins,优先用本地
        coins.forEach(item => {
          coninArr += item.symbol + ','
        })
      } else {
        // 如果本地没有 coins,拉取接口
        const quotesData = await _getCoinList()
        if (quotesData && quotesData.coins && quotesData.coins.length) {
          quotesData.coins.forEach(item => {
            coninArr += item.symbol + ','
          })
        }
      }
      console.log('fetchQList', v, coninArr)
      // if()
      const list = await _getHomeList(coninArr).catch(() => {
        //请求失败时,1秒后重试
        this.timeout = setTimeout(() => {
          this.fetchQList()
        }, 1000)
      })
      if (!(list instanceof Array)) {
        return
      }
      // console.log('接口:_getHomeList 热门:',list)
      this.loading = false
      // this.qList = list.slice(0,10);
      this.qList = list;