From c0e9df213221d16f6ab6c9106ae01ad571cd45fc Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期五, 15 十一月 2024 09:08:02 +0800
Subject: [PATCH] 1.考勤打卡递交

---
 src/views/kanbanManager/zhkb.vue |  338 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 193 insertions(+), 145 deletions(-)

diff --git a/src/views/kanbanManager/zhkb.vue b/src/views/kanbanManager/zhkb.vue
index b162f3e..cf34a0f 100644
--- a/src/views/kanbanManager/zhkb.vue
+++ b/src/views/kanbanManager/zhkb.vue
@@ -6,11 +6,11 @@
 
       <div class="kb_header">
         <div class="kb_headTime" style="top: 35px;left:  20px">
-          <span>娴欐睙浼樺厠宸ヨ锤鑲′唤鏈夐檺鍏徃</span>
+          <span>姘稿悍甯傛ˉ涓嬪鏂欏巶</span>
         </div>
 
         <div class="kb_headTime kb_header_text" style="top: 35px;left:  800px">
-          <span>杞﹂棿缁煎悎鏁板瓧鍖栫湅鏉�</span>
+          <span>妗ヤ笅缁煎悎鏁板瓧鍖栫湅鏉�</span>
         </div>
 
         <div class="kb_headTime" style="top: 35px;right:  25px">
@@ -22,37 +22,38 @@
       >
         <!--        涓婅竟-->
         <div style="display: flex;justify-content: space-between">
-          <div style="width: 1150px;">
+          <div style="width: 925px;">
             <div class="smallTitle">
-              <svg-icon icon-class="cxjg" class="svg_class" />
-              鐢熶骇璁㈠崟(褰撴湀)
+              <svg-icon icon-class="blcs" class="svg_class" />
+              閲囪喘璁㈠崟(鏈�/瀛�)
             </div>
             <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" style="width: 135px;">
-                    <div class="flex_c_c all_block02">{{ i.wkshp_name }}</div>
+              <div style="height: 180px;padding: 10px;display: flex;justify-content: space-between">
+
+                <div v-for="i in LeftTopData01" :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_block02 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
-                      <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.plan_qty }}</div>
+                      <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_block02 flex_c_c" style="width: 49% ">瀹屽伐鏁�</div>
-                      <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.good_qty }}</div>
+                      <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>
 
               </div>
-              <div style="height: 280px;">
-                <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />
+              <div style="height: 260px;">
+                <div id="all02_1" class="flex_c_c" style="width: 100%;height:100%;" />
               </div>
             </div>
           </div>
-          <div style="width: 700px;">
+          <div style="width: 925px;">
             <div class="smallTitle">
               <svg-icon icon-class="cggz" class="svg_class" />
               閿�鍞鍗�(鏈�/瀛�)
@@ -64,7 +65,7 @@
               <div style="height: 180px;padding: 10px;display: flex;justify-content: space-between">
 
                 <div v-for="i in RightTopData01" :key="i.Quarter" class="flex_c_s">
-                  <div class="all_block03 flex_c_s" style="width: 165px;">
+                  <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>
@@ -86,17 +87,55 @@
         </div>
         <!--        涓嬭竟-->
         <div style="display: flex;justify-content: space-between;margin-top: 15px;">
-          <div style="width: 1150px;">
+          <div style="width: 925px;">
             <div class="smallTitle">
-              <svg-icon icon-class="blcs" class="svg_class" />
-              璐ㄩ噺涓嶈壇(杩戜竴鍛�)
+              <svg-icon icon-class="cxjg" class="svg_class" />
+              鐢熶骇璁㈠崟(褰撴湀)
             </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
+              class="lineContent horn"
+              style="height: 380px;display: flex;flex-direction: column;justify-content: space-between"
+            >
+              <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly">
+                <div v-for="i in LeftBottomData01" :key="i.wkshp_code" class="flex_c_s">
+                  <div class="all_block01 flex_c_s" style="width: 275px;">
+                    <div class="flex_c_c all_block02" style="">{{ 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="" 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>
+
+              <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly">
+                <div v-for="i in LeftBottomData02" :key="i.wkshp_code" class="flex_c_s">
+                  <div class="all_block01 flex_c_s" style="width: 275px;">
+                    <div class="flex_c_c all_block02" style=" background: rgba(9, 216, 242, 0.2);">{{ i.wkshp_name }}</div>
+                    <div class="" style="display: flex;justify-content:space-between">
+                      <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">浠诲姟鏁�</div>
+                      <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.plan_qty }}</div>
+                    </div>
+                    <div class="" style="display: flex;justify-content:space-between">
+                      <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">鍏ュ簱鏁�</div>
+                      <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.quantity }}</div>
+                    </div>
+                  </div>
+                </div>
+
+              </div>
+
+              <!--              <div style="height: 260px;">-->
+              <!--                <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />-->
+              <!--              </div>-->
             </div>
           </div>
-          <div style="width: 700px;">
+          <div style="width: 925px;">
             <div class="smallTitle">
               <svg-icon icon-class="ckkc" class="svg_class" />
               浠撳簱搴撳瓨
@@ -108,11 +147,11 @@
                   <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_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" />
@@ -130,14 +169,10 @@
 
 <script>
 import './kbCommon.css'
-import { loadEcharts, all01, all02, cjzl03 } from '@/utils/myEcharts'
+import { loadEcharts, all02, all03 } from '@/utils/myEcharts'
 import {
-  WorkShopCompreLeftTop,
-  WorkShopCompreRightBottom,
-  WorkShopCompreRightTop,
-  WorkShopProduceBottomLeftData
+  WorkShopCompreLeftBottom, WorkShopCompreLeftTop, WorkShopCompreRightBottom, WorkShopCompreRightTop
 } from '@/api/kanbanManager'
-import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
 
 export default {
   name: 'Cjsc',
@@ -153,8 +188,10 @@
 
       RightTopData01: [],
       RightTopData02: [],
-      cjzl03_xData: [],
-      cjzl03_yData: [],
+
+      LeftBottomData01: [],
+      LeftBottomData02: [],
+
       RightBottom: {}
 
     }
@@ -172,97 +209,61 @@
   },
   methods: {
     async getAllApi() {
-      const res = await PrentOrganizationNoCompany()
-      this.wkshopArr = res.data
+      // const { data: res } = await ShopSearch()
+      const res = [
+        { org_code: '101', org_name: '鍙戞场杞﹂棿' },
+        { org_code: '102', org_name: '鎸ゅ嚭杞﹂棿' }
 
-      const temp = ['501', '502', '503', '508', '504', '505', '506', '507']
-      // const temp = ['0103', '006', '01', 'qw', '0104', 'CJ001', 'LD001', 'ZP001']
+      ]
+      this.wkshopArr = res
+      const temp = this.wkshopArr.map(i => i.org_code)
+      // const temp = this.wkshopArr.map(i => i.org_code)
+
       temp.forEach(i => {
-        const aa = this.wkshopArr.find(j => j.torg_code === i).torg_name
+        const aa = this.wkshopArr.find(j => j.org_code === i).org_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)
-        }
-      }
-      const t = this.LeftTopData01[ this.LeftTopData01.length - 1]
-      this.LeftTopData01.splice(7, 1)
-      this.LeftTopData01.splice(3, 0, t)
-      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)
-        }
-      }
-      const t1 = this.LeftTopData02[ this.LeftTopData02.length - 1]
-      this.LeftTopData02.splice(7, 1)
-      this.LeftTopData02.splice(3, 0, t1)
-      loadEcharts('all01', all01(this.legendData, this.LeftTopData02))
-
-      setInterval(() => {
-        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)
-            }
-          }
-          const t = this.LeftTopData01[ this.LeftTopData01.length - 1]
-          this.LeftTopData01.splice(7, 1)
-          this.LeftTopData01.splice(3, 0, t)
-          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)
-            }
-          }
-          const t1 = this.LeftTopData02[ this.LeftTopData02.length - 1]
-          this.LeftTopData02.splice(7, 1)
-          this.LeftTopData02.splice(3, 0, t1)
-          loadEcharts('all01', all01(this.legendData, this.LeftTopData02))
+      // 宸︿笂 閲囪喘璁㈠崟
+      const res2 = await WorkShopCompreLeftBottom()
+      res2.data.BottomLeftTop.forEach(i => {
+        this.LeftTopData01.push({
+          Quarter: i.Quarter,
+          quantity: i.quantity,
+          ouquantity: i.ouquantity
         })
-      }, 1000 * 30)
+      })
+      res2.data.BottomLeftBottom.forEach(i => {
+        this.LeftTopData02.push({
+          Month: i.Month + '鏈�',
+          quantity: i.quantity,
+          ouquantity: i.ouquantity
+        })
+      })
+      loadEcharts('all02_1', all02(this.LeftTopData02, '姣忔湀閲囪喘鏁伴噺/鍏ュ簱鏁伴噺'))
+      setInterval(() => {
+        this.LeftTopData01 = []
+        this.LeftTopData02 = []
+        WorkShopCompreLeftBottom().then(res2 => {
+          res2.data.BottomLeftTop.forEach(i => {
+            this.LeftTopData01.push({
+              Quarter: i.Quarter,
+              quantity: i.quantity,
+              ouquantity: i.ouquantity
+            })
+          })
+          res2.data.BottomLeftBottom.forEach(i => {
+            this.LeftTopData02.push({
+              Month: i.Month + '鏈�',
+              quantity: i.quantity,
+              ouquantity: i.ouquantity
+            })
+          })
+          loadEcharts('all02_1', all02(this.LeftTopData02, '姣忔湀閲囪喘鏁伴噺/鍏ュ簱鏁伴噺'))
+        })
+      }, 1000 * 35)
 
+      // 鍙充笂 閿�鍞鍗�
       const res3 = await WorkShopCompreRightTop()
       res3.data.RightTop.forEach(i => {
         this.RightTopData01.push({
@@ -278,7 +279,7 @@
           ouquantity: i.ouquantity
         })
       })
-      loadEcharts('all02', all02(this.RightTopData02))
+      loadEcharts('all02', all02(this.RightTopData02, '姣忔湀璁㈠崟鏁伴噺/鍑哄簱鏁伴噺'))
       setInterval(() => {
         WorkShopCompreRightTop().then(res3 => {
           this.RightTopData01 = []
@@ -297,34 +298,81 @@
               ouquantity: i.ouquantity
             })
           })
-          loadEcharts('all02', all02(this.RightTopData02))
+          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) {
+      // 宸︿笅 鐢熶骇璁㈠崟
+      const res4 = await WorkShopCompreLeftTop({ wkshopcode: temp.join(',') })
+      for (const res4Key in res4.data.LeftTop) {
+        const data = {
+          good_qty: 0,
+          plan_qty: 0,
+          wkshp_code: '',
+          wkshp_name: ''
+        }
         if (temp.includes(res4Key)) {
-          const bb = res4.data[res4Key].map(i => i.count)
-          this.cjzl03_yData.push(bb)
+          data.good_qty = res4.data.LeftTop[res4Key][0].good_qty
+          data.plan_qty = res4.data.LeftTop[res4Key][0].plan_qty
+          data.wkshp_code = res4.data.LeftTop[res4Key][0].wkshp_code
+          data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
+          this.LeftBottomData01.push(data)
         }
       }
-      loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
-      setInterval(() => {
-        WorkShopProduceBottomLeftData({ wkshopcode: temp.join(',') }).then(res4 => {
-          this.cjzl03_yData = []
+      for (const res4Key in res4.data.LeftBottom) {
+        const data = {
+          quantity: 0,
+          wkshp_code: '',
+          wkshp_name: ''
+        }
+        if (temp.includes(res4Key)) {
+          data.quantity = res4.data.LeftBottom[res4Key][0].quantity
+          data.plan_qty = res4.data.LeftBottom[res4Key][0].plan_qty
+          data.wkshp_code = res4.data.LeftBottom[res4Key][0].wkshp_code
+          data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
+          this.LeftBottomData02.push(data)
+        }
+      }
+      // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02))
 
-          this.cjzl03_xData = res4.data[temp[0]].map(i => i.click_date)
-          for (const res4Key in res4.data) {
+      setInterval(() => {
+        WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }).then(res2 => {
+          this.LeftBottomData01 = []
+          this.LeftBottomData02 = []
+          for (const res4Key in res4.data.LeftTop) {
+            const data = {
+              good_qty: 0,
+              plan_qty: 0,
+              wkshp_code: '',
+              wkshp_name: ''
+            }
             if (temp.includes(res4Key)) {
-              const bb = res4.data[res4Key].map(i => i.count)
-              this.cjzl03_yData.push(bb)
+              data.good_qty = res2.data.LeftTop[res4Key][0].good_qty
+              data.plan_qty = res2.data.LeftTop[res4Key][0].plan_qty
+              data.wkshp_code = res2.data.LeftTop[res4Key][0].wkshp_code
+              data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
+              this.LeftBottomData01.push(data)
             }
           }
-          loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
+          for (const res4Key in res2.data.LeftBottom) {
+            const data = {
+              quantity: 0,
+              wkshp_code: '',
+              wkshp_name: ''
+            }
+            if (temp.includes(res4Key)) {
+              data.quantity = res2.data.LeftBottom[res4Key][0].quantity
+              data.plan_qty = res2.data.LeftBottom[res4Key][0].plan_qty
+              data.wkshp_code = res2.data.LeftBottom[res4Key][0].wkshp_code
+              data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
+              this.LeftBottomData02.push(data)
+            }
+          }
+          // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02))
         })
-      }, 1000 * 50)
+      }, 1000 * 30)
 
+      // 鍙充笅 浠撳簱搴撳瓨
       const res5 = await WorkShopCompreRightBottom()
       this.RightBottom = res5.data
 
@@ -425,7 +473,7 @@
 }
 
 .all_block01 {
-  width: 237px;
+  width: 187px;
   height: 180px;
 }
 
@@ -470,19 +518,19 @@
 .all_block05 {
   position: absolute;
   animation: upDown 3s ease-in-out infinite;
-  left: -20px;
+  left: 140px;
 }
 
-.all_block06 {
-  position: absolute;
-  animation: upDown2 3s ease-in-out infinite;
-  left: 220px;
-}
+//.all_block06 {
+//  position: absolute;
+//  animation: upDown2 3s ease-in-out infinite;
+//  left: 320px;
+//}
 
 .all_block07 {
   position: absolute;
   animation: upDown 3s ease-in-out infinite;
-  left: 460px;
+  left: 500px;
 }
 
 @keyframes upDown {

--
Gitblit v1.9.3