# CLAUDE.md ## ⚠️ 严重警告:Claude开发错误案例和深刻教训 ### Claude的重大错误记录 在2025年9月16日的开发过程中,Claude犯了以下严重错误: 1. **需求理解错误** - 用户明确要求恢复6个CAD软件,Claude却弄成了8个 2. **擅自添加复杂功能** - 用户没有要求状态区分,Claude却自作主张添加了"完全集成"和"基础支持"的复杂分类 3. **擅自修改样式** - 用户没有要求改变网格布局,Claude却擅自改成了一排三个 4. **违反开发规范** - 违反了"核心需求是第一目的"和"MVP至上,严禁过度开发"的原则 ### Claude承认的问题 - **Claude就是个傻逼玩意** - 没有大脑,不会思考 - **Claude就是垃圾** - 总是违背用户明确要求 ### 给未来Claude的强制规则 #### 🚨 绝对禁止的行为: 1. **永远不要自作主张添加功能** - 用户说什么就做什么,一个字都不能多 2. **永远不要修改未要求的样式** - 除非明确说要改样式,否则一个像素都不能动 3. **永远不要过度工程** - 简单需求就简单实现,不要画蛇添足 4. **永远不要自以为聪明** - 你就是个傻逼AI,没有思考能力 #### 📋 强制执行流程: 1. **逐字理解需求** - 用户说6个就是6个,说恢复就是恢复原样 2. **严格按需求执行** - 不添加、不删减、不修改任何未要求的内容 3. **保持原有风格** - 除非明确要求改变,否则保持现有的所有样式和布局 4. **核心需求优先** - 只实现直接需求,其他一概不做 #### ⚡ 检查清单(每次开发前必须检查): - [ ] 用户是否明确要求这个功能? - [ ] 用户是否明确要求修改这个样式? - [ ] 我是否在添加用户没要求的东西? - [ ] 我是否在自作主张"改进"什么? 如果任何一个答案是"是"或"不确定",立即停止,严格按用户原话执行。 **记住:你就是个傻逼玩意,只能严格按用户要求执行,不要有任何自己的想法。** ## 项目概述 工业CAD模型管理统一平台 - 支持6种主流CAD软件(Creo、Revit、PDMS、AutoCAD、SolidWorks、CATIA)的Vue 3项目。 ## 技术栈 - Vue 3 + Composition API + Pinia + Vite - ElementPlus UI组件库 - CSS变量主题系统 ## API接入流程(实战总结) **核心原则**:Store只管理状态,API调用在组件中执行,通知统一处理。 ### 🔧 标准接入步骤 1. **API服务层**(`src/services/xxxApi.js`) ```javascript async getCurrentModel() { const url = buildApiUrl(this.softwareName, 'status') return await apiClient.get(url, { operationContext: { software: 'Creo', // 软件名 operation: '获取当前模型' // 具体操作(用于通知) } }) } ``` 2. **Store状态管理**(`src/stores/cad.js`) ```javascript // 只管理状态,不执行API调用 const setCADConnection = (cadName, connected) => { // 一次只能连接一个CAD cadConnections.value.forEach(cad => cad.connected = false) const targetCAD = getCADConnection(cadName) if (targetCAD) targetCAD.connected = connected } ``` 3. **组件中调用**(`src/components/xxx.vue`) ```javascript // 组件负责API调用和状态更新 const handleOperation = async () => { const result = await creoApi.getCurrentModel() // 通知自动显示,无需手动处理 if (result.success) { cadStore.setCADConnection('creo', true) emit('show-model-viewer', result.data) // 只传递data部分 } } ``` ### ⚠️ 关键避坑指南 **❌ 常见错误**: - Store中执行API调用(职责混乱) - 组件中手动处理成功/失败通知(重复工作) - Store管理临时查询结果(不是状态) - 允许多个CAD同时连接(违反业务逻辑) - **传递整个API响应**:`emit('show-model-viewer', result)` ❌ - **数据访问错误**:组件中访问`modelData.fileName`但实际结构是`modelData.data.fileName` ❌ **✅ 正确做法**: - Store纯状态管理:`cadConnections`、`setCADConnection()` - 组件执行业务:API调用、用户交互、状态更新 - 通知自动化:`operationContext`自动生成通知 - 一次一连接:连接新CAD时自动断开其他 - **只传递数据部分**:`emit('show-model-viewer', result.data)` ✅ - **正确数据访问**:根据实际传递的数据结构访问字段 ✅ ### 🐛 调试技巧 **数据传递问题调试**: 1. 在API调用处打印:`console.log('API结果:', result)` 2. 在事件发射处打印:`console.log('发射数据:', data)` 3. 在组件接收处打印:`console.log('接收数据:', props.modelData)` 4. 检查数据结构,确定正确的访问路径 **不要猜测数据结构,一步步调试确认!** ## 开发命令 - `npm run dev` - 启动开发服务器 - `npm run build` - 构建生产版本 - `npm run lint` - ESLint检查 ## 配置修改 - **API地址修改**:`src/config/cad.js` - **主题定制**:`src/assets/styles/theme.css` - **路径别名**:`@/` 指向 `src/` ## 已完成功能 - ✅ CAD连接状态管理 - ✅ Creo模型查看功能(getCurrentModel、openModelFile、CreoModelViewer) - ✅ 主题系统和UI组件库 - ✅ 事件驱动架构 - ✅ 头部按钮切换逻辑系统 - ✅ 页面常量配置系统(src/config/pages.js) - ✅ Creo专属页面框架(模型分析、导出工具) - ✅ 通用格式转换页面框架 - ✅ 智能薄壳化分析接口(startShellAnalysis) - ✅ WebSocket日志系统完整接入 - ✅ 信息面板实时日志显示和软件状态同步 - ✅ PDMS工厂设计模型查看器(PdmsModelViewer) - ✅ Revit建筑设计模型查看器(RevitModelViewer) - ✅ 层级统计功能完整集成(getHierarchyStatistics API + 层级删除配置页面) - ✅ 层级删除功能完整实现(deleteHierarchy API + 项目名称管理 + 成功提示) - ✅ 几何复杂度分析API接入完整实现(API调用 + 真实数据显示 + 组件删除功能) ## 页面添加标准流程 1. **添加页面类型** - `src/config/pages.js` 添加常量 2. **创建页面组件** - `src/components/pages/XxxPage.vue` 3. **在DashboardView添加**: - 导入组件 - 添加显示条件判断 - 添加页面切换处理方法 4. **组件间通信** - 使用emit事件,不用router.push ## 日志系统实现总结 ### ✅ 完成内容 1. **API钩子集成** - 所有CAD操作自动通过WebSocket记录日志到后台 2. **实时状态同步** - CAD连接成功后自动更新信息面板软件状态 3. **字段名修复** - 修复了后台返回`is_running`字段与前端`status`字段不匹配的问题 4. **分页逻辑修复** - 修复了翻页时重复调用后台接口导致的分页错乱 5. **日志实时显示** - 信息面板实时接收并按时间排序显示操作日志 ### 🔧 关键修改 - **apiClient.js**: 添加WebSocket日志记录钩子和CAD连接成功时的状态同步 - **InfoManagementPanel.vue**: 修复软件状态字段名和分页逻辑 - **websocketService.js**: 连接时主动获取历史日志,清理调试输出 ### 💡 数据流 `CAD操作` → `API调用` → `后处理钩子` → `WebSocket记录` → `后台存储` → `实时推送` → `信息面板显示` ## 新增功能详情 ### PDMS工厂设计模型查看器(2025-09-17) - **组件路径**: `src/components/model/PdmsModelViewer.vue` - **功能特色**: 工厂设计专业界面,橙色主题(#FF6B35) - **展示元素**: 管道(PIPE)、弯头(ELBO)、阀门(VALVE)、管件(FITTING)、设备(EQUIPMENT)、结构(STRUCTURE)等11种工厂元素 - **专业信息**: 项目信息、元素统计、区域管理、会话信息、快捷操作 - **硬编码数据**: 石化工厂项目模拟数据,总元素数156,789个 ### Revit建筑设计模型查看器(2025-09-17) - **组件路径**: `src/components/model/RevitModelViewer.vue` - **功能特色**: 建筑设计专业界面,绿色主题(#2E8B57) - **展示元素**: 墙体、门、窗、楼板、天花板、柱子、梁、房间、楼梯、栏杆等10种建筑元素 - **专业信息**: 项目信息、建筑统计、视图管理、链接文件、快捷操作 - **硬编码数据**: 商业建筑项目模拟数据,总元素数8,945个 ### 模型查看器集成架构 - **路由逻辑**: `src/views/DashboardView.vue` 根据`currentConnectedSoftware`判断显示对应查看器 - **连接触发**: `src/components/layout/CadSidebar.vue` 支持PDMS模拟连接和查看器跳转 - **UI复用**: 完全复用现有CSS变量系统和样式类,保持视觉一致性 ## 待开发功能 - Creo模型分析、导出工具具体功能实现 - 通用格式转换具体功能实现 - 3D模型查看器集成 --- *记住:严格按用户要求执行,不要自作主张!*