前面我们通过模块test-party
提供的自定义指令partyOver
,说明了如何通过前端和后端联动,来实现一个自定义指令的完整逻辑。这必然涉及到多个代码文件的创建与变更。那么,为了进一步简化开发步骤,提升开发体验,CabloyJS内置了一个Cli命令
,通过此命令可以快速创建前后端代码骨架
下面,我们仍以模块test-party
为例,创建一个新的自定义指令partyOver2
1. 通过Cli命令创建
- 1 npm run cli :create:atomAction
- 2 # 或者
- 3 npm run cli :create:atomAction partyOver2 -- --actionCode=102 --module=test-party --atomClassName=party
名称 | 说明 |
---|---|
partyOver2 | 自定义指令名称 |
actionCode | 指令代码,从101 开始分配,要注意避免与现有指令冲突 |
module | 指令所属模块名称 |
atomClassName | 指令所属原子类型名称 |
2. 原子授权
自定义指令必须进行授权,相应的用户才能在前端使用该指令对应的按钮。但是,原子授权是通过模块的数据版本机制来实现的。我们既可以在现有数据版本中直接修改(因为当前版本还在开发当中),也可以在新的数据版本中修改(因为当前版本已经发布到生产环境,所以要开启新的数据版本)
因此,Cli命令没有添加原子授权的代码骨架,需要我们自行处理
src/suite-vendor/test-party/modules/test-party/backend/src/bean/version.manager.js
- 1async init(options) {
- 2 // init
- 3 if (options.version === 1) {
- 4 // add role rights
- 5 const roleRights = [
- 6 // custom
- 7 { roleName: 'system', action: 'partyOver', scopeNames: 0 },
- 8+ { roleName: 'system', action: 'partyOver2', scopeNames: 0 },
- 9 ];
- 10 await this.ctx.bean.role.addRoleRightBatch({ atomClassName: 'party', roleRights });
- 11 }
- 12}
评论: