Files
SoonWorkerD/docs/WEB_FEATURE_LIST.md
T
2026-05-12 21:42:42 +08:00

155 lines
9.7 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.
# DiscWorker 网页端功能清单与实现情况
本文档列出全部功能,并标明:**无改动**(桌面/网页一致)、**有改动**(为兼容网页做了适配)、**网页端无法实现**(仅桌面端或需后端扩展)。
---
## 一、全局与基础设施
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 路由(/、/login、/manage、/set、/user、/404 | 无改动 | 使用 Vue Router,hash 模式,网页端可直接部署 |
| 登录鉴权(permission.js | 无改动 | 基于 token 与 store,与运行环境无关 |
| 路由守卫(白名单、未登录跳转登录) | 无改动 | 纯前端逻辑 |
| HTTP 请求(request.js、BASE_API | 有改动 | 网页构建通过 DefinePlugin 注入 BASE_API,需配置后端地址 |
| 多语言(vue-i18n | 无改动 | 纯前端 |
| Element UI、主题与尺寸 | 无改动 | 纯前端 |
| Vuex Storeuser、chat、app 等) | 有改动 | store 仅桌面端条件引入 vuex-electron,网页端不引入 |
---
## 二、登录页(/login
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 用户名/密码输入、记住账号 | 无改动 | 纯表单 + localStorage |
| 登录请求(/user/login | 无改动 | 走 axios + BASE_API,网页端需后端可用 |
| 新手引导(第一步) | 无改动 | 纯前端弹窗与步骤 |
| **WebSocket 服务地址设置** | **有改动** | 登录页可展开「设置 WebSocket 服务地址」,填写后写入 localStoragekey: `WS_SOCKET_API`),连接时优先使用该地址,便于网页端部署后连接本机/内网/公网服务。详见 [WEBSOCKET_DEPLOY.md](./WEBSOCKET_DEPLOY.md) |
---
## 三、首页 / 看板(/
### 3.1 顶部与状态
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 回到主界面、系统设置入口 | 无改动 | 路由跳转 |
| 服务启停开关(打开/关闭服务) | **网页端无法实现** | 依赖桌面端执行 `control.sh`,网页端显示「网页端」占位与 tooltip「仅桌面端支持启停服务」 |
| 完成刻录数/废弃刻录数/错误数 | 无改动 | 来自 WebSocket 的 task_list,与端无关 |
| 试用版天数、前往激活 | 有改动 | 「前往激活」仅桌面端显示(依赖 runCmd 执行 regist.sh);网页端不显示该按钮 |
| 用户信息组件 | 无改动 | 展示 store 中的用户信息 |
### 3.2 设备与作业
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 设备状态展示(图示、状态文案) | 无改动 | 数据来自 WebSocket printer_info |
| 运行选项(重启设备、清除错误、设置光盘桶、刷新光盘桶等) | 无改动 | 通过 WebSocket 下发,网页端在已连接服务时可用 |
| 作业列表(表格、重试/取消) | 无改动 | WebSocket task_list + websocketsend |
| 新建作业、打开作业 | 有改动 | **打开作业**:桌面端用系统对话框选 .dwk 后读文件;网页端用 `<input type="file">` 选文件并 FileReader 读内容,再解析填入 workAdd,**可正常使用**。新建作业为打开弹窗,无改动 |
| 保存作业(workAdd 内) | 有改动 | 桌面端:系统保存对话框 + 写入本地路径;网页端:无保存对话框,直接触发浏览器下载 .dwk 文件,**可正常使用** |
| 动态/日志(最新日志、全部日志) | 无改动 | 数据来自 WebSocket log,与端无关 |
### 3.3 帮助与其它
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 帮助(打开帮助文档) | 有改动 | 桌面端:IPC 打开本机 PDF;网页端:`window.open(HELP_PDF_URL)`,需部署或配置帮助 PDF 地址 |
| 关于我们弹窗 | 无改动 | 纯前端 |
---
## 四、作业弹窗(WorkAdd 组件)
### 4.1 作业配置
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 任务名称、CD 类型、刻录类型、标签、UDF、关联任务等表单 | 无改动 | 纯表单与校验 |
| 模板下拉(从 User Templates 加载) | 有改动 | 桌面端:读本地「User Templates」目录;网页端:readdir 不可用,模板列表为空,**网页端无法使用本地模板列表**;若需网页端模板,需后端提供列表接口 |
| 选择模板(加载 .soon 文件) | 有改动 | 仅桌面端可用(依赖本地路径 + readFile);网页端无模板列表,该入口不适用 |
| 「···」选择作业文件(.soon) | 有改动 | 桌面端:系统对话框选文件;网页端:可用平台 showOpenFileDialoginput file),**单文件选择可用**;多选仍仅桌面端 |
| 新建标签(打开 SoonDesign | **网页端无法实现** | 依赖桌面端 exec('soondesign'),网页端按钮改为灰色 + tooltip「仅桌面端支持」 |
### 4.2 文件与路径
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 添加文件(单/多选) | 有改动 | 桌面端:系统对话框 + 本地路径 + stat;网页端:input file 单文件,以「web://」虚拟路径加入列表,**可添加单文件** |
| 添加文件夹 | **网页端无法实现** | 依赖系统选择目录,网页端 showOpenDirectoryDialog 拒绝,提示「仅桌面端支持」 |
| 拖放添加文件/文件夹 | 有改动 | 桌面端:支持路径与 calcSize;网页端:仅支持 File 对象(无 path),用 name 与 size,不计算目录大小,**可拖放文件** |
| 选择路径(归档路径) | **网页端无法实现** | 依赖系统选择目录,网页端不支持 |
| 保存作业为 .dwk | 见「三、首页」保存作业 | 网页端为下载 |
### 4.3 提交与打包
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 提交任务(刻录/打印) | 有改动 | 桌面端:提交本地路径 + mtime 等,由本机服务访问本地文件;网页端:当前提交的为「web://」虚拟路径,**后端无法按路径读文件,故网页端提交任务需后端提供文件上传接口**,否则仅桌面端可完整使用 |
| 复制文件到某路径(file-back 复制) | **网页端无法实现** | 依赖 fs.cp,仅桌面端;网页端点击会提示「仅桌面端支持」 |
| 压缩为 zip/加密 zipfile-back | **网页端无法实现** | 依赖 fs stream + archiver,仅桌面端;网页端会提示「仅桌面端支持」 |
---
## 五、系统管理(/manage
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 设置光驱(手动设置光驱、设置光盘桶类型) | 无改动 | 全部通过 WebSocket 与后端/设备通信,网页端在连接服务后**可正常使用** |
| 校准设备、维护设备 | 无改动 | WebSocket 下发指令,网页端可用 |
| 刷新时间、执行 | 无改动 | WebSocket,网页端可用 |
| 清除任务(服务重启时是否删除已完成/已取消任务) | 无改动 | WebSocket/配置,网页端可用 |
| 新手引导开关 | 无改动 | 本地存储,网页端可用 |
| 光盘类型列表(getCurrentOSDiscTypes | 有改动 | fileSize 在网页端返回固定 1024 与 web 类型,manage 仅读配置列表,**网页端可正常使用** |
---
## 六、系统配置(/set
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| LogLevel、AutoRetryTimes、PrintQuality、CacheDir、SkipSr0Check 等 | 无改动 | 通过 WebSocket 获取/提交系统配置,网页端**可正常使用** |
| 保存 | 无改动 | websocketsend,网页端可用 |
---
## 七、用户管理(/user
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 用户列表展示(当前为静态示例数据) | 无改动 | 纯前端表格,若后续接真实接口则与端无关 |
---
## 八、其它
| 功能 | 实现情况 | 说明 |
|------|----------|------|
| 404 页 | 无改动 | 纯静态 |
| TabBar 导航 | 无改动 | 路由跳转 |
| WebSocket 连接(chat 模块) | 有改动 | 网页端通过 VUE_APP_SOCKET_API 连接,需后端或本机服务提供 WebSocket;**网页端需能访问该地址**(同源或 CORS/代理) |
| 文件大小显示(filterSize、fileSize | 有改动 | fileSize 在网页端 getOS 返回 'web'、getBaseSize 固定 1024**显示正常** |
| 右键菜单(show-context-menu | 有改动 | 桌面端 IPC;网页端 no-op,无影响 |
---
## 九、总结表
| 类型 | 数量 | 说明 |
|------|------|------|
| **无改动** | 绝大多数 | 登录、配置、设备指令、作业列表、重试/取消、日志、系统管理、系统配置等均与运行环境无关或仅依赖 WebSocket/HTTP |
| **有改动且网页端可用** | 若干 | 打开作业(选文件 + 读内容)、保存作业(下载)、帮助(新标签打开 PDF)、添加单文件、拖放文件、服务开关/激活 UI 占位与提示 |
| **网页端无法实现** | 少量 | 服务启停(执行 control.sh)、前往激活(执行 regist.sh)、新建标签(打开 SoonDesign)、选择目录、复制到本地路径、本地 zip 打包;提交任务在无上传接口时仅桌面端完整可用 |
---
## 十、网页端使用前提
1. **后端与 WebSocket**:配置 `BASE_API``VUE_APP_SOCKET_API`,确保登录接口与 WebSocket 可访问(同源或代理/CORS)。
2. **帮助文档**:如需帮助入口,部署帮助 PDF 并配置 `HELP_PDF_URL`(或使用默认 `/help/User Manual.pdf`)。
3. **提交任务**:若要在网页端完整使用「提交刻录/打印任务」,需后端提供文件上传接口,前端改为先上传再提交任务参数;当前实现仍为提交路径,仅桌面端可被本机服务访问。
按当前实现,网页端可正常完成:登录、看板查看、设备状态与指令、作业列表与重试/取消、打开/保存作业(选文件与下载)、系统管理、系统配置、日志查看等;仅上述「网页端无法实现」项在网页端为禁用或提示。