Browse Source

feat: tlk联调

@dayan_hjm 1 year ago
parent
commit
f8dc103b32
39 changed files with 255 additions and 44 deletions
  1. 0 0
      src/assets/imgs/dataVImg/light.png
  2. BIN
      src/assets/imgs/dataVImg/quanShang.png
  3. BIN
      src/assets/imgs/dataVImg/quanXia.png
  4. BIN
      src/assets/imgs/dataVImg/quanZhong.png
  5. BIN
      src/assets/imgs/dataVImg/tlkRight.gif
  6. BIN
      src/assets/imgs/dataVImg/tlkRight2.gif
  7. BIN
      src/assets/imgs/dataVImg/一次合格率.png
  8. BIN
      src/assets/imgs/dataVImg/一次合格率@2x.png
  9. BIN
      src/assets/imgs/dataVImg/光环 1.png
  10. BIN
      src/assets/imgs/dataVImg/光环 1@2x.png
  11. BIN
      src/assets/imgs/dataVImg/工厂.png
  12. BIN
      src/assets/imgs/dataVImg/工厂@2x.png
  13. BIN
      src/assets/imgs/dataVImg/底部栏.png
  14. BIN
      src/assets/imgs/dataVImg/总产值底盘.png
  15. BIN
      src/assets/imgs/dataVImg/悬浮内容.png
  16. BIN
      src/assets/imgs/dataVImg/悬浮内容@2x.png
  17. BIN
      src/assets/imgs/dataVImg/损工率右.png
  18. BIN
      src/assets/imgs/dataVImg/损工率右@2x.png
  19. BIN
      src/assets/imgs/dataVImg/损工率左.png
  20. BIN
      src/assets/imgs/dataVImg/损工率底座.png
  21. BIN
      src/assets/imgs/dataVImg/矿场.png
  22. BIN
      src/assets/imgs/dataVImg/矿场@2x.png
  23. BIN
      src/assets/imgs/dataVImg/计划完成率底座1.png
  24. BIN
      src/assets/imgs/dataVImg/计划完成率底座1@2x.png
  25. BIN
      src/assets/imgs/dataVImg/计划完成率底座2.png
  26. BIN
      src/assets/imgs/dataVImg/计划完成率底座2@2x.png
  27. BIN
      src/assets/imgs/dataVImg/计划完成率底座3.png
  28. BIN
      src/assets/imgs/dataVImg/计划完成率底座3@2x.png
  29. BIN
      src/assets/imgs/dataVImg/顶部栏.png
  30. BIN
      src/assets/imgs/dataVImg/飞光.png
  31. BIN
      src/assets/imgs/dataVImg/飞光@2x.png
  32. 1 1
      src/pages/tlk/api.js
  33. 2 2
      src/pages/tlk/component/mapView.jsx
  34. 3 2
      src/pages/tlk/component/oneQualified.jsx
  35. 3 2
      src/pages/tlk/component/oneSendView.jsx
  36. 2 1
      src/pages/tlk/component/rightBottomView.jsx
  37. 1 0
      src/pages/tlk/mod.js
  38. 149 7
      src/pages/tlk/style.less
  39. 94 29
      src/pages/tlk/view.jsx

src/assets/imgs/dataVImg/光环.png → src/assets/imgs/dataVImg/light.png


BIN
src/assets/imgs/dataVImg/quanShang.png


BIN
src/assets/imgs/dataVImg/quanXia.png


BIN
src/assets/imgs/dataVImg/quanZhong.png


BIN
src/assets/imgs/dataVImg/tlkRight.gif


BIN
src/assets/imgs/dataVImg/tlkRight2.gif


BIN
src/assets/imgs/dataVImg/一次合格率.png


BIN
src/assets/imgs/dataVImg/一次合格率@2x.png


BIN
src/assets/imgs/dataVImg/光环 1.png


BIN
src/assets/imgs/dataVImg/光环 1@2x.png


BIN
src/assets/imgs/dataVImg/工厂.png


BIN
src/assets/imgs/dataVImg/工厂@2x.png


BIN
src/assets/imgs/dataVImg/底部栏.png


BIN
src/assets/imgs/dataVImg/总产值底盘.png


BIN
src/assets/imgs/dataVImg/悬浮内容.png


BIN
src/assets/imgs/dataVImg/悬浮内容@2x.png


BIN
src/assets/imgs/dataVImg/损工率右.png


BIN
src/assets/imgs/dataVImg/损工率右@2x.png


BIN
src/assets/imgs/dataVImg/损工率左.png


BIN
src/assets/imgs/dataVImg/损工率底座.png


BIN
src/assets/imgs/dataVImg/矿场.png


BIN
src/assets/imgs/dataVImg/矿场@2x.png


BIN
src/assets/imgs/dataVImg/计划完成率底座1.png


BIN
src/assets/imgs/dataVImg/计划完成率底座1@2x.png


BIN
src/assets/imgs/dataVImg/计划完成率底座2.png


BIN
src/assets/imgs/dataVImg/计划完成率底座2@2x.png


BIN
src/assets/imgs/dataVImg/计划完成率底座3.png


BIN
src/assets/imgs/dataVImg/计划完成率底座3@2x.png


BIN
src/assets/imgs/dataVImg/顶部栏.png


BIN
src/assets/imgs/dataVImg/飞光.png


BIN
src/assets/imgs/dataVImg/飞光@2x.png


+ 1 - 1
src/pages/tlk/api.js

@@ -156,7 +156,7 @@ export function mondService(params) {
156 156
       "useResultCache": false
157 157
     },
158 158
     headers: {
159
-      sign: '4995cb5ad27388171ede287e7e7d32b7',
159
+      sign: '43cd181c6b8897f1e849a2d0db07f9d0',
160 160
       account: 'yunxi_fuxue',
161 161
       'Cache-Control': 'no-cache',
162 162
       apiId: '1387839381046678787',

+ 2 - 2
src/pages/tlk/component/mapView.jsx

@@ -14,7 +14,7 @@
14 14
         preload 属性 :
15 15
         设置 auto , 表示 预先加载视频 ;
16 16
         设置 none , 表示 不预先加载视频 ;
17
- * @Last Modified time: 2023-11-01 15:54:40
17
+ * @Last Modified time: 2024-10-18 14:46:37
18 18
  */
19 19
 import React, { useState, useEffect, Component } from "react";
20 20
 import { useHistory, useLocation, withRouter } from "react-router-dom";
@@ -100,7 +100,7 @@ class MapView extends Component {
100 100
   render() {
101 101
     const { changGif } = this.state;
102 102
     return (
103
-      <div class="video_box video_box_hide animate__animated animate__fadeOut animate__delay-2s animate__slower">
103
+      <div class="video_box video_box_hide animate__animated animate__fadeOut animate__slower">
104 104
           <video src={require("@assets/imgs/dataVImg/tlk.mp4").default} autoplay="autoplay" class="video1"></video>
105 105
       </div>
106 106
     )

+ 3 - 2
src/pages/tlk/component/oneQualified.jsx

@@ -2,7 +2,7 @@
2 2
  * @Author: dayan_hjm 一次合格率
3 3
  * @Date: 2023-10-23 09:32:12 
4 4
  * @Last Modified by: dayan_hjm
5
- * @Last Modified time: 2024-10-17 11:28:28
5
+ * @Last Modified time: 2024-10-18 15:17:26
6 6
  */
7 7
 
8 8
 
@@ -68,7 +68,7 @@ class BottomLineForSend extends Component {
68 68
       var option = {
69 69
         grid: {
70 70
           left: '2%',
71
-          top: '15%',
71
+          top: '20%',
72 72
           right: '0%',
73 73
           bottom: '5%',
74 74
           containLabel: true
@@ -89,6 +89,7 @@ class BottomLineForSend extends Component {
89 89
           backgroundColor:"#0000008a"
90 90
         },
91 91
         legend: {
92
+          type: 'scroll',
92 93
           data: ['锂辉石消耗量\n(Spodunene Consumption)', '锂辉石计划消耗量\n(Spodumene Consumption Plan)','锂辉石计划执行率\n(Execution rate of spodumene plan)'],
93 94
           fontFamily:'DingTalkJinBuTi',
94 95
           padding: [0, 0, 10, 0],

+ 3 - 2
src/pages/tlk/component/oneSendView.jsx

@@ -2,7 +2,7 @@
2 2
  * @Author: dayan_hjm 月度产量/发货量
3 3
  * @Date: 2023-10-23 09:32:12 
4 4
  * @Last Modified by: dayan_hjm
5
- * @Last Modified time: 2024-10-17 11:01:37
5
+ * @Last Modified time: 2024-10-18 15:13:53
6 6
  */
7 7
 
8 8
 
@@ -62,7 +62,7 @@ class OneSendView extends Component {
62 62
       var option = {
63 63
         grid: {
64 64
           left: '2%',
65
-          top: '18%',
65
+          top: '25%',
66 66
           right: '0%',
67 67
           bottom: '8%',
68 68
           containLabel: true
@@ -83,6 +83,7 @@ class OneSendView extends Component {
83 83
           backgroundColor:"#0000008a"
84 84
         },
85 85
         legend: {
86
+          type: 'scroll',
86 87
           data: ['预算产量(Monthly Budget)', '产量(Net Production)','计划完成率(Prodction Efflciebcy)'],
87 88
           fontFamily:'DingTalkJinBuTi',
88 89
           padding: [15, 0, 0, 0],

+ 2 - 1
src/pages/tlk/component/rightBottomView.jsx

@@ -2,7 +2,7 @@
2 2
  * @Author: dayan_hjm 近30天产量
3 3
  * @Date: 2023-10-23 09:32:12 
4 4
  * @Last Modified by: dayan_hjm
5
- * @Last Modified time: 2024-10-17 11:30:23
5
+ * @Last Modified time: 2024-10-18 15:30:14
6 6
  */
7 7
 
8 8
 
@@ -76,6 +76,7 @@ class RightBottomView extends Component {
76 76
           containLabel: true
77 77
         },
78 78
         legend: {
79
+          type: 'scroll',
79 80
           data: ['产量一次合格率(First Pass Yield)', '累计一次合格率(Cumulative First Pass Yield)'],
80 81
           fontFamily: 'DingTalkJinBuTi',
81 82
           padding: [5, 0, 40, 0],

+ 1 - 0
src/pages/tlk/mod.js

@@ -17,6 +17,7 @@ const defaultState = {
17 17
   totalValue:0,
18 18
   yearDecline:0,
19 19
   yearSend:0,
20
+  tailiTotal:0,
20 21
   implementationOfThePlan:0,
21 22
   annualPlan:0,
22 23
   productInventory:0,

+ 149 - 7
src/pages/tlk/style.less

@@ -2,6 +2,7 @@
2 2
 
3 3
 @assetUrl: "../../assets/imgs/home";
4 4
 
5
+
5 6
 .bg_after {
6 7
   content: "";
7 8
   display: block;
@@ -11,12 +12,85 @@
11 12
   height: 10px;
12 13
 }
13 14
 .tlk_box{
14
-  background: url(../../assets/imgs/dataVImg/homeBgDataV2.jpg) no-repeat 0 -10% #041b40!important;
15
-  :global {
15
+  background: #041b40!important;
16
+  :global {  
17
+    .rightContent .topMsg .changBg_topMsg_content{
18
+      background: url(../../assets/imgs/dataVImg/tlkRight2.gif) no-repeat 48% 0/91% 112%!important;
19
+    }     
20
+    .centerCon .topMsg3 {
21
+      width: 100%;
22
+      height: 16%!important;
23
+      margin-top: 1em!important;
24
+    }
25
+    .imgMsg {
26
+      width: 100%;
27
+      position: absolute;
28
+      left: 0;
29
+      top: 0;
30
+      height: 100%;
31
+      color: #fff;
32
+      li {
33
+        position: absolute;
34
+        width: 24em;
35
+        z-index: 10;
36
+        height: 4em;
37
+        opacity: 1;
38
+        background: linear-gradient(0deg, #ffffff26 0%, #ffffff00 100%);
39
+        border-radius: 0.5em;
40
+        padding: 0.5em;
41
+        box-sizing: border-box;
42
+        font-size: 0.85em;
43
+        color: #cdf1ffcf;
44
+        text-align: left;
45
+        .nums {
46
+          font-size: 1.3em;
47
+          color: #69FFDE;
48
+          display: inline-block !important;
49
+      }
50
+      .sma {
51
+        font-size: 0.7em;
52
+        color: #CDF1FF;
53
+        display: inline-block;
54
+        margin-left: 0.2em;
55
+    }
56
+    }
57
+      .lastLi{
58
+        width: 20em;
59
+        text-align: center;
60
+        padding-top: 7em;
61
+        height: 20em;
62
+        background: url(../../assets/imgs/dataVImg/quanShang.png) no-repeat 40% 40% !important;
63
+        background-size: 100% 100% !important;
64
+        .nums{
65
+          font-size: 1.8em;
66
+          .sma {
67
+            font-size: 1em;
68
+          }
69
+        }
70
+      
71
+        .zhuan{
72
+          background: url(../../assets/imgs/dataVImg/quanZhong.png) no-repeat 0 0 !important;
73
+          width: 100%;
74
+          height: 100%;
75
+          display: block;
76
+          position: absolute;
77
+          left: 0;
78
+          top: 0;
79
+          background-size: 100% 100% !important;
80
+        }
81
+        .animate__animated.animate__slower{
82
+          animation-duration: calc(var(--animate-duration)* 15)!important;
83
+        }
84
+
85
+      }
86
+    }
16 87
     .video_box {
17 88
       width: 100% !important;
18 89
       background: url(../../assets/imgs/dataVImg/homeBgDataV2.jpg) no-repeat 0 -10em / 108% 120% #041b40!important;
19 90
     }
91
+    .video_box_hide{
92
+      background: #000!important;
93
+    }
20 94
     .leftContent .bottomContent2{
21 95
       height: 31%!important;
22 96
       .topMsg_content{
@@ -33,17 +107,19 @@
33 107
       height: 27%;
34 108
     }
35 109
     .centerCon .right_li{
36
-      margin-top: -24px;
110
+      margin-top: -27px;
37 111
     }
38 112
     .topMsg_tip2{
39 113
       margin-top: 0!important;
40 114
     }
41 115
     .rightContent .topMsg2{
42 116
       height: 30%!important;
117
+      margin-bottom: 4%!important;
43 118
     }
44 119
     .centerCon .bottomContent3{
45
-      bottom: 7%!important;
120
+      bottom: 5%!important;
46 121
     }
122
+
47 123
     .leftContent .bottomContent2{
48 124
       margin-bottom: 3%!important;
49 125
     }
@@ -53,7 +129,10 @@
53 129
     
54 130
     .rightContent .topMsg_22{
55 131
       height: 30%!important;
56
-      margin-bottom: 5%;
132
+      margin-bottom: 6%;
133
+      .topMsg_title{
134
+        margin-bottom: 1%;
135
+      }
57 136
       #echarts5{
58 137
         height: 100%!important;
59 138
       }
@@ -71,9 +150,18 @@
71 150
     }
72 151
     .video_box video{
73 152
       width: 100%!important;
74
-      height: 70%!important;
75
-      padding: 0 0 9% 0!important;
153
+      height: 75%!important;
154
+      padding: 0 4% 11% 0!important;
155
+    }
156
+    @media (min-height: 1000px) {//横屏大屏
157
+      .video_box video{
158
+        width: 100%!important;
159
+        height: 71%!important;
160
+        padding: 0 2% 14% 0!important;
161
+      }
76 162
     }
163
+
164
+
77 165
     .rightContent .topMsg .topMsg_content .topMsg_box .topMsg_number_p{
78 166
       margin-bottom: 0.1rem;
79 167
       color: #84b8dc!important;
@@ -90,6 +178,60 @@
90 178
     .rightContent .topMsg .topMsg_content .topMsg_box{
91 179
       width: 32%!important;
92 180
     }
181
+    @media (max-height: 768px) {//电脑小屏
182
+      .rightContent .topMsg .topMsg_content .topMsg_box{
183
+        width: 38% !important;
184
+      }
185
+      .video_box video{
186
+        width: 100% !important;
187
+        height: 64% !important;
188
+        padding: 0 0% 6% 0 !important;
189
+      }
190
+      .leftContent{
191
+        height: 95%;
192
+        width: 26% !important;
193
+    margin-left: 0;
194
+    #onesendbox{
195
+      width: 100%!important;
196
+    }
197
+      }
198
+      .leftContent .bottomContent2 {
199
+        height: 30% !important;
200
+      }
201
+      .leftContent .center_box2{
202
+        height: 30% !important;
203
+      }
204
+      .imgMsg li{
205
+        width: auto;
206
+        height: auto;
207
+      }
208
+      .imgMsg li:nth-child(1){
209
+        right: 5%;
210
+      }
211
+      .imgMsg .lastLi{
212
+        left: 66%!important;
213
+        top: 45%!important;
214
+        width: 18em;
215
+        text-align: center;
216
+        padding-top: 6.5em;
217
+        height: 18em;
218
+      }
219
+    }
220
+    @media (max-height: 768px) {//电脑小屏
221
+      .centerCon .topMsg_content .center_li:nth-last-child(1){
222
+        height: 107%!important;
223
+      }
224
+    }
225
+    @media (max-height: 900px) {
226
+      .centerCon .topMsg_content .center_li:nth-last-child(1){
227
+        height: 107%!important;
228
+      }
229
+      .rightContent .topMsg .topMsg_content .topMsg_box{
230
+        width: 38% !important;
231
+      }
232
+
233
+    }
234
+
93 235
     .topMsg_title{
94 236
       background: url(../../assets/imgs/dataVimg/tipleBg2.png) no-repeat 0 0 / 100% 100%!important;
95 237
       color: #e0f6ff!important;

+ 94 - 29
src/pages/tlk/view.jsx

@@ -2,7 +2,7 @@
2 2
  * @Author: dayan_hjm 
3 3
  * @Date: 2023-10-25 10:32:44 
4 4
  * @Last Modified by: dayan_hjm
5
- * @Last Modified time: 2024-10-17 10:46:43
5
+ * @Last Modified time: 2024-10-18 15:00:12
6 6
  */
7 7
 /*
8 8
  * @Author: dayan_hjm 
@@ -27,7 +27,7 @@ import OneQualified from "./component/oneQualified.jsx";
27 27
 import MapView from "./component/mapView.jsx";
28 28
 import $store from "@store/";
29 29
 import {
30
-  timeService,
30
+  momeyService,
31 31
   numberService,
32 32
   checkToken,
33 33
   updateTimeService
@@ -48,6 +48,7 @@ class Home extends Component {
48 48
       updateTime: '',
49 49
       changGif: false,
50 50
       changNun: false,
51
+      imgMsgData: [],
51 52
       plannedCompletionData: [
52 53
       ],
53 54
       plannedCompletionNum: 1,
@@ -85,9 +86,9 @@ class Home extends Component {
85 86
   }
86 87
   componentDidMount() {
87 88
     this.fontMsgChange();
88
-    this.getUrl();
89 89
     this.getUrl2()
90 90
     this.getUrl3();
91
+    this.getUrl();
91 92
     setTimeout(() => {
92 93
       this.videoStart();
93 94
     }, 200)
@@ -156,33 +157,39 @@ class Home extends Component {
156 157
   }
157 158
 
158 159
   async getUrl() {
159
-    await timeService().then(({ data = [], resultCode }) => {
160
+    const name_ = ["累计运输锂辉石 /Total Spodumene Shipments: ", "锂辉石库存量 /Spodumene Inventory:", "锂辉石库存量 /Spodumene Inventory:", "锂辉石库存量 /Spodumene Inventory:",""];
161
+    const style__ = [{ left: "3%", top: "29%" }, { right: "9%", top: "38%" }, { right: "32%", top: "48%" }, { left: "5%", top: "64%" }, { left: "65%", top: "47%" }]
162
+    let datas = [];
163
+    await momeyService().then(({ data = [], resultCode }) => {
160 164
       if (+resultCode === 0) {
161
-        let plannedCompletionData = [], manHourData = [];
165
+        function changeName(x, num) {
166
+          return {
167
+            ...x,
168
+            total: x.IndexValue,
169
+            totalName: name_[num],
170
+            styles: style__[num],
171
+          }
172
+        }
162 173
         data.map((x, i) => {
163
-          if (x.indexValue || x.indexValue == 0) {
164
-            if (x.indexName == '产量计划完成率') {
165
-              plannedCompletionData.push({
166
-                name: x.factoryName,
167
-                value: Number((x.indexValue * 100).toFixed(2)),
168
-              })
169
-            } else {
170
-              manHourData.push({
171
-                name: x.factoryName,
172
-                // value: Number((x.indexValue * 100).toFixed(2)),
173
-                value: Number(x.indexValue),
174
-              })
175
-            }
174
+          datas[0] = changeName({ IndexValue: this.store.state.tailiTotal }, 0);
175
+          if (x.IndexCode == '22') {
176
+            datas[1] = changeName(x, 1);
177
+          } else if (x.IndexCode == '23') {
178
+            datas[2] = changeName(x, 2);
179
+          } else if (x.IndexCode == '21') {
180
+            datas[3] = changeName(x, 3);
181
+          } else if (x.IndexCode == '24') {
182
+            datas[4] = changeName(x, 4);
176 183
           }
177 184
         });
178
-        this.setState({ plannedCompletionData, manHourData, plannedCompletionNum: 1, manHourNum: 1 });
185
+        this.setState({ imgMsgData: datas });
179 186
       }
180 187
     });
181 188
   }
182 189
   async getUrl2() {
183 190
     await numberService().then(({ data = [], resultCode }) => {
184 191
       if (+resultCode === 0) {
185
-        let totalValue = 0, productInventory=0,yearDecline = 0, yearSend = 0, annualPlan = 0, implementationOfThePlan = 0;
192
+        let tailiTotal = 0, totalValue = 0, productInventory = 0, yearDecline = 0, yearSend = 0, annualPlan = 0, implementationOfThePlan = 0;
186 193
         data.map((x, i) => {
187 194
           if (x.IndexCode == '1') {
188 195
             yearDecline = x.IndexValue
@@ -194,9 +201,11 @@ class Home extends Component {
194 201
             annualPlan = x.IndexValue //年度产量完成率
195 202
           } else if (x.IndexCode == '5') {
196 203
             implementationOfThePlan = x.IndexValue //年度锂辉石执行率
204
+          } else if (x.IndexCode == '6') {
205
+            tailiTotal = x.IndexValue //年度锂辉石执行率
197 206
           }
198 207
         });
199
-        this.store.saveState({ totalValue, yearDecline, yearSend, productInventory,annualPlan,implementationOfThePlan });
208
+        this.store.saveState({ tailiTotal, totalValue, yearDecline, yearSend, productInventory, annualPlan, implementationOfThePlan });
200 209
         setTimeout(() => {
201 210
           $(".shu1").numScroll();
202 211
         }, 2500)
@@ -254,8 +263,8 @@ class Home extends Component {
254 263
 
255 264
   render() {
256 265
     const stores = this.store.state;
257
-    let { totalValue, yearDecline, yearSend, productInventory,annualPlan,implementationOfThePlan } = this.store.state;
258
-    let { changGif, updateTime, changNun } = this.state;
266
+    let { totalValue, yearDecline, yearSend, productInventory, annualPlan, implementationOfThePlan } = this.store.state;
267
+    let { changGif, updateTime, changNun, imgMsgData } = this.state;
259 268
     return (
260 269
       <div className={[styles.tlk_box + ' home_box ']}>
261 270
         {/* 水印 */}
@@ -366,7 +375,7 @@ class Home extends Component {
366 375
                         !changNun && <span className="topMsg_number" class="shu1">{yearSend}</span>
367 376
                       }
368 377
                       {
369
-                        changNun && <span className="topMsg_number">{getThousandNum(yearSend,true)}%</span>
378
+                        changNun && <span className="topMsg_number">{getThousandNum(yearSend, true)}%</span>
370 379
                       }
371 380
                       <p className="topMsg_line"></p>
372 381
                       <Tooltip placement="bottom" title={' ● 截止更新日期的主产品库存数量。'}>
@@ -388,6 +397,62 @@ class Home extends Component {
388 397
                 </div>
389 398
               </div>
390 399
             </div>
400
+            <ul className="imgMsg">
401
+              {
402
+                toJS(imgMsgData).map((item, index) => {
403
+                  if (!item) { return }
404
+                  return (
405
+                    <li style={{ ...item?.styles }} class={index != 4 ? "animate__animated animate__bounceInUp animate__slower" : "animate__animated animate__bounceInUp animate__slower lastLi"}>
406
+                      {/* 矿产 */}
407
+                      {
408
+                        index != 4 && <div>
409
+                          {
410
+                            item.totalName && <p className="name">{item.totalName}</p>
411
+                          }
412
+                          {
413
+                            item.totalName && !changGif && <span class="shu1 nums">{item.total}</span>
414
+                          }
415
+                          {
416
+                            item.totalName && changGif && <span class="nums">{getThousandNum(item.total)}</span>
417
+                          }
418
+                          {
419
+                            item.totalName && <span className="sma">t</span>
420
+                          }
421
+
422
+                        </div>
423
+                      }
424
+                      {
425
+                        index == 4 && <span class="zhuan animate__animated animate__delay-1s animate__rotateIn animate__infinite animate__slower"></span>
426
+                      }
427
+                      {
428
+                        index == 4 && <div>
429
+                          
430
+                          {
431
+                            item.total && !changGif && <span class="shu1 nums">{item.total}</span>
432
+                          }
433
+                          {
434
+                            item.total && changGif && <span class="nums">{getThousandNum(item.total)}</span>
435
+                          }
436
+                          {
437
+                            item.total && <span className="sma">t</span>
438
+                          }
439
+                          {
440
+                            <p className="name">锂辉石库存总量</p>
441
+                          }
442
+                          {
443
+                            <p className="name" style={{marginTop:'-0.5em'}}>Spodumene Inventory</p>
444
+                          }
445
+
446
+                        </div>
447
+                      }
448
+
449
+
450
+                    </li>
451
+                  )
452
+                })
453
+              }
454
+            </ul>
455
+
391 456
 
392 457
           </div>
393 458
 
@@ -396,21 +461,21 @@ class Home extends Component {
396 461
             <div class="topMsg2 animate__animated animate__fadeInDown animate__slower">
397 462
               <div className="topMsg bigDivPd">
398 463
                 <Tooltip placement="bottom" title={' ● 近一年的百万工时损工率。'}>
399
-                  <p className="topMsg_title">计划完成率 <span className="topMsg_tips">/ Plan Completion Rate</span></p>
464
+                  <p className="topMsg_title" style={{marginBottom:'8px'}}>计划完成率 <span className="topMsg_tips">/ Plan Completion Rate</span></p>
400 465
                 </Tooltip>
401 466
                 <div className={changGif ? "topMsg_content changBg_topMsg_content" : "topMsg_content"} id="manHourBox">
402 467
                   <div className="topMsg_box">
403 468
                     <p className="topMsg_number_p topMsg_number_p_big">年度产量计划完成率</p>
404 469
                     <p className="topMsg_number_p">Completion rate of</p>
405
-                    <p className="topMsg_number_p" style={{marginBottom:'0.05rem'}}>annual production plan</p>
406
-                    <span className="topMsg_number" class="shu1">{getThousandNum(annualPlan,true)}</span>
470
+                    <p className="topMsg_number_p" style={{ marginBottom: '0.05rem' }}>annual production plan</p>
471
+                    <span className="topMsg_number" class="shu1">{getThousandNum(annualPlan, true)}</span>
407 472
                     <span className="topMsg_number_2">%</span>
408 473
                   </div>
409 474
                   <div className="topMsg_box">
410 475
                     <p className="topMsg_number_p topMsg_number_p_big">年度锂辉石计划执行率</p>
411 476
                     <p className="topMsg_number_p">Annual lithium pyroxene</p>
412
-                    <p className="topMsg_number_p" style={{marginBottom:'0.05rem'}}>plan execution rate</p>
413
-                    <span className="topMsg_number" class="shu1">{getThousandNum(implementationOfThePlan,true)}</span>
477
+                    <p className="topMsg_number_p" style={{ marginBottom: '0.05rem' }}>plan execution rate</p>
478
+                    <span className="topMsg_number" class="shu1">{getThousandNum(implementationOfThePlan, true)}</span>
414 479
                     <span className="topMsg_number_2">%</span>
415 480
                   </div>
416 481
                 </div>