This commit is contained in:
AmintaCCCP
2025-07-29 17:40:55 +08:00
parent 055bff5b30
commit 277c340fbf
8 changed files with 748 additions and 247 deletions

86
RELEASE_FILTER_FEATURE.md Normal file
View File

@@ -0,0 +1,86 @@
# Release 下载功能更新
## 功能概述
根据用户需求,我们对 Release 下载功能进行了以下更新:
### 1. 下拉列表显示所有 Assets
- 下拉列表现在显示 GitHub Release 页面的所有 Assets
- 文件名与 GitHub Assets 的文件名完全一致
- 不再区分平台,显示所有可用文件
### 2. 详细文件信息
下拉列表中每个文件显示:
- **文件名**: 与 GitHub Assets 完全一致
- **文件大小**: 格式化显示B, KB, MB, GB
- **更新时间**: 相对时间显示(如 "2 days ago"
- **下载次数**: 显示该文件的下载统计
### 3. 点击下载
- 整个文件名区域都可以点击
- 点击后直接触发下载,打开新标签页
- 支持鼠标悬停效果,提升用户体验
### 4. 自定义过滤器系统
替换原有的平台筛选,改为更灵活的自定义过滤器:
#### 过滤器管理
- **新建过滤器**: 用户可以创建自定义过滤器
- **编辑过滤器**: 修改现有过滤器的名称和关键词
- **删除过滤器**: 删除不需要的过滤器
- **弹窗操作**: 新增和修改都使用弹窗方式
#### 过滤器配置
- **过滤器名称**: 如 "macOS", "Windows", "Linux" 等
- **关键词匹配**: 支持多个关键词,如:
- macOS 过滤器: ["mac", "dmg", "darwin"]
- Windows 过滤器: ["win", "exe", "msi"]
- Linux 过滤器: ["linux", "deb", "rpm", "appimage"]
#### 过滤器使用
- 点击过滤器名称激活/取消激活
- 激活后Release 列表只显示包含匹配关键词的文件
- 支持多个过滤器同时激活
- 提供清除所有筛选的快捷操作
## 技术实现
### 新增组件
1. **FilterModal**: 过滤器编辑弹窗
2. **AssetFilterManager**: 过滤器管理组件
3. **Modal**: 通用弹窗组件
### 数据结构更新
```typescript
interface AssetFilter {
id: string;
name: string;
keywords: string[];
}
```
### Store 更新
- 添加 `assetFilters` 状态
- 添加过滤器的增删改查操作
- 持久化过滤器配置
### UI 改进
- 移除平台图标显示
- 优化下拉列表布局
- 增强文件信息展示
- 改进交互体验
## 使用示例
### 创建 macOS 过滤器
1. 点击"新建过滤器"按钮
2. 输入名称: "macOS"
3. 添加关键词: "mac", "dmg", "darwin"
4. 点击"创建"
### 使用过滤器
1. 在过滤器列表中点击"macOS"
2. Release 列表自动筛选,只显示包含 macOS 相关文件的 Release
3. 点击文件名直接下载
这个更新让用户能够更灵活地筛选和下载所需的文件,提供了更好的用户体验。