257 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			257 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<script>
 | 
						||
	import {
 | 
						||
		getTasksUpdate
 | 
						||
	} from './services/app'
 | 
						||
	import {
 | 
						||
		initFilter
 | 
						||
	} from './utils/common'
 | 
						||
	import request from './utils/request'
 | 
						||
	import config from './config/common'
 | 
						||
	import checkappupdate from './utils/checkappupdate.js'
 | 
						||
 | 
						||
	export default {
 | 
						||
		globalData: {
 | 
						||
			noticeAndTask: {
 | 
						||
				Task: 0,
 | 
						||
				Msg: 0
 | 
						||
			}
 | 
						||
		},
 | 
						||
		data() {
 | 
						||
			return {
 | 
						||
				getUpdateFn: undefined
 | 
						||
			}
 | 
						||
		},
 | 
						||
		onLaunch: function() {
 | 
						||
			const token = uni.getStorageSync('accessToken')
 | 
						||
			const orgId = uni.getStorageSync('orgId')
 | 
						||
			const Tenant = uni.getStorageSync('Tenant')
 | 
						||
			const appInfo = uni.getStorageSync('appInfo')
 | 
						||
			if (!token || !orgId || !Tenant || !appInfo) {
 | 
						||
				uni.reLaunch({
 | 
						||
					url: 'pages/login/index'
 | 
						||
				})
 | 
						||
			}
 | 
						||
 | 
						||
			// checkappupdate.check({
 | 
						||
			// 	versionContent: '1.升级提示框改造早早早哦啊早\n2.提示标语更新\n3.其他优化升级,建议全员升级',
 | 
						||
			// 	versionNumber: '1.0.022',
 | 
						||
			// 	appurl: '大大哇',
 | 
						||
			// 	apk:'false',
 | 
						||
			// 	versionNow:'1.0.021'
 | 
						||
			// })
 | 
						||
			const store = this.$store
 | 
						||
			// #ifndef MP
 | 
						||
			uni.onTabBarMidButtonTap(function() {
 | 
						||
				uni.chooseImage({
 | 
						||
					count: 6, //默认9
 | 
						||
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
 | 
						||
					sourceType: ['camera'],
 | 
						||
					success: (res) => {
 | 
						||
						const url = config.serviceHost('/PF/File/UploadFile')
 | 
						||
						request.upload(url, res.tempFilePaths).then((result) => {
 | 
						||
							if (result.IsSuccessful) {
 | 
						||
								// TODO: 目前只支持一张照片
 | 
						||
								store.commit('updateImageLists', [{
 | 
						||
									IMG_FILE_ID: result.Data.imgFileID,
 | 
						||
									IMG_FILE_PATH: result.Data.imgFilePath
 | 
						||
								}]);
 | 
						||
								uni.showActionSheet({
 | 
						||
									title: '选择上报类型',
 | 
						||
									itemList: ['随手拍', '隐患上报'],
 | 
						||
									success: (e) => {
 | 
						||
										if (e.tapIndex === 0) {
 | 
						||
											uni.navigateTo({
 | 
						||
												url: '/pages/camera/index'
 | 
						||
											})
 | 
						||
										} else {
 | 
						||
											uni.navigateTo({
 | 
						||
												url: '/pages/apply/subPages/riskReport'
 | 
						||
											})
 | 
						||
										}
 | 
						||
									}
 | 
						||
								})
 | 
						||
							}
 | 
						||
						}).catch((error) => {
 | 
						||
							console.log(error)
 | 
						||
						});
 | 
						||
					},
 | 
						||
					complete: function(com) {
 | 
						||
						console.log('choose image complete', com)
 | 
						||
					}
 | 
						||
				})
 | 
						||
			})
 | 
						||
			// #endif
 | 
						||
 | 
						||
			// 检查更新
 | 
						||
			// #ifdef APP-PLUS
 | 
						||
			if (this.judgeTabbar()) {
 | 
						||
				// 在有tabbar页时,提示更新
 | 
						||
				getTasksUpdate(json).then(res => {
 | 
						||
					if (res.Data.AppVersion) {
 | 
						||
						this.checkVersionUpdate(res.Data.AppVersion)
 | 
						||
					}
 | 
						||
				})
 | 
						||
			}
 | 
						||
			// #endif
 | 
						||
		},
 | 
						||
		onShow: function() {
 | 
						||
			console.log('App Show')
 | 
						||
			const orgId = uni.getStorageSync('orgId')
 | 
						||
			const json = initFilter(orgId)
 | 
						||
			// 检查更新
 | 
						||
			// #ifdef APP-PLUS
 | 
						||
			if (this.judgeTabbar()) {
 | 
						||
				// 在有tabbar页时,提示更新
 | 
						||
				getTasksUpdate(json).then(res => {
 | 
						||
					if (res.Data.AppVersion) {
 | 
						||
						this.checkVersionUpdate(res.Data.AppVersion)
 | 
						||
					}
 | 
						||
				})
 | 
						||
			}
 | 
						||
			// #endif
 | 
						||
 | 
						||
			// 获取任务和消息更新
 | 
						||
			const timingUpdate = () => {
 | 
						||
				if (this.judgeTabbar()) {
 | 
						||
					getTasksUpdate(json).then(res => {
 | 
						||
						getApp().globalData.noticeAndTask = res.Data
 | 
						||
						if (res.Data) {
 | 
						||
							if (res.Data.Task > 0 || res.Data.Msg > 0) {
 | 
						||
								// 设置tab红点
 | 
						||
								uni.showTabBarRedDot({
 | 
						||
									index: 0
 | 
						||
								})
 | 
						||
							} else {
 | 
						||
								uni.hideTabBarRedDot({
 | 
						||
									index: 0
 | 
						||
								})
 | 
						||
							}
 | 
						||
						}
 | 
						||
					})
 | 
						||
				}
 | 
						||
			}
 | 
						||
			setTimeout(timingUpdate, 1000)
 | 
						||
			this.getUpdateFn = setInterval(timingUpdate, 60000)
 | 
						||
		},
 | 
						||
		onHide: function() {
 | 
						||
			console.log('App Hide')
 | 
						||
			clearInterval(this.getUpdateFn)
 | 
						||
		},
 | 
						||
		onExit: function() {
 | 
						||
			console.log('App Exit')
 | 
						||
			clearInterval(this.getUpdateFn)
 | 
						||
		},
 | 
						||
		methods: {
 | 
						||
			judgeTabbar() {
 | 
						||
				let pages = getCurrentPages()
 | 
						||
				if (pages.length > 0) {
 | 
						||
					let prevPage = pages[pages.length - 1]
 | 
						||
					if (prevPage.route === 'pages/index/index2' || prevPage.route === 'pages/performance/index1' ||
 | 
						||
						prevPage.route === 'pages/my/index1' || prevPage.route === 'pages/apply/index') {
 | 
						||
						return true
 | 
						||
					}
 | 
						||
				}
 | 
						||
			},
 | 
						||
			checkVersionUpdate(versionInfo) {
 | 
						||
				const latestVersion = parseInt(versionInfo.Code.split('.').join(''))
 | 
						||
				// const localVersion = parseInt(plus.runtime.version.split('.').join(''))
 | 
						||
				plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
 | 
						||
					const localVersion = parseInt(widgetInfo.version.split('.').join(''))
 | 
						||
					if (latestVersion > localVersion) {
 | 
						||
						if (versionInfo.Upgrade >= 0 && versionInfo.Url) {
 | 
						||
							if (versionInfo.Upgrade === 0) { // 资源包更新
 | 
						||
								checkappupdate.check({
 | 
						||
									versionContent: versionInfo.Desc,
 | 
						||
									versionNumber: versionInfo.Code,
 | 
						||
									versionNow: widgetInfo.version,
 | 
						||
									appurl: config.uni_app_web_source_url + versionInfo.Url,
 | 
						||
									apk: 'false'
 | 
						||
								})
 | 
						||
								// uni.showModal({
 | 
						||
								// 	title: "有新的版本(" + latestVersion + "),请更新",
 | 
						||
								// 	content: versionInfo.Desc,
 | 
						||
								// 	cancelText: '稍后更新',
 | 
						||
								// 	confirmText: '立即更新',
 | 
						||
								// 	success: (res) => {
 | 
						||
								// 		if (res.confirm) {
 | 
						||
								// 			uni.showLoading({
 | 
						||
								// 				title: "下载资源包",
 | 
						||
								// 				mask: true,
 | 
						||
								// 			})
 | 
						||
								// 			uni.downloadFile({ // 下载资源包
 | 
						||
								// 				url: config.uni_app_web_source_url +
 | 
						||
								// 					versionInfo.Url,
 | 
						||
								// 				success: (downloadResult) => {
 | 
						||
								// 					uni.hideLoading()
 | 
						||
								// 					if (downloadResult.statusCode ===
 | 
						||
								// 						200) {
 | 
						||
								// 						plus.runtime.install(downloadResult
 | 
						||
								// 							.tempFilePath, { // 安装资源包
 | 
						||
								// 								force: false
 | 
						||
								// 							},
 | 
						||
								// 							function() {
 | 
						||
								// 								console.log(
 | 
						||
								// 									'install success...'
 | 
						||
								// 								);
 | 
						||
								// 								plus.runtime
 | 
						||
								// 									.restart(); // 重启APP
 | 
						||
								// 							},
 | 
						||
								// 							function(e) {
 | 
						||
								// 								console.error(e,
 | 
						||
								// 									'install fail...'
 | 
						||
								// 								);
 | 
						||
								// 							})
 | 
						||
								// 					}
 | 
						||
								// 				}
 | 
						||
								// 			})
 | 
						||
								// 		} else if (res.cancel) {
 | 
						||
								// 			// 暂不更新
 | 
						||
								// 		}
 | 
						||
								// 	}
 | 
						||
								// })
 | 
						||
							} else if (versionInfo.Upgrade === 1) { // 整包更新
 | 
						||
								checkappupdate.check({
 | 
						||
									versionContent: versionInfo.Desc,
 | 
						||
									versionNumber: versionInfo.Code,
 | 
						||
									versionNow: widgetInfo.version,
 | 
						||
									appurl: config.uni_app_web_source_url + versionInfo.Url,
 | 
						||
									apk: 'true'
 | 
						||
								})
 | 
						||
								// uni.showModal({
 | 
						||
								// 	title: "更新提示",
 | 
						||
								// 	content: '版本号:' + versionInfo.Desc,
 | 
						||
								// 	success: (res) => {
 | 
						||
								// 		if (res.confirm) {
 | 
						||
								// 			var appurl = ''
 | 
						||
								// 			if (plus.os.name === 'Android') {
 | 
						||
								// 				appurl = config.uni_app_web_source_url + versionInfo
 | 
						||
								// 					.Url;
 | 
						||
								// 			} else {
 | 
						||
								// 				// 其它平台
 | 
						||
								// 				// appurl = versionInfo.pathIos;
 | 
						||
								// 			}
 | 
						||
								// 			plus.runtime.openURL(appurl); // 跳转应用发布平台
 | 
						||
								// 		}
 | 
						||
								// 	}
 | 
						||
								// })
 | 
						||
							}
 | 
						||
						}
 | 
						||
					}
 | 
						||
				})
 | 
						||
			}
 | 
						||
		}
 | 
						||
	}
 | 
						||
</script>
 | 
						||
 | 
						||
<style lang="scss">
 | 
						||
	@import "/uni_modules/uview-ui/index.scss";
 | 
						||
	@import '/static/iconfont/iconfont.css';
 | 
						||
 | 
						||
	/*每个页面公共css */
 | 
						||
	/* #ifdef MP */
 | 
						||
	page {
 | 
						||
		width: 100vw;
 | 
						||
	}
 | 
						||
 | 
						||
	/* #endif */
 | 
						||
</style> |