Page Template Builder
目标
生成统一页面骨架,保证页面结构、状态管理、交互反馈和埋点位的一致性。
输入信息采集
- 页面类型(列表、详情、表单、工作台)。
- 数据来源与加载方式(分页、筛选、排序)。
- 权限和路由要求。
- 空/错/加载状态的表现要求。
执行流程
- 根据页面类型选择标准骨架。
- 引入
references/page-template.md作为输出基线。 - 先确定页面文件结构,必须固定为三件套:
index.vue、components/、column.js。 - 明确 5 个状态块:loading、empty、error、success、forbidden。
- 标准化区域划分:Header、Filter、Content、Footer。
- 给出扩展位:操作栏、批量操作、埋点位、国际化文本位。
输出要求
- 页面区块结构图(文本版即可)。
- 状态流转说明。
- 事件约定(查询、重置、刷新、导出)。
- 示例代码骨架(与项目技术栈一致)。
- 在 smart-admin 列表页场景中,必须满足:
- 页面结构必须固定为三件套:index.vue+components/+column.js,禁止只生成单文件页面;
- 使用admin-page-layout作为页面容器;
- API 统一放在src/api/**并从该目录导入;
- 权限统一维护在src/constants/permission-const.js;
- table-id 统一维护在src/constants/support/table-id-const.js;
- table 列配置必须放在独立column文件(如column.js/constant/column.js)中,页面文件仅允许import { columns } ...使用,禁止在页面内联声明列配置;
-show-add/show-delete/show-import/show-export按权限点控制;
- 所有按钮(含新增)均绑定权限点;
- 页面内所有方法必须包含完整注释;
- filter 区输入框使用admin-input,下拉/枚举使用SmartEnumSelect;
- table 操作栏必须使用more-button组件承载操作项(禁止使用行内a-button直接平铺操作);
- 禁止将options以行内按钮形式直接展示在表格行上(必须收敛到more-button);
- 所有 table column 列配置都必须显式设置width,禁止省略列宽;
- 操作列必须命名为operate且配置fieldType: "slot"与width,并在模板中通过<more-button :item="record" :options="moreButtonOptions" />渲染。