119 lines
3.2 KiB
Vue
119 lines
3.2 KiB
Vue
<template>
|
||
<view :style="{height: windowHeight+'px'}" style="overflow: hidden;">
|
||
<image :src="ad_img" mode="widthFix" style="width: 100%;"></image>
|
||
<view @tap="closeEv" class="disjcac count-box colf fon28 radius10" :class="ifH5?'app-h5-count-box' :'wx-count-box'" :style="{top:ifH5 ? statuHeigh+10+'px' :''}">{{count}} 关闭</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
windowHeight:uni.getSystemInfoSync().windowHeight,
|
||
statuHeigh:uni.getSystemInfoSync().statusBarHeight,
|
||
// ad_img:'/static/public/icon-guide.png',
|
||
ad_img:'',
|
||
count:3,//右上角倒计时数
|
||
timeNum:3000,//页面延迟跳转秒
|
||
countTimer:null,//控制右上角倒计时事件
|
||
timeNumTimer:null,//控制页面延迟跳转事件
|
||
omg:0,//判断是否已经登录过0:未登录 1:登录过
|
||
ifH5:0
|
||
}
|
||
},
|
||
onLoad() {
|
||
// #ifdef APP-PLUS || H5
|
||
this.ifH5 = true;
|
||
// #endif
|
||
// #ifdef MP-WEIXIN
|
||
this.ifH5 = false;
|
||
// #endif
|
||
this.checkContext();
|
||
if(uni.getStorageSync('guideImg')){
|
||
this.ad_img = uni.getStorageSync('guideImg');
|
||
// 调用倒计时事件
|
||
this.countDownEv();
|
||
} else {
|
||
this.$requst.get('/universal/api.other/advertise').then(res=>{
|
||
if(res.code) {
|
||
this.ad_img = res.data.ad_img;
|
||
uni.setStorageSync('guideImg',this.ad_img);
|
||
// 调用倒计时事件
|
||
this.countDownEv();
|
||
// uni.setStorageSync('adImg',this.ad_img);
|
||
}
|
||
})
|
||
}
|
||
},
|
||
methods: {
|
||
// 倒计时事件
|
||
countDownEv(){
|
||
this.countTimer = setInterval(()=>{
|
||
if(this.count > 1){
|
||
this.count--
|
||
}
|
||
},1000)
|
||
this.timeNumTimer = setTimeout(()=>{
|
||
this.goPage();
|
||
},this.timeNum)
|
||
},
|
||
// 关闭事件
|
||
closeEv(){
|
||
clearInterval(this.countTimer);
|
||
clearTimeout(this.timeNumTimer);
|
||
this.goPage();
|
||
},
|
||
checkContext(){
|
||
if(uni.getStorageSync('password')) {
|
||
// 是否登录过,登录过就直接刷新token重新登录
|
||
let params = {
|
||
login_type: 'account', // 登陆手机类型: mobile:手机登陆、account:账号密码登陆
|
||
phone: '', // 手机号码,login_type 为 mobile 时必填
|
||
password: uni.getStorageSync('password'), // 密码,login_type 为 account 时必填
|
||
sms_code: '', // 短信验证码,login_type 为 mobile 时必填
|
||
username: uni.getStorageSync('phone'), //账号,login_type 为 account 时必填
|
||
affiliation: uni.getStorageSync('unitName') // 单位名称
|
||
}
|
||
this.$requst.post('/universal/api.login/login',params).then(res=>{
|
||
if(res.code==1) {
|
||
// 缓存token和角色类型
|
||
uni.setStorageSync('token',res.data.token);
|
||
} else {
|
||
this.$toolAll.tools.showToast(res.msg);
|
||
}
|
||
})
|
||
this.omg = 1;
|
||
} else {
|
||
this.omg = 0;
|
||
}
|
||
},
|
||
// 跳转页面
|
||
goPage() {
|
||
let arr = [
|
||
'/pages/login/login',
|
||
'/pages/tabbar/pagehome/pagehome'
|
||
]
|
||
uni.reLaunch({url:arr[this.omg]})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
page{background-color: #FFFFFF;}
|
||
.count-box{
|
||
background-color: rgba(0, 0, 0, .3);
|
||
padding: 16rpx 30rpx;
|
||
}
|
||
.app-h5-count-box{
|
||
position: fixed;
|
||
right: 20rpx;
|
||
}
|
||
.wx-count-box{
|
||
position: fixed;
|
||
bottom: 40rpx;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
}
|
||
</style>
|