From 4287a358260425a82ae1fc3dc9b7f1a30a17f7f2 Mon Sep 17 00:00:00 2001 From: Yep_Q Date: Thu, 9 Oct 2025 10:06:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8F=AD=E8=B7=AF=E7=94=B1=E7=B3=BB=E7=BB=9F,=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=85=A8=E9=83=A812=E4=B8=AA=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 详细说明: - 更新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 --- .claude/settings.local.json | 6 +- .serena/memories/design_guidelines.md | 40 +++++ .../src/data/orderClasses.json | 2 +- web_frontend/web_result/app.js | 44 +++-- .../order-classes/civil/css/styles.css | 18 ++ .../web_result/order-classes/civil/index.html | 2 +- web_frontend/web_result/routes.yaml | 165 +++++++++++------- web_frontend/web_result/server.log | 41 +++++ web_frontend/web_result/start-router.sh | 36 ---- web_frontend/web_result/start.bat | 51 +++++- web_frontend/web_result/start.sh | 56 ++++-- 11 files changed, 309 insertions(+), 152 deletions(-) create mode 100644 .serena/memories/design_guidelines.md delete mode 100755 web_frontend/web_result/start-router.sh diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 9e85a012..4b1a2809 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -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(then)", "Bash(else)", - "Bash(xxd:*)" + "Bash(xxd:*)", + "Bash(open \"http://localhost:4155/order-classes/civil/\")", + "Bash(file:*)" ], "deny": [], "ask": [], @@ -127,4 +129,4 @@ "feishu-api", "shadcn-ui-server" ] -} \ No newline at end of file +} diff --git a/.serena/memories/design_guidelines.md b/.serena/memories/design_guidelines.md new file mode 100644 index 00000000..f9ab9516 --- /dev/null +++ b/.serena/memories/design_guidelines.md @@ -0,0 +1,40 @@ +# 设计规范 - 图标使用指南 + +## 严格禁止使用emoji + +**规则**: 在所有HTML文件中,必须使用Lucide SVG图标代替emoji。 + +**正确格式**: +```html + +``` + +**参考实现**: 食品订单班 (food order class) 的实现方式 + +**常用图标映射**: +- 🏗️ → `` +- 🏠 → `` +- 🛏️ → `` +- 📚 → `` +- 🔧 → `` 或 `` +- 📏 → `` +- 🎨 → `` +- ⚡ → `` +- 💧 → `` +- ☀️ → `` +- 🌙 → `` +- 💡 → `` +- 📐 → `` +- 🎬 → `` +- 📸 → `` +- 📊 → `` +- 🎯 → `` + +**优势**: +- SVG图标可扩展、清晰度高 +- 支持CSS样式自定义 +- 跨浏览器兼容性好 +- 符合现代Web设计标准 + +**执行记录**: +- 2025年10月: civil订单班完成22处emoji到SVG图标的替换 \ No newline at end of file diff --git a/web_frontend/exhibition-demo/src/data/orderClasses.json b/web_frontend/exhibition-demo/src/data/orderClasses.json index 5337c207..2fac0161 100644 --- a/web_frontend/exhibition-demo/src/data/orderClasses.json +++ b/web_frontend/exhibition-demo/src/data/orderClasses.json @@ -98,7 +98,7 @@ "color": "#3F51B5", "template": { "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, "estimatedTime": "3分钟", diff --git a/web_frontend/web_result/app.js b/web_frontend/web_result/app.js index 03f8271a..4ac670cb 100644 --- a/web_frontend/web_result/app.js +++ b/web_frontend/web_result/app.js @@ -24,21 +24,17 @@ app.use('/js', express.static('js')); app.use('/data', express.static('data')); app.use('/order-classes', express.static('order-classes')); -// 为每个订单班提供独立的静态文件服务 -app.use('/order-class/wenlu/css', express.static('order-classes/wenlu/css')); -app.use('/order-class/wenlu/js', express.static('order-classes/wenlu/js')); -app.use('/order-class/wenlu/data', express.static('order-classes/wenlu/data')); +// 为所有订单班提供独立的静态文件服务 +const orderClassDirs = ['wenlu', 'food', 'finance', 'health', 'chemical', 'environmental', + 'transportation', 'energy', 'visual-design', 'civil', 'developer', 'manufacturing']; -// 由于HTML中使用相对路径,还需要从父路径提供静态文件 -app.use('/order-class/css', express.static('order-classes/wenlu/css')); -app.use('/order-class/js', express.static('order-classes/wenlu/js')); -app.use('/order-class/data', express.static('order-classes/wenlu/data')); - -app.use('/order-class/food/css', express.static('order-classes/food/css')); -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')); +orderClassDirs.forEach(dir => { + app.use(`/order-class/${dir}/css`, express.static(`order-classes/${dir}/css`)); + app.use(`/order-class/${dir}/js`, express.static(`order-classes/${dir}/js`)); + 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/${dir}/agent-avatars`, express.static(`order-classes/${dir}/agent-avatars`)); +}); // 日志中间件 app.use((req, res, next) => { @@ -259,16 +255,16 @@ function getClassIcon(key) { const icons = { 'wenlu': '🚗', 'food': '🍽️', - 'caijing': '💰', - 'jiankang': '🏥', - 'huagong': '⚗️', - 'huanbao': '🌱', - 'jiaotong': '🚚', - 'nengyuan': '⚡', - 'shijue': '🎨', - 'tumu': '🏗️', - 'zhineng-dev': '💻', - 'zhineng-mfg': '🏭' + 'finance': '💰', + 'health': '🏥', + 'chemical': '⚗️', + 'environmental': '🌱', + 'transportation': '🚚', + 'energy': '⚡', + 'visual-design': '🎨', + 'civil': '🏗️', + 'developer': '💻', + 'manufacturing': '🏭' }; return icons[key] || '📦'; } diff --git a/web_frontend/web_result/order-classes/civil/css/styles.css b/web_frontend/web_result/order-classes/civil/css/styles.css index 92b13e65..0bceb912 100644 --- a/web_frontend/web_result/order-classes/civil/css/styles.css +++ b/web_frontend/web_result/order-classes/civil/css/styles.css @@ -329,6 +329,15 @@ body.dark-theme .hero { 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) { background-image: @@ -375,6 +384,15 @@ body.dark-theme .section:nth-child(6) { 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 { background: rgba(161, 98, 7, 0.8); diff --git a/web_frontend/web_result/order-classes/civil/index.html b/web_frontend/web_result/order-classes/civil/index.html index ba480555..75dd392f 100644 --- a/web_frontend/web_result/order-classes/civil/index.html +++ b/web_frontend/web_result/order-classes/civil/index.html @@ -661,7 +661,7 @@ -
+

项目成果总结 diff --git a/web_frontend/web_result/routes.yaml b/web_frontend/web_result/routes.yaml index e000db22..8349a922 100644 --- a/web_frontend/web_result/routes.yaml +++ b/web_frontend/web_result/routes.yaml @@ -5,7 +5,7 @@ order_classes: wenlu: name: "文旅订单班" title: "2024长三角国际新能源汽车与智能交通产业博览会" - path: "/order-classes/wenlu/" + path: "order-classes/wenlu" entry: "index.html" description: "会展策划完整方案" status: "completed" @@ -20,7 +20,7 @@ order_classes: food: name: "食品订单班" title: "中高端个性化轻食店铺经营方案" - path: "/order-classes/food/" + path: "order-classes/food" entry: "index.html" description: "轻食创业全流程指导" status: "completed" @@ -33,95 +33,134 @@ order_classes: - "餐饮团队人员管理专家" - "财务预算专家" - caijing: + finance: name: "财经商贸订单班" - title: "财经商贸综合解决方案" - path: "/order-classes/caijing/" + title: "化妆品电商运营综合方案" + path: "order-classes/finance" entry: "index.html" - description: "财经商贸领域专业方案" - status: "pending" - agents: [] + description: "电商运营全流程解决方案" + status: "completed" + agents: + - "电商运营专家" + - "市场分析师" + - "品牌策划专家" + - "供应链管理专家" + - "数据分析师" + - "客服管理专家" - jiankang: + health: name: "大健康订单班" - title: "大健康产业发展方案" - path: "/order-classes/jiankang/" + title: "医养结合智慧养老服务方案" + path: "order-classes/health" entry: "index.html" - description: "健康产业综合解决方案" - status: "pending" - agents: [] + description: "智慧养老综合解决方案" + status: "completed" + agents: + - "养老服务专家" + - "医疗顾问" + - "智能设备专家" + - "运营管理专家" - huagong: + chemical: name: "化工订单班" - title: "化工产业升级方案" - path: "/order-classes/huagong/" + title: "工业废水处理与资源化方案" + path: "order-classes/chemical" entry: "index.html" - description: "化工领域专业解决方案" - status: "pending" - agents: [] + description: "化工废水处理专业方案" + status: "completed" + agents: + - "环保工程师" + - "化工工艺专家" + - "设备选型专家" + - "运营管理专家" - huanbao: + environmental: name: "环保订单班" - title: "环保产业创新方案" - path: "/order-classes/huanbao/" + title: "地表水环境质量监测方案" + path: "order-classes/environmental" entry: "index.html" - description: "环保领域综合解决方案" - status: "pending" - agents: [] + description: "水质监测专业解决方案" + status: "completed" + agents: + - "环境监测专家" + - "水质分析师" + - "数据管理专家" - jiaotong: + transportation: name: "交通物流订单班" - title: "智慧物流解决方案" - path: "/order-classes/jiaotong/" + title: "区域冷链物流网络优化方案" + path: "order-classes/transportation" entry: "index.html" - description: "交通物流智能化方案" - status: "pending" - agents: [] + description: "冷链物流智能化方案" + status: "completed" + agents: + - "物流规划专家" + - "供应链优化专家" + - "运营管理专家" - nengyuan: + energy: name: "能源订单班" - title: "新能源产业发展方案" - path: "/order-classes/nengyuan/" + title: "分布式光伏发电系统方案" + path: "order-classes/energy" entry: "index.html" - description: "能源产业转型升级方案" - status: "pending" - agents: [] + description: "光伏发电系统解决方案" + status: "completed" + agents: + - "光伏系统工程师" + - "电气设计师" + - "项目管理专家" - shijue: + visual-design: name: "视觉设计订单班" - title: "视觉设计创新方案" - path: "/order-classes/shijue/" + title: "同里古镇宣传片策划方案" + path: "order-classes/visual-design" entry: "index.html" - description: "视觉设计专业解决方案" - status: "pending" - agents: [] + description: "视频宣传策划专业方案" + status: "completed" + agents: + - "导演/策划" + - "摄影指导" + - "后期制作专家" - tumu: + civil: name: "土木订单班" - title: "土木工程智能化方案" - path: "/order-classes/tumu/" + title: "室内CAD整体方案设计" + path: "order-classes/civil" entry: "index.html" - description: "土木工程领域解决方案" - status: "pending" - agents: [] + description: "室内设计专业解决方案" + status: "completed" + agents: + - "需求分析师" + - "平面设计师" + - "效果图设计师" + - "施工图设计师" + - "预算工程师" + - "项目经理" - zhineng-dev: + developer: name: "智能开发订单班" - title: "智能软件开发方案" - path: "/order-classes/zhineng-dev/" + title: "半导体AI综合检测项目" + path: "order-classes/developer" entry: "index.html" - description: "AI驱动的软件开发方案" - status: "pending" - agents: [] + description: "AI检测系统开发方案" + status: "completed" + agents: + - "AI算法工程师" + - "视觉系统工程师" + - "软件架构师" + - "测试工程师" - zhineng-mfg: + manufacturing: name: "智能制造订单班" - title: "智能制造升级方案" - path: "/order-classes/zhineng-mfg/" + title: "智能制造系统集成方案" + path: "order-classes/manufacturing" entry: "index.html" - description: "制造业智能化转型方案" - status: "pending" - agents: [] + description: "制造业智能化升级方案" + status: "completed" + agents: + - "自动化工程师" + - "系统集成专家" + - "工艺优化专家" # 服务器配置 server: @@ -133,4 +172,4 @@ server: default: order_class: "wenlu" # 默认显示文旅订单班 404_page: "/404.html" - index_page: "/index.html" \ No newline at end of file + index_page: "/index.html" diff --git a/web_frontend/web_result/server.log b/web_frontend/web_result/server.log index 4ef1816f..0856b4c6 100644 --- a/web_frontend/web_result/server.log +++ b/web_frontend/web_result/server.log @@ -24,3 +24,44 @@ [2025-10-03T11:20:28.064Z] GET /order-class/food/ [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-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 diff --git a/web_frontend/web_result/start-router.sh b/web_frontend/web_result/start-router.sh deleted file mode 100755 index eba3bb6f..00000000 --- a/web_frontend/web_result/start-router.sh +++ /dev/null @@ -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 \ No newline at end of file diff --git a/web_frontend/web_result/start.bat b/web_frontend/web_result/start.bat index fbb9b67a..266794f9 100644 --- a/web_frontend/web_result/start.bat +++ b/web_frontend/web_result/start.bat @@ -1,15 +1,17 @@ @echo off chcp 65001 >nul 2>&1 -REM Web Result 静态服务器启动脚本 (Node.js版) +REM 订单班AI生成方案展示系统 - Windows启动脚本 REM 端口: 4155 +REM 支持局域网访问 setlocal enabledelayedexpansion REM 显示启动横幅 -echo ====================================== -echo Web Result 静态服务器 +echo ========================================== +echo 订单班AI生成方案展示系统 echo 端口: 4155 -echo ====================================== +echo 支持局域网访问 +echo ========================================== echo. REM 获取脚本所在目录 @@ -32,6 +34,19 @@ echo [信息] Node.js 版本: node --version echo. +REM 检查是否安装了依赖 +if not exist "node_modules" ( + echo [信息] 首次运行,正在安装依赖... + call npm install + if errorlevel 1 ( + echo [错误] 依赖安装失败 + pause + exit /b 1 + ) + echo [成功] 依赖安装完成 + echo. +) + REM 检查端口 4155 是否被占用 netstat -ano | findstr :4155 >nul 2>&1 if not errorlevel 1 ( @@ -39,7 +54,7 @@ if not errorlevel 1 ( echo [信息] 正在查看占用进程... netstat -ano | findstr :4155 echo. - + set /p "kill_process=是否终止占用进程?(y/N): " if /I "!kill_process!"=="y" ( echo [信息] 正在终止占用进程... @@ -57,11 +72,29 @@ if not errorlevel 1 ( REM 启动服务器 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. -REM 使用 Node.js 启动服务器 -node server.js +REM 启动Node.js服务器 +node app.js -pause \ No newline at end of file +pause diff --git a/web_frontend/web_result/start.sh b/web_frontend/web_result/start.sh index a738029f..f9a8d428 100755 --- a/web_frontend/web_result/start.sh +++ b/web_frontend/web_result/start.sh @@ -1,15 +1,15 @@ #!/bin/bash -# Web Result 静态服务器启动脚本 (Node.js版) +# 订单班AI生成方案展示系统 - 启动脚本 # 端口: 4155 # 支持局域网访问 # 颜色定义 -GREEN='' -BLUE='' -YELLOW='' -RED='' -NC='' +GREEN='\033[0;32m' +BLUE='\033[0;34m' +YELLOW='\033[1;33m' +RED='\033[0;31m' +NC='\033[0m' # 获取脚本所在目录 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -23,11 +23,11 @@ get_lan_ip() { fi } -echo -e "${BLUE}======================================${NC}" -echo -e "${BLUE} Web Result 静态服务器${NC}" +echo -e "${BLUE}==========================================${NC}" +echo -e "${BLUE} 订单班AI生成方案展示系统${NC}" echo -e "${BLUE} 端口: 4155${NC}" echo -e "${BLUE} 支持局域网访问${NC}" -echo -e "${BLUE}======================================${NC}" +echo -e "${BLUE}==========================================${NC}" echo # 切换到脚本所在目录 @@ -42,6 +42,19 @@ fi 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 LAN_IP=$(get_lan_ip) if [ -z "$LAN_IP" ]; then @@ -54,7 +67,7 @@ if lsof -Pi :4155 -sTCP:LISTEN -t >/dev/null 2>&1; then echo -e "${YELLOW}[警告] 端口 4155 已被占用${NC}" echo -e "${BLUE}[信息] 正在查看占用进程...${NC}" lsof -i :4155 - + read -p "是否终止占用进程?(y/N): " kill_process if [[ $kill_process =~ ^[Yy]$ ]]; then echo -e "${BLUE}[信息] 正在终止占用进程...${NC}" @@ -70,9 +83,9 @@ fi # 启动服务器 echo -e "${GREEN}[信息] 正在启动服务器...${NC}" echo -echo -e "${GREEN}╔════════════════════════════════════════╗${NC}" -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} ${BLUE}http://localhost:4155${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} ${BLUE}http://${LAN_IP}:4155${NC}" + echo -e "${GREEN}║${NC}" 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 -e "${YELLOW}[提示] 按 Ctrl+C 停止服务器${NC}" echo -# 使用 Node.js 启动服务器 -node server.js \ No newline at end of file +# 启动Node.js服务器 +node app.js