fanghuisheng 2 years ago
parent
commit
5170f1ba46
33 changed files with 1490 additions and 3644 deletions
  1. 14 12
      src/App.vue
  2. 804 701
      src/common/common.scss
  3. 49 0
      src/common/public.scss
  4. 0 21
      src/components/echarts/echarts.simple.min.js
  5. 4 2
      src/main.js
  6. 2 2
      src/manifest.json
  7. 12 57
      src/pages.json
  8. 58 60
      src/pages/analyse/analyse.vue
  9. 0 262
      src/pages/analyse/buildingCheck/buildingCheck.vue
  10. 0 195
      src/pages/analyse/buildingCheck/components/chart/chart.vue
  11. 0 188
      src/pages/analyse/monthDetail/components/chart.vue
  12. 0 204
      src/pages/analyse/monthDetail/components/chart2.vue
  13. 0 203
      src/pages/analyse/monthDetail/components/chart3.vue
  14. 0 203
      src/pages/analyse/monthDetail/components/chart4.vue
  15. 0 400
      src/pages/analyse/monthDetail/monthDetail.vue
  16. 0 65
      src/pages/analyse/monthReport/monthReport.vue
  17. 0 204
      src/pages/index/components/chart/chart.vue
  18. 0 204
      src/pages/index/components/chart2/chart2.vue
  19. 0 236
      src/pages/index/components/chart3/chart3.vue
  20. 0 39
      src/pages/index/components/chart4/chart4.vue
  21. 2 22
      src/pages/index/index.vue
  22. 94 39
      src/pages/login/login.vue
  23. 167 169
      src/pages/setting/setting.vue
  24. 3 19
      src/pages/xunJian/components/echarts/chart.vue
  25. 1 1
      src/pages/xunJian/plan/components/content.vue
  26. 1 1
      src/pages/xunJian/plan/components/report.vue
  27. 0 1
      src/pages/xunJian/plan/components/siteDetails.vue
  28. 13 1
      src/pages/xunJian/plan/index.vue
  29. 145 123
      src/pages/xunJian/recordDetail/recordDetail.vue
  30. 23 0
      src/store/modules/user.js
  31. 38 10
      src/utils/api.js
  32. 8 0
      src/utils/router/config.js
  33. 52 0
      src/utils/router/init.js

+ 14 - 12
src/App.vue

@@ -1,15 +1,17 @@
-<script>
-export default {
-  onLaunch: function () {
-    console.log("App Launch");
-  },
-  onShow: function () {
-    console.log("App Show");
-  },
-  onHide: function () {
-    console.log("App Hide");
-  },
-};
+<script setup>
+import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
+
+onLaunch(() => {
+  console.log("App Launch");
+});
+
+onShow(() => {
+  console.log("App Show");
+});
+
+onHide(() => {
+  console.log("App Hide");
+});
 </script>
 
 <style>

+ 804 - 701
src/common/common.scss

@@ -1,143 +1,171 @@
 /* common */
 
-	* {
-			-webkit-touch-callout: none;
-			-webkit-user-select: none;
-			-khtml-user-select: none;
-			-moz-user-select: none;
-			-ms-user-select: none;
-			user-select: none;
-		}
-		
-	body .uni-input-input,body .uni-textarea-textarea{
-				-webkit-touch-callout: initial!important;
-				-webkit-user-select: initial!important;
-				-khtml-user-select: initial!important;
-				-moz-user-select: initial!important;
-				-ms-user-select: initial!important;
-				user-select: initial!important;
-			}
+* {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+body .uni-input-input,
+body .uni-textarea-textarea {
+	-webkit-touch-callout: initial !important;
+	-webkit-user-select: initial !important;
+	-khtml-user-select: initial !important;
+	-moz-user-select: initial !important;
+	-ms-user-select: initial !important;
+	user-select: initial !important;
+}
+
+body .el-input,
+body .el-input__inner {
+	-webkit-touch-callout: initial !important;
+	-webkit-user-select: initial !important;
+	-khtml-user-select: initial !important;
+	-moz-user-select: initial !important;
+	-ms-user-select: initial !important;
+	user-select: initial !important;
+}
 
 body {
 	font-size: 32rpx;
 }
-.cut{
+
+.cut {
 	white-space: nowrap;
-	    overflow: hidden;
-	    text-overflow: ellipsis;
+	overflow: hidden;
+	text-overflow: ellipsis;
 }
-.text-cut{
+
+.text-cut {
 	white-space: nowrap;
-	    overflow: hidden;
-	    text-overflow: ellipsis;
-		width:85%
+	overflow: hidden;
+	text-overflow: ellipsis;
+	width: 85%
 }
 
 
-radio,checkbox {
-			transform: scale(0.7)
+radio,
+checkbox {
+	transform: scale(0.7)
 }
 
 /* 修改placeholder颜色 */
-	.uni-input-placeholder{
-		color:#999
-	}
-	
-	
-	table{
-		border-collapse: collapse;
-		width:100%;
-		text-align:left
-	}
-	table,tr,td,th{
-		border:1px solid #e2e2e2;
-	}
-	td,th{
-		padding:14rpx 10rpx;
-		font-size:26rpx;
-	}
-	
-	.imgPic image{
-		width:100%
-	}
-	
-	
-	
-	
+.uni-input-placeholder {
+	color: #999
+}
+
+
+table {
+	border-collapse: collapse;
+	width: 100%;
+	text-align: left
+}
+
+table,
+tr,
+td,
+th {
+	border: 1px solid #e2e2e2;
+}
+
+td,
+th {
+	padding: 14rpx 10rpx;
+	font-size: 26rpx;
+}
+
+.imgPic image {
+	width: 100%
+}
+
+
+
+
 /* 一行显示*/
-.inOneLine{
+.inOneLine {
 	white-space: nowrap;
 	overflow: hidden;
 	text-overflow: ellipsis;
 }
+
 /* 画面监控引入特殊字体 */
-	@font-face {
-	  font-family: 'FANDOLFANG-REGULAR';  /* project id 2394829 */
-	  src: url('static/font/FANDOLFANG-REGULAR.OTF');
-	}
+@font-face {
+	font-family: 'FANDOLFANG-REGULAR';
+	/* project id 2394829 */
+	src: url('static/font/FANDOLFANG-REGULAR.OTF');
+}
+
 /* 巡检计划图表入特殊字体 */
 @font-face {
-	  font-family: 'IMPACT';  /* project id 2394829 */
-	  src: url('static/font/IMPACT.TTF');
-	}
-
-.cu-bar .search-form uni-input{
-	padding:0 30rpx
-}
-.searchSelect{
-		position: -webkit-fixed;
-		    position: fixed;
-		    // top: 88rpx;
-			left: 0;
-			bottom: 50px;
-			top: var(--window-top);
-		    z-index: 999;
-		    -webkit-box-flex: 1;
-		    -webkit-flex: 1;
-		    flex: 1;
-		    -webkit-box-orient: vertical;
-		    -webkit-box-direction: normal;
-		    -webkit-flex-direction: column;
-		    flex-direction: column;
-		    overflow: hidden;
-		    background-color: #fff;
-			width:254rpx;
-			.search{
-				min-height:80rpx;
-			}
-			.search-form{
-				border:1px solid #E9E9E9;
-				height:50rpx;
-				line-height:50rpx;
-				
-				
-				.cuIcon-search{
-					color:#4074E7
-				}
-				input{
-					padding-left:20rpx;
-					padding-right:0rpx
-				}
-			}
-			.select-item{
-				 padding:12rpx 32rpx;
-				text-align:center;
-				border-top:1px solid #E9E9E9;
-				font-size:28rpx
-				
-			}
-	}
-		
+	font-family: 'IMPACT';
+	/* project id 2394829 */
+	src: url('static/font/IMPACT.TTF');
+}
+
+.cu-bar .search-form uni-input {
+	padding: 0 30rpx
+}
+
+.searchSelect {
+	position: -webkit-fixed;
+	position: fixed;
+	// top: 88rpx;
+	left: 0;
+	bottom: 50px;
+	top: var(--window-top);
+	z-index: 999;
+	-webkit-box-flex: 1;
+	-webkit-flex: 1;
+	flex: 1;
+	-webkit-box-orient: vertical;
+	-webkit-box-direction: normal;
+	-webkit-flex-direction: column;
+	flex-direction: column;
+	overflow: hidden;
+	background-color: #fff;
+	width: 254rpx;
+
+	.search {
+		min-height: 80rpx;
+	}
+
+	.search-form {
+		border: 1px solid #E9E9E9;
+		height: 50rpx;
+		line-height: 50rpx;
+
+
+		.cuIcon-search {
+			color: #4074E7
+		}
+
+		input {
+			padding-left: 20rpx;
+			padding-right: 0rpx
+		}
+	}
+
+	.select-item {
+		padding: 12rpx 32rpx;
+		text-align: center;
+		border-top: 1px solid #E9E9E9;
+		font-size: 28rpx
+	}
+}
+
 /* 九宫格样式 */
 .cu-list.grid>.cu-item uni-text {
 	color: #333;
 	font-size: 30rpx;
-	margin-top:14rpx
+	margin-top: 14rpx
 }
 
 .cu-list.menu-avatar>.cu-item>.cu-avatar {
 	left: 24rpx;
-	background-color:rgba(0,0,0,0)
+	background-color: rgba(0, 0, 0, 0)
 }
 
 .cu-list.menu-avatar>.cu-item .action {
@@ -146,17 +174,18 @@ radio,checkbox {
 
 
 .iconfont.phone {
-		color:#08BE04!important;
-		font-size:45rpx;
-		position:relative;
-		top:6rpx;
-		left:10rpx;
-	}
-	.iconfont.map{
-		color:#4074E7!important;
-		font-size:38rpx;
-	}
-	
+	color: #08BE04 !important;
+	font-size: 45rpx;
+	position: relative;
+	top: 6rpx;
+	left: 10rpx;
+}
+
+.iconfont.map {
+	color: #4074E7 !important;
+	font-size: 38rpx;
+}
+
 /* 列列表公共样式 */
 .processWrapper .cu-avatar {
 	background-repeat: no-repeat;
@@ -183,49 +212,54 @@ radio,checkbox {
 	width: 580rpx;
 }
 
-.unProcess,.error {
+.unProcess,
+.error {
 	color: #FF4E00
 }
 
-.processed ,.online{
+.processed,
+.online {
 	color: #08BE04
 }
+
 .bg-error {
 	background: #FF4E00;
-	color:#fff;
-	display:inline-block;
-	padding:0 10px ;
+	color: #fff;
+	display: inline-block;
+	padding: 0 10px;
 }
 
-.bg-online{
+.bg-online {
 	background: #08BE04;
-	color:#fff;
-	display:inline-block;
-	padding:0 10px ;
+	color: #fff;
+	display: inline-block;
+	padding: 0 10px;
 }
 
 
 // 底部操作样式 (分享  设备注册)
-	.share{
-		position:fixed;
-		bottom:0;
-		left:0;
-		width:100%;
-		background: #f4f5f7;
-		border: 1px solid #e6e6e6;
-		.share-item{
-			padding:20rpx;
-			
-		}
-		.share-item:nth-child(2){
-			border-left:1px solid #e6e6e6;
-			border-right:1px solid #e6e6e6;
-		}
+.share {
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	width: 100%;
+	background: #f4f5f7;
+	border: 1px solid #e6e6e6;
+
+	.share-item {
+		padding: 20rpx;
+
+	}
+
+	.share-item:nth-child(2) {
+		border-left: 1px solid #e6e6e6;
+		border-right: 1px solid #e6e6e6;
 	}
-	
-	
-	
-	
+}
+
+
+
+
 
 /* 页面样式 */
 
@@ -248,7 +282,7 @@ radio,checkbox {
 
 /* 站点列表 */
 .site-items {
-	margin-top:100rpx;
+	margin-top: 100rpx;
 	width: 100%;
 	height: calc(100% - 100rpx);
 	// overflow: scroll
@@ -257,8 +291,8 @@ radio,checkbox {
 .site-items .site-tit {
 	font-size: 32rpx;
 	color: #333;
-	    justify-content: space-between;
-	
+	justify-content: space-between;
+
 }
 
 .site-items .cu-avatar {}
@@ -271,11 +305,11 @@ radio,checkbox {
 }
 
 
-	
-	
+
+
 /* 已处理未处理列表 */
 .processList .cu-list.menu-avatar .cu-item {
-	
+
 	height: 180rpx;
 }
 
@@ -291,17 +325,19 @@ radio,checkbox {
 
 .pro-res {}
 
-.processList{
-	
+.processList {
+
 	width: 100%;
 	height: calc(100% - 90rpx);
 	overflow-y: scroll;
 }
-.fireBashWrapper.pushListWrapper{
-	margin-top:0rpx;
+
+.fireBashWrapper.pushListWrapper {
+	margin-top: 0rpx;
 }
-.share-item.active{
-	color:red
+
+.share-item.active {
+	color: red
 }
 
 
@@ -329,8 +365,9 @@ radio,checkbox {
 	border-bottom: 1px solid #EDEDED;
 	line-height: 92rpx;
 	color: #666;
+
 	.checkMore {
-		color: #4074E7!important
+		color: #4074E7 !important
 	}
 
 }
@@ -338,7 +375,7 @@ radio,checkbox {
 
 
 .info-content view text:first-child {
-	width: auto!important;
+	width: auto !important;
 	display: inline-block
 }
 
@@ -346,254 +383,66 @@ radio,checkbox {
 
 //分析页面
 .analyse-wrapper {
-		.top-banner {
-			width: 100%;
-			height: 273rpx;
-			// background: url(/static/analyse-bg.png) no-repeat;
-			background-size:cover;
-			position:relative;
-			
-		}
-		
-		.cu-list.menu-avatar .cu-item{
-			margin:30rpx 0 0;
-			margin-left:0;
-			.cu-avatar{
-				background-color:rgba(0,0,0,0);
-				left:26rpx;
-			}
-			.content{
-				left:130rpx;
-				font-size:32rpx;
-			}
-		}
-	}
-	
-	//消息页面
-	.image-bg {
-	    position: absolute;
-	    z-index: -1;
-	    left: 0;
-	    right: 0;
-	    bottom: 0;
-	    right: 0;
-	    width: 100%;
-	    height: 100%;
-	}
-	.info-wrapper {
-			.top-banner {
-				background: none;
-				background-size:cover;
-				position:relative
-			}
-		}
-	
-	.submitBottomBtn {
-		position: fixed;
+	.top-banner {
 		width: 100%;
-		left:0;
-		bottom: 44rpx;
-		z-index: 9;
-		// background-color: #ffffff;
-	}
-	
-	
-	
-	// 权限新增
-	
-	.perAppWrapper{
-		input,
-		select,
-		option {
-			line-height: 70rpx;
-			padding: 0 20rpx;
-			height: 70rpx;
-			border: 1px solid #EDEDED;
-			// width:500rpx!important;
-			background-color: #fff;
-			box-sizing: border-box;
-			appearance: none;
-			-moz-appearance: none;
-			-webkit-appearance: none;
-			color: #999;
-		
-		}
-		
-		
-	}
-	.siteItems{
-		z-index:999;
-		position:absolute;
-		border:1px solid #eee;
-		width:100%;
-		.site-item{
-			background:#fff;
-			padding:10rpx;
-			font-size:28rpx;
-			
-		}
-		
-	}
-	.selectedBox .cuIcon-close{
-		position:relative;
-		top:3rpx;
-		right:-10rpx;
-	}
-	.noResult{
-		padding:0 20rpx;
-		font-size:28rpx;
-		color:#aaa
-	}
-	
-	
-	// 离线设备
-	
-	.ding{
-		position:fixed;
-		width:100%;
-		top: var(--window-top);
-			// position: sticky;
-				/* #ifdef H5 */
-				// top: 44px;
-				/* #endif */
-				/* #ifndef H5 */
-				// top: 0;
-				/* #endif */
-				z-index: 999;
-				flex: 1;
-				flex-direction: column;
-				overflow: hidden;
-				background-color: #ffffff;
-		
-		}
-		
-	.cu-bar{
-		min-height:0rpx;
-		
-	}
-	.cu-bar .search-form {
-		margin:26rpx 24rpx 0;
-		
-	}
-	uni-textarea{
-		width:500rpx;
-	}
-	uni-label uni-text{
-		position: relative;
-		    top: 2px;
-	}
-	
-
-	
-	select{
-		outline:none;
-		border:none;
-		// width:90%;
-		width:98%;
-		padding-left:24rpx;
-		color:#999
-	}
-	
-	// 未处理textarea样式
-	/* // 处理内容 */
-	.cu-form-group {
-		background: #f5f5f5;
-	}
-	
-	.processStatus {
-		textarea {
-			background: #F5F5F5;
-			color: #999999;
-			padding:20rpx;
-		}
-	}
-	
-	// textarea
-	.JTxtArea {
+		height: 273rpx;
+		// background: url(/static/analyse-bg.png) no-repeat;
+		background-size: cover;
 		position: relative;
-	
-		&.sm {
-			min-height: 60rpx;
-		}
-	
-		&.lg {
-			min-height: 120rpx;
-		}
-	
-		&:after {
-			content: attr(data-maxnum);
-			position: absolute;
-			right: 10rpx;
-			bottom: 0px;
-		}
-	}
-	
-	
-	
-	// 设备类型
-	.cu-list.menu-avatar .deviceTypeItem.cu-item{
-		height:110rpx;
-		 .content{
-			 left:100rpx!important
-		 }
-		.cu-avatar.round{
-			width:70rpx;
-			height:70rpx
-			
-			
-		}
-		.title{
-			font-size:32rpx!important;
-		}
-		.num{
-			color:#666;
-		}
-	}
-	
-	// 设备详情
-	.radiusStatus{
-		width:20rpx;height:20rpx;border-radius:50%;display:inline-block;
-		margin-right:6rpx
-	}
-	.radiusStatus.offLine{
-		
+
 	}
-	.bg-offLine{
-		background:#ABABAB;
-		color:#666666;
-		.radiusStatus{
-			background:#666
+
+	.cu-list.menu-avatar .cu-item {
+		margin: 30rpx 0 0;
+		margin-left: 0;
+
+		.cu-avatar {
+			background-color: rgba(0, 0, 0, 0);
+			left: 26rpx;
 		}
-	}
-	.bg-onLine{
-		background:#08BE04;
-		color:#fff;
-		.radiusStatus{
-			background:#fff
+
+		.content {
+			left: 130rpx;
+			font-size: 32rpx;
 		}
 	}
-	
-	
-	// 巡检计划
-	.plan-sec{
-		border-radius:10rpx;
-	}
-	.plan-tit{
-		font-size:34rpx
-	}
-	
-	// 巡检新增
-	.cu-form-group {
-		border-top: 0;
-		background: #fff;
-		padding:0
-	
+}
+
+//消息页面
+.image-bg {
+	position: absolute;
+	z-index: -1;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	right: 0;
+	width: 100%;
+	height: 100%;
+}
+
+.info-wrapper {
+	.top-banner {
+		background: none;
+		background-size: cover;
+		position: relative
 	}
-		input{
-			border: 1px solid #EDEDED!important;
-			
-			
-		}
+}
+
+.submitBottomBtn {
+	position: fixed;
+	width: 100%;
+	left: 0;
+	bottom: 44rpx;
+	z-index: 9;
+	// background-color: #ffffff;
+}
+
+
+
+// 权限新增
+
+.perAppWrapper {
+
 	input,
 	select,
 	option {
@@ -601,7 +450,7 @@ radio,checkbox {
 		padding: 0 20rpx;
 		height: 70rpx;
 		border: 1px solid #EDEDED;
-
+		// width:500rpx!important;
 		background-color: #fff;
 		box-sizing: border-box;
 		appearance: none;
@@ -610,334 +459,588 @@ radio,checkbox {
 		color: #999;
 
 	}
-	select{
-		background-color: rgba(0,0,0,0);
+
+
+}
+
+.siteItems {
+	z-index: 999;
+	position: absolute;
+	border: 1px solid #eee;
+	width: 100%;
+
+	.site-item {
+		background: #fff;
+		padding: 10rpx;
+		font-size: 28rpx;
+
+	}
+
+}
+
+.selectedBox .cuIcon-close {
+	position: relative;
+	top: 3rpx;
+	right: -10rpx;
+}
+
+.noResult {
+	padding: 0 20rpx;
+	font-size: 28rpx;
+	color: #aaa
+}
+
+
+// 离线设备
+
+.ding {
+	position: fixed;
+	width: 100%;
+	top: var(--window-top);
+	// position: sticky;
+	/* #ifdef H5 */
+	// top: 44px;
+	/* #endif */
+	/* #ifndef H5 */
+	// top: 0;
+	/* #endif */
+	z-index: 999;
+	flex: 1;
+	flex-direction: column;
+	overflow: hidden;
+	background-color: #ffffff;
+
+}
+
+.cu-bar {
+	min-height: 0rpx;
+
+}
+
+.cu-bar .search-form {
+	margin: 26rpx 24rpx 0;
+
+}
+
+uni-textarea {
+	width: 500rpx;
+}
+
+uni-label uni-text {
+	position: relative;
+	top: 2px;
+}
+
+
+
+select {
+	outline: none;
+	border: none;
+	// width:90%;
+	width: 98%;
+	padding-left: 24rpx;
+	color: #999
+}
+
+// 未处理textarea样式
+/* // 处理内容 */
+.cu-form-group {
+	background: #f5f5f5;
+}
+
+.processStatus {
+	textarea {
+		background: #F5F5F5;
+		color: #999999;
+		padding: 20rpx;
+	}
+}
+
+// textarea
+.JTxtArea {
+	position: relative;
+
+	&.sm {
+		min-height: 60rpx;
 	}
-	
-	
-	select:focus,
-	select:active,
-	select:hover {
-		outline: none;
+
+	&.lg {
+		min-height: 120rpx;
 	}
-	
-	.selectBox{
-		position:relative;
-		select{
-			z-index:2
-		}
-		.iconfont{
-			position:absolute;
-			top:0;
-			right:0rpx;
-			color:#999;
-			z-index:1
-		}
+
+	&:after {
+		content: attr(data-maxnum);
+		position: absolute;
+		right: 10rpx;
+		bottom: 0px;
+	}
+}
+
+
+
+// 设备类型
+.cu-list.menu-avatar .deviceTypeItem.cu-item {
+	height: 110rpx;
+
+	.content {
+		left: 100rpx !important
 	}
+
+	.cu-avatar.round {
+		width: 70rpx;
+		height: 70rpx
+	}
+
+	.title {
+		font-size: 32rpx !important;
+	}
+
+	.num {
+		color: #666;
+	}
+}
+
+// 设备详情
+.radiusStatus {
+	width: 20rpx;
+	height: 20rpx;
+	border-radius: 50%;
+	display: inline-block;
+	margin-right: 6rpx
+}
+
+.radiusStatus.offLine {}
+
+.bg-offLine {
+	background: #ABABAB;
+	color: #666666;
+
+	.radiusStatus {
+		background: #666
+	}
+}
+
+.bg-onLine {
+	background: #08BE04;
+	color: #fff;
+
+	.radiusStatus {
+		background: #fff
+	}
+}
+
+
+// 巡检计划
+.plan-sec {
+	border-radius: 10rpx;
+}
+
+.plan-tit {
+	font-size: 34rpx
+}
+
+// 巡检新增
+.cu-form-group {
+	border-top: 0;
+	background: #fff;
+	padding: 0
+}
+
+input {
+	border: 1px solid #EDEDED !important;
+
+
+}
+
+input,
+select,
+option {
+	line-height: 70rpx;
+	padding: 0 20rpx;
+	height: 70rpx;
+	border: 1px solid #EDEDED;
+
+	background-color: #fff;
+	box-sizing: border-box;
+	appearance: none;
+	-moz-appearance: none;
+	-webkit-appearance: none;
+	color: #999;
+
+}
+
+select {
+	background-color: rgba(0, 0, 0, 0);
+}
+
+
+select:focus,
+select:active,
+select:hover {
+	outline: none;
+}
+
+.selectBox {
+	position: relative;
+
 	select {
-		// background: url(/static/arrow2.png) no-repeat scroll 98% center;
-		background-size:28rpx;
-	}
-	
-	
-	textarea{
-		border:1px solid #EDEDED;
-		padding:10px;
+		z-index: 2
+	}
+
+	.iconfont {
+		position: absolute;
+		top: 0;
+		right: 0rpx;
 		color: #999;
+		z-index: 1
 	}
-	
-	.form-item label text {
-		position: relative;
-		top: 2rpx
+}
+
+select {
+	// background: url(/static/arrow2.png) no-repeat scroll 98% center;
+	background-size: 28rpx;
+}
+
+
+textarea {
+	border: 1px solid #EDEDED;
+	padding: 10px;
+	color: #999;
+}
+
+.form-item label text {
+	position: relative;
+	top: 2rpx
+}
+
+.form-item.selectBox {
+	select {
+		background: rgba(0, 0, 0, 0)
 	}
-	.form-item.selectBox{
-		select{
-			background:rgba(0,0,0,0)
+}
+
+.form-item {
+	margin: 0 40rpx;
+	display: flex;
+	align-items: top;
+	margin-bottom: 20rpx;
+	line-height: 70rpx;
+
+
+
+	.title {
+		width: 200rpx;
+		position: relative;
+
+		.necessary {
+			color: red;
+			display: inline-block;
+			position: absolute;
+			top: -2rpx;
+			left: -20rpx;
+			font-size: 40rpx;
+
 		}
 	}
+
+	input,
+	select {
+		width: calc(100% - 200rpx);
+		font-size: 28rpx;
+	}
+
+
+}
+
+//报修
+.repair-page .cu-avatar {
+	width: 82rpx;
+	height: 82rpx
+}
+
+// 巡检详情,已执行
+.planDetailDone {
 	.form-item {
-		margin: 0 40rpx;
-		display: flex;
-		align-items: top;
-		margin-bottom: 20rpx;
-		line-height:70rpx;
-		
-	
-	
-		.title {
-			width: 200rpx;
-			position: relative;
-	
-			.necessary {
-				color: red;
-				display: inline-block;
-				position: absolute;
-				top: -2rpx;
-				left: -20rpx;
-				font-size: 40rpx;
-	
-			}
-		}
-	
-		input,
-		select {
-			width: calc(100% - 200rpx);
-			font-size: 28rpx;
-		}
-	
-	
-	}
-	
-	//报修
-	.repair-page .cu-avatar{
-		width:82rpx;
-		height:82rpx
-	}
-	
-	// 巡检详情,已执行
-	.planDetailDone{
-		.form-item{
-			margin-left:24rpx;
-			padding:26rpx 10rpx;
-			border-top:1px solid #f1f1f1;
-			margin-bottom:0
-			
-		}
+		margin-left: 24rpx;
+		padding: 26rpx 10rpx;
+		border-top: 1px solid #f1f1f1;
+		margin-bottom: 0
 	}
-	.repairSquare{
-		padding:18rpx 20rpx;
-		border-radius:10rpx;
+}
+
+.repairSquare {
+	padding: 18rpx 20rpx;
+	border-radius: 10rpx;
+}
+
+.repairSquare .num,
+.repairSquare .title {
+	color: #fff
+}
+
+.repairSquare .num {
+	font-size: 36rpx
+}
+
+// 设备管理
+uni-input,
+select,
+option {
+	border: none
+}
+
+
+
+// 风险保障
+.viewDetail {
+	color: #4074E7;
+}
+
+.qa {
+	.cu-list+.cu-list {
+		margin-top: 0
 	}
-	.repairSquare .num,.repairSquare .title{
-		color:#fff
+}
+
+.qa-des {
+	color: #666;
+	line-height: 1.5;
+	text-indent: 64rpx
+}
+
+.bottom-line {
+	background: rgba(221, 221, 221, .5);
+	height: 2rpx;
+	margin-left: 30rpx;
+
+}
+
+.cu-list.menu-avatar>.cu-item.qa-tit {
+	height: auto;
+
+	.cu-avatar {
+		width: 32rpx;
+		height: 32rpx
 	}
-	.repairSquare .num{
-		font-size:36rpx
+
+	.content {
+		left: 50rpx
 	}
-	
-	// 设备管理
-	uni-input, select, option{
-		border:none
+}
+
+.messagePush {
+	.uni-checkbox .uni-checkbox-input {
+		width: 40rpx;
+		height: 40rpx;
 	}
-	
-	
-	
-	// 风险保障
-	.viewDetail{
-		color:#4074E7;
+}
+
+.fireBashWrapper {
+	.cu-avatar {
+		width: 120rpx;
+		height: 100rpx
 	}
-	.qa{
-		.cu-list+.cu-list{
-			margin-top:0
+
+	.cu-list.menu-avatar>.cu-item .content {
+		left: 140rpx;
+
+		.pro-date {
+			position: absolute;
+			right: 20rpx;
+			bottom: 0
 		}
 	}
-	.qa-des{
-		color:#666;
-		line-height:1.5;
-		text-indent:64rpx
-	}
-	.bottom-line{	
-		background: rgba(221,221,221,.5);
-		height:2rpx;
-		margin-left:30rpx;
-		
-	}
-	.cu-list.menu-avatar>.cu-item.qa-tit{
-		height:auto;
-		.cu-avatar{
-			width:32rpx;height:32rpx
-			
-		} 
-		.content{
-			left:50rpx
-		}
+}
+
+// 消防知识库详情页
+.fireBashDetailWrapper {
+	font-size: 28rpx;
+
+	.cu-avatar {
+		width: 50rpx;
+		height: 50rpx
 	}
-	
-	.messagePush{
-		.uni-checkbox .uni-checkbox-input{
-			width:40rpx;
-			height:40rpx;
-		}
+
+	.fireD-content {
+		position: relative
 	}
-	
-	.fireBashWrapper{
-		.cu-avatar{
-			width:120rpx;
-			height:100rpx
-		}
-		.cu-list.menu-avatar > .cu-item .content{
-			left:140rpx;
-			.pro-date{
-				position:absolute;
-				right:20rpx;
-				bottom:0
-			}
-		}
+
+	.fireD-content:before {
+		position: absolute;
+		top: -8px;
+		left: -15px;
+		box-sizing: border-box;
+		width: calc(100% + 30px);
+		height: 1px;
+		background: #EDEDED;
+		content: " ";
+
 	}
-	
-	// 消防知识库详情页
-	.fireBashDetailWrapper{
-		font-size:28rpx;
-		.cu-avatar{
-			width:50rpx;
-			height:50rpx
-		}
-		.fireD-content{
-			position:relative
-		}
-		
-		.fireD-content:before{
-			position: absolute;
-			    top: -8px;
-			    left: -15px;
-			    box-sizing: border-box;
-			    width: calc(100% + 30px);
-			    height: 1px;
-			    background:#EDEDED;
-			    content: " ";
-		
-		}
-		.fireD-content view{
-			line-height:1.5;
-			// text-indent:56rpx;
-		}
-		
-	}
-	.fireD-tit{
-		font-size:32rpx;
-		font-weight:bold
-	}
-	.preAndNext{
-		color:#4074E7;
-		margin:30rpx 0 80rpx;
-	}
-	
-	
-
-	
-	
-	
-	
-	// 月报详情
-	.reportD-wrapper{
-		
-		.title-wrapper{
-			background:#EFF4FF;
-		}
-		.title{
-			line-height:2
-		}
-		.other view{
-			margin-bottom:10rpx;
-		}
+
+	.fireD-content view {
+		line-height: 1.5;
+		// text-indent:56rpx;
 	}
-	.chart-tit{
-		color:#4074E7;
-		font-size:32rpx;
-	}
-	
-	
-	// 提交页面
-	.successWrapper{
-		text-align:center;
-		padding-top:100rpx;
-		img{
-			width:313rpx;
-			margin-right:32rpx;
-			margin-bottom:20rpx
-			}
-			view{
-				font-size:36rpx;
-			}
-		
-	}
-	
-	// 设备注册
-	.deviceRegistList{
-		// height:calc(100vh - 490rpx);
-		checkbox{
-			position:absolute;
-			left:0
-		}
-		.cu-list.menu-avatar > .cu-item > .cu-avatar{
-			left:64rpx;
-		}
-		.cu-list.menu-avatar > .cu-item .content{
-			left:170rpx
-		}
-		
+
+}
+
+.fireD-tit {
+	font-size: 32rpx;
+	font-weight: bold
+}
+
+.preAndNext {
+	color: #4074E7;
+	margin: 30rpx 0 80rpx;
+}
+
+
+
+
+
+
+
+// 月报详情
+.reportD-wrapper {
+
+	.title-wrapper {
+		background: #EFF4FF;
 	}
-	.deviceRegistWrapper{
-		.checkAll{
-			position:absolute;
-			top:-60rpx;
-			left:22rpx
-		}
-		.cu-form-group{
-			min-height:30rpx;
-			margin-top:0
-		}
-		
+
+	.title {
+		line-height: 2
+	}
+
+	.other view {
+		margin-bottom: 10rpx;
+	}
+}
+
+.chart-tit {
+	color: #4074E7;
+	font-size: 32rpx;
+}
+
+
+// 提交页面
+.successWrapper {
+	text-align: center;
+	padding-top: 100rpx;
+
+	img {
+		width: 313rpx;
+		margin-right: 32rpx;
+		margin-bottom: 20rpx
 	}
-	
-	
-	// 导出页面样式start
-	.cu-dialog{
-		width:505rpx
+
+	view {
+		font-size: 36rpx;
 	}
-	.cu-modal .cu-dialog>.cu-bar:first-child .action{
-		min-height:50rpx;
-		min-width:auto;
+
+}
+
+// 设备注册
+.deviceRegistList {
+
+	// height:calc(100vh - 490rpx);
+	checkbox {
+		position: absolute;
+		left: 0
 	}
-	.cu-dialog{
-		border-radius:20rpx
+
+	.cu-list.menu-avatar>.cu-item>.cu-avatar {
+		left: 64rpx;
 	}
-	.export-modal{
-		.cu-bar .action:first-child{
-			margin-left:70rpx;
-		}
-		.cu-bar.operate .action:last-child{
-			margin-right:70rpx;
-			color:#fff;
-			background:#4074E7;
-		}
-		.cu-bar.operate .action{
-			width:158rpx;
-			border: 1px solid #bfbfbf;
-			border-radius: 29rpx;
-			line-height:56rpx;
-			font-size:26rpx;
-		}
+
+	.cu-list.menu-avatar>.cu-item .content {
+		left: 170rpx
 	}
-    // 导出页面样式end
-	
-	// 导出页面
-	 .uni-date-x--border, .uni-date-x{
-		border-radius:25rpx!important;
+
+}
+
+.deviceRegistWrapper {
+	.checkAll {
+		position: absolute;
+		top: -60rpx;
+		left: 22rpx
 	}
-	.uni-date__x-input{
-		line-height:72rpx;
+
+	.cu-form-group {
+		min-height: 30rpx;
+		margin-top: 0
 	}
-	.example-body {
-		margin:20rpx 20rpx;
-		uni-input, select, option{
-			border:none!important;
-		}
-		
+
+}
+
+
+// 导出页面样式start
+.cu-dialog {
+	width: 505rpx
+}
+
+.cu-modal .cu-dialog>.cu-bar:first-child .action {
+	min-height: 50rpx;
+	min-width: auto;
+}
+
+.cu-dialog {
+	border-radius: 20rpx
+}
+
+.export-modal {
+	.cu-bar .action:first-child {
+		margin-left: 70rpx;
 	}
-	
-	.info-one-info {
-		display:flex;
-		line-height:26px!important;
-		padding:10px 0;
+
+	.cu-bar.operate .action:last-child {
+		margin-right: 70rpx;
+		color: #fff;
+		background: #4074E7;
 	}
-	.info-content uni-view uni-text:first-child{
-		width:88px!important;
+
+	.cu-bar.operate .action {
+		width: 158rpx;
+		border: 1px solid #bfbfbf;
+		border-radius: 29rpx;
+		line-height: 56rpx;
+		font-size: 26rpx;
 	}
-	.info-content uni-view uni-text:last-child{
-		width:75%;
-		
+}
+
+// 导出页面样式end
+
+// 导出页面
+.uni-date-x--border,
+.uni-date-x {
+	border-radius: 25rpx !important;
+}
+
+.uni-date__x-input {
+	line-height: 72rpx;
+}
+
+.example-body {
+	margin: 20rpx 20rpx;
+
+	uni-input,
+	select,
+	option {
+		border: none !important;
 	}
-	
-	
-	
+
+}
+
+.info-one-info {
+	display: flex;
+	line-height: 26px !important;
+	padding: 10px 0;
+}
+
+.info-content uni-view uni-text:first-child {
+	width: 88px !important;
+}
+
+.info-content uni-view uni-text:last-child {
+	width: 75%;
+
+}

+ 49 - 0
src/common/public.scss

@@ -108,4 +108,53 @@ th {
 
 /*
  * @消息弹出框样式 结束
+ */
+
+
+/*
+ * @login input样式 开始
+ */
+#login-input {
+    .el-input {
+
+        .el-input__wrapper {
+            border-radius: 24px;
+            padding: 5px 15px !important;
+            background-color: rgba(255, 255, 255, 0.1) !important;
+
+            .el-input__inner {
+                color: #fff;
+                caret-color: #fff; // 设置光标颜色
+                background-color: rgba(255, 255, 255, 0) !important;
+            }
+        }
+    }
+
+    :-webkit-autofill {
+        caret-color: #fff; // 设置光标颜色
+        -webkit-text-fill-color: #ededed !important;
+        -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
+        background-color: transparent;
+        background-image: none;
+        transition: background-color 50000s ease-in-out 0s; //背景色透明  生效时长  过渡效果  启用时延迟的时间
+    }
+
+
+    .el-input--large {
+        font-size: 18px;
+    }
+
+    .el-button {
+        width: 35%;
+        height: 48px;
+        color: #fff;
+        font-size: 18px;
+        border-radius: 24px;
+        margin: -10px 0 0 5%;
+        background-color: rgba(255, 255, 255, 0.1) !important;
+    }
+}
+
+/*
+ * @login input样式 结束
  */

File diff suppressed because it is too large
+ 0 - 21
src/components/echarts/echarts.simple.min.js


+ 4 - 2
src/main.js

@@ -6,6 +6,9 @@ import store from './store'
 // 引入全局api
 import api from '@/utils/api.js'
 
+// 引入全局router路由拦截
+import initApp from "@/utils/router/init.js";
+
 // 引入colorui组件
 import cuCustom from '@/colorui/components/cu-custom.vue'
 
@@ -24,7 +27,6 @@ import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
 import 'element-plus/theme-chalk/index.css'
 import * as Elicons from "@element-plus/icons-vue";
 
-
 export function createApp() {
 	const app = createSSRApp(App);
 
@@ -55,7 +57,7 @@ export function createApp() {
 	// 使用element-plus
 	app.use(ElementPlus, {
 		locale: locale,
-	}).use(store)
+	}).use(store).use(initApp)
 
 	return {
 		app,

+ 2 - 2
src/manifest.json

@@ -106,7 +106,7 @@
     "quickapp" : {},
     /* 小程序特有相关 */
     "mp-weixin" : {
-        "appid" : "wx53205be34faafb04",
+        "appid" : "",
         "setting" : {
             "urlCheck" : false,
             "checkSiteMap" : false
@@ -130,7 +130,7 @@
         "title" : "智慧消防",
         "router" : {
             "mode" : "hash",
-            "base" : "/work/"
+            "base" : "./"
         },
         "devServer" : {
             "https" : false,

+ 12 - 57
src/pages.json

@@ -13,7 +13,8 @@
                 "navigationBarTitleText": "虹泾总部园",
                 "app-plus": {
                     "titleNView": {
-                        "buttons": [{
+                        "buttons": [
+                            {
                                 "text": "\ue607",
                                 "fontSize": "18px",
                                 // "redDot": true,
@@ -33,34 +34,6 @@
                 }
             }
         },
-        {
-            "path": "pages/index/components/chart/chart",
-            "style": {
-                "navigationBarTitleText": "",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/index/components/chart2/chart2",
-            "style": {
-                "navigationBarTitleText": "",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/index/components/chart3/chart3",
-            "style": {
-                "navigationBarTitleText": "",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/index/components/chart4/chart4",
-            "style": {
-                "navigationBarTitleText": "",
-                "enablePullDownRefresh": false
-            }
-        },
         {
             "path": "pages/index/components/searchSelect/searchSelect",
             "style": {
@@ -200,27 +173,6 @@
                 "navigationBarTitleText": "分析"
             }
         },
-        {
-            "path": "pages/analyse/monthReport/monthReport",
-            "style": {
-                "navigationBarTitleText": "虹泾总部园月报",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/analyse/monthDetail/monthDetail",
-            "style": {
-                "navigationBarTitleText": "月报详情",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/analyse/buildingCheck/buildingCheck",
-            "style": {
-                "navigationBarTitleText": "建筑体检",
-                "enablePullDownRefresh": false
-            }
-        },
         /**
          * @分析 结束
          */
@@ -271,11 +223,12 @@
         "navigationBarTitleText": "uni-app",
         "navigationBarBackgroundColor": "#149EFF",
         "backgroundColor": "#F8F8F8"
-            // "enablePullDownRefresh":true
+        // "enablePullDownRefresh":true
     },
     "tabBar": {
         "borderStyle": "white",
-        "list": [{
+        "list": [
+            {
                 "pagePath": "pages/index/index",
                 "iconPath": "static/home.png",
                 "selectedIconPath": "static/home-selected.png",
@@ -303,10 +256,12 @@
     },
     "condition": { //模式配置,仅开发期间生效
         "current": 0, //当前激活的模式(list 的索引项)
-        "list": [{
-            "name": "", //模式名称
-            "path": "pages/index/index", //启动页面,必选
-            "query": "" //启动参数,在页面的onLoad函数里面得到
-        }]
+        "list": [
+            {
+                "name": "", //模式名称
+                "path": "pages/index/index", //启动页面,必选
+                "query": "" //启动参数,在页面的onLoad函数里面得到
+            }
+        ]
     }
 }

+ 58 - 60
src/pages/analyse/analyse.vue

@@ -1,69 +1,67 @@
 <template>
-	<view class="analyse-wrapper">
-		<view class="top-banner justify-center align-center text-center">
-			<image class="image-bg" src="/static/analyse-bg.png"/>
-		</view>
-		<view class="cu-list menu-avatar padding-lr">
-			<view class="cu-item shadow" @tap="goMonthReport()">
-				<view class="cu-avatar ">
-					<image class="image-bg" src="/static/yb-icon.png"/>
-				</view>
-				<view class="content">
-					<view class="">月报</view>
-				</view>
-				<view class="nav-right">
-					<view class="text-grey">
-						<text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
-					</view>
-				</view>
-			</view>
-			<view class="cu-item  shadow"  @tap="goBuildingCheck()">
-				<view class="cu-avatar ">
-					<image class="image-bg" src="/static/build-icon.png"/>
-				</view>
-				<view class="content">
-					<view class="">建筑体检</view>
-				</view>
-				<view class="nav-right">
-					<view class="text-grey">
-						<text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
-					</view>
-				</view>
-			</view>
-			
-		</view>
-		
-	</view>
+  <view class="analyse-wrapper">
+    <view class="top-banner justify-center align-center text-center">
+      <image class="image-bg" src="/static/analyse-bg.png" />
+    </view>
+    <view class="cu-list menu-avatar padding-lr">
+      <view class="cu-item shadow" @tap="goMonthReport()">
+        <view class="cu-avatar">
+          <image class="image-bg" src="/static/yb-icon.png" />
+        </view>
+        <view class="content">
+          <view class="">月报</view>
+        </view>
+        <view class="nav-right">
+          <view class="text-grey">
+            <text class="icon iconfont margin-right-xs margin-left-lg"
+              >&#xe629;</text
+            >
+          </view>
+        </view>
+      </view>
+      <view class="cu-item shadow" @tap="goBuildingCheck()">
+        <view class="cu-avatar">
+          <image class="image-bg" src="/static/build-icon.png" />
+        </view>
+        <view class="content">
+          <view class="">建筑体检</view>
+        </view>
+        <view class="nav-right">
+          <view class="text-grey">
+            <text class="icon iconfont margin-right-xs margin-left-lg"
+              >&#xe629;</text
+            >
+          </view>
+        </view>
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-			}
-		},
-		methods: {
-			goMonthReport() {
-				uni.navigateTo({
-					url: '/pages/analyse/monthReport/monthReport',
-				});
-			},
-			goBuildingCheck(){
-				uni.navigateTo({
-					url: '/pages/analyse/buildingCheck/buildingCheck',
-				});
-			}
-			
-
-		}
-	}
+export default {
+  data() {
+    return {};
+  },
+  methods: {
+    goMonthReport() {
+      // uni.navigateTo({
+      // 	url: '/pages/analyse/monthReport/monthReport',
+      // });
+    },
+    goBuildingCheck() {
+      // uni.navigateTo({
+      // 	url: '/pages/analyse/buildingCheck/buildingCheck',
+      // });
+    },
+  },
+};
 </script>
 <style>
-	.shadow {
-		box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
-	}
+.shadow {
+  box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
+}
 </style>
 
-<style lang="scss">  
-
+<style lang="scss">
 </style>

+ 0 - 262
src/pages/analyse/buildingCheck/buildingCheck.vue

@@ -1,262 +0,0 @@
-<template>
-	<view>
-
-		<!-- 筛选框start -->
-		<view style="line-height:100rpx;text-align:center">建筑名称:{{getDetailData.company_name}}</view>
-		<!-- 筛选框end -->
-
-		<view class="processStatus  bg-white margin-bottom-sm" style="">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				安全分析
-			</view>
-			<view class="padding-lr padding-bottom-lg" style="min-height:500rpx">
-				<chart :bindData="this.getDetailData" v-if="this.getDetailData.address"></chart>
-			</view>
-		</view>
-
-		<view class="basic-info  bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				消防各子系统安装情况
-			</view>
-			<view class="info-content padding-lr padding-bottom">
-				<table style="border:1px solid #ccc" cellspacing="0" cellpadding="0" align="center">
-					<tr>
-						<td>子系统安装情况</td>
-						<td>报警数</td>
-						<td>误报频率</td>
-					</tr>
-					<tr>
-						<td>用户信息传输装置 </td>
-						<td>报警数量{{this.getDetailData.count_yc}},处理{{this.getDetailData.count_ycl_yc}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_yc,this.getDetailData.count_yc)}}</td> 
-					</tr>
-					<tr>
-						<td>水系统</td>
-						<td>报警数量{{this.getDetailData.count_sj}},处理{{this.getDetailData.count_ycl_sj}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_sj,this.getDetailData.count_sj)}}</td>
-					</tr>
-					<tr>
-						<td>烟感</td>
-						<td>报警数量{{this.getDetailData.count_yg}},处理1{{this.getDetailData.count_ycl_yg}} </td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_yg,this.getDetailData.count_yg)}} </td>
-					</tr>
-					<tr>
-						<td>消防栓</td>
-						<td>报警数量{{this.getDetailData.count_xfs}},处理{{this.getDetailData.count_ycl_xfs}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_xfs,this.getDetailData.count_xfs)}} </td>
-					</tr>
-					<tr>
-						<td>液位</td>
-						<td>报警数量{{this.getDetailData.count_yw}},处理{{this.getDetailData.count_ycl_yw}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_yw,this.getDetailData.count_yw)}} </td>
-					</tr>
-					<tr>
-						<td>RTU</td>
-						<td>报警数量{{this.getDetailData.count_rtu}},处理{{this.getDetailData.count_ycl_rtu}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_rtu,this.getDetailData.count_rtu)}} </td>
-					</tr>
-					<tr>
-						<td>电气火灾</td>
-						<td>报警数量{{this.getDetailData.count_dqhz}},处理{{this.getDetailData.count_ycl_dqhz}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_dqhz,this.getDetailData.count_dqhz)}} </td>
-					</tr>
-					<tr>
-						<td>视频监测</td>
-						<td>报警数量{{this.getDetailData.count_spjc}},处理{{this.getDetailData.count_ycl_spjc}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_spjc,this.getDetailData.count_spjc)}} </td>
-					</tr>
-					<tr>
-						<td>电梯监测</td>
-						<td>报警数量{{this.getDetailData.count_dtjc}},处理{{this.getDetailData.count_ycl_dtjc}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_dtjc,this.getDetailData.count_dtjc)}} </td>
-					</tr>
-					<tr>
-						<td>井盖监测</td>
-						<td>报警数量{{this.getDetailData.count_jgjc}},处理{{this.getDetailData.count_ycl_jgjc}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_jgjc,this.getDetailData.count_jgjc)}} </td>
-					</tr>
-					<tr>
-						<td>地磁监测</td>
-						<td>报警数量{{this.getDetailData.count_dcjc}},处理{{this.getDetailData.count_ycl_dcjc}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_dcjc,this.getDetailData.count_dcjc)}} </td>
-					</tr>
-					<tr>
-						<td>门禁监测</td>
-						<td>报警数量{{this.getDetailData.count_mcjc}},处理{{this.getDetailData.count_ycl_mcjc}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_mcjc,this.getDetailData.count_mcjc)}} </td>
-					</tr>
-					<tr>
-						<td>可燃气体监测</td>
-						<td>报警数量{{this.getDetailData.count_krqt}},处理{{this.getDetailData.count_ycl_krqt}}</td>
-						<td>{{GetPercent(this.getDetailData.count_ycl_krqt,this.getDetailData.count_krqt)}} </td>
-					</tr>
-				</table>
-			</view>
-		</view>
-
-
-		<view class="processStatus  bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				存在问题或需要改进事项
-			</view>
-			<view class="padding-lr padding-bottom-lg" style="font-size:30rpx;text-indent:60rpx;line-height:1.7">
-				<view v-if="this.getDetailData.state_yc==1">用户信息传输装置该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_sj==1">水系统该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_yg==1"> 烟感栓该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_xfs==1"> 消防栓该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_yw==1">液位该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_rtu==1">RTU该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_dqhz==1">电气火灾该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_spjc==1"> 视频监测该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_dtjc==1"> 电梯监测该类设备隐患极高或存在故障,建议尽早进行排查; </view>
-				<view v-if="this.getDetailData.state_dcjc==1">地磁监测该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_mcjc ==1">门禁监测该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				<view v-if="this.getDetailData.state_krqt==1">可燃气体监测该类设备隐患极高或存在故障,建议尽早进行排查;</view>
-				
-			</view>
-		</view>
-
-		<view class="processStatus  bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				其他事宜
-			</view>
-			<view class="padding-lr padding-bottom-lg" style="font-size:30rpx;text-indent:60rpx;line-height:1.7">
-				
-				<view v-if="this.getDetailData.state_yc==0">目前数据反映:用户信息传输装置该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_sj==0">目前数据反映:水系统该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_yg==0">目前数据反映: 烟感栓该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_xfs==0">目前数据反映: 消防栓该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_yw==0">目前数据反映:液位该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_rtu==0">目前数据反映:RTU该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_dqhz==0">目前数据反映:电气火灾该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_spjc==0">目前数据反映: 视频监测该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_dtjc==0">目前数据反映: 电梯监测该类设备通信情况较好,需要保持; </view>
-				<view v-if="this.getDetailData.state_dcjc==0">目前数据反映:地磁监测该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_mcjc ==0">目前数据反映:门禁监测该类设备通信情况较好,需要保持;</view>
-				<view v-if="this.getDetailData.state_krqt==0">目前数据反映:可燃气体监测该类设备通信情况较好,需要保持;</view>
-			
-			</view>
-		</view>
-
-	</view>
-</template>
-
-<script>
-	// import json from '../../data/json.js';
-	import chart from './components/chart/chart.vue';
-	export default {
-		components: {
-			chart,
-
-		},
-		data() {
-			return {
-				
-				getDetailData:{},
-				// deviceOffLineData:json.deviceOffLineData,
-				siteListRes: 0,
-				siteName: '',
-				type: '0',
-				siteListData: [],
-				modalName: null,
-				listTouchStart: 0,
-				listTouchDirection: null,
-				CustomBar: this.CustomBar,
-
-				staticData: {
-					"msg": "\u64cd\u4f5c\u6210\u529f",
-					"flag": true,
-					"companyCode": "1,2,3,4,5,6,7,8,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39",
-					"data": [{
-						"statisticalPeriod": "2021-03-16~2021-04-16",
-						"smartElectricityCount": "178",
-						"videoMonitoringCount": "12456",
-						"alarmCount": 12627,
-						"eventCount": 2,
-						"hiddenDangerCount": 4,
-						"offlineCount": 20,
-						"faultCount": 30,
-						"earlyWarningCount": 100,
-						"otherCount": 99,
-						"normalCount": 66,
-						"integratedAlarmCount": 12627,
-						"unprocessedCount": 0
-					}]
-				}
-
-
-			}
-		},
-		
-		onLoad: function(option) {
-			this.getDetails({'company_code':uni.getStorageSync('selectedCode')})
-		},
-		
-		methods: {
-			
-			GetPercent(num, total) {
-			    /// <summary>
-			    /// 求百分比
-			    /// </summary>
-			    /// <param name="num">当前数</param>
-			    /// <param name="total">总数</param>
-			    num = parseFloat(num);
-			    total = parseFloat(total);
-			    if (isNaN(num) || isNaN(total)) {
-			        return "-";
-			    }
-			    return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.00)+"%";
-			},
-			// 建筑体检数据请求
-			async getDetails(params = {}) {
-				const res = await this.$myRequest({
-					url: 'PhysicalExamination/getPhysicalExamination',
-					data: params,
-					showLoading: true
-				})
-				this.getDetailData = res.data.data[0];
-				
-			},
-			
-			InputFocus(e) {
-				this.InputBottom = e.detail.height
-			},
-			InputBlur(e) {
-				this.InputBottom = 0
-			},
-
-
-
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	page {
-		background: #EDEDED;
-	}
-
-	::v-deep .leave_cont .ul .li {
-		width: 42% !important;
-
-	}
-
-	::v-deep .leave_cont .ul {
-		background: #fff;
-
-	}
-
-	::v-deep .date {
-		font-size: 28rpx;
-	}
-
-	::v-deep .leave_cont {
-		width: 76%
-	}
-</style>

+ 0 - 195
src/pages/analyse/buildingCheck/components/chart/chart.vue

@@ -1,195 +0,0 @@
-<template>
-	<view class="content" >
-
-		<view @click="echarts.onClick"  :change:prop="echarts.updateEcharts" id="echarts2" class="echarts" ></view>
-
-	</view>
-</template>
-
-<script>
-
-	 let title = '安全评分';
-	export default {
-		props:{
-			bindData:{
-				type:Object,
-				default: ''	
-			}
-		},
-		data() {
-			return {
-				option: {
-					color: ['#00B7FC', '#935AF9', '#FF5354', '#FF8758', '#FFCF34', '#00E9CD', '#00B7FC'],
-
-					title: {
-						left: 'center'
-					},
-					tooltip: {
-						trigger: 'item',
-						// formatter: "{a} <br/>{b}: {c} ({d}%)"
-						formatter: "{b}: {c} "
-					},
-
-					title: [{ //aa标题
-	
-						text: '{val|'+this.bindData.score+'}\n{name|' + title + '}',
-						top: '45%',
-						left: 'center',
-						textStyle: {
-							rich: {
-								name: {
-									fontSize: 14,
-									fontWeight: 'normal',
-									color: '#666666',
-									padding: [5, 0]
-								},
-								val: {
-									fontSize: 24,
-									color: '#333333',
-								}
-							}
-						}
-					}],
-					legend: { //aa图例
-					show:false,
-						orient: 'horizontal',
-						icon: 'circle',
-						itemWidth: 12,
-						itemHeight: 12,
-						itemGap: 60,
-						// top: -10,
-						textStyle: {
-
-							fontSize: 14,
-							rich: {
-								name: {
-									fontSize: 18
-								},
-								value: {
-									fontSize: 14,
-									padding: [0, 20, 0, 5]
-								},
-
-							}
-						},
-					},
-					series: [{
-						name: '访问来源',
-						type: 'pie',
-						radius: ['40%', '60%'],
-						center: ['50%', '55%'],
-						itemStyle: {
-							normal: {
-							},
-						},
-						data: [{
-								name: "RTU",
-								value: this.bindData.count_rtu
-							},
-							{
-								name: "电气火灾",
-								value: this.bindData.count_dqhz
-							},
-							{
-								name: "视频监测",
-								value: this.bindData.count_spjc
-							},
-							{
-								name: "水系统",
-								value: this.bindData.count_sj
-							},
-							{
-								name: "烟感",
-								value: this.bindData.count_yg
-							},
-							{
-								name: "消防栓",
-								value: this.bindData.count_xfs
-							},
-							{
-								name: "液位",
-								value: this.bindData.count_rtu
-							},
-						],
-					
-						labelLine: {
-							normal: {
-								length: 10, //aa折线长度
-								length2: 20, //aa折线长度
-							}
-						},
-						label: {
-							normal: {
-								formatter: '{b}:\n{d}%',
-							}
-						},
-					}]
-				}
-			}
-		},
-		onLoad() {
-
-		},
-		methods: {
-			changeOption() {
-				const data = this.option.series[0].data
-				// 随机更新示例数据
-				data.forEach((item, index) => {
-					data.splice(index, 1, Math.random() * 40)
-				})
-			},
-			onViewClick(options) {
-				console.log(options)
-			}
-		}
-	}
-</script>
-
-<script module="echarts" lang="renderjs">
-	let myChart
-	export default {
-		mounted() {
-			if (typeof window.echarts === 'function') {
-				this.initEcharts()
-			} else {
-				// 动态引入较大类库避免影响页面展示
-				const script = document.createElement('script')
-				// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
-				script.src = 'static/echarts.min.js'
-				script.onload = this.initEcharts.bind(this)
-				document.head.appendChild(script)
-			}
-		},
-		methods: {
-			initEcharts() {
-				myChart = echarts.init(document.getElementById('echarts2'))
-				// 观测更新的数据在 view 层可以直接访问到
-				myChart.setOption(this.option)
-			},
-			updateEcharts(newValue, oldValue, ownerInstance, instance) {
-				// 监听 service 层数据变更
-				myChart.setOption(newValue)
-			},
-			onClick(event, ownerInstance) {
-				// 调用 service 层的方法
-				ownerInstance.callMethod('onViewClick', {
-					test: 'test'
-				})
-			}
-		}
-	}
-</script>
-
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.echarts {
-		width: 100%;
-		height: 500rpx;
-	}
-</style>

+ 0 - 188
src/pages/analyse/monthDetail/components/chart.vue

@@ -1,188 +0,0 @@
-<template>
-	<view class="content">
-
-		<view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echarts" class="echarts">
-		</view>
-
-	</view>
-</template>
-
-<script>
-	export default {
-		props: {
-			bindData: {
-				type: Object,
-				default: ''
-			}
-		},
-		data() {
-
-			return {
-				option: {
-					color: ['#006ED6', '#00E9CD', '#FF5354', 'yellow', 'orange'],
-					tooltip: {
-						trigger: 'item',
-						formatter: "{b}:\n {c}%"
-					},
-
-					title: {
-						left: 'center'
-					},
-					title: false,
-					legend: { //aa图例
-						orient: 'horizontal',
-						// icon: 'circle',
-						itemWidth: 12,
-						itemHeight: 12,
-						itemGap: 10,
-						bottom: -6,
-						textStyle: {
-
-							fontSize: 14,
-							rich: {
-								name: {
-									fontSize: 18
-								},
-								value: {
-									fontSize: 14,
-									padding: [0, 20, 10, 5]
-								},
-
-							}
-						},
-					},
-					series: [{
-						name: '访问来源',
-						type: 'pie',
-						radius: ['0%', '60%'],
-						center: ['50%', '45%'],
-						itemStyle: {
-							normal: {
-
-							},
-						},
-
-						data: [{
-								name: "火系统告警",
-								value: this.bindData.hjtotalCount
-							},
-							{
-								name: "水系统告警",
-								value: this.bindData.sjtotalCount
-							},
-							{
-								name: "TRU系统告警",
-								value: this.bindData.rtutotalCount
-							},
-							{
-								name: "电气火灾告警",
-								value: this.bindData.eftotalCount
-							},
-							{
-								name: "视频告警",
-								value: this.bindData.videototalCount
-							},
-
-						],
-						emphasis: {
-							itemStyle: {
-								shadowBlur: 10,
-								shadowOffsetX: 0,
-								// shadowColor: 'rgba(0, 0, 0, 0.5)'
-							}
-						},
-						labelLine: {
-							normal: {
-								length: 5, //aa折线长度
-								length2: 10, //aa折线长度
-
-							}
-						},
-						label: {
-							normal: {
-								formatter: '{b}:{d}%',
-								// formatter: params => {
-								// 	var percent = 0;
-								// 	var total = 0;
-								// 	for (var i = 0; i < echartData.length; i++) {
-								// 		total += echartData[i].value;
-								// 	}
-								// 	console.log(111);
-								// 	console.log(total);
-
-								// 	percent = ((params.value / total) * 100).toFixed(0);
-								// 	return params.name + ': ' + percent + '%';
-
-								// },
-
-							}
-						},
-					}]
-				}
-			}
-		},
-		onLoad() {},
-		methods: {
-			changeOption() {
-				const data = this.option.series[0].data
-				// 随机更新示例数据
-				data.forEach((item, index) => {
-					data.splice(index, 1, Math.random() * 40)
-				})
-			},
-			onViewClick(options) {
-				console.log(options)
-			}
-		}
-	}
-</script>
-
-<script module="echarts" lang="renderjs">
-	let myChart
-	export default {
-		mounted() {
-			if (typeof window.echarts === 'function') {
-				this.initEcharts()
-			} else {
-				// 动态引入较大类库避免影响页面展示
-				const script = document.createElement('script')
-				// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
-				script.src = 'static/echarts.min.js'
-				script.onload = this.initEcharts.bind(this)
-				document.head.appendChild(script)
-			}
-		},
-		methods: {
-			initEcharts() {
-				myChart = echarts.init(document.getElementById('echarts'))
-				// 观测更新的数据在 view 层可以直接访问到
-				myChart.setOption(this.option)
-			},
-			updateEcharts(newValue, oldValue, ownerInstance, instance) {
-				// 监听 service 层数据变更
-				myChart.setOption(newValue)
-			},
-			onClick(event, ownerInstance) {
-				// 调用 service 层的方法
-				ownerInstance.callMethod('onViewClick', {
-					test: 'test'
-				})
-			}
-		}
-	}
-</script>
-
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.echarts {
-		width: 100%;
-		height: 500rpx;
-		margin-bottom: 70rpx;
-	}
-</style>

+ 0 - 204
src/pages/analyse/monthDetail/components/chart2.vue

@@ -1,204 +0,0 @@
-<template>
-	<view class="content">
-
-		<view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echarts2" class="echarts"></view>
-
-	</view>
-</template>
-
-<script>
-
-	 let title = '报警总数';
-
-	export default {
-		props:{
-			bindData:{
-				type:Object,
-				default: ''
-			}
-		},
-		data() {
-			return {
-				option: {
-					color: ['#006ED6', '#FF5354'],
-
-					title: {
-						left: 'center'
-					},
-					tooltip: {
-						trigger: 'item',
-						formatter: "{a}{b}:\n {c} ({d}%)"
-					},
-
-					title:false,
-					//  [{ //aa标题
-					// 	text: '{val|' +(parseInt(this.bindData.wubao)+parseInt(this.bindData.unSolve)+ parseInt(this.bindData.truely))+ '}\n{name|' + title + '}',
-					// 	top: '35%',
-					// 	left: 'center',
-					// 	textStyle: {
-					// 		rich: {
-					// 			name: {
-					// 				fontSize: 14,
-					// 				fontWeight: 'normal',
-					// 				color: '#666666',
-					// 				padding: [5, 0]
-					// 			},
-					// 			val: {
-					// 				fontSize: 24,
-					// 				color: '#333333',
-					// 			}
-					// 		}
-					// 	}
-					// }],
-					legend: { //aa图例
-						orient: 'horizontal',
-						// icon: 'circle',
-						itemWidth: 12,
-						itemHeight: 12,
-						itemGap: 20,
-						 bottom: -6,
-						textStyle: {
-
-							fontSize: 14,
-							rich: {
-								name: {
-									fontSize: 18
-								},
-								value: {
-									fontSize: 14,
-									padding: [0, 20, 0, 5]
-								},
-
-							}
-						},
-					},
-					series: [{
-						name: '访问来源',
-						type: 'pie',
-						radius: ['40%', '60%'],
-						center: ['50%', '45%'],
-						itemStyle: {
-							normal: {
-								// shadowBlur: 20,
-								// shadowColor: '#F9F5F7',
-								// shadowOffsetX: 0,
-								// shadowOffsetY: 0,
-							},
-						},
-
-						data: [{
-								name: "已处理",
-								value: this.bindData.process_rate
-							},
-							{
-								name: "未处理",
-								value: this.bindData.unprocess
-							},
-							
-
-						],
-						emphasis: {
-							itemStyle: {
-								shadowBlur: 10,
-								shadowOffsetX: 0,
-								// shadowColor: 'rgba(0, 0, 0, 0.5)'
-							}
-						},
-						labelLine: {
-							normal: {
-								length: 10, //aa折线长度
-								length2: 20, //aa折线长度
-
-							}
-						},
-						label: {
-							normal: {
-								
-								formatter: "{d}%"
-								// formatter: params => {
-								// 	var percent = 0;
-								// 	var total = 0;
-								// 	for (var i = 0; i < echartData.length; i++) {
-								// 		total += echartData[i].value;
-								// 	}
-								// 	console.log(111);
-								// 	console.log(total);
-
-								// 	percent = ((params.value / total) * 100).toFixed(0);
-								// 	return params.name + ': ' + percent + '%';
-
-								// },
-
-							}
-						},
-					}]
-				}
-			}
-		},
-		onLoad() {
-
-		},
-		methods: {
-			changeOption() {
-				const data = this.option.series[0].data
-				// 随机更新示例数据
-				data.forEach((item, index) => {
-					data.splice(index, 1, Math.random() * 40)
-				})
-			},
-			onViewClick(options) {
-				console.log(options)
-			}
-		}
-	}
-</script>
-
-<script module="echarts" lang="renderjs">
-	let myChart
-	export default {
-		mounted() {
-			if (typeof window.echarts === 'function') {
-				this.initEcharts()
-			} else {
-				// 动态引入较大类库避免影响页面展示
-				const script = document.createElement('script')
-				// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
-				script.src = 'static/echarts.min.js'
-				script.onload = this.initEcharts.bind(this)
-				document.head.appendChild(script)
-			}
-		},
-		methods: {
-			initEcharts() {
-				myChart = echarts.init(document.getElementById('echarts2'))
-				// 观测更新的数据在 view 层可以直接访问到
-				myChart.setOption(this.option)
-			},
-			updateEcharts(newValue, oldValue, ownerInstance, instance) {
-				// 监听 service 层数据变更
-				myChart.setOption(newValue)
-			},
-			onClick(event, ownerInstance) {
-				// 调用 service 层的方法
-				ownerInstance.callMethod('onViewClick', {
-					test: 'test'
-				})
-			}
-		}
-	}
-</script>
-
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.echarts {
-		width: 100%;
-		height: 500rpx;
-		/* margin-bottom: 70rpx; */
-	}
-</style>

+ 0 - 203
src/pages/analyse/monthDetail/components/chart3.vue

@@ -1,203 +0,0 @@
-<template>
-	<view class="content">
-
-		<view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echart3" class="echarts"></view>
-
-	</view>
-</template>
-
-<script>
-
-	 let title = '报警总数';
-
-	export default {
-		props:{
-			bindData:{
-				type:Object,
-				default: ''
-			}
-		},
-		data() {
-			return {
-				option: {
-					color: ['#006ED6', '#FF5354'],
-
-					title: {
-						left: 'center'
-					},
-					tooltip: {
-						trigger: 'item',
-						formatter: "{a} \n{b}: {c} ({d}%)"
-					},
-
-					title:false,
-					//  [{ //aa标题
-					// 	text: '{val|' +(parseInt(this.bindData.wubao)+parseInt(this.bindData.unSolve)+ parseInt(this.bindData.truely))+ '}\n{name|' + title + '}',
-					// 	top: '35%',
-					// 	left: 'center',
-					// 	textStyle: {
-					// 		rich: {
-					// 			name: {
-					// 				fontSize: 14,
-					// 				fontWeight: 'normal',
-					// 				color: '#666666',
-					// 				padding: [5, 0]
-					// 			},
-					// 			val: {
-					// 				fontSize: 24,
-					// 				color: '#333333',
-					// 			}
-					// 		}
-					// 	}
-					// }],
-					legend: { //aa图例
-						orient: 'horizontal',
-						// icon: 'circle',
-						itemWidth: 12,
-						itemHeight: 12,
-						itemGap: 20,
-						 bottom: -6,
-						textStyle: {
-
-							fontSize: 14,
-							rich: {
-								name: {
-									fontSize: 18
-								},
-								value: {
-									fontSize: 14,
-									padding: [0, 20, 0, 5]
-								},
-
-							}
-						},
-					},
-					series: [{
-						name: '访问来源',
-						type: 'pie',
-						radius: ['40%', '60%'],
-						center: ['50%', '45%'],
-						itemStyle: {
-							normal: {
-								// shadowBlur: 20,
-								// shadowColor: '#F9F5F7',
-								// shadowOffsetX: 0,
-								// shadowOffsetY: 0,
-							},
-						},
-
-						data: [{
-								name: "已处理",
-								value: this.bindData.process_rate
-							},
-							{
-								name: "未处理",
-								value: this.bindData.unprocess
-							},
-							
-
-						],
-						emphasis: {
-							itemStyle: {
-								shadowBlur: 10,
-								shadowOffsetX: 0,
-								// shadowColor: 'rgba(0, 0, 0, 0.5)'
-							}
-						},
-						labelLine: {
-							normal: {
-								length: 10, //aa折线长度
-								length2: 20, //aa折线长度
-
-							}
-						},
-						label: {
-							normal: {
-								
-								formatter: "{d}%"
-								// formatter: params => {
-								// 	var percent = 0;
-								// 	var total = 0;
-								// 	for (var i = 0; i < echartData.length; i++) {
-								// 		total += echartData[i].value;
-								// 	}
-								// 	console.log(111);
-								// 	console.log(total);
-
-								// 	percent = ((params.value / total) * 100).toFixed(0);
-								// 	return params.name + ': ' + percent + '%';
-
-								// },
-
-							}
-						},
-					}]
-				}
-			}
-		},
-		onLoad() {
-
-		},
-		methods: {
-			changeOption() {
-				const data = this.option.series[0].data
-				// 随机更新示例数据
-				data.forEach((item, index) => {
-					data.splice(index, 1, Math.random() * 40)
-				})
-			},
-			onViewClick(options) {
-				console.log(options)
-			}
-		}
-	}
-</script>
-
-<script module="echarts" lang="renderjs">
-	let myChart
-	export default {
-		mounted() {
-			if (typeof window.echarts === 'function') {
-				this.initEcharts()
-			} else {
-				// 动态引入较大类库避免影响页面展示
-				const script = document.createElement('script')
-				// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
-				script.src = 'static/echarts.min.js'
-				script.onload = this.initEcharts.bind(this)
-				document.head.appendChild(script)
-			}
-		},
-		methods: {
-			initEcharts() {
-				myChart = echarts.init(document.getElementById('echart3'))
-				// 观测更新的数据在 view 层可以直接访问到
-				myChart.setOption(this.option)
-			},
-			updateEcharts(newValue, oldValue, ownerInstance, instance) {
-				// 监听 service 层数据变更
-				myChart.setOption(newValue)
-			},
-			onClick(event, ownerInstance) {
-				// 调用 service 层的方法
-				ownerInstance.callMethod('onViewClick', {
-					test: 'test'
-				})
-			}
-		}
-	}
-</script>
-
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.echarts {
-		width: 100%;
-		height: 500rpx;
-	}
-</style>

+ 0 - 203
src/pages/analyse/monthDetail/components/chart4.vue

@@ -1,203 +0,0 @@
-<template>
-	<view class="content">
-
-		<view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echarts4" class="echarts"></view>
-
-	</view>
-</template>
-
-<script>
-
-	 let title = '报警总数';
-
-	export default {
-		props:{
-			bindData:{
-				type:Object,
-				default: ''
-			}
-		},
-		data() {
-			return {
-				option: {
-					color: ['#006ED6', '#FF5354'],
-
-					title: {
-						left: 'center'
-					},
-					tooltip: {
-						trigger: 'item',
-						formatter: "{a} \n{b}: {c} ({d}%)"
-					},
-
-					title:false,
-					//  [{ //aa标题
-					// 	text: '{val|' +(parseInt(this.bindData.wubao)+parseInt(this.bindData.unSolve)+ parseInt(this.bindData.truely))+ '}\n{name|' + title + '}',
-					// 	top: '35%',
-					// 	left: 'center',
-					// 	textStyle: {
-					// 		rich: {
-					// 			name: {
-					// 				fontSize: 14,
-					// 				fontWeight: 'normal',
-					// 				color: '#666666',
-					// 				padding: [5, 0]
-					// 			},
-					// 			val: {
-					// 				fontSize: 24,
-					// 				color: '#333333',
-					// 			}
-					// 		}
-					// 	}
-					// }],
-					legend: { //aa图例
-						orient: 'horizontal',
-						// icon: 'circle',
-						itemWidth: 12,
-						itemHeight: 12,
-						itemGap: 20,
-						 bottom: -6,
-						textStyle: {
-
-							fontSize: 14,
-							rich: {
-								name: {
-									fontSize: 18
-								},
-								value: {
-									fontSize: 14,
-									padding: [0, 20, 0, 5]
-								},
-
-							}
-						},
-					},
-					series: [{
-						name: '访问来源',
-						type: 'pie',
-						radius: ['40%', '60%'],
-						center: ['50%', '45%'],
-						itemStyle: {
-							normal: {
-								// shadowBlur: 20,
-								// shadowColor: '#F9F5F7',
-								// shadowOffsetX: 0,
-								// shadowOffsetY: 0,
-							},
-						},
-
-						data: [{
-								name: "已处理",
-								value: this.bindData.process_rate
-							},
-							{
-								name: "未处理",
-								value: this.bindData.unprocess
-							},
-							
-
-						],
-						emphasis: {
-							itemStyle: {
-								shadowBlur: 10,
-								shadowOffsetX: 0,
-								// shadowColor: 'rgba(0, 0, 0, 0.5)'
-							}
-						},
-						labelLine: {
-							normal: {
-								length: 10, //aa折线长度
-								length2: 20, //aa折线长度
-
-							}
-						},
-						label: {
-							normal: {
-								
-								formatter: "{d}%"
-								// formatter: params => {
-								// 	var percent = 0;
-								// 	var total = 0;
-								// 	for (var i = 0; i < echartData.length; i++) {
-								// 		total += echartData[i].value;
-								// 	}
-								// 	console.log(111);
-								// 	console.log(total);
-
-								// 	percent = ((params.value / total) * 100).toFixed(0);
-								// 	return params.name + ': ' + percent + '%';
-
-								// },
-
-							}
-						},
-					}]
-				}
-			}
-		},
-		onLoad() {
-
-		},
-		methods: {
-			changeOption() {
-				const data = this.option.series[0].data
-				// 随机更新示例数据
-				data.forEach((item, index) => {
-					data.splice(index, 1, Math.random() * 40)
-				})
-			},
-			onViewClick(options) {
-				console.log(options)
-			}
-		}
-	}
-</script>
-
-<script module="echarts" lang="renderjs">
-	let myChart
-	export default {
-		mounted() {
-			if (typeof window.echarts === 'function') {
-				this.initEcharts()
-			} else {
-				// 动态引入较大类库避免影响页面展示
-				const script = document.createElement('script')
-				// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
-				script.src = 'static/echarts.min.js'
-				script.onload = this.initEcharts.bind(this)
-				document.head.appendChild(script)
-			}
-		},
-		methods: {
-			initEcharts() {
-				myChart = echarts.init(document.getElementById('echarts4'))
-				// 观测更新的数据在 view 层可以直接访问到
-				myChart.setOption(this.option)
-			},
-			updateEcharts(newValue, oldValue, ownerInstance, instance) {
-				// 监听 service 层数据变更
-				myChart.setOption(newValue)
-			},
-			onClick(event, ownerInstance) {
-				// 调用 service 层的方法
-				ownerInstance.callMethod('onViewClick', {
-					test: 'test'
-				})
-			}
-		}
-	}
-</script>
-
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.echarts {
-		width: 100%;
-		height: 500rpx;
-	}
-</style>

+ 0 - 400
src/pages/analyse/monthDetail/monthDetail.vue

@@ -1,400 +0,0 @@
-<template>
-	<view class="reportD-wrapper">
-		<view class="text-center flex flex-wrap justify-center title-wrapper">
-			<view class=" margin title" style="width:68%">{{company_name}}消防报警系统监测数据 {{event_time}}月报表</view>
-		</view>
-		<view class="basic-info bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				项目情况
-			</view>
-			<view class="info-content">
-				<view class="info-one-info ">
-					<text>单位名称:</text>
-					<text>{{project_info.company_name}}</text>
-				</view>
-				<view class="info-one-info ">
-					<text>进场日期:</text>
-					<text>{{project_info.approach_time}}</text>
-				</view>
-				<view class="info-one-info ">
-					<text>完工日期:</text>
-					<text>{{project_info.complete_time}}</text>
-				</view>
-				<view class="info-one-info ">
-					<text>验收日期:</text>
-					<text>{{project_info.check_time}}</text>
-				</view>
-			</view>
-		</view>
-
-		<view class=" bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				安装设备情况
-			</view>
-			<view class="padding-lr padding-bottom-lg">
-				<table style="border:1px solid #ccc" cellspacing="0" cellpadding="0" align="center">
-					<tr>
-						<th style="width:13%">序号</th>
-						<th style="width:40%">设备名称</th>
-						<th>规格型号</th>
-						<th style="width:50px">数量</th>
-					</tr>
-					<tr v-for="(item,index) in instal_device_info" :key="index">
-						<td>{{item.xh}}</td>
-						<td>{{item.device_name}}</td>
-						<td>{{item.specifications}}</td>
-						<td>{{item.device_num}}</td>
-					</tr>
-
-					<tr>
-						<td colspan="3">合计</td>
-						<td>{{getData.device_cout}}</td>
-
-					</tr>
-				</table>
-			</view>
-		</view>
-
-		<view class="bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				监测点情况
-			</view>
-			<view class="padding-lr padding-bottom-lg">
-				<table style="border:1px solid #ccc" cellspacing="0" cellpadding="0" align="center">
-					<tr>
-						<th style="width:13%">序号</th>
-						<th style="width:40%">监控子系统</th>
-						<th >检测点类型</th>
-						<th style="width:50px">数量</th>
-
-					</tr>
-					<tr v-for="(item,index) in monitor_point_info">
-						<td>{{item.xh}}</td>
-						<td>{{item.monitor_son}}</td>
-						<td>{{item.monitor_type}}</td>
-						<td>{{item.monitor_sum}}</td>
-					</tr>
-
-					<tr>
-						<td colspan="3">合计</td>
-						<td>{{getData.point_count=='null'?'0':getData.point_count}}</td>
-					</tr>
-				</table>
-			</view>
-		</view>
-
-		<view class="bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				统计时段
-			</view>
-			<view class="info-content" style="font-size:30rpx">
-				<view class="info-one-info ">
-					<text style="width:125px!important">统计起始日期:</text>
-					<text>{{count_time.startData}}</text>
-				</view>
-				<view  class="info-one-info ">
-					<text style="width:125px!important">统计截至日期:</text>
-					<text>{{count_time.endData}}</text>
-				</view>
-				<view class="info-one-info ">
-					<text style="width:125px!important">统计时段时长:</text>
-					<text>{{count_time.days}}</text>
-				</view>
-			</view>
-		</view>
-
-		<view class="bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				统计报表
-			</view>
-			<view class="margin-lr padding-bottom-lg" style="overflow:auto">
-				<table style="border:1px solid #ccc;width:150%;" cellspacing="0" cellpadding="0" align="center">
-					<tr>
-						<th>序号</th>
-						<th>报告分类</th>
-						<th>报告属性</th>
-						<th>报告总数</th>
-						<th>已处理</th>
-						<th>未处理</th>
-						<th>处置率</th>
-					</tr>
-					<block v-for="(item,index) in count_report">
-						<template v-if="item.alarm_type=='火灾监测'">
-							<tr>
-								<td rowspan="2">{{item.xh}}</td>
-								<td rowspan="2">{{item.alarm_type}}</td>
-								<td>设备离线</td>
-								<td>{{item.offline.hjlxtotal}}</td>
-								<td>{{item.offline.hjlxcltotal}}</td>
-								<td>{{item.offline.hjlxwcltotal}}</td>
-								<td>{{item.offline.hjlxbaifenbi}}%</td>
-							</tr>
-							<tr>
-								<td>报警</td>
-								<td>{{item.alarm.hjtotal}}</td>
-								<td>{{item.alarm.hjcltotal}}</td>
-								<td>{{item.alarm.hjwcltotal}}</td>
-								<td>{{item.alarm.hjbaifenbi}}%</td>
-							</tr>
-						</template>
-
-						<template v-if="item.alarm_type=='电气火灾监测'">
-							<tr>
-								<td rowspan="2">{{item.xh}}</td>
-								<td rowspan="2">{{item.alarm_type}}</td>
-								<td>设备离线</td>
-								<td>{{item.offline.eflxtotal}}</td>
-								<td>{{item.offline.eflxcltotal}}</td>
-								<td>{{item.offline.eflxwcltotal}}</td>
-								<td>{{item.offline.eflxbaifenbi}}%</td>
-							</tr>
-							<tr>
-								<td>报警</td>
-								<td>{{item.alarm.efwcltotal}}</td>
-								<td>{{item.alarm.efcltotal}}</td>
-								<td>{{item.alarm.efwcltotal}}</td>
-								<td>{{item.alarm.efbaifenbi}}%</td>
-							</tr>
-						</template>
-
-						<template v-if="item.alarm_type=='消防水系统监测'">
-							<tr>
-								<td rowspan="2">{{item.xh}}</td>
-								<td rowspan="2">{{item.alarm_type}}</td>
-								<td>设备离线</td>
-								<td>{{item.offline.sjlxtotal}}</td>
-								<td>{{item.offline.sjlxcltotal}}</td>
-								<td>{{item.offline.sjlxwcltotal}}</td>
-								<td>{{item.offline.sjlxbaifenbi}}%</td>
-							</tr>
-							<tr>
-								<td>报警</td>
-								<td>{{item.alarm.sjtotal}}</td>
-								<td>{{item.alarm.sjcltotal}}</td>
-								<td>{{item.alarm.sjwcltotal}}</td>
-								<td>{{item.alarm.sjbaifenbi}}%</td>
-							</tr>
-						</template>
-
-						<template v-if="item.alarm_type=='RTU监测'">
-							<tr>
-								<td rowspan="2">{{item.xh}}</td>
-								<td rowspan="2">{{item.alarm_type}}</td>
-								<td>设备离线</td>
-								<td>{{item.offline.rtulxtotal}}</td>
-								<td>{{item.offline.rtulxcltotal}}</td>
-								<td>{{item.offline.rtulxwcltotal}}</td>
-								<td>{{item.offline.rtulxbaifenbi}}%</td>
-							</tr>
-							<tr>
-								<td>报警</td>
-								<td>{{item.alarm.rtutotal}}</td>
-								<td>{{item.alarm.rtucltotal}}</td>
-								<td>{{item.alarm.rtuwcltotal}}</td>
-								<td>{{item.alarm.rtubaifenbi}}%</td>
-							</tr>
-						</template>
-
-
-					</block>
-
-
-				</table>
-			</view>
-		</view>
-
-
-		<view class="bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				项目情况
-			</view>
-			
-			<view class="padding text-center">
-				<view class="chart-tit">
-					各类告警总数饼状图
-				</view>
-				<chart :bindData="alarm_total" v-if="Object.keys(alarm_total).length!==0" ></chart>
-			</view>
-
-			
-			<view class="padding text-center">
-				<view class="chart-tit">火灾告警处理情况饼图</view>
-				<chart2 :bindData="fire_data" v-if="Object.keys(fire_data).length!==0" ></chart2>
-			</view>
-			<view class="padding text-df">
-				<view v-html="fire_data.data"></view>
-			</view>
-
-			<view class="padding text-center">
-				<view class="chart-tit">水系统告警处理情况饼图</view>
-				<chart3 :bindData="water_data" v-if="Object.keys(water_data).length!==0"></chart3>
-			</view>
-
-			<view class="padding text-df">
-				<view v-html="water_data.data"></view>
-			</view>
-
-
-
-			<view class="padding text-center">
-				<view class="chart-tit">
-					RTU系统告警处理情况饼图
-				</view>
-				<br>
-				<chart4 :bindData="rtu_data" v-if="Object.keys(rtu_data).length!==0"></chart4>
-			</view>
-			<view class="padding text-df">
-				<view v-html="rtu_data.data"></view>
-			</view>
-
-		</view>
-
-
-		<view class="bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				存在问题或需要改进事项
-			</view>
-			<view class="padding-lr padding-bottom">
-				<view v-for="(item,index) in propose" :key="index" >
-					{{index+1}}、{{item.data1}}
-				</view>
-				
-			</view>
-		</view>
-
-		<view class="bg-white margin-bottom-sm">
-			<view class="info-tit margin-left-xs">
-				<text class="cuIcon-titles margin-right-xs"></text>
-				其他事宜
-			</view>
-			<view class="padding-lr padding-bottom other">
-				<view v-for="(item,index) in other" :key="index" >
-					{{index}}、{{item.data2}}
-				</view>
-			</view>
-
-
-		</view>
-
-
-
-
-
-	</view>
-</template>
-
-<script>
-	import chart from './components/chart.vue';
-	import chart2 from './components/chart2.vue';
-	import chart3 from './components/chart3.vue';
-	import chart4 from './components/chart4.vue';
-	export default {
-		components: {
-			chart,
-			chart2,
-			chart3,
-			chart4
-		},
-		data() {
-			return {
-				staticData: {
-					wubao: 9,
-					unSolve: 6,
-					truely: 20
-				},
-				staticData2: {
-					wubao: 9,
-					unSolve: 6,
-					truely: 20
-				},
-				
-				getData: {},
-				company_name:'',
-				event_time:'',
-				project_info: {},
-				instal_device_info: {},
-				monitor_point_info: {},
-				count_time: {},
-				count_report: {},
-				alarm_total:{},
-				fire_data:{},
-				water_data:{},
-				rtu_data:{},
-				propose:{},
-				other:{},
-
-
-			}
-		},
-		onLoad: function(option) {
-			// this.companyName=uni.getStorageSync('selectedName')
-
-			this.getDataDetail({
-				'company_code': uni.getStorageSync('selectedCode'),
-				'id': option.id
-			})
-
-		},
-		methods: {
-			
-			
-
-			// 详情数据请求
-			async getDataDetail(params = {}) {
-				const res = await this.$myRequest({
-					url: 'MonthlyReport/getMonthlyReportDetails',
-					data: params,
-					showLoading: true
-				})
-				this.getData = res.data.data;
-				// console.log(this.getData)
-				this.project_info = this.getData.project_info; //基本情况
-
-				this.instal_device_info = this.getData.instal_device_info; //安装设备情况
-				console.log(this.instal_device_info)
-				this.monitor_point_info = this.getData.monitor_point_info; //监控点情况  
-
-				this.count_time = this.getData.count_time; //统计时段
-
-				this.count_report = this.getData.count_report; //统计报表
-				
-				this.alarm_total = this.getData.alarm_total; //各类告警
-				
-				this.fire_data = this.getData.fire_data; //火灾告警		
-						
-				this.water_data = this.getData.water_data; //水系统告警
-				
-				this.rtu_data = this.getData.rtu_data; //水系统告警  
-				
-				this.propose = this.getData.propose; //存在问题
-				
-				this.other = this.getData.other; //其他事宜  
-				
-				this.event_time=res.data.event_time;
-				this.company_name=res.data.company_name;
-
-
-
-			},
-
-
-
-
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	page {
-		background: #EDEDED;
-	}
-</style>

+ 0 - 65
src/pages/analyse/monthReport/monthReport.vue

@@ -1,65 +0,0 @@
-<template>
-  <view class="">
-    <view class="cu-list menu-avatar">
-      <view
-        class="cu-item deviceTypeItem"
-        v-for="(item, index) in getData"
-        :key="index"
-        @tap="goReportDetail(item)"
-      >
-        <view class="cu-avatar round">
-          <image class="image-bg" src="/static/month-report-icon.png" />
-        </view>
-        <view class="content">
-          <view class="title text-cut" style="display: block"
-            >{{ item.company_name }} {{ item.event_time }}</view
-          >
-        </view>
-        <view class="nav-right num">
-          <view>
-            <text class="icon iconfont margin-right-xs margin-left-lg"
-              >&#xe629;</text
-            >
-          </view>
-        </view>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-import json from "../../../data/json.js";
-export default {
-  data() {
-    return {
-      deviceType: json.deviceType,
-      getData: [],
-    };
-  },
-  onLoad: function (option) {
-    this.getDataList({ company_code: uni.getStorageSync("selectedCode") });
-  },
-
-  methods: {
-    // 列表数据请求
-    async getDataList(params = {}) {
-      const res = await this.$myRequest({
-        url: "MonthlyReport/getMonthlyReportList",
-        data: params,
-        showLoading: true,
-      });
-      this.getData = res.data.data;
-      // console.log(JSON.parse(res))
-      console.log(this.getData[0].company_name);
-    },
-    goReportDetail(item) {
-      uni.navigateTo({
-        url: "/pages/analyse/monthDetail/monthDetail?id=" + item.id,
-      });
-    },
-  },
-};
-</script>
-
-<style lang="scss">
-</style>

+ 0 - 204
src/pages/index/components/chart/chart.vue

@@ -1,204 +0,0 @@
-<template>
-	<view class="content">
-		<view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echarts" class="echarts">
-		</view>
-	</view>
-</template>
-
-<script>
-	var dataname = ['消防水系统', '报警主机', '电气火灾', '其他', '监控视频']
-	var color = ['#3C8BF0', '#06CDF8', '#0ECB70', '#6744EF', '#FFD803'];
-	export default {
-		name: 'chart',
-		props: {
-			fbindData: {
-				type: Object,
-				default: null
-			},
-			findicator: {
-				type: Array,
-				default: null
-			},
-			fdatavalue: {
-				type: Array,
-				default: null
-			}
-		},
-		computed: {
-			bindData() {
-				return this.fbindData;
-			},
-		},
-		data() {
-
-			return {
-				option: {
-					tooltip: {
-						formatter: () => {
-							var html = '';
-							this.fdatavalue.map((val, ind) => {
-								html += dataname[ind] + ' : ' + val + '\n'
-							})
-							return html
-						}
-					},
-					radar: {
-						center: ["50%", "50%"],
-						radius: "72%",
-						splitArea: {
-							areaStyle: {
-								color: [
-									'#6494fe', '#d1dfff',
-									'#6494fe', '#d1dfff',
-								]
-							}
-						},
-
-						axisLabel: {
-							show: false,
-						},
-						axisLine: {
-							show: true,
-							lineStyle: {
-								color: "rgba(255,255,255,.5)",
-
-							}
-						},
-						splitLine: {
-							lineStyle: {
-								color: '#fff', // 分隔线颜色
-								width: 1 // 分隔线线宽
-							}
-						},
-
-						name: {
-							formatter: (value) => {
-
-								function contains(arrays, obj) {
-									var i = arrays.length;
-									while (i--) {
-										if (arrays[i] === obj) {
-											return i;
-										}
-									}
-									return false;
-								}
-								var i = contains(dataname, value);
-
-								var percent = this.fdatavalue[i];
-
-								return '{a|' + value + '}\n  ' + '{b|' + percent + '}'
-							},
-							textStyle: {
-								rich: {
-									a: {
-										// color: '#333',
-										fontSize: 13,
-										align: 'center',
-										padding: [-5, 0, 0, 0]
-									},
-									b: {
-										// color: 'red',
-										fontSize: 13,
-										align: 'center',
-										padding: [-18, 0, 0, -7]
-
-
-
-									}
-								},
-							},
-						},
-						indicator: this.findicator
-					},
-
-					series: [{
-						type: "radar",
-						symbol: "circle",
-						symbolSize: 7,
-						areaStyle: {
-							normal: {
-								color: 'rgba(255,2,2, 0.5)',
-							},
-						},
-						itemStyle: {
-							color: '#fff',
-							borderColor: '#ff0202',
-							borderWidth: 1,
-						},
-						lineStyle: {
-							normal: {
-								color: "#ff0202",
-								width: 1
-							}
-						},
-						data: [this.fdatavalue]
-
-
-					}]
-				}
-			}
-		},
-		onLoad() {
-
-
-		},
-		methods: {
-			onViewClick(options) {
-				console.log(options)
-			}
-		}
-	}
-</script>
-
-<script module="echarts" lang="renderjs">
-	let myChart
-	export default {
-		mounted() {
-
-			if (typeof window.echarts === 'function') {
-				this.initEcharts()
-			} else {
-				// 动态引入较大类库避免影响页面展示
-				const script = document.createElement('script')
-				// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
-				script.src = 'static/echarts.min.js'
-				script.onload = this.initEcharts.bind(this)
-				document.head.appendChild(script)
-			}
-		},
-		methods: {
-			initEcharts() {
-				myChart = echarts.init(document.getElementById('echarts'))
-				// 观测更新的数据在 view 层可以直接访问到
-				myChart.setOption(this.option)
-			},
-			updateEcharts(newValue, oldValue, ownerInstance, instance) {
-				// 监听 service 层数据变更
-				myChart.setOption(newValue)
-			},
-			onClick(event, ownerInstance) {
-				// 调用 service 层的方法
-				ownerInstance.callMethod('onViewClick', {
-					test: 'test'
-				})
-			}
-		}
-	}
-</script>
-
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.echarts {
-		width: 100%;
-		height: 500rpx;
-		margin-top: 70rpx;
-		/* background:pink */
-	}
-</style>

+ 0 - 204
src/pages/index/components/chart2/chart2.vue

@@ -1,204 +0,0 @@
-<template>
-	<view class="content">
-
-		<view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echarts2"
-			class="echarts"></view>
-
-	</view>
-</template>
-
-<script>
-	let title = '总数';
-
-	export default {
-		props: {
-			bindData: {
-				type: Object,
-				default: ''
-			}
-		},
-		data() {
-			console.log('bindData')
-			console.log(this.bindData)
-
-			return {
-				option: {
-					color: ['#F67F32', '#3BD2BD', '#1DABFE'],
-
-					title: {
-						left: 'center'
-					},
-					tooltip: {
-						trigger: 'item',
-						// formatter: "{a} <br/>{b}: {c} ({d}%)"
-						formatter: "{b}: {c} "
-					},
-
-					title: [{ //aa标题
-						text: '{val|' + (parseInt(this.bindData.hj) + parseInt(this.bindData
-								.event_count) + parseInt(this.bindData.hidden_danger_count)) + '}\n{name|' +
-							title + '}',
-						top: '27%',
-						left: 'center',
-						textStyle: {
-							rich: {
-								name: {
-									fontSize: 14,
-									fontWeight: 'normal',
-									color: '#666666',
-									padding: [5, 0]
-								},
-								val: {
-									fontSize: 24,
-									color: '#333333',
-								}
-							}
-						}
-					}],
-					legend: { //aa图例
-					    bottom: '30',
-					           // right: 50,
-						icon: 'circle',
-						itemWidth: 12,
-						itemHeight: 12,
-						itemGap: 60,
-						selectedMode: false, 
-						// top: -10,
-						textStyle: {
-
-							fontSize: 14,
-							rich: {
-								name: {
-									fontSize: 18
-								},
-								value: {
-									fontSize: 14,
-									padding: [0, 20, 0, 5]
-								},
-
-							}
-						},
-					},
-					series: [{
-						name: '访问来源',
-						type: 'pie',
-						radius: ['38%', '55%'],
-						center: ['50%', '35%'],
-						itemStyle: {
-							normal: {
-								shadowBlur: 20,
-								shadowColor: '#F9F5F7',
-								shadowOffsetX: 0,
-								shadowOffsetY: 0,
-							},
-						},
-
-						data: [{
-								name: "火警",
-								value: this.bindData.hj
-							},
-							{
-								name: "事件",
-								value: this.bindData.event_count
-							},
-							{
-								name: "隐患",
-								value: this.bindData.hidden_danger_count
-							},
-
-						],
-						emphasis: {
-							itemStyle: {
-								shadowBlur: 10,
-								shadowOffsetX: 0,
-								shadowColor: 'rgba(0, 0, 0, 0.5)'
-							}
-						},
-						labelLine: {
-							normal: {
-								length: 10, //aa折线长度
-								length2: 20, //aa折线长度
-
-							}
-						},
-						label: {
-							normal: {
-								formatter: '{b}:{d}%',
-								// formatter: params => {
-								// 	var percent = 0;
-								// 	var total = 0;
-								// 	for (var i = 0; i < echartData.length; i++) {
-								// 		total += echartData[i].value;
-								// 	}
-								// 	console.log(111);
-								// 	console.log(total);
-
-								// 	percent = ((params.value / total) * 100).toFixed(0);
-								// 	return params.name + ': ' + percent + '%';
-
-								// },
-
-							}
-						},
-					}]
-				}
-			}
-		},
-		onLoad() {},
-		methods: {
-			onViewClick(options) {
-				console.log(options)
-			}
-		}
-	}
-</script>
-
-<script module="echarts" lang="renderjs">
-	let myChart
-	export default {
-		mounted() {
-			if (typeof window.echarts === 'function') {
-				this.initEcharts()
-			} else {
-				// 动态引入较大类库避免影响页面展示
-				const script = document.createElement('script')
-				// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
-				script.src = 'static/echarts.min.js'
-				script.onload = this.initEcharts.bind(this)
-				document.head.appendChild(script)
-			}
-		},
-		methods: {
-			initEcharts() {
-				myChart = echarts.init(document.getElementById('echarts2'))
-				// 观测更新的数据在 view 层可以直接访问到
-				myChart.setOption(this.option)
-			},
-			updateEcharts(newValue, oldValue, ownerInstance, instance) {
-				// 监听 service 层数据变更
-				myChart.setOption(newValue)
-			},
-			onClick(event, ownerInstance) {
-				// 调用 service 层的方法
-				ownerInstance.callMethod('onViewClick', {
-					test: 'test'
-				})
-			}
-		}
-	}
-</script>
-
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.echarts {
-		width: 100%;
-		height: 500rpx;
-		margin-top: 70rpx;
-	}
-</style>

+ 0 - 236
src/pages/index/components/chart3/chart3.vue

@@ -1,236 +0,0 @@
-<template>
-	<view class="content">
-		<view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echarts3" class="echarts"></view>
-
-	</view>
-</template>
-
-<script>
-	//start
-
-	//end
-
-
-	export default {
-		
-		
-		props:{
-			bindData:{
-				type:Object,
-				default: ''
-			}
-		},
-		
-		data() {
-			return {
-				option: {
-					// legend: {
-					//         data: ['bar', 'bar2', 'bar3', 'bar4'],
-					// 		color: ['#1ECC22', '#0FC6C8','#0D88F0', '#FF1313', '#FF522A' ],
-							
-					//     },
-					grid: {  //aa位置
-						top: '2%',
-						right: '8%',
-						bottom: '1%',
-						left: '17%',
-						
-					},
-
-					color: ['#1ECC22', '#0FC6C8','#0D88F0', '#FF1313', '#FF522A' ],
-					xAxis: [{
-						show: false
-					}],
-					yAxis: [{  //aay轴
-							axisTick: 'none',
-							axisLine: 'none',
-							axisLabel: {
-								verticalAlign: 'bottom',
-								align: 'bottom',
-								padding: [0, 0, 8, 5],
-								textStyle: {
-									color: '#333',
-									fontSize:'15'
-
-								}
-							},
-							data: ['正常','其他','预警','故障','离线'   ],
-
-						},
-						{
-							//左侧柱状图的Y轴
-							axisTick: 'none',
-							axisLine: 'none',
-							data: [this.bindData.normal_device_count,this.bindData.other_device_count,this.bindData.early_warning_device_count,this.bindData.fault_device_count,this.bindData.off_line_device_count],
-							axisLabel: {
-								show: true,
-								verticalAlign: 'bottom',
-								align: 'right',
-								padding: [0, 10, 8, 0],
-								textStyle: {
-									color: '#333',
-									fontSize:'15'
-
-								},
-								formatter: function(value) {
-									return value 
-								}
-
-							}
-						},
-
-					],
-					series: [{
-							type: 'bar',
-							data: [this.bindData.normal_device_count, , , , ],
-							barWidth: 6,
-							itemStyle: {
-								normal: {
-									barBorderRadius: 6,
-								}
-							},
-							z: 2
-						}, {
-							type: 'bar',
-							data: [ ,this.bindData.other_device_count, , , ],
-							barWidth: 6,
-							itemStyle: {
-								normal: {
-									barBorderRadius: 6,
-								}
-							},
-							z: 2
-						}, {
-							type: 'bar',
-							data: [ , ,this.bindData.early_warning_device_count, , ],
-							barWidth: 6,
-							itemStyle: {
-								normal: {
-									barBorderRadius: 6,
-								}
-							},
-							z: 2
-						},
-						{
-							type: 'bar',
-							data: [ , , ,this.bindData.fault_device_count, ],
-							barWidth: 6,
-							itemStyle: {
-								normal: {
-									barBorderRadius: 6,
-								}
-							},
-							z: 2
-						},
-						{
-							type: 'bar',
-							data: [ , , , ,this.bindData.off_line_device_count],
-							barWidth: 6,
-							itemStyle: {
-								normal: {
-									barBorderRadius: 6,
-								}
-							},
-							z: 2
-						},
-
-						{
-							type: 'bar',
-							barGap: '-100%',
-							data: [1000, 1000, 1000, 1000, 1000],
-							barWidth: 6,
-							itemStyle: {
-								normal: {
-									color: 'rgba(0,0,0, 0.15)',
-									barBorderRadius: 6,
-								}
-							},
-							z: 0
-						},
-					]
-				}
-			}
-			
-			
-		},
-		computed: {
-					// total:function(){
-					// 	 return parseInt(this.bindData.normal_device_count)+3
-					//  },
-					// onePersent:function(){
-					// 	 return parseInt(1/this.total*100)
-					//  },
-					 
-					 
-		},
-		onLoad() {
-			
-			// this.option.series.reverse()
-
-		},
-		
-		methods: {
-			changeOption() {
-				const data = this.option.series[0].data
-				// 随机更新示例数据
-				data.forEach((item, index) => {
-					data.splice(index, 1, Math.random() * 40)
-				})
-			},
-			onViewClick(options) {
-				console.log(options)
-			}
-		}
-	}
-</script>
-
-<script module="echarts" lang="renderjs">
-	let myChart
-	export default {
-		mounted() {
-			if (typeof window.echarts === 'function') {
-				this.initEcharts()
-			} else {
-				// 动态引入较大类库避免影响页面展示
-				const script = document.createElement('script')
-				// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
-				script.src = 'static/echarts.min.js'
-				script.onload = this.initEcharts.bind(this)
-				document.head.appendChild(script)
-			}
-		},
-		methods: {
-			initEcharts() {
-				myChart = echarts.init(document.getElementById('echarts3'))
-				// 观测更新的数据在 view 层可以直接访问到
-				myChart.setOption(this.option)
-			},
-			updateEcharts(newValue, oldValue, ownerInstance, instance) {
-				// 监听 service 层数据变更
-				myChart.setOption(newValue)
-			},
-			onClick(event, ownerInstance) {
-				// 调用 service 层的方法
-				ownerInstance.callMethod('onViewClick', {
-					test: 'test'
-				})
-			}
-		}
-	}
-</script>
-
-<style>
-	.content {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.echarts {
-		width: 100%;
-		height: 500rpx;
-		margin-top: 70rpx;
-		/* 	background:pink */
-	}
-</style>

+ 0 - 39
src/pages/index/components/chart4/chart4.vue

@@ -1,39 +0,0 @@
-<template>
-	<view class="content">
-		111{{nowData}}
-		<br>
-		222{{bindData}}
-
-	</view>
-</template>
-
-<script>
-	
-	
-	export default {
-		 name: 'chart4',
-		
-		props:{
-			bindData:{
-				type:Object,
-				default: ''
-			},
-		},
-		data() {
-			return {
-				nowData:this.bindData
-				}
-		},
-		onLoad() {
-
-		},
-		methods: {
-			
-		}
-	}
-</script>
-
-
-<style>
-	
-</style>

+ 2 - 22
src/pages/index/index.vue

@@ -69,21 +69,8 @@
           >统计时段:{{ staticData.statisticalPeriod }}
         </view>
         <view style="height: 570rpx">
-          <view v-if="Inv == 0">
-            <chart
-              :fbindData="staticData"
-              :findicator="indicator"
-              :fdatavalue="datavalue"
-              v-if="
-                staticData != '' &&
-                hackReset &&
-                JSON.stringify(staticData) != '{}'
-              "
-            ></chart>
-          </view>
-          <view v-if="Inv == 1">
-            <chart2 v-if="staticData != ''" :bindData="staticData"></chart2>
-          </view>
+          <view v-if="Inv == 0"> </view>
+          <view v-if="Inv == 1"> </view>
           <view v-if="Inv == 2" class="chart3-box">
             <ul class="chart3-icon">
               <li @tap="goOfflineList()">
@@ -117,7 +104,6 @@
                 ></image>
               </li>
             </ul>
-            <chart3 v-if="staticData != ''" :bindData="staticData"> </chart3>
           </view>
         </view>
       </view>
@@ -151,9 +137,6 @@
 </template>
 
 <script>
-import chart from "./components/chart/chart.vue";
-import chart2 from "./components/chart2/chart2.vue";
-import chart3 from "./components/chart3/chart3.vue";
 import searchSelect from "./components/searchSelect/searchSelect.vue";
 
 import json from "@/data/json.js"; //引入api请求封装方法
@@ -161,9 +144,6 @@ import * as jwx from "@/utils/jssdk.js"; //引入js sdk的封装
 
 export default {
   components: {
-    chart,
-    chart2,
-    chart3,
     searchSelect,
   },
 

+ 94 - 39
src/pages/login/login.vue

@@ -2,57 +2,72 @@
   <view class="section">
     <view class="bg">
       <image class="bgImage" :src="bg" v-if="bg" />
-      <image class="bgImage" src="/static/wt/bg.png" v-if="!bg" />
+      <image class="bgImage" src="@/static/wt/bg.png" v-if="!bg" />
     </view>
     <view class="top">
-      	<image class="logo" src="/static/wt/logo.png" mode="widthFix" />
-        <!-- <text class="title">{{title}}</text> -->
+      <image class="logo" src="@/static/wt/logo.png" mode="widthFix" />
+      <!-- <text class="title">{{title}}</text> -->
     </view>
     <view class="middle login">
-      <view class="inputWrap" v-if="switchText == '账号密码登录'">
-        <input
-          type="text"
-          placeholder="请输入手机号码"
+      <view
+        id="login-input"
+        style="margin-top: 20px"
+        v-if="switchText == '账号密码登录'"
+      >
+        <el-input
           v-model="phone"
-          class="input"
+          size="large"
+          placeholder="请输入手机号码"
+          :prefix-icon="Cellphone"
         />
-        <image class="phoneIcon inputIcon" src="/static/wt/phone.png" mode="widthFix"/>
       </view>
-      <view class="inputWrap verifyWrap" v-if="switchText == '账号密码登录'">
-        <view class="verify">
-          <input
-            type="text"
-            placeholder="请输入验证码"
-            v-model="verify"
-            class="input"
-          />
-          <image class="phoneIcon inputIcon" style="margin-top:25px" src="/static/wt/password.png" mode="widthFix"/>
-        </view>
-        <view @click="getVerifyCode" class="getVerifyCode">
-          <text class="right-icon verify2">{{
-            !codeTime ? "获取验证码" : codeTime + "s"
-          }}</text>
-        </view>
+
+      <view
+        id="login-input"
+        style="margin-top: 20px"
+        v-if="switchText == '账号密码登录'"
+      >
+        <el-input
+          style="width: 60%"
+          v-model="verify"
+          size="large"
+          placeholder="请输入验证码"
+          :prefix-icon="Lock"
+        />
+
+        <el-button @click="getVerifyCode">{{
+          !codeTime ? "获取验证码" : codeTime + "s"
+        }}</el-button>
       </view>
-      <view class="inputWrap account" v-if="switchText == '验证码登录'">
-        <input
-          type="text"
-          placeholder="请输入账号"
+
+      <view
+        id="login-input"
+        style="margin-top: 20px"
+        v-if="switchText == '验证码登录'"
+      >
+        <el-input
           v-model="username"
-          class="input"
+          size="large"
+          placeholder="请输入账号"
+          :prefix-icon="User"
+          :readonly="false"
         />
-        <image class="phoneIcon inputIcon" src="/static/wt/account.png" mode="widthFix"/>
-      </view>
-       <view class="inputWrap password" style="margin-top:16px;" v-if="switchText == '验证码登录'">
-        <input
-          type="text"
-          placeholder="请输入密码"
+
+        <el-input
+          style="margin-top: 20px"
+          type="password"
           v-model="password"
-          class="input"
+          class="w-50 m-2"
+          size="large"
+          placeholder="请输入密码"
+          :prefix-icon="Lock"
+          show-password
         />
-        <image class="phoneIcon inputIcon" src="/static/wt/password.png" mode="widthFix"/>
       </view>
-      <view class="switchText" @click="switchMode"><text>{{switchText}}</text></view>
+
+      <view class="switchText" @click="switchMode"
+        ><text>{{ switchText }}</text></view
+      >
       <button class="submit" @click="submitRes">登 录</button>
     </view>
     <view class="bottom">
@@ -63,7 +78,10 @@
 
 
 <script setup>
+import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
 import { reactive, toRefs, inject } from "vue";
+import { Lock, User, Cellphone } from "@element-plus/icons-vue";
+
 const myRequest = inject("$myRequest"); //api请求方法
 const data = reactive({
   /** saas数据 */
@@ -81,10 +99,28 @@ const data = reactive({
   password:undefined,
 
   // VerificationCodeOne
+<<<<<<< HEAD
 
 })
 const { title, bgc, bottomTitle, logo, 
 phone, verify, codeTime, switchText, username, password, tenantId } = toRefs(data)
+=======
+});
+
+const {
+  title,
+  bg,
+  bottomTitle,
+  logo,
+  phone,
+  verify,
+  codeTime,
+  switchText,
+  username,
+  password,
+  tenantId,
+} = toRefs(data);
+>>>>>>> 820ea7e (巡检模块)
 /**登录方式切换 */
 function switchMode(){
   if(switchText.value == "验证码登录"){
@@ -237,8 +273,27 @@ async function login(data) {
     url: "/pages/index/index",
   });
 }
+
+/**
+ * @inputChange
+ */
+function inputChange(e) {}
+
+/**
+ * @onLoad
+ */
+onLoad(() => {
+  const token = uni.getStorageSync("Authorization");
+  //需要登录
+  if (token) {
+    uni.switchTab({
+      url: "/pages/index/index",
+    });
+  }
+});
 </script>
-<style lang="scss" scoped> 
+
+<style lang="scss" scoped>
 .section {
   position: fixed;
   height:100%;

+ 167 - 169
src/pages/setting/setting.vue

@@ -1,56 +1,62 @@
 <template>
-	<view class="setting-wrapper ">
-		<view class="top-banner justify-center align-center text-center">
-			<view>
-				<image width="130" src="/static/personal-head.png"></image>
-				<view class="userName">admin</view>
-				<view>上海永天科技股份有限公司</view>
-			</view>
-		</view>
-		<view class="cu-list menu-avatar  padding-lr">
-			<view class="cu-item shadow" @tap="goMessagePush()">
-				<view class="cu-avatar ">
-					<image class="image-bg" src="/static/push-icon.png"/>
-				</view>
-				<view class="content">
-					<view class="">推送设置</view>
-				</view>
-				<view class="nav-right">
-					<view class="text-grey">
-						<text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
-					</view>
-				</view>
-			</view>
-			
-			<view class="cu-item shadow" @tap="goBuilding()">
-				<view class="cu-avatar ">
-					<image class="image-bg" src="/static/building-icon.png"/>
-				</view>
-				<view class="content">
-					<view class="">建筑管理</view>
-				</view>
-				<view class="nav-right">
-					<view class="text-grey">
-						<text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
-					</view>
-				</view>
-			</view>
-			
-			<view class="cu-item shadow" @tap="goFunReport()">
-				<view class="cu-avatar ">
-					<image class="image-bg" src="/static/funcReport.png"/>
-				</view>
-				<view class="content">
-					<view class="">功能报备</view>
-				</view>
-				<view class="nav-right">
-					<view class="text-grey">
-						<text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
-					</view>
-				</view>
-			</view>
-			
-			<!-- <view class="cu-item" @tap="goSiteManage" v-if="permissionLabel==1">
+  <view class="setting-wrapper">
+    <view class="top-banner justify-center align-center text-center">
+      <view>
+        <image width="130" src="/static/personal-head.png"></image>
+        <view class="userName">admin</view>
+        <view>上海永天科技股份有限公司</view>
+      </view>
+    </view>
+    <view class="cu-list menu-avatar padding-lr">
+      <view class="cu-item shadow" @tap="goMessagePush()">
+        <view class="cu-avatar">
+          <image class="image-bg" src="/static/push-icon.png" />
+        </view>
+        <view class="content">
+          <view class="">推送设置</view>
+        </view>
+        <view class="nav-right">
+          <view class="text-grey">
+            <text class="icon iconfont margin-right-xs margin-left-lg"
+              >&#xe629;</text
+            >
+          </view>
+        </view>
+      </view>
+
+      <view class="cu-item shadow" @tap="goBuilding()">
+        <view class="cu-avatar">
+          <image class="image-bg" src="/static/building-icon.png" />
+        </view>
+        <view class="content">
+          <view class="">建筑管理</view>
+        </view>
+        <view class="nav-right">
+          <view class="text-grey">
+            <text class="icon iconfont margin-right-xs margin-left-lg"
+              >&#xe629;</text
+            >
+          </view>
+        </view>
+      </view>
+
+      <view class="cu-item shadow" @tap="goFunReport()">
+        <view class="cu-avatar">
+          <image class="image-bg" src="/static/funcReport.png" />
+        </view>
+        <view class="content">
+          <view class="">功能报备</view>
+        </view>
+        <view class="nav-right">
+          <view class="text-grey">
+            <text class="icon iconfont margin-right-xs margin-left-lg"
+              >&#xe629;</text
+            >
+          </view>
+        </view>
+      </view>
+
+      <!-- <view class="cu-item" @tap="goSiteManage" v-if="permissionLabel==1">
 				<view class="cu-avatar " style="background-image:url(../../static/setting-icon2.png)"></view>
 				<view class="content">
 					<view class="">站点管理</view>
@@ -72,130 +78,122 @@
 					</view>
 				</view>
 			</view> -->
-		</view>
-		
-	</view>
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				permissionLabel:0
-			}
-		},
-		onLoad() {
-			// this.getAuthorization()
-		},
-		methods: {
-			
-			async getAuthorization(params) {
-				const res = await this.$myRequest({
-					url: 'Com/getAuthorization',
-					showLoading: true,
-					data: params
-				})
-			
-				console.log(res.data.permissionLabel)
-				 this.permissionLabel = res.data.permissionLabel
-			},
-			
-			
-			// goSiteManage() {
-			// 	uni.navigateTo({
-			// 		url: '/pages/siteManage/siteManage?type=1',
-			// 		success: res => {},
-			// 		fail: () => {},
-			// 		complete: () => {}
-			// 	});
-			// },
-			// goDeviceManage() {
-			// 	uni.navigateTo({
-			// 		url: '/pages/siteManage/siteManage?type=2',
-			// 		success: res => {},
-			// 		fail: () => {},
-			// 		complete: () => {}
-			// 	});
-			// },
-			// goAuthManage() {
-			// 	uni.navigateTo({
-			// 		url: '/pages/authManage/authManage',
-			// 		success: res => {},
-			// 		fail: () => {},
-			// 		complete: () => {}
-			// 	});
-			// },
-			goMessagePush() {
-				uni.navigateTo({
-					url: '/pages/setting/messagePush/messagePush',
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-			},
-			goBuilding() {
-				uni.navigateTo({
-					url: '/pages/setting/building/building',
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-			},
-			goFunReport() {
-				uni.navigateTo({
-					url: '/pages/setting/funReport/funReport',
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-			},
+export default {
+  data() {
+    return {
+      permissionLabel: 0,
+    };
+  },
+  onLoad() {
+    // this.getAuthorization()
+  },
+  methods: {
+    async getAuthorization(params) {
+      const res = await this.$myRequest({
+        url: "Com/getAuthorization",
+        showLoading: true,
+        data: params,
+      });
 
-		}
-	}
+      console.log(res.data.permissionLabel);
+      this.permissionLabel = res.data.permissionLabel;
+    },
+
+    // goSiteManage() {
+    // 	uni.navigateTo({
+    // 		url: '/pages/siteManage/siteManage?type=1',
+    // 		success: res => {},
+    // 		fail: () => {},
+    // 		complete: () => {}
+    // 	});
+    // },
+    // goDeviceManage() {
+    // 	uni.navigateTo({
+    // 		url: '/pages/siteManage/siteManage?type=2',
+    // 		success: res => {},
+    // 		fail: () => {},
+    // 		complete: () => {}
+    // 	});
+    // },
+    // goAuthManage() {
+    // 	uni.navigateTo({
+    // 		url: '/pages/authManage/authManage',
+    // 		success: res => {},
+    // 		fail: () => {},
+    // 		complete: () => {}
+    // 	});
+    // },
+    goMessagePush() {
+      uni.navigateTo({
+        url: "/pages/setting/messagePush/messagePush",
+        success: (res) => {},
+        fail: () => {},
+        complete: () => {},
+      });
+    },
+    goBuilding() {
+      uni.navigateTo({
+        url: "/pages/setting/building/building",
+        success: (res) => {},
+        fail: () => {},
+        complete: () => {},
+      });
+    },
+    goFunReport() {
+      uni.navigateTo({
+        url: "/pages/setting/funReport/funReport",
+        success: (res) => {},
+        fail: () => {},
+        complete: () => {},
+      });
+    },
+  },
+};
 </script>
 
 <style lang="scss">
-	.setting-wrapper {
-		.top-banner {
-			width: 100%;
-			height: 380rpx;
-			background: url(../../static/setting-bg.png) no-repeat;
-			background-size:cover;
-			color: #fff;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-			image {
-				width: 130rpx;
-				height: 130rpx;
-			}
-			.userName {
-				margin-top: 30rpx;
-				margin-bottom: 10rpx;
-			}
-		}
-		
-		.cu-list.menu-avatar .cu-item{
-			margin:30rpx 0 0;
-			margin-left:0;
-			.cu-avatar{
-				background-color:rgba(0,0,0,0);
-				background-size:100% 100%;
-				left:26rpx;
-			}
-			.content{
-				left:130rpx;
-				font-size:32rpx;
-			}
-		}
-	}
-	
-	
-		
-	
+.setting-wrapper {
+  .top-banner {
+    width: 100%;
+    height: 380rpx;
+    background: url(../../static/setting-bg.png) no-repeat;
+    background-size: cover;
+    color: #fff;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    image {
+      width: 130rpx;
+      height: 130rpx;
+    }
+    .userName {
+      margin-top: 30rpx;
+      margin-bottom: 10rpx;
+    }
+  }
+
+  .cu-list.menu-avatar .cu-item {
+    margin: 30rpx 0 0;
+    margin-left: 0;
+    .cu-avatar {
+      background-color: rgba(0, 0, 0, 0);
+      background-size: 100% 100%;
+      left: 26rpx;
+    }
+    .content {
+      left: 130rpx;
+      font-size: 32rpx;
+    }
+  }
+}
 </style>
 <style>
-	.shadow {
-		box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
-	}
+.shadow {
+  box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
+}
 </style>

+ 3 - 19
src/pages/xunJian/components/echarts/chart.vue

@@ -1,12 +1,12 @@
 <template>
   <view class="content">
-    <view @click="echarts.onClick" :prop="option" id="echarts" class="echarts">
+    <view @click="initEcharts" :prop="option" id="echarts" class="echarts">
     </view>
   </view>
 </template>
 
 <script setup>
-import * as echarts from 'echarts';
+import * as echarts from "echarts";
 import { defineComponent, ref, onMounted } from "vue";
 
 const props = defineProps({
@@ -122,16 +122,7 @@ let option = {
 };
 
 onMounted(() => {
-  if (typeof window.echarts === "function") {
-    initEcharts();
-  } else {
-    // 动态引入较大类库避免影响页面展示
-    const script = document.createElement("script");
-    // view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
-    script.src = "static/echarts.min.js";
-    script.onload = initEcharts.bind(this);
-    document.head.appendChild(script);
-  }
+  initEcharts();
 });
 
 function initEcharts() {
@@ -141,13 +132,6 @@ function initEcharts() {
   myChart.setOption(option);
 }
 
-function onClick(event, ownerInstance) {
-  // 调用 service 层的方法
-  ownerInstance.callMethod("onViewClick", {
-    test: "test",
-  });
-}
-
 window.onresize = () => {
   return (() => {
     myChart.resize();

+ 1 - 1
src/pages/xunJian/plan/components/content.vue

@@ -171,6 +171,7 @@ function remarksClick(index) {
  * @上一步
  * @提交
  */
+
 async function buttonClick(type) {
   if (type == 1) {
     //上一步
@@ -179,7 +180,6 @@ async function buttonClick(type) {
     });
   } else if (type == 2) {
     //提交
-    console.log(settingsStore.contentArray);
 
     const contentList = settingsStore.contentArray.contentList;
     const recordOptionList = [];

+ 1 - 1
src/pages/xunJian/plan/components/report.vue

@@ -113,7 +113,7 @@ const scanArray = ref([]);
 const scanBool = ref(false);
 async function scanClick() {
   settingsStore.contentArray = {};
-  settingsStore.siteNubmber = "8888888888";
+  settingsStore.siteNubmber = "0000000000";
   settingsStore.siteId = undefined;
   settingsStore.planSonId = undefined;
 

+ 0 - 1
src/pages/xunJian/plan/components/siteDetails.vue

@@ -242,7 +242,6 @@ onLoad((options) => {
   if (JSON.stringify(settingsStore.contentArray) == "{}") {
     selectAPI();
   } else {
-    console.log(settingsStore.contentArray);
     contentList.value = settingsStore.contentArray.contentList[0];
     siteList.value = settingsStore.contentArray.siteList;
   }

+ 13 - 1
src/pages/xunJian/plan/index.vue

@@ -276,6 +276,18 @@ function reportClick(id) {
 const scanArray = ref([]);
 const scanBool = ref(false);
 async function scanClick() {
+  uni.scanCode({
+    success: (res) => {
+      console.log("扫码成功", res);
+    },
+    fail: (err) => {
+      console.log("扫码失败", err);
+    },
+    complete: () => {
+      console.log("扫码结束");
+    },
+  });
+
   settingsStore.inspectionStatus = 1;
   let res = await myRequest({
     url: "/service-fire/appPatrolInspection/planList",
@@ -284,7 +296,7 @@ async function scanClick() {
     },
     method: "GET",
     data: {
-      siteNubmber: "8888888888",
+      siteNubmber: "0000000000",
     },
   });
 

+ 145 - 123
src/pages/xunJian/recordDetail/recordDetail.vue

@@ -1,137 +1,159 @@
 <template>
-	<view>
-		<view class="timeBox flex justify-between align-center padding-lr-sm">
-			<view class="time">{{this.getData.plan_name}}</view>
-			<button class="cu-btn radius bg-green sm" v-if="this.getData.spot_abnormal==0">正常</button>
-			<button class="cu-btn radius bg-orange sm" v-if="this.getData.spot_abnormal==1">异常</button>
-			<button class="cu-btn radius bg-red sm" v-if="this.getData.spot_abnormal==2">故障</button>
-			<button class="cu-btn radius bg-red sm" v-if="this.getData.spot_abnormal==3">其他</button>
-		</view>
+  <view>
+    <view class="timeBox flex justify-between align-center padding-lr-sm">
+      <view class="time">{{ this.getData.plan_name }}</view>
+      <button
+        class="cu-btn radius bg-green sm"
+        v-if="this.getData.spot_abnormal == 0"
+      >
+        正常
+      </button>
+      <button
+        class="cu-btn radius bg-orange sm"
+        v-if="this.getData.spot_abnormal == 1"
+      >
+        异常
+      </button>
+      <button
+        class="cu-btn radius bg-red sm"
+        v-if="this.getData.spot_abnormal == 2"
+      >
+        故障
+      </button>
+      <button
+        class="cu-btn radius bg-red sm"
+        v-if="this.getData.spot_abnormal == 3"
+      >
+        其他
+      </button>
+    </view>
 
-		<view>
-			<view class="basic-info">
-				<view class="info-tit margin-left-xs">
-					<text class="cuIcon-titles margin-right-xs"></text>
-					基本信息
-				</view>
-				<view class="info-content">
-					<view class="info-one-info ">
-						<text>所属单位:</text>
-						<text>{{this.getData.owner_name}}</text>
-					</view>
+    <view>
+      <view class="basic-info">
+        <view class="info-tit margin-left-xs">
+          <text class="cuIcon-titles margin-right-xs"></text>
+          基本信息
+        </view>
+        <view class="info-content">
+          <view class="info-one-info">
+            <text>所属单位:</text>
+            <text>{{ this.getData.owner_name }}</text>
+          </view>
 
-					<view class="info-one-info ">
-						<text>单位地址:</text>
-						<text>{{this.getData.owner_address}}</text>
-					</view>
-					<view class="info-one-info ">
-						<text>巡检点位:</text>
-						<text>{{this.getData.spot_name}}</text>
-					</view>
-					<view class="info-one-info ">
-						<text>点位地址:</text>
-						<text>{{this.getData.spot_address}}</text>
-					</view>
-					<view class="info-one-info ">
-						<text>预期时间:</text>
-						<text>{{this.getData.ywc_time}}</text>
-					</view>
-					<view class="info-one-info ">
-						<text>完成时间:</text>
-						<text>{{this.getData.wc_time}}</text>
-					</view>
-				</view>
-			</view>
+          <view class="info-one-info">
+            <text>单位地址:</text>
+            <text>{{ this.getData.owner_address }}</text>
+          </view>
+          <view class="info-one-info">
+            <text>巡检点位:</text>
+            <text>{{ this.getData.spot_name }}</text>
+          </view>
+          <view class="info-one-info">
+            <text>点位地址:</text>
+            <text>{{ this.getData.spot_address }}</text>
+          </view>
+          <view class="info-one-info">
+            <text>预期时间:</text>
+            <text>{{ this.getData.ywc_time }}</text>
+          </view>
+          <view class="info-one-info">
+            <text>完成时间:</text>
+            <text>{{ this.getData.wc_time }}</text>
+          </view>
+        </view>
+      </view>
 
-			<!-- 巡检信息 -->
-			<view class="basic-info">
-				<view class="info-tit margin-left-xs">
-					<text class="cuIcon-titles margin-right-xs"></text>
-					巡检信息
-				</view>
-				<view class="info-content">
-					<view class="info-one-info ">
-						<text>巡检人员:</text>
-						<text>{{this.getData.name}}</text>
-					</view>
+      <!-- 巡检信息 -->
+      <view class="basic-info">
+        <view class="info-tit margin-left-xs">
+          <text class="cuIcon-titles margin-right-xs"></text>
+          巡检信息
+        </view>
+        <view class="info-content">
+          <view class="info-one-info">
+            <text>巡检人员:</text>
+            <text>{{ this.getData.name }}</text>
+          </view>
 
-					<view class="info-one-info ">
-						<text>联系方式:</text>
-						<text>{{this.getData.phone}}</text>
-					</view>
-					<view class="info-one-info ">
-						<text>巡检描述:</text>
-						<text>{{this.getData.dwsb_remarks}}</text>
-					</view>
+          <view class="info-one-info">
+            <text>联系方式:</text>
+            <text>{{ this.getData.phone }}</text>
+          </view>
+          <view class="info-one-info">
+            <text>巡检描述:</text>
+            <text>{{ this.getData.dwsb_remarks }}</text>
+          </view>
+        </view>
+      </view>
+      <!-- 处理状态start -->
+      <view class="processStatus">
+        <view class="info-tit margin-left-xs">
+          <text class="cuIcon-titles margin-right-xs"></text>
+          巡检图片
+        </view>
+        <view class="padding-lr padding-bottom-lg imgPic">
+          <image
+            v-if="!this.getData.report_photos && this.dataRes == 1"
+            mode="widthFix"
+            src="/static/defaultImg.jpg"
+            width="100%"
+          />
+          <image
+            v-else
+            mode="widthFix"
+            :src="`${this.$websiteUrl}${this.getData.report_photos}`"
+            width="100%"
+          />
 
-				</view>
-			</view>
-			<!-- 处理状态start -->
-			<view class="processStatus">
-				<view class="info-tit margin-left-xs">
-					<text class="cuIcon-titles margin-right-xs"></text>
-					巡检图片
-				</view>
-				<view class="padding-lr padding-bottom-lg imgPic"> 
-						<image v-if="!this.getData.report_photos&&this.dataRes==1" mode='widthFix' src="/static/defaultImg.jpg" width="100%"/>
-						<image v-else  mode='widthFix' :src="`${this.$websiteUrl}${this.getData.report_photos}`" width="100%"/>
-						
-						<!-- <image class="image-bg"  v-if="!this.getData.report_photos&&this.dataRes==1"  src="/static/defaultImg.jpg"/>
+          <!-- <image class="image-bg"  v-if="!this.getData.report_photos&&this.dataRes==1"  src="/static/defaultImg.jpg"/>
 						<image  class="image-bg" v-else :src="this.getData.report_photos" /> -->
-				</view>
-			</view>
-			<!-- 处理状态end -->
-		</view>
-
-
-	</view>
+        </view>
+      </view>
+      <!-- 处理状态end -->
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				radio: 'A',
-				radio: 'B',
-				modalName: null,
-				reason: '',
-				type: '0',
-				detailMessage: {},
-				detailMessage2: {},
-				msg: '',
-				msg2: '',
-				flag: false,
-				companyCode: 0,
-				getData: {},
-				dataRes: 0,
-
-			}
-		},
-		onLoad: function(option) {
-			this.goRecordDetail({
-				'company_code': uni.getStorageSync('selectedCode'),
-				"id": option.id
-			})
-		},
-		methods: {
-
-
-			// 巡检记录列详情数据请求
-			async goRecordDetail(params = {}) {
-				const res = await this.$myRequest({
-					url: 'Inspection/getInspectionRecordDetails',
-					data: params,
-					showLoading: true
-				})
-				this.getData = res.data.data[0];
-				this.dataRes=1;
-				console.log(this.getData);
-			},
-
-		}
-	}
+export default {
+  data() {
+    return {
+      radio: "A",
+      radio: "B",
+      modalName: null,
+      reason: "",
+      type: "0",
+      detailMessage: {},
+      detailMessage2: {},
+      msg: "",
+      msg2: "",
+      flag: false,
+      companyCode: 0,
+      getData: {},
+      dataRes: 0,
+    };
+  },
+  onLoad: function (option) {
+    this.goRecordDetail({
+      company_code: uni.getStorageSync("selectedCode"),
+      id: option.id,
+    });
+  },
+  methods: {
+    // 巡检记录列详情数据请求
+    async goRecordDetail(params = {}) {
+      const res = await this.$myRequest({
+        url: "Inspection/getInspectionRecordDetails",
+        data: params,
+        showLoading: true,
+      });
+      this.getData = res.data.data[0];
+      this.dataRes = 1;
+      console.log(this.getData);
+    },
+  },
+};
 </script>
 
 <style lang="scss">
-
 </style>

+ 23 - 0
src/store/modules/user.js

@@ -0,0 +1,23 @@
+import { defineStore } from 'pinia'
+
+const useXunJianStore = defineStore(
+    'xunJian', {
+    state: () => ({
+        userName: ''
+    }),
+    persist: { // 自定义数据持久化方式
+        // key: 'store-key', 指定key进行存储,此时非key的值不会持久化,刷新就会丢失
+        storage: window.localStorage, // 指定换成地址
+        // paths: ['nested.data'],// 指定需要持久化的state的路径名称
+        beforeRestore: context => {
+            console.log('Before' + context)
+        },
+        afterRestore: context => {
+            console.log('After' + context)
+        },
+    },
+    actions: {
+    }
+})
+
+export default useXunJianStore

+ 38 - 10
src/utils/api.js

@@ -8,18 +8,19 @@ let ajaxTimes = 0;
 
 function myRequest(options) {
 
-    let showLoading = options.showLoading || false;
+	let showLoading = options.showLoading || false;
 
-    // 显示加载中 效果
-    if (showLoading) {
-        ajaxTimes++;
-        uni.showLoading({
-            title: "加载中",
-            mask: true,
-        });
-    }
+	// 显示加载中 效果
+	if (showLoading) {
+		ajaxTimes++;
+		uni.showLoading({
+			title: "加载中",
+			mask: true,
+		});
+	}
 
 	return new Promise((resolve, reject) => {
+
 		uni.request({
 			url: BASE_URL + options.url,
 			method: options.method,
@@ -32,16 +33,32 @@ function myRequest(options) {
 				'Authorization': uni.getStorageSync('Authorization'),
 			},
 			success: (res) => {
-				if (res.data.status != 'SUCCESS') {
+
+				if (res.data.code == 200) {
+					return uni.showToast({
+						title: res.data.msg ? res.data.msg : "获取数据失败",
+						icon: "none"
+					})
+				} else if (res.data.code == 401) {
+					uni.navigateTo({
+						url: "/pages/login/login",
+					});
+				} else if (res.data.status == 'ERROR') {
 					return uni.showToast({
 						title: res.data.msg ? res.data.msg : "获取数据失败",
 						icon: "none"
 					})
 				}
+
+
 				resolve(res)
+
+
 			},
 			fail: (err) => {
 
+
+
 				uni.showModal({
 					showCancel: false,
 					content: '请求接口失败'
@@ -94,6 +111,10 @@ function sendUploadFile(options) {
 						title: res.data.msg ? res.data.msg : "获取数据失败",
 						icon: "none"
 					})
+				} else if (res.data.code == 401) {
+					uni.navigateTo({
+						url: "/pages/login/login",
+					});
 				}
 				resolve(JSON.parse(res.data))
 			},
@@ -120,6 +141,13 @@ function sendUploadFile(options) {
 	})
 }
 
+/**
+ * @路由拦截器
+ */
+function addInterceptor() {
+	uni.addInterceptor(STRING, OBJECT)
+}
+
 export default {
 	BASE_URL,
 	myRequest,

+ 8 - 0
src/utils/router/config.js

@@ -0,0 +1,8 @@
+export default {
+    //不需要登录的页面,白名单
+    whiteList: [
+        "/pages/login/login",
+    ],
+    //登录页
+    loginPage: "/pages/login/login"
+}

+ 52 - 0
src/utils/router/init.js

@@ -0,0 +1,52 @@
+import config from "./config.js"
+export default function initApp() {
+
+    /**
+     * 页面跳转拦截器
+     */
+    let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
+    list.forEach(item => { //用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器
+        uni.addInterceptor(item, {
+            invoke(e) { // 调用前拦截
+
+                //获取用户的token
+                const token = uni.getStorageSync('Authorization')
+
+                let url = e.url.split('?')[0];
+
+                let notNeed = config.whiteList.includes(url)
+                // 如果在whiteList里面就不需要登录
+                if (notNeed) {
+                    return e
+                } else {
+                    //需要登录  
+                    if (!token) {
+                        uni.showToast({
+                            title: '请先登录',
+                            icon: 'none'
+                        })
+                        uni.navigateTo({
+                            url: config.loginPage
+                        })
+                        return false
+
+                    } else {
+                        return e
+                    }
+                }
+
+            },
+            fail(err) { // 失败回调拦截 
+                console.log(err);
+                if (Debug) {
+                    console.log(err);
+                    uni.showModal({
+                        content: JSON.stringify(err),
+                        showCancel: false
+                    });
+                }
+            }
+        })
+    })
+    //添加uniCloud云函数拦截器
+}

Some files were not shown because too many files changed in this diff