完善 gitignore 规则,移出版本库中的运行时资源与依赖产物,并更新设备展示图片。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
24kycj
2026-06-29 16:52:02 +08:00
parent c727492da2
commit 8248767b89
58 changed files with 26 additions and 566 deletions
+26 -3
View File
@@ -1,11 +1,34 @@
# OS
.DS_Store .DS_Store
thumbs.db
# Dependencies
node_modules/
# Webpack / electron-vue build output
dist/electron/* dist/electron/*
dist/web/* dist/web/*
!dist/electron/.gitkeep
!dist/web/.gitkeep
# electron-builder pack output (keep icons for packaging)
build/* build/*
!build/icons !build/icons
node_modules/ !build/icons/**
# Logs
npm-debug.log npm-debug.log
npm-debug.log.* npm-debug.log.*
thumbs.db yarn-error.log
!.gitkeep yarn-debug.log*
# Local env (secrets)
.env
.env.local
.env.*.local
# Runtime / deploy assets (not source)
/CardsoonServer /CardsoonServer
/cardsoonServer
/User Templates
/docs
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
-13
View File
@@ -1,13 +0,0 @@
[system_setting]
downDevicePath=/dev/sr1
downDeviceType=0
end_time=cWL0ocEfX1NTQW0+hs3SGnKIgYkMeNru
logLevel=1
retryFreq=2
serverPath=/home/test/CDCache
server_name=127.0.0.1
server_port=10010
topDevicePath=/dev/sr0
topDeviceType=0
update_time=iWfJMJHeTnMCacgifeF9oACX0fK8UsnmNBUJgTgF2cs=
-80
View File
@@ -1,80 +0,0 @@
#!/bin/bash
# 路径
HOME=$(cd $(dirname $0);pwd)
# 启动
start(){
cd $HOME
# 将C++程序后台启动,并将启动日志指向springBootThree-1.0.log中
spid=$(pgrep -f "controlServer") #$(ps -ef | grep "[m]controlServer" | grep -v grep | awk '{print $2}')
if [ -z "$spid" ]
then
./controlServer > /dev/null 2>&1 &
# 打印字符串
echo "启动成功"
else
echo Application is already started
fi
}
# 停止
stop(){
# 查询到项目的pid
tpid=$(pgrep -f "controlServer") #$(ps -ef | grep "[m]controlServer" | grep -v grep | awk '{print $2}')
# 判断是否为空
if [ -z "$tpid" ]
then
# 如果为空 则打印这句话
echo Application is already stoped
else
# 如果不为空则执行
echo kill $tpid
# 关闭进程
kill -9 $tpid
echo "程序已关闭"
fi
}
# 查看状态
status(){
# 获取pid的
pid=$(pgrep -f "controlServer") #$(ps -ef | grep "[m]controlServer" | grep -v grep)
if [ -z "$pid" ]
then
echo "程序不存在"
else
echo $pid
fi
}
# 查看日志信息
log(){
tail -f $HOME/CSPServer.log
}
case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
log)
log
;;
restart)
$0 stop
sleep 5
$0 start
;;
*)
echo "只能是{start|stop|log|restart}"
;;
esac
exit 0
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-5
View File
@@ -1,5 +0,0 @@
功能:统一相对路径导入 fileSize 工具,修复打包别名解析问题
- 将 '@/utils/fileSize' 全部改为相对路径导入,兼容打包环境
- 修复 store 与页面中别名解析失败导致的模块找不到问题
- 保持逻辑不变,仅调整导入路径,降低打包风险
-226
View File
@@ -1,226 +0,0 @@
# 宝塔部署 Web 端说明
## 一、构建前配置
### 1. 配置后端 API 地址
编辑 `config/prod.env.js`,将 `BASE_API` 改为实际的后端接口地址:
```javascript
module.exports = {
NODE_ENV: '"production"',
BASE_API: '"https://your-api-domain.com/api"', // 改为实际后端地址
VUE_APP_SOCKET_API: '"ws://127.0.0.1:10010"' // WebSocket 默认地址(用户可在登录页修改)
}
```
**注意:**
- `BASE_API` 是 HTTP 接口地址(登录、数据请求等)
- `VUE_APP_SOCKET_API` 是 WebSocket 默认地址,用户可在登录页修改,所以这里可以保持默认或设为公网地址
### 2. 执行构建
在项目根目录执行:
```bash
npm run build:web
```
构建完成后,产物在 `dist/web/` 目录下,包含:
- `index.html`(入口文件)
- `web.js`(主 JS 文件,包含所有代码和样式)
- `1.js` ~ `7.js`(代码分割的 chunk 文件)
- `fonts/`(字体文件)
- `imgs/`(图片资源)
**注意**CSS 样式被打包进 `web.js` 中,运行时动态注入,无需单独引用 CSS 文件。
---
## 二、宝塔部署步骤
### 1. 创建网站
1. 登录宝塔面板
2. 点击「网站」→「添加站点」
3. 填写:
- **域名**:例如 `your-domain.com``192.168.1.100`(内网 IP
- **根目录**:例如 `/www/wwwroot/your-domain.com`
- **PHP 版本**:选择「纯静态」或任意版本(前端不需要 PHP)
### 2. 上传文件
`dist/web/` 目录下的**所有文件**上传到网站根目录:
```
/www/wwwroot/your-domain.com/
├── index.html
├── web.js
├── styles.css
└── static/
├── imgs/
└── fonts/
```
**上传方式:**
- 方式一:在宝塔「文件」中直接上传压缩包并解压
- 方式二:使用 FTP/SFTP 工具上传
- 方式三:使用宝塔「终端」执行 `scp``rsync` 命令
### 3. 配置 Nginx(重要)
由于是 Vue Router 的 hash 模式(`#/login``#/manage`),通常不需要特殊配置。但建议添加以下配置以确保正常访问:
在宝塔「网站」→ 选择站点 →「设置」→「配置文件」中,在 `server` 块内添加:
```nginx
server {
listen 80;
server_name your-domain.com;
root /www/wwwroot/your-domain.com;
index index.html;
# 前端路由支持(hash 模式通常不需要,但加上更稳妥)
location / {
try_files $uri $uri/ /index.html;
}
# 静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
}
}
```
### 4. 配置 HTTPS(可选但推荐)
如果使用域名且需要 HTTPS
1. 在宝塔「网站」→ 选择站点 →「SSL」→「Let's Encrypt」申请免费证书
2. 开启「强制 HTTPS」
3. **注意**:如果后端 API 或 WebSocket 使用 HTTPS/WSS,确保:
- `BASE_API` 使用 `https://`
- WebSocket 地址使用 `wss://`(或在登录页填写 `wss://` 地址)
### 5. 配置跨域(如需要)
如果后端 API 与前端不在同一域名,后端需要配置 CORS:
- 允许的源:`https://your-domain.com`(或 `*` 用于开发)
- 允许的请求头:`Content-Type, X-Token`(根据实际后端要求)
- 允许的方法:`GET, POST, PUT, DELETE`
---
## 三、WebSocket 配置
### 情况 1WebSocket 服务在服务器本机
如果 WebSocket 服务运行在**宝塔服务器本机**(例如 `ws://127.0.0.1:10010`):
- 用户访问网页时,浏览器会尝试连接**用户电脑**的 `127.0.0.1`**无法连接**
- **解决方案**
1. 在登录页填写 `ws://服务器公网IP:10010``ws://服务器域名:10010`
2. 或配置 Nginx 反向代理 WebSocket(见下方)
### 情况 2:使用 Nginx 反向代理 WebSocket(推荐)
在宝塔「网站」→ 选择站点 →「设置」→「配置文件」中添加:
```nginx
# WebSocket 代理(假设后端 WebSocket 在 127.0.0.1:10010
location /ws {
proxy_pass http://127.0.0.1:10010;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
```
然后在登录页填写:`wss://your-domain.com/ws`HTTPS 用 `wss://`HTTP 用 `ws://`
### 情况 3WebSocket 服务在公网服务器
如果 WebSocket 服务部署在**公网服务器**(例如 `wss://ws-api.xxx.com`):
- 在登录页填写该地址即可
- 或在构建时设置 `VUE_APP_SOCKET_API``wss://ws-api.xxx.com`
---
## 四、访问测试
1. 打开浏览器访问:`http://your-domain.com``https://your-domain.com`
2. 应能看到登录页
3. 点击「设置 WebSocket 服务地址」,填写实际可访问的 WebSocket 地址
4. 输入账号密码登录
5. 检查:
- 登录是否成功
- WebSocket 是否连接成功(查看浏览器控制台 Network → WS
- 各功能页面是否正常加载
---
## 五、常见问题
### 1. 页面空白
- **检查**:浏览器控制台是否有 JS 错误
- **解决**:确认 `index.html` 中引用的 `web.js``styles.css` 路径正确;检查 Nginx 配置是否正确
### 2. 接口请求失败(404 或 CORS
- **检查**`BASE_API` 是否正确;后端是否允许跨域
- **解决**:修改 `config/prod.env.js` 中的 `BASE_API` 后重新构建;后端配置 CORS
### 3. WebSocket 连接失败
- **检查**:浏览器控制台 Network → WS,查看连接地址和错误信息
- **解决**
- 确认 WebSocket 服务已启动
- 在登录页填写正确的地址(本机用 `ws://127.0.0.1:10010`,服务器用 `ws://服务器IP:10010`HTTPS 用 `wss://`
- 如使用 Nginx 代理,确认代理配置正确
### 4. 静态资源 404
- **检查**`static/` 目录是否上传完整
- **解决**:重新上传 `dist/web/static/` 目录
### 5. 路由跳转异常
- **检查**:Nginx 配置中是否有 `try_files $uri $uri/ /index.html;`
- **解决**:添加该配置后重启 Nginx
---
## 六、更新部署
当代码更新后:
1. 修改 `config/prod.env.js`(如需要)
2. 执行 `npm run build:web`
3.`dist/web/` 下的文件**覆盖上传**到宝塔网站根目录
4. 清除浏览器缓存或强制刷新(Ctrl+F5)
---
## 七、总结
- **构建产物**`dist/web/` 目录
- **上传位置**:宝塔网站根目录
- **配置要点**
- `BASE_API`:后端 HTTP 接口地址
- WebSocket:用户可在登录页配置,或通过 Nginx 反向代理
- **访问方式**`http(s)://your-domain.com`
部署完成后,用户访问网站即可使用,首次登录时记得在登录页配置 WebSocket 服务地址。
-82
View File
@@ -1,82 +0,0 @@
# WebSocket 与网页端部署说明
## 问题说明
程序通过 **WebSocket** 与后端服务通信(设备状态、作业列表、系统配置等)。该服务在**桌面端**场景下是 Windows 本机运行的服务(默认 `ws://127.0.0.1:10010`)。
**网页端打包部署后能否连接,取决于“浏览器连的是谁”:**
- 网页运行在**用户浏览器**里,`new WebSocket("ws://127.0.0.1:10010")` 会连接的是**当前用户所在设备**的 127.0.0.1,而不是你放网页的那台服务器。
- 因此:
- **用户和 Windows 服务在同一台电脑**:例如在本机浏览器打开部署在本机的页面,用 `ws://127.0.0.1:10010` 可以连到本机服务,**可以连接**。
- **用户和 Windows 服务不在同一台电脑**:例如网页部署在服务器 A,用户在手机或另一台电脑 B 打开,此时 127.0.0.1 指向的是 B,连不到 A 上的服务,**无法连接**。
所以:**把程序打包放到网页端后,只有在“能访问到 WebSocket 服务”的情况下才可以连接**;默认写死 127.0.0.1 时,只适合“网页和服务在同一台机器”或“用户本机也跑了该服务”的场景。
---
## 已做改造:可配置 WebSocket 地址
为支持不同部署方式,已做两点改动:
### 1. 连接时优先读“用户配置”
- 连接 WebSocket 时**优先使用**本地存储中的 **`WS_SOCKET_API`**localStorage)。
- 若未配置,再使用构建时注入的 **`process.env.VUE_APP_SOCKET_API`**(默认 `ws://127.0.0.1:10010`)。
因此同一套网页包可以:
- 部署在服务器上,由用户在登录页填写“实际要连的 WebSocket 地址”;
- 或由部署方在构建时通过环境变量写死一个公网/内网地址。
### 2. 登录页可填写并保存地址
- 在**登录页**增加 **“设置 WebSocket 服务地址”**(可展开/收起)。
- 用户可输入例如:
- `ws://127.0.0.1:10010`(本机服务)
- `ws://192.168.1.100:10010`(内网某台机器上的服务)
- `wss://your-domain.com/ws`(通过域名 + HTTPS 的 WSS 服务)
- 失焦或保存后写入 **localStorage**,下次进入或刷新后,连接会使用该地址。
这样**网页端打包部署后**,只要用户(或管理员)在登录页把地址改成“实际可访问的 WebSocket 服务地址”,就可以正常连接。
---
## 常见部署方式与是否可连接
| 部署方式 | 网页访问方式 | WebSocket 地址建议 | 能否连接 |
|----------|--------------|--------------------|----------|
| 网页和 Windows 服务都在**同一台电脑** | 本机浏览器打开(如 http://localhost:9081 或 file:// | `ws://127.0.0.1:10010`(默认即可) | 可以 |
| 网页在**服务器**,服务仍在**用户本机** | 用户在本机浏览器打开网站 | 在登录页设为 `ws://127.0.0.1:10010`(本机须已运行该服务) | 可以(仅限本机也跑服务时) |
| 网页在**服务器**,服务在**内网另一台机器** | 用户在内网任意电脑打开网站 | 在登录页设为 `ws://内网机器IP:10010`(或该机域名) | 可以(需网络可达、无策略拦截) |
| 网页在**公网**,服务在**公网服务器** | 任意设备打开网站 | 构建时设 `VUE_APP_SOCKET_API=wss://api.xxx.com/ws`,或在登录页填写该地址 | 可以(需后端提供 wss 与跨域策略) |
---
## 使用步骤(网页端部署后)
1. 打开登录页,点击 **“设置 WebSocket 服务地址”**。
2. 填入实际可访问的地址,例如:
- 本机:`ws://127.0.0.1:10010`
- 内网机器:`ws://192.168.1.100:10010`
- 公网:`wss://your-api.com/ws`
3. 失焦后会自动保存到当前浏览器;之后登录或刷新页面,会使用该地址连接。
4. 若更换环境(换电脑/换网络),在同一浏览器重新打开登录页,修改并保存新地址即可。
---
## 构建时写死地址(可选)
若部署环境固定(例如始终连同一台服务器),可在构建网页时注入默认地址,减少用户手动填写:
- 开发/测试:在 `config/dev.env.js` 中设置 `VUE_APP_SOCKET_API`
- 生产:在 `config/prod.env.js` 或 CI 中设置 `VUE_APP_SOCKET_API`(如 `wss://api.xxx.com/ws`)。
未在登录页保存过地址时,会使用该默认值;保存过后以登录页配置为准。
---
## 总结
- **默认 `ws://127.0.0.1:10010` 只适合“浏览器所在机器 = 运行 WebSocket 服务的机器”的情况。**
- **网页端打包部署后**:通过**登录页可配置 WebSocket 地址**并写入 localStorage,连接时**优先使用该配置**,因此只要用户填写的地址在浏览器侧可达(本机/内网/公网),就可以正常连接。
-154
View File
@@ -1,154 +0,0 @@
# 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. **提交任务**:若要在网页端完整使用「提交刻录/打印任务」,需后端提供文件上传接口,前端改为先上传再提交任务参数;当前实现仍为提交路径,仅桌面端可被本机服务访问。
按当前实现,网页端可正常完成:登录、看板查看、设备状态与指令、作业列表与重试/取消、打开/保存作业(选文件与下载)、系统管理、系统配置、日志查看等;仅上述「网页端无法实现」项在网页端为禁用或提示。
Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 KiB

After

Width:  |  Height:  |  Size: 478 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 462 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 513 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 425 KiB