Files
wms_base2.0/wms/nladmin-ui/src/components/VersionNotification/VersionNotification.vue
2026-05-18 18:41:54 +08:00

121 lines
3.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<el-dialog
:visible.sync="dialogVisible"
:show-close="false"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="系统版本更新"
width="600px"
>
<div class="version-notification">
<div class="version-info">
<span class="label">{{ '版本号' }}</span>
<el-tag type="success" size="medium">v{{ versionInfo.version }}</el-tag>
</div>
<div v-if="versionInfo.title" class="version-info">
<span class="label">{{ 'noticeTitle' }}</span>
<span>{{ versionInfo.title }}</span>
</div>
<div v-if="versionInfo.releaseTime" class="version-info">
<span class="label">{{ '发布时间' }}</span>
<span>{{ versionInfo.releaseTime }}</span>
</div>
<div v-if="versionInfo.content" class="version-content">
<div class="label">{{ '更新内容' }}</div>
<div class="content-body" v-html="versionInfo.content" />
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleConfirm">确认</el-button>
</div>
</el-dialog>
</template>
<script>
import { getCurrentVersion } from '@/api/system/version'
export default {
name: 'VersionNotification',
data() {
return {
dialogVisible: false,
versionInfo: {
version: '',
title: '',
releaseTime: '',
content: ''
}
}
},
methods: {
hasShown() {
return this.dialogVisible
},
/**
* 检查版本是否需要弹窗
* @param {string} serverVersion 服务端版本号
*/
checkVersion(serverVersion) {
const lastSeen = localStorage.getItem('lastSeenVersion')
if (!serverVersion || serverVersion === lastSeen) {
return
}
this.show(serverVersion)
},
/**
* 显示版本更新弹窗
* @param {string} serverVersion 版本号
*/
show(serverVersion) {
getCurrentVersion().then(res => {
if (!res.enabled) return
this.versionInfo.version = res.version || serverVersion
this.versionInfo.title = res.title || ''
this.versionInfo.releaseTime = res.releaseTime || ''
this.versionInfo.content = res.content || ''
this.dialogVisible = true
})
},
handleConfirm() {
localStorage.setItem('lastSeenVersion', this.versionInfo.version)
this.dialogVisible = false
// 点击后跳转到版本信息页面
this.$router.push('/system/version')
}
}
}
</script>
<style scoped>
.version-notification {
padding: 10px 0;
}
.version-info {
margin-bottom: 12px;
font-size: 14px;
}
.version-info .label {
font-weight: bold;
color: #303133;
}
.version-content {
margin-top: 16px;
}
.version-content .label {
font-weight: bold;
color: #303133;
margin-bottom: 8px;
}
.version-content .content-body {
padding: 12px;
background: #f5f7fa;
border-radius: 4px;
font-size: 14px;
color: #606266;
line-height: 1.8;
}
.dialog-footer {
text-align: center;
}
</style>