소스 검색

硅铝微粉联调

yuzipei 4 일 전
부모
커밋
76dca44d12

+ 5 - 4
config/webpack.common.js

@@ -24,8 +24,8 @@ const plugins = [
24 24
       charset: "utf-8",
25 25
     },
26 26
     rootEl: "<div id='app'></div>",
27
-    favicon: path.resolve(__dirname,"../public/favicon.ico"),
28
-    globalApi: path.resolve(__dirname,"../public/baseUrlConfig.js"),
27
+    favicon: path.resolve(__dirname, "../public/favicon.ico"),
28
+    globalApi: path.resolve(__dirname, "../public/baseUrlConfig.js"),
29 29
     publicPath: './'
30 30
   }),
31 31
   new HtmlWebpackPlugin({
@@ -72,7 +72,7 @@ module.exports = {
72 72
           loader: "url-loader",
73 73
           options: /* 加载器相关的配置项 */ {
74 74
             name: 'static/[name].[ext]',
75
-            limit: /* <=limit的图片转换成base64 */ 10000,
75
+            limit: /* <=limit的图片转换成base64 */ 0,
76 76
             mimetype: "image/jpg|image|gif/png|image/ico",
77 77
             fallback: 'file-loader',
78 78
             publicPath: '../../' //采用根路径
@@ -118,7 +118,8 @@ module.exports = {
118 118
           },
119 119
         }],
120 120
       },
121
-      { test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)$/, 
121
+      {
122
+        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)$/,
122 123
         // use: 'file-loader' ,
123 124
         use: [{
124 125
           loader: 'file-loader',

+ 42 - 4
src/assets/css/styleTemplate.less

@@ -13,6 +13,10 @@
13 13
     font-family: 'DingTalkJinBuTi', "DingTalkSans";
14 14
   }
15 15
 
16
+  .mgb_box {
17
+    margin-bottom: 3% !important;
18
+  }
19
+
16 20
   #echarts7 {
17 21
     min-width: 400px;
18 22
     width: 95%;
@@ -24,6 +28,8 @@
24 28
   }
25 29
 
26 30
 
31
+
32
+
27 33
   .hidetip {
28 34
     display: none;
29 35
   }
@@ -395,13 +401,42 @@
395 401
       }
396 402
     }
397 403
 
398
-    @media (max-height: 900px) {
399
-      .video_box {
400
-        top: -2em;
401
-      }
404
+    .video_box3 {
405
+      position: absolute;
406
+      left: 0;
407
+      top: 0;
408
+      width: 98.5%;
409
+      // background: url(../imgs/dataVimg/homeBgDataV.png) no-repeat 0 -10em / 108% 120% #041b40;
410
+      height: 100%;
411
+      display: flex;
412
+      align-items: center;
413
+      justify-content: center;
414
+      flex-wrap: wrap;
415
+      pointer-events: none;
402 416
 
417
+      video {
418
+        width: 40%;
419
+        // height: 45%;
420
+        margin-top: -10%;
421
+        // padding: 1% 0 0 10%;
422
+      }
403 423
     }
404 424
 
425
+    // @media (max-height: 900px) {
426
+    //   .video_box3 {
427
+    //     top: -2em;
428
+    //   }
429
+
430
+    // }
431
+
432
+
433
+    // @media (max-height: 900px) {
434
+    //   .video_box {
435
+    //     top: -2em;
436
+    //   }
437
+
438
+    // }
439
+
405 440
 
406 441
   }
407 442
 
@@ -776,6 +811,7 @@
776 811
           align-items: center;
777 812
 
778 813
           #echarts5,
814
+          #echarts_drybase,
779 815
           #echarts51 {
780 816
             min-width: 400px;
781 817
             width: 100%;
@@ -790,6 +826,7 @@
790 826
 
791 827
       .bigDivPd {}
792 828
 
829
+
793 830
       .titleDiv {
794 831
         width: 100%;
795 832
         display: flex;
@@ -842,6 +879,7 @@
842 879
         margin-bottom: 2%;
843 880
       }
844 881
 
882
+
845 883
       .topMsg_2,
846 884
       .topMsg_3 {
847 885
         width: 100%;

BIN
src/assets/imgs/dataVImg/gvcVideo1.mp4


BIN
src/assets/imgs/dataVImg/gvcVideo2.mp4


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


BIN
src/assets/imgs/dataVImg/sial_video1.mp4


BIN
src/assets/imgs/dataVImg/sial_video2.mp4


+ 24 - 24
src/pages/gvc/api.js

@@ -11,10 +11,10 @@ export function checkToken(params) {
11 11
 /**各基地库存明细 */
12 12
 export function smallMaterialService(params) {
13 13
   return request({
14
-    url: "/dataengine-center-oneservice/list/1358057393917040084",
14
+    url: "/dataengine-center-oneservice/list/1431155205925726276",
15 15
     method: "POST",
16 16
     data: {
17
-      "apiId": "1358057393917040084",
17
+      "apiId": "1431155205925726276",
18 18
       "appKey": "200000135",
19 19
       "env": "PROD",
20 20
       "reqProtocol": 1,
@@ -30,10 +30,10 @@ export function smallMaterialService(params) {
30 30
       "useResultCache": false
31 31
     },
32 32
     headers: {
33
-      sign: 'fdb551d8c6a01d87c58970d519752d81',
33
+      sign: '5de9f29632bf379f46b1a0d1c5a85112',
34 34
       account: 'yunxi_fuxue',
35 35
       'Cache-Control': 'no-cache',
36
-      apiId: '1358057393917040084',
36
+      apiId: '1431155205925726276',
37 37
       appKey: '200000135',
38 38
       execType: '3',
39 39
       env: 'PROD',
@@ -45,10 +45,10 @@ export function smallMaterialService(params) {
45 45
 /**各基地日,月累计,年累计产量 */
46 46
 export function smallDayService(params) {
47 47
   return request({
48
-    url: "/dataengine-center-oneservice/list/1358059456248976873",
48
+    url: "/dataengine-center-oneservice/list/1431155399122708561",
49 49
     method: "POST",
50 50
     data: {
51
-      "apiId": "1358059456248976873",
51
+      "apiId": "1431155399122708561",
52 52
       "appKey": "200000135",
53 53
       "env": "PROD",
54 54
       "reqProtocol": 1,
@@ -63,10 +63,10 @@ export function smallDayService(params) {
63 63
       "useResultCache": false
64 64
     },
65 65
     headers: {
66
-      sign: '5f270b133af668b3631fbe7dbff9ebe4',
66
+      sign: 'df5c9e31ae6544ae9561c2d2a9f89702',
67 67
       account: 'yunxi_fuxue',
68 68
       'Cache-Control': 'no-cache',
69
-      apiId: '1358059456248976873',
69
+      apiId: '1431155399122708561',
70 70
       appKey: '200000135',
71 71
       execType: '3',
72 72
       env: 'PROD',
@@ -78,10 +78,10 @@ export function smallDayService(params) {
78 78
 /**左侧数据*/
79 79
 export function leftService(params) {
80 80
   return request({
81
-    url: "/dataengine-center-oneservice/list/1357592107129541992",
81
+    url: "/dataengine-center-oneservice/list/1431155462568896598",
82 82
     method: "POST",
83 83
     data: {
84
-      "apiId": "1357592107129541992",
84
+      "apiId": "1431155462568896598",
85 85
       "appKey": "200000135",
86 86
       "env": "PROD",
87 87
       "reqProtocol": 1,
@@ -95,10 +95,10 @@ export function leftService(params) {
95 95
       "useResultCache": false
96 96
     },
97 97
     headers: {
98
-      sign: '2d35f0b798fe2cc8443f95aed6da466a',
98
+      sign: 'a1288953bd76d9f0b202280c84062f60',
99 99
       account: 'yunxi_fuxue',
100 100
       'Cache-Control': 'no-cache',
101
-      apiId: '1357592107129541992',
101
+      apiId: '1431155462568896598',
102 102
       appKey: '200000135',
103 103
       execType: '3',
104 104
       env: 'PROD',
@@ -109,10 +109,10 @@ export function leftService(params) {
109 109
 /**累计销量客户*/
110 110
 export function rollService(params) {
111 111
   return request({
112
-    url: "/dataengine-center-oneservice/list/1357509594900108615",
112
+    url: "/dataengine-center-oneservice/list/1431155512914176090",
113 113
     method: "POST",
114 114
     data: {
115
-      "apiId": "1357509594900108615",
115
+      "apiId": "1431155512914176090",
116 116
       "appKey": "200000135",
117 117
       "env": "PROD",
118 118
       "reqProtocol": 1,
@@ -125,10 +125,10 @@ export function rollService(params) {
125 125
       "useResultCache": false
126 126
     },
127 127
     headers: {
128
-      sign: '839f9217d1cf81ec03ff6ccf54c86e37',
128
+      sign: '7e13e57d4d3b4430dad7eedaaf5fe668',
129 129
       account: 'yunxi_fuxue',
130 130
       'Cache-Control': 'no-cache',
131
-      apiId: '1357509594900108615',
131
+      apiId: '1431155512914176090',
132 132
       appKey: '200000135',
133 133
       execType: '3',
134 134
       env: 'PROD',
@@ -140,10 +140,10 @@ export function rollService(params) {
140 140
 /**锂辉石库存*/
141 141
 export function bigShopService(params) {
142 142
   return request({
143
-    url: "/dataengine-center-oneservice/list/1357489941160170789",
143
+    url: "/dataengine-center-oneservice/list/1431155276398422090",
144 144
     method: "POST",
145 145
     data: {
146
-      "apiId": "1357489941160170789",
146
+      "apiId": "1431155276398422090",
147 147
       "appKey": "200000135",
148 148
       "env": "PROD",
149 149
       "reqProtocol": 1,
@@ -156,10 +156,10 @@ export function bigShopService(params) {
156 156
       "useResultCache": false
157 157
     },
158 158
     headers: {
159
-      sign: 'ae4c520da5ae882455307324f75f5277',
159
+      sign: '253c1c9594881b0724b3403e9ea78527',
160 160
       account: 'yunxi_fuxue',
161 161
       'Cache-Control': 'no-cache',
162
-      apiId: '1357489941160170789',
162
+      apiId: '1431155276398422090',
163 163
       appKey: '200000135',
164 164
       execType: '3',
165 165
       env: 'PROD',
@@ -170,10 +170,10 @@ export function bigShopService(params) {
170 170
 /**个基地年累计产量,库存*/
171 171
 export function smallShopService(params) {
172 172
   return request({
173
-    url: "/dataengine-center-oneservice/list/1357592780709598582",
173
+    url: "/dataengine-center-oneservice/list/1431155337148721229",
174 174
     method: "POST",
175 175
     data: {
176
-      "apiId": "1357592780709598582",
176
+      "apiId": "1431155337148721229",
177 177
       "appKey": "200000135",
178 178
       "env": "PROD",
179 179
       "reqProtocol": 1,
@@ -187,10 +187,10 @@ export function smallShopService(params) {
187 187
       "useResultCache": false
188 188
     },
189 189
     headers: {
190
-      sign: 'a842b5c5c462d7cacd2baad402ea94a7',
190
+      sign: 'ae68ccba4a6c70600cd9c75be6eb8264',
191 191
       account: 'yunxi_fuxue',
192 192
       'Cache-Control': 'no-cache',
193
-      apiId: '1357592780709598582',
193
+      apiId: '1431155337148721229',
194 194
       appKey: '200000135',
195 195
       execType: '3',
196 196
       env: 'PROD',

+ 230 - 0
src/pages/gvc/api2.js

@@ -0,0 +1,230 @@
1
+import request from "@utils/request";
2
+
3
+/**登录*/
4
+export function checkToken(params) {
5
+  return request({
6
+    url: `/api/yonghong/checkToken?token=${params}`,
7
+    method: "GEt",
8
+  });
9
+}
10
+
11
+/**各基地库存明细 */
12
+export function smallMaterialService(params) {
13
+  return request({
14
+    url: "/dataengine-center-oneservice/list/1358057393917040084",
15
+    method: "POST",
16
+    data: {
17
+      "apiId": "1358057393917040084",
18
+      "appKey": "200000135",
19
+      "env": "PROD",
20
+      "reqProtocol": 1,
21
+      "returnFields": [
22
+        "factoryCode",
23
+        "factoryName",
24
+        "prodCatgoryCode",
25
+        "prodCatgory",
26
+        "indexValue",
27
+      ],
28
+      "pageNum": 1,
29
+      "pageSize": 100,
30
+      "useResultCache": false
31
+    },
32
+    headers: {
33
+      sign: 'fdb551d8c6a01d87c58970d519752d81',
34
+      account: 'yunxi_fuxue',
35
+      'Cache-Control': 'no-cache',
36
+      apiId: '1358057393917040084',
37
+      appKey: '200000135',
38
+      execType: '3',
39
+      env: 'PROD',
40
+    }
41
+  });
42
+}
43
+
44
+
45
+/**各基地日,月累计,年累计产量 */
46
+export function smallDayService(params) {
47
+  return request({
48
+    url: "/dataengine-center-oneservice/list/1358059456248976873",
49
+    method: "POST",
50
+    data: {
51
+      "apiId": "1358059456248976873",
52
+      "appKey": "200000135",
53
+      "env": "PROD",
54
+      "reqProtocol": 1,
55
+      "returnFields": [
56
+        "factoryCode",
57
+        "factoryNameCode",
58
+        "dateType",
59
+        "indexValue"
60
+      ],
61
+      "pageNum": 1,
62
+      "pageSize": 20,
63
+      "useResultCache": false
64
+    },
65
+    headers: {
66
+      sign: '5f270b133af668b3631fbe7dbff9ebe4',
67
+      account: 'yunxi_fuxue',
68
+      'Cache-Control': 'no-cache',
69
+      apiId: '1358059456248976873',
70
+      appKey: '200000135',
71
+      execType: '3',
72
+      env: 'PROD',
73
+    }
74
+  });
75
+}
76
+
77
+
78
+/**左侧数据*/
79
+export function leftService(params) {
80
+  return request({
81
+    url: "/dataengine-center-oneservice/list/1357592107129541992",
82
+    method: "POST",
83
+    data: {
84
+      "apiId": "1357592107129541992",
85
+      "appKey": "200000135",
86
+      "env": "PROD",
87
+      "reqProtocol": 1,
88
+      "returnFields": [
89
+        "prodCode",
90
+        "production",
91
+        "inventory"
92
+      ],
93
+      "pageNum": 1,
94
+      "pageSize": 10,
95
+      "useResultCache": false
96
+    },
97
+    headers: {
98
+      sign: '2d35f0b798fe2cc8443f95aed6da466a',
99
+      account: 'yunxi_fuxue',
100
+      'Cache-Control': 'no-cache',
101
+      apiId: '1357592107129541992',
102
+      appKey: '200000135',
103
+      execType: '3',
104
+      env: 'PROD',
105
+    }
106
+  });
107
+}
108
+
109
+/**累计销量客户*/
110
+export function rollService(params) {
111
+  return request({
112
+    url: "/dataengine-center-oneservice/list/1357509594900108615",
113
+    method: "POST",
114
+    data: {
115
+      "apiId": "1357509594900108615",
116
+      "appKey": "200000135",
117
+      "env": "PROD",
118
+      "reqProtocol": 1,
119
+      "returnFields": [
120
+        "customerName",
121
+        "salesQty"
122
+      ],
123
+      "pageNum": 1,
124
+      "pageSize": 10,
125
+      "useResultCache": false
126
+    },
127
+    headers: {
128
+      sign: '839f9217d1cf81ec03ff6ccf54c86e37',
129
+      account: 'yunxi_fuxue',
130
+      'Cache-Control': 'no-cache',
131
+      apiId: '1357509594900108615',
132
+      appKey: '200000135',
133
+      execType: '3',
134
+      env: 'PROD',
135
+    }
136
+  });
137
+}
138
+
139
+
140
+/**锂辉石库存*/
141
+export function bigShopService(params) {
142
+  return request({
143
+    url: "/dataengine-center-oneservice/list/1357489941160170789",
144
+    method: "POST",
145
+    data: {
146
+      "apiId": "1357489941160170789",
147
+      "appKey": "200000135",
148
+      "env": "PROD",
149
+      "reqProtocol": 1,
150
+      "returnFields": [
151
+        "warehouseNameCode",
152
+        "indexValue",
153
+      ],
154
+      "pageNum": 1,
155
+      "pageSize": 10,
156
+      "useResultCache": false
157
+    },
158
+    headers: {
159
+      sign: 'ae4c520da5ae882455307324f75f5277',
160
+      account: 'yunxi_fuxue',
161
+      'Cache-Control': 'no-cache',
162
+      apiId: '1357489941160170789',
163
+      appKey: '200000135',
164
+      execType: '3',
165
+      env: 'PROD',
166
+    }
167
+  });
168
+}
169
+
170
+/**个基地年累计产量,库存*/
171
+export function smallShopService(params) {
172
+  return request({
173
+    url: "/dataengine-center-oneservice/list/1357592780709598582",
174
+    method: "POST",
175
+    data: {
176
+      "apiId": "1357592780709598582",
177
+      "appKey": "200000135",
178
+      "env": "PROD",
179
+      "reqProtocol": 1,
180
+      "returnFields": [
181
+        "factoryCode",
182
+        "production",
183
+        "inventory",
184
+      ],
185
+      "pageNum": 1,
186
+      "pageSize": 10,
187
+      "useResultCache": false
188
+    },
189
+    headers: {
190
+      sign: 'a842b5c5c462d7cacd2baad402ea94a7',
191
+      account: 'yunxi_fuxue',
192
+      'Cache-Control': 'no-cache',
193
+      apiId: '1357592780709598582',
194
+      appKey: '200000135',
195
+      execType: '3',
196
+      env: 'PROD',
197
+    }
198
+  });
199
+}
200
+
201
+/**更新日期*/
202
+export function updateTimeService(params) {
203
+  return request({
204
+    url: "/dataengine-center-oneservice/list/1356778817327502618",
205
+    method: "POST",
206
+    data: {
207
+      "apiId": "1356778817327502618",
208
+      "appKey": "200000134",
209
+      "env": "PROD",
210
+      "reqProtocol": 1,
211
+      "returnFields": [
212
+        "etlTime"
213
+      ],
214
+      "pageNum": 1,
215
+      "pageSize": 10,
216
+      "useResultCache": false
217
+    },
218
+    headers: {
219
+      sign: '4365b6564b25c852fcf0228188f48114',
220
+      account: 'yunxi_fuxue',
221
+      'Cache-Control': 'no-cache',
222
+      apiId: '1356778817327502618',
223
+      appKey: '200000134',
224
+      execType: '3',
225
+      env: 'PROD',
226
+    }
227
+  });
228
+}
229
+
230
+

+ 1 - 1
src/pages/gvc/component/mapView2.jsx

@@ -104,7 +104,7 @@ class MapViewTwo extends Component {
104 104
     return (
105 105
       <div class="video_box video_box_hide gvc_video animate__animated animate__fadeOut animate__delay-2s animate__slower">
106 106
         <div className="alls">
107
-          <video src={require("@assets/imgs/dataVimg/videoGvc.mp4").default} autoplay="autoplay" class="videoBoxViem"></video>
107
+          <video src={require("@assets/imgs/dataVimg/gvcVideo1.mp4").default} autoplay="autoplay" class="videoBoxViem"></video>
108 108
         </div>
109 109
       </div>
110 110
     )

+ 2 - 3
src/pages/gvc/style.less

@@ -36,10 +36,9 @@
36 36
 
37 37
 
38 38
         .alls {
39
-
40
-          width: 70%;
39
+          width: 80%;
41 40
           height: unset;
42
-          padding: 2% 0 0 0;
41
+          padding: 2% 0% 0% 2%;
43 42
           position: relative;
44 43
         }
45 44
 

+ 39 - 18
src/pages/gvc/view.jsx

@@ -23,7 +23,7 @@ import {
23 23
   updateTimeService
24 24
 } from "./api";
25 25
 import MapViewTwo from "./component/mapView2.jsx";
26
-import mpVideoGvc from "@assets/imgs/dataVimg/videoGvc2.mp4";
26
+import mpVideoGvc from "@assets/imgs/dataVimg/gvcVideo2.mp4";
27 27
 import gvcbg from "@assets/imgs/dataVimg/gvcbg.png";
28 28
 
29 29
 import { getThousandNum, deleteCacheAndChangeUrl, timestampToTime, setWaterMark } from "@utils/util";
@@ -190,8 +190,8 @@ class Gvc extends Component {
190 190
     await bigShopService().then(({ data = [], resultCode }) => {
191 191
       if (+resultCode === 0) {
192 192
         console.log('getUrl2', data)
193
-        const name_ = ["", "锂辉石(化学级)库存量", "锂辉石(化学级)库存量", "累计运输锂辉石(化学级)"];
194
-        const style__ = [{}, { left: "28%", top: "40%", width: '12em' }, { left: "5%", top: "55%", width: '12em' }, { left: "-3%", top: "27%", width: '12em' }]
193
+        const name_ = ["", "锂辉石(化学级)库存量", "锂辉石(化学级)库存量", "累计运输锂辉石(化学级)", "", "锂辉石(化学级)在途库存"];
194
+        const style__ = [{}, { left: "28%", top: "40%", width: '12em' }, { left: "3%", top: "57%", width: '12em' }, { left: "-6%", top: "29%", width: '12em' }, "", { left: "12%", top: "30%", width: '12em' }]
195 195
         data = data.map((x, i) => {
196 196
           return {
197 197
             ...x,
@@ -200,16 +200,20 @@ class Gvc extends Component {
200 200
             styles: style__[x.warehouseNameCode],
201 201
             cumulativeProduction: null,
202 202
             inventory: 0,
203
+            showDetail: x.warehouseNameCode == 5 //在途显示明细
203 204
           }
204 205
         });
205 206
         const d_1 = data.filter(x => { return x.warehouseNameCode == 3 })[0];
206 207
         const d_2 = data.filter(x => { return x.warehouseNameCode == 2 })[0];
207 208
         const d_3 = data.filter(x => { return x.warehouseNameCode == 1 })[0];
208 209
         const d_4 = data.filter(x => { return x.warehouseNameCode == 4 })[0];
210
+        const d_10 = data.filter(x => { return x.warehouseNameCode == 5 })[0];
209 211
         let old_imgMsgData = this.store.state.imgMsgData;
210 212
         old_imgMsgData[0] = d_1;
211 213
         old_imgMsgData[1] = d_2;
212 214
         old_imgMsgData[2] = d_3;
215
+        old_imgMsgData[10] = d_10;
216
+
213 217
 
214 218
         this.setState({ LeftHtml: [...[{ txt_name: '锂辉石(化学级)', num1: d_4?.indexValue }], ...this.state.LeftHtml] });
215 219
         this.store.saveState({ imgMsgData: old_imgMsgData });
@@ -220,7 +224,7 @@ class Gvc extends Component {
220 224
     await smallShopService().then(({ data = [], resultCode }) => {
221 225
       if (+resultCode === 0) {
222 226
         console.log('getUrl4', data)
223
-        const style__ = [{}, { left: "49%", top: "24%" }, { left: "32%", top: "73%" }, { left: "53%", top: "57%" }, { left: "71%", top: "44%" }, { left: "16%", top: "86%" }]
227
+        const style__ = [{}, { left: "47%", top: "25%" }, { left: "33%", top: "72%" }, { left: "52%", top: "57%" }, { left: "71%", top: "44%" }, { left: "14%", top: "86%" }, { left: "-4%", top: "100%" }, { left: "90%", top: "31%" }]
224 228
         data = data.map((x, i) => {
225 229
           return {
226 230
             ...x,
@@ -236,12 +240,16 @@ class Gvc extends Component {
236 240
         const d_3 = data.filter(x => { return x.factoryCode == 3 })[0];//射洪
237 241
         const d_4 = data.filter(x => { return x.factoryCode == 2 })[0];//安居
238 242
         const d_5 = data.filter(x => { return x.factoryCode == 1 })[0];//外加工厂
243
+        const d_6 = data.filter(x => { return x.factoryCode == 6 })[0];//苏州
244
+        const d_7 = data.filter(x => { return x.factoryCode == 7 })[0];//重庆锂电
239 245
         let old_imgMsgData = this.store.state.imgMsgData;
240 246
         old_imgMsgData[3] = d_1;
241 247
         old_imgMsgData[4] = d_2;
242 248
         old_imgMsgData[5] = d_3;
243 249
         old_imgMsgData[6] = d_4;
244 250
         old_imgMsgData[7] = d_5;
251
+        old_imgMsgData[8] = d_6;
252
+        old_imgMsgData[9] = d_7;
245 253
 
246 254
 
247 255
         console.log(old_imgMsgData, "old_imgMsgData")
@@ -272,12 +280,16 @@ class Gvc extends Component {
272 280
         // const d_4 = data.filter(x=>{return x.factoryCode == 2})[0];
273 281
         const d_4 = getItems(2);
274 282
         const d_5 = getItems(1);
283
+        const d_6 = getItems(6);
284
+        const d_7 = getItems(7);
275 285
         let old_imgMsgData = this.store.state.imgMsgData;
276 286
         old_imgMsgData[3] = { ...old_imgMsgData[3], ...d_1 };
277 287
         old_imgMsgData[4] = { ...old_imgMsgData[4], ...d_2 };
278 288
         old_imgMsgData[5] = { ...old_imgMsgData[5], ...d_3 };
279 289
         old_imgMsgData[6] = { ...old_imgMsgData[6], ...d_4 };
280 290
         old_imgMsgData[7] = { ...old_imgMsgData[7], ...d_5 };
291
+        old_imgMsgData[8] = { ...old_imgMsgData[8], ...d_6 };
292
+        old_imgMsgData[9] = { ...old_imgMsgData[9], ...d_7 };
281 293
         console.log(old_imgMsgData, "1111old_imgMsgData")
282 294
         this.store.saveState({ imgMsgData: old_imgMsgData });
283 295
         setTimeout(() => {
@@ -313,7 +325,9 @@ class Gvc extends Component {
313 325
         const d_3 = getItems(3);
314 326
         const d_4 = getItems(2);
315 327
         const d_5 = getItems(1);
316
-
328
+        const d_6 = getItems(6);
329
+        const d_7 = getItems(7);
330
+        const d_8 = getItems(8);//锂辉石在途库存
317 331
 
318 332
         let old_imgMsgData = this.store.state.imgMsgData;
319 333
         old_imgMsgData[3] = { ...old_imgMsgData[3], ...d_1 };
@@ -321,6 +335,9 @@ class Gvc extends Component {
321 335
         old_imgMsgData[5] = { ...old_imgMsgData[5], ...d_3 };
322 336
         old_imgMsgData[6] = { ...old_imgMsgData[6], ...d_4 };
323 337
         old_imgMsgData[7] = { ...old_imgMsgData[7], ...d_5 };
338
+        old_imgMsgData[8] = { ...old_imgMsgData[8], ...d_6 };
339
+        old_imgMsgData[9] = { ...old_imgMsgData[9], ...d_7 };
340
+        old_imgMsgData[10] = { ...old_imgMsgData[10], ...d_8 };
324 341
         console.log(old_imgMsgData, "1111old_imgMsgData")
325 342
         this.store.saveState({ imgMsgData: old_imgMsgData });
326 343
       }
@@ -387,6 +404,7 @@ class Gvc extends Component {
387 404
   render() {
388 405
     const stores = this.store.state;
389 406
     let { totalValue, yearDecline, yearSend, imgMsgData } = this.store.state;
407
+    console.log('imgMsgData', toJS(imgMsgData))
390 408
     let { LeftHtml, updateTime, changGif, leftName, rightName } = this.state;
391 409
     return (
392 410
       <div className={[styles.gvc_home + ' home_box ']}>
@@ -414,12 +432,12 @@ class Gvc extends Component {
414 432
 
415 433
         <div className={"all_box"}>
416 434
           {/* 视频播放器 */}
417
-          {/* <MapViewTwo></MapViewTwo> */}
435
+          <MapViewTwo></MapViewTwo>
418 436
           <div className={"video_box gvc_video"}>
419 437
             <div className="alls">
420
-              {/* <video src={mpVideoGvc} playbackRate={0.5} autoplay="autoplay" loop="loop" class="video_box_2 animate__animated animate__fadeIn animate__delay-2s">
421
-              </video> */}
422
-              <img src={require("@assets/imgs/dataVimg/gvcbg.png").default} alt="" class="video_box_2 center_box2 animate__animated animate__fadeIn animate__delay-2s" />
438
+              <video src={mpVideoGvc} playbackRate={0.5} autoplay="autoplay" loop="loop" class="video_box_2 animate__animated animate__fadeIn animate__delay-2s">
439
+              </video>
440
+              {/* <img src={require("@assets/imgs/dataVimg/gvcbg.png").default} alt="" class="video_box_2 center_box2 animate__animated animate__fadeIn animate__delay-2s" /> */}
423 441
             </div>
424 442
 
425 443
           </div>
@@ -459,17 +477,20 @@ class Gvc extends Component {
459 477
                         }
460 478
                         {/* 基地 */}
461 479
                         {
462
-                          item.cumulativeProduction !== null && <div className="hoverR">
480
+                          (item.cumulativeProduction !== null || item.showDetail) && <div className="hoverR">
463 481
                             <div className="hoverDiv chanL">
464 482
                               {/* <div style={{ width: "62%","textAlign":'right' }}> */}
465
-                              <div style={{ width: "38%" }}>
466
-                                <p className="title">
467
-                                  产量/吨
468
-                                </p>
469
-                                <span>日:{item.day}</span>
470
-                                <span>月:{item.mood}</span>
471
-                                <span>年:{item.year}</span>
472
-                              </div>
483
+                              {
484
+                                item.cumulativeProduction !== null && <div style={{ width: "38%" }}>
485
+                                  <p className="title">
486
+                                    产量/吨
487
+                                  </p>
488
+                                  <span>日:{item.day}</span>
489
+                                  <span>月:{item.mood}</span>
490
+                                  <span>年:{item.year}</span>
491
+                                </div>
492
+                              }
493
+
473 494
                               <div style={{ width: index == 5 ? "58%" : "57%" }}>
474 495
                                 <p className="title">
475 496
                                   库存/吨

+ 63 - 31
src/pages/sial/api.js

@@ -73,14 +73,14 @@ export function momeyService(params) {
73 73
 }
74 74
 
75 75
 
76
-/**百万工时损工率   产量计划完成率*/
76
+/** 产量计划完成率*/
77 77
 export function timeService(params) {
78 78
   return request({
79
-    url: "/dataengine-center-oneservice/list/1356250124518724729",
79
+    url: "/dataengine-center-oneservice/list/1435868883211217227",
80 80
     method: "POST",
81 81
     data: {
82
-      "apiId": "1356250124518724729",
83
-      "appKey": "200000134",
82
+      "apiId": "1435868883211217227",
83
+      "appKey": "200000138",
84 84
       "env": "PROD",
85 85
       "reqProtocol": 1,
86 86
       "returnFields": [
@@ -93,11 +93,11 @@ export function timeService(params) {
93 93
       "useResultCache": false
94 94
     },
95 95
     headers: {
96
-      sign: '46847fe90889330f13cdc3318d848d45',
96
+      sign: '897e941a533a75ae9bf82305f2d6df34',
97 97
       account: 'yunxi_fuxue',
98 98
       'Cache-Control': 'no-cache',
99
-      apiId: '1356250124518724729',
100
-      appKey: '200000134',
99
+      apiId: '1435868883211217227',
100
+      appKey: '200000138',
101 101
       execType: '3',
102 102
       env: 'PROD',
103 103
     }
@@ -107,11 +107,11 @@ export function timeService(params) {
107 107
 /**产值+发货量+产量+库存*/
108 108
 export function numberService(params) {
109 109
   return request({
110
-    url: "/dataengine-center-oneservice/list/1356243326548087867",
110
+    url: "/dataengine-center-oneservice/list/1435869479216572764",
111 111
     method: "POST",
112 112
     data: {
113
-      "apiId": "1356243326548087867",
114
-      "appKey": "200000134",
113
+      "apiId": "1435869479216572764",
114
+      "appKey": "200000138",
115 115
       "env": "PROD",
116 116
       "reqProtocol": 1,
117 117
       "returnFields": [
@@ -123,11 +123,11 @@ export function numberService(params) {
123 123
       "useResultCache": false
124 124
     },
125 125
     headers: {
126
-      sign: '2f079b53e1e63b753bb6f9807f6c6818',
126
+      sign: 'e764fa1aae81091bde971cd28a709dfa',
127 127
       account: 'yunxi_fuxue',
128 128
       'Cache-Control': 'no-cache',
129
-      apiId: '1356243326548087867',
130
-      appKey: '200000134',
129
+      apiId: '1435869479216572764',
130
+      appKey: '200000138',
131 131
       execType: '3',
132 132
       env: 'PROD',
133 133
     }
@@ -138,11 +138,11 @@ export function numberService(params) {
138 138
 /**近30天产量*/
139 139
 export function mondService(params) {
140 140
   return request({
141
-    url: "/dataengine-center-oneservice/list/1356244872119751767",
141
+    url: "/dataengine-center-oneservice/list/1435868691592341823",
142 142
     method: "POST",
143 143
     data: {
144
-      "apiId": "1356244872119751767",
145
-      "appKey": "200000134",
144
+      "apiId": "1435868691592341823",
145
+      "appKey": "200000138",
146 146
       "env": "PROD",
147 147
       "reqProtocol": 1,
148 148
       "returnFields": [
@@ -156,11 +156,11 @@ export function mondService(params) {
156 156
       "useResultCache": false
157 157
     },
158 158
     headers: {
159
-      sign: 'ef3ecc442896d925cc02d36f1107d9e3',
159
+      sign: '419a4e9f3c7ed4b18c42b211e4d209fc',
160 160
       account: 'yunxi_fuxue',
161 161
       'Cache-Control': 'no-cache',
162
-      apiId: '1356244872119751767',
163
-      appKey: '200000134',
162
+      apiId: '1435868691592341823',
163
+      appKey: '200000138',
164 164
       execType: '3',
165 165
       env: 'PROD',
166 166
     }
@@ -170,11 +170,11 @@ export function mondService(params) {
170 170
 /**月度产量/发货量+一次合格率*/
171 171
 export function twoService(params) {
172 172
   return request({
173
-    url: "/dataengine-center-oneservice/list/1356411403496625359",
173
+    url: "/dataengine-center-oneservice/list/1435869411763775830",
174 174
     method: "POST",
175 175
     data: {
176
-      "apiId": "1356411403496625359",
177
-      "appKey": "200000134",
176
+      "apiId": "1435869411763775830",
177
+      "appKey": "200000138",
178 178
       "env": "PROD",
179 179
       "reqProtocol": 1,
180 180
       "returnFields": [
@@ -183,17 +183,49 @@ export function twoService(params) {
183 183
         "deliveryQty",
184 184
         "qcRate",
185 185
         "targeRate",
186
+        "budgetProdQty",
187
+        "budgetSalesQty"
186 188
       ],
187 189
       "pageNum": 1,
188 190
       "pageSize": 10,
189 191
       "useResultCache": false
190 192
     },
191 193
     headers: {
192
-      sign: '9c472223a9acbdb9f16bebb7002e0c40',
194
+      sign: 'c1a4f54cc466dbc636391987832361f3',
193 195
       account: 'yunxi_fuxue',
194 196
       'Cache-Control': 'no-cache',
195
-      apiId: '1356411403496625359',
196
-      appKey: '200000134',
197
+      apiId: '1435869411763775830',
198
+      appKey: '200000138',
199
+      execType: '3',
200
+      env: 'PROD',
201
+    }
202
+  });
203
+}
204
+/**干基产率*/
205
+export function dryBaseData(params) {
206
+  return request({
207
+    url: "/dataengine-center-oneservice/list/1435869551190829407",
208
+    method: "POST",
209
+    data: {
210
+      "apiId": "1435869551190829407",
211
+      "appKey": "200000138",
212
+      "env": "PROD",
213
+      "reqProtocol": 1,
214
+      "returnFields": [
215
+        "bMonth",
216
+        "factoryName",
217
+        "indexValue",
218
+      ],
219
+      "pageNum": 1,
220
+      "pageSize": 10,
221
+      "useResultCache": false
222
+    },
223
+    headers: {
224
+      sign: 'd220845f9b15022fe9cd97aab13935f9',
225
+      account: 'yunxi_fuxue',
226
+      'Cache-Control': 'no-cache',
227
+      apiId: '1435869551190829407',
228
+      appKey: '200000138',
197 229
       execType: '3',
198 230
       env: 'PROD',
199 231
     }
@@ -203,11 +235,11 @@ export function twoService(params) {
203 235
 /**更新日期*/
204 236
 export function updateTimeService(params) {
205 237
   return request({
206
-    url: "/dataengine-center-oneservice/list/1356778817327502618",
238
+    url: "/dataengine-center-oneservice/list/1435869869019457910",
207 239
     method: "POST",
208 240
     data: {
209
-      "apiId": "1356778817327502618",
210
-      "appKey": "200000134",
241
+      "apiId": "1435869869019457910",
242
+      "appKey": "200000138",
211 243
       "env": "PROD",
212 244
       "reqProtocol": 1,
213 245
       "returnFields": [
@@ -218,11 +250,11 @@ export function updateTimeService(params) {
218 250
       "useResultCache": false
219 251
     },
220 252
     headers: {
221
-      sign: '4365b6564b25c852fcf0228188f48114',
253
+      sign: '5646c212a5cc864e43c14c2e7e4414b8',
222 254
       account: 'yunxi_fuxue',
223 255
       'Cache-Control': 'no-cache',
224
-      apiId: '1356778817327502618',
225
-      appKey: '200000134',
256
+      apiId: '1435869869019457910',
257
+      appKey: '200000138',
226 258
       execType: '3',
227 259
       env: 'PROD',
228 260
     }

+ 217 - 0
src/pages/sial/component/dryBaseQualified.jsx

@@ -0,0 +1,217 @@
1
+/*
2
+ * @Author: dayan_hjm 一次合格率
3
+ * @Date: 2023-10-23 09:32:12 
4
+ * @Last Modified by: dayan_hjm
5
+ * @Last Modified time: 2023-12-19 16:02:23
6
+ */
7
+
8
+
9
+import React, { useState, useEffect, Component } from "react";
10
+import styles from "../style.less";
11
+import { useHistory, useLocation, withRouter } from "react-router-dom";
12
+import mod from '../mod';
13
+import {
14
+  dryBaseData,
15
+} from "../api";
16
+
17
+@withRouter
18
+
19
+class BottomLineForSend extends Component {
20
+  // 构造函数,组件的实例创建时,最先执行
21
+  constructor(props, context) {
22
+    super(props, context);
23
+    this.store = mod;
24
+    this.state = {
25
+      yantingRate: [],
26
+      year: [],
27
+      suzhouRate: [],
28
+    };
29
+  }
30
+
31
+  componentDidMount() {
32
+    this.getUrl()
33
+  }
34
+
35
+  async getUrl() {
36
+    await dryBaseData().then(({ data = [], resultCode }) => {
37
+      if (+resultCode === 0) {
38
+        let year = [], suzhouRate = [], yantingRate = [];
39
+        data.map((x, i) => {
40
+          year.push(x.bMonth);
41
+          if (x.factoryName == '盐亭') {
42
+            yantingRate.push(x.indexValue)
43
+          } else if (x.factoryName == '盐亭') {
44
+            suzhouRate.push(x.indexValue)
45
+          }
46
+        });
47
+        this.setState({ year, yantingRate, suzhouRate });
48
+        this.setData();
49
+      }
50
+    });
51
+  }
52
+  roundFun(value = 0) {
53
+    value = value * 100;
54
+    var str = parseFloat(value).toFixed(10);
55
+    var num = str.substring(0, str.lastIndexOf('.') + 3);
56
+    return num
57
+  }
58
+
59
+
60
+  setData() {
61
+    setTimeout(() => {
62
+      // 基于准备好的dom,初始化echarts实例
63
+      var myChart = echarts.init(document.getElementById('echarts_drybase'));
64
+
65
+      var option = {
66
+        tooltip: {
67
+          trigger: 'axis',
68
+          axisPointer: { type: 'shadow' },
69
+          borderColor: "rgba(105, 255, 222, 0.5)",
70
+          borderWidth: 2,
71
+          padding: 2,
72
+          textStyle: {
73
+            fontSize: 12,
74
+            color: "#ededed"
75
+          },
76
+          formatter: (param) => {
77
+            return (param[0] && param[0].seriesName ? param[0].seriesName + ":" : "") + (param[0] && param[0].value ? this.roundFun(param[0].value) + "%<br />" : "") + (param[1] && param[1].seriesName ? param[1].seriesName + ":" : "") + (param[1] && param[1].value ? this.roundFun(param[1].value) + "%" : "")
78
+            // return (
79
+            //   <div>
80
+            //     <p>
81
+            //       <span>{param[0] && param[0].seriesName ? param[0].seriesName + ":" : ""}</span>
82
+            //       <span>{param[0] && param[0].value ? param[0].value.toFixed(2) + "%<br />" : ""}</span>
83
+            //     </p>
84
+            //     <p>
85
+            //       <span>{param[1] && param[1].seriesName ? param[1].seriesName + ":" : ""}</span>
86
+            //       <span>{param[1] && param[1].value ? param[1].value.toFixed(2) + "%" : ""}</span>
87
+            //     </p>
88
+            //   </div>
89
+            // )
90
+          },
91
+          //  `{a0}: {c0}<br />{a1}: {c1}`,
92
+          backgroundColor: "#0000008a"
93
+        }, "grid": {
94
+          "top": "20%",
95
+          "right": "5%",
96
+          "bottom": "20",
97
+          "left": "10%",
98
+        },
99
+        legend: {
100
+          data: ['盐亭', '苏州'],
101
+          right: 'center',
102
+          padding: [10, 0, 0, 5],
103
+          top: 0,
104
+          textStyle: {
105
+            color: "#fff",
106
+            fontSize: 10,
107
+          },
108
+          itemWidth: 12,
109
+          itemHeight: 5,
110
+        },
111
+        "xAxis": [
112
+          {
113
+            "type": "category",
114
+            data: this.state.year,
115
+            axisLine: { lineStyle: { color: "rgba(255,255,255,.1)" } },
116
+            axisLabel: {
117
+              textStyle: { color: "'#7d7d7d'", fontSize: '12', },
118
+            },
119
+            splitLine: {
120
+              show: true,
121
+              lineStyle: {
122
+                color: '#3b3b3b',
123
+                type: 'dashed',
124
+
125
+              }
126
+            }
127
+
128
+          },
129
+        ],
130
+        "yAxis": [
131
+          {
132
+            type: 'value',
133
+            axisLine: {
134
+              lineStyle: {
135
+                color: '#7d7d7d',
136
+                type: 'dashed',
137
+              },
138
+            },
139
+            min: 0,
140
+            max: 1,
141
+            // splitNumber: 5,
142
+            axisTick: { show: false },
143
+            axisLabel: {
144
+              formatter: (value) => {
145
+                return value * 100 + '%'
146
+              },
147
+              textStyle: {
148
+                color: '#7d7d7d',
149
+                fontSize: 12
150
+              }
151
+            },
152
+            splitLine: {
153
+              show: true,
154
+              lineStyle: {
155
+                color: '#3b3b3b',
156
+                type: 'dashed',
157
+
158
+              }
159
+            }
160
+          },
161
+        ],
162
+        "series": [
163
+          {
164
+            "name": "盐亭",
165
+            "type": "line",
166
+            data: this.state.yantingRate,
167
+            lineStyle: {
168
+              normal: {
169
+                width: 2
170
+              },
171
+            },
172
+            "itemStyle": {
173
+              "normal": {
174
+                "color": "#69FFDE",
175
+
176
+              }
177
+            },
178
+            "smooth": true
179
+          },
180
+          {
181
+            "name": "苏州",
182
+            "type": "line",
183
+            data: this.state.suzhouRate,
184
+            lineStyle: {
185
+              normal: {
186
+                width: 2
187
+              },
188
+            },
189
+            "itemStyle": {
190
+              "normal": {
191
+                "color": "#FFCE00",
192
+
193
+              }
194
+            },
195
+            "smooth": true
196
+          }
197
+        ]
198
+      };
199
+      // 使用刚指定的配置项和数据显示图表。
200
+      myChart.setOption(option);
201
+      window.addEventListener("resize", function () {
202
+        myChart.resize();
203
+      });
204
+
205
+    }, 3000)
206
+  }
207
+
208
+  render() {
209
+
210
+    return (
211
+      <div className={["eacharView cbBottomLineForSend"]}>
212
+        <div id="echarts_drybase"></div>
213
+      </div>
214
+    )
215
+  }
216
+}
217
+export default BottomLineForSend;

+ 3 - 3
src/pages/sial/component/mapView.jsx

@@ -54,7 +54,7 @@ class MapView extends Component {
54 54
         媒体参与度(Media Engagement)是指用户与媒体内容进行互动的程度,可以通过多个指标来衡量。这些指标主要包括观看时间、观看率、转化率、交互行为等。
55 55
         可以通过:chrome://media-engagement/ 查看
56 56
      */
57
-    const video = document.querySelector('.video1');
57
+    const video = document.querySelector('.videoBoxViem');
58 58
     console.log(video.play());
59 59
 
60 60
     const model = document.querySelector('.model')
@@ -100,8 +100,8 @@ 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">
104
-          <video src={require("@assets/imgs/dataVImg/homeVideo.mp4").default} autoplay="autoplay" class="video1"></video>
103
+      <div class="video_box3 video_box_hide sial_video animate__animated animate__fadeOut animate__delay-2s animate__slower">
104
+        <video src={require("@assets/imgs/dataVimg/sial_video1.mp4").default} autoplay="autoplay" class="videoBoxViem"></video>
105 105
       </div>
106 106
     )
107 107
   }

+ 8 - 8
src/pages/sial/component/moodProductionView.jsx

@@ -22,9 +22,9 @@ class MoodSendView extends Component {
22 22
     super(props, context);
23 23
     this.store = mod;
24 24
     this.state = {
25
-      proQty: [],
25
+      budgetSalesQty: [],
26 26
       year: [],
27
-      deliveryQty: [],
27
+      budgetProdQty: [],
28 28
     };
29 29
   }
30 30
 
@@ -35,13 +35,13 @@ class MoodSendView extends Component {
35 35
   async getUrl() {
36 36
     await twoService().then(({ data = [], resultCode }) => {
37 37
       if (+resultCode === 0) {
38
-        let year = [], proQty = [], deliveryQty = [];
38
+        let year = [], budgetSalesQty = [], budgetProdQty = [];
39 39
         data.map((x, i) => {
40 40
           year.push(x.bMonth);
41
-          proQty.push(x.proQty)
42
-          deliveryQty.push(x.deliveryQty)
41
+          budgetSalesQty.push(x.budgetSalesQty || 0)
42
+          budgetProdQty.push(x.budgetProdQty || 0)
43 43
         });
44
-        this.setState({ year, deliveryQty, proQty });
44
+        this.setState({ year, budgetProdQty, budgetSalesQty });
45 45
         this.setData();
46 46
       }
47 47
     });
@@ -197,7 +197,7 @@ class MoodSendView extends Component {
197 197
               ])
198 198
             },
199 199
 
200
-            data: this.state.proQty
200
+            data: this.state.budgetSalesQty
201 201
           },
202 202
           {
203 203
             name: '实际产量',
@@ -221,7 +221,7 @@ class MoodSendView extends Component {
221 221
                 { offset: 1, color: 'rgba(105, 255, 222, 0.3)' },
222 222
               ])
223 223
             },
224
-            data: this.state.deliveryQty
224
+            data: this.state.budgetProdQty
225 225
           }
226 226
         ]
227 227
       }

+ 8 - 8
src/pages/sial/component/oneQualified.jsx

@@ -46,10 +46,10 @@ class BottomLineForSend extends Component {
46 46
       }
47 47
     });
48 48
   }
49
-  roundFun(value=0) {
49
+  roundFun(value = 0) {
50 50
     value = value * 100;
51 51
     var str = parseFloat(value).toFixed(10);
52
-    var num = str.substring(0,str.lastIndexOf('.')+3);
52
+    var num = str.substring(0, str.lastIndexOf('.') + 3);
53 53
     return num
54 54
   }
55 55
 
@@ -70,7 +70,7 @@ class BottomLineForSend extends Component {
70 70
             fontSize: 12,
71 71
             color: "#ededed"
72 72
           },
73
-          formatter: (param)=> {
73
+          formatter: (param) => {
74 74
             return (param[0] && param[0].seriesName ? param[0].seriesName + ":" : "") + (param[0] && param[0].value ? this.roundFun(param[0].value) + "%<br />" : "") + (param[1] && param[1].seriesName ? param[1].seriesName + ":" : "") + (param[1] && param[1].value ? this.roundFun(param[1].value) + "%" : "")
75 75
             // return (
76 76
             //   <div>
@@ -133,13 +133,13 @@ class BottomLineForSend extends Component {
133 133
                 type: 'dashed',
134 134
               },
135 135
             },
136
-            min:0.9,
137
-            max:1,
138
-            splitNumber:5,
136
+            min: 0.9,
137
+            max: 1,
138
+            splitNumber: 5,
139 139
             axisTick: { show: false },
140 140
             axisLabel: {
141
-              formatter: (value)=>{
142
-                return value*100 + '%'
141
+              formatter: (value) => {
142
+                return value * 100 + '%'
143 143
               },
144 144
               textStyle: {
145 145
                 color: '#7d7d7d',

+ 507 - 313
src/pages/sial/style.less

@@ -2,375 +2,569 @@
2 2
 
3 3
 @assetUrl: "../../assets/imgs/home";
4 4
 
5
-.bg_after {
6
-  content: "";
7
-  display: block;
8
-  bottom: 0;
9
-  position: absolute;
10
-  width: 100%;
11
-  height: 10px;
12
-}
5
+.sial_home {
6
+  background: url(../../assets/imgs/dataVimg/sialBgDataV.png) no-repeat 0 -10em / 100% 120% #041b40 !important;
7
+
13 8
 
14 9
 
15
-.home {
16
-  position: relative;
17
-  .insert {
10
+
11
+  .bg_after {
12
+    content: "";
13
+    display: block;
14
+    bottom: 0;
18 15
     position: absolute;
19
-    z-index: 4;
20 16
     width: 100%;
21
-    left: 0;
22
-    top: 0;
23
-    height: 100vh;
24
-    padding: 16px;
25
-    .user {
26
-      background: #fff;
27
-      border-radius: 6px;
28
-      padding: 12px;
29
-      text-align: left;
30
-      margin-bottom: 12px;
31
-      font-size: 12px;
32
-    }
33
-    .notice {
34
-      background: #fff;
35
-      border-radius: 6px;
36
-      padding: 12px;
37
-      text-align: left;
38
-      font-size: 12px;
39
-      margin-bottom: 12px;
40
-      &>*:not(:first-child){
41
-        margin-top: 8px;
42
-      }
43
-    }
44
-    .documents {
45
-      background: #fff;
46
-      border-radius: 6px;
47
-      padding: 12px;
48
-      text-align: left;
49
-      font-size: 12px;
50
-      &>*:not(:first-child){
51
-        margin-top: 8px;
52
-      }
53
-    }
17
+    height: 10px;
54 18
   }
55
-  :global {
56
-    // background: url(../../../public/bg_home.png) 50% 50% no-repeat;
57
-    background-color: #041747;
58
-    background-size: cover;
59
-    text-align: center;
60
-    padding: 0 33px 113px 33px;
61
-    height: 100%;
62
-    .titles {
63
-      padding-top: 52px;
64
-      display: inline-block;
65
-      .big_title {
66
-        font-size: 40px;
67
-        color: #ffffff;
68
-        letter-spacing: 5px;
69
-        text-align: center;
70
-        font-weight: bold;
19
+
20
+
21
+
22
+  .home {
23
+    position: relative;
24
+
25
+    .insert {
26
+      position: absolute;
27
+      z-index: 4;
28
+      width: 100%;
29
+      left: 0;
30
+      top: 0;
31
+      height: 100vh;
32
+      padding: 16px;
33
+
34
+      .user {
35
+        background: #fff;
36
+        border-radius: 6px;
37
+        padding: 12px;
38
+        text-align: left;
39
+        margin-bottom: 12px;
40
+        font-size: 12px;
71 41
       }
72
-      .sub_title {
73
-        margin-top: 15px;
74
-        display: flex;
75
-        justify-content: space-between;
76
-        position: relative;
77
-        width: 100%;
78
-        opacity: 0.4;
79
-        font-family: PingFangSC-Regular;
80
-        font-size: 20px;
81
-        color: #ffffff;
82
-        letter-spacing: 0.7px;
83
-        &::after,
84
-        &::before {
85
-          height: 1px;
86
-          width: 37px;
87
-          position: absolute;
88
-          top: 50%;
89
-          content: "";
90
-          display: block;
91
-        }
92
-        &::after {
93
-          background-image: linear-gradient(
94
-            90deg,
95
-            rgba(255, 255, 255, 0.3) 0%,
96
-            rgba(255, 255, 255, 1) 100%
97
-          );
98
-          left: -46px;
42
+
43
+      .notice {
44
+        background: #fff;
45
+        border-radius: 6px;
46
+        padding: 12px;
47
+        text-align: left;
48
+        font-size: 12px;
49
+        margin-bottom: 12px;
50
+
51
+        &>*:not(:first-child) {
52
+          margin-top: 8px;
99 53
         }
100
-        &::before {
101
-          background-image: linear-gradient(
102
-            90deg,
103
-            rgba(255, 255, 255, 1) 0%,
104
-            rgba(255, 255, 255, 0.3) 100%
105
-          );
106
-          right: -46px;
54
+      }
55
+
56
+      .documents {
57
+        background: #fff;
58
+        border-radius: 6px;
59
+        padding: 12px;
60
+        text-align: left;
61
+        font-size: 12px;
62
+
63
+        &>*:not(:first-child) {
64
+          margin-top: 8px;
107 65
         }
108 66
       }
109 67
     }
110
-    .player {
111
-      margin-top: 54px;
112
-      display: flex;
113
-      justify-content: space-between;
114
-      & > li {
115
-        position: relative;
116
-        cursor: pointer;
117
-        text-align: center;
118
-        width: 1%;
119
-        flex-grow: 1;
120
-        transition: all 0.3s;
121
-        &:not(:last-child) {
122
-          margin-right: 1%;
68
+
69
+
70
+    :global {
71
+      // background: url(../../../public/bg_home.png) 50% 50% no-repeat;
72
+      background-color: #041747;
73
+      background-size: cover;
74
+      text-align: center;
75
+      padding: 0 33px 113px 33px;
76
+      height: 100%;
77
+
78
+
79
+      .sial_video {
80
+        background: url(../../assets/imgs/dataVimg/gvcBgDataV.png) no-repeat 0 -10em / 100% 120% #041b40 !important;
81
+        align-items: flex-start;
82
+        // background: #000;
83
+
84
+        video {
85
+          width: 100%;
86
+          height: unset;
87
+          padding: 0;
88
+        }
89
+
90
+        img {
91
+          width: 100%;
92
+          height: unset;
93
+          padding: 0;
94
+        }
95
+
96
+
97
+        .alls {
98
+          width: 80%;
99
+          height: unset;
100
+          padding: 2% 0% 0% 2%;
101
+          position: relative;
123 102
         }
124 103
 
125
-        .not_open_card {
126
-          display: none;
104
+        // @media (min-height: 800px) {
105
+        //   .alls {
106
+        //     width: 73%;
107
+        //   }
108
+        // }
109
+
110
+        // @media (min-height: 900px) {
111
+        //   .alls {
112
+        //     width: 64%;
113
+        //   }
114
+        // }
115
+
116
+        // @media (min-height: 1000PX) {
117
+        //   .alls {
118
+        //     width: 70%;
119
+        //   }
120
+        // }
121
+
122
+      }
123
+
124
+      .titles {
125
+        padding-top: 52px;
126
+        display: inline-block;
127
+
128
+        .big_title {
129
+          font-size: 40px;
130
+          color: #ffffff;
131
+          letter-spacing: 5px;
132
+          text-align: center;
133
+          font-weight: bold;
127 134
         }
128 135
 
129
-        &.toggle_stat {
130
-          .nor_card {
136
+        .sub_title {
137
+          margin-top: 15px;
138
+          display: flex;
139
+          justify-content: space-between;
140
+          position: relative;
141
+          width: 100%;
142
+          opacity: 0.4;
143
+          font-family: PingFangSC-Regular;
144
+          font-size: 20px;
145
+          color: #ffffff;
146
+          letter-spacing: 0.7px;
147
+
148
+          &::after,
149
+          &::before {
150
+            height: 1px;
151
+            width: 37px;
152
+            position: absolute;
153
+            top: 50%;
154
+            content: "";
131 155
             display: block;
132 156
           }
133 157
 
134
-          &:hover > .nor_card {
135
-            display: none;
158
+          &::after {
159
+            background-image: linear-gradient(90deg,
160
+                rgba(255, 255, 255, 0.3) 0%,
161
+                rgba(255, 255, 255, 1) 100%);
162
+            left: -46px;
136 163
           }
137
-          &:hover > .not_open_card {
138
-            display: block;
164
+
165
+          &::before {
166
+            background-image: linear-gradient(90deg,
167
+                rgba(255, 255, 255, 1) 0%,
168
+                rgba(255, 255, 255, 0.3) 100%);
169
+            right: -46px;
170
+          }
171
+        }
172
+      }
173
+
174
+      .player {
175
+        margin-top: 54px;
176
+        display: flex;
177
+        justify-content: space-between;
178
+
179
+        &>li {
180
+          position: relative;
181
+          cursor: pointer;
182
+          text-align: center;
183
+          width: 1%;
184
+          flex-grow: 1;
185
+          transition: all 0.3s;
186
+
187
+          &:not(:last-child) {
188
+            margin-right: 1%;
139 189
           }
140 190
 
141
-          .tips {
142
-            text-align: center;
143
-            font-size: 16px;
144
-            color: rgba(255, 255, 255, 0.5);
145
-            margin-top: -5px;
191
+          .not_open_card {
192
+            display: none;
146 193
           }
147
-          .tips_img {
148
-            width: 60%;
149
-            margin-top: 30%;
194
+
195
+          &.toggle_stat {
196
+            .nor_card {
197
+              display: block;
198
+            }
199
+
200
+            &:hover>.nor_card {
201
+              display: none;
202
+            }
203
+
204
+            &:hover>.not_open_card {
205
+              display: block;
206
+            }
207
+
208
+            .tips {
209
+              text-align: center;
210
+              font-size: 16px;
211
+              color: rgba(255, 255, 255, 0.5);
212
+              margin-top: -5px;
213
+            }
214
+
215
+            .tips_img {
216
+              width: 60%;
217
+              margin-top: 30%;
218
+            }
150 219
           }
151 220
         }
152 221
       }
153
-    }
154 222
 
155
-    .bg_1 {
156
-      background: rgba(69, 163, 109, 0.3);
157
-      border: none;
158
-
159
-      &:hover {
160
-        background: rgba(69, 163, 109, 0.5);
161
-        transform: translateY(-30px);
162
-        box-shadow: 0 0 0 1px #45a36d inset;
163
-        background-image: radial-gradient(
164
-          120px 60px ellipse at 50% 100%,
165
-          rgba(42, 186, 128, 0.8) 0%,
166
-          rgba(42, 186, 128, 0) 90%,
167
-          transparent 0
168
-        );
169
-        &::after {
170
-          content: "";
171
-          display: block;
172
-          bottom: -5px;
173
-          position: absolute;
174
-          width: 100%;
175
-          height: 10px;
176
-          background: url("@{assetUrl}/bg_light1.png") 50% 50% no-repeat;
223
+      .bg_1 {
224
+        background: rgba(69, 163, 109, 0.3);
225
+        border: none;
226
+
227
+        &:hover {
228
+          background: rgba(69, 163, 109, 0.5);
229
+          transform: translateY(-30px);
230
+          box-shadow: 0 0 0 1px #45a36d inset;
231
+          background-image: radial-gradient(120px 60px ellipse at 50% 100%,
232
+              rgba(42, 186, 128, 0.8) 0%,
233
+              rgba(42, 186, 128, 0) 90%,
234
+              transparent 0);
235
+
236
+          &::after {
237
+            content: "";
238
+            display: block;
239
+            bottom: -5px;
240
+            position: absolute;
241
+            width: 100%;
242
+            height: 10px;
243
+            background: url("@{assetUrl}/bg_light1.png") 50% 50% no-repeat;
244
+          }
177 245
         }
178 246
       }
179
-    }
180 247
 
181
-    .bg_2 {
182
-      background: rgba(38, 149, 140, 0.3);
183
-      border: none;
184
-      &:hover {
185
-        background: rgba(38, 149, 140, 0.5);
186
-        transform: translateY(-30px);
187
-        box-shadow: 0 0 0 1px #26958c inset;
188
-        background-image: radial-gradient(
189
-          120px 60px ellipse at 50% 100%,
190
-          rgba(0, 199, 207, 0.8) 0%,
191
-          rgba(0, 199, 207, 0) 90%,
192
-          transparent 0
193
-        );
194
-        &::after {
195
-          content: "";
196
-          display: block;
197
-          bottom: -5px;
198
-          position: absolute;
199
-          width: 100%;
200
-          height: 10px;
201
-          background: url("@{assetUrl}/bg_light2.png") 50% 50% no-repeat;
248
+      .bg_2 {
249
+        background: rgba(38, 149, 140, 0.3);
250
+        border: none;
251
+
252
+        &:hover {
253
+          background: rgba(38, 149, 140, 0.5);
254
+          transform: translateY(-30px);
255
+          box-shadow: 0 0 0 1px #26958c inset;
256
+          background-image: radial-gradient(120px 60px ellipse at 50% 100%,
257
+              rgba(0, 199, 207, 0.8) 0%,
258
+              rgba(0, 199, 207, 0) 90%,
259
+              transparent 0);
260
+
261
+          &::after {
262
+            content: "";
263
+            display: block;
264
+            bottom: -5px;
265
+            position: absolute;
266
+            width: 100%;
267
+            height: 10px;
268
+            background: url("@{assetUrl}/bg_light2.png") 50% 50% no-repeat;
269
+          }
202 270
         }
203 271
       }
204
-    }
205 272
 
206
-    .bg_3 {
207
-      background: rgba(122, 89, 202, 0.3);
208
-      border: none;
209
-      &:hover {
210
-        background: rgba(122, 89, 202, 0.5);
211
-        transform: translateY(-30px);
212
-        box-shadow: 0 0 0 1px #a27cff inset;
213
-        background-image: radial-gradient(
214
-          120px 60px ellipse at 50% 100%,
215
-          rgba(181, 151, 255, 0.8) 0%,
216
-          rgba(181, 151, 255, 0) 90%,
217
-          transparent 0
218
-        );
219
-        &::after {
220
-          content: "";
221
-          display: block;
222
-          bottom: -5px;
223
-          position: absolute;
224
-          width: 100%;
225
-          height: 10px;
226
-          background: url("@{assetUrl}/bg_light3.png") 50% 50% no-repeat;
273
+      .bg_3 {
274
+        background: rgba(122, 89, 202, 0.3);
275
+        border: none;
276
+
277
+        &:hover {
278
+          background: rgba(122, 89, 202, 0.5);
279
+          transform: translateY(-30px);
280
+          box-shadow: 0 0 0 1px #a27cff inset;
281
+          background-image: radial-gradient(120px 60px ellipse at 50% 100%,
282
+              rgba(181, 151, 255, 0.8) 0%,
283
+              rgba(181, 151, 255, 0) 90%,
284
+              transparent 0);
285
+
286
+          &::after {
287
+            content: "";
288
+            display: block;
289
+            bottom: -5px;
290
+            position: absolute;
291
+            width: 100%;
292
+            height: 10px;
293
+            background: url("@{assetUrl}/bg_light3.png") 50% 50% no-repeat;
294
+          }
227 295
         }
228 296
       }
229
-    }
230 297
 
231
-    .bg_4 {
232
-      background: rgba(37, 90, 199, 0.3);
233
-      border: none;
234
-      &:hover {
235
-        background: rgba(37, 90, 199, 0.5);
236
-        transform: translateY(-30px);
237
-        box-shadow: 0 0 0 1px #6899ff inset;
238
-        background-image: radial-gradient(
239
-          120px 60px ellipse at 50% 100%,
240
-          rgba(73, 181, 255, 0.8) 0%,
241
-          rgba(73, 181, 255, 0) 90%,
242
-          transparent 0
243
-        );
244
-        &::after {
245
-          content: "";
246
-          display: block;
247
-          bottom: -5px;
248
-          position: absolute;
249
-          width: 100%;
250
-          height: 10px;
251
-          background: url("@{assetUrl}/bg_light4.png") 50% 50% no-repeat;
298
+      .bg_4 {
299
+        background: rgba(37, 90, 199, 0.3);
300
+        border: none;
301
+
302
+        &:hover {
303
+          background: rgba(37, 90, 199, 0.5);
304
+          transform: translateY(-30px);
305
+          box-shadow: 0 0 0 1px #6899ff inset;
306
+          background-image: radial-gradient(120px 60px ellipse at 50% 100%,
307
+              rgba(73, 181, 255, 0.8) 0%,
308
+              rgba(73, 181, 255, 0) 90%,
309
+              transparent 0);
310
+
311
+          &::after {
312
+            content: "";
313
+            display: block;
314
+            bottom: -5px;
315
+            position: absolute;
316
+            width: 100%;
317
+            height: 10px;
318
+            background: url("@{assetUrl}/bg_light4.png") 50% 50% no-repeat;
319
+          }
252 320
         }
253 321
       }
254
-    }
255 322
 
256
-    .bg_5 {
257
-      background: rgba(6, 159, 199, 0.3);
258
-      border: none;
259
-      &:hover {
260
-        background: rgba(6, 159, 199, 0.5);
261
-        transform: translateY(-30px);
262
-        box-shadow: 0 0 0 1px #41bad9 inset;
263
-        background-image: radial-gradient(
264
-          120px 60px ellipse at 50% 100%,
265
-          rgba(58, 223, 255, 0.8) 0%,
266
-          rgba(58, 223, 255, 0) 90%,
267
-          transparent 0
268
-        );
269
-        &::after {
270
-          content: "";
271
-          display: block;
272
-          bottom: -5px;
273
-          position: absolute;
274
-          width: 100%;
275
-          height: 10px;
276
-          background: url("@{assetUrl}/bg_light5.png") 50% 50% no-repeat;
323
+      .bg_5 {
324
+        background: rgba(6, 159, 199, 0.3);
325
+        border: none;
326
+
327
+        &:hover {
328
+          background: rgba(6, 159, 199, 0.5);
329
+          transform: translateY(-30px);
330
+          box-shadow: 0 0 0 1px #41bad9 inset;
331
+          background-image: radial-gradient(120px 60px ellipse at 50% 100%,
332
+              rgba(58, 223, 255, 0.8) 0%,
333
+              rgba(58, 223, 255, 0) 90%,
334
+              transparent 0);
335
+
336
+          &::after {
337
+            content: "";
338
+            display: block;
339
+            bottom: -5px;
340
+            position: absolute;
341
+            width: 100%;
342
+            height: 10px;
343
+            background: url("@{assetUrl}/bg_light5.png") 50% 50% no-repeat;
344
+          }
277 345
         }
278 346
       }
279
-    }
280 347
 
281
-    .type_1 {
282
-      padding: 82px 0 75px 0;
283
-      .card_subtitle {
348
+      .type_1 {
349
+        padding: 82px 0 75px 0;
350
+
351
+        .card_subtitle {
352
+          font-size: 14px;
353
+          color: #fff;
354
+          margin-top: 48px;
355
+          margin-bottom: 48px;
356
+        }
357
+      }
358
+
359
+      .type_2 {
360
+        padding: 42px 0 65px 0;
361
+      }
362
+
363
+      .card_title {
364
+        font-size: 20px;
365
+        color: #ffffff;
366
+        font-weight: bold;
367
+        position: absolute;
368
+        bottom: 7%;
369
+        width: 100%;
370
+        text-align: center;
371
+      }
372
+
373
+      .text {
374
+        text-align: left;
375
+        display: flex;
376
+        justify-content: center;
377
+      }
378
+
379
+      .type1_sub {
380
+        font-size: 12px;
381
+        color: rgba(255, 255, 255, 0.7);
382
+      }
383
+
384
+      .type1_left {
385
+        font-size: 12px;
386
+        color: rgba(255, 255, 255, 0.7);
387
+        text-align: left;
388
+      }
389
+
390
+      .col_fff {
391
+        color: #ffffff;
392
+      }
393
+
394
+      .col_gray {
395
+        color: rgba(255, 255, 255, 0.7);
396
+      }
397
+
398
+      .fs12 {
399
+        font-size: 12px;
400
+      }
401
+
402
+      .fs14 {
284 403
         font-size: 14px;
285
-        color: #fff;
286
-        margin-top: 48px;
287
-        margin-bottom: 48px;
288 404
       }
289
-    }
290 405
 
291
-    .type_2 {
292
-      padding: 42px 0 65px 0;
293
-    }
406
+      .mt4 {
407
+        margin-top: 4px;
408
+      }
294 409
 
295
-    .card_title {
296
-      font-size: 20px;
297
-      color: #ffffff;
298
-      font-weight: bold;
299
-      position: absolute;
300
-      bottom: 7%;
301
-      width: 100%;
302
-      text-align: center;
410
+      .mt50 {
411
+        margin-top: 90px;
412
+      }
413
+
414
+      .linear {
415
+        width: 100%;
416
+        height: 1px;
417
+        background: linear-gradient(90deg,
418
+            rgba(2, 199, 218, 0) 0%,
419
+            rgba(2, 199, 218, 0.5) 50%,
420
+            rgba(2, 199, 218, 0) 100%);
421
+        transform-origin: center;
422
+        transform: rotate(-45deg);
423
+        margin-top: 60px;
424
+        margin-bottom: 15px;
425
+      }
426
+
427
+      .min_w {
428
+        min-width: 40%;
429
+      }
303 430
     }
431
+  }
432
+
433
+  .add_common_report {
434
+    display: flex;
435
+    align-items: center;
304 436
 
305
-    .text {
306
-      text-align: left;
437
+    >div {
307 438
       display: flex;
308
-      justify-content: center;
439
+      align-items: center;
440
+      overflow: hidden;
441
+      text-overflow: ellipsis;
442
+      white-space: nowrap;
443
+      white-space: nowrap;
309 444
     }
445
+  }
310 446
 
311
-    .type1_sub {
312
-      font-size: 12px;
313
-      color: rgba(255, 255, 255, 0.7);
314
-    }
315
-    .type1_left {
316
-      font-size: 12px;
317
-      color: rgba(255, 255, 255, 0.7);
318
-      text-align: left;
319
-    }
320
-    .col_fff {
321
-      color: #ffffff;
322
-    }
323
-    .col_gray {
324
-      color: rgba(255, 255, 255, 0.7);
325
-    }
447
+  .centerCon {
448
+    width: 63%;
449
+    height: 75%;
450
+    padding: 0;
451
+    position: relative;
452
+    margin: 0% 0 0 -1%;
326 453
 
327
-    .fs12 {
328
-      font-size: 12px;
329
-    }
330 454
 
331
-    .fs14 {
332
-      font-size: 14px;
333
-    }
455
+  }
456
+
334 457
 
335
-    .mt4 {
336
-      margin-top: 4px;
337
-    }
338 458
 
339
-    .mt50 {
340
-      margin-top: 90px;
341
-    }
342 459
 
343
-    .linear {
460
+  :global {
461
+    .imgMsg2 {
344 462
       width: 100%;
345
-      height: 1px;
346
-      background: linear-gradient(
347
-        90deg,
348
-        rgba(2, 199, 218, 0) 0%,
349
-        rgba(2, 199, 218, 0.5) 50%,
350
-        rgba(2, 199, 218, 0) 100%
351
-      );
352
-      transform-origin: center;
353
-      transform: rotate(-45deg);
354
-      margin-top: 60px;
355
-      margin-bottom: 15px;
356
-    }
463
+      position: absolute;
464
+      left: 0;
465
+      top: 0;
466
+      height: 100%;
467
+      color: #ff0;
357 468
 
358
-    .min_w {
359
-      min-width: 40%;
360
-    }
361
-  }
362
-}
363
-.add_common_report {
364
-  display: flex;
365
-  align-items: center;
469
+      li {
470
+        position: absolute;
471
+        width: 25em;
472
+        z-index: 100;
473
+        height: 4em;
474
+        opacity: 1;
475
+        background: linear-gradient(0deg, #ffffff26 0%, #ffffff00 100%);
476
+        border-radius: 0.5em;
477
+        padding: 0.5em;
478
+        box-sizing: border-box;
479
+        font-size: 0.9em;
480
+        color: #CDF1FF;
366 481
 
367
-  >div {
368
-    display: flex;
369
-    align-items: center;
370
-    overflow: hidden;
371
-    text-overflow: ellipsis;
372
-    white-space: nowrap;
373
-    white-space: nowrap;
482
+        .nums {
483
+          font-size: 1.3em;
484
+          color: #69FFDE;
485
+          display: inline-block !important;
486
+        }
487
+
488
+        .topMsg_number_2 {
489
+          display: inline-block !important;
490
+        }
491
+
492
+        .sma {
493
+          font-size: 0.7em;
494
+          color: #CDF1FF;
495
+          display: inline-block;
496
+          margin-left: 0.2em;
497
+        }
498
+
499
+        .chanL {
500
+          background: unset;
501
+          font-size: 0.9em;
502
+          color: #CDF1FF;
503
+          height: 4em;
504
+          box-sizing: border-box;
505
+          padding: 0 0.5em;
506
+          display: flex;
507
+          justify-content: space-between;
508
+
509
+          >div {
510
+            width: 50%;
511
+          }
512
+        }
513
+
514
+        .hoverR {
515
+          width: 100%;
516
+          height: 12em;
517
+          position: absolute;
518
+          left: 0;
519
+          top: -7em;
520
+          padding-top: 11em;
521
+
522
+
523
+          .hoverDiv {
524
+            display: none;
525
+          }
526
+        }
527
+
528
+        .hoverR:hover {
529
+          .hoverDiv {
530
+            display: flex;
531
+          }
532
+        }
533
+
534
+        .hoverDiv {
535
+          display: flex;
536
+          align-items: center;
537
+          justify-content: space-between;
538
+          padding: 0 1em;
539
+          background: linear-gradient(0deg, #292929f2 0%, #25252540 100%);
540
+          // linear-gradient(0deg, #ffffff00 20%, #7a7a7a29 100%);
541
+          width: 100%;
542
+          border-radius: 0.5em;
543
+          box-sizing: border-box;
544
+          margin-top: 0.1em;
545
+          font-size: 0.8em;
546
+          padding: 0.2em 0em 0 1em;
547
+          color: #d7d7d7;
548
+          align-items: flex-start;
549
+          height: auto;
550
+
551
+          >div>span {
552
+            display: block;
553
+          }
554
+        }
555
+      }
556
+
557
+      @media (max-height: 900px) {
558
+        li .hoverDiv {
559
+          background: linear-gradient(0deg, #292929 0%, #252525 100%) !important;
560
+        }
561
+
562
+      }
563
+
564
+
565
+      li:hover {
566
+        background: linear-gradient(0deg, #42ca9840 0%, #42ca9800 98%);
567
+      }
568
+    }
374 569
   }
375 570
 }
376
-

+ 188 - 61
src/pages/sial/view.jsx

@@ -25,6 +25,10 @@ import MoodProductionView from "./component/moodProductionView.jsx";
25 25
 import LeftMenoyView from "./component/leftMenoyView.jsx";
26 26
 import RightBottomView from "./component/rightBottomView.jsx";
27 27
 import OneQualified from "./component/oneQualified.jsx";
28
+import DryBaseQualified from "./component/dryBaseQualified";
29
+import mpVideoGvc from "@assets/imgs/dataVimg/sial_video2.mp4";
30
+import { get } from "lodash";
31
+
28 32
 import MapView from "./component/mapView.jsx";
29 33
 import $store from "@store/";
30 34
 import {
@@ -57,7 +61,78 @@ class Home extends Component {
57 61
       manHourNum: 1,
58 62
       leftName: deleteCacheAndChangeUrl("left", false, true),
59 63
       rightName: deleteCacheAndChangeUrl("right", false, true),
60
-
64
+      imgMsgData: [
65
+        {
66
+          "factoryCode": 3,
67
+          "production": 2685.99,
68
+          "inventory": 1340.99,
69
+          "total": 0,
70
+          "totalName": "",
71
+          "styles": {
72
+            "left": "32%",
73
+            "top": "32%"
74
+          },
75
+          "cumulativeProduction": 2685.99,
76
+          "day": "83.38",
77
+          "mood": "2,685.99",
78
+          "year": "2,685.99",
79
+          "rawMaterial": [
80
+            {
81
+              "prodCatgory": "产品-氯化锂",
82
+              "indexValue": "938.64"
83
+            },
84
+            {
85
+              "prodCatgory": "产品-碳酸锂",
86
+              "indexValue": "254.00"
87
+            },
88
+            {
89
+              "prodCatgory": "产品-氢氧化锂",
90
+              "indexValue": "148.35"
91
+            },
92
+            {
93
+              "prodCatgory": "产品-金属锂",
94
+              "indexValue": 0
95
+            },
96
+            {
97
+              "prodCatgory": "基地仓-锂辉石",
98
+              "indexValue": "8,184.37"
99
+            },
100
+            {
101
+              "prodCatgory": "重庆仓-锂辉石",
102
+              "indexValue": "2,093.59"
103
+            }
104
+          ]
105
+        },
106
+        {
107
+          "factoryCode": 2,
108
+          "production": 2145,
109
+          "inventory": 343.31,
110
+          "total": 0,
111
+          "totalName": "",
112
+          "styles": {
113
+            "left": "5%",
114
+            "top": "45%"
115
+          },
116
+          "cumulativeProduction": 2145,
117
+          "day": "70.00",
118
+          "mood": "2,145.00",
119
+          "year": "2,145.00",
120
+          "rawMaterial": [
121
+            {
122
+              "prodCatgory": "产品-碳酸锂",
123
+              "indexValue": "343.31"
124
+            },
125
+            {
126
+              "prodCatgory": "基地仓-锂辉石",
127
+              "indexValue": "8,564.99"
128
+            },
129
+            {
130
+              "prodCatgory": "重庆仓-锂辉石",
131
+              "indexValue": "2,215.58"
132
+            }
133
+          ]
134
+        },
135
+      ]
61 136
     };
62 137
     this.timer = null //定时器,用于检测同步状态
63 138
   }
@@ -116,7 +191,7 @@ class Home extends Component {
116 191
         媒体参与度(Media Engagement)是指用户与媒体内容进行互动的程度,可以通过多个指标来衡量。这些指标主要包括观看时间、观看率、转化率、交互行为等。
117 192
         可以通过:chrome://media-engagement/ 查看
118 193
      */
119
-    const video = document.querySelector('.video2');
194
+    const video = document.querySelector('.video_box_2');
120 195
     console.log(video.play());
121 196
 
122 197
     const model = document.querySelector('.model')
@@ -164,21 +239,20 @@ class Home extends Component {
164 239
       if (+resultCode === 0) {
165 240
         let plannedCompletionData = [], manHourData = [];
166 241
         data.map((x, i) => {
167
-          if (x.indexValue || x.indexValue == 0) {
168
-            if (x.indexName == '产量计划完成率') {
169
-              plannedCompletionData.push({
170
-                name: x.factoryName,
171
-                value: Number((x.indexValue * 100).toFixed(2)),
172
-              })
173
-            } else {
174
-              manHourData.push({
175
-                name: x.factoryName,
176
-                // value: Number((x.indexValue * 100).toFixed(2)),
177
-                value: Number(x.indexValue),
178
-              })
179
-            }
242
+          if (x.indexName == '产量计划完成率') {
243
+            plannedCompletionData.push({
244
+              name: x.factoryName,
245
+              value: x.indexValue ? Number((x.indexValue * 100).toFixed(2)) : 0,
246
+            })
247
+          } else {
248
+            manHourData.push({
249
+              name: x.factoryName,
250
+              // value: Number((x.indexValue * 100).toFixed(2)),
251
+              value: Number(x.indexValue),
252
+            })
180 253
           }
181 254
         });
255
+        console.log('plannedCompletionData', plannedCompletionData)
182 256
         this.setState({ plannedCompletionData, manHourData, plannedCompletionNum: 1, manHourNum: 1 });
183 257
       }
184 258
     });
@@ -220,48 +294,28 @@ class Home extends Component {
220 294
 
221 295
   fontMsgChange(type) {
222 296
     this.timer = setInterval(() => {
223
-      const { plannedCompletionData, plannedCompletionNum, manHourData, manHourNum } = this.state;
224 297
 
298
+      const { plannedCompletionData, plannedCompletionNum, manHourData, manHourNum } = this.state;
299
+      const yanting = plannedCompletionData.find(item => item.name == '盐亭');
300
+      const suzhou = plannedCompletionData.find(item => item.name == '苏州');
225 301
       //产量计划完成率
226 302
       var p1 = document.getElementById('plannedCompletionBox_yanting');
227 303
       var p3 = document.getElementById('plannedCompletionBox_suzhou');
228
-      const datas_ = plannedCompletionData[plannedCompletionNum - 1];
229
-      var res = "";
230
-      if (datas_) {
231
-        if (type) {
232
-          res = '<div class="topMsg_box animate__animated animate__zoomIn"><span class="topMsg_number">' + getThousandNum(datas_?.value.toFixed(2)) + '</span><span class="topMsg_number_2" style={{fontSize: "0.75em",color: "#fff"}}>%</span><p class="topMsg_number_p">' + datas_?.name + '</p></div>';
233
-        } else {
234
-          res = '<div class="topMsg_box animate__animated animate__zoomIn"><span class="topMsg_number shu1">' + datas_?.value.toFixed(2) + '</span><span class="topMsg_number_2" style={{fontSize: "0.75em",color: "#fff"}}>%</span><p class="topMsg_number_p">' + datas_?.name + '</p></div>';
235
-        }
236
-      }
237
-      p1.innerHTML = res;
238
-      p3.innerHTML = res;
239
-
240
-      //百万工时损工率
241
-      var p2 = document.getElementById('manHourBox');
242
-      const datas_2 = manHourData[manHourNum - 1];
243
-      var res2 = "";
244
-      if (datas_2) {
245
-        if (type) {
246
-          res2 = '<div class="topMsg_box animate__animated animate__zoomIn"><span class="topMsg_number">' + getThousandNum(datas_2?.value.toFixed(2)) + '</span><p class="topMsg_number_p">' + datas_2?.name + '</p></div>';//<span class="topMsg_number_2">%</span>
247
-        } else {
248
-          res2 = '<div class="topMsg_box animate__animated animate__zoomIn"><span class="topMsg_number shu1">' + datas_2?.value.toFixed(2) + '</span><p class="topMsg_number_p">' + datas_2?.name + '</p></div>';
249
-        }
250
-      }
251
-      p2.innerHTML = res2;
304
+      p1.innerHTML = '<div class="topMsg_box animate__animated animate__zoomIn"><span class="topMsg_number">' + getThousandNum(yanting?.value.toFixed(2)) + '</span><span class="topMsg_number_2" style={{fontSize: "0.75em",color: "#fff"}}>%</span><p class="topMsg_number_p">' + yanting?.name + '</p></div>';
305
+      p3.innerHTML = '<div class="topMsg_box animate__animated animate__zoomIn"><span class="topMsg_number">' + getThousandNum(suzhou?.value.toFixed(2)) + '</span><span class="topMsg_number_2" style={{fontSize: "0.75em",color: "#fff"}}>%</span><p class="topMsg_number_p">' + suzhou?.name + '</p></div>';
252 306
 
253
-      const num_ = plannedCompletionNum + 1 > plannedCompletionData.length ? 1 : plannedCompletionNum + 1;
254
-      const num_2 = manHourNum + 1 > manHourData.length ? 1 : manHourNum + 1;
255
-      this.setState({ plannedCompletionNum: num_, manHourNum: num_2 })
307
+      // const num_ = plannedCompletionNum + 1 > plannedCompletionData.length ? 1 : plannedCompletionNum + 1;
308
+      // this.setState({ plannedCompletionNum: num_, })
256 309
     }, 4000)
310
+
257 311
   }
258 312
 
259 313
   render() {
260 314
     const stores = this.store.state;
261 315
     let { totalValue, yearDecline, yearSend, productInventory } = this.store.state;
262
-    let { changGif, updateTime, changNun, leftName, rightName } = this.state;
316
+    let { changGif, updateTime, changNun, leftName, rightName, imgMsgData } = this.state;
263 317
     return (
264
-      <div className={"home_box"}>
318
+      <div className={[styles.sial_home + ' home_box ']}>
265 319
         {/* 水印 */}
266 320
         {
267 321
           window.urlConfig && window.urlConfig.SHOW_WATERMARK && <div className={"shuiYin"} style={{ backgroundImage: `url(${$store.app.markSrc})`, backgroundRepeat: 'repeat' }}></div>
@@ -284,8 +338,11 @@ class Home extends Component {
284 338
 
285 339
         {/* 视频播放器 */}
286 340
         <MapView></MapView>
287
-        <div className={"video_box"}>
288
-          <video src={require("@assets/imgs/dataVImg/homeVideo2.mp4").default} autoplay="autoplay" loop="loop" class="video2 center_box2 animate__animated animate__fadeIn animate__delay-1s"></video>
341
+        <div className={"video_box3 sial_video"}>
342
+          <video src={mpVideoGvc} playbackRate={0.5} autoplay="autoplay" loop="loop" class="video_box_2 animate__animated animate__fadeIn animate__delay-2s">
343
+          </video>
344
+          {/* <img src={require("@assets/imgs/dataVimg/gvcbg.png").default} alt="" class="video_box_2 center_box2 animate__animated animate__fadeIn animate__delay-2s" /> */}
345
+
289 346
         </div>
290 347
         <div className={[styles.home + " home cbHome"]}>
291 348
           <div className="leftContent">
@@ -309,7 +366,7 @@ class Home extends Component {
309 366
                 </div>
310 367
               </div>
311 368
             </div> */}
312
-            <div class="topMsg_33 animate__animated animate__fadeInDown animate__slower animate__delay-1s">
369
+            <div class="topMsg_33 mgb_box animate__animated animate__fadeInDown animate__slower animate__delay-1s">
313 370
               <div className="topMsg_3">
314 371
                 <Tooltip placement="bottom" title={' ● 本年度截止到更新日期累计产量的计划完成率。'}>
315 372
                   <p className="topMsg_title">产量计划完成率</p>
@@ -323,17 +380,14 @@ class Home extends Component {
323 380
               </div>
324 381
             </div>
325 382
 
326
-            <div class="topMsg2 animate__animated animate__fadeInDown animate__slower" style={{ marginTop: '6%', marginBottom: '6%' }}>
327
-              <div className="topMsgCommond bigDivPd">
383
+            <div class="topMsg_22 mgb_box animate__animated animate__fadeInDown animate__slower">
384
+              <div className="topMsg_2">
328 385
                 <Tooltip placement="bottom" title={' ● 近一年的干基产率。'}>
329 386
                   <p className="topMsg_title">干基产率</p>
330 387
                 </Tooltip>
331
-                <div className={changGif ? "topMsg_content changBg_topMsg_content" : "topMsg_content"} id="manHourBox" >
332
-                  <div className="topMsg_box" >
333
-                    <span className="topMsg_number" class="shu1"></span>
334
-                    <span className="topMsg_number_2"></span>
335
-                    <p className="topMsg_number_p"></p>
336
-                  </div>
388
+
389
+                <div className="topMsg_content">
390
+                  <DryBaseQualified></DryBaseQualified>
337 391
                 </div>
338 392
               </div>
339 393
             </div>
@@ -353,7 +407,7 @@ class Home extends Component {
353 407
               </div>
354 408
             </div> */}
355 409
 
356
-            <div class="bottomContent2 animate__animated animate__fadeInDown animate__slower animate__delay-2s">
410
+            <div class="bottomContent2 mgb_box animate__animated animate__fadeInDown animate__slower animate__delay-2s">
357 411
               <div className="bottomContent bigDivPd">
358 412
                 <Tooltip placement="bottom" title={' ● 近六个月的产量和发货量的对比数据(含外加工),当月的数据计算至更新日期。'}>
359 413
                   <p className="topMsg_title">月度产量</p>
@@ -418,7 +472,80 @@ class Home extends Component {
418 472
                 </div>
419 473
               </div>
420 474
             </div>
421
-            <div class="bottomContent3 animate__animated animate__fadeInUp animate__slower animate__delay-1s">
475
+            <ul className="imgMsg2">
476
+              {
477
+                toJS(imgMsgData).map((item, index) => {
478
+                  if (!item) { return }
479
+                  return (
480
+                    <li style={{ ...item?.styles }} class="animate__animated animate__bounceInUp animate__slower">
481
+                      {/* 矿产 */}
482
+                      {
483
+                        item.totalName && <p className="name">{item.totalName}</p>
484
+                      }
485
+                      {
486
+                        item.totalName && !changGif && <span class="shu1 nums">{item.total}</span>
487
+                      }
488
+                      {
489
+                        item.totalName && changGif && <span class="nums">{getThousandNum(item.total)}</span>
490
+                      }
491
+                      {
492
+                        item.totalName && <span className="sma">吨</span>
493
+                      }
494
+                      {/* 基地 */}
495
+                      {
496
+                        (item.cumulativeProduction !== null || item.showDetail) && <div className="hoverR">
497
+                          <div className="hoverDiv chanL">
498
+                            {/* <div style={{ width: "62%","textAlign":'right' }}> */}
499
+                            {
500
+                              item.cumulativeProduction !== null && <div style={{ width: "38%", textAlign: 'start' }}>
501
+                                <p className="title">
502
+                                  产量/吨
503
+                                </p>
504
+                                <span>日:{item.day}</span>
505
+                                <span>月:{item.mood}</span>
506
+                                <span>年:{item.year}</span>
507
+                              </div>
508
+                            }
509
+
510
+                            <div style={{ width: index == 5 ? "58%" : "57%", textAlign: 'start' }}>
511
+                              <p className="title">
512
+                                库存/吨
513
+                              </p>
514
+                              {
515
+                                get(item, "rawMaterial", []).map((ra, rai) => {
516
+                                  return <span>{ra.prodCatgory}:{ra.indexValue}</span>
517
+                                })
518
+                              }
519
+                            </div>
520
+                          </div>
521
+                        </div>
522
+                      }
523
+                      {
524
+                        item.cumulativeProduction !== null && <div className="chanL text">
525
+                          <div>
526
+                            <p>累计产量</p>
527
+                            {
528
+                              !changGif ? <span class="nums shu1">{item.cumulativeProduction}</span> : <span class="nums">{getThousandNum(item.cumulativeProduction)}</span>
529
+                            }
530
+
531
+                            <span class="topMsg_number_2" style={{ fontSize: "0.75em", color: "#fff" }}>吨</span>
532
+                          </div>
533
+                          <div style={{ width: "60%" }}>
534
+                            <p>产品库存</p>
535
+                            {
536
+                              !changGif ? <span class="nums shu1">{item.inventory}</span> : <span class="nums">{getThousandNum(item.inventory)}</span>
537
+                            }
538
+                            <span class="topMsg_number_2" style={{ fontSize: "0.75em", color: "#fff" }}>吨</span>
539
+                          </div>
540
+
541
+                        </div>
542
+                      }
543
+                    </li>
544
+                  )
545
+                })
546
+              }
547
+            </ul>
548
+            <div class="bottomContent3  animate__animated animate__fadeInUp animate__slower animate__delay-1s" style={{ bottom: '3%' }}>
422 549
               <div className="bottomContent">
423 550
                 <Tooltip placement="bottom" title={' ● 以更新日期为节点近30天的产量数据(含外加工)。'}>
424 551
                   <p className="topMsg_title">近30天产量</p>
@@ -434,7 +561,7 @@ class Home extends Component {
434 561
           {/* 右侧信息栏 */}
435 562
           <div className="leftContent">
436 563
 
437
-            <div class="topMsg_33 animate__animated animate__fadeInDown animate__slower animate__delay-1s">
564
+            <div class="topMsg_33 mgb_box animate__animated animate__fadeInDown animate__slower animate__delay-1s">
438 565
               <div className="topMsg_3">
439 566
                 <Tooltip placement="bottom" title={' ● 本年度截止到更新日期累计产量的计划完成率。'}>
440 567
                   <p className="topMsg_title">产量计划完成率</p>
@@ -448,7 +575,7 @@ class Home extends Component {
448 575
               </div>
449 576
             </div>
450 577
 
451
-            <div class="topMsg_22 animate__animated animate__fadeInDown animate__slower">
578
+            <div class="topMsg_22 mgb_box animate__animated animate__fadeInDown animate__slower">
452 579
               <div className="topMsg_2">
453 580
                 <Tooltip placement="bottom" title={' ● 近六个月的主产品一次合格率,当月的数据计算至更新日期。'}>
454 581
                   <p className="topMsg_title">一次合格率</p>
@@ -473,7 +600,7 @@ class Home extends Component {
473 600
               </div>
474 601
             </div> */}
475 602
 
476
-            <div class="bottomContent2 animate__animated animate__fadeInDown animate__slower animate__delay-2s">
603
+            <div class="bottomContent2 mgb_box animate__animated animate__fadeInDown animate__slower animate__delay-2s">
477 604
               <div className="bottomContent bigDivPd">
478 605
                 <Tooltip placement="bottom" title={' ● 近六个月的产量和发货量的对比数据(含外加工),当月的数据计算至更新日期。'}>
479 606
                   <p className="topMsg_title">月度发货量</p>