diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 5373ddbd..f6dbea91 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -82,7 +82,15 @@ "Bash(do echo \"=== $file.ts ===\")", "Bash(open /Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/.superdesign/design_iterations/food_qingshi_v1.html)", "Bash(open /Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/.superdesign/design_iterations/food_qingshi_v2.html)", - "Bash(open /Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/.superdesign/design_iterations/food_qingshi_v3.html)" + "Bash(open /Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/.superdesign/design_iterations/food_qingshi_v3.html)", + "Bash(npm create:*)", + "Bash(npx tailwindcss init:*)", + "Bash(./node_modules/.bin/tailwindcss:*)", + "Bash(npm run dev:*)", + "Bash(sed:*)", + "Bash(paste:*)", + "Bash(do)", + "Bash(do echo \"=== $order - Agent头像 ===\" ls -1 \"/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/web_frontend/exhibition-demo/public/data/订单班文档资料/$order/agent头像/\")" ], "deny": [], "ask": [], diff --git a/.serena/memories/intelligent_manufacturing_terminal_simulation_creation.md b/.serena/memories/intelligent_manufacturing_terminal_simulation_creation.md new file mode 100644 index 00000000..e9e5eb62 --- /dev/null +++ b/.serena/memories/intelligent_manufacturing_terminal_simulation_creation.md @@ -0,0 +1,254 @@ +# 智能制造订单班终端模拟创建记录 + +## 创建时间 +2025-10-02 + +## 项目背景 +智能制造订单班主题:**物流输送线节拍优化的PLC与机器人联合调试** +核心技术:PLC控制 + 工业机器人 + Profinet通信 + 节拍优化 + +## Agent配置(4个工业自动化专家) + +### Agent列表 +1. **自动化控制工程师** (`manufacturing_control_engineer`) + - 职责:系统架构与控制逻辑设计 + - 头像:`/data/订单班文档资料/智能制造/agent头像/自动化控制工程师.jpg` + - 工作内容: + - 整体控制逻辑设计(6大模块) + - 设备选型建议(西门子S7-1500 + ABB IRB 2600) + - 节拍优化策略(三条件联锁同步) + - 系统架构文档编制 + +2. **PLC工程师** (`manufacturing_plc_engineer`) + - 职责:PLC编程与梯形图开发 + - 头像:`/data/订单班文档资料/智能制造/agent头像/PLC工程师.jpg` + - 工作内容: + - I/O点位分配(输入11点+输出6点) + - 梯形图程序编制(6个网络) + - 安全联锁逻辑(五合一联锁) + - TIA Portal项目配置 + +3. **机器人调试工程师** (`manufacturing_robot_engineer`) + - 职责:RAPID编程与机器人调试 + - 头像:`/data/订单班文档资料/智能制造/agent头像/机器人调试工程师.jpg` + - 工作内容: + - I/O信号映射(DI3+DO3) + - RAPID程序编写(主循环+故障陷阱) + - 点位定义(Home/Pick/Drop) + - 握手时序协同 + +4. **数据采集自动化技术员** (`manufacturing_data_technician`) + - 职责:I/O配置与通信调试 + - 头像:`/data/订单班文档资料/智能制造/agent头像/数据采集自动化技术员.jpg` + - 工作内容: + - Profinet网络配置(Controller ↔ Device) + - GSDML文件导入与地址映射 + - 系统联调测试(通信/握手/节拍) + - 数据记录与追溯 + +## 图片资源分析 + +### 图片清单(7张,已全部重命名为描述性名称) +1. **汽车物流产线运输图.jpg** - 汽车零部件物流产线运输场景 +2. **传送带上的汽车零部件.jpg** - 输送带上的零部件等待机器人抓取 +3. **汽车零部件展示.jpg** - 待分拣的汽车零部件展示 +4. **PLC控制器.jpg** - 西门子 S7-1500 PLC控制器 +5. **工业机器人.jpg** - ABB IRB 2600 六轴工业机器人 +6. **通信程序示意图.jpg** - PLC与机器人Profinet通信架构 +7. **Mermaid流程图.jpg** - 系统控制流程图 + +### 图片使用策略 +- 自动化控制工程师 → 汽车物流产线运输图 + 汽车零部件展示 +- PLC工程师 → PLC控制器 + Mermaid流程图 +- 机器人调试工程师 → 工业机器人 + 传送带上的汽车零部件 +- 数据采集自动化技术员 → 通信程序示意图 + +## 内容创作策略 + +### 1. 启动序列(15条) +重点营造**工业自动化系统**的专业感: +- 初始化多Agent协作框架 +- 加载知识库:PLC控制/工业机器人/Profinet通信/节拍优化 +- 连接工业设备:西门子S7-1500/ABB IRB 2600/输送带/传感器网络 +- 检测需求:汽车零部件自动分拣 +- 技术挑战:PLC-机器人握手协议 + 节拍≥3600件/h + +### 2. Agent输出序列(4个Agent) + +#### Agent 1: 自动化控制工程师(系统架构设计) +- 系统组成:输送带+PLC+机器人+通信协议 +- 6大控制逻辑模块:启停联锁/输送带控制/零件就位/启动允许/动作反馈/故障复位 +- 节拍优化策略:三条件联锁同步(RobotReady+PartReady+StartAllow) +- 目标节拍:≥3600件/h(单件周期≤1秒) +- 图片:汽车物流产线运输图 + 汽车零部件展示 + +#### Agent 2: PLC工程师(PLC编程与梯形图) +- I/O分配表:输入11点(按钮/传感器/机器人反馈)+输出6点(电机/指示灯/握手信号) +- 梯形图程序:6个网络(运行允许/输送带/PartReady/StartAllow/完成处理/报警复位) +- 安全联锁逻辑:五合一联锁(停止+急停+安全门+过载+机器人故障) +- 图片:PLC控制器 + Mermaid流程图 + +#### Agent 3: 机器人调试工程师(RAPID编程) +- 机器人参数:ABB IRB 2600(12-20kg负载,1.65m半径,±0.04mm精度) +- I/O信号映射:输入DI3(StartAllow/PartReady/PLC_Reset)+输出DO3(RobotReady/PickDone/RobotFault) +- RAPID程序结构:初始化→Home位→循环(等待条件→取件→放置→完成反馈→返回) +- 握手时序协同:PartReady+StartAllow → 抓取动作 → PickDone脉冲 → PLC清握手续行 +- 图片:工业机器人 + 传送带上的汽车零部件 + +#### Agent 4: 数据采集自动化技术员(通信调试) +- Profinet网络架构:PLC S7-1500(Controller主站)+ABB IRC5(Device从站),循环周期10ms +- TIA Portal配置:导入GSDML→添加Device→映射I/O地址→配置IP→下载组态 +- 系统联调测试:通信链路(绿灯连接正常)+握手逻辑验证+节拍性能测试 +- 实测节拍:3789件/h(超出目标5.3%),单件周期0.95s,同步误差±15ms +- 安全逻辑验证:急停/安全门/过载/复位流程测试全部通过 +- 图片:通信程序示意图 + +### 3. 完成序列(30+条) +总结项目核心价值: +- 系统核心指标(5条):实测节拍3789件/h,单件周期0.95s,定位精度±0.04mm,同步误差±15ms,通信周期10ms +- 技术架构亮点(5条):PLC主控/工业机器人/Profinet通信/梯形图+RAPID/五合一联锁 +- 节拍优化策略(4条):三条件联锁/定位即停/完成信号续行/速度匹配机制 +- 安全保护机制(4条):故障优先级/联锁响应时间<50ms/报警与复位/防呆设计 +- 交付物清单(7项):PLC程序/Robot程序/Profinet配置/I/O表/流程图/调试报告/操作手册 +- 技术创新点(4条):Profinet高速通信/智能握手协议/定位即停技术/故障自恢复 + +## 特殊内容处理 + +### 1. 工业自动化领域特色 +- **技术指标量化**:节拍(3789件/h),周期(0.95s),精度(±0.04mm),时延(±15ms) +- **I/O配置细节**:输入11点详细列举,输出6点用途说明,握手信号映射关系 +- **梯形图逻辑展示**:6个网络的功能说明,安全联锁的五合一逻辑 +- **RAPID程序结构**:主循环WHILE结构,复位检测,握手等待,取放流程,完成反馈 + +### 2. Profinet通信配置 +- **网络架构**:PLC作为Controller主站,Robot作为Device从站 +- **循环周期**:10ms高速I/O更新,数据帧6字节输出+3字节输入 +- **配置流程**:导入GSDML→添加Device→映射I/O→配置IP→下载组态 +- **通信诊断**:绿灯连接正常,无通信错误,循环更新正常 + +### 3. 握手协议时序 +- **三条件联锁**:RobotReady(机器人就绪)+PartReady(零件就位)+StartAllow(启动允许) +- **完成反馈**:PickDone脉冲0.2s → PLC清PartReady/StartAllow → 输送带重启 +- **复位机制**:PLC_Reset信号 → Robot执行ResetErrors → 清除故障 → 回Home位 + +### 4. 节拍优化展示 +- **目标节拍**:≥3600件/h(单件周期≤1秒) +- **实测节拍**:3789件/h(超出目标5.3%) +- **单件周期**:0.95s(取件0.3s+放置0.4s+返回0.25s) +- **同步误差**:±15ms(握手时延控制良好) + +## 文档特点分析 + +### 技术深度 +这是一个**高度技术化**的订单班,文档包含: +- 完整的I/O分配表(输入11点+输出6点) +- 详细的梯形图程序(6个网络,含安全联锁逻辑) +- 完整的RAPID程序(主循环+故障陷阱+I/O映射) +- Profinet通信配置流程(GSDML导入+地址映射) +- 系统联调测试数据(通信/握手/节拍性能验证) + +### 与能源订单班的相似性 +两者都属于**工业自动化**领域,但侧重点不同: +- **能源订单班**:深度学习AOI检测 + PLC控制 + 机器人分拣 + MES追溯 +- **智能制造订单班**:PLC-Robot握手协议 + 节拍优化 + Profinet通信 + 安全联锁 + +### 差异化定位 +- **能源订单班**:强调**深度学习视觉检测**(Cognex ViDi缺陷分类7类) +- **智能制造订单班**:强调**PLC-Robot协同**(握手时序+节拍同步优化) + +## Agent头像文件与提示词文件一致性 + +**Agent_prompt文件(4个):** +1. 自动化控制工程师.md ✓ +2. PLC工程师.md ✓ +3. 机器人调试工程师.md ✓ +4. 数据采集自动化技术员.md ✓ + +**agent头像文件(4个):** +1. 自动化控制工程师.jpg ✓ +2. PLC工程师.jpg ✓ +3. 机器人调试工程师.jpg ✓ +4. 数据采集自动化技术员.jpg ✓ + +**完全一致,无缺失!** + +## 创作心得 + +### 1. 工业自动化内容呈现策略 +- 强调**技术指标**(节拍/精度/周期)而非情感描述 +- 展示**系统架构**(PLC/Robot/通信/安全) +- 突出**协同流程**(握手协议/时序同步/节拍优化) +- 体现**安全联锁**(五合一联锁/故障优先/复位机制) + +### 2. PLC与机器人协同重点 +- **三条件联锁同步**:RobotReady+PartReady+StartAllow缺一不可 +- **握手时序控制**:PartReady零件就位→StartAllow启动允许→PickDone完成反馈 +- **节拍匹配机制**:输送带速度 = 机器人周期 × 零件间距 +- **故障处理逻辑**:五合一联锁→报警锁存→复位清除→重新启动 + +### 3. 图片使用策略 +- 按照**工作流程顺序**分配图片给Agent +- 自动化控制工程师 → 产线场景图 + 零部件展示 +- PLC工程师 → PLC控制器 + 流程图 +- 机器人调试工程师 → 工业机器人 + 输送带场景 +- 数据采集技术员 → 通信架构图 + +### 4. 内容层次设计 +- **启动序列**:系统初始化,连接工业设备,检测需求 +- **Agent序列**:系统架构(控制工程师)→PLC编程(PLC工程师)→Robot编程(机器人工程师)→通信调试(数据采集技术员) +- **完成序列**:总结指标、架构亮点、优化策略、安全机制、交付物、创新点 + +## 与能源订单班对比分析 + +### 相同点(都是工业自动化) +1. **设备选型**:都包含西门子PLC + ABB机器人 +2. **通信协议**:都使用Profinet通信 +3. **控制语言**:都是梯形图(PLC) + RAPID(Robot) +4. **I/O配置**:都有详细的I/O分配表 +5. **握手机制**:都有PLC-Robot握手协议 + +### 不同点 +| 对比项 | 能源订单班 | 智能制造订单班 | +|-------|----------|--------------| +| **应用场景** | 光伏电池片AOI检测与分拣 | 汽车零部件物流输送线分拣 | +| **核心技术** | 深度学习AOI检测(Cognex ViDi) | PLC-Robot握手协议+节拍优化 | +| **技术亮点** | 7类缺陷识别,推理≤300ms,漏检≤0.3% | 三条件联锁同步,节拍3789件/h,误差±15ms | +| **Agent数量** | 4个(PLC/视觉工程师/视觉技术员/机器人) | 4个(控制工程师/PLC/机器人/数据采集) | +| **视觉检测** | ✓ Cognex In-Sight D900深度学习相机 | ✗ 仅有光电传感器定位 | +| **分拣逻辑** | ViDi分类结果(OK/RW/NG/UNCERTAIN) | 固定分拣仓位(统一放置) | +| **质量追溯** | MES系统上报(批次号/片ID/缺陷图像) | 数据记录(累计数量/故障代码/节拍时间) | +| **降级模式** | 相机异常→人工复判模式 | 故障停机→复位后重启 | + +### 技术深度对比 +- **能源订单班**:视觉检测技术深度更高(深度学习模型训练/缺陷库标注/召回率调优) +- **智能制造订单班**:PLC-Robot协同技术深度更高(握手时序/节拍同步/三条件联锁) + +## 文件位置 +- 终端模拟文件:`web_frontend/exhibition-demo/src/data/terminalSimulations/intelligentManufacturing.ts` +- 注册到index.ts:`manufacturing: intelligentManufacturingSimulation` + +## 后续优化建议 +1. 可考虑增加"系统集成工程师"Agent,负责Profinet配置与联调验收 +2. 可增加"安全工程师"Agent,负责安全联锁逻辑设计与风险评估 +3. 可增加实际测试视频或动图,展示输送带与机器人协同运行效果 +4. 可增加"异常场景"的动态演示(如急停触发→系统停机→复位重启) + +## 图片重命名经验 +本次图片文件名从通用哈希名重命名为描述性名称: +- `Whisk_3b337cf3682a17e91fa4f9579e54c305dr.jpeg` → `汽车物流产线运输图.jpg` +- `Whisk_a78a725c868b013af3e4319602364ac0dr.jpeg` → `传送带上的汽车零部件.jpg` +- `50bf518c-1369-4295-bae2-a4361c94fef2.jpeg` → `PLC控制器.jpg` +- 等等... + +**重命名流程**: +1. 阅读markdown文档,理解每张图片对应的内容 +2. 根据图片描述创建描述性文件名 +3. 使用bash mv命令批量重命名 +4. 使用sed命令更新markdown中的图片引用 +5. 统一后缀为.jpg + +## 参考资料 +- 文档:`data/订单班文档资料/智能制造/notion文稿/物流输送线节拍优化的PLC与机器人联合调试.md` +- Agent_prompt文件夹:`data/订单班文档资料/智能制造/Agent_prompt/` +- agent头像文件夹:`data/订单班文档资料/智能制造/agent头像/` +- 图片文件夹:`data/订单班文档资料/智能制造/notion文稿/image/` diff --git a/.serena/memories/logistics_terminal_simulation_creation.md b/.serena/memories/logistics_terminal_simulation_creation.md new file mode 100644 index 00000000..4bb65433 --- /dev/null +++ b/.serena/memories/logistics_terminal_simulation_creation.md @@ -0,0 +1,188 @@ +# 交通物流订单班终端模拟创建记录 + +## 项目信息 +- **订单班**: 交通物流 +- **项目**: 某冷链智慧共配中心"百车级"AGV全局交通管制与充电调度系统设计项目 +- **核心技术**: 120台AGV、全局交通管制、智能充电调度、冷链环境适配(-25°C) +- **创建日期**: 2025-10-02 + +## Agent配置 (10个专业角色) + +### 1. 需求分析师 +- **ID**: req_analyst +- **职责**: 业务需求建模与系统目标拆解 +- **图标**: 📋 +- **颜色**: #3B82F6 +- **关键输出**: 业务痛点分析、系统目标拆解、功能清单 + +### 2. 系统架构师 +- **ID**: sys_architect +- **职责**: 系统总体架构设计与技术选型 +- **图标**: 🏗️ +- **颜色**: #8B5CF6 +- **关键输出**: 五层架构体系、技术选型方案 + +### 3. AGV算法与调度工程师 +- **ID**: agv_algorithm +- **职责**: AGV导航与路径调度算法设计 +- **图标**: 🤖 +- **颜色**: #10B981 +- **关键输出**: 导航系统、路径规划、交通管制算法 + +### 4. 能源与充电系统工程师 +- **ID**: energy_engineer +- **职责**: 智能充电调度与能源管理 +- **图标**: ⚡ +- **颜色**: #F59E0B +- **关键输出**: 双模式充电策略、低温充电保护 + +### 5. 冷链设备技术总监 +- **ID**: coldchain_director +- **职责**: 冷链环境适配与温控系统 +- **图标**: ❄️ +- **颜色**: #06B6D4 +- **关键输出**: 环境感知系统、AGV低温适配方案 + +### 6. 技术研发工程师 +- **ID**: rd_engineer +- **职责**: 软件/嵌入式/PLC功能实现 +- **图标**: ⚙️ +- **颜色**: #EC4899 +- **关键输出**: 上位平台、嵌入式控制、PLC逻辑 + +### 7. 系统集成工程师 +- **ID**: integration_engineer +- **职责**: 多系统集成与接口联动 +- **图标**: 🔗 +- **颜色**: #14B8A6 +- **关键输出**: 集成架构、通信协议、接口规范 + +### 8. 视觉设计工程师 +- **ID**: visual_designer +- **职责**: 技术文档与图文输出 +- **图标**: 🎨 +- **颜色**: #F97316 +- **关键输出**: 技术文档、监控面板设计 + +### 9. 技术审批专家 +- **ID**: tech_reviewer +- **职责**: 技术方案评审与风险控制 +- **图标**: ✅ +- **颜色**: #EF4444 +- **关键输出**: 架构评审、技术选型评估、风险评估 + +### 10. 项目经理 +- **ID**: project_manager +- **职责**: 项目规划与任务协调 +- **图标**: 📊 +- **颜色**: #6366F1 +- **关键输出**: WBS、排期计划、RACI矩阵 + +## 图片资源分配 (12张图片) + +### 1. 冷链方案示意图.jpg +- **分配给**: 需求分析师 +- **用途**: 展示项目背景和冷链物流场景 + +### 2. 物流业务架构图.jpg +- **分配给**: 系统架构师 +- **用途**: 展示五层架构体系设计 + +### 3. 仿真模拟平台示意图.jpg +- **分配给**: AGV算法与调度工程师 +- **用途**: 展示AGV仿真验证平台 + +### 4. AGV逻辑图.jpg +- **分配给**: AGV算法与调度工程师 +- **用途**: 展示AGV导航与路径规划逻辑 + +### 5. 交通管制系统逻辑图.jpg +- **分配给**: AGV算法与调度工程师 +- **用途**: 展示全局交通管制机制 + +### 6. 充电管理系统逻辑图.jpg +- **分配给**: 能源与充电系统工程师 +- **用途**: 展示智能充电调度策略 + +### 7. 系统控制架构图.jpg +- **分配给**: 系统集成工程师 +- **用途**: 展示系统集成控制架构 + +### 8. 系统集成与调度.jpg +- **分配给**: 系统集成工程师 +- **用途**: 展示多系统集成方案 + +### 9. 后台监控与管理.jpg +- **分配给**: 视觉设计工程师 +- **用途**: 展示后台监控管理界面 + +### 10. 周期实施计划.jpg +- **分配给**: 项目经理 +- **用途**: 展示项目周期规划 + +### 11. AGV故障排查检修.jpg +- **分配给**: 项目经理 +- **用途**: 展示运维支持计划 + +### 12. 技术支持与指导.jpg +- **分配给**: 项目经理 +- **用途**: 展示技术支持体系 + +## 重要处理心得 + +### 1. Agent命名一致性问题 +- **问题**: 发现"需求分析师"(prompt文件)与"需求分析工程师"(avatar文件)命名不一致 +- **解决**: 使用prompt文件中的"需求分析师"作为标准名称,与Agent_prompt文件保持一致 + +### 2. 新旧格式转换 +- **新格式**: logistics.ts采用更清晰的结构(id/name/sequences等) +- **旧格式**: index.ts中的SimulationData格式 +- **解决**: 创建convertToSimulationData转换函数,实现格式自动转换 + +### 3. 图片路径规范 +- **路径格式**: `/data/订单班文档资料/交通物流/notion文稿/image/图片名称.jpg` +- **注意**: 所有图片已统一重命名为描述性.jpg格式 + +### 4. Agent输出设计策略 +- **需求分析师**: 聚焦业务痛点和系统目标,展示冷链方案示意图 +- **系统架构师**: 展示五层架构设计和技术选型 +- **AGV算法工程师**: 最多输出(5个),覆盖导航、路径、交通、仿真等核心算法 +- **能源工程师**: 聚焦双模式充电和低温保护 +- **冷链总监**: 聚焦环境感知和设备适配 +- **研发工程师**: 覆盖上位平台、嵌入式、PLC三个层次 +- **集成工程师**: 展示系统集成架构和通信协议,使用2张架构图 +- **视觉设计师**: 聚焦文档和监控界面 +- **技术专家**: 三维度评审(架构/技术/风险) +- **项目经理**: 最多输出(4个),覆盖周期规划、任务分工、运维和技术支持,使用3张图 + +### 5. 项目成果总结 +- **核心价值量化**: 效率提升40%、成本降低60%、日出件量18万件 +- **技术亮点**: 120台AGV、全局交通管制、智能充电、-25°C低温运行 +- **合规性**: GSP/GDP认证要求 + +## 文件结构 +``` +web_frontend/exhibition-demo/ +├── src/data/terminalSimulations/ +│ ├── logistics.ts (新创建) +│ └── index.ts (已更新) +└── public/data/订单班文档资料/交通物流/ + ├── Agent_prompt/ (10个.md文件) + ├── avatar/ (10个.jpg文件) + └── notion文稿/ + ├── image/ (12张重命名的.jpg图片) + └── 某冷链智慧共配中心"百车级"AGV...md +``` + +## 技术要点 +- **导航技术**: 激光SLAM + IMU + 二维码融合 +- **路径算法**: A*/Dijkstra +- **通信协议**: MQTT + RESTful API + WebSocket +- **充电策略**: 快充1.5C + 慢充0.5C +- **架构模式**: 五层架构(接入/业务/调度/设备/算法) + +## 后续建议 +1. 可考虑添加更多动态效果到终端输出 +2. 可为关键技术点添加更多可视化图表 +3. 可考虑添加实时数据监控的动画效果 +4. 可为AGV路径规划添加交互式演示 diff --git a/.serena/memories/order-class-naming-convention.md b/.serena/memories/order-class-naming-convention.md new file mode 100644 index 00000000..d4da8d8e --- /dev/null +++ b/.serena/memories/order-class-naming-convention.md @@ -0,0 +1,66 @@ +# 订单班命名规范和映射表 + +## 命名统一原则 + +所有订单班的命名必须在以下三个地方保持一致: +1. **orderClasses.json** 中的 `id` 字段 +2. **simulationMap** 中的 key +3. **终端模拟文件名**和**导出函数名** + +## 当前订单班中英文映射表 + +| 中文名称 | 英文ID | 文件名 | 导出函数名 | 状态 | +|---------|--------|--------|-----------|------| +| 食品 | `food` | `food.ts` | `foodSimulation` | ✅ 已实现 | +| 文旅 | `wenlu` | `wenlu.ts` | `wenluSimulation` | ✅ 已实现 | +| 智能制造 | `manufacturing` | `intelligentManufacturing.ts` | `intelligentManufacturingSimulation` | ✅ 已实现 | +| 智能开发 | `developer` | - | - | ⏸️ 未实现 | +| 财经商贸 | `finance` | - | - | ⏸️ 未实现 | +| 视觉设计 | `visual` | `visualDesign.ts` | `visualSimulation` | ✅ 已实现 | +| 大健康 | `health` | `health.ts` | `healthSimulation` | ✅ 已实现 | +| 交通物流 | `transportation` | `transportation.ts` | `transportationSimulation` | ✅ 已实现 | +| 能源 | `energy` | `energy.ts` | `energySimulation` | ✅ 已实现 | +| 化工 | `chemical` | - | - | ⏸️ 未实现 | +| 环保 | `environmental` | - | - | ⏸️ 未实现 | +| 土木 | `civil` | `civilEngineering.ts` | `civilEngineeringSimulation` | ✅ 已实现 | + +## 最近修改记录 (2025-10-02) + +### 交通物流订单班统一命名 +**问题**: +- orderClasses.json 中 ID 为 `transportation` +- simulationMap 中 key 为 `logistics` +- 导致点击"交通物流"模版无法触发终端模拟 + +**解决方案**: +1. 重命名文件:`logistics.ts` → `transportation.ts` +2. 更新函数名:`logisticsSimulation()` → `transportationSimulation()` +3. 更新变量名:`logisticsAgents` → `transportationAgents` +4. 更新 orderClassId:`'logistics'` → `'transportation'` +5. 更新 index.ts 导入语句和 simulationMap 注册 + +### 智能制造订单班ID修正 +**问题**: orderClasses.json 中 ID 为 `manufacture`,但 simulationMap 中为 `manufacturing` + +**解决方案**: 修改 orderClasses.json 中的 ID:`"manufacture"` → `"manufacturing"` + +## 关键文件位置 + +- **订单班配置**: `/web_frontend/exhibition-demo/src/data/orderClasses.json` +- **模拟数据映射**: `/web_frontend/exhibition-demo/src/data/terminalSimulations/index.ts` +- **各订单班模拟数据**: `/web_frontend/exhibition-demo/src/data/terminalSimulations/*.ts` + +## 添加新订单班的流程 + +1. 在 `orderClasses.json` 中添加订单班配置,设定统一的 `id` +2. 创建 `/terminalSimulations/{id}.ts` 文件 +3. 导出函数命名为 `{id}Simulation` +4. 在 `index.ts` 中导入并注册到 `simulationMap` +5. 确保 orderClassId 与配置文件中的 id 一致 + +## 注意事项 + +- ⚠️ **切勿使用不同的命名**:orderClasses.json 的 ID 必须与 simulationMap 的 key 完全一致 +- ⚠️ **函数命名规范**:导出函数应命名为 `{id}Simulation`,如 `transportationSimulation` +- ⚠️ **变量命名规范**:Agent 数组应命名为 `{id}Agents`,如 `transportationAgents` +- ✅ **ID 使用英文单词**:优先使用完整、直观的英文单词,如 `transportation` 而不是 `logistics` diff --git a/.serena/memories/terminal-simulation-development-guide.md b/.serena/memories/terminal-simulation-development-guide.md new file mode 100644 index 00000000..78debc2f --- /dev/null +++ b/.serena/memories/terminal-simulation-development-guide.md @@ -0,0 +1,275 @@ +# 终端模拟内容开发指南 + +## 开发流程 + +### 1. 前期准备 +- **阅读文档资料**:仔细阅读 `/data/订单班文档资料/{订单班名}/notion文稿` 下的文档 +- **分析图片备注**:查看文档中图片的插入位置和备注说明,理解图片与内容的对应关系 +- **检查资源文件**:确认 `agent头像`、`Agent_prompt`、`image` 文件夹是否完整 + +### 2. Agent设计原则 + +#### Agent数量规划 +- 根据项目复杂度确定Agent数量(通常6-10个) +- 覆盖项目全生命周期的关键角色 +- 确保每个Agent有明确的职责边界 + +#### Agent配置要素 +```typescript +{ + id: 'unique_identifier', // 唯一标识符(蛇形命名) + name: '中文角色名', // 显示名称 + icon: '📋', // emoji图标 + avatar: '/data/订单班文档资料/{订单班}/agent头像/{角色名}.jpg', + model: 'GPT-4', // 模型名称 + role: '简短的职责描述', // 一句话职责 + status: 'waiting', // 初始状态 +} +``` + +#### 命名规范 +- **文件名**:`{orderClassId}.ts`(如 `developer.ts`) +- **函数名**:`{orderClassId}Simulation`(如 `developerSimulation`) +- **变量名**:`{orderClassId}Agents`(如 `developerAgents`) +- **orderClassId**:与 orderClasses.json 中的 id 完全一致 + +### 3. 内容结构设计 + +#### 启动序列(startupSequence) +目的:营造项目启动氛围,介绍项目背景 + +```typescript +startupSequence: [ + { type: 'system', content: '初始化{项目类型}开发环境...' }, + { type: 'system', content: '加载项目需求:{项目名称}' }, + { type: 'info', content: '核心信息1' }, + { type: 'info', content: '核心信息2' }, + { type: 'system', content: '' }, // 空行分隔 + { type: 'system', content: '正在组建{N}人团队...' }, + { type: 'success', content: '✓ {Agent1}就位' }, + // ... 所有Agent就位确认 + { type: 'system', content: '' }, + { type: 'system', content: '开始多Agent协作流程...' }, + { type: 'system', content: '════════════════════════════════════' }, +] +``` + +#### Agent执行序列(agentSequence) +目的:展示每个Agent的具体工作内容和成果 + +**标准结构**: +```typescript +{ + agent: () => {orderClassId}Agents[index], + outputs: [ + { type: 'info', content: '{icon} {Agent名}开始{动作}...' }, + { type: 'system', content: '' }, + + // 工作内容展示 + { type: 'output', content: '{工作模块标题}:' }, + { type: 'output', content: ' • {具体工作项1}' }, + { type: 'output', content: ' • {具体工作项2}' }, + { type: 'system', content: '' }, + + // 图片插入(如果有) + { type: 'image', imageSrc: '/data/订单班文档资料/{订单班}/notion文稿/image/{图片名}.jpg', imageAlt: '{图片说明}' }, + { type: 'system', content: '' }, + + // 成果总结 + { type: 'success', content: '✓ {成果1}' }, + { type: 'success', content: '✓ {成果2}' }, + ] +} +``` + +#### 完成序列(completionSequence) +目的:项目总结和成果展示 + +```typescript +completionSequence: [ + { type: 'system', content: '════════════════════════════════════' }, + { type: 'system', content: '' }, + { type: 'success', content: '🎉 {项目名}圆满完成!' }, + { type: 'system', content: '' }, + { type: 'output', content: '项目成果总结:' }, + { type: 'output', content: ' • {成果亮点1}' }, + { type: 'output', content: ' • {成果亮点2}' }, + { type: 'system', content: '' }, + { type: 'output', content: '交付物清单:' }, + { type: 'output', content: ' ✓ {交付物1}' }, + { type: 'output', content: ' ✓ {交付物2}' }, + { type: 'system', content: '' }, + { type: 'success', content: '感谢{N}位Agent的协作,{项目名}已成功上线!' }, + { type: 'system', content: '════════════════════════════════════' }, +] +``` + +### 4. 图片插入技巧 + +#### 图片位置选择 +- **概念/架构图**:放在介绍该概念/架构的Agent输出中 +- **界面设计图**:放在UI设计师或前端开发的输出中 +- **数据分析图**:放在数据分析或测试的输出中 +- **流程图**:放在系统架构师或项目经理的输出中 + +#### 图片插入格式 +```typescript +{ type: 'image', imageSrc: '/data/订单班文档资料/{订单班}/notion文稿/image/{图片名}.jpg', imageAlt: '{简短描述}' }, +{ type: 'system', content: '' }, // 图片后加空行 +``` + +#### 图片与内容的对应关系 +根据文档分析建立映射: +- **首页.jpg** → 数据库架构/系统架构部分 +- **用户信息后台数据.jpg** → 用户系统设计 +- **课程信息后台数据.jpg** → 课程系统设计 +- **API配置界面.jpg** → 接口设计/后端开发 +- **注册界面.jpg** → 用户认证/前端开发 +- **课程直播间.jpg** → 直播系统/互动功能 + +### 5. 内容撰写技巧 + +#### 信息密度控制 +- 每个Agent输出3-5个工作模块 +- 每个模块2-4个具体工作项 +- 避免过于冗长的描述 + +#### 专业术语使用 +- 使用行业通用术语(如 Vue3、Spring Cloud、JWT) +- 避免过于晦涩的技术细节 +- 数字要具体(如"10万+并发"而非"大量用户") + +#### 成果量化表达 +- **好的示例**: + - ✓ 前端开发完成(65个组件,28个页面) + - ✓ 接口性能:平均响应时间200ms + - ✓ 测试通过率:98.5% + +- **避免的表达**: + - ✓ 前端开发完成 + - ✓ 性能很好 + - ✓ 测试基本通过 + +#### 分隔符使用 +- 使用空行 `{ type: 'system', content: '' }` 分隔不同模块 +- 使用分隔线 `════════════════════════════════════` 标记重要节点 + +### 6. 开发实例参考 + +#### 智能开发订单班(developer.ts) +**文档结构**: +- 6大章节:项目概述、功能模块、数据库设计、开发实现、测试、运维 +- 9张图片:首页、用户数据、智能分析、课程数据、课程内容、直播间、注册界面、热门课程、API配置 + +**Agent设计**: +1. 需求文档撰写专员 - 需求调研与文档输出 +2. 产品经理 - 产品规划与功能设计 +3. 平台架构师 - 技术架构与数据库设计 +4. UI设计师 - 界面设计与交互体验 +5. 前端开发工程师 - Vue3前端开发 +6. 后端开发工程师 - Spring Cloud后端开发 +7. 软件测试工程师 - 功能/性能/安全测试 +8. DEMO生成助手 - 演示原型与文档生成 +9. 项目经理 - 项目总结与成果汇报 + +**图片分配**: +- 产品经理:首页.jpg +- 平台架构师:用户信息后台数据.jpg、课程信息后台数据.jpg +- UI设计师:注册界面.jpg、热门课程.jpg、课程直播间.jpg +- 前端开发工程师:课程内容.jpg +- 后端开发工程师:API配置界面.jpg +- 软件测试工程师:智能学习数据分析.jpg + +### 7. 常见问题 + +#### Q1: Agent数量如何确定? +A: 根据项目规模和文档内容: +- 小型项目(如轻食品牌):5-7个Agent +- 中型项目(如教育平台):8-10个Agent +- 大型项目(如AGV系统):10-12个Agent + +#### Q2: 图片应该放在哪个Agent? +A: 遵循"谁产出谁展示"原则: +- 数据库设计图 → 架构师 +- 界面设计图 → UI设计师或前端工程师 +- API文档图 → 后端工程师 +- 测试报告图 → 测试工程师 + +#### Q3: 如何避免内容重复? +A: 每个Agent聚焦自己的职责: +- 需求分析师:需求调研、文档撰写 +- 产品经理:功能规划、原型设计 +- 架构师:技术选型、架构设计 +- 开发工程师:具体实现、代码编写 +- 测试工程师:测试执行、问题发现 +- 项目经理:进度管理、成果总结 + +#### Q4: 输出内容的详细程度? +A: 保持"概览+亮点"原则: +- 不要列举所有细节 +- 突出关键技术点和创新点 +- 用数据说话(如"65个组件"比"很多组件"更好) + +### 8. 注册流程 + +完成文件创建后,需要在 `index.ts` 中注册: + +```typescript +// 1. 导入 +import { {orderClassId}Simulation } from './{orderClassId}'; + +// 2. 注册到映射表 +export const simulationMap: Record = { + // ... 其他订单班 + {orderClassId}: {orderClassId}Simulation, +}; +``` + +### 9. 验证清单 + +创建完成后检查: +- [ ] 文件命名符合规范({orderClassId}.ts) +- [ ] Agent数量与 agentCount 一致 +- [ ] 所有头像路径正确 +- [ ] 图片路径正确且图片存在 +- [ ] orderClassId 与 orderClasses.json 一致 +- [ ] 已在 index.ts 中正确注册 +- [ ] TypeScript 编译无错误 + +### 10. 最佳实践总结 + +✅ **DO(推荐做法)**: +- 深入阅读文档,理解项目全貌 +- 图片与文字内容强关联 +- 使用具体数字量化成果 +- 每个Agent职责清晰、不重叠 +- 使用空行和分隔符优化阅读体验 + +❌ **DON'T(避免做法)**: +- 不看文档凭想象编写内容 +- 随意插入图片,与内容无关 +- 使用模糊表述(如"很好"、"很多") +- Agent职责重叠或遗漏关键角色 +- 内容冗长、缺少分段 + +### 11. 工具函数提示 + +在开发过程中可以使用以下bash命令快速检查: + +```bash +# 查看文档资料结构 +ls -la "/path/to/订单班文档资料/{订单班}/" + +# 查看图片文件 +ls -la "/path/to/订单班文档资料/{订单班}/notion文稿/image/" + +# 查看agent头像 +ls -la "/path/to/订单班文档资料/{订单班}/agent头像/" + +# 检查orderClasses.json中的配置 +grep -A 15 '"id": "{orderClassId}"' orderClasses.json +``` + +--- + +**备注**:本指南基于智能开发订单班(developer.ts)的开发经验总结,适用于所有订单班的终端模拟内容开发。 diff --git a/data/订单班文档资料/交通物流/notion文稿/image/AGV故障排查检修.jpg b/data/订单班文档资料/交通物流/notion文稿/image/AGV故障排查检修.jpg new file mode 100755 index 00000000..52f950bb Binary files /dev/null and b/data/订单班文档资料/交通物流/notion文稿/image/AGV故障排查检修.jpg differ diff --git a/data/订单班文档资料/交通物流/notion文稿/image/img_v3_02qk_9de2ecce-30d7-4e7d-a3f7-38a6fc4f8b7g.jpg b/data/订单班文档资料/交通物流/notion文稿/image/AGV逻辑图.jpg similarity index 100% rename from data/订单班文档资料/交通物流/notion文稿/image/img_v3_02qk_9de2ecce-30d7-4e7d-a3f7-38a6fc4f8b7g.jpg rename to data/订单班文档资料/交通物流/notion文稿/image/AGV逻辑图.jpg diff --git a/data/订单班文档资料/交通物流/notion文稿/image/img_v3_02qk_d8ddade9-c7c2-4232-ac68-98c4eb58e3fg.jpg b/data/订单班文档资料/交通物流/notion文稿/image/交通管制系统逻辑图.jpg similarity index 100% rename from data/订单班文档资料/交通物流/notion文稿/image/img_v3_02qk_d8ddade9-c7c2-4232-ac68-98c4eb58e3fg.jpg rename to data/订单班文档资料/交通物流/notion文稿/image/交通管制系统逻辑图.jpg diff --git a/data/订单班文档资料/交通物流/notion文稿/image/image.png b/data/订单班文档资料/交通物流/notion文稿/image/仿真模拟平台示意图.jpg similarity index 100% rename from data/订单班文档资料/交通物流/notion文稿/image/image.png rename to data/订单班文档资料/交通物流/notion文稿/image/仿真模拟平台示意图.jpg diff --git a/data/订单班文档资料/交通物流/notion文稿/image/img_v3_02qk_0a550bbd-b1f8-4726-93cc-0bd03ad4b51g.jpg b/data/订单班文档资料/交通物流/notion文稿/image/充电管理系统逻辑图.jpg similarity index 100% rename from data/订单班文档资料/交通物流/notion文稿/image/img_v3_02qk_0a550bbd-b1f8-4726-93cc-0bd03ad4b51g.jpg rename to data/订单班文档资料/交通物流/notion文稿/image/充电管理系统逻辑图.jpg diff --git a/data/订单班文档资料/交通物流/notion文稿/image/image6.png b/data/订单班文档资料/交通物流/notion文稿/image/冷链方案示意图.jpg similarity index 100% rename from data/订单班文档资料/交通物流/notion文稿/image/image6.png rename to data/订单班文档资料/交通物流/notion文稿/image/冷链方案示意图.jpg diff --git a/data/订单班文档资料/交通物流/notion文稿/image/后台监控与管理.jpg b/data/订单班文档资料/交通物流/notion文稿/image/后台监控与管理.jpg new file mode 100755 index 00000000..dd4c9ac8 Binary files /dev/null and b/data/订单班文档资料/交通物流/notion文稿/image/后台监控与管理.jpg differ diff --git a/data/订单班文档资料/交通物流/notion文稿/image/image 1.png b/data/订单班文档资料/交通物流/notion文稿/image/周期实施计划.jpg similarity index 100% rename from data/订单班文档资料/交通物流/notion文稿/image/image 1.png rename to data/订单班文档资料/交通物流/notion文稿/image/周期实施计划.jpg diff --git a/data/订单班文档资料/交通物流/notion文稿/image/备用图片6.jpg b/data/订单班文档资料/交通物流/notion文稿/image/备用图片6.jpg new file mode 100755 index 00000000..c714b396 Binary files /dev/null and b/data/订单班文档资料/交通物流/notion文稿/image/备用图片6.jpg differ diff --git a/data/订单班文档资料/交通物流/notion文稿/image/image 5.png b/data/订单班文档资料/交通物流/notion文稿/image/技术支持与指导.jpg similarity index 100% rename from data/订单班文档资料/交通物流/notion文稿/image/image 5.png rename to data/订单班文档资料/交通物流/notion文稿/image/技术支持与指导.jpg diff --git a/data/订单班文档资料/交通物流/notion文稿/image/img_v3_02qk_f8365920-7ef9-48d1-8472-e87b1776452g.jpg b/data/订单班文档资料/交通物流/notion文稿/image/物流业务架构图.jpg similarity index 100% rename from data/订单班文档资料/交通物流/notion文稿/image/img_v3_02qk_f8365920-7ef9-48d1-8472-e87b1776452g.jpg rename to data/订单班文档资料/交通物流/notion文稿/image/物流业务架构图.jpg diff --git a/data/订单班文档资料/交通物流/notion文稿/image/5ea855eb-dd05-44ae-b88a-2c5ad4cbcc43.png b/data/订单班文档资料/交通物流/notion文稿/image/系统控制架构图.jpg similarity index 100% rename from data/订单班文档资料/交通物流/notion文稿/image/5ea855eb-dd05-44ae-b88a-2c5ad4cbcc43.png rename to data/订单班文档资料/交通物流/notion文稿/image/系统控制架构图.jpg diff --git a/data/订单班文档资料/交通物流/notion文稿/image/系统集成与调度.jpg b/data/订单班文档资料/交通物流/notion文稿/image/系统集成与调度.jpg new file mode 100755 index 00000000..f3395eb2 Binary files /dev/null and b/data/订单班文档资料/交通物流/notion文稿/image/系统集成与调度.jpg differ diff --git a/data/订单班文档资料/智能制造/notion文稿/image/无标题图表___美人鱼图表_---_Untitled_diagram___Mermaid_Chart-2025-09-29-094013.png b/data/订单班文档资料/智能制造/notion文稿/image/Mermaid流程图.jpg similarity index 100% rename from data/订单班文档资料/智能制造/notion文稿/image/无标题图表___美人鱼图表_---_Untitled_diagram___Mermaid_Chart-2025-09-29-094013.png rename to data/订单班文档资料/智能制造/notion文稿/image/Mermaid流程图.jpg diff --git a/data/订单班文档资料/智能制造/notion文稿/image/50bf518c-1369-4295-bae2-a4361c94fef2.jpeg b/data/订单班文档资料/智能制造/notion文稿/image/PLC控制器.jpg similarity index 100% rename from data/订单班文档资料/智能制造/notion文稿/image/50bf518c-1369-4295-bae2-a4361c94fef2.jpeg rename to data/订单班文档资料/智能制造/notion文稿/image/PLC控制器.jpg diff --git a/data/订单班文档资料/智能制造/notion文稿/image/Whisk_a78a725c868b013af3e4319602364ac0dr.jpeg b/data/订单班文档资料/智能制造/notion文稿/image/传送带上的汽车零部件.jpg similarity index 100% rename from data/订单班文档资料/智能制造/notion文稿/image/Whisk_a78a725c868b013af3e4319602364ac0dr.jpeg rename to data/订单班文档资料/智能制造/notion文稿/image/传送带上的汽车零部件.jpg diff --git a/data/订单班文档资料/智能制造/notion文稿/image/Whisk_fe0ba82cdad8ba78c174cb0d96339cc6eg.png b/data/订单班文档资料/智能制造/notion文稿/image/工业机器人.jpg similarity index 100% rename from data/订单班文档资料/智能制造/notion文稿/image/Whisk_fe0ba82cdad8ba78c174cb0d96339cc6eg.png rename to data/订单班文档资料/智能制造/notion文稿/image/工业机器人.jpg diff --git a/data/订单班文档资料/智能制造/notion文稿/image/Whisk_3b337cf3682a17e91fa4f9579e54c305dr.jpeg b/data/订单班文档资料/智能制造/notion文稿/image/汽车物流产线运输图.jpg similarity index 100% rename from data/订单班文档资料/智能制造/notion文稿/image/Whisk_3b337cf3682a17e91fa4f9579e54c305dr.jpeg rename to data/订单班文档资料/智能制造/notion文稿/image/汽车物流产线运输图.jpg diff --git a/data/订单班文档资料/智能制造/notion文稿/image/Whisk_e040e7f01f723f9932046d5b11085545dr.jpeg b/data/订单班文档资料/智能制造/notion文稿/image/汽车零部件展示.jpg similarity index 100% rename from data/订单班文档资料/智能制造/notion文稿/image/Whisk_e040e7f01f723f9932046d5b11085545dr.jpeg rename to data/订单班文档资料/智能制造/notion文稿/image/汽车零部件展示.jpg diff --git a/data/订单班文档资料/智能制造/notion文稿/image/Whisk_2d0dcad7b81de5191944450d37b92a05dr.jpeg b/data/订单班文档资料/智能制造/notion文稿/image/通信程序示意图.jpg similarity index 100% rename from data/订单班文档资料/智能制造/notion文稿/image/Whisk_2d0dcad7b81de5191944450d37b92a05dr.jpeg rename to data/订单班文档资料/智能制造/notion文稿/image/通信程序示意图.jpg diff --git a/progress.md b/progress.md index 7b2b3217..9678227c 100644 --- a/progress.md +++ b/progress.md @@ -1,5 +1,5 @@ # Project: 展会策划 AI 多智能体协作演示系统 + n8n 中文版工作流平台 -_Last updated: 2025-09-29_ +_Last updated: 2025-10-01_ ## Pinned(仅高置信"必须遵守"写入;受保护不可修订) - ⚠️ 必须使用 pnpm(不能用 npm/yarn) @@ -34,6 +34,7 @@ _Last updated: 2025-09-29_ - 2025-09-29: 决定使用动态JSON数据结构替代硬编码agent数据(理由:提高可维护性和扩展性) - 2025-09-29: 决定将终端模拟系统改为TSX格式(理由:替代JSON文件加载方式,提升代码复用性和类型安全) - 2025-09-29: 决定终端模拟数据使用TypeScript管理,不再使用JSON(理由:避免复杂度,简化配置管理) +- 2025-10-01: 最终选择食品订单班SuperDesign Version 5作为最优版本(理由:9.39/10评分,全面领先其他版本,响应式设计完善,性能优化到位) ## TODO(权威待办清单) - [P1][OPEN][#1] 优化 Duoduo Agent 设计系统的用户交互体验 @@ -47,7 +48,6 @@ _Last updated: 2025-09-29_ - [P0][OPEN][#41] 开发智能开发订单班演示系统(Context:优先开发重点演示场景) - [P0][OPEN][#42] 开发智能制造订单班演示系统(Context:优先开发重点演示场景) - [P2][OPEN][#26] 优化n8n工作流自动化演示效果 -- [P1][OPEN][#30] 完整功能测试食品订单班演示系统(Context:端口4174全面验证) - [P1][OPEN][#31] 准备其他订单班开发(Context:基于食品订单班成功模板) - [P0][OPEN][#33] 收集其他11个订单班的Agent数据(Context:每个订单班需要7-9个Agent配置、头像.jpg格式、提示词.md文件、业务配图素材) - [P1][OPEN][#34] 开发多订单班主入口界面(Context:exhibition-demo项目,显示12个订单班选项grid布局) @@ -64,6 +64,10 @@ _Last updated: 2025-09-29_ - [P1][DOING][#5] 维护和优化当前多智能体展示分支功能 ## Done(最近完成的放前面) +- 2025-10-01: [#70] 完成食品订单班SuperDesign 5次迭代优化(evidence:.superdesign/design_iterations/目录,迭代1-3:v1基础框架6.93分→v2 Agent强化8.02分→v3专业深度8.51分,迭代4:v4视觉细节打磨8.71分包含5级阴影系统/6级圆角系统/多层背景纹理/3D卡片效果,迭代5:v5响应式完善9.39分包含流式字体/弹性布局/触摸优化/性能优化懒加载防抖,评估报告evaluation_report.md包含7维度评估视觉/品牌/体验/性能/内容/创新/技术,最终选择Version 5作为最优版本9.39/10,总提升35.5%) +- 2025-10-01: [#71] 修复食品订单班图片路径问题(evidence:创建软链接web_frontend/web_result/order-classes/food/images→data/订单班文档资料/食品/notion文稿/image,更新v5所有图片路径为相对路径images/,25张项目图片现可正常加载) +- 2025-10-01: [#72] 部署食品订单班最优版本到生产环境(evidence:部署v5到web_frontend/web_result/order-classes/food/index.html,文件大小87KB,生产环境可访问所有功能正常) +- 2025-10-01: [#73] 归档SuperDesign工作文件(evidence:创建归档目录.superdesign/archive_食品_20251001/,包含所有5个版本/评估报告/归档说明README.md,完整设计迭代历史保存) - 2025-09-29: [#69] 完成Web结果展示系统端口配置标准化(evidence:修改routes.yaml、app.js、start-router.sh,将系统端口从8080统一更改为4155,建立系统级硬约束确保所有Web访问使用标准端口:http://localhost:4155/、http://localhost:4155/order-class/wenlu、http://localhost:4155/order-class/food) - 2025-09-29: [#65] 完成UI优化:订单班选择卡片效果增强(evidence:增加了卡片间距和内边距,添加了hover上浮效果和3D旋转动画,实现了选中状态的脉冲光晕效果,增加了右上角的勾选标记动画,图标尺寸从20px增加到24px) - 2025-09-29: [#66] 增强标题可读性(evidence:"快速选择需求模板"和"需求描述"标题从text-sm增加到text-base,为两个标题都添加了图标(FileText和PenTool),颜色加深至gray-800) @@ -86,6 +90,7 @@ _Last updated: 2025-09-29_ - 2025-09-28: [#39] 完成AI Agent架构设计(evidence:定义12个订单班共100+个专业Agent,确立4种Agent协作模式) - 2025-09-28: [#40] 完成配置文件体系建设(evidence:创建orderClasses.json配置文件,支持动态加载和热更新) - 2025-09-28: [#32] 完成食品订单班演示系统7个Agent全部开发(evidence:Agent-5财务分析师60万总投资14个月回本ROI285%,Agent-6运营管理专家15小时营业6人团队32个标准流程,Agent-7食品创业导师方案可行性96%A+级市场前景建议2025年Q2启动,端口4174正常运行,基于文旅订单班框架实现90%代码复用) +- 2025-09-28: [#30] 完整功能测试食品订单班演示系统(evidence:端口4174全面验证通过) - 2025-09-28: [#28] 完成Agent-1市场研究专家和Agent-2营养配方师演示内容更新(evidence:commit ab20a4b2,轻食市场1200亿元数据,32款产品营养菜单,3款核心产品配方) - 2025-09-28: [#29] 完成食品订单班系统启动序列更新(evidence:系统名称改为"AI青莳轻食经营方案生成系统 v1.0.0",版权青莳轻食AI团队) - 2025-09-28: [#15] 完善食品订单班演示内容和具体流程(evidence:Agent-1和Agent-2内容完善,演示内容更贴近食品行业实际场景) @@ -118,6 +123,8 @@ _Last updated: 2025-09-29_ - Assumption:其他订单班的数据结构与文旅订单班类似(Confidence: High) ## Notes(简要要点) +- 2025-10-01: SuperDesign工作总结:食品订单班5次迭代成功验证了系统化设计流程的价值,从基础框架6.93分提升至响应式完善9.39分,总提升35.5%,关键技术亮点包括clamp()流式字体系统、弹性Grid布局、IntersectionObserver懒加载、Debounce防抖优化、5级阴影系统、6级圆角系统、7种渐变背景、多层纹理效果,完整的设计迭代历史已归档至.superdesign/archive_食品_20251001/,该流程和模板可应用于其他订单班开发 +- 2025-10-01: 食品订单班技术价值验证:SuperDesign迭代过程证明响应式设计和性能优化的重要性,v5版本在移动端适配/触摸优化/被动监听等方面全面领先,评估报告的7维度评估方法(视觉/品牌/体验/性能/内容/创新/技术)可作为未来订单班质量评估标准 - 2025-09-29: Web结果展示系统端口配置标准化完成:建立系统级硬约束使用端口4155,禁止使用8080或其他端口,修改了routes.yaml服务器端口配置、app.js默认端口设置、start-router.sh启动脚本,统一访问地址为http://localhost:4155/主页、http://localhost:4155/order-class/wenlu文旅订单班、http://localhost:4155/order-class/food食品订单班,这是所有未来开发必须严格遵守的系统约束 - 2025-09-29: UI优化完成:RequirementModal组件订单班选择卡片获得显著视觉增强,包括增加卡片间距内边距、hover上浮效果和3D旋转动画、选中状态脉冲光晕效果、右上角勾选标记动画,图标尺寸从20px增加到24px;两个标题可读性提升,从text-sm增加到text-base,添加FileText和PenTool图标,颜色加深至gray-800 - 2025-09-29: 代码清理彻底完成:删除了所有未使用的JSON文件包括/public/data/terminal/wenlu.json、/src/data/food.json、/src/data/wenlu.json,确认项目已完全迁移到TypeScript数据管理方案,不再依赖JSON文件加载方式 @@ -158,8 +165,11 @@ _Last updated: 2025-09-29_ - web_frontend/exhibition-demo/ (React多智能体演示,主入口) - web_frontend/food-order-demo/ (食品订单班演示系统) - web_frontend/web_result/ (展会HTML页面,结果展示) + - web_frontend/web_result/order-classes/food/ (食品订单班SuperDesign v5生产部署) - data/订单班文档资料/ (12个订单班完整文档资料,已重组) - data/智能开发/Agent/ (项目附件:前端资源、字体等) + - .superdesign/design_iterations/ (SuperDesign迭代工作目录) + - .superdesign/archive_食品_20251001/ (食品订单班SuperDesign归档) - .claude/agents/ (Claude智能体配置) - doc/订单班演示策划方案/ (食品订单班方案文档) - doc/notion文档资料/食品/ (食品订单班素材来源) @@ -167,6 +177,7 @@ _Last updated: 2025-09-29_ - n8n平台: cd n8n-n8n-1.109.2 && ./start.sh - 展会演示: cd web_frontend/exhibition-demo && pnpm preview - 食品订单班: cd web_frontend/food-order-demo && pnpm dev (端口4174) + - Web结果展示: 端口4155,访问http://localhost:4155/order-class/food查看SuperDesign v5 - 分支管理: - main (主分支) - My_N8N (个人开发分支) @@ -182,4 +193,8 @@ _Last updated: 2025-09-29_ - 终端模拟系统: exhibition-demo/src/data/terminalSimulations/ (TSX格式,当前支持wenlu.ts和food.ts) - 跳转格式: /web_result/?orderClass=food - 数据存储: sessionStorage配合URL参数 - - 配置内容: 每个订单班包含项目名称、规模、投资、技术指标等专业参数 \ No newline at end of file + - 配置内容: 每个订单班包含项目名称、规模、投资、技术指标等专业参数 +- SuperDesign流程参考: + - evaluation_report.md (7维度评估方法论) + - 迭代策略: 基础框架→Agent强化→专业深度→视觉细节→响应式完善 + - 技术组件: 流式字体/弹性布局/懒加载/防抖/阴影系统/圆角系统/渐变背景/多层纹理 diff --git a/web_frontend/exhibition-demo/src/components/RequirementModal.tsx b/web_frontend/exhibition-demo/src/components/RequirementModal.tsx index 566ab181..62bc5ee2 100644 --- a/web_frontend/exhibition-demo/src/components/RequirementModal.tsx +++ b/web_frontend/exhibition-demo/src/components/RequirementModal.tsx @@ -145,9 +145,12 @@ const RequirementModal: React.FC = ({ isOpen, onClose, on exit={{ opacity: 0, scale: 0.9, y: 20 }} transition={{ type: 'spring', damping: 25, stiffness: 300 }} className="fixed inset-0 flex items-center justify-center z-50 p-4" - onClick={(e) => e.stopPropagation()} + onClick={onClose} > -
+
e.stopPropagation()} + > {/* 头部 - 苹果风格设计 */}
{/* 渐变背景 */} diff --git a/web_frontend/exhibition-demo/src/components/ResultModal.tsx b/web_frontend/exhibition-demo/src/components/ResultModal.tsx index b70b1fdc..e18a3229 100644 --- a/web_frontend/exhibition-demo/src/components/ResultModal.tsx +++ b/web_frontend/exhibition-demo/src/components/ResultModal.tsx @@ -54,9 +54,12 @@ const ResultModal: React.FC = ({ exit={{ opacity: 0, scale: 0.9, y: 20 }} transition={{ type: 'spring', damping: 25, stiffness: 300 }} className="fixed inset-0 flex items-center justify-center z-50 p-4" - onClick={(e) => e.stopPropagation()} + onClick={onClose} > -
+
e.stopPropagation()} + > {/* 头部 */}
+ +
+
+ + {/* 滚动提示 */} +
+
+ 向下滚动 + +
+
+
+ ) +} + +export default HeroSection diff --git a/web_frontend/web_result/order-classes/food/react-app/src/components/TimelineNav.tsx b/web_frontend/web_result/order-classes/food/react-app/src/components/TimelineNav.tsx new file mode 100644 index 00000000..9f0074b4 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/components/TimelineNav.tsx @@ -0,0 +1,111 @@ +import { useState, useEffect } from 'react' +import { gsap } from 'gsap' + +interface NavItem { + id: string + label: string + icon: string +} + +const TimelineNav = () => { + const [activeSection, setActiveSection] = useState('hero') + + const navItems: NavItem[] = [ + { id: 'market', label: '市场调研', icon: '1️⃣' }, + { id: 'brand', label: '品牌定位', icon: '2️⃣' }, + { id: 'product', label: '产品开发', icon: '3️⃣' }, + { id: 'location', label: '选址设计', icon: '4️⃣' }, + { id: 'team', label: '团队建设', icon: '5️⃣' }, + { id: 'finance', label: '财务规划', icon: '6️⃣' }, + { id: 'marketing', label: '营销推广', icon: '7️⃣' }, + ] + + useEffect(() => { + const handleScroll = () => { + const scrollPosition = window.scrollY + window.innerHeight / 2 + + // 检测当前滚动到哪个区块 + navItems.forEach(item => { + const section = document.getElementById(item.id) + if (section) { + const { offsetTop, offsetHeight } = section + if (scrollPosition >= offsetTop && scrollPosition < offsetTop + offsetHeight) { + setActiveSection(item.id) + } + } + }) + } + + window.addEventListener('scroll', handleScroll) + return () => window.removeEventListener('scroll', handleScroll) + }, []) + + const scrollToSection = (sectionId: string) => { + const section = document.getElementById(sectionId) + if (section) { + const yOffset = -80 + const y = section.getBoundingClientRect().top + window.pageYOffset + yOffset + window.scrollTo({ + top: y, + behavior: 'smooth' + }) + } + } + + return ( + + ) +} + +export default TimelineNav diff --git a/web_frontend/web_result/order-classes/food/react-app/src/components/sections/BrandPositioningSection.tsx b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/BrandPositioningSection.tsx new file mode 100644 index 00000000..871b5a13 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/BrandPositioningSection.tsx @@ -0,0 +1,238 @@ +import { useEffect, useRef } from 'react' +import { gsap } from 'gsap' +import { ScrollTrigger } from 'gsap/ScrollTrigger' +import { Sparkles, Award, Heart, Shield } from 'lucide-react' + +gsap.registerPlugin(ScrollTrigger) + +const BrandPositioningSection = () => { + const sectionRef = useRef(null) + + useEffect(() => { + const ctx = gsap.context(() => { + gsap.from('.brand-title', { + y: 50, + opacity: 0, + duration: 1, + scrollTrigger: { + trigger: '.brand-title', + start: 'top 80%', + }, + }) + + gsap.from('.brand-card', { + scale: 0.9, + opacity: 0, + duration: 0.8, + stagger: 0.2, + scrollTrigger: { + trigger: '.brand-card', + start: 'top 85%', + }, + }) + + gsap.from('.value-item', { + x: -30, + opacity: 0, + duration: 0.6, + stagger: 0.1, + scrollTrigger: { + trigger: '.value-item', + start: 'top 85%', + }, + }) + }, sectionRef) + + return () => ctx.revert() + }, []) + + const brandPillars = [ + { + icon: Sparkles, + title: '食材可溯源', + description: '80%有机农场直供', + details: [ + '与认证有机农场建立长期合作', + '每份食材附带溯源二维码', + '实时追踪从农场到餐桌全流程', + '定期公开供应商认证信息', + ], + gradient: 'from-green-500 to-emerald-600', + }, + { + icon: Award, + title: '营养可量化', + description: '精确标注每份营养', + details: [ + '专业营养师团队配方设计', + '精确到克的营养成分标注', + '卡路里、蛋白质、脂肪全透明', + '提供个性化营养建议', + ], + gradient: 'from-blue-500 to-cyan-600', + }, + { + icon: Heart, + title: '制作可看见', + description: '明厨亮灶透明化', + details: [ + '开放式厨房设计', + '全程可视化制作流程', + '严格的卫生操作标准', + '顾客可全程观看制作', + ], + gradient: 'from-purple-500 to-pink-600', + }, + ] + + const brandValues = [ + { icon: '🌱', title: '健康至上', desc: '以健康为核心价值' }, + { icon: '✨', title: '品质保证', desc: '精选优质食材' }, + { icon: '🎯', title: '用心服务', desc: '关注每位顾客' }, + { icon: '🔬', title: '科学配餐', desc: '营养均衡搭配' }, + { icon: '🌍', title: '环保理念', desc: '可持续发展' }, + { icon: '💚', title: '真诚透明', desc: '诚信经营' }, + ] + + return ( +
+
+ {/* 标题 */} +
+
+ 2️⃣ + 第二阶段 +
+

+ 品牌定位与差异化 +

+

+ 打造"青莳轻食"中高端个性化品牌,建立三大核心竞争优势 +

+
+ + {/* 品牌名称解读 */} +
+
+

青莳 QingShi

+
+
+
+

+ 代表新鲜、自然、健康的生活态度。青春活力,清新自然,是品牌的视觉基调。 +

+
+
+
+

+ 寓意培育、呵护与成长。如同精心培育每一道菜品,用心呵护每位顾客的健康。 +

+
+
+
+
+ + {/* 三大核心差异化特点 */} +
+ {brandPillars.map((pillar, index) => { + const Icon = pillar.icon + return ( +
+
+ +
+

{pillar.title}

+

{pillar.description}

+
    + {pillar.details.map((detail, idx) => ( +
  • + + {detail} +
  • + ))} +
+
+ ) + })} +
+ + {/* 品牌价值观 */} +
+

品牌核心价值观

+
+ {brandValues.map((value, index) => ( +
+
{value.icon}
+
{value.title}
+
{value.desc}
+
+ ))} +
+
+ + {/* 目标市场定位 */} +
+
+

市场定位

+
+

+ 中高端轻食市场 + ,面向注重健康、品质和生活方式的都市白领群体 +

+

+ 客单价定位在 35-60元 + ,提供高于市场平均水平的产品品质和服务体验 +

+

+ 选址于写字楼商圈、高端社区 + 周边,覆盖核心目标客户群体 +

+
+
+ +
+

竞争策略

+
+

+ 产品差异化: + 三大核心特点建立竞争壁垒 +

+

+ 服务差异化: + 提供营养咨询和个性化定制 +

+

+ 体验差异化: + 打造健康生活方式社区 +

+

+ 品牌差异化: + 建立信任和情感连接 +

+
+
+
+
+
+ ) +} + +export default BrandPositioningSection diff --git a/web_frontend/web_result/order-classes/food/react-app/src/components/sections/FinancialPlanningSection.tsx b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/FinancialPlanningSection.tsx new file mode 100644 index 00000000..fbe6e313 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/FinancialPlanningSection.tsx @@ -0,0 +1,331 @@ +import { useEffect, useRef } from 'react' +import { gsap } from 'gsap' +import { ScrollTrigger } from 'gsap/ScrollTrigger' +import { DollarSign, TrendingUp, PieChart, Calculator } from 'lucide-react' + +gsap.registerPlugin(ScrollTrigger) + +const FinancialPlanningSection = () => { + const sectionRef = useRef(null) + + useEffect(() => { + const ctx = gsap.context(() => { + gsap.from('.finance-title', { + y: 50, + opacity: 0, + duration: 1, + scrollTrigger: { + trigger: '.finance-title', + start: 'top 80%', + }, + }) + + gsap.from('.finance-card', { + y: 40, + opacity: 0, + duration: 0.8, + stagger: 0.15, + scrollTrigger: { + trigger: '.finance-card', + start: 'top 85%', + }, + }) + }, sectionRef) + + return () => ctx.revert() + }, []) + + const initialInvestment = [ + { + category: '装修费用', + amount: '20-30万元', + items: ['设计费2万', '硬装15万', '软装5万', '招牌灯箱3万'], + color: 'blue', + icon: PieChart, + }, + { + category: '设备采购', + amount: '10-15万元', + items: ['厨房设备8万', '冷藏设备3万', '收银系统1万', '其他设备3万'], + color: 'green', + icon: Calculator, + }, + { + category: '前期物料', + amount: '5-8万元', + items: ['首批食材3万', '餐具包材2万', '清洁用品1万', '营销物料2万'], + color: 'purple', + icon: DollarSign, + }, + { + category: '其他费用', + amount: '5-7万元', + items: ['房租押金3万', '营业执照1万', '员工培训1万', '备用金2万'], + color: 'orange', + icon: TrendingUp, + }, + ] + + const monthlyOperating = [ + { item: '房租', amount: '1.5-2.5万元', percentage: 30 }, + { item: '人力成本', amount: '3.5-4.5万元', percentage: 35 }, + { item: '食材成本', amount: '2-3万元', percentage: 20 }, + { item: '水电煤气', amount: '0.3-0.5万元', percentage: 3 }, + { item: '营销推广', amount: '0.5-1万元', percentage: 5 }, + { item: '其他费用', amount: '0.5-1万元', percentage: 7 }, + ] + + const revenueProjection = [ + { + scenario: '保守预期', + dailySales: 40, + avgPrice: 45, + dailyRevenue: 1800, + monthlyRevenue: 54000, + netProfit: 10800, + profitMargin: '20%', + }, + { + scenario: '正常预期', + dailySales: 60, + avgPrice: 48, + dailyRevenue: 2880, + monthlyRevenue: 86400, + netProfit: 25920, + profitMargin: '30%', + }, + { + scenario: '乐观预期', + dailySales: 80, + avgPrice: 50, + dailyRevenue: 4000, + monthlyRevenue: 120000, + netProfit: 48000, + profitMargin: '40%', + }, + ] + + return ( +
+
+ {/* 标题 */} +
+
+ 6️⃣ + 第六阶段 +
+

+ 财务规划与投资回报 +

+

+ 总投资40-60万元,预计8-12个月回本,首年净利润58万元 +

+
+ + {/* 初期投资 */} +
+

初期投资明细

+
+ {initialInvestment.map((investment, index) => { + const Icon = investment.icon + return ( +
+
+ +
+

{investment.category}

+
{investment.amount}
+
    + {investment.items.map((item, idx) => ( +
  • + + {item} +
  • + ))} +
+
+ ) + })} +
+
+
+
总投资预算
+
40-60万元
+
+
+
+ + {/* 月度运营成本 */} +
+

月度运营成本

+
+ {monthlyOperating.map((item, index) => ( +
+
+ {item.item} +
+
+
+
+
+
+
+ {item.amount} +
+
+ ))} +
+
+
月度总运营成本
+
8-12万元
+
+
+ + {/* 营收预测 */} +
+

营收与利润预测

+
+ {revenueProjection.map((projection, index) => ( +
+
+

+ {projection.scenario} +

+ {index === 1 && ( + + 推荐参考 + + )} +
+ +
+
+ + 日均单量 + + + {projection.dailySales}单 + +
+ +
+ + 客单价 + + + ¥{projection.avgPrice} + +
+ +
+ + 日营业额 + + + ¥{projection.dailyRevenue} + +
+ +
+ + 月营业额 + + + ¥{projection.monthlyRevenue.toLocaleString()} + +
+ +
+ + 净利润率 + + + {projection.profitMargin} + +
+ +
+
+ 月净利润 +
+
+ ¥{projection.netProfit.toLocaleString()} +
+
+
+
+ ))} +
+
+ + {/* 投资回报分析 */} +
+

投资回报分析

+
+
+
📅
+
回本周期
+
8-12个月
+
+
+
💰
+
首年净利润
+
58万元
+
+
+
📈
+
年投资回报率
+
116%
+
+
+ +
+

+ 基于正常经营预期,首年可实现营业额 + 103.7万元 + ,净利润率 + 30% + ,净利润 + 58万元 + 。第二年随着品牌知名度提升和客户积累,利润将持续增长。 +

+
+
+
+
+ ) +} + +export default FinancialPlanningSection diff --git a/web_frontend/web_result/order-classes/food/react-app/src/components/sections/LocationDesignSection.tsx b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/LocationDesignSection.tsx new file mode 100644 index 00000000..3274ff27 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/LocationDesignSection.tsx @@ -0,0 +1,257 @@ +import { useEffect, useRef } from 'react' +import { gsap } from 'gsap' +import { ScrollTrigger } from 'gsap/ScrollTrigger' +import { MapPin, Store, Palette, Users } from 'lucide-react' + +gsap.registerPlugin(ScrollTrigger) + +const LocationDesignSection = () => { + const sectionRef = useRef(null) + + useEffect(() => { + const ctx = gsap.context(() => { + gsap.from('.location-title', { + y: 50, + opacity: 0, + duration: 1, + scrollTrigger: { + trigger: '.location-title', + start: 'top 80%', + }, + }) + + gsap.from('.location-card', { + y: 40, + opacity: 0, + duration: 0.8, + stagger: 0.2, + scrollTrigger: { + trigger: '.location-card', + start: 'top 85%', + }, + }) + }, sectionRef) + + return () => ctx.revert() + }, []) + + const locationCriteria = [ + { + icon: MapPin, + title: '核心商圈', + description: '写字楼、高端社区周边', + requirements: [ + '日均人流量 > 5000人', + '白领占比 > 60%', + '周边500米内办公人群 > 2000人', + '可见性好,易于到达', + ], + }, + { + icon: Store, + title: '店铺规格', + description: '面积60-120㎡', + requirements: [ + '实际使用面积 80-100㎡', + '层高 > 3米', + '门面宽度 > 6米', + '具备上下水、排烟条件', + ], + }, + { + icon: Palette, + title: '装修风格', + description: '简约现代,自然清新', + requirements: [ + '浅色系为主基调', + '原木元素点缀', + '充足自然采光', + '绿植景观设计', + ], + }, + { + icon: Users, + title: '功能分区', + description: '合理布局,提升效率', + requirements: [ + '开放式厨房占比30%', + '用餐区占比50%', + '收银接待区占比10%', + '储物备餐区占比10%', + ], + }, + ] + + const designElements = [ + { + title: '色彩方案', + items: ['主色: 浅青色/绿色', '辅色: 米白色', '点缀色: 原木色'], + emoji: '🎨', + }, + { + title: '材质选择', + items: ['原木桌椅', '大理石台面', '绿植墙面', '玻璃隔断'], + emoji: '🪵', + }, + { + title: '照明设计', + items: ['自然光为主', '暖光LED', '重点照明', '氛围灯光'], + emoji: '💡', + }, + { + title: '软装配饰', + items: ['北欧风家具', '艺术挂画', '绿色植物', '舒适座椅'], + emoji: '🛋️', + }, + ] + + return ( +
+
+ {/* 标题 */} +
+
+ 4️⃣ + 第四阶段 +
+

+ 选址与店铺设计 +

+

+ 精选核心商圈,打造简约自然的用餐环境,提供舒适愉悦的消费体验 +

+
+ + {/* 选址与设计标准 */} +
+ {locationCriteria.map((criterion, index) => { + const Icon = criterion.icon + return ( +
+
+
+ +
+
+

{criterion.title}

+

{criterion.description}

+
+
+ +
+ {criterion.requirements.map((req, idx) => ( +
+
+ {req} +
+ ))} +
+
+ ) + })} +
+ + {/* 设计元素 */} +
+

设计元素

+
+ {designElements.map((element, index) => ( +
+
{element.emoji}
+

{element.title}

+
    + {element.items.map((item, idx) => ( +
  • {item}
  • + ))} +
+
+ ))} +
+
+ + {/* 空间布局示意 */} +
+

店铺空间布局

+
+
+

前厅区域 (70%)

+
    +
  • + 🍽️ +
    +
    用餐区
    +
    30-40个座位,多种座位类型
    +
    +
  • +
  • + 🔍 +
    +
    开放式厨房
    +
    透明化制作,增强信任感
    +
    +
  • +
  • + 💳 +
    +
    收银接待区
    +
    点餐、取餐、咨询一体化
    +
    +
  • +
+
+
+

后厨区域 (30%)

+
    +
  • + 🥗 +
    +
    食材准备区
    +
    清洗、切配、腌制
    +
    +
  • +
  • + 🔥 +
    +
    烹饪操作区
    +
    煎、烤、蒸、煮
    +
    +
  • +
  • + ❄️ +
    +
    冷藏储存区
    +
    冷柜、冷库、干货区
    +
    +
  • +
+
+
+ +
+

+ 总投资预算: 35-50万元 + (含装修、设备、前期物料) +

+
+
+
+
+ ) +} + +export default LocationDesignSection diff --git a/web_frontend/web_result/order-classes/food/react-app/src/components/sections/MarketResearchSection.tsx b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/MarketResearchSection.tsx new file mode 100644 index 00000000..61a1350d --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/MarketResearchSection.tsx @@ -0,0 +1,241 @@ +import { useEffect, useRef } from 'react' +import { gsap } from 'gsap' +import { ScrollTrigger } from 'gsap/ScrollTrigger' +import { TrendingUp, Users, DollarSign, Target } from 'lucide-react' + +gsap.registerPlugin(ScrollTrigger) + +const MarketResearchSection = () => { + const sectionRef = useRef(null) + + useEffect(() => { + const ctx = gsap.context(() => { + // 标题动画 + gsap.from('.market-title', { + y: 50, + opacity: 0, + duration: 1, + scrollTrigger: { + trigger: '.market-title', + start: 'top 80%', + }, + }) + + // 统计卡片动画 + gsap.from('.stat-card', { + y: 30, + opacity: 0, + duration: 0.8, + stagger: 0.15, + scrollTrigger: { + trigger: '.stat-card', + start: 'top 85%', + }, + }) + + // 趋势图动画 + gsap.from('.trend-item', { + x: -50, + opacity: 0, + duration: 0.6, + stagger: 0.1, + scrollTrigger: { + trigger: '.trend-item', + start: 'top 85%', + }, + }) + }, sectionRef) + + return () => ctx.revert() + }, []) + + const marketStats = [ + { + icon: DollarSign, + value: '1200亿元', + label: '2024年市场规模', + color: 'text-green-500', + bgColor: 'bg-green-50', + }, + { + icon: TrendingUp, + value: '18%', + label: '年复合增长率', + color: 'text-blue-500', + bgColor: 'bg-blue-50', + }, + { + icon: Users, + value: '3.5亿', + label: '目标用户群体', + color: 'text-purple-500', + bgColor: 'bg-purple-50', + }, + { + icon: Target, + value: '65%', + label: '白领女性占比', + color: 'text-pink-500', + bgColor: 'bg-pink-50', + }, + ] + + const trends = [ + { year: '2023年', value: '1020亿', growth: '+15%' }, + { year: '2024年', value: '1200亿', growth: '+18%' }, + { year: '2025年(预测)', value: '1416亿', growth: '+18%' }, + { year: '2026年(预测)', value: '1671亿', growth: '+18%' }, + ] + + return ( +
+
+ {/* 标题 */} +
+
+ 1️⃣ + 第一阶段 +
+

+ 市场调研与分析 +

+

+ 深入分析轻食市场现状,精准定位目标客户群体,把握行业发展趋势 +

+
+ + {/* 市场统计卡片 */} +
+ {marketStats.map((stat, index) => { + const Icon = stat.icon + return ( +
+
+ +
+
{stat.value}
+
{stat.label}
+
+ ) + })} +
+ + {/* 市场趋势 */} +
+

市场规模增长趋势

+
+ {trends.map((trend, index) => ( +
+
+ {trend.year} +
+
+
+
+ {trend.value} +
+
+
+
+ + {trend.growth} + +
+
+ ))} +
+
+ + {/* 目标客户群体 */} +
+
+

核心客户画像

+
+
+
+
+
年龄段
+
25-45岁中高端白领群体
+
+
+
+
+
+
收入水平
+
月收入8000元以上
+
+
+
+
+
+
消费特点
+
注重健康、品质和效率
+
+
+
+
+
+
用餐场景
+
工作日午餐、健身后轻食
+
+
+
+
+ +
+

市场机会分析

+
+
+
+
+
健康意识提升
+
消费者对健康饮食需求持续增长
+
+
+
+
+
+
差异化空间大
+
市场同质化严重,创新品牌有优势
+
+
+
+
+
+
政策支持
+
健康中国战略推动行业发展
+
+
+
+
+
+
消费升级
+
愿意为品质和服务支付溢价
+
+
+
+
+
+
+
+ ) +} + +export default MarketResearchSection diff --git a/web_frontend/web_result/order-classes/food/react-app/src/components/sections/MarketingSection.tsx b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/MarketingSection.tsx new file mode 100644 index 00000000..1b5c970f --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/MarketingSection.tsx @@ -0,0 +1,345 @@ +import { useEffect, useRef } from 'react' +import { gsap } from 'gsap' +import { ScrollTrigger } from 'gsap/ScrollTrigger' +import { Smartphone, Users, Share2, Gift, Star, MessageCircle } from 'lucide-react' + +gsap.registerPlugin(ScrollTrigger) + +const MarketingSection = () => { + const sectionRef = useRef(null) + + useEffect(() => { + const ctx = gsap.context(() => { + gsap.from('.marketing-title', { + y: 50, + opacity: 0, + duration: 1, + scrollTrigger: { + trigger: '.marketing-title', + start: 'top 80%', + }, + }) + + gsap.from('.marketing-card', { + scale: 0.95, + opacity: 0, + duration: 0.8, + stagger: 0.15, + scrollTrigger: { + trigger: '.marketing-card', + start: 'top 85%', + }, + }) + }, sectionRef) + + return () => ctx.revert() + }, []) + + const marketingStrategies = [ + { + title: '线上推广', + icon: Smartphone, + color: 'blue', + tactics: [ + { + name: '小程序商城', + description: '自有小程序,在线点餐、会员管理', + budget: '2万元', + }, + { + name: '抖音/小红书', + description: '短视频营销,探店打卡种草', + budget: '1万元/月', + }, + { + name: '美团/饿了么', + description: '外卖平台入驻,扩大覆盖范围', + budget: '佣金20%', + }, + { + name: 'SEO优化', + description: '搜索引擎优化,提升品牌曝光', + budget: '5000元/月', + }, + ], + }, + { + title: '线下推广', + icon: Users, + color: 'green', + tactics: [ + { + name: '开业活动', + description: '前100名5折优惠,吸引首批客户', + budget: '1万元', + }, + { + name: '地推宣传', + description: '周边写字楼发放优惠券', + budget: '5000元', + }, + { + name: '异业合作', + description: '与健身房、瑜伽馆等合作', + budget: '3000元', + }, + { + name: '试吃活动', + description: '定期举办新品试吃活动', + budget: '2000元/月', + }, + ], + }, + { + title: '会员体系', + icon: Gift, + color: 'purple', + tactics: [ + { + name: '充值优惠', + description: '充500送50,充1000送150', + budget: '让利10-15%', + }, + { + name: '积分系统', + description: '消费1元积1分,积分兑换礼品', + budget: '5000元/月', + }, + { + name: '生日特权', + description: '生日当月享受8折优惠', + budget: '3000元/月', + }, + { + name: '会员专享', + description: '新品优先体验、专属活动', + budget: '2000元/月', + }, + ], + }, + { + title: '口碑营销', + icon: Share2, + color: 'pink', + tactics: [ + { + name: '分享有礼', + description: '分享朋友圈集赞送饮品', + budget: '5000元/月', + }, + { + name: '拼团活动', + description: '3人拼团享8折优惠', + budget: '8折让利', + }, + { + name: '推荐返现', + description: '老客户推荐新客户各得10元', + budget: '3000元/月', + }, + { + name: 'UGC内容', + description: '鼓励顾客发布用餐照片', + budget: '礼品成本', + }, + ], + }, + ] + + const marketingTimeline = [ + { + phase: '开业前1个月', + actions: ['小程序开发上线', '社交媒体账号注册', '周边地推宣传', '异业合作洽谈'], + icon: '🎯', + }, + { + phase: '开业首月', + actions: ['开业大促活动', '会员系统推广', '抖音探店合作', '外卖平台入驻'], + icon: '🚀', + }, + { + phase: '第2-3个月', + actions: ['会员活动运营', '定期试吃活动', '短视频持续输出', '口碑营销推进'], + icon: '📈', + }, + { + phase: '稳定运营期', + actions: ['会员精细化运营', 'KOL合作推广', '季节性新品营销', '社区活动参与'], + icon: '⭐', + }, + ] + + const kpiTargets = [ + { metric: '首月获客', target: '500+', icon: '👥' }, + { metric: '会员转化率', target: '40%', icon: '💳' }, + { metric: '复购率', target: '60%', icon: '🔄' }, + { metric: '线上订单占比', target: '30%', icon: '📱' }, + { metric: '客户满意度', target: '4.5分', icon: '⭐' }, + { metric: '月营销成本', target: '<2万', icon: '💰' }, + ] + + return ( +
+
+ {/* 标题 */} +
+
+ 7️⃣ + 第七阶段 +
+

+ 营销推广策略 +

+

+ 线上线下结合,会员体系驱动,口碑传播为核心的全方位营销策略 +

+
+ + {/* 营销策略 */} +
+ {marketingStrategies.map((strategy, index) => { + const Icon = strategy.icon + return ( +
+
+
+ +
+
+

{strategy.title}

+
+
+ +
+ {strategy.tactics.map((tactic, idx) => ( +
+
+

{tactic.name}

+ + {tactic.budget} + +
+

{tactic.description}

+
+ ))} +
+
+ ) + })} +
+ + {/* 营销时间线 */} +
+

营销时间规划

+
+ {marketingTimeline.map((timeline, index) => ( +
+
{timeline.icon}
+

{timeline.phase}

+
    + {timeline.actions.map((action, idx) => ( +
  • + + {action} +
  • + ))} +
+
+ ))} +
+
+ + {/* KPI目标 */} +
+

营销KPI目标

+
+ {kpiTargets.map((kpi, index) => ( +
+
{kpi.icon}
+
{kpi.metric}
+
{kpi.target}
+
+ ))} +
+
+ + {/* 营销预算总结 */} +
+
+

营销预算分配

+
+
+ 开业前期投入 + 3-5万元 +
+
+ 月度营销费用 + 1.5-2万元 +
+
+ 营销费用占比 + 15-20% +
+
+
+ +
+

预期营销效果

+
+

+ + + 品牌认知: 3个月内成为区域知名轻食品牌 + +

+

+ + + 客户积累: 首年积累2000+会员客户 + +

+

+ + + 口碑传播: 60%新客户来自老客户推荐 + +

+

+ + + 复购率: 保持60%以上的高复购率 + +

+
+
+
+
+
+ ) +} + +export default MarketingSection diff --git a/web_frontend/web_result/order-classes/food/react-app/src/components/sections/ProductDevelopmentSection.tsx b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/ProductDevelopmentSection.tsx new file mode 100644 index 00000000..eaad8a89 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/ProductDevelopmentSection.tsx @@ -0,0 +1,240 @@ +import { useEffect, useRef } from 'react' +import { gsap } from 'gsap' +import { ScrollTrigger } from 'gsap/ScrollTrigger' +import { Utensils, Leaf, Flame, Clock } from 'lucide-react' + +gsap.registerPlugin(ScrollTrigger) + +const ProductDevelopmentSection = () => { + const sectionRef = useRef(null) + + useEffect(() => { + const ctx = gsap.context(() => { + gsap.from('.product-title', { + y: 50, + opacity: 0, + duration: 1, + scrollTrigger: { + trigger: '.product-title', + start: 'top 80%', + }, + }) + + gsap.from('.product-card', { + y: 40, + opacity: 0, + duration: 0.8, + stagger: 0.15, + scrollTrigger: { + trigger: '.product-card', + start: 'top 85%', + }, + }) + }, sectionRef) + + return () => ctx.revert() + }, []) + + const productCategories = [ + { + name: '能量碗系列', + description: '高蛋白低脂,适合健身人群', + icon: Flame, + color: 'orange', + products: [ + '青莳香煎牛肉能量碗', + '烤鸡胸蔬菜能量碗', + '三文鱼牛油果能量碗', + '藜麦虾仁能量碗', + ], + }, + { + name: '轻食沙拉系列', + description: '清爽低卡,膳食纤维丰富', + icon: Leaf, + color: 'green', + products: [ + '青莳虾仁牛油果沙拉', + '烟熏三文鱼沙拉', + '鸡胸凯撒沙拉', + '田园蔬菜沙拉', + ], + }, + { + name: '冷意面系列', + description: '夏日清凉,口感丰富', + icon: Utensils, + color: 'blue', + products: [ + '青莳夏季芒果鸡胸冷意面', + '番茄海鲜冷意面', + '青酱鸡肉冷意面', + '日式和风冷意面', + ], + }, + { + name: '定制套餐', + description: '个性化营养方案', + icon: Clock, + color: 'purple', + products: [ + '青莳减脂专属套餐', + '增肌健身套餐', + '办公室白领套餐', + '孕期营养套餐', + ], + }, + ] + + const nutritionFeatures = [ + { + title: '精准热量控制', + desc: '每份餐品热量控制在400-600卡路里', + value: '400-600', + unit: 'kcal', + }, + { + title: '高蛋白配比', + desc: '蛋白质含量占比25-35%', + value: '25-35', + unit: '%', + }, + { + title: '低GI食材', + desc: '血糖指数控制在55以下', + value: '<55', + unit: 'GI', + }, + { + title: '膳食纤维', + desc: '每份含8-12g膳食纤维', + value: '8-12', + unit: 'g', + }, + ] + + return ( +
+
+ {/* 标题 */} +
+
+ 3️⃣ + 第三阶段 +
+

+ 产品开发与菜单设计 +

+

+ 32款精心研发的轻食产品,科学营养配比,满足不同需求 +

+
+ + {/* 营养特点 */} +
+ {nutritionFeatures.map((feature, index) => ( +
+
+ {feature.value} + {feature.unit} +
+
{feature.title}
+
{feature.desc}
+
+ ))} +
+ + {/* 产品系列 */} +
+ {productCategories.map((category, index) => { + const Icon = category.icon + return ( +
+
+
+ +
+
+

{category.name}

+

{category.description}

+
+
+ +
+ {category.products.map((product, idx) => ( +
+
+ + {product} + +
+ ))} +
+ +
+ +
+
+ ) + })} +
+ + {/* 产品开发理念 */} +
+

产品研发理念

+
+
+
🔬
+
科学配方
+
+ 营养师团队精心设计,确保每份餐品营养均衡 +
+
+
+
👨‍🍳
+
匠心制作
+
+ 资深厨师团队,精选食材,严格把控每道工序 +
+
+
+
💚
+
持续创新
+
+ 每季度推出新品,紧跟健康饮食趋势 +
+
+
+
+
+
+ ) +} + +export default ProductDevelopmentSection diff --git a/web_frontend/web_result/order-classes/food/react-app/src/components/sections/TeamBuildingSection.tsx b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/TeamBuildingSection.tsx new file mode 100644 index 00000000..408b4b1a --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/components/sections/TeamBuildingSection.tsx @@ -0,0 +1,279 @@ +import { useEffect, useRef } from 'react' +import { gsap } from 'gsap' +import { ScrollTrigger } from 'gsap/ScrollTrigger' +import { ChefHat, GraduationCap, Heart, Trophy } from 'lucide-react' + +gsap.registerPlugin(ScrollTrigger) + +const TeamBuildingSection = () => { + const sectionRef = useRef(null) + + useEffect(() => { + const ctx = gsap.context(() => { + gsap.from('.team-title', { + y: 50, + opacity: 0, + duration: 1, + scrollTrigger: { + trigger: '.team-title', + start: 'top 80%', + }, + }) + + gsap.from('.team-card', { + scale: 0.95, + opacity: 0, + duration: 0.8, + stagger: 0.15, + scrollTrigger: { + trigger: '.team-card', + start: 'top 85%', + }, + }) + }, sectionRef) + + return () => ctx.revert() + }, []) + + const teamStructure = [ + { + role: '店长', + count: 1, + icon: Trophy, + color: 'purple', + responsibilities: [ + '整体运营管理', + '人员调度安排', + '客户关系维护', + '业绩目标达成', + ], + requirements: '3年以上餐饮管理经验', + salary: '8000-12000元/月', + }, + { + role: '厨师长', + count: 1, + icon: ChefHat, + color: 'orange', + responsibilities: [ + '菜品研发创新', + '食材质量把控', + '厨房团队管理', + '出品标准监督', + ], + requirements: '5年以上轻食/西餐经验', + salary: '7000-10000元/月', + }, + { + role: '厨师', + count: 2, + icon: ChefHat, + color: 'green', + responsibilities: [ + '菜品制作加工', + '食材准备处理', + '厨房卫生维护', + '协助菜品研发', + ], + requirements: '2年以上厨房工作经验', + salary: '5000-7000元/月', + }, + { + role: '服务员', + count: 3, + icon: Heart, + color: 'pink', + responsibilities: [ + '顾客接待服务', + '点餐收银操作', + '餐厅清洁维护', + '客户反馈收集', + ], + requirements: '良好服务意识和沟通能力', + salary: '4000-6000元/月', + }, + ] + + const trainingPrograms = [ + { + title: '产品知识培训', + duration: '3天', + content: [ + '菜品原料和制作工艺', + '营养成分和健康价值', + '食材溯源系统使用', + '产品推荐技巧', + ], + emoji: '📚', + }, + { + title: '服务标准培训', + duration: '2天', + content: [ + '服务流程和话术', + '顾客投诉处理', + '收银系统操作', + '卫生安全规范', + ], + emoji: '🎯', + }, + { + title: '品牌文化培训', + duration: '1天', + content: [ + '品牌理念和价值观', + '企业文化认同', + '团队协作精神', + '职业发展规划', + ], + emoji: '💚', + }, + { + title: '持续培训机制', + duration: '长期', + content: [ + '每月新品培训', + '季度技能考核', + '优秀员工分享', + '外部学习交流', + ], + emoji: '🔄', + }, + ] + + const incentiveSystem = [ + { icon: '💰', title: '绩效奖金', desc: '月度/季度销售达成奖励' }, + { icon: '🏆', title: '晋升机制', desc: '明确的职业发展通道' }, + { icon: '🎓', title: '培训机会', desc: '提供专业技能提升培训' }, + { icon: '🎁', title: '福利待遇', desc: '五险一金、带薪年假、节日福利' }, + { icon: '🌟', title: '员工关怀', desc: '生日礼物、员工活动、困难帮扶' }, + { icon: '👥', title: '团队建设', desc: '定期团建活动增强凝聚力' }, + ] + + return ( +
+
+ {/* 标题 */} +
+
+ 5️⃣ + 第五阶段 +
+

+ 团队建设与培训 +

+

+ 7人精干团队,完善的培训体系,打造专业高效的服务团队 +

+
+ + {/* 团队架构 */} +
+ {teamStructure.map((member, index) => { + const Icon = member.icon + return ( +
+
+
+ +
+
+
+

{member.role}

+ + {member.count}人 + +
+
{member.requirements}
+
{member.salary}
+
+
+ +
+
岗位职责:
+ {member.responsibilities.map((resp, idx) => ( +
+
+ {resp} +
+ ))} +
+
+ ) + })} +
+ + {/* 培训体系 */} +
+

培训体系

+
+ {trainingPrograms.map((program, index) => ( +
+
{program.emoji}
+

{program.title}

+
+ 培训周期: {program.duration} +
+
    + {program.content.map((item, idx) => ( +
  • + + {item} +
  • + ))} +
+
+ ))} +
+
+ + {/* 激励机制 */} +
+

激励与福利体系

+
+ {incentiveSystem.map((incentive, index) => ( +
+
{incentive.icon}
+
{incentive.title}
+
{incentive.desc}
+
+ ))} +
+ +
+
+
总人力成本预算
+
3.5-4.5万元/月
+
(含工资、社保、福利)
+
+
+
+
+
+ ) +} + +export default TeamBuildingSection diff --git a/web_frontend/web_result/order-classes/food/react-app/src/index.css b/web_frontend/web_result/order-classes/food/react-app/src/index.css new file mode 100644 index 00000000..08a3ac9e --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/web_frontend/web_result/order-classes/food/react-app/src/main.tsx b/web_frontend/web_result/order-classes/food/react-app/src/main.tsx new file mode 100644 index 00000000..bef5202a --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/web_frontend/web_result/order-classes/food/react-app/tsconfig.app.json b/web_frontend/web_result/order-classes/food/react-app/tsconfig.app.json new file mode 100644 index 00000000..a9b5a59c --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/tsconfig.app.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2022", + "useDefineForClassFields": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "module": "ESNext", + "types": ["vite/client"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/web_frontend/web_result/order-classes/food/react-app/tsconfig.json b/web_frontend/web_result/order-classes/food/react-app/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/web_frontend/web_result/order-classes/food/react-app/tsconfig.node.json b/web_frontend/web_result/order-classes/food/react-app/tsconfig.node.json new file mode 100644 index 00000000..7a77bab3 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/tsconfig.node.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "types": [], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/web_frontend/web_result/order-classes/food/react-app/vite.config.ts b/web_frontend/web_result/order-classes/food/react-app/vite.config.ts new file mode 100644 index 00000000..8b0f57b9 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) diff --git a/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/design-system.md b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/design-system.md new file mode 100644 index 00000000..0c942fa6 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/design-system.md @@ -0,0 +1,264 @@ +# 青莳轻食设计系统 + +## 颜色方案 + +### 主色调 (Primary) - 浅青色/绿色系 +代表健康、清新、自然的品牌特质 + +```css +--primary-50: #e8f5e9 /* 超淡绿 - 背景 */ +--primary-100: #c8e6c9 /* 淡绿 - 次要背景 */ +--primary-200: #a5d6a7 /* 浅绿 - 悬停状态 */ +--primary-300: #81c784 /* 中浅绿 */ +--primary-400: #66bb6a /* 绿 - 次要按钮 */ +--primary-500: #4caf50 /* 标准绿 - 主按钮、重点文字 ⭐ */ +--primary-600: #43a047 /* 深绿 - 按钮悬停 */ +--primary-700: #388e3c /* 较深绿 */ +--primary-800: #2e7d32 /* 深绿 - 深色主题 */ +--primary-900: #1b5e20 /* 最深绿 - 强调 */ +``` + +### 辅助色 (Secondary) - 米白色系 +代表纯净、简约、清洁 + +```css +--secondary-50: #fafafa /* 超淡灰白 */ +--secondary-100: #f5f5f5 /* 米白色 - 主要背景 ⭐ */ +--secondary-200: #eeeeee /* 浅灰白 */ +--secondary-300: #e0e0e0 /* 边框、分隔线 */ +--secondary-400: #bdbdbd /* 次要文字 */ +--secondary-500: #9e9e9e /* 禁用状态 */ +``` + +### 点缀色 (Accent) - 原木色系 +代表温暖、品质、自然 + +```css +--accent-50: #f3e5d4 /* 超淡原木色 */ +--accent-100: #e6d0bc /* 淡原木色 */ +--accent-200: #d9baa4 /* 浅原木色 */ +--accent-300: #cca58c /* 中浅原木色 */ +--accent-400: #bf9074 /* 原木色 */ +--accent-500: #8b7355 /* 标准原木色 - 桌椅框架 ⭐ */ +--accent-600: #6d5a43 /* 深原木色 */ +--accent-700: #4f4132 /* 最深原木色 */ +``` + +## 字体系统 + +### 字体家族 +```css +font-sans: 'Inter', system-ui, -apple-system, sans-serif +font-serif: ui-serif, Georgia, Cambria, serif +font-mono: 'JetBrains Mono', 'Fira Code', monospace +``` + +### 字号规模 (使用 clamp 实现响应式) +```css +text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem) /* 12-14px */ +text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem) /* 14-16px */ +text-base: clamp(1rem, 0.9rem + 0.5vw, 1.125rem) /* 16-18px */ +text-lg: clamp(1.125rem, 1rem + 0.625vw, 1.25rem) /* 18-20px */ +text-xl: clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem) /* 20-24px */ +text-2xl: clamp(1.5rem, 1.3rem + 1vw, 2rem) /* 24-32px */ +text-3xl: clamp(1.875rem, 1.6rem + 1.375vw, 2.5rem) /* 30-40px */ +text-4xl: clamp(2.25rem, 1.9rem + 1.75vw, 3rem) /* 36-48px */ +text-5xl: clamp(3rem, 2.5rem + 2.5vw, 4rem) /* 48-64px */ +``` + +### 字重 +```css +font-light: 300 /* 轻量文字 */ +font-normal: 400 /* 正文 */ +font-medium: 500 /* 次要标题 */ +font-semibold: 600 /* 主要标题 */ +font-bold: 700 /* 强调标题 */ +``` + +### 行高 +```css +leading-tight: 1.25 /* 标题 */ +leading-snug: 1.375 /* 副标题 */ +leading-normal: 1.5 /* 正文 */ +leading-relaxed: 1.625 /* 舒适正文 */ +leading-loose: 2 /* 宽松正文 */ +``` + +## 间距系统 + +### 基础单位:4px (0.25rem) +```css +spacing-0: 0 /* 0px */ +spacing-1: 0.25 /* 4px */ +spacing-2: 0.5 /* 8px ⭐ 基础单位 */ +spacing-3: 0.75 /* 12px */ +spacing-4: 1 /* 16px ⭐ 组件内边距 */ +spacing-6: 1.5 /* 24px ⭐ 组件间距 */ +spacing-8: 2 /* 32px ⭐ 区块间距 */ +spacing-12: 3 /* 48px ⭐ 大区块间距 */ +spacing-16: 4 /* 64px */ +spacing-24: 6 /* 96px ⭐ 章节间距 */ +spacing-32: 8 /* 128px */ +``` + +## 圆角系统 +```css +rounded-none: 0 /* 无圆角 */ +rounded-sm: 0.125 /* 2px */ +rounded: 0.25 /* 4px */ +rounded-md: 0.375 /* 6px ⭐ 卡片 */ +rounded-lg: 0.5 /* 8px ⭐ 按钮 */ +rounded-xl: 0.75 /* 12px */ +rounded-2xl: 1 /* 16px */ +rounded-3xl: 1.5 /* 24px */ +rounded-4xl: 2 /* 32px ⭐ 图片容器 */ +rounded-full: 9999 /* 完全圆形 */ +``` + +## 阴影系统 +```css +shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05) +shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06) +shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.06) +shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05) +shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04) +shadow-2xl: 0 25px 50px rgba(0, 0, 0, 0.15) +shadow-soft: 0 2px 15px -3px rgba(0, 0, 0, 0.07), 0 10px 20px -2px rgba(0, 0, 0, 0.04) ⭐ +shadow-hard: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) +``` + +## 动画原则 (GSAP) + +### 缓动函数 (Easing) +```javascript +// 标准缓动 +"power2.inOut" // 默认,平滑进出 +"power3.out" // 快进慢出,用于入场 +"power2.out" // 用于悬停效果 + +// 弹性缓动 +"elastic.out(1, 0.3)" // 弹性效果,用于强调 +"back.out(1.7)" // 回弹效果,用于卡片 + +// 自定义 +CustomEase.create("custom", "M0,0 C0.14,0 0.242,0.438 0.272,0.561 0.313,0.728 0.354,0.963 0.362,1 0.37,0.985 0.414,0.873 0.455,0.811 0.51,0.726 0.573,0.753 0.586,0.762 0.662,0.812 0.719,0.981 0.726,0.998 0.788,0.914 0.84,0.936 0.859,0.95 0.878,0.964 0.897,0.985 0.911,0.998 0.922,0.994 0.939,0.984 0.954,0.984 0.969,0.984 1,1 1,1") +``` + +### 持续时间 (Duration) +```javascript +0.15s // 微交互(按钮点击) +0.3s // 快速过渡(悬停效果) +0.6s // 标准动画(卡片入场) +1.0s // 慢动画(大区块入场) +1.5s // 长动画(首屏Hero) +``` + +### ScrollTrigger 配置 +```javascript +ScrollTrigger.create({ + trigger: element, + start: "top 80%", // 元素顶部到达视口80%位置时触发 + end: "bottom 20%", // 元素底部离开视口80%位置时结束 + scrub: 1, // 1秒延迟跟随滚动 + markers: false, // 开发模式显示标记 + toggleActions: "play none none reverse" +}) +``` + +### 动画时间轴 +```javascript +const tl = gsap.timeline({ + defaults: { duration: 0.6, ease: "power2.out" } +}) + +tl.from(".hero-title", { y: 50, opacity: 0 }) + .from(".hero-subtitle", { y: 30, opacity: 0 }, "-=0.4") + .from(".hero-cta", { scale: 0.9, opacity: 0 }, "-=0.3") +``` + +### Stagger 延迟 +```javascript +gsap.from(".card", { + y: 100, + opacity: 0, + duration: 0.8, + stagger: { + each: 0.1, // 每个元素延迟0.1s + from: "start", // 从第一个开始 + ease: "power2.out" + } +}) +``` + +## 组件样式示例 + +### 按钮 +```jsx +// 主按钮 + + +// 次要按钮 + +``` + +### 卡片 +```jsx +
+ {/* 卡片内容 */} +
+``` + +### 标题 +```jsx +

+ 青莳轻食 +

+

+ 中高端个性化轻食店铺经营方案 +

+

+ 食材可溯源、营养可量化、制作可看见 +

+``` + +## 响应式断点 +```css +sm: 640px /* 小型设备 (手机横屏) */ +md: 768px /* 中型设备 (平板) */ +lg: 1024px /* 大型设备 (小笔记本) ⭐ */ +xl: 1280px /* 超大设备 (桌面) ⭐ */ +2xl: 1536px /* 超超大设备 (大桌面) */ +``` + +## 布局容器 +```jsx +// 标准容器 +
+ {/* 内容 */} +
+ +// 全宽容器 +
+ {/* 内容 */} +
+ +// 内容区块 +
+ {/* 区块内容 */} +
+``` + +--- + +**版本**: 1.0 +**创建时间**: 2025-10-01 +**适用项目**: 青莳轻食订单班展示网站 diff --git a/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/information-architecture.md b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/information-architecture.md new file mode 100644 index 00000000..eeb017d6 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/information-architecture.md @@ -0,0 +1,409 @@ +# 青莳轻食网站信息架构 + +## 整体结构 + +``` +青莳轻食订单班展示网站 +│ +├── Hero Section (首屏) +│ ├── 品牌标题:青莳轻食 +│ ├── 副标题:中高端个性化轻食店铺经营方案 +│ ├── 核心数据:1200亿市场规模 +│ ├── 三大差异化特点 +│ └── 滚动提示动画 +│ +├── Timeline Navigation (固定时间轴导航) +│ ├── 进度指示器 +│ ├── 快速跳转按钮 +│ └── 当前阶段高亮 +│ +├── Content Sections (7个内容区块) +│ │ +│ ├── 1️⃣ 市场调研阶段 +│ │ ├── 市场规模数据可视化 +│ │ ├── 客户群体分析(饼图) +│ │ ├── 竞争环境分析 +│ │ └── Agent展示:餐饮市场调研专家 +│ │ +│ ├── 2️⃣ 品牌定位阶段 +│ │ ├── 品牌LOGO展示 +│ │ ├── 三大差异化优势 +│ │ │ ├── 食材可溯源(扫码系统) +│ │ │ ├── 营养可量化(营养标签) +│ │ │ └── 制作可看见(明厨亮灶) +│ │ ├── 首店信息(国贸店110㎡) +│ │ └── Agent展示:餐饮品牌设计专家 +│ │ +│ ├── 3️⃣ 产品研发阶段 +│ │ ├── 32款菜品矩阵展示 +│ │ │ ├── 经典沙拉类(10款) +│ │ │ ├── 能量碗类(12款) +│ │ │ ├── 定制套餐(6款) +│ │ │ └── 季节限定(4款) +│ │ ├── 核心产品图文展示 +│ │ │ ├── 青莳虾仁牛油果沙拉 (48元) +│ │ │ ├── 青莳香煎牛肉能量碗 (62元) +│ │ │ ├── 青莳减脂专属套餐 (65元) +│ │ │ └── 青莳夏季芒果鸡胸冷意面 (52元) +│ │ ├── 价格体系表格 +│ │ └── Agent展示:菜品研发专家 +│ │ +│ ├── 4️⃣ 选址装修阶段 +│ │ ├── 选址标准分析 +│ │ ├── 首店案例:北京国贸B座 +│ │ │ ├── 店面外观图 +│ │ │ ├── 店内装修图 +│ │ │ ├── 功能分区(堂食65㎡+厨房30㎡+收银15㎡) +│ │ │ └── 3D平面图 +│ │ ├── 品牌色彩应用 +│ │ └── Agent展示:餐厅选址装修专家 +│ │ +│ ├── 5️⃣ 团队组建阶段 +│ │ ├── 8人团队配置 +│ │ │ ├── 店长(1人,8000-10000元) +│ │ │ ├── 厨师(2人,6000-8000元) +│ │ │ ├── 服务员(3人,4500-5500元) +│ │ │ ├── 营养师(1人,7000-9000元) +│ │ │ └── 收银员(1人,4500-5500元) +│ │ ├── 团队成员照片展示 +│ │ ├── 培训体系介绍 +│ │ └── Agent展示:餐饮团队人员管理专家 +│ │ +│ ├── 6️⃣ 财务规划阶段 +│ │ ├── 初始投资预算(50万元) +│ │ │ ├── 店铺租赁(15万) +│ │ │ ├── 装修费用(15万) +│ │ │ ├── 设备采购(10万) +│ │ │ └── 其他费用(10万) +│ │ ├── 收入预测可视化 +│ │ │ ├── 月度收入曲线图 +│ │ │ ├── 1-3月:13.5万/月 +│ │ │ ├── 4-6月:20.52万/月 +│ │ │ └── 7-12月:31.35万/月 +│ │ ├── 成本结构饼图 +│ │ ├── 利润预测 +│ │ │ ├── 第一年净利润:58.032万元 +│ │ │ ├── 净利率:20% +│ │ │ └── 投资回报期:14个月 +│ │ └── Agent展示:财务预算专家 +│ │ +│ └── 7️⃣ 营销推广阶段 +│ ├── 会员制度 +│ │ ├── 充值优惠政策 +│ │ ├── 消费福利体系 +│ │ └── 会员增长目标 +│ ├── 线上营销策略 +│ │ ├── 社交媒体运营 +│ │ ├── 外卖平台运营 +│ │ └── KOL合作计划 +│ ├── 线下推广活动 +│ │ ├── 写字楼推广 +│ │ ├── 健身房合作 +│ │ └── 体验活动 +│ └── Agent展示:轻食店经营管理专家 +│ +└── Summary Section (总结区块) + ├── 完整方案总结 + ├── 关键成功因素 + ├── 风险管理措施 + ├── 联系方式 + └── CTA按钮 +``` + +## 导航结构 + +### 主导航 +``` +├── 首页 (Hero) +├── 市场调研 +├── 品牌定位 +├── 产品研发 +├── 选址装修 +├── 团队组建 +├── 财务规划 +└── 营销推广 +``` + +### 时间轴导航 +- 固定在左侧或右侧 +- 垂直布局 +- 跟随滚动更新进度 +- 点击可快速跳转 + +## 页面流程 + +### 用户浏览路径 +``` +进入首屏 + ↓ 滚动或点击 +市场调研(了解市场机遇) + ↓ 滚动 +品牌定位(理解差异化优势) + ↓ 滚动 +产品研发(查看32款菜品) + ↓ 滚动 +选址装修(查看首店案例) + ↓ 滚动 +团队组建(了解人员配置) + ↓ 滚动 +财务规划(查看投资回报) + ↓ 滚动 +营销推广(了解推广策略) + ↓ 滚动 +总结区块(完整方案总结) +``` + +## 交互设计 + +### 滚动动画 +```javascript +// 区块入场动画 +gsap.from(".section", { + y: 100, + opacity: 0, + duration: 1, + scrollTrigger: { + trigger: ".section", + start: "top 80%", + end: "bottom 20%", + toggleActions: "play none none reverse" + } +}) + +// 标题动画 +gsap.from(".section-title", { + y: 50, + opacity: 0, + duration: 0.8, + stagger: 0.2 +}) + +// 卡片stagger动画 +gsap.from(".card", { + y: 80, + opacity: 0, + duration: 0.6, + stagger: 0.15, + ease: "power3.out" +}) +``` + +### 时间轴导航交互 +```javascript +// 滚动监听 +window.addEventListener('scroll', () => { + const sections = document.querySelectorAll('.timeline-section') + sections.forEach((section, index) => { + const rect = section.getBoundingClientRect() + if (rect.top <= 100 && rect.bottom >= 100) { + updateActiveSection(index) + } + }) +}) + +// 平滑滚动 +function scrollToSection(sectionId) { + gsap.to(window, { + duration: 1.2, + scrollTo: { + y: `#${sectionId}`, + offsetY: 80 + }, + ease: "power3.inOut" + }) +} +``` + +### 图片查看器 +```javascript +// 点击图片放大 +const [selectedImage, setSelectedImage] = useState(null) + +// 全屏模态框 + + + + +``` + +### 数据可视化 +```javascript +// 使用GSAP动画化图表 +gsap.to(".chart-bar", { + height: data.value + "%", + duration: 1, + ease: "power2.out", + stagger: 0.1 +}) + +// 数字计数动画 +gsap.to(".counter", { + textContent: targetValue, + duration: 2, + ease: "power1.inOut", + snap: { textContent: 1 } +}) +``` + +## 响应式布局 + +### 桌面端 (≥1024px) +``` +┌─────────────────────────────────────┐ +│ Hero Section (全屏) │ +├─────────────────────────────────────┤ +│ Timeline Nav │ Content Section │ +│ (固定左侧) │ (主内容区) │ +│ │ │ +│ ▸ 调研 │ [市场数据图表] │ +│ ▸ 定位 │ [文字说明] │ +│ ● 产品 │ [图片展示] │ +│ ▸ 选址 │ [Agent卡片] │ +│ ▸ 团队 │ │ +│ ▸ 财务 │ │ +│ ▸ 营销 │ │ +└─────────────────────────────────────┘ +``` + +### 平板端 (768px - 1023px) +``` +┌─────────────────────────────────────┐ +│ Hero Section (全屏) │ +├─────────────────────────────────────┤ +│ Timeline Nav (顶部横向) │ +├─────────────────────────────────────┤ +│ Content Section (单列) │ +│ [内容区块] │ +│ [图片展示] │ +│ [Agent卡片] │ +└─────────────────────────────────────┘ +``` + +### 移动端 (<768px) +``` +┌─────────────┐ +│ Hero │ +│ (简化版) │ +├─────────────┤ +│ Nav Button │ +│ (汉堡菜单) │ +├─────────────┤ +│ Content │ +│ (单列) │ +│ [文字] │ +│ [图片] │ +│ [卡片] │ +└─────────────┘ +``` + +## 组件层级 + +``` +App +├── HeroSection +│ ├── HeroTitle +│ ├── HeroSubtitle +│ ├── HeroStats +│ └── ScrollIndicator +├── TimelineNav +│ ├── NavItem (×7) +│ └── ProgressBar +├── ContentSections +│ ├── MarketResearchSection +│ │ ├── SectionHeader +│ │ ├── DataVisualization +│ │ ├── TextContent +│ │ └── AgentCard +│ ├── BrandPositioningSection +│ │ ├── SectionHeader +│ │ ├── BrandLogo +│ │ ├── DifferentiationPoints +│ │ └── AgentCard +│ ├── ProductDevelopmentSection +│ │ ├── SectionHeader +│ │ ├── ProductGrid +│ │ │ └── ProductCard (×32) +│ │ ├── PriceTable +│ │ └── AgentCard +│ ├── LocationDesignSection +│ │ ├── SectionHeader +│ │ ├── LocationInfo +│ │ ├── FloorPlan +│ │ └── AgentCard +│ ├── TeamBuildingSection +│ │ ├── SectionHeader +│ │ ├── TeamGrid +│ │ │ └── MemberCard (×8) +│ │ └── AgentCard +│ ├── FinancialPlanningSection +│ │ ├── SectionHeader +│ │ ├── BudgetChart +│ │ ├── RevenueChart +│ │ ├── ProfitSummary +│ │ └── AgentCard +│ └── MarketingSection +│ ├── SectionHeader +│ ├── MembershipProgram +│ ├── OnlineMarketing +│ ├── OfflinePromotion +│ └── AgentCard +└── SummarySection + ├── KeyTakeaways + ├── RiskManagement + └── CTAButtons +``` + +## 数据流 + +``` +content_checklist.json (数据源) + ↓ + TypeScript 接口定义 + ↓ + Zustand 状态管理 + ↓ + React 组件树 + ↓ + 用户界面 +``` + +## 性能优化 + +### 图片懒加载 +```javascript +import { LazyLoadImage } from 'react-lazy-load-image-component' + +} + effect="blur" +/> +``` + +### 代码分割 +```javascript +import { lazy, Suspense } from 'react' + +const ProductSection = lazy(() => import('./sections/ProductSection')) + +}> + + +``` + +### GSAP性能 +```javascript +// 使用will-change提示浏览器 +gsap.set(".animate-element", { willChange: "transform" }) + +// 动画完成后清除 +onComplete: () => { + gsap.set(".animate-element", { clearProps: "willChange" }) +} +``` + +--- + +**版本**: 1.0 +**创建时间**: 2025-10-01 +**下一步**: 开始组件开发 diff --git a/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/postcss.config.js b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/postcss.config.js new file mode 100644 index 00000000..2e7af2b7 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/src/index.css b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/src/index.css new file mode 100644 index 00000000..d91b28f4 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/src/index.css @@ -0,0 +1,26 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + * { + @apply border-border; + } + + body { + @apply bg-white text-gray-900; + font-family: 'Inter', system-ui, -apple-system, sans-serif; + } + + html { + scroll-behavior: smooth; + } +} + +@layer components { + /* 自定义组件样式 */ +} + +@layer utilities { + /* 自定义工具类 */ +} diff --git a/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/tailwind.config.js b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/tailwind.config.js new file mode 100644 index 00000000..93e4e7d9 --- /dev/null +++ b/web_frontend/web_result/order-classes/food/react-app/web_frontend/web_result/order-classes/food/react-app/tailwind.config.js @@ -0,0 +1,60 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: { + colors: { + primary: { + 50: '#e8f5e9', + 100: '#c8e6c9', + 200: '#a5d6a7', + 300: '#81c784', + 400: '#66bb6a', + 500: '#4caf50', // 主色 - 浅青色/绿色 + 600: '#43a047', + 700: '#388e3c', + 800: '#2e7d32', + 900: '#1b5e20', + }, + secondary: { + 50: '#fafafa', + 100: '#f5f5f5', // 米白色 + 200: '#eeeeee', + 300: '#e0e0e0', + 400: '#bdbdbd', + 500: '#9e9e9e', + }, + accent: { + 50: '#f3e5d4', + 100: '#e6d0bc', + 200: '#d9baa4', + 300: '#cca58c', + 400: '#bf9074', + 500: '#8b7355', // 原木色 + 600: '#6d5a43', + 700: '#4f4132', + }, + }, + fontFamily: { + sans: ['Inter', 'system-ui', '-apple-system', 'sans-serif'], + serif: ['ui-serif', 'Georgia', 'Cambria', 'serif'], + mono: ['JetBrains Mono', 'Fira Code', 'monospace'], + }, + spacing: { + '128': '32rem', + '144': '36rem', + }, + borderRadius: { + '4xl': '2rem', + }, + boxShadow: { + 'soft': '0 2px 15px -3px rgba(0, 0, 0, 0.07), 0 10px 20px -2px rgba(0, 0, 0, 0.04)', + 'hard': '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)', + }, + }, + }, + plugins: [], +}