1
jhzh
2025-07-28 a8b0eb32d97e7a540692a8a29f610fe76d67ef74
src/page/home/home.vue
@@ -1,16 +1,13 @@
<template>
  <div class="wrapper">
    <div class="page_content">
      <div style="padding: 0 0.264rem;font-size: 24px;font-weight: 500;">SFM Pro</div>
      <div style="padding: 0 0.264rem;font-size: 24px;font-weight: 500;">CARLYLEJP</div>
      <div class="center_tabs">
        <div class="banner_top">
          <van-swipe class="my-swipe" :autoplay="5000" indicator-color="white">
            <van-swipe-item
              v-for="(item, index) in bannerImgsArr"
              @click="handleBannerClick(index)"
              :key="index"
            >
              <img style="width: 100%; height: 146px"  :src="item.img" alt />
            <van-swipe-item style="height: 160px;" v-for="(item, index) in bannerImgsArr"
              @click="handleBannerClick(index)" :key="index">
              <img style=" width: 100%;height: 100%;" :src="item.img" alt />
            </van-swipe-item>
          </van-swipe>
        </div>
@@ -35,10 +32,7 @@
            <li @click="$router.push('/trading-list?type=DZ')">
              <div class="link">
                <div class="icon">
                  <img
                    src="../../assets/home/block_trades.png"
                    alt=""
                  />
                  <img src="../../assets/home/block_trades.png" alt="" />
                </div>
                <div class="name">{{ $t("hj621") }}</div>
              </div>
@@ -46,10 +40,7 @@
            <li @click="$router.push('/favorites')">
              <div class="link">
                <div class="icon">
                  <img
                    src="../../assets/home/ipo.png"
                    alt=""
                  />
                  <img src="../../assets/home/ipo.png" alt="" />
                </div>
                <div class="name">IPO{{ $t("申购") }}</div>
              </div>
@@ -57,10 +48,7 @@
            <li @click="$router.push('/smart_intraday')">
              <div class="link">
                <div class="icon">
                  <img
                    src="../../assets/home/stock_recharge.png"
                    alt=""
                  />
                  <img src="../../assets/home/stock_recharge.png" alt="" />
                </div>
                <div class="name">{{ $t("智能日内") }}</div>
              </div>
@@ -157,8 +145,10 @@
                  </div>
                  <div class="scroll-item_top_right">{{item.symbol}}</div>
              </div>
              <div style="margin-bottom: 15px;text-align: center;color: #137D68;font-size: 12px;font-weight: bold;">{{ item.last }}</div>
              <div style="margin-bottom: 25px;text-align: center;color: #C8302F;font-size: 12px;font-weight: bold;">{{ item.chg }}({{item.chgPct}}%)</div>
            <div style="margin-bottom: 15px;text-align: center;color: #137D68;font-size: 12px;font-weight: bold;">
              {{ item.last }}</div>
            <div style="margin-bottom: 25px;text-align: center;color: #C8302F;font-size: 12px;font-weight: bold;">
              {{ item.chg }}({{item.chgPct}}%)</div>
            </div>
          </div>
        <!-- <div class="fg"></div> -->
@@ -205,41 +195,28 @@
        <div class="title-box">
          <div class="title">{{ $t("資訊") }}</div>
        </div>
        <mt-tab-container
          v-model="news"
          :swipeable="true"
        >
          <mt-tab-container-item
            v-for="(items, index) in newListHeader"
            :id="items.id"
            :key="index"
          >
        <mt-tab-container v-model="news" :swipeable="true">
          <mt-tab-container-item v-for="(items, index) in newListHeader" :id="items.id" :key="index">
            <div class="news-content">
              <div style="display: flex;align-items: normal;border-bottom:1px solid #cacaca;padding-bottom: 10px;margin-top:10px;justify-content: space-between;"
                class=""
                v-for="(item, inde) in items.data"
                :key="inde"
                @click="
              <div
                style="display: flex;align-items: normal;border-bottom:1px solid #cacaca;padding-bottom: 10px;margin-top:10px;justify-content: space-between;"
                class="" v-for="(item, inde) in items.data" :key="inde" @click="
                  $router.push({
                    path: '/newPage',
                    query: {
                      listid: item.id
                    }
                  })
                "
              >
                ">
               <div style="display: flex;
    flex-direction: column;
    justify-content: space-between;">
                 <div
                   class="titContent"
                   style="
                  <div class="titContent" style="
                     -webkit-box-orient: vertical;
                     font-size: 0.38rem;
                     margin-top: 0.2rem;
                     margin-bottom: 20px;
                   "
                 >
                   ">
                   {{ item.title }}
                 </div>
                 <div class="item-times">
@@ -298,7 +275,9 @@
import ADFASDF from "@/assets/img/20240711-160804.jpg";
import xiazai from "@/assets/img/xiazai.png";
import GoToLogin from "@/page/home/components/GoLogin.vue";
import { MessageBox } from "mint-ui";
  import {
    MessageBox
  } from "mint-ui";
import Language from "@/components/Language/index.vue";
import tabsList from "@/page/list/tradingList/tabs";
@@ -319,8 +298,7 @@
      // 客服地址
      news: "tab_0",
      // 新闻导航
      newListHeader: [
        {
        newListHeader: [{
          title: this.$t("hj6"),
          id: "tab_0",
          data: [],
@@ -338,14 +316,14 @@
      Announcement,
      ADFASDF,
      close: true,
        intervalId: null,
      proData: [], // 分割好的数据
      currentIndex: 0,
      bannerImgsArr: [
        {
        bannerImgsArr: [{
          img: require("@/assets/img/11111.png")
        },
        {
          img: require("@/assets/img/11111.png")
            img: require("@/assets/img/22222.png")
        }
        // {
        //   img: "https://api.trowegroup.com/bs/image/20240305/06eb4602ba7b3e570ccd70c0415884ec.png",
@@ -363,8 +341,7 @@
  },
  computed: {
    navsArr() {
      return [
        {
        return [{
          img: xiazai,
          title: this.$t("hj1461")
        },
@@ -420,8 +397,7 @@
      let data = await api.getIndexData();
      if (data.status === 0) {
        this.zslist = data.data
      } else {
      }
        } else {}
    },
    closeclick() {
      this.isshow = false;
@@ -457,8 +433,7 @@
        // 判断是否登录
        this.$store.state.userInfo = data.data;
        this.userInfo = data.data;
      } else {
      }
        } else {}
    },
    getHuo() {
      // 123随机
@@ -533,7 +508,12 @@
        //   break
        case 3:
          // this.$router.push('/Subscription?idx=1')
          this.$router.push({ path: "/trading-list", query: { indexid: 3 } });
            this.$router.push({
              path: "/trading-list",
              query: {
                indexid: 3
              }
            });
          break;
        case 4:
          // this.$router.push('/SubDK')
@@ -551,11 +531,15 @@
        navigator.vibrate([55]);
      }
    },
    async getBanner() {
       getBanner() {
      // 获取显示的banner
      let result = await api.getBannerByPlat({ platType: "m" });
        let result =  api.getBannerByPlat({
          platType: "m"
        });
      if (result.status === 0) {
        var ajson = { bannerUrl: this.banner1 };
          var ajson = {
            bannerUrl: this.banner1
          };
        this.bannerList.push(ajson);
      } else {
        this.$store.commit("elAlertShow", {
@@ -586,7 +570,17 @@
        });
      }
    },
       startPolling(){
         this.intervalId = setInterval(() => {
            this.getrglist();
        }, 5000); // 每 5 秒轮询一次
      },
       stopPolling() {
        if (this.intervalId) {
          clearInterval(this.intervalId);
          this.intervalId = null;
        }
      },
    // 获取新闻列表
    async getNewsList(type) {
      if (typeof type == "string") type = 1;
@@ -601,18 +595,25 @@
    },
    handleSearchClick() {
      this.$router.push({ path: "/trading-list", query: { type: 1 } });
        this.$router.push({
          path: "/trading-list",
          query: {
            type: 1
          }
        });
    }
  },
  async mounted() {
     beforeDestroy() {
       this.stopPolling()
    },
     mounted() {
       this.startPolling();
    this.getUserInfo();
    this.getrglist()
      // this.getrglist()
    this.getInfoSite();
    await this.getNewsList(1);
       this.getNewsList(1);
    this.getArtList();
    this.getBanner();
    setInterval(() => {
      if (window.localStorage.getItem("USERTOKEN")) {
        this.isGoTo = false;
@@ -627,48 +628,66 @@
  /deep/.header-box{
    display: none;
  }
  /deep/.asiis{
    display: none;
  }
  .horizontal-scroll-container::-webkit-scrollbar {
    display: none; /* 对于 Webkit 浏览器(如 Chrome, Safari)隐藏滚动条 */
    display: none;
    /* 对于 Webkit 浏览器(如 Chrome, Safari)隐藏滚动条 */
  }
  .scroll-item_top_right{
    width: 30%;
    font-size: 12px;
    font-weight: 700;
    color: #ababab;
  }
  .scroll-item_top_left{
    width: 70%;
    font-size: .373333rem;
    font-weight: 700;
    color: #137D68;
  }
  .scroll-item_top{
    display: flex;
    align-items: center;
    margin-bottom: 25px;
  }
  .scroll-item {
     display: inline-block; /* 横向排列每个项 */
    min-width: 225px; /* 每个项的宽度 */
    height: 160px; /* 每个项的高度 */
    background-color: #F5EDEC; /* 背景色 */
    margin-left: 20px; /* 项之间的间距 */
    display: inline-block;
    /* 横向排列每个项 */
    min-width: 225px;
    /* 每个项的宽度 */
    height: 160px;
    /* 每个项的高度 */
    background-color: #F5EDEC;
    /* 背景色 */
    margin-left: 20px;
    /* 项之间的间距 */
    // line-height: 100px; /* 垂直居中 */
    border-radius: 5px; /* 圆角 */
    border-radius: 5px;
    /* 圆角 */
    padding:.32rem .213333rem;
  }
  .custom-swipe {
    width: 100%;
    height: 180px; /* 每个项的高度 */
    height: 180px;
    /* 每个项的高度 */
    display: flex;
    overflow-x: auto; /* 启用横向滚动 */
    white-space: nowrap; /* 保证子项不换行 */
    overflow-x: auto;
    /* 启用横向滚动 */
    white-space: nowrap;
    /* 保证子项不换行 */
    scrollbar-width: none;
  }
.navs {
  width: 100%;
  height: 2.6154rem;
@@ -767,7 +786,9 @@
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis /* 显示省略符号 (...) */;
    text-overflow: ellipsis
      /* 显示省略符号 (...) */
    ;
}
.txt_box_box {
@@ -862,18 +883,22 @@
  width: 100%;
  height: auto;
  margin-top: 0.2308rem;
  > .banner_top {
    width: 100%;
    height: auto;
    img {
      width: 100%;
      height: 100%;
    }
    .van-swipe-item {
      // height: 3.0615rem;
      // padding: 0 0.264rem;
      // border-radius: 0.3rem;
    }
    .van-swipe-item img {
      // border-radius: 0.3rem;
    }
@@ -887,6 +912,7 @@
    align-items: center;
    padding: 0.2rem 0 0.2rem 0;
    background-color: #E8F4F0;
    > .an_content {
      width: 95%;
      height: 0.559rem;
@@ -1338,6 +1364,7 @@
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
    li {
      display: flex;
      flex-direction: column;