From 5ffc36a1db18d3112a9b50a9cf3953d7fcf21bae Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期二, 19 八月 2025 16:37:24 +0800
Subject: [PATCH] 更新

---
 项目代码/DP/src/views/indexs/station-four.vue |  355 ++++++++++++++++++++++------------------------------------
 1 files changed, 137 insertions(+), 218 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/DP/src/views/indexs/station-four.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/DP/src/views/indexs/station-four.vue"
index 768bd05..9b3167a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/DP/src/views/indexs/station-four.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/DP/src/views/indexs/station-four.vue"
@@ -1,237 +1,156 @@
-<!--
- * @Author: daidai
- * @Date: 2022-02-28 16:16:42
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-07-20 17:57:11
- * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
--->
 <template>
-  <ul class="user_Overview flex" v-if="pageflag">
-      <li class="user_Overview-item" style="color: #00fdfa">
-          <div class="user_Overview_nums allnum ">
-              <dv-digital-flop :config="onlineconfig" style="width:100%;height:100%;" />
-          </div>
-          <p>10鍙锋淇彴</p>
-          <br>
-          <p>{{stationstate[9].station_state}}</p>
-      </li>
-      <li class="user_Overview-item" style="color: #07f7a8">
-          <div class="user_Overview_nums online">
-              <dv-digital-flop :config="config" style="width:100%;height:100%;" />
-          </div>
-          <p>11鍙锋淇彴</p>
-          <br>
-          <p>{{stationstate[10].station_state}}</p>
-      </li>
-      <li class="user_Overview-item" style="color: #e3b337">
-          <div class="user_Overview_nums offline">
-              <dv-digital-flop :config="offlineconfig" style="width:100%;height:100%;" />
-
-          </div>
-          <p>12鍙锋淇彴</p>
-          <br>
-          <p>{{stationstate[11].station_state}}</p>
-      </li>
-  </ul>
-  <Reacquire v-else @onclick="getData" line-height="200px">
-      閲嶆柊鑾峰彇
-  </Reacquire>
+  <div class="table-container">
+    <table class="data-table">
+      <thead>
+        <tr>
+          <th v-for="(header, index) in headers" :key="index">
+            {{ header }}
+          </th>
+        </tr>
+      </thead>
+      <tbody ref="tableBody">
+        <tr v-for="(row, rowIndex) in visibleData" :key="rowIndex">
+          <td v-for="(cell, cellIndex) in row" :key="cellIndex">
+            {{ cell }}
+          </td>
+        </tr>
+      </tbody>
+    </table>
+    <div v-if="loading" class="loading">鍔犺浇涓�...</div>
+    <div v-if="error" class="error">{{ error }}</div>
+  </div>
 </template>
 
 <script>
-import { currentGET } from 'api/modules'
-import {Floorfault} from "@/api/http.js"
-let style = {
-  fontSize: 24
-}
+import axios from 'axios';
+
 export default {
   data() {
-      return {
-          options: {},
-          stationstate:[],
-          userOverview: {
-              alarmNum: 2,
-              offlineNum: 3,
-              onlineNum: 5,
-              totalNum: 10,
-          },
-          pageflag: true,
-          timer: null,
-          config: {
-              number: [100],
-              content: '{nt}',
-              style: {
-                  ...style,
-                  // stroke: "#00fdfa",
-                  fill: "#00fdfa",
-              },
-          },
-          onlineconfig: {
-              number: [0],
-              content: '{nt}',
-              style: {
-                  ...style,
-                  // stroke: "#07f7a8",
-                  fill: "#07f7a8",
-              },
-          },
-          offlineconfig: {
-              number: [0],
-              content: '{nt}',
-              style: {
-                  ...style,
-                  // stroke: "#e3b337",
-                  fill: "#e3b337",
-              },
-          },
-      };
-  },
-  filters: {
-      numsFilter(msg) {
-          return msg || 0;
-      },
+    return {
+      headers: ['杞﹀瀷', '杞瀷', '鏁伴噺'],
+      tableData: [], // 瀛樺偍API杩斿洖鐨勬墍鏈夋暟鎹�
+      visibleData: [], // 褰撳墠鏄剧ず鐨勬暟鎹�
+      loading: false,
+      error: null,
+      currentIndex: 0, // 褰撳墠鏄剧ず鏁版嵁鐨勮捣濮嬬储寮�
+      visibleRows: 12, // 姣忔鏄剧ず鐨勮鏁�
+      scrollInterval: null, // 婊氬姩瀹氭椂鍣�
+      scrollSpeed:  5000 // 婊氬姩閫熷害(姣)
+    }
   },
   created() {
-      this.getData()
+    this.fetchData();
   },
   mounted() {
+    this.startAutoScroll();
   },
   beforeDestroy() {
-      this.clearData()
-
+    this.stopAutoScroll();
   },
   methods: {
-      clearData() {
-          if (this.timer) {
-              clearInterval(this.timer)
-              this.timer = null
-          }
-      },
-      async getData() {
-          this.pageflag = true;
-          // currentGET("big2").then((res) => {
-          //     if (!this.timer) {
-          //         console.log("璁惧鎬昏2", res);
-          //     }
-          //     if (res.success) {
-          //         this.userOverview = res.data;
-          //            this.onlineconfig = {
-          //             ...this.onlineconfig,
-          //             number: [1]
-          //         }
-          //         this.config = {
-          //             ...this.config,
-          //             number: [7]
-          //         }
-          //         this.offlineconfig = {
-          //             ...this.offlineconfig,
-          //             number: [4]
-          //         }
-          //         this.laramnumconfig = {
-          //             ...this.laramnumconfig,
-          //             number: [10]
-          //         }
-          //         this.switper();  
-          //     } else {
-          //         this.pageflag = false;
-          //         this.$Message.warning(res.msg);
-          //     }
-          // });
-                  let rep = await Floorfault((a)=>{
-                  });
-                  this.stationstate=rep;
-                     this.onlineconfig = {
-                      ...this.onlineconfig,
-                      number: [rep[9].station_qty]
-                  }
-                  this.config = {
-                      ...this.config,
-                      number: [rep[10].station_qty]
-                  }
-                  this.offlineconfig = {
-                      ...this.offlineconfig,
-                      number: [rep[11].station_qty]
-                  }
-                  this.switper(); 
-      },
-      //杞
-      switper() {
-          if (this.timer) {
-              return
-          }
-          let looper = (a) => {
-              this.getData()
-          };
-          this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
-      },
-  },
-};
-</script>
-<style lang='scss' scoped>
-.user_Overview {
-  li {
-      flex: 1;
-
-      p {
-          text-align: center;
-          height: 16px;
-          font-size: 16px;
+    fetchData() {
+      this.loading = true;
+      axios.post("http://127.0.0.1:5000/api/Dt_WheelsStock/InventoryStatistics", null)
+        .then((response) => {
+          this.tableData = [];
+          response.data.data.slice(25, 36).forEach(item => {
+            this.tableData.push([
+              item.wheels_CarType,
+              item.wheels_ldxh,
+              item.count
+            ]);
+          });
+          this.updateVisibleData();
+          this.loading = false;
+        })
+        .catch((error) => {
+          console.error("璇锋眰澶辫触:", error);
+          this.tableData = [
+            ['鏆傛棤鏁版嵁', '鏆傛棤鏁版嵁', '鏆傛棤鏁版嵁'],
+          ];
+          this.error = "鏁版嵁鍔犺浇澶辫触";
+          this.loading = false;
+        });
+    },
+    startAutoScroll() {
+      this.stopAutoScroll(); // 鍏堝仠姝㈠凡鏈夌殑瀹氭椂鍣�
+      this.scrollInterval = setInterval(() => {
+        if (this.tableData.length > this.visibleRows) {
+          this.currentIndex = (this.currentIndex + 1) % this.tableData.length;
+          this.updateVisibleData();
+        }
+      }, this.scrollSpeed);
+    },
+    stopAutoScroll() {
+      if (this.scrollInterval) {
+        clearInterval(this.scrollInterval);
+        this.scrollInterval = null;
       }
-
-      .user_Overview_nums {
-          width: 100px;
-          height: 100px;
-          text-align: center;
-          line-height: 100px;
-          font-size: 22px;
-          margin: 50px auto 30px;
-          background-size: cover;
-          background-position: center center;
-          position: relative;
-
-          &::before {
-              content: '';
-              position: absolute;
-              width: 100%;
-              height: 100%;
-              top: 0;
-              left: 0;
-          }
-
-          &.bgdonghua::before {
-              animation: rotating 14s linear infinite;
-          }
+    },
+    updateVisibleData() {
+      if (this.tableData.length === 0) return;
+      
+      // 鑾峰彇褰撳墠鍙鐨勬暟鎹�
+      const endIndex = this.currentIndex + this.visibleRows;
+      if (endIndex <= this.tableData.length) {
+        this.visibleData = this.tableData.slice(this.currentIndex, endIndex);
+      } else {
+        // 澶勭悊寰幆婊氬姩
+        const firstPart = this.tableData.slice(this.currentIndex);
+        const secondPart = this.tableData.slice(0, endIndex - this.tableData.length);
+        this.visibleData = [...firstPart, ...secondPart];
       }
-
-      .allnum {
-
-          // background-image: url("../../assets/img/left_top_lan.png");
-          &::before {
-              background-image: url("../../assets/img/left_top_lan.png");
-
-          }
-      }
-
-      .online {
-          &::before {
-              background-image: url("../../assets/img/left_top_lv.png");
-
-          }
-      }
-
-      .offline {
-          &::before {
-              background-image: url("../../assets/img/left_top_huang.png");
-
-          }
-      }
-
-      .laramnum {
-          &::before {
-              background-image: url("../../assets/img/left_top_hong.png");
-
-          }
-      }
+    }
   }
 }
+</script>
+
+<style scoped>
+.table-container {
+  width: 100%;
+  overflow-x: auto;
+  position: relative;
+  min-height: 200px;
+  max-height: 700px; /* 闄愬埗瀹瑰櫒楂樺害 */
+  overflow-y: hidden; /* 闅愯棌鍨傜洿婊氬姩鏉� */
+}
+
+.data-table {
+  width: 100%;
+  border-collapse: collapse;
+  margin: 20px 0;
+  font-family: Arial, sans-serif;
+}
+
+.data-table th {
+  font-weight: bold;
+  padding: 12px 15px;
+  text-align: left;
+  border-bottom: 2px solid #c5c5c5;
+
+  position: sticky;
+  top: 0;
+}
+
+.data-table td {
+  padding: 10px 15px;
+  height: 25px;
+  border-bottom: 1px solid #696969;
+}
+
+
+.loading, .error {
+  padding: 20px;
+  text-align: center;
+  color: #666;
+}
+
+.error {
+  color: #f56c6c;
+}
+
+/* 娣诲姞骞虫粦婊氬姩鏁堟灉 */
+.data-table tbody {
+  transition: transform 1s ease-in-out;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3