Commit 2dcb7512 by LJM

更新逻辑优化

parent 40911097
...@@ -5,14 +5,11 @@ ...@@ -5,14 +5,11 @@
console.log('App Launch'); console.log('App Launch');
}, },
onShow: function() { onShow: function() {
console.log('App Show'); console.log('App Show 首页初始化...');
let wms_version = uni.getStorageSync('wms_version') || ''; //获取系统版本 var wms_version = uni.getStorageSync('wms_version') || '';
this.request(API.getLatestAppInfo, 'POST', {}, false).then(res => { this.request(API.getLatestAppInfo, 'POST', {}, false).then(res => {
if (res.code === 0) { if (res.code === 0) {
if (wms_version == '') { if (wms_version) {
uni.setStorageSync('wms_version', res.data.latest_app_info.wms_version);
} else {
//判断是否跟线上版本一样 //判断是否跟线上版本一样
if (wms_version != res.data.latest_app_info.wms_version) { if (wms_version != res.data.latest_app_info.wms_version) {
uni.showModal({ uni.showModal({
...@@ -22,12 +19,9 @@ ...@@ -22,12 +19,9 @@
cancelText: '取消更新', cancelText: '取消更新',
success: data => { success: data => {
if (data.confirm) { if (data.confirm) {
uni.setStorageSync('wms_version', res.data.latest_app_info.wms_version); this.downloadApk(res.data.latest_app_info.download_url); //开始下载apk文件
this.downloadApk(res.data.latest_app_info.download_url);
console.log('用户点击确定'); console.log('用户点击确定');
} else if (data.cancel) { } else if (data.cancel) {}
console.log('用户点击取消');
}
} }
}); });
} }
...@@ -47,9 +41,11 @@ ...@@ -47,9 +41,11 @@
}); });
let dtask = plus.downloader.createDownload(url, {}, (d, status) => { let dtask = plus.downloader.createDownload(url, {}, (d, status) => {
if (status == 200) { if (status == 200) {
this.local_version = this.online_version; //更新最新版本号
uni.setStorageSync('wms_version', this.online_version); //更新本地存储最新版本号
uni.hideLoading();
//下载成功后调用安装方法 //下载成功后调用安装方法
this.installApk(d.filename); this.installApk(d.filename);
uni.hideLoading();
} else { } else {
uni.showToast({ uni.showToast({
title: '下载失败', title: '下载失败',
...@@ -65,13 +61,9 @@ ...@@ -65,13 +61,9 @@
plus.runtime.install( plus.runtime.install(
filePath, {}, filePath, {},
() => { () => {
console.log('安装成功'); console.log('更新成功');
}, },
e => { e => {
uni.showToast({
title: '安装失败',
icon: 'error'
});
console.log('安装失败:' + JSON.stringify(e)); console.log('安装失败:' + JSON.stringify(e));
} }
); );
......
...@@ -53,6 +53,35 @@ ...@@ -53,6 +53,35 @@
color: #ffffff; color: #ffffff;
margin-top: 33rpx; margin-top: 33rpx;
} }
.check-update {
position: relative;
margin-top: 33rpx;
width: 495rpx;
font-size: 22rpx;
.tip{
color: #1969f9;
}
.version{
color: #919399;
font-size: 20rpx;
margin-left: 6rpx;
}
.online_version{
position: relative;
&.curr {
&::after {
position: absolute;
top: -14rpx;
right: -8rpx;
width: 10rpx;
height: 10rpx;
border-radius: 50%;
background-color: #f00;
content: '';
}
}
}
}
.copyright { .copyright {
margin-top: 34rpx; margin-top: 34rpx;
font-size: 15rpx; font-size: 15rpx;
......
{ {
"name" : "wms", "name" : "wms",
"appid" : "__UNI__655E80D", "appid" : "__UNI__655E80D",
"description" : "", "description" : "供应链仓储App",
"versionName" : "1.0.1", "versionName" : "2.2.1",
"versionCode" : "100", "versionCode" : 100000000,
"transformPx" : false, "transformPx" : false,
/* 5+App特有相关 */ /* 5+App特有相关 */
"app-plus" : { "app-plus" : {
......
...@@ -20,6 +20,16 @@ ...@@ -20,6 +20,16 @@
<input class="uni-input" password placeholder="请输入账号密码" placeholder-style="color:#919399" v-model="passwd" @input="onKeyInput" /> <input class="uni-input" password placeholder="请输入账号密码" placeholder-style="color:#919399" v-model="passwd" @input="onKeyInput" />
</view> </view>
<button class="btn row rowCenter verCenter" @click="submit()" :disabled="disabled">登录</button> <button class="btn row rowCenter verCenter" @click="submit()" :disabled="disabled">登录</button>
<view class="check-update row verCenter bothSide" @click="checkUpdate(1)">
<view class="local_version row verCenter">
<text class="tip">本地版本</text>
<text class="version">{{local_version || '0.0.0'}}</text>
</view>
<view class="online_version row verCenter" :class="{curr:active}">
<text class="tip">最新版本</text>
<text class="version">{{online_version}}</text>
</view>
</view>
<text class="copyright">© 深圳市猎芯科技有限公司</text> <text class="copyright">© 深圳市猎芯科技有限公司</text>
</view> </view>
</template> </template>
...@@ -35,7 +45,11 @@ ...@@ -35,7 +45,11 @@
array: ['深圳市猎芯科技有限公司', '深贸电子有限公司', '深圳华云数智工业科技有限公司'], array: ['深圳市猎芯科技有限公司', '深贸电子有限公司', '深圳华云数智工业科技有限公司'],
name: '', name: '',
passwd: '', passwd: '',
disabled: false disabled: false,
isFirst: true,
online_version: '', //线上后台版本
local_version: uni.getStorageSync('wms_version'), //本地存储的版本
active: false //是否更新
}; };
}, },
onLoad() { onLoad() {
...@@ -48,6 +62,8 @@ ...@@ -48,6 +62,8 @@
const name = uni.getStorageSync('name') || ''; const name = uni.getStorageSync('name') || '';
const passwd = uni.getStorageSync('passwd') || ''; const passwd = uni.getStorageSync('passwd') || '';
this.checkUpdate();
if (name && passwd) { if (name && passwd) {
this.name = name; this.name = name;
this.passwd = passwd; this.passwd = passwd;
...@@ -66,6 +82,97 @@ ...@@ -66,6 +82,97 @@
this.disabled = false; this.disabled = false;
}, },
/** /**
* 检查app是否需要更新
*/
checkUpdate(type) {
this.request(API.getLatestAppInfo, 'POST', {}, true).then(res => {
this.online_version = res.data.latest_app_info.wms_version || '0.0.0'; //赋值线上版本
if (res.code === 0) {
//判断进来第一次
if (this.isFirst && !this.local_version) {
this.local_version = res.data.latest_app_info.wms_version; //更新本地版本号
uni.setStorageSync('wms_version', res.data.latest_app_info.wms_version); //第一次存取本地版本号
//本地版本和线上版本不一样,就提示小红点
if (this.local_version != this.online_version) {
this.active = true; //样式标记
this.isFirst = false;
return false;
}
} else {
if (this.local_version != this.online_version) {
this.active = true; //样式标记
}
}
//只有点击才会触发
if (type) {
//判断本地版本和线上版本是否一致
if (this.local_version != this.online_version) {
//用户更新提示确认
uni.showModal({
title: '更新提示',
content: res.data.latest_app_info.remark,
confirmText: '确定更新',
cancelText: '取消更新',
success: data => {
if (data.confirm) {
this.downloadApk(res.data.latest_app_info.download_url); //开始下载apk文件
console.log('用户点击确定');
} else if (data.cancel) {
console.log('用户点击取消');
}
}
});
} else {
uni.showToast({
title: '已是最新版本',
icon: 'success'
});
}
}
}
});
},
//下载apk文件
downloadApk(url) {
uni.showLoading({
title: '下载安装文件',
mask: true
});
let dtask = plus.downloader.createDownload(url, {}, (d, status) => {
if (status == 200) {
this.local_version = this.online_version; //更新最新版本号
uni.setStorageSync('wms_version', this.online_version); //更新本地存储最新版本号
uni.hideLoading();
//下载成功后调用安装方法
this.installApk(d.filename);
} else {
uni.showToast({
title: '下载失败',
icon: 'error'
});
console.log('下载失败');
}
});
dtask.start();
},
//安装apk文件
installApk(filePath) {
plus.runtime.install(
filePath, {},
() => {
console.log('更新成功');
},
e => {
uni.showToast({
title: '安装失败',
icon: 'error'
});
console.log('安装失败:' + JSON.stringify(e));
}
);
},
/**
* 组织切换 * 组织切换
*/ */
changeOrgId() { changeOrgId() {
...@@ -78,7 +185,7 @@ ...@@ -78,7 +185,7 @@
}); });
setTimeout(() => { setTimeout(() => {
uni.redirectTo({ uni.redirectTo({
url: '/pages/index/index' url: '/pages/index/index?fromLogin=true'
}); });
}, 2000); }, 2000);
} else { } else {
......
...@@ -635,15 +635,16 @@ ...@@ -635,15 +635,16 @@
}); });
setTimeout(() => { setTimeout(() => {
this.resetChange(); this.resetChange();
this.getData();
this.closeDrawer(); this.closeDrawer();
//清空入库批次号,货品名称,旧标签
this.input_stock_in_batch_sn = false;
this.searchParams.stock_in_batch_sn = '';
this.searchParams.goods_name = '';
this.getData();
//入库批次号重新获取焦点 //入库批次号重新获取焦点
this.is_focus = false; this.is_focus = false;
setTimeout(() => { setTimeout(() => {
//清空入库批次号,货品名称,旧标签
this.searchParams.stock_in_batch_sn = '';
this.searchParams.goods_name = '';
this.is_focus = true; //再次获取焦点 this.is_focus = true; //再次获取焦点
}, 500); }, 500);
}, 2000); }, 2000);
......
const API_BASE_USER = 'http://user.liexindev.net'; //用户系统 // const API_BASE_USER = 'http://user.liexindev.net'; //用户系统
const API_BASE_PUR = 'http://pur.liexindev.net'; //采购系统 // const API_BASE_PUR = 'http://pur.liexindev.net'; //采购系统
const API_BASE = 'http://wms.liexindev.net'; //WMS系统 // const API_BASE = 'http://wms.liexindev.net'; //WMS系统
const API_BASE_OSS = 'http://image.liexindev.net'; //oss系统 // const API_BASE_OSS = 'http://image.liexindev.net'; //oss系统
// const API_BASE_USER = 'https://user.ichunt.net'; //用户系统 const API_BASE_USER = 'https://user.ichunt.net'; //用户系统
// const API_BASE_PUR = 'https://purchase.ichunt.net'; //采购系统 const API_BASE_PUR = 'https://purchase.ichunt.net'; //采购系统
// const API_BASE = 'https://wms.ichunt.net'; //WMS系统 const API_BASE = 'https://wms.ichunt.net'; //WMS系统
// const API_BASE_OSS = 'https://image.ichunt.net'; //oss系统 const API_BASE_OSS = 'https://image.ichunt.net'; //oss系统
const API = { const API = {
...@@ -302,7 +302,7 @@ const API = { ...@@ -302,7 +302,7 @@ const API = {
/** /**
* 获取最新版本信息 * 获取最新版本信息
* */ * */
getLatestAppInfo: API_BASE + '/api/app/getLatestAppInfo', getLatestAppInfo: API_BASE + '/open/app/getLatestAppInfo',
/** /**
* H5盘点任务列表 * H5盘点任务列表
* */ * */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment