243 lines
7.5 KiB
Vue
243 lines
7.5 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="index">
|
|||
|
|
<TabHome v-if="actived === 'TabHome'" ref="TabHome"></TabHome>
|
|||
|
|
<!-- <TabTrade v-if="actived === 'TabTrade'" ref="TabTrade"></TabTrade> -->
|
|||
|
|
<!-- <TabInteraction v-if="actived === 'TabInteraction'" ref="TabInteraction"></TabInteraction> -->
|
|||
|
|
<Msg v-if="actived === 'Msg'" ref="Msg"></Msg>
|
|||
|
|
|
|||
|
|
<TabUser v-if="actived === 'TabUser'" ref="TabUser"></TabUser>
|
|||
|
|
<!-- <view class="tabbar-placeholder">
|
|||
|
|
|
|||
|
|
</view> -->
|
|||
|
|
<tabbar :list="tabPages" :actived="actived" @change="onChanged"></tabbar>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import {
|
|||
|
|
getUUID,
|
|||
|
|
versionCompare,
|
|||
|
|
getMacAddress,
|
|||
|
|
} from "@/common/utils/index.js";
|
|||
|
|
import tabbar from "./components/tabbar.vue";
|
|||
|
|
import TabHome from "../home/index.vue";
|
|||
|
|
// import TabTrade from "../trade/index.vue";
|
|||
|
|
import TabInteraction from "../interaction/index.vue";
|
|||
|
|
import TabUser from "../user/index.vue";
|
|||
|
|
import url from "@/common/http/url.js";
|
|||
|
|
import Msg from "../chat/index.vue";
|
|||
|
|
import {
|
|||
|
|
mapMutations
|
|||
|
|
} from "vuex";
|
|||
|
|
|
|||
|
|
let userInfo = uni.getStorageSync("userInfo");
|
|||
|
|
const upDater = uni.requireNativePlugin("CL-UpDater"); // 版本升级
|
|||
|
|
export default {
|
|||
|
|
components: {
|
|||
|
|
tabbar,
|
|||
|
|
TabHome,
|
|||
|
|
// TabTrade,
|
|||
|
|
TabInteraction,
|
|||
|
|
TabUser,
|
|||
|
|
Msg
|
|||
|
|
},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
actived: "TabHome",
|
|||
|
|
tabPages: [{
|
|||
|
|
name: "首页",
|
|||
|
|
url: "/pages/home/index",
|
|||
|
|
iconPath: "/static/home-page/home.png",
|
|||
|
|
selectedIconPath: "/static/home-page/home-use.png",
|
|||
|
|
component: "TabHome",
|
|||
|
|
activeColor: '#22bd5e',
|
|||
|
|
inactiveColor: '#333333'
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: "我的",
|
|||
|
|
url: "/pages/user/index",
|
|||
|
|
iconPath: "/static/home-page/my.png",
|
|||
|
|
selectedIconPath: "/static/home-page/my-use.png",
|
|||
|
|
component: "TabUser",
|
|||
|
|
activeColor: '#22bd5e',
|
|||
|
|
inactiveColor: '#333333'
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
onShow() {
|
|||
|
|
if (this.$refs["TabUser"]) {
|
|||
|
|
this.$refs["TabUser"].reset();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onLoad(e) {
|
|||
|
|
if (e.tab) this.actived = e.tab;
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
...mapMutations(["logout"]),
|
|||
|
|
getArrayValueByCode(array, code) {
|
|||
|
|
let value = "";
|
|||
|
|
array.forEach((v) => {
|
|||
|
|
if (v.keyCode === code) {
|
|||
|
|
value = v.keyValue;
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
return value;
|
|||
|
|
},
|
|||
|
|
async versionApp(showLoad) {
|
|||
|
|
let version = null; // 当前版本
|
|||
|
|
|
|||
|
|
await plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
|
|||
|
|
console.log("widgetInfo", widgetInfo);
|
|||
|
|
version = widgetInfo.version;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
let res = await this.$http("GET", url.common.getAppVersion);
|
|||
|
|
console.log("res**********", res);
|
|||
|
|
|
|||
|
|
// let version = plus.runtime.version; // 当前版本
|
|||
|
|
let iosVersion = res.data["IOS"].keyValue; // ios版本
|
|||
|
|
let androidVersion = res.data["Android"].keyValue; // android版本
|
|||
|
|
console.log(
|
|||
|
|
uni.getSystemInfoSync().platform,
|
|||
|
|
"当前版本=====version",
|
|||
|
|
version,
|
|||
|
|
iosVersion,
|
|||
|
|
"安卓版本=====androidVersion",
|
|||
|
|
androidVersion
|
|||
|
|
);
|
|||
|
|
if (uni.getSystemInfoSync().platform === "ios") {
|
|||
|
|
if (!versionCompare(version, iosVersion)) {
|
|||
|
|
let list = res.data["IOS"].children;
|
|||
|
|
// 1-选择升级 2-强制升级 3-个人中心手动升级 4-忽略升级
|
|||
|
|
let type = this.getArrayValueByCode(list, "app_version_ios_upgrade");
|
|||
|
|
let con = this.getArrayValueByCode(list, "app_version_ios_detail");
|
|||
|
|
let downUrl = this.getArrayValueByCode(list, "app_version_ios_url");
|
|||
|
|
let options = {
|
|||
|
|
title: "发现新版本",
|
|||
|
|
con: con,
|
|||
|
|
downUrl: downUrl,
|
|||
|
|
hidCancelbtn: false, //是否隐藏取消按钮;
|
|||
|
|
btnBgColor: "#F8D247", //设置按钮背景色颜色
|
|||
|
|
updateBtnText: "立即更新", //升级按钮文字,默认为立即升级
|
|||
|
|
hidBackBtn: true, //可选 默认为false(即会显示后台更新按钮), 设置android 整包更新弹框是否显示后台更新按钮,这个只有android整包更新才有这个参数,热更新是是无法设置的。
|
|||
|
|
// verCode:"1.0.1",//最新apk版本号 可选 用于Android整包升级,避免用户取消安装apk时,重复下载问题,如果不传的话,apk将会重新下载
|
|||
|
|
};
|
|||
|
|
if (type === "1" || type === "2" || (showLoad && type === "3")) {
|
|||
|
|
upDater.startUpdate(options, () => {
|
|||
|
|
if (type === "2") {
|
|||
|
|
plus.runtime.restart();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (showLoad) {
|
|||
|
|
this.$msg("当前已是最新版~");
|
|||
|
|
}
|
|||
|
|
} else if (uni.getSystemInfoSync().platform === "android") {
|
|||
|
|
console.log(
|
|||
|
|
"versionCompare(version, androidVersion*********",
|
|||
|
|
versionCompare(version, androidVersion)
|
|||
|
|
);
|
|||
|
|
if (!versionCompare(version, androidVersion)) {
|
|||
|
|
let list = res.data["Android"].children;
|
|||
|
|
// 1-选择升级 2-强制升级 3-浏览器升级(暂不用) 4-个人中心手动升级 5-忽略升级
|
|||
|
|
let type = this.getArrayValueByCode(
|
|||
|
|
list,
|
|||
|
|
"app_version_android_upgrade"
|
|||
|
|
);
|
|||
|
|
let con = this.getArrayValueByCode(
|
|||
|
|
list,
|
|||
|
|
"app_version_android_detail"
|
|||
|
|
);
|
|||
|
|
let isMust = this.getArrayValueByCode(list, "qzgx");
|
|||
|
|
console.log("type***********", type);
|
|||
|
|
console.log("con**************", con);
|
|||
|
|
if (type === "1" || type === "2" || (showLoad && type === "4")) {
|
|||
|
|
let downUrl = this.getArrayValueByCode(
|
|||
|
|
list,
|
|||
|
|
"app_version_android_url"
|
|||
|
|
);
|
|||
|
|
let options = {
|
|||
|
|
title: "发现新版本",
|
|||
|
|
con: con,
|
|||
|
|
downUrl: downUrl,
|
|||
|
|
hidCancelbtn: isMust == 0 ? false : true, //是否隐藏取消按钮;
|
|||
|
|
btnBgColor: "#F8D247", //设置按钮背景色颜色
|
|||
|
|
updateBtnText: "立即更新", //升级按钮文字,默认为立即升级
|
|||
|
|
hidBackBtn: false, //可选 默认为false(即会显示后台更新按钮), 设置android 整包更新弹框是否显示后台更新按钮,这个只有android整包更新才有这个参数,热更新是是无法设置的。
|
|||
|
|
// verCode:"1.0.1",//最新apk版本号 可选 用于Android整包升级,避免用户取消安装apk时,重复下载问题,如果不传的话,apk将会重新下载
|
|||
|
|
};
|
|||
|
|
upDater.startUpdate(options, () => {
|
|||
|
|
if (type === "2") {
|
|||
|
|
plus.runtime.quit();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (showLoad) {
|
|||
|
|
this.$msg("当前已是最新版~");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
async onChanged(tab) {
|
|||
|
|
// 中间短视频
|
|||
|
|
if (tab.midButton) {
|
|||
|
|
uni.navigateTo({
|
|||
|
|
url: tab.url,
|
|||
|
|
});
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
// #ifdef APP-PLUS
|
|||
|
|
this.versionApp();
|
|||
|
|
// #endif
|
|||
|
|
// #ifndef APP-PLUS
|
|||
|
|
// this.$msg("当前版本不支持检测更新~");
|
|||
|
|
// #endif
|
|||
|
|
this.actived = tab.component;
|
|||
|
|
this.checkToken()
|
|||
|
|
},
|
|||
|
|
//就是点击下边四个tab的时候调用一下这个接口,返回false的话就调用一下退出登录,给他退掉
|
|||
|
|
checkToken() {
|
|||
|
|
this.$http("GET", "/user/userCache").then((res) => {
|
|||
|
|
if (!res.data) {
|
|||
|
|
this.logout();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
onLoad() {
|
|||
|
|
this.checkToken();
|
|||
|
|
},
|
|||
|
|
onPullDownRefresh() {
|
|||
|
|
const component = this.$refs[this.actived] || {};
|
|||
|
|
component.pullDownRefresh ?
|
|||
|
|
component.pullDownRefresh() :
|
|||
|
|
uni.stopPullDownRefresh();
|
|||
|
|
},
|
|||
|
|
onReachBottom() {
|
|||
|
|
const component = this.$refs[this.actived] || {};
|
|||
|
|
component.reachBottom && component.reachBottom();
|
|||
|
|
},
|
|||
|
|
onBackPress() {
|
|||
|
|
const component = this.$refs[this.actived] || {};
|
|||
|
|
component.backPress && component.backPress();
|
|||
|
|
},
|
|||
|
|
onPageScroll(e) {
|
|||
|
|
const component = this.$refs[this.actived] || {};
|
|||
|
|
component.pageScroll && component.pageScroll(e);
|
|||
|
|
},
|
|||
|
|
};
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss">
|
|||
|
|
.index {
|
|||
|
|
.tabbar-placeholder {
|
|||
|
|
display: block;
|
|||
|
|
width: 100%;
|
|||
|
|
height: 98upx;
|
|||
|
|
background: transparent;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|