# 下载测试 **Repository Path**: gonvee/download ## Basic Information - **Project Name**: 下载测试 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-01-09 - **Last Updated**: 2022-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # download ## 当页面关闭或刷新时 下载任务被中断,内存中的数据重新装载,下载任务所对应的对象在内存中不存在。此种情况下,页面重新挂载时,应读取浏览器数据库中任务,重新加载到内存中,等待用户指令。 ## 当用户点击暂停时 内存中对应下载任务对象存在,只需要响应用户指令。 ## 工作流程 * 用户在订单或我的下载未完成页面点击下载按钮。 * 系统生成下载任务,正在下载页面显示正在下载的任务,可在正在下载页面点击按钮暂停或继续下载任务。 * 下载任务完成后,生成文件到本地。 ### 订单页面和我的下载未完成下载页面 订单页面只有下载按钮,点击后先确认正在下载的任务中是否有此文件。如有,则提示用户无需重复下载,否则新建下载任务。 ### 正在下载 显示通过前端管理的下载任务列表,可在此页面查看下载状态,下载进度,并暂停、恢复或删除下载任务。 ### 任务管理器功能(全局) 提供查询当前任务列表、任务状态、任务进度的功能,提供暂停、恢复、删除下载任务接口。 * 查询任务 返回所有任务列表 * 添加任务 查询是否已经存在。如存在,提示用户;否则新建任务并填加到任务列表。 * 操作任务:暂停 恢复 删除 ### TaskEvent事件 ```js { taskId; // 任务ID eventName; // 事件名 message; // 消息 data; // 事件发生时有数据时存储对应数据 } ``` * taskId: 值可为空, 不为空时则指标的为此下载任务的事件 * eventName: 事件名, 不为空。对应EVENT: ```js const EVENT = { PROGRESS : "PROGRESS", // 进度信息 PAUSE : "PAUSE", // 暂停状态 DELETE : "DELETE", // 删除成功状态 LOADING: "LOADING", // 正在下载状态 SAVED: "SAVED", // 已保存 COMMAND_NOT_FOUND : "COMMAND_NOT_FOUND", // 发送给任务管理器的指令未找到 TASK_NOT_FOUND : "TASK_NOT_FOUND", // 在任务列表中未找到任务 SUCCESS_ADD_TASK : "SUCCESS_ADD_TASK", // 成功添加任务 ERROR_ADD_TASK : "ERROR_ADD_TASK", // 添加任务失败 } ``` * message: 事件所对应的中文信息 * data: 如果有数据则返回数据 ### 主要依赖的插件 * "dexie": "^3.2.0" IndexedDB操作 * "file-saver": "^2.0.5" 文件保存