浏览代码

安全管理体系:1.0.12

tiandewen 3 年之前
父节点
当前提交
1730995284
共有 100 个文件被更改,包括 4355 次插入669 次删除
  1. 5 2
      common/common.js
  2. 40 0
      common/vmeitime-http/api.js
  3. 12 6
      components/e-link/e-link.vue
  4. 178 0
      components/ningmei-login-box/ningmei-login-box.vue
  5. 0 0
      components/origanizationItem/icon/close.png
  6. 0 0
      components/origanizationItem/icon/open.png
  7. 二进制
      components/origanizationItem/icon/title_icon.png
  8. 241 0
      components/origanizationItem/origanizationItem.vue
  9. 250 0
      components/origanizationSection/origanizationSection - 懒加载接口测试.vue
  10. 33 6
      components/origanizationSection/origanizationSection.vue
  11. 0 148
      components/origanizationTree/origanizationTree - 修改2.vue
  12. 0 293
      components/origanizationTree/origanizationTree - 副本.vue
  13. 0 151
      components/origanizationTree/origanizationTree.vue
  14. 8 8
      components/t-i-navbar/t-i-navbar.vue
  15. 二进制
      components/t-p-icon/icon_16.png
  16. 二进制
      components/t-p-icon/icon_17.png
  17. 17 0
      components/t-p-jinjiaqu/t-p-jinjiaqu.vue
  18. 25 1
      components/t-p-n-section-1/t-p-n-section-1.vue
  19. 2 0
      components/t-p-n-section-2/t-p-n-section-2.vue
  20. 3 1
      components/t-p-ningdongyunying/t-p-ningdongyunying.vue
  21. 61 4
      components/t-p-shicaocun/t-p-shicaocun.vue
  22. 11 1
      manifest.json
  23. 96 12
      pages.json
  24. 5 0
      pages/index/h5/h5.vue
  25. 21 6
      pages/index/ningMeiXinXiPingTai/ningMeiXinXiPingTai.vue
  26. 103 0
      pages/index/record/detail_list/data.json
  27. 36 0
      pages/index/record/detail_list/detail/detail.vue
  28. 411 0
      pages/index/record/detail_list/detail_list.vue
  29. 二进制
      pages/index/record/detail_list/icon/wj-doc.png
  30. 二进制
      pages/index/record/detail_list/icon/wj-jpg.png
  31. 二进制
      pages/index/record/detail_list/icon/wj-pdf.png
  32. 二进制
      pages/index/record/detail_list/icon/wj-png.png
  33. 二进制
      pages/index/record/detail_list/icon/wj-ppt.png
  34. 二进制
      pages/index/record/detail_list/icon/wj-txt.png
  35. 二进制
      pages/index/record/detail_list/icon/wj-xls.png
  36. 6 0
      pages/index/record/h5/h5.vue
  37. 1 1
      pages/index/record/record.vue
  38. 1 1
      pages/my/forget-password/forget-password.vue
  39. 1 1
      pages/my/login/login.vue
  40. 1 1
      pages/my/version_record/version_record.vue
  41. 5 0
      pages/origanization/communication/origanization/my_department/my_department.vue
  42. 191 0
      pages/origanization/communication/origanization/origanization - 懒加载接口测试.vue
  43. 0 0
      pages/origanization/communication/origanization/origanization-一级.vue
  44. 19 16
      pages/origanization/communication/origanization/origanization.vue
  45. 二进制
      pages/origanization/communication/origanization/personal_information/icon/icon_1.png
  46. 二进制
      pages/origanization/communication/origanization/personal_information/icon/icon_2.png
  47. 二进制
      pages/origanization/communication/origanization/personal_information/icon/icon_3.png
  48. 二进制
      pages/origanization/communication/origanization/personal_information/icon/icon_4.png
  49. 二进制
      pages/origanization/communication/origanization/personal_information/icon/icon_5.png
  50. 二进制
      pages/origanization/communication/origanization/personal_information/icon/icon_6.png
  51. 二进制
      pages/origanization/communication/origanization/personal_information/icon/icon_7.png
  52. 491 0
      pages/origanization/communication/origanization/personal_information/personal_information - 人资培训信息.vue
  53. 11 1
      pages/origanization/communication/origanization/search/search.vue
  54. 二进制
      pages/production/jinjiaqu/zidonghua_list/img/glyq.jpg
  55. 二进制
      pages/production/jinjiaqu/zidonghua_list/img/jkrc.jpg
  56. 109 0
      pages/production/jinjiaqu/zidonghua_list/zidonghua_list.vue
  57. 1 1
      pages/production/personnel_orientation/personnel_orientation.vue
  58. 23 0
      pages/production/production_report/production_report.vue
  59. 1 1
      pages/production/safety_monitoring/safety_monitoring.vue
  60. 26 0
      pages/production/shicaocun/zidonghua_list/detail/detail.vue
  61. 二进制
      pages/production/shicaocun/zidonghua_list/img/icon.png
  62. 0 0
      pages/production/shicaocun/zidonghua_list/img/psxt.jpg
  63. 0 0
      pages/production/shicaocun/zidonghua_list/img/tfgl.jpg
  64. 0 0
      pages/production/shicaocun/zidonghua_list/img/tsj.jpg
  65. 0 0
      pages/production/shicaocun/zidonghua_list/img/yfzd.jpg
  66. 0 0
      pages/production/shicaocun/zidonghua_list/img/zys.jpg
  67. 379 0
      pages/production/shicaocun/zidonghua_list/zidonghua_list.vue
  68. 10 5
      pages/production/unified_automation_system/belt_conveyor/belt_conveyor.vue
  69. 73 0
      pages/production/unified_automation_system/boiler_room/boiler_room.json
  70. 334 0
      pages/production/unified_automation_system/boiler_room/boiler_room.vue
  71. 二进制
      pages/production/unified_automation_system/boiler_room/icon/boiler_room.jpg
  72. 二进制
      pages/production/unified_automation_system/boiler_room/icon/boiler_room.png
  73. 二进制
      pages/production/unified_automation_system/boiler_room/icon/border.png
  74. 二进制
      pages/production/unified_automation_system/boiler_room/icon/canshu.png
  75. 二进制
      pages/production/unified_automation_system/boiler_room/icon/nitrogen_production_kai.gif
  76. 二进制
      pages/production/unified_automation_system/boiler_room/icon/tap.png
  77. 8 1
      pages/production/unified_automation_system/compressed_air/compressed_air.vue
  78. 6 1
      pages/production/unified_automation_system/hoist/hoist.vue
  79. 123 0
      pages/production/unified_automation_system/hoist_13/hoist_13.json
  80. 499 0
      pages/production/unified_automation_system/hoist_13/hoist_13.vue
  81. 二进制
      pages/production/unified_automation_system/hoist_13/icon/border.png
  82. 二进制
      pages/production/unified_automation_system/hoist_13/icon/canshu.png
  83. 二进制
      pages/production/unified_automation_system/hoist_13/icon/close.png
  84. 0 0
      pages/production/unified_automation_system/hoist_13/icon/common.png
  85. 二进制
      pages/production/unified_automation_system/hoist_13/icon/hoist_13.jpg
  86. 二进制
      pages/production/unified_automation_system/hoist_13/icon/hoist_13.png
  87. 二进制
      pages/production/unified_automation_system/hoist_13/icon/warn.png
  88. 二进制
      pages/production/unified_automation_system/man_car/icon/border.png
  89. 二进制
      pages/production/unified_automation_system/man_car/icon/canshu.png
  90. 二进制
      pages/production/unified_automation_system/man_car/icon/close.png
  91. 二进制
      pages/production/unified_automation_system/man_car/icon/common.png
  92. 二进制
      pages/production/unified_automation_system/man_car/icon/man_car.jpg
  93. 二进制
      pages/production/unified_automation_system/man_car/icon/man_car.png
  94. 二进制
      pages/production/unified_automation_system/man_car/icon/warn.png
  95. 62 0
      pages/production/unified_automation_system/man_car/man_car.json
  96. 416 0
      pages/production/unified_automation_system/man_car/man_car.vue
  97. 二进制
      pages/production/unified_automation_system/nitrogen_production_system/icon/border.png
  98. 二进制
      pages/production/unified_automation_system/nitrogen_production_system/icon/canshu.png
  99. 二进制
      pages/production/unified_automation_system/nitrogen_production_system/icon/nitrogen_production.png
  100. 0 0
      pages/production/unified_automation_system/nitrogen_production_system/icon/nitrogen_production_kai.gif

+ 5 - 2
common/common.js

@@ -1,4 +1,5 @@
 export const goToLink = (item, mine_code) => {
+	console.log(item)
 
 	let link = item.link
 	// OA系统
@@ -52,7 +53,6 @@ export const goToLink = (item, mine_code) => {
 
 	// h5
 	if (link.indexOf("pageId") == -1 && link.indexOf("app:") == -1) {
-		console.log("H5")
 		// #ifdef APP
 		if (plus.os.name == 'Android') {
 
@@ -87,6 +87,7 @@ export const goToLink = (item, mine_code) => {
 					url: "../../index/h5/h5?url=" + link
 				})
 			} else {
+				console.log("app:h5")
 				uni.navigateTo({
 					url: "../../index/h5/h5?url=" + link
 				})
@@ -106,6 +107,7 @@ export const goToLink = (item, mine_code) => {
 				url: "../../index/h5/h5?url=" + link
 			})
 		} else {
+			console.log("h5:h5")
 			uni.navigateTo({
 				url: "../../index/h5/h5?url=" + link
 			})
@@ -233,8 +235,9 @@ export const goToLink = (item, mine_code) => {
 		}
 		
 		if (link.indexOf("app_url") != -1) {
+			
 			uni.navigateTo({
-				url:link.split('app_url=')[1]
+				url:link.split('app_url=')[1] + "&title=" + item.title
 			})
 		}
 		if (link.indexOf("switch_url") != -1) {

+ 40 - 0
common/vmeitime-http/api.js

@@ -920,4 +920,44 @@ export const home_aqyk_newLinks = (data) => {
 		url: '/home/aqyk_newLinks',
 		data,
 	})
+}
+
+// 二维码内容列表页 获取OA系统安全预控列表接口
+export const oa_article_list = (data) => {
+	return http.request({
+		url: '/oa_article/list',
+		data,
+	})
+}
+// 获取内容详情
+export const oa_article_detail = (data) => {
+	return http.request({
+		url: '/oa_article/detail',
+		data,
+	})
+}
+// 栏目列表接口
+export const oa_article_lm_list = (data) => {
+	return http.request({
+		url: '/oa_article/lm_list',
+		data,
+	})
+}
+
+// 懒加载部门数据 组织架构树形结构查询
+export const section_get_tree_structure = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/section/get_tree_structure',
+		data,
+	})
+}
+
+// 人资培训 人员详情
+export const examination_get_detail = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/examination/get_detail',
+		data,
+	})
 }

+ 12 - 6
components/e-link/e-link.vue

@@ -89,10 +89,10 @@
 		},
 		methods: {
 			go_page(item){
-				console.log(item)
+				// console.log(item)
 				
 				let link = item.linkUrl
-				console.log(link)
+				// console.log(link)
 				
 				// OA系统
 				if(link.indexOf("oa_system.nxjiewei.com") != -1 ){
@@ -145,13 +145,19 @@
 				}
 				// 原生
 				if(link.indexOf("pageId") == -1 && link.indexOf("app:") != -1){
-					console.log("原生")
+					// console.log("原生")
 					if (link.indexOf("/production/production") != -1) {
-						console.log("生产数据")
 						uni.switchTab({
 							url: "../../tabbar/production/production"
 						})
 					}
+					
+					if (link.indexOf("app_url") != -1) {
+						uni.navigateTo({
+							url:link.split('app_url=')[1] + "&title=" + item.linkName + "&mine_code=" + this.mine_code
+						})
+						
+					}
 				}
 				
 			}
@@ -186,7 +192,7 @@
 					.icon {
 						width: 60px;
 						line-height: 80rpx;
-						margin-right: 10px;
+						margin-right: 10rpx;
 
 						.img {
 							width: 60px;
@@ -202,7 +208,7 @@
 					}
 
 					.name {
-						width: 400rpx;
+						width: 500rpx;
 						white-space: nowrap;
 						overflow: hidden;
 						text-overflow: ellipsis;

+ 178 - 0
components/ningmei-login-box/ningmei-login-box.vue

@@ -0,0 +1,178 @@
+<template>
+	<view>
+		<!-- 宁煤信息平台登录框 -->
+		<uni-popup ref="popup" type="center" @maskClick="maskClick">
+			<view class="login_box">
+				<view class="input_box">
+					<view class="label">工号:</view>
+					<view class="box">
+						{{staff_num}}
+					</view>
+				</view>
+				<view class="input_box">
+					<view class="label">登录密码(宁煤信息平台):</view>
+					<view class="box">
+						<input type="password" v-model="password" />
+					</view>
+				</view>
+				<view class="btn" @click="login()">确认</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	import time from "@/common/time.js"
+	export default {
+		name:"ningmei_login_box",
+		data() {
+			return {
+				staff_num: "",
+				password: "",
+				
+				url: "",
+				
+				app_id: "",
+				gps: "",
+				deviceID: "",
+				phoneType: ""
+			};
+		},
+		mounted() {
+			this.staff_num = uni.getStorageSync('user').staff_num
+		},
+		methods:{
+			maskClick() {
+				this.password = ""
+			},
+			login() {
+				// #ifdef APP-PLUS
+				if (this.password == '') {
+					uni.showToast({
+						icon: "none",
+						title: "密码不能为空!"
+					})
+					return
+				}
+			
+				this.$refs.popup.close()
+				// 获取gps
+				uni.getLocation({
+					type: 'wgs84',
+					success: (res) => {
+						console.log('当前位置的经度:' + res.longitude);
+						console.log('当前位置的纬度:' + res.latitude);
+			
+						this.gps = res.longitude + ',' + res.latitude
+						// 获取设备信息
+						plus.device.getInfo({
+							success: (e) => {
+								console.log(JSON.stringify(e.uuid));
+								console.log(plus.device.model)
+			
+								this.deviceID = JSON.stringify(e.uuid)
+								this.phoneType = plus.device.model
+			
+			
+								uni.request({
+									method: "POST",
+									url: "http://mtyyxs.shnxmyjt.com:33300/api/OAuth/Login",
+									header: {
+										'Content-Type': 'application/json;charset=UTF-8',
+										'caller': 'UnifiedPortal'
+									},
+									data: {
+										phoneType: this.phoneType,
+										password: this.password,
+										gps: this.gps,
+										userID: this.staff_num,
+										resolvingPower: "851*393",
+										deviceID: this.deviceID,
+										ip: "112312313"
+									},
+									success: (res) => {
+										console.log(this.password)
+										console.log(res)
+			
+										if (res.data.code = '11002') {
+											uni.showToast({
+												icon: "none",
+												title: res.data.msg
+											})
+			
+											if (res.data.data.length > 20) {
+												uni.setStorageSync('ningmei_token', res
+													.data.data)
+												uni.setStorageSync(
+													'ningmei_token_time',
+													new Date().format("yyyy-MM-dd")
+												)
+												uni.navigateTo({
+													url: "../../index/ningMeiXinXiPingTai/ningMeiXinXiPingTai",
+													success: (res) => {
+														// 通过eventChannel向被打开页面传送数据
+														res.eventChannel
+															.emit(
+																'acceptDataFromOpenerPage', {
+																	data: this
+																		.url
+																})
+													}
+												})
+											}
+										}
+									}
+								})
+			
+							}
+						});
+			
+			
+					}
+				})
+				// #endif
+			
+			}
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	.login_box {
+		width: 500rpx;
+		padding: 30rpx 50rpx;
+		border-radius: 20rpx;
+		margin: 0 auto;
+		background-color: #FFFFFF;
+	
+		.input_box {
+			margin-bottom: 30rpx;
+	
+			.label {
+				color: #6C6F74;
+				margin-bottom: 20rpx;
+			}
+	
+			.box {
+				background: #FFFFFF;
+				border-radius: 8rpx;
+				border: 2rpx solid #E9EBF2;
+	
+				box-sizing: border-box;
+				padding: 20rpx 25rpx;
+	
+			}
+		}
+	
+		.btn {
+			width: 500rpx;
+			margin: 0 auto;
+			border-radius: 8rpx;
+			background-color: #009FE8;
+			line-height: 90rpx;
+			color: #FFFFFF;
+			text-align: center;
+		}
+	}
+</style>

components/origanizationTree/icon/close.png → components/origanizationItem/icon/close.png


components/origanizationTree/icon/open.png → components/origanizationItem/icon/open.png


二进制
components/origanizationItem/icon/title_icon.png


+ 241 - 0
components/origanizationItem/origanizationItem.vue

@@ -0,0 +1,241 @@
+<template>
+	<view>
+		<view class="section" v-for="(item,index) in data" :key="index">
+			<view class="box">
+				<view class="item">
+					<view class="left">
+						<view class="icon" v-if="active == index" @click.stop="change_active(index,item)">
+							<image src="./icon/close.png" mode=""></image>
+						</view>
+						<view class="icon" v-if="active != index" @click.stop="change_active(index,item)">
+							<image src="./icon/open.png" mode=""></image>
+						</view>
+						<view class="text" v-if="item.children.length == 0">{{item.title}} ({{item.user_num}})</view>
+						<view class="text" v-if="item.children != 0">{{item.title}}</view>
+					</view>
+					<view class="right" @click="go_record(item.page_id)">
+						<uni-icons type="eye"></uni-icons>
+					</view>
+				</view>
+				<view class="children" v-show="active == index">
+					<view class="list" v-show="item.children == 0">
+						<view class="item" v-for="(item_2,index_2) in user_list" :key="index_2"
+							@click="go_user_info(item_2.staff_num)">
+							<view class="left">
+								<view class="icon">{{item_2.name.charAt(0)}}</view>
+								<!-- #ifdef APP-PLUS -->
+								<view class="text">{{item_2.name}} {{item_2.position_name}}</view>
+								<!-- #endif -->
+								<!-- #ifdef H5 -->
+								<view class="text">{{item_2.name}} {{item_2.position_name}} {{item_2.mobile}}</view>
+								<!-- #endif -->
+							</view>
+				
+							<!-- #ifdef APP-PLUS -->
+							<view class="right" @click.stop="phone(item_2.mobile)">
+								<uni-icons type="phone"></uni-icons>
+							</view>
+							<!-- #endif -->
+						</view>
+					</view>
+				</view>
+			</view>
+			
+		</view>
+	</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "origanizationItem",
+		props: [
+			"mine_code"
+		],
+		data() {
+			return {
+				// 当前展开部门
+				active: 99999999,
+				data: [],
+				user_list: []
+			};
+		},
+		mounted() {
+			this.get_section_getGroupList()
+		},
+		methods: {
+			// 获取部门列表
+			get_section_getGroupList() {
+				uni.showLoading({
+					mask: true
+				})
+				this.$api.section_get_org_structure({
+
+				}).then((res) => {
+					uni.hideLoading()
+
+					this.data = res.data.content.data[0].children
+					console.log(res.data.content.data[0].children)
+				})
+
+			},
+			// 获取当前部门人员
+			get_user_list(id) {
+				this.user_list = []
+				uni.showLoading({
+					mask: true
+				})
+				this.$api.user_get_org_users({
+					section_id: id
+				}).then((res) => {
+					uni.hideLoading()
+					this.user_list = res.data.content.data
+				})
+			},
+			change_active(index, item) {
+				if (this.active == index) {
+					this.active = 99999999
+				} else {
+					this.active = index
+
+					if (item.children.length == 0) {
+						this.get_user_list(item.id)
+					}
+				}
+			},
+			go_record(page_id) {
+				console.log(page_id)
+
+				if (page_id == null) {
+					uni.showToast({
+						icon: "none",
+						title: "该部门还未关联二维码"
+					})
+				} else {
+					console.log(page_id)
+					uni.navigateTo({
+						url: "../../../index/record/record?pageId=" + page_id + "&mine_code=" + uni.getStorageSync(
+							'mine_code'),
+					})
+				}
+			},
+
+			phone(mobile) {
+				console.log(mobile)
+				if (mobile != null) {
+					uni.makePhoneCall({
+						phoneNumber: mobile
+					});
+				} else {
+					uni.showToast({
+						icon: "none",
+						title: "未绑定手机号"
+					})
+				}
+			},
+
+			go_user_info(staff_num) {
+				uni.navigateTo({
+					url: "./personal_information/personal_information?staff_num=" + staff_num
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.section {
+		box-sizing: border-box;
+		// padding: 0 20rpx;
+	
+		.box {
+	
+			.item {
+				min-height: 100rpx;
+				padding: 10rpx 0;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+	
+				margin-left: 20rpx;
+				border-bottom: 1rpx solid #F3F8F7;
+	
+				.left {
+					display: flex;
+					align-items: center;
+	
+					.icon {
+						width: 90rpx;
+						text-align: center;
+	
+						image {
+							width: 24rpx;
+							height: 24rpx;
+						}
+					}
+	
+					.text {
+						width: 470rpx;
+						font-size: 32rpx;
+					}
+				}
+	
+				.right {
+					width: 90rpx;
+					text-align: center;
+				}
+			}
+	
+			.children {
+				margin-left: 20rpx;
+			}
+	
+			.list {
+				.item {
+					height: 110rpx;
+	
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+	
+					margin-left: 108rpx;
+					border-bottom: 1rpx solid #F3F8F7;
+	
+					.left {
+						width: 500rpx;
+	
+						.icon {
+							width: 35rpx;
+							text-align: center;
+							line-height: 35rpx;
+							border-radius: 50%;
+							border: 1rpx solid #00A1E9;
+	
+							font-size: 24rpx;
+							color: #00A1E9;
+						}
+	
+						.text {
+							width: 350rpx;
+							margin-left: 18rpx;
+							font-size: 30rpx;
+	
+						}
+					}
+	
+					.right {
+						line-height: 110rpx;
+						width: 90rpx;
+						text-align: center;
+					}
+	
+				}
+			}
+	
+		}
+	
+	}
+	
+	
+
+</style>

+ 250 - 0
components/origanizationSection/origanizationSection - 懒加载接口测试.vue

@@ -0,0 +1,250 @@
+<template>
+	<view>
+		<view class="section" v-for="(item,index) in data" :key="index">
+			<view class="box">
+				<view class="item">
+					<view class="left">
+						<view class="icon" v-if="active == index" @click.stop="change_active(index,item)">
+							<image src="./icon/close.png" mode=""></image>
+						</view>
+						<view class="icon" v-if="active != index" @click.stop="change_active(index,item)">
+							<image src="./icon/open.png" mode=""></image>
+						</view>
+						<view class="text" v-if="item.children.length == 0">{{item.title}} ({{item.user_num}})</view>
+						<view class="text" v-if="item.children != 0">{{item.title}}</view>
+					</view>
+					<view class="right" @click="go_record(item.page_id)">
+						<uni-icons type="eye"></uni-icons>
+					</view>
+				</view>
+				<view class="children" v-show="active == index">
+					<origanizationSection :data="item.children" :mine_code="mine_code"></origanizationSection>
+
+					<view class="list" v-show="item.children == 0">
+						<view class="item" v-for="(item_2,index_2) in user_list" :key="index_2"
+							@click="go_user_info(item_2.staff_num)">
+							<view class="left">
+								<view class="icon">{{item_2.name.charAt(0)}}</view>
+								<!-- #ifdef APP-PLUS -->
+								<view class="text">{{item_2.name}} {{item_2.position_name}}</view>
+								<!-- #endif -->
+								<!-- #ifdef H5 -->
+								<view class="text">{{item_2.name}} {{item_2.position_name}} {{item_2.mobile}}</view>
+								<!-- #endif -->
+							</view>
+
+							<!-- #ifdef APP-PLUS -->
+							<view class="right" @click.stop="phone(item_2.mobile)">
+								<uni-icons type="phone"></uni-icons>
+							</view>
+							<!-- #endif -->
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "origanizationSection",
+		props: [
+			"data",
+			"mine_code"
+		],
+		data() {
+			return {
+				// 当前展开部门
+				active: 99999999,
+
+				user_list: [],
+				children: [],
+				
+				t:null
+			};
+		},
+		methods: {
+			// 获取部门列表
+			get_section_getGroupList(section_id) {
+				uni.showLoading({
+					mask: true
+				})
+				this.$api.section_get_tree_structure({
+					section_id:section_id
+				}).then((res) => {
+					uni.hideLoading()
+					
+					console.log(res.data.content.data.children)
+					
+					if(this.mine_code == 'ningmeijituan'){
+						this.list = res.data.content.data.children
+					}else{
+						this.list = res.data.content.data
+					}
+				})
+			},
+			
+			// 获取当前部门人员
+			get_user_list(id) {
+				this.user_list = []
+				uni.showLoading({
+					mask: true
+				})
+				this.$api.user_get_org_users({
+					section_id: id
+				}).then((res) => {
+					uni.hideLoading()
+					this.user_list = res.data.content.data
+				})
+			},
+
+
+			change_active(index, item) {
+				if (this.active == index) {
+					this.active = 99999999
+				} else {
+				
+					this.active = index
+					
+					this.children = item.children
+					
+					
+					this.get_section_getGroupList(item.id)
+				}
+				
+			},
+			go_record(page_id) {
+				console.log(page_id)
+
+				if (page_id == null) {
+					uni.showToast({
+						icon: "none",
+						title: "该部门还未关联二维码"
+					})
+				} else {
+					console.log(page_id)
+					uni.navigateTo({
+						url: "../../../index/record/record?pageId=" + page_id + "&mine_code=" + uni.getStorageSync(
+							'mine_code'),
+					})
+				}
+			},
+
+			phone(mobile) {
+				console.log(mobile)
+				if (mobile != null) {
+					uni.makePhoneCall({
+						phoneNumber: mobile
+					});
+				} else {
+					uni.showToast({
+						icon: "none",
+						title: "未绑定手机号"
+					})
+				}
+			},
+
+			go_user_info(staff_num) {
+				uni.navigateTo({
+					url: "./personal_information/personal_information?staff_num=" + staff_num
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.section {
+		box-sizing: border-box;
+		// padding: 0 20rpx;
+
+		.box {
+
+			.item {
+				min-height: 100rpx;
+				padding: 10rpx 0;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				margin-left: 20rpx;
+				border-bottom: 1rpx solid #F3F8F7;
+
+				.left {
+					display: flex;
+					align-items: center;
+
+					.icon {
+						width: 90rpx;
+						text-align: center;
+
+						image {
+							width: 24rpx;
+							height: 24rpx;
+						}
+					}
+
+					.text {
+						width: 470rpx;
+						font-size: 32rpx;
+					}
+				}
+
+				.right {
+					width: 90rpx;
+					text-align: center;
+				}
+			}
+
+			.children {
+				margin-left: 20rpx;
+			}
+
+			.list {
+				.item {
+					height: 110rpx;
+
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+
+					margin-left: 108rpx;
+					border-bottom: 1rpx solid #F3F8F7;
+
+					.left {
+						width: 500rpx;
+
+						.icon {
+							width: 35rpx;
+							text-align: center;
+							line-height: 35rpx;
+							border-radius: 50%;
+							border: 1rpx solid #00A1E9;
+
+							font-size: 24rpx;
+							color: #00A1E9;
+						}
+
+						.text {
+							width: 350rpx;
+							margin-left: 18rpx;
+							font-size: 30rpx;
+
+						}
+					}
+
+					.right {
+						line-height: 110rpx;
+						width: 90rpx;
+						text-align: center;
+					}
+
+				}
+			}
+
+		}
+
+	}
+</style>

+ 33 - 6
components/origanizationSection/origanizationSection.vue

@@ -18,7 +18,8 @@
 					</view>
 				</view>
 				<view class="children" v-show="active == index">
-					<origanizationSection :data="item.children"></origanizationSection>
+					<!-- <origanizationSection :data="item.children" :mine_code="mine_code"></origanizationSection> -->
+					<origanizationSection :data="children" :mine_code="mine_code"></origanizationSection>
 
 					<view class="list" v-show="item.children == 0">
 						<view class="item" v-for="(item_2,index_2) in user_list" :key="index_2"
@@ -51,14 +52,18 @@
 	export default {
 		name: "origanizationSection",
 		props: [
-			"data"
+			"data",
+			"mine_code"
 		],
 		data() {
 			return {
 				// 当前展开部门
 				active: 99999999,
 
-				user_list: []
+				user_list: [],
+				children: [],
+
+				t: null
 			};
 		},
 		methods: {
@@ -66,26 +71,43 @@
 			get_user_list(id) {
 				this.user_list = []
 				uni.showLoading({
-					mask:true
+					mask: true
 				})
 				this.$api.user_get_org_users({
 					section_id: id
 				}).then((res) => {
-					uni.hideLoading()
 					this.user_list = res.data.content.data
+					uni.hideLoading()
 				})
 			},
 
+
 			change_active(index, item) {
 				if (this.active == index) {
 					this.active = 99999999
 				} else {
 					this.active = index
-
+					this.children = item.children
 					if (item.children.length == 0) {
 						this.get_user_list(item.id)
+						return
 					}
+					uni.showToast({
+						icon: "none",
+						title: "部门加载中...",
+						duration: 2000,
+						mask: true
+					})
 				}
+
+				// if(this.t !== null){
+				// 	clearTimeout(this.t)
+				// }
+
+				// this.t = setTimeout(()=>{
+
+				// },500)
+
 			},
 			go_record(page_id) {
 				console.log(page_id)
@@ -110,6 +132,11 @@
 					uni.makePhoneCall({
 						phoneNumber: mobile
 					});
+				} else {
+					uni.showToast({
+						icon: "none",
+						title: "未绑定手机号"
+					})
 				}
 			},
 

+ 0 - 148
components/origanizationTree/origanizationTree - 修改2.vue

@@ -1,148 +0,0 @@
-<template>
-	<view>
-		<view class="section" v-for="(item,index) in list" :key="index">
-			<view class="box">
-				<view class="item">
-					<view class="left">
-						<view class="icon" v-if="item.children && active == index" @click="change_active(index)">
-							<image src="./icon/close.png" mode=""></image>
-						</view>
-						<view class="icon" v-if="item.children && active != index" @click="change_active(index)">
-							<image src="./icon/open.png" mode=""></image>
-						</view>
-						<view class="text">{{item.label}} ({{item.children.length}})</view>
-					</view>
-					<view class="right">
-						<uni-icons type="eye"></uni-icons>
-					</view>
-				</view>
-				<view class="list" v-for="(item_2,index_2) in item.children" :key="index_2" v-if="!item_2.children && active == index">
-					<!-- 人 -->
-					<view class="item">
-						<view class="icon">{{item_2.label.charAt(0)}}</view>
-						<view class="text">{{item_2.label}} {{item_2.id}}</view>
-					</view>
-				</view>
-				<view class="list" v-for="(item_2,index_2) in item.children"  v-if="item_2.children && active == index">
-					<!-- 部门 -->
-					<view class="item">
-						<view class="icon" v-if="item.children && active == index" @click="change_active(index)">
-							<image src="./icon/close.png" mode=""></image>
-						</view>
-						<view class="icon" v-if="item.children && active != index" @click="change_active(index)">
-							<image src="./icon/open.png" mode=""></image>
-						</view>
-					</view>
-				</view>
-			</view>
-			
-			<view class="inner">
-				<origanizationTree :list="list.children"></origanizationTree>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import origanizationTree from "@/components/origanizationTree/origanizationTree.vue"
-
-	export default {
-		name: "origanizationTree",
-		components: {
-			origanizationTree
-		},
-		props: [
-			"list"
-		],
-		data() {
-			return {
-				active: 99999999
-			};
-		},
-		methods: {
-			change_active(index) {
-				if (this.active == index) {
-					this.active = 99999999
-				} else {
-					this.active = index
-				}
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.section{
-		box-sizing: border-box;
-		padding: 0 20rpx;
-		
-		.box{
-			
-			.item{
-				height: 95rpx;
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				
-				margin-left: 20rpx;
-				border-bottom: 1rpx solid #F3F8F7;
-				
-				.left{
-					display: flex;
-					align-items: center;
-					.icon{
-						line-height: 95rpx;
-						width: 90rpx;
-						text-align: center;
-						image{
-							width: 24rpx;
-							height: 24rpx;
-						}
-					}
-					.text{
-						font-size: 28rpx;
-					}
-				}
-				.right{
-					line-height: 95rpx;
-					width: 90rpx;
-					text-align: center;
-				}
-			}
-			
-			.list{
-				.item{
-					height: 95rpx;
-					
-					display: flex;
-					justify-content: left;
-					align-items: center;
-					
-					margin-left: 108rpx;
-					border-bottom: 1rpx solid #F3F8F7;
-					.icon{
-						width: 35rpx;
-						text-align: center;
-						line-height: 35rpx;
-						border-radius: 50%;
-						border: 1rpx solid #00A1E9;
-						
-						font-size: 24rpx;
-						color: #00A1E9;
-					}
-					.text{
-						margin-left: 18rpx;
-						font-size: 28rpx;
-						
-					}
-				}
-			}
-		
-		}
-		
-		.inner{
-			
-		}
-		
-	}
-</style>

+ 0 - 293
components/origanizationTree/origanizationTree - 副本.vue

@@ -1,293 +0,0 @@
-<template>
-	<view>
-		<view class="section" v-for="(item,index) in list" :key="index">
-			<view class="box">
-				<view class="box_item">
-					<view class="box_item_left">
-						<view class="box_item_icon" v-if="active == index" @click="change_active(index)">
-							<image src="./icon/close.png" mode=""></image>
-						</view>
-						<view class="box_item_icon" v-if="active != index" @click="change_active(index)">
-							<image src="./icon/open.png" mode=""></image>
-						</view>
-						<view class="box_item_text">{{item.label}} ({{item.children.length}})</view>
-					</view>
-					<view class="box_item_right">
-						<uni-icons type="eye"></uni-icons>
-					</view>
-				</view>
-			</view>
-			<view class="inner_list" v-if="active == index">
-				<!-- <view class="inner_item" v-for="(item_2,index_2) in item.children">
-					<view v-if="item_2.children">
-						<view class="box_item_icon" v-if="active_2 == index_2" @click="change_active_2(index_2)">
-							<image src="./icon/close.png" mode=""></image>
-						</view>
-						<view class="box_item_icon" v-if="active_2 != index_2" @click="change_active_2(index_2)">
-							<image src="./icon/open.png" mode=""></image>
-						</view>
-					</view>
-					
-					<view v-if="!item_2.children">
-						<view class="inner_icon">{{item_2.label.charAt(0)}}</view>
-						<view class="inner_text">{{item_2.label}} {{item_2.id}}</view>
-					</view>
-					
-				</view>
-				
-				
-				<view class="inner_box">
-					<origanizationTree :list="list.children"></origanizationTree>
-				</view> -->
-				<view>
-					<view class="inner_item" v-for="(item_2,index_2) in item.children" v-if="item_2.children">
-						<view class="box_item_icon" v-if="active_2 == index_2" @click="change_active_2(index_2)">
-							<image src="./icon/close.png" mode=""></image>
-						</view>
-						<view class="box_item_icon" v-if="active_2 != index_2" @click="change_active_2(index_2)">
-							<image src="./icon/open.png" mode=""></image>
-						</view>
-						<view class="inner_box">
-							<origanizationTree :list="list.children"></origanizationTree>
-						</view>
-					</view>
-					
-				</view>
-				<view>
-					<view class="inner_item" v-for="(item_2,index_2) in item.children"  v-if="!item_2.children">
-						<view class="inner_icon">{{item_2.label.charAt(0)}}</view>
-						<view class="inner_text">{{item_2.label}} {{item_2.id}}</view>
-						<view class="inner_box">
-							<origanizationTree :list="list.children"></origanizationTree>
-						</view>
-					</view>
-					
-				</view>
-				
-				
-				
-				
-				<!-- <view class="inner_item" v-for="(item_2,index_2) in item.children">
-					<view class="inner_icon">{{item_2.label.charAt(0)}}</view>
-					<view class="inner_text">{{item_2.label}} {{item_2.id}}</view>
-				</view>
-				<view class="inner_box">
-					<origanizationTree :list="list.children"></origanizationTree>
-				</view> -->
-
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import origanizationTree from "@/components/origanizationTree/origanizationTree.vue"
-
-	export default {
-		name: "origanizationTree",
-		components: {
-			origanizationTree
-		},
-		props: [
-			"list"
-		],
-		data() {
-			return {
-				active: 99999999,
-				active_2: 99999999
-			};
-		},
-		methods: {
-			change_active(index) {
-				if (this.active == index) {
-					this.active = 99999999
-				} else {
-					this.active = index
-				}
-			},
-			change_active_2(index_2) {
-				if (this.active_2 == index_2) {
-					this.active_2 = 99999999
-				} else {
-					this.active_2 = index_2
-				}
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.section {
-		box-sizing: border-box;
-		padding: 0 20rpx;
-
-		.box {
-
-			.box_item {
-				height: 95rpx;
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-
-				margin-left: 20rpx;
-				border-bottom: 1rpx solid #F3F8F7;
-
-				.box_item_left {
-					display: flex;
-					align-items: center;
-
-					.box_item_icon {
-						line-height: 95rpx;
-						width: 90rpx;
-						text-align: center;
-
-						image {
-							width: 24rpx;
-							height: 24rpx;
-						}
-					}
-
-					.box_item_text {
-						font-size: 28rpx;
-					}
-				}
-
-				.box_item_right {
-					line-height: 95rpx;
-					width: 90rpx;
-					text-align: center;
-				}
-			}
-		}
-
-		.inner_list {
-			.inner_item {
-				height: 95rpx;
-
-				display: flex;
-				align-items: center;
-
-				margin-left: 108rpx;
-				border-bottom: 1rpx solid #F3F8F7;
-
-				.box_item_icon {
-					line-height: 95rpx;
-					width: 90rpx;
-					text-align: center;
-
-					image {
-						width: 24rpx;
-						height: 24rpx;
-					}
-				}
-
-				.inner_icon {
-					width: 35rpx;
-					text-align: center;
-					line-height: 35rpx;
-					border-radius: 50%;
-					border: 1rpx solid #00A1E9;
-
-					font-size: 24rpx;
-					color: #00A1E9;
-				}
-
-				.inner_text {
-					margin-left: 18rpx;
-					font-size: 28rpx;
-
-				}
-			}
-
-			.inner_box {
-				padding-left: 20rpx;
-
-				.section {
-					box-sizing: border-box;
-					padding-right: 0rpx;
-
-					.box {
-
-						.box_item {
-							height: 95rpx;
-							display: flex;
-							align-items: center;
-							justify-content: space-between;
-
-							margin-left: 20rpx;
-							border-bottom: 1rpx solid #F3F8F7;
-
-							.box_item_left {
-								display: flex;
-								align-items: center;
-
-								.box_item_icon {
-									line-height: 95rpx;
-									width: 90rpx;
-									text-align: center;
-
-									image {
-										width: 24rpx;
-										height: 24rpx;
-									}
-								}
-
-								.box_item_text {
-									font-size: 28rpx;
-								}
-							}
-
-							.box_item_right {
-								line-height: 95rpx;
-								width: 90rpx;
-								text-align: center;
-							}
-						}
-					}
-
-					.inner_list {
-						.inner_item {
-							height: 95rpx;
-
-							display: flex;
-							align-items: center;
-
-							margin-left: 108rpx;
-							border-bottom: 1rpx solid #F3F8F7;
-
-							.box_item_icon {
-								line-height: 95rpx;
-								width: 90rpx;
-								text-align: center;
-
-								image {
-									width: 24rpx;
-									height: 24rpx;
-								}
-							}
-
-							.inner_icon {
-								width: 35rpx;
-								text-align: center;
-								line-height: 35rpx;
-								border-radius: 50%;
-								border: 1rpx solid #00A1E9;
-
-								font-size: 24rpx;
-								color: #00A1E9;
-							}
-
-							.inner_text {
-								margin-left: 18rpx;
-								font-size: 28rpx;
-
-							}
-						}
-
-						.inner_box {}
-					}
-				}
-			}
-		}
-	}
-</style>

+ 0 - 151
components/origanizationTree/origanizationTree.vue

@@ -1,151 +0,0 @@
-<template>
-	<view>
-		<view class="section" v-for="(item,index) in list" :key="index">
-			<view class="box">
-				<view class="item">
-					<view class="left">
-						<view class="icon" v-if="active == index" @click.stop="change_active(index,item.id)">
-							<image src="./icon/close.png" mode=""></image>
-						</view>
-						<view class="icon" v-if="active != index" @click.stop="change_active(index,item.id)">
-							<image src="./icon/open.png" mode=""></image>
-						</view>
-						<view class="text">{{item.title}} ({{item.user_num}})</view>
-					</view>
-					<view class="right">
-						<uni-icons type="eye"></uni-icons>
-					</view>
-				</view>
-				<view class="list" v-if="active == index">
-					<view class="item" v-for="(item_2,index_2) in user_list" :key="index_2">
-						<view class="icon">{{item_2.name.charAt(0)}}</view>
-						<view class="text">{{item_2.name}} {{item_2.position_name}}</view>
-					</view>
-				</view>
-			</view>
-			
-			<view class="inner">
-				<origanizationTree :list="list.child"></origanizationTree>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import origanizationTree from "@/components/origanizationTree/origanizationTree.vue"
-
-	export default {
-		name: "origanizationTree",
-		components: {
-			origanizationTree
-		},
-		props: [
-			// 部门列表
-			"list"
-		],
-		data() {
-			return {
-				active: 99999999,
-				
-				// 人员列表
-				user_list:[]
-			};
-		},
-		methods: {
-			change_active(index,id) {
-				this.user_list = []
-				if (this.active == index) {
-					this.active = 99999999
-				} else {
-					this.active = index
-					this.get_user_list(id)
-				}
-			},
-			// 获取当前部门人员
-			get_user_list(id){
-				this.$api.user_list({
-					id:id
-				}).then((res)=>{
-					console.log(res)
-					this.user_list = res.data.data
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.section{
-		box-sizing: border-box;
-		padding: 0 20rpx;
-		
-		.box{
-			
-			.item{
-				height: 95rpx;
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				
-				margin-left: 20rpx;
-				border-bottom: 1rpx solid #F3F8F7;
-				
-				.left{
-					display: flex;
-					align-items: center;
-					.icon{
-						line-height: 95rpx;
-						width: 90rpx;
-						text-align: center;
-						image{
-							width: 24rpx;
-							height: 24rpx;
-						}
-					}
-					.text{
-						font-size: 28rpx;
-					}
-				}
-				.right{
-					line-height: 95rpx;
-					width: 90rpx;
-					text-align: center;
-				}
-			}
-			
-			.list{
-				.item{
-					height: 95rpx;
-					
-					display: flex;
-					justify-content: left;
-					align-items: center;
-					
-					margin-left: 108rpx;
-					border-bottom: 1rpx solid #F3F8F7;
-					.icon{
-						width: 35rpx;
-						text-align: center;
-						line-height: 35rpx;
-						border-radius: 50%;
-						border: 1rpx solid #00A1E9;
-						
-						font-size: 24rpx;
-						color: #00A1E9;
-					}
-					.text{
-						margin-left: 18rpx;
-						font-size: 28rpx;
-						
-					}
-				}
-			}
-		
-		}
-		
-		.inner{
-			
-		}
-		
-	}
-</style>

+ 8 - 8
components/t-i-navbar/t-i-navbar.vue

@@ -143,15 +143,15 @@
 				// 只允许通过相机扫码
 				uni.scanCode({
 					onlyFromCamera: true,
-					success: function(res) {
-						// console.log('条码类型:' + res.scanType);
-						// console.log('条码内容:' + res.result);
+					success: (res)=> {
+						console.log('条码类型:' + res.scanType);
+						console.log('条码内容:' + res.result);
 
 						let pageId = ""
 
 						function GetQueryString(name) {
 							var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
-							var r = res.match(reg);
+							var r = res.result.match(reg);
 							if (r != null) return unescape(r[2]);
 							return null;
 						}
@@ -159,12 +159,12 @@
 						if (GetQueryString("pageId")) {
 							pageId = GetQueryString("pageId")
 						} else {
-							pageId = res.split('=')[1]
+							pageId = res.result.split('=')[1]
 						}
-
+						
+						
 						uni.navigateTo({
-							url: "../../index/record/record?pageId=" + pageId + "&mine_code=" + this
-								.mine_code,
+							url: "../../index/record/record?pageId=" + pageId + "&mine_code=" + this.mine_code,
 						})
 					}
 				})

二进制
components/t-p-icon/icon_16.png


二进制
components/t-p-icon/icon_17.png


+ 17 - 0
components/t-p-jinjiaqu/t-p-jinjiaqu.vue

@@ -93,6 +93,23 @@
 				<view class="name">提升机</view>
 			</view>
 		</view>
+		
+		<view class="item_box" style="background-color: #4B81EE;" @click="go_zdhxt('jkrc')">
+			<view class="img">
+				<image src="../t-p-icon/icon_16.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">架空人车</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #CCCCCC;" @click="go_zdhxt('glyq')">
+			<view class="img">
+				<image src="../t-p-icon/icon_17.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">锅炉烟气</view>
+			</view>
+		</view>
 	</view>
 </template>
 

+ 25 - 1
components/t-p-n-section-1/t-p-n-section-1.vue

@@ -106,7 +106,7 @@
 				<view class="tip">压风制氮系统 </view>
 			</view>
 		</view>
-		<view class="item_box" style="background-color: #A3A2E4;" @click="go_h5('http://ningdongyunying.nxjiewei.com:8011/web/monitor/productData/equipmentMonitor?title=%E8%AE%BE%E5%A4%87%E7%9B%91%E6%B5%8B')">
+		<view class="item_box" style="background-color: #A3A2E4;" @click="go_rongzhi()">
 			<view class="img">
 				<image src="../t-p-icon/icon_14.png" mode=""></image>
 			</view>
@@ -131,6 +131,22 @@
 				<view class="name">视频分析</view>
 			</view>
 		</view> -->
+		<view class="item_box" style="background-color: #4B81EE;" @click="go_zdhxt('jkrc')">
+			<view class="img">
+				<image src="../t-p-icon/icon_16.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">架空人车</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #CCCCCC;" @click="go_zdhxt('glyq')">
+			<view class="img">
+				<image src="../t-p-icon/icon_17.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">锅炉烟气</view>
+			</view>
+		</view>
 		
 	</view>
 </template>
@@ -207,6 +223,11 @@
 					url:"../../production/video_monitor_app/video_monitor_app?mine_code=ningmeijituan"
 				})
 			},
+			go_rongzhi(){
+				uni.navigateTo({
+					url: "../../ningdongyunying/h5/h5?url=" + "http://rongzhi.nxjiewei.com:8011/h5/#/auth"
+				})
+			},
 			
 			// 商汤
 			go_shangtang(){
@@ -220,9 +241,12 @@
 
 <style lang="scss">
 	.content {
+		margin-top: -175rpx;
+		
 		box-sizing: border-box;
 		padding: 20rpx 25rpx 0;
 		margin-bottom: 100rpx;
+		
 
 		overflow: hidden;
 

+ 2 - 0
components/t-p-n-section-2/t-p-n-section-2.vue

@@ -49,6 +49,7 @@
 
 <style lang="scss">
 	.swiper-item{
+		margin-top: -100rpx;
 		position: relative;
 		
 		overflow: hidden;
@@ -75,6 +76,7 @@
 			height: 60rpx;
 			
 			font-size: 0;
+			// background-color: red;
 		}
 		.area_1{
 			position: absolute;

+ 3 - 1
components/t-p-ningdongyunying/t-p-ningdongyunying.vue

@@ -65,6 +65,8 @@
 	// 上下滑动
 	.content {
 		position: relative;
+		
+		padding-top: 200rpx;
 	}
 
 	image {
@@ -73,7 +75,7 @@
 
 	.box {
 		position: absolute;
-		top: 0;
+		top: 0rpx;
 		left: 0;
 	}
 </style>

+ 61 - 4
components/t-p-shicaocun/t-p-shicaocun.vue

@@ -6,7 +6,7 @@
 			</view>
 			<view class="text">
 				<view class="name">生产报表</view>
-				<view class="tip">当日产量140517.8吨</view>
+				<view class="tip">当日产量{{days_output}}吨</view>
 			</view>
 		</view>
 		<view class="item_box" style="background-color: #A3A2E4;" @click="go_personnel_orientation()">
@@ -15,7 +15,7 @@
 			</view>
 			<view class="text">
 				<view class="name">人员定位</view>
-				<view class="tip">井下人数3892人</view>
+				<view class="tip">井下人数{{mineall_people}}人</view>
 			</view>
 		</view>
 		<view class="item_box" style="background-color: #8BC8DA;" @click="go_safety_monitoring()">
@@ -24,7 +24,6 @@
 			</view>
 			<view class="text">
 				<view class="name">安全监测</view>
-				<view class="tip">6268监测点</view>
 			</view>
 		</view>
 		<view class="item_box" style="background-color: #FBB47B;" @click="go_video_monitor()">
@@ -36,6 +35,39 @@
 				<view class="tip">工业视频</view>
 			</view>
 		</view>
+		<view class="item_box" style="background-color: #56CA66;" @click="go_zdhxt('tfgl')">
+			<view class="img">
+				<image src="../t-p-icon/icon_5.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">通风管理</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #2873FF;" @click="go_zdhxt('psxt')">
+			<view class="img">
+				<image src="../t-p-icon/icon_9.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">排水系统</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #8BC8DA;" @click="go_zdhxt('yfzd')">
+			<view class="img">
+				<image src="../t-p-icon/icon_10.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">压风制氮</view>
+			</view>
+		</view>
+		<view class="item_box" style="background-color: #2C3E50;" @click="go_zdhxt('zys')">
+			<view class="img">
+				<image src="../t-p-icon/icon_8.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">主运输</view>
+				<view class="tip">主运输皮带</view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -46,9 +78,28 @@
 			return {
 				mine:"640181B0011010018668",
 				org_num:"1023",
-				mine_code:"shicaocun"
+				mine_code:"shicaocun",
+				
+				mineall_people: "",
+				days_output: ""
 			};
 		},
+		created() {
+			// 井下人数
+			this.$p_api.personnel_people_now({
+				mine: this.mine
+			}).then((res) => {
+				this.mineall_people = res.data.data.people_total
+			})
+		
+			// 当日生产
+			this.$p_api.coalmine_days_output({
+				mine: this.mine,
+				org_num: this.org_num
+			}).then((res) => {
+				this.days_output = res.data.data[0].total
+			})
+		},
 		methods: {
 			// 生产报表
 			go_production_report() {
@@ -73,6 +124,12 @@
 				uni.navigateTo({
 					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
 				})
+			},
+			// 自动化系统列表
+			go_zdhxt(zdhxt) {
+				uni.navigateTo({
+					url: "../../production/shicaocun/zidonghua_list/zidonghua_list?zdhxt=" + zdhxt
+				})
 			}
 		}
 	}

+ 11 - 1
manifest.json

@@ -2,7 +2,7 @@
     "name" : "宁煤安全",
     "appid" : "__UNI__5DF9CB2",
     "description" : "",
-    "versionName" : "1.0.8",
+    "versionName" : "1.0.12",
     "versionCode" : "100",
     "transformPx" : false,
     /* 5+App特有相关 */
@@ -34,6 +34,8 @@
                     "<uses-feature android:name=\"android.hardware.camera\"/>",
                     "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                     "<uses-permission android:name=\"android.permission.ACCESS_CHECKIN_PROPERTIES\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
                     "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
@@ -42,6 +44,7 @@
                     "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                     "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
                     "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                     "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
                     "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
@@ -49,6 +52,7 @@
                     "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                     "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                     "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
                     "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                 ],
                 "abiFilters" : [ "armeabi-v7a", "x86" ]
@@ -70,6 +74,12 @@
                         "appkey_ios" : "",
                         "appkey_android" : "a75f68653f637eeb8fb094630dfe4c02"
                     }
+                },
+                "share" : {
+                    "weixin" : {
+                        "appid" : "",
+                        "UniversalLinks" : ""
+                    }
                 }
             },
             "icons" : {

+ 96 - 12
pages.json

@@ -13,9 +13,9 @@
 
 			"path": "pages/tabbar/origanization/origanization",
 			"style": {
-				// "navigationBarTitleText": "通讯录"
+				"navigationBarTitleText": "通讯录"
 				// 宁东运营 显示消息
-				"navigationBarTitleText": "发现"
+				// "navigationBarTitleText": "发现"
 			}
 
 		}, {
@@ -73,7 +73,6 @@
 			"style": {
 				"navigationStyle": "custom"
 			}
-
 		}, {
 			"path": "pages/production/safety_monitoring/safety_monitoring_name_detail/safety_monitoring_name_detail",
 			"style": {
@@ -857,6 +856,92 @@
 		    
 		}
         
+        ,{
+            "path" : "pages/index/record/detail_list/detail_list",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/shicaocun/zidonghua_list/zidonghua_list",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/shicaocun/zidonghua_list/detail/detail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/record/detail_list/detail/detail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/unified_automation_system/nitrogen_production_system/nitrogen_production_system",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#0B163B"
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/unified_automation_system/north_hoist/north_hoist",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#0B163B"
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/unified_automation_system/hoist_13/hoist_13",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#0B163B"
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/unified_automation_system/boiler_room/boiler_room",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#0B163B"
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/unified_automation_system/man_car/man_car",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#0B163B"
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "white",
@@ -873,20 +958,19 @@
 				"selectedIconPath": "static/tabbar/home_active.png"
 			},
 			// {
-			// 	// "text": "通讯录",
-			// 	"text": "发现",
+			// 	"text": "通讯录",
+			// 	// "text": "发现",
 			// 	"pagePath": "pages/tabbar/origanization/origanization",
 			// 	"iconPath": "static/tabbar/origanization.png",
 			// 	"selectedIconPath": "static/tabbar/origanization_active.png"
-
-			// },
-			// {
-			// 	"text": "工作台",
-			// 	"pagePath": "pages/tabbar/workbench/workbench",
-			// 	"iconPath": "static/tabbar/work.png",
-			// 	"selectedIconPath": "static/tabbar/work_active.png"
 			// },
 			{
+				"text": "工作台",
+				"pagePath": "pages/tabbar/workbench/workbench",
+				"iconPath": "static/tabbar/work.png",
+				"selectedIconPath": "static/tabbar/work_active.png"
+			},
+			{
 				"text": "生产数据",
 				"pagePath": "pages/tabbar/production/production",
 				"iconPath": "static/tabbar/production.png",

+ 5 - 0
pages/index/h5/h5.vue

@@ -21,6 +21,11 @@
 				console.log(this.href)
 			}
 			
+			//#ifdef H5
+			if(this.href.indexOf('https://mp.weixin.qq.com') != -1){
+				window.location.href = this.href;
+			}
+			//#endif
 			
 		}
 	}

+ 21 - 6
pages/index/ningMeiXinXiPingTai/ningMeiXinXiPingTai.vue

@@ -19,18 +19,33 @@
 			// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
 			eventChannel.on('acceptDataFromOpenerPage', (data) => {
 				console.log(data.data)
-				
+
 				let link = data.data.link
 				let token = uni.getStorageSync('ningmei_token')
 				let appid = data.data.app_id
-				
-				this.href = link + '?timestamp='+ Date.now() +'&token='+ token + '&appid=' + appid
-				
-			})
 
+				this.href = link + '?timestamp=' + Date.now() + '&token=' + token + '&appid=' + appid
 
+			})
+		},
+		onReady() {
+			setTimeout(()=>{
+				this.clearMuiBack()
+			},3000)
+		},
 
-		}
+		methods: {
+			// 关闭mui返回
+			clearMuiBack() {
+				// #ifdef APP-PLUS
+				let currentWebview = this.$scope.$getAppWebview().children()[0]
+				//监听注入的js
+				currentWebview.addEventListener("loaded", function() {
+					currentWebview.evalJS("mui.init({keyEventBind: {backbutton: false }});");
+				});
+				// #endif
+			},
+		},
 	}
 </script>
 

+ 103 - 0
pages/index/record/detail_list/data.json

@@ -0,0 +1,103 @@
+[
+	{
+		"type":"file",
+		"data":{
+			"title":"集团公司学习贯彻党的十九届五中全会精神暨党史教育培训.doc",
+			"size":"1010.88 KB",
+			"filePath": "http://colliery-system.oss-cn-qingdao.aliyuncs.com/5f4857159cb241248262a57820769cc3.doc"
+		}
+	},
+	{
+		"type":"file",
+		"data":{
+			"title":"集团公司学习贯彻.doc",
+			"size":"1010.88 KB",
+			"filePath": "http://colliery-system.oss-cn-qingdao.aliyuncs.com/5f4857159cb241248262a57820769cc3.doc"
+		}
+	},
+	{
+		"type":"article",
+		"data":{
+			"id":33,
+			"title":"习近平:学党史悟思想办实事开新局 以优异成绩迎接建设社会主义国家",
+			"time":"2021-05-05",
+			"main_img":"https://cdn.colorhub.me/RmLomvUbX3ORFw0ec4m6rCPKdy5CqB7Ptzpj5tYc2dM/rs:auto:280:0:0/g:ce/bG9jYWw6Ly8vZjYv/M2YvMDQ1ZTE1OTM4/MWE2YmE1OTc3NWJl/Nzc1NDkwN2UyNGY2/NmM1ZjYzZi5qcGc.jpg"
+		}
+	},
+	{
+		"type":"article",
+		"data":{
+			"id":33,
+			"title":"习近平:学党史悟思想办实事开新局 以优异成绩迎",
+			"time":"2021-05-05",
+			"main_img":"https://cdn.colorhub.me/0JcNa7IL8ym_3xaeDLY5DXc27xr_rC9ByusCJi3XQDU/rs:auto:280:0:0/g:ce/bG9jYWw6Ly8vY2Ev/ZDEvZTRlNzU0Yzdl/MTljMDA3YjQ3NmRj/ZDk4ZjIwOTExNWE2/NDViY2FkMS5qcGVn.jpg"
+		}
+	},
+	{
+		"type":"file",
+		"data":{
+			"title":"集团公司学习贯彻党的十九届五中全会精神暨党史教育培训.pdf",
+			"size":"1010.88 KB",
+			"filePath": "http://colliery-system.oss-cn-qingdao.aliyuncs.com/5f4857159cb241248262a57820769cc3.doc"
+		}
+	},
+	{
+		"type":"file",
+		"data":{
+			"title":"集团公司学习贯彻党的十九届五中全会精神暨党史教育培训.ppt",
+			"size":"1010.88 KB",
+			"filePath": "http://colliery-system.oss-cn-qingdao.aliyuncs.com/5f4857159cb241248262a57820769cc3.doc"
+		}
+	},
+	{
+		"type":"file",
+		"data":{
+			"title":"集团公司学习贯彻党的十九届五中全会精神暨党史教育培训.xls",
+			"size":"1010.88 KB",
+			"filePath": "http://colliery-system.oss-cn-qingdao.aliyuncs.com/5f4857159cb241248262a57820769cc3.doc"
+		}
+	},{
+		"type":"article",
+		"data":{
+			"id":33,
+			"title":"习近平:学党史悟思想办实事开新局学党史悟思想办实事开新局学党史悟思想办实事开新局 以优异成绩迎接建设社会主义国家",
+			"time":"2021-05-05",
+			"main_img":"https://cdn.colorhub.me/IPP77Q-fKe2C8mBcnsShfUmZRrRkHIwX3ghbZ3HYtV0/rs:auto:280:0:0/g:ce/bG9jYWw6Ly8vM2Yv/MWQvODQ3MDgwZGQz/M2JjYTljZDNlNDVi/NzFiM2NhZmRhZjli/NWZkM2YxZC5qcGVn.jpg"
+		}
+	},
+	{
+		"type":"article",
+		"data":{
+			"id":33,
+			"title":"习近平:学党史悟思想办实:学党",
+			"time":"2021-05-05",
+			"main_img":"https://cdn.colorhub.me/RZ-zlGRkT4zdKisYHVUVZSxBwWovB-gDKkx1Wh_jJg0/rs:auto:280:0:0/g:ce/bG9jYWw6Ly8vNWIv/YzEvNzExNmJjMzZh/ZTAzZmM2OGE4MzAx/NzMxNmE2YzAxZWEy/OWY3NWJjMS5qcGc.jpg"
+		}
+	},
+	{
+		"type":"article",
+		"data":{
+			"id":33,
+			"title":"习近平:学党史悟思想办实:学党",
+			"time":"2021-05-05",
+			"main_img":""
+		}
+	},
+	{
+		"type":"link",
+		"data":{
+			"title":"链接标题",
+			"url":"链接地址",
+			"time":"2021-05-05"
+		}
+	},
+	{
+		"type":"article",
+		"data":{
+			"id":33,
+			"title":"习近平:学党史悟思想办实事开新局 以优异成绩迎接建设社会主义国家",
+			"time":"2021-05-05",
+			"main_img":""
+		}
+	}
+]

+ 36 - 0
pages/index/record/detail_list/detail/detail.vue

@@ -0,0 +1,36 @@
+<template>
+	<view class="content">
+		<mp-html :content="detail" />
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				detail:""
+			};
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title:option.title
+			})
+			this.get_detail(option.id)
+		},
+		methods:{
+			get_detail(id){
+				this.$api.oa_article_detail({
+					id:id
+				}).then((res)=>{
+					this.detail = res.data.data.content
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content{
+		padding: 25rpx;
+	}
+</style>

+ 411 - 0
pages/index/record/detail_list/detail_list.vue

@@ -0,0 +1,411 @@
+<template>
+	<view>
+		<!-- 选项卡 -->
+		<scroll-view scroll-x="true" v-if="tabList.length > 1">
+			<view class="tab">
+				<view v-for="(item,index) in tabList" :key="index" :style="index==active?'color:#009FE8;':''"
+					@click="click_active(item,index)">
+					<view class="item">{{item.lm_name}}</view>
+				</view>
+			</view>
+		</scroll-view>
+		
+		<view class="list" v-for="(item,index) in data" :key="index" @click="click(item)">
+			<!-- 文件 -->
+			<view v-if="item.type == 'files'">
+				<view class="file">
+					<view class="left">
+						<view class="title">{{item.data.title}}</view>
+						<view class="size">{{item.data.size}}</view>
+					</view>
+					<view class="right">
+						<view class="icon" v-if="item.data.filePath.indexOf('.doc') != -1">
+							<image src="./icon/wj-doc.png" mode=""></image>
+						</view>
+						<view class="icon" v-if="item.data.filePath.indexOf('.pdf') != -1">
+							<image src="./icon/wj-pdf.png" mode=""></image>
+						</view>
+						<view class="icon" v-if="item.data.filePath.indexOf('.ppt') != -1">
+							<image src="./icon/wj-ppt.png" mode=""></image>
+						</view>
+						<view class="icon" v-if="item.data.filePath.indexOf('.xls') != -1">
+							<image src="./icon/wj-xls.png" mode=""></image>
+						</view>
+					</view>
+				</view>
+			</view>
+
+			<!-- 文章 -->
+			<view v-if="item.type == 'article'">
+				<view class="article" v-if="item.data.title.length > 15">
+					<view class="left">
+						<view class="title">{{item.data.title}}</view>
+						<view class="time">{{item.data.time}}</view>
+					</view>
+					<view class="right" v-if="item.data.main_img">
+						<view class="icon">
+							<image :src="item.data.main_img" mode=""></image>
+						</view>
+					</view>
+				</view>
+				<!-- 文章-大图 -->
+				<view class="article_bigImg" v-if="item.data.title.length < 16">
+					<view class="title">{{item.data.title}}</view>
+					<view class="icon" v-if="item.data.main_img">
+						<image :src="item.data.main_img" mode=""></image>
+					</view>
+					<view class="time">{{item.data.time}}</view>
+				</view>
+			</view>
+
+			<!-- 链接 -->
+			<view v-if="item.type == 'link'">
+				<!-- <view class="link">
+					<view class="left">
+						<view class="title">{{item.data.title}}</view>
+						<view class="time">{{item.data.time}}</view>
+					</view>
+				</view> -->
+				
+				<view class="article" v-if="item.data.title.length > 15">
+					<view class="left">
+						<view class="title">{{item.data.title}}</view>
+						<view class="time">{{item.data.time}}</view>
+					</view>
+					<view class="right" v-if="item.data.main_img">
+						<view class="icon">
+							<image :src="item.data.main_img" mode=""></image>
+						</view>
+					</view>
+				</view>
+				<!-- 文章-大图 -->
+				<view class="article_bigImg" v-if="item.data.title.length < 16">
+					<view class="title">{{item.data.title}}</view>
+					<view class="icon" v-if="item.data.main_img">
+						<image :src="item.data.main_img" mode=""></image>
+					</view>
+					<view class="time">{{item.data.time}}</view>
+				</view>
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	import {goToLink} from '@/common/common.js'
+	import data from './data.json'
+	export default {
+		data() {
+			return {
+				// 当前选中项
+				active: 0,
+				title:"",
+				mine_code:"",
+				data: [],
+				tabList:[]
+			};
+		},
+		onLoad(option) {
+			
+			this.title = option.title
+			
+			uni.setNavigationBarTitle({
+				title: this.title
+			})
+			
+			this.mine_code = option.mine_code
+			
+			this.get_tab(option.column)
+		},
+		methods: {
+			get_tab(column){
+				this.$api.oa_article_lm_list({
+					column:column
+				}).then((res)=>{
+					console.log(res.data.data)
+					
+					this.tabList = res.data.data
+					
+					if(this.tabList.length == 0){
+						this.get_list(column)
+					}else{
+						this.get_list(res.data.data[0].id)
+					}
+				})
+			},
+			
+			click_active(item,index) {
+				this.active = index
+				
+				this.data = []
+				this.get_list(item.id)
+			},
+			
+			get_list(id){
+				uni.showLoading({
+					mask:true
+				})
+				this.$api.oa_article_list({
+					column:id
+				}).then((res)=>{
+					uni.hideLoading()
+					this.data = res.data.data
+				})
+			},
+			
+			click(item) {
+				if (item.type == 'files') {
+					console.log('打开文档');
+					
+					uni.downloadFile({
+						url: item.data.filePath,
+						success: (res)=> {
+							var filePath = res.tempFilePath;
+							uni.openDocument({
+								filePath: filePath,
+								success: (res)=> {
+									uni.hideLoading()
+									console.log('打开文档成功');
+								}
+							});
+						}
+					});
+				}
+
+				if (item.type == 'article') {
+					uni.navigateTo({
+						url:"./detail/detail?id=" + item.data.id + "&title=" + item.data.title
+					})
+				}
+
+				if (item.type == 'link') {
+					
+					let link = item.data.url
+					
+					// OA系统
+					if(link.indexOf("oa_system.nxjiewei.com") != -1 ){
+						uni.navigateTo({
+							url:"../../../origanization/OA/h5/h5",
+							success: (res) =>{
+								// 通过eventChannel向被打开页面传送数据
+								res.eventChannel.emit('acceptDataFromOpenerPage', {
+									url: link,
+									title: item.title
+								})
+							}
+						})
+						return
+					}
+					
+					// 二维码
+					if(link.indexOf("pageId") != -1 && link.indexOf("app:") == -1){
+						let url = link.split("&amp;").join("&")
+						let pageId = ""
+						function GetQueryString(name) {
+							var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+							var r = url.match(reg);
+							if (r != null) return unescape(r[2]);
+							return null;
+						}
+						console.log(GetQueryString("pageId"))
+						if (GetQueryString("pageId")) {
+							pageId = GetQueryString("pageId")
+						} else {
+							pageId = url.split('=')[1]
+						}
+						
+						uni.navigateTo({
+							url:"../../../index/record/record?pageId=" + pageId + "&mine_code=" + this.mine_code,
+						})
+					}
+					// h5
+					if(link.indexOf("pageId") == -1 && link.indexOf("app:") == -1){
+						uni.navigateTo({
+							url: "../../../index/record/h5/h5?url=" + link
+						})
+					}
+					// 原生
+					if(link.indexOf("pageId") == -1 && link.indexOf("app:") != -1){
+						
+						if (link.indexOf("app:app_url=../../index/record/detail_list/") != -1) {
+							uni.navigateTo({
+								url: "./" + link.split('app:app_url=../../index/record/detail_list/')[1] + "&title=" + item.data.title
+							})
+							
+						}else{
+							uni.navigateTo({
+								url: link + "&title=" + item.data.title
+							})
+						}
+					}
+					
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		padding-bottom: 20rpx;
+	}
+	
+	.tab {
+		display: flex;
+	
+		.item {
+			margin: 0 20rpx;
+			width: 200rpx;
+			height: 90rpx;
+			line-height: 90rpx;
+			text-align: center;
+		}
+	}
+	
+	.list {
+		border-top: 2rpx solid #f2f2f2;
+		box-sizing: border-box;
+		padding: 10rpx 25rpx;
+
+		.file {
+			display: flex;
+			align-items: center;
+			padding: 10rpx 0;
+			padding-bottom: 20rpx;
+			border-bottom: 2rpx solid #F5F6F7;
+
+			.left {
+				min-width: 608rpx;
+
+				.title {
+					color: #1E1E1E;
+					font-size: 34rpx;
+					line-height: 1.5;
+
+					overflow: hidden;
+					text-overflow: ellipsis;
+					display: -webkit-box;
+					-webkit-line-clamp: 2;
+					-webkit-box-orient: vertical;
+				}
+
+				.size {
+					margin-top: 10rpx;
+					color: #9B9B9B;
+					font-size: 28rpx;
+				}
+			}
+
+			.right {
+				margin-left: 20rpx;
+
+				.icon {
+					image {
+						width: 74rpx;
+						height: 102rpx;
+					}
+				}
+			}
+		}
+
+		.article {
+			display: flex;
+			align-items: center;
+			padding: 10rpx 0;
+			padding-bottom: 20rpx;
+			border-bottom: 2rpx solid #F5F6F7;
+
+			.left {
+				.title {
+					min-width: 450rpx;
+					color: #1E1E1E;
+					font-size: 34rpx;
+					line-height: 1.5;
+
+					overflow: hidden;
+					text-overflow: ellipsis;
+					display: -webkit-box;
+					-webkit-line-clamp: 3;
+					-webkit-box-orient: vertical;
+				}
+
+				.time {
+					margin-top: 10rpx;
+					color: #9B9B9B;
+					font-size: 28rpx;
+				}
+			}
+
+			.right {
+				margin-left: 20rpx;
+
+				.icon {
+					image {
+						width: 230rpx;
+						height: 156rpx;
+						border-radius: 10rpx;
+					}
+				}
+			}
+		}
+
+		.article_bigImg {
+			padding: 10rpx 0;
+			padding-bottom: 20rpx;
+			border-bottom: 2rpx solid #F5F6F7;
+
+			.title {
+				min-width: 450rpx;
+				color: #1E1E1E;
+				font-size: 34rpx;
+				line-height: 1.5;
+				max-height: 136rpx;
+
+				overflow: hidden;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				-webkit-line-clamp: 3;
+				-webkit-box-orient: vertical;
+			}
+
+			.icon {
+				margin-top: 15rpx;
+
+				image {
+					width: 700rpx;
+					height: 400rpx;
+					border-radius: 10rpx;
+				}
+			}
+
+			.time {
+				margin-top: 10rpx;
+				color: #9B9B9B;
+				font-size: 28rpx;
+			}
+		}
+
+		// .link {
+		// 	display: flex;
+		// 	align-items: center;
+		// 	padding: 10rpx 0;
+		// 	padding-bottom: 20rpx;
+		// 	border-bottom: 2rpx solid #F5F6F7;
+
+		// 	.left {
+		// 		.title {
+		// 			color: #1E1E1E;
+		// 			font-size: 34rpx;
+		// 			line-height: 1.5;
+		// 		}
+
+		// 		.time {
+		// 			margin-top: 10rpx;
+		// 			color: #9B9B9B;
+		// 			font-size: 28rpx;
+		// 		}
+		// 	}
+		// }
+	}
+</style>

二进制
pages/index/record/detail_list/icon/wj-doc.png


二进制
pages/index/record/detail_list/icon/wj-jpg.png


二进制
pages/index/record/detail_list/icon/wj-pdf.png


二进制
pages/index/record/detail_list/icon/wj-png.png


二进制
pages/index/record/detail_list/icon/wj-ppt.png


二进制
pages/index/record/detail_list/icon/wj-txt.png


二进制
pages/index/record/detail_list/icon/wj-xls.png


+ 6 - 0
pages/index/record/h5/h5.vue

@@ -13,6 +13,12 @@
 		},
 		onLoad(option) {
 			this.href = option.url + "?token="+uni.getStorageSync('Authorization')
+			
+			//#ifdef H5
+			if(this.href.indexOf('https://mp.weixin.qq.com') != -1){
+				window.location.href = this.href;
+			}
+			//#endif
 		}
 	}
 </script>

+ 1 - 1
pages/index/record/record.vue

@@ -221,7 +221,7 @@
 					url: this.base_url + "/swagger/api/page/v1/detailPage?pageId=" + this.pageId +
 						"&sourceType=&organizationIds=&userId=&userName=",
 					success: (res) => {
-						console.log(res.data.data)
+						// console.log(res.data.data)
 						const data = res.data.data
 
 						// 设置页面标题

+ 1 - 1
pages/my/forget-password/forget-password.vue

@@ -6,7 +6,7 @@
 		</view>
 		<view class="title">
 			<text v-if="mine_code == 'ningdongyunying'">E信管理</text>
-			<text v-if="mine_code == 'ningmeijituan'">智慧宁煤</text>
+			<text v-if="mine_code == 'ningmeijituan'">宁煤安全</text>
 			<text v-if="mine_code == 'zaoquan'">枣泉煤矿</text>
 			<text v-if="mine_code == 'qingshuiying'">清水营煤矿</text>
 			<text v-if="mine_code == 'wuyegongsi'">智慧物业</text>

+ 1 - 1
pages/my/login/login.vue

@@ -6,7 +6,7 @@
 		</view>
 		<view class="title">
 			<text v-if="mine_code == 'ningdongyunying'">E信管理</text>
-			<text v-if="mine_code == 'ningmeijituan'">智慧宁煤</text>
+			<text v-if="mine_code == 'ningmeijituan'">宁煤安全</text>
 			<text v-if="mine_code == 'zaoquan'">枣泉煤矿</text>
 			<text v-if="mine_code == 'qingshuiying'">清水营煤矿</text>
 			<text v-if="mine_code == 'wuyegongsi'">智慧物业</text>

+ 1 - 1
pages/my/version_record/version_record.vue

@@ -47,7 +47,7 @@
 					uni.hideLoading()
 					console.log(res.result.data)
 
-					this.list = res.result.data
+					this.list = res.result.data.reverse()
 				})
 			}
 		},

+ 5 - 0
pages/origanization/communication/origanization/my_department/my_department.vue

@@ -72,6 +72,11 @@
 					uni.makePhoneCall({
 					    phoneNumber: mobile
 					});
+				}else{
+					uni.showToast({
+						icon:"none",
+						title:"未绑定手机号"
+					})
 				}
 			},
 			

+ 191 - 0
pages/origanization/communication/origanization/origanization - 懒加载接口测试.vue

@@ -0,0 +1,191 @@
+<template>
+	<view>
+		<view class="search">
+			<view class="box" @click="go_search()">
+				<view class="icon">
+					<uni-icons type="search" size="16" color="#BBBBBB"></uni-icons>
+				</view>
+				<view class="text">搜索</view>
+			</view>
+		</view>
+
+		<view class="content">
+			<view class="title">
+				<view class="icon">
+					<image src="./icon/title_icon.png" mode=""></image>
+				</view>
+
+				<view class="text" v-if="mine_code == 'zaoquan'">国家能源集团枣泉煤矿</view>
+				<view class="text" v-if="mine_code == 'ningmeijituan'">国家能源集团宁夏煤业公司</view>
+
+				<view class="text" v-if="mine_code == 'ningdongyunying'">国家能源集团宁东运营部</view>
+				<view class="text" v-if="mine_code == 'qingshuiying'">国家能源集团清水营煤矿</view>
+				<view class="text" v-if="mine_code == 'wuyegongsi'">物业公司</view>
+				<view class="text" v-if="mine_code == 'jinjiaqu' || mine_code == 'jinjiaqu_neiwang'">国家能源集团金家渠煤矿</view>
+				<view class="text" v-if="mine_code == 'yangchangwan'">国家能源集团羊场湾煤矿</view>
+				<view class="text" v-if="mine_code == 'shicaocun'">国家能源集团石槽村煤矿</view>
+				<view class="text" v-if="mine_code == 'jinfeng' || mine_code == 'jinfeng_neiwang'">国家能源集团金凤煤矿</view>
+
+			</view>
+
+			<origanizationSection :data="list" :mine_code="mine_code"></origanizationSection>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	import data from "./data.json"
+
+	export default {
+		data() {
+			return {
+				// 当前煤矿编码
+				mine_code: "",
+
+				// 部门列表
+				list: [
+
+				],
+				// 当前展开部门
+				active: 99999999,
+
+				// 人员列表
+				user_list: []
+			};
+		},
+		onLoad() {
+			// 初始化当前煤矿编码
+			this.mine_code = uni.getStorageSync('mine_code')
+
+			
+			if(this.mine_code == 'ningmeijituan'){
+				this.get_section_getGroupList(285)
+			}else{
+				this.get_section_getGroupList('')
+			}
+			
+		},
+		methods: {
+			// 搜索
+			go_search() {
+				uni.navigateTo({
+					url: "./search/search",
+					animationType: "fade-in",
+					animationDuration: 200
+				})
+			},
+			// 获取部门列表
+			get_section_getGroupList(section_id) {
+				uni.showLoading({
+					mask: true
+				})
+				this.$api.section_get_tree_structure({
+					section_id:section_id
+				}).then((res) => {
+					uni.hideLoading()
+					
+					console.log(res.data.content.data.children)
+					
+					if(this.mine_code == 'ningmeijituan'){
+						this.list = res.data.content.data.children
+					}else{
+						this.list = res.data.content.data
+					}
+				})
+			},
+
+			change_active(index, id) {
+				this.user_list = []
+				if (this.active == index) {
+					this.active = 99999999
+				} else {
+					this.active = index
+					// this.get_user_list(id)
+
+					console.log(id)
+				}
+			},
+
+			go_record(page_id) {
+				console.log(page_id)
+
+				if (page_id == null) {
+					uni.showToast({
+						icon: "none",
+						title: "该部门还未关联二维码"
+					})
+				} else {
+					console.log(page_id)
+					uni.navigateTo({
+						url: "../../../index/record/record?pageId=" + page_id + "&mine_code=" + uni.getStorageSync(
+							'mine_code'),
+					})
+				}
+			},
+
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F3F8F7;
+	}
+
+	.search {
+		margin-bottom: 20rpx;
+		background-color: #FFFFFF;
+		box-sizing: border-box;
+		padding: 25rpx 30rpx;
+
+		.box {
+			height: 80rpx;
+			background-color: #F4F4F4;
+			border-radius: 50rpx;
+
+			display: flex;
+			align-items: center;
+
+			box-sizing: border-box;
+			padding: 0 25rpx;
+
+			.icon {
+				margin-right: 10rpx;
+			}
+
+			.text {
+				font-size: 30rpx;
+				color: #BBBBBB;
+			}
+		}
+	}
+
+	.content {
+		background-color: #FFFFFF;
+
+		.title {
+			height: 110rpx;
+			display: flex;
+			align-items: center;
+
+			box-sizing: border-box;
+			padding: 0 36rpx;
+			border-bottom: 1rpx solid #F3F8F7;
+
+			.icon {
+				image {
+					width: 48rpx;
+					height: 36rpx;
+				}
+			}
+
+			.text {
+				margin-left: 20rpx;
+				font-size: 36rpx;
+				font-weight: 700;
+			}
+		}
+
+	}
+</style>

pages/origanization/communication/origanization/origanization-单层级备份.vue → pages/origanization/communication/origanization/origanization-一级.vue


+ 19 - 16
pages/origanization/communication/origanization/origanization.vue

@@ -14,7 +14,7 @@
 				<view class="icon">
 					<image src="./icon/title_icon.png" mode=""></image>
 				</view>
-				
+
 				<view class="text" v-if="mine_code == 'zaoquan'">国家能源集团枣泉煤矿</view>
 				<view class="text" v-if="mine_code == 'ningmeijituan'">国家能源集团宁夏煤业公司</view>
 
@@ -25,10 +25,10 @@
 				<view class="text" v-if="mine_code == 'yangchangwan'">国家能源集团羊场湾煤矿</view>
 				<view class="text" v-if="mine_code == 'shicaocun'">国家能源集团石槽村煤矿</view>
 				<view class="text" v-if="mine_code == 'jinfeng' || mine_code == 'jinfeng_neiwang'">国家能源集团金凤煤矿</view>
-				
+
 			</view>
-			
-			<origanizationSection :data="list"></origanizationSection>
+
+			<origanizationSection :data="list" :mine_code="mine_code"></origanizationSection>
 
 		</view>
 	</view>
@@ -36,7 +36,7 @@
 
 <script>
 	import data from "./data.json"
-	
+
 	export default {
 		data() {
 			return {
@@ -57,7 +57,7 @@
 		onLoad() {
 			// 初始化当前煤矿编码
 			this.mine_code = uni.getStorageSync('mine_code')
-			
+
 			this.get_section_getGroupList()
 		},
 		methods: {
@@ -72,17 +72,20 @@
 			// 获取部门列表
 			get_section_getGroupList() {
 				uni.showLoading({
-					mask:true
+					mask: true
 				})
 				this.$api.section_get_org_structure({
-					
-				}).then((res)=>{
+
+				}).then((res) => {
 					uni.hideLoading()
-					console.log(res.data.content)
-					
-					this.list = res.data.content.data
+					console.log(res.data.content.data[0].children)
+					if(this.mine_code == 'ningmeijituan'){
+						this.list = res.data.content.data[0].children
+					}else{
+						this.list = res.data.content.data
+					}
 				})
-			
+
 			},
 
 			change_active(index, id) {
@@ -92,11 +95,11 @@
 				} else {
 					this.active = index
 					// this.get_user_list(id)
-					
+
 					console.log(id)
 				}
 			},
-			
+
 			go_record(page_id) {
 				console.log(page_id)
 
@@ -113,7 +116,7 @@
 					})
 				}
 			},
-		
+
 		}
 	}
 </script>

二进制
pages/origanization/communication/origanization/personal_information/icon/icon_1.png


二进制
pages/origanization/communication/origanization/personal_information/icon/icon_2.png


二进制
pages/origanization/communication/origanization/personal_information/icon/icon_3.png


二进制
pages/origanization/communication/origanization/personal_information/icon/icon_4.png


二进制
pages/origanization/communication/origanization/personal_information/icon/icon_5.png


二进制
pages/origanization/communication/origanization/personal_information/icon/icon_6.png


二进制
pages/origanization/communication/origanization/personal_information/icon/icon_7.png


+ 491 - 0
pages/origanization/communication/origanization/personal_information/personal_information - 人资培训信息.vue

@@ -0,0 +1,491 @@
+<template>
+	<view>
+		<view class="content" v-if="user_info">
+			<view class="user">
+				<view class="left">
+					<view class="line name">{{user_info.name}}</view>
+					<view class="line">
+						<view class="item">
+							<view class="label">年龄</view>
+							<view class="box">{{user_info.age}}岁</view>
+						</view>
+						<view class="item">
+							<view class="label">性别</view>
+							<view class="box">{{user_info.sex}}</view>
+						</view>
+					</view>
+				</view>
+				<view class="right">
+					<view class="img">
+						<image
+							src="https://cdn.colorhub.me/NjEsLkWKhU8/rs:auto:280:0:0/g:sm/fn:colorhub/bG9jYWw6Ly8vNDUvODgvZTAxZjE5ZmMwYjEzMmRhYzYwMTY3NmFiNGRhNzA5NmQyNmY5NDU4OC5qcGc.jpg"
+							mode="aspectFill"></image>
+					</view>
+				</view>
+			</view>
+			<view class="inner">
+				<view class="line">
+					<view class="item">
+						<view class="label">学历</view>
+						<view class="box">{{user_info.edu_as}}</view>
+					</view>
+					<view class="item">
+						<view class="label">职务/岗位</view>
+						<view class="box">{{user_info.job_as}}</view>
+					</view>
+					<view class="item">
+						<view class="label">职称</view>
+						<view class="box">无</view>
+					</view>
+				</view>
+				<view class="line">
+					<view class="item">
+						<view class="label">技能等级</view>
+						<view class="box">中级工</view>
+					</view>
+					<view class="item">
+						<view class="label">身体状况</view>
+						<view class="box">{{user_info.daltonism}}</view>
+					</view>
+					<view class="item">
+						<view class="label">参加工作时间</view>
+						<view class="box">2004-09-20</view>
+					</view>
+				</view>
+				<view class="line">
+					<view class="item">
+						<view class="label">进入本企业时间</view>
+						<view class="box">2006-01-18</view>
+					</view>
+					<view class="item">
+						<view class="label">所在部门/区队</view>
+						<view class="box">{{user_info.org_name}}</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="tab_content" v-if="user_info">
+			<view class="tab">
+				<!-- <view class="item" v-for="(item,index) in 7" :key="index" @click="tab(index)">
+					<image v-if="index == 0" src="./icon/icon_1.png" mode=""></image>
+					<image v-if="index == 1" src="./icon/icon_2.png" mode=""></image>
+					<image v-if="index == 2" src="./icon/icon_3.png" mode=""></image>
+					<image v-if="index == 3" src="./icon/icon_4.png" mode=""></image>
+					<image v-if="index == 4" src="./icon/icon_5.png" mode=""></image>
+					<image v-if="index == 5" src="./icon/icon_6.png" mode=""></image>
+					<image v-if="index == 6" src="./icon/icon_7.png" mode=""></image>
+				</view> -->
+				<view class="item" :class="active == index? 'active' : ''" v-for="(item,index) in 6" :key="index"
+					@click="tab(index)">
+					<view class="img">
+						<image v-if="index == 0" src="./icon/icon_1.png" mode=""></image>
+						<image v-if="index == 1" src="./icon/icon_2.png" mode=""></image>
+						<image v-if="index == 2" src="./icon/icon_3.png" mode=""></image>
+						<image v-if="index == 3" src="./icon/icon_4.png" mode=""></image>
+						<image v-if="index == 4" src="./icon/icon_5.png" mode=""></image>
+						<image v-if="index == 5" src="./icon/icon_6.png" mode=""></image>
+					</view>
+					<view class="text" v-if="index == 0">培训情况</view>
+					<view class="text" v-if="index == 1">违章记录</view>
+					<view class="text" v-if="index == 2">持证记录</view>
+					<view class="text" v-if="index == 3">考试记录</view>
+					<view class="text" v-if="index == 4">工作简历</view>
+					<view class="text" v-if="index == 5">个人荣誉</view>
+				</view>
+			</view>
+			<view class="content">
+				<view class="list list_1" v-if="active == 0">
+					<view class="item label_box">
+						<view class="label text_1">培训时间</view>
+						<view class="label text_2">培训项目</view>
+						<view class="label text_3">培训地点</view>
+						<view class="label text_4">考核情况</view>
+					</view>
+
+					<view class="item">
+						<view class="text_1">2022/05/05</view>
+						<view class="text_2">煤矿生产安全事故应急救援预案</view>
+						<view class="text_3">综采一队会议室</view>
+						<view class="text_4">98</view>
+					</view>
+				</view>
+				<view class="list list_2" v-if="active == 1">
+					<view class="item label_box">
+						<view class="label text_1">违章日期</view>
+						<view class="label text_2">行为描述</view>
+						<view class="label text_3">风险等级</view>
+						<view class="label text_4">矫正措施</view>
+						<view class="label text_5">负责人签字</view>
+					</view>
+				
+					<view class="item">
+						<view class="text_1">2022/05/05</view>
+						<view class="text_2">煤矿生产安全事故应急救援预案</view>
+						<view class="text_3">一般</view>
+						<view class="text_4">培训矫正</view>
+						<view class="text_5">龙皓晨</view>
+					</view>
+				</view>
+				<view class="list list_3" v-if="active == 2">
+					<view class="item label_box">
+						<view class="label text_1">发证机关</view>
+						<view class="label text_2">证件名称</view>
+						<view class="label text_3">取证日期</view>
+						<view class="label text_4">有效时间至</view>
+					</view>
+				
+					<view class="item">
+						<view class="text_1">综采一队会议室</view>
+						<view class="text_2">煤矿生产安全事故应急救援预案</view>
+						<view class="text_3">2022/05/05</view>
+						<view class="text_4">2022/05/05</view>
+					</view>
+				</view>
+				<view class="list list_4" v-if="active == 3">
+					<view class="item label_box">
+						<view class="label text_1">考试名称</view>
+						<view class="label text_2">考试时间</view>
+						<view class="label text_3">考试限时</view>
+						<view class="label text_4">考试总分</view>
+						<view class="label text_5">考试成绩</view>
+					</view>
+				
+					<view class="item">
+						<view class="text_1">从业人员2022年3月9日煤矿采煤作业人员考试</view>
+						<view class="text_2">2022-03-09</view>
+						<view class="text_3">60分钟</view>
+						<view class="text_4">100分</view>
+						<view class="text_5">98分</view>
+					</view>
+				</view>
+				<view class="list list_5" v-if="active == 4">
+					<view class="item label_box">
+						<view class="label text_1">个人工作简历</view>
+					</view>
+				
+					<view class="item">
+						<view class="text_1">1998-08-15 到 2002-06-01 灵武矿务局磁窑堡煤矿</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				active: 0,
+				staff_num:'15003194',
+				user_info:null,
+				list:null
+			};
+		},
+		onLoad() {
+			this.get_examination_get_detail()
+		},
+		methods: {
+			tab(index) {
+				console.log(index)
+				this.active = index
+				
+				this.$api.examination_get_detail({
+					staff_num:this.staff_num,
+					type: index+1
+				}).then((res)=>{
+					console.log(res.data.content.data)
+				})
+			},
+			get_examination_get_detail(){
+				this.$api.examination_get_detail({
+					staff_num:this.staff_num,
+					type:1
+				}).then((res)=>{
+					console.log(res.data.content.data)
+					
+					this.user_info = res.data.content.data.user_info
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #009fe8;
+
+		box-sizing: border-box;
+		padding: 25rpx;
+	}
+
+	.content {
+		.line {
+			color: #FFFFFF;
+
+			border-bottom: 2rpx dashed #C4EDFF;
+			overflow: hidden;
+
+			box-sizing: border-box;
+			padding: 25rpx 0;
+
+			.item {
+				float: left;
+				margin-right: 5rpx;
+
+				width: 230rpx;
+
+				.label {
+					font-size: 28rpx;
+					opacity: 0.5;
+					margin-bottom: 8rpx;
+				}
+
+				.box {
+					font-size: 30rpx;
+					font-weight: 700;
+
+					white-space: nowrap;
+					// overflow: hidden;
+					// text-overflow: ellipsis;
+				}
+			}
+
+			.item:last-child {
+				margin-right: 0;
+			}
+		}
+
+		.user {
+			display: flex;
+			justify-content: space-between;
+
+			.left {
+				width: 470rpx;
+
+				.name {
+					font-size: 60rpx;
+					font-weight: 700;
+				}
+			}
+
+			.right {
+				width: 200rpx;
+
+				.img {
+					image {
+						width: 200rpx;
+						height: 268rpx;
+					}
+				}
+			}
+		}
+
+	}
+
+	.tab_content {
+		margin: 30rpx 0;
+
+		.tab {
+			margin: 0 auto;
+			width: 660rpx;
+			display: flex;
+			justify-content: space-around;
+			// .item{
+			// 	width: 90rpx;
+			// 	height: 82rpx;
+			// 	background-color: #FFFFFF;
+
+			// 	text-align: center;
+			// 	border-radius: 0 20rpx 0 0;
+			// 	image{
+			// 		margin-top: 20rpx;
+			// 		width: 44rpx;
+			// 		height: 44rpx;
+			// 	}
+			// }
+			.item {
+				width: 110rpx;
+				background-color: #FFFFFF;
+
+				text-align: center;
+				border-radius: 0 20rpx 0 0;
+
+				.img {
+					-webkit-filter: grayscale(100%);
+					/* Chrome, Safari, Opera */
+					filter: grayscale(100%);
+
+					image {
+						margin-top: 20rpx;
+						width: 44rpx;
+						height: 44rpx;
+					}
+				}
+
+				.text {
+					font-size: 24rpx;
+					color: #848484;
+				}
+			}
+
+			.active {
+				.img {
+					-webkit-filter: none;
+					/* Chrome, Safari, Opera */
+					filter: none;
+					image {
+						margin-top: 10rpx;
+						width: 54rpx;
+						height: 54rpx;
+					}
+				}
+
+				.text {
+					color: #009fe8;
+					font-size: 26rpx;
+					font-weight: 700;
+				}
+			}
+		}
+
+		.content {
+			min-height: 400rpx;
+			background-color: #FFFFFF;
+			border-radius: 16rpx;
+
+			padding-top: 20rpx;
+
+			.list{
+				.item {
+					display: flex;
+					justify-content: space-around;
+					align-items: center;
+					text-align: center;
+					height: 120rpx;
+					line-height: 36rpx;
+					font-size: 26rpx;
+
+					border-bottom: 2rpx dashed #DCDCDC;
+
+					.text_1 {
+						width: 130rpx;
+					}
+
+					.text_2 {
+						width: 190rpx;
+					}
+
+					.text_3 {
+						width: 130rpx;
+					}
+
+					.text_4 {
+						width: 130rpx;
+					}
+				}
+
+				.label_box {
+					background-color: #DCDCDC;
+					display: flex;
+					justify-content: space-around;
+					align-items: center;
+					height: 60rpx;
+
+					.label {
+						color: #999999;
+						font-size: 26rpx;
+						font-weight: 700;
+					}
+				}
+			}
+			
+			.list_2 {
+				.item {
+					.text_1 {
+						width: 130rpx;
+					}
+			
+					.text_2 {
+						width: 180rpx;
+					}
+			
+					.text_3 {
+						width: 100rpx;
+					}
+			
+					.text_4 {
+						width: 100rpx;
+					}
+					
+					.text_5 {
+						width: 140rpx;
+					}
+				}
+			
+				.label_box {
+					.label {
+						font-size: 24rpx;
+					}
+				}
+			}
+			.list_3 {
+				.item {
+					.text_1 {
+						width: 160rpx;
+					}
+					
+					.text_2 {
+						width: 180rpx;
+					}
+					
+					.text_3 {
+						width: 130rpx;
+					}
+					
+					.text_4 {
+						width: 130rpx;
+					}
+				}
+			}
+			.list_4 {
+				.item {
+					.text_1 {
+						width: 180rpx;
+					}
+			
+					.text_2 {
+						width: 130rpx;
+					}
+			
+					.text_3 {
+						width: 100rpx;
+					}
+			
+					.text_4 {
+						width: 100rpx;
+					}
+					
+					.text_5 {
+						width: 100rpx;
+					}
+				}
+			
+				.label_box {
+					.label {
+						font-size: 24rpx;
+					}
+				}
+			}
+			.list_5 {
+				.item {
+					.text_1 {
+						width: 700rpx;
+						font-size: 28rpx;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 11 - 1
pages/origanization/communication/origanization/search/search.vue

@@ -66,9 +66,13 @@
 		},
 		methods: {
 			get_list() {
+				uni.showLoading({
+					mask:true
+				})
 				this.$api.user_search({
 					content: this.search_text
 				}).then((res) => {
+					uni.hideLoading()
 					console.log(res)
 					this.list = res.data.data
 				})
@@ -83,6 +87,11 @@
 					uni.makePhoneCall({
 						phoneNumber: mobile
 					});
+				}else{
+					uni.showToast({
+						icon:"none",
+						title:"未绑定手机号"
+					})
 				}
 			},
 		}
@@ -165,9 +174,10 @@
 
 				.left {
 					display: flex;
-
+					align-items: center;
 					.icon {
 						width: 35rpx;
+						height: 35rpx;
 						text-align: center;
 						line-height: 35rpx;
 						border-radius: 50%;

二进制
pages/production/jinjiaqu/zidonghua_list/img/glyq.jpg


二进制
pages/production/jinjiaqu/zidonghua_list/img/jkrc.jpg


+ 109 - 0
pages/production/jinjiaqu/zidonghua_list/zidonghua_list.vue

@@ -22,6 +22,16 @@
 			<view v-if="zdhxt == 'tsj'">
 				<image src="./img/tsj.jpg" mode=""></image>
 			</view>
+			<!-- 架空人车 -->
+			<view v-if="zdhxt == 'jkrc'">
+				<image src="./img/jkrc.jpg" mode=""></image>
+			</view>
+			<!-- 锅炉烟气 -->
+			<view v-if="zdhxt == 'glyq'">
+				<image src="./img/glyq.jpg" mode=""></image>
+			</view>
+			
+			
 		</view>
 
 		<!-- 列表 -->
@@ -162,6 +172,63 @@
 				</view>
 			
 			</view>
+		
+			<!-- 架空人车 -->
+			<view v-if="zdhxt == 'jkrc'">
+				<view class="item" v-for="(item,index) in data_jkrc" :key="index">
+					<view class="title" @click="item_active(index)">
+						<view class="left">
+							<view class="icon"></view>
+							<view class="name">
+								{{item.name}}
+							</view>
+						</view>
+						<view class="right" v-if="index != active">
+							<uni-icons type="arrowright"></uni-icons>
+						</view>
+						<view class="right" v-if="index == active">
+							<uni-icons type="arrowdown"></uni-icons>
+						</view>
+					</view>
+					<view class="inner_list" v-if="active == index">
+						<view class="inner_item" v-for="(item_2,index_2) in item.list" :key="index_2"
+							@click="inner_item_active(item_2)">
+							<view class="inner_icon"></view>
+							<view class="inner_name">{{item_2.name}}</view>
+						</view>
+					</view>
+				</view>
+			
+			</view>
+			
+			<!-- 锅炉烟气 -->
+			<view v-if="zdhxt == 'glyq'">
+				<view class="item" v-for="(item,index) in data_glyq" :key="index">
+					<view class="title" @click="item_active(index)">
+						<view class="left">
+							<view class="icon"></view>
+							<view class="name">
+								{{item.name}}
+							</view>
+						</view>
+						<view class="right" v-if="index != active">
+							<uni-icons type="arrowright"></uni-icons>
+						</view>
+						<view class="right" v-if="index == active">
+							<uni-icons type="arrowdown"></uni-icons>
+						</view>
+					</view>
+					<view class="inner_list" v-if="active == index">
+						<view class="inner_item" v-for="(item_2,index_2) in item.list" :key="index_2"
+							@click="inner_item_active(item_2)">
+							<view class="inner_icon"></view>
+							<view class="inner_name">{{item_2.name}}</view>
+						</view>
+					</view>
+				</view>
+			
+			</view>
+					
 		</view>
 
 	</view>
@@ -213,6 +280,10 @@
 					list: [{
 						name: "胶带运输机系统",
 						url: "../../unified_automation_system/belt_conveyor/belt_conveyor?system_type=belt_13"
+					},
+					{
+						name: "主斜井胶带运输机系统",
+						url: "../../unified_automation_system/belt_conveyor/belt_conveyor?system_type=belt_2"
 					}]
 				}],
 				// 提升机
@@ -221,8 +292,36 @@
 					list: [{
 						name: "中部副立井提升机系统",
 						url: "../../unified_automation_system/hoist/hoist?system_type=hoist"
+					},
+					{
+						name: "北部副立井提升机系统",
+						url: "../../unified_automation_system/north_hoist/north_hoist?system_type=hoist_2"
+					},
+					{
+						name: "13采区提升机监测系统",
+						url: "../../unified_automation_system/hoist_13/hoist_13?system_type=hoist_1"
+					}]
+				}],
+			
+				// 架空人车
+				data_jkrc: [{
+					name: "金家渠煤矿",
+					list: [{
+						name: "13采区架空人车系统",
+						url: "../../unified_automation_system/man_car/man_car?system_type=mancar"
+					}]
+				}],
+				
+				// 锅炉烟气
+				data_glyq: [{
+					name: "金家渠煤矿",
+					list: [{
+						name: "锅炉烟气系统",
+						url: "../../unified_automation_system/boiler_room/boiler_room?system_type=boiler"
 					}]
 				}]
+							
+							
 			}
 		},
 		onLoad(option) {
@@ -253,6 +352,16 @@
 					title: "提升机系统"
 				})
 			}
+			if (this.zdhxt == 'jkrc') {
+				uni.setNavigationBarTitle({
+					title: "架空人车系统"
+				})
+			}
+			if (this.zdhxt == 'glyq') {
+				uni.setNavigationBarTitle({
+					title: "锅炉烟气系统"
+				})
+			}
 		},
 		methods: {
 			inner_item_active(item) {

+ 1 - 1
pages/production/personnel_orientation/personnel_orientation.vue

@@ -131,7 +131,7 @@
 				this.updated_at = res.data.data.updated_at
 			})
 			
-			// this.get_product_data_query_power()
+			this.get_product_data_query_power()
 		},
 		methods: {
 			get_product_data_query_power(){

+ 23 - 0
pages/production/production_report/production_report.vue

@@ -39,6 +39,29 @@
 		onLoad(option) {
 			this.mine = option.mine
 			this.org_num = option.org_num
+			
+			this.get_product_data_query_power()
+		},
+		methods:{
+			get_product_data_query_power(){
+				this.$p_api.product_data_query_power({
+					staff_num: uni.getStorageSync('user').staff_num,
+					data_module: "scbb"
+				}).then((res)=>{
+					if(res.data.content.status){
+						console.log("可查看")
+					}else{
+						uni.showToast({
+							icon:"none",
+							title:"没有查看权限!"
+						})
+						
+						setTimeout(()=>{
+							uni.navigateBack()
+						},1000)
+					}
+				})
+			},
 		}
 	}
 </script>

+ 1 - 1
pages/production/safety_monitoring/safety_monitoring.vue

@@ -3,7 +3,7 @@
 		<!-- navbar -->
 		<p-safety-monitoring-navbar :mine="mine"></p-safety-monitoring-navbar>
 		
-		<view style="margin-bottom: 200rpx;">
+		<view style="padding-bottom: 200rpx;">
 			<!-- 模拟量 -->
 			<view v-if="active == 1">
 				<p-safety-monitoring-content-1 :mine="mine" :simulation="simulation" :simulationList="simulationList"></p-safety-monitoring-content-1>

+ 26 - 0
pages/production/shicaocun/zidonghua_list/detail/detail.vue

@@ -0,0 +1,26 @@
+<template>
+	<view>
+		<web-view :src="url"></web-view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				url:""
+			};
+		},
+		onLoad(option) {
+			this.url = option.url
+			
+			uni.setNavigationBarTitle({
+				title:option.name
+			})
+		}
+	}
+</script>
+
+<style lang="scss">
+
+</style>

二进制
pages/production/shicaocun/zidonghua_list/img/icon.png


unpackage/dist/build/h5/static/img/psxt.1fafa792.jpg → pages/production/shicaocun/zidonghua_list/img/psxt.jpg


unpackage/dist/build/h5/static/img/tfgl.c0fc4f18.jpg → pages/production/shicaocun/zidonghua_list/img/tfgl.jpg


unpackage/dist/build/h5/static/img/tsj.6dcc0c5f.jpg → pages/production/shicaocun/zidonghua_list/img/tsj.jpg


unpackage/dist/build/h5/static/img/yfzd.4650dac5.jpg → pages/production/shicaocun/zidonghua_list/img/yfzd.jpg


unpackage/dist/build/h5/static/img/zys.eae26717.jpg → pages/production/shicaocun/zidonghua_list/img/zys.jpg


+ 379 - 0
pages/production/shicaocun/zidonghua_list/zidonghua_list.vue

@@ -0,0 +1,379 @@
+<template>
+	<view>
+		<!-- 头图 -->
+		<view class="top_img">
+			<!-- 通风管理 -->
+			<view v-if="zdhxt == 'tfgl'">
+				<image src="./img/tfgl.jpg" mode=""></image>
+			</view>
+			<!-- 排水系统 -->
+			<view v-if="zdhxt == 'psxt'">
+				<image src="./img/psxt.jpg" mode=""></image>
+			</view>
+			<!-- 压风制氮 -->
+			<view v-if="zdhxt == 'yfzd'">
+				<image src="./img/yfzd.jpg" mode=""></image>
+			</view>
+			<!-- 主运输 -->
+			<view v-if="zdhxt == 'zys'">
+				<image src="./img/zys.jpg" mode=""></image>
+			</view>
+			<!-- 提升机 -->
+			<view v-if="zdhxt == 'tsj'">
+				<image src="./img/tsj.jpg" mode=""></image>
+			</view>
+		</view>
+
+		<!-- 列表 -->
+		<view class="list">
+			<!-- 通风管理 -->
+			<view v-if="zdhxt == 'tfgl'">
+				<view class="item" v-for="(item,index) in data_tfgl" :key="index">
+					<view class="title">
+						<view class="left">
+							<view class="icon"></view>
+							<view class="name">
+								{{item.name}}
+							</view>
+						</view>
+						<view class="right" v-if="index != active">
+							<uni-icons type="arrowright"></uni-icons>
+						</view>
+						<view class="right" v-if="index == active">
+							<uni-icons type="arrowdown"></uni-icons>
+						</view>
+					</view>
+					<view class="inner_list" v-if="active == index">
+						<view class="inner_item" v-for="(item_2,index_2) in item.list" :key="index_2"
+							@click="inner_item_active(item_2)">
+							<view class="inner_icon"></view>
+							<view class="inner_name">{{item_2.name}}</view>
+						</view>
+					</view>
+				</view>
+
+			</view>
+			<!-- 压风制氮 -->
+			<view v-if="zdhxt == 'yfzd'">
+				<view class="item" v-for="(item,index) in data_yfzd" :key="index">
+					<view class="title" @click="item_active(index)">
+						<view class="left">
+							<view class="icon"></view>
+							<view class="name">
+								{{item.name}}
+							</view>
+						</view>
+						<view class="right" v-if="index != active">
+							<uni-icons type="arrowright"></uni-icons>
+						</view>
+						<view class="right" v-if="index == active">
+							<uni-icons type="arrowdown"></uni-icons>
+						</view>
+					</view>
+					<view class="inner_list" v-if="active == index">
+						<view class="inner_item" v-for="(item_2,index_2) in item.list" :key="index_2"
+							@click="inner_item_active(item_2)">
+							<view class="inner_icon"></view>
+							<view class="inner_name">{{item_2.name}}</view>
+						</view>
+					</view>
+				</view>
+
+			</view>
+			<!-- 排水系统 -->
+			<view v-if="zdhxt == 'psxt'">
+				<view class="item" v-for="(item,index) in data_psxt" :key="index">
+					<view class="title" @click="item_active(index)">
+						<view class="left">
+							<view class="icon"></view>
+							<view class="name">
+								{{item.name}}
+							</view>
+						</view>
+						<view class="right" v-if="index != active">
+							<uni-icons type="arrowright"></uni-icons>
+						</view>
+						<view class="right" v-if="index == active">
+							<uni-icons type="arrowdown"></uni-icons>
+						</view>
+					</view>
+					<view class="inner_list" v-if="active == index">
+						<view class="inner_item" v-for="(item_2,index_2) in item.list" :key="index_2"
+							@click="inner_item_active(item_2)">
+							<view class="inner_icon"></view>
+							<view class="inner_name">{{item_2.name}}</view>
+						</view>
+					</view>
+				</view>
+
+			</view>
+			<!-- 主运输 -->
+			<view v-if="zdhxt == 'zys'">
+				<view class="item" v-for="(item,index) in data_zys" :key="index">
+					<view class="title" @click="item_active(index)">
+						<view class="left">
+							<view class="icon"></view>
+							<view class="name">
+								{{item.name}}
+							</view>
+						</view>
+						<view class="right" v-if="index != active">
+							<uni-icons type="arrowright"></uni-icons>
+						</view>
+						<view class="right" v-if="index == active">
+							<uni-icons type="arrowdown"></uni-icons>
+						</view>
+					</view>
+					<view class="inner_list" v-if="active == index">
+						<view class="inner_item" v-for="(item_2,index_2) in item.list" :key="index_2"
+							@click="inner_item_active(item_2)">
+							<view class="inner_icon"></view>
+							<view class="inner_name">{{item_2.name}}</view>
+						</view>
+					</view>
+				</view>
+
+			</view>
+			
+			<!-- 提升机 -->
+			<view v-if="zdhxt == 'tsj'">
+				<view class="item" v-for="(item,index) in data_tsj" :key="index">
+					<view class="title" @click="item_active(index)">
+						<view class="left">
+							<view class="icon"></view>
+							<view class="name">
+								{{item.name}}
+							</view>
+						</view>
+						<view class="right" v-if="index != active">
+							<uni-icons type="arrowright"></uni-icons>
+						</view>
+						<view class="right" v-if="index == active">
+							<uni-icons type="arrowdown"></uni-icons>
+						</view>
+					</view>
+					<view class="inner_list" v-if="active == index">
+						<view class="inner_item" v-for="(item_2,index_2) in item.list" :key="index_2"
+							@click="inner_item_active(item_2)">
+							<view class="inner_icon"></view>
+							<view class="inner_name">{{item_2.name}}</view>
+						</view>
+					</view>
+				</view>
+			
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				zdhxt: "",
+				active: 0,
+
+
+				// 通风管理
+				data_tfgl: [{
+					name: "石槽村煤矿",
+					list: [{
+						name: "1号回风斜井通风",
+						url: "../../unified_automation_system/ventilation/ventilation?system_type=fan_1"
+					},
+					{
+						name: "2号回风斜井通风",
+						url: "../../unified_automation_system/ventilation/ventilation?system_type=fan_2"
+					}]
+				}],
+				// 排水系统
+				data_psxt: [{
+					name: "石槽村煤矿",
+					list: [{
+						name: "中央水泵排水系统",
+						url: "../../unified_automation_system/drainage/drainage?system_type=pump_1"
+					},
+					{
+						name: "715水泵排水系统",
+						url: "../../unified_automation_system/drainage/drainage?system_type=pump_2"
+					},
+					{
+						name: "630水泵排水系统",
+						url: "../../unified_automation_system/drainage/drainage?system_type=pump_3"
+					}]
+				}],
+				// 压风制氮
+				data_yfzd: [{
+					name: "石槽村煤矿",
+					list: [{
+						name: "空气压缩机集控系统",
+						url: "../../unified_automation_system/compressed_air/compressed_air?system_type=compressed_air"
+					},
+					{
+						name: "制氮系统",
+						url: "../../unified_automation_system/nitrogen_production_system/nitrogen_production_system?system_type=nitrogen"
+					}]
+				}],
+				// 主运输
+				data_zys: [{
+					name: "石槽村煤矿",
+					list: [{
+						name: "22采区皮带",
+						url: "../../unified_automation_system/belt_conveyor/belt_conveyor?system_type=belt_1"
+					},{
+						name: "西翼巷皮带",
+						url: "../../unified_automation_system/belt_conveyor/belt_conveyor?system_type=belt_2"
+					},{
+						name: "集中巷皮带",
+						url: "../../unified_automation_system/belt_conveyor/belt_conveyor?system_type=belt_3"
+					}]
+				}],
+			}
+		},
+		onLoad(option) {
+			this.zdhxt = option.zdhxt
+
+			if (this.zdhxt == 'tfgl') {
+				uni.setNavigationBarTitle({
+					title: "通风管理"
+				})
+				
+				this.get_product_data_query_power(this.zdhxt)
+			}
+			if (this.zdhxt == 'psxt') {
+				uni.setNavigationBarTitle({
+					title: "排水系统"
+				})
+				
+				this.get_product_data_query_power(this.zdhxt)
+			}
+			if (this.zdhxt == 'yfzd') {
+				uni.setNavigationBarTitle({
+					title: "压风制氮"
+				})
+				
+				this.get_product_data_query_power(this.zdhxt)
+			}
+			if (this.zdhxt == 'zys') {
+				uni.setNavigationBarTitle({
+					title: "主运输"
+				})
+				
+				this.get_product_data_query_power(this.zdhxt)
+			}
+			if (this.zdhxt == 'tsj') {
+				uni.setNavigationBarTitle({
+					title: "提升机系统"
+				})
+			}
+		},
+		methods: {
+			inner_item_active(item) {
+				uni.navigateTo({
+					url: item.url + "&name=" + item.name + "&mine_code=shicaocun"
+				})
+			},
+			get_product_data_query_power(zdhxt){
+				this.$p_api.product_data_query_power({
+					staff_num: uni.getStorageSync('user').staff_num,
+					data_module: zdhxt
+				}).then((res)=>{
+					if(res.data.content.status){
+						console.log("可查看")
+					}else{
+						uni.showToast({
+							icon:"none",
+							title:"没有查看权限!"
+						})
+						
+						setTimeout(()=>{
+							uni.navigateBack()
+						},1000)
+					}
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F7F7F7;
+	}
+
+	.top_img {
+		image {
+			width: 750rpx;
+			height: 360rpx;
+		}
+	}
+
+	.list {
+		padding-top: 20rpx;
+
+		.item {
+			background-color: #FFFFFF;
+			margin-bottom: 20rpx;
+
+			box-sizing: border-box;
+			padding: 0 35rpx;
+
+			.title {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+
+				height: 110rpx;
+				border-bottom: 1rpx solid #f7f7f7;
+
+				.left {
+					display: flex;
+					align-items: center;
+
+					.icon {
+						width: 31rpx;
+						height: 27rpx;
+
+						background-image: url(img/icon.png);
+						background-size: cover;
+						background-repeat: no-repeat;
+					}
+
+					.name {
+						margin-left: 26rpx;
+						font-size: 38rpx;
+					}
+				}
+
+				.right {}
+			}
+
+			.inner_list {
+				.inner_item {
+					display: flex;
+					align-items: center;
+
+					height: 110rpx;
+					border-bottom: 1rpx solid #f7f7f7;
+
+					padding-left: 96rpx;
+
+					.inner_icon {
+						width: 20rpx;
+						height: 20rpx;
+						background-color: #0992E5;
+						border-radius: 50%;
+					}
+
+					.inner_name {
+						margin-left: 29rpx;
+						font-size: 32rpx;
+						color: #8a8a8a;
+					}
+				}
+			}
+		}
+
+	}
+</style>

+ 10 - 5
pages/production/unified_automation_system/belt_conveyor/belt_conveyor.vue

@@ -55,7 +55,8 @@
 					<view class="icon">
 						<image src="./icon/canshu.png" mode=""></image>
 					</view>
-					<view class="text">变频器运行参数</view>
+					<view class="text" v-if="system_type == 'belt_13'">变频器运行参数</view>
+					<view class="text" v-if="system_type != 'belt_13'">减速机运行参数</view>
 				</view>
 				<view class="content">
 					<view class="label_index">
@@ -86,7 +87,8 @@
 					<view class="icon">
 						<image src="./icon/canshu.png" mode=""></image>
 					</view>
-					<view class="text">速度选择状态</view>
+					<view class="text" v-if="system_type == 'belt_13'">速度选择状态</view>
+					<view class="text" v-if="system_type != 'belt_13'">皮带机状态</view>
 				</view>
 				<view class="state_list">
 					<view class="state" v-for="(item,index) in data.speed_selection_state" :key="index" @click="show_label(item.label)">
@@ -104,7 +106,8 @@
 					<view class="icon">
 						<image src="./icon/canshu.png" mode=""></image>
 					</view>
-					<view class="text">皮带控制模式</view>
+					<view class="text" v-if="system_type == 'belt_13'">皮带控制模式</view>
+					<view class="text" v-if="system_type != 'belt_13'">制动器状态</view>
 				</view>
 				<view class="state_list">
 					<view class="state" v-for="(item,index) in data.belt_control_mode" :key="index" @click="show_label(item.label)">
@@ -122,7 +125,8 @@
 					<view class="icon">
 						<image src="./icon/canshu.png" mode=""></image>
 					</view>
-					<view class="text">皮带状态</view>
+					<view class="text" v-if="system_type == 'belt_13'">皮带状态</view>
+					<view class="text" v-if="system_type != 'belt_13'">皮带1状态</view>
 				</view>
 				<view class="state_list">
 					<view class="state" v-for="(item,index) in data.belt_state" :key="index" @click="show_label(item.label)">
@@ -477,11 +481,12 @@
 		}
 		
 		.belt_state{
+			padding: 0 50rpx;
 			.state_list{
 				margin: 20rpx auto 0;
 				
 				display: flex;
-				justify-content: space-around;
+				justify-content: space-between;
 				flex-wrap: wrap;
 				.state {
 					margin: 0;

+ 73 - 0
pages/production/unified_automation_system/boiler_room/boiler_room.json

@@ -0,0 +1,73 @@
+{
+	"name": "锅炉烟气系统",
+	"state": 1,
+	"parameter": [{
+		"name": "湿基值",
+		"data": [{
+				"label": "吸附塔A压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			},
+			{
+				"label": "吸附塔B压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			},
+			{
+				"label": "空气罐压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			},
+			{
+				"label": "氮气罐压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			},
+			{
+				"label": "瞬时流量",
+				"value": 67.959,
+				"unit": "m3/s"
+			},
+			{
+				"label": "氮气压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			}
+		]
+	},
+	{
+		"name": "干基值",
+		"data": [{
+				"label": "吸附塔A压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			},
+			{
+				"label": "吸附塔B压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			},
+			{
+				"label": "空气罐压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			},
+			{
+				"label": "氮气罐压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			},
+			{
+				"label": "瞬时流量",
+				"value": 67.959,
+				"unit": "m3/s"
+			},
+			{
+				"label": "氮气压力",
+				"value": 67.959,
+				"unit": "Mpa"
+			}
+		]
+	}]
+
+}

+ 334 - 0
pages/production/unified_automation_system/boiler_room/boiler_room.vue

@@ -0,0 +1,334 @@
+<template>
+	<view>
+		<view class="content" v-if="data">
+			<view class="nitrogen_production">
+				<view class="icon"v-if="data.state == 1">
+					<image src="./icon/boiler_room.jpg" mode=""></image>
+				</view>
+				<view class="icon"v-if="data.state == 2">
+					<image src="./icon/boiler_room.png" mode=""></image>
+				</view>
+				<view class="name">{{data.name}}</view>
+				<view class="state">
+					<view class="label">状态</view>
+					<!-- 1-开 2-关 -->
+					<view class="value value_1" v-if="data.state == 1"></view>
+					<view class="value value_2" v-if="data.state == 2"></view>
+				</view>
+				<!-- 湿基值 -->
+				<view class="parameter run_parameter" v-for="(item,index) in data.parameter" :key="index">
+					<view class="title">
+						<view class="icon">
+							<image src="./icon/canshu.png" mode=""></image>
+						</view>
+						<view class="text">{{item.name}}</view>
+					</view>
+					<view class="list">
+						<view class="item" v-for="(item_2,index_2) in item.data" :key="index_2" @click="show_item(item_2)">
+							<view class="label">{{item_2.label}}</view>
+							<view class="value">{{item_2.value}}</view>
+							<view class="unit">{{item_2.unit}}</view>
+						</view>
+					</view>
+				</view>
+				
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import data from './boiler_room.json'
+
+	export default {
+		data() {
+			return {
+				mine_code:"",
+				system_type:"",
+				
+				// 数据刷新定时器
+				data_timer:{},
+				data: null
+			};
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title:option.name
+			})
+			this.mine_code = option.mine_code
+			this.system_type = option.system_type
+			
+			this.get_data()
+			this.data_timer = setInterval(()=>{
+				this.get_data()
+			},5000)
+		},
+		onUnload() {
+			clearInterval(this.data_timer)
+		},
+		methods: {
+			show_item(item) {
+				uni.showToast({
+					icon: "none",
+					title: item.label + "  " + item.value + "  " + item.unit
+				})
+			},
+			get_data(){
+				this.$api.unified_automation_system({
+					mine_code: this.mine_code,
+					system_type: this.system_type
+				}).then((res)=>{
+					console.log(res)
+					this.data = res.data
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #0B163B;
+		box-sizing: border-box;
+		padding: 30rpx 10rpx;
+	}
+
+	.tab_list {
+		margin: 0 auto;
+		width: 600rpx;
+		
+		overflow: hidden;
+
+		.tab {
+			margin-right: 60rpx;
+			float: left;
+			width: 160rpx;
+			height: 70rpx;
+			border-radius: 10rpx;
+			box-sizing: border-box;
+			border: 2rpx solid #4CB1FF;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.index {
+				color: #4CB1FF;
+				font-size: 28rpx;
+			}
+
+			.state {
+				.value {
+					margin-left: 20rpx;
+					width: 40rpx;
+					height: 40rpx;
+					border-radius: 50%;
+				}
+
+				.value_1 {
+					background-color: #00FF00;
+				}
+
+				.value_2 {
+					background-color: #DCDCDC;
+				}
+			}
+		}
+		.tab:nth-child(3n){
+			margin-right: 0;
+		}
+
+		.active {
+			background-color: #FFFFFF;
+			border: none;
+		}
+	}
+	
+	.content{
+		margin-top: 40rpx;
+		.nitrogen_production{
+			margin: 0 auto;
+			width: 600rpx;
+			.icon {
+				text-align: center;
+				image {
+					width: 160rpx;
+					height: 160rpx;
+				}
+			}
+			
+			.name {
+				margin-top: 20rpx;
+				text-align: center;
+				color: #DEF1FF;
+				font-size: 34rpx;
+				font-weight: 700;
+			}
+			
+			.state {
+				height: 60rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			
+				.label {
+					color: #4CB1FF;
+					font-size: 28rpx;
+				}
+			
+				.value {
+					margin-left: 20rpx;
+					width: 40rpx;
+					height: 40rpx;
+					border-radius: 50%;
+				}
+			
+				.value_1 {
+					background-color: #00FF00;
+				}
+			
+				.value_2 {
+					background-color: #DCDCDC;
+				}
+			}
+			
+			.parameter {
+				box-sizing: border-box;
+				margin-top: 20rpx;
+			
+				.title {
+					margin: 0 auto;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+			
+					width: 230rpx;
+					height: 60rpx;
+					background-image: url(./icon/border.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+			
+					.icon {
+						margin-right: 20rpx;
+			
+						image {
+							width: 30rpx;
+							height: 30rpx;
+						}
+					}
+			
+					.text {
+						color: #00FFF6;
+						font-size: 30rpx;
+					}
+				}
+			
+				.list {
+					margin-top: 40rpx;
+			
+					.item {
+						height: 60rpx;
+						display: flex;
+			
+						color: #4CB1FF;
+						font-size: 28rpx;
+			
+						.label {
+							width: 200rpx;
+			
+							text-overflow: ellipsis;
+							white-space: nowrap;
+							overflow: hidden;
+						}
+			
+						.value {
+							margin: 0 20rpx;
+							width: 200rpx;
+							height: 40rpx;
+							box-sizing: border-box;
+							padding: 0 10rpx;
+							background: rgba(0, 4, 15, 0.36);
+							border: 2rpx solid #3D55A5;
+			
+							color: #FFF600;
+							font-size: 24rpx;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+							overflow: hidden;
+						}
+			
+						.unit {
+							width: 100rpx;
+						}
+					}
+				}
+			}
+			
+			.cold_dryer{
+				padding-top: 20rpx;
+				.title{
+					width: 260rpx;
+				}
+			}
+			
+			.tap_state{
+				margin-top: 40rpx;
+				.title {
+					margin: 20rpx auto;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+							
+					width: 230rpx;
+					height: 60rpx;
+					background-image: url(./icon/border.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+							
+					.icon {
+						margin-right: 20rpx;
+							
+						image {
+							width: 30rpx;
+							height: 30rpx;
+						}
+					}
+							
+					.text {
+						color: #00FFF6;
+						font-size: 30rpx;
+					}
+				}
+							
+				.tap_list{
+					overflow: hidden;
+					.tap{
+						float: left;
+						width: 200rpx;
+						height: 70rpx;
+						display: flex;
+						align-items: center;
+						.label {
+							color: #4CB1FF;
+							font-size: 28rpx;
+						}
+									
+						.value {
+							margin-left: 20rpx;
+							width: 40rpx;
+							height: 40rpx;
+							border-radius: 50%;
+						}
+									
+						.value_1 {
+							background-color: #00FF00;
+						}
+									
+						.value_2 {
+							background-color: #DCDCDC;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

二进制
pages/production/unified_automation_system/boiler_room/icon/boiler_room.jpg


二进制
pages/production/unified_automation_system/boiler_room/icon/boiler_room.png


二进制
pages/production/unified_automation_system/boiler_room/icon/border.png


二进制
pages/production/unified_automation_system/boiler_room/icon/canshu.png


二进制
pages/production/unified_automation_system/boiler_room/icon/nitrogen_production_kai.gif


二进制
pages/production/unified_automation_system/boiler_room/icon/tap.png


+ 8 - 1
pages/production/unified_automation_system/compressed_air/compressed_air.vue

@@ -86,8 +86,14 @@
 	export default {
 		data() {
 			return {
+				mine_code:"",
+				system_type:"",
+				
+				// 数据刷新定时器
+				data_timer:{},
 				active: 0,
-				data: {}
+				data: {},
+				
 			};
 		},
 		onLoad(option) {
@@ -208,6 +214,7 @@
 
 		.tab {
 			margin-right: 60rpx;
+			margin-bottom: 20rpx;
 			float: left;
 			width: 160rpx;
 			height: 70rpx;

+ 6 - 1
pages/production/unified_automation_system/hoist/hoist.vue

@@ -1,7 +1,7 @@
 <template>
 	<view>
 		<!-- 公共参数 -->
-		<view class="common" v-if="data.common">
+		<view class="common">
 			<view class="section">
 				<view class="item" v-for="(item,index) in data.common.position" :key="index" @click="show_item(item)">
 					<view class="label">{{item.label}}</view>
@@ -166,6 +166,11 @@
 	export default {
 		data() {
 			return {
+				mine_code:"",
+				system_type:"",
+				
+				// 数据刷新定时器
+				data_timer:{},
 				data: {}
 			};
 		},

+ 123 - 0
pages/production/unified_automation_system/hoist_13/hoist_13.json

@@ -0,0 +1,123 @@
+{
+	"common": {
+		"position": [{
+				"label": "打点信号",
+				"value": 0.72,
+				"unit": ""
+			},
+			{
+				"label": "小罐位置",
+				"value": 0.72,
+				"unit": "m"
+			},
+			{
+				"label": "大罐位置",
+				"value": 0.72,
+				"unit": "m"
+			}
+		],
+		"direction": [{
+				"label": "正向提升",
+				"state": 1
+			},
+			{
+				"label": "反向提升",
+				"state": 2
+			}
+		]
+	},
+	"hoist": [{
+			"name": "13采区提升机",
+			"state": 1,
+			"run_parameter": [{
+					"label": "实测速度",
+					"value": 67.959,
+					"unit": "m/s"
+				},
+				{
+					"label": "励磁电流",
+					"value": 67.959,
+					"unit": "A"
+				},
+				{
+					"label": "绕组1电流",
+					"value": 67.959,
+					"unit": "A"
+				}
+			],
+			"environment_parameter": [{
+					"label": "实测速度",
+					"value": 67.959,
+					"unit": "m/s"
+				},
+				{
+					"label": "励磁电流",
+					"value": 67.959,
+					"unit": "A"
+				},
+				{
+					"label": "绕组1电流",
+					"value": 67.959,
+					"unit": "A"
+				}
+			],
+
+			"hoist_state": [{
+					"label": "安全回路",
+					"value": "断开",
+					"unit": ""
+				},
+				{
+					"label": "速度选择",
+					"value": "速度三",
+					"unit": ""
+				}
+			],
+
+			"run_state": [{
+					"label": "主令拉",
+					"state": 1
+				},
+				{
+					"label": "交流柜1运行",
+					"state": 1
+				},
+				{
+					"label": "主令推4",
+					"state": 2
+				},
+				{
+					"label": "交流柜2运行",
+					"state": 2
+				},
+				{
+					"label": "大罐旁通",
+					"state": 2
+				}
+			],
+
+			"warn_state": [{
+					"label": "主令拉",
+					"state": 1
+				},
+				{
+					"label": "交流柜1运行",
+					"state": 1
+				},
+				{
+					"label": "主令推4",
+					"state": 2
+				},
+				{
+					"label": "交流柜2运行",
+					"state": 2
+				},
+				{
+					"label": "大罐旁通",
+					"state": 2
+				}
+			]
+
+		}
+	]
+}

+ 499 - 0
pages/production/unified_automation_system/hoist_13/hoist_13.vue

@@ -0,0 +1,499 @@
+<template>
+	<view>
+		<!-- 公共参数 -->
+		<view class="common" v-if="data.common">
+			<view class="section">
+				<view class="item" v-for="(item,index) in data.common.position" :key="index" @click="show_item(item)">
+					<view class="label">{{item.label}}</view>
+					<view class="value">{{item.value}}</view>
+					<view class="unit">{{item.unit}}</view>
+				</view>
+			</view>
+			<view class="section">
+				<view class="state" v-for="(item,index) in data.common.direction" :key="index">
+					<view class="label">{{item.label}}</view>
+					<!-- 1-开 2-关 -->
+					<view class="value value_1" v-if="item.state == 1"></view>
+					<view class="value value_2" v-if="item.state == 2"></view>
+				</view>
+			</view>
+		</view>
+
+		<!-- 提升机参数 -->
+		<view class="content">
+			<view class="hoist" v-for="(item,index) in data.hoist" :key="index">
+				<view class="box" v-if="item.state == 1">
+					<image src="./icon/hoist_13.jpg" mode=""></image>
+				</view>
+				<view class="box" v-if="item.state == 2">
+					<image src="./icon/hoist_13.png" mode=""></image>
+				</view>
+				<view class="name">{{item.name}}</view>
+				<!-- 运行参数 -->
+				<view class="parameter">
+					<view class="title">
+						<view class="icon">
+							<image src="./icon/canshu.png" mode=""></image>
+						</view>
+						<view class="text">运行参数</view>
+					</view>
+					<view class="list">
+						<view class="item" v-for="(item_2,index_2) in item.run_parameter" :key="index_2"
+							@click="show_item(item_2)">
+							<view class="label">{{item_2.label}}</view>
+							<view class="value">{{item_2.value}}</view>
+							<view class="unit">{{item_2.unit}}</view>
+						</view>
+					</view>
+				</view>
+				<!-- 环境参数 -->
+				<view class="parameter">
+					<view class="title">
+						<view class="icon">
+							<image src="./icon/canshu.png" mode=""></image>
+						</view>
+						<view class="text">环境参数</view>
+					</view>
+					<view class="list">
+						<view class="item" v-for="(item_2,index_2) in item.run_parameter" :key="index_2"
+							@click="show_item(item_2)">
+							<view class="label">{{item_2.label}}</view>
+							<view class="value">{{item_2.value}}</view>
+							<view class="unit">{{item_2.unit}}</view>
+						</view>
+					</view>
+				</view>
+				
+				<!-- 提升机状态 -->
+				<view class="parameter hoist_state">
+					<view class="title">
+						<view class="icon">
+							<image src="./icon/canshu.png" mode=""></image>
+						</view>
+						<view class="text">提升机状态</view>
+					</view>
+					<view class="list">
+						<view class="item" v-for="(item_2,index_2) in item.hoist_state" :key="index_2"
+							@click="show_item(item_2)">
+							<view class="label">{{item_2.label}}</view>
+							<view class="value">{{item_2.value}}</view>
+							<view class="unit">{{item_2.unit}}</view>
+						</view>
+					</view>
+				</view>
+				
+				<!-- 状态 -->
+				<view class="state_section two_row_state">
+					<view class="title">
+						<view class="icon">
+							<image src="./icon/canshu.png" mode=""></image>
+						</view>
+						<view class="text">状态</view>
+					</view>
+					<view class="list">
+						<view class="state" v-for="(item_2,index_2) in item.run_state" :key="index_2" @click="show_label(item_2.label)">
+							<view class="label">{{item_2.label}}</view>
+							<!-- 1-开 2-关 -->
+							<view class="value value_1" v-if="item_2.state == 1"></view>
+							<view class="value value_2" v-if="item_2.state == 2"></view>
+						</view>
+					</view>
+				</view>
+				
+				<!-- 报警状态 -->
+				<view class="state_section two_row_state">
+					<view class="title">
+						<view class="icon">
+							<image src="./icon/canshu.png" mode=""></image>
+						</view>
+						<view class="text">报警状态</view>
+					</view>
+					<view class="list">
+						<view class="state" v-for="(item_2,index_2) in item.warn_state" :key="index_2" @click="show_label(item_2.label)">
+							<view class="label">{{item_2.label}}</view>
+							<!-- 1-开 2-关 -->
+							<view class="value value_1" v-if="item_2.state == 1"></view>
+							<view class="value value_2" v-if="item_2.state == 2"></view>
+						</view>
+					</view>
+				</view>
+				
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import data from './hoist_13.json'
+
+	export default {
+		data() {
+			return {
+				mine_code:"",
+				system_type:"",
+				
+				// 数据刷新定时器
+				data_timer:{},
+				data: {}
+			};
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title:option.name
+			})
+			this.mine_code = option.mine_code
+			this.system_type = option.system_type
+			
+			this.get_data()
+			this.data_timer = setInterval(()=>{
+				this.get_data()
+			},5000)
+		},
+		onUnload() {
+			clearInterval(this.data_timer)
+		},
+		methods: {
+			get_data(){
+				this.$api.unified_automation_system({
+					mine_code: this.mine_code,
+					system_type: this.system_type
+				}).then((res)=>{
+					console.log(res.data)
+					this.data = res.data
+				})
+			},
+			show_item(item) {
+				uni.showToast({
+					icon: "none",
+					title: item.label + "  " + item.value + "  " + item.unit
+				})
+			},
+			show_label(label){
+				uni.showToast({
+					icon: "none",
+					title: label
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #0B163B;
+		box-sizing: border-box;
+		padding: 30rpx 10rpx;
+	}
+
+	.common {
+		margin: 0 auto;
+		width: 700rpx;
+
+		background-image: url(./icon/common.png);
+		background-size: 100% 100%;
+		background-repeat: no-repeat;
+
+		box-sizing: border-box;
+		padding: 40rpx;
+
+		display: flex;
+		justify-content: space-between;
+
+		.section {
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+
+			.item {
+				height: 60rpx;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				color: #4CB1FF;
+				font-size: 28rpx;
+
+				.label {
+					width: 120rpx;
+
+					text-overflow: ellipsis;
+					white-space: nowrap;
+					overflow: hidden;
+				}
+
+				.value {
+					margin: 0 20rpx;
+					width: 120rpx;
+					height: 40rpx;
+					box-sizing: border-box;
+					padding: 0 10rpx;
+					background: rgba(0, 4, 15, 0.36);
+					border: 2rpx solid #3D55A5;
+
+					color: #FFF600;
+					font-size: 24rpx;
+					text-overflow: ellipsis;
+					white-space: nowrap;
+					overflow: hidden;
+				}
+
+				.unit {
+					width: 100rpx;
+					text-overflow: ellipsis;
+					white-space: nowrap;
+					overflow: hidden;
+				}
+			}
+
+			.state {
+				height: 60rpx;
+				display: flex;
+				align-items: center;
+
+				.label {
+					text-overflow: ellipsis;
+					white-space: nowrap;
+					overflow: hidden;
+
+					width: 120rpx;
+					color: #4CB1FF;
+					font-size: 28rpx;
+				}
+
+				.value {
+					margin-left: 20rpx;
+					width: 40rpx;
+					height: 40rpx;
+					border-radius: 50%;
+				}
+
+				.value_1 {
+					background-color: #00FF00;
+				}
+
+				.value_2 {
+					background-color: #E5E5E5;
+				}
+			}
+		}
+	}
+
+	.content {
+		margin-top: 40rpx;
+
+		.hoist {
+			margin: 0 auto;
+			width: 700rpx;
+
+			.box {
+				text-align: center;
+
+				image {
+					width: 260rpx;
+					height: 158rpx;
+				}
+			}
+
+			.name {
+				margin-top: 20rpx;
+				text-align: center;
+				color: #DEF1FF;
+				font-size: 34rpx;
+				font-weight: 700;
+			}
+
+			.parameter {
+				box-sizing: border-box;
+				margin-top: 40rpx;
+
+				.title {
+					margin: 0 auto;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+
+					width: 230rpx;
+					height: 60rpx;
+					background-image: url(./icon/border.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+
+					.icon {
+						margin-right: 20rpx;
+
+						image {
+							width: 30rpx;
+							height: 30rpx;
+						}
+					}
+
+					.text {
+						color: #00FFF6;
+						font-size: 30rpx;
+					}
+				}
+
+				.list {
+					margin-top: 40rpx;
+
+					.item {
+						height: 60rpx;
+						display: flex;
+
+						color: #4CB1FF;
+						font-size: 28rpx;
+
+						.label {
+							width: 200rpx;
+							text-align: justify;
+							text-align-last: justify;
+
+							text-overflow: ellipsis;
+							white-space: nowrap;
+							overflow: hidden;
+						}
+
+						.value {
+							margin: 0 40rpx;
+							width: 200rpx;
+							height: 40rpx;
+							box-sizing: border-box;
+							padding: 0 10rpx;
+							background: rgba(0, 4, 15, 0.36);
+							border: 2rpx solid #3D55A5;
+
+							color: #FFF600;
+							font-size: 24rpx;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+							overflow: hidden;
+						}
+
+						.unit {
+							width: 100rpx;
+						}
+					}
+				}
+			}
+
+			.state_section {
+				margin-top: 40rpx;
+
+				.title {
+					margin: 20rpx auto;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+
+					width: 300rpx;
+					height: 60rpx;
+					background-image: url(./icon/border.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+
+					.icon {
+						margin-right: 20rpx;
+
+						image {
+							width: 30rpx;
+							height: 30rpx;
+						}
+					}
+
+					.text {
+						color: #00FFF6;
+						font-size: 30rpx;
+					}
+				}
+
+				.list {
+					overflow: hidden;
+
+					.state {
+						box-sizing: border-box;
+
+						float: left;
+						margin-right: 20rpx;
+						width: 160rpx;
+						height: 70rpx;
+						display: flex;
+						align-items: center;
+
+						.label {
+							width: 80rpx;
+							color: #4CB1FF;
+							font-size: 28rpx;
+							
+							text-align: justify;
+							text-align-last: justify;
+
+							text-overflow: ellipsis;
+							white-space: nowrap;
+							overflow: hidden;
+						}
+
+						.value {
+							margin-left: 20rpx;
+							width: 40rpx;
+							height: 40rpx;
+							border-radius: 50%;
+						}
+
+						.value_1 {
+							background-color: #00FF00;
+						}
+
+						.value_2 {
+							background-color: #DCDCDC;
+						}
+					}
+
+					.state:nth-child(4n) {
+						margin-right: 0;
+					}
+				}
+			}
+
+			.system_signal {
+				.list {
+					overflow: hidden;
+					.state {
+						margin-right: 30rpx;
+						width: 210rpx;
+
+						.label {
+							width: 140rpx;
+						}
+
+					}
+					.state:nth-child(3n){
+						margin-right: 0;
+					}
+					.state:nth-child(4n) {
+						margin-right: 30rpx;
+					}
+				}
+			}
+			
+			.two_row_state{
+				.list {
+					display: flex;
+					flex-wrap: wrap;
+					justify-content: space-between;
+
+					.state {
+						margin-right: 0;
+						width: 350rpx;
+
+						.label {
+							width: 200rpx;
+							margin-right: 40rpx;
+						}
+
+					}
+				}
+			}
+		}
+	}
+</style>

二进制
pages/production/unified_automation_system/hoist_13/icon/border.png


二进制
pages/production/unified_automation_system/hoist_13/icon/canshu.png


二进制
pages/production/unified_automation_system/hoist_13/icon/close.png


unpackage/dist/build/h5/static/img/common.e6a08fb6.png → pages/production/unified_automation_system/hoist_13/icon/common.png


二进制
pages/production/unified_automation_system/hoist_13/icon/hoist_13.jpg


二进制
pages/production/unified_automation_system/hoist_13/icon/hoist_13.png


二进制
pages/production/unified_automation_system/hoist_13/icon/warn.png


二进制
pages/production/unified_automation_system/man_car/icon/border.png


二进制
pages/production/unified_automation_system/man_car/icon/canshu.png


二进制
pages/production/unified_automation_system/man_car/icon/close.png


二进制
pages/production/unified_automation_system/man_car/icon/common.png


二进制
pages/production/unified_automation_system/man_car/icon/man_car.jpg


二进制
pages/production/unified_automation_system/man_car/icon/man_car.png


二进制
pages/production/unified_automation_system/man_car/icon/warn.png


+ 62 - 0
pages/production/unified_automation_system/man_car/man_car.json

@@ -0,0 +1,62 @@
+{
+	"common": [{
+			"label": "高度",
+			"value": 67.959,
+			"unit": "m"
+		},
+		{
+			"label": "实测速度",
+			"value": 67.9,
+			"unit": "m/s"
+		},
+		{
+			"label": "实测速度",
+			"value": 67.9,
+			"unit": "m/s"
+		}
+	],
+	"hoist": [{
+			"name": "13采区架空人车系统",
+			"state": 1,
+			"run_parameter": [{
+					"label": "实测速度",
+					"value": 67.959,
+					"unit": "m/s"
+				},
+				{
+					"label": "励磁电流",
+					"value": 67.959,
+					"unit": "A"
+				},
+				{
+					"label": "绕组1电流",
+					"value": 67.959,
+					"unit": "A"
+				}
+			],
+			"run_state": [{
+					"label": "安全回路",
+					"state": 1
+				},
+				{
+					"label": "保护PLC正常",
+					"state": 1
+				}
+			],
+			"protect_state": [{
+					"label": "小罐过卷",
+					"state": 1
+				},
+				{
+					"label": "小罐限速",
+					"state": 1
+				},
+				{
+					"label": "小罐到位",
+					"state": 2
+				}
+			]
+		}
+
+	]
+}

+ 416 - 0
pages/production/unified_automation_system/man_car/man_car.vue

@@ -0,0 +1,416 @@
+<template>
+	<view>
+		<!-- 公共参数 -->
+		<view class="common" v-if="data">
+			<view class="item" v-for="(item,index) in data.common" :key="index" @click="show_item(item)">
+				<view class="label">{{item.label}}</view>
+				<view class="value">{{item.value}}</view>
+				<view class="unit">{{item.unit}}</view>
+			</view>
+		</view>
+
+		<!-- 提升机参数 -->
+		<view class="content" v-if="data">
+			<view class="hoist">
+				<view class="box" v-if="data.hoist.state == 1">
+					<image src="./icon/man_car.jpg" mode=""></image>
+				</view>
+				<view class="box" v-if="data.hoist.state == 2">
+					<image src="./icon/man_car.png" mode=""></image>
+				</view>
+				<view class="name">{{data.hoist.name}}</view>
+				<!-- 运行参数 -->
+				<view class="parameter run_parameter">
+					<view class="title">
+						<view class="icon">
+							<image src="./icon/canshu.png" mode=""></image>
+						</view>
+						<view class="text">运行参数</view>
+					</view>
+					<view class="list">
+						<view class="item" v-for="(item,index) in data.hoist.run_parameter" :key="index"
+							@click="show_item(item)">
+							<view class="label">{{item.label}}</view>
+							<view class="value">{{item.value}}</view>
+							<view class="unit">{{item.unit}}</view>
+						</view>
+					</view>
+				</view>
+				
+				<view class="state_section two_row_state">
+					<view class="title">
+						<view class="icon">
+							<image src="./icon/canshu.png" mode=""></image>
+						</view>
+						<view class="text">运行状态</view>
+					</view>
+					<view class="list">
+						<view class="state" v-for="(item,index) in data.hoist.run_state" :key="index" @click="show_label(item.label)">
+							<view class="label">{{item.label}}</view>
+							<!-- 1-开 2-关 -->
+							<view class="value value_1" v-if="item.state == 1"></view>
+							<view class="value value_2" v-if="item.state == 2"></view>
+						</view>
+					</view>
+				</view>
+				
+				<view class="state_section two_row_state">
+					<view class="title">
+						<view class="icon">
+							<image src="./icon/canshu.png" mode=""></image>
+						</view>
+						<view class="text">保护状态</view>
+					</view>
+					<view class="list">
+						<view class="state" v-for="(item,index) in data.hoist.protect_state" :key="index" @click="show_label(item.label)">
+							<view class="label">{{item.label}}</view>
+							<!-- 1-开 2-关 -->
+							<view class="value value_1" v-if="item.state == 1"></view>
+							<view class="value value_2" v-if="item.state == 2"></view>
+						</view>
+					</view>
+				</view>
+				
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import data from './man_car.json'
+
+	export default {
+		data() {
+			return {
+				mine_code:"",
+				system_type:"",
+				
+				// 数据刷新定时器
+				data_timer:{},
+				data: null
+			};
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title:option.name
+			})
+			this.mine_code = option.mine_code
+			this.system_type = option.system_type
+			
+			this.get_data()
+			this.data_timer = setInterval(()=>{
+				this.get_data()
+			},5000)
+		},
+		onUnload() {
+			clearInterval(this.data_timer)
+		},
+		methods: {
+			get_data(){
+				this.$api.unified_automation_system({
+					mine_code: this.mine_code,
+					system_type: this.system_type
+				}).then((res)=>{
+					console.log(res.data)
+					this.data = res.data
+				})
+			},
+			show_item(item) {
+				uni.showToast({
+					icon: "none",
+					title: item.label + "  " + item.value + "  " + item.unit
+				})
+			},
+			show_label(label){
+				uni.showToast({
+					icon: "none",
+					title: label
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #0B163B;
+		box-sizing: border-box;
+		padding: 30rpx 10rpx;
+	}
+
+	.common {
+		margin: 0 auto;
+		width: 700rpx;
+	
+		background-image: url(./icon/common.png);
+		background-size: 100% 100%;
+		background-repeat: no-repeat;
+	
+		box-sizing: border-box;
+		padding: 40rpx;
+	
+		display: flex;
+		flex-wrap: wrap;
+		justify-content: space-between;
+	
+		.item {
+			width: 300rpx;
+			height: 50rpx;
+			display: flex;
+			justify-content: space-between;
+	
+			color: #4CB1FF;
+			font-size: 28rpx;
+	
+			.label {
+				width: 110rpx;
+	
+				text-overflow: ellipsis;
+				white-space: nowrap;
+				overflow: hidden;
+			}
+	
+			.value {
+				width: 110rpx;
+				height: 40rpx;
+				box-sizing: border-box;
+				padding: 0 10rpx;
+				background: rgba(0, 4, 15, 0.36);
+				border: 2rpx solid #3D55A5;
+	
+				color: #FFF600;
+				font-size: 24rpx;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+				overflow: hidden;
+			}
+	
+			.unit {
+				width: 50rpx;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+				overflow: hidden;
+			}
+		}
+	}
+	
+
+	.content {
+		margin-top: 40rpx;
+
+		.hoist {
+			margin: 0 auto;
+			width: 700rpx;
+
+			.box {
+				text-align: center;
+
+				image {
+					width: 350rpx;
+					height: 194rpx;
+				}
+			}
+
+			.name {
+				margin-top: 20rpx;
+				text-align: center;
+				color: #DEF1FF;
+				font-size: 34rpx;
+				font-weight: 700;
+			}
+
+			.parameter {
+				box-sizing: border-box;
+				margin-top: 40rpx;
+
+				.title {
+					margin: 0 auto;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+
+					width: 230rpx;
+					height: 60rpx;
+					background-image: url(./icon/border.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+
+					.icon {
+						margin-right: 20rpx;
+
+						image {
+							width: 30rpx;
+							height: 30rpx;
+						}
+					}
+
+					.text {
+						color: #00FFF6;
+						font-size: 30rpx;
+					}
+				}
+
+				.list {
+					margin-top: 40rpx;
+
+					.item {
+						height: 60rpx;
+						display: flex;
+
+						color: #4CB1FF;
+						font-size: 28rpx;
+
+						.label {
+							width: 200rpx;
+							text-align: justify;
+							text-align-last: justify;
+
+							text-overflow: ellipsis;
+							white-space: nowrap;
+							overflow: hidden;
+						}
+
+						.value {
+							margin: 0 40rpx;
+							width: 200rpx;
+							height: 40rpx;
+							box-sizing: border-box;
+							padding: 0 10rpx;
+							background: rgba(0, 4, 15, 0.36);
+							border: 2rpx solid #3D55A5;
+
+							color: #FFF600;
+							font-size: 24rpx;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+							overflow: hidden;
+						}
+
+						.unit {
+							width: 100rpx;
+						}
+					}
+				}
+			}
+
+			.state_section {
+				margin-top: 40rpx;
+
+				.title {
+					margin: 20rpx auto;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+
+					width: 300rpx;
+					height: 60rpx;
+					background-image: url(./icon/border.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+
+					.icon {
+						margin-right: 20rpx;
+
+						image {
+							width: 30rpx;
+							height: 30rpx;
+						}
+					}
+
+					.text {
+						color: #00FFF6;
+						font-size: 30rpx;
+					}
+				}
+
+				.list {
+					overflow: hidden;
+
+					.state {
+						box-sizing: border-box;
+
+						float: left;
+						margin-right: 20rpx;
+						width: 160rpx;
+						height: 70rpx;
+						display: flex;
+						align-items: center;
+
+						.label {
+							width: 80rpx;
+							color: #4CB1FF;
+							font-size: 28rpx;
+							
+							text-align: justify;
+							text-align-last: justify;
+
+							text-overflow: ellipsis;
+							white-space: nowrap;
+							overflow: hidden;
+						}
+
+						.value {
+							margin-left: 20rpx;
+							width: 40rpx;
+							height: 40rpx;
+							border-radius: 50%;
+						}
+
+						.value_1 {
+							background-color: #00FF00;
+						}
+
+						.value_2 {
+							background-color: #DCDCDC;
+						}
+					}
+
+					.state:nth-child(4n) {
+						margin-right: 0;
+					}
+				}
+			}
+
+			.system_signal {
+				.list {
+					overflow: hidden;
+					.state {
+						margin-right: 30rpx;
+						width: 210rpx;
+
+						.label {
+							width: 140rpx;
+						}
+
+					}
+					.state:nth-child(3n){
+						margin-right: 0;
+					}
+					.state:nth-child(4n) {
+						margin-right: 30rpx;
+					}
+				}
+			}
+			
+			.two_row_state{
+				.list {
+					display: flex;
+					flex-wrap: wrap;
+					justify-content: space-between;
+
+					.state {
+						margin-right: 0;
+						width: 350rpx;
+
+						.label {
+							width: 200rpx;
+							margin-right: 40rpx;
+						}
+
+					}
+				}
+			}
+		}
+	}
+</style>

二进制
pages/production/unified_automation_system/nitrogen_production_system/icon/border.png


二进制
pages/production/unified_automation_system/nitrogen_production_system/icon/canshu.png


二进制
pages/production/unified_automation_system/nitrogen_production_system/icon/nitrogen_production.png


+ 0 - 0
pages/production/unified_automation_system/nitrogen_production_system/icon/nitrogen_production_kai.gif


部分文件因为文件数量过多而无法显示