336 lines
9.9 KiB
Vue
336 lines
9.9 KiB
Vue
|
<template>
|
|||
|
<GiPageLayout>
|
|||
|
<div class="version-upgrade-container">
|
|||
|
<!-- 当前系统版本信息 -->
|
|||
|
<a-card title="当前系统版本信息" class="mb-6">
|
|||
|
<a-descriptions :column="2" bordered>
|
|||
|
<a-descriptions-item label="系统名称">风电智能管理系统</a-descriptions-item>
|
|||
|
<a-descriptions-item label="当前版本">v2.3.1</a-descriptions-item>
|
|||
|
<a-descriptions-item label="发布日期">2024-02-15</a-descriptions-item>
|
|||
|
<a-descriptions-item label="系统环境">生产环境</a-descriptions-item>
|
|||
|
<a-descriptions-item label="数据库版本">MySQL 8.0.35</a-descriptions-item>
|
|||
|
<a-descriptions-item label="运行时间">45天</a-descriptions-item>
|
|||
|
<a-descriptions-item label="许可证状态">
|
|||
|
<a-tag color="green">已激活</a-tag>
|
|||
|
</a-descriptions-item>
|
|||
|
<a-descriptions-item label="技术支持">
|
|||
|
<a-tag color="blue">有效至 2024-12-31</a-tag>
|
|||
|
</a-descriptions-item>
|
|||
|
</a-descriptions>
|
|||
|
</a-card>
|
|||
|
|
|||
|
<!-- 版本更新提醒 -->
|
|||
|
<a-card title="版本更新提醒" class="mb-6">
|
|||
|
<template #extra>
|
|||
|
<a-space>
|
|||
|
<a-button @click="checkForUpdates">
|
|||
|
<template #icon><icon-refresh /></template>
|
|||
|
检查更新
|
|||
|
</a-button>
|
|||
|
<a-button type="primary" @click="configureAlerts">
|
|||
|
<template #icon><icon-settings /></template>
|
|||
|
配置提醒
|
|||
|
</a-button>
|
|||
|
</a-space>
|
|||
|
</template>
|
|||
|
|
|||
|
<div v-if="latestVersion">
|
|||
|
<a-alert
|
|||
|
type="info"
|
|||
|
:title="`发现新版本 ${latestVersion.version}`"
|
|||
|
:description="latestVersion.description"
|
|||
|
show-icon
|
|||
|
closable
|
|||
|
class="mb-4"
|
|||
|
>
|
|||
|
<template #action>
|
|||
|
<a-space>
|
|||
|
<a-button size="small" @click="viewChangelog">查看更新日志</a-button>
|
|||
|
<a-button size="small" type="primary" @click="startUpgrade">立即升级</a-button>
|
|||
|
</a-space>
|
|||
|
</template>
|
|||
|
</a-alert>
|
|||
|
</div>
|
|||
|
|
|||
|
<div v-else>
|
|||
|
<a-empty description="当前已是最新版本" />
|
|||
|
</div>
|
|||
|
</a-card>
|
|||
|
|
|||
|
<!-- 版本历史记录 -->
|
|||
|
<a-card title="版本历史记录" class="mb-6">
|
|||
|
<GiTable
|
|||
|
row-key="id"
|
|||
|
:data="versionHistory"
|
|||
|
:columns="versionColumns"
|
|||
|
:pagination="false"
|
|||
|
>
|
|||
|
<!-- 版本状态 -->
|
|||
|
<template #status="{ record }">
|
|||
|
<a-tag :color="getVersionStatusColor(record.status)">
|
|||
|
{{ getVersionStatusText(record.status) }}
|
|||
|
</a-tag>
|
|||
|
</template>
|
|||
|
|
|||
|
<!-- 版本类型 -->
|
|||
|
<template #versionType="{ record }">
|
|||
|
<a-tag :color="getVersionTypeColor(record.versionType)">
|
|||
|
{{ record.versionType }}
|
|||
|
</a-tag>
|
|||
|
</template>
|
|||
|
|
|||
|
<!-- 操作 -->
|
|||
|
<template #action="{ record }">
|
|||
|
<a-space>
|
|||
|
<a-link @click="viewVersionDetail(record)">详情</a-link>
|
|||
|
<a-link @click="downloadVersion(record)">下载</a-link>
|
|||
|
<a-link
|
|||
|
@click="rollbackVersion(record)"
|
|||
|
v-if="record.status === 'installed' && record.id !== currentVersionId"
|
|||
|
>
|
|||
|
回滚
|
|||
|
</a-link>
|
|||
|
</a-space>
|
|||
|
</template>
|
|||
|
</GiTable>
|
|||
|
</a-card>
|
|||
|
|
|||
|
<!-- 升级配置 -->
|
|||
|
<a-card title="升级配置">
|
|||
|
<a-form :model="upgradeConfig" layout="vertical">
|
|||
|
<a-row :gutter="16">
|
|||
|
<a-col :span="12">
|
|||
|
<a-form-item label="自动检查更新">
|
|||
|
<a-switch v-model="upgradeConfig.autoCheck" />
|
|||
|
<div class="text-gray-500 text-sm mt-1">启用后系统将定期自动检查版本更新</div>
|
|||
|
</a-form-item>
|
|||
|
</a-col>
|
|||
|
<a-col :span="12">
|
|||
|
<a-form-item label="检查频率">
|
|||
|
<a-select v-model="upgradeConfig.checkFrequency" :disabled="!upgradeConfig.autoCheck">
|
|||
|
<a-option value="daily">每日</a-option>
|
|||
|
<a-option value="weekly">每周</a-option>
|
|||
|
<a-option value="monthly">每月</a-option>
|
|||
|
</a-select>
|
|||
|
</a-form-item>
|
|||
|
</a-col>
|
|||
|
</a-row>
|
|||
|
|
|||
|
<a-row :gutter="16">
|
|||
|
<a-col :span="12">
|
|||
|
<a-form-item label="升级提醒方式">
|
|||
|
<a-checkbox-group v-model="upgradeConfig.notificationMethods">
|
|||
|
<a-checkbox value="email">邮件通知</a-checkbox>
|
|||
|
<a-checkbox value="sms">短信通知</a-checkbox>
|
|||
|
<a-checkbox value="system">系统通知</a-checkbox>
|
|||
|
</a-checkbox-group>
|
|||
|
</a-form-item>
|
|||
|
</a-col>
|
|||
|
<a-col :span="12">
|
|||
|
<a-form-item label="维护窗口">
|
|||
|
<a-time-range-picker
|
|||
|
v-model="upgradeConfig.maintenanceWindow"
|
|||
|
format="HH:mm"
|
|||
|
/>
|
|||
|
<div class="text-gray-500 text-sm mt-1">系统升级的推荐时间窗口</div>
|
|||
|
</a-form-item>
|
|||
|
</a-col>
|
|||
|
</a-row>
|
|||
|
|
|||
|
<a-form-item>
|
|||
|
<a-space>
|
|||
|
<a-button type="primary" @click="saveUpgradeConfig">保存配置</a-button>
|
|||
|
<a-button @click="resetUpgradeConfig">重置</a-button>
|
|||
|
</a-space>
|
|||
|
</a-form-item>
|
|||
|
</a-form>
|
|||
|
</a-card>
|
|||
|
</div>
|
|||
|
</GiPageLayout>
|
|||
|
</template>
|
|||
|
|
|||
|
<script setup lang="ts">
|
|||
|
import { ref, reactive } from 'vue'
|
|||
|
import { Message } from '@arco-design/web-vue'
|
|||
|
import type { TableColumnData } from '@arco-design/web-vue'
|
|||
|
|
|||
|
// 当前版本ID
|
|||
|
const currentVersionId = ref(3)
|
|||
|
|
|||
|
// 最新版本信息
|
|||
|
const latestVersion = ref({
|
|||
|
version: 'v2.4.0',
|
|||
|
description: '新增项目管理模块,优化系统性能,修复已知bug',
|
|||
|
releaseDate: '2024-03-20',
|
|||
|
size: '156.8 MB'
|
|||
|
})
|
|||
|
|
|||
|
// 版本历史记录
|
|||
|
const versionHistory = ref([
|
|||
|
{
|
|||
|
id: 1,
|
|||
|
version: 'v2.1.0',
|
|||
|
versionType: '功能版本',
|
|||
|
releaseDate: '2023-12-15',
|
|||
|
installDate: '2023-12-20',
|
|||
|
status: 'archived',
|
|||
|
description: '初始版本发布,包含基础功能模块',
|
|||
|
size: '128.5 MB'
|
|||
|
},
|
|||
|
{
|
|||
|
id: 2,
|
|||
|
version: 'v2.2.0',
|
|||
|
versionType: '功能版本',
|
|||
|
releaseDate: '2024-01-15',
|
|||
|
installDate: '2024-01-20',
|
|||
|
status: 'archived',
|
|||
|
description: '新增用户管理和权限控制功能',
|
|||
|
size: '142.3 MB'
|
|||
|
},
|
|||
|
{
|
|||
|
id: 3,
|
|||
|
version: 'v2.3.1',
|
|||
|
versionType: '补丁版本',
|
|||
|
releaseDate: '2024-02-15',
|
|||
|
installDate: '2024-02-20',
|
|||
|
status: 'current',
|
|||
|
description: '修复安全漏洞,优化界面交互',
|
|||
|
size: '145.7 MB'
|
|||
|
},
|
|||
|
{
|
|||
|
id: 4,
|
|||
|
version: 'v2.4.0',
|
|||
|
versionType: '功能版本',
|
|||
|
releaseDate: '2024-03-20',
|
|||
|
installDate: '',
|
|||
|
status: 'available',
|
|||
|
description: '新增项目管理模块,优化系统性能',
|
|||
|
size: '156.8 MB'
|
|||
|
}
|
|||
|
])
|
|||
|
|
|||
|
// 版本表格列配置
|
|||
|
const versionColumns: TableColumnData[] = [
|
|||
|
{ title: '版本号', dataIndex: 'version', width: 120 },
|
|||
|
{ title: '版本类型', dataIndex: 'versionType', slotName: 'versionType', width: 120 },
|
|||
|
{ title: '发布日期', dataIndex: 'releaseDate', width: 120 },
|
|||
|
{ title: '安装日期', dataIndex: 'installDate', width: 120 },
|
|||
|
{ title: '状态', dataIndex: 'status', slotName: 'status', width: 100 },
|
|||
|
{ title: '文件大小', dataIndex: 'size', width: 100 },
|
|||
|
{ title: '描述', dataIndex: 'description', width: 300, ellipsis: true, tooltip: true },
|
|||
|
{ title: '操作', slotName: 'action', width: 200 }
|
|||
|
]
|
|||
|
|
|||
|
// 升级配置
|
|||
|
const upgradeConfig = reactive({
|
|||
|
autoCheck: true,
|
|||
|
checkFrequency: 'weekly',
|
|||
|
notificationMethods: ['email', 'system'],
|
|||
|
maintenanceWindow: ['02:00', '06:00']
|
|||
|
})
|
|||
|
|
|||
|
// 获取版本状态颜色
|
|||
|
const getVersionStatusColor = (status: string) => {
|
|||
|
const colorMap: Record<string, string> = {
|
|||
|
'current': 'green',
|
|||
|
'available': 'blue',
|
|||
|
'archived': 'gray',
|
|||
|
'deprecated': 'red'
|
|||
|
}
|
|||
|
return colorMap[status] || 'gray'
|
|||
|
}
|
|||
|
|
|||
|
// 获取版本状态文本
|
|||
|
const getVersionStatusText = (status: string) => {
|
|||
|
const textMap: Record<string, string> = {
|
|||
|
'current': '当前版本',
|
|||
|
'available': '可升级',
|
|||
|
'archived': '已归档',
|
|||
|
'deprecated': '已弃用'
|
|||
|
}
|
|||
|
return textMap[status] || status
|
|||
|
}
|
|||
|
|
|||
|
// 获取版本类型颜色
|
|||
|
const getVersionTypeColor = (type: string) => {
|
|||
|
const colorMap: Record<string, string> = {
|
|||
|
'主要版本': 'red',
|
|||
|
'功能版本': 'blue',
|
|||
|
'补丁版本': 'green',
|
|||
|
'热修复': 'orange'
|
|||
|
}
|
|||
|
return colorMap[type] || 'gray'
|
|||
|
}
|
|||
|
|
|||
|
// 操作方法
|
|||
|
const checkForUpdates = () => {
|
|||
|
Message.info('正在检查更新...')
|
|||
|
setTimeout(() => {
|
|||
|
Message.success('检查完成,发现新版本')
|
|||
|
}, 2000)
|
|||
|
}
|
|||
|
|
|||
|
const configureAlerts = () => {
|
|||
|
Message.info('配置提醒功能开发中...')
|
|||
|
}
|
|||
|
|
|||
|
const viewChangelog = () => {
|
|||
|
Message.info('查看更新日志功能开发中...')
|
|||
|
}
|
|||
|
|
|||
|
const startUpgrade = () => {
|
|||
|
Message.info('立即升级功能开发中...')
|
|||
|
}
|
|||
|
|
|||
|
const viewVersionDetail = (version: any) => {
|
|||
|
Message.info(`查看版本详情: ${version.version}`)
|
|||
|
}
|
|||
|
|
|||
|
const downloadVersion = (version: any) => {
|
|||
|
Message.info(`下载版本: ${version.version}`)
|
|||
|
}
|
|||
|
|
|||
|
const rollbackVersion = (version: any) => {
|
|||
|
Message.info(`回滚到版本: ${version.version}`)
|
|||
|
}
|
|||
|
|
|||
|
const saveUpgradeConfig = () => {
|
|||
|
Message.success('升级配置已保存')
|
|||
|
}
|
|||
|
|
|||
|
const resetUpgradeConfig = () => {
|
|||
|
Object.assign(upgradeConfig, {
|
|||
|
autoCheck: true,
|
|||
|
checkFrequency: 'weekly',
|
|||
|
notificationMethods: ['email', 'system'],
|
|||
|
maintenanceWindow: ['02:00', '06:00']
|
|||
|
})
|
|||
|
Message.success('升级配置已重置')
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped>
|
|||
|
.version-upgrade-container {
|
|||
|
padding: 16px;
|
|||
|
}
|
|||
|
|
|||
|
.mb-6 {
|
|||
|
margin-bottom: 24px;
|
|||
|
}
|
|||
|
|
|||
|
.mb-4 {
|
|||
|
margin-bottom: 16px;
|
|||
|
}
|
|||
|
|
|||
|
.text-gray-500 {
|
|||
|
color: #6b7280;
|
|||
|
}
|
|||
|
|
|||
|
.text-sm {
|
|||
|
font-size: 14px;
|
|||
|
}
|
|||
|
|
|||
|
.mt-1 {
|
|||
|
margin-top: 4px;
|
|||
|
}
|
|||
|
</style>
|