Browse Source

Merge remote-tracking branch 'origin/shibei_master' into 市北master

master
jianjun 3 years ago
parent
commit
f6565c29c0
  1. BIN
      src/assets/img/modules/visual/fenlei-box.png
  2. 42
      src/assets/scss/main-shuju.scss
  3. 40
      src/assets/scss/modules/visual/basicInfoMain.scss
  4. 21
      src/assets/scss/modules/visual/distributionAnalyze.scss
  5. 10
      src/assets/scss/modules/visual/duoyuanfenxi.scss
  6. 55
      src/assets/scss/modules/visual/fiveLayerMap.scss
  7. 5
      src/assets/scss/modules/visual/heart.scss
  8. 19
      src/assets/scss/modules/visual/houseStatic.scss
  9. 35
      src/assets/scss/modules/visual/incident-info.scss
  10. 29
      src/assets/scss/modules/visual/issue-info.scss
  11. 15
      src/assets/scss/modules/visual/people.scss
  12. 4
      src/assets/scss/modules/visual/personCategory.scss
  13. 12
      src/assets/scss/modules/visual/processAnalyze.scss
  14. 10
      src/assets/scss/modules/visual/resibuzz.scss
  15. 7
      src/assets/scss/modules/visual/searchPerson.scss
  16. 3
      src/assets/scss/modules/visual/search_1.scss
  17. 12
      src/assets/scss/modules/visual/shijianchulifenxi.scss
  18. 12
      src/assets/scss/modules/visual/shijianfenleifenxi.scss
  19. 10
      src/assets/scss/modules/visual/typeAnalyze.scss
  20. 5
      src/assets/scss/modules/visual/warning.scss
  21. 7
      src/assets/scss/shuju-card.scss
  22. 24
      src/assets/scss/shuju-variables.scss
  23. 2
      src/js/dai/request.js
  24. 2
      src/js/dai/request2.js
  25. 87
      src/js/store/index.js
  26. 36
      src/router/index.js
  27. 1
      src/utils/index.js
  28. 62
      src/views/components/fixed1920.vue
  29. 3
      src/views/main-shuju/main-content.vue
  30. 14
      src/views/main-shuju/main.vue
  31. 16
      src/views/modules/404.vue
  32. 681
      src/views/modules/base/organization/organization.vue
  33. 16
      src/views/modules/visual/404.vue
  34. 2
      src/views/modules/visual/basicinfo/houseStatic/houseStatic.vue
  35. 8
      src/views/modules/visual/basicinfo/people.vue
  36. 8
      src/views/modules/visual/basicinfo/peopleList.vue
  37. 5
      src/views/modules/visual/basicinfo/peopleSearch.vue
  38. 2
      src/views/modules/visual/basicinfo/personCategory/recordList.vue
  39. 2
      src/views/modules/visual/communityGovern/distributionAnalyze.vue
  40. 13
      src/views/modules/visual/communityGovern/duoyuanfuwu/duoyuanfuwufenxi.vue
  41. 2
      src/views/modules/visual/communityGovern/fivelayers/mapIndex copy 2.vue
  42. 4
      src/views/modules/visual/communityGovern/fivelayers/mapIndex copy.vue
  43. 2
      src/views/modules/visual/communityGovern/fivelayers/mapIndex-baidu.vue
  44. 14
      src/views/modules/visual/communityGovern/fivelayers/mapIndex.vue
  45. 4
      src/views/modules/visual/communityGovern/resibuzz.vue
  46. 2
      src/views/modules/visual/communityGovern/shijianchuli/shijianchulifenxi copy.vue
  47. 4
      src/views/modules/visual/communityGovern/shijianchuli/shijianchulifenxi.vue
  48. 4
      src/views/modules/visual/communityGovern/shijianfenlei/shijianfenleifenxi.vue
  49. 4
      src/views/modules/visual/communityGovern/typeAnalyze.vue
  50. 15
      src/views/modules/visual/communityParty/community.vue
  51. 10
      src/views/modules/visual/communityParty/elegant.vue
  52. 7
      src/views/modules/visual/communityParty/gridParty.vue
  53. 11
      src/views/modules/visual/communityParty/party.vue
  54. 9
      src/views/modules/visual/communityParty/partyOld.vue
  55. 51
      src/views/modules/visual/cpts/card.vue
  56. 94
      src/views/modules/visual/cpts/tb.vue
  57. 38
      src/views/modules/visual/heart/index.vue
  58. 16
      src/views/modules/visual/measure/service.vue
  59. 17
      src/views/modules/visual/measure/volunteer.vue
  60. 5
      src/views/modules/visual/plugin/power/components/house-dialog.vue
  61. 3
      src/views/modules/visual/plugin/power/components/info-dialog.vue
  62. 53
      src/views/modules/visual/warning/components/screen-table/index.vue
  63. 2
      src/views/modules/visual/warning/components/screen-table/people-list.vue
  64. 4
      src/views/modules/visual/warning/index.vue
  65. 2
      src/views/modules/warning/index.vue
  66. 379
      src/views/modules/workSys/role/role.vue
  67. 356
      src/views/modules/workSys/role/roleForm.vue
  68. 4
      src/views/pages/404.vue
  69. 85
      src/views/pages/index.vue
  70. 2
      src/views/pages/login.vue

BIN
src/assets/img/modules/visual/fenlei-box.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

42
src/assets/scss/main-shuju.scss

@ -1,15 +1,18 @@
@import "~@/element-ui/theme-variables.scss";
@import "./variables.scss";
@import "./shuju-variables.scss";
@import "./c/config";
@import "./c/function";
@import "./modules/visual/c/common.scss";
// $navbar--height: 60px;
body {
.g-main {
padding: 10px 20px 10px;
}
.m-iframe {
position: relative;
width: 100vw;
height: calc(100vh - 55px);
margin: -10px;
box-sizing: content-box;
width: calc(100% + 20px);
margin: -10px -20px -10px;
z-index: 100;
}
@ -19,6 +22,8 @@ body {
background-image: url(../img/shuju/bg.jpg);
background-size: cover;
background-position: center 0;
height: 100%;
@include scrollBar;
.el-card + .el-card {
margin-top: 15px;
@ -171,6 +176,10 @@ body {
// box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.05);
background: linear-gradient(180deg, #00023f, #176dec);
box-shadow: 0px 3px 16px 0px rgba(187, 187, 227, 0.35);
font-size: 19px;
.el-menu-item {
font-size: 19px;
}
.navbar--colorful {
.navbar__body {
@ -229,17 +238,17 @@ body {
display: flex;
justify-content: center;
align-items: center;
padding: 5px;
padding: 10px 20px;
margin: 0;
width: 100%;
height: 100%;
font-size: 24px;
font-size: 28px;
font-weight: bold;
text-transform: uppercase;
white-space: nowrap;
// overflow: hidden;
transition: width 0.3s;
font-family: FZZCHJW;
font-weight: normal;
color: #ffffff;
background: linear-gradient(0deg, #03c7ff 24.609375%, #ffffff 81.0791015625%);
-webkit-background-clip: text;
@ -288,6 +297,7 @@ body {
.navbar__menu {
background-color: transparent;
border-bottom: 0 !important;
a:focus,
a:hover {
text-decoration: none;
@ -349,7 +359,7 @@ body {
position: absolute;
display: none;
padding: 0 10px;
width: 120px;
width: 160px;
left: -100px;
right: -100px;
margin: 0 auto;
@ -360,6 +370,9 @@ body {
border-top: 1px dashed rgba(#fff, 0.4);
color: rgba(#fff, 0.7);
transition: all ease 0.5s;
padding: 10px 0;
line-height: $navbar--height * 0.5;
&.z-on {
font-weight: bold;
}
@ -409,13 +422,14 @@ body {
}
.navbar__icon-menu {
vertical-align: middle;
font-size: 16px;
font-size: 20px;
}
.el-dropdown {
color: #fff;
font-size: 16px;
.el-icon-arrow-down {
width: auto;
font-size: 12px;
font-size: 16px;
margin: 0 0 0 5px;
transition: transform 0.3s;
}
@ -459,9 +473,9 @@ body {
.navbar__avatar {
.el-dropdown-link {
> img {
width: 36px;
width: 42px;
height: auto;
margin-right: 5px;
margin-right: 7px;
border-radius: 100%;
vertical-align: middle;
}

40
src/assets/scss/modules/visual/basicInfoMain.scss

@ -3,7 +3,8 @@
@import "./c/common";
.div_top {
margin-left: 10px;
height: 35px;
height: 40px;
line-height: 35px;
.router_line {
width: 212px;
height: 1px;
@ -12,8 +13,8 @@
/* opacity: 0.09; */
}
.div_router {
margin-top: 5px;
font-size: 16px;
font-weight: bold;
.router_parents {
color: #a0c3d9;
@ -40,7 +41,7 @@
width: 100%;
// padding: 10px 5px 13px;
// margin-top: 8px;
height: calc(88vh - 15px);
height: calc(825px - 15px);
color: #fff;
// background: url('../../../img/modules/visual/warning-box.png') no-repeat
// center;
@ -109,10 +110,9 @@
box-sizing: border-box;
width: 100%;
height: calc(88vh - 10px);
height: calc(825px - 10px);
color: #fff;
background: url('../../../img/modules/visual/warning-box.png') no-repeat
center;
background: url("../../../img/modules/visual/fenlei-box.png") no-repeat center;
background-size: 100% 100%;
// padding: 45px 21px 35px 24px;
@ -208,13 +208,12 @@
.div_community_info {
box-sizing: border-box;
flex: 0 0 calc(100vw - 620px);
// width: calc(100vw - 560px);
flex: 0 0 calc(1919px - 620px);
// width: calc(1919px - 560px);
height: calc(88vh - 10px);
height: calc(825px - 10px);
color: #fff;
background: url('../../../img/modules/visual/warning-box.png') no-repeat
center;
background: url("../../../img/modules/visual/warning-box.png") no-repeat center;
background-size: 100% 100%;
.div_select {
@ -253,11 +252,11 @@
box-sizing: border-box;
margin-top: 9px;
height: calc(88vh - 120px);
height: calc(825px - 120px);
}
.div_room {
// height: calc(88vh - 40px);
// height: calc(825px - 40px);
// margin-top: 9px;
display: flex;
flex-wrap: wrap;
@ -271,15 +270,19 @@
box-shadow: 0 0 10px inset #1a5afd;
}
.item {
background-color: #011168;
margin-top: 12px;
width: 244px;
width: 242px;
height: 190px;
border: 1px solid #037ddc;
border-radius: 8px;
text-align: center;
margin-left: 11px;
position: relative;
background-color: rgba(#000, 0.3);
&:nth-child(5n + 1) {
margin-left: 0;
}
// &:first-child {
// margin-left: 0;
@ -329,7 +332,6 @@
justify-content: center;
}
}
}
.div_user:hover {
cursor: pointer;
@ -362,7 +364,7 @@
}
.div_room::after {
content: '';
content: "";
flex: 1;
}
}
@ -445,7 +447,7 @@
width: 320px;
height: 470px;
color: #fff;
background: url('../../../img/modules/visual/box-2.png') no-repeat center;
background: url("../../../img/modules/visual/box-2.png") no-repeat center;
background-size: 100% 100%;
padding: 45px 20px 35px 20px;
@ -580,7 +582,5 @@
}
}
}
}
}

21
src/assets/scss/modules/visual/distributionAnalyze.scss

@ -1,9 +1,10 @@
@import '../../c/config';
@import '../../c/function';
@import './c/common';
@import "../../c/config";
@import "../../c/function";
@import "./c/common";
.title {
padding: 10px;
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
@ -37,7 +38,7 @@
color: #fff;
}
.second-title-label::after {
content: '';
content: "";
position: absolute;
top: 50%;
left: 20px;
@ -63,7 +64,7 @@
}
.el-icon-arrow-up:before {
content: '\e78f';
content: "\e78f";
}
// .el-select__caret:before {
// content: '\E790'
@ -117,11 +118,11 @@
flex-direction: row;
// flex-wrap: wrap;
justify-content: space-between;
height: calc(100vh - 190px);
height: calc(988px - 190px);
.g-l {
width: 40%;
height: calc(100vh - 200px);
height: calc(988px - 200px);
.echart-line {
margin-left: 30px;
@ -149,11 +150,11 @@
.g-r {
width: 55%;
height: calc(100vh - 210px);
height: calc(988px - 210px);
.r-map {
position: relative;
height: calc(100vh - 210px - 50px);
height: calc(988px - 210px - 50px);
width: 100%;
.map {

10
src/assets/scss/modules/visual/duoyuanfenxi.scss

@ -6,12 +6,12 @@
.g-cpt-resi {
display: flex;
flex-direction: row;
height: calc(100vh - 180px);
height: calc(988px - 180px);
.g-l {
flex-shrink: 0;
width: 700px;
height: calc(100vh - 230px);
height: calc(988px - 230px);
.l_top {
height: 385px;
@ -21,7 +21,7 @@
}
.l_bottom {
height: calc(100vh - 230px - 385px);
height: calc(988px - 230px - 385px);
margin-top: 40px;
}
}
@ -29,8 +29,8 @@
.g-r {
text-align: center;
margin: 20px 10px 20px;
width: calc(100vw - 700px);
height: calc(100vh - 180px - 20px);
width: calc(1919px - 700px);
height: calc(988px - 180px - 20px);
}
}

55
src/assets/scss/modules/visual/fiveLayerMap.scss

@ -3,7 +3,8 @@
@import "./c/common";
.div_top {
margin-left: 10px;
height: 35px;
height: 40px;
line-height: 35px;
.router_line {
width: 212px;
height: 1px;
@ -12,8 +13,8 @@
/* opacity: 0.09; */
}
.div_router {
margin-top: 5px;
font-size: 16px;
font-weight: bold;
.router_parents {
color: #a0c3d9;
@ -37,10 +38,10 @@
.div_map {
box-sizing: border-box;
width: 100%;
width: 1920px - 630px - 20px;
// padding: 10px 5px 13px;
// margin-top: 8px;
height: calc(88vh - 15px);
height: calc(810px);
color: #fff;
// background: url('../../../img/modules/visual/warning-box.png') no-repeat
// center;
@ -49,17 +50,14 @@
}
.div_data {
flex: 0 0 610px;
width: 630px;
margin-left: 12px;
.div_tips{
box-sizing: border-box;
width: 100%;
height: 302px;
height: 300px;
color: #fff;
background: url('../../../img/modules/visual/warning-box.png') no-repeat
center;
background-size: 100% 100%;
.div_coverage{
padding: 30px 10px 32px 10px;
@ -89,9 +87,12 @@
}
.div_category {
@include scrollBar;
box-sizing: border-box;
height:238px;
padding:0 10px 20px;
height:176px;
padding:0 10px 0;
overflow-y: auto;
overflow-x: hidden;
.category_item {
@ -159,17 +160,14 @@
box-sizing: border-box;
width: 100%;
margin-top:10px;
height: calc(88vh - 302px - 10px);
height: calc(810px - 302px - 10px);
color: #fff;
background: url('../../../img/modules/visual/warning-box.png') no-repeat
center;
background-size: 100% 100%;
padding: 32px 21px 20px 20px;
overflow-x: hidden;
.div_search_list {
margin: 0 auto;
margin: 6px auto;
text-align: center;
width: 559px;
width: 570px;
height: 48px;
background-color: #011168;
border-radius: 4px;
@ -194,14 +192,14 @@
.btn {
text-align: center;
flex: 0 0 113px;
height: 48px;
height: 52px;
background: linear-gradient(90deg, #1A5AFD, #26C4FF);
border-radius: 0px 4px 4px 0px;
font-size: 20px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 48px;
line-height: 52px;
}
.btn:hover {
cursor: pointer;
@ -210,17 +208,16 @@
.tb {
height: calc(88vh - 302px - 10px - 150px);
height: calc(810px - 302px - 20px - 150px);
overflow-y: auto;
@include scrollBar;
margin-top:20px;
}
.m-pagination {
position: absolute;
// position: absolute;
box-sizing: border-box;
right: 5px;
bottom: 5px;
margin-top: 2px;
width: 100%;
height: 40px;
display: flex;
@ -252,10 +249,10 @@
.div_community_info {
box-sizing: border-box;
flex: 0 0 calc(100vw - 620px);
// width: calc(100vw - 560px);
flex: 0 0 calc(1919px - 620px);
// width: calc(1919px - 560px);
height: calc(88vh - 10px);
height: calc(810px - 10px);
color: #fff;
background: url('../../../img/modules/visual/warning-box.png') no-repeat
center;
@ -297,11 +294,11 @@
box-sizing: border-box;
margin-top: 9px;
height: calc(88vh - 120px);
height: calc(810px - 120px);
}
.div_room {
// height: calc(88vh - 40px);
// height: calc(810px - 40px);
// margin-top: 9px;
display: flex;
flex-wrap: wrap;

5
src/assets/scss/modules/visual/heart.scss

@ -47,7 +47,8 @@
.m-tb {
width: 33%;
.title {
padding: 10px;
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
@ -64,7 +65,7 @@
}
}
.tb {
height: calc(100vh - 230px);
height: calc(988px - 230px);
overflow-y: auto;
@include scrollBar;
}

19
src/assets/scss/modules/visual/houseStatic.scss

@ -1,5 +1,5 @@
.warning-box{
padding: 0 21px 20px 24px
padding: 0 ;
}
.no-data{
margin-top:50px;
@ -11,6 +11,9 @@
display: flex;
align-items: center;
cursor: pointer;
margin-bottom: 10px;
padding: 4px 2px;
.title-icon {
display: block;
width: 46px;
@ -60,7 +63,7 @@
}
}
.title-label {
font-size: 20px;
font-size: 22px;
font-weight: 800;
::v-deep .el-input {
width: 180px;
@ -107,23 +110,25 @@
flex-grow:0;
flex-shrink:0;
width:50%;
height: 100%;
.div-chart{
display: flex;
width: 100%;
flex-wrap: wrap;
.echart-wr{
position: relative;
flex-shrink: 0;
height: 420px;
width: 70%;
}
.div-tip{
flex-shrink: 0;
width: 30%;
width: 25%;
display: flex;
flex-direction: column;
justify-content: center;
margin-left:20px;
margin-left:5%;
margin-top: -23px;
display: flex;
@ -151,11 +156,11 @@
.div-tip2{
flex-shrink: 0;
width: 30%;
width: 25%;
display: flex;
flex-direction: column;
justify-content: center;
margin-left:20px;
margin-left:5%;
margin-top: -23px;
display: flex;

35
src/assets/scss/modules/visual/incident-info.scss

@ -1,6 +1,6 @@
@import '../../c/config';
@import '../../c/function';
@import './c/common';
@import "../../c/config";
@import "../../c/function";
@import "./c/common";
.m-pop {
@include shield;
@ -104,6 +104,17 @@
margin: 20px 0;
}
.info-pics {
display: flex;
margin: 20px 0;
img {
display: block;
width: 32%;
height: 90px;
margin-right: 9px;
object-fit: cover;
}
}
.info-prop {
position: relative;
@ -123,7 +134,7 @@
}
&::before {
content: '';
content: "";
display: block;
position: absolute;
top: 9px;
@ -134,18 +145,6 @@
border-radius: 3px;
margin-right: 10px;
}
.info-pics {
display: flex;
margin: 20px 0;
img {
display: block;
width: 32%;
height: 90px;
margin-right: 9px;
object-fit: cover;
}
}
}
}
@ -265,7 +264,7 @@
padding-right: 10px;
&::before {
content: '';
content: "";
position: absolute;
z-index: 1;
display: block;
@ -290,7 +289,7 @@
padding-top: 1px;
&::before {
content: '';
content: "";
display: block;
position: absolute;
top: -5px;

29
src/assets/scss/modules/visual/issue-info.scss

@ -1,6 +1,6 @@
@import '../../c/config';
@import '../../c/function';
@import './c/common';
@import "../../c/config";
@import "../../c/function";
@import "./c/common";
.m-pop {
@include shield;
@ -68,16 +68,6 @@
line-height: 30px;
}
.info-prop {
position: relative;
margin: 10px 0;
display: flex;
padding-left: 15px;
.info-title-2 {
width: 100px;
flex: 0 0 1;
font-size: 14px;
}
.info-pics {
display: flex;
margin: 10px 0;
@ -89,6 +79,17 @@
object-fit: cover;
}
}
.info-prop {
position: relative;
margin: 10px 0;
display: flex;
padding-left: 15px;
.info-title-2 {
width: 100px;
flex: 0 0 1;
font-size: 14px;
}
> span,
> div {
display: block;
@ -96,7 +97,7 @@
}
&::before {
content: '';
content: "";
display: block;
position: absolute;
top: 9px;

15
src/assets/scss/modules/visual/people.scss

@ -24,7 +24,8 @@
position: relative;
.title {
padding: 10px;
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
@ -187,7 +188,8 @@
width: 1180px;
.title {
padding: 10px;
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
@ -294,7 +296,8 @@
margin-top: 10px;
.title {
padding: 10px;
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
@ -447,7 +450,8 @@
.m-tb {
.title {
padding: 10px;
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
@ -479,7 +483,8 @@
width: calc(50% - 3px);
.title {
padding: 10px;
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;

4
src/assets/scss/modules/visual/personCategory.scss

@ -8,7 +8,7 @@
color: #fff;
// background: url("../../../img/modules/visual/warning-box.png") no-repeat center;
background-size: 100% 100%;
padding: 15px 21px 15px 24px;
// padding: 15px 21px 15px 24px;
@ -159,7 +159,7 @@
&-bottom {
box-sizing: border-box;
width: 100%;
// height: calc(100vh - 535px);
// height: calc(988px - 535px);
min-height: 300px;
margin-top: 60px;
}

12
src/assets/scss/modules/visual/processAnalyze.scss

@ -6,12 +6,12 @@
.g-cpt-resi {
display: flex;
flex-direction: row;
height: calc(100vh - 180px);
height: calc(988px - 180px);
.g-l {
flex-shrink: 0;
width: 700px;
height: calc(100vh - 230px);
height: calc(988px - 230px);
.l_top {
height: 385px;
@ -24,7 +24,7 @@
}
}
.l_bottom {
height: calc(100vh - 230px - 385px);
height: calc(988px - 230px - 385px);
margin-top: 20px;
}
}
@ -32,8 +32,8 @@
.g-r {
text-align: center;
margin: 20px 10px 20px;
width: calc(100vw - 700px);
height: calc(100vh - 180px - 20px);
width: calc(1919px - 700px);
height: calc(988px - 180px - 20px);
}
}
@ -119,7 +119,7 @@
.g-r {
.r-map {
position: relative;
height: calc(100vh - 180px - 20px - 70px);
height: calc(988px - 180px - 20px - 70px);
width: 100%;
.map {

10
src/assets/scss/modules/visual/resibuzz.scss

@ -9,19 +9,19 @@
flex-direction: row;
// flex-wrap: wrap;
// justify-content: center;
height: calc(100vh - 180px);
height: calc(988px - 180px);
.g-l {
flex-shrink: 0;
width: 600px;
height: calc(100vh - 180px);
height: calc(988px - 180px);
}
.g-r {
text-align: center;
margin: 40px 0 0 19px;
width: calc(100vw - 60px - 600px);
// height: calc(100vh - 170px - 20px);
width: calc(1919px - 60px - 600px);
// height: calc(988px - 170px - 20px);
}
}
@ -30,7 +30,7 @@
position: relative;
height: 100%;
.tb {
height: calc(100vh - 170px - 50px - 50px);
height: calc(988px - 170px - 50px - 50px);
overflow-y: auto;
@include scrollBar;
}

7
src/assets/scss/modules/visual/searchPerson.scss

@ -36,6 +36,7 @@
font-weight: 400;
color: #ffffff;
line-height: 53px;
background: linear-gradient(90deg, #1a5afd, #26c4ff);
}
.btn:hover {
cursor: pointer;
@ -51,8 +52,7 @@
// height: calc(88vh - 200px);
height: 485px;
color: #fff;
background: url('../../../img/modules/visual/warning-box.png') no-repeat
center;
background: url("../../../img/modules/visual/warning-box.png") no-repeat center;
background-size: 100% 100%;
}
@ -123,8 +123,7 @@
}
&-tr:hover {
background: url('../../../img/modules/visual/hover-bac.png') no-repeat
center;
background: url("../../../img/modules/visual/hover-bac.png") no-repeat center;
background-size: 100% 100%;
}
}

3
src/assets/scss/modules/visual/search_1.scss

@ -3,7 +3,8 @@
@import './c/common';
.title {
padding: 10px;
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;

12
src/assets/scss/modules/visual/shijianchulifenxi.scss

@ -6,12 +6,12 @@
.g-cpt-resi {
display: flex;
flex-direction: row;
height: calc(100vh - 180px);
height: calc(988px - 180px);
.g-l {
flex-shrink: 0;
width: 700px;
height: calc(100vh - 230px);
height: calc(988px - 230px);
.l_top {
height: 355px;
@ -21,7 +21,7 @@
}
.l_bottom {
height: calc(100vh - 200px - 365px);
height: calc(988px - 200px - 365px);
margin-top: 0;
}
}
@ -29,8 +29,8 @@
.g-r {
text-align: center;
margin: 20px 10px 20px;
width: calc(100vw - 700px);
height: calc(100vh - 180px - 20px);
width: calc(1919px - 700px);
height: calc(988px - 180px - 20px);
}
}
@ -74,7 +74,7 @@
position: relative;
height: 100%;
.tb {
height: calc(100vh - 170px - 50px - 50px);
height: calc(988px - 170px - 50px - 50px);
overflow-y: auto;
@include scrollBar;
}

12
src/assets/scss/modules/visual/shijianfenleifenxi.scss

@ -6,12 +6,12 @@
.g-cpt-resi {
display: flex;
flex-direction: row;
height: calc(100vh - 180px);
height: calc(988px - 180px);
.g-l {
flex-shrink: 0;
width: 700px;
height: calc(100vh - 230px);
height: calc(988px - 230px);
.l_top {
height: 385px;
@ -21,7 +21,7 @@
}
.l_bottom {
height: calc(100vh - 230px - 385px);
height: calc(988px - 230px - 385px);
margin-top: 20px;
}
}
@ -29,8 +29,8 @@
.g-r {
text-align: center;
margin: 20px 10px 20px;
width: calc(100vw - 700px);
height: calc(100vh - 180px - 20px);
width: calc(1919px - 700px);
height: calc(988px - 180px - 20px);
}
}
@ -80,7 +80,7 @@
position: relative;
height: 100%;
.tb {
height: calc(100vh - 170px - 50px - 50px);
height: calc(988px - 170px - 50px - 50px);
overflow-y: auto;
@include scrollBar;
}

10
src/assets/scss/modules/visual/typeAnalyze.scss

@ -8,19 +8,19 @@
flex-direction: row;
// flex-wrap: wrap;
// justify-content: center;
height: calc(100vh - 180px);
height: calc(988px - 180px);
.g-l {
flex-shrink: 0;
width: 600px;
height: calc(100vh - 180px);
height: calc(988px - 180px);
}
.g-r {
text-align: center;
margin: 40px 0 0 19px;
width: calc(100vw - 60px - 600px);
// height: calc(100vh - 140px - 20px);
width: calc(1919px - 60px - 600px);
// height: calc(988px - 140px - 20px);
}
}
@ -29,7 +29,7 @@
position: relative;
height: 100%;
.tb {
height: calc(100vh - 170px - 50px - 50px);
height: calc(988px - 170px - 50px - 50px);
overflow-y: auto;
@include scrollBar;
}

5
src/assets/scss/modules/visual/warning.scss

@ -8,7 +8,7 @@
color: #fff;
// background: url("../../../img/modules/visual/warning-box.png") no-repeat center;
background-size: 100% 100%;
padding: 45px 21px 35px 24px;
padding-top: 40px;
&-top {
display: flex;
@ -26,8 +26,7 @@
border: 1px solid #1043c0;
box-shadow: 0px 83px 150px 0px #002790;
border-radius: 8px;
margin-right: 15px;
margin-bottom: 15px;
margin: 10px 12px;
&-img {
display: flex;

7
src/assets/scss/shuju-card.scss

@ -1,5 +1,6 @@
@import "c/config";
@import "c/function";
@import "./modules/visual/c/common";
.m-card {
position: relative;
@ -37,6 +38,7 @@
&.card-line-t {
background-image: url(../img/shuju/card/line-t.png);
background-size: auto 22px;
left: 22px;
right: 240px;
top: 0;
@ -44,6 +46,7 @@
}
&.card-line-r {
background-image: url(../img/shuju/card/line-r.png);
background-size: 22px auto;
top: 22px;
bottom: 22px;
right: 0;
@ -51,6 +54,7 @@
}
&.card-line-b {
background-image: url(../img/shuju/card/line-b.png);
background-size: auto 22px;
left: 22px;
right: 240px;
bottom: 0;
@ -58,6 +62,7 @@
}
&.card-line-l {
background-image: url(../img/shuju/card/line-l.png);
background-size: 22px auto;
top: 22px;
bottom: 22px;
left: 0;
@ -69,5 +74,7 @@
min-height: 200px;
background-image: url(../img/shuju/card/bg.png);
background-repeat: repeat;
overflow-y: auto;
@include scrollBar;
}
}

24
src/assets/scss/shuju-variables.scss

@ -0,0 +1,24 @@
// Base
$base--line-height: 1.15;
// Navbar
$navbar--height: 75px;
// Sidebar
$sidebar--width: 230px;
$sidebar--width-fold: 100px;
$sidebar--background-color-dark: #263238;
$sidebar--text-color-dark: #8a979e;
$sidebar--menu-item-height: 48px;
// Content
$content--padding: 10px;
$content--background-color: #f1f4f5;
$content--card-header-height: 60px;
$content--tabs-header-height: 38px;
// Content, 填充整屏高度(非tabs状态) = 整屏高度 - 导航条高度 - aui-content上下内边距高度
$content--fill-height: calc(100vh - #{$navbar--height} - #{$content--padding * 2});
// Content, 填充整屏高度(是tabs状态) = 整屏高度 - 导航条高度 - tabs组件header高度 - tabs组件content上下内边距高度
$content--fill-height-tabs: calc(
100vh - #{$navbar--height} - #{$content--tabs-header-height} - #{$content--padding * 2}
);

2
src/js/dai/request.js

@ -4,6 +4,7 @@
import axios from "axios";
import curry from "dai-js/tools/curry";
import { Message } from "element-ui";
import { clearLoginInfo } from "@/utils";
const request = curry(
(method, url, data = {}, headers = {}, progress = () => {}) => {
@ -42,6 +43,7 @@ const request = curry(
// 10005 token为空 10006登陆超时 10007别处登录
console.log("登录失效");
Message.error(res.data.msg);
clearLoginInfo();
return next({
name: "login",
});

2
src/js/dai/request2.js

@ -4,6 +4,7 @@
import axios from "axios";
import curry from "dai-js/tools/curry";
import { Message } from "element-ui";
import { clearLoginInfo } from "@/utils";
const request = curry(
(method, url, data = {}, headers = {}, progress = () => {}) => {
@ -42,6 +43,7 @@ const request = curry(
// 10005 token为空 10006登陆超时 10007别处登录
console.log("登录失效");
Message.error(res.data.msg);
clearLoginInfo();
return next({
name: "login",
});

87
src/js/store/index.js

@ -8,7 +8,7 @@ import { requestPost } from "@/js/dai/request";
import { dateFormats } from "@/utils/index";
Vue.use(Vuex);
let interTimer = null
let interTimer = null;
export default new Vuex.Store({
namespaced: true,
state: {
@ -42,6 +42,9 @@ export default new Vuex.Store({
tipsList: [],
tipsTime: [],
inIframe: window.self !== window.top,
fixed1920: {
height: document.documentElement.clientHeight,
},
},
modules: {
user,
@ -56,69 +59,71 @@ export default new Vuex.Store({
});
},
SET_TIPS_LIST(state, tipsList) {
let _list = state.tipsList
let _list = state.tipsList;
// state.tipsList = _list.concat(tipsList)
state.tipsList = tipsList
state.tipsList = tipsList;
},
SET_TIPS_TIME(state, time) {
state.tipsTime = time
}
state.tipsTime = time;
},
},
actions: {
clearInter() {
clearInterval(interTimer)
clearInterval(interTimer);
},
setInterval({ commit, dispatch, state }) {
interTimer = setInterval(() => {
const _t = dateFormats('YYYY-mm-dd HH:MM', (new Date(new Date().toLocaleDateString()).getTime()))
const _tt = new Date(_t).getTime()
console.log('230000---', _t)
const t = dateFormats('YYYY-mm-dd HH:MM', (new Date().getTime()))
const nt = new Date(t).getTime()
const _t = dateFormats(
"YYYY-mm-dd HH:MM",
new Date(new Date().toLocaleDateString()).getTime()
);
const _tt = new Date(_t).getTime();
console.log("230000---", _t);
const t = dateFormats("YYYY-mm-dd HH:MM", new Date().getTime());
const nt = new Date(t).getTime();
// 判断当前时间是否为 00:00
if (nt == _tt) {
dispatch('setTipsTime')
return
dispatch("setTipsTime");
return;
}
let times = state.tipsTime
console.log('nt---000', nt)
let times = state.tipsTime;
console.log("nt---000", nt);
state.tipsTime.forEach((item, index) => {
const _t = new Date(item).getTime()
const _t = new Date(item).getTime();
if (_t == nt) {
clearInterval(interTimer)
dispatch('setTipsList', item)
times.splice(index, 1)
commit('SET_TIPS_TIME', times)
clearInterval(interTimer);
dispatch("setTipsList", item);
times.splice(index, 1);
commit("SET_TIPS_TIME", times);
}
})
}, 60000)
});
}, 60000);
},
setTipsList({ commit }, time) {
return new Promise(async (resolve, reject) => {
const url = '/gov/project/memoAttr/memosToRemind'
const url = "/gov/project/memoAttr/memosToRemind";
const params = {
remindTime: time || ''
}
const { data, code, msg } = await requestPost(url, params)
remindTime: time || "",
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
commit('SET_TIPS_LIST', data)
resolve()
} else reject(msg)
})
commit("SET_TIPS_LIST", data);
resolve();
} else reject(msg);
});
},
setTipsTime({ commit, dispatch }) {
return new Promise(async (resolve, reject) => {
if (interTimer) clearInterval(interTimer)
const url = '/gov/project/memoAttr/memoTime'
if (interTimer) clearInterval(interTimer);
const url = "/gov/project/memoAttr/memoTime";
const { data, code, msg } = await requestPost(url)
const { data, code, msg } = await requestPost(url);
if (code === 0) {
commit('SET_TIPS_TIME', data)
if (data.length > 0) dispatch('setInterval')
resolve()
} else reject(msg)
})
}
}
commit("SET_TIPS_TIME", data);
if (data.length > 0) dispatch("setInterval");
resolve();
} else reject(msg);
});
},
},
});

36
src/router/index.js

@ -94,6 +94,16 @@ export const moduleRoutes = {
isTab: true,
},
},
{
path: "404",
props: true,
component: () => import("@/views/modules/404"),
name: "main-404",
meta: {
title: "页面未找到或无权访问",
isTab: false,
},
},
],
};
@ -129,6 +139,16 @@ export const moduleShujuRoutes = {
isTab: false,
},
},
{
path: "404",
props: true,
component: () => import("@/views/modules/visual/404"),
name: "main-shuju-404",
meta: {
title: "页面未找到或无权访问",
isTab: false,
},
},
],
};
@ -519,10 +539,10 @@ function fnAddDynamicMenuRoutes(menuList = [], routes = []) {
children: routes,
},
{
path: "*",
// redirect: {
// name: "404",
// },
path: "/main/*",
redirect: {
path: "/main/404",
},
},
]);
window.SITE_CONFIG["dynamicMenuRoutes"] = routes;
@ -593,10 +613,10 @@ function fnAddDynamicMenuRoutes2(menuList = [], routes = []) {
children: routes,
},
{
path: "*",
// redirect: {
// name: "404",
// },
path: "/main-shuju/*",
redirect: {
path: "/main-shuju/404",
},
},
]);
window.SITE_CONFIG["dynamicMenuRoutesShuju"] = routes;

1
src/utils/index.js

@ -45,6 +45,7 @@ export function getDictLabel(dictType, dictValue) {
export function clearLoginInfo() {
store.commit('resetStore')
Cookies.remove('token')
localStorage.setItem("token", '');
window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] = false
}

62
src/views/components/fixed1920.vue

@ -0,0 +1,62 @@
<template>
<div class="g-app">
<div class="g-bd" :style="bdStyle">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
data() {
return {
clientHeight: document.documentElement.clientHeight,
clientWidth: document.documentElement.clientWidth,
};
},
components: {},
computed: {
bdStyle() {
const { clientHeight, clientWidth } = this;
console.log("clientHeight", clientHeight);
const scale = clientWidth / 1920;
const height = clientHeight / scale;
const top = (clientHeight - height) / 2;
const left = (clientWidth - 1920) / 2;
this.$store.state.fixed1920.height = height;
return {
transform: `scale(${scale})`,
height: `${height}px`,
left: `${left}px`,
top: `${top}px`,
};
},
},
created() {},
mounted() {
window.addEventListener("resize", () => {
this.clientHeight = document.documentElement.clientHeight;
this.clientWidth = document.documentElement.clientWidth;
});
},
methods: {},
};
</script>
<style lang="scss" scoped>
.g-app {
position: absolute;
// width: 1920px;
width: 100%;
height: 100vh;
overflow: hidden;
}
.g-bd {
position: absolute;
width: 1920px;
overflow-x: hidden;
overflow-y: auto;
}
</style>

3
src/views/main-shuju/main-content.vue

@ -1,5 +1,5 @@
<template>
<main :class="['aui-content']">
<main class="g-main">
<!-- tab展示内容 -->
<template>
<template v-if="tabIsIframe($router.currentRoute.meta.iframeURL)">
@ -18,6 +18,7 @@
height="100%"
frameborder="0"
scrolling="yes"
:style="{ height: $store.state.fixed1920.height - 100 + 'px' }"
/>
</template>
<keep-alive v-show="!tabIsIframe($router.currentRoute.meta.iframeURL)">

14
src/views/main-shuju/main.vue

@ -1,4 +1,5 @@
<template>
<fixed1920>
<div
v-loading.fullscreen.lock="loading"
:element-loading-text="$t('loading')"
@ -12,6 +13,7 @@
>
<template v-if="!loading">
<main-navbar ref="ref_navbar" />
<div class="g-cnt">
<main-content
v-if="!$store.state.contentIsNeedRefresh"
@ -20,6 +22,7 @@
</div>
</template>
</div>
</fixed1920>
</template>
<script>
@ -29,6 +32,7 @@ import debounce from "lodash/debounce";
import { mapGetters } from "vuex";
import nextTick from "dai-js/tools/nextTick";
import { requestPost } from "@/js/dai/request";
import fixed1920 from "@/views/components/fixed1920.vue";
export default {
provide() {
@ -51,6 +55,7 @@ export default {
components: {
MainNavbar,
MainContent,
fixed1920,
},
watch: {
@ -133,7 +138,7 @@ export default {
<style lang="scss" src="@/assets/scss/main-shuju.scss" scoped></style>
<style lang="scss">
.info-h {
height: calc(100vh - 320px);
height: calc(100% - 320px);
// overflow: auto;
}
.info-scroll {
@ -145,7 +150,8 @@ export default {
&::-webkit-scrollbar-corner,
/* 滚动条角落 */
&::-webkit-scrollbar-thumb,
&::-webkit-scrollbar-track { /*滚动条的轨道*/
&::-webkit-scrollbar-track {
/*滚动条的轨道*/
border-radius: 4px;
}
@ -153,13 +159,13 @@ export default {
&::-webkit-scrollbar-track {
/* 滚动条轨道 */
background: rgba(12, 129, 254, .24);
background: rgba(12, 129, 254, 0.24);
// box-shadow: inset 0 0 1px rgba(180, 160, 120, 0.5);
}
&::-webkit-scrollbar-thumb {
/* 滚动条手柄 */
background: linear-gradient(270deg, #1257c9, #0095FF);
background: linear-gradient(270deg, #1257c9, #0095ff);
}
}
</style>

16
src/views/modules/404.vue

@ -0,0 +1,16 @@
<template>
<div class="m-404">页面未找到或无权访问</div>
</template>
<script>
export default {};
</script>
<style lang="scss" scoped>
.m-404 {
margin-top: 200px;
font-size: 60px;
color: rgba(#000, 0.3);
text-align: center;
}
</style>

681
src/views/modules/base/organization/organization.vue

File diff suppressed because it is too large

16
src/views/modules/visual/404.vue

@ -0,0 +1,16 @@
<template>
<div class="m-404">页面未找到或无权访问</div>
</template>
<script>
export default {};
</script>
<style lang="scss" scoped>
.m-404 {
margin-top: 200px;
font-size: 60px;
color: rgba(#fff, 0.6);
text-align: center;
}
</style>

2
src/views/modules/visual/basicinfo/houseStatic/houseStatic.vue

@ -12,7 +12,7 @@
<span class="router_child">{{orgName}}</span>
</div>
</div>
<cpt-card>
<cpt-card :min-full-screen="true">
<div class="card-title">
<img class="title-icon"
src="@/assets/img/shuju/title-tip.png" />

8
src/views/modules/visual/basicinfo/people.vue

@ -330,7 +330,7 @@
></cpt-tb>
<div class="m-pagination" v-if="demand.total > demand.pageSize">
<el-pagination
<el-pagination hide-on-single-page
:current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
@ -380,7 +380,7 @@
class="m-pagination"
v-if="incident.total > incident.pageSize"
>
<el-pagination
<el-pagination hide-on-single-page
:current-page="incident.pageNo"
:page-size="incident.pageSize"
:total="incident.total"
@ -413,7 +413,7 @@
</div>
<div class="m-pagination" v-if="topic.total > topic.pageSize">
<el-pagination
<el-pagination hide-on-single-page
:current-page="topic.pageNo"
:page-size="topic.pageSize"
:total="topic.total"
@ -462,7 +462,7 @@
</div>
<div class="m-pagination" v-if="point.total > point.pageSize">
<el-pagination
<el-pagination hide-on-single-page
:current-page="point.pageNo"
:page-size="point.pageSize"
:total="point.total"

8
src/views/modules/visual/basicinfo/peopleList.vue

@ -69,7 +69,7 @@
</div>
<div class="pagination">
<el-pagination background
<el-pagination hide-on-single-page background
layout="prev, pager, next, total"
:current-page="pageNo"
:page-size="pageSize"
@ -226,9 +226,9 @@ export default {
}
}
.list_box {
width: 96%;
width: 100%;
height: 780px;
margin: 20px auto;
margin: 0 auto;
}
.warning-table {
height: 640px;
@ -239,7 +239,7 @@ export default {
text-align: right;
}
.g-bread {
padding: 10px 20px;
padding: 10px 10px 15px;
::v-deep .el-breadcrumb__item {
font-size: 16px;
.el-breadcrumb__inner {

5
src/views/modules/visual/basicinfo/peopleSearch.vue

@ -85,7 +85,7 @@
</div>
<div class="pagination">
<el-pagination background
<el-pagination hide-on-single-page background
layout="prev, pager, next"
:current-page="pageNo"
:page-size="pageSize"
@ -223,7 +223,8 @@ export default {
border-radius: 8px 0 0 8px;
height: 53px;
background-color: #01106800;
border: 2px solid #0082fb;
border: 3px solid #0082fb;
border-right: 0;
padding-left: 70px;
font-size: 18px;
font-family: PingFang SC;

2
src/views/modules/visual/basicinfo/personCategory/recordList.vue

@ -71,7 +71,7 @@
</div>
</div>
<div class="pagination-record">
<el-pagination :current-page="pageNo"
<el-pagination hide-on-single-page :current-page="pageNo"
:page-size="pageSize"
background
layout="prev, pager, next"

2
src/views/modules/visual/communityGovern/distributionAnalyze.vue

@ -1,5 +1,5 @@
<template>
<cpt-card>
<cpt-card style="margin-top:40px">
<div class="title">
<div class="card-title">
<img src="@/assets/img/shuju/title-tip.png" />

13
src/views/modules/visual/communityGovern/duoyuanfuwu/duoyuanfuwufenxi.vue

@ -1,5 +1,5 @@
<template>
<cpt-card>
<cpt-card style="margin-top:40px">
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>多元主体分析</span>
@ -35,7 +35,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background
@ -696,7 +696,8 @@ export default {
margin-right: 3px;
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {
@ -739,14 +740,14 @@ export default {
border-radius: 50%;
}
.card-wr-map {
// height: calc(100vh - 120px);
// height: calc(988px - 120px);
text-align: center;
.card-map {
margin-top: 30px;
width: 100%;
// height: calc(100vh - 285px);
height: calc(100vh - 335px);
// height: calc(988px - 285px);
height: calc(988px - 335px);
padding-left: 20px;
.map {
width: 100%;

2
src/views/modules/visual/communityGovern/fivelayers/mapIndex copy 2.vue

@ -92,7 +92,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background

4
src/views/modules/visual/communityGovern/fivelayers/mapIndex copy.vue

@ -92,7 +92,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background
@ -923,7 +923,7 @@ const vueGis = {
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icDangerousChemicals/detail"
let params = {
icSuperiorResourceId: info.id
icDangerousChemicalsId: info.id
}
const { data, code, msg } = await requestPost(url, params)

2
src/views/modules/visual/communityGovern/fivelayers/mapIndex-baidu.vue

@ -92,7 +92,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background

14
src/views/modules/visual/communityGovern/fivelayers/mapIndex.vue

@ -26,9 +26,8 @@
</div>
<div class="div_data">
<div class="div_tips">
<cpt-card>
<div class="div_coverage">
<div class="coverage_item"
@ -40,8 +39,6 @@
</div>
</div>
<div class="div_category">
<el-scrollbar style="height:98%">
<div v-for="(item,index) in categoryListshow"
:key="index"
class="category_item">
@ -59,12 +56,12 @@
</div>
</div>
</el-scrollbar>
</div>
</cpt-card>
</div>
<div class="div_info">
<cpt-card>
<div class="div_search_list">
<el-input size="mini"
WarningColor='warning'
@ -92,7 +89,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background
@ -102,6 +99,7 @@
</div>
</div>
</cpt-card>
</div>
</div>
@ -924,7 +922,7 @@ const vueGis = {
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/icDangerousChemicals/detail"
let params = {
icSuperiorResourceId: info.id
icDangerousChemicalsId: info.id
}
const { data, code, msg } = await requestPost(url, params)

4
src/views/modules/visual/communityGovern/resibuzz.vue

@ -1,5 +1,5 @@
<template>
<cpt-card>
<cpt-card style="margin-top:40px">
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>居民热议分析</span>
@ -54,7 +54,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background

2
src/views/modules/visual/communityGovern/shijianchuli/shijianchulifenxi copy.vue

@ -103,7 +103,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background

4
src/views/modules/visual/communityGovern/shijianchuli/shijianchulifenxi.vue

@ -1,5 +1,5 @@
<template>
<cpt-card>
<cpt-card style="margin-top:40px">
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>事件处理分析</span>
@ -103,7 +103,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background

4
src/views/modules/visual/communityGovern/shijianfenlei/shijianfenleifenxi.vue

@ -1,5 +1,5 @@
<template>
<cpt-card>
<cpt-card style="margin-top:40px">
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>事件分类分析</span>
@ -90,7 +90,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background

4
src/views/modules/visual/communityGovern/typeAnalyze.vue

@ -1,5 +1,5 @@
<template>
<cpt-card>
<cpt-card style="margin-top:40px">
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>事件分类分析</span>
@ -55,7 +55,7 @@
</div>
<div class="m-pagination">
<el-pagination :current-page="demand.pageNo"
<el-pagination hide-on-single-page :current-page="demand.pageNo"
:page-size="demand.pageSize"
:total="demand.total"
background

15
src/views/modules/visual/communityParty/community.vue

@ -70,7 +70,7 @@
:operate="true"
@look="handleUnitLook"></screen-table>
<div class="pagination">
<el-pagination :current-page="unitpageNo"
<el-pagination hide-on-single-page :current-page="unitpageNo"
:page-size="unitpageSize"
background
layout="prev, pager, next"
@ -162,7 +162,7 @@
:operate="true"
@look="handleLook"></screen-table>
<div class="pagination">
<el-pagination :current-page="pageNo"
<el-pagination hide-on-single-page :current-page="pageNo"
:page-size="pageSize"
background
layout="prev, pager, next"
@ -1078,7 +1078,7 @@ export default {
flex: 1;
}
.card-wr:last-child {
margin-left: 20px;
// margin-left: 20px;
}
::v-deep .table-body {
overflow: auto;
@ -1113,6 +1113,8 @@ export default {
display: flex;
align-items: center;
cursor: pointer;
margin-bottom: 10px;
padding: 4px 2px;
.title-icon {
display: block;
width: 46px;
@ -1121,7 +1123,8 @@ export default {
margin-right: 6px;
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {
width: 180px;
@ -1305,10 +1308,10 @@ export default {
}
}
.table-h {
height: calc(100vh - 630px);
height: calc(988px - 630px);
}
.calc-h {
height: calc(100vh - 240px);
height: calc(988px - 240px);
padding-bottom: 20px;
}
.wd50 {

10
src/views/modules/visual/communityParty/elegant.vue

@ -1,6 +1,6 @@
<template>
<div class="warning-box">
<cpt-card class="card-wr">
<cpt-card :min-full-screen="true" class="card-wr">
<div class="card-title">
<img class="title-icon"
src="../../../../assets/img/shuju/title-tip.png" />
@ -54,7 +54,7 @@
</div>
<div class="pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="pageNo"
:page-size="pageSize"
background
@ -358,6 +358,8 @@ export default {
display: flex;
align-items: center;
cursor: pointer;
margin-bottom: 10px;
padding: 4px 2px;
.title-icon {
display: block;
width: 46px;
@ -366,7 +368,8 @@ export default {
margin-right: 6px;
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {
width: 180px;
@ -566,6 +569,7 @@ export default {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
}
.item-user {

7
src/views/modules/visual/communityParty/gridParty.vue

@ -36,7 +36,7 @@
@row="handleClickRow"
></screen-table>
<div class="pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="pageNo"
:page-size="pageSize"
background
@ -605,6 +605,8 @@ export default {
display: flex;
align-items: center;
cursor: pointer;
margin-bottom: 10px;
padding: 4px 2px;
.title-icon {
display: block;
width: 46px;
@ -655,7 +657,8 @@ export default {
}
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {

11
src/views/modules/visual/communityParty/party.vue

@ -1,6 +1,6 @@
<template>
<div class="warning-box">
<cpt-card>
<cpt-card :min-full-screen="true">
<div class="card-title">
<img class="title-icon" src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
@ -67,7 +67,7 @@
@row="handleClickRow"
></screen-table>
<div class="pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="agePageNo"
:page-size="agePageSize"
background
@ -114,7 +114,7 @@
@row="handleClickRow"
></screen-table>
<div class="pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="pageNo"
:page-size="pageSize"
background
@ -843,6 +843,8 @@ export default {
display: flex;
align-items: center;
cursor: pointer;
margin-bottom: 10px;
padding: 4px 2px;
.title-icon {
display: block;
width: 46px;
@ -893,7 +895,8 @@ export default {
}
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {

9
src/views/modules/visual/communityParty/partyOld.vue

@ -56,7 +56,7 @@
@row="handleClickRow"
></screen-table>
<div class="pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="agePageNo"
:page-size="agePageSize"
background
@ -103,7 +103,7 @@
@row="handleClickRow"
></screen-table>
<div class="pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="pageNo"
:page-size="pageSize"
background
@ -854,6 +854,8 @@ export default {
display: flex;
align-items: center;
cursor: pointer;
margin-bottom: 10px;
padding: 4px 2px;
.title-icon {
display: block;
width: 46px;
@ -904,7 +906,8 @@ export default {
}
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {

51
src/views/modules/visual/cpts/card.vue

@ -1,15 +1,27 @@
<template>
<div class="m-card">
<div class="card-wrap">
<img src="@/assets/img/shuju/card/l-t.png" class="card-corner card-corner-1" />
<img src="@/assets/img/shuju/card/r-t.png" class="card-corner card-corner-2" />
<img src="@/assets/img/shuju/card/r-b.png" class="card-corner card-corner-3" />
<img src="@/assets/img/shuju/card/l-b.png" class="card-corner card-corner-4" />
<img
src="@/assets/img/shuju/card/l-t.png"
class="card-corner card-corner-1"
/>
<img
src="@/assets/img/shuju/card/r-t.png"
class="card-corner card-corner-2"
/>
<img
src="@/assets/img/shuju/card/r-b.png"
class="card-corner card-corner-3"
/>
<img
src="@/assets/img/shuju/card/l-b.png"
class="card-corner card-corner-4"
/>
<div class="card-line card-line-t"></div>
<div class="card-line card-line-l"></div>
<div class="card-line card-line-r"></div>
<div class="card-line card-line-b"></div>
<div class="card-cnt">
<div class="card-cnt" :style="tbStyle">
<slot></slot>
</div>
</div>
@ -19,17 +31,36 @@
<script>
export default {
name: "shuju-card",
data() {
return {
};
},
props: {
isFullScreen: {
type: Boolean,
default: false,
},
minFullScreen: {
type: Boolean,
default: false,
},
},
methods: {
data() {
return {};
},
computed: {
tbStyle() {
let style = {};
if (this.isFullScreen) {
style.height = this.$store.state.fixed1920.height - 180 + "px";
}
if (this.minFullScreen) {
style.minHeight = this.$store.state.fixed1920.height - 180 + "px";
}
return style;
},
},
methods: {},
};
</script>

94
src/views/modules/visual/cpts/tb.vue

@ -1,75 +1,89 @@
<template>
<div class="m-table">
<table class="table"
border="0"
cellspacing="0"
cellpadding="0">
<col :align="item.align"
<table class="table" border="0" cellspacing="0" cellpadding="0">
<col
:align="item.align"
:width="item.width"
:key="'col' + index"
v-for="(item, index) in colList" />
v-for="(item, index) in colList"
/>
<thead>
<tr class="table-header">
<th class="table-header-th"
v-for="item in header"
:key="item">
<th class="table-header-th" v-for="item in header" :key="item">
{{ item }}
</th>
</tr>
</thead>
<tbody class="table-body">
<tr class="table-body-tr"
<tr
class="table-body-tr"
v-for="(value, index) in list"
:key="index"
@click="handleClickRow(index)">
<td class="td"
v-for="(item, indexs) in value"
:key="indexs">
<div v-if="typeof item === 'string' || typeof item === 'number'">
@click="handleClickRow(index)"
>
<td class="td" v-for="(item, indexs) in value" :key="indexs">
<div
v-if="typeof item === 'string' || typeof item === 'number'"
:title="item"
>
{{ item }}
</div>
<div v-if="typeof item === 'object' && item.type === 'img'">
<!-- <span>{{ item.type+ item.src}}</span> -->
<img style="width:18px;height:18px"
:src="item.src"
alt="" />
<img style="width: 18px; height: 18px" :src="item.src" alt="" />
</div>
<div v-if="typeof item === 'object' && item && item.type == 'index'">
<img v-if="highlightTop3 && index == 0"
<div
v-if="typeof item === 'object' && item && item.type == 'index'"
>
<img
v-if="highlightTop3 && index == 0"
src="@/assets/img/shuju/top/1.png"
alt="" />
<img v-else-if="highlightTop3 && index == 1"
alt=""
/>
<img
v-else-if="highlightTop3 && index == 1"
src="@/assets/img/shuju/top/2.png"
alt="" />
<img v-else-if="highlightTop3 && index == 2"
alt=""
/>
<img
v-else-if="highlightTop3 && index == 2"
src="@/assets/img/shuju/top/3.png"
alt="" />
alt=""
/>
<span v-else>{{ index + 1 }}</span>
</div>
<a v-else-if="typeof item === 'object' && item && item.type == 'operate'"
<a
v-else-if="
typeof item === 'object' && item && item.type == 'operate'
"
v-for="btn in item.list"
:key="'operate' + index + btn"
@click="handleClickBtn(index, btn)">{{ btn }}</a>
<a v-else-if="typeof item === 'object' && item && item.type == 'people'"
@click="handleClickPeople(item)">{{ item.name }}</a>
@click="handleClickBtn(index, btn)"
>{{ btn }}</a
>
<a
v-else-if="
typeof item === 'object' && item && item.type == 'people'
"
@click="handleClickPeople(item)"
>{{ item.name }}</a
>
</td>
</tr>
</tbody>
</table>
<div class="table-status"
v-if="loading">
<div class="table-status" v-if="loading">
<screen-loading>加载中</screen-loading>
</div>
<div class="table-status"
v-if="list.length == 0 && !loading">
<div class="table-status" v-if="list.length == 0 && !loading">
<div class="no-data">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
<img src="@/assets/img/modules/visual/noData.png" class="no-data-img" />
</div>
</div>
</div>
@ -77,7 +91,6 @@
<script>
import ScreenLoading from "./loading";
import Vue from "vue";
export default {
name: "table",
@ -180,10 +193,12 @@ export default {
font-size: 16px;
font-weight: 400;
color: #ffffff;
line-height: 50px;
&-th {
text-align: center;
border: none;
font-weight: normal;
// width: calc(100% / 5);
}
}
@ -191,9 +206,10 @@ export default {
&-body {
box-sizing: border-box;
width: 100%;
font-size: 16px;
font-size: 18px;
font-weight: 400;
color: #ffffff;
line-height: 40px;
&-tr {
box-sizing: border-box;
@ -214,7 +230,7 @@ export default {
}
a {
font-size: 16px;
font-size: 18px;
font-weight: 400;
color: #e4dc00;
position: relative;

38
src/views/modules/visual/heart/index.vue

@ -2,12 +2,14 @@
<div>
<div class="m-sizer">
<span>时间</span>
<el-date-picker v-model="monthId"
<el-date-picker
v-model="monthId"
type="month"
:clearable="false"
prefix-icon="el-icon-caret-bottom"
placeholder="选择日期"
value-format="yyyyMM">
value-format="yyyyMM"
>
</el-date-picker>
</div>
@ -19,12 +21,14 @@
<span>公益达人</span>
</div>
<div class="tb">
<cpt-tb :highlight-top3="true"
<div class="tb" :style="tbStyle">
<cpt-tb
:highlight-top3="true"
:col-list="tb3.colList"
:loading="tb3.loading"
:header="tb3.header"
:list="tb3.list"></cpt-tb>
:list="tb3.list"
></cpt-tb>
</div>
</cpt-card>
</div>
@ -36,12 +40,14 @@
<span>党员先锋</span>
</div>
<div class="tb">
<cpt-tb :highlight-top3="true"
<div class="tb" :style="tbStyle">
<cpt-tb
:highlight-top3="true"
:col-list="tb2.colList"
:loading="tb2.loading"
:header="tb2.header"
:list="tb2.list"></cpt-tb>
:list="tb2.list"
></cpt-tb>
</div>
</cpt-card>
</div>
@ -53,12 +59,14 @@
<span>动力网格</span>
</div>
<div class="tb">
<cpt-tb :highlight-top3="true"
<div class="tb" :style="tbStyle">
<cpt-tb
:highlight-top3="true"
:col-list="tb1.colList"
:loading="tb1.loading"
:header="tb1.header"
:list="tb1.list"></cpt-tb>
:list="tb1.list"
></cpt-tb>
</div>
</cpt-card>
</div>
@ -171,7 +179,13 @@ export default {
props: {},
computed: {},
computed: {
tbStyle() {
return {
height: this.$store.state.fixed1920.height - 260 + "px",
};
},
},
components: {
cptCard,

16
src/views/modules/visual/measure/service.vue

@ -1,6 +1,6 @@
<template>
<div class="warning-box">
<cpt-card>
<cpt-card :min-full-screen="true">
<div class="card-title">
<img class="title-icon" src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
@ -129,7 +129,7 @@
@look="handleLook"
></screen-table>
<div class="pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="pageNo"
:page-size="pageSize"
background
@ -578,12 +578,15 @@ export default {
display: flex;
align-items: center;
cursor: pointer;
margin-bottom: 10px;
padding: 4px 2px;
.title-icon {
display: block;
width: 46px;
height: 34px;
// width: 46px;
// height: 34px;
box-sizing: border-box;
margin-right: 6px;
margin-right: 5px;
}
::v-deep .el-dropdown {
font-size: 16px;
@ -629,7 +632,8 @@ export default {
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {
width: 180px;

17
src/views/modules/visual/measure/volunteer.vue

@ -627,22 +627,23 @@ export default {
.card-wr:last-child {
margin-left: 20px;
}
padding: 25px 21px 15px 24px;
}
.card-title {
display: flex;
align-items: center;
cursor: pointer;
margin-bottom: 10px;
padding: 4px 2px;
.title-icon {
display: block;
width: 36px;
height: 29px;
// width: 36px;
// height: 29px;
box-sizing: border-box;
margin-right: 3px;
margin-right: 5px;
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {
@ -782,14 +783,14 @@ export default {
}
.card-wr-map {
// height: calc(100vh - 120px);
// height: calc(988px - 120px);
text-align: center;
.card-map {
margin-top: 30px;
width: 100%;
// height: calc(100vh - 285px);
height: calc(100vh - 335px);
// height: calc(988px - 285px);
height: calc(988px - 335px);
padding-left: 20px;
.map {
width: 100%;

5
src/views/modules/visual/plugin/power/components/house-dialog.vue

@ -120,7 +120,8 @@ export default {
margin-right: 6px;
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {
width: 180px;
@ -138,7 +139,7 @@ export default {
}
.dialog-bg {
width: 100vw;
height: 100vh;
height: 988px;
position: fixed;
left: 0;
top: 0;

3
src/views/modules/visual/plugin/power/components/info-dialog.vue

@ -91,7 +91,8 @@ export default {
margin-right: 6px;
}
.title-label {
font-size: 20px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
::v-deep .el-input {
width: 180px;

53
src/views/modules/visual/warning/components/screen-table/index.vue

@ -1,5 +1,6 @@
<template>
<div class="warning-table">
<div>
<!-- <div class="warning-table">
<div class="table">
<div class="table-header">
<div
@ -40,6 +41,16 @@
</div>
</div>
</div>
</div> -->
<cpt-tb
:highlight-top3="true"
:col-list="tableContentStyle"
:loading="visibleLoading"
:header="headerList.map((item) => item.title)"
:list="cptTbData"
@operate="handleOperate"
></cpt-tb>
<people-list
v-if="showedPeopleList && buildingId"
@ -53,14 +64,15 @@
<script>
import ScreenLoading from "../screen-loading/index";
import Vue from "vue";
import peopleList from "./people-list";
import cptTb from "@/views/modules/visual/cpts/tb";
export default {
name: "warning-table",
components: {
ScreenLoading,
peopleList,
cptTb,
},
props: {
headerList: {
@ -133,22 +145,8 @@ export default {
type: Boolean,
default: true,
},
// //
// ava: {
// type: Number,
// default: 8
// },
// // --10%
// headerHeightAva: {
// type: String,
// default: '10%'
// },
// //
// tableContentAva: {
// type: Number,
// default: 5
// },
},
data() {
return {
//
@ -158,6 +156,22 @@ export default {
gridName: "",
};
},
computed: {
cptTbData() {
return this.tableData.map((item) => {
return item.map((subitem) => {
if (subitem.type && subitem.type == "btn") {
subitem.type = "operate";
subitem.list = [subitem.name];
}
console.log(subitem);
return subitem;
});
});
},
},
watch: {},
mounted() {},
@ -165,6 +179,11 @@ export default {
created() {},
methods: {
handleOperate(index) {
let item = this.tableData[index];
this.handleClickBtn(item[item.length - 1]);
},
handleClickBtn(item) {
this.showedPeopleList = true;
this.buildingId = item.buildingId;

2
src/views/modules/visual/warning/components/screen-table/people-list.vue

@ -22,7 +22,7 @@
</div>
<div class="m-pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="pageNo"
:page-size="pageSize"
background

4
src/views/modules/visual/warning/index.vue

@ -1,6 +1,6 @@
<template>
<div class="warning-box">
<cpt-card>
<cpt-card :min-full-screen="true">
<div class="warning-box-top">
<div class="top-item" v-for="(item, index) in warningList" :key="index">
<div class="top-item-img">
@ -53,7 +53,7 @@
:visibleLoading="visibleLoading"
></screen-table>
<div class="pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="pageNo"
:page-size="pageSize"
background

2
src/views/modules/warning/index.vue

@ -52,7 +52,7 @@
:visibleLoading="visibleLoading"
></screen-table>
<div class="pagination">
<el-pagination
<el-pagination hide-on-single-page
:current-page="pageNo"
:page-size="pageSize"
background

379
src/views/modules/workSys/role/role.vue

@ -0,0 +1,379 @@
<template>
<div class="div_main">
<div class="div_search">
<el-form :inline="true"
:model="formData"
ref="ref_searchform"
:label-width="'110px'">
<el-form-item label="角色名称"
prop="name">
<el-input v-model="formData.name"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入角色名称">
</el-input>
</el-form-item>
<!-- <el-form-item label="创建时间"
label-width="110px"
prop="createdTime">
<el-date-picker v-model="formData.createdTime"
size="small"
type="datetime"
@change="handleTimeChange"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
placeholder="创建时间">
</el-date-picker>
</el-form-item> -->
<el-button style="margin-left:30px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</el-form>
</div>
<div class="div_table">
<div class="div_btn">
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
</div>
<el-table class="table"
ref="ref_table"
:data="tableData"
border
:height="tableHeight"
v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="name"
header-align="center"
align="center"
label="角色名称"
min-width="100">
</el-table-column>
<el-table-column prop="remark"
header-align="center"
align="center"
label="备注"
min-width="110">
</el-table-column>
<el-table-column prop="createdTime"
header-align="center"
align="center"
label="创建时间"
min-width="170">
</el-table-column>
<el-table-column label="操作"
fixed="right"
width="140"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<el-button v-if="true"
type="text"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button type="text"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button type="text"
class="div-table-button--delete "
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</div>
<!-- 修改弹出框 -->
<el-dialog :visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<role-form ref="ref_form"
@dialogCancle="diaClose"
@dialogOk="addFormOk"></role-form>
</el-dialog>
</div>
</template>
<script>
import roleForm from './roleForm'
import { requestPost, requestGet } from '@/js/dai/request'
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
return {
loading: false,
total: 0,
pageSize: 20,
pageNo: 0,
tableLoading: false,
isResiUser: true,
agencyId: '',
timeRange: [],
formData: {
name: '',//
// createdTime: '',//
},
tableData: [],
//form
formShow: false,
formTitle: '新增',
}
},
components: {
roleForm
},
async created () {
},
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
await this.loadTable()
},
activated () {
this.$refs['ref_table'].doLayout()
},
methods: {
async handleSearch () {
this.isResiUser = this.formData.orgType === 'current'
await this.loadTable()
this.$nextTick(() => {
this.$refs.ref_table.doLayout() //
})
},
async loadTable () {
this.tableLoading = true
const url = "/gov/access/govrole/page"
let params = {
pageSize: this.pageSize,
pageNo: this.pageNo,
...this.formData
}
const { data, code, msg } = await requestGet(url, params)
if (code === 0) {
this.total = data.total
this.tableData = data.list
} else {
this.$message.error(msg)
}
this.tableLoading = false
},
handleTimeChange (time) {
if (time) {
this.formData.startTime = time[0]
this.formData.endTime = time[1]
} else {
this.formData.startTime = ''
this.formData.endTime = ''
}
},
diaClose () {
this.$refs.ref_form.resetData()
this.formShow = false
},
handleAdd () {
this.formTitle = '新增'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm('add', null)
})
},
handleEdit (row) {
this.formTitle = '修改'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm('edit', row.id)
})
},
handleDetail (row) {
this.formTitle = '详情'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm('detail', row.id)
})
},
addFormOk () {
this.formShow = false
this.loadTable()
},
async handleDelete (row) {
let message = '确认删除?'
this.$confirm(message, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.deleteRole(row)
})
.catch(err => {
});
},
async deleteRole (row) {
const url = "/gov/access/govrole/del"
let params = [row.id]
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.$message({
type: "success",
message: "操作成功"
});
this.loadTable()
} else {
this.$message.error(msg)
}
},
//
resetSearch () {
this.formData = {
name: '',//
}
this.pageNo = 0
this.loadTable()
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 360 + this.iframeHeight : this.clientHeight - 360
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/epidemic.scss";
</style>

356
src/views/modules/workSys/role/roleForm.vue

@ -0,0 +1,356 @@
<template>
<div class="epidemic-form">
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType==='detail'"
class="form">
<el-form-item label="角色名称"
prop="name"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
placeholder="请输入角色名称"
clearable
v-model="formData.name">
</el-input>
</el-form-item>
<el-form-item label="备注"
prop="remark"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="500"
show-word-limit
:autosize="{ minRows: 5, maxRows: 10 }"
clearable
placeholder="请输入备注"
v-model="formData.remark"></el-input>
</el-form-item>
<el-form-item label="管理平台菜单"
prop="content"
label-width="150px"
style="display: block">
<el-tree class="item_width_1"
:data="menuList"
:props="{ label: 'name', children: 'children' }"
node-key="id"
:default-expanded-keys="['000']"
ref="menuListTree"
accordion
show-checkbox>
</el-tree>
</el-form-item>
<el-form-item label="可视化平台菜单"
prop="content"
label-width="150px"
style="display: block">
<el-tree class="item_width_1 item_border"
:data="menuListShuju"
:props="{ label: 'name', children: 'children' }"
node-key="id"
:default-expanded-keys="['000']"
ref="menuListShujuTree"
accordion
show-checkbox>
</el-tree>
</el-form-item>
</el-form>
</div>
<div class="form_div_btn">
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
size="small"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
</div>
</template>
<script>
import { Loading } from 'element-ui' // Loading
import { requestPost, requestGet } from '@/js/dai/request'
let loading //
export default {
data () {
return {
formType: 'add', // addeditdetail
btnDisable: false,
roleId: '',
menuList: [],
menuListShuju: [],
formData: {
id: '',
name: '',
remark: '',//
menuIdList: [],
customerId: ''
},
}
},
components: {},
async mounted () {
},
methods: {
async initForm (type, roleId) {
this.startLoading()
this.customerId = localStorage.getItem("customerId");
this.formData.customerId = this.customerId
//
await this.getMenuList()
await this.getMenuShujuList()
this.$refs.menuListTree.setCheckedKeys([])
this.$refs.menuListShujuTree.setCheckedKeys([])
this.formType = type
if (roleId) {
this.roleId = roleId
this.formData.id = roleId
this.loadFormData()
}
this.endLoading()
},
async getMenuList () {
const url = "/gov/access/menu/nav"
let params = {}
const { data, code, msg } = await requestGet(url, params)
if (code === 0) {
this.menuList = [
{
id: '000',
name: '全部菜单',
children: [...data]
}
]
// this.menuList = data
} else {
this.$message.error(msg)
}
},
async getMenuShujuList () {
const url = "/gov/access/menu/nav"
let params = {
tableName: 'data_menu'
}
const { data, code, msg } = await requestGet(url, params)
if (code === 0) {
this.menuListShuju = [
{
id: '000',
name: '全部菜单',
children: [...data]
}
]
// this.menuListShuju = data
} else {
this.$message.error(msg)
}
},
async loadFormData () {
// const url = 'http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/detail'
const url = '/gov/access/govrole/' + this.roleId
let params = {
}
const { data, code, msg } = await requestGet(url, params)
if (code === 0) {
this.formData = data
this.formData.menuIdList.forEach(item => {
this.$refs.menuListTree.setChecked(item, true)
})
this.formData.menuIdList.forEach(item => {
this.$refs.menuListShujuTree.setChecked(item, true)
})
this.formData.customerId = this.customerId
} else {
this.$message.error(msg)
}
},
handleComfirm () {
this.$refs['ref_form'].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj)
} else {
this.addNat()
}
})
},
async addNat () {
this.formData.menuIdList = []
this.formData.menuIdList = [
...this.$refs.menuListTree.getCheckedKeys(),
...this.$refs.menuListTree.getHalfCheckedKeys(),
...this.$refs.menuListShujuTree.getCheckedKeys(),
...this.$refs.menuListShujuTree.getHalfCheckedKeys()
]
this.formData.menuIdList = this.formData.menuIdList.filter(item => item !== '000')
console.log('menuAll', this.formData)
// return false
this.btnDisable = true
setTimeout(() => {
this.btnDisable = false
}, 5000)
let url = ''
if (this.formType === 'add') {
url = '/gov/access/govrole/save'
this.formData.roleId = ''
} else {
url = '/gov/access/govrole/edit'
}
const { data, code, msg } = await requestPost(url, this.formData)
if (code === 0) {
this.$message({
type: 'success',
message: '操作成功'
})
this.resetData()
this.$emit('dialogOk')
this.btnDisable = false
} else {
this.btnDisable = false
this.$message.error(msg)
}
},
handleCancle () {
this.resetData()
this.$emit('dialogCancle')
},
resetData () {
this.roleId = ''
this.formData = {
id: '',
name: '',
remark: '',//
menuIdList: [],
customerId: ''
}
this.$refs['ref_form'].resetFields()
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
dataRule () {
return {
name: [
{ required: true, message: '角色名称不能为空', trigger: 'change' }
],
}
},
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/epidemic.scss";
.item_border {
border: 1px;
border-radius: 50%;
}
</style>
<style lang='scss'>
//
.hide .el-upload--picture-card {
display: none;
}
// /
.el-upload-list__item {
transition: none !important;
}
</style>

4
src/views/pages/404.vue

@ -2,11 +2,11 @@
<div class="aui-wrapper aui-page__not-found">
<div class="aui-content__wrapper">
<div class="aui-content">
<h2 class="title">404</h2>
<h2 class="title" style="font-size: 60px">页面未找到或无权访问</h2>
<p class="desc" v-html="$t('notFound.desc')"></p>
<div class="btn-bar">
<el-button @click="$router.go(-1)">{{ $t('notFound.back') }}</el-button>
<el-button type="primary" @click="$router.push({ name: 'home' })">{{ $t('notFound.home') }}</el-button>
<el-button type="primary" @click="$router.push({ name: 'index' })">{{ $t('notFound.home') }}</el-button>
</div>
</div>
</div>

85
src/views/pages/index.vue

@ -1,27 +1,39 @@
<template>
<div class="g-app">
<div class="g-bd" v-if="true">
<div class="g-bd"
v-if="true">
<div class="m-list">
<div class="list">
<div class="item" @click="handleClickItem(1)">
<img class="logo" src="@/assets/img/index/logo-1.png" alt="" />
<div class="item"
@click="handleClickItem(1)">
<img class="logo"
src="@/assets/img/index/logo-1.png"
alt="" />
<!-- 数字社区管理平台 -->
<div class="name">党建引领基层治理互联管理平台</div>
<img src="@/assets/img/index/zhuangshi.png" class="tip" />
<img src="@/assets/img/index/zhuangshi.png"
class="tip" />
</div>
<div class="item z-on" @click="handleClickItem(2)">
<img class="logo" src="@/assets/img/index/logo-2.png" alt="" />
<div class="item z-on"
@click="handleClickItem(2)">
<img class="logo"
src="@/assets/img/index/logo-2.png"
alt="" />
<!-- 数字社区可视化平台 -->
<div class="name">数据分析可视化平台</div>
<img src="@/assets/img/index/zhuangshi.png" class="tip" />
<img src="@/assets/img/index/zhuangshi.png"
class="tip" />
</div>
</div>
</div>
<div class="m-footer">
<div class="login-footer">
<p>
<a href="http://www.elinkchina.com.cn/" target="_blank">{{ $t('login.copyright') }}</a>
<a href="http://www.elinkchina.com.cn/"
target="_blank">{{
$t("login.copyright")
}}</a>
</p>
</div>
</div>
@ -29,60 +41,69 @@
</div>
</template>
<script>
import Cookies from 'js-cookie'
import debounce from 'lodash/debounce'
import { messages } from '@/i18n'
import { getUUID } from '@/utils'
import { Loading } from 'element-ui' // Loading
import JSEncrypt from 'jsencrypt' //
import Cookies from "js-cookie";
import debounce from "lodash/debounce";
import { messages } from "@/i18n";
import { getUUID } from "@/utils";
import { Loading } from "element-ui"; // Loading
import JSEncrypt from "jsencrypt"; //
let loading //
let loading; //
export default {
data () {
return {
pubKey: null, //
isShowLogin: true,
i18nMessages: messages
}
i18nMessages: messages,
};
},
components: {},
computed: {},
created () { },
mounted () { },
beforeRouteEnter (to, from, next) {
console.log(from);
if (from.name == "login") {
next();
location.reload();
}
next();
},
methods: {
handleClickItem (k) {
if (k == 1) {
this.$router.replace({ name: 'main' })
this.$router.replace({ name: "main" });
} else if (k == 2) {
this.$router.replace({ name: 'main-shuju' })
this.$router.replace({ name: "main-shuju" });
}
},
//
getAutoLogin (platformToken) {
this.dataForm.thirdToken = platformToken
this.dataForm.platform = 'pyld'
this.dataForm.thirdToken = platformToken;
this.dataForm.platform = "pyld";
this.$http
.post(`/auth/sso/oper/third/login`, this.dataForm)
.then(({ data: res }) => {
if (res.code !== 0) {
if (res.code == 8302) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
localStorage.setItem('customerId', res.data.customerId)
localStorage.setItem('userType', 'work')
localStorage.setItem('showHeader', '0')
localStorage.setItem('token', res.data.token)
this.$router.replace({ name: 'home' })
localStorage.setItem("customerId", res.data.customerId);
localStorage.setItem("userType", "work");
localStorage.setItem("showHeader", "0");
localStorage.setItem("token", res.data.token);
this.$router.replace({ name: "home" });
})
.catch(() => {})
.catch(() => { });
// epmet-ext9.elinkservice.cn/platform-admin
}
}
}
},
},
};
</script>
<style lang="scss" src="@/assets/scss/pages/indexWork.scss" scoped></style>

2
src/views/pages/login.vue

@ -247,7 +247,7 @@ export default {
localStorage.setItem("userType", "work");
localStorage.setItem("showHeader", "0");
localStorage.setItem("token", res.data.token);
this.$router.replace({ name: "home" });
this.$router.replace({ name: "index" });
})
.catch(() => {});
// epmet-ext9.elinkservice.cn/platform-admin

Loading…
Cancel
Save