Bladeren bron

feat: 基础页面ui

@dayan_hjm 2 jaren geleden
bovenliggende
commit
b72c77aa11

+ 4 - 0
public/index.html

@@ -169,6 +169,10 @@
169 169
     }
170 170
 
171 171
   </script>
172
+  <script src="../src/assets/js/jquery-1.11.0.min.js" type="text/javascript"></script>
173
+  <script src="../src/assets/js/jquery.numscroll.js" type="text/javascript" charset="utf-8"></script>
174
+  <script src="../src/assets/js/echarts.all.js"></script>
175
+  <script src="../src/assets/js/echarts.min.js"></script>
172 176
   <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script> -->
173 177
   <script type="text/javascript" src="<%=htmlWebpackPlugin.options.publicPath%>static/privateConfig.js"></script>
174 178
   <script type="text/javascript" src="../src/assets/js/crypto-js.js"></script>

+ 187 - 122
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: 2023-09-12 17:46:02
5
+ * @Last Modified time: 2023-10-20 17:47:55
6 6
  */
7 7
 
8 8
 @import url("../../themes/themes.less");
@@ -11,19 +11,25 @@
11 11
   #app {
12 12
     height: inherit;
13 13
   }
14
+
14 15
   .hidetip {
15 16
     display: none;
16 17
   }
17
-  .ant-pro-table{
18
+
19
+  .ant-pro-table {
18 20
     padding-bottom: 40px;
19 21
   }
20
-  .ant-pro-table-list-toolbar-container{
22
+
23
+  .ant-pro-table-list-toolbar-container {
21 24
     padding: 0px 0 5px;
22 25
   }
23
-  .disabledBtn,.disabledBtn:hover{
24
-    color:#b0b0b0!important
26
+
27
+  .disabledBtn,
28
+  .disabledBtn:hover {
29
+    color: #b0b0b0 !important
25 30
   }
26
-  #form1222 .ant-col-19{
31
+
32
+  #form1222 .ant-col-19 {
27 33
     max-width: 100%;
28 34
     margin-left: 80px;
29 35
   }
@@ -53,13 +59,14 @@
53 59
     cursor: pointer;
54 60
   }
55 61
 
56
-  .ant-tabs-content-holder{
62
+  .ant-tabs-content-holder {
57 63
     padding: 10px;
58 64
   }
65
+
59 66
   .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
60 67
     color: @dy-all-themes;
61 68
     text-shadow: 0 0 0.25px currentcolor;
62
-}
69
+  }
63 70
 
64 71
 
65 72
   //左侧导航栏 start----------------
@@ -85,7 +92,7 @@
85 92
     background-color: @dy-all-themes  !important;
86 93
 
87 94
     .click_active {
88
-      background: @dy-all-active!important;
95
+      background: @dy-all-active  !important;
89 96
       border-left: 3px solid @dy-all-active-hover;
90 97
 
91 98
       .text_over {
@@ -220,9 +227,10 @@
220 227
   }
221 228
 
222 229
   #app .top {
223
-    height: 56px;
224
-    background: @dy-bg;
225
-    box-shadow: 0px 1px 5px #e0e0e0;
230
+    background: url(../imgs/dataVimg/topBg.png) no-repeat 0 0 / 100% 100% #0a091e;
231
+    height: 8%;
232
+    position: unset;
233
+
226 234
 
227 235
     .controler .ant-dropdown-link {
228 236
       color: @dy-font;
@@ -280,49 +288,59 @@
280 288
 
281 289
   //首页背景
282 290
   .homePage .bottom_body {
283
-    background-image: linear-gradient(to top, #F8FCFE, #F8FCFE, #F8FCFE);
284
-    // background: url(../imgs/login/bg@2x.png) no-repeat 0 -47px / 100% 109% #1c45b4;
291
+    // background-image: linear-gradient(to top, #F8FCFE, #F8FCFE, #F8FCFE);
292
+    background: linear-gradient(51.4deg, #000308 0%, #041b40 100%);
293
+    background: url(../imgs/dataVimg/homeBgDataV.png) no-repeat 0 0 / 100% 100% #041b40;
285 294
   }
286 295
 
287 296
   .bottom_body {
288 297
     background: #fff;
289 298
 
290 299
     .home {
291
-      padding: 16px;
300
+      padding: 0 16px;
292 301
       display: flex;
293 302
       align-items: flex-start;
294 303
       justify-content: space-between;
295 304
       background: unset;
305
+      flex-wrap: wrap;
306
+
307
+      .topMsg_title {
308
+        background: url(../imgs/dataVimg/tipleBg.png) no-repeat 0 0 / 100% 100%;
309
+        height: 2em;
310
+        color: #fff;
311
+        text-align: left;
312
+        padding-left: 2em;
313
+        box-sizing: border-box;
314
+        line-height: 2.2em;
315
+        font-weight: 700;
316
+        font-family: "DingTalk JinBuTi";
317
+      }
296 318
 
297 319
       .leftContent {
298
-        width: 320px;
299
-        height: 100%;
320
+        width: 28%;
321
+        height: 88%;
300 322
         z-index: 9;
301 323
 
302 324
         .topMsg {
303 325
           width: 100%;
304
-          height: 284px;
305
-          background: #FFFFFF;
326
+          height: 20%;
306 327
           box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
307
-          border-radius: 26px;
308
-          padding: 16px;
309
-
310
-          .hello {
311
-            font-weight: 600;
312
-            font-size: 20px;
313
-            color: @dy-active;
314
-            line-height: 28px;
315
-            display: block;
316
-            padding: 11px 0;
317
-          }
328
+          /* border-radius: 26px; */
329
+          /* padding: 16px; */
330
+          margin-bottom: 3%;
331
+
332
+          .topMsg_content {
333
+            height: calc(100% - 2em);
334
+            line-height: 2.8em;
335
+            font-size: 1.8em;
336
+            color: #69FFDE;
337
+            font-weight: 700;
338
+            background: url(../imgs/dataVimg/zongChanZhi.png) no-repeat 0 bottom / 100% 54%;
339
+
340
+            .topMsg_number_2 {
341
+              font-size: 0.8em;
342
+            }
318 343
 
319
-          .xFont {
320
-            height: 20px;
321
-            font-family: PingFangSC-Regular;
322
-            font-weight: 400;
323
-            font-size: 16px;
324
-            color: rgba(0, 0, 0, 0.45);
325
-            line-height: 20px;
326 344
           }
327 345
 
328 346
           .msglist {
@@ -351,15 +369,32 @@
351 369
           }
352 370
         }
353 371
 
372
+        .center_box {
373
+          width: 100%;
374
+          height: 30%;
375
+          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
376
+          margin-bottom: 3%;
377
+
378
+        }
379
+
354 380
 
355 381
         .bottomContent {
356 382
           width: 100%;
357
-          height: calc(100% - 300px);
358
-          background: #FFFFFF;
359
-          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
360
-          border-radius: 26px;
361
-          margin-top: 16px;
362
-          //min-height: 432px;
383
+          height: 35%;
384
+          .topMsg_content {
385
+            width: 100%;
386
+            height: 100%;
387
+            display: flex;
388
+            align-items: center;
389
+            justify-content: center;
390
+
391
+            #chartmain {
392
+              width: 80%;
393
+              height: 80%;
394
+            }
395
+
396
+          }
397
+
363 398
         }
364 399
       }
365 400
 
@@ -381,9 +416,7 @@
381 416
         }
382 417
       }
383 418
 
384
-      .bigDivPd {
385
-        padding: 16px;
386
-      }
419
+      .bigDivPd {}
387 420
 
388 421
       .titleDiv {
389 422
         width: 100%;
@@ -424,17 +457,52 @@
424 457
 
425 458
 
426 459
       .rightContent {
427
-        width: 320px;
428
-        height: 100%;
460
+        width: 28%;
461
+        height: 88%;
429 462
         z-index: 9;
430 463
 
464
+        .topMsg_2,
465
+        .topMsg_3,
466
+        .topMsg_4 {
467
+          width: 100%;
468
+          height: 20%;
469
+          margin-bottom: 3%;
470
+        }
471
+
431 472
         .topMsg {
432 473
           width: 100%;
433
-          height: 284px;
434
-          background: #FFFFFF;
435
-          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
436
-          border-radius: 26px;
437
-          padding: 16px;
474
+          height: 20%;
475
+          margin-bottom: 3%;
476
+
477
+          .topMsg_content {
478
+            height: calc(100% - 2em);
479
+            font-size: 1.8em;
480
+            color: #69FFDE;
481
+            font-weight: 700;
482
+            background: url(../imgs/dataVimg/sunGong.png) 0 0/50% 100%;
483
+            text-align: center;
484
+            display: flex;
485
+            align-items: center;
486
+            justify-content: center;
487
+
488
+            .topMsg_box {
489
+              width: 52%;
490
+              height: 71%;
491
+              background: url(../imgs/dataVimg/sunGongBottom.png) no-repeat 0 0/ 100% 100%;
492
+
493
+              .topMsg_number_p {
494
+                font-size: 0.2em;
495
+                line-height: 0em;
496
+                color: #fff;
497
+                font-weight: 100;
498
+                margin-top: 0.8em;
499
+              }
500
+            }
501
+
502
+            .topMsg_number_2 {
503
+              font-size: 0.2em;
504
+            }
505
+          }
438 506
 
439 507
           .icon_c {
440 508
             width: 100%;
@@ -454,6 +522,7 @@
454 522
               padding: 2px 0;
455 523
               cursor: pointer;
456 524
               position: relative;
525
+
457 526
               >i {
458 527
                 display: flex;
459 528
                 width: 54px;
@@ -475,7 +544,8 @@
475 544
                 justify-content: center;
476 545
                 margin-top: 5px;
477 546
               }
478
-              .delectt{
547
+
548
+              .delectt {
479 549
                 display: none;
480 550
                 position: absolute;
481 551
                 background: #ff3737;
@@ -489,8 +559,9 @@
489 559
                 color: #fff;
490 560
               }
491 561
             }
492
-            .icon_p:hover{
493
-              .delectt{
562
+
563
+            .icon_p:hover {
564
+              .delectt {
494 565
                 display: block;
495 566
               }
496 567
             }
@@ -509,78 +580,66 @@
509 580
           }
510 581
         }
511 582
 
512
-        .bottomContent {
513
-          width: 100%;
514
-          height: calc(100% - 300px);
515
-          background: #FFFFFF;
516
-          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
517
-          border-radius: 26px;
518
-          margin-top: 16px;
519
-          //min-height: 432px;
520
-        }
583
+        .bottomContent {}
521 584
       }
522 585
 
586
+      .bottom_box {
587
+        width: 100%;
588
+        height: 12%;
589
+        background: url(../imgs/dataVimg/bottomBg.png) no-repeat 0 0 / 100% 35%;
590
+        position: absolute;
591
+        left: 0;
592
+        bottom: 0;
593
+      }
523 594
 
524
-      .centerCon {
525
-        width: calc(100% - 672px);
526
-        height: 100%;
527 595
 
528
-        .centerContent {
529
-          width: 100%;
530
-          height: 56px;
531
-          background: #FFFFFF;
532
-          box-shadow: 0 6px 8px 0 rgba(0, 0, 0, 0.04);
533
-          border-radius: 28px;
534
-          display: flex;
535
-          align-items: center;
536
-          justify-content: space-between;
537
-          padding: 16px 24px;
596
+      .centerCon {
597
+        width: calc(100% - 56%);
598
+        height: 88%;
599
+        position: relative;
538 600
 
539
-          .inform {
540
-            font-size: 18px;
541
-            color: #1B45B4;
542
-            font-weight: 700;
543
-            margin-right: 24px;
544
-            font-style: italic;
545
-          }
601
+        .bottomContent {
602
+          height: 30%;
603
+          position: absolute;
604
+          left: 0;
605
+          bottom: 0;
606
+        }
546 607
 
547
-          .ant-carousel {
548
-            width: 100%;
608
+        .center_li {
609
+          width: 33%;
610
+          background: url(../imgs/dataVimg/zongChanZhi.png) no-repeat 0 bottom / 100% 18%;
611
+          height: 70%;
612
+        }
549 613
 
550
-            .slick-dots-bottom {
551
-              bottom: -10px;
552
-            }
614
+        .topMsg {
615
+          height: 18%;
616
+          color: #69FFDE;
617
+          display: flex;
618
+          justify-content: center;
619
+          flex-wrap: wrap;
620
+          font-size: 1.8em;
621
+          font-weight: 700;
553 622
 
554
-            .slick-dots li button {
555
-              height: 2px;
556
-              background: #e4e3e3;
557
-              border-radius: 10px;
558
-            }
623
+          .topMsg_content {
624
+            width: 80%;
625
+            display: flex;
626
+            align-items: center;
627
+            justify-content: space-around;
559 628
 
560
-            .slick-dots li.slick-active button {
561
-              background: @dy-active;
629
+            .topMsg_line {
630
+              width: 100%;
631
+              height: 0.2em;
632
+              background: #878787;
562 633
             }
563
-          }
564 634
 
565
-          .inform_d {
566
-            width: calc(100% - 65px);
567
-            display: flex;
568
-            justify-content: space-between;
569
-
570
-            .inform_d_d {
571
-              display: flex !important;
572
-              justify-content: space-between;
573
-              color: rgba(0, 0, 0, 0.6);
635
+            .topMsg_tip {
636
+              color: #fff;
637
+              font-size: 0.2em;
638
+              font-weight: 100;
574 639
             }
575 640
           }
576 641
         }
577 642
 
578
-        .center_bg {
579
-          width: 84%;
580
-          margin-left: 8%;
581
-          height: calc(100% - 56px);
582
-          background: url(../imgs/login/bg_s@2x.png) no-repeat 0 center / 100% auto;
583
-        }
584 643
       }
585 644
 
586 645
     }
@@ -629,7 +688,8 @@
629 688
       width: 88px;
630 689
     }
631 690
   }
632
-  .tanhao{
691
+
692
+  .tanhao {
633 693
     border: 2px solid #fdcd60;
634 694
     border-radius: 50%;
635 695
     display: block;
@@ -643,9 +703,11 @@
643 703
     margin-left: 10px;
644 704
     cursor: pointer;
645 705
   }
646
-  .lables2{
706
+
707
+  .lables2 {
647 708
     flex-wrap: wrap;
648
-    >.ant-select-show-search:first-child{
709
+
710
+    >.ant-select-show-search:first-child {
649 711
       width: 85%;
650 712
       margin-left: 0%;
651 713
     }
@@ -683,8 +745,9 @@
683 745
     background: @dy-active  !important;
684 746
   }
685 747
 
686
-  .ant-checkbox-checked .ant-checkbox-inner::after, .ant-select-tree-checkbox-inner::after{
687
-    border-color:#f5f5f5 !important
748
+  .ant-checkbox-checked .ant-checkbox-inner::after,
749
+  .ant-select-tree-checkbox-inner::after {
750
+    border-color: #f5f5f5 !important
688 751
   }
689 752
 
690 753
   .ant-steps-item-finish .ant-steps-item-icon,
@@ -721,10 +784,12 @@
721 784
     border-color: @dy-all-active-hover  !important;
722 785
     color: @dy-all-active-hover  !important;
723 786
   }
724
-  .ant-btn-danger:focus,  .ant-btn-danger:hover{
725
-    color: #fff!important;
726
-    border-color: #ff4d4f!important;
727
-    background: #ff4d4f!important;
787
+
788
+  .ant-btn-danger:focus,
789
+  .ant-btn-danger:hover {
790
+    color: #fff !important;
791
+    border-color: #ff4d4f !important;
792
+    background: #ff4d4f !important;
728 793
   }
729 794
 
730 795
   .ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner,

src/assets/imgs/dataVImg/底部栏@2x.png → src/assets/imgs/dataVImg/bottomBg.png


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


src/assets/imgs/dataVImg/损工率左@2x.png → src/assets/imgs/dataVImg/sunGong.png


src/assets/imgs/dataVImg/损工率底座@2x.png → src/assets/imgs/dataVImg/sunGongBottom.png


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


src/assets/imgs/dataVImg/顶部栏@2x.png → src/assets/imgs/dataVImg/topBg.png


src/assets/imgs/dataVImg/总产值底盘@2x.png → src/assets/imgs/dataVImg/zongChanZhi.png


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


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


BIN
src/assets/imgs/dataVImg/驾驶舱 9.png


BIN
src/assets/imgs/dataVImg/驾驶舱 9@2x.png


+ 274 - 0
src/assets/js/echarts.all.js

@@ -0,0 +1,274 @@
1
+/*
2
+*
3
+* Licensed to the Apache Software Foundation (ASF) under one
4
+* or more contributor license agreements.  See the NOTICE file
5
+* distributed with this work for additional information
6
+* regarding copyright ownership.  The ASF licenses this file
7
+* to you under the Apache License, Version 2.0 (the
8
+* "License"); you may not use this file except in compliance
9
+* with the License.  You may obtain a copy of the License at
10
+*
11
+*   http://www.apache.org/licenses/LICENSE-2.0
12
+*
13
+* Unless required by applicable law or agreed to in writing,
14
+* software distributed under the License is distributed on an
15
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+* KIND, either express or implied.  See the License for the
17
+* specific language governing permissions and limitations
18
+* under the License.
19
+*/
20
+
21
+export * from './src/echarts';
22
+export * from './src/export';
23
+
24
+import './src/component/dataset';
25
+
26
+
27
+
28
+// ----------------------------------------------
29
+// All of the modules that are allowed to be
30
+// imported are listed below.
31
+//
32
+// Users MUST NOT import other modules that are
33
+// not included in this list.
34
+// ----------------------------------------------
35
+
36
+
37
+
38
+// ----------------
39
+// Charts (series)
40
+// ----------------
41
+
42
+
43
+
44
+// All of the series types, for example:
45
+// chart.setOption({
46
+//     series: [{
47
+//         type: 'line' // or 'bar', 'pie', ...
48
+//     }]
49
+// });
50
+
51
+import './src/chart/line';
52
+import './src/chart/bar';
53
+import './src/chart/pie';
54
+import './src/chart/scatter';
55
+import './src/chart/radar';
56
+import './src/chart/map';
57
+import './src/chart/tree';
58
+import './src/chart/treemap';
59
+import './src/chart/graph';
60
+import './src/chart/gauge';
61
+import './src/chart/funnel';
62
+import './src/chart/parallel';
63
+import './src/chart/sankey';
64
+import './src/chart/boxplot';
65
+import './src/chart/candlestick';
66
+import './src/chart/effectScatter';
67
+import './src/chart/lines';
68
+import './src/chart/heatmap';
69
+import './src/chart/pictorialBar';
70
+import './src/chart/themeRiver';
71
+import './src/chart/sunburst';
72
+import './src/chart/custom';
73
+
74
+
75
+
76
+// -------------------
77
+// Coordinate systems
78
+// -------------------
79
+
80
+
81
+
82
+// All of the axis modules have been included in the
83
+// coordinate system module below, do not need to
84
+// make extra import.
85
+
86
+// `cartesian` coordinate system. For some historical
87
+// reasons, it is named as grid, for example:
88
+// chart.setOption({
89
+//     grid: {...},
90
+//     xAxis: {...},
91
+//     yAxis: {...},
92
+//     series: [{...}]
93
+// });
94
+import './src/component/grid';
95
+
96
+// `polar` coordinate system, for example:
97
+// chart.setOption({
98
+//     polar: {...},
99
+//     radiusAxis: {...},
100
+//     angleAxis: {...},
101
+//     series: [{
102
+//         coordinateSystem: 'polar'
103
+//     }]
104
+// });
105
+import './src/component/polar';
106
+
107
+// `geo` coordinate system, for example:
108
+// chart.setOption({
109
+//     geo: {...},
110
+//     series: [{
111
+//         coordinateSystem: 'geo'
112
+//     }]
113
+// });
114
+import './src/component/geo';
115
+
116
+// `singleAxis` coordinate system (notice, it is a coordinate system
117
+// with only one axis, work for chart like theme river), for example:
118
+// chart.setOption({
119
+//     singleAxis: {...}
120
+//     series: [{type: 'themeRiver', ...}]
121
+// });
122
+import './src/component/singleAxis';
123
+
124
+// `parallel` coordinate system, only work for parallel series, for example:
125
+// chart.setOption({
126
+//     parallel: {...},
127
+//     parallelAxis: [{...}, ...],
128
+//     series: [{
129
+//         type: 'parallel'
130
+//     }]
131
+// });
132
+import './src/component/parallel';
133
+
134
+// `calendar` coordinate system. for example,
135
+// chart.setOptionp({
136
+//     calendar: {...},
137
+//     series: [{
138
+//         coordinateSystem: 'calendar'
139
+//     }]
140
+// );
141
+import './src/component/calendar';
142
+
143
+
144
+
145
+// ------------------
146
+// Other components
147
+// ------------------
148
+
149
+
150
+
151
+// `graphic` component, for example:
152
+// chart.setOption({
153
+//     graphic: {...}
154
+// });
155
+import './src/component/graphic';
156
+
157
+// `toolbox` component, for example:
158
+// chart.setOption({
159
+//     toolbox: {...}
160
+// });
161
+import './src/component/toolbox';
162
+
163
+// `tooltip` component, for example:
164
+// chart.setOption({
165
+//     tooltip: {...}
166
+// });
167
+import './src/component/tooltip';
168
+
169
+// `axisPointer` component, for example:
170
+// chart.setOption({
171
+//     tooltip: {axisPointer: {...}, ...}
172
+// });
173
+// Or
174
+// chart.setOption({
175
+//     axisPointer: {...}
176
+// });
177
+import './src/component/axisPointer';
178
+
179
+// `brush` component, for example:
180
+// chart.setOption({
181
+//     brush: {...}
182
+// });
183
+// Or
184
+// chart.setOption({
185
+//     tooltip: {feature: {brush: {...}}
186
+// })
187
+import './src/component/brush';
188
+
189
+// `title` component, for example:
190
+// chart.setOption({
191
+//     title: {...}
192
+// });
193
+import './src/component/title';
194
+
195
+// `timeline` component, for example:
196
+// chart.setOption({
197
+//     timeline: {...}
198
+// });
199
+import './src/component/timeline';
200
+
201
+// `markPoint` component, for example:
202
+// chart.setOption({
203
+//     series: [{markPoint: {...}}]
204
+// });
205
+import './src/component/markPoint';
206
+
207
+// `markLine` component, for example:
208
+// chart.setOption({
209
+//     series: [{markLine: {...}}]
210
+// });
211
+import './src/component/markLine';
212
+
213
+// `markArea` component, for example:
214
+// chart.setOption({
215
+//     series: [{markArea: {...}}]
216
+// });
217
+import './src/component/markArea';
218
+
219
+// `legend` component scrollable, for example:
220
+// chart.setOption({
221
+//     legend: {type: 'scroll'}
222
+// });
223
+import './src/component/legendScroll';
224
+
225
+// `legend` component not scrollable. for example:
226
+// chart.setOption({
227
+//     legend: {...}
228
+// });
229
+import './src/component/legend';
230
+
231
+// `dataZoom` component including both `dataZoomInside` and `dataZoomSlider`.
232
+import './src/component/dataZoom';
233
+
234
+// `dataZoom` component providing drag, pinch, wheel behaviors
235
+// inside coodinate system, for example:
236
+// chart.setOption({
237
+//     dataZoom: {type: 'inside'}
238
+// });
239
+import './src/component/dataZoomInside';
240
+
241
+// `dataZoom` component providing a slider bar, for example:
242
+// chart.setOption({
243
+//     dataZoom: {type: 'slider'}
244
+// });
245
+import './src/component/dataZoomSlider';
246
+
247
+// `dataZoom` component including both `visualMapContinuous` and `visualMapPiecewise`.
248
+import './src/component/visualMap';
249
+
250
+// `visualMap` component providing continuous bar, for example:
251
+// chart.setOption({
252
+//     visualMap: {type: 'continuous'}
253
+// });
254
+import './src/component/visualMapContinuous';
255
+
256
+// `visualMap` component providing pieces bar, for example:
257
+// chart.setOption({
258
+//     visualMap: {type: 'piecewise'}
259
+// });
260
+import './src/component/visualMapPiecewise';
261
+
262
+
263
+
264
+// -----------------
265
+// Render engines
266
+// -----------------
267
+
268
+
269
+
270
+// Provide IE 6,7,8 compatibility.
271
+import 'zrender/src/vml/vml';
272
+
273
+// Render via SVG rather than canvas.
274
+import 'zrender/src/svg/svg';

File diff suppressed because it is too large
+ 22 - 0
src/assets/js/echarts.min.js


File diff suppressed because it is too large
+ 4 - 0
src/assets/js/jquery-1.11.0.min.js


+ 84 - 0
src/assets/js/jquery.numscroll.js

@@ -0,0 +1,84 @@
1
+/*!
2
+ * jquery.numscroll.js -- 数字滚动累加动画插件  (Digital rolling cumulative animation)
3
+ * version 1.0.0
4
+ * 2018-09-22
5
+ * author: KevinTseng < 921435247@qq.com@qq.com >
6
+ * 文档:  https://github.com/chaorenzeng/jquery.numscroll.js.git
7
+ * QQ交流群: 739574382
8
+ */
9
+
10
+(function($) {
11
+	
12
+	function isInt(num) {
13
+		//作用:是否为整数
14
+		//返回:true是 false否
15
+		var res = false;
16
+		try {
17
+			if(String(num).indexOf(".") == -1 && String(num).indexOf(",") == -1) {
18
+				res = parseInt(num) % 1 === 0 ? true : false;
19
+			}
20
+		} catch(e) {
21
+			res = false;
22
+		}
23
+		return res;
24
+	}
25
+
26
+	function isFloat(num) {
27
+		//作用:是否为小数
28
+		//返回:小数位数(-1不是小数)
29
+		var res = -1;
30
+		try {
31
+			if(String(num).indexOf(".") != -1) {
32
+				var index = String(num).indexOf(".") + 1; //获取小数点的位置
33
+				var count = String(num).length - index; //获取小数点后的个数
34
+				if(index > 0) {
35
+					res = count;
36
+				}
37
+			}
38
+		} catch(e) {
39
+			res = -1;
40
+		}
41
+		return res;
42
+	}
43
+
44
+	$.fn.numScroll = function(options) {
45
+		
46
+		var settings = $.extend({
47
+			'time': 1500,
48
+			'delay': 0
49
+		}, options);
50
+		
51
+		return this.each(function() {
52
+			var $this = $(this);
53
+			var $settings = settings;
54
+			
55
+			var num = $this.attr("data-num") || $this.text(); //实际值
56
+			var temp = 0; //初始值
57
+			$this.text(temp);
58
+			var numIsInt = isInt(num);
59
+			var numIsFloat = isFloat(num);
60
+			var step = (num / $settings.time) * 10; //步长
61
+			
62
+			setTimeout(function() {
63
+				var numScroll = setInterval(function() {
64
+					if(numIsInt) {
65
+						$this.text(Math.floor(temp));
66
+					} else if(numIsFloat != -1) {
67
+						$this.text(temp.toFixed(numIsFloat));
68
+					} else {
69
+						$this.text(num);
70
+						clearInterval(numScroll);
71
+						return;
72
+					}
73
+					temp += step;
74
+					if(temp > num) {
75
+						$this.text(num);
76
+						clearInterval(numScroll);
77
+					}
78
+				}, 1);
79
+			}, $settings.delay);
80
+			
81
+		});
82
+	};
83
+
84
+})(jQuery);

+ 173 - 317
src/pages/chaBaiDaohome/view.jsx

@@ -2,7 +2,7 @@
2 2
  * @Author: dayan_hjm 
3 3
  * @Date: 2022-10-27 11:40:02 
4 4
  * @Last Modified by: dayan_hjm
5
- * @Last Modified time: 2023-10-09 17:39:27
5
+ * @Last Modified time: 2023-10-20 17:44:10
6 6
  */
7 7
 
8 8
 import React, { useState, useEffect, Component } from "react";
@@ -12,7 +12,7 @@ import { useHistory, useLocation, withRouter } from "react-router-dom";
12 12
 import { observer, observable } from "mobx-react";
13 13
 import { message, Space, Form, Popconfirm, Modal, Carousel, Icon, Button } from "antd";
14 14
 import Flex from "@components/Space/view";
15
-import { dealDiffSheetType, crossMenuClick,isTimes } from "@utils/util";
15
+import { dealDiffSheetType, crossMenuClick, isTimes } from "@utils/util";
16 16
 import moment from "moment";
17 17
 import {
18 18
   getDmpAccessUrl,
@@ -68,362 +68,218 @@ class Home extends Component {
68 68
   }
69 69
 
70 70
   componentDidMount() {
71
-    this.getCommonReport();
72
-  }
73
-
74
-  handleData = (data) => {
75
-    let item = [];
76
-    data.map((list, i) => {
77
-      let newData = {};
78
-      newData.id = list.resourceId;
79
-      newData.value = list.resourceName;
80
-      newData.title = list.resourceName;
81
-      newData.children =
82
-        list.resourceList && list.resourceList.length
83
-          ? this.handleData(list.resourceList)
84
-          : []; // 如果还有子集,就再次调用自己
85
-      newData.disabled =
86
-        list.resourceList && list.resourceList.length ? true : false;
87
-      item.push(newData);
88
-    });
89
-    return item;
90
-  }
91
-
92
-  // 获取用户常用报表 & 用户信息
93
-  getCommonReport = () => {
94
-
95
-    getAccountComresourcesNew().then((res) => {
96
-      if (+res.resultCode === 0) {
97
-        const data = res.data.map((item) => {
98
-          // id 必须的
99
-          item.id = item.resourceId;
100
-          return item;
101
-        });
102
-        this.setState({ rightlist: data })
103
-      }
104
-
105
-    });
106
-    getAccountTypePage(sessionStorage.getItem("accountId")).then((res) => {
107
-      const { data } = res;
108
-      this.setState({ userPar: data })
109
-    })
110
-    getAccountAllCareResource().then(
111
-      ({ resultCode, data }) => {
112
-        if (+resultCode === 0) {
113
-          let ten_ = [];
114
-          data.map((item, i) => {
115
-            item.isCare = true;
116
-            if (i <= 9) { ten_.push(item); } else { return }
117
-          });
118
-          this.setState({ leftCareReport: ten_ })
119
-        }
120
-      }
121
-    );
122
-    ///获取角色
123
-    getAllRolesVo().then(({ data, resultCode }) => {
124
-      if (+resultCode === 0) {
125
-        $store.app.setRoles(data || []);
126
-        localStorage.setItem("roles", JSON.stringify(data || []));
71
+    setTimeout(()=>{
72
+      $(".shu1").numScroll();
73
+    },200)
74
+    setTimeout(()=>{
75
+      var dataAxis = ['1日', '2日', '3日', '4日', '5日', '6日', '7日', '8日', '9日', '10日', '11日', '12日', '13日', '14日', '15日'];
76
+      var data = [220, 182, 191, 234, 290, 330, 310, 123, 442, 321, 90, 149, 210, 122, 200];
77
+      var yMax = 500;
78
+      var dataShadow = [];
79
+      for (var i = 0; i < data.length; i++) {
80
+        dataShadow.push(yMax);
127 81
       }
128
-    });
129
-    listUserModuleBulletinsNew({
130
-      pageSize: 2,
131
-      pageNum: 1,
132
-      effectStatus: 1,
133
-      sysUpdateMsgFuncType:'maintain',
134
-      displayArea: '10000'
135
-    }).then((res) => {
136
-      if (res?.data && res?.data?.records) {
137
-        for (let index = 0; index < 2; index++) {
138
-          const element = res?.data?.records[index];
139
-          if(isTimes('',element.effectStartTime,element.effectEndTime)){
140
-            this.ModelBox.setState({showContactModalVisible:true,activeItem:element});
141
-            break
82
+      var	option = {
83
+        title: {
84
+          text: '',
85
+          subtext: ''
86
+        },
87
+        grid:{
88
+          x:40,
89
+          y:40,
90
+          x2:20,
91
+          y2:20,
92
+  
93
+        },
94
+        xAxis: {
95
+          data: dataAxis,
96
+          axisLabel: {
97
+            /*inside: true,*/
98
+            interval:0,
99
+            textStyle: {
100
+              color: '#fff',
101
+              fontSize: 12
102
+  
103
+            }
104
+          },
105
+          axisTick: {
106
+            show: false,
107
+          },
108
+          axisLine: {
109
+            show: true,
110
+            symbol:['none', 'arrow'],
111
+            symbolOffset: 12,
112
+            lineStyle:{
113
+              color: '#fff',
114
+            }
115
+          },
116
+          z: 10
117
+        },
118
+        yAxis: {
119
+          type: 'value',
120
+          name: '单位:元',
121
+          axisLine: {
122
+            show: true,
123
+            symbol: ['none', 'arrow'],
124
+            symbolOffset: 12,
125
+            lineStyle:{
126
+              color: '#fff',
127
+            }
128
+          },
129
+          axisTick: {
130
+            show: false
131
+          },
132
+          axisLabel: {
133
+            textStyle: {
134
+              color: '#fff',
135
+              fontSize: 12
136
+            }
142 137
           }
143
-        }
144
-      }
145
-    })
146
-
147
-    //知识库
148
-    getBaselistAll().then((res) => {
149
-      let { data = [] } = res;
150
-      let ten_ = [];
151
-      if (!data || data === null) { data = [] }
152
-      data.map((item, i) => {
153
-        if (i <= 9) { ten_.push(item); } else { return }
154
-      });
155
-      this.setState({ baselistAll: ten_ })
156
-    });
157
-
158
-  };
159
-  getLoginUser = () => {
160
-    getLoginUserFineResourceTree().then((res) => {
161
-      if (+res.resultCode === 0) {
162
-        this.setState({ commonReportTreeData: this.handleData(res.data) })
163
-      }
164
-    });
165
-  }
166
-
167
-  delectTab = (item) => {
168
-    deleteById(item.relateId).then((res) => {
169
-      if (+res.resultCode === 0) {
170
-        getAccountComresourcesNew().then((res) => {
171
-          if (+res.resultCode === 0) {
172
-            const data = res.data.map((item) => {
173
-              // id 必须的
174
-              item.id = item.resourceId;
175
-              return item;
176
-            });
177
-            this.setState({ rightlist: data })
138
+        },
139
+  
140
+        dataZoom: [
141
+          {
142
+            type: 'inside'
178 143
           }
179
-        });
180
-      }
181
-    });
144
+        ],
145
+        series: [
146
+          { // For shadow
147
+            type: 'bar',
148
+            itemStyle: {
149
+              color: 'rgba(0,0,0,0.05)'
150
+            },
151
+            barGap: '-100%',
152
+            barCategoryGap: '40%',
153
+            data: dataShadow,
154
+            animation: false
155
+          },
156
+          {
157
+            type: 'bar',
158
+            itemStyle: {
159
+              color: new echarts.graphic.LinearGradient(
160
+                0, 0, 0, 1,
161
+                [
162
+                  {offset: 0, color: '#0efdff'},
163
+                  {offset: 0.5, color: '#188df0'},
164
+                  {offset: 1, color: '#188df0'}
165
+                ]
166
+              )
167
+            },
168
+            emphasis: {
169
+              itemStyle: {
170
+                color: new echarts.graphic.LinearGradient(
171
+                  0, 0, 0, 1,
172
+                  [
173
+                    {offset: 0, color: '#2378f7'},
174
+                    {offset: 0.7, color: '#2378f7'},
175
+                    {offset: 1, color: '#0efdff'}
176
+                  ]
177
+                )
178
+              }
179
+            },
180
+            data: data
181
+          }
182
+        ]
183
+      };
184
+      var myChart = echarts.init(document.getElementById('chartmain'));
185
+      // 使用刚指定的配置项和数据显示图表。
186
+      myChart.setOption(option);
187
+  
188
+    },200)
182 189
   }
183 190
 
184
-  addCommonReportModal = () => {
185
-    this.getLoginUser()
186
-    this.setState({ isModalVisible: true, addReportValue: '' })
187
-  };
188
-
189 191
   render() {
190 192
     const stores = this.store.state;
191 193
     const { isModalVisible, commonReportTreeData, addReportValue, userPar } = this.state;
192
-    // 在驾驶舱或报表中心内打开报表
193
-    const openReportTab = (item) => {
194
-      return () => {
195
-        if (!item.hasPermission) {
196
-          message.warning('抱歉!您没有此功能权限!');
197
-          return;
198
-        }
199 194
 
200
-        $store.app.setNavList({
201
-          name: item.resourceName || item.modelName,
202
-          path: item.resourceUrl,
203
-          type: item.resourceType,
204
-          openType: item.openType,
205
-          id: item.resourceId,
206
-        });
207
-        $store.app.setCurNav(item.resourceUrl);
208
-        sessionStorage.setItem("curNodeId", item.resourceId);
209
-        dealDiffSheetType(item).then((response) => {
210
-          if (response.type === "sys") {
211
-            this.props.history.push(response.link);
212
-          } else {
213
-            this.props.history.push(`/home/outer/${response.activeItem.resourceId}`);
214
-          }
215
-        });
216
-      };
217
-    };
218 195
 
219
-    // 添加常用报表 modal - 确认
220
-    const addCommonReportOk = () => {
221
-      this.setState({ isModalVisible: false })
222
-      let params = {
223
-        resourceId: this.state.addReportValue,
224
-        sortNo: this.state.rightlist.length + 1,
225
-      };
226
-      insertSysComresourceAccountRelationEntityNew(params).then((res) => {
227
-        if (+res.resultCode === 0) {
228
-          message.success("添加报表成功!");
229
-          this.getCommonReport();
230
-        }
231
-      });
232
-    };
233 196
 
234 197
 
235
-    const titleDiv = (name, url, cross, order_) => {
236
-      return (
237
-        <div className="titleDiv">
238
-          <span>{name}</span>
239
-          <a onClick={() => {
240
-            cross ? crossMenuClick(url.f_url, url.s_url, ((res) => {
241
-              this.props.history.push(res);
242
-            })) : this.props.history.push(url)
243
-          }}>{order_ ? "管理" : '更多 >'} </a>
244
-        </div>
245
-      )
246
-    }
247 198
     return (
248 199
       <div className={[styles.home + " home cbHome"]}>
249 200
         <div className="leftContent">
250 201
           <div className="topMsg">
251
-            <p className="pic">
252
-              {/* <img src={get(userPar, "accountPicUrl", require("@assets/imgs/default_head.png").default)} width="64" alt="" /> */}
253
-              <img src={require("@assets/imgs/default_head2.png").default} width="64" alt="" style={{ borderRadius: '50%' }} />
254
-            </p>
255
-            <span className="hello">Hello,{userPar ? userPar.account : ''}</span>
256
-            <span className="xFont">欢迎回来!</span>
257
-            <ul className="msglist">
258
-              <li>
259
-                <img src={require("@assets/imgs/msg1.png").default} width="18" alt="" />
260
-                <span style={{ whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }}>部门&emsp;:&emsp;{userPar ? userPar.jobUnit : ''}</span>
261
-              </li>
262
-              <li>
263
-                <img src={require("@assets/imgs/msg2.png").default} width="18" alt="" />
264
-                <span style={{ whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }}>岗位&emsp;:&emsp;{userPar ? userPar.position : ''}</span>
265
-              </li>
266
-            </ul>
202
+            <p className="topMsg_title">总产值</p>
203
+            <div className="topMsg_content">
204
+              <span className="topMsg_number" class="shu1">232425.23</span><span className="topMsg_number_2">万元</span>
205
+            </div>
206
+          </div>
207
+          <div className="center_box">
208
+            <p className="topMsg_title">库存金额</p>
209
+            <div className="topMsg_content">
210
+            </div>
267 211
           </div>
268 212
           <div className="bottomContent bigDivPd">
269
-            {titleDiv('个人收藏', '/home/reportForWork', false)}
270
-            <div className="kbs_c">
271
-              {
272
-                toJS(get(this.state, 'leftCareReport', [])).map((item, i) => {
273
-                  return <p className="listIconFont" onClick={openReportTab(item)}>
274
-                    {/* <img src={require("@assets/imgs/chaBaiDaotips_ring.png").default} alt="" width="18" /> */}
275
-                    <StarFilled className="buildStard" />
276
-                    {/* <Popover content={item.resourceUrl} trigger="hover"> */}
277
-                    <p>{item.resourceName}</p>
278
-                    {/* </Popover> */}
279
-                  </p>
280
-                })
281
-              }
213
+            <p className="topMsg_title">月度产量/发货量</p>
214
+            <div className="topMsg_content">
215
+            <div id="chartmain"></div>
216
+
282 217
             </div>
283 218
           </div>
284 219
         </div>
285 220
 
286 221
         <div className="centerCon">
287
-          {/* 通知轮播区 */}
288
-          <div className="centerContent" style={{display:'none'}}>
289
-            <span className="inform">通知</span>
290
-            <div className="inform_d">
291
-              <Carousel autoplay>
292
-                {get(this.state, 'showTips', []).map(items => {
293
-                  return (
294
-                    <div className="inform_d_d">
295
-                      <span>{items.sysUpdateMsgContent}</span>
296
-                      <a onClick={() => { this.setState({ MassagepopPar: items, showMassagepop: true }) }}>查看详情</a>
297
-                    </div>
298
-                  )
299
-                })}
300
-                {/* <div className="inform_d_d">
301
-                  <span>百度一下,你就知道</span>
302
-                  <a>查看详情</a>
303
-                </div>
304
-                <div className="inform_d_d">
305
-                  <span>走马灯Carousel-Ant Design</span>
306
-                  <a>查看详情</a>
307
-                </div> */}
308
-              </Carousel>
222
+          <div className="topMsg">
223
+            <div className="topMsg_content">
224
+            <div className="center_li">
225
+                <span className="topMsg_number" class="shu1">232425</span>
226
+                <p className="topMsg_line"></p>
227
+                <span className="topMsg_tip">年度产量/吨</span>
228
+              </div>
229
+              <div className="center_li">
230
+                <span className="topMsg_number" class="shu1">32425</span>
231
+                <p className="topMsg_line"></p>
232
+                <span className="topMsg_tip">年度发货量/吨</span>
233
+              </div>
234
+              <div className="center_li">
235
+                <span className="topMsg_number" class="shu1">13456</span>
236
+                <p className="topMsg_line"></p>
237
+                <span className="topMsg_tip">产品库存/吨</span>
238
+              </div>
309 239
             </div>
240
+
310 241
           </div>
311
-          <div className="center_bg">
242
+          <div className="bottomContent">
243
+            <p className="topMsg_title">近30天产量</p>
244
+            <div className="topMsg_content">
245
+            </div>
312 246
           </div>
247
+
313 248
         </div>
314 249
 
315 250
         {/* 右侧信息栏 */}
316 251
         <div className="rightContent">
317 252
           <div className="topMsg bigDivPd">
318
-            <div className="titleDiv">
319
-              <span>推荐入口</span>
320
-              {
321
-                sessionStorage.getItem("isSuper") === 'true' ?
322
-                  <a onClick={() => {
323
-                    this.addCommonReportModal()
324
-                  }}>管理</a> : null
325
-              }
253
+            <p className="topMsg_title">百万工时损工率</p>
254
+            <div className="topMsg_content">
255
+              <div className="topMsg_box">
256
+                <span className="topMsg_number" class="shu1">232425.23</span><span className="topMsg_number_2">%</span>
257
+                <p className="topMsg_number_p">谢洪</p>
258
+              </div>
326 259
             </div>
260
+          </div>
327 261
 
328
-            <div className="icon_c">
329
-              {
330
-                toJS(get(this.state, 'rightlist', [])).map((item, i) => {
331
-                  return <p className="icon_p" key={i}>
332
-                    {
333
-                      sessionStorage.getItem("isSuper") === 'true' ? 
334
-                      <Popconfirm
335
-                      title="是否确认删除?"
336
-                      onConfirm={()=>{this.delectTab(item)}}
337
-                      onCancel={()=>{}}
338
-                      okText="确认"
339
-                      cancelText="取消"
340
-                    >
341
-                      <span className="delectt">-</span>
342
-                    </Popconfirm>
343
-                       : null
344
-                    }
262
+          <div className="topMsg_2">
263
+            <p className="topMsg_title">一次合格率</p>
264
+            <div className="topMsg_content">
265
+            </div>
266
+          </div>
345 267
 
346
-                    <i onClick={openReportTab(item)}>{item.resourceName.slice(0, 1)}</i>
347
-                    <span onClick={openReportTab(item)}>{item.resourceName}</span>
348
-                  </p>
349
-                })
350
-              }
351
-              {
352
-                sessionStorage.getItem("isSuper") === 'true' ? <p className="icon_p" onClick={this.addCommonReportModal}>
353
-                  <i style={{ background: "#fff", color: "#1B45B4", border: "1px solid #1B45B4" }}>+</i>
354
-                  <span>添加快捷入口</span>
355
-                </p> : null
356
-              }
268
+          <div className="topMsg_3">
269
+            <p className="topMsg_title">产量计划完成率</p>
270
+            <div className="topMsg_content">
357 271
             </div>
358 272
           </div>
273
+
359 274
           <div className="bottomContent bigDivPd">
360
-            {titleDiv('知识库', { f_url: '/system/center', s_url: '/home/kbs' }, true)}
361
-            <div className="kbs_c">
362
-              {
363
-                toJS(get(this.state, 'baselistAll', [])).map((item, i) => {
364
-                  return <p className="listIconFont" onClick={() => {
365
-                    window.open(item.knowledgeUrl)
366
-                  }}>
367
-                    <img src={require("@assets/imgs/chaBaiDaotips_ring.png").default} alt="" width="18" />
368
-                    <span>{item.knowledgeName}</span>
369
-                  </p>
370
-                })
371
-              }
275
+            <p className="topMsg_title">碳排放</p>
276
+            <div className="topMsg_content">
372 277
             </div>
373 278
           </div>
374 279
         </div>
280
+        <div className="bottom_box">
375 281
 
376
-        {/* 版权 */}
377
-        <p className="bq">Copyright © 四川蜀信致远企业管理咨询有限公司 版权所有</p>
378
-        <Modal
379
-          title="添加常用报表"
380
-          visible={isModalVisible}
381
-          onOk={addCommonReportOk}
382
-          onCancel={() => {
383
-            this.setState({ isModalVisible: false })
384
-          }}
385
-        >
386
-          <div className={styles.add_common_report}>
387
-            常用报表:
388
-            <TreeSearch
389
-              treeData={commonReportTreeData}
390
-              value={addReportValue}
391
-              onChange={(val) => {
392
-                this.setState({ addReportValue: val })
393
-              }}
394
-            />
395
-          </div>
396
-        </Modal>
397
-        {/* 查看消息通知 */}
398
-        <Modal
399
-          className="xxpop"
400
-          title="消息通知"
401
-          visible={this.state.showMassagepop}
402
-          footer={[
403
-            <Button
404
-              type="primary"
405
-              onClick={() => {
406
-                this.setState({ showMassagepop: false })
407
-              }}
408
-            >
409
-              确认
410
-            </Button>,
411
-          ]}
412
-          onCancel={() => {
413
-            this.setState({ showMassagepop: false })
414
-          }}
415
-
416
-        >
417
-          <div className="xxpop_cont">
418
-            <div className="xxpop_i">
419
-              <div className="xxpop_i_left">消息时间:{this.state.MassagepopPar.messageContent}</div>
420
-              <div className="xxpop_i_right">消息内容:{this.state.MassagepopPar.createTime}</div>
421
-              <div className="xxpop_i_right">发布人:{this.state.MassagepopPar.createPerson}</div>
422
-            </div>
423
-          </div>
424
-        </Modal>
425
-        {/* 系统公告box */}
426
-        <ModelBox onRef={(ref)=>{this.ModelBox=ref}}></ModelBox>
282
+        </div>
427 283
 
428 284
       </div>
429 285
     )

+ 0 - 456
src/pages/frame/component/top/view.jsx

@@ -796,76 +796,6 @@ export default observer(function (props) {
796 796
   } = detailMessage || {}; /**解构 当前点击的详情数据 */
797 797
   return (
798 798
     <div className={$store.app.styleCommon.theme == 'chaBaiDao' ? [styles.top + ' top'] : styles.top}>
799
-      {$store.app.styleCommon.theme == 'chaBaiDao' ?
800
-        <div className="logo" onClick={(() => {
801
-          let activeTree = utils.findNodeTree($store.sysMenu.menuList, '/home/index', "resourceUrl");
802
-          handleClickForUtil(activeTree,'item_cust',((res)=>{
803
-            history.push(res);
804
-          }),'')
805
-        })}>
806
-          <img
807
-            src={require("@assets/imgs/login/flogo@2x11.png").default}
808
-            alt=""
809
-            height="30"
810
-          />
811
-        </div>
812
-
813
-        : null}
814
-      {/* <div className="d_logo">
815
-        <img
816
-          src={require("@assets/imgs/login/logo_yx.png").default}
817
-          alt=""
818
-          height="20"
819
-        />
820
-      </div> */}
821
-      {$store.app.styleCommon.theme == 'chaBaiDao' ? null :
822
-        <div className="title">运营数据中心</div>
823
-      }
824
-      <div
825
-        className="menu fg1"
826
-        ref={menuRef}
827
-        onClick={(e) => {
828
-          handleClick(e, "cust");
829
-        }}
830
-      >
831
-        {$store.sysMenu.norList.map((menu, index) => {
832
-          return (
833
-            <li key={index} data-key={JSON.stringify(menu)}>
834
-              <span
835
-                className={
836
-                  $store.app.activedUrl === menu.resourceUrl || (sessionStorage.getItem("topNavUrl") === menu.resourceUrl)? "actived" : ""
837
-                }
838
-                data-key={JSON.stringify(menu)}
839
-              >
840
-                {menu.resourceName}
841
-              </span>
842
-            </li>
843
-          );
844
-        })}
845
-        {$store.sysMenu.moreList.length > 0 && (
846
-          <Dropdown
847
-            overlay={
848
-              <Menu onClick={handleClick} theme="light">
849
-                {$store.sysMenu.moreList.map((menu) => (
850
-                  <Menu.Item
851
-                    key={JSON.stringify(menu)}
852
-                    style={{ fontSize: 13 }}
853
-                  >
854
-                    {menu.resourceName}
855
-                  </Menu.Item>
856
-                ))}
857
-              </Menu>
858
-            }
859
-            placement="bottomCenter"
860
-            arrow
861
-            onClick={() => {
862
-              return false;
863
-            }}
864
-          >
865
-            <div className="show_more">更多 ></div>
866
-          </Dropdown>
867
-        )}
868
-      </div>
869 799
       {/* {history.location.pathname === "/home/index" && (
870 800
         <>
871 801
           <div className="style">
@@ -885,394 +815,8 @@ export default observer(function (props) {
885 815
             style={{ "marginRight": "10px" }}
886 816
             onClick={changeThemesStyle} />
887 817
         </Tooltip> */}
888
-        <Tooltip placement="bottom" title="问题反馈">
889
-          {
890
-            $store.app.styleCommon.theme == 'chaBaiDao' ? <img
891
-              src={require("@assets/imgs/chaBaiDaodraft-line.png").default}
892
-              alt=""
893
-              width="15"
894
-              onClick={handleContact} /> : <img
895
-              src={require("@assets/imgs/draft-line.png").default}
896
-              alt=""
897
-              width="15"
898
-              onClick={handleContact} />
899
-          }
900
-        </Tooltip>
901 818
       </div>
902 819
 
903
-      <Popover
904
-        overlayClassName="tips_pop"
905
-        placement="bottomRight"
906
-        // visible={toppopshow}
907
-        trigger="click"
908
-        visible={toppopshow}
909
-        onVisibleChange={(visible) => {
910
-          settoppopshow(visible);
911
-        }}
912
-        content={
913
-          <div className="top_tips_area">
914
-            <div className="top_tips_close" onClick={close_xxpop}>
915
-              <CloseOutlined />
916
-            </div>
917
-            <Tabs defaultActiveKey="1">
918
-              <TabPane tab={`消息公告(${unReadNum})`} key="1">
919
-                <List {...xxOption}></List>
920
-                <div
921
-                  className="yjyd_but"
922
-                  onClick={() => {
923
-                    handleAllRead();
924
-                  }}
925
-                >
926
-                  一键已读
927
-                </div>
928
-                <div
929
-                  className="yjyd_but"
930
-                  onClick={() => {
931
-                    settoppopshow(false);
932
-                    crossMenuClick('/system/center', '/home/systemNotice', ((res) => {
933
-                      history.push(res);
934
-                    }))
935
-                  }}
936
-                >
937
-                  查看全部
938
-                </div>
939
-              </TabPane>
940
-              <TabPane tab={`待办(${$store.app.unDealNum})`} key="2">
941
-                <List {...dbOption}></List>
942
-              </TabPane>
943
-            </Tabs>
944
-          </div>
945
-        }
946
-        arrowPointAtCenter
947
-      >
948
-        <div className="tips_count">
949
-          <>
950
-            {
951
-              $store.app.styleCommon.theme == 'chaBaiDao' ? <img
952
-                src={require("@assets/imgs/chaBaiDaotips_ring.png").default}
953
-                alt=""
954
-                width="16"
955
-                onClick={seeToppop}
956
-              /> : <img
957
-                src={require("@assets/imgs/tips_ring.png").default}
958
-                alt=""
959
-                width="16"
960
-                onClick={seeToppop}
961
-              />
962
-            }
963
-
964
-            <div className="count_num">{$store.app.newsCount}</div>
965
-          </>
966
-        </div>
967
-      </Popover>
968
-
969
-      <div className="controler">
970
-        <Dropdown overlay={menu} placement="bottomCenter" arrow>
971
-          <div>
972
-            <img
973
-              src={
974
-                JSON.stringify(sessionStorage.getItem("avator")).includes(null)
975
-                  ? require("@assets/imgs/default_head2.png").default
976
-                  : sessionStorage.getItem("avator") ||
977
-                  $store.app.avator ||
978
-                  require("@assets/imgs/default_head2.png").default
979
-              }
980
-              alt=""
981
-              style={{
982
-                width: 24,
983
-                height: 24,
984
-                borderRadius: "50%",
985
-                overflow: "hidden",
986
-              }}
987
-            />
988
-            <a
989
-              className="ant-dropdown-link"
990
-              onClick={(e) => e.preventDefault()}
991
-            >
992
-              {/* <UserOutlined
993
-              className="pointer"
994
-              style={{ color: "#fff", fontSize: 17 }}
995
-            /> */}
996
-              {sessionStorage.getItem("userName") || accountName}
997
-              {userInfo["account"]}
998
-            </a>
999
-          </div>
1000
-        </Dropdown>
1001
-      </div>
1002
-
1003
-      {/* 联系我们对话框 */}
1004
-      <Modal
1005
-        className={styles.feedbackModal}
1006
-        title="问题反馈"
1007
-        okText="提交"
1008
-        visible={showContactModalVisible}
1009
-        onOk={handleContactOk}
1010
-        onCancel={() => {
1011
-          form.resetFields();
1012
-          setShowContactModalVisible(false);
1013
-          setProbType(0);
1014
-          setDirectorInfo({
1015
-            director: "叶华东",
1016
-            itManagerAccountId: "",
1017
-          });
1018
-        }}
1019
-      >
1020
-        <Form
1021
-          form={form}
1022
-          {...formItemLayout}
1023
-          initialValues={{
1024
-            problemType: "system",
1025
-            problemContentObjectId: null,
1026
-            problemContent: "",
1027
-            problemChargePersonId: "",
1028
-            problemSendPersonId: [],
1029
-          }}
1030
-        >
1031
-          {/* <Form.Item> */}
1032
-          <Form.Item
1033
-            label="问题类型"
1034
-            name="problemType"
1035
-            rules={[{ required: true, message: "请选择问题类型" }]}
1036
-          >
1037
-            <Select onChange={(val) => setProbType(val)}>
1038
-              <Select.Option value="system">系统问题</Select.Option>
1039
-              <Select.Option value="report">报表问题</Select.Option>
1040
-            </Select>
1041
-          </Form.Item>
1042
-          {probType === "report" && (
1043
-            <Form.Item
1044
-              label="问题报表"
1045
-              name="problemContentObjectId"
1046
-              rules={[{ required: true, message: "请选择或输入问题报表" }]}
1047
-            >
1048
-              <TreeSearch
1049
-                treeData={probReport}
1050
-                value={form.getFieldValue().problemContentObjectId}
1051
-                placeholder="请选择问题报表"
1052
-                onChange={getDirectorId}
1053
-              />
1054
-            </Form.Item>
1055
-          )}
1056
-          <Form.Item
1057
-            name="problemContent"
1058
-            rules={[{ required: true, message: "请输入问题描述" }]}
1059
-            label="问题描述"
1060
-            style={{ marginBottom: 2 }}
1061
-          >
1062
-            <Input.TextArea
1063
-              style={{ resize: "none", height: 150 }}
1064
-              placeholder="请输入问题描述"
1065
-              maxLength={500}
1066
-              onInput={(e) => handleInput(e)}
1067
-            />
1068
-          </Form.Item>
1069
-          <div
1070
-            style={{
1071
-              display: "flex",
1072
-              justifyContent: "flex-end",
1073
-              // marginTop: -15,
1074
-            }}
1075
-          >
1076
-            <span>{iptValue}/500</span>
1077
-          </div>
1078
-          {isShowDirector && probType === "report" ? (
1079
-            <Form.Item name="problemChargePersonId" label="负责人">
1080
-              <span style={{ paddingLeft: 14 }}>{directorInfo.director}</span>
1081
-            </Form.Item>
1082
-          ) : (
1083
-            <Form.Item name="problemChargePersonId" label="负责人">
1084
-              <span style={{ paddingLeft: 14 }}>管理员</span>
1085
-            </Form.Item>
1086
-          )}
1087
-          {probType === "report" && (
1088
-            <Form.Item
1089
-              name="problemSendPersonId"
1090
-              label="抄送"
1091
-              style={{ marginBottom: 16 }}
1092
-            >
1093
-              <span style={{ paddingLeft: 14 }}>管理员</span>
1094
-            </Form.Item>
1095
-          )}
1096
-          {/* </Form.Item> */}
1097
-        </Form>
1098
-      </Modal>
1099
-
1100
-      {/* 重置密码对话框 */}
1101
-      <ResetPassword
1102
-        isResetVisible={isResetVisible}
1103
-        onCancel={() => {
1104
-          setIsResetVisible(false);
1105
-        }}
1106
-      />
1107
-      {/* 查看消息通知 */}
1108
-      <Modal
1109
-        className="xxpop"
1110
-        title="消息通知"
1111
-        okText="去看看"
1112
-        visible={showMassagepop}
1113
-        onOk={handleContactOk}
1114
-        onCancel={() => {
1115
-          setshowMassagepop(false);
1116
-        }}
1117
-      >
1118
-        <div className="xxpop_cont">
1119
-          <div className="xxpop_i">
1120
-            <div className="xxpop_i_left">消息时间:{list_item.time}</div>
1121
-            <div className="xxpop_i_right">消息内容:{list_item.title}</div>
1122
-          </div>
1123
-        </div>
1124
-      </Modal>
1125
-
1126
-      {/* 问题反馈 对话框 */}
1127
-      <Modal
1128
-        width={420}
1129
-        title="问题反馈"
1130
-        visible={isShowFeedback}
1131
-        onCancel={() => {
1132
-          setIsShowFeedback(false);
1133
-        }}
1134
-        footer={[
1135
-          <Button
1136
-            type="primary"
1137
-            key="feedback_1"
1138
-            onClick={() => {
1139
-              setIsShowFeedback(false);
1140
-            }}
1141
-          >
1142
-            保持待办
1143
-          </Button>,
1144
-          <Button
1145
-            type="primary"
1146
-            key="feedback_2"
1147
-            onClick={() => {
1148
-              handleFeedBack();
1149
-            }}
1150
-          >
1151
-            已处理
1152
-          </Button>,
1153
-        ]}
1154
-      >
1155
-        <Form {...formItemLayout}>
1156
-          <Form.Item
1157
-            label="问题类型"
1158
-            style={{ fontWeight: 600, marginBottom: 8 }}
1159
-          >
1160
-            <span style={{ fontWeight: 400, paddingLeft: 10 }}>
1161
-              {dealInfo.messageDetailType === "systemProblem"
1162
-                ? "系统问题"
1163
-                : "报表问题"}
1164
-            </span>
1165
-          </Form.Item>
1166
-          {dealInfo.messageDetailType === "ReportProblem" && (
1167
-            <Form.Item
1168
-              label="问题报表"
1169
-              style={{ fontWeight: 600, marginBottom: 8 }}
1170
-            >
1171
-              <span style={{ fontWeight: 400, paddingLeft: 10 }}>
1172
-                {questionReportName}
1173
-              </span>
1174
-            </Form.Item>
1175
-          )}
1176
-          <Form.Item
1177
-            label="问题描述"
1178
-            style={{ fontWeight: 600, marginBottom: 8 }}
1179
-          >
1180
-            <div
1181
-              style={{
1182
-                whiteSpace: "pre-wrap",
1183
-                fontWeight: 400,
1184
-                padding: "5px 0 5px 10px",
1185
-              }}
1186
-            >
1187
-              {dealInfo.messageContent}
1188
-            </div>
1189
-          </Form.Item>
1190
-          <Form.Item
1191
-            label="提交人"
1192
-            style={{ fontWeight: 600, marginBottom: 8 }}
1193
-          >
1194
-            <span style={{ fontWeight: 400, paddingLeft: 10 }}>
1195
-              {dealInfo.messageSourceName}
1196
-            </span>
1197
-          </Form.Item>
1198
-          <Form.Item
1199
-            label="提交时间"
1200
-            style={{ fontWeight: 600, marginBottom: 8 }}
1201
-          >
1202
-            <span style={{ fontWeight: 400, paddingLeft: 10 }}>
1203
-              {dealInfo.createTime}
1204
-            </span>
1205
-          </Form.Item>
1206
-        </Form>
1207
-      </Modal>
1208
-
1209
-      {/* 点击消息详情 对话框 */}
1210
-      <Modal
1211
-        title="消息通知"
1212
-        visible={isShowDetail}
1213
-        onCancel={() => {
1214
-          setIsShowDetail(false);
1215
-          getUnReadNum();
1216
-          messageTipList();
1217
-        }}
1218
-        footer={
1219
-          detailInfo.messageDetailType == "update_system" || detailInfo.messageDetailType == 'module_bulletin'? <Button
1220
-            type="primary"
1221
-            onClick={() => {
1222
-              setIsShowDetail(false)
1223
-            }}
1224
-          >确定</Button> : <Button
1225
-            type="primary"
1226
-            key="goHandle"
1227
-            onClick={goHandleMessage}
1228
-            disabled={
1229
-              detailInfo.messageDetailType === "newResourceMsg" ||
1230
-                detailInfo.messageDetailType === "permissionOverDueSoon"
1231
-                ? true
1232
-                : false
1233
-            }
1234
-          >
1235
-            {detailInfo.messageDetailType === "newResourceMsg"
1236
-              ? "申请权限"
1237
-              : detailInfo.messageDetailType === "permissionOverDueSoon"
1238
-                ? "续期"
1239
-                : "去看看"}
1240
-          </Button>
1241
-        }
1242
-      >
1243
-        <Form {...formItemLayout}>
1244
-          <Form.Item
1245
-            label="消息时间"
1246
-            style={{ fontWeight: 600, marginBottom: 8 }}
1247
-          >
1248
-            <span style={{ fontWeight: 400 }}>{detailInfo.createTime}</span>
1249
-          </Form.Item>
1250
-
1251
-          {detailInfo.messageDetailType === "fineReportChange" && (
1252
-            <Form.Item
1253
-              label="相关报表"
1254
-              style={{ fontWeight: 600, marginBottom: 8 }}
1255
-            >
1256
-              <span style={{ fontWeight: 400 }}>{reportName}</span>
1257
-            </Form.Item>
1258
-          )}
1259
-
1260
-          <Form.Item
1261
-            label="消息内容"
1262
-            style={{ fontWeight: 600, marginBottom: 8 }}
1263
-          >
1264
-            <div
1265
-              style={{
1266
-                fontWeight: 400,
1267
-                whiteSpace: "pre-wrap",
1268
-                padding: "5px 0",
1269
-              }}
1270
-            >
1271
-              {detailInfo.messageContent}
1272
-            </div>
1273
-          </Form.Item>
1274
-        </Form>
1275
-      </Modal>
1276 820
     </div>
1277 821
   );
1278 822
 });

+ 2 - 2
src/pages/frame/style.less

@@ -433,10 +433,10 @@
433 433
         margin-top: 0px!important;
434 434
         &>div:last-child {
435 435
           flex-grow: 1;
436
-          height: calc(100% - 56px);
436
+          // height: calc(100% - 56px);
437 437
           overflow-y: auto;
438 438
           background: #1c45b4;
439
-          margin-top: 56px;
439
+          // margin-top: 56px;
440 440
           padding-bottom:0;
441 441
         }
442 442
       }