2024-03-14 03:30:18 +00:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="tip-container" v-show="tipText">{{ tipText }},为了避免影响您的正常使用,请尽快激活</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import { onUnmounted, ref } from 'vue'
|
|
|
|
|
|
import { getLicense } from '@/services/license'
|
|
|
|
|
|
import dayjs from 'utils/day'
|
|
|
|
|
|
import { useStore } from 'vuex'
|
|
|
|
|
|
import relativeTime from 'dayjs/plugin/relativeTime'
|
|
|
|
|
|
dayjs.extend(relativeTime)
|
|
|
|
|
|
|
|
|
|
|
|
const unit = 1000 * 60 * 60 * 24
|
|
|
|
|
|
export default {
|
|
|
|
|
|
setup(props, context) {
|
|
|
|
|
|
const store = useStore()
|
|
|
|
|
|
const tipText = ref()
|
|
|
|
|
|
const interval = unit * 7
|
|
|
|
|
|
const getInfo = async () => {
|
|
|
|
|
|
const res = await getLicense()
|
|
|
|
|
|
if (res.success) {
|
|
|
|
|
|
const { expireDate } = res.data
|
|
|
|
|
|
const nowTimer = dayjs().valueOf()
|
|
|
|
|
|
const expireTimer = dayjs(expireDate).valueOf()
|
|
|
|
|
|
const { commit } = store
|
|
|
|
|
|
if (expireTimer - nowTimer <= interval) {
|
|
|
|
|
|
const time = dayjs(expireDate).fromNow(true)
|
|
|
|
|
|
if (expireTimer - nowTimer >= 0) {
|
|
|
|
|
|
tipText.value = `您的证书即将过期,还剩 ${time} 时间可以进行证书激活`
|
|
|
|
|
|
} else {
|
|
|
|
|
|
tipText.value = `您的证书已经过期 ${time} `
|
|
|
|
|
|
}
|
|
|
|
|
|
commit('SET_EXPIRE', true)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
commit('SET_EXPIRE', false)
|
|
|
|
|
|
}
|
|
|
|
|
|
// 当证书有效期大于等于30天时直接销毁定时器
|
|
|
|
|
|
if (expireTimer - nowTimer > unit * 30) {
|
|
|
|
|
|
clearInterval(timer)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
getInfo()
|
|
|
|
|
|
const timer = setInterval(() => {
|
|
|
|
|
|
getInfo()
|
|
|
|
|
|
}, 1000 * 60 * 60)
|
|
|
|
|
|
onUnmounted(() => {
|
|
|
|
|
|
clearInterval(timer)
|
|
|
|
|
|
})
|
|
|
|
|
|
return {
|
2025-11-06 08:02:06 +00:00
|
|
|
|
tipText
|
2024-03-14 03:30:18 +00:00
|
|
|
|
}
|
2025-11-06 08:02:06 +00:00
|
|
|
|
}
|
2024-03-14 03:30:18 +00:00
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|
.tip-container {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
background: #c92100;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
padding: 5px 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|