admin
2026-02-06 8402f0794434bac13c0de02d47fb5c28d6e2639c
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="" />
@@ -47,6 +41,21 @@
              <span>{{ $t("理财基金") }}</span>
            </div>
          </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')"
            >
              <img src="@/assets/img/kyc.png" alt="" />
              <span>KYC</span>
            </div>
          </div> -->
        </div>
      </div>
    </div>
@@ -58,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>
@@ -79,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>
@@ -94,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">
@@ -117,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>
@@ -132,36 +132,24 @@
</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";
import Echart from "./components/echart.vue";
import * as api from "@/axios/api";
import { languageOptions } from "@/config/languageOptions";
export default {
  name: "homeIndex",
  data() {
    return {
      languageShow: false, // 语言选择
      // 多语言配置
      actions: [
        {
          text: "English",
          lang: "en"
        },
        {
          text: "中文(繁体)",
          lang: "zh-Hant"
        },
        {
          text: "हिंदी",
          lang: "hi"
        }
      ],
      actions: languageOptions,
      newsList: [],
      hkDataStockBeans: [],
      twDataStockBeans: [],
      inDataStockBeans: [],
      usDataStockBeans: []
      jpDataStockBeans: [],
      usDataStockBeans: [],
      times: null
    };
  },
  components: {
@@ -171,7 +159,10 @@
    NewsItem
  },
  mounted() {
    this.getData();
    this.init();
  },
  beforeDestroy() {
    if (this.times) clearInterval(this.times);
  },
  methods: {
    // 选择语言
@@ -184,37 +175,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("充值提示"));
    }
  }
};
@@ -259,7 +254,7 @@
      span {
        font-size: 0.5em;
        line-height: 0.5em;
        font-weight: 600;
        font-weight: 500;
      }
    }
@@ -290,8 +285,8 @@
        padding: 0 0.25em 0 0.25em;
        .swiper-slide {
          width: 2.1875em;
          height: 2.5em;
          width: 2.2em;
          height: 2.4em;
          .nav_item {
            background-color: #fff;
@@ -299,11 +294,10 @@
            width: 100%;
            height: 100%;
            flex-direction: column;
            padding-top: 0.25em;
            padding: 0.25em 0.15em 0;
            padding: 0.45em 0.15em 0;
            img {
              width: 0.75em;
              width: 0.6em;
              margin-bottom: 0.25em;
            }