Files
ctms-client/pages/index/index.vue
fm453 c62d15b288 首次完整推送,
V:1.20240808.006
2024-08-13 18:32:37 +08:00

167 lines
4.5 KiB
Vue

<template>
<!-- 直接使用做好的开屏广告组件 -->
<!-- <m-start-ad :list="kaipingAds" /> -->
<view class="midTop">
<uni-badge class="rbt uni-badge-right-margin" :text="leftSecond" type="info" size="normal" absolute="rightTop"
:offset="[-3, -3]">
<view class="box" @click="timeup"><text class="box-text">点击<br>跳过</text></view>
</uni-badge>
</view>
<view class="uni-margin-wrap">
<swiper class="swiper" circular indicator-dots="true" autoplay="true" interval="2000" duration="500">
<swiper-item v-for="item in kaipingAds">
<view class="swiper-item">
<image :src="item"></image>
</view>
</swiper-item>
</swiper>
</view>
</template>
<script>
import ctms from '@/apis/ctms/index.js';
import config from '@/app.config.js';
export default {
data() {
return {
timer: null,
second: 6,
leftSecond: 0,
kaipingAds: {
0: "/static/img/kp/kp1.png"
},
ls: "splashShowed"
}
},
watch: {
// leftSecond(val) {
// if (val <= 0) {
// this.timeup()
// clearInterval(this.timer)
// }
// }
},
mounted() {
// let splashShowed = uni.getStorageSync(this.ls);
// if (splashShowed) {
// return this.timeup();
// }
// if (this.hasTabbar) {
// uni.hideTabBar()
// }
// const timer = setInterval(() => {
// if (this.leftSecond == 0) {
// clearInterval(this.timer)
// this.leftSecond = this.second;
// return this.timeup();
// }
// this.leftSecond--;
// }, 1000);
// this.timer = timer;
},
methods: {
timeup() {
//开屏倒计时结束,清除计时器
this.leftSecond = 0;
uni.setStorageSync(this.ls, true)
clearTimeout(this.timer)
var url = config.mainPage || "/pages/uni-starter/ucenter/ucenter"
uni.reLaunch({
url: url
})
},
getAds: function() {
ctms.ads.splash().then((res) => {
var _data = res;
if (_data) {
this.kaipingAds = _data;
}
});
}
},
onLoad: function() {
this.getAds();
if (config.isDebug) {
this.second = 60; //调试期间将时长设置为60秒
}
this.leftSecond = this.second;
let splashShowed = uni.getStorageSync(this.ls); //查看是否显示过开屏
if (splashShowed) {
return this.timeup();
}
if (this.hasTabbar) {
uni.hideTabBar()
}
const timer = setInterval(() => {
if (this.leftSecond == 0) {
clearInterval(this.timer)
this.leftSecond = this.second;
return this.timeup();
}
this.leftSecond--;
}, 1000);
this.timer = timer;
},
onUnload() {
clearInterval(this.timer)
}
}
</script>
<style>
.midTop {
position: fixed;
flex-direction: row;
text-align: center;
align-items: right;
justify-content: center;
z-index: 99;
}
.midTop .rbt {
position: fixed;
right: 100rpx;
top: 164rpx;
}
.box {
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
background-color: #00000050;
color: #fff;
font-size: 12px;
}
.box-text {
text-align: center;
color: #fff;
font-size: 12px;
}
/*———swiper———*/
.swiper {
height: 100vh;
}
.swiper-item {
display: block;
height: 100vh;
line-height: 10vh;
text-align: center;
}
.swiper-item>image {
height: 100vh;
}
.swiper-list {
margin-top: 0;
margin-bottom: 0;
}
</style>