1
admin
2026-01-31 732c30b33f782c2d2ebb62eacda2fb7a453a7ecd
src/page/kline/index.vue
@@ -8,12 +8,15 @@
              <img src="../../assets/img/zuojiantou.png" alt />
            </div>
            <div class="right_title">
              <div class="t_t" style="white-space: nowrap">
              <div class="t_t line-one" style="white-space: nowrap">
                <span>{{ singDetails.name }}</span>
              </div>
              <!-- <div class="t_t" style="white-space: nowrap">
                <span>{{ singDetails.name }}({{ singDetails.gid }})</span>
              </div>
              <div class="b_t">
                <span>{{ singDetails.spell }}</span>
              </div>
              </div> -->
            </div>
          </div>
          <!-- 隐藏右侧金额显示 -->
@@ -73,6 +76,13 @@
              </div>
            </div>
          </div> -->
        </div>
        <div class="flex-start" style="font-size: .4rem;">
          <span class="i_icon">{{ bayType }}</span>
          <span class="i_hint" style="color:#777">{{ singDetails.spell }}</span>
        </div>
        <div class="detail_title_a">
          {{ singDetails.name }}({{ singDetails.gid }})
        </div>
        <div class="real_time_detail">
          <div class="left_now_price">
@@ -423,26 +433,20 @@
          />
          <img src="../../assets/img/shoucangle.png" alt v-else />
        </div>
        <div class="right_xx" @click="handleJj()">
        <!-- <div class="right_xx" @click="handleJj()">
          <a href="#"><img src="../../assets/img/xiaoxi.png" alt/></a>
        </div>
        </div> -->
      </div>
      <div class="rights">
        <div class="buy_btn">
        <!-- <div class="buy_btn">
          <div class="top_buy" @click="goBuy(0)">
            <span>{{ $t("hj84") }}</span>
          </div>
          <!-- <div class="bottom_buy">
            <span>{{ singDetails.nowPrice }}</span>
          </div> -->
        </div>
        </div> -->
        <div class="sell_btn" @click="goBuy(1)">
          <div class="top_sell">
            <span>{{ $t("hj85") }}</span>
          </div>
          <!-- <div class="bottom_sell">
            <span>{{ singDetails.nowPrice }}</span>
          </div> -->
        </div>
      </div>
    </div>
@@ -471,7 +475,8 @@
      newsdetailList: [],
      bayType: "",
      timer: null,
      key: 0
      key: 0,
      messageInstances: [] // 保存所有消息提示实例
    };
  },
  components: {
@@ -479,22 +484,46 @@
  },
  created() {
    // 进入页面的时候清除所以得计时器,防止页面切换的时候出现多个定时器
    let end = setTimeout(function() {}, 0);
    for (let i = 0; i <= end; i++) {
      clearInterval(i);
    }
    const { query } = this.$route;
    this.kLineDetails = query;
    if (query.if_us === "1") {
      this.getSingDetailUs();
    } else {
      this.getSingDetails();
      this.timer = setInterval(() => {
        this.getSingDetails();
      }, 2000);
      }, 5000);
    }
    this.getOpation();
    // this.$Lazyload();
    this.getUserInfo();
    this.getNohknews();
  },
  beforeDestroy() {
    this.clearInterval(this.timer); // 在组件销毁前清除定时器
    clearInterval(this.timer); // 在组件销毁前清除定时器
    // 关闭所有消息提示
    this.messageInstances.forEach(instance => {
      if (instance && typeof instance.close === 'function') {
        instance.close();
      }
    });
    this.messageInstances = [];
  },
  destroyed() {
    clearInterval(this.timer); // 在组件销毁前清除定时器
    // 确保所有消息提示都已关闭
    this.messageInstances.forEach(instance => {
      if (instance && typeof instance.close === 'function') {
        instance.close();
      }
    });
    this.messageInstances = [];
  },
  // beforeDestroy() {
  //   this.Klinetype = false;
@@ -522,31 +551,35 @@
        if (data.status === 0) {
          this.getOpation();
          this.optionBtn = false;
          this.$message({
          const messageInstance = this.$message({
            message: this.$t("hj97"),
            type: "success"
          });
          this.messageInstances.push(messageInstance);
        } else {
          this.optionBtn = false;
          this.$message({
          const messageInstance = this.$message({
            message: data.msg,
            type: "warning"
          });
          this.messageInstances.push(messageInstance);
        }
      } else {
        let data = await api.addOption({ code: this.kLineDetails.code });
        if (data.status === 0) {
          this.getOpation();
          this.optionBtn = false;
          this.$message({
          const messageInstance = this.$message({
            message: this.$t("hj96"),
            type: "success"
          });
          this.messageInstances.push(messageInstance);
        } else {
          this.$message({
          const messageInstance = this.$message({
            message: data.msg,
            type: "warning"
          });
          this.messageInstances.push(messageInstance);
          this.optionBtn = false;
        }
      }
@@ -861,8 +894,24 @@
  padding: 0 0.3rem;
  background: #fff;
  .detail_title_a {
    font-size: 0.45rem;
    font-weight: 500;
    margin-top: 0.2rem;
    line-height: 0.45rem;
  }
  .i_icon {
    border-radius: 0 26em 26em 0;
    background: #07c160;
    color: #fff;
    padding: 0.1em 0.5em 0.1em 0.4em;
    margin-right: 0.3em;
    font-size: 0.8em;
  }
  .top_back {
    width: 50%;
    width: 90%;
    height: 1.2rem;
    display: flex;
    align-items: center;
@@ -872,22 +921,26 @@
      height: 80%;
      display: flex;
      align-items: center;
      margin-right: 10vw;
      > img {
        margin-top: 0.2rem;
        // margin-top: 0.2rem;
        width: 0.6rem;
        height: 0.6rem;
      }
    }
    .right_title {
      width: 3rem;
      height: 80%;
      width: 70%;
      // height: 80%;
      display: flex;
      align-items: center;
      justify-content: center;
      .t_t {
        width: 100%;
        height: 70%;
        display: flex;
        height: 100%;
        line-height: 1.2rem;
        align-items: center;
        font-size: 0.4615rem;
@@ -910,7 +963,7 @@
.k_line_detail {
  width: 100%;
  height: calc(100vh - 300px);
  height: 100vw;
  background: #fff;
  border-radius: 0 0 0.3rem 0.3rem;
}
@@ -935,6 +988,7 @@
      display: flex;
      align-items: center;
      font-weight: bold;
      span {
        font-weight: 500;
      }
@@ -970,6 +1024,7 @@
        justify-content: space-between;
        align-items: center;
        padding: 0 0.1rem;
        .titles {
          padding-right: 0.1rem;
        }
@@ -1133,6 +1188,7 @@
    height: 70%;
    display: flex;
    align-items: center;
    padding-left: 0.3rem;
    > div {
      width: 50%;
@@ -1149,21 +1205,23 @@
  }
  .rights {
    width: 70%;
    width: 80%;
    height: 70%;
    display: flex;
    align-items: center;
    justify-content: space-around;
    justify-content: center;
    padding-right: 0.2rem;
    > div {
      border-radius: 0.15rem;
    }
    .buy_btn {
      width: 45%;
      height: 100%;
      width: 50%;
      height: 80%;
      background: rgb(225, 59, 69);
      color: #fff;
      border-radius: 3rem 0 0 3rem !important;
      .top_buy {
        width: 100%;
@@ -1186,10 +1244,12 @@
    }
    .sell_btn {
      width: 45%;
      height: 100%;
      background: rgb(68, 155, 84);
      width: 100%;
      height: 80%;
      background: #c4d600;
      color: #fff;
      // border-radius: 0 3rem 3rem 0 !important;
      border-radius: 3rem  !important;
      .top_sell {
        width: 100%;