155 lines
9.7 KiB
Markdown
155 lines
9.7 KiB
Markdown
# 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 Store(user、chat、app 等) | 有改动 | store 仅桌面端条件引入 vuex-electron,网页端不引入 |
|
||
|
||
---
|
||
|
||
## 二、登录页(/login)
|
||
|
||
| 功能 | 实现情况 | 说明 |
|
||
|------|----------|------|
|
||
| 用户名/密码输入、记住账号 | 无改动 | 纯表单 + localStorage |
|
||
| 登录请求(/user/login) | 无改动 | 走 axios + BASE_API,网页端需后端可用 |
|
||
| 新手引导(第一步) | 无改动 | 纯前端弹窗与步骤 |
|
||
| **WebSocket 服务地址设置** | **有改动** | 登录页可展开「设置 WebSocket 服务地址」,填写后写入 localStorage(key: `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) | 有改动 | 桌面端:系统对话框选文件;网页端:可用平台 showOpenFileDialog(input 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/加密 zip(file-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. **提交任务**:若要在网页端完整使用「提交刻录/打印任务」,需后端提供文件上传接口,前端改为先上传再提交任务参数;当前实现仍为提交路径,仅桌面端可被本机服务访问。
|
||
|
||
按当前实现,网页端可正常完成:登录、看板查看、设备状态与指令、作业列表与重试/取消、打开/保存作业(选文件与下载)、系统管理、系统配置、日志查看等;仅上述「网页端无法实现」项在网页端为禁用或提示。
|