Skip to content

feat(ui): 资源列表复选框多选、下载文件按分类层级归档 - #90

Merged
wuziqian211 merged 1 commit into
happycola233:mainfrom
maohaodong:feat/resource-tree-checkboxes
Sep 9, 2026
Merged

wuziqian211 merged 1 commit into
happycola233:mainfrom
maohaodong:feat/resource-tree-checkboxes

Conversation

@maohaodong

@maohaodong maohaodong commented Sep 8, 2026 •

Copy link
Copy Markdown
Contributor

解决的问题

  • 下载的文件全部堆在同一目录,未按资源树的学段 / 学科 / 版本层级分类存放
  • 资源列表只支持单选,批量下载需按住 Ctrl 多选,无法直观看到已选了哪些教材,也不方便取消某一本

变更内容

资源列表复选框多选

  • 资源树每个层级显示复选框,点击教材或分类即可勾选 / 取消;分类呈三态(全选 / 半选 / 未选),点击分类可级联勾选其下全部教材
  • 键盘可用方向键移动焦点、空格键切换勾选;标题栏实时显示「已选 N 项」
  • 勾选变化时自动向 URL 输入框增删对应链接;搜索筛选后勾选状态保留;复选框配色跟随浅色 / 深色主题

下载文件按分类层级归档

  • 依据资源详情 tag_list 中的学段 / 学科 / 版本维度,将文件放入对应子目录(如 初中/数学/人教版/),手动粘贴的链接同样适用
  • 不同分类下的同名教材不再追加序号后缀

下载反馈

  • 批量解析移入后台线程,避免界面未响应

其他

  • 为全局会话补充请求超时(连接 10s / 读数据 60s),避免卡住的请求永久挂起

测试与检查

  • python -m pytest:82 个测试全部通过(新增复选框三态、分类目录分配等 20 余个用例)
  • python -m flake8 . --count --select=E9,F63,F7,F82:0 个问题
  • pyinstaller ./tchMaterial-parser.spec 构建成功
  • 浅色 / 深色模式均已验证复选框与界面显示
  • 提交内容不含明文 Access Token 等敏感信息

- 在资源树中添加复选框,支持多选和半选状态表示分类勾选情况
- 支持按分类层级展开勾选,自动同步更新 URL 输入框中的资源链接
- 新增勾选数量显示标签,提升勾选反馈信息
- 优化封面图标与复选框图标合成显示,支持主题切换动态更新
- 支持通过点击或空格键切换树项勾选状态,增强键盘操作体验
- 实现分类与资源链接的增减同步,避免重复和遗漏
- 新增链接的批量解析功能后台处理,提升界面响应速度
- 资源下载支持分类子目录归类,自动创建缺失目录
- 为网络请求添加超时设置,避免请求长时间阻塞
- 修改剪贴板复制逻辑,增加复制内容校验和异常处理
- 改进下载进度显示,支持多任务进度汇总与失败提示
- 优化资源版别和分类目录提取,实现更细粒度的文件归类
@wuziqian211 wuziqian211 changed the title feat(ui): 资源列表复选框多选、下载文件按分类层级归档与失败明细 feat(ui): 资源列表复选框多选、下载文件按分类层级归档 Sep 8, 2026
@wuziqian211

Copy link
Copy Markdown
Collaborator

感谢您对本工具的贡献!😊

另外,在描述本 PR 对文件的改变时,建议只列出这个 PR 改变的内容,而不是与上一版本的所有差异😌

@wuziqian211
wuziqian211 merged commit f6859dd into happycola233:main Sep 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants