# 项目知识库 **生成时间:** 2026-04-25 **项目:** CNC机床数据采集系统 ## 概述 多品牌CNC机床统一化数据采集系统的产品设计文档库。技术栈:Vue3前端 + ASP.NET Web API 2后端 + Windows Service采集服务 + MariaDB数据库。本地IIS部署,局域网场景。 ## 项目结构 ``` . ├── docs/ # 全部设计文档 │ ├── 00-需求与设计文档.md # 核心需求、架构决策、技术选型 │ ├── 01-数据库设计.md # 双库设计(业务库+日志库),17张表DDL │ ├── 02-功能清单/ # 按模块拆分的功能清单 │ │ ├── 02-文件夹创建规范.md # ⚠️ 文档结构规范,新增模块必读 │ │ ├── 02-前端全局规范.md # 前端全局规范+CRUD必填项+模块进度+工程开发规范 │ │ ├── 03-界面变更执行规范.md # ⚠️ AI助手执行界面变更时必读 │ │ ├── 大屏/ # 大屏看板模块 │ │ └── 管理后台/ # 12个子模块(登录/仪表盘/设备/品牌/采集地址/员工/产量/告警/系统/车间/操作日志/大屏配置) │ └── ... ├── frontend/ # 前端工程(Vue3+Vite+TypeScript+Element Plus) │ ├── mock/ # Mock数据定义(按模块拆分) │ ├── src/ # 源码(路由/组件/样式/类型) │ └── vite.config.ts # Vite配置(mock插件+proxy) └── 发那科系统采集示例.txt # FANUC品牌采集JSON样例数据 ``` ## 查找指南 | 需求 | 位置 | 备注 | |------|------|------| | 了解项目背景/架构决策 | `docs/00-需求与设计文档.md` | 核心文档,所有已确认决策在此 | | 查看数据库表结构 | `docs/01-数据库设计.md` | 668行,含完整DDL+字段说明 | | 前端页面交互设计 | `docs/02-前端全局规范.md` | 全局组件规范+CRUD必填项+模块进度+工程开发规范 | | 前端工程开发规范 | `docs/02-前端全局规范.md` → 前端工程开发规范章节 | 技术栈/Mock方案/目录结构/CSS规范 | | 新增功能模块文档 | `docs/02-功能清单/02-文件夹创建规范.md` | 目录结构/命名/内容模板规范 | | AI助手执行界面变更 | `docs/02-功能清单/03-界面变更执行规范.md` | ⚠️ 必读:最小必读文件+变更清单+联动同步规则 | | 品牌采集数据格式 | `发那科系统采集示例.txt` | FANUC品牌JSON结构示例 | | 管理后台某模块设计 | `docs/02-功能清单/管理后台/{编号}-{模块名}/` | 每模块含索引+规范+页面文件 | | 大屏看板设计 | `docs/02-功能清单/大屏/` | 索引+规范+页面 | ## 文档规范 ### 文件命名规则(必须遵循) - 索引文件:`00-{名称}-索引.md` - 规范文件:`01-{名称}-规范.md` - 页面文件:`{模块号}-{页面号}-{页面名}.md`(如 `03-01-设备列表页面.md`) - 模块编号:两位数 01-99 ### 三种文件分工 | 文件类型 | 内容重点 | |---------|---------| | 索引文件 | 功能逻辑、交互关系、路由跳转、状态机 | | 规范文件 | 技术规范(组件、校验、布局、安全) | | 页面文件 | 技术实现(界面布局、字段定义、Mock数据) | ### 页面文件20项模板 结构定义(1-6) → 交互行为(7-12,14-15) → 技术实现(13,16-20) 详见 `docs/02-功能清单/02-文件夹创建规范.md` 第五节 ## 核心业务规则 - **采集模式**:HTTP拉取JSON,非直连机床;地址间并行、地址内串行 - **零件计数**:NC程序名切换时结账上一段,新程序从0开始;同程序名多次出现分段记录 - **双库分离**:业务库 `cnc_business` + 日志库 `cnc_log`;原始JSON存日志库,解析后存业务库 - **时间标准**:以服务器时间为准 - **品牌映射**:管理后台可视化配置,修改不回溯历史数据 ## 前端全局规范摘要 - 组件库:Element Plus - API响应格式:`{ code: 0, message: "success", data: ... }` - 分页默认:page-sizes=[20,50,100] - 写操作防重复:loading+disabled+requestLock+axios 500ms去重 - API超时:30秒 - 删除确认:`确定删除【{name}】?此操作不可恢复。` - Layout:顶部栏(系统名+管理员下拉) + 侧边栏(200px可折叠+10个菜单项) + 内容区 - 路由守卫:有Token访问/login重定向/dashboard,无Token访问管理后台重定向/login ## 待设计模块 - API接口设计(后置,界面全部确认后启动) - 采集服务核心逻辑设计(后置,界面全部确认后启动) - 前端管理后台设计(✅ 已完成,见 `02-前端全局规范.md` + `02-功能清单/管理后台/`) - 大屏看板设计(✅ 已完成,见 `02-功能清单/大屏/`) ## 强制要求(必须遵守) - **思考过程使用中文**:所有AI助手的推理、分析、思考过程必须使用中文输出 - **控制台输出中文**:所有控制台输出、日志、提示信息使用中文,不得出现乱码 - **所有文档使用中文**:项目内所有文档、注释、界面文案使用中文 - **PowerShell中文编码修复(每次会话必须执行)**:PowerShell 5.1默认OutputEncoding为GB2312,中文路径/文件名输出会乱码。在执行任何涉及中文路径的PowerShell命令前,必须先设置编码: ```powershell [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 [Console]::InputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8 ``` - **文件写入编码规范**: - 禁止使用PowerShell `Out-File -Encoding utf8` 写入文件(会产生UTF-8 with BOM + CRLF) - 使用Node.js `fs.writeFileSync(path, content, 'utf8')` 写入文件(无BOM、LF换行) - 或使用Write/Edit工具直接写入(无BOM、LF换行) - 如必须用PowerShell写入,需用 `[System.IO.File]::WriteAllText($path, $content, [System.Text.UTF8Encoding]::new($false))` 避免BOM - 已有BOM文件修复:`node -e "const fs=require('fs');let b=fs.readFileSync('文件路径');if(b[0]===0xEF&&b[1]===0xBB&&b[2]===0xBF)b=b.slice(3);let t=b.toString('utf8').replace(/\r\n/g,'\n');fs.writeFileSync('文件路径',t,'utf8')"` ## 注意事项 - 部分索引/规范文件内容为空(尚未填写)→ 已全部填写 - 数据库设计为草案状态(状态:草案),界面确认后定稿 - 前端界面设计全部完成(2026-04-26),13个模块16个页面均已设计 - 品牌预置:FANUC已预置,其他品牌手动添加