소스 검색

feat: tlk联调

@dayan_hjm 1 년 전
부모
커밋
68c87acf08

+ 4 - 4
config/webpack.dev.js

@@ -135,15 +135,15 @@ module.exports = merge(common, {
135 135
       "/api": {
136 136
         // target: "http://47.96.100.195:9081"
137 137
         // target: "http://dataportal-test.agile.com.cn:8081"
138
-        // target: "http://10.8.8.173:9081",
139
-        target:"https://dms.dataportal.tianqilithium.com:9000",
138
+        target: "http://10.8.8.173:9081",
139
+        // target:"https://dms.dataportal.tianqilithium.com:9000",
140 140
         changeOrigin:true,
141 141
 
142 142
       },
143 143
       "/dataengine-center-oneservice": {
144 144
         // target: "http://10.8.8.185:31233",
145
-        // target: "http://10.8.8.173:9081",
146
-        target:"https://dms.dataportal.tianqilithium.com:9000",
145
+        target: "http://10.8.8.173:9081",
146
+        // target:"https://dms.dataportal.tianqilithium.com:9000",
147 147
         changeOrigin:true,
148 148
       },
149 149
       "/mock":{

+ 8 - 2
src/assets/css/styleTemplate.less

@@ -2,7 +2,7 @@
2 2
  * @Author: dayan_hjm 茶百道主题样式
3 3
  * @Date: 2022-10-27 10:56:37 
4 4
  * @Last Modified by: dayan_hjm
5
- * @Last Modified time: 2024-10-16 17:08:51
5
+ * @Last Modified time: 2024-10-17 11:26:42
6 6
  */
7 7
 
8 8
 @import url("../../themes/themes.less");
@@ -14,7 +14,7 @@
14 14
   }
15 15
 
16 16
   #echarts7 {
17
-    min-width: 600px;
17
+    min-width: 400px;
18 18
     width: 95%;
19 19
     height: 90%;
20 20
     >div{
@@ -244,6 +244,9 @@
244 244
     background-color: #0a091e;
245 245
 
246 246
   }
247
+  #app .tlkTop2 {
248
+    background: url(../imgs/dataVimg/topBg2.png) no-repeat 0 0 / 100% 100% #0a091e!important;
249
+  }
247 250
 
248 251
   #app .top {
249 252
     background: url(../imgs/dataVimg/topBg.png) no-repeat 0 0 / 100% 100% #0a091e;
@@ -654,6 +657,9 @@
654 657
             width: 100%;
655 658
             height: 80%;
656 659
           }
660
+          #echarts51{
661
+            height: 90%;
662
+          }
657 663
         }
658 664
       }
659 665
 

BIN
src/assets/imgs/dataVImg/homeBgDataV2.jpg


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


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


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


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


+ 2 - 1
src/pages/frame/component/top/view.jsx

@@ -590,7 +590,8 @@ export default observer(function (props) {
590 590
   };
591 591
   return (
592 592
     <div class="top2 animate__animated animate__fadeInDown animate__delay-1s animate__slower">
593
-      <div className={$store.app.styleCommon.theme == 'chaBaiDao' ? [styles.top + ' top'] : styles.top}>
593
+      {/* <div className={$store.app.styleCommon.theme == 'chaBaiDao' ? [styles.top + ' top'] : (window.location.host.indexOf("home/tlk") > -1 ? styles.tlkTop2 : styles.top)}> */}
594
+      <div className={window.location.hash.indexOf("home/tlk") > -1 ? [styles.top + ' top tlkTop2'] : ($store.app.styleCommon.theme == 'chaBaiDao' ? [styles.top + ' top'] : styles.top)}>
594 595
         {/* 全屏按钮 */}
595 596
         <Tooltip placement="bottom" title={iptValue == 1 ? "全屏" : "退出全屏"}>
596 597
           <div className={"allP_png"}>

+ 49 - 44
src/pages/tlk/api.js

@@ -44,28 +44,28 @@ export function dataengineCenterOneservice(params) {
44 44
 /**库存金额 */
45 45
 export function momeyService(params) {
46 46
   return request({
47
-    url: "/dataengine-center-oneservice/list/1356776817075459329",
47
+    url: "/dataengine-center-oneservice/list/1387384636193494241",
48 48
     method: "POST",
49 49
     data: {
50
-      "apiId": "1356776817075459329",
51
-      "appKey": "200000134",
50
+      "apiId": "1387384636193494241",
51
+      "appKey": "200000137",
52 52
       "env": "PROD",
53 53
       "reqProtocol": 1,
54 54
       "returnFields": [
55
-        "indexName",
55
+        "IndexCode",
56 56
         "prodCatgory",
57
-        "indexValue"
57
+        "IndexValue"
58 58
       ],
59 59
       "pageNum": 1,
60 60
       "pageSize": 10,
61 61
       "useResultCache": false
62 62
     },
63 63
     headers: {
64
-      sign: 'd58de970856e583f126d186662251024',
64
+      sign: '850f99fb60cf4deb3aaf3b11d8f41a98',
65 65
       account: 'yunxi_fuxue',
66 66
       'Cache-Control': 'no-cache',
67
-      apiId: '1356776817075459329',
68
-      appKey: '200000134',
67
+      apiId: '1387384636193494241',
68
+      appKey: '200000137',
69 69
       execType: '3',
70 70
       env: 'PROD',
71 71
     }
@@ -107,27 +107,27 @@ 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/1385953029203023057",
111 111
     method: "POST",
112 112
     data: {
113
-      "apiId": "1356243326548087867",
114
-      "appKey": "200000134",
113
+      "apiId": "1385953029203023057",
114
+      "appKey": "200000137",
115 115
       "env": "PROD",
116 116
       "reqProtocol": 1,
117 117
       "returnFields": [
118
-        "indexName",
119
-        "indexValue"
118
+        "IndexCode",
119
+        "IndexValue"
120 120
       ],
121 121
       "pageNum": 1,
122 122
       "pageSize": 10,
123 123
       "useResultCache": false
124 124
     },
125 125
     headers: {
126
-      sign: '2f079b53e1e63b753bb6f9807f6c6818',
126
+      sign: '057cc9b7a42bbfa5177b22f75a6858d3',
127 127
       account: 'yunxi_fuxue',
128 128
       'Cache-Control': 'no-cache',
129
-      apiId: '1356243326548087867',
130
-      appKey: '200000134',
129
+      apiId: '1385953029203023057',
130
+      appKey: '200000137',
131 131
       execType: '3',
132 132
       env: 'PROD',
133 133
     }
@@ -138,29 +138,29 @@ 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/1387839381046678787",
142 142
     method: "POST",
143 143
     data: {
144
-      "apiId": "1356244872119751767",
145
-      "appKey": "200000134",
144
+      "apiId": "1387839381046678787",
145
+      "appKey": "200000137",
146 146
       "env": "PROD",
147 147
       "reqProtocol": 1,
148 148
       "returnFields": [
149
-        "indexName",
150
-        "indexDate",
151
-        "indexValue",
152
-        "factoryProdcution"
149
+        "DateId",
150
+        "ProdQty",
151
+        "Avg5daysQty",
152
+        "AvgQty"
153 153
       ],
154 154
       "pageNum": 1,
155
-      "pageSize": 30,
155
+      "pageSize": 90,
156 156
       "useResultCache": false
157 157
     },
158 158
     headers: {
159
-      sign: 'ef3ecc442896d925cc02d36f1107d9e3',
159
+      sign: '4995cb5ad27388171ede287e7e7d32b7',
160 160
       account: 'yunxi_fuxue',
161 161
       'Cache-Control': 'no-cache',
162
-      apiId: '1356244872119751767',
163
-      appKey: '200000134',
162
+      apiId: '1387839381046678787',
163
+      appKey: '200000137',
164 164
       execType: '3',
165 165
       env: 'PROD',
166 166
     }
@@ -170,30 +170,35 @@ 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/1387386363429901547",
174 174
     method: "POST",
175 175
     data: {
176
-      "apiId": "1356411403496625359",
177
-      "appKey": "200000134",
176
+      "apiId": "1387386363429901547",
177
+      "appKey": "200000137",
178 178
       "env": "PROD",
179 179
       "reqProtocol": 1,
180 180
       "returnFields": [
181 181
         "bMonth",
182
-        "proQty",
183
-        "deliveryQty",
184
-        "qcRate",
185
-        "targeRate",
182
+        "ProdQty",
183
+        "ProdBudgetqty",
184
+        "ProdRate",
185
+        "DeliveryQty",
186
+        "QcRate",
187
+        "AccqcRate",
188
+        "ComsumptionQty",
189
+        "SpodBugetqty",
190
+        "SpodRate"
186 191
       ],
187 192
       "pageNum": 1,
188 193
       "pageSize": 10,
189 194
       "useResultCache": false
190 195
     },
191 196
     headers: {
192
-      sign: '9c472223a9acbdb9f16bebb7002e0c40',
197
+      sign: 'ed0cafc5563550631d66b42fc356ce5b',
193 198
       account: 'yunxi_fuxue',
194 199
       'Cache-Control': 'no-cache',
195
-      apiId: '1356411403496625359',
196
-      appKey: '200000134',
200
+      apiId: '1387386363429901547',
201
+      appKey: '200000137',
197 202
       execType: '3',
198 203
       env: 'PROD',
199 204
     }
@@ -203,26 +208,26 @@ export function twoService(params) {
203 208
 /**更新日期*/
204 209
 export function updateTimeService(params) {
205 210
   return request({
206
-    url: "/dataengine-center-oneservice/list/1356778817327502618",
211
+    url: "dataengine-center-oneservice/list/1387847244910548243",
207 212
     method: "POST",
208 213
     data: {
209
-      "apiId": "1356778817327502618",
210
-      "appKey": "200000134",
214
+      "apiId": "1387847244910548243",
215
+      "appKey": "200000137",
211 216
       "env": "PROD",
212 217
       "reqProtocol": 1,
213 218
       "returnFields": [
214
-        "etlTime"
219
+        "etlTime",
215 220
       ],
216 221
       "pageNum": 1,
217 222
       "pageSize": 10,
218 223
       "useResultCache": false
219 224
     },
220 225
     headers: {
221
-      sign: '4365b6564b25c852fcf0228188f48114',
226
+      sign: '35efbe9a508f01e197849bd17c467d42',
222 227
       account: 'yunxi_fuxue',
223 228
       'Cache-Control': 'no-cache',
224
-      apiId: '1356778817327502618',
225
-      appKey: '200000134',
229
+      apiId: '1387847244910548243',
230
+      appKey: '200000137',
226 231
       execType: '3',
227 232
       env: 'PROD',
228 233
     }

+ 11 - 9
src/pages/tlk/component/bottomLineForSend.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-14 17:29:25
5
+ * @Last Modified time: 2024-10-17 14:24:52
6 6
  */
7 7
 
8 8
 
@@ -25,6 +25,7 @@ class BottomLineForSend extends Component {
25 25
       factoryProdcution_arr: [],
26 26
       missionsIntensity_arr: [],
27 27
       year: [],
28
+      AvgQty:[],
28 29
     };
29 30
   }
30 31
 
@@ -34,14 +35,15 @@ class BottomLineForSend extends Component {
34 35
   async getUrl() {
35 36
     await mondService().then(({ data = [], resultCode }) => {
36 37
       if (+resultCode === 0) {
37
-        let year = [], missionsIntensity_arr = [], factoryProdcution_arr = [];
38
+        let year = [], missionsIntensity_arr = [],AvgQty = [], factoryProdcution_arr = [];
38 39
         data.map((x, i) => {
39
-          const name_ = x.indexDate.split('-')[1] + '-' + x.indexDate.split('-')[2];
40
+          const name_ = x.DateId.split('-')[1] + '-' + x.DateId.split('-')[2];
40 41
           year.push(name_);
41
-          missionsIntensity_arr.push(x.indexValue);
42
-          factoryProdcution_arr.push(x.factoryProdcution)
42
+          missionsIntensity_arr.push(x.ProdQty);
43
+          AvgQty.push(x.AvgQty);
44
+          factoryProdcution_arr.push(x.Avg5daysQty)
43 45
         });
44
-        this.setState({ year, missionsIntensity_arr, factoryProdcution_arr });
46
+        this.setState({ year, missionsIntensity_arr, AvgQty,factoryProdcution_arr });
45 47
         this.setData();
46 48
       }
47 49
     });
@@ -92,7 +94,7 @@ class BottomLineForSend extends Component {
92 94
           type: 'category',
93 95
           // boundaryGap: ['20%', '20%'],
94 96
           axisLabel: {
95
-            interval: 0,
97
+            // interval: 0,//设置是否展示全部数据在x轴
96 98
             rotate: -60,
97 99
             textStyle: {
98 100
               color: '#7d7d7d',
@@ -198,7 +200,7 @@ class BottomLineForSend extends Component {
198 200
                 width: 2
199 201
               }
200 202
             },
201
-            data: [445, 89, 34, 357, 234, 333, 566, 443, 233, 444, 445, 889, 34, 367, 234, 333, 566, 443, 233, 444],//this.state.factoryProdcution_arr,
203
+            data: this.state.factoryProdcution_arr,
202 204
           },
203 205
           {
204 206
             name: '平均产量(Average Net Production)',
@@ -220,7 +222,7 @@ class BottomLineForSend extends Component {
220 222
                 borderWidth: 12
221 223
               }
222 224
             },
223
-            data: [889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889,],//this.state.factoryProdcution_arr,
225
+            data: this.state.AvgQty,
224 226
             "smooth": true
225 227
           },
226 228
         ]

+ 80 - 166
src/pages/tlk/component/leftMenoyView.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-16 16:54:35
5
+ * @Last Modified time: 2024-10-17 15:09:42
6 6
  */
7 7
 
8 8
 
@@ -25,7 +25,20 @@ class LeftMenoyView extends Component {
25 25
     this.store = mod;
26 26
     this.state = {
27 27
       max1: [],
28
-      year: ["氢氧化锂(电池级)/ LHM(BG)", "氢氧化锂(工业级)/ LHM(PG)", '氢氧化锂(待检验)/ LHM(PENDING)'],
28
+      total:0,
29
+      year: [
30
+        {
31
+          name:"氢氧化锂(电池级)",
32
+          tips:'/ LHM(BG)',
33
+        },
34
+        {
35
+          name:"氢氧化锂(工业级)",
36
+          tips:'/ LHM(PG)',
37
+        },
38
+        {
39
+          name:"氢氧化锂(待检验)",
40
+          tips:'/ LHM(PENDING)',
41
+        },],
29 42
       missionsIntensity_arr: [
30 43
         { value: 0, name: "氢氧化锂(电池级)/ LHM(BG)" },
31 44
         { value: 0, name: "氢氧化锂(工业级)/ LHM(PG)" },
@@ -39,116 +52,73 @@ class LeftMenoyView extends Component {
39 52
   }
40 53
 
41 54
   async getUrl() {
42
-    let data_style = [{
43
-      value: 25, name: '', itemStyle: {
44
-        normal: {
45
-          // barBorderRadius: 15,
46
-          // borderColor: "rgba(141, 147, 255, 1)",
47
-          // borderWidth: 1,
48
-          color: {
49
-            // 完成的圆环的颜色
50
-            colorStops: [
51
-              {
52
-                offset: 0,
53
-                color: '#8D93FF', // 0% 处的颜色
54
-              },
55
-              {
56
-                offset: 1,
57
-                color: '#8D93FF', // 100% 处的颜色
58
-              },
59
-            ],
60
-          },
61
-        },
62
-      },
63
-
64
-    }, {
65
-      value: 33, name: '', itemStyle: {
66
-        normal: {
67
-          // barBorderRadius: 15,
68
-          // borderColor: "rgba(105, 255, 222, 1)",
69
-          // borderWidth: 1,
70
-
71
-          color: {
72
-            // 完成的圆环的颜色
73
-            colorStops: [
74
-              {
75
-                offset: 0,
76
-                color: '#FFCE00', // 0% 处的颜色
77
-              },
78
-              {
79
-                offset: 1,
80
-                color: '#FFCE00', // 100% 处的颜色
81
-              },
82
-            ],
83
-          },
84
-        },
55
+    let data_style = [
56
+      {
57
+        value: 55, name: '氢氧化锂(电池级)/ LHM(BG)', itemStyle: {
58
+          borderRadius: '30%',
59
+          normal: {
60
+            color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
61
+              offset: 0,
62
+              color: 'rgba(141, 147, 255, 0.7)'
63
+            }, {
64
+              offset: 1,
65
+              color: 'rgba(141, 147, 255, 1)'
66
+            }]),
67
+          }
68
+        }
85 69
       },
86
-
87
-    }, {
88
-      value: 35, name: '', itemStyle: {
89
-        normal: {
90
-          // barBorderRadius: 15,
91
-          // borderColor: "rgba(47, 210, 255, 1)",
92
-          // borderWidth: 1,
93
-
94
-          color: {
95
-            // 完成的圆环的颜色
96
-            colorStops: [
97
-              {
98
-                offset: 0,
99
-                color: '#69FFDE', // 0% 处的颜色
100
-              },
101
-              {
102
-                offset: 1,
103
-                color: '#69FFDE', // 100% 处的颜色
104
-              },
105
-            ],
106
-          },
107
-        },
70
+      {
71
+        value: 38, name: '氢氧化锂(工业级)/ LHM(PG)', itemStyle: {
72
+          borderRadius: '30%',
73
+          normal: {
74
+            color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
75
+              offset: 0,
76
+              color: 'rgba(255, 206, 0, 0.7)'
77
+            }, {
78
+              offset: 1,
79
+              color: 'rgba(255, 206, 0, 1)'
80
+            }]),
81
+          }
82
+        }
108 83
       },
109
-
110
-    }, {
111
-      value: 40, name: '', itemStyle: {
112
-        normal: {
113
-          // barBorderRadius: 15,
114
-          // borderColor: "rgba(255, 206, 0, 1)",
115
-          // borderWidth: 1,
116
-
117
-          color: {
118
-            // 完成的圆环的颜色
119
-            colorStops: [
120
-              {
121
-                offset: 0,
122
-                color: '#8D93FF', // 0% 处的颜色
123
-              },
124
-              {
125
-                offset: 1,
126
-                color: '#8D93FF', // 100% 处的颜色
127
-              },
128
-            ],
129
-          },
130
-        },
84
+      {
85
+        value: 32, name: '油氢氧化锂(待检验)/ LHM(PENDING)', itemStyle: {
86
+          borderRadius: '30%',
87
+          normal: {
88
+            color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
89
+              offset: 0,
90
+              color: 'rgba(105, 255, 222, 0.7)'
91
+            }, {
92
+              offset: 1,
93
+              color: 'rgba(105, 255, 222, 1)'
94
+            }]),
95
+          }
96
+        }
131 97
       },
132
-
133
-    }]
98
+    ]
134 99
     await momeyService().then(({ data = [], resultCode }) => {
135
-
136 100
       if (+resultCode === 0) {
137
-        let year = [], missionsIntensity_arr = [], max1 = [], num = [];
101
+        let total = 0, max1 = [], num = [];
138 102
         data.map((x, i) => {
139
-          if (i > 2) { return }
140
-          num.push(x.indexValue)
141
-          // year.unshift(x.prodCatgory);
142
-          data_style[i].value = x.indexValue;
143
-          data_style[i].name = this.state.year[i]// x.prodCatgory;
144
-          missionsIntensity_arr.push(data_style[i])
103
+            if(x.IndexCode == '11'){
104
+              data_style[0].value = x.IndexValue;
105
+              num.push(x.IndexValue)
106
+              total += Number(x.IndexValue || 0)
107
+            }else if(x.IndexCode == '12'){
108
+              num.push(x.IndexValue)
109
+              data_style[1].value = x.IndexValue;
110
+              total += Number(x.IndexValue || 0)
111
+            }else if(x.IndexCode == '13'){
112
+              num.push(x.IndexValue)
113
+              data_style[2].value = x.IndexValue;
114
+              total += Number(x.IndexValue || 0)
115
+            }
145 116
         });
146 117
         const max_1 = getArrMax(num);
147
-        for (let index = 0; index < data.length; index++) {
148
-          if (index > 2) { break }
149
-          max1.unshift(max_1 / 0.7)
118
+        for (let index = 0; index < data_style.length; index++) {
119
+          max1.unshift(max_1/0.7)
150 120
         }
151
-        this.setState({ missionsIntensity_arr, max1 });
121
+        this.setState({ missionsIntensity_arr:data_style,total,max1 });
152 122
         this.setData();
153 123
         this.setData2();
154 124
       }
@@ -158,6 +128,7 @@ class LeftMenoyView extends Component {
158 128
 
159 129
 
160 130
   setData() {
131
+    const new_arr = this.state.missionsIntensity_arr.reverse();
161 132
     setTimeout(() => {
162 133
       // 基于准备好的dom,初始化echarts实例
163 134
       var myChart = echarts.init(document.getElementById('echarts41'));
@@ -203,13 +174,13 @@ class LeftMenoyView extends Component {
203 174
           name: '条',
204 175
           type: 'bar',
205 176
           yAxisIndex: 0,
206
-          data: this.state.missionsIntensity_arr,
177
+          data: new_arr,
207 178
           label: {
208 179
             normal: {
209 180
               show: true,
210 181
               position: 'right',
211 182
               formatter: function (param) {
212
-                return getThousandNum(param.value) + '万元';
183
+                return getThousandNum(param.value) + 't';
213 184
                 // return param.name+":"+param.value + '万元';
214 185
 
215 186
               },
@@ -271,75 +242,18 @@ class LeftMenoyView extends Component {
271 242
   }
272 243
 
273 244
   setData2() {
274
-    var data = [
275
-      {
276
-        value: 55, name: '氢氧化锂(电池级)/ LHM(BG)', itemStyle: {
277
-          borderRadius: '30%',
278
-          normal: {
279
-            color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
280
-              offset: 0,
281
-              color: 'rgba(105, 255, 222, 0.3)'
282
-            }, {
283
-              offset: 1,
284
-              color: 'rgba(105, 255, 222, 1)'
285
-            }]),
286
-          }
287
-        }
288
-      },
289
-      {
290
-        value: 38, name: '氢氧化锂(工业级)/ LHM(PG)', itemStyle: {
291
-          borderRadius: '30%',
292
-          normal: {
293
-            color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
294
-              offset: 0,
295
-              color: 'rgba(141, 147, 255, 0.3)'
296
-            }, {
297
-              offset: 1,
298
-              color: 'rgba(141, 147, 255, 1)'
299
-            }]),
300
-          }
301
-        }
302
-      },
303
-      {
304
-        value: 32, name: '油氢氧化锂(待检验)/ LHM(PENDING)', itemStyle: {
305
-          borderRadius: '30%',
306
-          normal: {
307
-            color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
308
-              offset: 0,
309
-              color: 'rgba(255, 206, 0, 0.3)'
310
-            }, {
311
-              offset: 1,
312
-              color: 'rgba(255, 206, 0, 1)'
313
-            }]),
314
-          }
315
-        }
316
-      },
317
-    ];
318 245
 
319 246
     setTimeout(() => {
320 247
       // 基于准备好的dom,初始化echarts实例
321 248
       var myChart = echarts.init(document.getElementById('echarts61'));
322 249
       var option = {
323
-        // title:{
324
-        // text: '208768t\n总库存',
325
-        //     top: '45%',
326
-        //     textAlign: 'center',
327
-        //     left: '50%',
328
-        //     textStyle: {
329
-        //         color: ' #fff',
330
-        //         fontSize: 22,
331
-        //         fontWeight: '600',
332
-        //         lineHeight: 60,
333
-        //     },
334
-        //   },
335 250
         calculable: true,
336 251
         series: [
337 252
           {
338 253
             type: 'pie',
339 254
             radius: ['50%', '65%'],
340 255
             center: ['50%', '50%'],
341
-            // roseType: 'radius',
342
-            data: data,
256
+            data: this.state.missionsIntensity_arr,
343 257
             itemStyle: {
344 258
               borderRadius: 70,
345 259
             },
@@ -363,7 +277,7 @@ class LeftMenoyView extends Component {
363 277
   }
364 278
 
365 279
   render() {
366
-
280
+    const { total } = this.state;
367 281
     return (
368 282
       <div className={["eacharView cbLeftMenoyView"]}>
369 283
         <div id="echarts6_box">
@@ -376,7 +290,7 @@ class LeftMenoyView extends Component {
376 290
           <div id="echarts61"></div>
377 291
           <div className="text_total">
378 292
               <p>
379
-                    <span className="topMsg_number" class="shu1">445677</span>
293
+                    <span className="topMsg_number" class="shu1">{total}</span>
380 294
                     <span className="topMsg_number_2">t</span>
381 295
               </p>
382 296
               <span className="topMsg_number_3">总库存</span>
@@ -385,7 +299,7 @@ class LeftMenoyView extends Component {
385 299
         <ul className={"name_ul"}>
386 300
           {
387 301
             this.state.year.map(x => {
388
-              return <li>{x}</li>
302
+              return (<li>{x.name}<span style={{fontSize:"0.7em"}}>{x.tips}</span></li>)
389 303
             })
390 304
           }
391 305
         </ul>

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

@@ -101,7 +101,7 @@ class MapView extends Component {
101 101
     const { changGif } = this.state;
102 102
     return (
103 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>
104
+          <video src={require("@assets/imgs/dataVImg/tlk.mp4").default} autoplay="autoplay" class="video1"></video>
105 105
       </div>
106 106
     )
107 107
   }

+ 4 - 4
src/pages/tlk/component/moodSendView.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-16 10:56:56
5
+ * @Last Modified time: 2024-10-17 11:05:49
6 6
  */
7 7
 
8 8
 
@@ -38,10 +38,10 @@ class MoodSendView extends Component {
38 38
         let year = [], proQty = [], deliveryQty = [];
39 39
         data.map((x, i) => {
40 40
           year.push(x.bMonth);
41
-          proQty.push(x.proQty)
42
-          deliveryQty.push(x.deliveryQty)
41
+          // proQty.push(x.proQty)
42
+          deliveryQty.push(x?.DeliveryQty ? x?.DeliveryQty.toFixed(1) : 0)
43 43
         });
44
-        this.setState({ year, deliveryQty,proQty });
44
+        this.setState({ year, deliveryQty });
45 45
         this.setData();
46 46
       }
47 47
     });

+ 12 - 9
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-16 10:56:28
5
+ * @Last Modified time: 2024-10-17 11:28:28
6 6
  */
7 7
 
8 8
 
@@ -25,6 +25,7 @@ class BottomLineForSend extends Component {
25 25
       proQty:[],
26 26
       year:[],
27 27
       deliveryQty:[],
28
+      SpodRate:[]
28 29
     };
29 30
   }
30 31
 
@@ -35,13 +36,14 @@ class BottomLineForSend extends Component {
35 36
   async getUrl() {
36 37
     await twoService().then(({ data = [], resultCode }) => {
37 38
       if (+resultCode === 0) {
38
-        let year = [], proQty = [], deliveryQty = [];
39
+        let year = [], proQty = [], deliveryQty = [], SpodRate = [];
39 40
         data.map((x, i) => {
40 41
           year.push(x.bMonth);
41
-          proQty.push(x.proQty)
42
-          deliveryQty.push(x.deliveryQty)
42
+          proQty.push(x?.SpodBugetqty ? x?.SpodBugetqty.toFixed(1) : 0)
43
+          deliveryQty.push(x?.ComsumptionQty ? x?.ComsumptionQty.toFixed(1) : 0)
44
+          SpodRate.push(x?.SpodRate ? (x?.SpodRate*100).toFixed(1) : 0)
43 45
         });
44
-        this.setState({ year, deliveryQty,proQty });
46
+        this.setState({ year, deliveryQty,proQty,SpodRate });
45 47
         this.setData();
46 48
       }
47 49
     });
@@ -66,9 +68,9 @@ class BottomLineForSend extends Component {
66 68
       var option = {
67 69
         grid: {
68 70
           left: '2%',
69
-          top: '30%',
71
+          top: '15%',
70 72
           right: '0%',
71
-          bottom: '0%',
73
+          bottom: '5%',
72 74
           containLabel: true
73 75
         },
74 76
 
@@ -89,7 +91,7 @@ class BottomLineForSend extends Component {
89 91
         legend: {
90 92
           data: ['锂辉石消耗量\n(Spodunene Consumption)', '锂辉石计划消耗量\n(Spodumene Consumption Plan)','锂辉石计划执行率\n(Execution rate of spodumene plan)'],
91 93
           fontFamily:'DingTalkJinBuTi',
92
-          padding: [15, 0, 20, 0],
94
+          padding: [0, 0, 10, 0],
93 95
           textStyle:{
94 96
             color: "#CDF1FF",
95 97
             fontSize:9,
@@ -226,7 +228,8 @@ class BottomLineForSend extends Component {
226 228
             },
227 229
             data: this.state.deliveryQty
228 230
           },
229
-          {data: [8000, 16000, 20000,45566,3345,33445],
231
+          {
232
+            data: this.state.SpodRate,
230 233
             type: 'line',
231 234
             showAllSymbol: true,
232 235
             yAxisIndex: 1,

+ 9 - 6
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-16 10:55:36
5
+ * @Last Modified time: 2024-10-17 11:01:37
6 6
  */
7 7
 
8 8
 
@@ -25,6 +25,7 @@ class OneSendView extends Component {
25 25
       proQty:[],
26 26
       year:[],
27 27
       deliveryQty:[],
28
+      ProdRate:[]
28 29
     };
29 30
   }
30 31
 
@@ -35,13 +36,14 @@ class OneSendView extends Component {
35 36
   async getUrl() {
36 37
     await twoService().then(({ data = [], resultCode }) => {
37 38
       if (+resultCode === 0) {
38
-        let year = [], proQty = [], deliveryQty = [];
39
+        let year = [], proQty = [], deliveryQty = [],ProdRate= [];
39 40
         data.map((x, i) => {
40 41
           year.push(x.bMonth);
41
-          proQty.push(x.proQty)
42
-          deliveryQty.push(x.deliveryQty)
42
+          proQty.push(x?.ProdQty ? x?.ProdQty.toFixed(1) : 0)
43
+          deliveryQty.push(x?.ProdBudgetqty ? x?.ProdBudgetqty.toFixed(1) : 0)
44
+          ProdRate.push(x?.ProdRate ? (x?.ProdRate*100).toFixed(1) : 0)
43 45
         });
44
-        this.setState({ year, deliveryQty,proQty });
46
+        this.setState({ year, deliveryQty,ProdRate,proQty });
45 47
         this.setData();
46 48
       }
47 49
     });
@@ -220,7 +222,8 @@ class OneSendView extends Component {
220 222
             },
221 223
             data: this.state.deliveryQty
222 224
           },
223
-          {data: [8000, 16000, 20000,45566,3345,33445],
225
+          {
226
+            data: this.state.ProdRate,
224 227
             type: 'line',
225 228
             showAllSymbol: true,
226 229
             yAxisIndex: 1,

+ 18 - 18
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-16 10:57:51
5
+ * @Last Modified time: 2024-10-17 11:30:23
6 6
  */
7 7
 
8 8
 
@@ -11,7 +11,7 @@ import styles from "../style.less";
11 11
 import { useHistory, useLocation, withRouter } from "react-router-dom";
12 12
 import mod from '../mod';
13 13
 import {
14
-  mondService,
14
+  twoService,
15 15
 } from "../api";
16 16
 
17 17
 @withRouter
@@ -22,7 +22,7 @@ class RightBottomView extends Component {
22 22
     super(props, context);
23 23
     this.store = mod;
24 24
     this.state = {
25
-      factoryProdcution_arr: [],
25
+      AccqcRate: [],
26 26
       missionsIntensity_arr: [],
27 27
       year: [],
28 28
     };
@@ -32,16 +32,15 @@ class RightBottomView extends Component {
32 32
     this.getUrl()
33 33
   }
34 34
   async getUrl() {
35
-    await mondService().then(({ data = [], resultCode }) => {
35
+    await twoService().then(({ data = [], resultCode }) => {
36 36
       if (+resultCode === 0) {
37
-        let year = [], missionsIntensity_arr = [], factoryProdcution_arr = [];
37
+        let year = [], missionsIntensity_arr = [], AccqcRate = [];
38 38
         data.map((x, i) => {
39
-          const name_ = x.indexDate.split('-')[1] + '-' + x.indexDate.split('-')[2];
40
-          year.push(name_);
41
-          missionsIntensity_arr.push(x.indexValue);
42
-          factoryProdcution_arr.push(x.factoryProdcution)
39
+          year.push(x.bMonth);
40
+          missionsIntensity_arr.push(x?.QcRate ? (x?.QcRate * 100).toFixed(1) : 0)
41
+          AccqcRate.push(x?.AccqcRate ? (x?.AccqcRate*100).toFixed(1) : 0)
43 42
         });
44
-        this.setState({ year, missionsIntensity_arr, factoryProdcution_arr });
43
+        this.setState({ year,AccqcRate,missionsIntensity_arr });
45 44
         this.setData();
46 45
       }
47 46
     });
@@ -70,9 +69,9 @@ class RightBottomView extends Component {
70 69
         },
71 70
         // formatter: `日期: {b0}<br />{a0}: {c0}吨<br />{a1}: {c1}吨`,
72 71
         grid: {
73
-          left: '5%',
72
+          left: '0%',
74 73
           top: '15%',
75
-          right: '4%',
74
+          right: '0%',
76 75
           bottom: '10%',
77 76
           containLabel: true
78 77
         },
@@ -92,15 +91,16 @@ class RightBottomView extends Component {
92 91
           type: 'category',
93 92
           // boundaryGap: ['20%', '20%'],
94 93
           axisLabel: {
94
+            /*inside: true,*/
95
+            color: "rgba(255,255,255,.6)",
95 96
             interval: 0,
96
-            rotate: -60,
97 97
             textStyle: {
98 98
               color: '#7d7d7d',
99
-              fontSize: 11,
99
+              fontSize: 10
100
+
100 101
             },
101
-            showMaxLabel: true,//关键部分,显示最后一个label
102 102
           },
103
-          axisLine: {
103
+        axisLine: {
104 104
             lineStyle: {
105 105
               color: 'rgba(255,255,255,.1)',
106 106
               type: 'dashed',
@@ -136,7 +136,7 @@ class RightBottomView extends Component {
136 136
             },
137 137
           },
138 138
           axisLabel: {
139
-            formatter: "{value}t",
139
+            formatter: "{value}%",
140 140
             textStyle: {
141 141
               color: '#7d7d7d',
142 142
               fontSize: 11
@@ -186,7 +186,7 @@ class RightBottomView extends Component {
186 186
                 width: 2
187 187
               }
188 188
             },
189
-            data: [445, 89, 34, 357, 234, 333, 566, 443, 233, 444, 445, 889, 34, 367, 234, 333, 566, 443, 233, 444],//this.state.factoryProdcution_arr,
189
+            data: this.state.AccqcRate,
190 190
           },
191 191
         ]
192 192
       };

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

@@ -17,6 +17,8 @@ const defaultState = {
17 17
   totalValue:0,
18 18
   yearDecline:0,
19 19
   yearSend:0,
20
+  implementationOfThePlan:0,
21
+  annualPlan:0,
20 22
   productInventory:0,
21 23
   list:[{name:'营运数据大屏'},{name:'经营大盘'},{name:'到家专题'},{name:'门店大盘'},{name:'自助跑数SQL平台'},{name:'月度包材预警跑数模板'}],
22 24
   rightlist:[],

+ 16 - 3
src/pages/tlk/style.less

@@ -10,9 +10,13 @@
10 10
   width: 100%;
11 11
   height: 10px;
12 12
 }
13
-
14 13
 .tlk_box{
14
+  background: url(../../assets/imgs/dataVImg/homeBgDataV2.jpg) no-repeat 0 -10% #041b40!important;
15 15
   :global {
16
+    .video_box {
17
+      width: 100% !important;
18
+      background: url(../../assets/imgs/dataVImg/homeBgDataV2.jpg) no-repeat 0 -10em / 108% 120% #041b40!important;
19
+    }
16 20
     .leftContent .bottomContent2{
17 21
       height: 31%!important;
18 22
       .topMsg_content{
@@ -48,8 +52,8 @@
48 52
     }
49 53
     
50 54
     .rightContent .topMsg_22{
51
-      height: 31%!important;
52
-      margin-bottom: 3%;
55
+      height: 30%!important;
56
+      margin-bottom: 5%;
53 57
       #echarts5{
54 58
         height: 100%!important;
55 59
       }
@@ -65,6 +69,11 @@
65 69
       width: 25%!important;
66 70
       margin-left: 1%;
67 71
     }
72
+    .video_box video{
73
+      width: 100%!important;
74
+      height: 70%!important;
75
+      padding: 0 0 9% 0!important;
76
+    }
68 77
     .rightContent .topMsg .topMsg_content .topMsg_box .topMsg_number_p{
69 78
       margin-bottom: 0.1rem;
70 79
       color: #84b8dc!important;
@@ -75,10 +84,14 @@
75 84
       font-size: 0.5em!important;
76 85
       margin-bottom: 0.13rem;
77 86
     }
87
+    .rightContent .topMsg_2 .topMsg_content{
88
+      height: 100%!important;
89
+    }
78 90
     .rightContent .topMsg .topMsg_content .topMsg_box{
79 91
       width: 32%!important;
80 92
     }
81 93
     .topMsg_title{
94
+      background: url(../../assets/imgs/dataVimg/tipleBg2.png) no-repeat 0 0 / 100% 100%!important;
82 95
       color: #e0f6ff!important;
83 96
       .topMsg_tips{
84 97
         font-size: 0.7em;

+ 18 - 16
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-16 17:00:52
5
+ * @Last Modified time: 2024-10-17 10:46:43
6 6
  */
7 7
 /*
8 8
  * @Author: dayan_hjm 
@@ -182,19 +182,21 @@ class Home extends Component {
182 182
   async getUrl2() {
183 183
     await numberService().then(({ data = [], resultCode }) => {
184 184
       if (+resultCode === 0) {
185
-        let totalValue = 0, yearDecline = 0, yearSend = 0, productInventory = 0;
185
+        let totalValue = 0, productInventory=0,yearDecline = 0, yearSend = 0, annualPlan = 0, implementationOfThePlan = 0;
186 186
         data.map((x, i) => {
187
-          if (x.indexName == '产值') {
188
-            totalValue = x.indexValue
189
-          } else if (x.indexName == '年度产量') {
190
-            yearDecline = x.indexValue
191
-          } else if (x.indexName == '产品库存') {
192
-            yearSend = x.indexValue
193
-          } else if (x.indexName == '年度发货量') {
194
-            productInventory = x.indexValue
187
+          if (x.IndexCode == '1') {
188
+            yearDecline = x.IndexValue
189
+          } else if (x.IndexCode == '2') {
190
+            productInventory = x.IndexValue
191
+          } else if (x.IndexCode == '3') {
192
+            yearSend = x.IndexValue
193
+          } else if (x.IndexCode == '4') {
194
+            annualPlan = x.IndexValue //年度产量完成率
195
+          } else if (x.IndexCode == '5') {
196
+            implementationOfThePlan = x.IndexValue //年度锂辉石执行率
195 197
           }
196 198
         });
197
-        this.store.saveState({ totalValue, yearDecline, yearSend, productInventory });
199
+        this.store.saveState({ totalValue, yearDecline, yearSend, productInventory,annualPlan,implementationOfThePlan });
198 200
         setTimeout(() => {
199 201
           $(".shu1").numScroll();
200 202
         }, 2500)
@@ -252,7 +254,7 @@ class Home extends Component {
252 254
 
253 255
   render() {
254 256
     const stores = this.store.state;
255
-    let { totalValue, yearDecline, yearSend, productInventory } = this.store.state;
257
+    let { totalValue, yearDecline, yearSend, productInventory,annualPlan,implementationOfThePlan } = this.store.state;
256 258
     let { changGif, updateTime, changNun } = this.state;
257 259
     return (
258 260
       <div className={[styles.tlk_box + ' home_box ']}>
@@ -279,7 +281,7 @@ class Home extends Component {
279 281
         {/* 视频播放器 */}
280 282
         <MapView></MapView>
281 283
         <div className={"video_box"}>
282
-          <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>
284
+          <video src={require("@assets/imgs/dataVImg/tlk2.mp4").default} autoplay="autoplay" loop="loop" class="video2 center_box2 animate__animated animate__fadeIn animate__delay-1s"></video>
283 285
         </div>
284 286
         <div className={[styles.home + " home cbHome"]}>
285 287
           <div className="leftContent">
@@ -364,7 +366,7 @@ class Home extends Component {
364 366
                         !changNun && <span className="topMsg_number" class="shu1">{yearSend}</span>
365 367
                       }
366 368
                       {
367
-                        changNun && <span className="topMsg_number">{getThousandNum(yearSend)}</span>
369
+                        changNun && <span className="topMsg_number">{getThousandNum(yearSend,true)}%</span>
368 370
                       }
369 371
                       <p className="topMsg_line"></p>
370 372
                       <Tooltip placement="bottom" title={' ● 截止更新日期的主产品库存数量。'}>
@@ -401,14 +403,14 @@ class Home extends Component {
401 403
                     <p className="topMsg_number_p topMsg_number_p_big">年度产量计划完成率</p>
402 404
                     <p className="topMsg_number_p">Completion rate of</p>
403 405
                     <p className="topMsg_number_p" style={{marginBottom:'0.05rem'}}>annual production plan</p>
404
-                    <span className="topMsg_number" class="shu1">445677</span>
406
+                    <span className="topMsg_number" class="shu1">{getThousandNum(annualPlan,true)}</span>
405 407
                     <span className="topMsg_number_2">%</span>
406 408
                   </div>
407 409
                   <div className="topMsg_box">
408 410
                     <p className="topMsg_number_p topMsg_number_p_big">年度锂辉石计划执行率</p>
409 411
                     <p className="topMsg_number_p">Annual lithium pyroxene</p>
410 412
                     <p className="topMsg_number_p" style={{marginBottom:'0.05rem'}}>plan execution rate</p>
411
-                    <span className="topMsg_number" class="shu1">97.89</span>
413
+                    <span className="topMsg_number" class="shu1">{getThousandNum(implementationOfThePlan,true)}</span>
412 414
                     <span className="topMsg_number_2">%</span>
413 415
                   </div>
414 416
                 </div>

+ 2 - 2
src/utils/util.js

@@ -981,11 +981,11 @@ export function mapTree2(tree, c_name, la_name, isChildren = false, fathers) {
981 981
   return par;
982 982
 }
983 983
 
984
-export function getThousandNum(num){
984
+export function getThousandNum(num,need100){
985 985
   if(!num){return 0}
986 986
   //统一保留2位小数
987 987
   // num = Math.floor(num*100)/100;
988
-  num = Number(num.toFixed(2));
988
+  num = Number(need100 ? (num*100).toFixed(2) : num.toFixed(2));
989 989
   var TextBox8_all = num.toLocaleString();
990 990
   // var text8_sum = TextBox8_all.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g,'$1,');
991 991
   if(TextBox8_all.split('.')[1] && TextBox8_all.split('.')[1].length == 1){