Monorepo:纯 React(Craft.js + FortuneSheet) 报告模板编辑 + Go Meta/Worker 导出。
frontend/ React Craft Design — 存 DSL
backend/ Go meta(CRUD + Excel→DSL)+ worker SDK(内嵌 DSL→HTML + gofpdf)
架构:见 docs/prd-architecture.md。
后端导出 API / 流水线:见 docs/export-backend.md。
编辑器 ──保存 DSL──► Meta(Postgres dsl_json)
Excel ──上传──► Meta import-excel ──► DSL ──► 编辑器
导出时:Worker ← DSL ← Meta
Worker 内嵌 dslrender → HTML → PDF/Excel/Word
约束: 模板唯一可信源是 DSL JSON;HTML 仅运行时产物。
cp .env.example .env
make docker-up
# terminal 1
make run-meta # :3010
# terminal 2
make run-worker # :3011
# terminal 3
cd frontend && npm i && npm run dev # :5173| 服务 | 端口 |
|---|---|
| Meta | 3010 |
| Worker | 3011 |
| Frontend | 5173 |
POST /api/render/html— DSL + bizData → HTMLPOST /api/render/pdf— HTML → PDF(gofpdf)POST /api/templates/{id}/invoke— 完整导出
import "github.com/solat/lowcode-export/worker"
w, _ := worker.New(worker.ConfigFromEnv()) // META_URL
_ = w.Run(ctx)