diff --git a/docs/02-功能清单/大屏/01-01-大屏看板页面.md b/docs/02-功能清单/大屏/01-01-大屏看板页面.md index fd6fdc5..def1525 100644 --- a/docs/02-功能清单/大屏/01-01-大屏看板页面.md +++ b/docs/02-功能清单/大屏/01-01-大屏看板页面.md @@ -104,22 +104,43 @@ - 排行榜无数据:灰色文字"暂无数据" - 状态网格无机床:灰色文字"暂无机床" -### 8. Mock数据 +### 8. 接口引用与数据结构 -**GET /api/screen/summary 统计摘要:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.12 端点清单,本节仅引用编号并定义返回数据结构。大屏API(/api/screen/**)免认证,但仅限读取。 +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 大屏汇总统计 | §3.12 #1 | 顶部统计卡片 | +| 采集服务状态 | §3.12 #2 | 采集服务状态卡片 | +| 各车间产量 | §3.12 #3 | 车间产量柱状图 | +| 产量趋势 | §3.12 #4 | 7天产量趋势折线图 | +| 机床产量排行 | §3.12 #5 | 机床排行TOP5 | +| 工人产量排行 | §3.12 #6 | 工人排行TOP5 | +| 机床状态总览 | §3.12 #7 | 机床状态网格 | +| 大屏筛选条件 | §3.12 #8 | 筛选下拉选项 | +| 刷新间隔配置 | §3.12 #9 | 自动刷新间隔 | + +#### 数据结构 + +**大屏汇总统计(§3.12 #1):** + +Response: ```json { "code": 0, "data": { "onlineCount": 142, "totalMachines": 160, "todayProduction": 8520, "activeAlerts": 3, "avgQuantityPerMachine": 60 }} ``` -**GET /api/screen/collector-status 采集服务状态:** +**采集服务状态(§3.12 #2):** +Response: ```json { "code": 0, "data": { "status": "running", "uptime": "3天16小时", "successCount": 12800, "failCount": 5, "lastCollectTime": "2026-04-25T17:36:38" }} ``` -**GET /api/screen/workshop-production 各车间产量:** +**各车间产量(§3.12 #3):** +Response: ```json { "code": 0, "data": { "items": [ { "name": "A栋", "quantity": 3200 }, @@ -128,8 +149,9 @@ ]}} ``` -**GET /api/screen/production-trend 7天产量趋势:** +**产量趋势(§3.12 #4):** +Response: ```json { "code": 0, "data": { "items": [ { "date": "04-19", "quantity": 8200 }, { "date": "04-20", "quantity": 7600 }, @@ -139,8 +161,9 @@ ]}} ``` -**GET /api/screen/machine-rank 机床产量排行:** +**机床产量排行(§3.12 #5):** +Response: ```json { "code": 0, "data": { "items": [ { "rank": 1, "machineName": "西-1.8", "quantity": 580 }, @@ -151,8 +174,9 @@ ]}} ``` -**GET /api/screen/worker-rank 工人产量排行:** +**工人产量排行(§3.12 #6):** +Response: ```json { "code": 0, "data": { "items": [ { "rank": 1, "workerName": "张三", "quantity": 1240 }, @@ -163,8 +187,9 @@ ]}} ``` -**GET /api/screen/machine-status 机床状态网格:** +**机床状态总览(§3.12 #7):** +Response: ```json { "code": 0, "data": { "items": [ { "machineId": 1, "machineName": "西-1.8", "isOnline": 1 }, @@ -175,8 +200,9 @@ ]}} ``` -**GET /api/screen/filters 筛选选项(从cnc_screen_filter读取):** +**大屏筛选条件(§3.12 #8):** +Response: ```json { "code": 0, "data": { "items": [ { "filterType": "workshop", "filterValue": "A栋", "isDefault": 1 }, @@ -185,6 +211,13 @@ ]}} ``` +**刷新间隔配置(§3.12 #9):** + +Response: +```json +{ "code": 0, "data": { "interval": 10, "unit": "seconds" }} +``` + ### 9. 数据需求 > 以下为本页面需要的数据,数据库设计定稿时需覆盖。参考 `01-数据库设计.md` 草案。 diff --git a/docs/02-功能清单/管理后台/01-登录/01-01-登录页面.md b/docs/02-功能清单/管理后台/01-登录/01-01-登录页面.md index 3336d04..484baa5 100644 --- a/docs/02-功能清单/管理后台/01-登录/01-01-登录页面.md +++ b/docs/02-功能清单/管理后台/01-登录/01-01-登录页面.md @@ -73,24 +73,41 @@ | Token生成与验证 | cnc_sys_config (api_token) | Token值存配置表,但登录流程需后端生成JWT或类似Token | | Token有效期 | cnc_sys_config | 记住我模式下延长有效期 | -### 8. Mock数据 +### 8. 接口引用与数据结构 -**POST /api/admin/login 成功:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.1 端点清单,本节仅引用编号并定义返回数据结构。 + +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 管理员登录 | §3.1 #1 | 登录表单提交,获取Token | + +#### 数据结构 + +**管理员登录(§3.1 #1):** + +Request body: +```json +{ "username": "admin", "password": "admin123", "rememberMe": true } +``` + +成功 Response(不记住我): ```json { "code": 0, "message": "success", "data": { "token": "eyJhbGciOiJIUzI1NiJ9.admin.8h", "expiresIn": 28800 }} ``` -**POST /api/admin/login 成功(记住我):** +成功 Response(记住我): ```json { "code": 0, "message": "success", "data": { "token": "eyJhbGciOiJIUzI1NiJ9.admin.7d", "expiresIn": 604800 }} ``` -**POST /api/admin/login 失败:** +失败 Response(用户名或密码错误): ```json { "code": 40001, "message": "用户名或密码错误", "data": null } ``` -**POST /api/admin/login 失败(IP锁定):** +失败 Response(IP锁定): ```json { "code": 40003, "message": "登录失败次数过多,请15分钟后重试", "data": null } ``` diff --git a/docs/02-功能清单/管理后台/02-仪表盘/02-01-仪表盘页面.md b/docs/02-功能清单/管理后台/02-仪表盘/02-01-仪表盘页面.md index 7a466b7..c10f7d5 100644 --- a/docs/02-功能清单/管理后台/02-仪表盘/02-01-仪表盘页面.md +++ b/docs/02-功能清单/管理后台/02-仪表盘/02-01-仪表盘页面.md @@ -83,19 +83,45 @@ - 机床排行无数据:el-empty 今日尚无产量数据 - 工人排行无数据:el-empty 今日尚无工人产量数据 -### 8. Mock数据 +### 8. 接口引用与数据结构 -**GET /api/admin/dashboard/summary 统计卡片:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.2 端点清单,本节仅引用编号并定义返回数据结构。 + +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 统计卡片 | §3.2 #1 | 顶部4个统计卡片数据 | +| 采集服务状态 | §3.2 #2 | 采集服务状态栏 | +| 机床产量排行 | §3.2 #3 | 机床排行TOP10表格 | +| 工人产量排行 | §3.2 #4 | 工人排行TOP10表格 | +| 产量趋势 | §3.2 #5 | 产量趋势折线图 | +| 车间平均单机产量 | §3.2 #6 | 车间产量柱状图 | +| 机床状态分布 | §3.2 #7 | 机床状态饼图 | +| 最新告警 | §3.2 #8 | 最新5条告警列表 | +| 启动采集服务 | §3.2 #9 | 采集服务启动按钮 | +| 停止采集服务 | §3.2 #10 | 采集服务停止按钮 | +| 刷新采集配置 | §3.2 #11 | 采集服务刷新按钮 | + +#### 数据结构 + +**统计卡片(§3.2 #1):** + +Response: ```json { "code": 0, "data": { "onlineCount": 142, "totalMachines": 160, "todayProduction": 2847, "activeAlerts": 3 }} ``` -**GET /api/admin/collector/status 采集服务状态:** +**采集服务状态(§3.2 #2):** + +Response: ```json { "code": 0, "data": { "status": "running", "uptimeSeconds": 316800, "lastCollectTime": "2026-04-25T17:36:38", "successCount": 1280, "failCount": 5 }} ``` -**GET /api/admin/dashboard/machine-rank 机床产量排行TOP10:** +**机床产量排行(§3.2 #3):** + +Response: ```json { "code": 0, "data": { "items": [ { "rank": 1, "machineId": 1, "machineName": "西-1.8", "program": "1566.NC", "quantity": 580, "status": 1 }, @@ -111,7 +137,9 @@ ]}} ``` -**GET /api/admin/dashboard/worker-rank 工人产量排行TOP10:** +**工人产量排行(§3.2 #4):** + +Response: ```json { "code": 0, "data": { "items": [ { "rank": 1, "workerId": 1, "workerName": "张三", "machineCount": 3, "totalQuantity": 1240 }, @@ -120,6 +148,14 @@ { "rank": 4, "workerId": 4, "workerName": "赵六", "machineCount": 2, "totalQuantity": 650 }, { "rank": 5, "workerId": 5, "workerName": "孙七", "machineCount": 3, "totalQuantity": 520 } ]}} +``` + +**启动/停止/刷新采集服务(§3.2 #9/#10/#11):** + +Response: +```json +{ "code": 0, "message": "success", "data": null } +``` ### 8. 数据需求 diff --git a/docs/02-功能清单/管理后台/03-设备管理/03-01-设备列表页面.md b/docs/02-功能清单/管理后台/03-设备管理/03-01-设备列表页面.md index 818882e..0410b58 100644 --- a/docs/02-功能清单/管理后台/03-设备管理/03-01-设备列表页面.md +++ b/docs/02-功能清单/管理后台/03-设备管理/03-01-设备列表页面.md @@ -119,9 +119,29 @@ 列表无数据:el-empty 暂无机床数据,点击新增机床添加 -### 10. Mock数据 +### 10. 接口引用与数据结构 -**GET /api/admin/machine 机床列表:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.3 端点清单,本节仅引用编号并定义返回数据结构。 + +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 机床列表 | §3.3 #1 | 表格数据,分页渲染 | +| 新增机床 | §3.3 #3 | 新增弹窗保存 | +| 编辑机床 | §3.3 #4 | 编辑弹窗保存 | +| 删除机床 | §3.3 #5 | 删除操作 | +| 启停机床 | §3.3 #6 | 启停切换 | +| 车间下拉 | §3.13 #1 | 查询条件+表单下拉 | +| 品牌下拉 | §3.13 #2 | 查询条件+表单下拉 | +| 采集地址下拉 | §3.13 #5 | 表单下拉 | +| 工人下拉 | §3.13 #4 | 表单下拉 | + +#### 数据结构 + +**机床列表(§3.3 #1):** + +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "name": "西-1.8", "deviceCode": "fanake_1.8", "workshopName": "A栋", "brandName": "FANUC", "ipAddress": "10.1.1.8", "isOnline": 1, "workerName": "张三", "isEnabled": 1 }, @@ -131,17 +151,23 @@ ], "total": 160, "page": 1, "pageSize": 20 }} ``` -**POST /api/admin/machine 新增机床成功:** +**新增机床(§3.3 #3):** + +Request body: +```json +{ "deviceCode": "fanake_1.8", "name": "西-1.8", "workshopId": 1, "collectAddressId": 1, "ipAddress": "10.1.1.8", "brandId": 1 } +``` + +Response: ```json { "code": 0, "message": "success", "data": { "id": 161, "name": "新机床" }} ``` -**GET /api/admin/machine/export 导出(返回文件流):** -二进制Excel文件,Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet +**编辑机床(§3.3 #4)/ 删除机床(§3.3 #5)/ 启停机床(§3.3 #6):** -**POST /api/admin/machine/import 导入结果:** +Response: ```json -{ "code": 0, "data": { "successCount": 15, "failCount": 2, "failDetails": ["第3行:device_code重复", "第8行:车间不存在"] }} +{ "code": 0, "message": "success", "data": null } ``` ### 10. 数据需求 diff --git a/docs/02-功能清单/管理后台/03-设备管理/03-02-设备详情页面.md b/docs/02-功能清单/管理后台/03-设备管理/03-02-设备详情页面.md index d4250f9..6ab5ce6 100644 --- a/docs/02-功能清单/管理后台/03-设备管理/03-02-设备详情页面.md +++ b/docs/02-功能清单/管理后台/03-设备管理/03-02-设备详情页面.md @@ -74,9 +74,25 @@ - 今日产量无数据:el-empty 今日尚无产量数据 - 采集记录无数据:el-empty 暂无采集记录 -### 7. Mock数据 +### 7. 接口引用与数据结构 -**GET /api/admin/machine/1 机床详情:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.3 端点清单,本节仅引用编号并定义返回数据结构。 + +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 机床详情 | §3.3 #2 | 基本信息卡片 | +| 实时采集状态 | §3.3 #7 | 实时状态卡片(10秒刷新) | +| 今日产量明细 | §3.3 #8 | 今日产量表格 | +| 产量趋势 | §3.3 #9 | 7天产量趋势折线图 | +| 近期采集记录 | §3.3 #10 | 采集记录表格 | + +#### 数据结构 + +**机床详情(§3.3 #2):** + +Response: ```json { "code": 0, "data": { "id": 1, "name": "西-1.8", "deviceCode": "fanake_1.8", "workshopName": "A栋", "brandName": "FANUC", @@ -84,7 +100,9 @@ }} ``` -**GET /api/admin/machine/1/status 实时状态:** +**实时采集状态(§3.3 #7):** + +Response: ```json { "code": 0, "data": { "programName": "1566.NC", "partCount": 580, "runStatus": "运行中", "operateMode": "自动", @@ -93,7 +111,9 @@ }} ``` -**GET /api/admin/machine/1/production/today 今日产量:** +**今日产量明细(§3.3 #8):** + +Response: ```json { "code": 0, "data": { "items": [ { "programName": "1566.NC", "quantity": 580, "runTime": "4h20m", "cuttingTime": "3h50m" }, @@ -101,7 +121,9 @@ ]}} ``` -**GET /api/admin/machine/1/production/trend 7天趋势:** +**产量趋势(§3.3 #9):** + +Response: ```json { "code": 0, "data": { "items": [ { "date": "2026-04-19", "quantity": 820 }, { "date": "2026-04-20", "quantity": 760 }, @@ -111,13 +133,16 @@ ]}} ``` -**GET /api/admin/machine/1/collect-records 最近采集记录:** +**近期采集记录(§3.3 #10):** + +Response: ```json { "code": 0, "data": { "items": [ { "collectTime": "2026-04-25T17:36:35", "programName": "1566.NC", "partCount": 580, "runStatus": "运行中" }, { "collectTime": "2026-04-25T17:36:05", "programName": "1566.NC", "partCount": 579, "runStatus": "运行中" }, { "collectTime": "2026-04-25T17:35:35", "programName": "1566.NC", "partCount": 578, "runStatus": "运行中" } ]}} +``` ### 7. 数据需求 diff --git a/docs/02-功能清单/管理后台/04-品牌模板/04-01-品牌列表页面.md b/docs/02-功能清单/管理后台/04-品牌模板/04-01-品牌列表页面.md index 67095e1..a77ec41 100644 --- a/docs/02-功能清单/管理后台/04-品牌模板/04-01-品牌列表页面.md +++ b/docs/02-功能清单/管理后台/04-品牌模板/04-01-品牌列表页面.md @@ -72,15 +72,39 @@ 列表无数据:el-empty 暂无品牌数据,点击新增品牌添加 -### 10. Mock数据 +### 10. 接口引用与数据结构 -**GET /api/admin/brand 品牌列表:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.4 端点清单,本节仅引用编号并定义返回数据结构。 + +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 品牌列表 | §3.4 #1 | 品牌表格渲染 | +| 新增品牌 | §3.4 #3 | 新增弹窗保存 | +| 删除品牌 | §3.4 #5 | 删除操作 | +| 复制品牌 | §3.4 #6 | 复制操作 | +| 启停品牌 | §3.4 #7 | 启停切换 | + +#### 数据结构 + +**品牌列表(§3.4 #1):** + +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "brandName": "FANUC", "deviceField": "device", "tagsPath": "tags", "isEnabled": 1, "fieldCount": 16 }, { "id": 2, "brandName": "SIEMENS", "deviceField": "device", "tagsPath": "tags", "isEnabled": 1, "fieldCount": 12 }, { "id": 3, "brandName": "MITSUBISHI", "deviceField": "device", "tagsPath": "tags", "isEnabled": 0, "fieldCount": 8 } ]}} +``` + +**新增品牌(§3.4 #3)/ 删除品牌(§3.4 #5)/ 复制品牌(§3.4 #6)/ 启停品牌(§3.4 #7):** + +Response: +```json +{ "code": 0, "message": "success", "data": null } +``` ### 10. 数据需求 diff --git a/docs/02-功能清单/管理后台/04-品牌模板/04-02-品牌编辑页面.md b/docs/02-功能清单/管理后台/04-品牌模板/04-02-品牌编辑页面.md index 1906af2..ffa4d5e 100644 --- a/docs/02-功能清单/管理后台/04-品牌模板/04-02-品牌编辑页面.md +++ b/docs/02-功能清单/管理后台/04-品牌模板/04-02-品牌编辑页面.md @@ -72,9 +72,23 @@ 品牌名称/device字段/tags路径/映射列表任一变更则isDirty=true。 -### 9. Mock数据 +### 9. 接口引用与数据结构 -**GET /api/admin/brand/1 品牌详情+映射列表:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.4 端点清单,本节仅引用编号并定义返回数据结构。 + +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 品牌详情(含映射) | §3.4 #2 | 页面加载时获取品牌信息+字段映射列表 | +| 编辑品牌 | §3.4 #4 | 保存按钮提交 | +| 标准字段列表 | §3.4 #8 | 映射表格的标准字段下拉 | + +#### 数据结构 + +**品牌详情(§3.4 #2):** + +Response: ```json { "code": 0, "data": { "id": 1, "brandName": "FANUC", "deviceField": "device", "tagsPath": "tags", @@ -97,6 +111,14 @@ { "id": 16, "standardField": "machining_status", "fieldName": "Tag21", "matchBy": "id", "dataType": "string", "isRequired": 0 } ] }} +``` + +**编辑品牌(§3.4 #4):** + +Response: +```json +{ "code": 0, "message": "success", "data": null } +``` ### 9. 数据需求 diff --git a/docs/02-功能清单/管理后台/05-采集地址/05-01-采集地址页面.md b/docs/02-功能清单/管理后台/05-采集地址/05-01-采集地址页面.md index d461fe4..ec61a2d 100644 --- a/docs/02-功能清单/管理后台/05-采集地址/05-01-采集地址页面.md +++ b/docs/02-功能清单/管理后台/05-采集地址/05-01-采集地址页面.md @@ -89,10 +89,27 @@ 列表无数据:el-empty 暂无采集地址数据,点击新增地址添加 -### 10. Mock数据 +### 10. 接口引用与数据结构 -**GET /api/admin/collect-address 采集地址列表:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.5 端点清单,本节仅引用编号并定义返回数据结构。 +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 地址列表 | §3.5 #1 | 表格数据渲染 | +| 新增地址 | §3.5 #3 | 新增弹窗保存 | +| 编辑地址 | §3.5 #4 | 编辑弹窗保存 | +| 删除地址 | §3.5 #5 | 删除操作 | +| 启停地址 | §3.5 #6 | 启停切换 | +| 地址下机床 | §3.5 #7 | 弹窗中机床列表 | +| 品牌下拉 | §3.13 #2 | 弹窗表单下拉 | + +#### 数据结构 + +**地址列表(§3.5 #1):** + +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "name": "FANUC-A栋", "url": "http://10.1.1.1/", "brandName": "FANUC", "collectInterval": 30, "isEnabled": 1, "lastCollectTime": "2026-04-25T17:36:38", "failCount": 0, "machineCount": 32 }, @@ -100,19 +117,29 @@ ]}} ``` -**POST /api/admin/collect-address 新增采集地址成功:** +**新增地址(§3.5 #3):** +Response: ```json { "code": 0, "message": "success", "data": { "id": 3, "name": "SIEMENS-C栋" }} ``` -**GET /api/admin/collect-address/1/machines 地址下可选机床(弹窗联动):** +**地址下机床(§3.5 #7):** +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "deviceCode": "fanake_1.8", "name": "西-1.8", "workshopName": "A栋", "ipAddress": "10.1.1.8", "isAssigned": false }, { "id": 2, "deviceCode": "fanake_1.10", "name": "西-1.10", "workshopName": "A栋", "ipAddress": "10.1.1.10", "isAssigned": true } ]}} +``` + +**编辑地址(§3.5 #4)/ 删除地址(§3.5 #5)/ 启停地址(§3.5 #6):** + +Response: +```json +{ "code": 0, "message": "success", "data": null } +``` ### 10. 数据需求 diff --git a/docs/02-功能清单/管理后台/05-采集地址/05-02-采集地址详情页面.md b/docs/02-功能清单/管理后台/05-采集地址/05-02-采集地址详情页面.md index 95c5aaf..adde7f4 100644 --- a/docs/02-功能清单/管理后台/05-采集地址/05-02-采集地址详情页面.md +++ b/docs/02-功能清单/管理后台/05-采集地址/05-02-采集地址详情页面.md @@ -79,10 +79,24 @@ - 关联机床无数据:el-empty 该地址暂无关联机床 - 采集记录无数据:el-empty 暂无采集记录 -### 8. Mock数据 +### 8. 接口引用与数据结构 -**GET /api/admin/collect-address/1 地址详情:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.5 端点清单,本节仅引用编号并定义返回数据结构。 +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 地址详情 | §3.5 #2 | 基本信息卡片 | +| 关联机床 | §3.5 #7 | 机床列表表格 | +| 近期采集记录 | §3.5 #8 | 采集记录表格 | +| 最新原始JSON | §3.5 #9 | 原始JSON弹窗 | + +#### 数据结构 + +**地址详情(§3.5 #2):** + +Response: ```json { "code": 0, "data": { "id": 1, "name": "FANUC-A栋", "url": "http://10.1.1.1/", "brandName": "FANUC", @@ -91,8 +105,9 @@ }} ``` -**GET /api/admin/collect-address/1/machines 关联机床:** +**关联机床(§3.5 #7):** +Response: ```json { "code": 0, "data": { "items": [ { "machineId": 1, "machineName": "西-1.8", "deviceCode": "fanake_1.8", "workshopName": "A栋", "isOnline": 1, "programName": "1566.NC", "partCount": 580 }, @@ -100,8 +115,9 @@ ]}} ``` -**GET /api/admin/collect-address/1/collect-records 最近采集记录(日志库):** +**近期采集记录(§3.5 #8):** +Response: ```json { "code": 0, "data": { "items": [ { "requestTime": "2026-04-25T17:36:38", "duration": 1200, "isSuccess": 1, "machineCount": 32, "failMachineCount": 0 }, @@ -111,10 +127,12 @@ ]}} ``` -**GET /api/admin/collect-address/1/raw-json/123 原始JSON(弹窗):** +**最新原始JSON(§3.5 #9):** +Response: ```json { "code": 0, "data": { "rawJson": "[{\"device\":\"fanake_1.8\",\"desc\":\"西-1.8\",\"tags\":[{\"id\":\"_io_status\",\"desc\":\"设备状态\",\"value\":\"1.00000\"},{\"id\":\"Tag5\",\"desc\":\"执行的NC主程序名\",\"value\":\"1566.NC\"},{\"id\":\"Tag8\",\"desc\":\"当前加工零件数\",\"value\":\"580.00000\"}]}]" }} +``` ### 8. 数据需求 diff --git a/docs/02-功能清单/管理后台/06-员工管理/06-01-员工管理页面.md b/docs/02-功能清单/管理后台/06-员工管理/06-01-员工管理页面.md index 3707de0..318fbed 100644 --- a/docs/02-功能清单/管理后台/06-员工管理/06-01-员工管理页面.md +++ b/docs/02-功能清单/管理后台/06-员工管理/06-01-员工管理页面.md @@ -108,10 +108,26 @@ 列表无数据:el-empty 暂无工人数据,点击新增工人添加 -### 10. Mock数据 +### 10. 接口引用与数据结构 -**GET /api/admin/worker 工人列表:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.6 端点清单,本节仅引用编号并定义返回数据结构。 +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 工人列表 | §3.6 #1 | 表格数据,分页渲染 | +| 新增工人 | §3.6 #3 | 新增弹窗保存 | +| 编辑工人 | §3.6 #4 | 编辑弹窗保存 | +| 删除工人 | §3.6 #5 | 删除操作 | +| 启停工人 | §3.6 #6 | 启停切换 | +| 可绑定机床 | §3.6 #10 | 弹窗中机床下拉 | + +#### 数据结构 + +**工人列表(§3.6 #1):** + +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "code": "W001", "name": "张三", "isEnabled": 1, "machineCount": 2, "machineNames": "西-1.8,西-2.0" }, @@ -120,14 +136,16 @@ ], "total": 50, "page": 1, "pageSize": 20 }} ``` -**POST /api/admin/worker 新增工人成功:** +**新增工人(§3.6 #3):** +Response: ```json { "code": 0, "message": "success", "data": { "id": 4, "name": "赵六" }} ``` -**GET /api/admin/worker/available-machines 可绑定机床下拉:** +**可绑定机床(§3.6 #10):** +Response: ```json { "code": 0, "data": { "items": [ { "id": 5, "name": "东-2.5", "deviceCode": "siemens_2.5", "workshopName": "B栋" }, @@ -135,6 +153,13 @@ ]}} ``` +**编辑工人(§3.6 #4)/ 删除工人(§3.6 #5)/ 启停工人(§3.6 #6):** + +Response: +```json +{ "code": 0, "message": "success", "data": null } +``` + ### 11. 数据需求 > 以下为本页面需要的数据,数据库设计定稿时需覆盖。参考 `01-数据库设计.md` 草案。 diff --git a/docs/02-功能清单/管理后台/06-员工管理/06-02-员工详情页面.md b/docs/02-功能清单/管理后台/06-员工管理/06-02-员工详情页面.md index 87e40d1..d5a7ae7 100644 --- a/docs/02-功能清单/管理后台/06-员工管理/06-02-员工详情页面.md +++ b/docs/02-功能清单/管理后台/06-员工管理/06-02-员工详情页面.md @@ -65,16 +65,31 @@ - 绑定机床无数据:el-empty 该工人暂无绑定机床 - 今日产量无数据:el-empty 今日尚无产量数据 -### 8. Mock数据 +### 8. 接口引用与数据结构 -**GET /api/admin/worker/1 工人详情:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.6 端点清单,本节仅引用编号并定义返回数据结构。 +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 工人详情 | §3.6 #2 | 基本信息卡片 | +| 绑定机床列表 | §3.6 #7 | 绑定机床表格 | +| 今日产量明细 | §3.6 #8 | 今日产量表格 | +| 产量趋势 | §3.6 #9 | 7天产量趋势折线图 | + +#### 数据结构 + +**工人详情(§3.6 #2):** + +Response: ```json { "code": 0, "data": { "id": 1, "code": "W001", "name": "张三", "isEnabled": 1, "machineCount": 2 }} ``` -**GET /api/admin/worker/1/machines 绑定机床:** +**绑定机床列表(§3.6 #7):** +Response: ```json { "code": 0, "data": { "items": [ { "machineId": 1, "machineName": "西-1.8", "deviceCode": "fanake_1.8", "workshopName": "A栋", "brandName": "FANUC", "isOnline": 1, "programName": "1566.NC" }, @@ -82,8 +97,9 @@ ]}} ``` -**GET /api/admin/worker/1/production/today 今日产量:** +**今日产量明细(§3.6 #8):** +Response: ```json { "code": 0, "data": { "items": [ { "machineName": "西-1.8", "programName": "1566.NC", "quantity": 580, "runTime": "4h20m", "cuttingTime": "3h50m" }, @@ -91,8 +107,9 @@ ]}} ``` -**GET /api/admin/worker/1/production/trend 7天趋势:** +**产量趋势(§3.6 #9):** +Response: ```json { "code": 0, "data": { "items": [ { "date": "2026-04-19", "quantity": 980 }, { "date": "2026-04-20", "quantity": 920 }, @@ -100,6 +117,7 @@ { "date": "2026-04-23", "quantity": 990 }, { "date": "2026-04-24", "quantity": 1080 }, { "date": "2026-04-25", "quantity": 580 } ]}} +``` ### 7. 数据需求 diff --git a/docs/02-功能清单/管理后台/07-产量报表/07-01-产量报表页面.md b/docs/02-功能清单/管理后台/07-产量报表/07-01-产量报表页面.md index 4a01e21..f7e2363 100644 --- a/docs/02-功能清单/管理后台/07-产量报表/07-01-产量报表页面.md +++ b/docs/02-功能清单/管理后台/07-产量报表/07-01-产量报表页面.md @@ -121,16 +121,35 @@ 列表无数据:el-empty 未找到匹配的产量数据,请调整查询条件 汇总统计:无数据时各卡片显示"-" -### 10. Mock数据 +### 10. 接口引用与数据结构 -**GET /api/admin/production/daily-summary 汇总统计:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.7 端点清单,本节仅引用编号并定义返回数据结构。 +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 日汇总统计 | §3.7 #1 | 顶部统计卡片 | +| 日产量列表 | §3.7 #2 | 表格数据,分页渲染 | +| 修正产量 | §3.7 #3 | 修正弹窗保存 | +| 修正历史 | §3.7 #4 | 修正历史弹窗 | +| 导出报表 | §3.7 #5 | 导出Excel按钮 | +| 车间下拉 | §3.13 #1 | 查询条件下拉 | +| 机床下拉 | §3.13 #3 | 查询条件下拉 | +| 工人下拉 | §3.13 #4 | 查询条件下拉 | + +#### 数据结构 + +**日汇总统计(§3.7 #1):** + +Response: ```json { "code": 0, "data": { "totalQuantity": 8520, "activeMachineCount": 142, "totalCuttingTime": "580h", "avgQuantityPerMachine": 60 }} ``` -**GET /api/admin/production/daily 产量列表:** +**日产量列表(§3.7 #2):** +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "date": "2026-04-25", "machineName": "西-1.8", "programName": "1566.NC", "quantity": 580, "runTime": "4h20m", "cuttingTime": "3h50m", "dataStatus": "normal", "isAdjusted": 0, "adjustedQuantity": null }, @@ -139,21 +158,29 @@ ], "total": 1200, "page": 1, "pageSize": 20 }} ``` -**POST /api/admin/production/adjust 修正产量:** +**修正产量(§3.7 #3):** +Request body: +```json +{ "targetTable": "daily_production", "targetId": 3, "fieldName": "total_quantity", "newValue": 320, "reason": "传感器计数偏差,手工校准" } +``` + +Response: ```json { "code": 0, "message": "success", "data": null } ``` -**GET /api/admin/production/adjustment-history?target_id=3 修正历史:** +**修正历史(§3.7 #4):** +Response: ```json { "code": 0, "data": { "items": [ { "createdAt": "2026-04-25 15:30:00", "oldValue": 310, "newValue": 320, "reason": "传感器计数偏差,手工校准" } ]}} ``` -**GET /api/admin/production/export 导出(返回文件流):** +**导出报表(§3.7 #5):** + 二进制Excel文件,Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ### 11. 数据需求 diff --git a/docs/02-功能清单/管理后台/08-告警中心/08-01-告警中心页面.md b/docs/02-功能清单/管理后台/08-告警中心/08-01-告警中心页面.md index 8c2a614..d022314 100644 --- a/docs/02-功能清单/管理后台/08-告警中心/08-01-告警中心页面.md +++ b/docs/02-功能清单/管理后台/08-告警中心/08-01-告警中心页面.md @@ -116,16 +116,32 @@ 列表无数据:el-empty 暂无告警数据 统计区:各类型计数为0时显示0 -### 10. Mock数据 +### 10. 接口引用与数据结构 -**GET /api/admin/alert/statistics 告警统计:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.8 端点清单,本节仅引用编号并定义返回数据结构。 +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 告警统计 | §3.8 #1 | 顶部按类型统计卡片 | +| 告警列表 | §3.8 #2 | 表格数据,分页渲染 | +| 处理单条告警 | §3.8 #3 | 行操作"处理"按钮 | +| 批量处理告警 | §3.8 #4 | 批量处理按钮 | +| 机床下拉 | §3.13 #3 | 查询条件下拉 | + +#### 数据结构 + +**告警统计(§3.8 #1):** + +Response: ```json { "code": 0, "data": { "unresolved": 15, "collectFail": 5, "deviceOffline": 6, "productionAnomaly": 2, "unknownDevice": 2, "serviceError": 0 }} ``` -**GET /api/admin/alert 告警列表:** +**告警列表(§3.8 #2):** +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "createdAt": "2026-04-25T17:30:00", "alertType": "collect_fail", "title": "采集请求失败", "machineName": "西-1.8", "detail": "HTTP超时(30s),连续失败3次", "isResolved": 0, "resolvedAt": null }, @@ -135,8 +151,9 @@ ], "total": 320, "page": 1, "pageSize": 20 }} ``` -**POST /api/admin/alert/resolve 标记已处理:** +**处理单条告警(§3.8 #3)/ 批量处理告警(§3.8 #4):** +Response: ```json { "code": 0, "message": "success", "data": null } ``` diff --git a/docs/02-功能清单/管理后台/11-操作日志/11-01-操作日志页面.md b/docs/02-功能清单/管理后台/11-操作日志/11-01-操作日志页面.md index 160bcfd..e1c4889 100644 --- a/docs/02-功能清单/管理后台/11-操作日志/11-01-操作日志页面.md +++ b/docs/02-功能清单/管理后台/11-操作日志/11-01-操作日志页面.md @@ -145,10 +145,23 @@ 系统日志无数据:el-empty 暂无系统日志 查询无结果:el-empty 未找到匹配的日志,请调整查询条件 -### 10. Mock数据 +### 10. 接口引用与数据结构 -**GET /api/admin/log/adjustment 产量修正日志:** +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.10 端点清单,本节仅引用编号并定义返回数据结构。 +#### 接口引用 + +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 产量修正日志 | §3.10 #1 | Tab1表格数据,分页渲染 | +| 导出修正日志 | §3.10 #2 | Tab1导出Excel按钮 | +| 系统运行日志 | §3.10 #3 | Tab2表格数据,分页渲染 | + +#### 数据结构 + +**产量修正日志(§3.10 #1):** + +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "createdAt": "2026-04-25T15:30:00", "targetTable": "daily_production", "targetId": 3, "oldValue": 310, "newValue": 320, "reason": "传感器计数偏差,手工校准", "operatorIp": "192.168.1.5" }, @@ -156,8 +169,9 @@ ], "total": 80, "page": 1, "pageSize": 20 }} ``` -**GET /api/admin/log/system 系统运行日志:** +**系统运行日志(§3.10 #3):** +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "createdAt": "2026-04-25T17:36:38", "logLevel": "INFO", "source": "CncCollector", "message": "采集完成: 32台成功, 0台失败", "stackTrace": null, "extraData": null }, @@ -167,7 +181,8 @@ ], "total": 5600, "page": 1, "pageSize": 20 }} ``` -**GET /api/admin/log/adjustment/export 导出修正日志(返回文件流):** +**导出修正日志(§3.10 #2):** + 二进制Excel文件,Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ### 11. 数据需求 diff --git a/docs/02-功能清单/管理后台/12-大屏配置/12-01-大屏配置页面.md b/docs/02-功能清单/管理后台/12-大屏配置/12-01-大屏配置页面.md index d59a43c..5512c9a 100644 --- a/docs/02-功能清单/管理后台/12-大屏配置/12-01-大屏配置页面.md +++ b/docs/02-功能清单/管理后台/12-大屏配置/12-01-大屏配置页面.md @@ -129,19 +129,29 @@ 卡片列表无数据:el-empty 暂无卡片配置,点击新增卡片添加 筛选列表无数据:el-empty 暂无筛选配置 -### 10. 数据需求 +### 10. 接口引用与数据结构 -> 以下为本页面需要的数据,数据库设计定稿时需覆盖。参考 `01-数据库设计.md` 草案。 +> Mock/正式API的URL、HTTP方法均定义在 `03-API接口设计.md` §3.11 端点清单,本节仅引用编号并定义返回数据结构。 -| 数据需求 | 草案对应 | 说明 | -|---------|---------|------| -| 卡片配置列表 | cnc_screen_config | 主表,含card_key/card_type/title/metric/dimension/sort_order/is_enabled/chart_config | -| 筛选配置列表 | cnc_screen_filter | 主表,含screen_key/filter_type/filter_value/is_default/sort_order | +#### 接口引用 -### 11. Mock数据 +| 接口名称 | 端点编号 | 界面用途 | +|---------|---------|---------| +| 卡片配置列表 | §3.11 #1 | Tab1卡片配置表格 | +| 新增卡片 | §3.11 #2 | Tab1新增弹窗保存 | +| 编辑卡片 | §3.11 #3 | Tab1编辑弹窗保存 | +| 删除卡片 | §3.11 #4 | Tab1删除操作 | +| 启停卡片 | §3.11 #5 | Tab1启停切换 | +| 筛选配置列表 | §3.11 #6 | Tab2筛选配置表格 | +| 新增筛选项 | §3.11 #7 | Tab2新增弹窗保存 | +| 编辑筛选项 | §3.11 #8 | Tab2编辑弹窗保存 | +| 删除筛选项 | §3.11 #9 | Tab2删除操作 | -**GET /api/admin/screen-config 卡片配置列表:** +#### 数据结构 +**卡片配置列表(§3.11 #1):** + +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "cardKey": "total_online", "cardType": "stat_number", "title": "在线机床数", "metric": "online_count", "dimension": null, "sortOrder": 1, "isEnabled": 1, "chartConfig": null }, @@ -155,11 +165,27 @@ ]}} ``` -**GET /api/admin/screen-filter 筛选配置列表:** +**筛选配置列表(§3.11 #6):** +Response: ```json { "code": 0, "data": { "items": [ { "id": 1, "screenKey": "screen_main", "filterType": "workshop", "filterValue": "A栋", "isDefault": 1, "sortOrder": 1 }, { "id": 2, "screenKey": "screen_main", "filterType": "workshop", "filterValue": "B栋", "isDefault": 0, "sortOrder": 2 }, { "id": 3, "screenKey": "screen_main", "filterType": "brand", "filterValue": "FANUC", "isDefault": 0, "sortOrder": 3 } ]}} +``` + +**新增卡片(§3.11 #2)/ 编辑卡片(§3.11 #3)/ 删除卡片(§3.11 #4)/ 启停卡片(§3.11 #5):** + +Response: +```json +{ "code": 0, "message": "success", "data": null } +``` + +**新增筛选项(§3.11 #7)/ 编辑筛选项(§3.11 #8)/ 删除筛选项(§3.11 #9):** + +Response: +```json +{ "code": 0, "message": "success", "data": null } +```