From 732c30b33f782c2d2ebb62eacda2fb7a453a7ecd Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Sat, 31 Jan 2026 11:01:45 +0800
Subject: [PATCH] 1

---
 src/page/kline/index.vue |  128 +++++++++++++++++++++++++++++++-----------
 1 files changed, 94 insertions(+), 34 deletions(-)

diff --git a/src/page/kline/index.vue b/src/page/kline/index.vue
index 407ea4d..e5f51b5 100644
--- a/src/page/kline/index.vue
+++ b/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%;

--
Gitblit v1.9.3