AdmSysV2【公共组件库】@前端(For Git Submodule)
edit | blame | history | raw

项目结构

本文档详细描述 admin2-components 项目的目录结构和组件分类规范。

整体结构

admin2-components/
├── src/                    # 源代码
│   ├── framework/          # 框架组件 - 页面主结构
│   ├── forms/              # 表单组件 - 用户输入
│   ├── fragments/          # 页面片段 - 布局元素
│   ├── plugins/            # 高级组件 - 复杂功能
│   ├── bases/              # 业务组件 - 领域特定
│   └── assets/             # 静态资源
├── test/                   # 测试案例(待补充)
├── public/                 # 公共资源
├── openspec/               # 变更管理
├── README.md               # 项目概述
├── CLAUDE.md               # Claude 工作指导
└── STRUCTURE.md            # 本文档

src/ 目录

framework/ - 框架组件

页面主结构相关的组件,管理系统的整体布局。

framework/
├── headerBar/      # 顶部导航栏
├── sideMenu/       # 侧边菜单
├── pageViews/      # 多页签视图
├── screenGrid/     # 屏幕网格布局
└── scrollablePanes/ # 可滚动面板

典型组件: CHeaderBar, CSideMenu, CPageViews, CScreenGrid

forms/ 表单组件

处理用户输入的各类表单组件。

forms/
├── datePicker/         # 日期选择
├── cascader/           # 级联选择
├── select/             # 下拉选择
├── input/              # 文本输入
├── upload/             # 文件上传
├── colorPicker/        # 颜色选择
├── chinaAddress/       # 中国地址级联
└── ...

典型组件: CDatePicker, CChinaCascader, CImageUploader, CFileUploader

fragments/ - 页面片段

页面中的小型布局元素和UI片段。

fragments/
├── contentBox/     # 内容盒子
├── gridBox/        # 网格盒子
├── flatForm/       # 扁平表单
├── helper/         # 辅助工具
├── notice/         # 通知提示
├── text/           # 文本组件
├── icons/          # 图标组件
└── ...

典型组件: CContentBox, CGridBox, CFlatForm, CHelper, CNotice

plugins/ - 高级组件

复杂功能组件,通常包含较多业务逻辑。

plugins/
├── richTable/       # 高级表格
├── tableForm/       # 表格表单
├── editableTable/   # 可编辑表格
├── echarts/         # 图表组件
├── draggableModal/  # 可拖拽弹窗
├── detailTabsModel/ # 详情页签弹窗
├── imageViewer/     # 图片查看器
├── itemEditor/      # 条目编辑器
├── richEditor/      # 富文本编辑器
└── ...

典型组件: CRichTable, CEditableTable, CEchartsPie, CDraggableModal

bases/ - 业务组件

领域特定的业务组件,与具体业务场景强相关。

bases/
├── Director/            # 总监相关
├── DirectorHome/        # 总监首页
├── DirectorOperationListing/  # 运营列表
└── ...

典型组件: Director, DirectorHome, DirectorOperationListing

assets/ - 静态资源

静态资源文件,如图片、数据文件等。

assets/
├── images/        # 图片资源
├── datas/         # 数据文件(如地区数据)
└── ...

test/ - 测试案例

测试目录,待测试框架确定后补充结构。

初步规划:
test/ ├── unit/ # 单元测试 ├── integration/ # 集成测试 └── e2e/ # 端到端测试

文件命名规范

组件文件

  • 组件文件: 以 C 开头,如 CButton.tsx
  • 样式文件: 以 c 开头,如 cButton.scss
  • 类型文件: 以 types 结尾,如 buttonTypes.ts

目录命名

  • 组件目录: 使用 CamelCase,如 datePickerrichTable
  • 目录内的组件文件放在对应名称的子目录中

示例

forms/
└── datePicker/
    ├── CDatePicker.tsx      # 主组件
    ├── cDatePicker.scss     # 样式
    ├── useDatePicker.ts     # Hook(可选)
    └── datePickerTypes.ts   # 类型定义(可选)

组件开发规范

  1. 函数组件: 使用函数式组件 + Hooks
  2. TypeScript: 严格模式,提供完整的类型定义
  3. 样式隔离: 使用 CSS Modules 或 SCSS 避免样式污染
  4. 单一职责: 每个组件专注于单一功能
  5. 可复用性: 提取通用逻辑为自定义 Hook