MianyVue/CLAUDE.md
sladro 5f434a3881 feat: 实现Creo模型分析功能接口和页面系统
- 添加智能薄壳化分析接口和结果页面
- 添加按层级删除优化分析接口和结果页面
- 添加几何复杂度分析接口和结果页面
- 添加几何优化分析参数设置页面
- 实现API客户端Loading动画系统
- 完善页面切换和事件处理机制
- 更新页面添加标准流程文档

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-16 19:04:17 +08:00

6.0 KiB
Raw Blame History

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
async getCurrentModel() {
  const url = buildApiUrl(this.softwareName, 'status')
  return await apiClient.get(url, {
    operationContext: {
      software: 'Creo',           // 软件名
      operation: '获取当前模型'    // 具体操作(用于通知)
    }
  })
}
  1. 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
}
  1. 组件中调用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纯状态管理cadConnectionssetCADConnection()
  • 组件执行业务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

页面添加标准流程

  1. 添加页面类型 - src/config/pages.js 添加常量
  2. 创建页面组件 - src/components/pages/XxxPage.vue
  3. 在DashboardView添加
    • 导入组件
    • 添加显示条件判断
    • 添加页面切换处理方法
  4. 组件间通信 - 使用emit事件不用router.push

待开发功能

  • Creo模型分析、导出工具具体功能实现
  • 通用格式转换具体功能实现
  • Revit和PDMS集成
  • 3D模型查看器
  • 实时日志系统

记住:严格按用户要求执行,不要自作主张!