Files
jiu/deploy/deploy.sh
T
wangjia 393e227de5 feat: 商品详情页、XLS导入修复、分页选择器、导出功能
后端:
- 新增 product_images 表,支持每商品最多5张图(服务端压缩至1200px/JPEG85%)
- products 表新增 public_id(UUID)、description 字段
- 新增商品详情接口、二维码接口、公开商品接口(无鉴权)
- 修复 XLS 导入:OLE2 magic bytes 检测 + 临时文件解析,兼容 extrame/xls
- 修复商品/名称/系列/规格三张表导入数据为0(LastCol()=0 bug)
- 所有导入接口返回 total/imported/skipped 统计
- config 新增 StorageConfig,支持 STORAGE_* 环境变量覆盖
- 种子数据修复:products 补 public_id、新增 product_images TRUNCATE、schema.sql 表名修正

前端:
- 商品详情页:图片上传/删除、描述内联编辑、二维码弹窗、公开链接复制
- 公开商品页:无鉴权路由 /product/:public_id,Flutter Web SPA
- 商品详情列表(批次追踪)商品名超链接跳转详情页
- 导航「商品管理」改名「商品详情」
- 所有列表表格新增每页条数选择(10/20/50/100)
- 表格列头内嵌筛选(FilterableColumnHeader)
- 导出 Excel 功能(入库/出库/库存/财务/批次/往来单位)
- 网络恢复自动刷新 + 离线缓存展示

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 00:29:51 +08:00

65 lines
1.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 本地一键构建 + 部署脚本
# 用法:bash deploy/deploy.sh
set -e
EC2_HOST="18.136.60.128"
EC2_USER="ec2-user"
EC2_KEY="$HOME/.ssh/wangjia.pem"
DOMAIN="jiu.51yanmei.com"
export PATH="/opt/homebrew/bin:$PATH"
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$REPO_ROOT"
echo "=== 运行后端测试 ==="
cd backend
go test ./...
cd "$REPO_ROOT"
echo "=== 运行前端测试 ==="
cd client
flutter test
cd "$REPO_ROOT"
echo "=== 编译 Go 后端(linux/amd64 ==="
cd backend
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o jiu-server .
cd "$REPO_ROOT"
echo "=== 编译 Flutter Web ==="
cd client
flutter build web --release --dart-define=BASE_URL=https://$DOMAIN
cd "$REPO_ROOT"
echo "=== 上传后端二进制 ==="
scp -i "$EC2_KEY" backend/jiu-server $EC2_USER@$EC2_HOST:/tmp/jiu-server
echo "=== 上传前端静态文件 ==="
rsync -avz --delete -e "ssh -i $EC2_KEY" \
client/build/web/ $EC2_USER@$EC2_HOST:/tmp/jiu-web-new/
echo "=== 切换文件并重启服务 ==="
ssh -i "$EC2_KEY" $EC2_USER@$EC2_HOST bash << 'REMOTE'
set -e
# 后端
mv /tmp/jiu-server /opt/jiu/backend/jiu-server
chmod +x /opt/jiu/backend/jiu-server
sudo systemctl restart jiu
sleep 3
curl -sf http://localhost:8080/health || { echo "健康检查失败!"; exit 1; }
echo "后端重启成功"
# 前端(原子替换)
rm -rf /opt/jiu/web_old
mv /opt/jiu/web /opt/jiu/web_old 2>/dev/null || true
mv /tmp/jiu-web-new /opt/jiu/web
sudo systemctl reload nginx
echo "前端已更新"
REMOTE
echo ""
echo "部署完成:https://$DOMAIN"