定位
pf-manage 是图模工坊的运营/管理入口——负责账号、角色、菜单、租户、模板、相册、商品/规格/店铺、订单与合成提交、素材库治理。
- 基底:soybean-admin 血统(
@sa/*命名源于此) - UI:Naive UI
2.44(不是 Material Design) - 构建:Vite 8 + UnoCSS(
@unocss/preset-wind3等)|图表:ECharts 6|i18n:vue-i18n 11 - 端口:开发环境
9527(base/manage/),preview 9725 - 依赖包:
@sa/auth、@sa/color、@sa/hooks、@sa/materials、@sa/utils、@sa/uno-preset - 鉴权:JWT(与 pf-editor 共账号体系)
pf-manage 里出现的 “material” 只有 Iconify 的
material-symbols:*图标名和@sa/materials(后台布局组件包),都不是 Material Design 主题。
模块全景
1 | pf-manage |
后端路由对应
apps/pf-service/src/routes/pf-manage/(前缀 /api/manage,use(auth) JWT + 租户上下文),约 21 个子模块:album、albumSize、auth、route、background、order(manage/relation/submission)、product/business/shop/spec、fontLibrary、oss、stats、user、role、menu、templateType、template、tenant。
首页快捷门户
近期首页新增 src/views/home/modules/quick-portals.vue(QuickPortals)——一组渐变门户卡,引导运营跳到另外两端:
- “模板设计工作台”(pf-editor):
window.open("/editor/", "_blank"),徽标标注「矢量画布排版 / 人脸智能对齐 / 出血裁切规范」 - 客户上传端(pf-app):
window.open("/app/")+ 一键复制${origin}/app/链接(@vueuse/coreuseClipboard)
配合 header-banner.vue、quick-onboarding.vue 提供概览统计与新手引导入口。
关键操作
模板治理
/api/manage/templates/page 分页(current/size,默认 10)+ 瘦身投影 + count(),租户维度过滤;/options 提供极简下拉数据;支持批量改类型/尺寸/复制/重命名/删除。列表不返回 sceneJson,详情按 id 单查。
合成提交监控
按 order_template_submissions.status(pending / processing / completed / failed)聚合查看;触发重合成会把 composeStatus 回退 pending,下一轮 Job 重新抢占。明细弹窗 order-submission-items-modal.vue 用 resolveOssAssetUrl(url, 150/400) + Naive <NImage lazy> 懒加载缩略图,预览走全清。
相册与商品体系
相册是”多对多”密度最高的模块(相册 × 尺寸 × P数 × 模板);商品侧新增店铺/商品/规格与”按规格批量建单”,规格用 templateRules / albumRules(jsonb + GIN 索引)描述可产出组合。
素材库审核
新上传背景/字体可按 status 启停;userId=0 上架到全局素材池。
共享包(@sa/*)
pf-manage 大量复用 monorepo 共享包:@sa/auth(跨端登录态/租户存储,PF_token 等)、@sa/hooks(useTable / useBoolean / useLoading 等)、@sa/materials(AdminLayout / PageTab 布局组件)、@sa/uno-preset(presetSoybeanAdmin() UnoCSS 预设)、@sa/color、@sa/utils。
二开提示
soybean-admin 自带动态路由(菜单驱动)、i18n、暗色主题、权限指令、请求拦截。新增一个管理模块:
- 在
pf-manage/src/views/新建页面 - 在
system_menus表登记路由 + 权限码 - 在
pf-service的routes/pf-manage/写对应路由文件 - (可选)跑路由生成脚本同步声明
下一步
- 想看后端如何提供管理接口 → pf-service 后端
- 想看订单/提交表字段 → 数据模型
- 想看合成提交状态机 → 自动合成流水线
- 想看成品如何被批量下载 → 下载客户端