Browse Source

E信管理、二次整改完成。

tiandewen 3 years ago
parent
commit
12e78afac5
100 changed files with 7129 additions and 896 deletions
  1. 6 2
      App.vue
  2. 93 2
      common/common.js
  3. 2 0
      common/production-http/interface.js
  4. 33 0
      common/set_base_url.js
  5. 82 7
      common/vmeitime-http/api.js
  6. 8 0
      common/vmeitime-http/interface.js
  7. BIN
      components/.DS_Store
  8. 64 0
      components/e-video/e-video - 视频列表副本.vue
  9. 3 0
      components/e-video/e-video.vue
  10. 1 1
      components/origanizationTree/origanizationTree - 修改2.vue
  11. 1 1
      components/origanizationTree/origanizationTree - 副本.vue
  12. 4 27
      components/t-i-banner-2/t-i-banner-2.vue
  13. 118 0
      components/t-i-banner/t-i-banner - 标题与图片分离的备份.vue
  14. 31 40
      components/t-i-banner/t-i-banner.vue
  15. 1 1
      components/t-i-common/t-i-common.vue
  16. 298 0
      components/t-i-ice/t-i-ice.vue
  17. 7 48
      components/t-i-icon/t-i-icon.vue
  18. 190 0
      components/t-i-jinfeng/t-i-jinfeng.vue
  19. 6 4
      components/t-i-navbar-2/t-i-navbar-2.vue
  20. 18 6
      components/t-i-navbar/t-i-navbar.vue
  21. 3 1
      components/t-i-news/t-i-news.vue
  22. 9 8
      components/t-i-ningdongyunying/t-i-ningdongyunying.vue
  23. 3 3
      components/t-i-notice/t-i-notice.vue
  24. 211 0
      components/t-i-shicaocun/t-i-shicaocun.vue
  25. BIN
      components/t-o-news-tab-1/icon/icon.png
  26. BIN
      components/t-o-news-tab-1/icon/icon_active.png
  27. BIN
      components/t-o-news-tab-1/icon/icon_no.png
  28. BIN
      components/t-o-news-tab-1/icon/icon_ok.png
  29. 222 0
      components/t-o-news-tab-1/t-o-news-tab-1 - 下拉展开式已完成未完成.vue
  30. 1 2
      components/t-o-news-tab-1/t-o-news-tab-1 - 初始版本备份.vue
  31. 432 0
      components/t-o-news-tab-1/t-o-news-tab-1 - 单个统计图备份.vue
  32. 157 372
      components/t-o-news-tab-1/t-o-news-tab-1.vue
  33. 663 0
      components/t-o-news-tab-2/t-o-news-tab-2 - 一二级分类没有矿区选择.vue
  34. 683 0
      components/t-o-news-tab-2/t-o-news-tab-2 - 副本.vue
  35. 1 1
      components/t-o-news-tab-2/t-o-news-tab-2 - 大分类备份.vue
  36. 1 1
      components/t-o-news-tab-2/t-o-news-tab-2-UI备份.vue
  37. 150 93
      components/t-o-news-tab-2/t-o-news-tab-2.vue
  38. BIN
      components/t-o-news-tab-3/icon/btn_right.png
  39. BIN
      components/t-o-news-tab-3/icon/rank.png
  40. 184 0
      components/t-o-news-tab-3/t-o-news-tab-3 - 固定背景图版本.vue
  41. 27 50
      components/t-o-news-tab-3/t-o-news-tab-3.vue
  42. BIN
      components/t-o-news/icon/kqq.png
  43. BIN
      components/t-o-news/icon/kqq_active.png
  44. 13 3
      components/t-o-news/t-o-news.vue
  45. 3 1
      components/t-o-origanization/t-o-origanization.vue
  46. BIN
      components/t-p-icon/icon_14.png
  47. 5 1
      components/t-p-jinfeng/t-p-jinfeng.vue
  48. 16 1
      components/t-p-jinjiaqu/t-p-jinjiaqu.vue
  49. 16 3
      components/t-p-n-section-1/t-p-n-section-1.vue
  50. 5 1
      components/t-p-yangchangwan/t-p-yangchangwan.vue
  51. 89 0
      components/tree/tree.vue
  52. 20 5
      manifest.json
  53. 123 0
      pages.json
  54. 2 0
      pages/index/h5/h5.vue
  55. 39 0
      pages/index/ningMeiXinXiPingTai/ningMeiXinXiPingTai.vue
  56. 1 1
      pages/index/record/record.vue
  57. 22 0
      pages/index/xuanchuanzhanban/xuanchuanzhanban.vue
  58. 12 0
      pages/my/download/download.vue
  59. 3 1
      pages/my/forget-password/forget-password.vue
  60. 6 1
      pages/my/login/login.vue
  61. 23 0
      pages/my/personal_information/personal_information - h5副本.vue
  62. 652 5
      pages/my/personal_information/personal_information - 副本.vue
  63. 4 55
      pages/my/personal_information/personal_information.vue
  64. 90 0
      pages/my/personal_information/upload_avatar/upload_avatar.vue
  65. 2 2
      pages/ningdongyunying/production_map/production_map.vue
  66. 1 1
      pages/origanization/OA/approval_list/approval/approval.vue
  67. 56 0
      pages/origanization/OA/h5/h5-测试获取位置.vue
  68. 31 10
      pages/origanization/OA/h5/h5.vue
  69. 7 3
      pages/origanization/communication/origanization/origanization.vue
  70. 3 1
      pages/origanization/communication/origanization/search/search.vue
  71. 0 0
      pages/origanization/news/tab_1/all_list/all_list - UI副本.vue
  72. 167 0
      pages/origanization/news/tab_1/all_list/all_list - 统计图列表备份.vue
  73. 22 12
      pages/origanization/news/tab_1/all_list/all_list-竖屏表格.vue
  74. 212 110
      pages/origanization/news/tab_1/all_list/all_list.vue
  75. 0 0
      pages/origanization/news/tab_1/statistical_chart/icon/active.png
  76. 0 0
      pages/origanization/news/tab_1/statistical_chart/icon/btn.png
  77. BIN
      pages/origanization/news/tab_1/statistical_chart/icon/menu.png
  78. BIN
      pages/origanization/news/tab_1/statistical_chart/icon/new.png
  79. 0 0
      pages/origanization/news/tab_1/statistical_chart/icon/right_icon.png
  80. 644 0
      pages/origanization/news/tab_1/statistical_chart/statistical_chart.vue
  81. 13 2
      pages/origanization/news/tab_2/all_list/all_list.vue
  82. 0 6
      pages/origanization/news/tab_2/all_list/detail/detail.vue
  83. 1 1
      pages/origanization/news/tab_3/h5/h5.vue
  84. 155 0
      pages/origanization/news/tab_3/pin_tu/finish/finish - UI副本.vue
  85. 201 0
      pages/origanization/news/tab_3/pin_tu/finish/finish.vue
  86. BIN
      pages/origanization/news/tab_3/pin_tu/finish/icon/again.png
  87. BIN
      pages/origanization/news/tab_3/pin_tu/finish/icon/detail.png
  88. BIN
      pages/origanization/news/tab_3/pin_tu/finish/icon/icon.png
  89. BIN
      pages/origanization/news/tab_3/pin_tu/finish/icon/rank.png
  90. 190 0
      pages/origanization/news/tab_3/pin_tu/game_play/game_play - UI副本.vue
  91. 205 0
      pages/origanization/news/tab_3/pin_tu/game_play/game_play.vue
  92. BIN
      pages/origanization/news/tab_3/pin_tu/game_play/icon/pic_icon.png
  93. BIN
      pages/origanization/news/tab_3/pin_tu/game_play/icon/time_bg.png
  94. BIN
      pages/origanization/news/tab_3/pin_tu/game_play/icon/time_icon.png
  95. BIN
      pages/origanization/news/tab_3/pin_tu/personal_rank/icon/icon_1.png
  96. BIN
      pages/origanization/news/tab_3/pin_tu/personal_rank/icon/icon_2.png
  97. BIN
      pages/origanization/news/tab_3/pin_tu/personal_rank/icon/icon_3.png
  98. 164 0
      pages/origanization/news/tab_3/pin_tu/personal_rank/personal_rank - UI副本.vue
  99. 198 0
      pages/origanization/news/tab_3/pin_tu/personal_rank/personal_rank.vue
  100. 0 0
      pages/origanization/news/tab_3/pin_tu/picture_list/icon/lock.png

+ 6 - 2
App.vue

@@ -1,5 +1,8 @@
 <script>
 	import time from "@/common/time.js"
+	import {
+		set_base_url
+	} from '@/common/set_base_url.js'
 
 	export default {
 		onLaunch: function() {
@@ -14,9 +17,10 @@
 			// uni.setStorageSync('mine_code', 'qingshuiying');
 			// uni.setStorageSync('mine_code', 'wuyegongsi');
 			// uni.setStorageSync('mine_code', 'jinjiaqu');
+			// uni.setStorageSync('mine_code', 'jinjiaqu_neiwang');
 			// uni.setStorageSync('mine_code', 'yangchangwan');
-
-
+			// uni.setStorageSync('mine_code', 'jinfeng');
+			// uni.setStorageSync('mine_code', 'jinfeng_neiwang');
 		},
 		onShow: function() {
 			console.log('App Show')

+ 93 - 2
common/common.js

@@ -1,7 +1,6 @@
 export const goToLink = (item, mine_code) => {
 
 	let link = item.link
-	console.log(link)
 	// OA系统
 	if (link.indexOf("oa_system.nxjiewei.com") != -1) {
 		uni.navigateTo({
@@ -38,6 +37,8 @@ export const goToLink = (item, mine_code) => {
 		uni.navigateTo({
 			url: "../../index/record/record?pageId=" + pageId + "&mine_code=" + mine_code,
 		})
+
+		return
 	}
 
 	// h5
@@ -101,6 +102,8 @@ export const goToLink = (item, mine_code) => {
 			})
 		}
 		// #endif
+
+		return
 	}
 
 
@@ -112,12 +115,100 @@ export const goToLink = (item, mine_code) => {
 			uni.navigateTo({
 				url: "../../workbench/gridding/gridding"
 			})
-		} else if (link.indexOf("/wordorder/wordOrderGrid_win") != -1) {
+		}
+
+		if (link.indexOf("/wordorder/wordOrderGrid_win") != -1) {
 			console.log(link)
 			uni.navigateTo({
 				url: "../../index/business_approval/business_approval"
 			})
 		}
+
+		if (link.indexOf("app:/workBench/origanization") != -1) {
+			console.log("组织架构、通讯录")
+			uni.navigateTo({
+				url: "../../workbench/origanization/origanization"
+			})
+		}
+
+		if (link.indexOf("app:/workBench/xuanchuanzhanban") != -1) {
+			console.log("宣传展板")
+			uni.navigateTo({
+				url: "../../index/xuanchuanzhanban/xuanchuanzhanban"
+			})
+		}
+
+		// 发票助手
+		if (link.indexOf("/workBench/invoice") != -1) {
+			console.log("发票助手")
+			uni.navigateTo({
+				url: "../../workbench/invoice_assistant/invoice_assistant"
+			})
+		}
+		if (link.indexOf("/news/news_win") != -1) {
+			console.log("通知公告")
+
+			uni.navigateTo({
+				url: "../../my/message-reminder/message-reminder"
+			})
+		}
+		if (link.indexOf("/workBench/getDuty") != -1) {
+			console.log("值班信息")
+
+			uni.navigateTo({
+				url: "../../workbench/duty_information/duty_information"
+			})
+		}
+		if (link.indexOf("/workBench/huiyiList") != -1) {
+			console.log("会议列表")
+			uni.navigateTo({
+				url: "../../workbench/meeting_arrangements/meeting_arrangements"
+			})
+		}
+		if (link.indexOf("/workBench/lifeCircleWin") != -1) {
+			console.log("生活圈")
+
+			uni.showToast({
+				icon: "none",
+				title: "暂未开通"
+			})
+		}
+		if (link.indexOf("/productionData/logging") != -1) {
+			console.log("下井记录")
+			// people_num 特殊值
+			if (!uni.getStorageSync('people_code')) {
+				uni.navigateTo({
+					url: "../../production/personnel_orientation/downhole_statistics/downhole_statistics?people_num=null&depart_name=" +
+						uni.getStorageSync('user').section + "&name=" + uni.getStorageSync('user')
+						.name + "&mine=640323B0011010019259"
+				})
+			} else {
+				uni.navigateTo({
+					url: "../../production/personnel_orientation/downhole_statistics/downhole_statistics?people_num=" +
+						uni.getStorageSync('user').people_code + "&depart_name=" + uni.getStorageSync(
+							'user').section + "&name=" + uni.getStorageSync('user').name +
+						"&mine=640323B0011010019259"
+				})
+			}
+
+		}
+		if (link.indexOf("/browseQrcode/gridSubmitItem_win") != -1) {
+			console.log("网格排查")
+			uni.navigateTo({
+				url: "../../workbench/gridding/gridding"
+			})
+		}
+		if (link.indexOf("/workBench/evaluate") != -1) {
+			console.log("干部评测")
+			uni.navigateTo({
+				url: "../../workbench/h5/h5?mine_code=" + mine_code + "&workBench=pingce"
+			})
+		}
+		if (link.indexOf("/productionData/persnoalLocation") != -1) {
+			uni.navigateTo({
+				url: "../../production/personnel_orientation/personnel_orientation?mine=640181B0011010030750"
+			})
+		}
 	} else {
 		console.log(link)
 	}

+ 2 - 0
common/production-http/interface.js

@@ -34,6 +34,8 @@ http.delete('user/1').then((res)=>{
 export default {
 	config: {
 		baseUrl: "http://nmjt.nxjiewei.com:8011/api",
+		// 内网
+		// baseUrl: "http://n.nmjt.nxjiewei.com:8011/api",
 		header: {
 			"Content-Type":"multipart/form-data",
 			'Content-Type':'application/json;charset=UTF-8',

+ 33 - 0
common/set_base_url.js

@@ -17,6 +17,9 @@ export const set_base_url = (mine_code) => {
 		case 'jinfeng':
 			return "http://jinfeng.nxjiewei.com:8011/api"
 			break;
+		case 'jinfeng_neiwang':
+			return "http://n.jinfeng.nxjiewei.com:8011/api"
+			break;
 		case 'xixuan':
 			return "http://xixuan.nxjiewei.com:8011/api"
 			break;
@@ -29,6 +32,12 @@ export const set_base_url = (mine_code) => {
 		case 'jinjiaqu':
 			return "http://jinjiaqu.nxjiewei.com:8011/api"
 			break;
+		case 'jinjiaqu_neiwang':
+			return "http://n.jinjiaqu.nxjiewei.com:8011/api"
+			break;
+		case 'shicaocun':
+			return "http://shicaocun.nxjiewei.com:8011/api"
+			break;
 		default:
 			return ""
 	}
@@ -55,6 +64,18 @@ export const set_appName = (mine_code) => {
 		case 'jinjiaqu':
 			return "智慧金家渠"
 			break;
+		case 'jinjiaqu_neiwang':
+			return "智慧金家渠"
+			break;
+		case 'shicaocun':
+			return "智慧石槽村"
+			break;
+		case 'jinfeng':
+			return "智慧金凤"
+			break;
+		case 'jinfeng_neiwang':
+			return "智慧金凤(内网)"
+			break;
 		default:
 			return ""
 	}
@@ -80,6 +101,18 @@ export const set_mine = (mine_code) => {
 		case 'jinjiaqu':
 			return "640323B0011010019259"
 			break;
+		case 'jinjiaqu_neiwang':
+			return "640323B0011010019259"
+			break;
+		case 'shicaocun':
+			return "640181B0011010018668"
+			break;
+		case 'jinfeng':
+			return "640323B0011010027334"
+			break;
+		case 'jinfeng_neiwang':
+			return "640323B0011010027334"
+			break;
 		default:
 			return ""
 	}

+ 82 - 7
common/vmeitime-http/api.js

@@ -537,11 +537,52 @@ export const jigsawPuzzle_specialList = (data) => {
 		data,
 	})
 }
-// 拼图排行
-export const jigsawPuzzle_getRankingById = (data) => {
+// 拼图专题排行
+export const jigsawPuzzle_getRankingBySpecialId = (data) => {
 	return http.request({
 		method: "POST",
-		url: '/jigsawPuzzle/getRankingById',
+		url: '/jigsawPuzzle/getRankingBySpecialId',
+		data,
+	})
+}
+// 专题进度信息
+export const jigsawPuzzle_getPercentCompleteData = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/jigsawPuzzle/getPercentCompleteData',
+		data,
+	})
+}
+// 图片列表
+export const jigsawPuzzle_pictureList = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/jigsawPuzzle/pictureList',
+		data,
+	})
+}
+// 完成拼图,上传成绩
+export const jigsawPuzzle_completeJigsawPuzzle = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/jigsawPuzzle/completeJigsawPuzzle',
+		data,
+	})
+}
+// 获取图片详情信息
+export const jigsawPuzzle_getPictureDetail = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/jigsawPuzzle/getPictureDetail',
+		data,
+	})
+}
+
+// 单图排行
+export const jigsawPuzzle_getRankingByPictureId = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/jigsawPuzzle/getRankingByPictureId',
 		data,
 	})
 }
@@ -559,10 +600,10 @@ export const five_fixed_fiveFixed = (data) => {
 	})
 }
 // 五定表分类
-export const five_fixed_fiveFixedCategory = (data) => {
+export const five_fixed_getMenuDataByKQName = (data) => {
 	return http.request({
 		method: "POST",
-		url: '/five_fixed/fiveFixedCategory',
+		url: '/five_fixed/getMenuDataByKQName',
 		data,
 	})
 }
@@ -598,6 +639,15 @@ export const five_fixed_getYesOrNoDataByTableName = (data) => {
 		data,
 	})
 }
+// 闭环管理统计列表
+export const five_fixed_fiveFixedNewCategory = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/five_fixed/fiveFixedNewCategory',
+		data,
+	})
+}
+
 
 
 
@@ -617,7 +667,14 @@ export const five_fixed_getRecordDataByTableName = (data) => {
 		data,
 	})
 }
-
+// 矿区圈
+export const five_fixed_fiveFixedKQ = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/five_fixed/fiveFixedKQ',
+		data,
+	})
+}
 
 // 申请列表
 export const workflow_get_all_list = (data) => {
@@ -799,4 +856,22 @@ export const mtcxy_getMTYPHData = (data) => {
 		url: '/mtcxy/getMTYPHData',
 		data,
 	})
-}
+}
+
+// OA定位
+export const workflow_save_location = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/workflow/save_location',
+		data,
+	})
+}
+
+// 金家渠 矿压监测
+export const pressure_realtime_record = (data) => {
+	return http.request({
+		method: "POST",
+		url: '/pressure/realtime_record',
+		data,
+	})
+}

+ 8 - 0
common/vmeitime-http/interface.js

@@ -35,11 +35,19 @@ export default {
 	config: {
 		// baseUrl: "http://colliery.nxjiewei.com/api",
 		baseUrl: "http://ningdongyunying.nxjiewei.com:8011/api",
+		// baseUrl: "http://shicaocun.nxjiewei.com:8011/api",
 		// baseUrl: "http://zaoquan.nxjiewei.com:8011/api",
 		// baseUrl: "http://qingshuiying.nxjiewei.com:8011/api",
 		// baseUrl: "http://wuyegongsi.nxjiewei.com:8011/api",
 		// baseUrl: "http://jinjiaqu.nxjiewei.com:8011/api",
+		// 金家渠:内网
+		// baseUrl: "http://n.jinjiaqu.nxjiewei.com:8011/api",
 		// baseUrl: "http://yangchangwan.nxjiewei.com:8011/api",
+		// baseUrl: "http://jinfeng.nxjiewei.com:8011/api",
+		// 金凤:内网
+		// baseUrl: "http://n.jinfeng.nxjiewei.com:8011/api",
+		
+		// baseUrl: uni.getStorageSync('base_url'),
 		header: {
 			"Content-Type":"multipart/form-data",
 			'Content-Type':'application/json;charset=UTF-8',

BIN
components/.DS_Store


+ 64 - 0
components/e-video/e-video - 视频列表副本.vue

@@ -0,0 +1,64 @@
+<template>
+	<view>
+		<view class="videoList">
+			<view class="title">{{videoList[0].title}}</view>
+			<view class="list">
+				<view class="item" v-for="item in videoList" :key="item.id">
+					<view class="name">{{item.videoName}}</view>
+					<view class="icon" @click="detail(item.videoUrl,item.videoName)">
+						<uni-icons type="videocam" size="24" color="#009FE8"></uni-icons>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props:[
+			"videoList"
+		],
+		data() {
+			return {
+				
+			};
+		},
+		methods:{
+			detail(path,name){
+				console.log(path)
+				uni.navigateTo({
+					url:"../../index/record/record-video/record-video?name=" + name + "&url=" + path
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.videoList{
+		.title{
+			line-height: 30px;
+			border-left: 4px solid #009FE8;
+			border-radius: 4px;
+			padding-left: 10px;
+			margin-bottom: 10px;
+		}.list{
+			.item{
+				padding: 20rpx 25rpx;
+				border-bottom: 1rpx solid #f4f4f4;
+				
+				display: flex;
+				justify-content: space-between;
+				.name{
+					white-space: nowrap;
+					overflow: hidden; 
+					text-overflow:ellipsis;
+				}
+				.icon{
+					padding-left: 50rpx;
+				}
+			}
+		}
+	}
+</style>

+ 3 - 0
components/e-video/e-video.vue

@@ -9,6 +9,9 @@
 						<uni-icons type="videocam" size="24" color="#009FE8"></uni-icons>
 					</view>
 				</view>
+				<!-- <view class="item" v-for="item in videoList" :key="item.id">
+					<video :src="item.videoUrl" controls style="width: 100%;"></video>
+				</view> -->
 			</view>
 		</view>
 	</view>

+ 1 - 1
components/origanizationTree/origanizationTree - 修改2.vue

@@ -16,7 +16,7 @@
 						<uni-icons type="eye"></uni-icons>
 					</view>
 				</view>
-				<view class="list" v-for="(item_2,index_2) in item.children"  v-if="!item_2.children && active == index">
+				<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>

+ 1 - 1
components/origanizationTree/origanizationTree - 副本.vue

@@ -1,6 +1,6 @@
 <template>
 	<view>
-		<view class="section" v-for="(item,index) in list">
+		<view class="section" v-for="(item,index) in list" :key="index">
 			<view class="box">
 				<view class="box_item">
 					<view class="box_item_left">

+ 4 - 27
components/t-i-banner-2/t-i-banner-2.vue

@@ -21,6 +21,7 @@
 </template>
 
 <script>
+	import {goToLink} from "@/common/common.js"
 	export default {
 		name:"t-i-banner-2",
 		props: [
@@ -36,35 +37,11 @@
 			go_link(link){
 				console.log(link)
 				
-				// 二维码
-				if (link.indexOf("pageId") != -1 && link.indexOf("app:") == -1) {
-					let pageId = ""
-				
-					function GetQueryString(name) {
-						var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
-						var r = link.match(reg);
-						if (r != null) return unescape(r[2]);
-						return null;
-					}
-					console.log(GetQueryString("pageId"))
-					if (GetQueryString("pageId")) {
-						pageId = GetQueryString("pageId")
-					} else {
-						pageId = link.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) {
-					console.log("H5")
-					uni.navigateTo({
-						url:"../../index/h5/h5?url=" + link
-					})
+				let item = {
+					link:link
 				}
-
 				
+				goToLink(item,this.mine_code)
 			}
 		}
 	}

+ 118 - 0
components/t-i-banner/t-i-banner - 标题与图片分离的备份.vue

@@ -0,0 +1,118 @@
+<template>
+	<view>
+		<view class="banner">
+			<swiper class="box" autoplay circular @animationfinish="animationfinish">
+				<swiper-item v-for="(item,index) in banner" :key="item.id" @click="go_link(item.jumpURL)">
+					<view class="item">
+						<view class="img">
+							<image :src="item.imgURL"></image>
+						</view>
+						<view class="title">
+							<view>{{item.title}}</view>
+							<view class="num">
+								— <text> {{index+1}} </text> —
+							</view>
+						</view>
+					</view>
+				</swiper-item>
+			</swiper>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name:"t-i-banner",
+		props: [
+			"banner",
+			"mine_code"
+		],
+		data() {
+			return {
+				
+			}
+		},
+		methods:{
+			go_link(link){
+				console.log(link)
+				
+				// 二维码
+				if (link.indexOf("pageId") != -1 && link.indexOf("app:") == -1) {
+					let pageId = ""
+				
+					function GetQueryString(name) {
+						var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+						var r = link.match(reg);
+						if (r != null) return unescape(r[2]);
+						return null;
+					}
+					console.log(GetQueryString("pageId"))
+					if (GetQueryString("pageId")) {
+						pageId = GetQueryString("pageId")
+					} else {
+						pageId = link.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) {
+					console.log("H5")
+					uni.navigateTo({
+						url:"../../index/h5/h5?url=" + link
+					})
+				}
+
+				
+			},
+			animationfinish($event){
+				this.$emit('change_top_bg_color_img',$event.detail.current)
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.banner{
+		margin-top: -60rpx;
+		.box{
+			width: 750rpx;
+			height: 620rpx;
+			
+			.item{
+				width: 750rpx;
+				.img{
+					text-align: center;
+					image{
+						width: 700rpx;
+						height: 485rpx;
+						border-radius: 20rpx;
+						
+					}
+				}
+				.title{
+					box-sizing: border-box;
+					padding: 0 25rpx;
+					width: 750rpx;
+					height: 130rpx;
+					
+					line-height: 1.5;
+					font-size: 32rpx;
+					
+					position: relative;
+					
+					.num{
+						position: absolute;
+						bottom: 35rpx;
+						right: 25rpx;
+						color: #ACB0AC;
+						text{
+							color: #23A2EE;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 31 - 40
components/t-i-banner/t-i-banner.vue

@@ -2,15 +2,16 @@
 	<view>
 		<view class="banner">
 			<swiper class="box" autoplay circular @animationfinish="animationfinish">
-				<swiper-item v-for="(item,index) in banner" :key="item.id" @click="go_link(item.jumpURL)">
+				<swiper-item v-for="(item,index) in banner" :key="index" @click="go_link(item.jumpURL)">
 					<view class="item">
 						<view class="img">
-							<image :src="item.imgURL"></image>
+							<image :src="item.imgURL" mode="aspectFill"></image>
 						</view>
 						<view class="title">
-							<view>{{item.title}}</view>
+							<view class="text">{{item.title}}</view>
 							<view class="num">
-								— <text> {{index+1}} </text> —
+								<!-- — <text> {{index+1}} </text> — -->
+								<text>{{index+1}} / {{banner.length}}</text>
 							</view>
 						</view>
 					</view>
@@ -21,6 +22,7 @@
 </template>
 
 <script>
+	import {goToLink} from "@/common/common.js"
 	export default {
 		name:"t-i-banner",
 		props: [
@@ -36,35 +38,11 @@
 			go_link(link){
 				console.log(link)
 				
-				// 二维码
-				if (link.indexOf("pageId") != -1 && link.indexOf("app:") == -1) {
-					let pageId = ""
-				
-					function GetQueryString(name) {
-						var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
-						var r = link.match(reg);
-						if (r != null) return unescape(r[2]);
-						return null;
-					}
-					console.log(GetQueryString("pageId"))
-					if (GetQueryString("pageId")) {
-						pageId = GetQueryString("pageId")
-					} else {
-						pageId = link.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) {
-					console.log("H5")
-					uni.navigateTo({
-						url:"../../index/h5/h5?url=" + link
-					})
+				let item = {
+					link:link
 				}
-
 				
+				goToLink(item,this.mine_code)
 			},
 			animationfinish($event){
 				this.$emit('change_top_bg_color_img',$event.detail.current)
@@ -78,37 +56,50 @@
 		margin-top: -60rpx;
 		.box{
 			width: 750rpx;
-			height: 620rpx;
+			height: 430rpx;
 			
 			.item{
 				width: 750rpx;
+				
+				position: relative;
 				.img{
 					text-align: center;
 					image{
 						width: 700rpx;
-						height: 485rpx;
+						height: 400rpx;
 						border-radius: 20rpx;
 						
 					}
 				}
 				.title{
+					position: absolute;
+					left: 0;
+					bottom: 0;
+					
 					box-sizing: border-box;
-					padding: 0 25rpx;
+					padding: 15rpx 50rpx;
 					width: 750rpx;
-					height: 130rpx;
 					
 					line-height: 1.5;
 					font-size: 32rpx;
 					
-					position: relative;
+					display: flex;
+					justify-content: space-between;
+					
+					.text{
+						width: 520rpx;
+						color: #FFFFFF;
+						
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
+					}
 					
 					.num{
-						position: absolute;
-						bottom: 35rpx;
-						right: 25rpx;
 						color: #ACB0AC;
 						text{
-							color: #23A2EE;
+							// color: #23A2EE;
+							color: #FFFFFF;
 						}
 					}
 				}

+ 1 - 1
components/t-i-common/t-i-common.vue

@@ -63,7 +63,7 @@
 
 <style lang="scss">
 	.content {
-		margin-bottom: 30rpx;
+		margin-bottom: 20rpx;
 		background-color: #FFFFFF;
 
 		box-sizing: border-box;

+ 298 - 0
components/t-i-ice/t-i-ice.vue

@@ -0,0 +1,298 @@
+<template>
+	<view class="content">
+		<view class="nav">
+			<view class="item" v-for="(item,index) in iceList" :key="index" @click="go_link(item)">
+				<view class="icon">
+					<image :src="item.thumb" mode=""></image>
+				</view>
+				<view class="name">{{item.title}}</view>
+			</view>
+		</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"
+	import {diffTime} from "@/common/time.js"
+	import {goToLink} from "@/common/common.js"
+	
+	export default {
+		name: "t-i-ice",
+		props: [
+			"iceList",
+			"mine_code"
+		],
+		data() {
+			return {
+				staff_num: "",
+				password: "",
+
+				url: "",
+
+				app_id: "",
+				gps: "",
+				deviceID: "",
+				phoneType: ""
+			};
+		},
+		mounted() {
+			this.staff_num = uni.getStorageSync('user').staff_num
+		},
+		methods: {
+			maskClick() {
+				this.password = ""
+			},
+			// 宁煤信息平台
+			go_link(item) {
+				let link = item.link
+
+				if (link.indexOf("nativeApp://") != -1) {
+					let app_name = link.match(/nativeApp:\/\/(\S*)\?/)[1]
+					let app_down_link = link.split('?')[1]
+
+					// #ifdef APP
+					if (plus.os.name == 'Android') {
+
+						plus.runtime.launchApplication({
+							pname: app_name
+						}, (e) => {
+							console.log('Open system default browser failed: ' + e.message)
+
+							uni.showModal({
+								title: app_name,
+								content: '未安装此应用、是否下载?',
+								success: (res)=> {
+									if (res.confirm) {
+										console.log('用户点击确定');
+										
+										uni.navigateTo({
+											url:"../../index/h5/h5?url="+app_down_link
+										})
+									} else if (res.cancel) {
+										console.log('用户点击取消');
+									}
+								}
+							});
+						})
+					}
+					// #endif
+				} else if (link.indexOf("http://mtyyxs.shnxmyjt.com") != -1) {
+					console.log("信息平台")
+
+					this.url = item
+					// 有登录记录
+					let token = uni.getStorageSync('ningmei_token')
+					let time = uni.getStorageSync('ningmei_token_time')
+					// 30天刷新一次
+					let diffTimeShow = diffTime(time,new Date().format("yyyy-MM-dd")).split(' ')[0];
+					console.log(diffTimeShow)
+					if (token.length > 20 && diffTimeShow < 30) {
+						uni.navigateTo({
+							url: "../../index/ningMeiXinXiPingTai/ningMeiXinXiPingTai",
+							success: (res) => {
+								// 通过eventChannel向被打开页面传送数据
+								res.eventChannel.emit('acceptDataFromOpenerPage', {
+									data: this.url
+								})
+							}
+						})
+					} else {
+						this.$refs.popup.open()
+					}
+				}else{
+					goToLink(item,this.mine_code)
+				}
+			
+				
+			},
+
+			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">
+	.content {
+		margin-bottom: 20rpx;
+		background-color: #FFFFFF;
+
+		box-sizing: border-box;
+		padding: 50rpx 25rpx 15rpx;
+	}
+
+	.nav {
+		overflow: hidden;
+
+		.item {
+			float: left;
+			width: 120rpx;
+
+			margin-right: 25rpx;
+			margin-bottom: 30rpx;
+
+			.icon {
+				width: 120rpx;
+				text-align: center;
+
+				image {
+					width: 100rpx;
+					height: 100rpx;
+					border-radius: 50%;
+				}
+			}
+
+			.name {
+				width: 120rpx;
+				text-align: center;
+				font-size: 30rpx;
+
+				white-space: nowrap;
+				overflow: hidden;
+				text-overflow: ellipsis;
+			}
+		}
+
+		.item:nth-child(5n) {
+			margin-right: 0;
+		}
+	}
+
+	.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>

+ 7 - 48
components/t-i-icon/t-i-icon.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<view class="nav">
-			<view class="item" v-for="(item,index) in iconList.arr" :key="index">
+			<view class="item" v-for="(item,index) in iconList.arr" :key="index" @click="go_link(item)">
 				<view class="icon">
 					<image :src="item.icon" mode=""></image>
 				</view>
@@ -25,6 +25,7 @@
 </template>
 
 <script>
+	import {goToLink} from "@/common/common.js"
 	export default {
 		name: "t-i-icon",
 		props: [
@@ -39,52 +40,8 @@
 		methods: {
 
 			go_link(item) {
-				let link = item.link
-				console.log(link)
-
-				// 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 pageId = ""
-
-					function GetQueryString(name) {
-						var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
-						var r = link.match(reg);
-						if (r != null) return unescape(r[2]);
-						return null;
-					}
-					console.log(GetQueryString("pageId"))
-					if (GetQueryString("pageId")) {
-						pageId = GetQueryString("pageId")
-					} else {
-						pageId = link.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/h5/h5?url=" + link
-					})
-				}
+				
+				goToLink(item,this.mine_code)
 
 			}
 		}
@@ -93,7 +50,7 @@
 
 <style lang="scss">
 	.content {
-		margin-bottom: 30rpx;
+		margin-bottom: 20rpx;
 		background-color: #FFFFFF;
 
 		box-sizing: border-box;
@@ -117,6 +74,7 @@
 				image {
 					width: 100rpx;
 					height: 100rpx;
+					border-radius: 50%;
 				}
 			}
 
@@ -161,6 +119,7 @@
 					image {
 						width: 104rpx;
 						height: 104rpx;
+						border-radius: 50%;
 					}
 				}
 

+ 190 - 0
components/t-i-jinfeng/t-i-jinfeng.vue

@@ -0,0 +1,190 @@
+<template>
+	<view class="content">
+		<view class="section_1">
+			<view class="tab">
+				<view class="title" @click="change_active(1)" :class="active==1?'active':''">机关部室</view>
+				<view class="title" @click="change_active(2)" :class="active==2?'active':''">基层区队</view>
+			</view>
+			<view class="list">
+				<view class="item" v-for="(item,index) in list.children" :key="index" @click="go_record(item)">
+					{{item.title}}
+				</view>
+			</view>
+		</view>
+
+
+
+	</view>
+</template>
+
+<script>
+	import {goToLink} from "@/common/common.js"
+	
+	export default {
+		name: "t-i-jinjiaqu",
+		props: [
+			"mine_code"
+		],
+		data() {
+			return {
+				active: 1,
+				list: [],
+				list_1: [],
+				list_2: [],
+
+				// 图片链接
+				list_3: [],
+				// 快速通道
+				list_4: []
+			};
+		},
+		created() {
+			this.get_home_link()
+		},
+		methods: {
+			change_active(item) {
+				this.active = item
+
+				if (item == 1) {
+					this.list = this.list_1
+				} else if (item == 2) {
+					this.list = this.list_2
+				}
+			},
+
+			get_home_link() {
+				this.$api.home_link({
+
+				}).then((res) => {
+					console.log(res.data.data)
+
+					// 机关部室
+					this.list = res.data.data[0]
+					this.list_1 = res.data.data[0]
+					// 基层区队
+					this.list_2 = res.data.data[1]
+				})
+			},
+			go_record(item) {
+				goToLink(item,this.mine_code)
+
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		margin-top: 20rpx;
+		background-color: #FFFFFF;
+	}
+
+	.section_1 {
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		.tab {
+			display: flex;
+			justify-content: space-around;
+
+			.title {
+				line-height: 80rpx;
+				font-weight: 700;
+			}
+
+			.active {
+				color: #009fe8;
+				border-bottom: 6rpx solid #009fe8;
+			}
+		}
+
+		.list {
+			margin-top: 30rpx;
+			overflow: hidden;
+
+			.item {
+				float: left;
+				margin-right: 20rpx;
+				margin-bottom: 30rpx;
+
+				width: 160rpx;
+				box-sizing: border-box;
+				border: 2rpx solid #009fe8;
+				border-radius: 20rpx;
+				font-size: 28rpx;
+				line-height: 70rpx;
+				//超过一行省略号
+				overflow: hidden;
+				white-space: nowrap;
+				text-overflow: ellipsis;
+
+				padding: 0 10rpx;
+				background-color: #66C7F218;
+				color: #009FE8;
+
+				text-align: center;
+			}
+
+			.item:nth-child(4n) {
+				margin-right: 0;
+			}
+		}
+
+	}
+
+	.section_2 {
+		box-sizing: border-box;
+		padding: 0 25rpx;
+
+		.list {
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+
+			.item {
+				margin-bottom: 20rpx;
+				width: 340rpx;
+				height: 180rpx;
+
+				border-radius: 20rpx;
+				overflow: hidden;
+
+				image {
+					width: 340rpx;
+					height: 180rpx;
+				}
+			}
+		}
+	}
+
+	.section_3 {
+		box-sizing: border-box;
+		padding: 0 25rpx;
+
+		.title {
+			line-height: 120rpx;
+			font-size: 36rpx;
+			font-weight: 700;
+		}
+
+		.list {
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+
+			.item {
+				margin-bottom: 20rpx;
+				width: 340rpx;
+				height: 220rpx;
+
+				border-radius: 20rpx;
+				overflow: hidden;
+
+				image {
+					width: 340rpx;
+					height: 220rpx;
+				}
+			}
+		}
+	}
+</style>

+ 6 - 4
components/t-i-navbar-2/t-i-navbar-2.vue

@@ -11,22 +11,24 @@
 					<image v-if="mine_code == 'zaoquan'" src="./icon/zaoquan.png" mode=""></image>
 					<image v-if="mine_code == 'yangchangwan'" src="@/static/switch-kuang/yangchangwan.png" mode=""></image>
 					<image v-if="mine_code == 'meihuajing'" src="@/static/switch-kuang/meihuajing.png" mode=""></image>
-					<image v-if="mine_code == 'jinfeng'" src="@/static/switch-kuang/jinfeng.png" mode=""></image>
+					<image v-if="mine_code == 'jinfeng' || mine_code == 'jinfeng_neiwang'" src="@/static/switch-kuang/jinfeng.png" mode=""></image>
 					<image v-if="mine_code == 'xixuan'" src="@/static/switch-kuang/xixuan.png" mode=""></image>
 					<image v-if="mine_code == 'qingshuiying'" src="@/static/switch-kuang/qingshuiying.png" mode=""></image>
 					<image v-if="mine_code == 'wuyegongsi'" src="@/static/switch-kuang/wuyegongsi.png" mode=""></image>
-					<image v-if="mine_code == 'jinjiaqu'" src="@/static/switch-kuang/jinjiaqu.png" mode=""></image>
+					<image v-if="mine_code == 'jinjiaqu' || mine_code == 'jinjiaqu_neiwang'" src="@/static/switch-kuang/jinjiaqu.png" mode=""></image>
+					<image v-if="mine_code == 'shicaocun'" src="@/static/switch-kuang/shicaocun.png" mode=""></image>
 					<uni-icons type="arrowdown" color="#fff"></uni-icons>
 				</view>
 				<!-- <view class="left">
 					<image v-if="mine_code == 'zaoquan'" src="./icon/zaoquan.png" mode=""></image>
 					<image v-if="mine_code == 'yangchangwan'" src="@/static/switch-kuang/yangchangwan.png" mode=""></image>
 					<image v-if="mine_code == 'meihuajing'" src="@/static/switch-kuang/meihuajing.png" mode=""></image>
-					<image v-if="mine_code == 'jinfeng'" src="@/static/switch-kuang/jinfeng.png" mode=""></image>
+					<image v-if="mine_code == 'jinfeng' || mine_code == 'jinfeng_neiwang'" src="@/static/switch-kuang/jinfeng.png" mode=""></image>
 					<image v-if="mine_code == 'xixuan'" src="@/static/switch-kuang/xixuan.png" mode=""></image>
 					<image v-if="mine_code == 'qingshuiying'" src="@/static/switch-kuang/qingshuiying.png" mode=""></image>
 					<image v-if="mine_code == 'wuyegongsi'" src="@/static/switch-kuang/wuyegongsi.png" mode=""></image>
-					<image v-if="mine_code == 'jinjiaqu'" src="@/static/switch-kuang/jinjiaqu.png" mode=""></image>
+					<image v-if="mine_code == 'jinjiaqu' || mine_code == 'jinjiaqu_neiwang'" src="@/static/switch-kuang/jinjiaqu.png" mode=""></image>
+					<image v-if="mine_code == 'shicaocun'" src="@/static/switch-kuang/shicaocun.png" mode=""></image>
 				</view> -->
 				<view class="search" v-if="mine_code != 'qingshuiying' && mine_code != 'wuyegongsi'">
 					<view class="box">

+ 18 - 6
components/t-i-navbar/t-i-navbar.vue

@@ -11,22 +11,24 @@
 					<image v-if="mine_code == 'zaoquan'" src="./icon/zaoquan.png" mode=""></image>
 					<image v-if="mine_code == 'yangchangwan'" src="@/static/switch-kuang/yangchangwan.png" mode=""></image>
 					<image v-if="mine_code == 'meihuajing'" src="@/static/switch-kuang/meihuajing.png" mode=""></image>
-					<image v-if="mine_code == 'jinfeng'" src="@/static/switch-kuang/jinfeng.png" mode=""></image>
+					<image v-if="mine_code == 'jinfeng' || mine_code == 'jinfeng_neiwang'" src="@/static/switch-kuang/jinfeng.png" mode=""></image>
 					<image v-if="mine_code == 'xixuan'" src="@/static/switch-kuang/xixuan.png" mode=""></image>
 					<image v-if="mine_code == 'qingshuiying'" src="@/static/switch-kuang/qingshuiying.png" mode=""></image>
 					<image v-if="mine_code == 'wuyegongsi'" src="@/static/switch-kuang/wuyegongsi.png" mode=""></image>
-					<image v-if="mine_code == 'jinjiaqu'" src="@/static/switch-kuang/jinjiaqu.png" mode=""></image>
+					<image v-if="mine_code == 'jinjiaqu' || mine_code == 'jinjiaqu_neiwang'" src="@/static/switch-kuang/jinjiaqu.png" mode=""></image>
+					<image v-if="mine_code == 'shicaocun'" src="@/static/switch-kuang/shicaocun.png" mode=""></image>
 					<uni-icons type="arrowdown" color="#fff"></uni-icons>
 				</view>
 				<!-- <view class="left">
 					<image v-if="mine_code == 'zaoquan'" src="./icon/zaoquan.png" mode=""></image>
 					<image v-if="mine_code == 'yangchangwan'" src="@/static/switch-kuang/yangchangwan.png" mode=""></image>
 					<image v-if="mine_code == 'meihuajing'" src="@/static/switch-kuang/meihuajing.png" mode=""></image>
-					<image v-if="mine_code == 'jinfeng'" src="@/static/switch-kuang/jinfeng.png" mode=""></image>
+					<image v-if="mine_code == 'jinfeng' || mine_code == 'jinfeng_neiwang'" src="@/static/switch-kuang/jinfeng.png" mode=""></image>
 					<image v-if="mine_code == 'xixuan'" src="@/static/switch-kuang/xixuan.png" mode=""></image>
 					<image v-if="mine_code == 'qingshuiying'" src="@/static/switch-kuang/qingshuiying.png" mode=""></image>
 					<image v-if="mine_code == 'wuyegongsi'" src="@/static/switch-kuang/wuyegongsi.png" mode=""></image>
-					<image v-if="mine_code == 'jinjiaqu'" src="@/static/switch-kuang/jinjiaqu.png" mode=""></image>
+					<image v-if="mine_code == 'jinjiaqu' || mine_code == 'jinjiaqu_neiwang'" src="@/static/switch-kuang/jinjiaqu.png" mode=""></image>
+					<image v-if="mine_code == 'shicaocun'" src="@/static/switch-kuang/shicaocun.png" mode=""></image>
 				</view> -->
 				<view class="search" v-if="mine_code != 'qingshuiying' && mine_code != 'wuyegongsi'">
 					<view class="box">
@@ -43,7 +45,7 @@
 				</view>
 				<view class="right">
 					<swiper class="box" autoplay circular vertical :interval="4000" :duration="1000">
-						<swiper-item class="item">
+						<swiper-item class="item" @click="go_tianqi()">
 							<view class="icon">
 								<image src="./icon/day.png" mode=""></image>
 							</view>
@@ -80,7 +82,9 @@
 				temperature_curr: "",
 
 				// 总积分
-				total: 0
+				total: 0,
+				
+				base_url:""
 			};
 		},
 		created() {
@@ -93,6 +97,8 @@
 					this.temperature_curr = res.data.result.temperature_curr
 				}
 			})
+			
+			this.base_url = uni.getStorageSync('base_url')
 
 			// 登录签到
 			this.add_staff_integral_increase()
@@ -176,6 +182,12 @@
 				uni.navigateTo({
 					url: "../../index/integral/integral?total=" + this.total
 				})
+			},
+			// 天气
+			go_tianqi(){
+				uni.navigateTo({
+					url: "../../index/h5/h5?url=https://xw.tianqi.qq.com/"
+				})
 			}
 		}
 	}

+ 3 - 1
components/t-i-news/t-i-news.vue

@@ -51,10 +51,12 @@
 
 <style lang="scss">
 	.content {
+		margin-top: 0;
+		margin-bottom: 20rpx;
 		background-color: #FFFFFF;
 
 		box-sizing: border-box;
-		padding: 50rpx 25rpx;
+		padding: 30rpx 25rpx;
 	}
 
 	.title {

+ 9 - 8
components/t-i-ningdongyunying/t-i-ningdongyunying.vue

@@ -31,9 +31,9 @@
 			</view>
 		</view>
 		
-		<view class="bottom" @click="go_h5()">
+		<!-- <view class="bottom" @click="go_h5()">
 			<image src="./icon/bottom.png" mode="aspectFit"></image>
-		</view>
+		</view> -->
 
 
 	</view>
@@ -81,6 +81,7 @@
 			},
 			go_h5(){
 				uni.navigateTo({
+					// http://ningdongyunying.nxjiewei.com:8011/assets/html/QRcoddetails/index.html?name=&uuid=&pageId=10ad4420d27b4146bafe43802f03d5c6&departmentID=
 					url:"../../index/h5/h5?url=" + "http://ningdongyunying.nxjiewei.com:8011/web/monitor/dispatch/center"
 				})
 			}
@@ -90,7 +91,7 @@
 
 <style lang="scss">
 	.content {
-		margin-top: 20rpx;
+		margin-top: 10rpx;
 		padding-bottom: 40rpx;
 		background-color: #FFFFFF;
 	}
@@ -196,15 +197,15 @@
 
 			.item {
 				margin-bottom: 20rpx;
-				width: 340rpx;
-				height: 220rpx;
+				width: 700rpx;
+				height: 240rpx;
 
-				border-radius: 20rpx;
+				border-radius: 10rpx;
 				overflow: hidden;
 
 				image {
-					width: 340rpx;
-					height: 220rpx;
+					width: 700rpx;
+					height: 240rpx;
 				}
 			}
 		}

+ 3 - 3
components/t-i-notice/t-i-notice.vue

@@ -8,7 +8,7 @@
 
 			<!-- 文字滚动 -->
 			<uni-notice-bar scrollable="true" :speed="20" background-color="#ffffff00" color="#fff" single="true"
-				:text="text"></uni-notice-bar>
+				:text="notice"></uni-notice-bar>
 				
 			<!-- <view class="more" @click="go_duty_information()">
 				<uni-icons type="more-filled" color="#fff"></uni-icons>
@@ -57,7 +57,7 @@
 		data() {
 			return {
 				text_time: "",
-
+				notice:"",
 
 				year: 0,
 				month: 0,
@@ -68,7 +68,7 @@
 			};
 		},
 		created() {
-
+			this.notice = this.text
 			this.year = new Date().getFullYear();
 			this.month = new Date().getMonth() + 1;
 			this.today = new Date().getDate();

+ 211 - 0
components/t-i-shicaocun/t-i-shicaocun.vue

@@ -0,0 +1,211 @@
+<template>
+	<view class="content">
+		<view class="section_1">
+			<view class="tab">
+				<view class="title active">科室部门</view>
+			</view>
+			<view class="list">
+				<view class="item" v-for="(item,index) in list_1.children" :key="index" @click="go_record(item)">
+					{{item.title}}
+				</view>
+			</view>
+		</view>
+
+		<!-- 图片链接 -->
+		<view class="section_2">
+			<view class="title">图片链接</view>
+			<view class="list">
+				<view class="item" v-for="(item,index) in list_2.children" :key="index" @click="go_record(item)">
+					<image :src="item.thumb" mode=""></image>
+				</view>
+			</view>
+		</view>
+
+		<!-- 快速通道 -->
+		<view class="section_3">
+			<view class="title">快速通道</view>
+			<view class="list">
+				<view class="item" v-for="(item,index) in list_3.children" :key="index" @click="go_record(item)">
+					<image :src="item.thumb" mode=""></image>
+				</view>
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import {goToLink} from "@/common/common.js"
+	
+	export default {
+		name: "t-i-ningdongyunying",
+		props: [
+			"mine_code"
+		],
+		data() {
+			return {
+				active: 1,
+				list_1: [],
+				// 图片链接
+				list_2: [],
+				// 快速通道
+				list_3: [],
+			};
+		},
+		created() {
+			this.get_home_link()
+		},
+		methods: {
+			get_home_link() {
+				this.$api.home_link({
+
+				}).then((res) => {
+					// console.log(res.data.data)
+
+					// 科室部门
+					this.list_1 = res.data.data[1]
+					// 图片链接
+					this.list_2 = res.data.data[2]
+
+					// 快速通道
+					this.list_3 = res.data.data[3]
+				})
+			},
+			go_record(item) {
+				goToLink(item,this.mine_code)
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		margin-top: 10rpx;
+		padding-bottom: 40rpx;
+		background-color: #FFFFFF;
+	}
+
+	.section_1 {
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		.tab {
+			display: flex;
+			
+			padding-left: 10rpx;
+			.title {
+				line-height: 80rpx;
+				font-weight: 700;
+			}
+
+			.active {
+				color: #009fe8;
+				border-bottom: 6rpx solid #009fe8;
+			}
+		}
+
+		.list {
+			margin-top: 30rpx;
+			overflow: hidden;
+
+			.item {
+				float: left;
+				margin-right: 20rpx;
+				margin-bottom: 30rpx;
+
+				width: 160rpx;
+				box-sizing: border-box;
+				border: 2rpx solid #009fe8;
+				border-radius: 20rpx;
+				font-size: 28rpx;
+				line-height: 70rpx;
+				//超过一行省略号
+				overflow: hidden;
+				white-space: nowrap;
+				text-overflow: ellipsis;
+
+				padding: 0 10rpx;
+				background-color: #66C7F218;
+				color: #009FE8;
+
+				text-align: center;
+			}
+
+			.item:nth-child(4n) {
+				margin-right: 0;
+			}
+		}
+
+	}
+
+	.section_2 {
+		box-sizing: border-box;
+		padding: 0 25rpx;
+		
+		.title {
+			line-height: 120rpx;
+			font-size: 36rpx;
+			font-weight: 700;
+		}
+
+		.list {
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+
+			.item {
+				margin-bottom: 20rpx;
+				width: 340rpx;
+				height: 180rpx;
+
+				border-radius: 20rpx;
+				overflow: hidden;
+
+				image {
+					width: 340rpx;
+					height: 180rpx;
+				}
+			}
+		}
+	}
+
+	.section_3 {
+		box-sizing: border-box;
+		padding: 0 25rpx;
+
+		.title {
+			line-height: 120rpx;
+			font-size: 36rpx;
+			font-weight: 700;
+		}
+
+		.list {
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+
+			.item {
+				margin-bottom: 20rpx;
+				width: 700rpx;
+				height: 240rpx;
+
+				border-radius: 10rpx;
+				overflow: hidden;
+
+				image {
+					width: 700rpx;
+					height: 240rpx;
+				}
+			}
+		}
+	}
+
+	.bottom{
+		margin-top: 10rpx;
+		text-align: center;
+		image{
+			width: 700rpx;
+			height: 240rpx;
+		}
+	}
+</style>

BIN
components/t-o-news-tab-1/icon/icon.png


BIN
components/t-o-news-tab-1/icon/icon_active.png


BIN
components/t-o-news-tab-1/icon/icon_no.png


BIN
components/t-o-news-tab-1/icon/icon_ok.png


+ 222 - 0
components/t-o-news-tab-1/t-o-news-tab-1 - 下拉展开式已完成未完成.vue

@@ -0,0 +1,222 @@
+<template>
+	<view>
+		<!-- 大分类 -->
+		<view class="list">
+			<view class="item" v-for="(item,index) in list" :key="index">
+				<view class="label" @click="change_active(index)">
+					<view class="left">
+						<view class="icon">
+							<image src="./icon/icon.png" mode=""></image>
+						</view>
+						<view class="name">{{item.category}}</view>
+					</view>
+					<view class="right">
+						<view class="tip" v-if="active != index && item.no_num != 0">
+							<view class="tip_text">未处理</view>
+							<view class="tip_num">{{item.no_num}}</view>
+						</view>
+						<view class="icon" v-if="active != index">
+							<uni-icons type="bottom" size="20" color="#e5e5e5"></uni-icons>
+						</view>
+						<view class="icon" v-if="active == index">
+							<uni-icons type="top" size="20" color="#e5e5e5"></uni-icons>
+						</view>
+					</view>
+				</view>
+				<view class="content" v-if="active == index">
+					<view class="item" v-for="(item_2,index_2) in item.children" :key="index_2">
+						<view class="title">
+							<view class="icon"></view>
+							<view class="text">{{item_2.title}}</view>
+						</view>
+						<view class="btn_box">
+							<view class="btn" @click.stop="go_h5(item_2.title,item_2.table,item_2.num,1)">
+								<view class="icon">
+									<image src="./icon/icon_ok.png" mode=""></image>
+								</view>
+								<view class="text">已完成:<text>{{item_2.series[0].value}}</text></view>
+								<view class="right">
+									<uni-icons type="right" color="#e5e5e5"></uni-icons>
+								</view>
+							</view>
+							<view class="btn" @click.stop="go_h5(item_2.title,item_2.table,item_2.num,2)">
+								<view class="icon">
+									<image src="./icon/icon_no.png" mode=""></image>
+								</view>
+								<view class="text">未完成:<text>{{item_2.series[1].value}}</text></view>
+								<view class="right">
+									<uni-icons type="right" color="#e5e5e5"></uni-icons>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			
+		</view>
+
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "t-o-news-tab-1",
+		data() {
+			return {
+				active:999,
+				list:[]
+				
+			};
+		},
+		mounted() {
+			this.get_data()
+		},
+		methods:{
+			change_active(index) {
+				console.log(index)
+				if(this.active == index){
+					this.active = 999
+				}else{
+					this.active = index
+				}
+			},
+			
+			get_data(){
+				this.$api.five_fixed_fiveFixedNewCategory({
+					
+				}).then((res)=>{
+					console.log(res.data.content.data)
+					
+					this.list = res.data.content.data
+				})
+			},
+			go_h5(title,table,num,status){
+				console.log(title,table,num,status)
+				
+				uni.navigateTo({
+					url: "../../origanization/news/tab_1/all_list/all_list?title=" + title + "&table=" + table + "&num=" + num + "&status=" + status
+				})
+			}
+		}
+		
+	}
+</script>
+
+<style lang="scss">
+	.list{
+		box-sizing: border-box;
+		padding: 25rpx;
+		.item{
+			margin-bottom: 20rpx;
+			background-color: #FFFFFF;
+			border-radius: 10rpx;
+			
+			.label{
+				box-sizing: border-box;
+				padding: 0 25rpx;
+				
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				height: 100rpx;
+				
+				.left{
+					display: flex;
+					align-items: center;
+					.icon{
+						margin-right: 20rpx;
+						image{
+							width: 32rpx;
+							height: 32rpx;
+							display: block;
+						}
+					}
+					.name{
+						width: 300rpx;
+						white-space: nowrap;
+						overflow: hidden;
+						text-overflow: ellipsis;
+					}
+				}
+				.right{
+					display: flex;
+					.tip{
+						display: flex;
+						align-items: center;
+						.tip_text{
+							font-size: 26rpx;
+							color: #FE6A5C;
+						}
+						.tip_num{
+							margin: 0 20rpx;
+							font-size: 28rpx;
+							color: #FFFFFF;
+							background-color: #FE6A5C;
+							border-radius: 10rpx;
+							padding: 2rpx 10rpx;
+							
+						}
+					}
+					.icon{
+						
+					}
+				}
+						
+			}
+			.content{
+				background-color: #FFFFFF;
+				box-sizing: border-box;
+				padding: 0 25rpx 10rpx;
+				.item{
+					border-top: 2rpx dashed #DCDCDC;
+					.title{
+						margin-left: 20rpx;
+						display: flex;
+						align-items: center;
+						height: 90rpx;
+						.icon{
+							width: 16rpx;
+							height: 16rpx;
+							background-color: #01A0E8;
+							border-radius: 50%;
+						}
+						.text{
+							margin-left: 20rpx;
+							font-size: 30rpx;
+							font-weight: 700;
+						}
+					}
+					.btn_box{
+						display: flex;
+						justify-content: space-around;
+						.btn{
+							display: flex;
+							align-items: center;
+							padding: 0 20rpx;
+							height: 70rpx;
+							.icon{
+								image{
+									width: 36rpx;
+									height: 36rpx;
+									display: block;
+								}
+							}
+							.text{
+								margin-left: 10rpx;
+								color: #999999;
+								font-size: 26rpx;
+								text{
+									font-size: 28rpx;
+									color: #000;
+								}
+							}
+							.right{
+								margin-left: 10rpx;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 1 - 2
components/t-o-news-tab-1/t-o-news-tab-1 - 初始版本备份.vue

@@ -2,8 +2,7 @@
 	<view>
 		<scroll-view scroll-x>
 			<view class="tab">
-				<view class="item" @click="change_active(index,item)" v-for="(item,index) in fiveFixedCategory"
-					:key="index">
+				<view class="item" @click="change_active(index,item)" v-for="(item,index) in fiveFixedCategory" :key="index">
 					<view class="text" :class="active == index?'active':''">{{item}}</view>
 				</view>
 

+ 432 - 0
components/t-o-news-tab-1/t-o-news-tab-1 - 单个统计图备份.vue

@@ -0,0 +1,432 @@
+<template>
+	<view>
+		<scroll-view scroll-x>
+			<view class="tab">
+				<view class="item" @click="change_active(index,item)" v-for="(item,index) in fiveFixedCategory"
+					:key="index">
+					<view class="text" :class="active == index?'active':''">{{item}}</view>
+				</view>
+
+			</view>
+		</scroll-view>
+
+		<view class="list">
+			<view class="item" v-for="(item,index) in list" :key="index" v-if="item.table_data.length > 0">
+
+				<view class="title">{{item.title}}</view>
+
+				<view class="tubiao">
+					<view class="tubiao_box">
+						<view class="charts-box">
+							<qiun-data-charts type="pie" :opts="pie_1" :chartData="item.chartData" @getIndex="legend_click($event,item.title,item.table,item.num,index)" tooltipFormat="column_1" />
+						</view>
+					</view>
+					<view class="tubiao_line">
+						<view class="line">
+							<view class="lable">起始时间</view>
+							<picker mode="date" :value="item.date_start" @change="bindDateChange_start($event,index,item.table)">
+								<view class="text">
+									<view>{{item.date_start}}</view>
+									<view>
+										<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+									</view>
+								</view>
+							</picker>
+						</view>
+						<view class="line">
+							<view class="lable">结束时间</view>
+							<picker mode="date" :value="item.date_end" @change="bindDateChange_end($event,index,item.table)">
+								<view class="text">
+									<view>{{item.date_end}}</view>
+									<view>
+										<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+									</view>
+								</view>
+							</picker>
+						</view>
+					</view>
+				</view>
+
+
+
+				<uni-table border emptyText="暂无更多数据">
+					<!-- 表头行 -->
+					<uni-tr>
+						<uni-th align="center" width="60">序号</uni-th>
+						<uni-th align="center" v-for="(item_2,index_2) in item.name">{{item_2}}</uni-th>
+					</uni-tr>
+					<!-- 表格数据行 -->
+					<uni-tr v-for="(item_2,index_2) in item.table_data" :key="index_2" @row-click="go_detail(item.num,item_2.id)">
+						<uni-td style="vertical-align: middle;" align="center">
+							<view class="icon">
+								<image v-if="index_2 < 3" src="./icon/new.png" mode=""></image> <text
+									style="margin-left: 10rpx;">{{index_2+1}}</text>
+								<!-- <text style="margin-left: 10rpx;">{{index_2+1}}</text> -->
+							</view>
+						</uni-td>
+						<uni-td style="vertical-align: middle;" align="center" v-for="(item_3,index_3) in item_2"
+							:key="index_3" v-if="typeof(item_3) == 'string' || typeof(item_3) == 'object'">
+							<view v-if="typeof(item_3) == 'object'" style="display: flex;align-items: center;">
+								<image style="margin-right: 10rpx;" v-for="(item_4,index_4) in item_3" :src="item_4"
+									:key="index_4">
+								</image>
+							</view>
+							<view v-else>{{item_3}}</view>
+						</uni-td>
+					</uni-tr>
+
+				</uni-table>
+
+				<view class="btn">
+					<view class="icon">
+						<image src="./icon/btn.png" mode=""></image>
+					</view>
+					<view class="btn_text" @click="go_all_list(item.title,item.table,item.num)">点击查看全部信息</view>
+				</view>
+			</view>
+		</view>
+
+
+
+	</view>
+</template>
+
+<script>
+	import {
+		getNextDate
+	} from "@/common/time.js"
+
+
+	export default {
+		name: "t-o-news-tab-1",
+		data() {
+			const currentDate_end = this.getDate({
+				format: true
+			})
+			return {
+				active: 0,
+
+				// 五定表分类
+				fiveFixedCategory: [],
+				// 五定表列表
+				list: [],
+
+
+				// 图表数据
+				// chartData: {
+				// 	"series": [{
+				// 		"data": [{
+				// 			"name": "已完成",
+				// 			"value": 23
+				// 		}, {
+				// 			"name": "未完成",
+				// 			"value": 30
+				// 		}]
+				// 	}]
+				// },
+				pie_1: {
+					"color": [
+						"#1890FF",
+						"#EE6666"
+					],
+					"dataLabel": true,
+					"legend": {
+						// "show":false,
+						"position": "bottom",
+						"float": "center",
+						"lineHeight": 20,
+					},
+					"title": {
+						"name": " "
+					},
+					"subtitle": {
+						"name": " "
+					},
+				},
+				
+				// 起始时间
+				date_start: "",
+				// 结束时间
+				date_end: currentDate_end,
+			};
+		},
+		mounted() {
+			this.date_start = getNextDate(this.date_end, -30)
+			this.get_five_fixed_fiveFixedCategory()
+		},
+		methods: {
+			change_active(index, item) {
+				this.active = index
+
+				this.get_list(item)
+			},
+			// 五定表分类
+			get_five_fixed_fiveFixedCategory() {
+				this.$api.five_fixed_fiveFixedCategory({
+
+				}).then((res) => {
+					// console.log(res)
+
+					this.fiveFixedCategory = res.data.content.data
+
+					this.get_list(res.data.content.data[0])
+				})
+			},
+			// 五定表列表
+			get_list(category_name) {
+				uni.showLoading({
+					mask: true
+				})
+				this.$api.five_fixed_fiveFixed({
+					category_name: category_name
+				}).then((res) => {
+					uni.hideLoading()
+					this.list = res.data.content.data
+				})
+			},
+			go_all_list(title, table, num) {
+				uni.navigateTo({
+					url: "../../origanization/news/tab_1/all_list/all_list?title=" + title + "&table=" + table + "&num=" + num + "&status=" + ''
+				})
+			},
+
+			bindDateChange_start($event,index,table){
+				// console.log($event.detail.value,index,table)
+				
+				this.date_start = $event.detail.value
+				this.list[index].date_start = $event.detail.value
+				this.get_five_fixed_getYesOrNoDataByTableName(index,table)
+			},
+			bindDateChange_end($event,index,table){
+				// console.log($event.detail.value,index,table)
+				
+				this.date_end = $event.detail.value
+				this.list[index].date_end = $event.detail.value
+				this.get_five_fixed_getYesOrNoDataByTableName(index,table)
+			},
+			getDate(type) {
+				const date = new Date();
+				let year = date.getFullYear();
+				let month = date.getMonth() + 1;
+				let day = date.getDate();
+
+				if (type === 'start') {
+					year = year - 60;
+				} else if (type === 'end') {
+					year = year + 2;
+				}
+				month = month > 9 ? month : '0' + month;
+				day = day > 9 ? day : '0' + day;
+				return `${year}-${month}-${day}`;
+			},
+
+			// 刷新获取图表数据
+			get_five_fixed_getYesOrNoDataByTableName(index,table) {
+				this.$api.five_fixed_getYesOrNoDataByTableName({
+					table_name: table,
+					date_start: this.date_start,
+					date_end: this.date_end
+				}).then((res) => {
+					console.log(res)
+
+					this.list[index].chartData = res.data.content.data[0].chartData
+				})
+			},
+			
+			go_detail(num,id){
+				console.log(num,id)
+				uni.navigateTo({
+					url:"../../origanization/news/tab_2/all_list/detail/detail?table=" + num + "&id=" + id
+				})
+			},
+			
+			legend_click($event,title,table,num,index){
+				console.log($event.currentIndex)
+				let status = $event.currentIndex+1
+				uni.navigateTo({
+					url: "../../origanization/news/tab_1/all_list/all_list?title=" + title + "&table=" + table + "&num=" + num + "&status=" + status + "&date_start=" + this.list[index].date_start + "&date_end=" + this.list[index].date_end
+				})
+			}
+
+		}
+	}
+</script>
+
+<style lang="scss">
+	.uni-table-th.table--border {
+		color: #000000;
+		background-color: #D8D8D8;
+	}
+
+	.uni-table-td.table--border {
+		color: #666666;
+	}
+
+	.tab {
+		display: flex;
+
+		margin-bottom: 20rpx;
+		background-color: #FFFFFF;
+
+		box-sizing: border-box;
+		padding: 0 20rpx;
+
+		.item {
+			background-color: #FFFFFF;
+
+			.text {
+				box-sizing: border-box;
+
+				height: 90rpx;
+				line-height: 90rpx;
+
+				width: 188rpx;
+				text-align: center;
+				overflow: hidden;
+				white-space: nowrap;
+				text-overflow: ellipsis;
+
+				font-size: 30rpx;
+				color: #666666;
+			}
+
+			.active {
+				font-weight: 700;
+				color: #000000;
+				border-bottom: 4rpx solid #009FE8;
+			}
+
+		}
+	}
+
+	.list {
+		box-sizing: border-box;
+		padding: 0 25rpx;
+
+		.item {
+			position: relative;
+
+			margin-bottom: 20rpx;
+			width: 700rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+
+			box-sizing: border-box;
+			padding: 0 25rpx;
+			padding-bottom: 20rpx;
+
+			.title {
+				text-align: center;
+				height: 120rpx;
+				line-height: 120rpx;
+				font-size: 40rpx;
+				font-weight: 700;
+
+				overflow: hidden;
+				white-space: nowrap;
+				text-overflow: ellipsis;
+			}
+
+			.btn {
+				margin: 20rpx auto;
+				width: 400rpx;
+				height: 50rpx;
+
+				background-color: #69BBFA;
+				border-radius: 50rpx;
+
+				display: flex;
+				align-items: center;
+				justify-content: center;
+
+				.icon {
+					image {
+						width: 23rpx;
+						height: 24rpx;
+
+						display: block;
+					}
+				}
+
+				.btn_text {
+					margin-left: 10rpx;
+					font-size: 28rpx;
+					color: #FFFFFF;
+				}
+			}
+		}
+	}
+
+	.icon {
+		position: relative;
+		top: 0;
+		right: 0;
+
+		image {
+			width: 33rpx;
+			height: 18rpx;
+		}
+	}
+
+	image {
+		width: 80rpx;
+		height: 80rpx;
+		display: block;
+	}
+
+	.tubiao {
+		position: relative;
+		width: 640rpx;
+		background-color: #FFFFFF;
+		// height: 900rpx;
+
+		border-radius: 20rpx;
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		.tubiao_box {
+			width: 640rpx;
+			height: 640rpx;
+
+			display: flex;
+			justify-content: center;
+			align-items: top;
+
+			.charts-box {
+				width: 100%;
+				height: 640rpx;
+			}
+		}
+
+		.tubiao_line {
+			padding-top: 20rpx;
+			width: 650rpx;
+			border-top: 2rpx solid #f7f7f7;
+
+			.line {
+				display: flex;
+				align-items: center;
+
+				font-size: 30rpx;
+				margin-bottom: 10rpx;
+
+				.lable {
+					color: #666666;
+					width: 200rpx;
+				}
+
+				.text {
+					width: 400rpx;
+					border-radius: 8rpx;
+					border: 2rpx solid #E9EBF2;
+
+					box-sizing: border-box;
+					padding: 10rpx 25rpx;
+
+					display: flex;
+					justify-content: space-between;
+				}
+			}
+		}
+	}
+</style>

+ 157 - 372
components/t-o-news-tab-1/t-o-news-tab-1.vue

@@ -1,430 +1,215 @@
 <template>
 	<view>
-		<scroll-view scroll-x>
-			<view class="tab">
-				<view class="item" @click="change_active(index,item)" v-for="(item,index) in fiveFixedCategory"
-					:key="index">
-					<view class="text" :class="active == index?'active':''">{{item}}</view>
-				</view>
-
-			</view>
-		</scroll-view>
-
 		<view class="list">
-			<view class="item" v-for="(item,index) in list" :key="index" v-if="item.table_data.length > 0">
-
-				<view class="title">{{item.title}}</view>
-
-				<view class="tubiao">
-					<view class="tubiao_box">
-						<view class="charts-box">
-							<qiun-data-charts type="pie" :opts="pie_1" :chartData="item.chartData" @getIndex="legend_click($event,item.title,item.table,item.num,index)" tooltipFormat="column_1" />
+			<view class="item" v-for="(item,index) in list" :key="index">
+				<view class="label" @click="change_active(index)">
+					<view class="left">
+						<view class="icon">
+							<image src="./icon/icon.png" mode=""></image>
 						</view>
+						<view class="name">{{item.category}}</view>
 					</view>
-					<view class="tubiao_line">
-						<view class="line">
-							<view class="lable">起始时间</view>
-							<picker mode="date" :value="item.date_start" @change="bindDateChange_start($event,index,item.table)">
-								<view class="text">
-									<view>{{item.date_start}}</view>
-									<view>
-										<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
-									</view>
-								</view>
-							</picker>
+					<view class="right">
+						<view class="tip" v-if="active != index && item.no_num != 0">
+							<view class="tip_text">未处理</view>
+							<view class="tip_num">{{item.no_num}}</view>
 						</view>
-						<view class="line">
-							<view class="lable">结束时间</view>
-							<picker mode="date" :value="item.date_end" @change="bindDateChange_end($event,index,item.table)">
-								<view class="text">
-									<view>{{item.date_end}}</view>
-									<view>
-										<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
-									</view>
-								</view>
-							</picker>
+						<view class="icon" v-if="active != index">
+							<uni-icons type="bottom" size="20" color="#e5e5e5"></uni-icons>
+						</view>
+						<view class="icon" v-if="active == index">
+							<uni-icons type="top" size="20" color="#e5e5e5"></uni-icons>
 						</view>
 					</view>
 				</view>
-
-
-
-				<uni-table border emptyText="暂无更多数据">
-					<!-- 表头行 -->
-					<uni-tr>
-						<uni-th align="center" width="60">序号</uni-th>
-						<uni-th align="center" v-for="(item_2,index_2) in item.name">{{item_2}}</uni-th>
-					</uni-tr>
-					<!-- 表格数据行 -->
-					<uni-tr v-for="(item_2,index_2) in item.table_data" :key="index_2" @row-click="go_detail(item.num,item_2.id)">
-						<uni-td style="vertical-align: middle;" align="center">
-							<view class="icon">
-								<image v-if="index_2 < 3" src="./icon/new.png" mode=""></image> <text
-									style="margin-left: 10rpx;">{{index_2+1}}</text>
-								<!-- <text style="margin-left: 10rpx;">{{index_2+1}}</text> -->
+				<view class="content" v-if="active == index">
+					<view class="item" v-for="(item_2,index_2) in item.children" :key="index_2">
+						<view class="title">
+							<view class="icon"></view>
+							<view class="text">{{item_2.title}}</view>
+						</view>
+						<view class="btn_box">
+							<view class="btn" @click.stop="go_list(item_2.title,item_2.table,item_2.num,2)">
+								<view class="text">未完成:<text>{{item_2.series[1].value}} 个</text></view>
 							</view>
-						</uni-td>
-						<uni-td style="vertical-align: middle;" align="center" v-for="(item_3,index_3) in item_2"
-							:key="index_3" v-if="typeof(item_3) == 'string' || typeof(item_3) == 'object'">
-							<view v-if="typeof(item_3) == 'object'" style="display: flex;align-items: center;">
-								<image style="margin-right: 10rpx;" v-for="(item_4,index_4) in item_3" :src="item_4"
-									:key="index_4">
-								</image>
+							<view class="btn" @click.stop="go_statistical_chart(item_2.title,item_2.table)">
+								<view class="text">查看统计</text></view>
 							</view>
-							<view v-else>{{item_3}}</view>
-						</uni-td>
-					</uni-tr>
-
-				</uni-table>
-
-				<view class="btn">
-					<view class="icon">
-						<image src="./icon/btn.png" mode=""></image>
+						</view>
 					</view>
-					<view class="btn_text" @click="go_all_list(item.title,item.table,item.num)">点击查看全部信息</view>
 				</view>
 			</view>
+			
 		</view>
 
-
-
 	</view>
 </template>
 
 <script>
-	import {
-		getNextDate
-	} from "@/common/time.js"
-
-
 	export default {
 		name: "t-o-news-tab-1",
 		data() {
-			const currentDate_end = this.getDate({
-				format: true
-			})
 			return {
-				active: 0,
-
-				// 五定表分类
-				fiveFixedCategory: [],
-				// 五定表列表
-				list: [],
-
-
-				// 图表数据
-				// chartData: {
-				// 	"series": [{
-				// 		"data": [{
-				// 			"name": "已完成",
-				// 			"value": 23
-				// 		}, {
-				// 			"name": "未完成",
-				// 			"value": 30
-				// 		}]
-				// 	}]
-				// },
-				pie_1: {
-					"color": [
-						"#1890FF",
-						"#EE6666"
-					],
-					"dataLabel": true,
-					"legend": {
-						// "show":false,
-						"position": "bottom",
-						"float": "center",
-						"lineHeight": 20,
-					},
-					"title": {
-						"name": " "
-					},
-					"subtitle": {
-						"name": " "
-					},
-				},
+				active:999,
+				list:[]
 				
-				// 起始时间
-				date_start: "",
-				// 结束时间
-				date_end: currentDate_end,
 			};
 		},
 		mounted() {
-			this.date_start = getNextDate(this.date_end, -30)
-			this.get_five_fixed_fiveFixedCategory()
+			this.get_data()
 		},
-		methods: {
-			change_active(index, item) {
-				this.active = index
-
-				this.get_list(item)
-			},
-			// 五定表分类
-			get_five_fixed_fiveFixedCategory() {
-				this.$api.five_fixed_fiveFixedCategory({
-
-				}).then((res) => {
-					// console.log(res)
-
-					this.fiveFixedCategory = res.data.content.data
-
-					this.get_list(res.data.content.data[0])
-				})
+		methods:{
+			change_active(index) {
+				console.log(index)
+				if(this.active == index){
+					this.active = 999
+				}else{
+					this.active = index
+				}
 			},
-			// 五定表列表
-			get_list(category_name) {
-				uni.showLoading({
-					mask: true
-				})
-				this.$api.five_fixed_fiveFixed({
-					category_name: category_name
-				}).then((res) => {
-					uni.hideLoading()
+			
+			get_data(){
+				this.$api.five_fixed_fiveFixedNewCategory({
+					
+				}).then((res)=>{
+					// console.log(res.data.content.data)
+					
 					this.list = res.data.content.data
+					
+					let num = 0
+					
+					this.list.forEach((item,index)=>{
+						num = num + item.no_num
+					})
+					
+					if(num > 0){
+						uni.setTabBarBadge({
+							index: 1,
+							text: '' + num + ''
+						})
+					}
+					
 				})
 			},
-			go_all_list(title, table, num) {
-				uni.navigateTo({
-					url: "../../origanization/news/tab_1/all_list/all_list?title=" + title + "&table=" + table + "&num=" + num + "&status=" + ''
-				})
-			},
-
-			bindDateChange_start($event,index,table){
-				// console.log($event.detail.value,index,table)
-				
-				this.date_start = $event.detail.value
-				this.list[index].date_start = $event.detail.value
-				this.get_five_fixed_getYesOrNoDataByTableName(index,table)
-			},
-			bindDateChange_end($event,index,table){
-				// console.log($event.detail.value,index,table)
+			go_list(title,table,num,status){
+				console.log(title,table,num,status)
 				
-				this.date_end = $event.detail.value
-				this.list[index].date_end = $event.detail.value
-				this.get_five_fixed_getYesOrNoDataByTableName(index,table)
-			},
-			getDate(type) {
-				const date = new Date();
-				let year = date.getFullYear();
-				let month = date.getMonth() + 1;
-				let day = date.getDate();
-
-				if (type === 'start') {
-					year = year - 60;
-				} else if (type === 'end') {
-					year = year + 2;
-				}
-				month = month > 9 ? month : '0' + month;
-				day = day > 9 ? day : '0' + day;
-				return `${year}-${month}-${day}`;
-			},
-
-			// 刷新获取图表数据
-			get_five_fixed_getYesOrNoDataByTableName(index,table) {
-				this.$api.five_fixed_getYesOrNoDataByTableName({
-					table_name: table,
-					date_start: this.date_start,
-					date_end: this.date_end
-				}).then((res) => {
-					console.log(res)
-
-					this.list[index].chartData = res.data.content.data[0].chartData
-				})
-			},
-			
-			go_detail(num,id){
-				console.log(num,id)
 				uni.navigateTo({
-					url:"../../origanization/news/tab_2/all_list/detail/detail?table=" + num + "&id=" + id
+					url: "../../origanization/news/tab_1/all_list/all_list?title=" + title + "&table=" + table + "&num=" + num + "&status=" + status
 				})
 			},
 			
-			legend_click($event,title,table,num,index){
-				console.log($event.currentIndex)
-				let status = $event.currentIndex+1
+			// 统计详情
+			go_statistical_chart(title,table){
 				uni.navigateTo({
-					url: "../../origanization/news/tab_1/all_list/all_list?title=" + title + "&table=" + table + "&num=" + num + "&status=" + status + "&date_start=" + this.list[index].date_start + "&date_end=" + this.list[index].date_end
+					url:"../../origanization/news/tab_1/statistical_chart/statistical_chart?title=" + title + "&table=" + table
 				})
 			}
-
 		}
+		
 	}
 </script>
 
 <style lang="scss">
-	.uni-table-th.table--border {
-		color: #000000;
-		background-color: #D8D8D8;
-	}
-
-	.uni-table-td.table--border {
-		color: #666666;
-	}
-
-	.tab {
-		display: flex;
-
-		margin-bottom: 20rpx;
-		background-color: #FFFFFF;
-
-		box-sizing: border-box;
-		padding: 0 20rpx;
-
-		.item {
-			background-color: #FFFFFF;
-
-			.text {
-				box-sizing: border-box;
-
-				height: 90rpx;
-				line-height: 90rpx;
-
-				width: 188rpx;
-				text-align: center;
-				overflow: hidden;
-				white-space: nowrap;
-				text-overflow: ellipsis;
-
-				font-size: 30rpx;
-				color: #666666;
-			}
-
-			.active {
-				font-weight: 700;
-				color: #000000;
-				border-bottom: 4rpx solid #009FE8;
-			}
-
-		}
-	}
-
-	.list {
+	.list{
 		box-sizing: border-box;
-		padding: 0 25rpx;
-
-		.item {
-			position: relative;
-
+		padding: 25rpx;
+		.item{
 			margin-bottom: 20rpx;
-			width: 700rpx;
 			background-color: #FFFFFF;
-			border-radius: 20rpx;
-
-			box-sizing: border-box;
-			padding: 0 25rpx;
-			padding-bottom: 20rpx;
-
-			.title {
-				text-align: center;
-				height: 120rpx;
-				line-height: 120rpx;
-				font-size: 40rpx;
-				font-weight: 700;
-
-				overflow: hidden;
-				white-space: nowrap;
-				text-overflow: ellipsis;
-			}
-
-			.btn {
-				margin: 20rpx auto;
-				width: 400rpx;
-				height: 50rpx;
-
-				background-color: #69BBFA;
-				border-radius: 50rpx;
-
+			border-radius: 10rpx;
+			
+			.label{
+				box-sizing: border-box;
+				padding: 0 25rpx;
+				
 				display: flex;
 				align-items: center;
-				justify-content: center;
-
-				.icon {
-					image {
-						width: 23rpx;
-						height: 24rpx;
-
-						display: block;
+				justify-content: space-between;
+				height: 100rpx;
+				
+				.left{
+					display: flex;
+					align-items: center;
+					.icon{
+						margin-right: 20rpx;
+						image{
+							width: 32rpx;
+							height: 32rpx;
+							display: block;
+						}
+					}
+					.name{
+						width: 300rpx;
+						white-space: nowrap;
+						overflow: hidden;
+						text-overflow: ellipsis;
 					}
 				}
-
-				.btn_text {
-					margin-left: 10rpx;
-					font-size: 28rpx;
-					color: #FFFFFF;
+				.right{
+					display: flex;
+					.tip{
+						display: flex;
+						align-items: center;
+						.tip_text{
+							font-size: 26rpx;
+							color: #FE6A5C;
+						}
+						.tip_num{
+							margin: 0 20rpx;
+							font-size: 28rpx;
+							color: #FFFFFF;
+							background-color: #FE6A5C;
+							border-radius: 10rpx;
+							padding: 2rpx 10rpx;
+							
+						}
+					}
+					.icon{
+						
+					}
 				}
+						
 			}
-		}
-	}
-
-	.icon {
-		position: relative;
-		top: 0;
-		right: 0;
-
-		image {
-			width: 33rpx;
-			height: 18rpx;
-		}
-	}
-
-	image {
-		width: 80rpx;
-		height: 80rpx;
-		display: block;
-	}
-
-	.tubiao {
-		position: relative;
-		width: 640rpx;
-		background-color: #FFFFFF;
-		// height: 900rpx;
-
-		border-radius: 20rpx;
-		box-sizing: border-box;
-		padding: 25rpx;
-
-		.tubiao_box {
-			width: 640rpx;
-			height: 640rpx;
-
-			display: flex;
-			justify-content: center;
-			align-items: top;
-
-			.charts-box {
-				width: 100%;
-				height: 640rpx;
-			}
-		}
-
-		.tubiao_line {
-			padding-top: 20rpx;
-			width: 650rpx;
-			border-top: 2rpx solid #f7f7f7;
-
-			.line {
-				display: flex;
-				align-items: center;
-
-				font-size: 30rpx;
-				margin-bottom: 10rpx;
-
-				.lable {
-					color: #666666;
-					width: 200rpx;
-				}
-
-				.text {
-					width: 400rpx;
-					border-radius: 8rpx;
-					border: 2rpx solid #E9EBF2;
-
-					box-sizing: border-box;
-					padding: 10rpx 25rpx;
-
-					display: flex;
-					justify-content: space-between;
+			.content{
+				background-color: #FFFFFF;
+				box-sizing: border-box;
+				padding: 0 25rpx 10rpx;
+				.item{
+					border-top: 2rpx dashed #DCDCDC;
+					.title{
+						margin-left: 20rpx;
+						display: flex;
+						align-items: center;
+						height: 90rpx;
+						.icon{
+							width: 16rpx;
+							height: 16rpx;
+							background-color: #01A0E8;
+							border-radius: 50%;
+						}
+						.text{
+							margin-left: 20rpx;
+							font-size: 30rpx;
+							font-weight: 700;
+						}
+					}
+					.btn_box{
+						display: flex;
+						justify-content: space-around;
+						.btn{
+							width: 200rpx;
+							text-align: center;
+							color: #999999;
+							font-size: 28rpx;
+							padding: 6rpx 20rpx;
+							border: 1rpx solid #999;
+							border-radius: 30rpx;
+							text{
+								color: #FE6A5C;
+							}
+						}
+					}
 				}
 			}
 		}

+ 663 - 0
components/t-o-news-tab-2/t-o-news-tab-2 - 一二级分类没有矿区选择.vue

@@ -0,0 +1,663 @@
+<template>
+	<view>
+		<!-- 标题 -->
+		<view class="title" @click="open_menu()">
+			<view class="left">
+				<view class="icon">
+					<image src="./icon/menu.png" mode=""></image>
+				</view>
+				<view class="text">{{title}}</view>
+			</view>
+			<view class="right">
+				<view class="icon">
+					<image src="./icon/right_icon.png" mode=""></image>
+				</view>
+			</view>
+		</view>
+
+		<view class="menu" v-show="menu">
+			<view class="menu_item">
+				<view class="left">
+					<view class="item" v-for="(item,index) in menu_1" :key="index" @click="change_active_1(index)"
+						:class="active_1 == index ? 'active' : ''">{{item}}</view>
+				</view>
+				<view class="right">
+					<view class="item" v-for="(item,index) in menu_2" :key="index" @click="change_active_2(index)">
+						<view class="icon" v-if="active_2 == index">
+							<image src="./icon/active.png" mode=""></image>
+						</view>
+						<view class="text" :style="{color: active_2 == index ? '#000' : ''}">{{item.title}}</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="list">
+			<view class="tubiao" v-if="title != '全部'">
+				<view class="tubiao_title">
+					<view class="text">{{tubiao_title}}</view>
+				</view>
+				<view class="tubiao_box">
+					<view class="charts-box">
+						<qiun-data-charts type="pie" :opts="pie_1" :chartData="chartData"
+							@getIndex="legend_click($event)" tooltipFormat="column_1" />
+					</view>
+				</view>
+				<view class="tubiao_line">
+					<view class="line">
+						<view class="lable">起始时间</view>
+						<picker mode="date" :value="date_start" @change="bindDateChange_start">
+							<view class="text">
+								<view>{{date_start}}</view>
+								<view>
+									<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+								</view>
+							</view>
+						</picker>
+					</view>
+					<view class="line">
+						<view class="lable">结束时间</view>
+						<picker mode="date" :value="date_end" @change="bindDateChange_end">
+							<view class="text">
+								<view>{{date_end}}</view>
+								<view>
+									<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+								</view>
+							</view>
+						</picker>
+					</view>
+					<view class="line">
+						<view class="lable">统计项</view>
+						<view class="text" @click="change_census_type()">
+							<view>
+								{{tubiao_census_type}}
+							</view>
+							<view>
+								<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="item" v-for="(item,index) in data" :key="index" @click="go_detail(item.num,item.id)">
+				<view class="inner">
+					<view class="left">
+						<view class="user"
+							v-if="item.face != 'http://localhost/storage/avatar/avatar_15042504.png' && item.face != 'upload/face/1.jpg'">
+							<image :src="item.face" mode="aspectFill"></image>
+						</view>
+						<view class="user"
+							v-if="item.face == 'http://localhost/storage/avatar/avatar_15042504.png' || item.face == 'upload/face/1.jpg'">
+							<view class="avatar">{{item.optname.split('')[0]}}</view>
+						</view>
+					</view>
+					<view class="right">
+						<view class="name">{{item.optname}}<text>{{item.depart}}</text><text
+								style="font-size: 36rpx;font-weight: 700;">隐患排查记录</text></view>
+						<view class="text">
+							<view v-html="item.str"></view>
+						</view>
+						<view class="img_box">
+							<!-- <view v-for="(item_2,index_2) in item.picture" :key="index_2">
+								<view class="img" v-for="(item_3,index_3) in item_2" :key="index_3">
+									<image :src="item_3" mode="aspectFill" @click.stop="img_chakan(item_3)"></image>
+								</view>
+							</view> -->
+
+							<view class="img_box" v-for="(item_2,index_2) in item.picture" :key="index_2">
+								<view class="img" v-for="(item_3,index_3) in item_2" :key="index_3"
+									@click.stop="img_chakan(item_2,index_3)">
+									<image :src="item_3" mode="aspectFill"></image>
+								</view>
+							</view>
+						</view>
+						<view class="time">{{item.optdt}}</view>
+
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		getNextDate
+	} from "@/common/time.js"
+	export default {
+		name: "t-o-news-tab-2",
+		data() {
+			const currentDate_end = this.getDate({
+				format: true
+			})
+			return {
+				title: "全部",
+				menu: false,
+				menu_1: [],
+				menu_2: [],
+
+				active_1: 0,
+				active_2: 0,
+
+				// list
+				table: "",
+
+				page: 1,
+				pageSize: 20,
+
+				name: [],
+				data: [],
+
+
+				// 图表数据
+				tubiao_title: "",
+
+				// 图表数据
+				chartData: {
+					"series": [{
+						"data": []
+					}]
+				},
+				pie_1: {
+					"dataLabel": true,
+					"legend": {
+						// "show":false,
+						"position": "bottom",
+						"float": "center",
+						"lineHeight": 20,
+					},
+					"title": {
+						"name": " "
+					},
+					"subtitle": {
+						"name": " "
+					},
+				},
+
+				// 起始时间
+				date_start: "",
+				// 结束时间
+				date_end: currentDate_end,
+				// 图标统计项
+				tubiao_census_type: "",
+				tubiao_census_type_fields: "",
+
+				// 统计项配置参数
+				TableFiledRemark: [],
+
+				TableFiledRemark_name: []
+
+			};
+		},
+		mounted() {
+			this.get_five_fixed_fiveFixedCategory()
+			this.get_five_fixed_getRecordDataByTableName()
+
+			this.date_start = getNextDate(this.date_end, -30)
+		},
+		methods: {
+			// 翻页
+			nextPage() {
+				this.page++
+				this.get_five_fixed_getRecordDataByTableName()
+			},
+			open_menu() {
+				this.menu = !this.menu
+			},
+			change_active_1(index) {
+				this.active_1 = index
+				this.active_2 = 0
+
+				this.title = this.menu_1[index]
+				this.get_five_fixed_getRecordDataByCategoryName(this.menu_1[index])
+			},
+			change_active_2(index) {
+				this.active_2 = index
+				this.title = this.menu_2[index].title
+				this.tubiao_title = this.menu_2[index].title
+
+				// 当前详情参数
+				this.table = this.menu_2[index].table
+				// 获取图表数据
+				this.date_end = this.getDate()
+				this.date_start = getNextDate(this.date_end, -30)
+				this.get_five_fixed_getTableFiledRemark()
+				// 获取列表
+				this.page = 1
+				this.data = []
+				this.get_five_fixed_getRecordDataByTableName()
+				this.open_menu()
+			},
+			// 记录管理分类
+			get_five_fixed_fiveFixedCategory() {
+				this.$api.five_fixed_fiveFixedCategory({
+
+				}).then((res) => {
+					this.menu_1 = res.data.content.data
+
+					this.get_five_fixed_getRecordDataByCategoryName(res.data.content.data[0])
+				})
+			},
+			// 获取记录管理列表
+			get_five_fixed_getRecordDataByCategoryName(category_name) {
+				uni.showLoading({
+					mask: true
+				})
+				this.$api.five_fixed_getRecordDataByCategoryName({
+					category_name: category_name
+				}).then((res) => {
+					uni.hideLoading()
+
+					this.menu_2 = res.data.content.data
+				})
+			},
+			// 获取该分类下的列表详情
+			get_five_fixed_getRecordDataByTableName() {
+				console.log(this.table)
+				this.$api.five_fixed_getRecordDataByTableName({
+					table_name: this.table,
+					page: this.page,
+					pageSize: this.pageSize
+				}).then((res) => {
+					console.log(res.data.content.data.table_data.data)
+					this.data = this.data.concat(res.data.content.data.table_data.data)
+				})
+			},
+			img_chakan(url, index) {
+				// let data = []
+				// data[0] = url
+				// uni.previewImage({
+				// 	urls: data
+				// });
+
+				console.log(url, index)
+
+				uni.previewImage({
+					current: index,
+					urls: url,
+					loop: true,
+					longPressActions: true
+				});
+			},
+			go_detail(num, id) {
+				uni.navigateTo({
+					url: "../../origanization/news/tab_2/all_list/detail/detail?table=" + num + "&id=" + id
+				})
+			},
+
+
+			bindDateChange_start: function(e) {
+				this.date_start = e.target.value
+				this.get_five_fixed_getTableFiledTotalNumber()
+			},
+			bindDateChange_end: function(e) {
+				this.date_end = e.target.value
+				this.get_five_fixed_getTableFiledTotalNumber()
+			},
+			getDate(type) {
+				const date = new Date();
+				let year = date.getFullYear();
+				let month = date.getMonth() + 1;
+				let day = date.getDate();
+
+				if (type === 'start') {
+					year = year - 60;
+				} else if (type === 'end') {
+					year = year + 2;
+				}
+				month = month > 9 ? month : '0' + month;
+				day = day > 9 ? day : '0' + day;
+				return `${year}-${month}-${day}`;
+			},
+
+			// 获取统计项参数配置
+			get_five_fixed_getTableFiledRemark() {
+				uni.showLoading({
+					mask: true
+				})
+				this.TableFiledRemark_name = []
+				this.$api.five_fixed_getTableFiledRemark({
+					table_name: this.table
+				}).then((res) => {
+					uni.hideLoading()
+					this.TableFiledRemark = res.data.content.data
+
+					let data = res.data.content.data
+
+					data.forEach((item, index) => {
+						this.TableFiledRemark_name.push(item.name)
+					})
+
+					this.tubiao_census_type = this.TableFiledRemark[0].name
+
+					this.tubiao_census_type_fields = this.TableFiledRemark[0].fields
+
+					this.get_five_fixed_getTableFiledTotalNumber()
+
+				})
+
+			},
+
+			// 改变统计项
+			change_census_type() {
+				uni.showActionSheet({
+					itemList: this.TableFiledRemark_name,
+					success: (res) => {
+						this.tubiao_census_type = this.TableFiledRemark[res.tapIndex].name
+						this.tubiao_census_type_fields = this.TableFiledRemark[res.tapIndex].fields
+						this.get_five_fixed_getTableFiledTotalNumber()
+					}
+				});
+			},
+
+			// 获取图表数据
+			get_five_fixed_getTableFiledTotalNumber() {
+				this.$api.five_fixed_getTableFiledTotalNumber({
+					table_name: this.table,
+					field_name: this.tubiao_census_type_fields,
+					start_date: this.date_start,
+					end_date: this.date_end
+				}).then((res) => {
+					this.chartData.series[0].data = res.data.content.data
+				})
+			},
+
+			legend_click($event) {
+
+				let _this = this;
+				let curTime = new Date().getTime();
+				let lastTime = _this.lastTapDiffTime;
+				_this.lastTapDiffTime = curTime;
+				//两次点击间隔小于300ms, 认为是双击
+				let diff = curTime - lastTime;
+				if (diff < 300) {
+					console.log("双击")
+					//_this.handleVideo('screen',index)自定义事件
+					clearTimeout(_this.lastTapTimeoutFunc); // 成功触发双击事件时,取消单击事件的执行
+					
+					uni.navigateTo({
+						url: "../../origanization/news/tab_2/all_list/all_list?title=" + this.title + "&table=" + this
+							.table + "&tubiao_census_type_fields=" + this.tubiao_census_type_fields +
+							"&tubiao_census_type_fields_value=" + this.chartData.series[0].data[$event.currentIndex]
+							.name.split('(')[0] + "&date_start=" + this.date_start + "&date_end=" + this.date_end
+					})
+				} else {
+					// 单击事件延时300毫秒执行
+					_this.lastTapTimeoutFunc = setTimeout(function() {
+						console.log("单击")
+						//_this.handleVideo('playOrStop',index)自定义事件
+					}, 300);
+				}
+				
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.title {
+		box-sizing: border-box;
+		padding: 0 25rpx;
+		height: 90rpx;
+
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+		.left {
+			display: flex;
+
+			.icon {
+				image {
+					width: 30rpx;
+					height: 30rpx;
+				}
+			}
+
+			.text {
+				margin-left: 18rpx;
+				font-size: 30rpx;
+				color: #009fe8;
+			}
+		}
+
+		.right {
+			text-align: right;
+			width: 50rpx;
+
+			.icon {
+				image {
+					width: 18rpx;
+					height: 18rpx;
+				}
+			}
+		}
+	}
+
+	.menu {
+		background-color: #FFFFFF;
+		border-radius: 20rpx;
+
+		margin: 0 25rpx;
+		width: 700rpx;
+
+		margin-bottom: 40rpx;
+
+		overflow: hidden;
+
+		.menu_item {
+			display: flex;
+
+			.left {
+				.item {
+					width: 260rpx;
+					text-align: center;
+					line-height: 120rpx;
+					color: #8C8C8C;
+					box-sizing: border-box;
+				}
+
+				.active {
+					background-color: #F8FDFF;
+					color: #00A0E8;
+					border-left: 4rpx solid #00A0E8;
+				}
+			}
+
+			.right {
+				width: 420rpx;
+				box-sizing: border-box;
+				border-left: 4rpx solid #EEEEEE;
+
+				.item {
+					position: relative;
+					line-height: 120rpx;
+
+					display: flex;
+
+					.icon {
+						position: absolute;
+						left: 0;
+						top: 0;
+
+						image {
+							width: 14rpx;
+							height: 26rpx;
+						}
+					}
+
+					.text {
+						margin-left: 48rpx;
+						color: #8C8C8C;
+
+						white-space: nowrap;
+						overflow: hidden;
+						text-overflow: ellipsis;
+					}
+				}
+			}
+		}
+	}
+
+	.list {
+		background-color: #FFFFFF;
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		.item {
+			border-bottom: 1rpx solid #f0f0f0;
+			margin-bottom: 40rpx;
+
+			.inner {
+				margin-bottom: 40rpx;
+				width: 700rpx;
+				display: flex;
+
+				.left {
+					.user {
+						image {
+							width: 90rpx;
+							height: 90rpx;
+
+							border-radius: 50%;
+						}
+
+						.avatar {
+							width: 90rpx;
+							height: 90rpx;
+							text-align: center;
+							line-height: 90rpx;
+							border-radius: 50%;
+							background-color: #7EB1A0;
+							color: #FFFFFF;
+							font-size: 36rpx;
+							font-weight: 700;
+						}
+					}
+				}
+
+				.right {
+					margin-left: 20rpx;
+
+					width: 650rpx;
+
+					.name {
+						margin-top: 5rpx;
+						font-size: 32rpx;
+
+						text {
+							margin-left: 20rpx;
+							font-size: 28rpx;
+							color: #3a3a3a;
+						}
+					}
+
+					.text {
+						width: 600rpx;
+						margin-top: 10rpx;
+						margin-bottom: 20rpx;
+						font-size: 30rpx;
+					}
+
+					.img_box {
+						width: 550rpx;
+						overflow: hidden;
+
+						.img {
+							margin-bottom: 10rpx;
+							float: left;
+							margin-right: 20rpx;
+
+							image {
+								width: 170rpx;
+								height: 170rpx;
+
+								border-radius: 10rpx;
+							}
+						}
+
+						.img:nth-child(3n) {
+							margin-right: 0;
+						}
+					}
+
+					.time {
+						font-size: 26rpx;
+						color: #999999;
+					}
+
+
+				}
+			}
+		}
+	}
+
+	.tubiao {
+		position: relative;
+		width: 700rpx;
+		background-color: #FFFFFF;
+		// height: 900rpx;
+
+		border-radius: 20rpx;
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		border-bottom: 2rpx solid #EEEEEE;
+		margin-bottom: 40rpx;
+
+		.tubiao_title {
+			text-align: center;
+			// height: 90rpx;
+
+			.text {
+				font-size: 38rpx;
+				font-weight: 700;
+			}
+		}
+
+		.tubiao_box {
+			width: 650rpx;
+			height: 640rpx;
+
+			display: flex;
+			justify-content: center;
+			align-items: top;
+
+			.charts-box {
+				width: 100%;
+				height: 640rpx;
+			}
+		}
+
+		.tubiao_line {
+			padding-top: 20rpx;
+			width: 650rpx;
+			border-top: 2rpx solid #f7f7f7;
+
+			.line {
+				display: flex;
+				align-items: center;
+
+				font-size: 30rpx;
+				margin-bottom: 10rpx;
+
+				.lable {
+					color: #666666;
+					width: 200rpx;
+				}
+
+				.text {
+					width: 400rpx;
+					border-radius: 8rpx;
+					border: 2rpx solid #E9EBF2;
+
+					box-sizing: border-box;
+					padding: 10rpx 25rpx;
+
+					display: flex;
+					justify-content: space-between;
+				}
+			}
+		}
+	}
+</style>

+ 683 - 0
components/t-o-news-tab-2/t-o-news-tab-2 - 副本.vue

@@ -0,0 +1,683 @@
+<template>
+	<view>
+		<!-- 标题 -->
+		<view class="title" v-if="kq_title != ''" @click="open_menu()">
+			<view class="left">
+				<view class="icon">
+					<image src="./icon/menu.png" mode=""></image>
+				</view>
+				<view class="text">{{title}}</view>
+				<view style="margin-left: 20rpx;">
+					<uni-icons type="arrowdown" color="#999" size="18" style="font-weight: 700;"></uni-icons>
+				</view>
+			</view>
+			
+		</view>
+
+		<view class="menu" v-show="menu">
+			<view class="menu_item">
+				<view class="left">
+					<view class="item" v-for="(item,index) in menu_1" :key="index" @click="change_active_1(index)"
+						:class="active_1 == index ? 'active' : ''">{{item}}</view>
+				</view>
+				<view class="right">
+					<uni-collapse accordion>
+						<uni-collapse-item :show-animation="true" :title="item" v-for="(item,index) in menu_2" :key="index" @click.native="change_active_2(index)">
+							<view class="title_box">
+								<view class="item" v-for="(item_2,index_2) in menu_3" :key="index_2" @click.stop="change_active_3(index_2)">
+									<view class="icon" style="width: 10rpx; height: 10rpx;border-radius: 50%;background-color: #009FE8;"></view>
+									<view class="text">{{item_2.title}}</view>
+								</view>
+							</view>
+						</uni-collapse-item>
+					</uni-collapse>
+				</view>
+			</view>
+		</view>
+
+		<view class="list">
+			<view class="tubiao" v-if="title.indexOf('-') != -1">
+				<view class="tubiao_title">
+					<view class="text">{{tubiao_title}}</view>
+				</view>
+				<view class="tubiao_box">
+					<view class="charts-box">
+						<qiun-data-charts type="pie" :opts="pie_1" :chartData="chartData"
+							@getIndex="legend_click($event)" tooltipFormat="column_1" />
+					</view>
+				</view>
+				<view class="tubiao_line">
+					<view class="line">
+						<view class="lable">起始时间</view>
+						<picker mode="date" :value="date_start" @change="bindDateChange_start">
+							<view class="text">
+								<view>{{date_start}}</view>
+								<view>
+									<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+								</view>
+							</view>
+						</picker>
+					</view>
+					<view class="line">
+						<view class="lable">结束时间</view>
+						<picker mode="date" :value="date_end" @change="bindDateChange_end">
+							<view class="text">
+								<view>{{date_end}}</view>
+								<view>
+									<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+								</view>
+							</view>
+						</picker>
+					</view>
+					<view class="line">
+						<view class="lable">统计项</view>
+						<view class="text" @click="change_census_type()">
+							<view>
+								{{tubiao_census_type}}
+							</view>
+							<view>
+								<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="item" v-for="(item,index) in data" :key="index" @click="go_detail(item.num,item.id)">
+				<view class="inner">
+					<view class="left">
+						<view class="user"
+							v-if="item.face != 'http://localhost/storage/avatar/avatar_15042504.png' && item.face != 'upload/face/1.jpg'">
+							<image :src="item.face" mode="aspectFill"></image>
+						</view>
+						<view class="user"
+							v-if="item.face == 'http://localhost/storage/avatar/avatar_15042504.png' || item.face == 'upload/face/1.jpg'">
+							<view class="avatar">{{item.optname.split('')[0]}}</view>
+						</view>
+					</view>
+					<view class="right">
+						<view class="name">{{item.optname}}<text>{{item.depart}}</text></view>
+						<view class="text">
+							<view v-html="item.str"></view>
+						</view>
+						<view class="img_box">
+							<view class="img_box" v-for="(item_2,index_2) in item.picture" :key="index_2">
+								<view class="img" v-for="(item_3,index_3) in item_2" :key="index_3"
+									@click.stop="img_chakan(item_2,index_3)">
+									<image :src="item_3" mode="aspectFill"></image>
+								</view>
+							</view>
+						</view>
+						<view class="time">{{item.optdt}}</view>
+
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		getNextDate
+	} from "@/common/time.js"
+	export default {
+		name: "t-o-news-tab-2",
+		data() {
+			const currentDate_end = this.getDate({
+				format: true
+			})
+			return {
+				kq_title: "",
+				title: "全部",
+				menu: false,
+				menu_1: [],
+				menu_2: [],
+				menu_3: [],
+
+				active_1: 0,
+				active_2: 0,
+				active_3: 999,
+
+				// list
+				table: "",
+
+				page: 1,
+				pageSize: 20,
+
+				name: [],
+				data: [],
+
+
+				// 图表数据
+				tubiao_title: "",
+
+				// 图表数据
+				chartData: {
+					"series": [{
+						"data": []
+					}]
+				},
+				pie_1: {
+					"dataLabel": true,
+					"legend": {
+						// "show":false,
+						"position": "bottom",
+						"float": "center",
+						"lineHeight": 20,
+					},
+					"title": {
+						"name": " "
+					},
+					"subtitle": {
+						"name": " "
+					},
+					"extra":{
+						"pie":{
+							"border":false,
+							"labelWidth":20
+						}
+					}
+				},
+
+				// 起始时间
+				date_start: "",
+				// 结束时间
+				date_end: currentDate_end,
+				// 图标统计项
+				tubiao_census_type: "",
+				tubiao_census_type_fields: "",
+
+				// 统计项配置参数
+				TableFiledRemark: [],
+
+				TableFiledRemark_name: []
+
+			};
+		},
+		mounted() {
+			this.get_five_fixed_fiveFixedKQ()
+			this.get_five_fixed_getRecordDataByTableName()
+
+			this.date_start = getNextDate(this.date_end, -30)
+		},
+		methods: {
+			// 翻页
+			nextPage() {
+				this.page++
+				this.get_five_fixed_getRecordDataByTableName()
+			},
+			open_menu() {
+				this.menu = !this.menu
+			},
+			change_active_1(index) {
+				this.active_1 = index
+				this.active_2 = 0
+
+				this.kq_title = this.menu_1[index]
+				this.menu_2 = []
+				this.get_five_fixed_fiveFixedCategory()
+			},
+			change_active_2(index) {
+				// 复位
+				this.active_3 = 999
+				
+				if(this.active_2 == index){
+					
+				}else{
+					this.get_five_fixed_getRecordDataByCategoryName(this.menu_2[index])
+				}
+				
+				this.active_2 = index
+			},
+			change_active_3(index){
+				this.active_3 = index
+				this.title = this.kq_title + '-' + this.menu_3[index].title
+				this.tubiao_title = this.menu_3[index].title
+				
+				// 当前详情参数
+				this.table = this.menu_3[index].table
+				// 获取图表数据
+				this.date_end = this.getDate()
+				this.date_start = getNextDate(this.date_end, -30)
+				this.get_five_fixed_getTableFiledRemark()
+				// 获取列表
+				this.page = 1
+				this.data = []
+				this.get_five_fixed_getRecordDataByTableName()
+				// 关闭选项
+				this.open_menu()
+			},
+			// 获取矿区
+			get_five_fixed_fiveFixedKQ(){
+				this.$api.five_fixed_fiveFixedKQ({
+				
+				}).then((res) => {
+					this.menu_1 = res.data.content.data
+					this.kq_title = res.data.content.data[0]
+					this.title = res.data.content.data[0]
+					
+					this.get_five_fixed_fiveFixedCategory()
+				})
+			},
+			// 记录管理-一级分类
+			get_five_fixed_fiveFixedCategory() {
+				
+				this.$api.five_fixed_fiveFixedCategory({
+					kq_name:this.kq_title
+				}).then((res) => {
+					this.menu_2 = res.data.content.data
+
+					this.get_five_fixed_getRecordDataByCategoryName(res.data.content.data[0])
+				})
+			},
+			// 获取记录管理-二级分类
+			get_five_fixed_getRecordDataByCategoryName(category_name) {
+				this.menu_3 = []
+				
+				this.$api.five_fixed_getRecordDataByCategoryName({
+					category_name: category_name
+				}).then((res) => {
+
+					this.menu_3 = res.data.content.data
+				})
+			},
+			// 获取该分类下的列表详情
+			get_five_fixed_getRecordDataByTableName() {
+				uni.showLoading({
+					mask:true
+				})
+				this.$api.five_fixed_getRecordDataByTableName({
+					table_name: this.table,
+					page: this.page,
+					pageSize: this.pageSize
+				}).then((res) => {
+					uni.hideLoading()
+					this.data = this.data.concat(res.data.content.data.table_data.data)
+				})
+			},
+			img_chakan(url, index) {
+				uni.previewImage({
+					current: index,
+					urls: url,
+					loop: true,
+					longPressActions: true
+				});
+			},
+			go_detail(num, id) {
+				uni.navigateTo({
+					url: "../../origanization/news/tab_2/all_list/detail/detail?table=" + num + "&id=" + id
+				})
+			},
+
+
+			bindDateChange_start: function(e) {
+				this.date_start = e.target.value
+				this.get_five_fixed_getTableFiledTotalNumber()
+			},
+			bindDateChange_end: function(e) {
+				this.date_end = e.target.value
+				this.get_five_fixed_getTableFiledTotalNumber()
+			},
+			getDate(type) {
+				const date = new Date();
+				let year = date.getFullYear();
+				let month = date.getMonth() + 1;
+				let day = date.getDate();
+
+				if (type === 'start') {
+					year = year - 60;
+				} else if (type === 'end') {
+					year = year + 2;
+				}
+				month = month > 9 ? month : '0' + month;
+				day = day > 9 ? day : '0' + day;
+				return `${year}-${month}-${day}`;
+			},
+
+			// 获取统计项参数配置
+			get_five_fixed_getTableFiledRemark() {
+				this.TableFiledRemark_name = []
+				this.$api.five_fixed_getTableFiledRemark({
+					table_name: this.table
+				}).then((res) => {
+					this.TableFiledRemark = res.data.content.data
+
+					let data = res.data.content.data
+
+					data.forEach((item, index) => {
+						this.TableFiledRemark_name.push(item.name)
+					})
+
+					this.tubiao_census_type = this.TableFiledRemark[0].name
+
+					this.tubiao_census_type_fields = this.TableFiledRemark[0].fields
+
+					this.get_five_fixed_getTableFiledTotalNumber()
+
+				})
+
+			},
+
+			// 改变统计项
+			change_census_type() {
+				uni.showActionSheet({
+					itemList: this.TableFiledRemark_name,
+					success: (res) => {
+						this.tubiao_census_type = this.TableFiledRemark[res.tapIndex].name
+						this.tubiao_census_type_fields = this.TableFiledRemark[res.tapIndex].fields
+						this.get_five_fixed_getTableFiledTotalNumber()
+					}
+				});
+			},
+
+			// 获取图表数据
+			get_five_fixed_getTableFiledTotalNumber() {
+				this.$api.five_fixed_getTableFiledTotalNumber({
+					table_name: this.table,
+					field_name: this.tubiao_census_type_fields,
+					start_date: this.date_start,
+					end_date: this.date_end
+				}).then((res) => {
+					this.chartData.series[0].data = res.data.content.data
+				})
+			},
+
+			legend_click($event) {
+
+				let _this = this;
+				let curTime = new Date().getTime();
+				let lastTime = _this.lastTapDiffTime;
+				_this.lastTapDiffTime = curTime;
+				//两次点击间隔小于300ms, 认为是双击
+				let diff = curTime - lastTime;
+				if (diff < 300) {
+					console.log("双击")
+					//_this.handleVideo('screen',index)自定义事件
+					clearTimeout(_this.lastTapTimeoutFunc); // 成功触发双击事件时,取消单击事件的执行
+					
+					uni.navigateTo({
+						url: "../../origanization/news/tab_2/all_list/all_list?title=" + this.title + "&table=" + this
+							.table + "&tubiao_census_type_fields=" + this.tubiao_census_type_fields +
+							"&tubiao_census_type_fields_value=" + this.chartData.series[0].data[$event.currentIndex]
+							.name.split('(')[0] + "&date_start=" + this.date_start + "&date_end=" + this.date_end
+					})
+				} else {
+					// 单击事件延时300毫秒执行
+					_this.lastTapTimeoutFunc = setTimeout(function() {
+						console.log("单击")
+						//_this.handleVideo('playOrStop',index)自定义事件
+					}, 300);
+				}
+				
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.title {
+		box-sizing: border-box;
+		padding: 0 25rpx;
+		height: 90rpx;
+
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+		.left {
+			display: flex;
+			align-items: center;
+			.icon {
+				image {
+					width: 30rpx;
+					height: 30rpx;
+				}
+			}
+
+			.text {
+				max-width: 550rpx;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+				margin-left: 18rpx;
+				font-size: 30rpx;
+				color: #009fe8;
+			}
+		}
+	}
+
+	.menu {
+		background-color: #FFFFFF;
+		border-radius: 20rpx;
+
+		margin: 0 25rpx;
+		width: 700rpx;
+
+		margin-bottom: 40rpx;
+
+		overflow: hidden;
+
+		.menu_item {
+			display: flex;
+
+			.left {
+				.item {
+					width: 260rpx;
+					text-align: center;
+					padding: 40rpx 0;
+					color: #8C8C8C;
+					font-size: 30rpx;
+					box-sizing: border-box;
+				}
+
+				.active {
+					background-color: #F8FDFF;
+					color: #00A0E8;
+					border-left: 4rpx solid #00A0E8;
+				}
+			}
+
+			.right {
+				width: 390rpx;
+				box-sizing: border-box;
+				border-left: 4rpx solid #EEEEEE;
+				
+				/deep/.uni-collapse-item__title-wrap .uni-collapse-item__title-box .uni-collapse-item__title-text{
+					min-width: 360rpx;
+					font-size: 30rpx;
+					line-height: 100rpx;
+				}
+				
+				.title_box{
+					.item {
+						margin-left: 50rpx;
+						border-bottom: 2rpx dashed #E5E5E5;
+						height: 90rpx;
+					
+						display: flex;
+						align-items: center;
+					
+						.icon {
+
+						}
+					
+						.text {
+							margin-left: 20rpx;
+							font-size: 28rpx;
+							color: #757575;
+					
+							white-space: nowrap;
+							overflow: hidden;
+							text-overflow: ellipsis;
+						}
+					}
+					.item:last-child{
+						border-bottom: none;
+					}
+				}
+			}
+		}
+	}
+
+	.list {
+		background-color: #FFFFFF;
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		.item {
+			border-bottom: 1rpx solid #f0f0f0;
+			margin-bottom: 40rpx;
+
+			.inner {
+				margin-bottom: 40rpx;
+				width: 700rpx;
+				display: flex;
+
+				.left {
+					.user {
+						image {
+							width: 90rpx;
+							height: 90rpx;
+
+							border-radius: 50%;
+						}
+
+						.avatar {
+							width: 90rpx;
+							height: 90rpx;
+							text-align: center;
+							line-height: 90rpx;
+							border-radius: 50%;
+							background-color: #7EB1A0;
+							color: #FFFFFF;
+							font-size: 36rpx;
+							font-weight: 700;
+						}
+					}
+				}
+
+				.right {
+					margin-left: 20rpx;
+
+					width: 650rpx;
+
+					.name {
+						margin-top: 5rpx;
+						font-size: 32rpx;
+
+						text {
+							margin-left: 20rpx;
+							font-size: 28rpx;
+							color: #3a3a3a;
+						}
+					}
+
+					.text {
+						width: 600rpx;
+						margin-top: 10rpx;
+						margin-bottom: 20rpx;
+						font-size: 30rpx;
+					}
+
+					.img_box {
+						width: 550rpx;
+						overflow: hidden;
+
+						.img {
+							margin-bottom: 10rpx;
+							float: left;
+							margin-right: 20rpx;
+
+							image {
+								width: 170rpx;
+								height: 170rpx;
+
+								border-radius: 10rpx;
+							}
+						}
+
+						.img:nth-child(3n) {
+							margin-right: 0;
+						}
+					}
+
+					.time {
+						font-size: 26rpx;
+						color: #999999;
+					}
+
+
+				}
+			}
+		}
+	}
+
+	.tubiao {
+		position: relative;
+		width: 700rpx;
+		background-color: #FFFFFF;
+		// height: 900rpx;
+
+		border-radius: 20rpx;
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		border-bottom: 2rpx solid #EEEEEE;
+		margin-bottom: 40rpx;
+
+		.tubiao_title {
+			text-align: center;
+			// height: 90rpx;
+
+			.text {
+				font-size: 38rpx;
+				font-weight: 700;
+			}
+		}
+
+		.tubiao_box {
+			width: 650rpx;
+			height: 640rpx;
+
+			display: flex;
+			justify-content: center;
+			align-items: top;
+
+			.charts-box {
+				width: 100%;
+				height: 640rpx;
+			}
+		}
+
+		.tubiao_line {
+			padding-top: 20rpx;
+			width: 650rpx;
+			border-top: 2rpx solid #f7f7f7;
+
+			.line {
+				display: flex;
+				align-items: center;
+
+				font-size: 30rpx;
+				margin-bottom: 10rpx;
+
+				.lable {
+					color: #666666;
+					width: 200rpx;
+				}
+
+				.text {
+					width: 400rpx;
+					border-radius: 8rpx;
+					border: 2rpx solid #E9EBF2;
+
+					box-sizing: border-box;
+					padding: 10rpx 25rpx;
+
+					display: flex;
+					justify-content: space-between;
+				}
+			}
+		}
+	}
+</style>

+ 1 - 1
components/t-o-news-tab-2/t-o-news-tab-2 - 大分类备份.vue

@@ -17,7 +17,7 @@
 					<view class="text">{{item.title}}</view>
 					<view class="tip" v-if="item.count > 0">{{item.count}}</view>
 				</view>
-				<view class="inner" v-for="(item_2,index_2) in item.data">
+				<view class="inner" v-for="(item_2,index_2) in item.data" :key="index_2">
 					<view class="left">
 						<view class="user" v-if="item_2.face != 'http://localhost/storage/avatar/avatar_15042504.png' && item_2.face != 'upload/face/1.jpg'">
 							<image :src="item_2.face" mode="aspectFill"></image>

+ 1 - 1
components/t-o-news-tab-2/t-o-news-tab-2-UI备份.vue

@@ -22,7 +22,7 @@
 
 
 		<view class="list">
-			<view class="item" v-for="item in 2">
+			<view class="item" v-for="(item,index) in 2" :key="index">
 				<view class="title">
 					<view class="text">车辆管理</view>
 					<view class="tip">24</view>

+ 150 - 93
components/t-o-news-tab-2/t-o-news-tab-2.vue

@@ -1,18 +1,17 @@
 <template>
 	<view>
 		<!-- 标题 -->
-		<view class="title" @click="open_menu()">
+		<view class="title" v-if="kq_title != ''" @click="open_menu()">
 			<view class="left">
 				<view class="icon">
 					<image src="./icon/menu.png" mode=""></image>
 				</view>
 				<view class="text">{{title}}</view>
-			</view>
-			<view class="right">
-				<view class="icon">
-					<image src="./icon/right_icon.png" mode=""></image>
+				<view style="margin-left: 20rpx;">
+					<uni-icons type="arrowdown" color="#999" size="18" style="font-weight: 700;"></uni-icons>
 				</view>
 			</view>
+
 		</view>
 
 		<view class="menu" v-show="menu">
@@ -22,18 +21,26 @@
 						:class="active_1 == index ? 'active' : ''">{{item}}</view>
 				</view>
 				<view class="right">
-					<view class="item" v-for="(item,index) in menu_2" :key="index" @click="change_active_2(index)">
-						<view class="icon" v-if="active_2 == index">
-							<image src="./icon/active.png" mode=""></image>
-						</view>
-						<view class="text" :style="{color: active_2 == index ? '#000' : ''}">{{item.title}}</view>
-					</view>
+					<uni-collapse accordion>
+						<uni-collapse-item :show-animation="true" :title="item.category_name"
+							v-for="(item,index) in menu_2" :key="index">
+							<view class="title_box">
+								<view class="item" v-for="(item_2,index_2) in item.children" :key="index_2"
+									@click.stop="change_active_3(item_2)">
+									<view class="icon"
+										style="width: 10rpx; height: 10rpx;border-radius: 50%;background-color: #009FE8;">
+									</view>
+									<view class="text">{{item_2.title}}</view>
+								</view>
+							</view>
+						</uni-collapse-item>
+					</uni-collapse>
 				</view>
 			</view>
 		</view>
 
 		<view class="list">
-			<view class="tubiao" v-if="title != '全部'">
+			<view class="tubiao" v-if="title.indexOf('-') != -1">
 				<view class="tubiao_title">
 					<view class="text">{{tubiao_title}}</view>
 				</view>
@@ -93,13 +100,16 @@
 					</view>
 					<view class="right">
 						<view class="name">{{item.optname}}<text>{{item.depart}}</text></view>
+						<view style="font-size: 34rpx;font-weight: 700; line-height: 60rpx;">{{item.category_name}}
+						</view>
 						<view class="text">
 							<view v-html="item.str"></view>
 						</view>
 						<view class="img_box">
-							<view v-for="(item_2,index_2) in item.picture" :key="index_2">
-								<view class="img" v-for="(item_3,index_3) in item_2" :key="index_3">
-									<image :src="item_3" mode="aspectFill" @click.stop="img_chakan(item_3)"></image>
+							<view class="img_box" v-for="(item_2,index_2) in item.picture" :key="index_2">
+								<view class="img" v-for="(item_3,index_3) in item_2" :key="index_3"
+									@click.stop="img_chakan(item_2,index_3)">
+									<image :src="item_3" mode="aspectFill"></image>
 								</view>
 							</view>
 						</view>
@@ -123,19 +133,19 @@
 				format: true
 			})
 			return {
+				kq_title: "",
 				title: "全部",
 				menu: false,
 				menu_1: [],
 				menu_2: [],
 
 				active_1: 0,
-				active_2: 0,
 
 				// list
 				table: "",
 
 				page: 1,
-				pageSize: 20,
+				pageSize: 10,
 
 				name: [],
 				data: [],
@@ -151,7 +161,7 @@
 					}]
 				},
 				pie_1: {
-					"dataLabel": false,
+					"dataLabel": true,
 					"legend": {
 						// "show":false,
 						"position": "bottom",
@@ -164,6 +174,12 @@
 					"subtitle": {
 						"name": " "
 					},
+					"extra": {
+						"pie": {
+							"border": false,
+							"labelWidth": 20
+						}
+					}
 				},
 
 				// 起始时间
@@ -182,7 +198,7 @@
 			};
 		},
 		mounted() {
-			this.get_five_fixed_fiveFixedCategory()
+			this.get_five_fixed_fiveFixedKQ()
 			this.get_five_fixed_getRecordDataByTableName()
 
 			this.date_start = getNextDate(this.date_end, -30)
@@ -190,7 +206,6 @@
 		methods: {
 			// 翻页
 			nextPage() {
-				this.page++
 				this.get_five_fixed_getRecordDataByTableName()
 			},
 			open_menu() {
@@ -198,18 +213,17 @@
 			},
 			change_active_1(index) {
 				this.active_1 = index
-				this.active_2 = 0
 
-				this.title = this.menu_1[index]
-				this.get_five_fixed_getRecordDataByCategoryName(this.menu_1[index])
+				this.kq_title = this.menu_1[index]
+				this.menu_2 = []
+				this.get_five_fixed_getMenuDataByKQName()
 			},
-			change_active_2(index) {
-				this.active_2 = index
-				this.title = this.menu_2[index].title
-				this.tubiao_title = this.menu_2[index].title
+			change_active_3(item) {
+				this.title = this.kq_title + '-' + item.title
+				this.tubiao_title = item.title
 
 				// 当前详情参数
-				this.table = this.menu_2[index].table
+				this.table = item.table
 				// 获取图表数据
 				this.date_end = this.getDate()
 				this.date_start = getNextDate(this.date_end, -30)
@@ -218,47 +232,74 @@
 				this.page = 1
 				this.data = []
 				this.get_five_fixed_getRecordDataByTableName()
+				// 关闭选项
 				this.open_menu()
 			},
-			// 记录管理分类
-			get_five_fixed_fiveFixedCategory() {
-				this.$api.five_fixed_fiveFixedCategory({
+			// 获取矿区
+			get_five_fixed_fiveFixedKQ() {
+				this.$api.five_fixed_fiveFixedKQ({
 
 				}).then((res) => {
 					this.menu_1 = res.data.content.data
+					this.kq_title = res.data.content.data[0]
+					this.title = res.data.content.data[0]
 
-					this.get_five_fixed_getRecordDataByCategoryName(res.data.content.data[0])
+					this.get_five_fixed_getMenuDataByKQName()
 				})
 			},
-			// 获取记录管理列表
-			get_five_fixed_getRecordDataByCategoryName(category_name) {
-				uni.showLoading({
-					mask: true
-				})
-				this.$api.five_fixed_getRecordDataByCategoryName({
-					category_name: category_name
-				}).then((res) => {
-					uni.hideLoading()
+			// 记录管理-分类
+			get_five_fixed_getMenuDataByKQName() {
 
+				this.$api.five_fixed_getMenuDataByKQName({
+					kq_name: this.kq_title
+				}).then((res) => {
 					this.menu_2 = res.data.content.data
 				})
 			},
 			// 获取该分类下的列表详情
 			get_five_fixed_getRecordDataByTableName() {
-				console.log(this.table)
+				uni.showLoading({
+					mask: true
+				})
 				this.$api.five_fixed_getRecordDataByTableName({
 					table_name: this.table,
 					page: this.page,
 					pageSize: this.pageSize
 				}).then((res) => {
-					this.data = this.data.concat(res.data.content.data.table_data.data)
+					uni.hideLoading()
+					
+					if (this.table == '') {
+						if (res.data.content.data.length < 1) {
+							uni.showToast({
+								icon: "none",
+								title: "暂无更多内容。"
+							})
+						} else {
+							this.page++
+							this.data = this.data.concat(res.data.content.data)
+						}
+
+					} else {
+						if (res.data.content.data.data.length < 1) {
+							uni.showToast({
+								icon: "none",
+								title: "暂无更多内容。"
+							})
+						} else {
+							this.page++
+							this.data = this.data.concat(res.data.content.data.data)
+						}
+
+					}
+
 				})
 			},
-			img_chakan(url) {
-				let data = []
-				data[0] = url
+			img_chakan(url, index) {
 				uni.previewImage({
-					urls: data
+					current: index,
+					urls: url,
+					loop: true,
+					longPressActions: true
 				});
 			},
 			go_detail(num, id) {
@@ -294,14 +335,10 @@
 
 			// 获取统计项参数配置
 			get_five_fixed_getTableFiledRemark() {
-				uni.showLoading({
-					mask: true
-				})
 				this.TableFiledRemark_name = []
 				this.$api.five_fixed_getTableFiledRemark({
 					table_name: this.table
 				}).then((res) => {
-					uni.hideLoading()
 					this.TableFiledRemark = res.data.content.data
 
 					let data = res.data.content.data
@@ -317,7 +354,6 @@
 					this.get_five_fixed_getTableFiledTotalNumber()
 
 				})
-
 			},
 
 			// 改变统计项
@@ -345,12 +381,34 @@
 			},
 
 			legend_click($event) {
-				uni.navigateTo({
-					url: "../../origanization/news/tab_2/all_list/all_list?title=" + this.title + "&table=" + this
-						.table + "&tubiao_census_type_fields=" + this.tubiao_census_type_fields +
-						"&tubiao_census_type_fields_value=" + this.chartData.series[0].data[$event.currentIndex]
-						.name.split('(')[0] + "&date_start=" + this.date_start + "&date_end=" + this.date_end
-				})
+
+				let _this = this;
+				let curTime = new Date().getTime();
+				let lastTime = _this.lastTapDiffTime;
+				_this.lastTapDiffTime = curTime;
+				//两次点击间隔小于300ms, 认为是双击
+				let diff = curTime - lastTime;
+				if (diff < 300) {
+					console.log("双击")
+					//_this.handleVideo('screen',index)自定义事件
+					clearTimeout(_this.lastTapTimeoutFunc); // 成功触发双击事件时,取消单击事件的执行
+
+					uni.navigateTo({
+						url: "../../origanization/news/tab_2/all_list/all_list?title=" + this.title + "&table=" +
+							this
+							.table + "&tubiao_census_type_fields=" + this.tubiao_census_type_fields +
+							"&tubiao_census_type_fields_value=" + this.chartData.series[0].data[$event
+								.currentIndex]
+							.name.split('(')[0] + "&date_start=" + this.date_start + "&date_end=" + this.date_end
+					})
+				} else {
+					// 单击事件延时300毫秒执行
+					_this.lastTapTimeoutFunc = setTimeout(function() {
+						console.log("单击")
+						//_this.handleVideo('playOrStop',index)自定义事件
+					}, 300);
+				}
+
 			}
 		}
 	}
@@ -368,6 +426,7 @@
 
 		.left {
 			display: flex;
+			align-items: center;
 
 			.icon {
 				image {
@@ -377,23 +436,15 @@
 			}
 
 			.text {
+				max-width: 550rpx;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				white-space: nowrap;
 				margin-left: 18rpx;
 				font-size: 30rpx;
 				color: #009fe8;
 			}
 		}
-
-		.right {
-			text-align: right;
-			width: 50rpx;
-
-			.icon {
-				image {
-					width: 18rpx;
-					height: 18rpx;
-				}
-			}
-		}
 	}
 
 	.menu {
@@ -414,8 +465,9 @@
 				.item {
 					width: 260rpx;
 					text-align: center;
-					line-height: 120rpx;
+					padding: 40rpx 0;
 					color: #8C8C8C;
+					font-size: 30rpx;
 					box-sizing: border-box;
 				}
 
@@ -427,34 +479,40 @@
 			}
 
 			.right {
-				width: 420rpx;
+				width: 390rpx;
 				box-sizing: border-box;
 				border-left: 4rpx solid #EEEEEE;
 
-				.item {
-					position: relative;
-					line-height: 120rpx;
+				/deep/.uni-collapse-item__title-wrap .uni-collapse-item__title-box .uni-collapse-item__title-text {
+					min-width: 360rpx;
+					font-size: 30rpx;
+					line-height: 100rpx;
+				}
 
-					display: flex;
+				.title_box {
+					.item {
+						margin-left: 50rpx;
+						border-bottom: 2rpx dashed #E5E5E5;
+						height: 90rpx;
 
-					.icon {
-						position: absolute;
-						left: 0;
-						top: 0;
+						display: flex;
+						align-items: center;
 
-						image {
-							width: 14rpx;
-							height: 26rpx;
+						.icon {}
+
+						.text {
+							margin-left: 20rpx;
+							font-size: 28rpx;
+							color: #757575;
+
+							white-space: nowrap;
+							overflow: hidden;
+							text-overflow: ellipsis;
 						}
 					}
 
-					.text {
-						margin-left: 48rpx;
-						color: #8C8C8C;
-
-						white-space: nowrap;
-						overflow: hidden;
-						text-overflow: ellipsis;
+					.item:last-child {
+						border-bottom: none;
 					}
 				}
 			}
@@ -517,12 +575,11 @@
 					.text {
 						width: 600rpx;
 						margin-top: 10rpx;
+						margin-bottom: 20rpx;
 						font-size: 30rpx;
 					}
 
 					.img_box {
-						margin-top: 20rpx;
-
 						width: 550rpx;
 						overflow: hidden;
 
@@ -570,7 +627,7 @@
 
 		.tubiao_title {
 			text-align: center;
-			height: 90rpx;
+			// height: 90rpx;
 
 			.text {
 				font-size: 38rpx;

BIN
components/t-o-news-tab-3/icon/btn_right.png


BIN
components/t-o-news-tab-3/icon/rank.png


+ 184 - 0
components/t-o-news-tab-3/t-o-news-tab-3 - 固定背景图版本.vue

@@ -0,0 +1,184 @@
+<template>
+	<view>
+		<view class="list">
+			<view class="item" v-for="(item,index) in list" :key="index">
+				<view class="title">{{item.title}}</view>
+				<view class="box">
+					<view class="box_item" v-for="(item_2,index_2) in item.special_list" :key="index_2" @click="go_h5(item_2.id)">
+						<view class="time">有效时间:{{item_2.start_time}}——{{item_2.end_time}}</view>
+						<view class="inner">
+							<view class="left">
+								{{item_2.name}}
+							</view>
+							<view class="right" @click.stop="go_rank(item_2.id)">
+								<image src="./icon/btn.png"></image>
+							</view>
+						</view>
+						<view class="bottom">
+							<view class="line">
+								<view class="line_box" :style="{width: + item_2.percent_complete + '%'}"></view>
+							</view>
+							<view class="num">{{item_2.percent_complete}}%</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+	export default {
+		name: "t-o-news-tab-3",
+		data() {
+			return {
+				list: [],
+			};
+		},
+		created() {
+			this.get_jigsawPuzzle_specialList()
+		},
+		methods: {
+			get_jigsawPuzzle_specialList() {
+				this.$api.jigsawPuzzle_specialList({
+
+				}).then((res) => {
+					// console.log(res.data.data)
+
+					const data = res.data.data
+
+					// data.forEach((item, index) => {
+					// 	this.list = this.list.concat(item.special_list)
+					// })
+					this.list = res.data.data
+					// console.log(this.list)
+				})
+			},
+			go_h5(id) {
+				uni.navigateTo({
+					url: "../../origanization/news/tab_3/h5/h5?id="+id
+				})
+			},
+			go_rank(id){
+				uni.navigateTo({
+					url:"../../origanization/news/tab_3/ranking/ranking?id="+id
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.list {
+		box-sizing: border-box;
+		padding: 0 25rpx;
+
+		.item {
+			margin-top: 60rpx;
+			width: 700rpx;
+			margin-bottom: 20rpx;
+
+			box-sizing: border-box;
+			padding: 20rpx;
+			
+			padding-top: 60rpx;
+
+			background: #FFFFFF;
+			border: 3rpx solid #202492;
+			border-radius: 20rpx;
+			
+			position: relative;
+
+			.title{
+				position: absolute;
+				top: -35rpx;
+				left: 50rpx;
+				
+				width: 250rpx;
+				height: 70rpx;
+				line-height: 70rpx;
+				border-radius: 10rpx;
+				
+				background-image: url(./icon/title.png);
+				background-size: cover;
+				background-repeat: no-repeat;
+				
+				text-align: center;
+				
+				font-size: 42rpx;
+				font-family: FZLanTingHeiS-B-GB;
+				font-weight: 700;
+				color: #00A0E8;
+				text-shadow: 3rpx 5rpx 4rpx rgba(0, 103, 150, 0.76);
+				-webkit-text-stroke: 1rpx #FFFFFF;
+				text-stroke: 1rpx #FFFFFF;
+			}
+			.box{
+				.box_item{
+					margin-bottom: 20rpx;
+					background-image: url(./icon/bg.png);
+					background-size: 100% 100%;
+					background-repeat: no-repeat;
+					border-radius: 20rpx;
+					
+					box-sizing: border-box;
+					padding: 20rpx 30rpx;
+					
+					.time{
+						display: inline-block;
+						
+						background-color: #FBDF33;
+						box-sizing: border-box;
+						padding: 5rpx 10rpx;
+						font-size: 24rpx;
+						
+						border: 1rpx solid #000000;
+						box-shadow: 0rpx 3rpx 0rpx 0rpx rgba(0, 76, 110, 0.61);
+						border-radius: 20rpx;
+					}
+					.inner{
+						margin-top: 20rpx;
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						.left{
+							color: #FFFFFF;
+						}
+						.right{
+							margin-left: 20rpx;
+							image{
+								width: 76rpx;
+								height: 76rpx;
+								display: block;
+							}
+						}
+					}
+					.bottom {
+						margin-top: 20rpx;
+						display: flex;
+						align-items: center;
+					
+						.line {
+							width:520rpx;
+							height: 6rpx;
+							background-color: #E4E4E4;
+							border-radius: 10rpx;
+					
+							.line_box {
+								width: 36%;
+								height: 6rpx;
+								background-color: #00FFFF;
+								border-radius: 10rpx;
+							}
+						}
+					
+						.num {
+							margin-left: 10rpx;
+							font-size: 24rpx;
+							color: #FFFFFF;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 27 - 50
components/t-o-news-tab-3/t-o-news-tab-3.vue

@@ -4,21 +4,23 @@
 			<view class="item" v-for="(item,index) in list" :key="index">
 				<view class="title">{{item.title}}</view>
 				<view class="box">
-					<view class="box_item" v-for="(item_2,index_2) in item.special_list" :key="index_2" @click="go_h5(item_2.id)">
+					<view class="box_item"
+					:style="{backgroundImage:'url('+ item_2.picture +')'}"
+					v-for="(item_2,index_2) in item.special_list" :key="index_2" @click="go_h5(item_2.id,item_2.name)">
 						<view class="time">有效时间:{{item_2.start_time}}——{{item_2.end_time}}</view>
-						<view class="inner">
+						<view class="inner"> 
 							<view class="left">
 								{{item_2.name}}
 							</view>
-							<view class="right" @click.stop="go_rank(item_2.id)">
-								<image src="./icon/btn.png"></image>
+							<view class="right" @click.stop="go_ranking(item_2.id)">
+								<image src="./icon/rank.png" mode="aspectFill"></image>
 							</view>
 						</view>
 						<view class="bottom">
 							<view class="line">
 								<view class="line_box" :style="{width: + item_2.percent_complete + '%'}"></view>
 							</view>
-							<view class="num">{{item_2.percent_complete}}%</view>
+							<view class="num">{{item_2.percent_complete.toFixed(2)}}%</view>
 						</view>
 					</view>
 				</view>
@@ -31,7 +33,7 @@
 		name: "t-o-news-tab-3",
 		data() {
 			return {
-				list: []
+				list: [],
 			};
 		},
 		created() {
@@ -40,9 +42,9 @@
 		methods: {
 			get_jigsawPuzzle_specialList() {
 				this.$api.jigsawPuzzle_specialList({
-
+					staff_num:uni.getStorageSync('user').staff_num
 				}).then((res) => {
-					// console.log(res.data.data)
+					console.log(res.data.data)
 
 					const data = res.data.data
 
@@ -53,12 +55,16 @@
 					// console.log(this.list)
 				})
 			},
-			go_h5(id) {
+			go_h5(id,name) {
+				// uni.navigateTo({
+				// 	url: "../../origanization/news/tab_3/h5/h5?id="+id
+				// })
+				
 				uni.navigateTo({
-					url: "../../origanization/news/tab_3/h5/h5?id="+id
+					url: "../../origanization/news/tab_3/pin_tu/picture_list/picture_list?id="+id+"&title="+name
 				})
 			},
-			go_rank(id){
+			go_ranking(id){
 				uni.navigateTo({
 					url:"../../origanization/news/tab_3/ranking/ranking?id="+id
 				})
@@ -73,66 +79,37 @@
 		padding: 0 25rpx;
 
 		.item {
-			margin-top: 60rpx;
 			width: 700rpx;
 			margin-bottom: 20rpx;
 
 			box-sizing: border-box;
 			padding: 20rpx;
 			
-			padding-top: 60rpx;
 
 			background: #FFFFFF;
-			border: 3rpx solid #202492;
 			border-radius: 20rpx;
-			
-			position: relative;
 
 			.title{
-				position: absolute;
-				top: -35rpx;
-				left: 50rpx;
-				
-				width: 250rpx;
-				height: 70rpx;
-				line-height: 70rpx;
-				border-radius: 10rpx;
-				
-				background-image: url(./icon/title.png);
-				background-size: cover;
-				background-repeat: no-repeat;
-				
-				text-align: center;
-				
+				line-height: 80rpx;
 				font-size: 42rpx;
-				font-family: FZLanTingHeiS-B-GB;
 				font-weight: 700;
 				color: #00A0E8;
-				text-shadow: 3rpx 5rpx 4rpx rgba(0, 103, 150, 0.76);
-				-webkit-text-stroke: 1rpx #FFFFFF;
-				text-stroke: 1rpx #FFFFFF;
 			}
 			.box{
+				margin-top: 10rpx;
 				.box_item{
 					margin-bottom: 20rpx;
-					background-image: url(./icon/bg.png);
+					// background-image: url(./icon/bg.png);
 					background-size: 100% 100%;
 					background-repeat: no-repeat;
+					border-radius: 20rpx;
 					
 					box-sizing: border-box;
 					padding: 20rpx 30rpx;
 					
 					.time{
-						display: inline-block;
-						
-						background-color: #FBDF33;
-						box-sizing: border-box;
-						padding: 5rpx 10rpx;
-						font-size: 24rpx;
-						
-						border: 1rpx solid #000000;
-						box-shadow: 0rpx 3rpx 0rpx 0rpx rgba(0, 76, 110, 0.61);
-						border-radius: 20rpx;
+						color: #FFFFFF;
+						font-size: 28rpx;
 					}
 					.inner{
 						margin-top: 20rpx;
@@ -145,8 +122,8 @@
 						.right{
 							margin-left: 20rpx;
 							image{
-								width: 76rpx;
-								height: 76rpx;
+								width: 58rpx;
+								height: 64rpx;
 								display: block;
 							}
 						}
@@ -159,13 +136,13 @@
 						.line {
 							width:520rpx;
 							height: 6rpx;
-							background-color: #E4E4E4;
+							background-color: #FFFFFF33;
 							border-radius: 10rpx;
 					
 							.line_box {
 								width: 36%;
 								height: 6rpx;
-								background-color: #00FFFF;
+								background-color: #FFFFFF;
 								border-radius: 10rpx;
 							}
 						}

BIN
components/t-o-news/icon/kqq.png


BIN
components/t-o-news/icon/kqq_active.png


+ 13 - 3
components/t-o-news/t-o-news.vue

@@ -13,7 +13,7 @@
 					<view class="tip" :style="active==1?'color:#3a3a3a;':'' ">PDCA循环管理</view>
 				</view>
 			</view>
-			<view class="item" @click="change_active(2)">
+			<!-- <view class="item" @click="change_active(2)">
 				<view class="icon">
 					<image v-if="active != 2" src="./icon/icon_2.png" mode=""></image>
 					<image v-if="active == 2" src="./icon/icon_2_active.png" style="width: 115rpx;height: 80rpx;"
@@ -23,6 +23,18 @@
 					<view class="text" :style="active==2?'color:#009FE8;font-weight:700;':'' ">记录管理</view>
 					<view class="tip" :style="active==2?'color:#3a3a3a;':'' ">全部消息一览</view>
 				</view>
+			</view> -->
+			<!-- 矿区圈 -->
+			<view class="item" @click="change_active(2)">
+				<view class="icon">
+					<image v-if="active != 2" src="./icon/kqq.png" mode=""></image>
+					<image v-if="active == 2" src="./icon/kqq_active.png" style="width: 115rpx;height: 80rpx;"
+						mode=""></image>
+				</view>
+				<view class="title">
+					<view class="text" :style="active==2?'color:#009FE8;font-weight:700;':'' ">矿区圈</view>
+					<view class="tip" :style="active==2?'color:#3a3a3a;':'' ">日常记录实时查看</view>
+				</view>
 			</view>
 			<view class="item" @click="change_active(3)">
 				<view class="icon">
@@ -70,8 +82,6 @@
 			},
 			
 			tab_2_onReachBottom(){
-				console.log('tab_2_onReachBottom')
-				
 				if(this.active == 2){
 					this.$refs.tab_2.nextPage();
 				}

+ 3 - 1
components/t-o-origanization/t-o-origanization.vue

@@ -10,8 +10,10 @@
 				<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'">国家能源集团金家渠煤矿</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>
 			<view class="box">

BIN
components/t-p-icon/icon_14.png


+ 5 - 1
components/t-p-jinfeng/t-p-jinfeng.vue

@@ -89,8 +89,12 @@
 			},
 			// 视频监控
 			go_video_monitor(){
+				// uni.navigateTo({
+				// 	url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+				// })
+				
 				uni.navigateTo({
-					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+					url:"../../production/video_monitor_app/video_monitor_app?mine_code=" + this.mine_code
 				})
 			}
 		}

+ 16 - 1
components/t-p-jinjiaqu/t-p-jinjiaqu.vue

@@ -35,6 +35,15 @@
 				<view class="name">视频分析</view>
 			</view>
 		</view>
+		<view class="item_box" style="background-color: #31B3F7;" @click="go_kuangyajiance()">
+			<view class="img">
+				<image src="../t-p-icon/icon_11.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">矿压监测</view>
+				<view class="tip"></view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -74,7 +83,7 @@
 			// 视频监控
 			go_video_monitor(){
 				uni.navigateTo({
-					url:"../../production/video_monitor/video_monitor?mine_code=" + this.mine_code
+					url:"../../production/video_monitor_app/video_monitor_app?mine_code=" + this.mine_code
 				})
 			},
 			
@@ -83,6 +92,12 @@
 				uni.navigateTo({
 					url:"../../production/shangtang/shangtang"
 				})
+			},
+			
+			go_kuangyajiance(){
+				uni.navigateTo({
+					url:"../../production/jinjiaqu/kuang_ya_jian_ce/kuang_ya_jian_ce"
+				})
 			}
 		}
 	}

+ 16 - 3
components/t-p-n-section-1/t-p-n-section-1.vue

@@ -101,13 +101,21 @@
 		</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="img">
-				<image src="../t-p-icon/icon_11.png" mode=""></image>
+				<image src="../t-p-icon/icon_14.png" mode=""></image>
 			</view>
 			<view class="text">
 				<view class="name">设备监测</view>
 				<view class="tip">容知设备监控</view>
 			</view>
 		</view>
+		<view class="item_box" style="background-color: #31B3F7;" @click="go_zdhxt('kyjc')">
+			<view class="img">
+				<image src="../t-p-icon/icon_11.png" mode=""></image>
+			</view>
+			<view class="text">
+				<view class="name">矿压监测</view>
+			</view>
+		</view>
 		<!-- <view class="item_box" style="background-color: #5175E3;" @click="go_shangtang()">
 			<view class="img">
 				<image src="../t-p-icon/icon_4.png" mode=""></image>
@@ -152,8 +160,8 @@
 			// 自动化统计列表
 			go_zdhxt(zdhxt) {
 				uni.navigateTo({
-					url: "../../production/zidonghua/zidonghua?url=" +
-						"http://webdevelop.nxjiewei.com/assets/html/E-zidonghua/?zdhxt=" + zdhxt
+					// url: "../../production/zidonghua/zidonghua?url=" + "http://webdevelop.nxjiewei.com/assets/html/E-zidonghua/?zdhxt=" + zdhxt
+					url: "../../production/zidonghua/zidonghua?zdhxt=" + zdhxt
 				})
 			},
 			// 生产统计
@@ -185,6 +193,11 @@
 				uni.navigateTo({
 					url: "../../ningdongyunying/h5/h5?url=" + url
 				})
+				
+				// 原生 rtsp流
+				// uni.navigateTo({
+				// 	url:"../../production/video_monitor_app/video_monitor_app?mine_code=" + this.mine_code
+				// })
 			},
 			
 			// 商汤

+ 5 - 1
components/t-p-yangchangwan/t-p-yangchangwan.vue

@@ -108,8 +108,12 @@
 			},
 			// 视频监控
 			go_video_monitor(mine_code){
+				// uni.navigateTo({
+				// 	url:"../../production/video_monitor/video_monitor?mine_code=" + mine_code
+				// })
+				
 				uni.navigateTo({
-					url:"../../production/video_monitor/video_monitor?mine_code=" + mine_code
+					url:"../../production/video_monitor_app/video_monitor_app?mine_code=" + mine_code
 				})
 			},
 		}

+ 89 - 0
components/tree/tree.vue

@@ -0,0 +1,89 @@
+<template>
+	<view class="list">
+		<view class="item" v-for="(item,index) in list" :key="index" @click.stop="open(index,item),click(index,item)">
+			<view class="info">
+				<view class="name">
+					<!-- <uni-icons v-if="!item.children" style="margin-right: 30rpx;" type="eye" color="#009FE8"></uni-icons> {{item.name}} <text v-if="item.children" style="margin-left: 10rpx;">({{item.children.length}})</text> -->
+					<uni-icons v-if="!item.children" style="margin-right: 30rpx;" type="eye" color="#009FE8"></uni-icons> {{item.name}}
+				</view>
+				<view v-if="item.children && body_index != index" style="position: absolute;right: 20px;">
+					<uni-icons type="arrowright"></uni-icons>
+				</view>
+				<view v-if="item.children && body_index == index" style="position: absolute;right: 20px;">
+					<uni-icons type="arrowdown"></uni-icons>
+				</view>
+
+			</view>
+			<view class="body" v-if="body_index == index">
+				<tree :list="item.children"></tree>
+			</view>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	import tree from "@/components/tree/tree.vue"
+	export default {
+		name: "tree",
+		components: {
+			tree
+		},
+		props: [
+			"list"
+		],
+		data() {
+			return {
+				body_index: 9999,
+
+			};
+		},
+		methods: {
+			open(index, item) {
+				if (this.body_index == index) {
+					this.body_index = 99999
+				} else {
+					this.body_index = index
+				}
+
+			},
+			click(index, item) {
+				if (!this.list[index].children) {
+					uni.navigateTo({
+						url: "./video-block/video-block?mine_id=" + item.mine_id + "&name=" + item.name +
+							"&parent_id=" + item.parent_id,
+					})
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	
+	.list {
+		margin-left: 25rpx;
+
+		.item {
+			margin-bottom: 20rpx;
+			border-radius: 10rpx;
+			background-color: #FFFFFF;
+			.info {
+				display: flex;
+				align-items: center;
+				height: 90rpx;
+
+
+				box-sizing: border-box;
+				padding: 10rpx 0;
+
+				border-bottom: 2rpx solid #f0f0f0;
+
+				.name {
+					margin-left: 25rpx;
+				}
+
+			}
+		}
+	}
+</style>

+ 20 - 5
manifest.json

@@ -1,8 +1,8 @@
 {
-    "name" : "E信管理(新)",
-    "appid" : "__UNI__0C12F60",
+    "name" : "智慧金家渠(内网)",
+    "appid" : "__UNI__CD92393",
     "description" : "",
-    "versionName" : "1.0.12",
+    "versionName" : "1.0.0",
     "versionCode" : "100",
     "transformPx" : false,
     /* 5+App特有相关 */
@@ -22,7 +22,9 @@
         /* 模块配置 */
         "modules" : {
             "VideoPlayer" : {},
-            "Contacts" : {}
+            "Contacts" : {},
+            "Geolocation" : {},
+            "Maps" : {}
         },
         /* 应用发布信息 */
         "distribute" : {
@@ -55,7 +57,20 @@
             "ios" : {},
             /* SDK配置 */
             "sdkConfigs" : {
-                "ad" : {}
+                "ad" : {},
+                "geolocation" : {
+                    "amap" : {
+                        "__platform__" : [ "android" ],
+                        "appkey_ios" : "",
+                        "appkey_android" : "a75f68653f637eeb8fb094630dfe4c02"
+                    }
+                },
+                "maps" : {
+                    "amap" : {
+                        "appkey_ios" : "",
+                        "appkey_android" : "a75f68653f637eeb8fb094630dfe4c02"
+                    }
+                }
             },
             "icons" : {
                 "android" : {

+ 123 - 0
pages.json

@@ -650,6 +650,129 @@
             }
             
         }
+        ,{
+            "path" : "pages/production/video_monitor_app/video_monitor_app",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "视频监控"
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/video_monitor_app/video-block/video-block",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/video_monitor_app/video/video",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/ningMeiXinXiPingTai/ningMeiXinXiPingTai",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": ""
+            }
+            
+        }
+        ,{
+            "path" : "pages/workbench/origanization/origanization",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "组织架构",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/jinjiaqu/kuang_ya_jian_ce/kuang_ya_jian_ce",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "矿压监测"
+            }
+            
+        }
+        ,{
+            "path" : "pages/production/zidonghua/detail/detail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/xuanchuanzhanban/xuanchuanzhanban",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "宣传展板",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/my/personal_information/upload_avatar/upload_avatar",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "更换头像",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/origanization/news/tab_1/statistical_chart/statistical_chart",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/origanization/news/tab_3/pin_tu/picture_list/picture_list",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/origanization/news/tab_3/pin_tu/game_play/game_play",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/origanization/news/tab_3/pin_tu/finish/finish",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/origanization/news/tab_3/pin_tu/personal_rank/personal_rank",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "white",

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

@@ -14,6 +14,8 @@
 		onLoad(option) {
 			if (option.url == 'jinjiaqu_pingce') {
 				this.href = 'http://webdevelop.nxjiewei.com/assets/html/pingce/?mine_code=jinjiaqu&token=' + uni.getStorageSync('Authorization') + '#/'
+			}if (option.url == 'https://xw.tianqi.qq.com/') {
+				this.href = 'https://xw.tianqi.qq.com/'
 			}else{
 				this.href = option.url + "?token="+uni.getStorageSync('Authorization')
 				console.log(this.href)

+ 39 - 0
pages/index/ningMeiXinXiPingTai/ningMeiXinXiPingTai.vue

@@ -0,0 +1,39 @@
+<template>
+	<view>
+		<web-view :src="href"></web-view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				href: "",
+			};
+		},
+		onLoad() {
+			// #ifndef APP-NVUE
+			const eventChannel = this.getOpenerEventChannel();
+			// #endif
+
+			// 监听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
+				
+			})
+
+
+
+		}
+	}
+</script>
+
+<style lang="scss">
+
+</style>

+ 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
 
 						// 设置页面标题

+ 22 - 0
pages/index/xuanchuanzhanban/xuanchuanzhanban.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		<t-o-news-tab-3></t-o-news-tab-3>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F2FAF7;
+		padding: 25rpx 0;
+	}
+</style>

+ 12 - 0
pages/my/download/download.vue

@@ -20,9 +20,21 @@
 				<image v-if="mine_code == 'jinjiaqu'"
 					src="http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/jinjiaqu/download/download.png"
 					mode=""></image>
+				<image v-if="mine_code == 'jinjiaqu_neiwang'"
+					src="http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/jinjiaqu/download/download_neiwang.png"
+					mode=""></image>
 				<image v-if="mine_code == 'yangchangwan'"
 					src="http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/yangchangwan/download/download.png"
 					mode=""></image>
+				<image v-if="mine_code == 'shicaocun'"
+					src="http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/shicaocun/download/download.png"
+					mode=""></image>
+				<image v-if="mine_code == 'jinfeng'"
+					src="http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/jinfeng/download/download.png"
+					mode=""></image>
+				<image v-if="mine_code == 'jinfeng_neiwang'"
+					src="http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/jinfeng/download/download_neiwang.png"
+					mode=""></image>
 			</view>
 			<view class="card_tips">
 				扫一扫下载

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

@@ -9,8 +9,10 @@
 			<text v-if="mine_code == 'zaoquan'">枣泉煤矿</text>
 			<text v-if="mine_code == 'qingshuiying'">清水营煤矿</text>
 			<text v-if="mine_code == 'wuyegongsi'">智慧物业</text>
-			<text v-if="mine_code == 'jinjiaqu'">金家渠煤矿</text>
+			<text v-if="mine_code == 'jinjiaqu' || mine_code == 'jinjiaqu_neiwang'">金家渠煤矿</text>
 			<text v-if="mine_code == 'yangchangwan'">羊场湾煤矿</text>
+			<text v-if="mine_code == 'shicaocun'">石槽村煤矿</text>
+			<text v-if="mine_code == 'jinfeng' || mine_code == 'jinfeng_neiwang'">金凤煤矿</text>
 		</view>
 		<view class="change_box">
 			<view class="item">

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

@@ -9,8 +9,10 @@
 			<text v-if="mine_code == 'zaoquan'">枣泉煤矿</text>
 			<text v-if="mine_code == 'qingshuiying'">清水营煤矿</text>
 			<text v-if="mine_code == 'wuyegongsi'">智慧物业</text>
-			<text v-if="mine_code == 'jinjiaqu'">金家渠煤矿</text>
+			<text v-if="mine_code == 'jinjiaqu' || mine_code == 'jinjiaqu_neiwang'">金家渠煤矿</text>
 			<text v-if="mine_code == 'yangchangwan'">羊场湾煤矿</text>
+			<text v-if="mine_code == 'shicaocun'">石槽村煤矿</text>
+			<text v-if="mine_code == 'jinfeng' || mine_code == 'jinfeng_neiwang'">金凤煤矿</text>
 		</view>
 		<view class="login_box">
 			<view class="item">
@@ -89,6 +91,9 @@
 								icon: "none",
 								title: "登录成功"
 							})
+							// 清除信息平台的登录历史token
+							uni.setStorageSync('ningmei_token',' ')
+							// 登录成功跳转首页
 							uni.switchTab({
 								url:"../../tabbar/index/index",
 								success: () => {

+ 23 - 0
pages/my/personal_information/personal_information - h5副本.vue

@@ -0,0 +1,23 @@
+<template>
+	<view>
+		<web-view :src="href"></web-view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				href: ""
+
+			};
+		},
+		onLoad(option) {
+			this.href = "http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/user_info?token=" + uni.getStorageSync('Authorization') + "&mine_code=" + uni.getStorageSync('mine_code') + "&staff_num=" + uni.getStorageSync('user').staff_num
+		}
+	}
+</script>
+
+<style lang="scss">
+
+</style>

+ 652 - 5
pages/my/personal_information/personal_information - 副本.vue

@@ -1,23 +1,670 @@
 <template>
 	<view>
-		<web-view :src="href"></web-view>
+		<view class="top">
+			<view class="avatar" @click="change_avatar(info.avatar)">
+				<image v-if="info.avatar" :src="info.avatar" mode="aspectFill"></image>
+				<view class="avatar" v-if="!info.avatar && !info" :style="{backgroundColor:bgColor[1]}">
+					{{info.name.split('').pop()}}
+				</view>
+			</view>
+			<view class="info">
+				<view class="name">{{info.name}}</view>
+				<view class="box">
+					<view class="item">
+						<view class="label">部门</view>
+						<view class="text">{{info.section_fullname}}</view>
+					</view>
+					<view class="item">
+						<view class="label">职务</view>
+						<view class="text">{{info.duty_num}}</view>
+					</view>
+					<view class="item">
+						<view class="label">员工编号</view>
+						<view class="text">{{info.staff_num}}</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="content">
+			<view class="box">
+				<view class="item" @click="change_active(1)">
+					<view class="text" :style="{color:active == 1?'#333':'#8e8e8e'}">个人信息</view>
+					<view class="line" v-if="active == 1"></view>
+				</view>
+				<view class="item" @click="change_active(2)">
+					<view class="text" :style="{color:active == 2?'#333':'#8e8e8e'}">工作经历</view>
+					<view class="line" v-if="active == 2"></view>
+				</view>
+				<view class="item" @click="change_active(3)">
+					<view class="text" :style="{color:active == 3?'#333':'#8e8e8e'}">荣誉及证书</view>
+					<view class="line" v-if="active == 3"></view>
+				</view>
+			</view>
+
+
+			<!-- 个人信息 -->
+			<view class="list_1" v-if="active == 1">
+				<view class="item" @click="binding_phone()">
+					<view class="label">手机号</view>
+					<view class="text">{{info.mobile}}</view>
+					<view class="right">
+						<uni-icons type="arrowright"></uni-icons>
+					</view>
+				</view>
+				<view class="item" @click="go_qianming()">
+					<view class="label">手写签名</view>
+					<view class="text">
+						<image :src="info.base_img" style="width: 300rpx;height: 120rpx;" mode="aspectFill"></image>
+					</view>
+					<view class="right">
+						<uni-icons type="arrowright"></uni-icons>
+					</view>
+				</view>
+				<view class="item">
+					<view class="label">岗位分类</view>
+					<view class="text">{{info.job_classify}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">岗位</view>
+					<view class="text">{{info.job}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">职级(职务码)</view>
+					<view class="text">{{info.duty_num}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">性别</view>
+					<view class="text" v-if="info.sex == 1">男</view>
+					<view class="text" v-if="info.sex == 0">女</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">初始学历</view>
+					<view class="text">{{info.start_education}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">最高学历</view>
+					<view class="text">{{info.best_education}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">员工组</view>
+					<view class="text">{{info.group}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">员工子组</view>
+					<view class="text">{{info.group_sub}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">籍贯</view>
+					<view class="text">{{info.native}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">宗教信仰</view>
+					<view class="text">{{info.faith}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">户口性质</view>
+					<view class="text">{{info.registered}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">民族</view>
+					<view class="text">{{info.nation}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">出生日期</view>
+					<view class="text">{{info.birthday}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">身份证号</view>
+					<view class="text">{{info.identity_card}}</view>
+					<view class="right"></view>
+				</view>
+
+				<view class="item">
+					<view class="label">参加工作时间</view>
+					<view class="text">{{info.working_date}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">进入神华系统时间</view>
+					<view class="text">{{info.system_date}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">进入子分公司时间</view>
+					<view class="text">{{info.system_sub_date}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">进入本单位时间</view>
+					<view class="text">{{info.section_date}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">政治面貌</view>
+					<view class="text">{{info.politics}}</view>
+					<view class="right"></view>
+				</view>
+				<view class="item">
+					<view class="label">参加党派时间</view>
+					<view class="text">{{info.politics_date}}</view>
+					<view class="right"></view>
+				</view>
+			</view>
+
+			<!-- 工作经历 -->
+			<view class="list_2" v-if="active == 2">
+				<view class="item">
+					<view class="text_1">任职时间</view>
+					<view class="text_2">工作单位</view>
+					<view class="text_3">职务</view>
+				</view>
+				<view class="item" v-for="(item,index) in info.work_experience" :key="index" @click="del_job(index)">
+					<view class="text_1">{{item.range_text}}</view>
+					<view class="text_2">{{item.job_unit}}</view>
+					<view class="text_3">{{item.job_post}}</view>
+				</view>
+				<view class="item" @click="add_text()">
+					<view style="margin: 0 auto;">
+						<uni-icons type="compose" size="24"></uni-icons>
+					</view>
+				</view>
+			</view>
+			<!-- 荣誉及证书 -->
+			<view class="list_3" v-if="active == 3">
+				<view class="item" v-for="(item,index) in info.honor" :key="index"
+					@click="click_image(index,item.path)">
+					<view class="img">
+						<image :src="item.path" mode="aspectFill"></image>
+					</view>
+					<view class="text">{{item.imageName}}</view>
+				</view>
+				<view class="item">
+					<view class="img">
+						<view class="add" @click="add_image()">+</view>
+					</view>
+					<view class="text"></view>
+				</view>
+			</view>
+		</view>
+
+
 	</view>
 </template>
 
 <script>
+	import {set_base_url} from '@/common/set_base_url.js'
+	
 	export default {
 		data() {
 			return {
-				href: ""
-
+				mine_code:"",
+				base_url: "",
+				active: 1,
+				info: {},
+				// 头像随机色
+				bgColor: [],
 			};
 		},
-		onLoad(option) {
-			this.href = "http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/user_info?token=" + uni.getStorageSync('Authorization') + "&mine_code=" + uni.getStorageSync('mine_code') + "&staff_num=" + uni.getStorageSync('user').staff_num
+		onLoad() {
+			// 初始化当前煤矿编码
+			this.mine_code = uni.getStorageSync('mine_code')
+			// 根据矿编码切换首页接口不同的请求基础路径
+			this.base_url = set_base_url(this.mine_code)
+			
+			// 设置头像
+			for (let i = 0; i < 2; i++) {
+				// 获取随机色
+				let r = parseInt(Math.random() * 256)
+				let g = parseInt(Math.random() * 256)
+				let b = parseInt(Math.random() * 256)
+
+				// ES6 字符串拼接
+				// this.bgColor = `rgba(${r},${g},${b},0.3)`
+				let color = "rgba(" + r + "," + g + "," + b + "," + 0.3 + ")"
+				// console.log(color)
+				this.bgColor.push(color)
+			}
+
+		},
+		onShow() {
+			this.get_info()
+		},
+		methods: {
+			change_active(index) {
+				this.active = index
+			},
+			// 获取个人信息
+			get_info() {
+				this.$api.user_getUinfo({
+					staff_num: uni.getStorageSync('user').staff_num
+				}).then((res) => {
+					// console.log(res.data.data)
+					this.info = res.data.data
+					this.info.work_experience = JSON.parse(res.data.data.work_experience)
+					this.info.honor = JSON.parse(res.data.data.honor)
+				})
+			},
+
+			// 新增工作经历
+			add_text() {
+
+				const data = {
+					work_experience: this.info.work_experience
+				}
+				uni.navigateTo({
+					url: "./job_record/job_record",
+					success: (res) => {
+						// 通过eventChannel向被打开页面传送数据
+						res.eventChannel.emit('acceptDataFromOpenerPage', {
+							data: data
+						})
+					}
+				})
+			},
+			del_job(index) {
+				uni.showActionSheet({
+					itemList: ['删除'],
+					success: (res) => {
+						this.info.work_experience.splice(index, 1)
+
+						this.$api.user_updateUserMessage({
+							work_experience: JSON.stringify(this.info.work_experience)
+						}).then((res) => {
+							console.log(res)
+
+							uni.showToast({
+								icon: "none",
+								title: "删除成功"
+							})
+						})
+
+					},
+					fail: (res) => {
+						console.log(res.errMsg);
+					}
+				});
+			},
+			// 新增荣誉
+			add_image() {
+				const data = {
+					base_url: this.base_url,
+					
+					honor_list: this.info.honor
+				}
+				uni.navigateTo({
+					url: "./honor/honor",
+					success: (res) => {
+						// 通过eventChannel向被打开页面传送数据
+						res.eventChannel.emit('acceptDataFromOpenerPage', {
+							data: data
+						})
+					}
+				})
+			},
+
+			click_image(index, path) {
+				console.log(index, path)
+				uni.showActionSheet({
+					itemList: ['查看', '删除'],
+					success: (res) => {
+
+						if (res.tapIndex == 0) {
+							console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
+
+							uni.previewImage({
+								urls: path.split(','),
+							});
+
+						} else if (res.tapIndex == 1) {
+							console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
+							console.log(index)
+
+							this.info.honor.splice(index, 1)
+
+							console.log(this.info.honor)
+
+							this.$api.user_updateUserMessage({
+								honor: JSON.stringify(this.info.honor)
+							}).then((res) => {
+								console.log(res)
+
+								uni.showToast({
+									icon: "none",
+									title: "删除成功"
+								})
+							})
+						}
+
+					},
+					fail: (res) => {
+						console.log(res.errMsg);
+					}
+				})
+			},
+
+			// 更换头像
+			change_avatar() {
+				uni.showActionSheet({
+					itemList: ['更换头像'],
+					success: (res) => {
+						uni.chooseImage({
+							count: 1,
+							success: (chooseImageRes) => {
+								const tempFilePaths = chooseImageRes.tempFilePaths;
+								console.log(chooseImageRes.tempFiles[0]);
+
+								uni.showLoading({
+									mask: true,
+									title: "上传中..."
+								})
+								
+								uni.uploadFile({
+									url: this.base_url + "/worksheet/design/up_images",
+									header: {
+										'Authorization': uni.getStorageSync('token_type') +' '+uni.getStorageSync('Authorization')
+									},
+									filePath: tempFilePaths[0],
+									name: 'file',
+									// formData只有H5存在
+									formData: {
+										image: chooseImageRes.tempFiles[0]
+									},
+									success: (uploadFileRes) => {
+										
+										console.log(JSON.parse(uploadFileRes.data));
+
+										const data = JSON.parse(uploadFileRes.data).data
+
+										if (!this.info.avatar) {
+											this.info.avatar = data.path
+										} else {
+											this.info.avatar = data.path
+										}
+
+										console.log(this.info.avatar)
+
+										this.$api.user_updateUserMessage({
+											avatar: this.info.avatar
+										}).then((res) => {
+											console.log(res)
+											
+											uni.hideLoading()
+											
+											uni.showToast({
+												icon: "none",
+												title: "更换成功"
+											})
+										})
+										
+										
+									}
+								})
+
+							}
+						})
+
+					},
+					fail: (res) => {
+						console.log(res.errMsg);
+					}
+				})
+			},
+			
+			
+			// 绑定手机
+			binding_phone(){
+				uni.navigateTo({
+					url:"../setPhone/setPhone"
+				})
+			},
+			go_qianming(){
+				uni.navigateTo({
+					url:"../signature/signature"
+				})
+			}
 		}
 	}
 </script>
 
 <style lang="scss">
+	page {
+		background-color: #F5F8F8;
+	}
+
+	.top {
+		position: relative;
+		background-color: #FFFFFF;
+		width: 750rpx;
+		height: 490rpx;
+
+		background-image: url(./icon/top.png);
+		background-size: 100% 100%;
+		background-position: 0 -110rpx;
+		background-repeat: no-repeat;
+
+		.avatar {
+			padding-top: 70rpx;
+			text-align: center;
+
+			image {
+				width: 200rpx;
+				height: 200rpx;
+
+				border-radius: 50%;
+			}
+		}
+
+		.info {
+			margin-top: 20rpx;
+
+			.name {
+				text-align: center;
+				font-size: 40rpx;
+				font-weight: 700;
+			}
+
+			.box {
+				margin-top: 30rpx;
+				display: flex;
+				justify-content: space-around;
+
+				.item {
+					width: 250rpx;
+					text-align: center;
+
+					.label {
+						font-size: 30rpx;
+						color: #009FE8;
+						margin-bottom: 10rpx;
+					}
 
+					.text {
+						font-size: 32rpx;
+					}
+				}
+			}
+		}
+
+		.redo {
+			width: 100rpx;
+			height: 100rpx;
+
+			line-height: 100rpx;
+			text-align: center;
+
+
+			position: absolute;
+			top: 0;
+			right: 0;
+		}
+
+		margin-bottom: 20rpx;
+	}
+
+
+	.content {
+		background-color: #FFFFFF;
+
+		.box {
+			display: flex;
+			justify-content: space-around;
+			align-items: center;
+
+			border-bottom: 2rpx solid #F5F8F8;
+
+			.item {
+				height: 95rpx;
+				width: 230rpx;
+				text-align: center;
+
+				position: relative;
+
+				.text {
+					font-size: 34rpx;
+					line-height: 95rpx;
+				}
+
+				.line {
+					margin: -6rpx auto 0;
+					width: 80rpx;
+					height: 6rpx;
+					background-color: #009FE8;
+				}
+			}
+		}
+
+		.list_1 {
+			box-sizing: border-box;
+			padding: 0 50rpx;
+
+			.item {
+				border-bottom: 2rpx solid #F5F8F8;
+				// height: 95rpx;
+				box-sizing: border-box;
+				padding: 30rpx 0;
+				display: flex;
+				// justify-content: space-between;
+				justify-content: space-between;
+				align-items: center;
+				font-size: 32rpx;
+
+				.label {
+					width: 300rpx;
+					text-align: left;
+				}
+
+				.text {
+					width: 300rpx;
+					text-align: left;
+					color: #8e8e8e;
+
+				}
+
+				.right {
+					// width: 100rpx;
+					text-align: right;
+				}
+			}
+
+		}
+
+		.list_2 {
+			box-sizing: border-box;
+			padding: 0 50rpx;
+
+			.item {
+				border-bottom: 2rpx solid #F5F8F8;
+				// height: 95rpx;
+				box-sizing: border-box;
+				padding: 20rpx 0;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				font-size: 28rpx;
+				text-align: center;
+				color: #8e8e8e;
+
+				.text_1 {
+					width: 190rpx;
+				}
+
+				.text_2 {
+					width: 240rpx;
+
+				}
+
+				.text_3 {
+					width: 160rpx;
+				}
+			}
+
+			.item:first-child {
+				font-size: 32rpx;
+				color: #333;
+			}
+
+		}
+
+		.list_3 {
+			box-sizing: border-box;
+			padding: 50rpx;
+
+			overflow: hidden;
+
+			.item {
+				float: left;
+				margin-right: 50rpx;
+				margin-bottom: 30rpx;
+
+				width: 300rpx;
+				text-align: center;
+
+				.img {
+					margin-bottom: 10rpx;
+
+					image {
+						width: 300rpx;
+						height: 180rpx;
+					}
+
+					.add {
+						font-size: 140rpx;
+						color: #DCDCDC;
+						text-align: center;
+						height: 180rpx;
+						line-height: 160rpx;
+						background-color: #EEEEEE;
+					}
+				}
+
+				.text {
+					width: 260rpx;
+					font-size: 30rpx;
+					color: #8e8e8e;
+
+					overflow: hidden;
+					white-space: nowrap;
+					text-overflow: ellipsis;
+				}
+			}
+
+			.item:nth-child(2n) {
+				margin-right: 0;
+			}
+		}
+	}
 </style>

+ 4 - 55
pages/my/personal_information/personal_information.vue

@@ -361,62 +361,11 @@
 				uni.showActionSheet({
 					itemList: ['更换头像'],
 					success: (res) => {
-						uni.chooseImage({
-							count: 1,
-							success: (chooseImageRes) => {
-								const tempFilePaths = chooseImageRes.tempFilePaths;
-								console.log(chooseImageRes.tempFiles[0]);
-
-								uni.showLoading({
-									mask: true,
-									title: "上传中..."
-								})
-								
-								uni.uploadFile({
-									url: this.base_url + "/worksheet/design/up_images",
-									header: {
-										'Authorization': uni.getStorageSync('token_type') +' '+uni.getStorageSync('Authorization')
-									},
-									filePath: tempFilePaths[0],
-									name: 'file',
-									// formData只有H5存在
-									formData: {
-										image: chooseImageRes.tempFiles[0]
-									},
-									success: (uploadFileRes) => {
-										
-										console.log(JSON.parse(uploadFileRes.data));
-
-										const data = JSON.parse(uploadFileRes.data).data
-
-										if (!this.info.avatar) {
-											this.info.avatar = data.path
-										} else {
-											this.info.avatar = data.path
-										}
-
-										console.log(this.info.avatar)
-
-										this.$api.user_updateUserMessage({
-											avatar: this.info.avatar
-										}).then((res) => {
-											console.log(res)
-											
-											uni.hideLoading()
-											
-											uni.showToast({
-												icon: "none",
-												title: "更换成功"
-											})
-										})
-										
-										
-									}
-								})
-
-							}
+						console.log("更换头像")
+						
+						uni.navigateTo({
+							url:"./upload_avatar/upload_avatar?base_url=" + this.base_url
 						})
-
 					},
 					fail: (res) => {
 						console.log(res.errMsg);

+ 90 - 0
pages/my/personal_information/upload_avatar/upload_avatar.vue

@@ -0,0 +1,90 @@
+<template>
+    <view>
+        <okingtz-cropper @uploadSuccess="uploadSuccess"></okingtz-cropper>
+    </view>
+</template>
+
+<script>
+  //  1.引入项目
+  import OkingtzCropper from '@/uni_modules/okingtz-cropper/components/okingtz-cropper/okingtz-cropper'
+  export default {
+        components:{
+            //2.使用组件
+            OkingtzCropper
+        },
+		data() {
+			return {
+				base_url: "",
+				info:{}
+			};
+		},
+		onLoad(option) {
+			this.base_url = option.base_url
+			
+			// 获取个人信息
+			this.$api.user_getUinfo({
+				staff_num: uni.getStorageSync('user').staff_num
+			}).then((res) => {
+				this.info = res.data.data
+			})
+		},
+        methods: {
+            // 3.定义自己的回调函数
+            uploadSuccess(tempFilePath){
+                uni.showLoading({
+                	mask:true
+                })
+                // 4.根据自己的业务场景处理tempFilePath ;接口保存,或者上传至云空间
+							
+                console.log('tempFilePath_->',tempFilePath)
+				
+				uni.uploadFile({
+					url: this.base_url + "/worksheet/design/up_images",
+					header: {
+						'Authorization': uni.getStorageSync('token_type') +' '+uni.getStorageSync('Authorization')
+					},
+					filePath: tempFilePath,
+					name: 'file',
+					// formData只有H5存在
+					formData: {
+						image: tempFilePath
+					},
+					success: (uploadFileRes) => {
+						
+						console.log(JSON.parse(uploadFileRes.data));
+				
+						const data = JSON.parse(uploadFileRes.data).data
+				
+						if (!this.info.avatar) {
+							this.info.avatar = data.path
+						} else {
+							this.info.avatar = data.path
+						}
+				
+						console.log(this.info.avatar)
+				
+						this.$api.user_updateUserMessage({
+							avatar: this.info.avatar
+						}).then((res) => {
+							console.log(res)
+							
+							uni.hideLoading()
+							
+							uni.showToast({
+								icon: "none",
+								title: "更换成功"
+							})
+							
+							setTimeout(()=>{
+								uni.navigateBack()
+							},1000)
+							
+						})
+						
+						
+					}
+				})
+            }
+        }
+    }
+</script>

+ 2 - 2
pages/ningdongyunying/production_map/production_map.vue

@@ -29,7 +29,7 @@
 			<t-p-maiduoshan></t-p-maiduoshan>
 		</view>
 		<!-- 金凤 -->
-		<view v-if="mine_code == 'jinfeng'">
+		<view v-if="mine_code == 'jinfeng' || mine_code == 'jinfeng_neiwang'">
 			<t-p-jinfeng></t-p-jinfeng>
 		</view>
 		<!-- 双马 -->
@@ -53,7 +53,7 @@
 			<t-p-baijigou></t-p-baijigou>
 		</view>
 		<!-- 金家渠 -->
-		<view v-if="mine_code == 'jinjiaqu'">
+		<view v-if="mine_code == 'jinjiaqu' || mine_code == 'jinjiaqu_neiwang'">
 			<t-p-jinjiaqu></t-p-jinjiaqu>
 		</view>
 		<!-- 清水营 -->

+ 1 - 1
pages/origanization/OA/approval_list/approval/approval.vue

@@ -148,7 +148,7 @@
 			
 
 			<view class="approval_btn">
-				<view class="btn" v-for="(item,index) in item.courseact">{{item}}</view>
+				<view class="btn" v-for="(item,index) in item.courseact" :key="index">{{item}}</view>
 			</view>
 			
 			<view class="btn" @click="submit()">提交</view>

+ 56 - 0
pages/origanization/OA/h5/h5-测试获取位置.vue

@@ -0,0 +1,56 @@
+<template>
+	<view>
+		<!-- <web-view :src="href"></web-view> -->
+		
+		{{res}}
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				href: "",
+				
+				res:""
+			};
+		},
+		onLoad(option) {
+			// #ifndef APP-NVUE
+			const eventChannel = this.getOpenerEventChannel();
+			// #endif
+			// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
+			eventChannel.on('acceptDataFromOpenerPage', (data) => {
+				
+				uni.setNavigationBarTitle({
+					title: data.title
+				})
+
+				let url = escape(data.url)
+				let title = escape(data.title)
+				
+				// 获取位置
+				uni.getLocation({
+					type: 'gcj02',
+					geocode: true ,
+					success: (res)=> {
+						this.res = res
+						console.log(res)
+						console.log('当前位置的经度:' + res.longitude);
+						console.log('当前位置的纬度:' + res.latitude);
+					}
+				});
+				
+
+				// this.href = "http://oa_system.nxjiewei.com:8011/oa_login?staff_num=" + uni.getStorageSync('user')
+				// 	.staff_num + "&url=" + url + "&title=" + title
+			})
+
+		}
+	}
+</script>
+
+<style lang="scss">
+
+</style>

+ 31 - 10
pages/origanization/OA/h5/h5.vue

@@ -12,26 +12,47 @@
 			};
 		},
 		onLoad(option) {
+			// 获取位置
+			uni.getLocation({
+				type: 'gcj02',
+				geocode: true ,
+				success: (res)=> {
+					console.log(res.address)
+					// console.log('当前位置的经度:' + res.longitude);
+					// console.log('当前位置的纬度:' + res.latitude);
+					
+					this.$api.workflow_save_location({
+						staff_num: uni.getStorageSync('user').staff_num,
+						location: JSON.stringify(res)
+					}).then((res)=>{
+						console.log(res.data)
+					})
+				}
+			});
+			
+			
 			// #ifndef APP-NVUE
 			const eventChannel = this.getOpenerEventChannel();
 			// #endif
 			// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
 			eventChannel.on('acceptDataFromOpenerPage', (data) => {
-				console.log(data)
+				// console.log(data)
 
 				uni.setNavigationBarTitle({
 					title: data.title
 				})
-
-				let url = escape(data.url)
-				console.log(url)
-				console.log(unescape(url))
-
+				
+				let link_neiwang = data.url.replace('oa_system.nxjiewei.com:8011','n.oa_system.nxjiewei.com:8011')
+				
+				// let url = escape(data.url)
 				let title = escape(data.title)
-				console.log(url)
-				console.log(unescape(title))
-
-				this.href = "http://oa_system.nxjiewei.com:8011/oa_login?staff_num=" + uni.getStorageSync('user')
+				
+				// this.href = "http://oa_system.nxjiewei.com:8011/oa_login?staff_num=" + uni.getStorageSync('user')
+				// 	.staff_num + "&url=" + url + "&title=" + title
+				
+				// 内网
+				let url = escape(link_neiwang)
+				this.href = "http://n.oa_system.nxjiewei.com:8011/oa_login/index_neiwang.html?staff_num=" + uni.getStorageSync('user')
 					.staff_num + "&url=" + url + "&title=" + title
 			})
 

+ 7 - 3
pages/origanization/communication/origanization/origanization.vue

@@ -20,9 +20,11 @@
 				<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'">国家能源集团金家渠煤矿</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>
 
 			<view class="section" v-for="(item,index) in list" :key="index">
@@ -101,7 +103,7 @@
 
 				}).then((res) => {
 					uni.hideLoading()
-					console.log(res)
+					console.log(res.data.data.group.office.data)
 
 					console.log(this.mine_code)
 					
@@ -114,6 +116,8 @@
 					if(this.mine_code == 'ningdongyunying'){
 						this.list = res.data.data.group.basic.data.concat(res.data.data.group.office.data.concat(res
 							.data.data.group.zongbu.data.concat(res.data.data.group.weiwaidanwei.data.concat())))
+					}else if(this.mine_code == 'jinfeng'){
+						this.list = res.data.data.group.office.data.concat(res.data.data.group.basic.data.concat())
 					}else{
 						this.list = res.data.data.group.leader.data.concat(res.data.data.group.office.data.concat(res
 							.data.data.group.basic.data.concat()))

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

@@ -22,8 +22,10 @@
 				<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'">国家能源集团金家渠煤矿</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>
 
 			<view class="list">

pages/origanization/news/tab_1/all_list/all_list - 副本.vue → pages/origanization/news/tab_1/all_list/all_list - UI副本.vue


+ 167 - 0
pages/origanization/news/tab_1/all_list/all_list - 统计图列表备份.vue

@@ -0,0 +1,167 @@
+<template>
+	<view>
+		<view class="content" v-if="name != ''">
+			<uni-table border emptyText="暂无更多数据">
+				<!-- 表头行 -->
+				<uni-tr>
+					<uni-th align="center" width="60">序号</uni-th>
+					<uni-th align="center" @click.native="filter_change(item)" v-for="(item,index) in name" :key="index">{{item}}</uni-th>
+					<!-- <uni-th align="center">查看</uni-th> -->
+				</uni-tr>
+				<!-- 表格数据行 -->
+				<uni-tr v-for="(item,index) in data" :key="index" @row-click="go_detail(item.id)">
+					<uni-td style="vertical-align: middle;" align="center">
+						<view class="icon">
+							<!-- <image src="./icon/new.png" mode=""></image> <text style="margin-left: 10rpx;">{{index+1}}</text> -->
+							<text style="margin-left: 10rpx;">{{index+1}}</text>
+						</view>
+					</uni-td>
+					<uni-td style="vertical-align: middle;" align="center" v-for="(item_2,index_2) in item" :key="index_2" v-if="typeof(item_2) == 'string' || typeof(item_2) == 'object'">
+						<view v-if="typeof(item_2) == 'object'" style="display: flex;align-items: center;">
+							<image @click.stop="img_chakan(item_3)" style="margin-right: 10rpx;"
+								v-for="(item_3,index_3) in item_2" :src="item_3" :key="index_3">
+							</image>
+						</view>
+						<view v-else>{{item_2}}</view>
+					</uni-td>
+					
+					<!-- <uni-td align="center">
+						<view @click="chakan()">查看</view>
+					</uni-td> -->
+				</uni-tr>
+
+			</uni-table>
+		
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				table: "",
+				num:"",
+				status:"",
+				// 起始时间
+				date_start: "",
+				// 结束时间
+				date_end: "",
+
+				page: 1,
+				pageSize: 30,
+				
+				name:[],
+				data:[]
+			};
+		},
+		// onShow() {
+		// 	// #ifdef APP-PLUS
+		// 	plus.screen.lockOrientation('landscape-primary');
+		// 	// #endif
+		// },
+		// onUnload() {
+		// 	// #ifdef APP-PLUS
+		// 	plus.screen.lockOrientation('portrait-primary');
+		// 	// #endif
+		// },
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title: option.title
+			})
+			this.status = option.status
+			this.num = option.num
+			this.table = option.table
+			this.date_start = option.date_start
+			this.date_end = option.date_end
+			this.get_five_fixed_fiveFixedDetail()
+		},
+		onReachBottom(){
+			this.page++
+			console.log(this.page)
+			this.get_five_fixed_fiveFixedDetail()
+		},
+		methods: {
+			// chakan(){
+			// 	console.log(78)
+			// },
+			get_five_fixed_fiveFixedDetail() {
+				this.$api.five_fixed_fiveFixedDetail({
+					table: this.table,
+					page: this.page,
+					pageSize: this.pageSize,
+					status:this.status,
+					date_start:this.date_start,
+					date_end:this.date_end
+				}).then((res) => {
+					console.log(res.data.content.data)
+					
+					this.name = res.data.content.data.name
+					this.data = this.data.concat(res.data.content.data.table_data.data)
+				})
+			},
+			img_chakan(url) {
+				// console.log(url)
+
+				let data = []
+				data[0] = url
+				uni.previewImage({
+					urls: data
+				});
+			},
+			go_detail(id){
+				console.log(id)
+				uni.navigateTo({
+					url:"../../tab_2/all_list/detail/detail?table=" + this.num + "&id=" + id
+				})
+			},
+			
+			filter_change(item){
+				console.log(item)
+				
+				// uni.showActionSheet({
+				// 	itemList: ['A', 'B', 'C'],
+				// 	success: function (res) {
+				// 		console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
+				// 	},
+				// 	fail: function (res) {
+				// 		console.log(res.errMsg);
+				// 	}
+				// });
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content{
+		width: 100%;
+	}
+	.uni-table-th.table--border {
+		color: #000000;
+		background-color: #D8D8D8;
+	}
+
+	.uni-table-td.table--border {
+		color: #666666;
+	}
+
+
+	.icon {
+		position: relative;
+		top: 0;
+		right: 0;
+
+		image {
+			width: 33rpx;
+			height: 18rpx;
+		}
+	}
+
+	image {
+		width: 80rpx;
+		height: 80rpx;
+		display: block;
+	}
+</style>

+ 22 - 12
pages/origanization/news/tab_1/all_list/all_list-竖屏表格.vue

@@ -12,13 +12,15 @@
 				<uni-tr v-for="(item,index) in data" :key="index" @row-click="go_detail(item.id)">
 					<uni-td style="vertical-align: middle;" align="center">
 						<view class="icon">
-							<!-- <image src="./icon/new.png" mode=""></image> <text style="margin-left: 10rpx;">{{index+1}}</text> -->
 							<text style="margin-left: 10rpx;">{{index+1}}</text>
 						</view>
 					</uni-td>
 					<uni-td style="vertical-align: middle;" align="center" v-for="(item_2,index_2) in item" :key="index_2" v-if="typeof(item_2) == 'string' || typeof(item_2) == 'object'">
 						<view v-if="typeof(item_2) == 'object'" style="display: flex;align-items: center;">
-							<image @click.stop="img_chakan(item_3)" style="margin-right: 10rpx;"
+							<!-- <image @click.stop="img_chakan(item_3)" style="margin-right: 10rpx;"
+								v-for="(item_3,index_3) in item_2" :src="item_3" :key="index_3">
+							</image> -->
+							<image @click.stop="img_chakan(item_2,index_3)" style="margin-right: 10rpx;"
 								v-for="(item_3,index_3) in item_2" :src="item_3" :key="index_3">
 							</image>
 						</view>
@@ -31,6 +33,7 @@
 				</uni-tr>
 
 			</uni-table>
+		
 		</view>
 		
 	</view>
@@ -42,6 +45,11 @@
 			return {
 				table: "",
 				num:"",
+				status:"",
+				// 起始时间
+				date_start: "",
+				// 结束时间
+				date_end: "",
 
 				page: 1,
 				pageSize: 30,
@@ -54,23 +62,23 @@
 			uni.setNavigationBarTitle({
 				title: option.title
 			})
+			this.status = option.status
 			this.num = option.num
 			this.table = option.table
 			this.get_five_fixed_fiveFixedDetail()
 		},
 		onReachBottom(){
 			this.page++
+			console.log(this.page)
 			this.get_five_fixed_fiveFixedDetail()
 		},
 		methods: {
-			// chakan(){
-			// 	console.log(78)
-			// },
 			get_five_fixed_fiveFixedDetail() {
 				this.$api.five_fixed_fiveFixedDetail({
 					table: this.table,
 					page: this.page,
-					pageSize: this.pageSize
+					pageSize: this.pageSize,
+					status:this.status,
 				}).then((res) => {
 					console.log(res.data.content.data)
 					
@@ -78,13 +86,12 @@
 					this.data = this.data.concat(res.data.content.data.table_data.data)
 				})
 			},
-			img_chakan(url) {
-				console.log(url)
-
-				let data = []
-				data[0] = url
+			img_chakan(url, index) {
 				uni.previewImage({
-					urls: data
+					current: index,
+					urls: url,
+					loop: true,
+					longPressActions: true
 				});
 			},
 			go_detail(id){
@@ -98,6 +105,9 @@
 </script>
 
 <style lang="scss">
+	.content{
+		width: 100%;
+	}
 	.uni-table-th.table--border {
 		color: #000000;
 		background-color: #D8D8D8;

+ 212 - 110
pages/origanization/news/tab_1/all_list/all_list.vue

@@ -1,39 +1,39 @@
 <template>
 	<view>
-		<view class="content" v-if="name != ''">
-			<uni-table border emptyText="暂无更多数据">
-				<!-- 表头行 -->
-				<uni-tr>
-					<uni-th align="center" width="60">序号</uni-th>
-					<uni-th align="center" @click.native="filter_change(item)" v-for="(item,index) in name" :key="index">{{item}}</uni-th>
-					<!-- <uni-th align="center">查看</uni-th> -->
-				</uni-tr>
-				<!-- 表格数据行 -->
-				<uni-tr v-for="(item,index) in data" :key="index" @row-click="go_detail(item.id)">
-					<uni-td style="vertical-align: middle;" align="center">
-						<view class="icon">
-							<!-- <image src="./icon/new.png" mode=""></image> <text style="margin-left: 10rpx;">{{index+1}}</text> -->
-							<text style="margin-left: 10rpx;">{{index+1}}</text>
+		<view class="list">
+			<view class="item" v-for="(item,index) in data" :key="index" @click="go_detail(item.num,item.id)">
+				<view class="inner">
+					<view class="left">
+						<view class="user"
+							v-if="item.face != 'http://localhost/storage/avatar/avatar_15042504.png' && item.face != 'upload/face/1.jpg'">
+							<image :src="item.face" mode="aspectFill"></image>
 						</view>
-					</uni-td>
-					<uni-td style="vertical-align: middle;" align="center" v-for="(item_2,index_2) in item" :key="index_2" v-if="typeof(item_2) == 'string' || typeof(item_2) == 'object'">
-						<view v-if="typeof(item_2) == 'object'" style="display: flex;align-items: center;">
-							<image @click.stop="img_chakan(item_3)" style="margin-right: 10rpx;"
-								v-for="(item_3,index_3) in item_2" :src="item_3" :key="index_3">
-							</image>
+						<view class="user"
+							v-if="item.face == 'http://localhost/storage/avatar/avatar_15042504.png' || item.face == 'upload/face/1.jpg'">
+							<view class="avatar">{{item.optname.split('')[0]}}</view>
 						</view>
-						<view v-else>{{item_2}}</view>
-					</uni-td>
-					
-					<!-- <uni-td align="center">
-						<view @click="chakan()">查看</view>
-					</uni-td> -->
-				</uni-tr>
+					</view>
+					<view class="right">
+						<view class="name">{{item.optname}}<text>{{item.depart}}</text></view>
+						<view style="font-size: 34rpx;font-weight: 700; line-height: 60rpx;">{{item.category_name}}
+						</view>
+						<view class="text">
+							<view v-html="item.str"></view>
+						</view>
+						<view class="img_box">
+							<view class="img_box" v-for="(item_2,index_2) in item.picture" :key="index_2">
+								<view class="img" v-for="(item_3,index_3) in item_2" :key="index_3"
+									@click.stop="img_chakan(item_2,index_3)">
+									<image :src="item_3" mode="aspectFill"></image>
+								</view>
+							</view>
+						</view>
+						<view class="time">{{item.optdt}}</view>
 
-			</uni-table>
-		
+					</view>
+				</view>
+			</view>
 		</view>
-		
 	</view>
 </template>
 
@@ -44,28 +44,13 @@
 				table: "",
 				num:"",
 				status:"",
-				// 起始时间
-				date_start: "",
-				// 结束时间
-				date_end: "",
-
+				
 				page: 1,
-				pageSize: 30,
+				pageSize: 20,
 				
-				name:[],
-				data:[]
+				data:[],
 			};
 		},
-		onShow() {
-			// #ifdef APP-PLUS
-			plus.screen.lockOrientation('landscape-primary');
-			// #endif
-		},
-		onUnload() {
-			// #ifdef APP-PLUS
-			plus.screen.lockOrientation('portrait-primary');
-			// #endif
-		},
 		onLoad(option) {
 			uni.setNavigationBarTitle({
 				title: option.title
@@ -73,95 +58,212 @@
 			this.status = option.status
 			this.num = option.num
 			this.table = option.table
-			this.date_start = option.date_start
-			this.date_end = option.date_end
-			this.get_five_fixed_fiveFixedDetail()
+			this.get_five_fixed_getRecordDataByTableName()
 		},
-		onReachBottom(){
+		onReachBottom() {
 			this.page++
 			console.log(this.page)
-			this.get_five_fixed_fiveFixedDetail()
+			this.get_five_fixed_getRecordDataByTableName()
 		},
 		methods: {
-			// chakan(){
-			// 	console.log(78)
-			// },
-			get_five_fixed_fiveFixedDetail() {
-				this.$api.five_fixed_fiveFixedDetail({
-					table: this.table,
+			// 获取该分类下的列表详情
+			get_five_fixed_getRecordDataByTableName() {
+				uni.showLoading({
+					mask: true
+				})
+				this.$api.five_fixed_getRecordDataByTableName({
+					table_name: this.table,
 					page: this.page,
 					pageSize: this.pageSize,
 					status:this.status,
-					date_start:this.date_start,
-					date_end:this.date_end
 				}).then((res) => {
-					console.log(res.data.content.data)
+					uni.hideLoading()
 					
-					this.name = res.data.content.data.name
-					this.data = this.data.concat(res.data.content.data.table_data.data)
+					console.log(res)
+					
+					if (res.data.content.data.data.length < 1) {
+						uni.showToast({
+							icon: "none",
+							title: "暂无更多内容。"
+						})
+					} else {
+						this.page++
+						this.data = this.data.concat(res.data.content.data.data)
+					}
+			
 				})
 			},
-			img_chakan(url) {
-				// console.log(url)
-
-				let data = []
-				data[0] = url
-				uni.previewImage({
-					urls: data
-				});
-			},
-			go_detail(id){
+			
+			go_detail(num,id){
 				console.log(id)
 				uni.navigateTo({
-					url:"../../tab_2/all_list/detail/detail?table=" + this.num + "&id=" + id
+					url:"../../tab_2/all_list/detail/detail?table=" + num + "&id=" + id
 				})
-			},
-			
-			filter_change(item){
-				console.log(item)
-				
-				// uni.showActionSheet({
-				// 	itemList: ['A', 'B', 'C'],
-				// 	success: function (res) {
-				// 		console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
-				// 	},
-				// 	fail: function (res) {
-				// 		console.log(res.errMsg);
-				// 	}
-				// });
 			}
 		}
 	}
 </script>
 
 <style lang="scss">
-	.content{
-		width: 100%;
-	}
-	.uni-table-th.table--border {
-		color: #000000;
-		background-color: #D8D8D8;
-	}
+	.list {
+		background-color: #FFFFFF;
+		box-sizing: border-box;
+		padding: 25rpx;
 
-	.uni-table-td.table--border {
-		color: #666666;
-	}
+		.item {
+			border-bottom: 1rpx solid #f0f0f0;
+			margin-bottom: 40rpx;
 
+			.inner {
+				margin-bottom: 40rpx;
+				width: 700rpx;
+				display: flex;
 
-	.icon {
-		position: relative;
-		top: 0;
-		right: 0;
+				.left {
+					.user {
+						image {
+							width: 90rpx;
+							height: 90rpx;
+
+							border-radius: 50%;
+						}
+
+						.avatar {
+							width: 90rpx;
+							height: 90rpx;
+							text-align: center;
+							line-height: 90rpx;
+							border-radius: 50%;
+							background-color: #7EB1A0;
+							color: #FFFFFF;
+							font-size: 36rpx;
+							font-weight: 700;
+						}
+					}
+				}
+
+				.right {
+					margin-left: 20rpx;
+
+					width: 650rpx;
+
+					.name {
+						margin-top: 5rpx;
+						font-size: 32rpx;
+
+						text {
+							margin-left: 20rpx;
+							font-size: 28rpx;
+							color: #3a3a3a;
+						}
+					}
+
+					.text {
+						width: 600rpx;
+						margin-top: 10rpx;
+						margin-bottom: 20rpx;
+						font-size: 30rpx;
+					}
+
+					.img_box {
+						width: 550rpx;
+						overflow: hidden;
 
-		image {
-			width: 33rpx;
-			height: 18rpx;
+						.img {
+							margin-bottom: 10rpx;
+							float: left;
+							margin-right: 20rpx;
+
+							image {
+								width: 170rpx;
+								height: 170rpx;
+
+								border-radius: 10rpx;
+							}
+						}
+
+						.img:nth-child(3n) {
+							margin-right: 0;
+						}
+					}
+
+					.time {
+						font-size: 26rpx;
+						color: #999999;
+					}
+
+
+				}
+			}
 		}
 	}
 
-	image {
-		width: 80rpx;
-		height: 80rpx;
-		display: block;
+	.tubiao {
+		position: relative;
+		width: 700rpx;
+		background-color: #FFFFFF;
+		// height: 900rpx;
+
+		border-radius: 20rpx;
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		border-bottom: 2rpx solid #EEEEEE;
+		margin-bottom: 40rpx;
+
+		.tubiao_title {
+			text-align: center;
+			// height: 90rpx;
+
+			.text {
+				font-size: 38rpx;
+				font-weight: 700;
+			}
+		}
+
+		.tubiao_box {
+			width: 650rpx;
+			height: 640rpx;
+
+			display: flex;
+			justify-content: center;
+			align-items: top;
+
+			.charts-box {
+				width: 100%;
+				height: 640rpx;
+			}
+		}
+
+		.tubiao_line {
+			padding-top: 20rpx;
+			width: 650rpx;
+			border-top: 2rpx solid #f7f7f7;
+
+			.line {
+				display: flex;
+				align-items: center;
+
+				font-size: 30rpx;
+				margin-bottom: 10rpx;
+
+				.lable {
+					color: #666666;
+					width: 200rpx;
+				}
+
+				.text {
+					width: 400rpx;
+					border-radius: 8rpx;
+					border: 2rpx solid #E9EBF2;
+
+					box-sizing: border-box;
+					padding: 10rpx 25rpx;
+
+					display: flex;
+					justify-content: space-between;
+				}
+			}
+		}
 	}
 </style>

unpackage/dist/build/app-plus/components/t-o-news-tab-2/icon/active.png → pages/origanization/news/tab_1/statistical_chart/icon/active.png


unpackage/dist/build/app-plus/components/t-o-news-tab-1/icon/btn.png → pages/origanization/news/tab_1/statistical_chart/icon/btn.png


BIN
pages/origanization/news/tab_1/statistical_chart/icon/menu.png


BIN
pages/origanization/news/tab_1/statistical_chart/icon/new.png


unpackage/dist/build/app-plus/components/t-o-news-tab-2/icon/right_icon.png → pages/origanization/news/tab_1/statistical_chart/icon/right_icon.png


+ 644 - 0
pages/origanization/news/tab_1/statistical_chart/statistical_chart.vue

@@ -0,0 +1,644 @@
+<template>
+	<view>
+		<view class="list">
+			<view class="tubiao">
+				<view class="tubiao_title">
+					<view class="text">{{tubiao_title}}</view>
+				</view>
+				<view class="tubiao_box">
+					<view class="charts-box">
+						<qiun-data-charts type="pie" :opts="pie_1" :chartData="chartData"
+							@getIndex="legend_click($event)" tooltipFormat="column_1" />
+					</view>
+				</view>
+				<view class="tubiao_line">
+					<view class="line">
+						<view class="lable">起始时间</view>
+						<picker mode="date" :value="date_start" @change="bindDateChange_start">
+							<view class="text">
+								<view>{{date_start}}</view>
+								<view>
+									<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+								</view>
+							</view>
+						</picker>
+					</view>
+					<view class="line">
+						<view class="lable">结束时间</view>
+						<picker mode="date" :value="date_end" @change="bindDateChange_end">
+							<view class="text">
+								<view>{{date_end}}</view>
+								<view>
+									<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+								</view>
+							</view>
+						</picker>
+					</view>
+					<view class="line">
+						<view class="lable">统计项</view>
+						<view class="text" @click="change_census_type()">
+							<view>
+								{{tubiao_census_type}}
+							</view>
+							<view>
+								<uni-icons type="arrowdown" size="14" color="#999"></uni-icons>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="item" v-for="(item,index) in data" :key="index" @click="go_detail(item.num,item.id)">
+				<view class="inner">
+					<view class="left">
+						<view class="user"
+							v-if="item.face != 'http://localhost/storage/avatar/avatar_15042504.png' && item.face != 'upload/face/1.jpg'">
+							<image :src="item.face" mode="aspectFill"></image>
+						</view>
+						<view class="user"
+							v-if="item.face == 'http://localhost/storage/avatar/avatar_15042504.png' || item.face == 'upload/face/1.jpg'">
+							<view class="avatar">{{item.optname.split('')[0]}}</view>
+						</view>
+					</view>
+					<view class="right">
+						<view class="name">{{item.optname}}<text>{{item.depart}}</text></view>
+						<view style="font-size: 34rpx;font-weight: 700; line-height: 60rpx;">{{item.category_name}}
+						</view>
+						<view class="text">
+							<view v-html="item.str"></view>
+						</view>
+						<view class="img_box">
+							<view class="img_box" v-for="(item_2,index_2) in item.picture" :key="index_2">
+								<view class="img" v-for="(item_3,index_3) in item_2" :key="index_3"
+									@click.stop="img_chakan(item_2,index_3)">
+									<image :src="item_3" mode="aspectFill"></image>
+								</view>
+							</view>
+						</view>
+						<view class="time">{{item.optdt}}</view>
+
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		getNextDate
+	} from "@/common/time.js"
+	export default {
+		data() {
+			const currentDate_end = this.getDate({
+				format: true
+			})
+			return {
+				kq_title: "",
+				title: "",
+				menu: false,
+				menu_1: [],
+				menu_2: [],
+
+				active_1: 0,
+
+				// list
+				table: "",
+
+				page: 1,
+				pageSize: 20,
+
+				name: [],
+				data: [],
+
+
+				// 图表数据
+				tubiao_title: "",
+
+				// 图表数据
+				chartData: {
+					"series": [{
+						"data": []
+					}]
+				},
+				pie_1: {
+					"dataLabel": true,
+					"legend": {
+						// "show":false,
+						"position": "bottom",
+						"float": "center",
+						"lineHeight": 20,
+					},
+					"title": {
+						"name": " "
+					},
+					"subtitle": {
+						"name": " "
+					},
+					"extra": {
+						"pie": {
+							"border": false,
+							"labelWidth": 20
+						}
+					}
+				},
+
+				// 起始时间
+				date_start: "",
+				// 结束时间
+				date_end: currentDate_end,
+				// 图标统计项
+				tubiao_census_type: "",
+				tubiao_census_type_fields: "",
+
+				// 统计项配置参数
+				TableFiledRemark: [],
+
+				TableFiledRemark_name: []
+
+			};
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title:option.title
+			})
+			this.title = option.title
+			this.table = option.table
+			
+			this.change_active_3()
+		},
+		mounted() {
+			this.get_five_fixed_fiveFixedKQ()
+			this.get_five_fixed_getRecordDataByTableName()
+
+			this.date_start = getNextDate(this.date_end, -30)
+		},
+		onReachBottom() {
+			this.get_five_fixed_getRecordDataByTableName()
+		},
+		methods: {
+			open_menu() {
+				this.menu = !this.menu
+			},
+			change_active_1(index) {
+				this.active_1 = index
+
+				this.kq_title = this.menu_1[index]
+				this.menu_2 = []
+				this.get_five_fixed_getMenuDataByKQName()
+			},
+			change_active_3() {
+				this.tubiao_title = this.title
+
+				// 获取图表数据
+				this.date_end = this.getDate()
+				this.date_start = getNextDate(this.date_end, -30)
+				this.get_five_fixed_getTableFiledRemark()
+			},
+			// 获取矿区
+			get_five_fixed_fiveFixedKQ() {
+				this.$api.five_fixed_fiveFixedKQ({
+
+				}).then((res) => {
+					this.menu_1 = res.data.content.data
+					this.kq_title = res.data.content.data[0]
+					this.title = res.data.content.data[0]
+
+					this.get_five_fixed_getMenuDataByKQName()
+				})
+			},
+			// 记录管理-分类
+			get_five_fixed_getMenuDataByKQName() {
+
+				this.$api.five_fixed_getMenuDataByKQName({
+					kq_name: this.kq_title
+				}).then((res) => {
+					this.menu_2 = res.data.content.data
+				})
+			},
+			// 获取该分类下的列表详情
+			get_five_fixed_getRecordDataByTableName() {
+				uni.showLoading({
+					mask: true
+				})
+				this.$api.five_fixed_getRecordDataByTableName({
+					table_name: this.table,
+					page: this.page,
+					pageSize: this.pageSize
+				}).then((res) => {
+					uni.hideLoading()
+
+					console.log(res)
+					if (this.table == '') {
+						if (res.data.content.data.length < 1) {
+							uni.showToast({
+								icon: "none",
+								title: "暂无更多内容。"
+							})
+						} else {
+							this.page++
+							this.data = this.data.concat(res.data.content.data)
+						}
+
+					} else {
+						if (res.data.content.data.data.length < 1) {
+							uni.showToast({
+								icon: "none",
+								title: "暂无更多内容。"
+							})
+						} else {
+							this.page++
+							this.data = this.data.concat(res.data.content.data.data)
+						}
+
+					}
+
+				})
+			},
+			img_chakan(url, index) {
+				uni.previewImage({
+					current: index,
+					urls: url,
+					loop: true,
+					longPressActions: true
+				});
+			},
+			
+			go_detail(num, id) {
+				uni.navigateTo({
+					url:"../../tab_2/all_list/detail/detail?table=" + num + "&id=" + id
+				})
+			},
+
+
+			bindDateChange_start: function(e) {
+				this.date_start = e.target.value
+				this.get_five_fixed_getTableFiledTotalNumber()
+			},
+			bindDateChange_end: function(e) {
+				this.date_end = e.target.value
+				this.get_five_fixed_getTableFiledTotalNumber()
+			},
+			getDate(type) {
+				const date = new Date();
+				let year = date.getFullYear();
+				let month = date.getMonth() + 1;
+				let day = date.getDate();
+
+				if (type === 'start') {
+					year = year - 60;
+				} else if (type === 'end') {
+					year = year + 2;
+				}
+				month = month > 9 ? month : '0' + month;
+				day = day > 9 ? day : '0' + day;
+				return `${year}-${month}-${day}`;
+			},
+
+			// 获取统计项参数配置
+			get_five_fixed_getTableFiledRemark() {
+				this.TableFiledRemark_name = []
+				this.$api.five_fixed_getTableFiledRemark({
+					table_name: this.table
+				}).then((res) => {
+					this.TableFiledRemark = res.data.content.data
+
+					let data = res.data.content.data
+
+					data.forEach((item, index) => {
+						this.TableFiledRemark_name.push(item.name)
+					})
+
+					this.tubiao_census_type = this.TableFiledRemark[0].name
+
+					this.tubiao_census_type_fields = this.TableFiledRemark[0].fields
+
+					this.get_five_fixed_getTableFiledTotalNumber()
+
+				})
+			},
+
+			// 改变统计项
+			change_census_type() {
+				uni.showActionSheet({
+					itemList: this.TableFiledRemark_name,
+					success: (res) => {
+						this.tubiao_census_type = this.TableFiledRemark[res.tapIndex].name
+						this.tubiao_census_type_fields = this.TableFiledRemark[res.tapIndex].fields
+						this.get_five_fixed_getTableFiledTotalNumber()
+					}
+				});
+			},
+
+			// 获取图表数据
+			get_five_fixed_getTableFiledTotalNumber() {
+				this.$api.five_fixed_getTableFiledTotalNumber({
+					table_name: this.table,
+					field_name: this.tubiao_census_type_fields,
+					start_date: this.date_start,
+					end_date: this.date_end
+				}).then((res) => {
+					this.chartData.series[0].data = res.data.content.data
+				})
+			},
+
+			legend_click($event) {
+
+				let _this = this;
+				let curTime = new Date().getTime();
+				let lastTime = _this.lastTapDiffTime;
+				_this.lastTapDiffTime = curTime;
+				//两次点击间隔小于300ms, 认为是双击
+				let diff = curTime - lastTime;
+				if (diff < 300) {
+					console.log("双击")
+					//_this.handleVideo('screen',index)自定义事件
+					clearTimeout(_this.lastTapTimeoutFunc); // 成功触发双击事件时,取消单击事件的执行
+
+					uni.navigateTo({
+						url: "../../origanization/news/tab_2/all_list/all_list?title=" + this.title + "&table=" +
+							this
+							.table + "&tubiao_census_type_fields=" + this.tubiao_census_type_fields +
+							"&tubiao_census_type_fields_value=" + this.chartData.series[0].data[$event
+								.currentIndex]
+							.name.split('(')[0] + "&date_start=" + this.date_start + "&date_end=" + this.date_end
+					})
+				} else {
+					// 单击事件延时300毫秒执行
+					_this.lastTapTimeoutFunc = setTimeout(function() {
+						console.log("单击")
+						//_this.handleVideo('playOrStop',index)自定义事件
+					}, 300);
+				}
+
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.title {
+		box-sizing: border-box;
+		padding: 0 25rpx;
+		height: 90rpx;
+
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+		.left {
+			display: flex;
+			align-items: center;
+
+			.icon {
+				image {
+					width: 30rpx;
+					height: 30rpx;
+				}
+			}
+
+			.text {
+				max-width: 550rpx;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+				margin-left: 18rpx;
+				font-size: 30rpx;
+				color: #009fe8;
+			}
+		}
+	}
+
+	.menu {
+		background-color: #FFFFFF;
+		border-radius: 20rpx;
+
+		margin: 0 25rpx;
+		width: 700rpx;
+
+		margin-bottom: 40rpx;
+
+		overflow: hidden;
+
+		.menu_item {
+			display: flex;
+
+			.left {
+				.item {
+					width: 260rpx;
+					text-align: center;
+					padding: 40rpx 0;
+					color: #8C8C8C;
+					font-size: 30rpx;
+					box-sizing: border-box;
+				}
+
+				.active {
+					background-color: #F8FDFF;
+					color: #00A0E8;
+					border-left: 4rpx solid #00A0E8;
+				}
+			}
+
+			.right {
+				width: 390rpx;
+				box-sizing: border-box;
+				border-left: 4rpx solid #EEEEEE;
+
+				/deep/.uni-collapse-item__title-wrap .uni-collapse-item__title-box .uni-collapse-item__title-text {
+					min-width: 360rpx;
+					font-size: 30rpx;
+					line-height: 100rpx;
+				}
+
+				.title_box {
+					.item {
+						margin-left: 50rpx;
+						border-bottom: 2rpx dashed #E5E5E5;
+						height: 90rpx;
+
+						display: flex;
+						align-items: center;
+
+						.icon {}
+
+						.text {
+							margin-left: 20rpx;
+							font-size: 28rpx;
+							color: #757575;
+
+							white-space: nowrap;
+							overflow: hidden;
+							text-overflow: ellipsis;
+						}
+					}
+
+					.item:last-child {
+						border-bottom: none;
+					}
+				}
+			}
+		}
+	}
+
+	.list {
+		background-color: #FFFFFF;
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		.item {
+			border-bottom: 1rpx solid #f0f0f0;
+			margin-bottom: 40rpx;
+
+			.inner {
+				margin-bottom: 40rpx;
+				width: 700rpx;
+				display: flex;
+
+				.left {
+					.user {
+						image {
+							width: 90rpx;
+							height: 90rpx;
+
+							border-radius: 50%;
+						}
+
+						.avatar {
+							width: 90rpx;
+							height: 90rpx;
+							text-align: center;
+							line-height: 90rpx;
+							border-radius: 50%;
+							background-color: #7EB1A0;
+							color: #FFFFFF;
+							font-size: 36rpx;
+							font-weight: 700;
+						}
+					}
+				}
+
+				.right {
+					margin-left: 20rpx;
+
+					width: 650rpx;
+
+					.name {
+						margin-top: 5rpx;
+						font-size: 32rpx;
+
+						text {
+							margin-left: 20rpx;
+							font-size: 28rpx;
+							color: #3a3a3a;
+						}
+					}
+
+					.text {
+						width: 600rpx;
+						margin-top: 10rpx;
+						margin-bottom: 20rpx;
+						font-size: 30rpx;
+					}
+
+					.img_box {
+						width: 550rpx;
+						overflow: hidden;
+
+						.img {
+							margin-bottom: 10rpx;
+							float: left;
+							margin-right: 20rpx;
+
+							image {
+								width: 170rpx;
+								height: 170rpx;
+
+								border-radius: 10rpx;
+							}
+						}
+
+						.img:nth-child(3n) {
+							margin-right: 0;
+						}
+					}
+
+					.time {
+						font-size: 26rpx;
+						color: #999999;
+					}
+
+
+				}
+			}
+		}
+	}
+
+	.tubiao {
+		position: relative;
+		width: 700rpx;
+		background-color: #FFFFFF;
+		// height: 900rpx;
+
+		border-radius: 20rpx;
+		box-sizing: border-box;
+		padding: 25rpx;
+
+		border-bottom: 2rpx solid #EEEEEE;
+		margin-bottom: 40rpx;
+
+		.tubiao_title {
+			text-align: center;
+			// height: 90rpx;
+
+			.text {
+				font-size: 38rpx;
+				font-weight: 700;
+			}
+		}
+
+		.tubiao_box {
+			width: 650rpx;
+			height: 640rpx;
+
+			display: flex;
+			justify-content: center;
+			align-items: top;
+
+			.charts-box {
+				width: 100%;
+				height: 640rpx;
+			}
+		}
+
+		.tubiao_line {
+			padding-top: 20rpx;
+			width: 650rpx;
+			border-top: 2rpx solid #f7f7f7;
+
+			.line {
+				display: flex;
+				align-items: center;
+
+				font-size: 30rpx;
+				margin-bottom: 10rpx;
+
+				.lable {
+					color: #666666;
+					width: 200rpx;
+				}
+
+				.text {
+					width: 400rpx;
+					border-radius: 8rpx;
+					border: 2rpx solid #E9EBF2;
+
+					box-sizing: border-box;
+					padding: 10rpx 25rpx;
+
+					display: flex;
+					justify-content: space-between;
+				}
+			}
+		}
+	}
+</style>

+ 13 - 2
pages/origanization/news/tab_2/all_list/all_list.vue

@@ -70,6 +70,9 @@
 		},
 		methods: {
 			get_five_fixed_getRecordDataByTableName() {
+				uni.showLoading({
+					mask:true
+				})
 				this.$api.five_fixed_getRecordDataByTableName({
 					table_name: this.table,
 					field_name: this.tubiao_census_type_fields,
@@ -80,8 +83,16 @@
 					page: this.page,
 					pageSize: this.pageSize
 				}).then((res) => {
-					console.log(res.data.content.data.table_data.data)
-					this.data = this.data.concat(res.data.content.data.table_data.data)
+					uni.hideLoading()
+					
+					if(res.data.content.data.data.length < 1){
+						uni.showToast({
+							icon:"none",
+							title:"暂无更多内容。"
+						})
+					}
+
+					this.data = this.data.concat(res.data.content.data.data)
 				})
 			},
 			img_chakan(url) {

+ 0 - 6
pages/origanization/news/tab_2/all_list/detail/detail.vue

@@ -11,13 +11,7 @@
 				href: ""
 			};
 		},
-		onShow() {
-			// #ifdef APP-PLUS
-			plus.screen.lockOrientation('portrait-primary');
-			// #endif
-		},
 		onLoad(option) {
-			console.log(option)
 			
 			let url = "http://oa_system.nxjiewei.com:8011/task.php?a=x&num="+ option.table +"&mid="+option.id+"&show=we&hideheader=true"
 			

+ 1 - 1
pages/origanization/news/tab_3/h5/h5.vue

@@ -15,7 +15,7 @@
 			// this.href = 'http://web.nxjiewei.com/#/ningdongyunying/puzzle/puzzles?token=' + uni.getStorageSync('Authorization')
 			// this.href = 'http://webdevelop.nxjiewei.com/assets/html/zhks-quankuang/ceshi/?token=' + uni.getStorageSync('Authorization')
 		
-			this.href = "http://web.nxjiewei.com/#/ningdongyunying/puzzle/puzzle-info?id="+ option.id +"&token=" + uni.getStorageSync('Authorization')
+			this.href = "http://web.nxjiewei.com/#/ningdongyunying/puzzle/puzzle-info?id="+ option.id +"&staff_num=" + uni.getStorageSync('user').staff_num
 		}
 	}
 </script>

+ 155 - 0
pages/origanization/news/tab_3/pin_tu/finish/finish - UI副本.vue

@@ -0,0 +1,155 @@
+<template>
+	<view>
+		<view class="top_color"></view>
+		<view class="content">
+			<view class="title">图片名称</view>
+			<view class="game_box">
+				<image :src="sourseImg" mode="aspectFill"></image>
+				
+				<view class="tip">
+					<view class="left">
+						<view class="icon">
+							<image src="./icon/icon.png" mode=""></image>
+						</view>
+						<view class="text">我的最快纪录</view>
+					</view>
+					<view class="right">36秒</view>
+				</view>
+			</view>
+		</view>
+		
+		<view class="btn_box">
+			<view class="left">
+				<view class="btn btn_1"></view>
+				<view class="btn btn_2"></view>
+			</view>
+			<view class="right" @click="go_personal_rank()">
+				<view class="btn"></view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				sourseImg: "https://cdn.colorhub.me/E2qY01NiVN7soio3_WPoSPRZ2CQI3s0YoOyBhGw_F7U/rs:auto:280:0:0/g:ce/bG9jYWw6Ly8vMTYv/YzUvNTgxMDFlY2Ew/NDg4OTZiNjhkZTIz/NmVmZTliNDZlMTg3/OGFhMTZjNS5qcGVn.jpg",
+			};
+		},
+		onLoad() {
+			
+		},
+		methods: {
+			go_personal_rank(){
+				uni.navigateTo({
+					url:"../personal_rank/personal_rank"
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F3F8F7;
+	}
+
+	.top_color {
+		z-index: 1;
+		width: 750rpx;
+		height: 100rpx;
+		background-color: #009fe8;
+
+		position: fixed;
+		top: 1;
+		left: 0;
+	}
+
+	.content {
+		position: relative;
+		top: 20rpx;
+		z-index: 2;
+		width: 750rpx;
+		background-color: #FFFFFF;
+		border-radius: 50rpx;
+
+		padding-bottom: 40rpx;
+
+		.title {
+			text-align: center;
+			font-size: 36rpx;
+			font-weight: 700;
+			height: 100rpx;
+			line-height: 100rpx;
+		}
+
+		.game_box {
+			box-sizing: border-box;
+			padding: 0 35rpx;
+			image{
+				width: 680rpx;
+				height: 680rpx;
+			}
+			.tip{
+				margin-top: 20rpx;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				
+				.left{
+					display: flex;
+					align-items: center;
+					.icon{
+						margin-right: 10rpx;
+						image{
+							width: 28rpx;
+							height: 28rpx;
+						}
+					}
+					.text{
+						color: #4F4F4F;
+						font-size: 26rpx;
+					}
+				}
+				.right{
+					font-size: 28rpx;
+				}
+			}
+		}
+	}
+
+	.btn_box{
+		margin-top: 30rpx;
+		box-sizing: border-box;
+		padding: 35rpx;
+		
+		height: 260rpx;
+		display: flex;
+		justify-content: space-between;
+		.left{
+			.btn{
+				width: 400rpx;
+				height: 125rpx;
+				
+				background-size: cover;
+				background-repeat: no-repeat;
+			}
+			.btn_1{
+				margin-bottom: 8rpx;
+				background-image: url(./icon/detail.png);
+			}
+			.btn_2{
+				background-image: url(./icon/again.png);
+			}
+		}
+		.right{
+			width: 260rpx;
+			height: 258rpx;
+			
+			background-image: url(./icon/rank.png);
+			background-size: cover;
+			background-repeat: no-repeat;
+		}
+	}
+</style>

+ 201 - 0
pages/origanization/news/tab_3/pin_tu/finish/finish.vue

@@ -0,0 +1,201 @@
+<template>
+	<view>
+		<view class="top_color"></view>
+		<view class="content">
+			<view class="title">{{name}}</view>
+			<view class="game_box">
+				<image :src="picture" mode="aspectFill"></image>
+
+				<view class="tip">
+					<view class="left">
+						<view class="icon">
+							<image src="./icon/icon.png" mode=""></image>
+						</view>
+						<view class="text">我的最快纪录</view>
+					</view>
+					<view class="right">{{completion_time}} 秒</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="btn_box">
+			<view class="left">
+				<view class="btn btn_1" @click="go_detail()"></view>
+				<view class="btn btn_2" @click="again_btn()"></view>
+			</view>
+			<view class="right" @click="go_personal_rank()">
+				<view class="btn"></view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title: "",
+				picture:"",
+				name:"",
+				completion_time:"",
+				page_id:"",
+				mine_code:""
+
+			};
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title: option.title
+			})
+			
+			this.name = option.name
+			this.picture = option.picture
+			this.title = option.title
+			this.picture_id = option.picture_id
+			
+			this.$api.jigsawPuzzle_getPictureDetail({
+				picture_id: this.picture_id,
+				staff_num: uni.getStorageSync('user').staff_num
+			}).then((res)=>{
+				console.log(res.data.data)
+				this.mine_code = res.data.data.mine_code
+				this.completion_time = res.data.data.completion_time
+				this.page_id = res.data.data.page_id
+			})
+			
+		},
+		methods: {
+			go_personal_rank() {
+				uni.navigateTo({
+					url: "../personal_rank/personal_rank?title="+this.name+"&picture_id="+this.picture_id
+				})
+			},
+			// 再来一次
+			again_btn() {
+				uni.redirectTo({
+					url: "../game_play/game_play?title="+this.title+"&picture_id="+this.picture_id+"&name="+this.name+"&picture="+this.picture,
+				})
+			},
+			// 查看详情 关联二维码
+			go_detail(){
+				uni.navigateTo({
+					url:"../../../../../index/record/record?pageId="+this.page_id+"&mine_code="+this.mine_code
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F3F8F7;
+	}
+
+	.top_color {
+		z-index: 1;
+		width: 750rpx;
+		height: 100rpx;
+		background-color: #009fe8;
+
+		position: fixed;
+		top: 1;
+		left: 0;
+	}
+
+	.content {
+		position: relative;
+		top: 20rpx;
+		z-index: 2;
+		width: 750rpx;
+		background-color: #FFFFFF;
+		border-radius: 50rpx;
+
+		padding-bottom: 40rpx;
+
+		.title {
+			text-align: center;
+			font-size: 36rpx;
+			font-weight: 700;
+			height: 100rpx;
+			line-height: 100rpx;
+		}
+
+		.game_box {
+			box-sizing: border-box;
+			padding: 0 35rpx;
+
+			image {
+				width: 680rpx;
+				height: 680rpx;
+			}
+
+			.tip {
+				margin-top: 20rpx;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+
+				.left {
+					display: flex;
+					align-items: center;
+
+					.icon {
+						margin-right: 10rpx;
+
+						image {
+							width: 28rpx;
+							height: 28rpx;
+						}
+					}
+
+					.text {
+						color: #4F4F4F;
+						font-size: 26rpx;
+					}
+				}
+
+				.right {
+					font-size: 28rpx;
+				}
+			}
+		}
+	}
+
+	.btn_box {
+		margin-top: 30rpx;
+		box-sizing: border-box;
+		padding: 35rpx;
+
+		height: 260rpx;
+		display: flex;
+		justify-content: space-between;
+
+		.left {
+			.btn {
+				width: 400rpx;
+				height: 125rpx;
+
+				background-size: cover;
+				background-repeat: no-repeat;
+			}
+
+			.btn_1 {
+				margin-bottom: 8rpx;
+				background-image: url(./icon/detail.png);
+			}
+
+			.btn_2 {
+				background-image: url(./icon/again.png);
+			}
+		}
+
+		.right {
+			width: 260rpx;
+			height: 258rpx;
+
+			background-image: url(./icon/rank.png);
+			background-size: cover;
+			background-repeat: no-repeat;
+		}
+	}
+</style>

BIN
pages/origanization/news/tab_3/pin_tu/finish/icon/again.png


BIN
pages/origanization/news/tab_3/pin_tu/finish/icon/detail.png


BIN
pages/origanization/news/tab_3/pin_tu/finish/icon/icon.png


BIN
pages/origanization/news/tab_3/pin_tu/finish/icon/rank.png


+ 190 - 0
pages/origanization/news/tab_3/pin_tu/game_play/game_play - UI副本.vue

@@ -0,0 +1,190 @@
+<template>
+	<view>
+		<view class="top_color"></view>
+		<view class="content">
+			<view class="title">图片名称</view>
+			<view class="game_box">
+				<puzzle gameType="slice" :mapSize="mapSize" :sourseImg="sourseImg" @success="success()"></puzzle>
+			</view>
+		</view>
+
+		<!-- 查看原图 -->
+		<view class="see_box">
+			<view class="see_btn" @click="see_img()">
+				<view class="icon">
+					<image src="./icon/pic_icon.png" mode="aspectFill"></image>
+				</view>
+				<view class="text">查看原图</view>
+			</view>
+		</view>
+
+		<!-- 时间提示 -->
+		<view class="time_box">
+			<view class="icon">
+				<image src="./icon/time_icon.png" mode="aspectFill"></image>
+			</view>
+			<view class="time">{{Math.floor(duration/60)}}:{{duration%60}}</view>
+			<view class="tip">使用时间</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import puzzle from '@/uni_modules/gwh-jigsaw_puzzle/components/gwh-jigsaw_puzzle/gwh-jigsaw_puzzle.vue'
+	export default {
+		components: {
+			puzzle
+		},
+		data() {
+			return {
+				mapSize: [3, 3],
+				sourseImg: "https://cdn.colorhub.me/E2qY01NiVN7soio3_WPoSPRZ2CQI3s0YoOyBhGw_F7U/rs:auto:280:0:0/g:ce/bG9jYWw6Ly8vMTYv/YzUvNTgxMDFlY2Ew/NDg4OTZiNjhkZTIz/NmVmZTliNDZlMTg3/OGFhMTZjNS5qcGVn.jpg",
+			
+				// 游戏时间
+				timer:"",
+				duration:0
+			};
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title: option.title
+			})
+			
+			// 进入游戏开始计时
+			this.timer = setInterval(()=>{
+				this.duration++
+				console.log(this.duration)
+			},1000)
+			
+		},
+		onUnload(){
+			clearInterval(this.timer)
+		},
+		methods: {
+			success() {
+				uni.showToast({
+					icon: "none",
+					title: "拼图完成"
+				})
+
+				setTimeout(()=>{
+					uni.redirectTo({
+						url:"../finish/finish"
+					})
+				},2000)
+			},
+			// 预览图片
+			see_img() {
+				let list = []
+					list[0] = this.sourseImg
+				uni.previewImage({
+					urls: list,
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F3F8F7;
+	}
+
+	.top_color {
+		z-index: 1;
+		width: 750rpx;
+		height: 100rpx;
+		background-color: #009fe8;
+
+		position: fixed;
+		top: 1;
+		left: 0;
+	}
+
+	.content {
+		position: relative;
+		top: 20rpx;
+		z-index: 2;
+		width: 750rpx;
+		background-color: #FFFFFF;
+		border-radius: 50rpx;
+
+		padding-bottom: 40rpx;
+
+		.title {
+			text-align: center;
+			font-size: 36rpx;
+			font-weight: 700;
+			height: 100rpx;
+			line-height: 100rpx;
+		}
+
+		.game_box {}
+	}
+
+	.see_box {
+		margin-top: 50rpx;
+		position: relative;
+
+		.see_btn {
+			position: absolute;
+			top: 0;
+			right: 35rpx;
+			height: 44rpx;
+			background-color: #00A0E8;
+			border-radius: 4rpx;
+
+			display: flex;
+			align-items: center;
+
+			padding: 5rpx 14rpx;
+
+			.icon {
+				margin-right: 10rpx;
+
+				image {
+					width: 32rpx;
+					height: 28rpx;
+					display: block;
+				}
+			}
+
+			.text {
+				font-size: 24rpx;
+				color: #FFFFFF;
+			}
+		}
+	}
+
+	.time_box {
+		margin: 140rpx auto 0;
+		width: 245rpx;
+		height: 282rpx;
+
+		background-image: url(./icon/time_bg.png);
+		background-size: cover;
+		background-repeat: no-repeat;
+
+		text-align: center;
+
+		.icon {
+			padding-top: 40rpx;
+
+			image {
+				width: 32rpx;
+				height: 38rpx;
+			}
+		}
+
+		.time {
+			line-height: 80rpx;
+			font-size: 46rpx;
+			color: #009fe8;
+		}
+
+		.tip {
+			font-size: 24rpx;
+			color: #CCCCCC;
+		}
+	}
+</style>

+ 205 - 0
pages/origanization/news/tab_3/pin_tu/game_play/game_play.vue

@@ -0,0 +1,205 @@
+<template>
+	<view>
+		<view class="top_color"></view>
+		<view class="content">
+			<view class="title">{{name}}</view>
+			<view class="game_box">
+				<puzzle gameType="slice" :mapSize="mapSize" :sourseImg="picture" @success="success()"></puzzle>
+			</view>
+		</view>
+
+		<!-- 查看原图 -->
+		<view class="see_box">
+			<view class="see_btn" @click="see_img()">
+				<view class="icon">
+					<image src="./icon/pic_icon.png" mode="aspectFill"></image>
+				</view>
+				<view class="text">查看原图</view>
+			</view>
+		</view>
+
+		<!-- 时间提示 -->
+		<view class="time_box">
+			<view class="icon">
+				<image src="./icon/time_icon.png" mode="aspectFill"></image>
+			</view>
+			<view class="time">{{Math.floor(duration/60)}}:{{duration%60}}</view>
+			<view class="tip">使用时间</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import puzzle from '@/uni_modules/gwh-jigsaw_puzzle/components/gwh-jigsaw_puzzle/gwh-jigsaw_puzzle.vue'
+	export default {
+		components: {
+			puzzle
+		},
+		data() {
+			return {
+				title:"",
+				mapSize: [3, 3],
+				picture:"",
+				name:"",
+
+				// 游戏时间
+				timer: "",
+				duration: 0
+			};
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title: option.title
+			})
+			
+			this.title = option.title
+			this.picture_id = option.picture_id
+			this.picture = option.picture
+			this.name = option.name
+			
+			
+			// 进入游戏开始计时
+			this.timer = setInterval(() => {
+				this.duration++
+			}, 1000)
+		},
+		onUnload() {
+			clearInterval(this.timer)
+		},
+		methods: {
+			success() {
+				uni.showToast({
+					icon: "none",
+					title: "拼图完成"
+				})
+				
+				this.$api.jigsawPuzzle_completeJigsawPuzzle({
+					completion_time: this.duration,
+					picture_id: this.picture_id,
+					staff_num: uni.getStorageSync('user').staff_num
+				}).then((res) => {
+				
+					console.log(res)
+					
+					setTimeout(() => {
+						uni.redirectTo({
+							url: "../finish/finish?title="+this.title+"&picture_id="+this.picture_id+"&name="+this.name+"&picture="+this.picture,
+						})
+					}, 2000)
+				})
+			},
+			// 预览图片
+			see_img() {
+				let list = []
+				list[0] = this.picture
+				uni.previewImage({
+					urls: list,
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F3F8F7;
+	}
+
+	.top_color {
+		z-index: 1;
+		width: 750rpx;
+		height: 100rpx;
+		background-color: #009fe8;
+
+		position: fixed;
+		top: 1;
+		left: 0;
+	}
+
+	.content {
+		position: relative;
+		top: 20rpx;
+		z-index: 2;
+		width: 750rpx;
+		background-color: #FFFFFF;
+		border-radius: 50rpx;
+
+		padding-bottom: 40rpx;
+
+		.title {
+			text-align: center;
+			font-size: 36rpx;
+			font-weight: 700;
+			height: 100rpx;
+			line-height: 100rpx;
+		}
+
+		.game_box {}
+	}
+
+	.see_box {
+		margin-top: 50rpx;
+		position: relative;
+
+		.see_btn {
+			position: absolute;
+			top: 0;
+			right: 35rpx;
+			height: 44rpx;
+			background-color: #00A0E8;
+			border-radius: 4rpx;
+
+			display: flex;
+			align-items: center;
+
+			padding: 5rpx 14rpx;
+
+			.icon {
+				margin-right: 10rpx;
+
+				image {
+					width: 32rpx;
+					height: 28rpx;
+					display: block;
+				}
+			}
+
+			.text {
+				font-size: 24rpx;
+				color: #FFFFFF;
+			}
+		}
+	}
+
+	.time_box {
+		margin: 140rpx auto 0;
+		width: 245rpx;
+		height: 282rpx;
+
+		background-image: url(./icon/time_bg.png);
+		background-size: cover;
+		background-repeat: no-repeat;
+
+		text-align: center;
+
+		.icon {
+			padding-top: 40rpx;
+
+			image {
+				width: 32rpx;
+				height: 38rpx;
+			}
+		}
+
+		.time {
+			line-height: 80rpx;
+			font-size: 46rpx;
+			color: #009fe8;
+		}
+
+		.tip {
+			font-size: 24rpx;
+			color: #CCCCCC;
+		}
+	}
+</style>

BIN
pages/origanization/news/tab_3/pin_tu/game_play/icon/pic_icon.png


BIN
pages/origanization/news/tab_3/pin_tu/game_play/icon/time_bg.png


BIN
pages/origanization/news/tab_3/pin_tu/game_play/icon/time_icon.png


BIN
pages/origanization/news/tab_3/pin_tu/personal_rank/icon/icon_1.png


BIN
pages/origanization/news/tab_3/pin_tu/personal_rank/icon/icon_2.png


BIN
pages/origanization/news/tab_3/pin_tu/personal_rank/icon/icon_3.png


+ 164 - 0
pages/origanization/news/tab_3/pin_tu/personal_rank/personal_rank - UI副本.vue

@@ -0,0 +1,164 @@
+<template>
+	<view>
+		<!-- 顶部渐变 -->
+		<view class="top_color"></view>
+		
+		<view class="content">
+			<view class="label">
+				<view class="title box_1">排名</view>
+				<view class="title box_2">姓名</view>
+				<view class="title box_3">时间</view>
+			</view>
+			<view class="list">
+				<view class="item" v-for="(item,index) in 7" :key="index">
+					<view class="index">
+						<view v-if="index == 0">
+							<image src="./icon/icon_1.png" mode="aspectFill"></image>
+						</view>
+						<view v-else-if="index == 1">
+							<image src="./icon/icon_2.png" mode="aspectFill"></image>
+						</view>
+						<view v-else-if="index == 2">
+							<image src="./icon/icon_3.png" mode="aspectFill"></image>
+						</view>
+						<view v-else>{{index+1}}</view>
+					</view>
+					<view class="user">
+						<view class="img">
+							<image src="https://cdn.colorhub.me/tmQUwlQPLuJl79kIz-6s1QIGeQ8sboHV1Hat8u7x-7g/rs:fill:280:280:0/g:sm/bG9jYWw6Ly8vNGUv/ZDkvOTkzODA0ZTRh/YTA4YTM3N2RlYTUz/OWU0ZmQwZmIwOWRm/ZTMxNGVkOS5qcGc.jpg" mode="aspectFill"></image>
+						</view>
+						<view class="info">
+							<view class="name">牛之星</view>
+							<view class="section">生产技术科</view>
+						</view>
+					</view>
+					<view class="time">28秒</view>
+				</view>
+			</view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			};
+		},
+		onLoad() {
+			
+		},
+		methods:{
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #F3F8F7;
+	}
+	.top_color{
+		z-index: 1;
+		width: 750rpx;
+		height: 500rpx;
+		background-image: linear-gradient(to top, #F3F8F7 0%, #009fe8 100%);
+		
+		position: fixed;
+		top: 1;
+		left: 0;
+	}
+	.content{
+		position: relative;
+		z-index: 2;
+		box-sizing: border-box;
+		padding: 40rpx 25rpx;
+		
+		margin: 0 auto;
+		width: 700rpx;
+		min-height: 90vh;
+		background-color: #FFFFFF;
+		border-radius: 20rpx;
+		
+		.label{
+			width: 650rpx;
+			height: 90rpx;
+			border-radius: 40rpx;
+			background-image: linear-gradient(to top, #CAEBFA 0%, #009fe8 90%);
+			
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			.title{
+				color: #FFFFFF;
+				font-size: 28rpx;
+				font-weight: 700;
+			}
+			.box_1{
+				width: 100rpx;
+				text-align: center;
+			}
+			.box_2{
+				width: 300rpx;
+				text-indent: 2em;
+			}
+			.box_3{
+				width: 150rpx;
+				text-align: center;
+			}
+		}
+	
+		.list{
+			.item{
+				height: 120rpx;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				.index{
+					width: 100rpx;
+					text-align: center;
+					font-size: 28rpx;
+					
+					image{
+						width: 45rpx;
+						height: 64rpx;
+					}
+				}
+				.user{
+					width: 300rpx;
+					display: flex;
+					align-items: center;
+					.img{
+						margin-right: 20rpx;
+						image{
+							width: 74rpx;
+							height: 74rpx;
+							display: block;
+							border-radius: 50%;
+						}
+					}
+					.info{
+						display: flex;
+						flex-direction: column;
+						.name{
+							color: #01A0E8;
+							font-size: 28rpx;
+							font-weight: 700;
+						}
+						.section{
+							margin-top: 6rpx;
+							color: #909090;
+							font-size: 24rpx;
+						}
+					}
+				}
+				.time{
+					width: 150rpx;
+					text-align: center;
+				}
+			}
+		}
+	}
+</style>

+ 198 - 0
pages/origanization/news/tab_3/pin_tu/personal_rank/personal_rank.vue

@@ -0,0 +1,198 @@
+<template>
+	<view>
+		<!-- 顶部渐变 -->
+		<view class="top_color"></view>
+
+		<view class="content">
+			<view class="label">
+				<view class="title box_1">排名</view>
+				<view class="title box_2">姓名</view>
+				<view class="title box_3">时间</view>
+			</view>
+			<view class="list">
+				<view class="item" v-for="(item,index) in list" :key="index">
+					<view class="index">
+						<view v-if="index == 0">
+							<image src="./icon/icon_1.png" mode="aspectFill"></image>
+						</view>
+						<view v-else-if="index == 1">
+							<image src="./icon/icon_2.png" mode="aspectFill"></image>
+						</view>
+						<view v-else-if="index == 2">
+							<image src="./icon/icon_3.png" mode="aspectFill"></image>
+						</view>
+						<view v-else>{{index+1}}</view>
+					</view>
+					<view class="user">
+						<view class="img">
+							<image
+								:src="item.sign"
+								mode="aspectFill"></image>
+						</view>
+						<view class="info">
+							<view class="name">{{item.name}}</view>
+							<view class="section">{{item.mine}}</view>
+						</view>
+					</view>
+					<view class="time">{{item.completion_time}} 秒</view>
+				</view>
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				picture_id: "",
+				list:[]
+			};
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title: option.title
+			})
+			this.picture_id = option.picture_id
+			
+			this.get_list()
+		},
+		methods: {
+			get_list() {
+				this.$api.jigsawPuzzle_getRankingByPictureId({
+					picture_id: this.picture_id
+				}).then((res) => {
+					console.log(res.data.data)
+					this.list = res.data.data
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F3F8F7;
+	}
+
+	.top_color {
+		z-index: 1;
+		width: 750rpx;
+		height: 500rpx;
+		background-image: linear-gradient(to top, #F3F8F7 0%, #009fe8 100%);
+
+		position: fixed;
+		top: 1;
+		left: 0;
+	}
+
+	.content {
+		position: relative;
+		z-index: 2;
+		box-sizing: border-box;
+		padding: 40rpx 25rpx;
+
+		margin: 0 auto;
+		width: 700rpx;
+		min-height: 90vh;
+		background-color: #FFFFFF;
+		border-radius: 20rpx;
+
+		.label {
+			width: 650rpx;
+			height: 90rpx;
+			border-radius: 40rpx;
+			background-image: linear-gradient(to top, #CAEBFA 0%, #009fe8 90%);
+
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+
+			.title {
+				color: #FFFFFF;
+				font-size: 28rpx;
+				font-weight: 700;
+			}
+
+			.box_1 {
+				width: 100rpx;
+				text-align: center;
+			}
+
+			.box_2 {
+				width: 300rpx;
+				text-indent: 2em;
+			}
+
+			.box_3 {
+				width: 150rpx;
+				text-align: center;
+			}
+		}
+
+		.list {
+			.item {
+				border-bottom: 1rpx solid #EEEEEE;
+				height: 120rpx;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+
+				.index {
+					width: 100rpx;
+					text-align: center;
+					font-size: 28rpx;
+
+					image {
+						width: 45rpx;
+						height: 64rpx;
+					}
+				}
+
+				.user {
+					width: 300rpx;
+					display: flex;
+					align-items: center;
+
+					.img {
+						margin-right: 20rpx;
+
+						image {
+							width: 74rpx;
+							height: 74rpx;
+							display: block;
+							border-radius: 50%;
+						}
+					}
+
+					.info {
+						display: flex;
+						flex-direction: column;
+						
+						width: 260rpx;
+						.name {
+							color: #01A0E8;
+							font-size: 28rpx;
+							font-weight: 700;
+						}
+
+						.section {
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+							margin-top: 6rpx;
+							color: #909090;
+							font-size: 24rpx;
+						}
+					}
+				}
+
+				.time {
+					width: 150rpx;
+					text-align: center;
+				}
+			}
+		}
+	}
+</style>

+ 0 - 0
pages/origanization/news/tab_3/pin_tu/picture_list/icon/lock.png


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