feat: 公开商品页重设计 + web 上传修复 + 二维码配置

- 公开商品页(/product/:uuid)全面重设计:全宽正方形图片轮播、
  左右滑动切图、点击放大全屏查看、商品参数含描述、页脚贴底
- 修复 Flutter web 文件上传无反应(path→bytes)
- 修复 web 路由空白页(usePathUrlStrategy + 单层 MaterialApp.router)
- 二维码 URL 改为从 STORAGE_PUBLIC_URL 环境变量读取
- 新增 PUBLIC_URL dart-define → AppConfig.publicBaseUrl
- 新增 CI/CD workflows + NAS runner compose 配置
- seed S001 补充商品描述字段

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-04-30 00:31:11 +08:00
parent 393e227de5
commit 655c1d366e
17 changed files with 738 additions and 157 deletions
+1
View File
@@ -8,4 +8,5 @@ JWT_REFRESH_EXPIRE_H=168
LICENSE_HMAC_SECRET=CHANGE_ME_RANDOM_32CHARS
STORAGE_UPLOAD_DIR=/opt/jiu/images
STORAGE_BASE_URL=https://jiu.51yanmei.com/images
STORAGE_PUBLIC_URL=https://jiu.51yanmei.com
DB_PASSWORD=CHANGE_ME_DB_PASS
+21
View File
@@ -0,0 +1,21 @@
log:
level: info
runner:
file: .runner
capacity: 1
timeout: 3h
labels:
- ubuntu-latest:docker://catthehacker/ubuntu:act-latest
cache:
enabled: true
dir: /data/cache
container:
network: bridge
privileged: false
# 备份目录挂载到每个 job 容器,使 backup workflow 可以写 NAS 磁盘
options: -v /volume1/backups:/volume1/backups
valid_volumes:
- /volume1/backups
+50
View File
@@ -0,0 +1,50 @@
version: '3.8'
# 群晖 NAS 自托管 Gitea + act_runner
# 使用方法:
# 1. 在同目录创建 .env,填入 RUNNER_TOKEN(见下方说明)
# 2. 在 Container Manager 导入此文件并启动
# 3. 首次启动后访问 http://NAS-IP:3000 完成 Gitea 初始化
# 4. 管理后台 > 站点管理 > 配置 > 开启 Actions
# 5. 仓库 Settings > Actions > Runners > 获取注册 Token 填入 .env
# 6. 重启 act-runner 容器完成注册
#
# 本地访问:http://NAS-IP:3000
# Git SSH ssh://git@NAS-IP:2222/用户名/jiu.git
#
# .env 格式:
# RUNNER_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxx
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: always
environment:
USER_UID: 1000
USER_GID: 1000
GITEA__actions__ENABLED: "true"
GITEA__server__ROOT_URL: http://gitea:3000
ports:
- "3000:3000"
- "2222:22"
volumes:
- /volume1/docker/gitea/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
act-runner:
image: gitea/act_runner:latest
container_name: gitea-act-runner
restart: always
depends_on:
- gitea
environment:
CONFIG_FILE: /data/config.yaml
GITEA_INSTANCE_URL: http://gitea:3000
GITEA_RUNNER_REGISTRATION_TOKEN: ${RUNNER_TOKEN}
GITEA_RUNNER_NAME: nas-runner
volumes:
- /volume1/docker/gitea/runner:/data
- /var/run/docker.sock:/var/run/docker.sock
- /volume1/backups:/volume1/backups
+2
View File
@@ -0,0 +1,2 @@
# 已废弃:此文件为 GitHub Actions self-hosted runner 配置
# 当前使用 Gitea Actions,请参考 docker-compose.gitea.yml