QUICK_START_PRESALE.sh 4.46 KB
#!/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}"