lxf
2025-04-24 6ae727d83d6e42428711fa2337528679aae239eb
src/page/home/home.vue
@@ -81,88 +81,54 @@
          </div>
        </div>
        <!-- 最多关注 -->
        <!--        <van-skeleton title :row="6" :loading="loading" class="focus_skeleton" />-->
        <!--        <div class="focus_on" v-if="!loading">-->
        <!--          <div class="fo_content">-->
        <!--            <div class="top_title">-->
        <!--              {{ $t('hj5') }}-->
        <!--            </div>-->
        <!--            <div class="fo_banner">-->
        <!--              <van-swipe class="fo_my-swipe" :autoplay="0" indicator-color="white" @change="onChange">-->
        <!--                &lt;!&ndash; <van-swipe-item v-for="(item, index)  in proData" :key="index">-->
        <!--                  <div class="item_cont" v-for="(item2, idx) in proData[currentIndex]" :key="idx">-->
        <!--                    <div class="top_fo" style="width: 80%;">-->
        <!--                      <div class="title" style="width: 30%;">-->
        <!--                        <span>{{ item2.f14 }}</span>-->
        <!--                      </div>-->
        <!--                      <div class="percentage"  :class="item2.f3 > 0 ? 'gree' : 'redd'">-->
                <van-skeleton title :row="6" :loading="loading" class="focus_skeleton" />
        <div class="focus_on" v-if="!loading">
          <div class="fo_content">
            <div class="top_title">
              {{ $t('hj5') }}
            </div>
            <div class="fo_banner">
              <van-swipe class="fo_my-swipe" :autoplay="0" indicator-color="white" @change="onChange">
        <!--                        <span>{{ item2.f3 > 0 ? `+${item2.f3}%` : `${item2.f3}%` }}</span>-->
        <!--                      </div>-->
        <!--                      <div class="percentage"></div>-->
        <!--                      <div class="percentage" style="width: 38%;position: absolute;right: 0;top: 5%;height: 80%;" :class="item2.f3 > 0 ? 'gree' : 'redd'">-->
        <!--                         <echart :colorType="item2.f3" :ids="idx+'1'+index"></echart>-->
        <!--                      </div>-->
        <!--                    </div>-->
        <!--                    <div class="bottom_fo" style="width: 80%;">-->
        <!--                      <div class="title"style="width: 30%;">-->
        <!--                        <span style="margin-right: 0.12rem;">{{ item2.f12 }}</span>-->
        <!--                        <img v-for="item in getHuo()" :src="Huo" alt style="width: 0.4rem;height: 0.4rem;" />-->
        <!--                      </div>-->
        <!--                      <div  class="percentage" >-->
        <!--                        <span>{{ item2.f2 }}</span>-->
        <!--                      </div>-->
        <!--                      <div class="percentage">-->
        <!--                        <span></span>-->
        <!--                      </div>-->
        <!--                    </div>-->
        <!--                  </div>-->
        <!--                </van-swipe-item> &ndash;&gt;-->
        <!--                <van-swipe-item v-for="(item, index)  in proData" :key="index">-->
        <!--                  <div class="item_cont" :class="idx != 2 ? 'item_conts' : ''"-->
        <!--                    v-for="(item2, idx) in proData[currentIndex]" :key="idx" @click="goDetail(item2)">-->
        <!--                    <div class="top_fo">-->
        <!--                      <div class="title">-->
        <!--                        {{ item2.name }}-->
        <!--                      </div>-->
        <!--                      <div class="numbers">-->
        <!--                        {{ item2.price }}-->
        <!--                      </div>-->
        <!--                      <div class="percentage" :class="item2.range > 0 ? 'gree' : 'redd'">-->
        <!--                        <span style="font-weight: 500;">{{ item2.range > 0 ? `${item2.range}` :-->
        <!--                            `${item2.range}`-->
        <!--                        }}</span>-->
        <!--                      </div>-->
        <!--                    </div>-->
        <!--                    <div class="bottom_fo">-->
        <!--                      <div class="title">-->
        <!--                        <span class="numberid" style="margin-right: 0.12rem;">{{ item2.symbol }}</span>-->
        <!--                        &lt;!&ndash; <div v-for="(items, indexs) in Number(item2.pnum.slice(0, 1))"-->
        <!--                          style="width: 0.4rem;height: 0.4rem;display: flex;">-->
        <!--                          <img v-if="indexs < 3" :src="Huo" alt style="width: 0.4rem;height: 0.4rem;" />-->
        <!--                        </div> &ndash;&gt;-->
        <!--                      </div>-->
        <!--                      <div class="numbers" :class="item2.floatPoint > 0 ? 'gree' : 'redd'">-->
        <!--                        <img :src="Huo" alt style="width: 0.4rem;height: 0.4rem;" />-->
        <!--                        <span class="point" style="height: 0.4rem;">{{ item2.pnum-->
        <!--                        }}</span>-->
        <!--                      </div>-->
        <!--                      <div class="percentage">-->
        <!--                        &lt;!&ndash; <span class="aikesi">100X</span> &ndash;&gt;-->
        <!--                        <el-tag key="100X"-->
        <!--                          style="width: 80%;text-align: center;height: 0.45rem!important;line-height: 0.45rem!important;">-->
        <!--                          {{ getNum1(Number(item2.pnum.slice(0, 1))) + 'X' }}-->
        <!--                        </el-tag>-->
        <!--                      </div>-->
        <!--                    </div>-->
        <!--                  </div>-->
        <!--                </van-swipe-item>-->
        <!--              </van-swipe>-->
        <!--            </div>-->
        <!--          </div>-->
        <!--        </div>-->
                <van-swipe-item v-for="(item, index)  in proData" :key="index">
                  <div class="item_cont" :class="idx != 2 ? 'item_conts' : ''"
                       v-for="(item2, idx) in proData[currentIndex]" :key="idx" @click="goDetail(item2)">
                    <div class="top_fo">
                      <div class="title">
                        {{ item2.name }}
                      </div>
                      <div class="numbers">
                        {{ item2.nowPrice }}
                      </div>
                      <div class="percentage" :class="item2.hcrate > 0 ? 'gree' : 'redd'">
                        <span style="font-weight: 500;">{{ item2.hcrate > 0 ? `${item2.hcrate}` :
                          `${item2.hcrate}`
                          }}</span>
                      </div>
                    </div>
                    <div class="bottom_fo">
                      <div class="title">
                        <span class="numberid" style="margin-right: 0.12rem;">{{ item2.code }}</span>
                      </div>
                      <div class="numbers" :class="item2.hcrate > 0 ? 'gree' : 'redd'">
<!--                        <img :src="Huo" alt style="width: 0.4rem;height: 0.4rem;" />
                        <span class="point" style="height: 0.4rem;">{{ item2.hcrate
                          }}</span>-->
                      </div>
<!--                      <div class="percentage">
                         <span class="aikesi">100X</span>
                        <el-tag key="100X"
                                style="width: 80%;text-align: center;height: 0.45rem!important;line-height: 0.45rem!important;">
                          {{ getNum1(Number(item2.pnum.slice(0, 1))) + 'X' }}
                        </el-tag>
                      </div>-->
                    </div>
                  </div>
                </van-swipe-item>
              </van-swipe>
            </div>
          </div>
        </div>
      </div>
      <van-skeleton title :row="18" :loading="loading" />
      <div class="news-tab">
@@ -264,7 +230,7 @@
</template>
<script>
import AllList from "@/page/list/list-all";
import HomeList from "./components/home-list";
import HomeList from './components/home-list';
import Echart from "./components/echart.vue";
import * as api from "@/axios/api";
import Logo from "@/assets/img/img_log_home.png";
@@ -285,6 +251,7 @@
// import indexData from "./data.json";
import GoToLogin from "@/page/home/components/GoLogin.vue";
import { MessageBox } from "mint-ui";
import {getStockByType} from "@/axios/api";
export default {
  components: {
    HomeList,
@@ -376,6 +343,11 @@
          text: "한국어",
          icon: require("@/assets/ico/Korean.png"),
          lang: "ko"
        },
        {
          text: "العربية",
          icon: require("@/assets/ico/sa.png"),
          lang: "st"
        }
        // { text: "हिंदी", icon: require("@/assets/ico/india.png"), lang: "en" }
@@ -468,7 +440,31 @@
        this.$store.commit("dialogVisible", true);
        return;
      }
      // 点击进入详情
      const obj = {
        pid: item.code || "",
        type: item.stock_type || ""
      };
      window.localStorage.setItem("kLine", JSON.stringify(obj));
      // return;
      var codes = item.code;
      var names = item.name;
      var ifZhishu = "0";
      var ifUs =
        item.stock_type === "us" ? "1" : item.stock_type === "hk" ? "2" : "";
      this.$router.push({
        path: "/kline",
        query: {
          name: names,
          code: codes,
          if_us: ifUs,
          if_zhishu: ifZhishu,
          sok: item.type ? item.type : this.filterSH(item.stock_type),
          type: item.stock_type
        }
      });
      /*this.$router.push({
        path: "/kline",
        query: {
          name: item.name,
@@ -478,7 +474,7 @@
          sok: this.filterSH(item.market),
          if_zhishu: "0"
        }
      });
      });*/
    },
    filterSH(val) {
      if (val === "sh") {
@@ -557,9 +553,17 @@
      }
    },
    async getStock() {
      let data = await api.getIndexMarket();
      for (var i = 0; i < data.data.result.data.length; i += 3) {
        this.proData.push(data.data.result.data.slice(i, i + 3));
      let p = {
        pageNum: 1,
        pageSize: 20,
        stockPlate: "",
        keyWords: "",
        stockType: 'ST',
        orderBy: this.orderBy
      }
      let data = await api.getStockByType(p);
      for (var i = 0; i < data.data.list.length; i += 3) {
        this.proData.push(data.data.list.slice(i, i + 3));
      }
    },
    async getNewsList(type) {
@@ -940,7 +944,11 @@
      }
      .title {
        width: 30%;
        white-space: nowrap; /* 防止文本换行 */
        overflow: hidden; /* 隐藏溢出的内容 */
        text-overflow: ellipsis; /* 使用省略号表示被截断的文本 */
        font-size: 12px;
        width: 55%;
        height: 100%;
        display: flex;
        align-items: center;