Private
Public Access
1
0
Files
u-desk/docs/03-模块文档/更新通知/update-panel-improvements.md

252 lines
7.9 KiB
Markdown
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.
# 版本更新面板优化总结
## 改进内容
### 1. 去掉弹出窗,合并更新设置到抽屉 ✅
**改进前:**
- 点击"更新设置"按钮打开模态框
- 配置项在弹出窗中
- 需要点击"确定"才能保存
**改进后:**
- 去掉"更新设置"按钮和模态框
- 配置项直接显示在"版本更新"tab 中
- 配置修改后自动保存1秒防抖
- 更直观、更高效
### 2. 版本信息表格样式优化 ✅
**改进前:**
```vue
<a-descriptions :column="2" bordered>
<a-descriptions-item label="当前版本">{{ currentVersion }}</a-descriptions-item>
<a-descriptions-item label="最后检查">{{ lastCheckTime }}</a-descriptions-item>
<a-descriptions-item label="自动检查">
<a-tag>...</a-tag>
</a-descriptions-item>
</a-descriptions>
```
**问题:**
- 使用 `a-descriptions` 组件2列布局
- 第3个项自动换行导致表格行很高
- 内容挤压,显示不美观
**改进后:**
```vue
<a-row :gutter="16">
<a-col :span="8">
<div class="info-item">
<div class="info-label">当前版本</div>
<div class="info-value">{{ currentVersion }}</div>
</div>
</a-col>
<a-col :span="8">
<div class="info-item">...</div>
</a-col>
<a-col :span="8">
<div class="info-item">...</div>
</a-col>
</a-row>
```
**优势:**
- 使用 `a-row``a-col` 实现三列均匀布局
- 每列占 8 个栅格共24格三列均分
- 信息项使用卡片样式,视觉更清晰
- 标签和值分行显示,不会挤压
## 新的界面布局
### 版本更新 Tab 结构
```
┌─────────────────────────────────────────────────────┐
│ 版本信息 │
├─────────────────┬─────────────────┬─────────────────┤
│ 当前版本 │ 最后检查 │ 自动检查 │
│ 0.1.0 │ 2026-01-28 │ 已开启 │
└─────────────────┴─────────────────┴─────────────────┘
┌─────────────────────────────────────────────────────┐
│ 更新设置 │
│ │
│ 自动检查更新 [✓] 已开启 │
│ 检查间隔 [60] 分钟 │
│ 更新检查地址 https://... │
└─────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
│ 检查更新 │
│ │
│ [🔍 检查更新] │
│ │
│ (更新信息显示区域) │
│ (下载进度条) │
│ (安装结果提示) │
└─────────────────────────────────────────────────────┘
```
## 技术实现
### 1. 自动保存配置(防抖)
```javascript
// 配置变化时自动保存(防抖)
let saveTimer = null
const handleConfigChange = () => {
// 清除之前的定时器
if (saveTimer) {
clearTimeout(saveTimer)
}
// 设置新的定时器1秒后保存
saveTimer = setTimeout(async () => {
await saveConfig()
}, 1000)
}
// 保存配置
const saveConfig = async () => {
saving.value = true
try {
const result = await window.go.main.App.SetUpdateConfig(
config.value.auto_check_enabled,
config.value.check_interval_minutes,
config.value.check_url
)
if (result.success) {
Message.success('配置已自动保存')
await loadConfig()
} else {
Message.error(result.message || '保存配置失败')
}
} catch (error) {
console.error('保存配置失败:', error)
Message.error('保存配置失败:' + (error.message || error))
} finally {
saving.value = false
}
}
```
**防抖机制:**
- 用户修改配置后等待1秒再自动保存
- 如果1秒内再次修改重新计时
- 避免频繁保存,提升性能
### 2. 版本信息样式
```css
.info-item {
padding: 12px;
background: var(--color-fill-1);
border-radius: 6px;
text-align: center;
}
.info-label {
font-size: 12px;
color: var(--color-text-3);
margin-bottom: 8px;
}
.info-value {
font-size: 16px;
font-weight: 500;
color: var(--color-text-1);
}
```
**样式特点:**
- 卡片式设计,圆角背景
- 标签和值垂直居中对齐
- 标签小字体灰色,值大字体加粗
- 三列均分,视觉平衡
### 3. 配置项布局
```vue
<a-row :gutter="16">
<a-col :span="12">
<a-form-item label="自动检查更新">
<a-switch v-model="config.auto_check_enabled" @change="handleConfigChange">
<template #checked-icon><icon-check /></template>
<template #unchecked-icon><icon-close /></template>
</a-switch>
<span>{{ config.auto_check_enabled ? '已开启' : '已关闭' }}</span>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="检查间隔(分钟)">
<a-input-number
v-model="config.check_interval_minutes"
:disabled="!config.auto_check_enabled"
@change="handleConfigChange"
/>
</a-form-item>
</a-col>
</a-row>
```
**布局优化:**
- 自动检查和检查间隔并排显示
- 更新检查地址独占一行
- 禁用自动检查时,检查间隔输入框自动禁用
- 修改任一配置项都会触发自动保存
## 用户体验改进
1. **更直观** - 所有配置一目了然,无需打开弹出窗
2. **更高效** - 自动保存,无需点击确定按钮
3. **更美观** - 三列均分布局,不会出现换行挤压
4. **更智能** - 防抖保存,避免频繁操作
5. **更合理** - 禁用自动检查时,相关配置项自动禁用
## 修改的文件
- `frontend/src/components/UpdatePanel.vue`
- 模板:去掉模态框,改用卡片布局
- 样式:添加 `.info-item` 相关样式
- 逻辑:添加自动保存和防抖机制
## 功能对比
| 功能 | 改进前 | 改进后 |
|------|--------|--------|
| 配置入口 | 点击按钮打开弹出窗 | 直接显示在界面中 |
| 保存方式 | 手动点击确定 | 自动保存1秒防抖 |
| 版本信息 | 表格换行挤压 | 三列卡片式布局 |
| 交互步骤 | 打开 → 修改 → 确定 | 直接修改 |
| 视觉效果 | 表格行很高 | 三列均分,美观 |
## 测试要点
### 基础功能
- ✅ 修改自动检查开关1秒后自动保存
- ✅ 修改检查间隔,自动保存
- ✅ 修改检查地址,自动保存
- ✅ 禁用自动检查,检查间隔自动禁用
- ✅ 版本信息三列均分显示
### 边界情况
- ✅ 快速连续修改,只保存最后一次
- ✅ 保存失败时显示错误提示
- ✅ 检查间隔范围限制1-1440分钟
### UI 验证
- ✅ 版本信息不换行挤压
- ✅ 三列宽度均匀
- ✅ 卡片样式美观
## 总结
本次优化解决了两个主要问题:
1. **弹出窗体验不佳** - 通过直接显示配置项并自动保存
2. **表格换行挤压** - 通过改用卡片式三列布局
用户体验得到显著提升,界面更加美观和高效。