12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <template>
- <view style="display: none;">用户行为监测...</view>
- </template>
- <script>
- export default {
- name: 'ReadCheck',
- props: {
- timeSec: Number
- },
- data() {
- return {
- goSec: 0,
- checkTimer: null,
- confirmTimer: null,
- dialogShow: false
- }
- },
- mounted() {
- console.log('定时', this.timeSec)
- this.initTimer()
- },
-
- destroyed() {
- this.clearTimer()
- },
- methods: {
- // 确认时间展示
- clearTimer() {
- if(this.checkTimer){
- clearInterval(this.checkTimer)
- clearTimeout(this.confirmTimer)
- }
-
- this.goSec = 0
- this.dialogShow = false
- },
- // 初始化定时器
- initTimer() {
-
-
- this.checkTimer = setInterval(() => {
- if (this.goSec >= this.timeSec && !this.dialogShow) {
- this.dialogShow = true
- this.showModal()
-
- // 30秒确认
- this.confirmTimer = setTimeout(()=>{
- clearInterval(this.checkTimer)
- this.$emit('break')
- }, 30000)
- }
- this.goSec += 1
- }, 1000 * 60)
- },
- showModal(){
-
- let that = this
- uni.showModal({
- title: '学习校验',
- content: `请点击确认按钮继续学习,请在30秒内点击确认按钮!`,
- success: function (res) {
- if (res.confirm) {
- that.clearTimer()
- } else if (res.cancel) {
- console.log('用户点击取消');
- that.dialogShow = false
- }
- }
- });
- }
- }
- }
- </script>
- <style scoped>
- </style>
|