前言:今天遇到了一个需求。大概是现在有2个身份,A是推广员,B是普通用户。然后有一个页面,如果是普通用户这个页面则会一直显示,如果是推广员这个页面每天只展示一次。下面就说一下个人写这个需求的流程
1.绑定点击事件
@click="gotoEx"
2.定义一个变量,方便后续用来存贮数据
var tiems = uni.getStorageSync("tiemNum")
3.再定义一个变量,用来获取当前时间的时间戳
var time = new Date(new Date().toLocaleDateString()).getTime()
准备工作已经就绪,下面开始逻辑
if (uni.getStorageSync("user").pluger.isActivation != 1) { //普通用户跳转到黄色页面
console.log('[普通用户跳转有用了]');
uni.navigateTo({
url: '/pages/extension/extension'
})
} else { //此处下面的操作全是推广员的操作
if (tiems) { //缓存里面有值,说明已经点过
if (time == tiems) { //在同一天内点击跳转到二维码
uni.navigateTo({
url: '/pages/extensionOne/extensionOne'
})
} else { //缓存时间与当前时间不是同一天,跳转到黄色页面,并更新缓存里面的值
uni.setStorageSync("tiemNum", time)
uni.navigateTo({
url: '/pages/extension/extension'
})
}
} else { //缓存里面没有值,把最新时间赋值给缓存时间,并跳转到黄色页面
uni.setStorageSync("tiemNum", time)
uni.navigateTo({
url: '/pages/extension/extension'
})
}
}
(1)拿到后端返回的身份字段,我的是1是推广员,2是普通用户。我们这里先写普通用户的逻辑
使用if判断语句,如果说他是普通用户的话,直接让他跳转到这个黄色页面
(2)普通用户的逻辑已经完成,那么就剩下推广员的逻辑了
1.上面我们声明了一个变量tiems,这个用来判断推广员用户有没有点击,如果点击了,里面有值那我们就先按照里面有值来处理,上面已经说了这个页面推广员用户一天这个页面只显示一次,已知tiems有值,然后我现在点击获取一个新的值,那我们要判断是不是在同一天,如果是在同一天,说明在这一天这个推广员已经看到过这个页面,所以我们跳转到下一个页面。
2.第一条说的是现在点击的时间与缓存的时间是在同一天,那么有的人是在第二天才点击呢,所以说,我们现在来判断我们当前时间是不是与缓存的(上一次点击的时间)不是同一天的逻辑。
3.如果说我第二天才点击,然后上一次是今天点击的,那我们还是要让他看到每天只显示一次的那个页面。然后并把新获取的点击时间的值赋值给上一次点击的时间,做到更新。
所以我的写法是先把新点击的时间赋值给上一次点击的时间,做到赋值更新的效果。并且让他跳转的每天只显示一次的那个页面
4.tiems里面有值,如果tiems里面没值呢,那我们还要做一个逻辑。
这个缓存没有值,说明这个人没有点击过,黄页面没有显示过。那么我们就把现在获取的时间赋值给缓存,并进行跳转到每天只显示一次的这个页面。