From dc1879fd0713eed48b2c75af5f29a1085291d276 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 07 五月 2024 14:40:55 +0800
Subject: [PATCH] 1.文件替换

---
 src/views/kanbanManager/zhkb.vue |  906 ++++++++++++++++++++++----------------------------------
 1 files changed, 353 insertions(+), 553 deletions(-)

diff --git a/src/views/kanbanManager/zhkb.vue b/src/views/kanbanManager/zhkb.vue
index ff39bfe..4c34ef1 100644
--- a/src/views/kanbanManager/zhkb.vue
+++ b/src/views/kanbanManager/zhkb.vue
@@ -1,278 +1,126 @@
 <template>
   <div>
-    <div class="kb_dashboard">
-      <!--    鏄熺┖鑳屾櫙-->
-      <div ref="starsRef" class="stars">
-        <div v-for="(item, index) in starsCount" :key="index" class="star" />
-      </div>
+    <div class="kb_dashboard" style="display:flex;flex-direction: column;justify-content: space-between">
+
+      <div class="kb_backgroundCustom" />
 
       <div class="kb_header">
-        <div class="flex_c_c kb_header_text">
-          <div id="topBarLeft" style="width:600px;height:100%" />
-          杞﹂棿缁煎悎鏁板瓧鍖栫湅鏉�
-          <div id="topBarRight" style="width:600px;height:100%;transform:rotate(180deg);" />
+        <div class="kb_headTime" style="top: 35px;left:  20px">
+          <span>姘稿悍甯傚法绔嬮槻鎶ょ敤鍝佹湁闄愬叕鍙�</span>
         </div>
 
-        <div class="kb_headTime" style="left: 85px">
-          <span>娴欐睙鏂板嚡杩暟瀛楃鎶�鑲′唤鏈夐檺鍏徃</span>
+        <div class="kb_headTime kb_header_text" style="top: 35px;left:  800px">
+          <span>杞﹂棿缁煎悎鏁板瓧鍖栫湅鏉�</span>
         </div>
 
-        <div class="kb_headTime">
+        <div class="kb_headTime" style="top: 35px;right:  25px">
           <span>{{ headTime }}</span>
         </div>
       </div>
-      <div style="display: flex;justify-content: space-between;padding:0 20px 20px 20px">
-        <!--       宸﹁竟-->
-        <div style="width: 1400px ;height: 969px;" class="flex_c_b">
-          <div>
+      <div
+        style=" padding:5px 20px 20px 20px;z-index:2;height: 940px;flex-direction: column;justify-content: space-between;"
+      >
+        <!--        涓婅竟-->
+        <div style="display: flex;justify-content: space-between">
+          <div style="width: 1000px;">
             <div class="smallTitle">
               <svg-icon icon-class="cxjg" class="svg_class" />
-              浜х嚎鍔犲伐涓换鍔�
+              鐢熶骇璁㈠崟(褰撴湀)
             </div>
-            <div class="lineContent horn">
-              <div v-for="item in lineContent3" :key="item.workcode" class="kb_left_top_block">
-                <div class="kb_block02 kb_pd10">
-                  <div>
-                    <div>閿�鍞鍗�:{{ item.saleordercode }}</div>
-                    <div class="kb_mt10">
-                      鍔犲伐鍗曞彿:{{ item.workcode }}
+            <div
+              class="lineContent horn"
+              style="height: 450px;display: flex;flex-direction: column;justify-content: space-between"
+            >
+              <div style="height: 180px;padding: 10px;display: flex;justify-content: space-around">
+                <div v-for="i in LeftTopData01" :key="i.wkshp_code" class="flex_c_s">
+                  <div class="all_block01 flex_c_s">
+                    <div class="flex_c_c all_block02">{{ i.wkshp_name }}</div>
+                    <div class="" style="display: flex;justify-content:space-between">
+                      <div class="all_block02 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
+                      <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.plan_qty }}</div>
                     </div>
-                    <div class="kb_mt10">
-                      浜у搧鍚嶇О:{{ item.partname }}
-                    </div>
-                    <div class="kb_mt10">
-                      浠诲姟鏁伴噺:{{ parseFloat(item.qty) }}
+                    <div class="" style="display: flex;justify-content:space-between">
+                      <div class="all_block02 flex_c_c" style="width: 49% ">瀹屽伐鏁�</div>
+                      <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.good_qty }}</div>
                     </div>
                   </div>
                 </div>
-                <div class="kb_block03 kb_pd10 ">
-                  <div v-if="item.children&&item.children.length>0" class="flex_s_c">
-                    <div
-                      v-for="(it,ind) in item.children"
-                      :key="ind"
-                      class="kb_block03_content flex_c_c"
-                    >
-                      <div>
-                        <div class="content01">{{ it.stepname }}</div>
-                      </div>
-                      <div class="content02Parent">
-                        <div class="content02">
-                          <div class="content02_1 ">浠诲姟</div>
-                          <div class="content02_2 borderTop ">{{ parseFloat(it.planqty) }}</div>
-                        </div>
-                        <div class="content02">
-                          <div class="content02_1 ">鍚堟牸</div>
-                          <div class="content02_2 borderTop ">{{ parseFloat(it.goodqty) }}</div>
-                        </div>
-                        <div class="content02" style="border-right: 0">
-                          <div class="content02_1 ">涓嶈壇</div>
-                          <div class="content02_2 borderTop ">{{ parseFloat(it.ngqty) }}</div>
-                        </div>
-                      </div>
-                    </div>
-                  </div>
-                  <div v-if="item.children&&item.children.length>0" class="kb_block03_02 flex_s_c">
-                    <div
-                      v-for="(it,ind) in item.children"
-                      :key="ind"
-                      class="kb_block03_02_content flex_c_c"
-                    >
-                      <div class="flex_c_c content01">
-                        <div
-                          v-if="it.status==='START'&&(parseFloat(it.ngqty)===0||it.ngqty==='')&&(parseFloat(it.goodqty)===0||it.goodqty==='')"
-                          class="circle"
-                          style="background-color: blue;"
-                        />
-                        <div
-                          v-else-if="it.status==='ALLO'&&(parseFloat(it.ngqty)===0||it.ngqty==='')&&(parseFloat(it.goodqty)===0||it.goodqty==='')"
-                          class="circle"
-                          style="background-color: rgb(255 255 255)"
-                        />
-                        <div
-                          v-else-if="parseFloat(it.ngqty)+parseFloat(it.goodqty)>=parseFloat(it.planqty)"
-                          class="circle"
-                        />
-                        <div v-else class="circleYellow" />
-                      </div>
-                    </div>
-                  </div>
 
-                </div>
+              </div>
+              <div style="height: 280px;">
+                <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />
               </div>
             </div>
-
           </div>
-          <div>
+          <div style="width: 850px;">
             <div class="smallTitle">
-              <svg-icon icon-class="cxmc" class="svg_class" />
-              浜х嚎鍔犲伐浠诲姟
+              <svg-icon icon-class="cggz" class="svg_class" />
+              閿�鍞鍗�(鏈�/瀛�)
             </div>
-            <div class="lineContent horn">
-              <el-table
-                ref="tableDataLeftBottomRef"
-                :data="tableDataLeftBottom"
-                class="tableData"
-                style="width: 100%;"
-                :header-cell-style="headerCellStyle"
-                :cell-style="cellStyle"
-                height="428"
-              >
-                <el-table-column
-                  prop="RowNum"
-                  label="搴忓彿"
-                  width="60"
-                />
+            <div
+              class="lineContent horn"
+              style="height: 450px;display: flex;flex-direction: column;justify-content: space-between"
+            >
+              <div style="height: 180px;padding: 10px;display: flex;justify-content: space-between">
 
-                <el-table-column
-                  prop="status"
-                  width="80"
-                  label="鐘舵��"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
-                    <div v-if="row.status==='START'">寮�宸�</div>
-                    <div v-if="row.status==='NEW'">鏂板伐鍗�</div>
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  prop="lm_date"
-                  label="娲惧彂鏃堕棿"
-                  width="120"
-                >
-                  <template slot-scope="{row}">
-                    <div>{{ row.lm_date.substring(0, 10) }}</div>
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  prop="saleOrderCode"
-                  label="閿�鍞鍗曞彿"
-                  width="170"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
-                    <div v-else>/</div>
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  prop="wo_code"
-                  label="鍔犲伐鍗曞彿"
-                  width="190"
-                />
-                <el-table-column
-                  prop="partname"
-                  label="浜у搧鍚嶇О"
-                  width="350"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div>
-                    <div v-else>/</div>
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  prop="plan_qty"
-                  label="浠诲姟鏁伴噺"
-                  width="105"
-                />
-                <el-table-column
-                  prop="good_qty"
-                  label="瀹屽伐鏁伴噺"
-                  width="105"
-                />
-                <el-table-column
-                  prop="ng_qty"
-                  label="涓嶈壇鏁伴噺"
-                  width="105"
-                />
-                <el-table-column
-                  label="瀹屾垚鐜�"
-                  width="105"
-                >
-                  <template slot-scope="{row}">
-                    <div>{{ parseFloat((row.good_qty * 100 / row.plan_qty).toFixed(2)) }}%</div>
-                  </template>
-                </el-table-column>
-                <!--                <el-table-column-->
+                <div v-for="i in RightTopData01" :key="i.Quarter" class="flex_c_s">
+                  <div class="all_block03 flex_c_s">
+                    <div class="flex_c_c all_block04">{{ i.Quarter }}</div>
+                    <div class="" style="display: flex;justify-content:space-between">
+                      <div class="all_block04 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
+                      <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.quantity }}</div>
+                    </div>
+                    <div class="" style="display: flex;justify-content:space-between">
+                      <div class="all_block04 flex_c_c" style="width: 49% ">鍑哄簱鏁�</div>
+                      <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.ouquantity }}</div>
+                    </div>
+                  </div>
+                </div>
 
-                <!--                  label="棰勮寮�濮�"-->
-                <!--                  width="140"-->
-                <!--                >-->
-                <!--                  <template slot-scope="{row}">-->
-                <!--                    <div>{{ row.planstartdate.substring(0, 10) }}</div>-->
-                <!--                  </template>-->
-                <!--                </el-table-column>-->
-                <!--                <el-table-column-->
-                <!--                  prop=""-->
-                <!--                  label="棰勮缁撴潫"-->
-                <!--                  width="140"-->
-                <!--                >-->
-                <!--                  <template slot-scope="{row}">-->
-                <!--                    <div>{{ row.planenddate.substring(0, 10) }}</div>-->
-                <!--                  </template>-->
-                <!--                </el-table-column>-->
-              </el-table>
+              </div>
+              <div style="height: 260px;">
+                <div id="all02" class="flex_c_c" style="width: 100%;height:100%;" />
+              </div>
             </div>
-
           </div>
         </div>
-        <!--        鍙宠竟-->
-        <div style="width: 450px;height: 969px;" class="flex_c_b">
-          <div>
+        <!--        涓嬭竟-->
+        <div style="display: flex;justify-content: space-between;margin-top: 15px;">
+          <div style="width: 1000px;">
             <div class="smallTitle">
-              <svg-icon icon-class="drwg" class="svg_class" />
-              褰撴棩瀹屽伐浜у搧鏁伴噺鎺掕
+              <svg-icon icon-class="blcs" class="svg_class" />
+              璐ㄩ噺涓嶈壇(杩戜竴鍛�)
             </div>
-            <div class="lineContent horn">
-              <el-table
-                ref="tableDataRightTopRef"
-                :data="tableDataRightTop"
-                class="tableData"
-                style="width: 100%;"
-                :header-cell-style="headerCellStyle"
-                :cell-style="cellStyle"
-                height="428"
-              >
-                <el-table-column
-                  type="index"
-                  label="搴忓彿"
-                  width="60"
-                />
-                <el-table-column
-                  prop="linename"
-                  width="125"
-                  label="浜х嚎"
-                />
-                <el-table-column
-                  prop="partname"
-                  width="160"
-                  label="浜у搧"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div>
-                    <div v-else>/</div>
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  prop="good_qty"
-                  label="鏁伴噺"
-                  width="90"
-                >
-                  <template slot-scope="{row}">
-                    <div>{{ parseFloat(row.good_qty) }}</div>
-                  </template>
-                </el-table-column>
-              </el-table>
-            </div>
+            <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
+              <div id="cjzl03" class="flex_c_c" style="width: 100%;height:100%" />
 
+            </div>
           </div>
-          <div>
+          <div style="width: 850px;">
             <div class="smallTitle">
-              <svg-icon icon-class="top5" class="svg_class" />
-              涓�鍛ㄤ笉鑹疶op5
+              <svg-icon icon-class="ckkc" class="svg_class" />
+              浠撳簱搴撳瓨
             </div>
-            <div class="lineContent horn">
-              <div id="bar01" class="flex_c_c" style="width: 100%;height:100%" />
-            </div>
+            <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
+              <div style="display: flex;justify-content: center;position: relative">
+                <div class="kb_center_block_children all_block05">
+                  <div style="font-size: 24px;">{{ parseFloat(RightBottom.Y) }}</div>
+                  <div class="box02" />
+                  <div>鍘熸潗鏂�</div>
+                </div>
+                <div class="kb_center_block_children all_block06">
+                  <div style="font-size: 24px;">{{ parseFloat(RightBottom.B) }}</div>
+                  <div class="box02" />
+                  <div>鍗婃垚鍝�</div>
+                </div>
+                <div class="kb_center_block_children all_block07">
+                  <div style="font-size: 24px;">{{ parseFloat(RightBottom.C) }}</div>
+                  <div class="box02" />
+                  <div>浜ф垚鍝�</div>
+                </div>
 
+              </div>
+            </div>
           </div>
         </div>
       </div>
@@ -282,228 +130,213 @@
 
 <script>
 import './kbCommon.css'
-import { bar02, kbTop, loadEcharts } from '@/utils/myEcharts'
+import { loadEcharts, all01, all02, cjzl03 } from '@/utils/myEcharts'
 import {
-  LineSearchBottomLeftData,
-  LineSearchBottomRightData,
-  LineSearchTopLeftData,
-  LineSearchTopRightData,
-  ShopSearch
+  WorkShopCompreLeftTop,
+  WorkShopCompreRightBottom,
+  WorkShopCompreRightTop,
+  WorkShopProduceBottomLeftData
 } from '@/api/kanbanManager'
-import { parseTime } from '@/utils'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
 
 export default {
   name: 'Cjsc',
   data() {
     return {
-      onLine: navigator.onLine, // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
-
       headTime: '',
       tableDataRightTop: [],
-      tableDataRightTopTemp: [],
-      tableDataLeftBottom: [],
-      tableDataLeftBottomTemp: [],
-      lineContent3: [],
-      ShopArr: [], // 杞﹂棿缂栫爜鏁扮粍
+      wkshopArr: [],
+      legendData: [],
 
-      starsCount: 800, // 鏄熸槦鏁伴噺
-      distance: 900 // 闂磋窛
+      LeftTopData01: [],
+      LeftTopData02: [],
+
+      RightTopData01: [],
+      RightTopData02: [],
+      cjzl03_xData: [],
+      cjzl03_yData: [],
+      RightBottom: {}
 
     }
   },
   created() {
     setInterval(this.getNowTime, 1000)
 
-    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+    // // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
     setInterval(() => {
       window.location.reload()
-    }, 1000 * 60 * 60 * 10)
+    }, 1000 * 60 * 120)
   },
   mounted() {
-    // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
-    window.addEventListener('online', this.updateOnlineStatus)
-    window.addEventListener('offline', this.updateOnlineStatus)
-    this.updateOnlineStatus({ type: this.onLine ? 'online' : 'offline', isFirst: true })
-
-    this.getTopBar()
-
-    this.getShopSearch()
-    this.setStarsRef()
-  },
-  beforeDestroy() {
-    window.removeEventListener('online', this.updateOnlineStatus)
-    window.removeEventListener('offline', this.updateOnlineStatus)
+    this.getAllApi()
   },
   methods: {
-    // 鏇存柊缃戠粶鐘舵��
-    updateOnlineStatus(e) {
-      if (e.isFirst) {
-        // console.log('x')
-      } 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) {
-          loading.close()
-          this.$message.success('缃戠粶杩炴帴鎴愬姛锛�')
-        } else {
-          this.$message.error('缃戠粶鎺夌嚎锛岃鍏虫敞缃戠粶鐘舵�侊紒')
+    async getAllApi() {
+      const res = await PrentOrganizationNoCompany()
+      this.wkshopArr = res.data
+
+      const temp = ['00401', '00402', '00501']
+
+      temp.forEach(i => {
+        const aa = this.wkshopArr.find(j => j.torg_code === i).torg_name
+        this.legendData.push(aa)
+      })
+
+      const res2 = await WorkShopCompreLeftTop({ wkshopcode: temp.join(',') })
+      for (const res2Key in res2.data.LeftTop) {
+        const data = {
+          good_qty: 0,
+          plan_qty: 0,
+          wkshp_code: '',
+          wkshp_name: ''
+        }
+        if (temp.includes(res2Key)) {
+          data.good_qty = res2.data.LeftTop[res2Key][0].good_qty
+          data.plan_qty = res2.data.LeftTop[res2Key][0].plan_qty
+          data.wkshp_code = res2.data.LeftTop[res2Key][0].wkshp_code
+          data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
+          this.LeftTopData01.push(data)
         }
       }
-    },
-    setStarsRef() {
-      const starNodes = Array.from(this.$refs.starsRef.children)
-      starNodes.forEach(item => {
-        const speed = 0.2 + Math.random() * 1
-        const thisDistance = this.distance + Math.random() * 300
-        item.style.transformOrigin = `0 0 ${thisDistance}px`
-        item.style.transform = `
-        translate3d(0,0,-${thisDistance}px)
-        rotateY(${Math.random() * 360}deg)
-        rotateX(${Math.random() * -50}deg)
-        scale(${speed},${speed})`
-      })
-    },
-    // 鑾峰彇杞﹂棿缂栫爜
-    async getShopSearch() {
-      const res1 = await ShopSearch()
-      if (res1.code === '200') {
-        this.ShopArr = []
-        res1.data.forEach(item => {
-          this.ShopArr.push(item.org_code)
-        })
-
-        if (this.ShopArr.length > 0) {
-          this.getShopSearchLine()
-          this.getRightRightData()
-          this.getLeftBottomData()
-          this.getEcharts()
+      for (const res2Key in res2.data.LeftBottom) {
+        const data = {
+          quantity: 0,
+          wkshp_code: '',
+          wkshp_name: ''
+        }
+        if (temp.includes(res2Key)) {
+          data.quantity = res2.data.LeftBottom[res2Key][0].quantity
+          data.plan_qty = res2.data.LeftBottom[res2Key][0].plan_qty
+          data.wkshp_code = res2.data.LeftBottom[res2Key][0].wkshp_code
+          data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
+          this.LeftTopData02.push(data)
         }
       }
-      if (this.ShopArr.length > 0) {
-        setInterval(() => {
-          this.ShopSearchTask = ShopSearch().then(res1 => {
-            if (res1.code === '200') {
-              this.ShopArr = []
-              res1.data.forEach(item => {
-                this.ShopArr.push(item.org_code)
-              })
-            }
-          })
-        }, 1000 * 60)
-      }
-    },
-    // 浜х嚎鍔犲伐涓换鍔�
-    getShopSearchLine() {
-      let length, count
-      LineSearchTopLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
-        this.lineContent = res.data
-        length = this.lineContent.length
-        count = Math.ceil(length / 3) // 闇�瑕佽疆鎾殑缁勬暟   3涓负涓�缁�
-        this.lineContent3 = this.lineContent.slice(0, 3)
-        this.number1 = this.lineContent.length
-      })
-
-      let start = 0
-      const timer = setInterval(() => {
-        if (Math.floor(start / 3) === count && count !== 0) {
-          start = 0
-          LineSearchTopLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
-            this.lineContent = res.data
-            length = this.lineContent.length
-            count = Math.ceil(length / 3) // 闇�瑕佽疆鎾殑缁勬暟   3涓负涓�缁�
-            this.lineContent3 = this.lineContent.slice(0, 3)
-
-            this.number1 = this.lineContent.length
-          })
-        } else if (count === 0) {
-          clearInterval(timer)
-          this.getShopSearchLine()
-        }
-        this.lineContent3 = this.lineContent.slice(start, start + 3)
-        start = start + 3
-      }, 1000 * 10)
-    },
-
-    // 鑾峰彇鍙充笂鏁版嵁 褰撴棩瀹屽伐浜у搧鏁伴噺鎺掕
-    getRightRightData() {
-      let startValue = 0 // 鍒濆鍊�
-      const scale = 10// 鍒诲害
-
-      LineSearchTopRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
-        this.tableDataRightTopTemp = res.data
-
-        this.tableDataRightTop = this.tableDataRightTopTemp.slice(startValue, startValue + scale)
-
-        const loop = Math.floor(this.tableDataRightTopTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
-        let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
-
-        const timer = setInterval(() => {
-          startValue = startValue + scale
-          this.tableDataRightTop = this.tableDataRightTopTemp.slice(startValue, startValue + scale)
-          if (nowLoop === loop) {
-            clearInterval(timer)
-            this.getRightRightData()
-          }
-
-          nowLoop++
-        }, 1000 * 10)
-      })
-    },
-    // 浜х嚎鍔犲伐浠诲姟  宸︿笅鏁版嵁
-    getLeftBottomData() {
-      let startValue = 0 // 鍒濆鍊�
-      const scale = 10// 鍒诲害
-
-      LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
-        this.tableDataLeftBottomTemp = res.data
-        this.tableDataLeftBottom = this.tableDataLeftBottomTemp.slice(startValue, startValue + scale)
-
-        const loop = Math.floor(this.tableDataLeftBottomTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
-        let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
-
-        const timer = setInterval(() => {
-          startValue = startValue + scale
-          this.tableDataLeftBottom = this.tableDataLeftBottomTemp.slice(startValue, startValue + scale)
-          nowLoop++ // 鏀惧湪杩欓噷鍙互浜嗭紝灏辩瓑寰呴浂鐐瑰嚑绉�
-          if (nowLoop === loop) {
-            clearInterval(timer)
-            this.getLeftBottomData()
-          }
-
-          // nowLoop++ //涔嬪墠鏀惧湪杩欓噷閫昏緫涓嶅锛岀浉宸簡涓�娆$殑寰幆锛岀浉褰撲簬澶氱瓑寰呬簡10绉�
-        }, 1000 * 10)
-      })
-    },
-
-    getEcharts() {
-      let dataArr = [30, 20, 20, 18, 10]
-      let titlenameArr = ['棰滆壊', '灏哄', '姘斿懗', '姣涘埡', '瑁傜棔']
-      LineSearchBottomRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
-        dataArr = res.data.map(i => i.cont)
-        titlenameArr = res.data.map(i => i.name)
-        loadEcharts('bar01', bar02(dataArr, titlenameArr))
-      })
+      loadEcharts('all01', all01(this.legendData, this.LeftTopData02))
 
       setInterval(() => {
-        LineSearchBottomRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
-          dataArr = res.data.map(i => i.cont)
-          titlenameArr = res.data.map(i => i.name)
-          loadEcharts('bar01', bar02(dataArr, titlenameArr))
+        WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }).then(res2 => {
+          this.LeftTopData01 = []
+          this.LeftTopData02 = []
+          for (const res2Key in res2.data.LeftTop) {
+            const data = {
+              good_qty: 0,
+              plan_qty: 0,
+              wkshp_code: '',
+              wkshp_name: ''
+            }
+            if (temp.includes(res2Key)) {
+              data.good_qty = res2.data.LeftTop[res2Key][0].good_qty
+              data.plan_qty = res2.data.LeftTop[res2Key][0].plan_qty
+              data.wkshp_code = res2.data.LeftTop[res2Key][0].wkshp_code
+              data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
+              this.LeftTopData01.push(data)
+            }
+          }
+          for (const res2Key in res2.data.LeftBottom) {
+            const data = {
+              quantity: 0,
+              wkshp_code: '',
+              wkshp_name: ''
+            }
+            if (temp.includes(res2Key)) {
+              data.quantity = res2.data.LeftBottom[res2Key][0].quantity
+              data.plan_qty = res2.data.LeftBottom[res2Key][0].plan_qty
+              data.wkshp_code = res2.data.LeftBottom[res2Key][0].wkshp_code
+              data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
+              this.LeftTopData02.push(data)
+            }
+          }
+          loadEcharts('all01', all01(this.legendData, this.LeftTopData02))
         })
-      }, 1000 * 10)
+      }, 1000 * 30)
+
+      const res3 = await WorkShopCompreRightTop()
+      res3.data.RightTop.forEach(i => {
+        this.RightTopData01.push({
+          Quarter: i.Quarter,
+          quantity: i.quantity,
+          ouquantity: i.ouquantity
+        })
+      })
+      res3.data.RightBottom.forEach(i => {
+        this.RightTopData02.push({
+          Month: i.Month + '鏈�',
+          quantity: i.quantity,
+          ouquantity: i.ouquantity
+        })
+      })
+      loadEcharts('all02', all02(this.RightTopData02))
+      setInterval(() => {
+        WorkShopCompreRightTop().then(res3 => {
+          this.RightTopData01 = []
+          this.RightTopData02 = []
+          res3.data.RightTop.forEach(i => {
+            this.RightTopData01.push({
+              Quarter: i.Quarter,
+              quantity: i.quantity,
+              ouquantity: i.ouquantity
+            })
+          })
+          res3.data.RightBottom.forEach(i => {
+            this.RightTopData02.push({
+              Month: i.Month + '鏈�',
+              quantity: i.quantity,
+              ouquantity: i.ouquantity
+            })
+          })
+          loadEcharts('all02', all02(this.RightTopData02))
+        })
+      }, 1000 * 40)
+
+      const res4 = await WorkShopProduceBottomLeftData({ wkshopcode: temp.join(',') })
+      this.cjzl03_xData = res4.data[temp[0]].map(i => i.click_date)
+      for (const res4Key in res4.data) {
+        if (temp.includes(res4Key)) {
+          const bb = res4.data[res4Key].map(i => i.count)
+          this.cjzl03_yData.push(bb)
+        }
+      }
+      loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
+      setInterval(() => {
+        WorkShopProduceBottomLeftData({ wkshopcode: temp.join(',') }).then(res4 => {
+          this.cjzl03_yData = []
+
+          this.cjzl03_xData = res4.data[temp[0]].map(i => i.click_date)
+          for (const res4Key in res4.data) {
+            if (temp.includes(res4Key)) {
+              const bb = res4.data[res4Key].map(i => i.count)
+              this.cjzl03_yData.push(bb)
+            }
+          }
+          loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
+        })
+      }, 1000 * 50)
+
+      const res5 = await WorkShopCompreRightBottom()
+      this.RightBottom = res5.data
+
+      setInterval(() => {
+        WorkShopCompreRightBottom().then(res5 => {
+          this.RightBottom = res5.data
+        })
+      }, 1000 * 60)
     },
-    // 鑾峰彇topEcharts
-    getTopBar() {
-      loadEcharts('topBarLeft', kbTop())
-      loadEcharts('topBarRight', kbTop())
+
+    // 鑾峰彇Echarts
+    getEcharts() {
+      // loadEcharts('cjzl01', cjzl01(this.cjzl01Data))
+
+      // loadEcharts('cjzl02_1', cjzl02(this.cjzl02_1Title, this.cjzl02_1Data))
+      // loadEcharts('cjzl02_2', cjzl02(this.cjzl02_2Title, this.cjzl02_2Data))
+      // loadEcharts('cjzl02_3', cjzl02(this.cjzl02_3Title, this.cjzl02_3Data))
+      // loadEcharts('cjzl02_4', cjzl02(this.cjzl02_4Title, this.cjzl02_4Data))
+      // loadEcharts('cjzl02_5', cjzl02(this.cjzl02_5Title, this.cjzl02_5Data))
+
+      // loadEcharts('cjzl04', cjzl04(this.legendData, this.cjzl04Data[0], this.cjzl04Data[1], this.cjzl04Data[2]))// 鍙充晶
+      // loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData))// 宸︿晶
     },
+
     // 鑾峰彇褰撳墠鏃堕棿
     getNowTime() {
       const dt = new Date()
@@ -522,24 +355,25 @@
     },
     headerCellStyle() {
       return {
-        backgroundColor: '#000',
+        backgroundColor: 'transparent ',
         padding: '10px 0',
         textAlign: 'center',
         color: '#07acc2',
         border: 'none',
-        fontSize: '18px'
+        fontSize: '20px'
       }
     },
     cellStyle() {
       return {
         padding: '7px 0',
         textAlign: 'center',
-        backgroundColor: '#000',
-        color: '#fff',
+        backgroundColor: 'transparent ',
+        color: '#c7e7ff',
         border: 'none',
-        fontSize: '18px'
+        fontSize: '20px'
       }
     }
+
   }
 
 }
@@ -548,9 +382,8 @@
 <style lang="scss" scoped>
 $main_color: #09d8f2;
 $color01: #00FFFF;
-
 .tableData {
-  background: #000;
+  background: transparent;
 }
 
 .el-table::before {
@@ -561,139 +394,106 @@
   color: $main_color;
 }
 
-.kb_left_top_block {
+.tableDataCell {
+  ::v-deep .cell {
+    padding: 0 2px;
+  }
+}
+
+::v-deep .el-table__body-wrapper::-webkit-scrollbar {
+  /* width: 0;瀹藉害涓�0鏆楄棌 */
+  width: 0;
+  background: transparent;
+}
+
+::v-deep .el-table th,
+::v-deep .el-table tr,
+::v-deep .el-table td {
+  background-color: transparent;
+}
+
+.all_block01 {
+  width: 237px;
+  height: 180px;
+}
+
+.all_block02 {
   width: 100%;
-  height: 143px;
+  height: 49px;
+  background: rgba(9, 216, 242, 0.1);
+}
+
+.all_block03 {
+  width: 199px;
+  height: 180px;
+}
+
+.all_block04 {
+  width: 100%;
+  height: 49px;
+  background: rgba(9, 216, 242, 0.1);
+}
+
+.kb_center_block_children {
+  height: 180px;
+  //border: 1px solid $kbBorderColor;
+  width: 240px;
   display: flex;
-  font-size: 16px;
-  border-bottom: 1px solid $main_color;
-  justify-content: flex-start;
+  z-index: 2;
+  justify-content: space-around;
+  align-items: center;
+  flex-direction: column;
+  margin: 10px;
+  font-size: 22px;
 
-  .kb_block02 {
-    width: 304px;
-    display: flex;
-    align-items: center;
-    border-right: 1px solid $main_color;
-  }
+  .box02 {
+    background: url("../../assets/images/box02.png") no-repeat;
+    transform: scale(1.5);
+    width: 145px;
+    height: 84px;
 
-  .kb_block03 {
-    width: 1020px;
-    font-size: 16px;
-    display: flex;
-    flex-direction: column;
-    border-radius: 5px;
-
-    .kb_block03_content {
-      border: 1px solid $main_color;
-      width: 180px;
-      height: 80px;
-      margin-right: 15px;
-      display: flex;
-      flex-direction: column;
-
-      .content01 {
-        height: 30px;
-        width: 100%;
-        border-bottom: 1px solid $main_color;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-      }
-
-      .content02Parent {
-        display: flex;
-
-        .content02 {
-          width: 60px;
-          border-right: 1px solid $main_color;
-
-          .content02_1 {
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            height: 25px;
-          }
-
-          .content02_2 {
-            height: 25px;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-          }
-
-          .borderTop {
-            border-top: 1px solid $main_color;
-          }
-        }
-      }
-
-    }
-  }
-
-  .kb_block03_02 {
-    margin-top: 15px;
-    display: flex;
-
-    .kb_block03_02_content {
-      width: 180px;
-      margin-right: 15px;
-
-      .content01 {
-        .circle {
-          width: 26px;
-          height: 26px;
-          background-color: #00ff8b;
-          border-radius: 50%;
-        }
-      }
-    }
   }
 }
 
-.kb_left_top_block:nth-child(3n) {
-  border-bottom: none !important;
+.all_block05 {
+  position: absolute;
+  animation: upDown 3s ease-in-out infinite;
+  left: 60px;
 }
 
-.circleYellow {
-  width: 26px;
-  height: 26px;
-  background-color: rgb(255 255 0);
-  border-radius: 50%;
+.all_block06 {
+  position: absolute;
+  animation: upDown2 3s ease-in-out infinite;
+  left: 290px;
 }
 
-</style>
+.all_block07 {
+  position: absolute;
+  animation: upDown 3s ease-in-out infinite;
+  left: 520px;
+}
 
-<!--鏄熺┖-->
-<style lang="css" scoped>
-@keyframes rotate {
+@keyframes upDown {
   0% {
-    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(0);
+    top: 50px;
+  }
+  50% {
+    top: 100px;
   }
   100% {
-    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(-360deg);
+    top: 50px;
   }
 }
 
-.stars {
-  transform: perspective(500px);
-  transform-style: preserve-3d;
-  position: absolute;
-  perspective-origin: 50% 100%;
-  left: 45%;
-  animation: rotate 90s infinite linear;
-  bottom: 0;
-  z-index: 102;
-}
-
-.star {
-  width: 2px;
-  height: 2px;
-  /*background: #f7f7b6;*/
-  background: #8edffc;
-  position: absolute;
-  left: 0;
-  top: 0;
-  backface-visibility: hidden;
-  z-index: 102;
+@keyframes upDown2 {
+  0% {
+    top: 100px;
+  }
+  50% {
+    top: 50px;
+  }
+  100% {
+    top: 100px;
+  }
 }
 </style>

--
Gitblit v1.9.3