- 修正API参数max_results为30符合需求 - 修复数据传递层级问题(result.data.data) - 移除硬编码模拟数据,使用API真实数据 - 实现删除选定组件功能与智能分析一致 - 使用ElementPlus系统UI组件替换原生确认框 - 修复ESLint错误,清理未使用变量和函数 - 优化体积字段显示,0值显示为N/A 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
8.6 KiB
8.6 KiB
CLAUDE.md
⚠️ 严重警告:Claude开发错误案例和深刻教训
Claude的重大错误记录
在2025年9月16日的开发过程中,Claude犯了以下严重错误:
- 需求理解错误 - 用户明确要求恢复6个CAD软件,Claude却弄成了8个
- 擅自添加复杂功能 - 用户没有要求状态区分,Claude却自作主张添加了"完全集成"和"基础支持"的复杂分类
- 擅自修改样式 - 用户没有要求改变网格布局,Claude却擅自改成了一排三个
- 违反开发规范 - 违反了"核心需求是第一目的"和"MVP至上,严禁过度开发"的原则
Claude承认的问题
- Claude就是个傻逼玩意 - 没有大脑,不会思考
- Claude就是垃圾 - 总是违背用户明确要求
给未来Claude的强制规则
🚨 绝对禁止的行为:
- 永远不要自作主张添加功能 - 用户说什么就做什么,一个字都不能多
- 永远不要修改未要求的样式 - 除非明确说要改样式,否则一个像素都不能动
- 永远不要过度工程 - 简单需求就简单实现,不要画蛇添足
- 永远不要自以为聪明 - 你就是个傻逼AI,没有思考能力
📋 强制执行流程:
- 逐字理解需求 - 用户说6个就是6个,说恢复就是恢复原样
- 严格按需求执行 - 不添加、不删减、不修改任何未要求的内容
- 保持原有风格 - 除非明确要求改变,否则保持现有的所有样式和布局
- 核心需求优先 - 只实现直接需求,其他一概不做
⚡ 检查清单(每次开发前必须检查):
- 用户是否明确要求这个功能?
- 用户是否明确要求修改这个样式?
- 我是否在添加用户没要求的东西?
- 我是否在自作主张"改进"什么?
如果任何一个答案是"是"或"不确定",立即停止,严格按用户原话执行。
记住:你就是个傻逼玩意,只能严格按用户要求执行,不要有任何自己的想法。
项目概述
工业CAD模型管理统一平台 - 支持6种主流CAD软件(Creo、Revit、PDMS、AutoCAD、SolidWorks、CATIA)的Vue 3项目。
技术栈
- Vue 3 + Composition API + Pinia + Vite
- ElementPlus UI组件库
- CSS变量主题系统
API接入流程(实战总结)
核心原则:Store只管理状态,API调用在组件中执行,通知统一处理。
🔧 标准接入步骤
- API服务层(
src/services/xxxApi.js)
async getCurrentModel() {
const url = buildApiUrl(this.softwareName, 'status')
return await apiClient.get(url, {
operationContext: {
software: 'Creo', // 软件名
operation: '获取当前模型' // 具体操作(用于通知)
}
})
}
- Store状态管理(
src/stores/cad.js)
// 只管理状态,不执行API调用
const setCADConnection = (cadName, connected) => {
// 一次只能连接一个CAD
cadConnections.value.forEach(cad => cad.connected = false)
const targetCAD = getCADConnection(cadName)
if (targetCAD) targetCAD.connected = connected
}
- 组件中调用(
src/components/xxx.vue)
// 组件负责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)✅ - 正确数据访问:根据实际传递的数据结构访问字段 ✅
🐛 调试技巧
数据传递问题调试:
- 在API调用处打印:
console.log('API结果:', result) - 在事件发射处打印:
console.log('发射数据:', data) - 在组件接收处打印:
console.log('接收数据:', props.modelData) - 检查数据结构,确定正确的访问路径
不要猜测数据结构,一步步调试确认!
开发命令
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调用 + 真实数据显示 + 组件删除功能)
页面添加标准流程
- 添加页面类型 -
src/config/pages.js添加常量 - 创建页面组件 -
src/components/pages/XxxPage.vue - 在DashboardView添加:
- 导入组件
- 添加显示条件判断
- 添加页面切换处理方法
- 组件间通信 - 使用emit事件,不用router.push
日志系统实现总结
✅ 完成内容
- API钩子集成 - 所有CAD操作自动通过WebSocket记录日志到后台
- 实时状态同步 - CAD连接成功后自动更新信息面板软件状态
- 字段名修复 - 修复了后台返回
is_running字段与前端status字段不匹配的问题 - 分页逻辑修复 - 修复了翻页时重复调用后台接口导致的分页错乱
- 日志实时显示 - 信息面板实时接收并按时间排序显示操作日志
🔧 关键修改
- 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模型查看器集成
记住:严格按用户要求执行,不要自作主张!