From e713b378b01d189f972cfb5b9eae749ee95a8b51 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期六, 29 十月 2022 13:48:00 +0800
Subject: [PATCH] 1.解决两个账号登录,是否被挤掉的问题

---
 src/views/kb/cgdd.vue |  320 +++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 227 insertions(+), 93 deletions(-)

diff --git a/src/views/kb/cgdd.vue b/src/views/kb/cgdd.vue
index 6f1e00f..3c48a08 100644
--- a/src/views/kb/cgdd.vue
+++ b/src/views/kb/cgdd.vue
@@ -3,14 +3,19 @@
     <div class="kb_dashboard">
       <div class="kb_header">
         <div class="flex_c_c" style="letter-spacing: 3px;margin-left: 1px;">
-          閲囪喘璁㈠崟璺熻釜绠$悊鐪嬫澘
+          閲囪喘璺熻釜鐪嬫澘
         </div>
         <div class="kb_headerPic" />
         <div class="kb_headTime">
           <span>{{ headTime }}</span>
         </div>
       </div>
-
+      <MarqueeTips
+        :content="MarqueeTipsContent"
+        class="MarqueeTipsContentClass"
+        style="top:100px"
+        :speed="180"
+      />
       <div class="kb_content">
         <div class="kb_left">
           <!-- 1-->
@@ -19,17 +24,17 @@
               <div class="content01">
                 <div class="pic01" />
                 <div class="number">{{ purchaseLeftTopData.ThisMonthPurchaseArrivalOrderCont }}</div>
-                <div class="text">鏈湀閲囪喘鍗曟暟</div>
+                <div class="text">鏈湀閲囪喘璁㈠崟鏁�</div>
               </div>
               <div class="content01">
                 <div class="pic01" />
                 <div class="number">{{ purchaseLeftTopData.ThisMonthPurchaseOrderCont }}</div>
-                <div class="text">鏈湀杩涜揣鍗曟暟</div>
+                <div class="text">鏈湀鍒拌揣鍗曟暟</div>
               </div>
               <div class="content01">
                 <div class="pic01" />
                 <div class="number">{{ purchaseLeftTopData.ThisMonthWareHouseOrderCont }}</div>
-                <div class="text">鏈湀鍏ュ簱鍗曟暟</div>
+                <div class="text">鏈湀閲囪喘鍏ュ簱鍗曟暟</div>
                 <!--                <div id="pie01" ref="pie01" class="pie01" />-->
                 <!--                <div class="text" style="margin-top: -10px">褰撴湀寤舵湡鍗犳瘮</div>-->
               </div>
@@ -39,7 +44,7 @@
           <!-- 2-->
           <div class="kb_left_bottom kb_pd10">
             <div class="kb_left_bottom_content">
-              <div class="content_head">鎴戞槸鏍囬锛�</div>
+              <div class="content_head kb_title_text">閲囪喘鍒拌揣璺熻釜 <div style="margin-left: 30px">{{ number1 }} 鍗�</div></div>
               <div class="content_body">
                 <el-table
                   ref="tableData"
@@ -58,42 +63,71 @@
                   <el-table-column
                     prop="PurchaseOrder"
                     label="閲囪喘璁㈠崟"
-                    width="163"
-                  />
+                    width="203"
+                  >
+                    <template slot-scope="{row}">
+                      <div class="ellipsis">{{ row.PurchaseOrder }}</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="suppername"
                     label="渚涘簲鍟�"
                     width="163"
-                  />
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.suppername" class="ellipsis">{{ row.suppername }}</div>
+                      <div v-else />
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="username"
                     label="閲囪喘鍛�"
-                    width="68"
-                  />
-                  <el-table-column
-                    prop="partcode"
-                    label="浜у搧缂栫爜"
-                    width="84"
-                  />
+                    width="78"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.username">{{ row.username }}</div>
+                      <div v-else>/</div>
+                    </template>
+                  </el-table-column>
+                  <!--                  <el-table-column-->
+                  <!--                    prop="partcode"-->
+                  <!--                    label="浜у搧缂栫爜"-->
+                  <!--                    width="108"-->
+                  <!--                  />-->
                   <el-table-column
                     prop="partname"
                     label="浜у搧鍚嶇О"
-                    width="168"
-                  />
-                  <el-table-column
-                    prop="partspec"
-                    label="瑙勬牸鍨嬪彿"
-                    width="84"
-                  />
+                    width="175"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div>
+                      <div v-else />
+                    </template>
+                  </el-table-column>
+                  <!--                  <el-table-column-->
+                  <!--                    prop="partspec"-->
+                  <!--                    label="瑙勬牸鍨嬪彿"-->
+                  <!--                    width="130"-->
+                  <!--                  >-->
+                  <!--                    <template slot-scope="{row}">-->
+                  <!--                      <div v-if="row.partspec" class="ellipsis">{{ row.partspec }}</div>-->
+                  <!--                      <div v-else>/</div>-->
+                  <!--                    </template>-->
+                  <!--                  </el-table-column>-->
                   <el-table-column
                     prop="quantity"
                     label="璁㈠崟鏁伴噺"
-                    width="84"
-                  />
+                    width="94"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.quantity">{{ parseFloat(row.quantity) }}</div>
+                      <div v-else>0</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="checktype"
                     label="妫�楠岀姸鎬�"
-                    width="84"
+                    width="94"
                   >
                     <template slot-scope="{row}">
                       <div v-if="row.checktype===null">鏈楠�</div>
@@ -103,39 +137,47 @@
                   <el-table-column
                     prop="checkuser"
                     label="妫�楠屼汉鍛�"
-                    width="84"
+                    width="94"
                   />
                   <el-table-column
                     prop="quantity1"
                     label="宸叉敹鏁伴噺"
-                    width="84"
-                  />
-                  <el-table-column
-                    label="鏈敹鏁伴噺"
-                    width="84"
+                    width="94"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ parseFloat(row.quantity- row.quantity1) }}</div>
+                      <div v-if="row.quantity1">{{ parseFloat(row.quantity1) }}</div>
+                      <div v-else>0</div>
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    label="鏈敹鏁伴噺"
+                    width="94"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.quantity- row.quantity1">{{ parseFloat(row.quantity- row.quantity1) }}</div>
+                      <div v-else>0</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="acceptDate"
                     label="棰勮浜ゆ湡"
-                    width="84"
+                    width="115"
                   >
                     <template slot-scope="{row}">
-                      <div>{{ row.acceptDate.substring(5, 10) }}</div>
+                      <div v-if="row.acceptDate">{{ row.acceptDate.substring(0, 10) }}</div>
+                      <div v-else>/</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="warning"
                     label="寤舵湡澶╂暟"
-                    width="84"
+                    width="114"
                   >
                     <template slot-scope="{row}">
                       <div v-if="parseFloat(row.warning)<0" style="color: red">{{ Math.abs(parseFloat(row.warning)) }}</div>
-                      <div v-else-if="row.warning===null">0</div>
-                      <div v-else>{{ row.warning }}</div>
+                      <div v-else-if="row.warning===null||row.warning===''||row.warning===0">0</div>
+                      <div v-else-if="parseFloat(row.warning)>3">{{ row.warning }}</div>
+                      <div v-else-if="parseFloat(row.warning)>0&&parseFloat(row.warning)<=3" style="color:yellow;">{{ row.warning }}</div>
                     </template>
                   </el-table-column>
                 </el-table>
@@ -146,7 +188,7 @@
         <div class="kb_right kb_pd10">
           <div class="kb_right_top kb_pd10">
             <div class="kb_right_top_content">
-              <div class="content_head">渚涘簲鍟嗗欢鏈熶氦璐ф帓琛岋細</div>
+              <div class="content_head kb_title_text">渚涘簲鍟嗗欢鏈熶氦璐ф帓琛�</div>
               <div class="content_body">
                 <el-table
                   ref="tableDataRank"
@@ -155,15 +197,16 @@
                   :header-cell-style="headerCellStyle"
                   :cell-style="cellStyle"
                   :row-class-name="tableRowClassName"
-                  height="923"
+                  height="865"
                 >
                   <el-table-column
                     type="index"
                     label="搴忓彿"
-                    width="100"
+                    width="70"
                   >
                     <template slot-scope="{row}">
                       <div>NO.{{ row.index }}</div>
+                      <!--                      <div>NO.100</div>-->
                     </template>
                   </el-table-column>
                   <!--                  <el-table-column-->
@@ -174,17 +217,26 @@
                   <el-table-column
                     prop="suppercode"
                     label="渚涘簲鍟嗙紪鐮�"
-                    width="145"
-                  />
+                    width="130"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.suppercode" class="ellipsis">{{ row.suppercode }}</div>
+                      <div v-else />
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="suppername"
-                    width="163"
+                    width="283"
                     label="渚涘簲鍟嗗悕绉�"
-                  />
+                  >
+                    <template slot-scope="{row}">
+                      <div class="ellipsis">{{ row.suppername }}</div>
+                    </template>
+                  </el-table-column>
                   <el-table-column
                     prop="cont"
-                    label="鏁伴噺"
-                    width="125"
+                    label="娆℃暟"
+                    width="50"
                   />
                 </el-table>
               </div>
@@ -202,84 +254,152 @@
 import { bar02, loadEcharts, pie01 } from '@/utils/myEcharts'
 import * as echarts from 'echarts'
 import { PurchaseLeftBottom, PurchaseLeftTop, PurchaseRight } from '@/api/dzkb'
+import MarqueeTips from 'vue-marquee-tips'
 
 export default {
   name: 'Index2',
+  components: {
+    MarqueeTips
+  },
   data() {
     return {
+      onLine: navigator.onLine, // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
+
       headTime: '',
 
       purchaseLeftTopData: [],
       tableData: [],
-      tableDataRank: []
+      tableDataRank: [],
 
+      number1: '',
+
+      MarqueeTipsContent: '', // 鍏憡
+      speed: 100, // 鍏憡鎾斁鐨勯�熷害
+
+      PurchaseLeftTop: null,
+      PurchaseLeftBottom: null,
+      PurchaseRight: null
     }
   },
 
   created() {
     setInterval(this.getNowTime, 1000)
+
+    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+    setInterval(() => {
+      window.location.reload()
+    }, 1000 * 60 * 120)
   },
   mounted() {
-    this.getPurchaseLeftTop()
-    this.getPurchaseLeftBottom()
-    this.getPurchaseRight()
+    window.addEventListener('online', this.updateOnlineStatus)
+    window.addEventListener('offline', this.updateOnlineStatus)
+    this.updateOnlineStatus({ type: this.onLine ? 'online' : 'offline', isFirst: true })
+  },
+  beforeDestroy() {
+    window.removeEventListener('online', this.updateOnlineStatus)
+    window.removeEventListener('offline', this.updateOnlineStatus)
   },
   methods: {
+    // 鏇存柊缃戠粶鐘舵��
+    updateOnlineStatus(e) {
+      if (e.isFirst) {
+        this.getPurchaseLeftTop()
+        this.getPurchaseLeftBottom()
+        this.getPurchaseRight()
 
+        // this.getMarqueeTipsContent()
+      } else {
+        const loading = this.$loading({
+          lock: true,
+          text: '鏂綉浜嗭紝姝e湪鎷煎懡鑱旂綉涓紝璇锋鏌ョ綉缁滄槸鍚︽甯�...',
+          spinner: 'el-icon-loading',
+          customClass: 'osloading',
+          background: 'rgba(0, 0, 0, 0.7)'
+        })
+        const { type } = e
+        this.onLine = type === 'online'
+        if (this.onLine) {
+          this.getPurchaseLeftTop()
+          this.getPurchaseLeftBottom()
+          this.getPurchaseRight()
+          // this.getMarqueeTipsContent()
+          loading.close()
+          this.$message.success('缃戠粶杩炴帴鎴愬姛锛�')
+        } else {
+          clearInterval(this.PurchaseLeftTop)
+          clearInterval(this.PurchaseLeftBottom)
+          clearInterval(this.PurchaseRight)
+          this.$message.error('缃戠粶鎺夌嚎锛岃鍏虫敞缃戠粶鐘舵�侊紒')
+        }
+      }
+    },
+
+    // 鑾峰彇鍏憡
+    getMarqueeTipsContent() {
+      // this.MarqueeTipsContent = '鍚勪綅鍛樺伐浠細鏍规嵁涓婄骇鐨勯�氱煡锛岀粨鍚堟垜浼佸疄闄呮儏鍐碉紝鐜板皢20xx骞寸殑鍏冩棪鏀惧亣閫氱煡濡備笅锛氫竴銆�1鏈�1鏃ヨ嚦1鏈�3鏃ユ斁鍋囪皟浼戯紝鍏�3澶┿��1鏈�4鏃ユ寮忎笂鐝�備簩銆佽妭鍋囨棩鏈熼棿锛屽悇鐝粍瑕佷弗鏍艰惤瀹炰笂绾х殑閲嶈鎸囩ず绮剧锛屾寜鐓т笂绾х殑鍏蜂綋瑕佹眰锛岃鐪熸姄濂借惤瀹炶妭鏃ユ湡闂村�肩彮澶囧嫟宸ヤ綔锛岀‘淇濊妭鏃ユ湡闂翠紒涓氬悇椤瑰伐浣滄甯歌繍杞�倄x浼佷笟20xx骞�12鏈�28鏃�'
+      // const spance = ' '.padStart(this.MarqueeTipsContent.length * 2, ' ')
+      // this.MarqueeTipsContent = this.MarqueeTipsContent + spance
+      // this.speed = this.MarqueeTipsContent.length / 10
+    },
     getPurchaseLeftTop() {
       PurchaseLeftTop().then(res => {
         this.purchaseLeftTopData = res.data[0]
-        console.log(this.purchaseLeftTopData)
+        // console.log(this.purchaseLeftTopData)
       })
-      setInterval(() => {
+      this.PurchaseLeftTop = setInterval(() => {
         PurchaseLeftTop().then(res => {
           this.purchaseLeftTopData = res.data[0]
         })
       }, 1000 * 6)
     },
-
     getPurchaseLeftBottom() {
       PurchaseLeftBottom().then(res => {
         this.tableData = res.data
+        this.number1 = this.tableData.length
+
+        const divData = this.$refs.tableData.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        this.PurchaseLeftBottom = setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          divData.scrollTop += 1
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            PurchaseLeftBottom().then(res => {
+              this.tableData = res.data
+              this.number1 = this.tableData.length
+              if (this.tableData.length > 14) {
+                clearInterval(this.PurchaseLeftBottom)
+                this.getPurchaseLeftBottom()
+              }
+            })
+          }
+        }, this.tableData.length <= 14 ? 1000 * 3 : 100)
       })
-
-      const divData = this.$refs.tableData.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
-        divData.scrollTop += 1
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          PurchaseLeftBottom().then(res => {
-            this.tableData = res.data
-          })
-        }
-      }, this.tableData.length <= 14 ? 1000 * 6 : 100)
     },
-
     getPurchaseRight() {
       PurchaseRight().then(res => {
         this.tableDataRank = res.data
+        const divData = this.$refs.tableDataRank.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        this.PurchaseRight = setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          divData.scrollTop += 1
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            PurchaseRight().then(res => {
+              this.tableDataRank = res.data
+              if (this.tableDataRank.length > 21) {
+                clearInterval(this.PurchaseRight)
+                this.getPurchaseRight()
+              }
+            })
+          }
+        }, this.tableDataRank.length <= 21 ? 1000 * 3 : 100)
       })
-
-      const divData = this.$refs.tableDataRank.bodyWrapper
-      // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
-      setInterval(() => {
-        // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
-        // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
-        divData.scrollTop += 1
-        // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
-        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
-          // 閲嶇疆table璺濈椤堕儴璺濈
-          divData.scrollTop = 0
-          PurchaseRight().then(res => {
-            this.tableDataRank = res.data
-          })
-        }
-      }, this.tableDataRank.length <= 22 ? 1000 * 6 : 100)
     },
 
     tableRowClassName({ row, rowIndex }) {
@@ -335,7 +455,8 @@
 </script>
 
 <style scoped lang="scss">
-$kbBorderColor: #09d8f2;
+//$kbBorderColor: #09d8f2;
+$kbBorderColor: rgba(9,216,242,0.4);
 
 .kb_content {
   display: flex;
@@ -354,11 +475,12 @@
       height: 345px;
       display: flex;
       flex-direction: column;
-      justify-content: space-around;
+      //justify-content: space-around;
+      justify-content: flex-end;
 
       .kb_left_top_block {
         width: 100%;
-        height: 267px;
+        height: 237px;
         display: flex;
         //border: 1px solid rgba(255, 255, 255, 0.6);
         justify-content: space-around;
@@ -384,10 +506,12 @@
           .number {
             margin-top: -50px;
             font-size: 18px;
+            font-size: 20px;
           }
 
           .text{
             margin-top: 50px;
+            font-size: 20px;
           }
         }
       }
@@ -403,8 +527,10 @@
         flex-direction: column;
 
         .content_head {
+          display: flex;
+          color: #00ffff;
           line-height: 20px;
-          font-size: 18px;
+          //font-size: 18px;
           margin-bottom: 10px;
           margin-top: -10px;
         }
@@ -421,7 +547,8 @@
     height: 100%;
 
     .kb_right_top {
-      height: 964px;
+      height: 906px;
+      margin-top: 58px;
       width: 100%;
 
       .kb_right_top_content {
@@ -430,8 +557,9 @@
         flex-direction: column;
 
         .content_head {
+          color: #00ffff;
           line-height: 20px;
-          font-size: 18px;
+          //font-size: 18px;
           margin-bottom: 10px;
           margin-top: -10px;
         }
@@ -457,4 +585,10 @@
   /* width: 0;瀹藉害涓�0鏆楄棌 */
   width: 0;
 }
+
+::v-deep .cell {
+  padding: 0 !important;
+  font-size: 18px;
+}
+
 </style>

--
Gitblit v1.9.3