介绍

本章节讲述了如何使用Choerodon 和React 开发一个全新的页面。包含如下内容:

  • 菜单配置
  • 页面编写
  • 配置路由
  • 获取后台数据
  • 前台数据渲染

前端新加模块和页面,想在菜单中显示需要跟后端沟通各种事宜与配置,大大增加了开发效率与成本。在此版本中,只需要简单配置,菜单数据完全由前端控制。

在模块内部创建config文件夹,目录结构为:

Menu.yml文件内容看起来是这样的:

  1. icon: IAM # 服务的图标
  2. sort: 1
  3. organization: # 组织层的菜单
  4. - "hello": # 菜单字段
  5. icon: manage_organization # 菜单图标
  6. Routes: /demo/hello # 菜单对应路由
  7. permission: # 菜单内容具有的权限
  8. - 'demo-service.demo.hello'
  9. # site: # site层的菜单
  10. # project: # 项目层的菜单
  11. # user: # 个人中心层的菜单

en.yml文件内容:

zh.yml文件内容:

  1. "demo": "DEMO"
  2. # site
  3. # organization
  4. # project
  5. # user

在项目根目录下,执行

成功之后在项目根目录会生成config.yml文件。

然后再执行命令

  1. $ python ./demo/node_modules/choerodon-front-boot/structure/menu/__init__.py -o sql -m demo -i ip地址 -p 端口号 -u 用户名 -s 密码
变量名说明
DB_HOST用户名
DB_PORT端口
DB_USER用户名
DB_PASS密码
DB_NAME数据库(默认为iam_service)

成功后,会将前端配置的菜单信息插入后端数据库中。

页面编写

/demo/src/app/demo/containers/organization(project, user, global)目录下新建一个新的功能文件夹hello及其相关的JS文件:

/demo/src/app/demo/containers/DEMOIndex.js文件中配置新建文件的访问路径:

  1. // DEMOIndex.js
  2. import React from 'react';
  3. import { inject } from 'mobx-react';
  4. import { asyncLocaleProvider, asyncRouter, nomatch } from 'choerodon-front-boot';
  5. // 在头部引入异步路由模块
  6. const HelloIndex = asyncRouter(() => import('./organization/hello'));
  7. class DEMOIndex extends React.Component {
  8. render() {
  9. const { match, AppState } = this.props;
  10. return (
  11. <Switch>
  12. <Route path={`${match.url}/hello`} component={HelloIndex} /> // 在下面路由中进行编写设置
  13. <Route path={'*'} component={nomatch} />
  14. </Switch>
  15. );
  16. }
  17. }

获取后台数据

文件可以被访问后,接下来就是完善界面信息,从后台获取数据。获取数据的方法都写在和文件对应的store文件中。

关于axios()的相关信息可以参考:https://www.npmjs.com/package/axios