简体中文 | [English](/docs/en/develop/3-0-how-to-develop.md)

# 开发一个新的资源列表页

- 步骤 1：确认代码位置及目录结构
  - 按照预想的在菜单项中的位置，放置在 Containers 下
  - 以云主机为例，对应的菜单项为`计算-云主机`，那么创建文件夹`src/pages/compute/containers/Instance`，创建文件`src/pages/compute/containers/Instance/index.jsx`
- 步骤 2：编写 Store 代码
  - 参考[3-5-BaseStore-introduction](3-5-BaseStore-introduction.md)，复写相应的函数
- 步骤 3：编写列表页代码
  - 参考[3-1-BaseList-introduction](3-1-BaseList-introduction.md)，复写相应的函数
- 步骤 4：配置路由
  - 参考[3-13-Route-introduction](3-13-Route-introduction.md)
  - 在步骤 1 中的父级目录的`routes/index.js`文件中，配置路由
  - 如果是全新的模块，还需要在`src/pages/storage/routes/index.js`中导入
- 步骤 5：配置菜单
  - 参考[3-12-Menu-introduction](3-12-Menu-introduction.md)
  - 配置控制台的菜单项，在`src/layouts/menu.jsx`中配置
  - 配置管理平台的菜单项，在`src/layouts/admin-menu.jsx`中配置
- 步骤 6：国际化
  - 参考[3-14-I18n-introduction](3-14-I18n-introduction.md)，完成相应翻译
- 如果，产品需求的列表页面是含有`Tab`的页面，则可参考[3-2-BaseTabList-introduction](3-2-BaseTabList-introduction.md)，通常`index.jsx`内配置`Tab`，可参考镜像页面代码`src/pages/compute/containers/Image/index.jsx`

# 开发一个新的资源详情页

- 步骤 1：确认代码位置及目录结构
  - 按照预想的在菜单项中的位置，放置在 Containers 下
  - 以云主机为例，对应的菜单项为`计算-云主机`，创建文件`src/pages/compute/containers/Instance/Detail/index.jsx`，`src/pages/compute/containers/Instance/Detail/BaseDetail.jsx`
- 步骤 2：编写 Store 代码
  - 参考[3-5-BaseStore-introduction](3-5-BaseStore-introduction.md)，复写相应的函数
- 步骤 3：编写详情页代码
  - 参考[3-3-BaseDetail-introduction](3-3-BaseDetail-introduction.md)，复写相应的函数
- 步骤 4：编写详情页-详情 Tab 代码
  - 参考[3-4-BaseDetailInfo-introduction](3-4-BaseDetailInfo-introduction.md)，复写相应的函数
- 步骤 5：配置路由
  - 参考[3-13-Route-introduction](3-13-Route-introduction.md)
  - 在步骤 1 中的父级目录的`routes/index.js`文件中，配置路由
  - 如果是全新的模块，还需要在`src/pages/storage/routes/index.js`中导入
- 步骤 6：配置菜单
  - 参考[3-12-Menu-introduction](3-12-Menu-introduction.md)
  - 配置控制台的菜单项，在`src/layouts/menu.jsx`中配置
  - 配置管理平台的菜单项，在`src/layouts/admin-menu.jsx`中配置
- 步骤 7：国际化
  - 参考[3-14-I18n-introduction](3-14-I18n-introduction.md)，完成相应翻译

# 开发一个新的操作

## 开发一个页面级的操作

- 步骤 1：确认代码位置及目录结构
  - 按照预想的在菜单项中的位置，放置在 Containers 下
  - 以云硬盘为例，对应的菜单项为`存储-云硬盘-云硬盘创建`，创建文件`src/pages/storage/containers/Volume/actions/Create/index.jsx`
- 步骤 2：编写 Store 代码
  - 参考[3-5-BaseStore-introduction](3-5-BaseStore-introduction.md)，复写或新增相应的函数
- 步骤 3：编写 FormAction 代码
  - 参考[3-6-FormAction-introduction](3-6-FormAction-introduction.md)，复写相应的函数
- 步骤 4：配置 Action
  - 参考[3-11-Action-introduction](3-11-Action-introduction.md)，配置到相应为位置
- 步骤 5：配置路由
  - 参考[3-13-Route-introduction](3-13-Route-introduction.md)，配置对应的路由
- 步骤 6：配置菜单
  - 参考[3-12-Menu-introduction](3-12-Menu-introduction.md)
  - 配置控制台的菜单项，在`src/layouts/menu.jsx`中配置
  - 配置管理平台的菜单项，在`src/layouts/admin-menu.jsx`中配置
- 步骤 7：国际化
  - 参考[3-14-I18n-introduction](3-14-I18n-introduction.md)，完成相应翻译

## 开发一个确认型的操作

- 步骤 1：确认代码位置及目录结构
  - 按照预想的在菜单项中的位置，放置在 Containers 下
  - 以云硬盘为例，对应的菜单项为`存储-云硬盘-删除云硬盘`，创建文件`src/pages/storage/containers/Volume/actions/Delete.jsx`
- 步骤 2：编写 Store 代码
  - 参考[3-5-BaseStore-introduction](3-5-BaseStore-introduction.md)，复写或新增相应的函数
- 步骤 3：编写 ConfirmAction 代码
  - 参考[3-8-ConfirmAction-introduction](3-8-ConfirmAction-introduction.md)，复写相应的函数
- 步骤 4：配置 Action
  - 参考[3-11-Action-introduction](3-11-Action-introduction.md)，配置到相应为位置
- 步骤 5：国际化
  - 参考[3-14-I18n-introduction](3-14-I18n-introduction.md)，完成相应翻译

## 开发一个弹窗型的操作

- 步骤 1：确认代码位置及目录结构
  - 按照预想的在菜单项中的位置，放置在 Containers 下
  - 以云硬盘为例，对应的菜单项为`存储-云硬盘-编辑`，创建文件`src/pages/storage/containers/Volume/actions/Edit.jsx`
- 步骤 2：编写 Store 代码
  - 参考[3-5-BaseStore-introduction](3-5-BaseStore-introduction.md)，复写或新增相应的函数
- 步骤 3：编写 ModalAction 代码
  - 参考[3-7-ModalAction-introduction](3-7-ModalAction-introduction.md)，复写相应的函数
- 步骤 4：配置 Action
  - 参考[3-11-Action-introduction](3-11-Action-introduction.md)，配置到相应为位置
- 步骤 5：国际化
  - 参考[3-14-I18n-introduction](3-14-I18n-introduction.md)，完成相应翻译

## 开发一个分步骤的页面级的操作

- 步骤 1：确认代码位置及目录结构
  - 按照预想的在菜单项中的位置，放置在 Containers 下
  - 以云硬盘为例，对应的菜单项为`计算-云主机-创建`，创建文件`src/pages/compute/containers/Instance/actions/StepCreate/index.jsx`
- 步骤 2：编写 Store 代码
  - 参考[3-5-BaseStore-introduction](3-5-BaseStore-introduction.md)，复写或新增相应的函数
- 步骤 3：编写 StepAction 代码
  - 参考[3-9-StepAction-introduction](3-9-StepAction-introduction.md)，复写相应的函数
- 步骤 4：配置 Action
  - 参考[3-11-Action-introduction](3-11-Action-introduction.md)，配置到相应为位置
- 步骤 5：配置路由
  - 参考[3-13-Route-introduction](3-13-Route-introduction.md)，配置对应的路由
- 步骤 6：配置菜单
  - 参考[3-12-Menu-introduction](3-12-Menu-introduction.md)
  - 配置控制台的菜单项，在`src/layouts/menu.jsx`中配置
  - 配置管理平台的菜单项，在`src/layouts/admin-menu.jsx`中配置
- 步骤 7：国际化
  - 参考[3-14-I18n-introduction](3-14-I18n-introduction.md)，完成相应翻译
