vue 怎样根据后端返回的如后端返回300 则将在300天提前一个星期提示 最后一周每次每次登录弹窗提示用户修改密码 并且修改以后将不在提示
时间: 2024-05-04 07:19:07 浏览: 98
可以使用Vue中的计算属性来实现根据后端返回的数据进行相应的操作和提示。
首先,可以在Vue组件中定义一个计算属性,用于计算距离密码过期的天数:
```javascript
computed: {
daysToExpire () {
const expireTime = new Date(this.passwordExpireTime)
const now = new Date()
const diffTime = expireTime.getTime() - now.getTime()
const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24))
return diffDays
}
}
```
其中,`this.passwordExpireTime`是从后端返回的密码过期时间。
然后,在组件的`mounted`生命周期中,可以判断距离密码过期的天数,如果小于等于7天,则弹出提示框:
```javascript
mounted () {
if (this.daysToExpire <= 7) {
this.$alert('您的密码将于 ' + this.daysToExpire + ' 天后过期,请尽快修改密码!', '密码过期提醒', {
confirmButtonText: '去修改',
callback: () => {
this.showChangePwdDialog = true
}
})
}
}
```
其中,`$alert`是ElementUI中的弹出框组件。
最后,可以在修改密码后将一个`hasChangedPwd`标志位设置为true,表示用户已经修改了密码,以后就不再提示了。
```javascript
methods: {
handleChangePwd () {
// 修改密码的代码
this.hasChangedPwd = true
}
}
```
这样,如果`hasChangedPwd`为true,就不再弹出密码过期提示框了。完整的示例代码如下:
```html
<template>
<div>
<el-dialog v-if="showChangePwdDialog" title="修改密码" :visible.sync="showChangePwdDialog">
<!-- 修改密码的表单 -->
</el-dialog>
</div>
</template>
<script>
export default {
data () {
return {
passwordExpireTime: '2022-01-01',
showChangePwdDialog: false,
hasChangedPwd: false
}
},
computed: {
daysToExpire () {
const expireTime = new Date(this.passwordExpireTime)
const now = new Date()
const diffTime = expireTime.getTime() - now.getTime()
const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24))
return diffDays
}
},
mounted () {
if (!this.hasChangedPwd && this.daysToExpire <= 7) {
this.$alert('您的密码将于 ' + this.daysToExpire + ' 天后过期,请尽快修改密码!', '密码过期提醒', {
confirmButtonText: '去修改',
callback: () => {
this.showChangePwdDialog = true
}
})
}
},
methods: {
handleChangePwd () {
// 修改密码的代码
this.hasChangedPwd = true
}
}
}
</script>
```
阅读全文