#!/bin/bash # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${BLUE} 预售出库单功能 - 快速启动脚本${NC}" echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" # 项目根目录 PROJECT_ROOT="/Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat" echo -e "\n${YELLOW}📋 启动计划:${NC}" echo "1. 后端API (2015 端口)" echo "2. 前端Admin (3001 端口)" echo "3. 收银台 (8888 端口)" echo "" # 检查必要的目录 echo -e "${YELLOW}✓ 检查项目结构...${NC}" if [ -d "$PROJECT_ROOT/netcore" ] && [ -d "$PROJECT_ROOT/antis-ncc-admin" ] && [ -d "$PROJECT_ROOT/sy" ]; then echo -e "${GREEN}✅ 项目结构正确${NC}" else echo -e "${RED}❌ 项目结构错误,请检查路径${NC}" exit 1 fi read -p "是否继续启动服务? (y/n) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "已取消" exit 1 fi echo -e "\n${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${YELLOW}🚀 1. 启动后端API (端口 2015)${NC}" echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" cd "$PROJECT_ROOT/netcore" echo -e "${YELLOW}⏳ 编译并启动后端...${NC}" dotnet run --urls="http://localhost:2015" --project src/Application/NCC.API & BACKEND_PID=$! echo -e "${GREEN}✅ 后端启动中 (PID: $BACKEND_PID)${NC}" sleep 3 echo -e "\n${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${YELLOW}🚀 2. 启动前端Admin (端口 3001)${NC}" echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" cd "$PROJECT_ROOT/antis-ncc-admin" echo -e "${YELLOW}⏳ 启动前端...${NC}" npm run serve -- --port 3001 & ADMIN_PID=$! echo -e "${GREEN}✅ 前端启动中 (PID: $ADMIN_PID)${NC}" sleep 2 echo -e "\n${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${YELLOW}🚀 3. 启动收银台 (端口 8888)${NC}" echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" cd "$PROJECT_ROOT/sy" echo -e "${YELLOW}⏳ 启动收银台服务器...${NC}" python3 -m http.server 8888 & CASHIER_PID=$! echo -e "${GREEN}✅ 收银台启动中 (PID: $CASHIER_PID)${NC}" sleep 2 echo -e "\n${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${GREEN}✅ 所有服务已启动!${NC}" echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "\n${YELLOW}📍 访问链接:${NC}" echo -e "${GREEN} 📊 前端Admin: http://localhost:3001${NC}" echo -e "${GREEN} 💳 收银台: http://localhost:8888${NC}" echo -e "${GREEN} 🔧 销售出库单: http://localhost:3001/#/wtXsckd${NC}" echo -e "${GREEN} 📦 预售出库单: http://localhost:3001/#/wtYsckd${NC}" echo -e "\n${YELLOW}📋 测试流程:${NC}" echo "1. 打开收银台: http://localhost:8888" echo "2. 登录并选择会员" echo "3. 添加缺货商品(库存=0)" echo "4. 观察'预售'标记、黄色背景、红色左边框" echo "5. 进行结算" echo "6. 系统自动创建预售出库单" echo "" echo -e "${YELLOW}🛑 停止服务:${NC}" echo "按 Ctrl+C 停止所有服务" echo "" # 等待 wait # 清理 echo -e "\n${YELLOW}🧹 清理进程...${NC}" kill $BACKEND_PID $ADMIN_PID $CASHIER_PID 2>/dev/null echo -e "${GREEN}✅ 服务已停止${NC}"