定位

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
pf-manage
├── 系统管理
│ ├── 用户 / 角色 / 菜单 ← /api/manage/{users,roles,menus}
│ ├── 租户管理 ← /api/manage/tenants
│ └── 动态路由(菜单驱动)
│
├── 模板治理
│ ├── 模板列表(分页/瘦身) ← /api/manage/templates(/page,/options)
│ ├── 模板分类 ← /api/manage/template-types
│ └── 批量改类型/尺寸/复制/重命名/删除
│
├── 相册体系
│ ├── 相册 / 尺寸库 / P 数库 ← /api/manage/albums · album-sizes
│ └── 相册-模板关联
│
├── 商品体系
│ ├── 店铺 / 商品 / 规格 ← /api/manage/{shop,product,spec,business}
│ └── 按规格批量建单
│
├── 订单与合成
│ ├── 订单列表 ← /api/manage/orders
│ ├── 合成提交(含明细弹窗) ← /api/manage/order(submission/relation)
│ └── 重合成(composeStatus 回退 pending)
│
└── 素材库
├── 背景库 / 字体库 ← /api/manage/{background,fontLibrary}
└── 文件存储(OSS) ← /api/manage/oss

后端路由对应

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/core useClipboard)

配合 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、暗色主题、权限指令、请求拦截。新增一个管理模块:

  1. 在 pf-manage/src/views/ 新建页面
  2. 在 system_menus 表登记路由 + 权限码
  3. 在 pf-service 的 routes/pf-manage/ 写对应路由文件
  4. (可选)跑路由生成脚本同步声明

下一步

站内搜索

没有找到内容!