lxf
2025-07-05 b804b11cb1a3f766ea1a57b7d5457268e85872a1
src/components/Transform/list-quotation/index.vue
@@ -1,27 +1,42 @@
<template>
  <div class="list-quatation">
    <ex-tabs @tabs="onTabs"></ex-tabs>
    <!-- <ex-tabs @tabs="onTabs"></ex-tabs> -->
    <van-list>
      <van-cell>
      <!-- <van-cell>
        <div class="flex items-center w-full text-grey font-26">
          <p class="left text-left">
            <span>{{ $t('交易对') }}
              <!--                      <img src="./icon-sort.png" alt="icon" class="w-13 h-22"/>-->
            </span>
          </p>
          <p class="mid text-right">
            {{ $t('最新价') }}
            <!--                  <img src="./icon-sort.png" alt="icon" class="w-13 h-22 ml-5"/>-->
          </p>
          <p class="right text-right">
            {{ active == 3 ? $t('成交额') : $t('24h涨跌幅') }}
            <!--                  <img src="./icon-sort.png" alt="icon" class="w-13 h-22 ml-5"/>-->
          </p>
        </div>
      </van-cell>
      </van-cell> -->
      <!-- 热门 -->
      <div class="flex items-end justify-between" style="margin: 14px 0;">
        <div class="block text-22 font-medium" >{{$t('Market')}}</div>
        <div class="relative text-13">
          <!-- <div class="flex px-10 justify-between rounded-full bg-black text-white min-w-100 box-border">
            <div class="block">貨幣</div>
            <div class="i-material-symbols:arrow-drop-down-rounded"></div>
          </div> -->
          <!-- <div class="px-9 py-10 bg-black text-white flex flex-col absolute min-w-100 box-border top-25 rounded-11 leading-28" style="display: none;">
            <div>貨幣</div>
            <div>數字貨幣</div>
            <div>期貨</div>
            <div>收藏</div>
          </div> -->
        </div>
      </div>
      <transition-group :name="type" tag="div">
        <div v-if="active == 0" :key="active">
          <van-cell v-for="item in listData" :key="item.id">
          <van-cell v-for="item in listData" :key="item.id" style="background-color: #f0f0f0;margin-bottom: 10px;">
            <ul class="flex justify-between w-full items-center" @click="onItemClick(item)">
              <li class="flex items-center left">
                <img
@@ -47,10 +62,10 @@
                    currency.rate).toFixed(2) || '--' }}</p>
              </li>
              <li class="right flex items-center justify-end">
                <p class="w-153 font-31 h-71 bg-green text-white border-0 text-center btn" v-if="item.change_ratio > 0">
                  +{{ item.change_ratio || (item.change_ratio === 0 ? 0 : '--') }}%</p>
                <p class="w-153 font-31 h-71 bg-green text-white border-0 text-center btn" v-if="item.change_ratio_str > 0">
                  +{{ item.change_ratio_str || (item.change_ratio_str === 0 ? 0 : '--') }}%</p>
                <p class="w-153 font-31 h-71 bg-red text-white border-0 text-center btn" v-else>
                  {{ item.change_ratio || (item.change_ratio === 0 ? 0 : '--') }}%</p>
                  {{ item.change_ratio_str || (item.change_ratio_str === 0 ? 0 : '--') }}%</p>
              </li>
            </ul>
          </van-cell>
@@ -84,10 +99,10 @@
                  {{ (item.volume * 1).toFixed(2) }}
                </div>
                <template v-else>
                  <p class="w-153 font-31 h-71 bg-green text-white border-0 text-center btn" v-if="item.change_ratio > 0">
                    +{{ item.change_ratio }}%</p>
                  <p class="w-153 font-31 h-71 bg-green text-white border-0 text-center btn" v-if="item.change_ratio_str > 0">
                    +{{ item.change_ratio_str }}%</p>
                  <p class="w-153 font-31 h-71 bg-red text-white border-0 text-center btn" v-else>
                    {{ item.change_ratio || (item.change_ratio === 0 ? 0 : '--') }}%</p>
                    {{ item.change_ratio_str || (item.change_ratio_str === 0 ? 0 : '--') }}%</p>
                </template>
              </li>
            </ul>
@@ -101,7 +116,6 @@
    </div> -->
  </div>
</template>
<script>
import { List, Cell } from 'vant'
import { mapGetters, mapActions } from 'vuex'
@@ -109,6 +123,8 @@
import ExTabs from "@/components/Transform/ex-tabs/index.vue";
import { HOST_URL } from '@/config'
import { SET_CURRENCY } from "@/store/const.store";
// import { useI18n } from "vue-i18n";
// const t = useI18n()
export default {
  name: 'ListQuotation',
  data() {
@@ -155,10 +171,19 @@
        });
      } else {
        setStorage('symbol', item.symbol)
        // /cryptos/perpetualContract/btcusdt?selectIndex=2
        this.$router.push({
          path: `/cryptos/perpetualContract/${item.symbol}`,
          query: { type: 'cryptos' }
          query: { type: 'cryptos', selectIndex: 2 }
        });
        //  this.$router.push({
        //   path: `/foreign/deliveryContract/${item.symbol}`,
        //   query: { type: 'cryptos' }
        // });
        // this.$router.push({
        //   path: `/cryptos/perpetualContract/${item.symbol}`,
        //   query: { type: 'cryptos' }
        // });
      }
    },
    handleImage(url) {
@@ -174,9 +199,9 @@
      if (val == 0) {
        this.showList = [...this.listData];
      } else if (val == 1) {
        this.showList = [...this.listData].sort(this.compare("change_ratio", 'up'))
        this.showList = [...this.listData].sort(this.compare("change_ratio_str", 'up'))
      } else if (val == 2) {
        this.showList = [...this.listData].sort(this.compare("change_ratio", 'down'))
        this.showList = [...this.listData].sort(this.compare("change_ratio_str", 'down'))
      } else if (val == 3) {
        this.showList = [...this.listData].sort(this.compare("volume", 'up'))
      }
@@ -203,9 +228,9 @@
      if (this.active == 0) {
        this.showList = [...this.listData];
      } else if (this.active == 1) {
        this.showList = [...this.listData].sort(this.compare("change_ratio", 'up'))
        this.showList = [...this.listData].sort(this.compare("change_ratio_str", 'up'))
      } else if (this.active == 2) {
        this.showList = [...this.listData].sort(this.compare("change_ratio", 'down'))
        this.showList = [...this.listData].sort(this.compare("change_ratio_str", 'down'))
      } else if (this.active == 3) {
        this.showList = [...this.listData].sort(this.compare("volume", 'up'))
      }
@@ -216,6 +241,7 @@
</script>
<style lang="scss" scoped>
@import "@/assets/init.scss";
@import '@/assets/css/deepseek_css_20250625_30ff932.css';
#cryptos {
@@ -271,4 +297,12 @@
  }
}
.textColor {
  color: #242629;
}
.text-grey{
  // color: #8c8c8c;
}
</style>