From 29cb0b5b6db39f426ea0ea792d08f325cff395fc Mon Sep 17 00:00:00 2001
From: zpzgiser <45806316+zpzgiser@users.noreply.github.com>
Date: Sat, 17 Jul 2021 01:45:51 +0800
Subject: [PATCH] 首页内容部分更改,加保安单位经营情况研判模块页面
---
package-lock.json | 23
public/img/bajgxt/u235.png | 0
public/img/bajgxt/u4.png | 0
public/img/bajgxt/u256.png | 0
src/views/securityUnitOperation/economicAnalysis.vue | 7
public/img/bajgxt/u230.png | 0
src/views/home/index.scss | 655 ++++++++++--------
src/views/securityUnitOperation/securityEchart.js | 215 ++++++
public/img/bajgxt/u251.png | 0
src/views/home/index.vue | 876 +++++++++++++------------
package.json | 7
src/views/home/indexEchart.js | 10
src/views/securityUnitOperation/economicTable.vue | 7
src/views/securityUnitOperation/operationAnalysis.vue | 208 +++++
src/views/securityUnitOperation/operationTable.vue | 77 ++
15 files changed, 1,344 insertions(+), 741 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 9834b0f..8d9d4bc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1012,7 +1012,7 @@
},
"@mapbox/jsonlint-lines-primitives": {
"version": "2.0.2",
- "resolved": "https://registry.npm.taobao.org/@mapbox/jsonlint-lines-primitives/download/@mapbox/jsonlint-lines-primitives-2.0.2.tgz",
+ "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
"integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ="
},
"@mapbox/mapbox-gl-style-spec": {
@@ -1032,12 +1032,12 @@
},
"@mapbox/point-geometry": {
"version": "0.1.0",
- "resolved": "https://registry.npm.taobao.org/@mapbox/point-geometry/download/@mapbox/point-geometry-0.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
"integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI="
},
"@mapbox/unitbezier": {
"version": "0.0.0",
- "resolved": "https://registry.npm.taobao.org/@mapbox/unitbezier/download/@mapbox/unitbezier-0.0.0.tgz",
+ "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz",
"integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4="
},
"@mrmlnc/readdir-enhanced": {
@@ -5246,7 +5246,7 @@
},
"csscolorparser": {
"version": "1.0.3",
- "resolved": "https://registry.npm.taobao.org/csscolorparser/download/csscolorparser-1.0.3.tgz",
+ "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
"integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs="
},
"cssesc": {
@@ -6801,6 +6801,11 @@
}
}
}
+ },
+ "file-saver": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
+ "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
},
"filesize": {
"version": "3.6.1",
@@ -11679,7 +11684,7 @@
},
"rw": {
"version": "1.3.3",
- "resolved": "https://registry.npm.taobao.org/rw/download/rw-1.3.3.tgz",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
"integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
},
"rx-lite": {
@@ -12349,12 +12354,12 @@
},
"sort-asc": {
"version": "0.1.0",
- "resolved": "https://registry.npm.taobao.org/sort-asc/download/sort-asc-0.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz",
"integrity": "sha1-q3md9h/HPqCVbHnEtTHtHp53J+k="
},
"sort-desc": {
"version": "0.1.1",
- "resolved": "https://registry.npm.taobao.org/sort-desc/download/sort-desc-0.1.1.tgz",
+ "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz",
"integrity": "sha1-GYuMDN6wlcRjNBhh45JdTuNZqe4="
},
"sort-keys": {
@@ -12368,7 +12373,7 @@
},
"sort-object": {
"version": "0.3.2",
- "resolved": "https://registry.npm.taobao.org/sort-object/download/sort-object-0.3.2.tgz",
+ "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz",
"integrity": "sha1-mODRme3kDgfGGoRAPGHWw7KQ+eI=",
"requires": {
"sort-asc": "^0.1.0",
@@ -13970,7 +13975,7 @@
},
"webfont-matcher": {
"version": "1.1.0",
- "resolved": "https://registry.npm.taobao.org/webfont-matcher/download/webfont-matcher-1.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/webfont-matcher/-/webfont-matcher-1.1.0.tgz",
"integrity": "sha1-mM6VCXsp4x++czBT4Q5XFkLRxsc="
},
"webpack": {
diff --git a/package.json b/package.json
index da5b6d0..c6e557a 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"test:e2e": "vue-cli-service test:e2e"
},
"dependencies": {
+ "@supermap/iclient-ol": "^10.1.2",
"avue-plugin-ueditor": "^0.1.4",
"axios": "^0.18.0",
"babel-polyfill": "^6.26.0",
@@ -18,6 +19,7 @@
"crypto-js": "^4.0.0",
"echarts": "^5.1.2",
"element-ui": "^2.15.1",
+ "file-saver": "^2.0.5",
"js-base64": "^2.5.1",
"js-cookie": "^2.2.0",
"js-md5": "^0.7.3",
@@ -25,15 +27,14 @@
"node-gyp": "^5.0.6",
"nprogress": "^0.2.0",
"ol": "^6.5.0",
+ "olcs": "^2.12.0",
"portfinder": "^1.0.23",
"script-loader": "^0.7.2",
"vue": "^2.6.10",
"vue-axios": "^2.1.2",
"vue-i18n": "^8.7.0",
"vue-router": "^3.0.1",
- "vuex": "^3.1.1",
- "@supermap/iclient-ol": "^10.1.2",
- "olcs": "^2.12.0"
+ "vuex": "^3.1.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.1.1",
diff --git a/public/img/bajgxt/u230.png b/public/img/bajgxt/u230.png
new file mode 100644
index 0000000..6f4cd70
--- /dev/null
+++ b/public/img/bajgxt/u230.png
Binary files differ
diff --git a/public/img/bajgxt/u235.png b/public/img/bajgxt/u235.png
new file mode 100644
index 0000000..9c7a5d2
--- /dev/null
+++ b/public/img/bajgxt/u235.png
Binary files differ
diff --git a/public/img/bajgxt/u251.png b/public/img/bajgxt/u251.png
new file mode 100644
index 0000000..58b2332
--- /dev/null
+++ b/public/img/bajgxt/u251.png
Binary files differ
diff --git a/public/img/bajgxt/u256.png b/public/img/bajgxt/u256.png
new file mode 100644
index 0000000..6181aa4
--- /dev/null
+++ b/public/img/bajgxt/u256.png
Binary files differ
diff --git a/public/img/bajgxt/u4.png b/public/img/bajgxt/u4.png
new file mode 100644
index 0000000..649c474
--- /dev/null
+++ b/public/img/bajgxt/u4.png
Binary files differ
diff --git a/src/views/home/index.scss b/src/views/home/index.scss
index 7728c52..64302d2 100644
--- a/src/views/home/index.scss
+++ b/src/views/home/index.scss
@@ -4,334 +4,383 @@
// width: 1920px;
// height: 1080px;
background: url("../../../public/img/bajgxt/backimg.png") no-repeat;
- background-size: cover;
-}
-.head-title {
- background: url("../../../public/img/bajgxt/title2.png") no-repeat;
- background-size: cover;
- width: 100%;
- text-align: center;
- position: relative;
- span {
- font-family: "Arial Normal", "Arial", sans-serif;
- font-size: 36px;
- color: #ffffff;
- text-align: center;
- line-height: 77px;
- }
- img {
- position: absolute;
- margin-top: 22px;
- margin-left: 29%;
- }
-}
-.side {
- width: 440px;
- height: 100%;
-}
-.content {
- margin: 5px 20px 20px 20px;
- // height: calc(100% - 77px);
- // width: 100%;
- height: calc(100% - 102px);
- width: calc(100% - 40px);
- display: flex;
- .left,
- .right {
- @extend .side;
- }
- .middle {
- width: calc(100% - 930px);
- height: 100%;
- margin: 0px 25px;
- position: relative;
- }
-}
-.leftimg {
- background: url("../../../public/img/bajgxt/left1.png") no-repeat;
- background-size: contain;
- width: 100%;
- height: 260px;
-}
-.echartClass {
- height: 100%;
- width: 100%;
- height: calc(100% - 90px);
-}
-.left {
- .left1 {
- background: url("../../../public/img/bajgxt/left1.png") no-repeat;
- background-size: contain;
- width: 440px;
- height: 533px;
- #left1Echart {
- @extend .echartClass;
- }
- }
- .left2 {
- background: url("../../../public/img/bajgxt/left1.png") no-repeat;
- background-size: 440px 392px;
- height: 392px;
- width: 440px;
- margin-top: 25px;
- #left2Echart {
- @extend .echartClass;
- }
- }
-}
-.right {
- .right1 {
- background: url("../../../public/img/bajgxt/rightImg.png") no-repeat;
- background-size: 440px 251px;
- width: 440px;
- height: 251px;
- position: relative;
- #right1Echart {
- @extend .echartClass;
- }
- }
- .right2 {
- background: url("../../../public/img/bajgxt/rightImg.png") no-repeat;
- background-size: 440px 251px;
- width: 440px;
- height: 251px;
- margin-top: 30px;
- position: relative;
- #right2Echart {
- @extend .echartClass;
- }
- }
- .right3 {
- background: url("../../../public/img/bajgxt/left1.png") no-repeat;
- background-size: 440px 392px;
- height: 392px;
- width: 440px;
- margin-top: 25px;
- #right3Echart {
- @extend .echartClass;
- }
- }
-}
-.title-pane {
- display: inline-flex;
- height: 55px;
- img {
- width: 30px;
- height: 30px;
- margin: 15px 10px 0px 10px;
- }
- span {
- line-height: 68px;
- color: #fff;
- font-size: 20px;
- }
-}
-.title-pane1 {
- display: inline-flex;
- height: 44px;
- img {
- width: 30px;
- height: 30px;
- margin: 10px 10px 0px 10px;
- }
- span {
- line-height: 55px;
- color: #fff;
- font-size: 20px;
- }
-}
+ background-size: 100% 100%;
-.middle {
- .mapimg {
- background: url("../../../public/img/bajgxt/mapimg.png") no-repeat;
+ .head-title {
+ background: url("../../../public/img/bajgxt/title2.png") no-repeat;
background-size: 100% 100%;
- height: 543px;
width: 100%;
- #map {
- width: calc(100% - 40px);
- height: calc(100% - 40px);
- margin: 0px 20px;
- top: 20px;
+ height: 77px;
+ text-align: center;
+ position: relative;
+ span {
+ font-family: "Arial Normal", "Arial", sans-serif;
+ font-size: 36px;
+ color: #ffffff;
+ text-align: center;
+ line-height: 77px;
+ }
+ span:nth-child(2) {
+ position: absolute;
+ margin-top: 22px;
+ margin-left: 26%;
+ font-size: 22px;
+ cursor: pointer;
+ &:hover {
+ color: #90cef0;
+ }
+ }
+ img {
+ position: absolute;
+ margin-top: 22px;
+ margin-left: 29%;
+ }
+ }
+ .side {
+ width: 27%;
+ height: 100%;
+ }
+ .content {
+ margin: 5px 20px 20px 20px;
+ // height: calc(100% - 77px);
+ // width: 100%;
+ height: calc(100% - 102px);
+ width: calc(100% - 40px);
+ display: flex;
+ .left,
+ .right {
+ @extend .side;
+ }
+ .middle {
+ width: calc(46% - 50px);
+ height: 100%;
+ margin: 0px 25px;
position: relative;
}
}
-
- .table {
- margin-top: 25px;
+ .leftimg {
+ background: url("../../../public/img/bajgxt/left1.png") no-repeat;
+ background-size: contain;
width: 100%;
- height: 392px;
- background: url("../../../public/img/bajgxt/table.png") no-repeat;
- background-size: 100% 100%;
- position: relative;
- .table-title {
- background: url("../../../public/img/bajgxt/tabletitle.png") no-repeat;
+ height: 260px;
+ }
+ .echartClass {
+ height: 100%;
+ width: 100%;
+ height: calc(100% - 70px);
+ }
+ .left {
+ .left1 {
+ background: url("../../../public/img/bajgxt/left1.png") no-repeat;
+ height: 60%;
+ width: 100%;
background-size: 100% 100%;
- position: absolute;
- width: 267px;
- margin-top: -13px;
- height: 50px;
- margin-left: 39%;
+ #left1Echart {
+ @extend .echartClass;
+ }
+ }
+ .left2 {
+ background: url("../../../public/img/bajgxt/left1.png") no-repeat;
+ height: calc(40% - 25px);
+ width: 100%;
+ background-size: 100% 100%;
+ margin-top: 25px;
+ #left2Echart {
+ @extend .echartClass;
+ }
+ }
+ }
+ .right {
+ .right1 {
+ background: url("../../../public/img/bajgxt/rightImg.png") no-repeat;
+ background-size: 100% 100%;
+ width: 100%;
+ height: 28%;
+ position: relative;
+ #right1Echart {
+ @extend .echartClass;
+ }
+ }
+ .right2 {
+ background: url("../../../public/img/bajgxt/rightImg.png") no-repeat;
+ background-size: 100% 100%;
+ width: 100%;
+ height: 28%;
+ margin-top: 30px;
+ position: relative;
+ #right2Echart {
+ @extend .echartClass;
+ }
+ }
+ .right3 {
+ background: url("../../../public/img/bajgxt/left1.png") no-repeat;
+ height: calc(40% - 25px);
+ width: 100%;
+ background-size: 100% 100%;
+ margin-top: 25px;
+ #right3Echart {
+ @extend .echartClass;
+ }
+ }
+ }
+ .title-pane {
+ display: inline-flex;
+ height: 55px;
+ img {
+ width: 30px;
+ height: 30px;
+ margin: 15px 10px 0px 10px;
+ }
+ span {
+ line-height: 68px;
color: #fff;
font-size: 20px;
- text-align: center;
- line-height: 54px;
}
- .lefttop {
- background: url("../../../public/img/bajgxt/lefttop.png") no-repeat;
+ }
+ .title-pane1 {
+ display: inline-flex;
+ height: 44px;
+ img {
+ width: 30px;
+ height: 30px;
+ margin: 10px 10px 0px 10px;
+ }
+ span {
+ line-height: 55px;
+ color: #fff;
+ font-size: 20px;
+ }
+ }
+
+ .middle {
+ .mapimg {
+ background: url("../../../public/img/bajgxt/mapimg.png") no-repeat;
background-size: 100% 100%;
- width: 44px;
- height: 56px;
- position: absolute;
- margin-left: -6px;
- margin-top: -7px;
+ height: 60%;
+ width: 100%;
+ #map {
+ width: calc(100% - 40px);
+ height: calc(100% - 40px);
+ margin: 0px 20px;
+ top: 20px;
+ position: relative;
+ }
}
- .leftbottom {
- background: url("../../../public/img/bajgxt/leftbottom.png") no-repeat;
+
+ .table {
+ margin-top: 25px;
+ height: calc(40% - 25px);
+ width: 100%;
+ background: url("../../../public/img/bajgxt/table.png") no-repeat;
background-size: 100% 100%;
- width: 44px;
- height: 56px;
- position: absolute;
- margin-left: -6px;
- margin-top: 340px;
- }
- .righttop {
- background: url("../../../public/img/bajgxt/righttop.png") no-repeat;
- background-size: 100% 100%;
- width: 44px;
- height: 56px;
- position: absolute;
- margin-left: calc(100% - 39px);
- margin-top: -7px;
- }
- .rightbottom {
- background: url("../../../public/img/bajgxt/rightbottom.png") no-repeat;
- background-size: 100% 100%;
- width: 44px;
- height: 56px;
- position: absolute;
- margin-left: calc(100% - 39px);
- margin-top: 340px;
+ position: relative;
+ .table-title {
+ background: url("../../../public/img/bajgxt/tabletitle.png") no-repeat;
+ background-size: 100% 100%;
+ position: absolute;
+ width: 267px;
+ margin-top: -13px;
+ height: 50px;
+ margin-left: calc(50% - 135.5px);
+ color: #fff;
+ font-size: 20px;
+ text-align: center;
+ line-height: 54px;
+ }
+ .lefttop {
+ background: url("../../../public/img/bajgxt/lefttop.png") no-repeat;
+ background-size: 100% 100%;
+ width: 44px;
+ height: 56px;
+ position: absolute;
+ margin-left: -6px;
+ margin-top: -7px;
+ }
+ .leftbottom {
+ background: url("../../../public/img/bajgxt/leftbottom.png") no-repeat;
+ background-size: 100% 100%;
+ width: 44px;
+ height: 56px;
+ position: absolute;
+ margin-left: -6px;
+ margin-top: calc(40% - 88px);
+ }
+ .righttop {
+ background: url("../../../public/img/bajgxt/righttop.png") no-repeat;
+ background-size: 100% 100%;
+ width: 44px;
+ height: 56px;
+ position: absolute;
+ margin-left: calc(100% - 39px);
+ margin-top: -7px;
+ }
+ .rightbottom {
+ background: url("../../../public/img/bajgxt/rightbottom.png") no-repeat;
+ background-size: 100% 100%;
+ width: 44px;
+ height: 56px;
+ position: absolute;
+ margin-left: calc(100% - 39px);
+ margin-top: calc(40% - 88px);
+ }
}
}
-}
-.el-table {
- width: calc(100% - 40px);
- height: calc(100% - 70px);
- margin: 0px 20px 15px;
- top: 60px;
-}
-/deep/ .el-table--striped .el-table__body tr.el-table__row--striped td {
- background: #18458f;
-}
-/deep/ .el-table--enable-row-transition .el-table__body td,
-/deep/ .el-table th,
-.el-table tr {
- background: #3457b1;
-}
-/deep/ .el-table .cell {
- color: #fff;
-}
-/deep/ .el-table td,
-.el-table th.is-leaf {
- border-bottom-color: transparent;
-}
-/deep/.el-table--enable-row-hover .el-table__body tr:hover > td {
- background-color: #b0caf3;
-}
-/deep/ .el-input__inner {
- height: 27px;
- color: #fff;
- font-size: 14px;
- background-color: transparent;
- border-color: transparent;
- border-radius: 2px;
-}
-/deep/ .el-input {
- width: 94px;
-}
-/deep/ .el-select {
- line-height: 55px;
- position: absolute;
- right: 14px;
-}
-/deep/ .el-input__icon {
- line-height: 56px;
-}
-/deep/ .el-select:hover .el-input__inner,
-/deep/ .el-select .el-input.is-focus .el-input__inner {
- border: none;
-}
-/deep/ .el-table,
-/deep/ .el-table__expanded-cell,
-/deep/ .el-table--border::after,
-/deep/ .el-table--group::after,
-/deep/ .el-table::before {
- background-color: transparent;
-}
-.card-text {
- height: 30px;
- padding: 8px 10px;
- color: #fff;
- font-size: 14px;
- text-align: center;
- span:nth-child(2) {
- color: red;
- font-size: 21px;
- margin: 0px 10px;
- font-weight: bold;
+ .el-table {
+ width: calc(100% - 40px);
+ height: calc(100% - 70px);
+ margin: 0px 20px 15px;
+ top: 60px;
}
- span:nth-child(4) {
- margin-left: 15px;
+ /deep/ .el-table--striped .el-table__body tr.el-table__row--striped td {
+ background: #18458f;
}
- span:nth-child(5) {
- margin: 0px 10px;
- color: red;
- font-size: 20px;
+ /deep/ .el-table--enable-row-transition .el-table__body td,
+ /deep/ .el-table th,
+ .el-table tr {
+ background: #3457b1;
}
-}
-.mapBtn,
-.mapBtn:nth-child(2),
-.mapBtn:nth-child(3) {
- position: absolute;
- z-index: 99;
- color: #fff;
- background: #4162a2;
- margin-top: 38px;
- margin-left: 85%;
- border-radius: 11px;
- height: 43px;
- display: inline-flex;
- width: 107px;
- cursor: pointer;
- img {
- margin: 8px 3px 8px 5px;
- height: 28px;
- width: 30px;
+ /deep/ .el-table .cell {
+ color: #fff;
}
- .text {
- width: 100px;
+ /deep/ .el-table td,
+ .el-table th.is-leaf {
+ border-bottom-color: transparent;
+ }
+ /deep/.el-table--enable-row-hover .el-table__body tr:hover > td {
+ background-color: #b0caf3;
+ }
+ /deep/ .el-input__inner {
+ height: 27px;
+ color: #fff !important;
+ font-size: 14px;
+ background-color: transparent !important;
+ border-color: transparent !important;
+ border-radius: 2px;
+ }
+ /deep/ .el-input {
+ width: 94px;
+ }
+ /deep/ .el-select {
+ line-height: 55px;
+ position: absolute;
+ right: 14px;
+ }
+ /deep/ .el-input__icon {
+ line-height: 56px;
+ }
+ /deep/ .el-select:hover .el-input__inner,
+ /deep/ .el-select .el-input.is-focus .el-input__inner {
+ border: none;
+ }
+ /deep/ .el-table,
+ /deep/ .el-table__expanded-cell,
+ /deep/ .el-table--border::after,
+ /deep/ .el-table--group::after,
+ /deep/ .el-table::before {
+ background-color: transparent;
+ }
+ .card-text {
+ height: 30px;
+ padding: 8px 10px;
+ color: #fff;
+ font-size: 14px;
text-align: center;
- margin: 3px;
- span:nth-child(1) {
- width: 100%;
- display: block;
- font-size: 10px;
- }
span:nth-child(2) {
- width: 100%;
- display: block;
color: red;
- font-size: 17px;
+ font-size: 21px;
+ margin: 0px 10px;
font-weight: bold;
}
+ span:nth-child(4) {
+ margin-left: 15px;
+ }
+ span:nth-child(5) {
+ margin: 0px 10px;
+ color: red;
+ font-size: 20px;
+ }
}
- &:hover {
- box-shadow: 0px 0px 10px #568df3;
+ .right-content {
+ height: calc(100% - 44px);
+ width: 100%;
}
-}
-.mapBtn:nth-child(2) {
- margin-top: 100px;
-}
-.mapBtn:nth-child(3) {
- margin-top: 160px;
+ .card-list {
+ margin: 20px 60px;
+ display: flex;
+ height: 55px;
+ line-height: 55px;
+ img:first-child {
+ height: 55px;
+ }
+ img:nth-child(2) {
+ position: absolute;
+ margin-left: 13px;
+ width: 35px;
+ height: 35px;
+ margin-top: 9px;
+ }
+ span:nth-child(3) {
+ color: red;
+ font-size: 30px;
+ display: block;
+ width: 71px;
+ margin: 0px 20px;
+ }
+ span:nth-child(4) {
+ color: #7ff3f4;
+ font-size: 18px;
+ display: block;
+ width: 129px;
+ }
+ }
+ .mapBtn,
+ .mapBtn:nth-child(2),
+ .mapBtn:nth-child(3) {
+ position: absolute;
+ z-index: 99;
+ color: #fff;
+ background: #4162a2;
+ margin-top: 38px;
+ margin-left: calc(100% - 140px);
+ border-radius: 11px;
+ height: 43px;
+ display: inline-flex;
+ width: 107px;
+ cursor: pointer;
+ img {
+ margin: 8px 3px 8px 5px;
+ height: 28px;
+ width: 30px;
+ }
+ .text {
+ width: 100px;
+ text-align: center;
+ margin: 3px;
+ span:nth-child(1) {
+ width: 100%;
+ display: block;
+ font-size: 10px;
+ }
+ span:nth-child(2) {
+ width: 100%;
+ display: block;
+ color: red;
+ font-size: 17px;
+ font-weight: bold;
+ }
+ }
+ &:hover {
+ box-shadow: 0px 0px 10px #568df3;
+ }
+ }
+ .mapBtn:nth-child(2) {
+ margin-top: 100px;
+ }
+ .mapBtn:nth-child(3) {
+ margin-top: 160px;
+ }
+ /deep/ .el-table__body-wrapper {
+ overflow: auto;
+ height: 100%;
+ }
}
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index 3ed6435..083b542 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -1,155 +1,189 @@
<template>
- <div class="bajgxt-home">
- <div class="head-title">
- <span>保安监管系统可视化平台</span>
- <img src="../../../public/img/bajgxt/linkimg.png"
+ <div class="bajgxt-home">
+ <div class="head-title">
+ <span>保安监管系统可视化平台</span>
+ <!-- <img src="../../../public/img/bajgxt/linkimg.png"
@click.stop="goSystemHome"
- title="进入系统" />
- </div>
- <div class="content">
- <div class="left">
- <div class="left1">
- <div class="title-pane">
- <img src="../../../public/img/bajgxt/icon1.png" />
- <span>业务对象统计--单位</span>
- </div>
- <div id="left1Echart"></div>
- </div>
- <div class="left2">
- <div class="title-pane1">
- <img src="../../../public/img/bajgxt/icon1.png" />
- <span>保安员持证情况</span>
- </div>
- <div id="left2Echart"></div>
- </div>
- </div>
- <div class="middle">
- <div class="mapimg">
- <!-- <div></div> -->
- <div class="mapBtn"
- @click="getTableData('car')">
- <img src="../../../public/img/bajgxt/car.png"
- alt="" />
- <div class="text">
- <span>押运车辆</span>
- <span>700</span>
- </div>
- </div>
- <div class="mapBtn"
- @click="getTableData('peo')">
- <img src="../../../public/img/bajgxt/peo.png"
- alt="" />
- <div class="text">
- <span>保安员</span>
- <span>700</span>
- </div>
- </div>
- <div class="mapBtn"
- @click="getTableData('gun')">
- <img src="../../../public/img/bajgxt/gun.png"
- alt="" />
- <div class="text">
- <span>枪支</span>
- <span>700</span>
- </div>
- </div>
- <div id="map"></div>
- </div>
- <div class="table">
- <div class="table-title">武装押运实时定位</div>
- <div class="lefttop"></div>
- <div class="leftbottom"></div>
- <div class="righttop"></div>
- <div class="rightbottom"></div>
- <el-table :data="tableData"
- stripe>
- <el-table-column type="index"
- label="序号"
- width="50">
- </el-table-column>
- <el-table-column v-if="curTableType === 'car'"
- prop="carNum"
- label="押运车辆车牌号"
- width="180">
- </el-table-column>
- <el-table-column v-if="curTableType === 'peo'"
- prop="name"
- label="押运人员名称"
- width="180">
- </el-table-column>
- <el-table-column v-if="curTableType === 'gun'"
- prop="number"
- label="枪支编号"
- width="180">
- </el-table-column>
- <el-table-column prop="location"
- label="实时位置">
- </el-table-column>
- <el-table-column prop="company"
- label="所属公司"> </el-table-column>
- <el-table-column v-if="curTableType === 'car'"
- prop="linkman"
- label="联系人">
- </el-table-column>
- <el-table-column v-if="curTableType === 'gun'"
- prop="linkman"
- label="负责人">
- </el-table-column>
- <el-table-column prop="tel"
- label="联系电话"> </el-table-column>
- <el-table-column v-if="curTableType === 'peo'"
- prop="bz"
- label="备注">
- </el-table-column>
- </el-table>
- </div>
- </div>
- <div class="right">
- <div class="right1">
- <div class="title-pane1">
- <img src="../../../public/img/bajgxt/icon2.png" />
- <span>保安员预警统计</span>
- <el-select v-model="value1">
- <el-option v-for="item in options1"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </div>
- <div class="card-text">
- <span>现实表现差</span><span>902,432</span><span>起</span><span>审查情况</span><span>22222</span><span>起</span>
- </div>
- <div id="right1Echart"></div>
- </div>
- <div class="right2">
- <div class="title-pane1">
- <img src="../../../public/img/bajgxt/icon2.png" />
- <span>保安公司预警统计</span>
- <el-select v-model="value2"
- placeholder="请选择">
- <el-option v-for="item in options2"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </div>
- <div class="card-text">
- <span>未缴纳社保情况</span><span>902,432</span><span>起</span><span>未持证情况</span><span>22222</span><span>起</span>
- </div>
- <div id="right2Echart"></div>
- </div>
- <div class="right3">
- <div class="title-pane1">
- <img src="../../../public/img/bajgxt/icon3.png" />
- <span>分局预警占比情况</span>
- </div>
- <div id="right3Echart"></div>
- </div>
- </div>
- </div>
+ title="进入系统" /> -->
+ <span @click.stop="goSystemHome">进入系统</span>
</div>
+ <div class="content">
+ <div class="left">
+ <div class="left1">
+ <div class="title-pane">
+ <img src="../../../public/img/bajgxt/icon1.png" />
+ <span>业务对象统计--单位</span>
+ </div>
+ <div id="left1Echart"></div>
+ </div>
+ <div class="left2">
+ <div class="title-pane1">
+ <img src="../../../public/img/bajgxt/icon1.png" />
+ <span>保安员持证情况</span>
+ </div>
+ <div id="left2Echart"></div>
+ </div>
+ </div>
+ <div class="middle">
+ <div class="mapimg">
+ <!-- <div></div> -->
+ <div class="mapBtn" @click="getTableData('car')">
+ <img src="../../../public/img/bajgxt/car.png" alt="" />
+ <div class="text">
+ <span>押运车辆</span>
+ <span>700</span>
+ </div>
+ </div>
+ <div class="mapBtn" @click="getTableData('peo')">
+ <img src="../../../public/img/bajgxt/peo.png" alt="" />
+ <div class="text">
+ <span>保安员</span>
+ <span>700</span>
+ </div>
+ </div>
+ <div class="mapBtn" @click="getTableData('gun')">
+ <img src="../../../public/img/bajgxt/gun.png" alt="" />
+ <div class="text">
+ <span>枪支</span>
+ <span>700</span>
+ </div>
+ </div>
+ <div id="map"></div>
+ </div>
+ <div class="table">
+ <div class="table-title">武装押运实时定位</div>
+ <div class="lefttop"></div>
+ <div class="leftbottom"></div>
+ <div class="righttop"></div>
+ <div class="rightbottom"></div>
+ <el-table :data="tableData" stripe>
+ <el-table-column type="index" label="序号" width="50">
+ </el-table-column>
+ <el-table-column
+ v-if="curTableType === 'car'"
+ prop="carNum"
+ label="押运车辆车牌号"
+ width="180"
+ >
+ </el-table-column>
+ <el-table-column
+ v-if="curTableType === 'peo'"
+ prop="name"
+ label="押运人员名称"
+ width="180"
+ >
+ </el-table-column>
+ <el-table-column
+ v-if="curTableType === 'gun'"
+ prop="number"
+ label="枪支编号"
+ width="180"
+ >
+ </el-table-column>
+ <el-table-column prop="location" label="实时位置">
+ </el-table-column>
+ <el-table-column prop="company" label="所属公司"> </el-table-column>
+ <el-table-column
+ v-if="curTableType === 'car'"
+ prop="linkman"
+ label="联系人"
+ >
+ </el-table-column>
+ <el-table-column
+ v-if="curTableType === 'gun'"
+ prop="linkman"
+ label="负责人"
+ >
+ </el-table-column>
+ <el-table-column prop="tel" label="联系电话"> </el-table-column>
+ <el-table-column
+ v-if="curTableType === 'peo'"
+ prop="bz"
+ label="备注"
+ >
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ <div class="right">
+ <div class="right1">
+ <div class="title-pane1">
+ <img src="../../../public/img/bajgxt/icon2.png" />
+ <span>保安员预警统计</span>
+ <el-select v-model="value1">
+ <el-option
+ v-for="item in options1"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ <div class="right-content">
+ <div class="card-list">
+ <img src="../../../public/img/bajgxt/u4.png" />
+ <img src="../../../public/img/bajgxt/u256.png" />
+ <span>45</span>
+ <span>现实表现差</span>
+ </div>
+ <div class="card-list">
+ <img src="../../../public/img/bajgxt/u4.png" />
+ <img src="../../../public/img/bajgxt/u230.png" />
+ <span>76</span>
+ <span>资格审查</span>
+ </div>
+ </div>
+ <!-- <div class="card-text"> -->
+ <!-- <span>现实表现差</span><span>902,432</span><span>起</span
+ ><span>审查情况</span><span>22222</span><span>起</span> -->
+ <!-- </div> -->
+ <!-- <div id="right1Echart"></div> -->
+ </div>
+ <div class="right2">
+ <div class="title-pane1">
+ <img src="../../../public/img/bajgxt/icon2.png" />
+ <span>保安公司预警统计</span>
+ <el-select v-model="value2" placeholder="请选择">
+ <el-option
+ v-for="item in options2"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ <div class="right-content">
+ <div class="card-list">
+ <img src="../../../public/img/bajgxt/u4.png" />
+ <img src="../../../public/img/bajgxt/u235.png" />
+ <span>21</span>
+ <span>未缴纳社保</span>
+ </div>
+ <div class="card-list">
+ <img src="../../../public/img/bajgxt/u4.png" />
+ <img src="../../../public/img/bajgxt/u251.png" />
+ <span>26</span>
+ <span>未持证</span>
+ </div>
+ </div>
+ <!-- <div class="card-text"> -->
+ <!-- <span>未缴纳社保情况</span><span>902,432</span><span>起</span
+ ><span>未持证情况</span><span>22222</span><span>起</span> -->
+ <!-- </div> -->
+ <!-- <div id="right2Echart"></div> -->
+ </div>
+ <div class="right3">
+ <div class="title-pane1">
+ <img src="../../../public/img/bajgxt/icon3.png" />
+ <span>分局预警占比情况</span>
+ </div>
+ <div id="right3Echart"></div>
+ </div>
+ </div>
+ </div>
+ </div>
</template>
<script>
@@ -169,289 +203,289 @@
import axios from "../../router/axios";
import { securityTotal, holderNum, securityPer } from "../../api/index/index";
export default {
- data () {
- return {
- map: null,
- curTableType: "car",
- tableData: [],
- value1: "1",
- options1: [
- {
- value: "1",
- label: "南昌市"
- },
- {
- value: "2",
- label: "赣州市"
- }
- ],
- value2: "1",
- options2: [
- {
- value: "1",
- label: "南昌市"
- },
- {
- value: "2",
- label: "赣州市"
- }
- ]
- };
- },
- methods: {
- initEchart () {
- securityTotal().then(res => {
- if (res.data.code == 200) {
- let securityData = res.data.data;
- let left1Echart = echarts.init(
- document.getElementById("left1Echart")
- );
- left1Echart.setOption(optionJs.left1Data(securityData));
- } else {
- this.$message.error(res.msg);
- }
- });
-
- holderNum().then(res => {
- if (res.data.code === 200) {
- let data = res.data.data;
- let left2Echart = echarts.init(
- document.getElementById("left2Echart")
- );
- left2Echart.setOption(optionJs.left2Data(data));
- } else {
- this.$message.error(res.msg);
- }
- });
- // securityPer().then(res => {
- // if (res.data.code === 200) {
- // let data = res.data.data;
- let data = [];
- let right1Echart = echarts.init(document.getElementById("right1Echart"));
- right1Echart.setOption(optionJs.right1Data(data));
- // }
- // });
-
- let right2Echart = echarts.init(document.getElementById("right2Echart"));
- right2Echart.setOption(optionJs.right2Data(data));
- let right3Echart = echarts.init(document.getElementById("right3Echart"));
- right3Echart.setOption(optionJs.right3Data(data));
+ data() {
+ return {
+ map: null,
+ curTableType: "car",
+ tableData: [],
+ value1: "1",
+ options1: [
+ {
+ value: "1",
+ label: "南昌市"
},
-
- getTableData (type) {
- this.curTableType = type;
- if (type === "car") {
- this.tableData = [
- {
- carNum: "111111111111",
- location: "红谷滩",
- company: "公司",
- linkman: "小李",
- tel: "13999999999"
- },
- {
- carNum: "111111111111",
- location: "红谷滩",
- company: "公司",
- linkman: "小李",
- tel: "13999999999"
- },
- {
- carNum: "111111111111",
- location: "红谷滩",
- company: "公司",
- linkman: "小李",
- tel: "13999999999"
- },
- {
- carNum: "111111111111",
- location: "红谷滩",
- company: "公司",
- linkman: "小李",
- tel: "13999999999"
- },
- {
- carNum: "111111111111",
- location: "红谷滩",
- company: "公司",
- linkman: "小李",
- tel: "13999999999"
- }
- ];
- } else if (type === "peo") {
- this.tableData = [
- {
- name: "小张",
- location: "红谷滩",
- company: "公司",
- tel: "13999999999",
- bz: "zzz"
- },
- {
- name: "小张",
- location: "红谷滩",
- company: "公司",
- tel: "13999999999",
- bz: "zzz"
- },
- {
- name: "小张",
- location: "红谷滩",
- company: "公司",
- tel: "13999999999",
- bz: "zzz"
- },
- {
- name: "小张",
- location: "红谷滩",
- company: "公司",
- tel: "13999999999",
- bz: "zzz"
- },
- {
- name: "小张",
- location: "红谷滩",
- company: "公司",
- tel: "13999999999",
- bz: "zzz"
- },
- {
- name: "小张",
- location: "红谷滩",
- company: "公司",
- tel: "13999999999",
- bz: "zzz"
- }
- ];
- } else if (type === "gun") {
- this.tableData = [
- {
- number: "Q1111",
- location: "红谷滩",
- company: "公司",
- linkman: "张强",
- tel: "13999999999"
- },
- {
- number: "Q1111",
- location: "红谷滩",
- company: "公司",
- linkman: "张强",
- tel: "13999999999"
- },
- {
- number: "Q1111",
- location: "红谷滩",
- company: "公司",
- linkman: "张强",
- tel: "13999999999"
- },
- {
- number: "Q1111",
- location: "红谷滩",
- company: "公司",
- linkman: "张强",
- tel: "13999999999"
- },
- {
- number: "Q1111",
- location: "红谷滩",
- company: "公司",
- linkman: "张强",
- tel: "13999999999"
- },
- {
- number: "Q1111",
- location: "红谷滩",
- company: "公司",
- linkman: "张强",
- tel: "13999999999"
- }
- ];
- }
- },
-
- initMap () {
- this.map = new Map({
- target: "map", // 对应页面里 id 为 map 的元素
- layers: [
- // 图层
- new Tile({
- source: new OSM() // 图层数据源
- })
- ],
- view: new View({
- // 地图视图
- projection: "EPSG:4326", // 坐标系,有EPSG:4326和EPSG:3857
- center: [115.892151, 28.676493], //坐标 厦门
- // minZoom: 10, // 地图缩放最小级别
- zoom: 11 //地图缩放级别
- })
- });
- var image = new Circle({
- radius: 5,
- fill: new Fill({
- color: "rgba(255, 0, 0, 1)"
- }),
- stroke: new Stroke({ color: "red", width: 1 })
- });
-
- var styles = {
- Point: new Style({
- image: image
- })
- };
- axios.get("./nc.json").then(res => {
- let data = res.data.features;
- let vectorSource = new VectorSource({
- features: new GeoJSON().readFeatures(data)
- });
- let vectorLayer = new VectorLayer({
- source: vectorSource,
- style: styles
- });
- this.map.addLayer(vectorLayer);
- });
- // var center = new transform(
- // [104.06667, 30.66667],
- // "EPSG:4326",
- // "EPSG:3857"
- // );
- // this.map = new Map({
- // view: new View({
- // center: center,
- // zoom: 4
- // }),
- // target: "map"
- // });
- // var offlineMapLayer = new TileLayer({
- // source: new XYZ({
- // url: "./offlineMapTiles/{z}/{x}/{y}.png"
- // })
- // });
- // this.map.addLayer(offlineMapLayer);
- },
-
- goSystemHome () {
- this.$router.push({ path: '/register/index' });
+ {
+ value: "2",
+ label: "赣州市"
}
+ ],
+ value2: "1",
+ options2: [
+ {
+ value: "1",
+ label: "南昌市"
+ },
+ {
+ value: "2",
+ label: "赣州市"
+ }
+ ]
+ };
+ },
+ methods: {
+ initEchart() {
+ securityTotal().then(res => {
+ if (res.data.code == 200) {
+ let securityData = res.data.data;
+ let left1Echart = echarts.init(
+ document.getElementById("left1Echart")
+ );
+ left1Echart.setOption(optionJs.left1Data(securityData));
+ } else {
+ this.$message.error(res.msg);
+ }
+ });
+
+ holderNum().then(res => {
+ if (res.data.code === 200) {
+ let data = res.data.data;
+ let left2Echart = echarts.init(
+ document.getElementById("left2Echart")
+ );
+ left2Echart.setOption(optionJs.left2Data(data));
+ } else {
+ this.$message.error(res.msg);
+ }
+ });
+ // securityPer().then(res => {
+ // if (res.data.code === 200) {
+ // let data = res.data.data;
+ let data = [];
+ // let right1Echart = echarts.init(document.getElementById("right1Echart"));
+ // right1Echart.setOption(optionJs.right1Data(data));
+ // }
+ // });
+
+ // let right2Echart = echarts.init(document.getElementById("right2Echart"));
+ // right2Echart.setOption(optionJs.right2Data(data));
+ let right3Echart = echarts.init(document.getElementById("right3Echart"));
+ right3Echart.setOption(optionJs.right3Data(data));
},
- mounted () {
- this.initEchart();
- this.getTableData("car");
- this.initMap();
+
+ getTableData(type) {
+ this.curTableType = type;
+ if (type === "car") {
+ this.tableData = [
+ {
+ carNum: "111111111111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "小李",
+ tel: "13999999999"
+ },
+ {
+ carNum: "111111111111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "小李",
+ tel: "13999999999"
+ },
+ {
+ carNum: "111111111111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "小李",
+ tel: "13999999999"
+ },
+ {
+ carNum: "111111111111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "小李",
+ tel: "13999999999"
+ },
+ {
+ carNum: "111111111111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "小李",
+ tel: "13999999999"
+ }
+ ];
+ } else if (type === "peo") {
+ this.tableData = [
+ {
+ name: "小张",
+ location: "红谷滩",
+ company: "公司",
+ tel: "13999999999",
+ bz: "zzz"
+ },
+ {
+ name: "小张",
+ location: "红谷滩",
+ company: "公司",
+ tel: "13999999999",
+ bz: "zzz"
+ },
+ {
+ name: "小张",
+ location: "红谷滩",
+ company: "公司",
+ tel: "13999999999",
+ bz: "zzz"
+ },
+ {
+ name: "小张",
+ location: "红谷滩",
+ company: "公司",
+ tel: "13999999999",
+ bz: "zzz"
+ },
+ {
+ name: "小张",
+ location: "红谷滩",
+ company: "公司",
+ tel: "13999999999",
+ bz: "zzz"
+ },
+ {
+ name: "小张",
+ location: "红谷滩",
+ company: "公司",
+ tel: "13999999999",
+ bz: "zzz"
+ }
+ ];
+ } else if (type === "gun") {
+ this.tableData = [
+ {
+ number: "Q1111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "张强",
+ tel: "13999999999"
+ },
+ {
+ number: "Q1111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "张强",
+ tel: "13999999999"
+ },
+ {
+ number: "Q1111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "张强",
+ tel: "13999999999"
+ },
+ {
+ number: "Q1111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "张强",
+ tel: "13999999999"
+ },
+ {
+ number: "Q1111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "张强",
+ tel: "13999999999"
+ },
+ {
+ number: "Q1111",
+ location: "红谷滩",
+ company: "公司",
+ linkman: "张强",
+ tel: "13999999999"
+ }
+ ];
+ }
+ },
+
+ initMap() {
+ this.map = new Map({
+ target: "map", // 对应页面里 id 为 map 的元素
+ layers: [
+ // 图层
+ new Tile({
+ source: new OSM() // 图层数据源
+ })
+ ],
+ view: new View({
+ // 地图视图
+ projection: "EPSG:4326", // 坐标系,有EPSG:4326和EPSG:3857
+ center: [115.892151, 28.676493], //坐标 厦门
+ // minZoom: 10, // 地图缩放最小级别
+ zoom: 11 //地图缩放级别
+ })
+ });
+ var image = new Circle({
+ radius: 5,
+ fill: new Fill({
+ color: "rgba(255, 0, 0, 1)"
+ }),
+ stroke: new Stroke({ color: "red", width: 1 })
+ });
+
+ var styles = {
+ Point: new Style({
+ image: image
+ })
+ };
+ axios.get("./nc.json").then(res => {
+ let data = res.data.features;
+ let vectorSource = new VectorSource({
+ features: new GeoJSON().readFeatures(data)
+ });
+ let vectorLayer = new VectorLayer({
+ source: vectorSource,
+ style: styles
+ });
+ this.map.addLayer(vectorLayer);
+ });
+ // var center = new transform(
+ // [104.06667, 30.66667],
+ // "EPSG:4326",
+ // "EPSG:3857"
+ // );
+ // this.map = new Map({
+ // view: new View({
+ // center: center,
+ // zoom: 4
+ // }),
+ // target: "map"
+ // });
+ // var offlineMapLayer = new TileLayer({
+ // source: new XYZ({
+ // url: "./offlineMapTiles/{z}/{x}/{y}.png"
+ // })
+ // });
+ // this.map.addLayer(offlineMapLayer);
+ },
+
+ goSystemHome() {
+ this.$router.push({ path: "/register/index" });
}
+ },
+ mounted() {
+ this.initEchart();
+ this.getTableData("car");
+ this.initMap();
+ }
};
</script>
<style lang="scss" scoped>
-@import './index.scss';
+@import "./index.scss";
/deep/ .el-select-dropdown {
- border: 1px solid #9199ab;
- background-color: #022c53;
+ border: 1px solid #9199ab;
+ background-color: #022c53;
}
/deep/ .el-select-dropdown__item.hover,
/deep/ .el-select-dropdown__item:hover {
- background-color: #03203e;
+ background-color: #03203e;
}
</style>
diff --git a/src/views/home/indexEchart.js b/src/views/home/indexEchart.js
index 6713d35..321e9fe 100644
--- a/src/views/home/indexEchart.js
+++ b/src/views/home/indexEchart.js
@@ -31,7 +31,7 @@
],
legend: {
data: ["自招保安单位", "保安培训公司", "保安服务公司", "武装守押公司"],
- bottom: "8%",
+ bottom: "1%",
itemWidth: 20,
textStyle: {
color: "#fff"
@@ -40,7 +40,7 @@
grid: {
left: "5%",
right: "6%",
- bottom: "18%",
+ bottom: "10%",
containLabel: true
},
xAxis: {
@@ -140,7 +140,7 @@
],
legend: {
data: ["持证人数", "未持证人数"],
- bottom: "8%",
+ bottom: "1%",
itemWidth: 20,
textStyle: {
color: "#fff"
@@ -149,7 +149,7 @@
grid: {
left: "5%",
right: "6%",
- bottom: "18%",
+ bottom: "15%",
containLabel: true
},
xAxis: {
@@ -467,7 +467,7 @@
},
grid: {
top: "16%",
- bottom: "54%",
+ bottom: "55%",
left: "50%",
containLabel: false
},
diff --git a/src/views/securityUnitOperation/economicAnalysis.vue b/src/views/securityUnitOperation/economicAnalysis.vue
new file mode 100644
index 0000000..8e8da32
--- /dev/null
+++ b/src/views/securityUnitOperation/economicAnalysis.vue
@@ -0,0 +1,7 @@
+/*
+ * @Author: mikey.zhaopeng
+ * @Date: 2021-07-17 00:19:50
+ * @Last Modified by: mikey.zhaopeng
+ * @Last Modified time: 2021-07-17 00:20:31
+ * @description:公司经济情况智能分析详情
+ */
\ No newline at end of file
diff --git a/src/views/securityUnitOperation/economicTable.vue b/src/views/securityUnitOperation/economicTable.vue
new file mode 100644
index 0000000..5012b55
--- /dev/null
+++ b/src/views/securityUnitOperation/economicTable.vue
@@ -0,0 +1,7 @@
+/*
+ * @Author: mikey.zhaopeng
+ * @Date: 2021-07-17 00:19:50
+ * @Last Modified by: mikey.zhaopeng
+ * @Last Modified time: 2021-07-17 00:20:33
+ * @description:公司经济情况智能分析统计
+ */
diff --git a/src/views/securityUnitOperation/operationAnalysis.vue b/src/views/securityUnitOperation/operationAnalysis.vue
new file mode 100644
index 0000000..8e8743e
--- /dev/null
+++ b/src/views/securityUnitOperation/operationAnalysis.vue
@@ -0,0 +1,208 @@
+<template>
+ <div class="page1">
+ <el-row>
+ <el-col :span="24">
+ <div class="rowContent first-menu">
+ <div class="rowTitle">
+ <span>数据概览</span>
+ <el-button>进入数据统计表</el-button>
+ <el-select class="select1" v-model="value1" placeholder="请选择">
+ <el-option
+ v-for="item in options1"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ <el-select class="select2" v-model="value2" placeholder="请选择">
+ <el-option
+ v-for="item in options2"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </div>
+
+ <div style="display: flex ;margin-top: 15px;">
+ <div class="box-card">
+ <span>总保安数</span>
+ <span>500</span>
+ <span>较上月上涨2%</span>
+ </div>
+ <div class="box-card">
+ <span>正常保安员</span>
+ <span>500</span>
+ <span>较上月上涨2%</span>
+ </div>
+ <div class="box-card">
+ <span>持证保安员</span>
+ <span>500</span>
+ <span>较上月上涨2%</span>
+ </div>
+ <div class="box-card">
+ <span>过考保安员</span>
+ <span>500</span>
+ <span>较上月上涨2%</span>
+ </div>
+ <div class="box-card">
+ <span>服务客户</span>
+ <span>500</span>
+ <span>较上月上涨2%</span>
+ </div>
+ <div class="box-card">
+ <span>缴纳社保</span>
+ <span>500</span>
+ <span>较上月上涨2%</span>
+ </div>
+ <div class="box-card">
+ <span>保安派遣</span>
+ <span>500</span>
+ <span>较上月上涨2%</span>
+ </div>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="16">
+ <div class="rowContent" id="middleEchart1"></div>
+ </el-col>
+ <el-col :span="8">
+ <div class="rowContent" id="middleEchart2"></div>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <div class="rowContent">
+ <div id="bottomEchart"></div>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+</template>
+
+<script>
+import * as echarts from "echarts";
+import echartJs from "./securityEchart.js";
+export default {
+ data() {
+ return {
+ value1: "1",
+ value2: "1",
+ options1: [
+ {
+ value: "1",
+ label: "南昌市"
+ }
+ ],
+ options2: [
+ {
+ value: "1",
+ label: "保安公司"
+ }
+ ]
+ };
+ },
+ methods: {
+ setEchart() {
+ let data = [];
+ let bottomEchart = echarts.init(document.getElementById("bottomEchart"));
+ bottomEchart.setOption(echartJs.bottomOption(data));
+ let middleEchart1 = echarts.init(
+ document.getElementById("middleEchart1")
+ );
+ middleEchart1.setOption(echartJs.middleOption1(data));
+ let middleEchart2 = echarts.init(
+ document.getElementById("middleEchart2")
+ );
+ middleEchart2.setOption(echartJs.middleOption2(data));
+ }
+ },
+ mounted() {
+ this.setEchart();
+ }
+};
+</script>
+<style lang="scss" scoped>
+.page1 {
+ height: 100%;
+ width: 100%;
+ /* background: #003688; */
+}
+#bottomEchart,
+#middleEchart1,
+#middleEchart2 {
+ height: 100%;
+ width: 100%;
+}
+.rowContent {
+ height: 20%;
+ background: rgba(255, 255, 255, 0.1);
+ box-shadow: 0px 0px 1px #fff;
+}
+.first-menu {
+ padding: 5px 20px 20px 20px;
+ height: calc(100% - 25px) !important;
+}
+.el-row:first-child {
+ height: calc(40% - 80px);
+ margin-bottom: 20px;
+}
+.el-row:nth-child(2) {
+ margin-bottom: 20px;
+}
+.el-row:nth-child(2),
+.el-row:nth-child(3) {
+ height: 30%;
+}
+.el-col,
+.rowContent {
+ height: 100%;
+}
+.box-card {
+ width: 150px;
+ background: #00aaf1;
+ height: 135px;
+ text-align: center;
+ margin-right: 66px;
+ box-shadow: 5px 5px 5px rgba($color: #000, $alpha: 0.35);
+ line-height: 40px;
+}
+.box-card span {
+ display: block;
+ width: 100%;
+ color: #fff;
+}
+.box-card span:nth-child(2) {
+ color: #06ffff;
+ font-size: 34px;
+}
+.rowTitle {
+ height: 40px;
+ display: flex;
+ span {
+ color: #fff;
+ font-size: 25px;
+ font-weight: 600;
+ margin-right: 20px;
+ }
+ .select1 {
+ position: absolute;
+ right: 140px;
+ }
+ .select2 {
+ position: absolute;
+ right: 0px;
+ }
+ .el-button {
+ position: absolute;
+ right: 300px;
+ }
+ /deep/ .el-input__inner {
+ width: 120px;
+ }
+}
+</style>
diff --git a/src/views/securityUnitOperation/operationTable.vue b/src/views/securityUnitOperation/operationTable.vue
new file mode 100644
index 0000000..9664a60
--- /dev/null
+++ b/src/views/securityUnitOperation/operationTable.vue
@@ -0,0 +1,77 @@
+<template>
+ <div class="table">
+ <div class="about">
+ <el-button @click="downExcel">下载</el-button>
+ <el-table id="table" :data="tableData" stripe style="width: 100%">
+ <el-table-column prop="date" label="日期" width="180">
+ </el-table-column>
+ <el-table-column prop="name" label="姓名" width="180">
+ </el-table-column>
+ <el-table-column prop="address" label="地址"> </el-table-column>
+ </el-table>
+ <el-pagination background layout="prev, pager, next" :total="1000">
+ </el-pagination>
+ </div>
+ </div>
+</template>
+<script>
+import FileSaver from "file-saver";
+import XLSX from "xlsx";
+export default {
+ data() {
+ return {
+ tableData: [
+ {
+ date: "2016-05-02",
+ name: "王小虎",
+ address: "上海市普陀区金沙江路 1518 弄"
+ },
+ {
+ date: "2016-05-04",
+ name: "王小虎",
+ address: "上海市普陀区金沙江路 1517 弄"
+ },
+ {
+ date: "2016-05-01",
+ name: "王小虎",
+ address: "上海市普陀区金沙江路 1519 弄"
+ },
+ {
+ date: "2016-05-03",
+ name: "王小虎",
+ address: "上海市普陀区金沙江路 1516 弄"
+ }
+ ]
+ };
+ },
+ methods: {
+ downExcel() {
+ let et = XLSX.utils.table_to_book(document.getElementById("table"));
+ let etout = XLSX.write(et, {
+ bookType: "xlsx",
+ bookSST: true,
+ type: "array"
+ });
+ try {
+ FileSaver.saveAs(
+ new Blob([etout], {
+ type: "application/octet-stream"
+ }),
+ `表.xlsx`
+ ); //导出的文件名
+ } catch (e) {
+ console.log(e, etout);
+ }
+ return etout;
+ }
+ },
+ mounted() {}
+};
+</script>
+<style>
+.table {
+ height: 100%;
+ width: 1005;
+ display: none;
+}
+</style>
diff --git a/src/views/securityUnitOperation/securityEchart.js b/src/views/securityUnitOperation/securityEchart.js
new file mode 100644
index 0000000..1dfe7d4
--- /dev/null
+++ b/src/views/securityUnitOperation/securityEchart.js
@@ -0,0 +1,215 @@
+function bottomOption(data) {
+ let option = {
+ title: {
+ text: "公司运营趋势",
+ textStyle: {
+ color: "#fff"
+ }
+ },
+ xAxis: {
+ type: "category",
+ axisLabel: {
+ color: "#fff"
+ },
+ boundaryGap: false,
+ data: [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+ ]
+ },
+ yAxis: {
+ type: "value",
+ axisLabel: {
+ color: "#fff"
+ }
+ },
+ series: [
+ {
+ data: [820, 932, 901, 934, 1290, 1330, 1320, 132, 1111, 321, 342, 134],
+ type: "line",
+ smooth: true,
+ areaStyle: {}
+ }
+ ]
+ };
+ return option;
+}
+function middleOption1(data) {
+ let option = {
+ title: {
+ text: "公司保安类数据对比",
+ textStyle: {
+ color: "#fff"
+ }
+ },
+ tooltip: {
+ trigger: "axis"
+ },
+ legend: {
+ data: [
+ "总保安数",
+ "正常保安数",
+ "持证保安数",
+ "过考保安数",
+ "缴纳社保保安数",
+ "缴纳社保数"
+ ],
+ bottom: "2%",
+ textStyle: {
+ color: "#fff"
+ }
+ },
+ grid: {
+ left: "3%",
+ right: "4%",
+ bottom: "15%",
+ containLabel: true
+ },
+ xAxis: {
+ type: "category",
+ boundaryGap: false,
+ axisLabel: {
+ color: "#fff"
+ },
+ data: [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+ ]
+ },
+ yAxis: {
+ type: "value",
+ axisLabel: {
+ color: "#fff"
+ }
+ },
+ series: [
+ {
+ name: "总保安数",
+ type: "line",
+ stack: "总量",
+ data: [120, 132, 101, 134, 90, 230, 210, 214, 123, 22, 132, 321]
+ },
+ {
+ name: "正常保安数",
+ type: "line",
+ stack: "总量",
+ data: [220, 182, 191, 234, 290, 330, 310, 111, 222, 132, 143, 123]
+ },
+ {
+ name: "持证保安数",
+ type: "line",
+ stack: "总量",
+ data: [150, 232, 201, 154, 190, 330, 410, 132, 111, 222, 132, 43]
+ },
+ {
+ name: "过考保安数",
+ type: "line",
+ stack: "总量",
+ data: [320, 332, 301, 334, 390, 330, 320, 233, 123, 432, 122, 11]
+ },
+ {
+ name: "缴纳社保保安数",
+ type: "line",
+ stack: "总量",
+ data: [120, 132, 101, 134, 120, 130, 132, 222, 111, 123, 341, 123]
+ },
+ {
+ name: "缴纳社保数",
+ type: "line",
+ stack: "总量",
+ data: [120, 132, 101, 134, 1210, 130, 120, 22, 123, 33, 21, 13]
+ }
+ ]
+ };
+ return option;
+}
+function middleOption2(data) {
+ let option = {
+ title: {
+ text: "服务客户",
+ textStyle: {
+ color: "#fff"
+ }
+ },
+ tooltip: {
+ trigger: "axis",
+ axisPointer: {
+ type: "shadow"
+ }
+ },
+ legend: {
+ data: ["客户数"],
+ bottom: "5%",
+ textStyle: {
+ color: "#fff"
+ }
+ },
+ grid: {
+ left: "3%",
+ right: "4%",
+ bottom: "7%",
+ containLabel: true
+ },
+ xAxis: {
+ type: "value",
+ boundaryGap: [0, 0.01],
+ axisLabel: {
+ color: "#fff"
+ }
+ },
+ yAxis: {
+ type: "category",
+ axisLabel: {
+ color: "#fff"
+ },
+ data: [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+ ]
+ },
+ series: [
+ {
+ name: "2011年",
+ type: "bar",
+ data: [231, 123, 441, 123, 321, 333, 111, 221, 332, 442, 132, 51]
+ }
+ ]
+ };
+ return option;
+}
+
+export default {
+ bottomOption,
+ middleOption1,
+ middleOption2
+};
--
Gitblit v1.9.3