9.8 KiB
9.8 KiB
模板导入日志复制功能演示
功能演示
1. 基础界面
┌─────────────────────────────────────────────────────────────┐
│ 模板导入进度 │
├─────────────────────────────────────────────────────────────┤
│ 进度条: ████████████████████████████████████████ 100% │
│ 状态: 导入完成 │
├─────────────────────────────────────────────────────────────┤
│ 导入结果: ✅ 成功导入 8 个模板 │
├─────────────────────────────────────────────────────────────┤
│ 导入日志 [复制日志] [▼] │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ [14:30:20] 开始扫描模板目录... │ │
│ │ [14:30:21] 发现 10 个模板文件 │ │
│ │ [14:30:22] 开始导入模板: template1 │ │
│ │ [14:30:23] ✅ 成功导入: template1 │ │
│ │ [14:30:24] 开始导入模板: template2 │ │
│ │ [14:30:25] ✅ 成功导入: template2 │ │
│ │ ... │ │
│ └─────────────────────────────────────────────────────────┘ │
│ [关闭] │
└─────────────────────────────────────────────────────────────┘
2. 复制按钮状态
默认状态
[📋 复制日志] [▼]
复制成功状态(2秒后自动恢复)
[✅ 已复制] [▼]
3. 下拉菜单展开
┌─────────────────────────────────────────────────────────────┐
│ 导入日志 [复制日志] [▲] │
│ ┌─────────────────┐ │
│ │ 复制详细日志 │ │
│ │ 仅复制日志内容 │ │
│ └─────────────────┘ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 日志内容... │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
复制内容示例
详细格式复制内容
=== 模板导入日志 ===
导出时间: 2024-01-15 14:30:25
当前进度: 导入模板 - 导入完成 (100.0%)
导入结果: 成功 - 导入完成 (成功导入 8 个模板)
=== 详细日志 ===
[2024-01-15 14:30:20] 开始扫描模板目录...
[2024-01-15 14:30:21] 发现 10 个模板文件
[2024-01-15 14:30:22] 开始导入模板: template1
[2024-01-15 14:30:23] ✅ 成功导入: template1
[2024-01-15 14:30:24] 开始导入模板: template2
[2024-01-15 14:30:25] ✅ 成功导入: template2
[2024-01-15 14:30:26] 开始导入模板: template3
[2024-01-15 14:30:27] ✅ 成功导入: template3
[2024-01-15 14:30:28] 开始导入模板: template4
[2024-01-15 14:30:29] ✅ 成功导入: template4
[2024-01-15 14:30:30] 开始导入模板: template5
[2024-01-15 14:30:31] ✅ 成功导入: template5
[2024-01-15 14:30:32] 开始导入模板: template6
[2024-01-15 14:30:33] ✅ 成功导入: template6
[2024-01-15 14:30:34] 开始导入模板: template7
[2024-01-15 14:30:35] ✅ 成功导入: template7
[2024-01-15 14:30:36] 开始导入模板: template8
[2024-01-15 14:30:37] ✅ 成功导入: template8
[2024-01-15 14:30:38] 跳过重复模板: template9 (已存在)
[2024-01-15 14:30:39] ❌ 导入失败: template10 - 文件格式错误
[2024-01-15 14:30:40] 导入完成,成功: 8,失败: 1,跳过: 1
简单格式复制内容
[2024-01-15 14:30:20] 开始扫描模板目录...
[2024-01-15 14:30:21] 发现 10 个模板文件
[2024-01-15 14:30:22] 开始导入模板: template1
[2024-01-15 14:30:23] ✅ 成功导入: template1
[2024-01-15 14:30:24] 开始导入模板: template2
[2024-01-15 14:30:25] ✅ 成功导入: template2
[2024-01-15 14:30:26] 开始导入模板: template3
[2024-01-15 14:30:27] ✅ 成功导入: template3
[2024-01-15 14:30:28] 开始导入模板: template4
[2024-01-15 14:30:29] ✅ 成功导入: template4
[2024-01-15 14:30:30] 开始导入模板: template5
[2024-01-15 14:30:31] ✅ 成功导入: template5
[2024-01-15 14:30:32] 开始导入模板: template6
[2024-01-15 14:30:33] ✅ 成功导入: template6
[2024-01-15 14:30:34] 开始导入模板: template7
[2024-01-15 14:30:35] ✅ 成功导入: template7
[2024-01-15 14:30:36] 开始导入模板: template8
[2024-01-15 14:30:37] ✅ 成功导入: template8
[2024-01-15 14:30:38] 跳过重复模板: template9 (已存在)
[2024-01-15 14:30:39] ❌ 导入失败: template10 - 文件格式错误
[2024-01-15 14:30:40] 导入完成,成功: 8,失败: 1,跳过: 1
用户操作流程
场景1:快速复制详细日志
- 用户点击模板导入
- 导入进度弹窗显示
- 导入完成后,用户直接点击 [复制日志] 按钮
- 系统复制详细格式日志到剪贴板
- 按钮显示 [✅ 已复制] 状态
- 2秒后自动恢复为 [📋 复制日志]
场景2:选择复制格式
- 用户点击模板导入
- 导入进度弹窗显示
- 用户点击下拉箭头 [▼] 展开菜单
- 用户选择 "仅复制日志内容"
- 系统复制简单格式日志到剪贴板
- 下拉菜单自动关闭
- 主按钮显示 [✅ 已复制] 状态
场景3:导入失败时复制错误信息
=== 模板导入日志 ===
导出时间: 2024-01-15 14:35:12
当前进度: 导入模板 - 导入失败 (60.0%)
导入结果: 失败 - 部分模板导入失败 (成功导入 3 个模板) (失败 2 个模板)
=== 详细日志 ===
[2024-01-15 14:35:05] 开始扫描模板目录...
[2024-01-15 14:35:06] 发现 5 个模板文件
[2024-01-15 14:35:07] 开始导入模板: template1
[2024-01-15 14:35:08] ✅ 成功导入: template1
[2024-01-15 14:35:09] 开始导入模板: template2
[2024-01-15 14:35:10] ❌ 导入失败: template2 - 文件损坏,无法读取
[2024-01-15 14:35:11] 开始导入模板: template3
[2024-01-15 14:35:12] ❌ 导入失败: template3 - 缺少必要的配置文件
[2024-01-15 14:35:13] 导入中断,请检查错误信息
技术细节
按钮样式
/* 主复制按钮 */
.copy-button {
display: flex;
align-items: center;
gap: 4px;
padding: 4px 8px;
font-size: 12px;
background-color: #e5e7eb;
color: #374151;
border-radius: 6px 0 0 6px;
transition: background-color 0.2s;
}
.copy-button:hover {
background-color: #d1d5db;
}
/* 下拉按钮 */
.dropdown-button {
display: flex;
align-items: center;
padding: 4px;
font-size: 12px;
background-color: #e5e7eb;
color: #374151;
border-radius: 0 6px 6px 0;
border-left: 1px solid #d1d5db;
transition: background-color 0.2s;
}
/* 下拉菜单 */
.dropdown-menu {
position: absolute;
right: 0;
top: 100%;
margin-top: 4px;
background-color: white;
border: 1px solid #e5e7eb;
border-radius: 6px;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
z-index: 10;
min-width: 128px;
}
.dropdown-item {
width: 100%;
text-align: left;
padding: 8px 12px;
font-size: 12px;
color: #374151;
transition: background-color 0.2s;
}
.dropdown-item:hover {
background-color: #f9fafb;
}
响应式设计
- 桌面端: 完整的按钮组和下拉菜单
- 平板端: 保持完整功能,调整按钮大小
- 移动端: 简化为单个复制按钮,长按显示选项
无障碍支持
- 键盘导航: 支持 Tab 键切换和 Enter 键激活
- 屏幕阅读器: 提供完整的 aria-label 和 title 属性
- 高对比度: 确保在高对比度模式下可见性
测试场景
功能测试
- ✅ 有日志时显示复制按钮
- ✅ 无日志时隐藏复制按钮
- ✅ 详细格式复制正确
- ✅ 简单格式复制正确
- ✅ 复制状态反馈正确
- ✅ 下拉菜单交互正常
兼容性测试
- ✅ Chrome 90+
- ✅ Firefox 88+
- ✅ Safari 14+
- ✅ Edge 90+
错误处理测试
- ✅ 剪贴板权限被拒绝
- ✅ 剪贴板API不可用
- ✅ 网络错误情况
通过这个复制功能,用户可以轻松地复制和分享模板导入日志,大大提升了调试和问题解决的效率。