前置说明
在进行后续的开发之前,请确保已经创建了一个CabloyJS项目,在这里我们假定创建的项目名称为:cabloy-demo
如何创建项目:快速开始
业务模块名称
CabloyJS采用模块化体系设计,所有的后端业务逻辑和前端页面都是以具体业务为单位,划分在不同的模块中。模块化体系是开发大型业务系统的基石。因此,我们首先要创建一个业务模块:bz-businesstrip
我们开发的业务模块不仅可以在团队内部使用,也可以发布到社区。为了确保模块名称全局唯一,模块名称分为两段:{providerId}-{moduleName}
名称 | 说明 | 举例 |
---|---|---|
providerId | 提供者Id | 比如,公司名称是秉烛科技 ,可以设置为bz |
moduleName | 模块名称 | 能清晰说明模块的业务性质即可,比如这里的businesstrip 就是要开发与出差申请 相关的业务 |
创建业务模块
进入项目所在目录,执行模块创建命令
- 1# 进入项目所在目录
- 2$ cd cabloy-demo
- 3$ npm run cli :create:module bz-businesstrip -- --template=module-business
- 如果命令行提示输入
suite name
,保持为空,直接回车即可。如果想了解套件
的概念,请参见:套件基本概念
重启服务
我们需要重启服务,让系统加载新建的业务模块
- 1## 后端服务
- 2$ npm run dev:backend
- 3## 前端服务
- 4$ npm run dev:front
效果
当业务模块创建完毕,我们就已经具备了以下功能:
-
实现了
出差申请(Businesstrip)
的增、删、改、查、搜索
等功能,并分配了初始权限 -
支持
用户星标
、用户标签
功能,方便用户对数据的个性化管理 -
增加了
新建Businesstrip
和Businesstrip列表
两个菜单项,并分配了初始权限 -
实现了业务列表页面:pc和pad显示
表格布局
,mobile显示列表布局
-
实现了业务表单页面:
只读
模式、编辑
模式
菜单位置
新建的两个菜单默认位于未归类
应用当中。我们后续可以创建自己的应用,并把菜单迁移过来集中管理
修改原子类型标题
在CabloyJS中,业务数据都是通过原子类型
来管理的,比如这里的出差申请
,其原子类型就是businesstrip
,定义在文件src/module/bz-businesstrip/backend/src/meta.js
中
- 1 // meta
- 2 const meta = {
- 3 base: {
- 4 atoms: {
- 5 businesstrip: {
- 6 info: {
- 7 bean: 'businesstrip',
- 8 title: 'Businesstrip',
- 9 ...
- 10 },
- 11 },
- 12 },
- 13 },
- 14 };
我们需要把原子类型的title修改为中文。按一般的理解,可以直接把Businesstrip
修改为出差申请
。但为了支持语言国际化,不需要修改这里的配置,而是直接提供不同的语言资源即可,系统会自动检索对应的语言资源。比如,为Businesstrip
提供中文和英文两种语言资源,可以这样操作:
1. 中文
src/module/bz-businesstrip/backend/src/config/locale/zh-cn.js
- 1module.exports = {
- 2+ Businesstrip: '出差申请',
- 3 'Create Businesstrip': '新建Businesstrip',
- 4 'Businesstrip List': 'Businesstrip列表',
- 5};
2. 英文
src/module/bz-businesstrip/backend/src/config/locale/en-us.js
- 1module.exports = {
- 2+ Businesstrip: 'Business Trip',
- 3};
CabloyJS在前端和后端都提供了便利好用的语言国际化机制。我们在开发任何业务模块时,首先使用英文,然后提供其他语言资源,这让我们的业务开发从一开始就具备国际化的视野和格局
修改菜单名称
由于自动生成的菜单名称是英文,可以通过以下步骤进行修改
1. 修改语言资源
src/module/bz-businesstrip/backend/src/config/locale/zh-cn.js
- 1module.exports = {
- 2- 'Create Businesstrip': '新建Businesstrip',
- 3+ 'Create Businesstrip': '新建出差申请',
- 4- 'Businesstrip List': 'Businesstrip列表',
- 5+ 'Businesstrip List': '出差申请清单',
- 6};
2. 修改菜单资源版本号
src/module/bz-businesstrip/backend/src/config/static/resources.js
- 1module.exports = app => {
- 2 const moduleInfo = app.meta.mockUtil.parseInfoFromPackage(__dirname);
- 3 const resources = [
- 4 // menu
- 5 {
- 6 atomName: 'Create Businesstrip',
- 7 ...
- 8- atomRevision: 0,
- 9+ atomRevision: 1,
- 10 ...
- 11 },
- 12 {
- 13 atomName: 'Businesstrip List',
- 14 ...
- 15- atomRevision: 0,
- 16+ atomRevision: 1,
- 17 ...
- 18 },
- 19 ];
- 20 return resources;
- 21};
-
将两个菜单资源的
atomRevision
递增 -
我们不需要重启服务,后端服务会自动检测到更新,并使修改后的语言资源自动生效
下一步
接下来,我们看看如何向业务数据Businesstrip
添加字段
评论: