From c0b24b804539df3a40a0be613b44562c7e073005 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期四, 20 四月 2023 10:43:46 +0800
Subject: [PATCH] #

---
 App.vue |  244 +++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 217 insertions(+), 27 deletions(-)

diff --git a/App.vue b/App.vue
index 78aee36..c206b2f 100644
--- a/App.vue
+++ b/App.vue
@@ -1,6 +1,11 @@
 <script>
 	import Vue from 'vue'
 	export default {
+		globalData: {
+			baseHttp: '',
+			baseUrll: '',
+			upVersion: 0,
+		},
 		onLaunch: function() {
 			Vue.prototype.ColorList = [{
 					title: '瀚g孩',
@@ -80,11 +85,159 @@
 			]
 		},
 		onShow: function() {
+			this.getVersion();
+			this.baseUrll = uni.getStorageSync("baseUrl")
 			console.log('App Show')
 		},
 		onHide: function() {
 			console.log('App Hide')
 		},
+		methods: {
+			//妫�娴嬪綋鍓嶅钩鍙帮紝濡傛灉鏄畨鍗撳垯鍚姩瀹夊崜鏇存柊  
+			getVersion() {
+				let that = this;
+				uni.getSystemInfo({
+					success: (res) => {
+						console.log(res.platform);
+						if (res.platform == "android") {
+							that.AndroidCheckUpdate();
+						}
+					}
+				})
+			},
+			// 鑾峰彇褰撳墠鐗堟湰鍙�
+			AndroidCheckUpdate() {
+				let that = this;
+				plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
+					that.version = wgtinfo.version //瀹㈡埛绔増鏈彿
+					console.log('褰撳墠app鐗堟湰淇℃伅锛�' + that.version);
+				})
+				that.getUpdateVersion()
+			},
+			getUpdateVersion() {
+				let that = this;
+				uni.request({
+					url: that.baseUrll + "/mobile/appUpdate/queryUpdate",
+					method:'GET',
+					success(res) {
+						// 鏂癮pp鐗堟湰
+						that.upVersion = Number(res.data.data)
+						// 褰撳墠app鐗堟湰
+						let currentVersion =  Number(that.version)
+						if(that.upVersion > currentVersion) {
+							that.downWgt(); //涓嬭浇鏂囦欢
+						}
+					}
+				})
+				return
+				that.$req.get(that.baseUrll + "/appUpdate/queryUpdate", {}, {}).then(function(res) {
+					console.log('res.data:' + JSON.stringify(res.data))
+					console.log("鐜板湪鐨勭増鏈�" + that.version + "鏁版嵁搴撶増鏈�" + res.data.data.version + "杩涘叆鏌ユ壘app鐗堟湰");
+					if (res.data.data.version > that.version) {
+						// 杩欓噷涓嬭浇apkurl浠�/appUpdate/queryUpdate鎺ュ彛璇锋眰杩斿洖鏁版嵁涓幏鍙�
+						that.downloadUrl = BaseUrl + '/' + res.data.data.androidUrl
+						// 鏄惁寮哄埗鏇存柊锛�0 鍚︼紱1 鏄級
+						that.isForceUpdate = res.data.data.isForceUpdate
+						uni.showModal({
+							// 鏇存柊鎻愰啋
+							title: '鍙戠幇鏂扮増鏈紝鏄惁鏇存柊',
+							content: '姝ょ増鏈彿锛�' + that.version + '\xa0\xa0\xa0' + '寰呮洿鏂扮増鏈彿锛�' + res.data.data
+								.version,
+							success: res => {
+								if (res.confirm) {
+									that.downWgt(); //涓嬭浇鏂囦欢
+									// that.showdownLine = true;
+									// plus.runtime.openURL(androidUrl)
+								} else if (res.cancel) {
+									console.log('that.isForceUpdate锛�' + that.isForceUpdate);
+									// 涓嶆洿鏂板己鍒堕��鍑篴pp
+									if (that.isForceUpdate == 1) {
+										console.log('that.isForceUpdate1锛�' + that.isForceUpdate);
+										uni.showModal({
+											// 鏇存柊鎻愰啋
+											title: '鍙戠幇鏂扮増鏈紝鏄惁鏇存柊',
+											content: '姝ょ増鏈负寮哄埗鏇存柊鐗堟湰濡備笉鍗囩骇灏嗛��鍑篈PP',
+											success: res => {
+												if (res.confirm) {
+													console.log('涓嶆洿鏂板己鍒堕��鍑篴pp');
+													plus.runtime.quit();
+												} else if (res.cancel) {
+													that.AndroidCheckUpdate();
+												}
+											}
+										});
+									}
+								}
+							}
+						});
+						//dtask.start();   
+					}
+				}).catch(error => {
+					uni.showToast({
+						title: '璋冪敤璇锋眰澶辫触',
+						mask: false,
+						duration: 5000,
+						icon: "none"
+					});
+				});
+				complete: () => {}
+			},
+			downWgt() {
+				let that = this;
+				const downloadUrl = that.baseUrll + "/static/appupload/" + that.upVersion + ".apk"
+				uni.showLoading({
+					title: '鏇存柊涓�︹��'
+				})
+				// return
+				const downloadTask = uni.downloadFile({ //鎵ц涓嬭浇
+					url: downloadUrl, //涓嬭浇鍦板潃
+					timeout: 1000 * 30, //30绉掕秴鏃舵椂闂�
+					success: downloadResult => { //涓嬭浇鎴愬姛
+						console.log(downloadResult);
+						that.showdownLine = false
+						uni.hideLoading();
+						console.log('downloadResult.statusCode' + downloadResult.statusCode)
+						if (downloadResult.statusCode == 200) {
+							console.log('鏇存柊涓�')
+							uni.showModal({
+								title: '',
+								content: '鏇存柊鎴愬姛锛岀‘瀹氱幇鍦ㄩ噸鍚悧锛�',
+								confirmText: '閲嶅惎',
+								confirmColor: '#EE8F57',
+								success: function(res) {
+									if (res.confirm == true) {
+										plus.runtime.install( //瀹夎
+											downloadResult.tempFilePath, {
+												force: true
+											},
+											function(res) {
+												utils.showToast('鏇存柊鎴愬姛锛岄噸鍚腑');
+												plus.runtime.restart();
+											}
+										);
+									}
+								}
+							});
+						}
+					},
+					fail: err => {
+						uni.hideLoading();
+						that.showdownLine = false
+						that.$u.toast(err.errMsg)
+						console.log(err)
+					},
+					complete: com => {
+						console.log(com)
+					}
+				});
+			
+				// 涓嬭浇杩涘害
+				downloadTask.onProgressUpdate(res => {
+					that.downloadNum = res.progress
+					console.log('涓嬭浇杩涘害' + that.downloadNum);
+				});
+			},
+		}
 	}
 </script>
 
@@ -92,7 +245,7 @@
 	/*姣忎釜椤甸潰鍏叡css */
 	@import "colorui/main.css";
 	@import "colorui/icon.css";
-	
+
 	.footer {
 		width: 100%;
 		height: 150rpx;
@@ -101,26 +254,29 @@
 		position: fixed;
 		bottom: 0;
 		border-top: 1px solid #d8d8d8;
-		border-radius: 20rpx 20rpx 0 0 ;
+		border-radius: 20rpx 20rpx 0 0;
 		z-index: 1;
 	}
+
 	.nav-list {
 		display: flex;
 		flex-wrap: wrap;
 		padding: 0px 40upx 0px;
 		justify-content: space-between;
 	}
+
 	.nav-li {
 		padding: 30upx;
 		border-radius: 12upx;
 		width: 95%;
 		margin: 0 2.5% 40upx;
-		
+
 		background-size: cover;
 		background-position: center;
 		position: relative;
 		z-index: 1;
 	}
+
 	.nav-li::after {
 		content: "";
 		position: absolute;
@@ -134,25 +290,30 @@
 		opacity: 0.2;
 		transform: scale(0.9, 0.9);
 	}
+
 	.nav-li.cur {
 		color: #fff;
 		background: rgb(94, 185, 94);
 		box-shadow: 4upx 4upx 6upx rgba(94, 185, 94, 0.4);
 	}
+
 	.nav-title {
 		font-size: 32upx;
 		font-weight: 300;
 	}
+
 	.nav-title::first-letter {
 		font-size: 40upx;
 		margin-right: 4upx;
 	}
+
 	.nav-name {
 		font-size: 28upx;
 		text-transform: Capitalize;
 		margin-top: 20upx;
 		position: relative;
 	}
+
 	.nav-name::before {
 		content: "";
 		position: absolute;
@@ -164,7 +325,7 @@
 		right: 0;
 		opacity: 0.5;
 	}
-	
+
 	.nav-name::after {
 		content: "";
 		position: absolute;
@@ -176,12 +337,13 @@
 		right: 40upx;
 		opacity: 0.3;
 	}
-	
+
 	.nav-name::first-letter {
 		font-weight: bold;
 		font-size: 36upx;
 		margin-right: 1px;
 	}
+
 	.nav-li text {
 		position: absolute;
 		right: 30upx;
@@ -192,36 +354,39 @@
 		text-align: center;
 		line-height: 60upx;
 	}
+
 	.text-light {
 		font-weight: 300;
 	}
+
 	@keyframes show {
 		0% {
 			transform: translateY(-50px);
 		}
-	
+
 		60% {
 			transform: translateY(40upx);
 		}
-	
+
 		100% {
 			transform: translateY(0px);
 		}
 	}
-	
+
 	@-webkit-keyframes show {
 		0% {
 			transform: translateY(-50px);
 		}
-	
+
 		60% {
 			transform: translateY(40upx);
 		}
-	
+
 		100% {
 			transform: translateY(0px);
 		}
 	}
+
 	/* .pda-btn {
 		
 		margin-left:120rpx;
@@ -241,12 +406,13 @@
 		height: 60upx;
 		line-height: 60upx;
 	}
+
 	.main-btn {
 		padding: 0 20px;
 		font-size: 20px;
 		height: 40px;
 	}
-	
+
 	/* uni-checkbox .uni-checkbox-input{
 		border-radius: 20% !important;
 		border: 1px solid black;
@@ -256,23 +422,23 @@
 	} */
 	/* uni-checkbox-group{ width: 100% !important; }
 	uni-checkbox-group uni-label{ width: 33% !important; display: inline-flex; margin-bottom: 20rpx; } */
-	
+
 	/*checkbox 閫夐」妗嗗ぇ灏�  */
-	uni-checkbox .uni-checkbox-input{
+	uni-checkbox .uni-checkbox-input {
 		width: 30rpx !important;
 		height: 30rpx !important;
 	}
-	
+
 	/*checkbox閫変腑鍚庢牱寮�  */
-	uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked{
+	uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked {
 		background: #3D7EFF;
-		border-color:#3D7EFF;
+		border-color: #3D7EFF;
 	}
-	
+
 	/*checkbox閫変腑鍚庡浘鏍囨牱寮�  */
-	uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked::before{
-	    width: 30rpx;
-	    height: 30rpx;  
+	uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked::before {
+		width: 30rpx;
+		height: 30rpx;
 		line-height: 30rpx;
 		text-align: center;
 		font-size: 30rpx;
@@ -281,6 +447,7 @@
 		transform: translate(-50%, -50%) scale(1);
 		-webkit-transform: translate(-50%, -50%) scale(1);
 	}
+
 	.square-2 {
 		background-color: #ffffff;
 		box-shadow: 0px 0px 5px #d9d9d9;
@@ -289,10 +456,12 @@
 		border-radius: 20rpx;
 		margin: 20rpx auto 20rpx auto;
 	}
+
 	.square-title {
 		width: 100%;
 		height: 100rpx;
 	}
+
 	.title-sign {
 		display: inline-block;
 		float: left;
@@ -300,6 +469,7 @@
 		width: 2em;
 		line-height: 100rpx;
 	}
+
 	.sign {
 		background-color: #007AFF;
 		width: 15rpx;
@@ -308,13 +478,15 @@
 		position: relative;
 		top: 50%;
 		left: 50%;
-		transform: translate(-50%,-50%);
+		transform: translate(-50%, -50%);
 	}
+
 	.square-content {
 		width: 100%;
 		height: 100rpx;
 	}
-	.square-content>text{
+
+	.square-content>text {
 		height: 100%;
 		/* background-color: #18BC37; */
 		width: 22%;
@@ -325,6 +497,7 @@
 		margin-left: 3%;
 		font-size: 30rpx;
 	}
+
 	.content-input {
 		background-color: #f9f9f9;
 		display: inline-block;
@@ -336,15 +509,17 @@
 		border-radius: 15rpx;
 		border: 1px solid #eeeeee;
 	}
+
 	.content-input input {
 		display: inline-block;
 		float: left;
-		height: 100%;
+		height: 80rpx;
 		width: 90%;
 		text-indent: 20rpx;
 		font-size: 32rpx;
 		letter-spacing: 3rpx;
 	}
+
 	.content-input-btn {
 		background-color: #f9f9f9;
 		display: inline-block;
@@ -356,6 +531,7 @@
 		border-radius: 15rpx;
 		border: 1px solid #eeeeee;
 	}
+
 	.content-input-btn input {
 		display: inline-block;
 		float: left;
@@ -366,6 +542,7 @@
 		font-size: 32rpx;
 		letter-spacing: 3rpx;
 	}
+
 	.content-input-combox {
 		background-color: #f9f9f9;
 		display: inline-block;
@@ -376,8 +553,9 @@
 		margin: 10rpx 2.5%;
 		border-radius: 10rpx;
 		border: 1px solid #eeeeee;
-		margin: 10rpx 3% 10rpx 0 ;
+		margin: 10rpx 3% 10rpx 0;
 	}
+
 	.content-input-combox input {
 		display: inline-block;
 		float: left;
@@ -388,17 +566,20 @@
 		font-size: 32rpx;
 		letter-spacing: 3rpx;
 	}
+
 	.content-combox {
 		display: inline-block;
 		float: right;
 		height: 80rpx;
-		width: 70%;
-		margin: 10rpx 3% 10rpx 0 ;
+		width: 94%;
+		margin: 10rpx 3% 10rpx 0;
 	}
+
 	.square-none {
 		width: 100%;
 		height: 100rpx;
 	}
+
 	.square-1 {
 		position: relative;
 		background-color: #ffffff;
@@ -408,6 +589,7 @@
 		border-radius: 20rpx;
 		margin: 20rpx auto 20rpx auto;
 	}
+
 	.v-show {
 		width: 100%;
 		height: 100%;
@@ -415,6 +597,7 @@
 		text-align: center;
 		color: #7a7a7a;
 	}
+
 	.title-text {
 		/* background-color: #000000; */
 		display: inline-block;
@@ -425,12 +608,14 @@
 		font-weight: 700;
 		letter-spacing: 7rpx;
 	}
+
 	.content-btn {
 		/* background-color: #57a3ff; */
 		display: inline-block;
 		height: 100rpx;
 		width: 25%;
 	}
+
 	.pda-btn {
 		background-color: #1E9FFF;
 		height: 80rpx;
@@ -441,6 +626,7 @@
 		font-size: 32rpx;
 		color: #FFFFFF;
 	}
+
 	.square-3 {
 		background-color: #ffffff;
 		box-shadow: 0px 0px 5px #d9d9d9;
@@ -449,6 +635,7 @@
 		border-radius: 20rpx;
 		margin: 20rpx auto 20rpx auto;
 	}
+
 	.searchBox {
 		position: absolute;
 		width: 94%;
@@ -461,6 +648,7 @@
 		background-color: #F9F9F9;
 		border-radius: 20rpx;
 	}
+
 	.searchIcon {
 		display: inline-block;
 		float: left;
@@ -469,18 +657,20 @@
 		text-align: center;
 		line-height: 80rpx;
 	}
-	
+
 	.searchArea {
 		display: inline-block;
 		float: left;
 		width: 80%;
 		height: 100%;
 	}
+
 	.searchArea input {
 		height: 100%;
 		font-size: 14px;
 		color: #5f5f5f;
 	}
+
 	.closeIcon {
 		display: inline-block;
 		float: left;

--
Gitblit v1.9.1