feat: 完善订单班路由系统,支持全部12个订单班

详细说明:
- 更新routes.yaml配置,将所有订单班状态设为completed
- 重构app.js静态文件路由,使用循环简化代码
- 更新订单班图标映射,匹配实际目录名称
- 修复订单班路由跳转,支持以下订单班:
  * wenlu(文旅) - 会展策划
  * food(食品) - 轻食经营
  * finance(财经商贸) - 电商运营
  * health(大健康) - 智慧养老
  * chemical(化工) - 废水处理
  * environmental(环保) - 水质监测
  * transportation(交通物流) - 冷链物流
  * energy(能源) - 光伏发电
  * visual-design(视觉设计) - 宣传片策划
  * civil(土木) - 室内设计
  * developer(智能开发) - AI检测
  * manufacturing(智能制造) - 系统集成

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Yep_Q
2025-10-09 10:06:58 +08:00
parent 36199371d4
commit 4287a35826
11 changed files with 309 additions and 152 deletions

View File

@@ -107,7 +107,9 @@
"Bash(if [ -f \"/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/web_frontend/web_result/order-classes/chemical/images/$img\" ])", "Bash(if [ -f \"/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/web_frontend/web_result/order-classes/chemical/images/$img\" ])",
"Bash(then)", "Bash(then)",
"Bash(else)", "Bash(else)",
"Bash(xxd:*)" "Bash(xxd:*)",
"Bash(open \"http://localhost:4155/order-classes/civil/\")",
"Bash(file:*)"
], ],
"deny": [], "deny": [],
"ask": [], "ask": [],

View File

@@ -0,0 +1,40 @@
# 设计规范 - 图标使用指南
## 严格禁止使用emoji
**规则**: 在所有HTML文件中必须使用Lucide SVG图标代替emoji。
**正确格式**:
```html
<i data-lucide="icon-name"></i>
```
**参考实现**: 食品订单班 (food order class) 的实现方式
**常用图标映射**:
- 🏗️ → `<i data-lucide="building-2"></i>`
- 🏠 → `<i data-lucide="home"></i>`
- 🛏️ → `<i data-lucide="bed"></i>`
- 📚 → `<i data-lucide="book-open"></i>`
- 🔧 → `<i data-lucide="settings"></i>``<i data-lucide="wrench"></i>`
- 📏 → `<i data-lucide="ruler"></i>`
- 🎨 → `<i data-lucide="palette"></i>`
- ⚡ → `<i data-lucide="zap"></i>`
- 💧 → `<i data-lucide="droplets"></i>`
- ☀️ → `<i data-lucide="sun"></i>`
- 🌙 → `<i data-lucide="moon"></i>`
- 💡 → `<i data-lucide="lightbulb"></i>`
- 📐 → `<i data-lucide="layout-grid"></i>`
- 🎬 → `<i data-lucide="film"></i>`
- 📸 → `<i data-lucide="camera"></i>`
- 📊 → `<i data-lucide="bar-chart"></i>`
- 🎯 → `<i data-lucide="target"></i>`
**优势**:
- SVG图标可扩展、清晰度高
- 支持CSS样式自定义
- 跨浏览器兼容性好
- 符合现代Web设计标准
**执行记录**:
- 2025年10月: civil订单班完成22处emoji到SVG图标的替换

View File

@@ -98,7 +98,7 @@
"color": "#3F51B5", "color": "#3F51B5",
"template": { "template": {
"title": "冷链智慧共配中心AGV调度系统", "title": "冷链智慧共配中心AGV调度系统",
"description": "项目名称百车级AGV全局交通管制与充电调度系统\n应用场景15000㎡冷链配送中心\n设备规模100台AGV小车+50个充电桩\n调度算法蚁群算法+深度强化学习\n系统功能路径规划、交通管制、充电调度、故障处理\n运行效率日处理10000单准确率99.95%\n温控要求-18℃恒温温度波动±2℃\n投资回报系统投资500万年节省人工成本300万" "description": "项目名称百车级AGV全局交通管制与充电调度系统\n应用场景15000㎡冷链配送中心\n设备规模120台AGV小车+50个充电桩\n调度算法蚁群算法+深度强化学习\n系统功能路径规划、交通管制、充电调度、故障处理\n运行效率日处理10000单准确率99.95%\n温控要求-18℃恒温温度波动±2℃\n投资回报系统投资500万年节省人工成本300万"
}, },
"agentCount": 8, "agentCount": 8,
"estimatedTime": "3分钟", "estimatedTime": "3分钟",

View File

@@ -24,21 +24,17 @@ app.use('/js', express.static('js'));
app.use('/data', express.static('data')); app.use('/data', express.static('data'));
app.use('/order-classes', express.static('order-classes')); app.use('/order-classes', express.static('order-classes'));
// 为每个订单班提供独立的静态文件服务 // 为所有订单班提供独立的静态文件服务
app.use('/order-class/wenlu/css', express.static('order-classes/wenlu/css')); const orderClassDirs = ['wenlu', 'food', 'finance', 'health', 'chemical', 'environmental',
app.use('/order-class/wenlu/js', express.static('order-classes/wenlu/js')); 'transportation', 'energy', 'visual-design', 'civil', 'developer', 'manufacturing'];
app.use('/order-class/wenlu/data', express.static('order-classes/wenlu/data'));
// 由于HTML中使用相对路径还需要从父路径提供静态文件 orderClassDirs.forEach(dir => {
app.use('/order-class/css', express.static('order-classes/wenlu/css')); app.use(`/order-class/${dir}/css`, express.static(`order-classes/${dir}/css`));
app.use('/order-class/js', express.static('order-classes/wenlu/js')); app.use(`/order-class/${dir}/js`, express.static(`order-classes/${dir}/js`));
app.use('/order-class/data', express.static('order-classes/wenlu/data')); app.use(`/order-class/${dir}/data`, express.static(`order-classes/${dir}/data`));
app.use(`/order-class/${dir}/images`, express.static(`order-classes/${dir}/images`));
app.use('/order-class/food/css', express.static('order-classes/food/css')); app.use(`/order-class/${dir}/agent-avatars`, express.static(`order-classes/${dir}/agent-avatars`));
app.use('/order-class/food/js', express.static('order-classes/food/js')); });
app.use('/order-class/food/data', express.static('order-classes/food/data'));
app.use('/order-class/food/images', express.static('order-classes/food/images'));
app.use('/order-class/food/agent-avatars', express.static('order-classes/food/agent-avatars'));
// 日志中间件 // 日志中间件
app.use((req, res, next) => { app.use((req, res, next) => {
@@ -259,16 +255,16 @@ function getClassIcon(key) {
const icons = { const icons = {
'wenlu': '🚗', 'wenlu': '🚗',
'food': '🍽️', 'food': '🍽️',
'caijing': '💰', 'finance': '💰',
'jiankang': '🏥', 'health': '🏥',
'huagong': '⚗️', 'chemical': '⚗️',
'huanbao': '🌱', 'environmental': '🌱',
'jiaotong': '🚚', 'transportation': '🚚',
'nengyuan': '⚡', 'energy': '⚡',
'shijue': '🎨', 'visual-design': '🎨',
'tumu': '🏗️', 'civil': '🏗️',
'zhineng-dev': '💻', 'developer': '💻',
'zhineng-mfg': '🏭' 'manufacturing': '🏭'
}; };
return icons[key] || '📦'; return icons[key] || '📦';
} }

View File

@@ -329,6 +329,15 @@ body.dark-theme .hero {
background-attachment: fixed; background-attachment: fixed;
} }
.section:nth-child(7) {
background-image:
linear-gradient(to bottom, rgba(240, 249, 255, 0.9) 0%, rgba(224, 242, 254, 1) 100%),
url('https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?w=1920&q=80');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
/* 深色主题下的区块背景 */ /* 深色主题下的区块背景 */
body.dark-theme .section:nth-child(2) { body.dark-theme .section:nth-child(2) {
background-image: background-image:
@@ -375,6 +384,15 @@ body.dark-theme .section:nth-child(6) {
background-attachment: fixed; background-attachment: fixed;
} }
body.dark-theme .section:nth-child(7) {
background-image:
linear-gradient(to bottom, rgba(120, 53, 15, 0.92) 0%, rgba(161, 98, 7, 0.88) 100%),
url('https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?w=1920&q=80');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
/* 深色主题下的特定元素调整 */ /* 深色主题下的特定元素调整 */
body.dark-theme .stat-item { body.dark-theme .stat-item {
background: rgba(161, 98, 7, 0.8); background: rgba(161, 98, 7, 0.8);

View File

@@ -661,7 +661,7 @@
</section> </section>
<!-- Footer: 项目成果总结 --> <!-- Footer: 项目成果总结 -->
<section class="section" style="background: var(--bg-semi-dark); padding: var(--spacing-3xl) 0;"> <section class="section" style="padding: var(--spacing-3xl) 0;">
<div class="container"> <div class="container">
<h2 class="section-title text-center" style="margin-bottom: var(--spacing-2xl);"> <h2 class="section-title text-center" style="margin-bottom: var(--spacing-2xl);">
<i data-lucide="award"></i> 项目成果总结 <i data-lucide="award"></i> 项目成果总结

View File

@@ -5,7 +5,7 @@ order_classes:
wenlu: wenlu:
name: "文旅订单班" name: "文旅订单班"
title: "2024长三角国际新能源汽车与智能交通产业博览会" title: "2024长三角国际新能源汽车与智能交通产业博览会"
path: "/order-classes/wenlu/" path: "order-classes/wenlu"
entry: "index.html" entry: "index.html"
description: "会展策划完整方案" description: "会展策划完整方案"
status: "completed" status: "completed"
@@ -20,7 +20,7 @@ order_classes:
food: food:
name: "食品订单班" name: "食品订单班"
title: "中高端个性化轻食店铺经营方案" title: "中高端个性化轻食店铺经营方案"
path: "/order-classes/food/" path: "order-classes/food"
entry: "index.html" entry: "index.html"
description: "轻食创业全流程指导" description: "轻食创业全流程指导"
status: "completed" status: "completed"
@@ -33,95 +33,134 @@ order_classes:
- "餐饮团队人员管理专家" - "餐饮团队人员管理专家"
- "财务预算专家" - "财务预算专家"
caijing: finance:
name: "财经商贸订单班" name: "财经商贸订单班"
title: "财经商贸综合解决方案" title: "化妆品电商运营综合方案"
path: "/order-classes/caijing/" path: "order-classes/finance"
entry: "index.html" entry: "index.html"
description: "财经商贸领域专业方案" description: "电商运营全流程解决方案"
status: "pending" status: "completed"
agents: [] agents:
- "电商运营专家"
- "市场分析师"
- "品牌策划专家"
- "供应链管理专家"
- "数据分析师"
- "客服管理专家"
jiankang: health:
name: "大健康订单班" name: "大健康订单班"
title: "大健康产业发展方案" title: "医养结合智慧养老服务方案"
path: "/order-classes/jiankang/" path: "order-classes/health"
entry: "index.html" entry: "index.html"
description: "健康产业综合解决方案" description: "智慧养老综合解决方案"
status: "pending" status: "completed"
agents: [] agents:
- "养老服务专家"
- "医疗顾问"
- "智能设备专家"
- "运营管理专家"
huagong: chemical:
name: "化工订单班" name: "化工订单班"
title: "化工产业升级方案" title: "工业废水处理与资源化方案"
path: "/order-classes/huagong/" path: "order-classes/chemical"
entry: "index.html" entry: "index.html"
description: "化工领域专业解决方案" description: "化工废水处理专业方案"
status: "pending" status: "completed"
agents: [] agents:
- "环保工程师"
- "化工工艺专家"
- "设备选型专家"
- "运营管理专家"
huanbao: environmental:
name: "环保订单班" name: "环保订单班"
title: "环保产业创新方案" title: "地表水环境质量监测方案"
path: "/order-classes/huanbao/" path: "order-classes/environmental"
entry: "index.html" entry: "index.html"
description: "环保领域综合解决方案" description: "水质监测专业解决方案"
status: "pending" status: "completed"
agents: [] agents:
- "环境监测专家"
- "水质分析师"
- "数据管理专家"
jiaotong: transportation:
name: "交通物流订单班" name: "交通物流订单班"
title: "智慧物流解决方案" title: "区域冷链物流网络优化方案"
path: "/order-classes/jiaotong/" path: "order-classes/transportation"
entry: "index.html" entry: "index.html"
description: "交通物流智能化方案" description: "冷链物流智能化方案"
status: "pending" status: "completed"
agents: [] agents:
- "物流规划专家"
- "供应链优化专家"
- "运营管理专家"
nengyuan: energy:
name: "能源订单班" name: "能源订单班"
title: "新能源产业发展方案" title: "分布式光伏发电系统方案"
path: "/order-classes/nengyuan/" path: "order-classes/energy"
entry: "index.html" entry: "index.html"
description: "能源产业转型升级方案" description: "光伏发电系统解决方案"
status: "pending" status: "completed"
agents: [] agents:
- "光伏系统工程师"
- "电气设计师"
- "项目管理专家"
shijue: visual-design:
name: "视觉设计订单班" name: "视觉设计订单班"
title: "视觉设计创新方案" title: "同里古镇宣传片策划方案"
path: "/order-classes/shijue/" path: "order-classes/visual-design"
entry: "index.html" entry: "index.html"
description: "视觉设计专业解决方案" description: "视频宣传策划专业方案"
status: "pending" status: "completed"
agents: [] agents:
- "导演/策划"
- "摄影指导"
- "后期制作专家"
tumu: civil:
name: "土木订单班" name: "土木订单班"
title: "土木工程智能化方案" title: "室内CAD整体方案设计"
path: "/order-classes/tumu/" path: "order-classes/civil"
entry: "index.html" entry: "index.html"
description: "土木工程领域解决方案" description: "室内设计专业解决方案"
status: "pending" status: "completed"
agents: [] agents:
- "需求分析师"
- "平面设计师"
- "效果图设计师"
- "施工图设计师"
- "预算工程师"
- "项目经理"
zhineng-dev: developer:
name: "智能开发订单班" name: "智能开发订单班"
title: "智能软件开发方案" title: "半导体AI综合检测项目"
path: "/order-classes/zhineng-dev/" path: "order-classes/developer"
entry: "index.html" entry: "index.html"
description: "AI驱动的软件开发方案" description: "AI检测系统开发方案"
status: "pending" status: "completed"
agents: [] agents:
- "AI算法工程师"
- "视觉系统工程师"
- "软件架构师"
- "测试工程师"
zhineng-mfg: manufacturing:
name: "智能制造订单班" name: "智能制造订单班"
title: "智能制造升级方案" title: "智能制造系统集成方案"
path: "/order-classes/zhineng-mfg/" path: "order-classes/manufacturing"
entry: "index.html" entry: "index.html"
description: "制造业智能化转型方案" description: "制造业智能化升级方案"
status: "pending" status: "completed"
agents: [] agents:
- "自动化工程师"
- "系统集成专家"
- "工艺优化专家"
# 服务器配置 # 服务器配置
server: server:

View File

@@ -24,3 +24,44 @@
[2025-10-03T11:20:28.064Z] GET /order-class/food/ [2025-10-03T11:20:28.064Z] GET /order-class/food/
[2025-10-03T11:20:29.177Z] GET /favicon.ico [2025-10-03T11:20:29.177Z] GET /favicon.ico
[2025-10-03T11:20:31.728Z] GET /order-class/food/images/%E9%9D%92%E8%8E%B3%E5%87%8F%E8%84%82%E4%B8%93%E5%B1%9E%E5%A5%97%E9%A4%90(%E5%8F%AF%E6%8D%A2%E9%85%B1%E6%B1%81).jpg [2025-10-03T11:20:31.728Z] GET /order-class/food/images/%E9%9D%92%E8%8E%B3%E5%87%8F%E8%84%82%E4%B8%93%E5%B1%9E%E5%A5%97%E9%A4%90(%E5%8F%AF%E6%8D%A2%E9%85%B1%E6%B1%81).jpg
[2025-10-07T05:56:45.978Z] GET /favicon.ico
[2025-10-07T05:56:59.096Z] GET /favicon.ico
[2025-10-07T05:57:38.765Z] GET /order-classes/
[2025-10-07T05:58:25.873Z] GET /
[2025-10-07T06:09:03.840Z] GET /order-class/wenlu
[2025-10-07T06:09:07.630Z] GET /order-class/food
[2025-10-07T06:09:07.649Z] GET /order-class/agent-avatars/%E9%A4%90%E9%A5%AE%E5%B8%82%E5%9C%BA%E8%B0%83%E7%A0%94%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:07.651Z] GET /order-class/agent-avatars/%E9%A4%90%E9%A5%AE%E5%93%81%E7%89%8C%E8%AE%BE%E8%AE%A1%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:07.973Z] GET /order-class/agent-avatars/%E9%A4%90%E5%8E%85%E9%80%89%E5%9D%80%E8%A3%85%E4%BF%AE%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:07.979Z] GET /order-class/agent-avatars/%E8%8F%9C%E5%93%81%E7%A0%94%E5%8F%91%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:07.983Z] GET /order-class/agent-avatars/%E8%BD%BB%E9%A3%9F%E5%BA%97%E7%BB%8F%E8%90%A5%E7%AE%A1%E7%90%86%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:07.994Z] GET /order-class/agent-avatars/%E9%A4%90%E9%A5%AE%E5%9B%A2%E9%98%9F%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:07.995Z] GET /order-class/agent-avatars/%E8%B4%A2%E5%8A%A1%E9%A2%84%E7%AE%97%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:07.996Z] GET /order-class/agent-avatars/%E9%A3%8E%E9%99%A9%E7%AE%A1%E7%90%86%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:08.070Z] GET /order-class/images/%E5%81%A5%E8%BA%AB%E5%AE%A3%E4%BC%A0%E4%BB%A3%E8%A8%80.jpg
[2025-10-07T06:09:08.072Z] GET /order-class/images/%E5%B8%82%E5%9C%BA%E5%AE%A3%E4%BC%A0%E8%90%A5%E9%94%80.jpg
[2025-10-07T06:09:08.074Z] GET /order-class/images/%E5%BA%97%E9%9D%A2%E5%9B%BE%E7%89%87_%E6%AD%A3%E9%97%A8.jpg
[2025-10-07T06:09:09.051Z] GET /order-class/food
[2025-10-07T06:09:09.068Z] GET /order-class/agent-avatars/%E9%A4%90%E9%A5%AE%E5%B8%82%E5%9C%BA%E8%B0%83%E7%A0%94%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:09.071Z] GET /order-class/agent-avatars/%E9%A4%90%E9%A5%AE%E5%93%81%E7%89%8C%E8%AE%BE%E8%AE%A1%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:09.375Z] GET /order-class/agent-avatars/%E9%A4%90%E5%8E%85%E9%80%89%E5%9D%80%E8%A3%85%E4%BF%AE%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:09.377Z] GET /order-class/agent-avatars/%E8%8F%9C%E5%93%81%E7%A0%94%E5%8F%91%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:09.384Z] GET /order-class/agent-avatars/%E8%BD%BB%E9%A3%9F%E5%BA%97%E7%BB%8F%E8%90%A5%E7%AE%A1%E7%90%86%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:09.387Z] GET /order-class/agent-avatars/%E9%A4%90%E9%A5%AE%E5%9B%A2%E9%98%9F%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:09.388Z] GET /order-class/agent-avatars/%E8%B4%A2%E5%8A%A1%E9%A2%84%E7%AE%97%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:09.388Z] GET /order-class/agent-avatars/%E9%A3%8E%E9%99%A9%E7%AE%A1%E7%90%86%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:09.434Z] GET /order-class/images/%E5%81%A5%E8%BA%AB%E5%AE%A3%E4%BC%A0%E4%BB%A3%E8%A8%80.jpg
[2025-10-07T06:09:09.436Z] GET /order-class/images/%E5%B8%82%E5%9C%BA%E5%AE%A3%E4%BC%A0%E8%90%A5%E9%94%80.jpg
[2025-10-07T06:09:09.437Z] GET /order-class/images/%E5%BA%97%E9%9D%A2%E5%9B%BE%E7%89%87_%E6%AD%A3%E9%97%A8.jpg
[2025-10-07T06:09:29.757Z] GET /order-class/food
[2025-10-07T06:09:29.773Z] GET /order-class/agent-avatars/%E9%A4%90%E9%A5%AE%E5%B8%82%E5%9C%BA%E8%B0%83%E7%A0%94%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:29.774Z] GET /order-class/agent-avatars/%E9%A4%90%E9%A5%AE%E5%93%81%E7%89%8C%E8%AE%BE%E8%AE%A1%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:30.082Z] GET /order-class/agent-avatars/%E9%A4%90%E5%8E%85%E9%80%89%E5%9D%80%E8%A3%85%E4%BF%AE%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:30.084Z] GET /order-class/agent-avatars/%E8%8F%9C%E5%93%81%E7%A0%94%E5%8F%91%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:30.086Z] GET /order-class/agent-avatars/%E8%BD%BB%E9%A3%9F%E5%BA%97%E7%BB%8F%E8%90%A5%E7%AE%A1%E7%90%86%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:30.089Z] GET /order-class/agent-avatars/%E9%A4%90%E9%A5%AE%E5%9B%A2%E9%98%9F%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:30.090Z] GET /order-class/agent-avatars/%E8%B4%A2%E5%8A%A1%E9%A2%84%E7%AE%97%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:30.092Z] GET /order-class/agent-avatars/%E9%A3%8E%E9%99%A9%E7%AE%A1%E7%90%86%E4%B8%93%E5%AE%B6.jpeg
[2025-10-07T06:09:30.146Z] GET /order-class/images/%E5%81%A5%E8%BA%AB%E5%AE%A3%E4%BC%A0%E4%BB%A3%E8%A8%80.jpg
[2025-10-07T06:09:30.147Z] GET /order-class/images/%E5%B8%82%E5%9C%BA%E5%AE%A3%E4%BC%A0%E8%90%A5%E9%94%80.jpg
[2025-10-07T06:09:30.148Z] GET /order-class/images/%E5%BA%97%E9%9D%A2%E5%9B%BE%E7%89%87_%E6%AD%A3%E9%97%A8.jpg

View File

@@ -1,36 +0,0 @@
#!/bin/bash
# 订单班AI生成方案展示系统 - 启动脚本
echo "=========================================="
echo " 订单班AI生成方案展示系统"
echo "=========================================="
echo ""
# 检查是否安装了依赖
if [ ! -d "node_modules" ]; then
echo "首次运行,正在安装依赖..."
npm install
echo ""
fi
# 启动服务器
echo "启动服务器..."
echo ""
echo "服务器地址: http://localhost:4155"
echo ""
echo "访问示例:"
echo " • 首页: http://localhost:4155/"
echo " • 文旅: http://localhost:4155/order-class/wenlu"
echo " • 食品: http://localhost:4155/order-class/food"
echo ""
echo "或使用URL参数:"
echo " • http://localhost:4155/?class=wenlu"
echo " • http://localhost:4155/?class=food"
echo ""
echo "按 Ctrl+C 停止服务器"
echo "=========================================="
echo ""
# 启动Node.js服务器
node app.js

View File

@@ -1,15 +1,17 @@
@echo off @echo off
chcp 65001 >nul 2>&1 chcp 65001 >nul 2>&1
REM Web Result 静态服务器启动脚本 (Node.js版) REM 订单班AI生成方案展示系统 - Windows启动脚本
REM 端口: 4155 REM 端口: 4155
REM 支持局域网访问
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
REM 显示启动横幅 REM 显示启动横幅
echo ====================================== echo ==========================================
echo Web Result 静态服务器 echo 订单班AI生成方案展示系统
echo 端口: 4155 echo 端口: 4155
echo ====================================== echo 支持局域网访问
echo ==========================================
echo. echo.
REM 获取脚本所在目录 REM 获取脚本所在目录
@@ -32,6 +34,19 @@ echo [信息] Node.js 版本:
node --version node --version
echo. echo.
REM 检查是否安装了依赖
if not exist "node_modules" (
echo [信息] 首次运行,正在安装依赖...
call npm install
if errorlevel 1 (
echo [错误] 依赖安装失败
pause
exit /b 1
)
echo [成功] 依赖安装完成
echo.
)
REM 检查端口 4155 是否被占用 REM 检查端口 4155 是否被占用
netstat -ano | findstr :4155 >nul 2>&1 netstat -ano | findstr :4155 >nul 2>&1
if not errorlevel 1 ( if not errorlevel 1 (
@@ -57,11 +72,29 @@ if not errorlevel 1 (
REM 启动服务器 REM 启动服务器
echo [信息] 正在启动服务器... echo [信息] 正在启动服务器...
echo [信息] 访问地址: http://localhost:4155 echo.
echo ╔═══════════════════════════════════════════════╗
echo ║ 订单班AI生成方案展示系统 ║
echo ╠═══════════════════════════════════════════════╣
echo ║ 🏠 本地访问:
echo ║ http://localhost:4155
echo
echo ║ 📋 访问示例:
echo ║ • 首页: http://localhost:4155/
echo ║ • 文旅: http://localhost:4155/order-class/wenlu
echo ║ • 食品: http://localhost:4155/order-class/food
echo ║ • 财经: http://localhost:4155/order-class/finance
echo ║ • 土木: http://localhost:4155/order-class/civil
echo
echo ║ 🔗 或使用URL参数:
echo ║ http://localhost:4155/?class=wenlu
echo ║ http://localhost:4155/?class=food
echo ╚═══════════════════════════════════════════════╝
echo.
echo [提示] 按 Ctrl+C 停止服务器 echo [提示] 按 Ctrl+C 停止服务器
echo. echo.
REM 使用 Node.js 启动服务器 REM 启动Node.js服务器
node server.js node app.js
pause pause

View File

@@ -1,15 +1,15 @@
#!/bin/bash #!/bin/bash
# Web Result 静态服务器启动脚本 (Node.js版) # 订单班AI生成方案展示系统 - 启动脚本
# 端口: 4155 # 端口: 4155
# 支持局域网访问 # 支持局域网访问
# 颜色定义 # 颜色定义
GREEN='' GREEN='\033[0;32m'
BLUE='' BLUE='\033[0;34m'
YELLOW='' YELLOW='\033[1;33m'
RED='' RED='\033[0;31m'
NC='' NC='\033[0m'
# 获取脚本所在目录 # 获取脚本所在目录
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@@ -23,11 +23,11 @@ get_lan_ip() {
fi fi
} }
echo -e "${BLUE}======================================${NC}" echo -e "${BLUE}==========================================${NC}"
echo -e "${BLUE} Web Result 静态服务器${NC}" echo -e "${BLUE} 订单班AI生成方案展示系统${NC}"
echo -e "${BLUE} 端口: 4155${NC}" echo -e "${BLUE} 端口: 4155${NC}"
echo -e "${BLUE} 支持局域网访问${NC}" echo -e "${BLUE} 支持局域网访问${NC}"
echo -e "${BLUE}======================================${NC}" echo -e "${BLUE}==========================================${NC}"
echo echo
# 切换到脚本所在目录 # 切换到脚本所在目录
@@ -42,6 +42,19 @@ fi
echo -e "${GREEN}[信息] Node.js 版本: $(node --version)${NC}" echo -e "${GREEN}[信息] Node.js 版本: $(node --version)${NC}"
# 检查是否安装了依赖
if [ ! -d "node_modules" ]; then
echo -e "${YELLOW}[信息] 首次运行,正在安装依赖...${NC}"
npm install
if [ $? -eq 0 ]; then
echo -e "${GREEN}[成功] 依赖安装完成${NC}"
else
echo -e "${RED}[错误] 依赖安装失败${NC}"
exit 1
fi
echo
fi
# 获取局域网IP # 获取局域网IP
LAN_IP=$(get_lan_ip) LAN_IP=$(get_lan_ip)
if [ -z "$LAN_IP" ]; then if [ -z "$LAN_IP" ]; then
@@ -70,9 +83,9 @@ fi
# 启动服务器 # 启动服务器
echo -e "${GREEN}[信息] 正在启动服务器...${NC}" echo -e "${GREEN}[信息] 正在启动服务器...${NC}"
echo echo
echo -e "${GREEN}╔════════════════════════════════════════╗${NC}" echo -e "${GREEN}╔═══════════════════════════════════════════════${NC}"
echo -e "${GREEN}服务器访问信息 ${NC}" echo -e "${GREEN}订单班AI生成方案展示系统${NC}"
echo -e "${GREEN}╠════════════════════════════════════════╣${NC}" echo -e "${GREEN}╠═══════════════════════════════════════════════${NC}"
echo -e "${GREEN}${NC} 🏠 本地访问:" echo -e "${GREEN}${NC} 🏠 本地访问:"
echo -e "${GREEN}${NC} ${BLUE}http://localhost:4155${NC}" echo -e "${GREEN}${NC} ${BLUE}http://localhost:4155${NC}"
echo -e "${GREEN}${NC}" echo -e "${GREEN}${NC}"
@@ -82,11 +95,22 @@ if [ "$LAN_IP" != "localhost" ]; then
echo -e "${GREEN}${NC}" echo -e "${GREEN}${NC}"
echo -e "${GREEN}${NC} 📱 移动设备访问:" echo -e "${GREEN}${NC} 📱 移动设备访问:"
echo -e "${GREEN}${NC} ${BLUE}http://${LAN_IP}:4155${NC}" echo -e "${GREEN}${NC} ${BLUE}http://${LAN_IP}:4155${NC}"
echo -e "${GREEN}${NC}"
fi fi
echo -e "${GREEN}╚════════════════════════════════════════╝${NC}" echo -e "${GREEN}${NC} 📋 访问示例:"
echo -e "${GREEN}${NC} • 首页: ${BLUE}http://localhost:4155/${NC}"
echo -e "${GREEN}${NC} • 文旅: ${BLUE}http://localhost:4155/order-class/wenlu${NC}"
echo -e "${GREEN}${NC} • 食品: ${BLUE}http://localhost:4155/order-class/food${NC}"
echo -e "${GREEN}${NC} • 财经: ${BLUE}http://localhost:4155/order-class/finance${NC}"
echo -e "${GREEN}${NC} • 土木: ${BLUE}http://localhost:4155/order-class/civil${NC}"
echo -e "${GREEN}${NC}"
echo -e "${GREEN}${NC} 🔗 或使用URL参数:"
echo -e "${GREEN}${NC} ${BLUE}http://localhost:4155/?class=wenlu${NC}"
echo -e "${GREEN}${NC} ${BLUE}http://localhost:4155/?class=food${NC}"
echo -e "${GREEN}╚═══════════════════════════════════════════════╝${NC}"
echo echo
echo -e "${YELLOW}[提示] 按 Ctrl+C 停止服务器${NC}" echo -e "${YELLOW}[提示] 按 Ctrl+C 停止服务器${NC}"
echo echo
# 使用 Node.js 启动服务器 # 启动Node.js服务器
node server.js node app.js