Browse Source

地图fixed

duwendi 1 year ago
parent
commit
3f8d84721f

+ 0 - 9
src/assets/css/_mixins.scss

@@ -1,9 +0,0 @@
1
-@mixin border-shadow($direction) {
2
-  @if $direction == left {
3
-    box-shadow: -1px 0 8px #d3d4d6;
4
-  } @else if $direction == bottom {
5
-    box-shadow: 0 1px 8px #d3d4d6;
6
-  } @else if $direction == right {
7
-    box-shadow: 1px 0 8px #d3d4d6;
8
-  } 
9
-}

+ 0 - 6
src/assets/css/_variable.scss

@@ -1,6 +0,0 @@
1
-$bgColor: #F3F3F3;
2
-$theadColor: #f5f7fa;
3
-$mapPageColor: #FAFAFA;
4
-
5
-$btn-main-color: #2a78cb;
6
-$btn-hover-color: #1558a0;

+ 0 - 53
src/assets/css/common-map.scss

@@ -1,53 +0,0 @@
1
-.map-instance,
2
-#map {
3
-  width: 100%;
4
-  height: 100%;
5
-}
6
-
7
-.search-box {
8
-  float: right;
9
-  width: 400px;
10
-  margin-right: 20px;
11
-  .el-select .el-input {
12
-    width: 150px;
13
-  }
14
-  .el-input-group {
15
-    width: 200px;
16
-  }
17
-}
18
-
19
-.map-aside-body,
20
-.map-aside-content {
21
-  height: 100%;
22
-  .base-table {
23
-    height: 100%;
24
-    padding-bottom: 50px;
25
-    box-sizing: border-box;
26
-    .el-table {
27
-      height: 100%;
28
-    }
29
-  }
30
-}
31
-
32
-.park-detail {
33
-  #empChart {
34
-    width: 100%;
35
-    height: 160px;
36
-  }
37
-  .detail-content {
38
-    background: #d3dff5;
39
-    border: 1px solid #a7c4e0;
40
-    color: #000;
41
-    padding: 5px;
42
-    p {
43
-      font-size: 12px;
44
-      margin: 0;
45
-      line-height: 25px;
46
-      .emp-detail {
47
-        float: right;
48
-        padding-right: 20px;
49
-      }
50
-    }
51
-  }
52
-}
53
-

+ 0 - 121
src/assets/css/common.scss

@@ -1,121 +0,0 @@
1
-@import './variable';
2
-@import './mixins';
3
-
4
-html,
5
-body {
6
-  background: $bgColor;
7
-  margin: 0;
8
-  padding: 0;
9
-  height: 100%;
10
-  font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif;
11
-  font-weight: 400;
12
-  -webkit-font-smoothing: antialiased;
13
-}
14
-
15
-ul, li {
16
-  list-style: none;
17
-  margin: 0;
18
-  padding: 0;
19
-}
20
-
21
-.red-num {
22
-  color: red;
23
-}
24
-
25
-.emphasis {
26
-  font-weight: bold;
27
-}
28
-
29
-/* --------------地图页面数据概览样式 start-------------------- */
30
-.map-overall-container {
31
-  display: inline-block;
32
-  margin-left: 20px;
33
-  font-size: 14px;
34
-}
35
-
36
-@media screen and (max-width: 1250px) {
37
-  .map-overall-container {
38
-    position: absolute;
39
-    top: 50px;
40
-    background: rgba(0, 0, 0, 0.5);
41
-    color: #fff;
42
-    padding: 0 10px;
43
-    border-radius: 10px;
44
-    left: 64px;
45
-    margin-right: 60px;
46
-  }
47
-}
48
-/* --------------地图页面数据概览样式 end-------------------- */
49
-
50
-
51
-/* ------重置表单各项高度------start----- */
52
-.el-date-editor  {
53
-  .el-range-separator, 
54
-  .el-range__icon,
55
-  .el-range__close-icon {
56
-    line-height: 22px;
57
-  }
58
-}
59
-
60
-.el-form-item {
61
-  margin-bottom: 15px;
62
-}
63
-
64
-.el-form-item__content,
65
-.el-form-item__label {
66
-  line-height: 30px;
67
-}
68
-
69
-.el-input__inner {
70
-  height: 30px;
71
-}
72
-
73
-/* ------重置表单各项高度------end----- */
74
-
75
-.el-table {
76
-  td {
77
-    padding: 5px 0;
78
-  }
79
-  th {
80
-    padding: 8px 0;
81
-  }
82
-}
83
-
84
-.el-table tbody tr {
85
-  user-select: initial;
86
-}
87
-
88
-
89
-/**
90
- * transition slide 动画
91
- */
92
-
93
-.slide-enter-active,
94
-.slide-leave-active {
95
-  transition: all .3s linear;
96
-}
97
-
98
-.slide-enter,
99
-.slide-leave-to {
100
-  transform: translateX(400px);
101
-}
102
-
103
-.slideleft-enter-active,
104
-.slideleft-leave-active {
105
-  transition: all .5s linear;
106
-  left: 0;
107
-}
108
-
109
-.slideleft-enter,
110
-.slideleft-leave-to {
111
-  transform: translateX(-200px);
112
-  left: -200px;
113
-}
114
-
115
-.clearfix:before,.clearfix:after{
116
-  content: "";
117
-  display: table;
118
-}
119
-.clearfix:after{
120
-  clear: both;
121
-}

+ 0 - 32
src/assets/css/cus-table.scss

@@ -1,32 +0,0 @@
1
-@import './variable';
2
-
3
-thead.has-gutter th {
4
-  background: $theadColor;
5
-}
6
-
7
-.base-table {
8
-  position: relative;
9
-  .cell {
10
-    cursor: default;
11
-  }
12
-  .aside-pagination {
13
-    position: absolute;
14
-    left: 0;
15
-    bottom: -22px;
16
-    .el-pagination__jump {
17
-      margin: 0 10px;
18
-      vertical-align: middle;
19
-    }
20
-    button {
21
-      vertical-align: middle;
22
-    }
23
-  }
24
-  .pages {
25
-    position: absolute;
26
-    right: 8px;
27
-    bottom: 9px;
28
-    font-size: 14px;
29
-    color: #5a5e66;
30
-    line-height: 28px;
31
-  }
32
-}

+ 0 - 149
src/assets/css/cus-table.xt.scss

@@ -1,149 +0,0 @@
1
-.el-table {
2
-  border: none;
3
-
4
-  thead {
5
-    color: #000;
6
-
7
-    &.has-gutter th {
8
-      background: #EFEFEF;
9
-    }
10
-  }
11
-}
12
-
13
-.el-table--border::after, .el-table--group::after {
14
-  width: 0;
15
-}
16
-
17
-.el-table::before {
18
-  height: 0;
19
-}
20
-
21
-.el-table__body-wrapper {
22
-  border: 1px solid #c4c4c4;
23
-  border-right: none;
24
-  border-bottom: none;
25
-
26
-  tr:nth-last-of-type(1) td {
27
-    border-bottom: 1px solid #c4c4c4;
28
-  }
29
-
30
-  tr td:nth-last-of-type(1) {
31
-    border-right: 1px solid #c4c4c4;
32
-  }
33
-
34
-  // &:after {
35
-  //   content: '';
36
-  //   position: absolute;
37
-  //   background-color: transparent;
38
-  //   z-index: 1;
39
-  //   top: 0;
40
-  //   right: 1px;
41
-  //   width: 1px;
42
-  //   height: 100%;
43
-  // }
44
-}
45
-
46
-.el-table__empty-block {
47
-  border-bottom: 1px solid #c4c4c4;
48
-}
49
-
50
-.el-table--border td, .el-table--border th {
51
-  border-right: 1px solid #e4e4e4;
52
-}
53
-
54
-.el-table td, .el-table th.is-leaf {
55
-  border-bottom: 1px solid #e4e4e4;
56
-}
57
-
58
-.el-table--striped .el-table__body tr.el-table__row--striped td {
59
-  background: #F9F9F9;
60
-}
61
-
62
-.simple {
63
-  .el-table--border th {
64
-    border-right: none;
65
-  }
66
-}
67
-
68
-.simple .el-table th.is-leaf {
69
-  border-bottom: none;
70
-}
71
-
72
-.el-pagination .el-select .el-input .el-input__inner {
73
-  color: #578ed2;
74
-  font-weight: bold;
75
-  font-size: 14px;
76
-  height: 34px;
77
-}
78
-
79
-.el-pagination__total, .el-pagination__sizes {
80
-  color: #000;
81
-  font-size: 14px;
82
-}
83
-
84
-.el-pagination .el-select .el-input {
85
-  width: 70px;
86
-
87
-  .el-select__caret {
88
-    color: #000;
89
-    font-size: 20px;
90
-  }
91
-}
92
-
93
-.el-pagination.is-background.el-pagination--small .btn-next, .el-pagination.is-background.el-pagination--small .btn-prev {
94
-  float: right;
95
-  margin: 4px 3px;
96
-}
97
-.el-pagination--small button, .el-pagination--small span:not([class*=suffix]){
98
-  line-height: 34px;
99
-  height: 34px;
100
-}
101
-.el-input__icon{
102
-  line-height: 1;
103
-}
104
-.el-pager {
105
-  float: right;
106
-  margin-top: 4px;
107
-}
108
-
109
-.el-pagination.is-background .btn-next,
110
-.el-pagination.is-background .btn-prev,
111
-.el-pagination.is-background .el-pager li {
112
-  background-color: #fff;
113
-  border: 1px solid #dbdbdb;
114
-}
115
-
116
-.el-pagination.is-background .btn-next.disabled, .el-pagination.is-background .btn-prev.disabled {
117
-  color: #000;
118
-}
119
-
120
-.el-pagination.is-background .el-pager li.active {
121
-  border-color: #409eff;
122
-  background-color: #409eff;
123
-}
124
-
125
-.is-complicate {
126
-  .el-table--border th, .el-table__fixed-right-patch {
127
-    border-bottom-color: #e4e4e4;
128
-  }
129
-
130
-  .el-table--border .has-gutter td:nth-last-of-type(2), .el-table--border .has-gutter th:nth-last-of-type(2) {
131
-    border-right: 1px solid #e4e4e4;
132
-  }
133
-}
134
-
135
-
136
-@media screen and (min-width: 1289px) {
137
-  .el-table__body-wrapper {  
138
-    &:after {
139
-      content: '';
140
-      position: absolute;
141
-      background-color: #c4c4c4;
142
-      z-index: 1;
143
-      top: 0;
144
-      right: 1px;
145
-      width: 1px;
146
-      height: 100%;
147
-    }
148
-  }
149
-}

+ 0 - 4
src/assets/css/element_ui.css

@@ -199,10 +199,6 @@
199 199
 .el-pagination button:disabled {
200 200
   background: transparent;
201 201
 }
202
-/*.el-pagination button:disabled {*/
203
-/*  background: transparent;*/
204
-/*  color: #fff;*/
205
-/*}*/
206 202
 
207 203
 .el-table td,
208 204
 .el-table th.is-leaf {

+ 0 - 5
src/assets/css/global.css

@@ -58,10 +58,6 @@ img {
58 58
 html,
59 59
 body,
60 60
 #app {
61
-  /* width: 1920px;
62
-  height: 1080px;
63
-  margin: 0;
64
-  padding: 0; */
65 61
   height:100%;
66 62
   width:100%;
67 63
 }
@@ -72,7 +68,6 @@ body,
72 68
 
73 69
 
74 70
 #app {
75
-  /* background: url('../img/screen-bg.png')no-repeat left top/cover; */
76 71
 }
77 72
 
78 73
 ::-webkit-scrollbar {

+ 0 - 25
src/assets/css/reset-button.scss

@@ -1,25 +0,0 @@
1
-@import "./variable";
2
-
3
-.el-button--primary {
4
-  background-color: $btn-main-color;
5
-  border-color: $btn-main-color;
6
-}
7
-
8
-.el-button--primary:focus, 
9
-.el-button--primary:hover {
10
-  background-color: $btn-hover-color;
11
-  border-color: $btn-hover-color;
12
-}
13
-
14
-.el-button--primary.is-plain {
15
-  color: $btn-main-color;
16
-  background: #fff;
17
-  border-color: $btn-main-color;
18
-}
19
-
20
-.el-button--primary.is-plain:focus, 
21
-.el-button--primary.is-plain:hover {
22
-  background: #fff;
23
-  border-color: $btn-hover-color;
24
-  color: $btn-hover-color;
25
-}

+ 0 - 34
src/assets/css/snapshot.scss

@@ -1,34 +0,0 @@
1
-
2
-// 主色
3
-// $primary-color: #3d7eff;
4
-$primary-color: #ceb284;
5
-// 辅助色
6
-$auxiliary-color: #ffa800;
7
-$green-color: #00ba00;
8
-$red-color: #fb322e;
9
-$default-bg-color:#35434f;
10
-
11
-$font-default-color: #000;
12
-$font-auxiliary-color: #666;
13
-$font-gray-color: #999;
14
-$font-white-color: #fff;
15
-
16
-// base color
17
-$blue:#324157;
18
-$light-blue:#3A71A8;
19
-$red:#C03639;
20
-$pink: #E65D6E;
21
-$green: #30B08F;
22
-$tiffany: #4AB7BD;
23
-$yellow:#FEC171;
24
-$panGreen: #30B08F;
25
-
26
-// sidebar
27
-
28
-$menuBg:$default-bg-color;
29
-$menuHover:$default-bg-color;
30
-$menuText:$primary-color;
31
-$subMenuBg:#475764;
32
-$subMenuActiveBg:$primary-color;
33
-$subMenuHover:$primary-color;
34
-$subMenuText:#ffffff;

BIN
src/assets/font/Hanyi-Rhombic/Hanyi-Rhombic.ttf


BIN
src/assets/font/Impact/Impact.ttf


BIN
src/assets/font/Womby-Regular/Womby-Regular.eot


File diff suppressed because it is too large
+ 0 - 1
src/assets/font/Womby-Regular/Womby-Regular.svg


BIN
src/assets/font/Womby-Regular/Womby-Regular.ttf


BIN
src/assets/font/Womby-Regular/Womby-Regular.woff


+ 2 - 2
src/components/emap.vue

@@ -7,7 +7,7 @@
7 7
 
8 8
 <script>
9 9
 import * as echarts from 'echarts'
10
-import { getQingHaiJson } from "@/util/qinghaiJson";
10
+import { luoheJson } from "@/util/luoheJson";
11 11
 export default {
12 12
   props: {
13 13
     id: { type: String, required: true },
@@ -122,7 +122,7 @@ export default {
122 122
     },
123 123
   },
124 124
   mounted() {
125
-    const qingHaiJson = getQingHaiJson(this.hasTech);
125
+    const qingHaiJson = luoheJson;
126 126
     echarts.registerMap("qinghai", qingHaiJson);
127 127
     const areas = this.option.series[0].data;
128 128
     const colors1 = [

+ 0 - 4
src/components/scrollProgress.vue

@@ -124,10 +124,6 @@ import * as echarts from 'echarts'
124 124
 
125 125
         .item-progress {
126 126
 
127
-          // /deep/ .el-progress-bar__outer {
128
-          //   background-color: rgba(25,25,112, 0.4);
129
-          // }
130
-
131 127
           /deep/ .el-progress-bar__inner {
132 128
             background-color: unset;
133 129
           }

+ 0 - 48
src/components/valueBlock.vue

@@ -1,48 +0,0 @@
1
-<template>
2
-  <div class="num-block">
3
-    <img src="../../static/img/num-left.png" />
4
-    <div :class="item !== '-' ? 'single-num' : ''" :key="idx" v-for="(item, idx) of valueArr">
5
-      <div>{{item}}</div>
6
-    </div>
7
-    <img src="../../static/img/num-right.png" />
8
-  </div>
9
-</template>
10
-
11
-<script>
12
-export default {
13
-  props: {
14
-    valueArr: String
15
-  }
16
-}
17
-</script>
18
-
19
-<style lang="less" scoped>
20
-  .num-block {
21
-    display: flex;
22
-    align-items: center;
23
-    height: 100%;
24
-    img {
25
-      height: 100%;
26
-    }
27
-    .single-num {
28
-      height: 88%;
29
-      width: 1.5em;
30
-      background: url('../../static/img/num.png') no-repeat;
31
-      background-size: 100% 100%;
32
-      position: relative;
33
-      top: 5px;
34
-      left: 5px;
35
-      div {
36
-        width: 100%;
37
-        text-align: center;
38
-        font-weight: bold;
39
-        position: relative;
40
-        right: 5px;
41
-        top: -5px;
42
-        font-family: 'numFont';
43
-        font-weight: bold;
44
-      }
45
-    }
46
-  }
47
-
48
-</style>

+ 556 - 0
src/pages/index/components/demo1.vue

@@ -0,0 +1,556 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <div style="display: flex; justify-content: space-between;">
4
+      <div style="width: 50%; height: 300px">
5
+      <piechart
6
+        class="model-pie-body"
7
+        id="chart1"
8
+        :radiusArr="['30%', '70%']"
9
+        :colorArr="modelPieColor"
10
+        :labelFormat="['{name|{b}}', '{sub|{@value}万元 {d}%}', '{hr|}']"
11
+        :dataset="modelData.list"
12
+        :encode="{ itemName: 'name', value: 'value' }"
13
+      />
14
+      </div>
15
+      <div style="width: 50%; height: 300px">
16
+        <vtable
17
+          :showIdx="true"
18
+          class="tax-table"
19
+          :columns="riskColumns"
20
+          :datas="riskData"
21
+          :isAutoScroll="true"
22
+        />
23
+      </div>
24
+    </div>
25
+    <div style="display: flex; justify-content: space-between;">
26
+      <div style="width: 50%; height: 300px">
27
+        <linechart
28
+          :autoStop="false"
29
+          :top="30"
30
+          :bottom="30"
31
+          :left="40"
32
+          :legendTop="0"
33
+          yAxisName="(亿元)"
34
+          :dataset="linedata"
35
+          :tooltipFormat="lineTooltipFormat"
36
+          :encode="[
37
+              { x: 'month', y: 'lastYearAmount', seriesName: '去年' },
38
+              { x: 'month', y: 'thisYearAmount', seriesName: '当年' },
39
+            ]"
40
+          id="sxcyfzqk"
41
+        />
42
+      </div>
43
+      <div style="width: 50%; height: 300px">
44
+        <barchart
45
+          class="side-chart"
46
+          :autoStop="false"
47
+          :colorArr="['#ffd201', '#00eacb', '#01b4ff', '#5d78ff']"
48
+          legendIcon="react"
49
+          :bottom="30"
50
+          :xlabelFormat="xLabelFormat"
51
+          :top="60"
52
+          yAxisName="(户)"
53
+          :tooltip="tooltipFormat"
54
+          :dataset="bardata"
55
+          :encode="[
56
+            {x: 'month', y: 'hs', seriesName: '户数'},
57
+            {x: 'month', y: 'cs', seriesName: '次数'}]"
58
+          :labelSize="20"
59
+          id="fxdqhszzt"
60
+        />
61
+      </div>
62
+    </div>
63
+    <div style="width: 100%; height: 400px">
64
+<!--      <emap style="width: 100%; height: 100%;"/>-->
65
+      <emap
66
+        class="map"
67
+        :labelFormat="mapLabelFormat"
68
+        :mapData="mapData"
69
+        id="map"
70
+        :tooltip="mapTooltipFormat"
71
+      />
72
+    </div>
73
+  </div>
74
+</template>
75
+<script>
76
+import piechart from "@/components/pieChart";
77
+import linechart from "@/components/lineChart";
78
+import barchart from "@/components/barChart";
79
+import vtable from "@/components/vtableNew";
80
+import emap from "@/components/emap";
81
+import api from "@/api/audit.js";
82
+
83
+
84
+export default {
85
+  components: {
86
+    piechart,
87
+    linechart,
88
+    barchart,
89
+    vtable,
90
+    emap
91
+  },
92
+  data() {
93
+    return {
94
+      modelPieColor: ["#4382f6","#9078f8"],
95
+      modelData: {
96
+        list: [{name: '占用位', value: 100}, {name: '空闲位', value: 100}]
97
+      },
98
+      linedata: [{month: '11', lastYearAmount: 20, thisYearAmount: 30}, {month: '12', lastYearAmount: 40, thisYearAmount: 50}],
99
+      bardata: [{month: '01', hs: 100, cs: 200},{month: '02', hs: 300, cs: 200},{month: '03', hs: 400, cs: 200},],
100
+      riskColumns: [
101
+        { name: "", rowIdx: "name", width: "40%" },
102
+        { name: "任务数(户)", rowIdx: "rws", origin: true },
103
+        { name: "已完成(户)", rowIdx: "ywc", origin: true },
104
+        { name: "风险命中率", rowIdx: "mzl" },
105
+        { name: "入库税款(万元)", rowIdx: "rksk" },
106
+      ],
107
+      riskData: [{
108
+        name: '1号',
109
+        rws: 222,
110
+        ywc: 333,
111
+        mzl: 444,
112
+        rksk: 555
113
+      },{
114
+        name: '2号',
115
+        rws: 222,
116
+        ywc: 333,
117
+        mzl: 444,
118
+        rksk: 555
119
+      },{
120
+        name: '3号',
121
+        rws: 222,
122
+        ywc: 333,
123
+        mzl: 444,
124
+        rksk: 555
125
+      },{
126
+        name: '4号',
127
+        rws: 222,
128
+        ywc: 333,
129
+        mzl: 444,
130
+        rksk: 555
131
+      },{
132
+        name: '5号',
133
+        rws: 222,
134
+        ywc: 333,
135
+        mzl: 444,
136
+        rksk: 555
137
+      },{
138
+        name: '6号',
139
+        rws: 222,
140
+        ywc: 333,
141
+        mzl: 444,
142
+        rksk: 555
143
+      },{
144
+        name: '7号',
145
+        rws: 222,
146
+        ywc: 333,
147
+        mzl: 444,
148
+        rksk: 555
149
+      },{
150
+        name: '8号',
151
+        rws: 222,
152
+        ywc: 333,
153
+        mzl: 444,
154
+        rksk: 555
155
+      }],
156
+      mapData: {}
157
+    }
158
+  },
159
+  mounted() {
160
+  },
161
+  watch: {
162
+
163
+  },
164
+  methods: {
165
+    mapLabelFormat() {
166
+      return {
167
+        show: true,
168
+        formatter: (param) => {
169
+          const data = this.mapData[param.data.code]
170
+          return [`{name|${param.name}}`, `{value|${data.shje}亿元}  {${data.tb>=0?'tbUp':'tbDown'}|${Math.abs(data.tb)}%}{${data.tb>=0?'up':'down'}|}`].join('\n')
171
+        },
172
+        padding: [5, 5],
173
+        // backgroundColor: {
174
+        //   image: '../../../../static/img/u231.png'
175
+        // },
176
+        rich: {
177
+          name: {color: '#ffffff', padding: [2,2,10,2]},
178
+          value: {color: '#FFD074'},
179
+          tbUp: {color: '#FF0060'},
180
+          tbDown: {color: '#66CC33'},
181
+          up: {backgroundColor: {image: '../../../../static/img/arrow-up.png'}, width: 30, height: 30},
182
+          down: {backgroundColor: {image: '../../../../static/img/arrow-down.png'}, width: 30, height: 30}
183
+        }
184
+      }
185
+    },
186
+
187
+    mapTooltipFormat({ data }) {
188
+      return ''
189
+      //   const zoneData = this.mapData[data.code];
190
+      //   return `<div class='map-tooltip back-mid-map-tooltip'>
191
+      //     <div class='zone-name'>${data.name}</div>
192
+      //     <div class="zone-value">
193
+      //       <div class="je-value">${zoneData.shje}万元</div>
194
+      //       <div class=${zoneData.tb >= 0 ? "red" : "green"}>${Math.abs(
195
+      //     zoneData.tb
196
+      //   )}%<img src=${
197
+      //     zoneData.tb >= 0
198
+      //       ? "../../../../static/img/arrow-up.png"
199
+      //       : "../../../../static/img/arrow-down.png"
200
+      //   } /></div>
201
+      //     </div>
202
+      //   </div>`;
203
+    },
204
+    lineTooltipFormat(params) {
205
+      const data = params[0].data;
206
+      return `<div class="line-tooltip">
207
+        <div style="color: ${params[0].color}">${params[0].seriesName}: ${
208
+        params[0].data.lastYearAmount || "--"
209
+      }(件)</div>
210
+        <div style="color: ${params[1].color}">${params[1].seriesName}: ${
211
+        params[0].data.thisYearAmount || "--"
212
+      }(件)</div>
213
+      </div>`;
214
+    },
215
+    xLabelFormat(name) {
216
+      const nameArr = []
217
+      for(let i=0; i<name.length; i+=7) {
218
+        nameArr.push(name.substring(i, i+7))
219
+      }
220
+      return nameArr.join('\n');
221
+    },
222
+    tooltipFormat(params) {
223
+      const type = params[0].seriesType;
224
+      const data = params[0].data;
225
+      // ${params[0].name || "--"}月:
226
+      return `<div class="${type==='bar' ? 'bar-tooltip-dz' : type==='line' ? 'line-tooltip-dz' : ''}">${data.hs || "--"}张</div>`;
227
+    },
228
+    format(percentage, num) {
229
+      return num
230
+    },
231
+    getResourceData() {
232
+      api.resourceData().then(res => {
233
+        if (res.success) {
234
+          this.menus[0].new = res.data.themeAdd
235
+          this.menus[0].history = res.data.themeTotal
236
+          this.menus[1].new = res.data.specialSubjectAdd
237
+          this.menus[1].history = res.data.specialSubjectTotal
238
+          this.menus[2].new = res.data.indexAdd
239
+          this.menus[2].history = res.data.indexTotal
240
+          this.menus[3].new = res.data.serviceAdd
241
+          this.menus[3].history = res.data.serviceTotal
242
+        }
243
+      })
244
+    },
245
+    getCollectTotal() {
246
+      api.collectTotal().then(res => {
247
+        if (res.success) {
248
+          this.collectTotal = res.data
249
+        }
250
+      })
251
+    },
252
+    getThemeSpecialIndex() {
253
+      api.themeSpecialIndex({resourceType: 'theme'}).then(res => {
254
+        if (res.success) {
255
+          this.barData = res.data
256
+        }
257
+      })
258
+      api.themeSpecialIndex({resourceType: 'specialSubject'}).then(res => {
259
+        if (res.success) {
260
+          this.specialAssetsData = res.data
261
+        }
262
+      })
263
+      api.themeSpecialIndex({resourceType: 'index'}).then(res => {
264
+        if (res.success) {
265
+          this.indicatorStatData = res.data
266
+        }
267
+      })
268
+    },
269
+    getApiRankData() {
270
+      api.apiRank().then(res => {
271
+        if (res.success) {
272
+          this.rankData = res.data
273
+        }
274
+      })
275
+    },
276
+    jumpToFilePage() {
277
+      this.$router.push({
278
+        name: "file",path: "/file"
279
+      });
280
+    },
281
+    jumpToApplyPage() {
282
+      this.$router.push({
283
+        name: "apply", path: "/apply"
284
+      });
285
+    },
286
+    getVisitsData() {
287
+      api.visits({}).then(res => {
288
+        if(res.success) {
289
+          this.visits = res.data
290
+        }
291
+      })
292
+    }
293
+  }
294
+}
295
+</script>
296
+<style  lang="scss" scoped>
297
+.body-wrapper {
298
+  width: 100%;
299
+  height: 100%;
300
+  box-sizing: border-box;
301
+  background: #0c0c0c;
302
+
303
+  .airport-logo {
304
+    width: 43%;
305
+    margin-left: -42px;
306
+    margin-top: 86px;
307
+  }
308
+
309
+  .input-wrapper {
310
+    width: 36%;
311
+    height: 53px;
312
+
313
+    /deep/ .el-input__inner {
314
+      height: 53px;
315
+    }
316
+
317
+    /deep/ .el-input-group__append {
318
+      background-color: #fff;
319
+      color: #80c2f7;
320
+      font-size: 18px;
321
+      font-weight: bold;
322
+    }
323
+  }
324
+
325
+  .header-row {
326
+    padding-top: 10px;
327
+    .data-repository, .my-collect{
328
+      float: left;
329
+    }
330
+    .data-repository{
331
+      width: 80%;
332
+      background: #fff;
333
+      padding: 20px 20px;
334
+      border-right: 1px solid #f2f2f2;
335
+      box-sizing: border-box;
336
+      .data-repo-title{
337
+        margin-bottom: 5px;
338
+        .icon{
339
+          display: inline-block;
340
+          width: 11px;
341
+          height: 25px;
342
+          background: #8bb2ff;
343
+          vertical-align: middle;
344
+        }
345
+      }
346
+      .data-repo-wrap{
347
+        display: flex;
348
+        justify-content: space-between;
349
+        padding-left: 14px;
350
+      }
351
+    }
352
+    .my-collect{
353
+      padding-top: 50px;
354
+      padding-right: 10px;
355
+      width: 20%;
356
+      box-sizing: border-box;
357
+      .menu-btn{
358
+        float: right;
359
+      }
360
+    }
361
+    .menu-btn {
362
+      height: 138px;
363
+      width: 100%;
364
+      padding: 20px;
365
+      box-shadow: 2px 5px 10px #ddd;
366
+      background: #fff;
367
+      border-radius: 5px;
368
+      >p {
369
+        font-size: 24px;
370
+        font-weight: bold;
371
+      }
372
+      .circle {
373
+        width: 10px;
374
+        height: 10px;
375
+        border-radius: 50%;
376
+        margin-right: 5px;
377
+      }
378
+      .circle1 {
379
+        border: 3px solid #084FC0;
380
+      }
381
+      .circle2 {
382
+        border: 3px solid #BE5205;
383
+      }
384
+      .circle3 {
385
+        border: 3px solid #58C627;
386
+      }
387
+      .circle4 {
388
+        border: 3px solid #BF44FF;
389
+      }
390
+      .sub-title {
391
+        display: flex;
392
+        align-items: center;
393
+      }
394
+      .middle-flex{
395
+        display: flex;
396
+        align-items: center;
397
+        justify-content: center;
398
+      }
399
+    }
400
+  }
401
+
402
+  .chart-wrap {
403
+    //margin-top: 10px;
404
+    padding: 20px;
405
+    height: 700px;
406
+    background: #fff;
407
+    display: flex;
408
+    flex-wrap: wrap;
409
+    flex-direction: row;
410
+    justify-content: space-between;
411
+    .chart-card {
412
+      width: 49.5%;
413
+      height: 30px;
414
+      .title {
415
+        font-size: 18px;
416
+        margin-bottom: 10px;
417
+      }
418
+      .chart {
419
+        width: 100%;
420
+        height: 280px;
421
+        box-shadow: 2px 5px 10px #ddd;
422
+      }
423
+      .rank-chart{
424
+        text-align: center;
425
+        box-sizing: border-box;
426
+        padding: 10px 20px 0;
427
+      }
428
+      .rank-block{
429
+        height: 238px;
430
+        overflow-y: auto;
431
+        scrollbar-width: none; /* firefox */
432
+      }
433
+      .rank-block::-webkit-scrollbar {
434
+        display: none; /* Chrome Safari */
435
+      }
436
+      .rank-item{
437
+        margin-bottom: 10px;
438
+        .icon, .right-block, .icon-three{
439
+          float: left;
440
+        }
441
+        .icon{
442
+          width: 18px;
443
+          height: 18px;
444
+          background: url('../../../assets/image/u211.svg');
445
+          font-size: 12px;
446
+          color: #FFFFFF;
447
+          line-height: 18px;
448
+        }
449
+        .icon-three{
450
+          width: 18px;
451
+          height: 26px;
452
+        }
453
+        .icon0{
454
+          background: url('../../../assets/image/u218.svg');
455
+          background-size: 100% 100%;
456
+        }
457
+        .icon1{
458
+          background: url('../../../assets/image/u219.svg');
459
+          background-size: 100% 100%;
460
+        }
461
+        .icon2{
462
+          background: url('../../../assets/image/u220.svg');
463
+          background-size: 100% 100%;
464
+        }
465
+        .right-block{
466
+          width: calc(100% - 18px);
467
+          .name-unit{
468
+            padding: 0 10px;
469
+            margin-bottom: 5px;
470
+          }
471
+          .name{
472
+            float: left;
473
+          }
474
+          .unit{
475
+            float: right;
476
+          }
477
+        }
478
+        /deep/ .progress .el-progress-bar__inner {
479
+          background-image: linear-gradient(
480
+              to right,
481
+              #00c8ff,
482
+              #009bff
483
+          );
484
+        }
485
+        /deep/ .progress0 .el-progress-bar__inner {
486
+          background-image: linear-gradient(
487
+              to right,
488
+              #ec5a48,
489
+              #d566d7
490
+          );
491
+        }
492
+        /deep/ .progress1 .el-progress-bar__inner {
493
+          background-image: linear-gradient(
494
+              to right,
495
+              #f9b101,
496
+              #ff6a62
497
+          );
498
+        }
499
+        /deep/ .progress2 .el-progress-bar__inner {
500
+          background-image: linear-gradient(
501
+              to right,
502
+              #00f576,
503
+              #009df7
504
+          );
505
+        }
506
+      }
507
+    }
508
+  }
509
+  .btn-space{
510
+    margin-left: 20px;
511
+  }
512
+  .visits-num{
513
+    padding: 20px;
514
+  }
515
+}
516
+.chart-body {
517
+  width: 100%;
518
+  height: calc(100% - 40px);
519
+  position: relative;
520
+  top: 35px;
521
+}
522
+.model-pie-body {
523
+  width: 100%;
524
+  height: 70%;
525
+}
526
+.bar-tooltip-dz {
527
+  padding: 5px 10px;
528
+  background: url("../../../../static/img/u261.png");
529
+  background-size: 100% 100%;
530
+  color: #333;
531
+  position: absolute;
532
+  top: 0;
533
+}
534
+.tax-table {
535
+  tbody {
536
+    tr {
537
+      &:nth-child(1),
538
+      &:nth-child(2),
539
+      &:nth-child(3) {
540
+        td {
541
+          &:nth-child(2) {
542
+            color: #ffd074;
543
+          }
544
+        }
545
+      }
546
+    }
547
+  }
548
+}
549
+.map {
550
+  margin-top: 20px;
551
+  width: 100%;
552
+  flex: 1;
553
+  height: 100%;
554
+}
555
+
556
+</style>

+ 166 - 0
src/pages/index/components/demo2.vue

@@ -0,0 +1,166 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <div class="search-card">
4
+        <el-input class="input-wrapper" v-model="searchWords" placeholder="请输入关键字">
5
+            <el-button slot="append" class="searchbtn" @click="handleSearch">
6
+            </el-button>
7
+        </el-input>
8
+    </div>
9
+    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
10
+      <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
11
+      </el-table-column>
12
+      <el-table-column
13
+        label="操作"
14
+        width="100">
15
+        <template slot-scope="scope">
16
+            <el-button v-if="scope.row && scope.row.applyType === '1'" @click="handleAudit(scope.row)" type="text" size="small">审核</el-button>
17
+        </template>
18
+      </el-table-column>
19
+    </el-table>
20
+    <div class="table-pagination">
21
+      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
22
+        :current-page.sync="pageNum" :page-size.sync="pageSize">
23
+      </el-pagination>
24
+    </div>
25
+    <el-dialog
26
+        title="审核"
27
+        :visible.sync="dialogVisible"
28
+        width="60%"
29
+        custom-class="audit-dialog">
30
+        <el-row class="mg-bt">
31
+            <el-col class="label" :span="4">审核:</el-col>
32
+            <el-col :span="18">
33
+                <el-radio v-model="radio" label="2">通过</el-radio>
34
+                <el-radio v-model="radio" label="3">驳回</el-radio>
35
+            </el-col>
36
+        </el-row>
37
+        <span slot="footer" class="dialog-footer">
38
+            <el-button @click="dialogVisible = false">取 消</el-button>
39
+            <el-button type="primary" @click="handleConfirm">确 定</el-button>
40
+        </span>
41
+    </el-dialog>
42
+  </div>
43
+</template>
44
+<script>
45
+import api from "@/api/audit.js";
46
+
47
+export default {
48
+    components: {},
49
+    data() {
50
+      return {
51
+        columns: [
52
+          {
53
+            label: '资源名称',
54
+            key: 'resourceName'
55
+          },
56
+          {
57
+            label: '资源类型',
58
+            key: 'resourceType'
59
+          },
60
+          {
61
+            label: '申请人',
62
+            key: 'userName'
63
+          },
64
+          {
65
+            label: '状态',
66
+            key: 'applyTypeText'
67
+          }
68
+        ],
69
+        tableData: [],
70
+        total: 0,
71
+        pageSize: 10,
72
+        pageNum: 1,
73
+        radio: '2',
74
+        dialogVisible: false,
75
+        selRow: {},
76
+        searchWords: undefined
77
+      }
78
+    },
79
+    mounted() {
80
+      this.getTableData()
81
+    },
82
+    watch: {
83
+    },
84
+    methods: {
85
+      handlePageChange() {
86
+        this.getTableData()
87
+      },
88
+      handleAudit(row) {
89
+        this.selRow = row
90
+        this.dialogVisible = true
91
+      },
92
+      handleCancelApply(row) {
93
+        console.log('enter handle cancel apply')
94
+      },
95
+      handleConfirm() {
96
+        const {id} = this.selRow
97
+        console.log('radio', this.radio)
98
+        api.applyResource({id, applyType: this.radio}).then(res => {
99
+          if(res.success) {
100
+            this.dialogVisible = false
101
+            this.$message({
102
+              message: '审核成功!',
103
+              type: 'success'
104
+            })
105
+            this.getTableData()
106
+          }
107
+        })
108
+      },
109
+      getTableData() {
110
+        const {pageNum, pageSize, searchWords} = this
111
+        api.applyList({pageNum, pageSize, resourceName: searchWords}).then(res => {
112
+          this.tableData = []
113
+          res.data.records.map((item, index) => {
114
+            const newItem = {...item}
115
+            newItem.applyTypeText = this.getApplyTypeText(item.applyType)
116
+            this.tableData.push(newItem)
117
+          })
118
+          this.total = res.data.total
119
+        })
120
+      },
121
+      getApplyTypeText(val) {
122
+        if (!val){
123
+          return '未申请'
124
+        }
125
+        const textMap = {
126
+          1: '待审批',
127
+          2: '审批通过',
128
+          3: '审批驳回'
129
+        }
130
+        return textMap[val]
131
+      },
132
+      handleSearch() {
133
+        this.pageNum = 1
134
+        this.getTableData()
135
+      }
136
+    }
137
+}
138
+</script>
139
+<style  lang="scss" scoped>
140
+.body-wrapper {
141
+  padding: 20px;
142
+  background: #0c0c0c;
143
+  .button-block{
144
+    text-align: right;
145
+    margin-bottom: 20px;
146
+  }
147
+  .table-pagination{
148
+    text-align: right;
149
+  }
150
+  .search-card{
151
+    margin-bottom: 20px;
152
+    text-align: center;
153
+    .input-wrapper{
154
+        width: 36%;
155
+    }
156
+  }
157
+}
158
+.audit-dialog{
159
+    .mg-bt{
160
+        margin-bottom: 24px;
161
+    }
162
+    .label{
163
+        text-align: right;
164
+    }
165
+}
166
+</style>

+ 55 - 2
src/pages/index/components/park_monitor.vue

@@ -61,7 +61,14 @@
61 61
       </div>
62 62
     </div>
63 63
     <div style="width: 100%; height: 400px">
64
-      <emap style="width: 100%; height: 100%;"/>
64
+<!--      <emap style="width: 100%; height: 100%;"/>-->
65
+      <emap
66
+        class="map"
67
+        :labelFormat="mapLabelFormat"
68
+        :mapData="mapData"
69
+        id="map"
70
+        :tooltip="mapTooltipFormat"
71
+      />
65 72
     </div>
66 73
   </div>
67 74
 </template>
@@ -145,7 +152,8 @@ export default {
145 152
         ywc: 333,
146 153
         mzl: 444,
147 154
         rksk: 555
148
-      }]
155
+      }],
156
+      mapData: {}
149 157
     }
150 158
   },
151 159
   mounted() {
@@ -154,6 +162,45 @@ export default {
154 162
 
155 163
   },
156 164
   methods: {
165
+    mapLabelFormat() {
166
+      return {
167
+        show: true,
168
+        formatter: (param) => {
169
+          const data = this.mapData[param.data.code]
170
+          return [`{name|${param.name}}`, `{value|${data.shje}亿元}  {${data.tb>=0?'tbUp':'tbDown'}|${Math.abs(data.tb)}%}{${data.tb>=0?'up':'down'}|}`].join('\n')
171
+        },
172
+        padding: [5, 5],
173
+        // backgroundColor: {
174
+        //   image: '../../../../static/img/u231.png'
175
+        // },
176
+        rich: {
177
+          name: {color: '#ffffff', padding: [2,2,10,2]},
178
+          value: {color: '#FFD074'},
179
+          tbUp: {color: '#FF0060'},
180
+          tbDown: {color: '#66CC33'},
181
+          up: {backgroundColor: {image: '../../../../static/img/arrow-up.png'}, width: 30, height: 30},
182
+          down: {backgroundColor: {image: '../../../../static/img/arrow-down.png'}, width: 30, height: 30}
183
+        }
184
+      }
185
+    },
186
+
187
+    mapTooltipFormat({ data }) {
188
+      return ''
189
+      //   const zoneData = this.mapData[data.code];
190
+      //   return `<div class='map-tooltip back-mid-map-tooltip'>
191
+      //     <div class='zone-name'>${data.name}</div>
192
+      //     <div class="zone-value">
193
+      //       <div class="je-value">${zoneData.shje}万元</div>
194
+      //       <div class=${zoneData.tb >= 0 ? "red" : "green"}>${Math.abs(
195
+      //     zoneData.tb
196
+      //   )}%<img src=${
197
+      //     zoneData.tb >= 0
198
+      //       ? "../../../../static/img/arrow-up.png"
199
+      //       : "../../../../static/img/arrow-down.png"
200
+      //   } /></div>
201
+      //     </div>
202
+      //   </div>`;
203
+    },
157 204
     lineTooltipFormat(params) {
158 205
       const data = params[0].data;
159 206
       return `<div class="line-tooltip">
@@ -499,5 +546,11 @@ export default {
499 546
     }
500 547
   }
501 548
 }
549
+.map {
550
+  margin-top: 20px;
551
+  width: 100%;
552
+  flex: 1;
553
+  height: 100%;
554
+}
502 555
 
503 556
 </style>

+ 0 - 4
src/pages/index/components/static_resource.vue

@@ -137,10 +137,6 @@ export default {
137 137
 }
138 138
 </script>
139 139
 <style  lang="scss" scoped>
140
-// 设置鼠标经过时背景颜色
141
-///deep/.el-table tbody tr:hover>td{
142
-//  background-color:#FFFFF0!important;
143
-//}
144 140
 .body-wrapper {
145 141
   padding: 20px;
146 142
   background: #0c0c0c;

+ 0 - 6
src/pages/index/index.js

@@ -4,12 +4,6 @@ import "element-ui/lib/theme-chalk/index.css"
4 4
 import "../../assets/css/global.css"
5 5
 import "../../assets/css/element_ui.css"
6 6
 import mixins from '../../mixins'
7
-// import "../../assets/css/common.scss"
8
-// import "../../assets/css/common-map.scss"
9
-// import "../../assets/css/cus-table.scss"
10
-// import "../../assets/css/cus-table.xt.scss"
11
-// import "../../assets/css/reset-button.scss"
12
-// import "../../assets/css/snapshot.scss"
13 7
 import index from './index.vue'
14 8
 import router from "../../router/index"
15 9
 import config from '@/config/index';

+ 3 - 1
src/pages/index/layouts/indexLayout.vue

@@ -36,6 +36,8 @@ export default {
36 36
       isCollapse: false,//默认为不折叠菜单
37 37
       foldphoto: "el-icon-s-unfold",//菜单展开图标
38 38
       menu: [
39
+        {name: 'demo1', url: '/demo1'},
40
+        {name: 'demo2', url: '/demo2'},
39 41
         {name: '静态资源', url: '/static_resource'},
40 42
         {name: '记录查询', url: '/record_query'},
41 43
         {name: '停车运行监管', url: '/park_monitor'},
@@ -71,7 +73,7 @@ export default {
71 73
 <style scoped>
72 74
 .home-wrapper {
73 75
   position: absolute;
74
-// top: 60px;
76
+  top: 60px;
75 77
   width: 100%;
76 78
   height: 100%;
77 79
   background-size: cover;

+ 10 - 0
src/router/index.js

@@ -15,6 +15,16 @@ export default new Router({
15 15
       path: "/index",
16 16
       component: () => import("../pages/index/layouts/indexLayout.vue"),
17 17
       children: [
18
+        {
19
+          name: "demo1",
20
+          path: "/demo1",
21
+          component: () => import("../pages/index/components/demo1.vue")
22
+        },
23
+        {
24
+          name: "demo2",
25
+          path: "/demo2",
26
+          component: () => import("../pages/index/components/demo2.vue")
27
+        },
18 28
         {
19 29
           name: "static_resource",
20 30
           path: "/static_resource",

File diff suppressed because it is too large
+ 19 - 0
src/util/luoheJson.js