路线锁定定时提示弹窗

This commit is contained in:
蔡玲
2024-09-20 11:24:16 +08:00
parent 30ecbcfd4f
commit 5bec011106
7 changed files with 87 additions and 8 deletions

36
main.js
View File

@@ -25,6 +25,42 @@ Vue.directive('enterNumber', {
}
});
// 全局计时
Vue.prototype.$globalData = {
timer: null,
timerDuration: 20, // 假设是60秒
startTimer: function() {
const self = this;
self.timer = setInterval(function() {
self.timerDuration--;
console.log('剩余时间:' + self.timerDuration + '秒');
if (self.timerDuration <= 0) {
clearInterval(self.timer);
self.timerDuration = 20;
console.log('计时器结束1');
uni.showModal({
title: '提示',
showCancel: false,
content: '路线锁定未释放,请操作完成再退出!',
success: (res) => {
if (res.confirm) {
Vue.prototype.$globalData.startTimer()
}
}
})
}
}, 1000);
},
stopTimer: function() {
if (this.timer) {
clearInterval(this.timer);
console.log('计时器结束2');
this.timer = null;
this.timerDuration = 20;
}
}
};
import store from '@/vuex/store.js'
const app = new Vue({

View File

@@ -64,10 +64,19 @@
})
},
Quit () {
this.$store.dispatch('delUserInfo', '')
uni.redirectTo({
url: '/pages/login/login'
})
if (this.$store.getters.routeStatus) {
uni.showModal({
title: '提示',
showCancel: false,
content: '路线锁定未释放,请操作完成再退出!'
})
return
}
this.$store.dispatch('delUserInfo', '')
this.$globalData.stopTimer()
uni.redirectTo({
url: '/pages/login/login'
})
}
}
}

View File

@@ -53,6 +53,7 @@
this.versionCode = info.versionCode ;
})
//#endif
this.$globalData.stopTimer()
},
methods: {
isUpdate () {

View File

@@ -28,6 +28,7 @@
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import {updateRouteStatus} from '@/utils/getData2.js'
// import {updateRouteStatus} from '@/utils/mork2.js'
export default {
components: {
NavBar,
@@ -78,6 +79,14 @@
title: res.message,
icon: 'none'
})
this.$globalData.stopTimer()
if (type === '1') {
this.$store.dispatch('setRouteStatus', true)
this.$globalData.startTimer()
} else {
this.$store.dispatch('delRouteStatus', false)
this.$globalData.stopTimer()
}
} catch (e) {
this.disabled = false
}

View File

@@ -19,4 +19,10 @@ export const fabOrders = (data) => {
{order_code: '111'}
]
return res
}
export const updateRouteStatus = (data) => {
let res = {
message: 'ok'
}
return res
}

View File

@@ -1,11 +1,13 @@
import * as types from '../types'
const state = {
publicObj: '',
publicArr: ''
publicArr: '',
routeStatus: uni.getStorageSync('routeStatus') || false
}
const getters = {
publicObj: state => state.publicObj,
publicArr: state => state.publicArr
publicArr: state => state.publicArr,
routeStatus: state => state.routeStatus
}
const actions = {
setPublicObj ({commit}, res) {
@@ -13,7 +15,15 @@ const actions = {
},
setPublicArr ({commit}, res) {
commit(types.PUBLIC_ARR, res)
}
},
setRouteStatus ({commit}, res) {
uni.setStorageSync('routeStatus', res)
commit(types.SET_ROUTE_STATUS, res)
},
delRouteStatus ({commit}, res) {
uni.removeStorageSync('routeStatus', res)
commit(types.DEL_ROUTE_STATUS, res)
},
}
const mutations = {
[types.PUBLIC_OBJ] (state, res) {
@@ -21,6 +31,12 @@ const mutations = {
},
[types.PUBLIC_ARR] (state, res) {
state.publicArr = res
},
[types.SET_ROUTE_STATUS] (state, res) {
state.routeStatus = res
},
[types.DEL_ROUTE_STATUS] (state, res) {
state.routeStatus = res
}
}
export default {

View File

@@ -12,4 +12,6 @@ export const SAVE_TOKEN = 'SAVE_TOKEN'
* data
*/
export const PUBLIC_OBJ = 'PUBLIC_OBJ'
export const PUBLIC_ARR = 'PUBLIC_ARR'
export const PUBLIC_ARR = 'PUBLIC_ARR'
export const SET_ROUTE_STATUS = 'SET_ROUTE_STATUS'
export const DEL_ROUTE_STATUS = 'DEL_ROUTE_STATUS'