3.1 KiB
3.1 KiB
title, type, permalink, stable_id, scope, memory_type, project_id, usage_profile_id, status, revision, request_id, created_at, updated_at, tags
| title | type | permalink | stable_id | scope | memory_type | project_id | usage_profile_id | status | revision | request_id | created_at | updated_at | tags | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C 端模块化编排契约与媒体存储层级 | fact | main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/c-端模块化编排契约与媒体存储层级 | 3efd0adf-f91b-4d78-b163-5365c257d6d4 | project | fact | d44c219a-0b31-4de1-b160-323eb34a4c6a | 7aee455b-24cc-4008-bdaf-443721e6f939 | active | 1 | artveris-migrate-2026-09-03-fact-07 | 2026-09-03T03:41:49.610529+00:00 | 2026-09-03T03:41:49.610529+00:00 |
|
模块化编排(packages/shared/src/trace-modules.ts):布局 { version: 1, modules: [...] },数组顺序即展示顺序,每模块 { id, type, visible, title?, config }。
- 系统单例模块(id 固定):
HERO_CAROUSEL(hero) /AUTHENTICITY_STATUS(authenticity) /PRODUCT_INTRO(product-intro) /SHOWCASE(showcase) /CERTIFICATES(certificates) /TIMELINE(timeline) /BLOCKCHAIN(blockchain);可重复自定义模块:IMAGE_TEXT(图文,imagePosition 上/下/左/右)、HORIZONTAL_GALLERY(横向图库)。 - 限制:最多 32 模块、标题 120 字、正文 5000 字、图库 30 张;白名单校验未知字段全拒;不开放 HTML/CSS。函数:
validateTraceLayout/parseTraceLayout(非法抛错)、resolveTraceLayout(非法回默认)、templateTraceLayout(剥离作品媒体/文案)、createDefaultTraceLayout。 - 默认顺序(旧数据无布局时):轮播 → 防伪 → 产品介绍 → 作品展示 → 版权证书 → 时间轴 → 区块链。
- 模板
defaultTraceLayout只存结构(顺序/显隐/标题/imagePosition),建档时深拷贝到Artwork.traceLayout,之后互不影响;作品布局随快照走审核。 - 公开接口过滤
visible=false模块并把自定义模块媒体 key 转 URL;系统模块无内容自动隐藏(BLOCKCHAIN 保留“暂未上链”态)。防伪状态模块可排序/隐藏(甲方要求能置底),但首扫激活/计数/日志由后端固定执行。 - 固定不可配置:顶栏(显示作品名)、预览提示条、加载/错误页、隐私说明、页脚。版权证书区不显示类型角标。
- 后台
TraceModuleEditor.vue:上下移/拖拽/显隐/标题覆盖/自定义模块增删复制;卡片可折叠(默认全收,新增/复制自动展开,折叠按钮在拖动手柄右侧序号左侧,纯 UI 不写入 JSON)。ArtworkEdit 将轮播/介绍/展示/时间轴/证书编辑嵌入对应模块卡。
媒体存储层级(人类可读):{模板ID}/{档案编号}/ 下放 作品图_{ts}_{n}、作品展示_...、节点-{标题}_...、证书-{名称}_...(水印 _wm)、模块图文-{标题}_...、模块图库-{标题}_...;出库实况图 {模板ID}/{档案编号}/{追溯码}/出库实况_...。实现:上传先进临时日期目录,实体保存时 move 归位并改写 DB 引用(新建时档案号尚未生成);归位失败不阻断业务;编辑旧档案渐进迁移存量。本地驱动无 CDN 时返回相对路径 /uploads/{key}。原始出库 ZIP 存 .private/ 前缀。