Browse Source

协同作战地图/信息管理/设备管理/巡检管理

fanghuisheng 2 years ago
parent
commit
9eca30a8fc
100 changed files with 2835 additions and 2424 deletions
  1. 6 0
      README.md
  2. 39 18
      index.html
  3. 2 1
      package.json
  4. 2 1
      src/colorui/main.css
  5. 342 802
      src/common/common.scss
  6. 107 113
      src/common/public.scss
  7. 122 90
      src/data/json.js
  8. 48 48
      src/main.js
  9. 29 7
      src/manifest.json
  10. 340 303
      src/pages.json
  11. 11 19
      src/pages/analyse/analyse.vue
  12. 15 30
      src/pages/authority/authority.vue
  13. 118 0
      src/pages/business/mhxf/coordination/index.vue
  14. 488 0
      src/pages/business/mhxf/deviceManage/index.vue
  15. 376 0
      src/pages/business/mhxf/informationSelect/index.vue
  16. 1 1
      src/pages/business/mhxf/xunJian/collect/components/collectDetail.vue
  17. 2 2
      src/pages/business/mhxf/xunJian/collect/components/collectRecord.vue
  18. 11 57
      src/pages/business/mhxf/xunJian/collect/index.vue
  19. 0 0
      src/pages/business/mhxf/xunJian/components/echarts/chart.vue
  20. 0 0
      src/pages/business/mhxf/xunJian/components/index.vue
  21. 0 0
      src/pages/business/mhxf/xunJian/plan/components/content.vue
  22. 2 2
      src/pages/business/mhxf/xunJian/plan/components/drawer.vue
  23. 5 5
      src/pages/business/mhxf/xunJian/plan/components/report.vue
  24. 3 3
      src/pages/business/mhxf/xunJian/plan/components/siteDetails.vue
  25. 0 0
      src/pages/business/mhxf/xunJian/plan/components/upload.vue
  26. 30 169
      src/pages/business/mhxf/xunJian/plan/index.vue
  27. 2 2
      src/pages/business/mhxf/xunJian/record/record.vue
  28. 0 0
      src/pages/business/mhxf/xunJian/record/recordDetail/index.vue
  29. 8 27
      src/pages/business/mhxf/xunJian/xunJian.vue
  30. 123 134
      src/pages/export/export.vue
  31. 444 405
      src/pages/index/index.vue
  32. 1 1
      src/pages/info/fireBase/fireBase.vue
  33. 2 2
      src/pages/info/fireBashDetail/fireBashDetail.vue
  34. 11 16
      src/pages/info/info.vue
  35. 2 2
      src/pages/info/pushList/pushList.vue
  36. 118 133
      src/pages/login/login.vue
  37. 2 2
      src/pages/setting/funReport/funReport.vue
  38. 23 29
      src/pages/setting/setting.vue
  39. BIN
      src/static/aa.9.png
  40. 0 0
      src/static/images/analyse/analyse-bg.png
  41. 0 0
      src/static/images/analyse/build-icon.png
  42. 0 0
      src/static/images/analyse/yb-icon.png
  43. BIN
      src/static/images/auth-icon.jpg
  44. BIN
      src/static/images/device-icon.png
  45. BIN
      src/static/images/deviceManage/1.png
  46. BIN
      src/static/images/dz-icon.png
  47. 0 0
      src/static/images/export/process-icon.png
  48. 0 0
      src/static/images/export/processed-icon.png
  49. BIN
      src/static/images/icon.png
  50. 0 0
      src/static/images/info/fire-base1.png
  51. 0 0
      src/static/images/info/fireBase.png
  52. 0 0
      src/static/images/info/fireD-img.png
  53. 0 0
      src/static/images/info/info-bg.png
  54. 0 0
      src/static/images/info/push-list.png
  55. 0 0
      src/static/images/info/pushList.png
  56. BIN
      src/static/images/jx.png
  57. BIN
      src/static/images/month-report-icon.png
  58. BIN
      src/static/images/nav-icon.png
  59. BIN
      src/static/images/rg-icon.png
  60. 0 0
      src/static/images/setting/building-icon.png
  61. 0 0
      src/static/images/setting/funcList.png
  62. 0 0
      src/static/images/setting/funcReport.png
  63. 0 0
      src/static/images/setting/personal-head.png
  64. 0 0
      src/static/images/setting/plus.png
  65. 0 0
      src/static/images/setting/push-icon.png
  66. 0 0
      src/static/images/setting/setting-bg.png
  67. 0 0
      src/static/images/setting/setting-icon1.png
  68. 0 0
      src/static/images/setting/setting-icon2.png
  69. 0 0
      src/static/images/setting/setting-icon3.png
  70. 0 0
      src/static/images/setting/setting-icon4.png
  71. BIN
      src/static/images/site-icon-alarm.png
  72. BIN
      src/static/images/site-icon.png
  73. BIN
      src/static/images/video-img.png
  74. 0 0
      src/static/images/wt/account.png
  75. 0 0
      src/static/images/wt/arrow.png
  76. 0 0
      src/static/images/wt/arrow2.png
  77. 0 0
      src/static/images/wt/bg.png
  78. 0 0
      src/static/images/wt/logo.png
  79. 0 0
      src/static/images/wt/password.png
  80. 0 0
      src/static/images/wt/phone-icon.png
  81. 0 0
      src/static/images/wt/phone.png
  82. 0 0
      src/static/images/xunjian/NFC.png
  83. 0 0
      src/static/images/xunjian/plan-scan-drawer.png
  84. 0 0
      src/static/images/xunjian/plan-scan.png
  85. 0 0
      src/static/images/xunjian/scan.png
  86. 0 0
      src/static/images/xunjian/xunJian-icon1.png
  87. 0 0
      src/static/images/xunjian/xunJian-icon2.png
  88. 0 0
      src/static/images/xunjian/xunJian-icon3.png
  89. BIN
      src/static/index/banner1.png
  90. BIN
      src/static/index/banner2.jpg
  91. BIN
      src/static/index/banner3.jpg
  92. 0 0
      src/static/index/chart3-1.png
  93. 0 0
      src/static/index/chart3-2.png
  94. 0 0
      src/static/index/chart3-3.png
  95. 0 0
      src/static/index/chart3-4.png
  96. 0 0
      src/static/index/chart3-5.png
  97. BIN
      src/static/index/ge1.png
  98. BIN
      src/static/index/ge2.png
  99. BIN
      src/static/index/ge3.png
  100. BIN
      src/static/index/ge4.png

+ 6 - 0
README.md

@@ -0,0 +1,6 @@
+# sass移动端
+### 文档(吉超博、詹叶俊)
+### https://docs.apipost.cn/preview/61b2861af42252f6/a453b7fa01ec4c0f?target_id=2c54712b-9b38-4642-b3a9-7205d58072ca
+
+
+### 坐标系(GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统、

+ 39 - 18
index.html

@@ -1,20 +1,41 @@
 <!DOCTYPE html>
 <html lang="en">
-  <head>
-    <meta charset="UTF-8" />
-    <script>
-      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
-        CSS.supports('top: constant(a)'))
-      document.write(
-        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
-        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
-    </script>
-    <title></title>
-    <!--preload-links-->
-    <!--app-context-->
-  </head>
-  <body>
-    <div id="app"><!--app-html--></div>
-    <script type="module" src="/src/main.js"></script>
-  </body>
-</html>
+
+<head>
+	<meta charset="UTF-8" />
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="viewport" content="width=device-width,initial-scale=1.0">
+	<script>
+		var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+			CSS.supports('top: constant(a)'))
+		document.write(
+			'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+			(coverSupport ? ', viewport-fit=cover' : '') + '" />')
+	</script>
+
+	<!-- 高德地图 -->
+	<script type="text/javascript">
+		window._AMapSecurityConfig = {
+			securityJsCode: 'be916fcd16d0b33d228c49f0ff096b17',
+		}
+	</script>
+	<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=d4d73a7d572b6ff6028d5f67de62029a">
+	</script>
+
+	<!-- <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=ffc71dfd4e576596027f8f45a1b8fb2f">
+	</script> -->
+	<!-- <script src="https://webapi.amap.com/loader.js"></script> -->
+	<!-- <script type="text/javascript" src="//webapi.amap.com/ui/1.1/main.js"></script> -->
+	<title></title>
+	<!--preload-links-->
+	<!--app-context-->
+</head>
+
+<body>
+	<div id="app">
+		<!--app-html-->
+	</div>
+	<script type="module" src="/src/main.js"></script>
+</body>
+
+</html>

+ 2 - 1
package.json

@@ -32,6 +32,7 @@
         "build:quickapp-webview-union": "uni build -p quickapp-webview-union"
     },
     "dependencies": {
+        "@amap/amap-jsapi-loader": "^1.0.1",
         "@dcloudio/uni-app": "3.0.0-alpha-3050320220729001",
         "@dcloudio/uni-app-plus": "3.0.0-alpha-3050320220729001",
         "@dcloudio/uni-components": "3.0.0-alpha-3050320220729001",
@@ -65,6 +66,6 @@
         "@dcloudio/vite-plugin-uni": "3.0.0-alpha-3050320220729001",
         "@vitejs/plugin-vue": "^2.3.3",
         "sass": "^1.54.3",
-        "vite": "^2.9.15"
+        "vite": "^2.9.14"
     }
 }

+ 2 - 1
src/colorui/main.css

@@ -1459,7 +1459,8 @@ button.cuIcon.lg {
 }
 
 .cu-list.grid.no-border {
-	padding: 20upx 10upx
+	/* padding: 20upx 10upx */
+	padding: 0upx 0upx
 }
 
 .cu-list.grid.col-3>.cu-item:nth-child(3n):after,

+ 342 - 802
src/common/common.scss

@@ -1,1044 +1,584 @@
 /* common */
 
 * {
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-	-khtml-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
+  -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: 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;
+  -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;
+  font-size: 32rpx;
 }
 
 .cut {
-	white-space: nowrap;
-	overflow: hidden;
-	text-overflow: ellipsis;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
 }
 
 .text-cut {
-	white-space: nowrap;
-	overflow: hidden;
-	text-overflow: ellipsis;
-	width: 85%
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  width: 85%;
 }
 
-
 radio,
 checkbox {
-	transform: scale(0.7)
+  transform: scale(0.7);
 }
 
 /* 修改placeholder颜色 */
 .uni-input-placeholder {
-	color: #999
+  color: #999;
 }
 
-
 table {
-	border-collapse: collapse;
-	width: 100%;
-	text-align: left
+  border-collapse: collapse;
+  width: 100%;
+  text-align: left;
 }
 
 table,
 tr,
 td,
 th {
-	border: 1px solid #e2e2e2;
+  border: 1px solid #e2e2e2;
 }
 
 td,
 th {
-	padding: 14rpx 10rpx;
-	font-size: 26rpx;
+  padding: 14rpx 10rpx;
+  font-size: 26rpx;
 }
 
 .imgPic image {
-	width: 100%
+  width: 100%;
 }
 
-
-
-
 /* 一行显示*/
 .inOneLine {
-	white-space: nowrap;
-	overflow: hidden;
-	text-overflow: ellipsis;
+  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-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');
+  font-family: "IMPACT";
+  /* project id 2394829 */
+  src: url("static/font/IMPACT.TTF");
 }
 
 .cu-bar .search-form uni-input {
-	padding: 0 30rpx
+  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
-	}
+  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
+.cu-list.grid > .cu-item uni-text {
+  color: #333;
+  font-size: 30rpx;
+  margin-top: 14rpx;
 }
 
-.cu-list.menu-avatar>.cu-item>.cu-avatar {
-	left: 24rpx;
-	background-color: rgba(0, 0, 0, 0)
+.cu-list.menu-avatar > .cu-item > .cu-avatar {
+  left: 24rpx;
+  background-color: rgba(0, 0, 0, 0);
 }
 
-.cu-list.menu-avatar>.cu-item .action {
-	width: 132rpx
+.cu-list.menu-avatar > .cu-item .action {
+  width: 132rpx;
 }
 
-
 .iconfont.phone {
-	color: #08BE04 !important;
-	font-size: 45rpx;
-	position: relative;
-	top: 6rpx;
-	left: 10rpx;
+  color: #08be04 !important;
+  font-size: 45rpx;
+  position: relative;
+  top: 6rpx;
+  left: 10rpx;
 }
 
 .iconfont.map {
-	color: #4074E7 !important;
-	font-size: 38rpx;
+  color: #4074e7 !important;
+  font-size: 38rpx;
 }
 
 /* 列列表公共样式 */
 .processWrapper .cu-avatar {
-	background-repeat: no-repeat;
-	background-size: cover;
-	background-color: #fff
+  background-repeat: no-repeat;
+  background-size: cover;
+  background-color: #fff;
 }
 
 .cu-avatar.lg {
-	width: 90rpx;
-	height: 90rpx
+  width: 90rpx;
+  height: 90rpx;
 }
 
-.cu-list.menu-avatar .cu-item {
-	margin-left: 24rpx;
-	padding: 30rpx 0;
+.cu-list.menu-avatar > .cu-item > .cu-avatar {
+  left: 0;
 }
 
-.cu-list.menu-avatar>.cu-item>.cu-avatar {
-	left: 0
+.cu-list.menu-avatar > .cu-item .content {
+  left: 120rpx;
+  width: 580rpx;
 }
 
-.cu-list.menu-avatar>.cu-item .content {
-	left: 120rpx;
-	width: 580rpx;
-}
-
-.unProcess,
-.error {
-	color: #FF4E00
-}
-
-.processed,
-.online {
-	color: #08BE04
-}
-
-.bg-error {
-	background: #FF4E00;
-	color: #fff;
-	display: inline-block;
-	padding: 0 10px;
-}
-
-.bg-online {
-	background: #08BE04;
-	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;
+  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-item:nth-child(2) {
+    border-left: 1px solid #e6e6e6;
+    border-right: 1px solid #e6e6e6;
+  }
 }
 
-
-
-
-
 /* 页面样式 */
 
 /* 站点列表页 */
 /* 筛选框 */
 .filter-section {
-	/* position: fixed; */
-	/* top: 88rpx; */
-	width: 100%;
-	z-index: 9
+  /* position: fixed; */
+  /* top: 88rpx; */
+  width: 100%;
+  z-index: 9;
 }
 
 .cu-bar .search-form {
-	background: #fff
+  background: #fff;
 }
 
 .cu-btn {
-	padding: 0 46rpx;
+  padding: 0 46rpx;
 }
 
 /* 站点列表 */
 .site-items {
-	margin-top: 100rpx;
-	width: 100%;
-	height: calc(100% - 100rpx);
-	// overflow: scroll
+  margin-top: 100rpx;
+  width: 100%;
+  height: calc(100% - 100rpx);
+  // overflow: scroll
 }
 
 .site-items .site-tit {
-	font-size: 32rpx;
-	color: #333;
-	justify-content: space-between;
-
+  font-size: 32rpx;
+  color: #333;
+  justify-content: space-between;
 }
 
-.site-items .cu-avatar {}
+.site-items .cu-avatar {
+}
 
 /* 新增按钮 */
 .site-wrapper .plus {
-	position: fixed;
-	bottom: 20rpx;
-	right: 20rpx
+  position: fixed;
+  bottom: 20rpx;
+  right: 20rpx;
 }
 
-
-
-
 /* 已处理未处理列表 */
 .processList .cu-list.menu-avatar .cu-item {
-
-	height: 180rpx;
+  height: 180rpx;
 }
 
 .pro-title {
-	color: #333;
+  color: #333;
 }
 
 .pro-des,
 .pro-date {
-	font-size: 28rpx;
-	color: #666;
+  font-size: 28rpx;
+  color: #666;
 }
 
-.pro-res {}
-
 .processList {
-
-	width: 100%;
-	height: calc(100% - 90rpx);
-	overflow-y: scroll;
+  width: 100%;
+  height: calc(100% - 90rpx);
+  overflow-y: scroll;
 }
 
 .fireBashWrapper.pushListWrapper {
-	margin-top: 0rpx;
+  margin-top: 0rpx;
 }
 
 .share-item.active {
-	color: red
+  color: red;
 }
 
-
-
 /* 已处理未处理详情页样式 */
 .timeBox {
-	height: 88rpx;
-	background: #EFF4FF;
-	line-height: 88rpx;
+  height: 88rpx;
+  background: #eff4ff;
+  line-height: 88rpx;
 
-	.time {
-		color: #333
-	}
+  .time {
+    color: #333;
+  }
 }
 
 .info-tit {
-	color: #4074E7;
-	line-height: 90rpx;
-	height: 90rpx;
+  color: #4074e7;
+  line-height: 90rpx;
+  height: 90rpx;
 }
 
 /* // 基本信息 */
-.info-content>view {
-	margin-left: 24rpx;
-	border-bottom: 1px solid #EDEDED;
-	line-height: 92rpx;
-	color: #666;
-
-	.checkMore {
-		color: #4074E7 !important
-	}
+.info-content > view {
+  margin-left: 24rpx;
+  border-bottom: 1px solid #ededed;
+  line-height: 92rpx;
+  color: #666;
 
+  .checkMore {
+    color: #4074e7 !important;
+  }
 }
 
-
-
 .info-content view text:first-child {
-	width: auto !important;
-	display: inline-block
+  width: auto !important;
+  display: inline-block;
 }
 
-
-
 //分析页面
 .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;
-		}
-	}
+  .cu-list.menu-avatar .cu-item {
+    border-radius: 5px;
+    padding: 30rpx 0;
+    box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
+    .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%;
+  width: 100%;
+  height: 100%;
 }
 
 .info-wrapper {
-	.top-banner {
-		background: none;
-		background-size: cover;
-		position: relative
-	}
+  .top-banner {
+    background: none;
+    background-size: cover;
+    position: relative;
+  }
 }
 
 .submitBottomBtn {
-	position: fixed;
-	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;
-
-	}
-
-
+  position: fixed;
+  width: 100%;
+  left: 0;
+  bottom: 44rpx;
+  z-index: 9;
+  // background-color: #ffffff;
 }
 
-.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;
-
+  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;
-
+  min-height: 0rpx;
 }
 
 .cu-bar .search-form {
-	margin: 26rpx 24rpx 0;
-
+  margin: 26rpx 24rpx 0;
 }
 
 uni-textarea {
-	width: 500rpx;
+  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;
+  position: relative;
+  top: 2px;
 }
 
 .processStatus {
-	textarea {
-		background: #F5F5F5;
-		color: #999999;
-		padding: 20rpx;
-	}
+  textarea {
+    background: #f5f5f5;
+    color: #999999;
+    padding: 20rpx;
+  }
 }
 
-// textarea
-.JTxtArea {
-	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
-	}
-}
+  height: 110rpx;
 
-.bg-onLine {
-	background: #08BE04;
-	color: #fff;
+  .content {
+    left: 100rpx !important;
+  }
 
-	.radiusStatus {
-		background: #fff
-	}
-}
-
-
-// 巡检计划
-.plan-sec {
-	border-radius: 10rpx;
-}
-
-.plan-tit {
-	font-size: 34rpx
-}
+  .cu-avatar.round {
+    width: 70rpx;
+    height: 70rpx;
+  }
 
-// 巡检新增
-.cu-form-group {
-	border-top: 0;
-	background: #fff;
-	padding: 0
-}
-
-input {
-	border: 0px 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;
+  .title {
+    font-size: 32rpx !important;
+  }
 
-}
-
-select {
-	background-color: rgba(0, 0, 0, 0);
-}
-
-
-select:focus,
-select:active,
-select:hover {
-	outline: none;
-}
-
-.selectBox {
-	position: relative;
-
-	select {
-		z-index: 2
-	}
-
-	.iconfont {
-		position: absolute;
-		top: 0;
-		right: 0rpx;
-		color: #999;
-		z-index: 1
-	}
-}
-
-select {
-	// background: url(/static/arrow2.png) no-repeat scroll 98% center;
-	background-size: 28rpx;
-}
-
-
-textarea {
-	border: 1px solid #EDEDED;
-	padding: 10px;
-	color: #999;
+  .num {
+    color: #666;
+  }
 }
 
 .form-item label text {
-	position: relative;
-	top: 2rpx
+  position: relative;
+  top: 2rpx;
 }
 
 .form-item.selectBox {
-	select {
-		background: rgba(0, 0, 0, 0)
-	}
+  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-left: 24rpx;
-		padding: 26rpx 10rpx;
-		border-top: 1px solid #f1f1f1;
-		margin-bottom: 0
-	}
-}
-
-.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
-	}
-}
-
-.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
-	}
+  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;
+  }
+}
+
+.cu-list.menu-avatar > .cu-item.qa-tit {
+  height: auto;
+
+  .cu-avatar {
+    width: 32rpx;
+    height: 32rpx;
+  }
+
+  .content {
+    left: 50rpx;
+  }
 }
 
 .messagePush {
-	.uni-checkbox .uni-checkbox-input {
-		width: 40rpx;
-		height: 40rpx;
-	}
+  .uni-checkbox .uni-checkbox-input {
+    width: 40rpx;
+    height: 40rpx;
+  }
 }
 
 .fireBashWrapper {
-	.cu-avatar {
-		width: 120rpx;
-		height: 100rpx
-	}
+  .cu-avatar {
+    width: 120rpx;
+    height: 100rpx;
+  }
 
-	.cu-list.menu-avatar>.cu-item .content {
-		left: 140rpx;
+  .cu-list.menu-avatar > .cu-item .content {
+    left: 140rpx;
 
-		.pro-date {
-			position: absolute;
-			right: 20rpx;
-			bottom: 0
-		}
-	}
+    .pro-date {
+      position: absolute;
+      right: 20rpx;
+      bottom: 0;
+    }
+  }
 }
 
 // 消防知识库详情页
 .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;
-	}
-
+  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
+  font-size: 32rpx;
+  font-weight: bold;
 }
 
 .preAndNext {
-	color: #4074E7;
-	margin: 30rpx 0 80rpx;
+  color: #4074e7;
+  margin: 30rpx 0 80rpx;
 }
 
-
-
-
-
-
-
-// 月报详情
-.reportD-wrapper {
-
-	.title-wrapper {
-		background: #EFF4FF;
-	}
-
-	.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
-	}
-
-	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
-	}
-
-}
-
-.deviceRegistWrapper {
-	.checkAll {
-		position: absolute;
-		top: -60rpx;
-		left: 22rpx
-	}
-
-	.cu-form-group {
-		min-height: 30rpx;
-		margin-top: 0
-	}
-
-}
-
-
-// 导出页面样式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;
-	}
-
-	.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;
-	}
-}
-
-// 导出页面样式end
-
 // 导出页面
 .uni-date-x--border,
 .uni-date-x {
-	border-radius: 25rpx !important;
+  border-radius: 25rpx !important;
 }
 
 .uni-date__x-input {
-	line-height: 72rpx;
+  line-height: 72rpx;
 }
 
 .example-body {
-	margin: 20rpx 20rpx;
-
-	uni-input,
-	select,
-	option {
-		border: none !important;
-	}
+  margin: 20rpx 20rpx;
 
+  uni-input,
+  select,
+  option {
+    border: none !important;
+  }
 }
 
 .info-one-info {
-	display: flex;
-	line-height: 26px !important;
-	padding: 10px 0;
+  display: flex;
+  line-height: 26px !important;
+  padding: 10px 0;
 }
 
 .info-content uni-view uni-text:first-child {
-	width: 88px !important;
+  width: 88px !important;
 }
 
 .info-content uni-view uni-text:last-child {
-	width: 75%;
-
-}
+  width: 75%;
+}

+ 107 - 113
src/common/public.scss

@@ -5,31 +5,31 @@
 tr,
 td,
 th {
-    border: 0px !important;
+  border: 0px !important;
 }
 
 .el-calendar__body {
-    padding: 0 !important;
+  padding: 0 !important;
 }
 
 .el-calendar-table .el-calendar-day {
-    text-align: center;
-    height: auto !important;
+  text-align: center;
+  height: auto !important;
 }
 
-.el-calendar-table thead>th {
-    text-align: center;
+.el-calendar-table thead > th {
+  text-align: center;
 }
 
 #calendar .filter {
-    width: 5px;
-    height: 5px;
-    border: 1px #1989fa solid;
-    border-radius: 100%;
-    text-align: center;
-    margin: auto;
-    margin-top: 5px;
-    background-color: #1989fa;
+  width: 5px;
+  height: 5px;
+  border: 1px #1989fa solid;
+  border-radius: 100%;
+  text-align: center;
+  margin: auto;
+  margin-top: 5px;
+  background-color: #1989fa;
 }
 
 /*
@@ -40,78 +40,72 @@ th {
  * @时间线样式 开始
  */
 #planTimeline {
-    padding: 0px 15px
+  padding: 0px 15px;
 }
 
 #planTimeline1 {
-    padding: 0px 15px;
+  padding: 0px 15px;
 
-    .u-steps-item__wrapper {
-        background-color: #f1f1f1
-    }
+  .u-steps-item__wrapper {
+    background-color: #f1f1f1;
+  }
 }
 
 /*
  * @时间线样式 结束
  */
 
-
 /*
  * @抽屉样式 开始
  */
 .el-drawer__header {
-    margin-bottom: 0px !important;
+  margin-bottom: 0px !important;
 }
 
 /*
  * @抽屉样式 结束
  */
 
-
 /*
  * @图片上传样式 开始
  */
 .el-upload-list {
-    display: flex !important;
+  display: flex !important;
 }
 
 .el-upload-list li,
 .el-upload-list .el-upload {
-    width: calc(33% - 10px) !important;
-    height: 110px !important;
-    margin: 0 15px 15px 0 !important;
-
+  width: calc(33% - 10px) !important;
+  height: 110px !important;
+  margin: 0 15px 15px 0 !important;
 }
 
 .el-upload-list li:nth-child(3n),
 .el-upload-list .el-upload:nth-child(3n) {
-    margin: 0 !important;
+  margin: 0 !important;
 }
 
 .avatar-uploader .el-upload {
-
-    border: 1px dashed #d9d9d9;
-    border-radius: 6px;
-    cursor: pointer;
-    position: relative;
-    overflow: hidden;
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
 }
 
 .avatar-uploader .el-upload:hover {
-    border-color: #409eff;
+  border-color: #409eff;
 }
 
 /*
  * @图片上传样式 结束
  */
 
-
-
 /*
  * @消息弹出框样式 开始
  */
 .el-message-box {
-    margin-top: 70%;
+  margin-top: 70%;
 }
 
 /*
@@ -123,8 +117,8 @@ th {
  */
 
 uni-textarea {
-    border: 0px solid #EDEDED;
-    padding: 0;
+  border: 0px solid #ededed;
+  padding: 0;
 }
 
 /*
@@ -135,7 +129,7 @@ uni-textarea {
  * @全局input样式 开始
  */
 uni-input {
-    background-color: transparent;
+  background-color: transparent;
 }
 
 /*
@@ -146,64 +140,65 @@ uni-input {
  * @login input样式 开始
  */
 #login-input {
-    .u-input {
-        height: 48px;
-        border-radius: 24px;
-        padding: 5px 12px !important;
-        background-color: rgba(255, 255, 255, 0.1) !important;
-    }
-
-    .uni-input-wrapper {
-        font-size: 18px;
-    }
-
-    uni-input {
-        color: #fff !important;
-        background-color: rgba(255, 255, 255, 0) !important;
-        border: 0px solid #EDEDED !important;
-        padding-left: 0 !important;
-    }
-
-    .u-icon__icon {
-        font-size: 24px !important;
-        line-height: 24px !important;
-        color: #a8abb2 !important;
-    }
-
-    .iconfont {
-        color: #a8abb2 !important;
-    }
-
-    .u-button {
-        width: 35%;
-        height: 48px;
-        line-height: 48px;
-        color: #fff;
-        border-radius: 24px;
-        margin: 0 0 0 5%;
-        font-size: 17px !important;
-        white-space: nowrap;
-        background-color: rgba(255, 255, 255, 0.1) !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; //背景色透明  生效时长  过渡效果  启用时延迟的时间
-    }
+  .u-input {
+    height: 48px;
+    border-radius: 24px;
+    padding: 5px 12px !important;
+    background-color: rgba(255, 255, 255, 0.1) !important;
+  }
+
+  .uni-input-wrapper {
+    font-size: 18px;
+  }
+
+  uni-input {
+    color: #fff !important;
+    background-color: rgba(255, 255, 255, 0) !important;
+    border: 0px solid #ededed !important;
+    padding-left: 0 !important;
+  }
+
+  .u-icon__icon {
+    font-size: 24px !important;
+    line-height: 24px !important;
+    color: #a8abb2 !important;
+  }
+
+  .iconfont {
+    color: #a8abb2 !important;
+  }
+
+  .u-button {
+    width: 35%;
+    height: 48px;
+    line-height: 48px;
+    color: #fff;
+    border-radius: 24px;
+    margin: 0 0 0 5%;
+    font-size: 17px !important;
+    white-space: nowrap;
+    background-color: rgba(255, 255, 255, 0.1) !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; //背景色透明  生效时长  过渡效果  启用时延迟的时间
+  }
 }
 
 /*
  * @login input样式 结束
  */
 
-
-
-
+//折叠面板样式 开始
+.u-cell__body {
+  padding: 10px 10px !important;
+}
+//折叠面板样式 结束
 
 /*
  * 页面样式 开始
@@ -212,33 +207,32 @@ uni-input {
  */
 
 .siteHeader {
-    .u-icon__icon {
-        font-size: 14px !important;
-        line-height: 14px !important;
-        margin: auto !important;
-    }
-
-    .uni-section .uni-section-header {
-        padding: 0 !important;
+  .u-icon__icon {
+    font-size: 14px !important;
+    line-height: 14px !important;
+    margin: auto !important;
+  }
 
+  .uni-section .uni-section-header {
+    padding: 0 !important;
 
-        .uni-section-header__decoration {
-            height: 14px !important;
-            background-color: #149eff;
-        }
+    .uni-section-header__decoration {
+      height: 14px !important;
+      background-color: #149eff;
+    }
 
-        .uni-section-header__content {
-            uni-text {
-                font-size: 15px !important;
-                color: #149eff !important;
-                font-weight: 600 !important;
-            }
-        }
+    .uni-section-header__content {
+      uni-text {
+        font-size: 15px !important;
+        color: #149eff !important;
+        font-weight: 600 !important;
+      }
     }
+  }
 }
 
 /*
  * 页面样式 结束
  * @/pages/xunJian/plan/components/siteDetails.vue
  * @/pages/xunJian/plan/components/content.vue
- */
+ */

+ 122 - 90
src/data/json.js

@@ -1,104 +1,136 @@
 // 本地模拟json数据
 // 首页九宫格
-let cuIconList = [{
-	imgUrl: '/static/images/square/square-xj.png',
-	badge: 0,
-	name: '巡检',
-	redirectUrl: '/pages/xunJian/xunJian'
-}, {
-	imgUrl: '/static/images/square/square-xf.png',
-	badge: 0,
-	name: '未开发',
-	redirectUrl: ''
-}]
+let cuIconList = [
+  {
+    imgUrl: "/static/index/ge1.png",
+    badge: 0,
+    name: "巡检",
+    redirectUrl: "/pages/business/mhxf/xunJian/xunJian",
+  },
+  {
+    imgUrl: "/static/index/ge2.png",
+    badge: 0,
+    name: "信息查询",
+    redirectUrl: "/pages/business/mhxf/informationSelect/index",
+  },
+  {
+    imgUrl: "/static/index/ge3.png",
+    badge: 0,
+    name: "设备管理",
+    redirectUrl: "/pages/business/mhxf/deviceManage/index",
+  },
+  {
+    imgUrl: "/static/index/ge4.png",
+    badge: 0,
+    name: "协同作战",
+    redirectUrl: "/pages/business/mhxf/coordination/index",
+  },
+  // {
+  //   imgUrl: "/static/images/square/square-xf.png",
+  //   badge: 0,
+  //   name: "未开发",
+  //   redirectUrl: "",
+  // },
+];
 
 // 首页报警数据
 let 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
-	}]
-}
-
+  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,
+    },
+  ],
+};
 
 // 巡检模块 开始
-let xunJianList = [{
-	id: 1,
-	title: "巡检任务",
-	num: "0",
-	imgUrl: "/static/inspection/xunJian-icon1.png",
-	redirectUrl: '/pages/xunJian/plan/index'
-}, {
-	id: 2,
-	title: "巡检记录",
-	num: "0",
-	imgUrl: "/static/inspection/xunJian-icon2.png",
-	redirectUrl: '/pages/xunJian/plan/index'
-}, {
-	id: 3,
-	title: "巡检采集",
-	num: "0",
-	imgUrl: "/static/inspection/xunJian-icon3.png",
-	redirectUrl: '/pages/xunJian/collect/index'
-}];
+let xunJianList = [
+  {
+    id: 1,
+    title: "巡检任务",
+    num: "0",
+    imgUrl: "/static/images/xunjian/xunJian-icon1.png",
+    redirectUrl: "/pages/business/mhxf/xunJian/plan/index",
+  },
+  {
+    id: 2,
+    title: "巡检记录",
+    num: "0",
+    imgUrl: "/static/images/xunjian/xunJian-icon2.png",
+    redirectUrl: "/pages/business/mhxf/xunJian/plan/index",
+  },
+  {
+    id: 3,
+    title: "巡检采集",
+    num: "0",
+    imgUrl: "/static/images/xunjian/xunJian-icon3.png",
+    redirectUrl: "/pages/business/mhxf/xunJian/collect/index",
+  },
+];
 
-let xunJianRecord = [{
-	id: "561",
-	title: "计划:巡检计划1",
-	des: "点位:巡检点位01",
-	time: "2021-01-20 15:23:43",
-	status: 0
-}, {
-	id: "561",
-	title: "计划:巡检计划1",
-	des: "点位:巡检点位01",
-	time: "2021-01-20 15:23:43",
-	status: 1
-}, {
-	id: "561",
-	title: "计划:巡检计划1",
-	des: "点位:巡检点位01",
-	time: "2021-01-20 15:23:43",
-	status: 1
-}];
+let xunJianRecord = [
+  {
+    id: "561",
+    title: "计划:巡检计划1",
+    des: "点位:巡检点位01",
+    time: "2021-01-20 15:23:43",
+    status: 0,
+  },
+  {
+    id: "561",
+    title: "计划:巡检计划1",
+    des: "点位:巡检点位01",
+    time: "2021-01-20 15:23:43",
+    status: 1,
+  },
+  {
+    id: "561",
+    title: "计划:巡检计划1",
+    des: "点位:巡检点位01",
+    time: "2021-01-20 15:23:43",
+    status: 1,
+  },
+];
 
-let xunJianPlan = [{
-	id: "561",
-	title: "虹泾总部园巡检点位1",
-	status: 0
-}, {
-	id: "561",
-	title: "虹泾总部园巡检点位2",
-	status: 0
-}, {
-	id: "561",
-	title: "虹泾总部园巡检点位3",
-	status: 1
-}];
+let xunJianPlan = [
+  {
+    id: "561",
+    title: "虹泾总部园巡检点位1",
+    status: 0,
+  },
+  {
+    id: "561",
+    title: "虹泾总部园巡检点位2",
+    status: 0,
+  },
+  {
+    id: "561",
+    title: "虹泾总部园巡检点位3",
+    status: 1,
+  },
+];
 // 巡检模块 结束
 
 // 定义数据出口
 export default {
+  staticData: staticData,
+  cuIconList: cuIconList,
 
-	staticData: staticData,
-	cuIconList: cuIconList,
-
-	xunJianList: xunJianList,
-	xunJianRecord: xunJianRecord,
-	xunJianPlan: xunJianPlan,
-
-}
+  xunJianList: xunJianList,
+  xunJianRecord: xunJianRecord,
+  xunJianPlan: xunJianPlan,
+};

+ 48 - 48
src/main.js

@@ -1,71 +1,71 @@
-import {
-	createSSRApp
-} from "vue";
+import { createSSRApp } from "vue";
 
 import App from "./App.vue";
-import store from './store'
+import store from "./store";
+import publicStore from "@/store/modules/public";
 
 // 引入全局api
-import api from '@/utils/api.js'
+import api from "@/utils/api.js";
 
 // 引入全局router路由拦截
 import initApp from "@/utils/router/init.js";
 
 // 引入colorui组件
-import cuCustom from '@/colorui/components/cu-custom.vue'
+import cuCustom from "@/colorui/components/cu-custom.vue";
 
 //配置公共方法
-import common from '@/common/common.js'
+import common from "@/common/common.js";
 
 // 引入json导出组件
-import JsonExcel from 'vue-json-excel'
+import JsonExcel from "vue-json-excel";
 
 // 引入微信js-sdk
 // import jweixin from 'weixin-js-sdk'
 
-import uviewPlus from './uni_modules/uview-plus';
+import uviewPlus from "./uni_modules/uview-plus";
 
 // 引入ElementPlus
-import ElementPlus from 'element-plus'
-import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
-import 'element-plus/theme-chalk/index.css'
+import ElementPlus from "element-plus";
+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);
-
-	// 挂载colorui组件
-	app.component('cu-custom', cuCustom)
-
-	// 挂载json导出
-	app.component('downloadExcel', JsonExcel)
-
-	// 挂宅icons-vue组件icon
-	for (const name in Elicons) {
-		app.component(name, Elicons[name]);
-	}
-
-
-	// 添加全局变量
-	app.provide('$myRequest', api.myRequest)
-	app.provide('$sendUploadFile', api.sendUploadFile)
-	app.provide('$BASE_URL', api.BASE_URL)
-	app.config.globalProperties.$myRequest = api.myRequest;
-	app.config.globalProperties.$BASE_URL = api.BASE_URL;
-	app.config.globalProperties.$websiteUrl = api.websiteUrl
-	// 添加全局变量 (禁止重复点击)
-	app.config.globalProperties.$noMultipleClicks = common.noMultipleClicks;
-	// 添加全局变量 微信js-sdk
-	// app.config.globalProperties.$wx = jweixin
-
-	// 使用element-plus
-	app.use(ElementPlus, {
-		locale: locale,
-	}).use(store).use(initApp).use(uviewPlus)
-
-	return {
-		app,
-	};
+  const app = createSSRApp(App);
+
+  // 挂载colorui组件
+  app.component("cu-custom", cuCustom);
+
+  // 挂载json导出
+  app.component("downloadExcel", JsonExcel);
+
+  // 挂宅icons-vue组件icon
+  for (const name in Elicons) {
+    app.component(name, Elicons[name]);
+  }
+
+  // 添加全局变量
+  app.provide("$myRequest", api.myRequest);
+  app.provide("$sendUploadFile", api.sendUploadFile);
+  app.provide("$BASE_URL", api.BASE_URL);
+  app.config.globalProperties.$myRequest = api.myRequest;
+  app.config.globalProperties.$BASE_URL = api.BASE_URL;
+  app.config.globalProperties.$websiteUrl = api.websiteUrl;
+  // 添加全局变量 (禁止重复点击)
+  app.config.globalProperties.$noMultipleClicks = common.noMultipleClicks;
+  // 添加全局变量 微信js-sdk
+  // app.config.globalProperties.$wx = jweixin
+
+  // 使用element-plus
+  app
+    .use(ElementPlus, {
+      locale: locale,
+    })
+    .use(store)
+    .use(initApp)
+    .use(uviewPlus);
+
+  return {
+    app,
+  };
 }

+ 29 - 7
src/manifest.json

@@ -7,8 +7,11 @@
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {
+        "compatible" : {
+            "ignoreVersion" : true //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持
+        },
         "kernel" : {
-            "ios" : "WKWebview" //或者 "WKWebview"  
+            "ios" : "WKWebview" //或者 "WKWebview"
         },
         "usingComponents" : true,
         "nvueStyleCompiler" : "uni-app",
@@ -22,7 +25,9 @@
         /* 模块配置 */
         "modules" : {
             "VideoPlayer" : {},
-            "iBeacon" : {}
+            "iBeacon" : {},
+            "Geolocation" : {},
+            "Maps" : {}
         },
         /* 应用发布信息 */
         "distribute" : {
@@ -58,9 +63,19 @@
             "sdkConfigs" : {
                 "ad" : {},
                 "maps" : {
-                    "baidu" : {
+                    "amap" : {
                         "appkey_ios" : "",
-                        "appkey_android" : ""
+                        "appkey_android" : "ffc71dfd4e576596027f8f45a1b8fb2f"
+                    }
+                },
+                "geolocation" : {
+                    "system" : {
+                        "__platform__" : [ "android" ]
+                    },
+                    "amap" : {
+                        "__platform__" : [ "android" ],
+                        "appkey_ios" : "",
+                        "appkey_android" : "ffc71dfd4e576596027f8f45a1b8fb2f"
                     }
                 }
             },
@@ -99,7 +114,7 @@
             "splashscreen" : {
                 "androidStyle" : "default",
                 "android" : {
-                    "hdpi" : "src/static/wt/bg.png"
+                    "hdpi" : "src/static/images/wt/bg.png"
                 }
             }
         }
@@ -149,7 +164,13 @@
         },
         "domain" : "https://qhome.usky.cn/",
         "sdkConfigs" : {
-            "maps" : {}
+            "maps" : {
+                "amap" : {
+                    "key" : "d4d73a7d572b6ff6028d5f67de62029a",
+                    "securityJsCode" : "be916fcd16d0b33d228c49f0ff096b17",
+                    "serviceHost" : ""
+                }
+            }
         },
         "optimization" : {
             "treeShaking" : {
@@ -157,5 +178,6 @@
             }
         }
     },
-    "vueVersion" : "3"
+    "vueVersion" : "3",
+    "locale" : "zh-Hans"
 }

+ 340 - 303
src/pages.json

@@ -1,308 +1,345 @@
 {
-    "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
-        {
-            "path": "pages/login/login",
-            "style": {
-                "navigationBarTitleText": "登录",
-                "navigationStyle": "custom"
-            }
-        },
-        {
-            "path": "pages/index/index",
-            "style": {
-                "navigationBarTitleText": "",
-                "app-plus": {
-                    "titleNView": {
-                        "buttons": [{
-                                "text": "\ue607",
-                                "fontSize": "18px",
-                                // "redDot": true,
-                                "float": "right",
-                                "fontSrc": "/static/iconfont/iconfont.ttf",
-                                "width": "auto"
-                            }
-                            // {
-                            //     "text": "\ue63d",
-                            //     "fontSize": "18px",
-                            //     "float": "left",
-                            //     "fontSrc": "/static/iconfont/iconfont.ttf",
-                            //     "width": "auto"
-                            // }
-                        ]
-                    }
-                }
-            }
-        },
-        {
-            "path": "pages/index/components/searchSelect/searchSelect",
-            "style": {
-                "navigationBarTitleText": "",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/export/export",
-            "style": {
-                "navigationBarTitleText": "导出",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "components/square/square",
-            "style": {
-                "navigationBarTitleText": "",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/authority/authority",
-            "style": {
-                "navigationBarTitleText": "授权",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/test/test",
-            "style": {
-                "navigationBarTitleText": "",
-                "enablePullDownRefresh": false
-            }
-        },
-        /**
-         * @消防督察单模块 开始
-         */
-        /**
-         * @消防督察单模块 结束
-         */
-        /**
-         * @巡检模块 开始
-         */
-        {
-            "path": "pages/xunJian/xunJian",
-            "style": {
-                "navigationBarTitleText": "巡检",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/xunJian/plan/index",
-            "style": {
-                "navigationBarTitleText": "巡检计划",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/xunJian/plan/components/siteDetails",
-            "style": {
-                "navigationBarTitleText": "站点详情",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/xunJian/plan/components/content",
-            "style": {
-                "navigationBarTitleText": "巡检内容",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/xunJian/plan/components/report",
-            "style": {
-                "navigationBarTitleText": "巡检上报",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/xunJian/record/record",
-            "style": {
-                "navigationBarTitleText": "巡检记录",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/xunJian/record/recordDetail/index",
-            "style": {
-                "navigationBarTitleText": "巡检记录详情",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/xunJian/collect/index",
-            "style": {
-                "navigationBarTitleText": "点位采集",
-                "enablePullDownRefresh": false,
-                "app-plus": {
-                    "titleNView": {
-                        "buttons": [{
-                            "text": "采集记录",
-                            "fontSize": "12px",
-                            // "redDot": true,
-                            "float": "right",
-                            "fontSrc": "/static/iconfont/iconfont.ttf",
-                            "width": "auto"
-                        }]
-                    }
-                }
-            }
-        },
-        {
-            "path": "pages/xunJian/collect/components/collectDetail",
-            "style": {
-                "navigationBarTitleText": "采集上报",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/xunJian/collect/components/collectRecord",
-            "style": {
-                "navigationBarTitleText": "采集记录",
-                "enablePullDownRefresh": false,
-                "app-plus": {
-                    "titleNView": {
-                        "buttons": [{
-                            "text": "\ue7c7",
-                            "fontSize": "18px",
-                            // "redDot": true,
-                            "float": "right",
-                            "fontSrc": "/static/iconfont/uciconfont/iconfont.ttf",
-                            "width": "auto"
-                        }]
-                    }
-                }
-            }
-        },
-        /**
-         * @巡检模块 结束
-         */
-        /**
-         * @消息 开始
-         */
-        {
-            "path": "pages/info/info",
-            "style": {
-                "navigationBarTitleText": "消息",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/info/fireBase/fireBase",
-            "style": {
-                "navigationBarTitleText": "消防知识库",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/info/pushList/pushList",
-            "style": {
-                "navigationBarTitleText": "消息推送",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/info/fireBashDetail/fireBashDetail",
-            "style": {
-                "navigationBarTitleText": "火灾逃生十大要诀",
-                "enablePullDownRefresh": false
-            }
-        },
-        /**
-         * @消息 结束
-         */
-        /**
-         * @分析 开始
-         */
-        {
-            "path": "pages/analyse/analyse",
-            "style": {
-                "navigationBarTitleText": "分析"
-            }
-        },
-        /**
-         * @分析 结束
-         */
-        /**
-         * @设置 开始
-         */
-        {
-            "path": "pages/setting/setting",
-            "style": {
-                "navigationBarTitleText": "设置"
-            }
-        },
-        {
-            "path": "pages/setting/messagePush/messagePush",
-            "style": {
-                "navigationBarTitleText": "消息推送设置",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/setting/building/building",
-            "style": {
-                "navigationBarTitleText": "建筑管理",
-                "enablePullDownRefresh": false
-            }
-        },
-        {
-            "path": "pages/setting/funReport/funReport",
-            "style": {
-                "navigationBarTitleText": "功能报备",
-                "enablePullDownRefresh": false,
-                "onReachBottomDistance": 100 //距离底部多远时触发 单位px
-            }
-        },
-        {
-            "path": "pages/setting/funReport/funcAdd/funcAdd",
-            "style": {
-                "navigationBarTitleText": "功能报备新增",
-                "enablePullDownRefresh": false
-            }
+  "pages": [
+    //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+    {
+      "path": "pages/login/login",
+      "style": {
+        "navigationBarTitleText": "登录",
+        "navigationStyle": "custom"
+      }
+    },
+    {
+      "path": "pages/index/index",
+      "style": {
+        "navigationBarTitleText": "",
+        "app-plus": {
+          "titleNView": {
+            "buttons": [
+              {
+                "text": "\ue607",
+                "fontSize": "18px",
+                // "redDot": true,
+                "float": "right",
+                "fontSrc": "/static/iconfont/iconfont.ttf",
+                "width": "auto"
+              }
+              // {
+              //     "text": "\ue63d",
+              //     "fontSize": "18px",
+              //     "float": "left",
+              //     "fontSrc": "/static/iconfont/iconfont.ttf",
+              //     "width": "auto"
+              // }
+            ]
+          }
+        }
+      }
+    },
+    {
+      "path": "pages/index/components/searchSelect/searchSelect",
+      "style": {
+        "navigationBarTitleText": "",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/export/export",
+      "style": {
+        "navigationBarTitleText": "导出",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "components/square/square",
+      "style": {
+        "navigationBarTitleText": "",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/authority/authority",
+      "style": {
+        "navigationBarTitleText": "授权",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/test/test",
+      "style": {
+        "navigationBarTitleText": "",
+        "enablePullDownRefresh": false
+      }
+    },
+    //消防督察单模块 开始
+
+    //消防督察单模块 结束
+
+    //巡检模块 开始
+    {
+      "path": "pages/business/mhxf/xunJian/xunJian",
+      "style": {
+        "navigationBarTitleText": "巡检",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/business/mhxf/xunJian/plan/index",
+      "style": {
+        "navigationBarTitleText": "巡检计划",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/business/mhxf/xunJian/plan/components/siteDetails",
+      "style": {
+        "navigationBarTitleText": "站点详情",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/business/mhxf/xunJian/plan/components/content",
+      "style": {
+        "navigationBarTitleText": "巡检内容",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/business/mhxf/xunJian/plan/components/report",
+      "style": {
+        "navigationBarTitleText": "巡检上报",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/business/mhxf/xunJian/record/record",
+      "style": {
+        "navigationBarTitleText": "巡检记录",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/business/mhxf/xunJian/record/recordDetail/index",
+      "style": {
+        "navigationBarTitleText": "巡检记录详情",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/business/mhxf/xunJian/collect/index",
+      "style": {
+        "navigationBarTitleText": "点位采集",
+        "enablePullDownRefresh": false,
+        "app-plus": {
+          "titleNView": {
+            "buttons": [
+              {
+                "text": "采集记录",
+                "fontSize": "12px",
+                // "redDot": true,
+                "float": "right",
+                "fontSrc": "/static/iconfont/iconfont.ttf",
+                "width": "auto"
+              }
+            ]
+          }
         }
-        /**
-         * @设置 结束
-         */
-    ],
-    "globalStyle": {
-        "navigationBarTextStyle": "white",
-        "navigationBarTitleText": "uni-app",
-        "navigationBarBackgroundColor": "#149EFF",
-        "backgroundColor": "#F8F8F8"
-            // "enablePullDownRefresh":true
+      }
+    },
+    {
+      "path": "pages/business/mhxf/xunJian/collect/components/collectDetail",
+      "style": {
+        "navigationBarTitleText": "采集上报",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/business/mhxf/xunJian/collect/components/collectRecord",
+      "style": {
+        "navigationBarTitleText": "采集记录",
+        "enablePullDownRefresh": false,
+        "app-plus": {
+          "titleNView": {
+            "buttons": [
+              {
+                "text": "\ue7c7",
+                "fontSize": "18px",
+                // "redDot": true,
+                "float": "right",
+                "fontSrc": "/static/iconfont/uciconfont/iconfont.ttf",
+                "width": "auto"
+              }
+            ]
+          }
+        }
+      }
+    },
+    //巡检模块 结束
+
+    //信息查询 开始
+    {
+      "path": "pages/business/mhxf/informationSelect/index",
+      "style": {
+        "navigationBarTitleText": "信息查询",
+        "enablePullDownRefresh": false
+      }
+    },
+    //信息查询 结束
+
+    //设备管理 开始
+    {
+      "path": "pages/business/mhxf/deviceManage/index",
+      "style": {
+        "navigationBarTitleText": "设备管理",
+        "enablePullDownRefresh": false
+      }
+    },
+    //设备管理 结束
+
+    //协同作战地图 开始
+    {
+      "path": "pages/business/mhxf/coordination/index",
+      "style": {
+        "navigationBarTitleText": "协同作战地图",
+        "enablePullDownRefresh": false
+      }
+    },
+    //协同作战地图 结束
+
+    /**
+     * @消息 开始
+     */
+    {
+      "path": "pages/info/info",
+      "style": {
+        "navigationBarTitleText": "消息",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/info/fireBase/fireBase",
+      "style": {
+        "navigationBarTitleText": "消防知识库",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/info/pushList/pushList",
+      "style": {
+        "navigationBarTitleText": "消息推送",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/info/fireBashDetail/fireBashDetail",
+      "style": {
+        "navigationBarTitleText": "火灾逃生十大要诀",
+        "enablePullDownRefresh": false
+      }
+    },
+    /**
+     * @消息 结束
+     */
+    /**
+     * @分析 开始
+     */
+    {
+      "path": "pages/analyse/analyse",
+      "style": {
+        "navigationBarTitleText": "分析"
+      }
+    },
+    /**
+     * @分析 结束
+     */
+    /**
+     * @设置 开始
+     */
+    {
+      "path": "pages/setting/setting",
+      "style": {
+        "navigationBarTitleText": "设置"
+      }
+    },
+    {
+      "path": "pages/setting/messagePush/messagePush",
+      "style": {
+        "navigationBarTitleText": "消息推送设置",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
+      "path": "pages/setting/building/building",
+      "style": {
+        "navigationBarTitleText": "建筑管理",
+        "enablePullDownRefresh": false
+      }
     },
-    "tabBar": {
-        "borderStyle": "white",
-        "list": [{
-                "pagePath": "pages/index/index",
-                "iconPath": "static/images/home.png",
-                "selectedIconPath": "static/images/home-selected.png",
-                "text": "主页"
-            },
-            {
-                "pagePath": "pages/info/info",
-                "iconPath": "static/images/info.png",
-                "selectedIconPath": "static/images/info-selected.png",
-                "text": "消息"
-            },
-            {
-                "pagePath": "pages/analyse/analyse",
-                "iconPath": "static/analyse.png",
-                "selectedIconPath": "static/analyse-selected.png",
-                "text": "分析"
-            },
-            {
-                "pagePath": "pages/setting/setting",
-                "iconPath": "static/images/setting.png",
-                "selectedIconPath": "static/images/setting-selected.png",
-                "text": "设置"
-            }
-        ]
+    {
+      "path": "pages/setting/funReport/funReport",
+      "style": {
+        "navigationBarTitleText": "功能报备",
+        "enablePullDownRefresh": false,
+        "onReachBottomDistance": 100 //距离底部多远时触发 单位px
+      }
     },
-    "condition": { //模式配置,仅开发期间生效
-        "current": 0, //当前激活的模式(list 的索引项)
-        "list": [{
-            "name": "", //模式名称
-            "path": "pages/index/index", //启动页面,必选
-            "query": "" //启动参数,在页面的onLoad函数里面得到
-        }]
+    {
+      "path": "pages/setting/funReport/funcAdd/funcAdd",
+      "style": {
+        "navigationBarTitleText": "功能报备新增",
+        "enablePullDownRefresh": false
+      }
     }
-}
+    /**
+     * @设置 结束
+     */
+  ],
+  "globalStyle": {
+    "navigationBarTextStyle": "white",
+    "navigationBarTitleText": "uni-app",
+    "navigationBarBackgroundColor": "#149EFF",
+    "backgroundColor": "#F8F8F8"
+    // "enablePullDownRefresh": true
+  },
+  "tabBar": {
+    "color": "#a9a9a9",
+    "selectedColor": "#000000",
+    "borderStyle": "white",
+    "list": [
+      {
+        "pagePath": "pages/index/index",
+        "iconPath": "static/tabBar/home.png",
+        "selectedIconPath": "static/tabBar/home-selected.png",
+        "text": "主页"
+      },
+      {
+        "pagePath": "pages/analyse/analyse",
+        "iconPath": "static/tabBar/analyse.png",
+        "selectedIconPath": "static/tabBar/analyse-selected.png",
+        "text": "分析"
+      },
+      {
+        "pagePath": "pages/info/info",
+        "iconPath": "static/tabBar/info.png",
+        "selectedIconPath": "static/tabBar/info-selected.png",
+        "text": "消息"
+      },
+      {
+        "pagePath": "pages/setting/setting",
+        "iconPath": "static/tabBar/setting.png",
+        "selectedIconPath": "static/tabBar/setting-selected.png",
+        "text": "我的"
+      }
+    ]
+  },
+  "condition": {
+    //模式配置,仅开发期间生效
+    "current": 0, //当前激活的模式(list 的索引项)
+    "list": [
+      {
+        "name": "", //模式名称
+        "path": "pages/index/index", //启动页面,必选
+        "query": "" //启动参数,在页面的onLoad函数里面得到
+      }
+    ]
+  }
+}

+ 11 - 19
src/pages/analyse/analyse.vue

@@ -1,36 +1,32 @@
 <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 class="analyse-wrapper" style="height: 100%">
+    <view class="justify-center align-center text-center">
+      <u-image src="@/static/images/analyse/analyse-bg.png" width="100%" height="273rpx" :showLoading="false" :fade="false"></u-image>
     </view>
-    <view class="cu-list menu-avatar padding-lr">
-      <view class="cu-item shadow" @tap="goMonthReport()">
+    <view class="cu-list menu-avatar padding-lr-sm padding-top-sm" style="height: calc(100% - 8.53125rem)">
+      <view class="cu-item margin-bottom-sm" @tap="goMonthReport()">
         <view class="cu-avatar">
-          <image class="image-bg" src="@/static/images/yb-icon.png" />
+          <image class="image-bg" src="@/static/images/analyse/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
-            >
+            <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-item margin-bottom-sm" @tap="goBuildingCheck()">
         <view class="cu-avatar">
-          <image class="image-bg" src="@/static/images/build-icon.png" />
+          <image class="image-bg" src="@/static/images/analyse/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
-            >
+            <text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
           </view>
         </view>
       </view>
@@ -62,10 +58,6 @@ export default {
 body {
   background: #fff;
 }
-.shadow {
-  box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
-}
 </style>
 
-<style lang="scss">
-</style>
+<style lang="scss"></style>

+ 15 - 30
src/pages/authority/authority.vue

@@ -1,36 +1,21 @@
 <template>
-	<view style="text-align:center; padding-top:100rpx">
-
-		<image src="../../static/chart3-2.png" style="width:100rpx;height:100rpx"></image>
-		<br>
-		<br>
-		<view>该用户权限尚未开通,请联系管理员!</view>
-
-	</view>
+  <view style="text-align: center; padding-top: 100rpx">
+    <image src="@/static/index/chart3-2.png" style="width: 100rpx; height: 100rpx"></image>
+    <br />
+    <br />
+    <view>该用户权限尚未开通,请联系管理员!</view>
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				
-
-			}
-		},
-		
-		computed: {
-			
-
-		},
-		methods: {
-
-			
-
-
-		}
-	}
+export default {
+  data() {
+    return {};
+  },
+
+  computed: {},
+  methods: {},
+};
 </script>
 
-<style>
-	
-</style>
+<style></style>

+ 118 - 0
src/pages/business/mhxf/coordination/index.vue

@@ -0,0 +1,118 @@
+<template>
+  <scroll-view scroll-y class="coordination whiteBackgroundColor">
+    <!-- <u-picker :show="show" :columns="columns" :closeOnClickOverlay="true" @close="close" @cancel="close" @confirm="confirm"></u-picker>
+    <view class="headerTop padding-tb-sm padding-lr-sm">
+      <view style="width: 49%; margin-right: 1%" @click="show = true">
+        <view style="display: flex; border-radius: 50px; background-color: #ffffff; padding: 0 15px">
+          <view style="height: 35px; line-height: 35px; font-size: 14px">{{ columnsValue }}</view>
+          <view style="margin: auto"></view>
+          <u-icon name="arrow-down" color="#000000" size="15"></u-icon>
+        </view>
+      </view>
+      <view style="width: 49%; margin-left: 1%">
+        <u-input
+          style="border-radius: 50px; background-color: #ffffff; height: 35px"
+          v-model="dataInput"
+          prefixIcon="search"
+          prefixIconStyle="font-size:20px;color: #0c7bf9"
+          placeholderStyle="font-size:14px"
+          placeholder="请输入设备编号"
+          fontSize="14px"
+        >
+        </u-input>
+      </view>
+    </view> -->
+
+    <!-- <cover-view> </cover-view> -->
+
+    <map style="margin-top: 35px; width: 100%; height: 100vh"> </map>
+
+    <!-- <view id="mapF" style="width: 100%; height: 100%"> </view> -->
+  </scroll-view>
+</template>
+
+<script setup>
+import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
+import { getCurrentInstance, ref, onMounted, inject, shallowRef, reactive, nextTick } from "vue";
+import useXunJianStore from "@/store/modules/xunJian";
+import { initMap } from "@/utils/maps/map-gaode-public";
+
+const myRequest = inject("$myRequest"); //全局接口请求
+const settingsStore = useXunJianStore(); //全局变量值Store
+
+const show = ref(false);
+const columns = ref([["消防站", "消防车", "消火栓/天然水源"]]);
+const columnsValue = ref("消防站");
+const dataInput = ref("");
+
+/**
+ * @弹窗选择器确认事件
+ */
+function confirm(val) {
+  columnsValue.value = val.value[0];
+  show.value = false;
+}
+
+/**
+ * @弹窗选择器关闭事件
+ */
+function close() {
+  show.value = false;
+}
+
+function getStreetTownClick() {
+  console.log(1);
+}
+
+// 自定义导航事件
+onNavigationBarButtonTap((e) => {
+  if (e.float == "right") {
+    uni.navigateTo({
+      url: "/pages/business/mhxf/xunJian/collect/components/collectRecord",
+    });
+  } else {
+  }
+});
+
+onLoad((options) => {});
+
+onReady(() => {});
+
+onMounted(() => {
+  console.log(uni.getSystemInfoSync().platform);
+  nextTick(() => {
+    // console.log(1);
+    // initMap();
+  });
+});
+</script>
+
+<style lang="scss">
+.coordination {
+  .headerTop {
+    display: flex;
+    background-color: transparent;
+    position: absolute;
+    top: 0;
+    z-index: 300000000000;
+    width: 100%;
+  }
+}
+
+.is-selected {
+  color: #1989fa;
+}
+</style>
+
+<style scoped>
+body,
+uni-page-body,
+uni-page-refresh,
+.grayBackgroundColor {
+  background: rgb(241, 241, 241);
+}
+.whiteBackgroundColor {
+  background-color: transparent;
+  height: 100%;
+}
+</style>

+ 488 - 0
src/pages/business/mhxf/deviceManage/index.vue

@@ -0,0 +1,488 @@
+<template>
+  <u-sticky bgColor="#fff" style="border-bottom: 1px #ececec solid">
+    <u-tabs :list="list" @click="tabsClick" :current="current" :scrollable="list.length >= 5 ? true : false"></u-tabs>
+  </u-sticky>
+
+  <view class="deviceManage" @touchstart="fingerstart" @touchend="fingerend">
+    <uni-swipe-action>
+      <uni-swipe-action-item style="background-color: #ffffff">
+        <view class="content1">
+          <view style="padding: 10px">
+            <u-input style="border-radius: 50px" v-model="dataInput" prefixIcon="search" prefixIconStyle="color: #0c7bf9" placeholder="请输入设备编号"> </u-input>
+          </view>
+
+          <u-collapse @change="change" @close="close" @open="open" accordion>
+            <u-collapse-item class="uCollapseItem" v-for="da in dataList" :key="da">
+              <template v-slot:title>
+                <view style="display: flex">
+                  <u-image style="margin: auto 10px auto 0" :showLoading="true" src="@/static/images/deviceManage/1.png" width="40px" height="40px"></u-image>
+                  <view style="width: 100%">
+                    <view style="display: flex; color: #000000">
+                      <view>设备编号:{{ da.number }}</view>
+                      <view v-if="da.type == 1" style="margin-left: 20px; font-size: 12px; background-color: #12c100; color: #ffffff; padding: 0 5px; border-radius: 20px; line-height: 20px">
+                        在线
+                      </view>
+                      <view v-else style="margin-left: 20px; font-size: 12px; background-color: #aeaeae; color: #ffffff; padding: 0 5px; border-radius: 20px; line-height: 20px"> 离线 </view>
+                    </view>
+                    <view style="display: flex; font-size: 14px; color: #666666; margin: 10px 0">
+                      <view style="width: 50%; word-break: break-all">设备点位:{{ da.point }}</view>
+                      <view style="width: 50%; word-break: break-all; padding-left: 10px">所属单位:{{ da.company }}</view>
+                    </view>
+                    <view style="display: flex; font-size: 14px; color: #666666">
+                      <view style="width: 50%; word-break: break-all">负责人:{{ da.director }}</view>
+                      <view style="width: 50%; word-break: break-all; padding-left: 10px">联系电话:{{ da.phone }}</view>
+                    </view>
+                  </view>
+                </view>
+              </template>
+
+              <view class="u-collapse-content">
+                <view style="display: flex; flex-wrap: wrap; margin-left: 5%">
+                  <view style="width: 50%; height: 30px; line-height: 30px" v-for="ch in da.children" :key="ch">
+                    <span>{{ ch.label }}:</span>
+                    <span :style="ch.value === '正常' ? 'color:#12C100' : 'color:#FF0101'">{{ ch.value }}</span>
+                  </view>
+                </view>
+                <view style="display: flex; flex-wrap: wrap; margin-left: 5%">
+                  <view style="width: 50%; height: 30px; line-height: 30px" v-for="ch in da.children1" :key="ch">
+                    <span>{{ ch.label }}:</span>
+                    <span>{{ ch.value }}</span>
+                  </view>
+                </view>
+              </view>
+            </u-collapse-item>
+          </u-collapse>
+        </view>
+      </uni-swipe-action-item>
+    </uni-swipe-action>
+  </view>
+</template>
+
+<script setup>
+import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
+import { ref, onMounted, inject, shallowRef, reactive, watchEffect } from "vue";
+import useXunJianStore from "@/store/modules/xunJian";
+
+const myRequest = inject("$myRequest"); //全局接口请求
+const settingsStore = useXunJianStore(); //全局变量值Store
+
+const dataInput = ref("");
+const dataList = ref([
+  {
+    number: "XXXXXXXXX",
+    point: "XXXX",
+    company: "XXXX",
+    director: "XXXX",
+    phone: "XXXX",
+    type: 1,
+    children: [
+      {
+        label: "供电过压状态",
+        value: "正常",
+      },
+      {
+        label: "供电低压状态",
+        value: "正常",
+      },
+      {
+        label: "供电过流状态",
+        value: "正常",
+      },
+      {
+        label: "漏电报警状态",
+        value: "异常",
+      },
+      {
+        label: "A相线缆高温状态",
+        value: "正常",
+      },
+      {
+        label: "B相线缆高温状态",
+        value: "正常",
+      },
+      {
+        label: "C相线缆高温状态",
+        value: "正常",
+      },
+    ],
+    children1: [
+      {
+        label: "A相电压",
+        value: "227.500",
+      },
+      {
+        label: "B相电压",
+        value: "227.500",
+      },
+      {
+        label: "C相电压",
+        value: "227.500",
+      },
+      {
+        label: "A相电流",
+        value: "7.500",
+      },
+      {
+        label: "B相电流",
+        value: "7.500",
+      },
+      {
+        label: "C相电流",
+        value: "7.500",
+      },
+      {
+        label: "A相温度",
+        value: "13.300",
+      },
+      {
+        label: "B相温度",
+        value: "13.300",
+      },
+      {
+        label: "C相温度",
+        value: "13.300",
+      },
+    ],
+  },
+  {
+    number: "XXXXXXXXX",
+    point: "XXXX",
+    company: "XXXX",
+    director: "XXXX",
+    phone: "XXXX",
+    type: 0,
+    children: [
+      {
+        label: "供电过压状态",
+        value: "正常",
+      },
+      {
+        label: "供电低压状态",
+        value: "正常",
+      },
+      {
+        label: "供电过流状态",
+        value: "正常",
+      },
+      {
+        label: "漏电报警状态",
+        value: "异常",
+      },
+      {
+        label: "A相线缆高温状态",
+        value: "正常",
+      },
+      {
+        label: "B相线缆高温状态",
+        value: "正常",
+      },
+      {
+        label: "C相线缆高温状态",
+        value: "正常",
+      },
+    ],
+    children1: [
+      {
+        label: "A相电压",
+        value: "227.500",
+      },
+      {
+        label: "B相电压",
+        value: "227.500",
+      },
+      {
+        label: "C相电压",
+        value: "227.500",
+      },
+      {
+        label: "A相电流",
+        value: "7.500",
+      },
+      {
+        label: "B相电流",
+        value: "7.500",
+      },
+      {
+        label: "C相电流",
+        value: "7.500",
+      },
+      {
+        label: "A相温度",
+        value: "13.300",
+      },
+      {
+        label: "B相温度",
+        value: "13.300",
+      },
+      {
+        label: "C相温度",
+        value: "13.300",
+      },
+    ],
+  },
+  {
+    number: "XXXXXXXXX",
+    point: "XXXX",
+    company: "XXXX",
+    director: "XXXX",
+    phone: "XXXX",
+    type: 1,
+    children: [
+      {
+        label: "供电过压状态",
+        value: "正常",
+      },
+      {
+        label: "供电低压状态",
+        value: "正常",
+      },
+      {
+        label: "供电过流状态",
+        value: "正常",
+      },
+      {
+        label: "漏电报警状态",
+        value: "异常",
+      },
+      {
+        label: "A相线缆高温状态",
+        value: "正常",
+      },
+      {
+        label: "B相线缆高温状态",
+        value: "正常",
+      },
+      {
+        label: "C相线缆高温状态",
+        value: "正常",
+      },
+    ],
+    children1: [
+      {
+        label: "A相电压",
+        value: "227.500",
+      },
+      {
+        label: "B相电压",
+        value: "227.500",
+      },
+      {
+        label: "C相电压",
+        value: "227.500",
+      },
+      {
+        label: "A相电流",
+        value: "7.500",
+      },
+      {
+        label: "B相电流",
+        value: "7.500",
+      },
+      {
+        label: "C相电流",
+        value: "7.500",
+      },
+      {
+        label: "A相温度",
+        value: "13.300",
+      },
+      {
+        label: "B相温度",
+        value: "13.300",
+      },
+      {
+        label: "C相温度",
+        value: "13.300",
+      },
+    ],
+  },
+]); //设备管理数据存储
+
+const current = ref(0);
+const list = ref([
+  {
+    id: 1,
+    name: "电气火灾",
+  },
+  {
+    id: 2,
+    name: "烟感",
+  },
+  {
+    id: 3,
+    name: "水系统",
+    badge: {
+      // isDot: true,
+      // value: 5,
+    },
+  },
+]);
+
+const startData = ref({
+  clientX: "",
+  clientY: "",
+});
+const updDistance = ref(100);
+const lrDistance = ref(50);
+const topMed = ref("");
+const bottomMed = ref("");
+const leftMed = ref("");
+const rightMed = ref("");
+
+/**
+ * @tabs点击事件
+ */
+function tabsClick(e) {
+  current.value = e.index;
+}
+
+/**
+ * @当按下去的时候
+ */
+function fingerstart(e) {
+  // 记录 距离可视区域左上角 左边距 和 上边距
+  startData.value.clientX = e.changedTouches[0].clientX;
+  startData.value.clientY = e.changedTouches[0].clientY;
+}
+/**
+ * @当抬起来的时候
+ */
+function fingerend(e) {
+  // 当前位置 减去 按下位置 计算 距离
+  const subX = e.changedTouches[0].clientX - startData.value.clientX;
+  const subY = e.changedTouches[0].clientY - startData.value.clientY;
+  if (subY > updDistance.value || subY < -updDistance.value) {
+    if (subY > updDistance.value) {
+      bottomscroll(subY);
+    } else if (subY < -updDistance.value) {
+      topscroll(subY);
+    }
+  } else {
+    if (subX > lrDistance.value) {
+      rightscroll(subX);
+    } else if (subX < -lrDistance.value) {
+      leftscroll(subX);
+    } else {
+      console.log("无效操作");
+    }
+  }
+}
+/**
+ * @上滑触发
+ */
+function topscroll(dista) {
+  topMed.value ? (topMed.value = dista) : (topMed.value = null);
+  console.log("触发了上滑方法!");
+}
+/**
+ * @下滑触发
+ */
+function bottomscroll(dista) {
+  bottomMed.value ? (bottomMed.value = dista) : (bottomMed.value = null);
+  console.log("触发了下滑方法!");
+}
+/**
+ * @右滑触发
+ */
+function rightscroll(dista) {
+  rightMed.value ? (rightMed.value = dista) : (rightMed.value = null);
+  console.log("触发了右滑方法!");
+  if (current.value >= 1) {
+    current.value--;
+  } else {
+    current.value = 0;
+  }
+}
+/**
+ * @左滑触发
+ */
+function leftscroll(dista) {
+  leftMed.value ? (leftMed.value = dista) : (leftMed.value = null);
+  console.log("触发了左滑方法!");
+  if (current.value < list.value.length - 1) {
+    current.value++;
+  } else {
+    current.value = 0;
+  }
+}
+
+watchEffect(() => {
+  if (current.value == 0) {
+    console.log(current.value);
+  } else if (current.value == 1) {
+    console.log(current.value);
+  } else if (current.value == 2) {
+    console.log(current.value);
+  }
+});
+
+function open(e) {
+  // console.log('open', e)
+}
+function close(e) {
+  // console.log('close', e)
+}
+function change(e) {
+  // console.log('change', e)
+}
+
+// 自定义导航事件
+onNavigationBarButtonTap((e) => {
+  if (e.float == "right") {
+    uni.navigateTo({
+      url: "/pages/business/mhxf/xunJian/collect/components/collectRecord",
+    });
+  } else {
+  }
+});
+
+onLoad((options) => {});
+
+onReady(() => {});
+
+onMounted(() => {});
+</script>
+
+<style lang="scss">
+.is-selected {
+  color: #1989fa;
+}
+
+.deviceManage {
+  height: calc(100% - 45px);
+  background-color: #ffffff;
+
+  .content1 {
+    .u-row {
+      .u-col {
+        border: 1px #e4e3e3 solid;
+        border-right: 0px;
+        border-bottom: 0px;
+      }
+
+      .u-col:last-child {
+        border-right: 1px #e4e3e3 solid;
+      }
+    }
+
+    .u-row:last-child {
+      .u-col {
+        border-bottom: 1px #e4e3e3 solid;
+      }
+    }
+  }
+}
+</style>
+
+<style scoped>
+body,
+uni-page-body,
+uni-page-refresh,
+.grayBackgroundColor {
+  background: rgb(241, 241, 241);
+}
+.whiteBackgroundColor {
+  background-color: #ffffff;
+  height: 100%;
+}
+</style>

+ 376 - 0
src/pages/business/mhxf/informationSelect/index.vue

@@ -0,0 +1,376 @@
+<template>
+  <u-sticky bgColor="#fff" style="border-bottom: 1px #ececec solid">
+    <u-tabs :list="list" @click="tabsClick" :current="current"></u-tabs>
+  </u-sticky>
+
+  <view class="informationSelect" @touchstart="fingerstart" @touchend="fingerend">
+    <uni-swipe-action>
+      <uni-swipe-action-item style="background-color: #ffffff; padding: 10px">
+        <!-- 警情查询 -->
+        <view class="content1">
+          <u-input style="border-radius: 50px; margin-bottom: 10px" v-model="dataInput" prefixIcon="search" prefixIconStyle="color: #0c7bf9" placeholder="请输入案件编号"> </u-input>
+          <u-row v-for="po in policeData" :key="po" style="height: 36px; line-height: 36px">
+            <u-col span="5">
+              <view style="text-align: right; padding: 0px 5px 0px 0px">{{ po.title }}</view>
+            </u-col>
+            <u-col span="7">
+              <view style="text-align: left; padding: 0px 0px 0px 5px">{{ po.value }}</view>
+            </u-col>
+          </u-row>
+        </view>
+
+        <!-- 火灾查询 -->
+
+        <!-- 人员查询 -->
+
+        <!-- 车辆查询 -->
+      </uni-swipe-action-item>
+    </uni-swipe-action>
+  </view>
+</template>
+
+<script setup>
+import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
+import { ref, onMounted, inject, shallowRef, reactive, watchEffect } from "vue";
+import useXunJianStore from "@/store/modules/xunJian";
+
+const myRequest = inject("$myRequest"); //全局接口请求
+const settingsStore = useXunJianStore(); //全局变量值Store
+
+const dataInput = ref("");
+const current = ref(0);
+const list = ref([
+  {
+    id: 1,
+    name: "警情查询",
+  },
+  {
+    id: 2,
+    name: "火灾查询",
+  },
+  {
+    id: 3,
+    name: "人员查询",
+    badge: {
+      // isDot: true,
+      // value: 5,
+    },
+  },
+  {
+    id: 4,
+    name: "车辆查询",
+    badge: {
+      // value: 5,
+    },
+  },
+  {
+    id: 5,
+    name: "站点查询",
+    badge: {
+      // value: 5,
+    },
+  },
+  {
+    id: 6,
+    name: "消火栓",
+    badge: {
+      // value: 5,
+    },
+  },
+  {
+    id: 7,
+    name: "视频监控",
+    badge: {
+      // value: 5,
+    },
+  },
+  {
+    id: 8,
+    name: "人员信息",
+    badge: {
+      // value: 5,
+    },
+  },
+  {
+    id: 9,
+    name: "重点单位",
+    badge: {
+      // value: 5,
+    },
+  },
+  {
+    id: 10,
+    name: "消防检查信息",
+    badge: {
+      // value: 5,
+    },
+  },
+]);
+
+const startData = ref({
+  clientX: "",
+  clientY: "",
+});
+const updDistance = ref(100);
+const lrDistance = ref(50);
+const topMed = ref("");
+const bottomMed = ref("");
+const leftMed = ref("");
+const rightMed = ref("");
+
+const policeData = ref([
+  {
+    title: "案件编号",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "主管支队",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "案件时间段",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "通知到场时间",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "通知出水时间",
+    value: "XXXXXXXXXXXXXXX",
+  },
+
+  {
+    title: "通知控制时间",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "通知熄火时间",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "通知返队时间",
+    value: "XXXXXXXXXXXXXXX",
+  },
+
+  {
+    title: "区域",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "案件类型",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "案发地址",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "立案时间",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "立案日期",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "处置对象",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "案件等级",
+    value: "XXXXXXXXXXXXXXX",
+  },
+
+  {
+    title: "主管中队",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "区县",
+    value: "XXXXXXXXXXXXXXX",
+  },
+
+  {
+    title: "案件状态",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "案件性质",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "填表时间",
+    value: "XXXXXXXXXXXXXXX",
+  },
+  {
+    title: "街镇",
+    value: "XXXXXXXXXXXXXXX",
+  },
+
+  {
+    title: "创建时间",
+    value: "XXXXXXXXXXXXXXX",
+  },
+]); //警情查询数据存储
+
+/**
+ * @tabs点击事件
+ */
+function tabsClick(e) {
+  current.value = e.index;
+}
+
+/**
+ * @当按下去的时候
+ */
+function fingerstart(e) {
+  // 记录 距离可视区域左上角 左边距 和 上边距
+  startData.value.clientX = e.changedTouches[0].clientX;
+  startData.value.clientY = e.changedTouches[0].clientY;
+}
+/**
+ * @当抬起来的时候
+ */
+function fingerend(e) {
+  // 当前位置 减去 按下位置 计算 距离
+  const subX = e.changedTouches[0].clientX - startData.value.clientX;
+  const subY = e.changedTouches[0].clientY - startData.value.clientY;
+  if (subY > updDistance.value || subY < -updDistance.value) {
+    if (subY > updDistance.value) {
+      bottomscroll(subY);
+    } else if (subY < -updDistance.value) {
+      topscroll(subY);
+    }
+  } else {
+    if (subX > lrDistance.value) {
+      rightscroll(subX);
+    } else if (subX < -lrDistance.value) {
+      leftscroll(subX);
+    } else {
+      console.log("无效操作");
+    }
+  }
+}
+/**
+ * @上滑触发
+ */
+function topscroll(dista) {
+  topMed.value ? (topMed.value = dista) : (topMed.value = null);
+  console.log("触发了上滑方法!");
+}
+/**
+ * @下滑触发
+ */
+function bottomscroll(dista) {
+  bottomMed.value ? (bottomMed.value = dista) : (bottomMed.value = null);
+  console.log("触发了下滑方法!");
+}
+/**
+ * @右滑触发
+ */
+function rightscroll(dista) {
+  rightMed.value ? (rightMed.value = dista) : (rightMed.value = null);
+  console.log("触发了右滑方法!");
+  if (current.value >= 1) {
+    current.value--;
+  } else {
+    current.value = 0;
+  }
+}
+/**
+ * @左滑触发
+ */
+function leftscroll(dista) {
+  leftMed.value ? (leftMed.value = dista) : (leftMed.value = null);
+  console.log("触发了左滑方法!");
+  if (current.value < list.value.length - 1) {
+    current.value++;
+  } else {
+    current.value = 0;
+  }
+}
+
+watchEffect(() => {
+  if (current.value == 0) {
+    console.log(current.value);
+  } else if (current.value == 1) {
+    console.log(current.value);
+  } else if (current.value == 2) {
+    console.log(current.value);
+  } else if (current.value == 3) {
+    console.log(current.value);
+  } else if (current.value == 4) {
+    console.log(current.value);
+  } else if (current.value == 5) {
+    console.log(current.value);
+  } else if (current.value == 6) {
+    console.log(current.value);
+  } else if (current.value == 7) {
+    console.log(current.value);
+  } else if (current.value == 8) {
+    console.log(current.value);
+  } else if (current.value == 9) {
+    console.log(current.value);
+  }
+});
+
+// 自定义导航事件
+onNavigationBarButtonTap((e) => {
+  if (e.float == "right") {
+    uni.navigateTo({
+      url: "/pages/business/mhxf/xunJian/collect/components/collectRecord",
+    });
+  } else {
+  }
+});
+
+onLoad((options) => {});
+
+onReady(() => {});
+
+onMounted(() => {});
+</script>
+
+<style lang="scss">
+.is-selected {
+  color: #1989fa;
+}
+
+.informationSelect {
+  height: calc(100% - 45px);
+  background-color: #ffffff;
+
+  .content1 {
+    .u-row {
+      .u-col {
+        border: 1px #e4e3e3 solid;
+        border-right: 0px;
+        border-bottom: 0px;
+      }
+
+      .u-col:last-child {
+        border-right: 1px #e4e3e3 solid;
+      }
+    }
+
+    .u-row:last-child {
+      .u-col {
+        border-bottom: 1px #e4e3e3 solid;
+      }
+    }
+  }
+}
+</style>
+
+<style scoped>
+body,
+uni-page-body,
+uni-page-refresh,
+.grayBackgroundColor {
+  background: rgb(241, 241, 241);
+}
+.whiteBackgroundColor {
+  background-color: #ffffff;
+}
+</style>

+ 1 - 1
src/pages/xunJian/collect/components/collectDetail.vue → src/pages/business/mhxf/xunJian/collect/components/collectDetail.vue

@@ -88,7 +88,7 @@ function handleInsert() {
       settingsStore.collectDataList.push(model);
 
       //   uni.navigateTo({
-      //     url: "/pages/xunJian/collect/index",
+      //     url: "/pages/business/mhxf/xunJian/collect/index",
       //   });
       uni.navigateBack({
         delta: 1, //返回到需要执行方法的页面

+ 2 - 2
src/pages/xunJian/collect/components/collectRecord.vue → src/pages/business/mhxf/xunJian/collect/components/collectRecord.vue

@@ -19,7 +19,7 @@
           style="margin: auto"
           width="40"
           height="40"
-          src="@/static/inspection/scan.png"
+          src="@/static/images/xunjian/scan.png"
           v-if="cu.siteType == 1"
           shape="circle"
         ></u-image>
@@ -28,7 +28,7 @@
           style="margin: auto"
           width="40"
           height="40"
-          src="@/static/inspection/NFC.png"
+          src="@/static/images/xunjian/NFC.png"
           v-if="cu.siteType == 2"
           shape="circle"
         ></u-image>

+ 11 - 57
src/pages/xunJian/collect/index.vue → src/pages/business/mhxf/xunJian/collect/index.vue

@@ -10,28 +10,11 @@
         @change="swipeChange($event, index)"
         style="margin-bottom: 15px"
       >
-        <view
-          class="whiteBackgroundColor"
-          style="display: flex; padding: 15px 0px 15px 15px"
-        >
+        <view class="whiteBackgroundColor" style="display: flex; padding: 15px 0px 15px 15px">
           <view class="reportLeft">
-            <u-image
-              style="margin: auto"
-              width="40"
-              height="40"
-              src="@/static/inspection/scan.png"
-              v-if="cu.siteType == 1"
-              shape="circle"
-            ></u-image>
+            <u-image style="margin: auto" width="40" height="40" src="@/static/images/xunjian/scan.png" v-if="cu.siteType == 1" shape="circle"></u-image>
 
-            <u-image
-              style="margin: auto"
-              width="40"
-              height="40"
-              src="@/static/inspection/NFC.png"
-              v-if="cu.siteType == 2"
-              shape="circle"
-            ></u-image>
+            <u-image style="margin: auto" width="40" height="40" src="@/static/images/xunjian/NFC.png" v-if="cu.siteType == 2" shape="circle"></u-image>
           </view>
           <view class="reportCenter">
             <view class="centerSiteName">
@@ -39,20 +22,13 @@
             </view>
 
             <view style="font-size: 13px; color: #a1a1a1">
-              {{
-                cu.siteTime == "" || cu.siteTime == null ? "无" : cu.siteTime
-              }}
+              {{ cu.siteTime == "" || cu.siteTime == null ? "无" : cu.siteTime }}
             </view>
           </view>
           <view style="margin: auto"></view>
           <view class="reportRight">
             <view style="margin: auto" v-if="cu.swipeBool == false">
-              <view
-                style="padding: 0; font-size: 14px; color: #409eff"
-                @click="handleInsert(cu)"
-              >
-                提交
-              </view>
+              <view style="padding: 0; font-size: 14px; color: #409eff" @click="handleInsert(cu)"> 提交 </view>
             </view>
           </view>
         </view>
@@ -60,13 +36,7 @@
     </uni-swipe-action>
 
     <view style="position: fixed; right: 0; bottom: 50px">
-      <u-image
-        width="67"
-        height="67"
-        src="@/static/inspection/plan-scan.png"
-        shape="circle"
-        @click="scanClick()"
-      ></u-image>
+      <u-image width="67" height="67" src="@/static/images/xunjian/plan-scan.png" shape="circle" @click="scanClick()"></u-image>
     </view>
 
     <!-- 提示信息弹窗 -->
@@ -81,23 +51,12 @@
       ></uni-popup-message>
     </uni-popup>
 
-    <u-empty
-      marginTop="20%"
-      mode="data"
-      icon="http://cdn.uviewui.com/uview/empty/data.png"
-      v-if="settingsStore.collectDataList.length <= 0"
-    >
-    </u-empty>
+    <u-empty marginTop="20%" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" v-if="settingsStore.collectDataList.length <= 0"> </u-empty>
   </scroll-view>
 </template>
 
 <script setup>
-import {
-  onReady,
-  onLoad,
-  onShow,
-  onNavigationBarButtonTap,
-} from "@dcloudio/uni-app";
+import { onReady, onLoad, onShow, onNavigationBarButtonTap } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef, reactive } from "vue";
 import useXunJianStore from "@/store/modules/xunJian";
 
@@ -118,9 +77,7 @@ function scanClick() {
         icon: "none",
       });
       uni.navigateTo({
-        url:
-          "/pages/xunJian/collect/components/collectDetail?siteNubmber=" +
-          e.result,
+        url: "/pages/business/mhxf/xunJian/collect/components/collectDetail?siteNubmber=" + e.result,
       });
     },
     fail: (err) => {
@@ -190,10 +147,7 @@ function handleInsert(e) {
       messageList.color = "#09bb07";
       message.value.open();
 
-      settingsStore.collectDataList.splice(
-        settingsStore.collectDataList.indexOf(e),
-        1
-      );
+      settingsStore.collectDataList.splice(settingsStore.collectDataList.indexOf(e), 1);
     } else {
     }
   }
@@ -230,7 +184,7 @@ function swipeChange(e, index) {
 onNavigationBarButtonTap((e) => {
   if (e.float == "right") {
     uni.navigateTo({
-      url: "/pages/xunJian/collect/components/collectRecord",
+      url: "/pages/business/mhxf/xunJian/collect/components/collectRecord",
     });
   } else {
   }

+ 0 - 0
src/pages/xunJian/components/echarts/chart.vue → src/pages/business/mhxf/xunJian/components/echarts/chart.vue


+ 0 - 0
src/pages/xunJian/components/index.vue → src/pages/business/mhxf/xunJian/components/index.vue


+ 0 - 0
src/pages/xunJian/plan/components/content.vue → src/pages/business/mhxf/xunJian/plan/components/content.vue


+ 2 - 2
src/pages/xunJian/plan/components/drawer.vue → src/pages/business/mhxf/xunJian/plan/components/drawer.vue

@@ -34,7 +34,7 @@
             "
           >
             <view style="margin-right: 15px">
-              <img src="@/static/inspection/plan-scan-drawer.png" alt="" />
+              <img src="@/static/images/xunjian/plan-scan-drawer.png" alt="" />
             </view>
             <view>{{ scan.planName }} </view>
             <view style="margin: auto"></view>
@@ -92,7 +92,7 @@ function reportClick(siteId, planSonId) {
   settingsStore.planSonId = planSonId;
 
   uni.navigateTo({
-    url: "/pages/xunJian/plan/components/siteDetails",
+    url: "/pages/business/mhxf/xunJian/plan/components/siteDetails",
   });
 }
 

+ 5 - 5
src/pages/xunJian/plan/components/report.vue → src/pages/business/mhxf/xunJian/plan/components/report.vue

@@ -11,7 +11,7 @@
           style="margin: auto"
           width="40"
           height="40"
-          src="@/static/inspection/scan.png"
+          src="@/static/images/xunjian/scan.png"
           v-if="cu.siteType == 1"
           shape="circle"
         ></u-image>
@@ -20,7 +20,7 @@
           style="margin: auto"
           width="40"
           height="40"
-          src="@/static/inspection/NFC.png"
+          src="@/static/images/xunjian/NFC.png"
           v-if="cu.siteType == 2"
           shape="circle"
         ></u-image>
@@ -93,7 +93,7 @@
       <u-image
         width="67"
         height="67"
-        src="@/static/inspection/plan-scan.png"
+        src="@/static/images/xunjian/plan-scan.png"
         shape="circle"
         @click="scanClick()"
       ></u-image>
@@ -156,7 +156,7 @@ async function pulicClick(obj) {
   }
 
   uni.navigateTo({
-    url: "/pages/xunJian/plan/components/siteDetails",
+    url: "/pages/business/mhxf/xunJian/plan/components/siteDetails",
   });
 }
 
@@ -195,7 +195,7 @@ async function scanClick() {
         currentDateList.value.forEach((e) => {
           if (e.id == res.data.data.siteList[0].id) {
             uni.navigateTo({
-              url: "/pages/xunJian/plan/components/siteDetails",
+              url: "/pages/business/mhxf/xunJian/plan/components/siteDetails",
             });
           }
         });

+ 3 - 3
src/pages/xunJian/plan/components/siteDetails.vue → src/pages/business/mhxf/xunJian/plan/components/siteDetails.vue

@@ -10,7 +10,7 @@
             style="margin: auto"
             width="40"
             height="40"
-            src="@/static/inspection/scan.png"
+            src="@/static/images/xunjian/scan.png"
             v-if="siteList.siteType == 1"
             shape="circle"
           ></u-image>
@@ -19,7 +19,7 @@
             style="margin: auto"
             width="40"
             height="40"
-            src="@/static/inspection/NFC.png"
+            src="@/static/images/xunjian/NFC.png"
             v-if="siteList.siteType == 2"
             shape="circle"
           ></u-image>
@@ -207,7 +207,7 @@ function buttonClick() {
     siteList: siteList.value,
   };
   uni.navigateTo({
-    url: "/pages/xunJian/plan/components/content",
+    url: "/pages/business/mhxf/xunJian/plan/components/content",
   });
 }
 

+ 0 - 0
src/pages/xunJian/plan/components/upload.vue → src/pages/business/mhxf/xunJian/plan/components/upload.vue


+ 30 - 169
src/pages/xunJian/plan/index.vue → src/pages/business/mhxf/xunJian/plan/index.vue

@@ -2,13 +2,7 @@
   <scroll-view scroll-y class="grayBackgroundColor">
     <view class="grayBackgroundColor">
       <view>
-        <el-calendar
-          id="calendar"
-          ref="calendar"
-          v-model="currentDatevalue"
-          @touchstart="touchStart"
-          @touchend="touchEnd"
-        >
+        <el-calendar id="calendar" ref="calendar" v-model="currentDatevalue" @touchstart="touchStart" @touchend="touchEnd">
           <template #header="{ date }">
             <view style="display: flex; width: 100%">
               <view>{{ date }}</view>
@@ -16,19 +10,11 @@
               <view style="display: flex">
                 <view style="margin: 0px 10px">
                   <span style="margin-right: 5px">合格</span>
-                  <span style="color: #00cdac">{{
-                    JSON.stringify(currentDateList) === "{}"
-                      ? 0
-                      : currentDateList.patrolledCount
-                  }}</span>
+                  <span style="color: #00cdac">{{ JSON.stringify(currentDateList) === "{}" ? 0 : currentDateList.patrolledCount }}</span>
                 </view>
                 <view class="margin-left-xs">
                   <span style="margin-right: 5px">漏检</span>
-                  <span style="color: #f07d28">{{
-                    JSON.stringify(currentDateList) === "{}"
-                      ? 0
-                      : currentDateList.undetectedCount
-                  }}</span>
+                  <span style="color: #f07d28">{{ JSON.stringify(currentDateList) === "{}" ? 0 : currentDateList.undetectedCount }}</span>
                 </view>
               </view>
             </view>
@@ -44,38 +30,16 @@
         </el-calendar>
       </view>
       <view>
-        <view
-          class="padding-sm"
-          style="display: flex; margin: 10px; padding: 10px 5rem"
-        >
-          <u-subsection
-            :list="list"
-            :current="tabPosition"
-            inactiveColor="#303133"
-            activeColor="#3c9cff"
-            @change="tabPositionChange"
-          ></u-subsection>
+        <view class="padding-sm" style="display: flex; margin: 10px; padding: 10px 5rem">
+          <u-subsection :list="list" :current="tabPosition" inactiveColor="#303133" activeColor="#3c9cff" @change="tabPositionChange"></u-subsection>
         </view>
         <view>
           <view id="planTimeline1" v-if="activities.length > 0">
-            <view
-              style="margin: 0px -3.5px; font-size: 13px; color: #409eff"
-              @click="activitiesSortClick()"
-            >
-              排序
-            </view>
-            <view
-              v-for="(activity, index) in activities"
-              :key="index"
-              v-show="tabPosition == 0"
-            >
+            <view style="margin: 0px -3.5px; font-size: 13px; color: #409eff" @click="activitiesSortClick()"> 排序 </view>
+            <view v-for="(activity, index) in activities" :key="index" v-show="tabPosition == 0">
               <view style="display: flex; height: 25px; line-height: 25px">
                 <view style="margin: auto 0">
-                  <u-icon
-                    name="info-circle-fill"
-                    color="#409eff"
-                    size="18"
-                  ></u-icon>
+                  <u-icon name="info-circle-fill" color="#409eff" size="18"></u-icon>
                 </view>
                 <view style="display: flex; width: 100%; margin-left: 15px">
                   <view style="font-size: 15px; color: #000000">
@@ -90,67 +54,29 @@
 
               <view style="display: flex">
                 <view style="width: 18px; display: flex">
-                  <viwe
-                    v-if="index != activities.length - 1"
-                    style="
-                      width: 2px;
-                      background-color: #e4e7ed;
-                      margin: -5px auto;
-                    "
-                  ></viwe>
+                  <view v-if="index != activities.length - 1" style="width: 2px; background-color: #e4e7ed; margin: -5px auto"></view>
                 </view>
-                <view
-                  style="
-                    width: 100%;
-                    margin: 15px 0px 15px 15px;
-                    padding: 15px;
-                    background-color: #fff;
-                    border-radius: 10px;
-                  "
-                >
+                <view style="width: 100%; margin: 15px 0px 15px 15px; padding: 15px; background-color: #fff; border-radius: 10px">
                   <view style="display: flex" v-if="activity.planStatus == 2">
                     <view>
                       <view>巡检任务结束</view>
                       <br />
-                      <view
-                        style="padding: 0; font-size: 14px; color: #409eff"
-                        @click="reportClick(activity)"
-                      >
-                        点击查看
-                      </view>
+                      <view style="padding: 0; font-size: 14px; color: #409eff" @click="reportClick(activity)"> 点击查看 </view>
                     </view>
                     <view style="margin: auto"></view>
                     <view style="display: flex">
-                      <el-progress
-                        style="margin: auto"
-                        type="circle"
-                        :percentage="activity.completion"
-                        :width="50"
-                      />
+                      <el-progress style="margin: auto" type="circle" :percentage="activity.completion" :width="50" />
                     </view>
                   </view>
                   <view style="display: flex" v-if="activity.planStatus == 1">
                     <view>
-                      <view
-                        >巡检任务执行中,还需完成
-                        {{ activity.undetectedSiteCount }}个
-                      </view>
+                      <view>巡检任务执行中,还需完成 {{ activity.undetectedSiteCount }}个 </view>
                       <br />
-                      <view
-                        @click="reportClick(activity)"
-                        style="padding: 0; font-size: 14px; color: #409eff"
-                      >
-                        点击巡检
-                      </view>
+                      <view @click="reportClick(activity)" style="padding: 0; font-size: 14px; color: #409eff"> 点击巡检 </view>
                     </view>
                     <view style="margin: auto"></view>
                     <view style="display: flex">
-                      <el-progress
-                        style="margin: auto"
-                        type="circle"
-                        :percentage="activity.completion"
-                        :width="50"
-                      />
+                      <el-progress style="margin: auto" type="circle" :percentage="activity.completion" :width="50" />
                     </view>
                   </view>
                   <view style="display: flex" v-if="activity.planStatus == 3">
@@ -174,30 +100,17 @@
                     </view>
                     <view style="margin: auto"></view>
                     <view style="display: flex">
-                      <el-progress
-                        style="margin: auto"
-                        type="circle"
-                        :percentage="activity.completion"
-                        :width="50"
-                      />
+                      <el-progress style="margin: auto" type="circle" :percentage="activity.completion" :width="50" />
                     </view>
                   </view>
                 </view>
               </view>
             </view>
 
-            <view
-              v-for="(activity, index) in activities"
-              :key="index"
-              v-show="tabPosition == 1"
-            >
+            <view v-for="(activity, index) in activities" :key="index" v-show="tabPosition == 1">
               <view style="display: flex; height: 25px; line-height: 25px">
                 <view style="margin: auto 0">
-                  <u-icon
-                    name="info-circle-fill"
-                    color="#409eff"
-                    size="18"
-                  ></u-icon>
+                  <u-icon name="info-circle-fill" color="#409eff" size="18"></u-icon>
                 </view>
                 <view style="display: flex; width: 100%; margin-left: 15px">
                   <view style="font-size: 15px; color: #000000">
@@ -212,39 +125,17 @@
 
               <view style="display: flex">
                 <view style="width: 18px; display: flex">
-                  <viwe
-                    v-if="index != activities.length - 1"
-                    style="
-                      width: 2px;
-                      background-color: #e4e7ed;
-                      margin: -5px auto;
-                    "
-                  ></viwe>
+                  <view v-if="index != activities.length - 1" style="width: 2px; background-color: #e4e7ed; margin: -5px auto"></view>
                 </view>
-                <view
-                  style="
-                    width: 100%;
-                    margin: 15px 0px 15px 15px;
-                    padding: 15px;
-                    background-color: #fff;
-                    border-radius: 10px;
-                  "
-                >
+                <view style="width: 100%; margin: 15px 0px 15px 15px; padding: 15px; background-color: #fff; border-radius: 10px">
                   <view style="display: flex">
                     <view>
                       <view>已检查{{ activity.contentCount }}项内容</view>
                       <br />
-                      <view
-                        style="padding: 0; font-size: 14px; color: #409eff"
-                        @click="reportClick(activity)"
-                      >
-                        点击查看
-                      </view>
+                      <view style="padding: 0; font-size: 14px; color: #409eff" @click="reportClick(activity)"> 点击查看 </view>
                     </view>
                     <view style="margin: auto"></view>
-                    <view
-                      style="display: flex; font-size: 15px; color: #30bb00"
-                    >
+                    <view style="display: flex; font-size: 15px; color: #30bb00">
                       <view style="margin: auto">
                         {{ activity.siteStatus == 0 ? "未定位" : "已定位" }}
                       </view>
@@ -255,33 +146,16 @@
             </view>
           </view>
 
-          <view
-            id="planTimeline"
-            style="text-align: center; color: #bdbdbd; font-size: 14px"
-            v-else
-          >
-            暂无数据
-          </view>
+          <view id="planTimeline" style="text-align: center; color: #bdbdbd; font-size: 14px" v-else> 暂无数据 </view>
         </view>
       </view>
     </view>
 
     <view style="position: fixed; right: 0; bottom: 50px">
-      <u-image
-        width="67"
-        height="67"
-        src="@/static/inspection/plan-scan.png"
-        shape="circle"
-        @click="scanClick()"
-      ></u-image>
+      <u-image width="67" height="67" src="@/static/images/xunjian/plan-scan.png" shape="circle" @click="scanClick()"></u-image>
     </view>
 
-    <drawer
-      v-if="scanArray.length > 0"
-      :scanArray="scanArray"
-      :scanBool="scanBool"
-      @scanClose="scanClose"
-    ></drawer>
+    <drawer v-if="scanArray.length > 0" :scanArray="scanArray" :scanBool="scanBool" @scanClose="scanClose"></drawer>
   </scroll-view>
 </template>
 
@@ -303,7 +177,7 @@ async function reportClick(obj) {
   if (tabPosition.value == 0) {
     settingsStore.planSonId = obj.id;
     uni.navigateTo({
-      url: "/pages/xunJian/plan/components/report",
+      url: "/pages/business/mhxf/xunJian/plan/components/report",
     });
   } else if (tabPosition.value == 1) {
     const res = await myRequest({
@@ -343,7 +217,7 @@ async function reportClick(obj) {
         settingsStore.siteNubmber = undefined;
 
         uni.navigateTo({
-          url: "/pages/xunJian/plan/components/siteDetails",
+          url: "/pages/business/mhxf/xunJian/plan/components/siteDetails",
         });
       }
     } else {
@@ -441,15 +315,8 @@ async function activitiesApi() {
           id: el.id,
           planName: el.planName,
           timestamp:
-            (el.startTime == null || el.startTime == ""
-              ? ""
-              : el.startTime.split(":")[0] +
-                ":" +
-                el.startTime.split(":")[1] +
-                "~") +
-            (el.endTime == null || el.endTime == ""
-              ? ""
-              : el.endTime.split(":")[0] + ":" + el.endTime.split(":")[1]),
+            (el.startTime == null || el.startTime == "" ? "" : el.startTime.split(":")[0] + ":" + el.startTime.split(":")[1] + "~") +
+            (el.endTime == null || el.endTime == "" ? "" : el.endTime.split(":")[0] + ":" + el.endTime.split(":")[1]),
 
           planStatus: el.planStatus,
           completion: el.completion,
@@ -491,13 +358,7 @@ async function activitiesApi() {
  * @统计
  * @api接口请求
  */
-const currentDate = ref(
-  settingsStore.getDate().year +
-    "-" +
-    settingsStore.getDate().month +
-    "-" +
-    settingsStore.getDate().dates
-); //统计时间数据存储
+const currentDate = ref(settingsStore.getDate().year + "-" + settingsStore.getDate().month + "-" + settingsStore.getDate().dates); //统计时间数据存储
 const currentDatevalue = ref(new Date());
 const currentDateList = ref({}); //统计list数据存储
 async function currentApi() {

+ 2 - 2
src/pages/xunJian/record/record.vue → src/pages/business/mhxf/xunJian/record/record.vue

@@ -52,7 +52,7 @@
 </template>
 
 <script>
-import json from "../../../data/json.js";
+import json from "@/data/json.js";
 export default {
   data() {
     return {
@@ -85,7 +85,7 @@ export default {
     // 页面跳转
     goDetail(item) {
       uni.navigateTo({
-        url: "/pages/xunJian/record/recordDetail/index?id=" + item.id,
+        url: "/pages/business/mhxf/xunJian/record/recordDetail/index?id=" + item.id,
       });
     },
   },

+ 0 - 0
src/pages/xunJian/record/recordDetail/index.vue → src/pages/business/mhxf/xunJian/record/recordDetail/index.vue


+ 8 - 27
src/pages/xunJian/xunJian.vue → src/pages/business/mhxf/xunJian/xunJian.vue

@@ -3,10 +3,7 @@
     <view class="padding-sm">
       <!-- 图表 -->
       <view class="section1 section bg-white padding-xs">
-        <chart
-          v-if="currentDateList.length > 0"
-          :currentDateList="currentDateList"
-        ></chart>
+        <chart v-if="currentDateList.length > 0" :currentDateList="currentDateList"></chart>
       </view>
       <!-- 图表 end-->
 
@@ -28,23 +25,13 @@
 			</view> -->
       <!-- 宫格列表 -->
       <view class="section2 section bg-white margin-top-sm">
-        <view class="cu-list grid col-3 no-border">
-          <view
-            class="cu-item justify-center align-center"
-            v-for="(item, index) in inspectList"
-            :key="index"
-            @tap="navItemClick(item.redirectUrl, item.id)"
-          >
-            <image
-              :src="item.imgUrl"
-              style="width: 100rpx; height: 100rpx"
-            ></image>
+        <view class="cu-list grid col-4 no-border" style="padding-top: 0.3125rem">
+          <view class="cu-item justify-center align-center" v-for="(item, index) in inspectList" :key="index" @tap="navItemClick(item.redirectUrl, item.id)">
+            <image :src="item.imgUrl" style="width: 40px; height: 40px"></image>
             <view class="cu-tag badge" v-if="item.num != 0">
-              <block v-if="item.num != 0">{{
-                item.num > 99 ? "99+" : item.num
-              }}</block>
+              <block v-if="item.num != 0">{{ item.num > 99 ? "99+" : item.num }}</block>
             </view>
-            <text>{{ item.title }}</text>
+            <text style="font-size: 14px">{{ item.title }}</text>
           </view>
         </view>
       </view>
@@ -65,12 +52,7 @@ const myRequest = inject("$myRequest"); //api请求方法
 import json from "@/data/json.js";
 const inspectList = json.xunJianList; //九宫格json数据
 
-const currentDate =
-  settingsStore.getDate().year +
-  "-" +
-  settingsStore.getDate().month +
-  "-" +
-  settingsStore.getDate().dates;
+const currentDate = settingsStore.getDate().year + "-" + settingsStore.getDate().month + "-" + settingsStore.getDate().dates;
 const currentDateList = ref([]);
 
 function navItemClick(url, id) {
@@ -125,8 +107,7 @@ onMounted(() => {
 });
 </script>
 
-<style lang="scss">
-</style>
+<style lang="scss"></style>
 
 <style scoped>
 body,

+ 123 - 134
src/pages/export/export.vue

@@ -1,140 +1,129 @@
 <template>
-	<view class="processWrapper exportBody ">
-		<view style="height:98rpx"></view>
-		<view class="ding">
-			<!-- <calendar></calendar> -->
-			<view class="example-body">
-				<uni-datetime-picker v-model="datetimerange" type="daterange" start-placeholder="请选择开始时间"
-					end-placeholder="请选择结束时间" start="2000-3-20 12:00:00" end="2025-10-20 20:00:00" rangeSeparator="至" />
-			</view>
-		</view>
-
-		<block>
-			<view class="processList">
-				<view class="cu-list menu-avatar">
-					<view class="cu-item" v-for="(item,index) in getExportData" :key="index">
-						<view class="cu-avatar lg">
-							<image class="image-bg"
-								:src="item.clzt==0?'@/static/images/process-icon.png':'@/static/images/processed-icon.png'" />
-						</view>
-						<view class="content">
-							<view class="pro-title">
-								<view class="cut">{{keyWords=='人工督察单'?item.artificial_code:item.supervise_code}}</view>
-							</view>
-							<view class="pro-des  ">
-								<view class="text-cut">{{item.content}}</view>
-							</view>
-							<view class="pro-date ">{{item.timestamp}}</view>
-						</view>
-						<view class="action" style="z-index:99">
-							<view class="unProcess" v-if="item.clzt==0">未处理</view>
-							<view class="processed" v-else>已处理</view>
-						</view>
-					</view>
-					<view class=" text-center margin-top" v-if="!this.getExportData.length&&this.dataRes">暂无数据...</view>
-				</view>
-			</view>
-		</block>
-		<view v-if="this.getExportData.length>0" class="padding-lr padding-bottom-lg bg-white" style="position:fixed;bottom:0;width:100%">
-			<view class="btn-area">
-				<button class="bg-blue  round missReport margin-top" @tap="exportButton()">导 出 </button>
-			</view>
-		</view>
-
-
-
-	</view>
+  <view class="processWrapper exportBody">
+    <view style="height: 98rpx"></view>
+    <view class="ding">
+      <!-- <calendar></calendar> -->
+      <view class="example-body">
+        <uni-datetime-picker
+          v-model="datetimerange"
+          type="daterange"
+          start-placeholder="请选择开始时间"
+          end-placeholder="请选择结束时间"
+          start="2000-3-20 12:00:00"
+          end="2025-10-20 20:00:00"
+          rangeSeparator="至"
+        />
+      </view>
+    </view>
+
+    <block>
+      <view class="processList">
+        <view class="cu-list menu-avatar">
+          <view class="cu-item" v-for="(item, index) in getExportData" :key="index">
+            <view class="cu-avatar lg">
+              <image class="image-bg" :src="item.clzt == 0 ? '@/static/images/export/process-icon.png' : '@/static/images/export/processed-icon.png'" />
+            </view>
+            <view class="content">
+              <view class="pro-title">
+                <view class="cut">{{ keyWords == "人工督察单" ? item.artificial_code : item.supervise_code }}</view>
+              </view>
+              <view class="pro-des">
+                <view class="text-cut">{{ item.content }}</view>
+              </view>
+              <view class="pro-date">{{ item.timestamp }}</view>
+            </view>
+            <view class="action" style="z-index: 99">
+              <view class="unProcess" style="color: #ff4e00" v-if="item.clzt == 0">未处理</view>
+              <view class="processed" style="color: #08be04" v-else>已处理</view>
+            </view>
+          </view>
+          <view class="text-center margin-top" v-if="!this.getExportData.length && this.dataRes">暂无数据...</view>
+        </view>
+      </view>
+    </block>
+    <view v-if="this.getExportData.length > 0" class="padding-lr padding-bottom-lg bg-white" style="position: fixed; bottom: 0; width: 100%">
+      <view class="btn-area">
+        <button class="bg-blue round missReport margin-top" @tap="exportButton()">导 出</button>
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
-	import json from '../../data/json.js';
-	export default {
-		data() {
-			return {
-				getExportData: [],
-				dataRes: 0,
-				datetimerange: ['', ''],
-				keyWords:'',
-		
-			};
-		},
-		onLoad: function(option) {
-			this.keyWords=option.keywords;
-			this.getData({
-				"company_code": uni.getStorageSync('selectedCode'),
-				"start_time": '',
-				"end_time": '',
-			})
-
-		},
-		watch: {
-			datetimerange(newval) {
-				this.getData({
-					"company_code": uni.getStorageSync('selectedCode'),
-					
-					"start_time":newval[0],
-					"end_time": newval[1],
-				})
-			}
-		},
-		
-		methods: {
-
-			async getData(params = {}) {
-				const res = await this.$myRequest({
-					// url: listUrl, //人员督察单渲染
-					url:this.keyWords=='人工督察单'?'FireInspector/getManualInspectorList':'FireInspector/getElectronicInspectorList',
-					data: params,
-					showLoading: true
-				})
-				this.getExportData = res.data.data;
-				this.dataRes = 1;
-			},
-			exportButton() {
-				let url2 = "";
-				switch (this.keyWords) {
-					case '人工督察单':
-						url2 = "ExportModule/getManualInspectorListExpor"
-						break;
-					case '电子督察单':
-						url2 = "ExportModule/getElectronicInspectorListExpor"
-						break;
-					default:
-						break;
-				}
-				
-				
-				//#ifdef H5		
-				var start_time =this.datetimerange[0]?`start_time/${this.datetimerange[0]}/`:'';
-				var end_time =this.datetimerange[1]?`end_time/${this.datetimerange[1]}/`:'';
-				let exportUrl = this.$BASE_URL +url2+
-					`/${start_time}${end_time}company_code/${uni.getStorageSync('selectedCode')}/`
-				var ua = window.navigator.userAgent.toLowerCase();
-				// alert(exportUrl)
-				if (ua.match(/MicroMessenger/i) == 'micromessenger') {
-					uni.showModal({
-						showCancel: false,
-						content: '如需下载,请在默认浏览器中操作',
-						success: function(res) {
-							window.location.href = exportUrl;
-						}
-					});
-				} else {
-					window.location.href = exportUrl;
-				}
-				//#endif
-
-			}
-
-
-
-
-
-		}
-	}
+import json from "../../data/json.js";
+export default {
+  data() {
+    return {
+      getExportData: [],
+      dataRes: 0,
+      datetimerange: ["", ""],
+      keyWords: "",
+    };
+  },
+  onLoad: function (option) {
+    this.keyWords = option.keywords;
+    this.getData({
+      company_code: uni.getStorageSync("selectedCode"),
+      start_time: "",
+      end_time: "",
+    });
+  },
+  watch: {
+    datetimerange(newval) {
+      this.getData({
+        company_code: uni.getStorageSync("selectedCode"),
+
+        start_time: newval[0],
+        end_time: newval[1],
+      });
+    },
+  },
+
+  methods: {
+    async getData(params = {}) {
+      const res = await this.$myRequest({
+        // url: listUrl, //人员督察单渲染
+        url: this.keyWords == "人工督察单" ? "FireInspector/getManualInspectorList" : "FireInspector/getElectronicInspectorList",
+        data: params,
+        showLoading: true,
+      });
+      this.getExportData = res.data.data;
+      this.dataRes = 1;
+    },
+    exportButton() {
+      let url2 = "";
+      switch (this.keyWords) {
+        case "人工督察单":
+          url2 = "ExportModule/getManualInspectorListExpor";
+          break;
+        case "电子督察单":
+          url2 = "ExportModule/getElectronicInspectorListExpor";
+          break;
+        default:
+          break;
+      }
+
+      //#ifdef H5
+      var start_time = this.datetimerange[0] ? `start_time/${this.datetimerange[0]}/` : "";
+      var end_time = this.datetimerange[1] ? `end_time/${this.datetimerange[1]}/` : "";
+      let exportUrl = this.$BASE_URL + url2 + `/${start_time}${end_time}company_code/${uni.getStorageSync("selectedCode")}/`;
+      var ua = window.navigator.userAgent.toLowerCase();
+      // alert(exportUrl)
+      if (ua.match(/MicroMessenger/i) == "micromessenger") {
+        uni.showModal({
+          showCancel: false,
+          content: "如需下载,请在默认浏览器中操作",
+          success: function (res) {
+            window.location.href = exportUrl;
+          },
+        });
+      } else {
+        window.location.href = exportUrl;
+      }
+      //#endif
+    },
+  },
+};
 </script>
 
-<style lang="scss">
-
-
-</style>
+<style lang="scss"></style>

+ 444 - 405
src/pages/index/index.vue

@@ -1,8 +1,10 @@
 <template>
-  <scroll-view scroll-x>
-    <view style="margin-bottom: 50px" class="padding-sm">
-      <!-- 下拉选择 -->
-      <!-- <view class="searchSelect shadow" v-if="flag">
+	<!-- <u-sticky bgColor="#fff"> </u-sticky> -->
+
+	<scroll-view scroll-x>
+		<view>
+			<!-- 下拉选择 -->
+			<!-- <view class="searchSelect shadow" v-if="flag">
         <view class="cu-bar search bg-white">
           <view class="search-form round" style="margin-top: 0">
             <input
@@ -35,10 +37,10 @@
           >
         </view>
       </view> -->
-      <!-- 下拉选择 end -->
+			<!-- 下拉选择 end -->
 
-      <!-- 图表 -->
-      <!-- <view class="section1 section bg-white padding-xs">
+			<!-- 图表 -->
+			<!-- <view class="section1 section bg-white padding-xs">
         <view
           class="
             static-tabs
@@ -73,33 +75,33 @@
           <view v-if="Inv == 1"> </view>
           <view v-if="Inv == 2" class="chart3-box">
             <ul class="chart3-icon">
-              <li @tap="goOfflineList()">
+              <li>
                 <image
-                  src="../../static/chart3-1.png"
+                  src="@/static/index/chart3-1.png"
                   style="width: 64rpx; height: 64rpx"
                 ></image>
               </li>
               <li>
                 <image
-                  src="../../static/chart3-2.png"
+                  src="@/static/index/chart3-2.png"
                   style="width: 64rpx; height: 64rpx"
                 ></image>
               </li>
               <li>
                 <image
-                  src="../../static/chart3-3.png"
+                  src="@/static/index/chart3-3.png"
                   style="width: 64rpx; height: 64rpx"
                 ></image>
               </li>
               <li>
                 <image
-                  src="../../static/chart3-4.png"
+                  src="@/static/index/chart3-4.png"
                   style="width: 64rpx; height: 64rpx"
                 ></image>
               </li>
-              <li @tap="goNormalList()">
+              <li>
                 <image
-                  src="../../static/chart3-5.png"
+                  src="@/static/index/chart3-5.png"
                   style="width: 64rpx; height: 64rpx"
                 ></image>
               </li>
@@ -107,403 +109,440 @@
           </view>
         </view>
       </view> -->
-      <!-- 图表 end-->
-
-      <!-- 宫格列表 -->
-      <view class="section2 section bg-white margin-top-sm">
-        <view class="cu-list grid col-3 no-border">
-          <view
-            class="cu-item justify-center align-center"
-            @tap="navItemClick(item.redirectUrl)"
-            v-for="(item, index) in cuIconList"
-            :key="index"
-          >
-            <image
-              :src="item.imgUrl"
-              style="width: 100rpx; height: 100rpx"
-            ></image>
-            <view class="cu-tag badge" v-if="item.badge != 0">
-              <block v-if="item.badge != 0">{{
-                item.badge > 99 ? "99+" : item.badge
-              }}</block>
-            </view>
-            <text>{{ item.name }}</text>
-          </view>
-        </view>
-      </view>
-      <!-- 宫格列表 end -->
-    </view>
-  </scroll-view>
+			<!-- 图表 end-->
+
+			<!-- 轮播图 开始 -->
+			<u-swiper :list="arrayList.swiperList" indicator indicatorMode="line" radius="0" height="160" circular>
+			</u-swiper>
+			<!-- 轮播图 结束 -->
+
+			<!-- 宫格列表 -->
+			<view class="section2 section bg-white" style="margin-bottom: 10px"
+				v-if="arrayList.recentlyUsed.length > 0">
+				<view style="color: #000000; font-size: 16px; padding: 10px 10px 5px 10px">最近使用</view>
+				<view class="cu-list grid col-5 no-border">
+					<view class="cu-item justify-center align-center" @tap="navItemClick(item)"
+						v-for="(item, index) in arrayList.recentlyUsed" :key="index">
+						<image :src="item.imgUrl" style="width: 40px; height: 40px"></image>
+						<view class="cu-tag badge" v-if="item.badge != 0">
+							<block v-if="item.badge != 0">{{ item.badge > 99 ? "99+" : item.badge }}</block>
+						</view>
+						<text style="font-size: 14px">{{ item.name }}</text>
+					</view>
+				</view>
+			</view>
+			<!-- 宫格列表 end -->
+
+			<!-- 宫格列表 -->
+			<view class="section2 section bg-white">
+				<view style="color: #000000; font-size: 16px; padding: 10px 10px 5px 10px">常用功能</view>
+				<view class="cu-list grid col-5 no-border">
+					<view class="cu-item justify-center align-center" @tap="navItemClick(item)"
+						v-for="(item, index) in arrayList.cuIconList" :key="index">
+						<image :src="item.imgUrl" style="width: 40px; height: 40px"></image>
+						<view class="cu-tag badge" v-if="item.badge != 0">
+							<block v-if="item.badge != 0">{{ item.badge > 99 ? "99+" : item.badge }}</block>
+						</view>
+						<text style="font-size: 14px">{{ item.name }}</text>
+					</view>
+				</view>
+			</view>
+			<!-- 宫格列表 end -->
+		</view>
+	</scroll-view>
 </template>
 
-<script>
-import searchSelect from "./components/searchSelect/searchSelect.vue";
-
-import json from "@/data/json.js"; //引入api请求封装方法
-import * as jwx from "@/utils/jssdk.js"; //引入js sdk的封装
-
-export default {
-  components: {
-    searchSelect,
-  },
-
-  data() {
-    return {
-      staticData: "",
-      indicator: [],
-      datavalue: [],
-      dataname: [],
-      alarmCount: json.staticData.data[0].alarmCount,
-      cuIconList: json.cuIconList,
-      Inv: 0,
-      defaultSite: 0,
-      flag: false,
-      searchList: [],
-      searchList2: [],
-      searchInput: "",
-      selectedCode: 10012,
-      getData: [],
-      codeResult: "",
-    };
-  },
-
-  // 自定义导航事件
-  onNavigationBarButtonTap(e) {
-    if (e.float == "right") {
-      // alert("你点击了扫一扫");
-      this.scanQRCode();
-    } else {
-      // alert("你点击了获取位置");
-      // this.getLocation()
-      this.showTag();
-    }
-  },
-
-  onLoad(option) {
-    //获取首页标题
-    uni.setNavigationBarTitle({
-      title: uni.getStorageSync("homeTitle")
-    });
-    // var res = uni.getStorageSync("selectedCode");
-    // var res2 = uni.getStorageSync("selectedName");
-    // if (res) {
-    //   uni.setNavigationBarTitle({
-    //     title: res2,
-    //   });
-    // }
-
-    // // 图表切换渲染
-    // this.hackReset = false;
-    // this.$nextTick(() => {
-    //   this.hackReset = true;
-    // });
-  },
-  methods: {
-    //登录请求
-    async getLogin() {
-      const res = await this.$myRequest({
-        url: "/system/appLogin",
-        header: {
-          "Content-Type": "application/json;charset=utf-8",
-        },
-        method: "POST",
-        data: {
-          username: "fire_admin",
-          password: "fire_admin",
-          tenantId: 1002,
-        },
-      });
-
-      uni.setStorageSync("Authorization", res.data.data.access_token);
-      if (res.data.status == "SUCCESS") {
-        uni.switchTab({
-          url: "/pages/index/index",
-        });
-      } else {
-      }
-    },
-
-    async init() {
-      window.location.href = this.$BASE_URL + "Com/getPageAuthorization1";
-    },
-    //扫码
-    scanQRCode() {
-      // console.log(1);
-      // this.scanCode();
-      // 将this赋值给that
-      let that = this;
-      // 微信公众号获取位置
-      jwx.configWeiXin((jweixin) => {
-        jweixin.scanQRCode({
-          needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
-          scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
-          success: function (res) {
-            setTimeout(function () {
-              /* 放1000ms后执行的代码 */
-              alert(res.resultStr);
-              that.getCodeResult({
-                ercode: res.resultStr,
-              });
-            }, 1000);
-          },
-        });
-      });
-    },
-
-    scanCode() {
-      uni.scanCode({
-        scanType: ["qrCode"],
-        success: (res) => {
-          console.log("扫码成功", res);
-        },
-        fail: (err) => {
-          console.log("扫码失败", err);
-        },
-        complete: () => {
-          console.log("扫码结束");
-        },
-      });
-    },
-
-    // 扫码成功后请求
-    async getCodeResult(param = {}) {
-      const res = await this.$myRequest({
-        url: "ScanPush/scan_push",
-        data: param,
-      });
-      if (res.data.flag) {
-        uni.showToast({
-          title: "扫码成功",
-          icon: "none",
-        });
-      }
-    },
-
-    //获取地理位置
-    getLocation() {
-      alert(2);
-      // 将this赋值给that
-      let that = this;
-      // 微信公众号获取位置
-      jwx.configWeiXin((jweixin) => {
-        alert(22);
-        jweixin.getLocation({
-          type: "gcj02", // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
-          success: function (res) {
-            alert(res.longitude);
-          },
-        });
-      });
-    },
-
-    // 九宫格页面跳转
-    navItemClick(url) {
-      if (url) {
-        uni.navigateTo({
-          url: url,
-        });
-      } else {
-        uni.showModal({
-          title: "Tips",
-          content: "此模块开发中~",
-          showCancel: false,
-          success: function (res) {
-            if (res.confirm) {
-            } else if (res.cancel) {
-            }
-          },
-        });
-      }
-    },
-
-    // 页面跳转
-    goOfflineList() {
-      uni.navigateTo({
-        url: "/pages/deviceOffLine/deviceOffLine?status_type=1",
-      });
-    },
-    goNormalList() {
-      uni.navigateTo({
-        url: "/pages/deviceOffLine/deviceOffLine?status_type=2",
-      });
-    },
-
-    showTag() {
-      this.flag = !this.flag;
-    },
-    // 下拉选择
-    clickSelectItem(item, index) {
-      this.staticData = "";
-      this.selectedCode = item.owner_code;
-      uni.setStorageSync("selectedCode", item.owner_code);
-      uni.setStorageSync("selectedName", item.owner_name);
-      this.searchInput = item.owner_name;
-      uni.setNavigationBarTitle({
-        title: this.searchInput,
-      });
-      this.getHomeData({
-        company_code: uni.getStorageSync("selectedCode"),
-      });
-      this.getHandleData({
-        company_code: uni.getStorageSync("selectedCode"),
-      });
-      this.flag = false;
-    },
-    handleInput() {
-      var newlist = this.searchList2.filter(
-        (item) => item.owner_name.indexOf(this.searchInput) > -1
-      );
-      this.searchList = newlist;
-    },
-    InputFocus(e) {
-      this.InputBottom = e.detail.height;
-    },
-    InputBlur(e) {
-      this.InputBottom = 0;
-    },
-    changeTab(Inv) {
-      that.navIdx = Inv;
-    },
-
-    //echarts图表请求
-    async getHomeData(param = {}) {
-      const res = await this.$myRequest({
-        url: "Index/getHomePageData",
-        data: param,
-      });
-      // console.log('首页请求staticData')
-      // console.log(res.data.data[0])
-      this.staticData = res.data.data[0];
-
-      // var data = res.data.data[0]
-
-      var datavalue = [
-        this.staticData.fire_water_count,
-        this.staticData.alarm_host_count,
-        this.staticData.electrical_fire_count,
-        this.staticData.other_count,
-        this.staticData.video_monitoring_count,
-      ];
-      var dataname = ["消防水系统", "报警主机", "电气火灾", "其他", "监控视频"];
-      var color = ["#3C8BF0", "#06CDF8", "#0ECB70", "#6744EF", "#FFD803"];
-
-      var aa = [
-        this.staticData.fire_water_count,
-        this.staticData.alarm_host_count,
-        this.staticData.electrical_fire_count,
-        this.staticData.other_count,
-        this.staticData.video_monitoring_count,
-      ];
-      aa.sort(function (a, b) {
-        return a - b;
-      });
-      aa = aa.pop();
-      var datamax = [aa, aa, aa, aa, aa];
-
-      this.datavalue = datavalue;
-      this.dataname = dataname;
-
-      dataname.map((val, ind) => {
-        this.indicator.push({
-          name: val,
-          max: datamax[ind],
-          color: color[ind],
-        });
-      });
-      this.indicator = this.indicator.slice(-5);
-    },
-
-    // 未处理告警请求
-    async getHandleData(param = {}) {
-      const res = await this.$myRequest({
-        url: "Index/getFunctionalModuleStatistics",
-        showLoading: true,
-        data: param,
-      });
-      this.cuIconList[0].badge = res.data.data[0].comprehensive_alarm_count;
-      this.cuIconList[2].badge = res.data.data[0].fire_brigade_inspector_count;
-    },
-  },
-};
+<script setup>
+	import searchSelect from "./components/searchSelect/searchSelect.vue";
+
+	import json from "@/data/json.js"; //引入api请求封装方法
+	import * as jwx from "@/utils/jssdk.js"; //引入js sdk的封装
+
+	import {
+		onReady,
+		onLoad,
+		onShow,
+		onNavigationBarButtonTap
+	} from "@dcloudio/uni-app";
+	import {
+		ref,
+		onMounted,
+		inject,
+		shallowRef,
+		reactive
+	} from "vue";
+	import useXunJianStore from "@/store/modules/xunJian.js";
+
+	const myRequest = inject("$myRequest"); //全局接口请求
+	const settingsStore = useXunJianStore(); //全局变量值Store
+	const BASE_URL = inject("$BASE_URL");
+
+	const arrayList = reactive({
+		InputBottom: 0,
+		staticData: "",
+		indicator: [],
+		datavalue: [],
+		dataname: [],
+		Inv: 0,
+		flag: false,
+		searchList: [],
+		searchList2: [],
+		searchInput: "",
+		selectedCode: 10012,
+		codeResult: "",
+
+		swiperList: ["../../static/index/banner1.png", "../../static/index/banner2.jpg",
+			"../../static/index/banner3.jpg"
+		],
+		cuIconList: json.cuIconList,
+		recentlyUsed: [],
+	});
+
+	onLoad((option) => {
+		//获取首页标题
+		if (uni.getStorageSync("homeTitle")) {
+			uni.setNavigationBarTitle({
+				title: uni.getStorageSync("homeTitle"),
+			});
+		} else {
+			uni.setNavigationBarTitle({
+				title: "首页",
+			});
+		}
+
+		if (uni.getStorageSync("recentlyUsed")) {
+			arrayList.recentlyUsed = uni.getStorageSync("recentlyUsed");
+		}
+
+		// var res = uni.getStorageSync("selectedCode");
+		// var res2 = uni.getStorageSync("selectedName");
+		// if (res) {
+		//   uni.setNavigationBarTitle({
+		//     title: res2,
+		//   });
+		// }
+
+		// // 图表切换渲染
+		// this.hackReset = false;
+		// this.$nextTick(() => {
+		//   this.hackReset = true;
+		// });
+	});
+
+	//登录请求
+	async function getLogin() {
+		const res = await myRequest({
+			url: "/system/appLogin",
+			header: {
+				"Content-Type": "application/json;charset=utf-8",
+			},
+			method: "POST",
+			data: {
+				username: "fire_admin",
+				password: "fire_admin",
+				tenantId: 1002,
+			},
+		});
+
+		uni.setStorageSync("Authorization", res.data.data.access_token);
+		if (res.data.status == "SUCCESS") {
+			uni.switchTab({
+				url: "/pages/index/index",
+			});
+		} else {}
+	}
+
+	async function init() {
+		window.location.href = BASE_URL + "Com/getPageAuthorization1";
+	}
+	//扫码
+	function scanQRCode() {
+		// console.log(1);
+		// this.scanCode();
+		// 将this赋值给that
+		let that = this;
+		// 微信公众号获取位置
+		jwx.configWeiXin((jweixin) => {
+			jweixin.scanQRCode({
+				needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
+				scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
+				success: function(res) {
+					setTimeout(function() {
+						/* 放1000ms后执行的代码 */
+						alert(res.resultStr);
+						that.getCodeResult({
+							ercode: res.resultStr,
+						});
+					}, 1000);
+				},
+			});
+		});
+	}
+
+	function scanCode() {
+		uni.scanCode({
+			scanType: ["qrCode"],
+			success: (res) => {
+				console.log("扫码成功", res);
+			},
+			fail: (err) => {
+				console.log("扫码失败", err);
+			},
+			complete: () => {
+				console.log("扫码结束");
+			},
+		});
+	}
+
+	// 扫码成功后请求
+	async function getCodeResult(param = {}) {
+		const res = await myRequest({
+			url: "ScanPush/scan_push",
+			data: param,
+		});
+		if (res.data.flag) {
+			uni.showToast({
+				title: "扫码成功",
+				icon: "none",
+			});
+		}
+	}
+
+	//获取地理位置
+	function getLocation() {
+		alert(2);
+		// 将this赋值给that
+		let that = this;
+		// 微信公众号获取位置
+		jwx.configWeiXin((jweixin) => {
+			alert(22);
+			jweixin.getLocation({
+				type: "gcj02", // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
+				success: function(res) {
+					alert(res.longitude);
+				},
+			});
+		});
+	}
+
+	// 九宫格页面跳转
+	function navItemClick(item) {
+		if (item.redirectUrl) {
+			item.sort = 0;
+
+			arrayList.recentlyUsed.push(item);
+
+			if (arrayList.recentlyUsed.length > 0) {
+				arrayList.recentlyUsed = arrayList.recentlyUsed.filter((currentValue, currentIndex, selfArr) => {
+					return selfArr.findIndex((x) => x.redirectUrl === currentValue.redirectUrl) === currentIndex;
+				});
+
+				arrayList.recentlyUsed.filter((el) => {
+					if (el.redirectUrl === item.redirectUrl) {
+						el.sort++;
+					}
+				});
+			}
+
+			arrayList.recentlyUsed = settingsStore.sortEvent(arrayList.recentlyUsed, 1);
+
+			uni.setStorageSync("recentlyUsed", arrayList.recentlyUsed);
+
+			uni.navigateTo({
+				url: item.redirectUrl,
+			});
+		} else {
+			uni.showModal({
+				title: "Tips",
+				content: "此模块开发中~",
+				showCancel: false,
+				success: function(res) {
+					if (res.confirm) {} else if (res.cancel) {}
+				},
+			});
+		}
+	}
+
+	function showTag() {
+		arrayList.flag = !arrayList.flag;
+	}
+	// 下拉选择
+	function clickSelectItem(item, index) {
+		arrayList.staticData = "";
+		arrayList.selectedCode = item.owner_code;
+		uni.setStorageSync("selectedCode", item.owner_code);
+		uni.setStorageSync("selectedName", item.owner_name);
+		arrayList.searchInput = item.owner_name;
+		uni.setNavigationBarTitle({
+			title: arrayList.searchInput,
+		});
+
+		getHomeData({
+			company_code: uni.getStorageSync("selectedCode"),
+		});
+		getHandleData({
+			company_code: uni.getStorageSync("selectedCode"),
+		});
+
+		arrayList.flag = false;
+	}
+
+	function handleInput() {
+		var newlist = arrayList.searchList2.filter((item) => item.owner_name.indexOf(arrayList.searchInput) > -1);
+		arrayList.searchList = newlist;
+	}
+
+	function InputFocus(e) {
+		arrayList.InputBottom = e.detail.height;
+	}
+
+	function InputBlur(e) {
+		arrayList.InputBottom = 0;
+	}
+	//echarts图表请求
+	async function getHomeData(param = {}) {
+		const res = await myRequest({
+			url: "Index/getHomePageData",
+			data: param,
+		});
+		// console.log('首页请求staticData')
+		// console.log(res.data.data[0])
+		arrayList.staticData = res.data.data[0];
+
+		// var data = res.data.data[0]
+
+		var datavalue = [
+			arrayList.staticData.fire_water_count,
+			arrayList.staticData.alarm_host_count,
+			arrayList.staticData.electrical_fire_count,
+			arrayList.staticData.other_count,
+			arrayList.staticData.video_monitoring_count,
+		];
+		var dataname = ["消防水系统", "报警主机", "电气火灾", "其他", "监控视频"];
+		var color = ["#3C8BF0", "#06CDF8", "#0ECB70", "#6744EF", "#FFD803"];
+
+		var aa = [
+			arrayList.staticData.fire_water_count,
+			arrayList.staticData.alarm_host_count,
+			arrayList.staticData.electrical_fire_count,
+			arrayList.staticData.other_count,
+			arrayList.staticData.video_monitoring_count,
+		];
+		aa.sort(function(a, b) {
+			return a - b;
+		});
+		aa = aa.pop();
+		var datamax = [aa, aa, aa, aa, aa];
+
+		arrayList.datavalue = datavalue;
+		arrayList.dataname = dataname;
+
+		dataname.map((val, ind) => {
+			arrayList.indicator.push({
+				name: val,
+				max: datamax[ind],
+				color: color[ind],
+			});
+		});
+		arrayList.indicator = arrayList.indicator.slice(-5);
+	}
+	// 未处理告警请求
+	async function getHandleData(param = {}) {
+		const res = await myRequest({
+			url: "Index/getFunctionalModuleStatistics",
+			showLoading: true,
+			data: param,
+		});
+		arrayList.cuIconList[0].badge = res.data.data[0].comprehensive_alarm_count;
+		arrayList.cuIconList[2].badge = res.data.data[0].fire_brigade_inspector_count;
+	}
+
+	// 自定义导航事件
+	onNavigationBarButtonTap((e) => {
+		if (e.float == "right") {
+			// alert("你点击了扫一扫");
+			this.scanQRCode();
+		} else {
+			// alert("你点击了获取位置");
+			// this.getLocation()
+			this.showTag();
+		}
+	});
 </script>
 
 <style>
-.select-items {
-  overflow: auto;
-  height: 80vh;
-}
-
-.static-tabs {
-  border-radius: 50rpx;
-  border: 1rpx solid #4074e7;
-}
-
-.static-tabs > view {
-  color: #4074e7;
-  font-size: 30rpx;
-}
-
-.static-tabs > view.active {
-  color: #fff;
-  background: #4074e7;
-}
-
-.static-tabs > view:first-child {
-  border-top-left-radius: 50rpx;
-  border-bottom-left-radius: 50rpx;
-}
-
-.static-tabs > view:nth-child(2) {
-  border-left: 1px solid #4074e7;
-  border-right: 1px solid #4074e7;
-}
-
-.static-tabs > view:last-child {
-  border-top-right-radius: 50rpx;
-  border-bottom-right-radius: 50rpx;
-}
-
-/* 检测时间 */
-.time {
-  border-radius: 50rpx;
-  background: #fafcff;
-  border: 1px solid #e8f1ff;
-  padding: 20rpx;
-  color: #666666;
-  font-size: 30rpx;
-}
-
-.chart3-box {
-  position: relative;
-}
-
-.chart3-icon {
-  width: 90%;
-  position: absolute;
-  top: 60rpx;
-  left: 30rpx;
-  z-index: 1;
-}
-
-.chart3-icon li {
-  padding-top: 25rpx;
-}
-
-ul,
-li {
-  padding: 0;
-  margin: 0;
-  list-style: none;
-}
-
-.shadow {
-  box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
-}
+	.select-items {
+		overflow: auto;
+		height: 80vh;
+	}
+
+	.static-tabs {
+		border-radius: 50rpx;
+		border: 1rpx solid #4074e7;
+	}
+
+	.static-tabs>view {
+		color: #4074e7;
+		font-size: 30rpx;
+	}
+
+	.static-tabs>view.active {
+		color: #fff;
+		background: #4074e7;
+	}
+
+	.static-tabs>view:first-child {
+		border-top-left-radius: 50rpx;
+		border-bottom-left-radius: 50rpx;
+	}
+
+	.static-tabs>view:nth-child(2) {
+		border-left: 1px solid #4074e7;
+		border-right: 1px solid #4074e7;
+	}
+
+	.static-tabs>view:last-child {
+		border-top-right-radius: 50rpx;
+		border-bottom-right-radius: 50rpx;
+	}
+
+	/* 检测时间 */
+	.time {
+		border-radius: 50rpx;
+		background: #fafcff;
+		border: 1px solid #e8f1ff;
+		padding: 20rpx;
+		color: #666666;
+		font-size: 30rpx;
+	}
+
+	.chart3-box {
+		position: relative;
+	}
+
+	.chart3-icon {
+		width: 90%;
+		position: absolute;
+		top: 60rpx;
+		left: 30rpx;
+		z-index: 1;
+	}
+
+	.chart3-icon li {
+		padding-top: 25rpx;
+	}
+
+	ul,
+	li {
+		padding: 0;
+		margin: 0;
+		list-style: none;
+	}
 </style>
 
 <style scoped>
-uni-page-body,
-uni-page-refresh {
-  background: rgb(241, 241, 241);
-}
+	uni-page-body,
+	uni-page-refresh {
+		background: rgb(241, 241, 241);
+	}
 </style>

+ 1 - 1
src/pages/info/fireBase/fireBase.vue

@@ -7,7 +7,7 @@
 					<view class="cu-item" v-for="(item,index) in this.getData" :key="index"  @tap="goDetail(item)">
 						
 						<view class="cu-avatar">
-							<image class="image-bg" src="@/static/images/fire-base1.png" />
+							<image class="image-bg" src="@/static/images/info/fire-base1.png" />
 						</view>
 						
 						<view class="content">

+ 2 - 2
src/pages/info/fireBashDetail/fireBashDetail.vue

@@ -3,9 +3,9 @@
     <view class="margin-bottom fireD-tit">{{ this.getData.title }}</view>
     <view class="flex justify-between align-center">
       <view>
-        <!-- <view class="cu-avatar round" style="background-image:url(@/static/images/fireBase.png)"></view> -->
+        <!-- <view class="cu-avatar round" style="background-image:url(@/static/images/info/fireBase.png)"></view> -->
 
-        <image class="cu-avatar round" src="@/static/images/fireBase.png" />
+        <image class="cu-avatar round" src="@/static/images/info/fireBase.png" />
 
         <text class="margin-left-sm margin-right-sm text-sm">{{
           this.getData.author

+ 11 - 16
src/pages/info/info.vue

@@ -1,28 +1,26 @@
 <template>
-  <view class="analyse-wrapper info-wrapper">
-    <view class="top-banner justify-center align-center text-center">
-      <image class="image-bg" src="/static/images/info-bg.png" />
+  <view class="analyse-wrapper info-wrapper" style="height: 100%">
+    <view class="justify-center align-center text-center">
+      <u-image src="@/static/images/info/info-bg.png" width="100%" height="273rpx" :showLoading="false" :fade="false"></u-image>
     </view>
 
-    <scroll-view scroll-y>
-      <view class="cu-list menu-avatar padding-lr">
-        <view class="cu-item shadow" @tap="goFireBase()">
+    <scroll-view scroll-y style="height: calc(100% - 273rpx)">
+      <view class="cu-list menu-avatar padding-lr-sm padding-top-sm">
+        <view class="cu-item margin-bottom-sm" @tap="goFireBase()">
           <view class="cu-avatar">
-            <image class="image-bg" src="@/static/images/fireBase.png" />
+            <image class="image-bg" src="@/static/images/info/fireBase.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>
+              <text class="icon iconfont margin-right-xs margin-left-lg"> &#xe629; </text>
             </view>
           </view>
         </view>
-        <!-- <view class="cu-item  shadow" @tap="goPushList()">
-				<view class="cu-avatar " style="background-image:url(@/static/images/pushList.png)"></view>
+        <!-- <view class="cu-item " @tap="goPushList()">
+				<view class="cu-avatar " style="background-image:url(@/static/images/info/pushList.png)"></view>
 				<view class="content">
 					<view class="">消息推送</view>
 				</view>
@@ -38,7 +36,7 @@
 </template>
 
 <script>
-import indexBackgroundImage from "@/static/images/fireBase.png";
+import indexBackgroundImage from "@/static/images/info/fireBase.png";
 
 export default {
   data() {
@@ -71,7 +69,4 @@ export default {
 body {
   background: #fff;
 }
-.shadow {
-  box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
-}
 </style>

+ 2 - 2
src/pages/info/pushList/pushList.vue

@@ -17,7 +17,7 @@
 			<view class="" style="margin-top:0">
 				<view class="cu-list menu-avatar ">
 					<view class="cu-item" v-for="(item,index) in unporcessList" :key="index" @tap="goFireBaseDetail">
-						<view class="cu-avatar" style="background-image:url(@/static/images/push-list.png);"></view>
+						<view class="cu-avatar" style="background-image:url(@/static/images/info/push-list.png);"></view>
 						<view class="content">
 							<view class="pro-title">
 								<view class="cut">{{item.title}}</view>
@@ -38,7 +38,7 @@
 			<view class="" style="margin-top:0">
 				<view class="cu-list menu-avatar ">
 					<view class="cu-item" v-for="(item,index) in unporcessList" :key="index" @tap="goFireBaseDetail">
-						<view class="cu-avatar" style="background-image:url(@/static/images/push-list.png);"></view>
+						<view class="cu-avatar" style="background-image:url(@/static/images/info/push-list.png);"></view>
 						<view class="content">
 							<view class="pro-title">
 								<view class="cut">{{item.title}}</view>

+ 118 - 133
src/pages/login/login.vue

@@ -2,72 +2,30 @@
   <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/images/wt/bg.png" v-if="!bg" />
     </view>
     <view class="top">
-      <image class="logo" :src="logo" mode="widthFix" v-if="logo"/>
-      <text class="title">{{title}}</text>
+      <image class="logo" :src="logo" mode="widthFix" v-if="logo" />
+      <text class="title">{{ title }}</text>
     </view>
     <view class="middle login">
-      <view
-        id="login-input"
-        style="margin-top: 20px"
-        v-if="switchText == '账号密码登录'"
-      >
-        <u-input
-          v-model="phone"
-          prefixIcon="phone"
-          placeholder="请输入手机号码"
-        />
+      <view id="login-input" style="margin-top: 20px" v-if="switchText == '账号密码登录'">
+        <u-input v-model="phone" prefixIcon="phone" placeholder="请输入手机号码" />
       </view>
 
-      <view
-        id="login-input"
-        style="display: flex; margin-top: 20px"
-        v-if="switchText == '账号密码登录'"
-      >
-        <u-input
-          style="width: 60%"
-          v-model="verify"
-          prefixIcon="search"
-          placeholder="请输入验证码"
-        />
+      <view id="login-input" style="display: flex; margin-top: 20px" v-if="switchText == '账号密码登录'">
+        <u-input style="width: 60%" v-model="verify" prefixIcon="search" placeholder="请输入验证码" />
 
-        <u-button @click="getVerifyCode">{{
-          !codeTime ? "获取验证码" : codeTime + "s"
-        }}</u-button>
+        <u-button @click="getVerifyCode">{{ !codeTime ? "获取验证码" : codeTime + "s" }}</u-button>
       </view>
 
-      <view
-        id="login-input"
-        style="margin-top: 20px"
-        v-if="switchText == '验证码登录'"
-      >
-        <u-input
-          type="text"
-          v-model="username"
-          prefixIcon="lock"
-          placeholder="请输入账号"
-        />
+      <view id="login-input" style="margin-top: 20px" v-if="switchText == '验证码登录'">
+        <u-input type="text" v-model="username" prefixIcon="lock" placeholder="请输入账号" />
 
-        <u-input
-          style="margin-top: 20px"
-          v-model="password"
-          prefixIcon="search"
-          placeholder="请输入密码"
-          :password="inputIconBool"
-        >
+        <u-input style="margin-top: 20px" v-model="password" prefixIcon="search" placeholder="请输入密码" :password="inputIconBool">
           <template #suffix>
-            <text
-              class="iconfont ucicon-eye"
-              @click="inputIcon()"
-              v-if="!inputIconBool"
-            ></text>
-            <text
-              class="iconfont ucicon-eye-close"
-              @click="inputIcon()"
-              v-if="inputIconBool"
-            ></text>
+            <text class="iconfont ucicon-eye" @click="inputIcon()" v-if="!inputIconBool"></text>
+            <text class="iconfont ucicon-eye-close" @click="inputIcon()" v-if="inputIconBool"></text>
           </template>
         </u-input>
       </view>
@@ -85,16 +43,18 @@
   </view>
 </template>
 
-
 <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";
 
+import useStores from "@/store/modules/user.js";
+const useStore = useStores();
+
 const myRequest = inject("$myRequest"); //api请求方法
 const data = reactive({
   /** saas数据 */
-  bg: "/static/wt/bg.png",
+  bg: "/static/images/wt/bg.png",
   logo: undefined,
   title: undefined,
   bottomTitle: undefined,
@@ -109,16 +69,15 @@ const data = reactive({
   inputIconBool: true,
 
   // VerificationCodeOne
+});
 
-})
-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, inputIconBool } = toRefs(data);
 /**登录方式切换 */
-function switchMode(){
-  if(switchText.value == "验证码登录"){
-    switchText.value = "账号密码登录"
-  }else{
-    switchText.value = "验证码登录"
+function switchMode() {
+  if (switchText.value == "验证码登录") {
+    switchText.value = "账号密码登录";
+  } else {
+    switchText.value = "验证码登录";
   }
 }
 /** 点击发送验证码 */
@@ -137,7 +96,7 @@ function getVerifyCode() {
     });
     return;
   }
-  verify.value = undefined
+  verify.value = undefined;
   getSendSms({
     phone: phone.value,
   });
@@ -159,10 +118,10 @@ function getVerifyCode() {
     }, 1000);
   }
 }
- /** 获取验证码 */ 
+/** 获取验证码 */
 async function getSendSms(params) {
   const res = await myRequest({
-    url: '/system/SendSms/noteSending',
+    url: "/system/SendSms/noteSending",
     header: {
       "Content-Type": "application/json;charset=utf-8",
     },
@@ -171,10 +130,10 @@ async function getSendSms(params) {
     showLoading: true,
   });
 }
- /** 获取登录页数据 */ 
+/** 获取登录页数据 */
 async function getMobileTenantConfig(params) {
   const res = await myRequest({
-    url: '/system/sysMobileTenantConfig/getMobileTenantConfig',
+    url: "/system/sysMobileTenantConfig/getMobileTenantConfig",
     header: {
       "Content-Type": "application/json;charset=utf-8",
     },
@@ -185,7 +144,7 @@ async function getMobileTenantConfig(params) {
   if (res.data.data.length > 0) {
     let data = res.data.data[0];
     bg.value = data.loginBackUrl;
-    title.value = data.loginTitle
+    title.value = data.loginTitle;
 
     bottomTitle.value = data.loginFooter;
     tenantId.value = data.tenantId;
@@ -195,21 +154,37 @@ async function getMobileTenantConfig(params) {
 /**
  * 判断运行环境
  */
-function env(){
-  const u = navigator.userAgent
-  //https://blog.csdn.net/weixin_42659644/article/details/126294231  
-  if(u.indexOf('saas')>-1){ //指定app内 获取app识别号
-  }else{
-    //getMobileTenantConfig({ url: "172.16.1.47:3000" })
-    getMobileTenantConfig({ url: window.location.host});
+function env() {
+  // const u = navigator.userAgent
+  // //https://blog.csdn.net/weixin_42659644/article/details/126294231
+  // if(u.indexOf('saas')>-1){ //指定app内 获取app识别号
+  // }else{
+
+  // }
+
+  let port = uni.getSystemInfoSync().platform;
+  switch (port) {
+    case "android":
+      console.log("Android"); //android
+      break;
+    case "ios":
+      console.log("iOS"); //ios
+      break;
+    case "windows":
+      // console.log("H5"); //H5
+      //getMobileTenantConfig({ url: "172.16.1.47:3000" })
+      getMobileTenantConfig({ url: window.location.host });
+      break;
+    default: //devtools
+      console.log("小程序");
+      break;
   }
-  
 }
-env()
+// env();
 //getMobileTenantConfig({ url: "172.16.1.47:3000" }) // 测试
 /** 点击提交按钮 */
 async function submitRes() {
-  if(switchText.value == "账号密码登录"){
+  if (switchText.value == "账号密码登录") {
     if (!phone.value) {
       uni.showToast({
         title: "请输入手机号码...",
@@ -217,11 +192,7 @@ async function submitRes() {
       });
       return;
     }
-    if (
-      !/^1(?:3\d|4[4-9]|5[0-35-9]|6[67]|7[013-8]|8\d|9\d)\d{8}$/.test(
-        phone.value
-      )
-    ) {
+    if (!/^1(?:3\d|4[4-9]|5[0-35-9]|6[67]|7[013-8]|8\d|9\d)\d{8}$/.test(phone.value)) {
       uni.showToast({
         title: "请输入正确的手机号码...",
         icon: "none",
@@ -240,8 +211,8 @@ async function submitRes() {
       verify: verify.value,
       tenantId: tenantId.value,
     });
-  }else{
-     if (!username.value) {
+  } else {
+    if (!username.value) {
       uni.showToast({
         title: "请输入账户",
         icon: "none",
@@ -258,26 +229,42 @@ async function submitRes() {
     login({
       username: username.value,
       password: password.value,
-      tenantId: tenantId.value
+      tenantId: tenantId.value,
     });
   }
 }
 
- /** 获取登录数据 */ 
+/** 获取登录数据 */
 async function login(data) {
   const res = await myRequest({
-    url: '/system/appLogin',
+    url: "/system/appLogin",
     header: {
       "Content-Type": "application/json;charset=utf-8",
     },
     method: "post",
-    data:data,
-    showLoading: true
-  })
+    data: data,
+    showLoading: true,
+  });
   uni.setStorageSync("Authorization", res.data.data.access_token);
   uni.switchTab({
     url: "/pages/index/index",
   });
+
+  info(); //调用用户信息方法
+}
+
+/** 获取用户信息 */
+async function info() {
+  const res = await myRequest({
+    url: "/system/getInfo",
+    header: {
+      "Content-Type": "application/json;charset=utf-8",
+    },
+    method: "GET",
+    showLoading: true,
+  });
+
+  useStore.$state.userName = res.data.data.user.userName;
 }
 
 /**
@@ -305,32 +292,32 @@ onLoad(() => {
 <style lang="scss" scoped>
 .section {
   position: fixed;
-  height:100%;
-  width:100%;
+  height: 100%;
+  width: 100%;
   overflow: hidden;
-  .bg{
-    width:100%;
-    height:100%;
+  .bg {
+    width: 100%;
+    height: 100%;
     position: fixed;
-    top:0;
-    left:0;
-    right:0;
+    top: 0;
+    left: 0;
+    right: 0;
     z-index: 0;
     background: #000;
-    .bgImage{
-      width:100%;
-      height:100%;
+    .bgImage {
+      width: 100%;
+      height: 100%;
     }
   }
-  .top{
-    margin:90px auto 0px;
-    .logo{
-      width:110px;
-      margin:0 auto 44px;
-	    display: block;
+  .top {
+    margin: 90px auto 0px;
+    .logo {
+      width: 110px;
+      margin: 0 auto 44px;
+      display: block;
     }
-    .title{
-      width:100%;
+    .title {
+      width: 100%;
       position: absolute;
       z-index: 1;
       font-size: 20px;
@@ -339,7 +326,7 @@ onLoad(() => {
       font-weight: 700;
     }
   }
-  .middle{
+  .middle {
     position: absolute;
     z-index: 1;
     width: calc(100% - 64px);
@@ -347,33 +334,31 @@ onLoad(() => {
     .switchText {
       color: #fff;
       font-size: 18px;
-      margin-top:19px;
-      width:100%;
+      margin-top: 19px;
+      width: 100%;
       display: block;
-      
     }
-    .submit{
-        height:48px;
-        line-height:48px;
-        border-radius: 24px;
-        background: #2A98FF;
-        color:#fff;
-        margin-top:45px;
+    .submit {
+      height: 48px;
+      line-height: 48px;
+      border-radius: 24px;
+      background: #2a98ff;
+      color: #fff;
+      margin-top: 45px;
     }
   }
-  .bottom{
+  .bottom {
     position: absolute;
-    width:100%;
-    bottom:10px;
-    .title{
+    width: 100%;
+    bottom: 10px;
+    .title {
       text-align: center;
-      color:#fff;
+      color: #fff;
       font-size: 14px;
     }
   }
 }
-::placeholder{
-  color:#fff;
+::placeholder {
+  color: #fff;
 }
-</style>
-
+</style>

+ 2 - 2
src/pages/setting/funReport/funReport.vue

@@ -20,7 +20,7 @@
 					@touchmove="ListTouchMove" @touchend="ListTouchEnd" :data-target="'move-box-' + index"
 					>
 					<view class="cu-avatar round lg">
-						<image class="image-bg" src="@/static/images/funcList.png"/>
+						<image class="image-bg" src="@/static/images/setting/funcList.png"/>
 					</view>
 					<view class="content">
 						<view class="pro-title">
@@ -64,7 +64,7 @@
 		height: 64px;
 		background: #fff;">
 				<view class="plus">
-					<image src="@/static/images/plus.png" style="width:100rpx;height:100rpx" @tap="goAddPage()"></image>
+					<image src="@/static/images/setting/plus.png" style="width:100rpx;height:100rpx" @tap="goAddPage()"></image>
 				</view>
 			</view>
 			

+ 23 - 29
src/pages/setting/setting.vue

@@ -2,66 +2,60 @@
   <view class="setting-wrapper">
     <view class="top-banner justify-center align-center text-center">
       <view>
-        <image width="130" src="@/static/images/personal-head.png"></image>
-        <view class="userName">admin</view>
-        <view>上海永天科技股份有限公司</view>
+        <image width="130" src="@/static/images/setting/personal-head.png"></image>
+        <view class="userName">{{ useStores.$state.userName }}</view>
+        <!-- <view>上海永天科技股份有限公司</view> -->
       </view>
     </view>
-    <view class="cu-list menu-avatar padding-lr">
-      <view class="cu-item shadow" @tap="goMessagePush()">
+    <view class="cu-list menu-avatar padding-lr-sm padding-top-sm">
+      <view class="cu-item margin-bottom-sm" @tap="goMessagePush()">
         <view class="cu-avatar">
-          <image class="image-bg" src="@/static/images/push-icon.png" />
+          <image class="image-bg" src="@/static/images/setting/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
-            >
+            <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-item margin-bottom-sm" @tap="goBuilding()">
         <view class="cu-avatar">
-          <image class="image-bg" src="@/static/images/building-icon.png" />
+          <image class="image-bg" src="@/static/images/setting/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
-            >
+            <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-item margin-bottom-sm" @tap="goFunReport()">
         <view class="cu-avatar">
-          <image class="image-bg" src="@/static/images/funcReport.png" />
+          <image class="image-bg" src="@/static/images/setting/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
-            >
+            <text class="icon iconfont margin-right-xs margin-left-lg">&#xe629;</text>
           </view>
         </view>
       </view>
 
-      <view style="margin-top: 20px">
+      <view class="margin-bottom-sm">
         <u-button @click="loginOut()" text="退出登录"></u-button>
       </view>
 
       <!-- <view class="cu-item" @tap="goSiteManage" v-if="permissionLabel==1">
-				<view class="cu-avatar " style="background-image:url(@/static/images/setting-icon2.png)"></view>
+				<view class="cu-avatar " style="background-image:url(@/static/images/setting/setting-icon2.png)"></view>
 				<view class="content">
 					<view class="">站点管理</view>
 				</view>
@@ -72,7 +66,7 @@
 				</view>
 			</view>
 			<view class="cu-item" @tap="goAuthManage" v-if="permissionLabel==1">
-				<view class="cu-avatar " style="background-image:url(@/static/images/setting-icon4.png)"></view>
+				<view class="cu-avatar " style="background-image:url(@/static/images/setting/setting-icon4.png)"></view>
 				<view class="content">
 					<view class="">权限管理</view>
 				</view>
@@ -90,7 +84,9 @@
 import { onLoad, onShow, onHide, onLaunch } from "@dcloudio/uni-app";
 import { ref, onMounted, inject, shallowRef } from "vue";
 
+import useStore from "@/store/modules/user";
 import useXunJianStore from "@/store/modules/xunJian";
+const useStores = useStore(); //全局用户信息Store
 const settingsStore = useXunJianStore(); //全局变量值Store
 
 const permissionLabel = ref(0);
@@ -135,7 +131,7 @@ function goFunReport() {
  */
 function loginOut() {
   //销毁存储的token
-  uni.clearStorage()
+  uni.clearStorage();
   //关闭当前页面 返回指定页面
   uni.redirectTo({
     url: "/pages/login/login",
@@ -150,7 +146,7 @@ onLoad(() => {});
   .top-banner {
     width: 100%;
     height: 380rpx;
-    background: url(@/static/images/setting-bg.png) no-repeat;
+    background: url(@/static/images/setting/setting-bg.png) no-repeat;
     background-size: cover;
     color: #fff;
     display: flex;
@@ -167,8 +163,9 @@ onLoad(() => {});
   }
 
   .cu-list.menu-avatar .cu-item {
-    margin: 30rpx 0 0;
-    margin-left: 0;
+    border-radius: 5px;
+    padding: 30rpx 0;
+    box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
     .cu-avatar {
       background-color: rgba(0, 0, 0, 0);
       background-size: 100% 100%;
@@ -185,7 +182,4 @@ onLoad(() => {});
 body {
   background: #fff;
 }
-.shadow {
-  box-shadow: 1px 1px 4px rgb(26 26 26 / 10%);
-}
 </style>

BIN
src/static/aa.9.png


+ 0 - 0
src/static/analyse-bg.png → src/static/images/analyse/analyse-bg.png


+ 0 - 0
src/static/images/build-icon.png → src/static/images/analyse/build-icon.png


+ 0 - 0
src/static/images/yb-icon.png → src/static/images/analyse/yb-icon.png


BIN
src/static/images/auth-icon.jpg


BIN
src/static/images/device-icon.png


BIN
src/static/images/deviceManage/1.png


BIN
src/static/images/dz-icon.png


+ 0 - 0
src/static/images/process-icon.png → src/static/images/export/process-icon.png


+ 0 - 0
src/static/images/processed-icon.png → src/static/images/export/processed-icon.png


BIN
src/static/images/icon.png


+ 0 - 0
src/static/images/fire-base1.png → src/static/images/info/fire-base1.png


+ 0 - 0
src/static/images/fireBase.png → src/static/images/info/fireBase.png


+ 0 - 0
src/static/images/fireD-img.png → src/static/images/info/fireD-img.png


+ 0 - 0
src/static/images/info-bg.png → src/static/images/info/info-bg.png


+ 0 - 0
src/static/images/push-list.png → src/static/images/info/push-list.png


+ 0 - 0
src/static/images/pushList.png → src/static/images/info/pushList.png


BIN
src/static/images/jx.png


BIN
src/static/images/month-report-icon.png


BIN
src/static/images/nav-icon.png


BIN
src/static/images/rg-icon.png


+ 0 - 0
src/static/images/building-icon.png → src/static/images/setting/building-icon.png


+ 0 - 0
src/static/images/funcList.png → src/static/images/setting/funcList.png


+ 0 - 0
src/static/images/funcReport.png → src/static/images/setting/funcReport.png


+ 0 - 0
src/static/images/personal-head.png → src/static/images/setting/personal-head.png


+ 0 - 0
src/static/images/plus.png → src/static/images/setting/plus.png


+ 0 - 0
src/static/images/push-icon.png → src/static/images/setting/push-icon.png


+ 0 - 0
src/static/images/setting-bg.png → src/static/images/setting/setting-bg.png


+ 0 - 0
src/static/images/setting-icon1.png → src/static/images/setting/setting-icon1.png


+ 0 - 0
src/static/images/setting-icon2.png → src/static/images/setting/setting-icon2.png


+ 0 - 0
src/static/images/setting-icon3.png → src/static/images/setting/setting-icon3.png


+ 0 - 0
src/static/images/setting-icon4.png → src/static/images/setting/setting-icon4.png


BIN
src/static/images/site-icon-alarm.png


BIN
src/static/images/site-icon.png


BIN
src/static/images/video-img.png


+ 0 - 0
src/static/wt/account.png → src/static/images/wt/account.png


+ 0 - 0
src/static/arrow.png → src/static/images/wt/arrow.png


+ 0 - 0
src/static/arrow2.png → src/static/images/wt/arrow2.png


+ 0 - 0
src/static/wt/bg.png → src/static/images/wt/bg.png


+ 0 - 0
src/static/wt/logo.png → src/static/images/wt/logo.png


+ 0 - 0
src/static/wt/password.png → src/static/images/wt/password.png


+ 0 - 0
src/static/inspection/phone-icon.png → src/static/images/wt/phone-icon.png


+ 0 - 0
src/static/wt/phone.png → src/static/images/wt/phone.png


+ 0 - 0
src/static/inspection/NFC.png → src/static/images/xunjian/NFC.png


+ 0 - 0
src/static/inspection/plan-scan-drawer.png → src/static/images/xunjian/plan-scan-drawer.png


+ 0 - 0
src/static/inspection/plan-scan.png → src/static/images/xunjian/plan-scan.png


+ 0 - 0
src/static/inspection/scan.png → src/static/images/xunjian/scan.png


+ 0 - 0
src/static/inspection/xunJian-icon1.png → src/static/images/xunjian/xunJian-icon1.png


+ 0 - 0
src/static/inspection/xunJian-icon2.png → src/static/images/xunjian/xunJian-icon2.png


+ 0 - 0
src/static/inspection/xunJian-icon3.png → src/static/images/xunjian/xunJian-icon3.png


BIN
src/static/index/banner1.png


BIN
src/static/index/banner2.jpg


BIN
src/static/index/banner3.jpg


+ 0 - 0
src/static/chart3-1.png → src/static/index/chart3-1.png


+ 0 - 0
src/static/chart3-2.png → src/static/index/chart3-2.png


+ 0 - 0
src/static/chart3-3.png → src/static/index/chart3-3.png


+ 0 - 0
src/static/chart3-4.png → src/static/index/chart3-4.png


+ 0 - 0
src/static/chart3-5.png → src/static/index/chart3-5.png


BIN
src/static/index/ge1.png


BIN
src/static/index/ge2.png


BIN
src/static/index/ge3.png


BIN
src/static/index/ge4.png


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