ARCHITECTURE.md 2.2 KB

CreateTemplate 模版设计页 - 架构与维护指南

概述

CreateTemplate.vue 是模版创建/编辑页,功能较多,代码量大。本文档描述当前架构、目录结构与维护建议,便于团队协作与调试。

目录结构

TemplateManagement/
├── CreateTemplate.vue      # 主页面(编排层)
├── TemplateDesign.vue     # 模版列表页
├── constants.js           # 常量集中管理(可调试、易维护)
├── utils.js               # 纯工具函数
├── ARCHITECTURE.md        # 本架构文档
└── composables/           # (规划)可复用的组合式逻辑
    └── ...

模块职责

constants.js

  • 职责:集中管理配置常量,便于调整与调试
  • 内容:画布比例、AI 工具列表、素材分类、预设参数等
  • 使用import { RATIO_CONFIG, AI_TOOL_LIST, ... } from './constants.js'

utils.js

  • 职责:纯函数工具,无副作用,可单独测试
  • 内容resolveMaterialUrltoStoragePathformatFileSizegetImageLoadUrl
  • 使用import { resolveMaterialUrl, getImageLoadUrl, toStoragePath, formatFileSize } from './utils.js'

CreateTemplate.vue

  • 职责:页面编排、状态管理、事件协调
  • 建议:保持为“薄编排层”,将复杂逻辑逐步抽离到 composables 或子组件

可维护性建议

  1. 常量修改:统一在 constants.js 中修改,避免在组件内硬编码
  2. 工具函数:新增纯函数放入 utils.js,并补充 JSDoc
  3. 调试:通过修改 constants.js 中的值可快速验证不同配置
  4. 后续拆分:可将 useMaterialsuseCanvasLayersuseTemplateSave 等抽成 composables

状态流转概要

  • pages / layers:多页模版,每页独立图层数组
  • currentPageIndex:当前编辑页
  • selectedLayerId:当前选中图层
  • editingTemplateId:编辑已有模版时的 ID(保存走更新接口)

关键流程

  • 新建:clearDesign() → 空画布
  • 编辑:useTemplate(template) → 加载模版数据
  • 做同款:useAsTemplate(template) → 加载但不设 editingTemplateId
  • 保存:saveTemplate() → 根据 editingTemplateId 调用新增/更新接口