修复bug,优化加载提示

This commit is contained in:
weipengfei 2023-09-04 17:57:11 +08:00
parent 118a3a985b
commit af0d12bcbd
2 changed files with 73 additions and 44 deletions

View File

@ -15,43 +15,45 @@
</view> </view>
<zbpSwiper :isSelectPlace="true" :location_Arr="locationArr" @kkchange='kkchange'></zbpSwiper> <zbpSwiper :isSelectPlace="true" :location_Arr="locationArr" @kkchange='kkchange'></zbpSwiper>
<u-empty :show="jurisdiction" marginTop="260" mode="permission" :text="emptyText" <u-empty :show="jurisdiction" marginTop="80" mode="permission" :text="emptyText"
icon="http://cdn.uviewui.com/uview/empty/permission.png"></u-empty> icon="http://cdn.uviewui.com/uview/empty/permission.png"></u-empty>
<view class="business com special_work"> <block v-if="!jurisdiction">
<view class="title project"> <view class="business com special_work">
<view>更多功能</view> <view class="title project">
<view class="edit" @click="editFlag = !editFlag">{{editFlag?'完成':'编辑'}}</view> <view>更多功能</view>
<view class="edit" @click="editFlag = !editFlag">{{editFlag?'完成':'编辑'}}</view>
</view>
<view class="content">
<block v-if="nowMenuList.length>0">
<u-transition v-for="(item, index) in nowMenuList" :key="item.name" show>
<view class="examine" @click="editFlag?removeMenu(item):clickMenu(item.type, item.data)">
<image class="icon_img" :src="`${prefix}${item.icon}`" mode="aspectFill">
</image>
<u-icon v-if="editFlag" class="icon" name="minus-circle-fill" color="red"></u-icon>
<text class="text">{{item.name}}</text>
</view>
</u-transition>
</block>
<view v-else-if="!editFlag" @click="editFlag = true" style="text-align: center;width: 100%;color: #aaa;">还没有应用,点我添加应用</view>
</view>
</view> </view>
<view class="content"> <view v-if="editFlag" class="business com special_work edit_card">
<block v-if="nowMenuList.length>0"> <view class="title project" style="padding: 0 28rpx;">
<u-transition v-for="(item, index) in nowMenuList" :key="item.name" show> <view>编辑功能</view>
<view class="examine" @click="editFlag?removeMenu(item):clickMenu(item.type, item.data)"> <view class="edit2" @click="editComfirm">完成</view>
<image class="icon_img" :src="`${prefix}${item.icon}`" mode="aspectFill"> </view>
</image> <view class="content">
<u-icon v-if="editFlag" class="icon" name="minus-circle-fill" color="red"></u-icon> <u-transition v-for="(item, index) in AllMenuList" :key="item.name" show>
<text class="text">{{item.name}}</text> <view class="examine" @click="pushMenu(item)">
<image class="icon_img" :src="`${prefix}${item.icon}`" mode="aspectFill">
</image>
<u-icon class="icon" name="plus-circle-fill"></u-icon>
<text class="text">{{item.name}}</text>
</view> </view>
</u-transition> </u-transition>
</block> </view>
<view v-else-if="!editFlag" @click="editFlag = true" style="text-align: center;width: 100%;color: #aaa;">还没有应用,点我添加应用</view>
</view> </view>
</view> </block>
<view v-if="editFlag" class="business com special_work edit_card">
<view class="title project" style="padding: 0 28rpx;">
<view>编辑功能</view>
<view class="edit2" @click="editComfirm">完成</view>
</view>
<view class="content">
<u-transition v-for="(item, index) in AllMenuList" :key="item.name" show>
<view class="examine" @click="pushMenu(item)">
<image class="icon_img" :src="`${prefix}${item.icon}`" mode="aspectFill">
</image>
<u-icon class="icon" name="plus-circle-fill"></u-icon>
<text class="text">{{item.name}}</text>
</view>
</u-transition>
</view>
</view>
<view class="" v-if='jurisdiction==false&&isShow==false'> <view class="" v-if='jurisdiction==false&&isShow==false'>
<emptyPage title="暂无信息"></emptyPage> <emptyPage title="暂无信息"></emptyPage>

View File

@ -1,8 +1,8 @@
import { getGXconfig } from "@/api/uniMP.js"; import { getGXconfig } from "@/api/uniMP.js";
const mp = uni.requireNativePlugin('uniMP'); const mp = uni.requireNativePlugin('uniMP');
let appid = ''; // 应用id let appid = ''; // 应用id
let wgtFile = ''; // 应用文件地址 let wgtFile = ''; // 应用文件地址
// 比较版本号大小 // 比较版本号大小
function compareVersions(version1, version2) { function compareVersions(version1, version2) {
@ -23,25 +23,47 @@ function compareVersions(version1, version2) {
// 加载小程序 // 加载小程序
const loadMP = async (id) => { const loadMP = async (id) => {
appid = id; appid = id;
uni.showLoading({
title: '加载中',
mask: true
})
let info = await getGXconfig(); let info = await getGXconfig();
console.log('最新版本', info.data); console.log('最新版本', info.data);
console.log(mp, uni); console.log(mp, uni);
// return ; // return ;
uni.showLoading({
title: '下载中...'
})
mp.getUniMPVersion(id, (ret) => { mp.getUniMPVersion(id, (ret) => {
console.log('当前版本', ret); console.log('当前版本', ret);
if (0!=ret.code||compareVersions(info.data.version, ret.versionInfo.name) == 1||true) { if (0 != ret.code || compareVersions(info.data.version, ret.versionInfo.name) == 1 || true) {
uni.downloadFile({ let downloadTask = uni.downloadFile({
url: info.data.version_info?.dow_url, url: info.data.version_info?.dow_url,
success(res) { success(res) {
wgtFile = res.tempFilePath; wgtFile = res.tempFilePath;
console.log('下载完成', wgtFile); console.log('下载完成', wgtFile);
installMP(); installMP();
} }
}) });
let count = 0;
let timer = null;
timer = setInterval(()=>{
uni.showLoading({
title: `下载中... ${count}%`,
mask: true
})
}, 600)
downloadTask.onProgressUpdate((res) => {
console.log('下载进度' + res.progress);
if (res.progress > count + 10) count += 10;
if (count >= 90) {
clearInterval(timer);
timer = null;
uni.showLoading({
title: '安装中...'
})
}
// 满足测试条件,取消下载任务。
// if (res.progress > 50) {
// downloadTask.abort();
// }
});
} else { } else {
open() open()
} }
@ -80,6 +102,7 @@ const doInstallMP = () => {
appid: appid, appid: appid,
wgtFile: wgtFile wgtFile: wgtFile
}, (r) => { }, (r) => {
uni.hideLoading();
if (0 == r.code) { if (0 == r.code) {
// uni.showToast({ // uni.showToast({
// title: '安装成功' // title: '安装成功'
@ -87,7 +110,6 @@ const doInstallMP = () => {
console.log('小程序安装成功'); console.log('小程序安装成功');
open(); open();
} else { } else {
uni.hideLoading();
uni.showModal({ uni.showModal({
title: '安装失败', title: '安装失败',
content: JSON.stringify(r), content: JSON.stringify(r),
@ -99,13 +121,18 @@ const doInstallMP = () => {
}; };
const open = (id = null) => { const open = (id = null) => {
let token = uni.getStorageSync('LOGIN_STATUS_TOKEN');
if (!token) return uni.showToast({
icon: 'none',
title: '请先登录'
})
mp.openUniMP({ mp.openUniMP({
appid: id || appid, appid: id || appid,
extraData: { extraData: {
uniMP: true uniMP: true,
token: token,
} }
}, (ret) => { }, (ret) => {
uni.hideLoading();
if (0 != ret.code) { if (0 != ret.code) {
uni.showModal({ uni.showModal({
title: '启动失败', title: '启动失败',