1
admin
2026-01-11 fff675a093a912ecdda8e5498421a3e41ab0b596
src/page/home/homeIndex.vue
@@ -1,13 +1,7 @@
<template>
  <div class="home_index">
    <tab-head>
      <van-popover
        v-model="languageShow"
        trigger="click"
        :actions="actions"
        @select="onSelect"
        placement="bottom-end"
      >
      <van-popover v-model="languageShow" trigger="click" :actions="actions" @select="onSelect" placement="bottom-end">
        <template #reference>
          <div class="multilingual">
            <img src="../../assets/img/language.svg" alt="" />
@@ -23,7 +17,7 @@
      </div>
      <div class="swiper">
        <div class="swiper-wrapper flex-between">
          <!-- <div class="swiper-slide">
          <div class="swiper-slide">
            <div class="nav_item flex-start" @click="toPage('/aiTrading')">
              <img src="../../assets/img/home_1.png" alt="" />
              <span>{{ $t("量化交易") }}</span>
@@ -34,31 +28,34 @@
              <img src="../../assets/img/home_2.png" alt="" />
              <span>{{ $t("hj621") }}</span>
            </div>
          </div> -->
          </div>
          <div class="swiper-slide">
            <div class="nav_item flex-start" @click="toPage('/ipo')">
              <img src="../../assets/img/home_3.png" alt="" />
              <span>IPO</span>
            </div>
          </div>
          <!-- <div class="swiper-slide">
          <div class="swiper-slide">
            <div class="nav_item flex-start" @click="toPage('/fund')">
              <img src="../../assets/img/home_4.png" alt="" />
              <span>{{ $t("理财基金") }}</span>
            </div>
          </div> -->
          <div class="swiper-slide">
            <div class="nav_item flex-start" @click="toPage('/recharge')">
          </div>
          <!-- <div class="swiper-slide">
            <div class="nav_item flex-start" @click="czts">
              <img src="@/assets/img/充值缴费.png" alt="" />
              <span>{{ $t("hj172") }}</span>
            </div>
          </div>
          <div class="swiper-slide">
            <div class="nav_item flex-start" @click="toPage('/authentications')">
            <div
              class="nav_item flex-start"
              @click="toPage('/authentications')"
            >
              <img src="@/assets/img/kyc.png" alt="" />
              <span>KYC</span>
            </div>
          </div>
          </div> -->
        </div>
      </div>
    </div>
@@ -70,15 +67,24 @@
      </div>
      <div class="flex-between navs">
        <div class="nav_item" v-for="item in usDataStockBeans" :key="item.id">
          <index-component
            :ids="'a' + item.id"
            :dataObj="item"
          ></index-component>
          <index-component :ids="'a' + item.id" :dataObj="item"></index-component>
        </div>
      </div>
    </div>
    <div class="subheading bg-white" style="margin-top: 0.25em">
      <div class="subheading_title">
        <img src="../../assets/img/iconmonstr-chart-5.png" alt="" />
        <span>{{ $t("日股指数") }}</span>
      </div>
      <div class="flex-between navs">
        <div class="nav_item" v-for="item in jpDataStockBeans" :key="item.id">
          <index-component :ids="'b' + item.id" :dataObj="item"></index-component>
        </div>
      </div>
    </div>
    <!-- <div class="subheading bg-white" style="margin-top: 0.25em">
      <div class="subheading_title">
        <img src="../../assets/img/iconmonstr-chart-5.png" alt="" />
        <span>{{ $t("hksi") }}</span>
@@ -91,9 +97,9 @@
          ></index-component>
        </div>
      </div>
    </div>
    </div> -->
    <div class="subheading bg-white" style="margin-top: 0.25em">
    <!-- <div class="subheading bg-white" style="margin-top: 0.25em">
      <div class="subheading_title">
        <img src="../../assets/img/iconmonstr-chart-5.png" alt="" />
        <span>{{ $t("tsi") }}</span>
@@ -106,22 +112,8 @@
          ></index-component>
        </div>
      </div>
    </div>
    </div> -->
    <div class="subheading bg-white" style="margin-top: 0.25em">
      <div class="subheading_title">
        <img src="../../assets/img/iconmonstr-chart-5.png" alt="" />
        <span>{{ $t("ni") }}</span>
      </div>
      <div class="flex-between navs">
        <div class="nav_item" v-for="item in inDataStockBeans" :key="item.id">
          <index-component
            :ids="'b' + item.id"
            :dataObj="item"
          ></index-component>
        </div>
      </div>
    </div>
    <div class="subheading bg-white" style="margin-top: 0.25em">
      <div class="subheading_title">
@@ -129,11 +121,7 @@
        <span>{{ $t("hj6") }}</span>
      </div>
      <news-item
        :item="item"
        v-for="item in newsList"
        :key="item.id"
      ></news-item>
      <news-item :item="item" v-for="item in newsList" :key="item.id"></news-item>
      <div class="more flex-center" @click="$router.push('/new-list')">
        <span>{{ $t("更多新闻") }}</span>
@@ -144,6 +132,7 @@
</template>
<script>
import { Toast } from "vant";
import tabHead from "../../components/tabHead.vue";
import NewsItem from "./components/newsItem.vue";
import indexComponent from "../../components/index-component.vue";
@@ -170,10 +159,9 @@
        }
      ],
      newsList: [],
      hkDataStockBeans: [],
      twDataStockBeans: [],
      inDataStockBeans: [],
      usDataStockBeans: []
      jpDataStockBeans: [],
      usDataStockBeans: [],
      times: null
    };
  },
  components: {
@@ -183,7 +171,10 @@
    NewsItem
  },
  mounted() {
    this.getData();
    this.init();
  },
  beforeDestroy() {
    if (this.times) clearInterval(this.times);
  },
  methods: {
    // 选择语言
@@ -196,37 +187,41 @@
      if (typeof type == "string") type = 1;
      // let data = await api.queryNewsList(type);
    },
    // 初始化
    init() {
      this.getData();
      this.times = setInterval(() => {
        this.getData();
      }, 2000);
    },
    // 获取首页数据
    async getData() {
      let data = await api.getHomePageData();
      this.newsList = data.data.newsList;
      if (data.status == 0) {
        this.twDataStockBeans = data.data.twDataStockBeans.map(item => {
        let usLIst = data.data.usDataStockBeans || []
        this.usDataStockBeans = usLIst.map(item => {
          item.kData = item.kdata;
          return item;
        });
        this.inDataStockBeans = data.data.inDataStockBeans.map(item => {
        let jpLIst = data.data.jpDataStockBeans || []
        this.jpDataStockBeans = jpLIst.map(item => {
          item.kData = item.kdata;
          return item;
        });
        this.hkDataStockBeans = data.data.hkDataStockBeans.map(item => {
          item.kData = item.kdata;
          return item;
        });
        this.usDataStockBeans = data.data.usDataStockBeans.map(item => {
          item.kData = item.kdata;
          return item;
        });
      }
    },
    // 跳转
    toPage(url) {
      if (!url) return;
      this.$router.push(url);
    },
    // 充值提示
    czts() {
      Toast(this.$t("充值提示"));
    }
  }
};
@@ -302,8 +297,8 @@
        padding: 0 0.25em 0 0.25em;
        .swiper-slide {
          width: 3em;
          height: 2.8em;
          width: 2.2em;
          height: 2.4em;
          .nav_item {
            background-color: #fff;
@@ -314,7 +309,7 @@
            padding: 0.45em 0.15em 0;
            img {
              width: 0.95em;
              width: 0.6em;
              margin-bottom: 0.25em;
            }