新建的两个菜单默认位于未归类
应用当中。在这里我们创建一个应用,并把菜单迁移过来集中管理
1. 基本概念
在一个CabloyJS项目中可以创建多个应用,每个应用都可以配置自己的界面组合,主要包含左侧菜单
、中间主页
、右侧个人信息页面
等的配置。我们既可以在CabloyJS中创建一个应用,也可以随着业务的扩展创建多个应用
由于这里创建的出差申请属于OA办公的业务场景,我们可以创建一个应用
,名称就叫OA
2. 创建应用
在这里,我们通过Cli终端命令
创建一个极简配置的应用,关于应用的更多配置,请参见:App应用-介绍
- 1npm run cli :create:app OA -- --module=bz-businesstrip
名称 | 说明 |
---|---|
:create:app | 创建应用的指令名称 |
OA | 应用名称 |
bz-businesstrip | 应用所归属的模块名称 |
接下来打开已经创建好的应用配置文件,确认一下应用Key是什么
src/module/bz-businesstrip/backend/src/config/static/app/appOA.js
- 1module.exports = app => {
- 2 ...
- 3 const _app = {
- 4 atomName: 'OA',
- 5 atomStaticKey: 'appOA',
- 6 atomRevision: 0,
- 7 atomCategoryId: 'AppCategoryManagement',
- 8 description: '',
- 9 appIcon: '::radio-button-unchecked',
- 10 appIsolate: false,
- 11 content: JSON.stringify(content),
- 12 resourceRoles: 'authenticated',
- 13 appSorting: 0,
- 14 };
- 15 return _app;
- 16};
其中atomStaticKey
就是应用Key
,值为appOA
,系统在初始化时会自动追加模块名称作为前缀,从而确保唯一性,因此完整的应用Key
就是bz-businesstrip:appOA
3. 迁移菜单
现在把之前创建的两个菜单迁移过来
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 atomStaticKey: 'createBusinesstrip',
- 8- atomRevision: 1,
- 9+ atomRevision: 2,
- 10 atomCategoryId: 'a-base:menu.Create',
- 11 resourceType: 'a-base:menu',
- 12 resourceConfig: JSON.stringify({
- 13 module: moduleInfo.relativeName,
- 14 atomClassName: 'businesstrip',
- 15 atomAction: 'create',
- 16 }),
- 17 resourceIcon: '::add',
- 18- appKey: 'a-appbooster:appUnclassified',
- 19+ appKey: 'bz-businesstrip:appOA',
- 20 resourceRoles: 'authenticated',
- 21 },
- 22 {
- 23 atomName: 'Businesstrip List',
- 24 atomStaticKey: 'listBusinesstrip',
- 25- atomRevision: 1,
- 26+ atomRevision: 2,
- 27 atomCategryId: 'a-base:menu.List',
- 28 resourceType: 'a-base:menu',
- 29 resourceConfig: JSON.stringify({
- 30 module: moduleInfo.relativeName,
- 31 atomClassName: 'businesstrip',
- 32 atomAction: 'read',
- 33 }),
- 34 resourceIcon: ':outline:data-list-outline',
- 35- appKey: 'a-appbooster:appUnclassified',
- 36+ appKey: 'bz-businesstrip:appOA',
- 37 resourceRoles: 'authenticated',
- 38 },
- 39 ];
- 40 return resources;
- 41};
-
将
appKey
改为bz-businesstrip:appOA
-
将
atomRevision
递增,以便告知系统自动更新菜单数据
4. 设置初始应用
前面提到,在一个CabloyJS项目中可以创建多个应用。如果只需要创建一个应用,那么可以把这个应用设置为初始应用
,从而实现打开网页时默认显示该应用
只需要在项目的前端config文件中覆盖相应模块(a-app
)的配置即可:
src/front/config/config.default.js
- 1modules: {
- 2 'a-app': {
- 3 appInit: {
- 4 default: 'bz-businesstrip:appOA',
- 5 },
- 6 },
- 7}
评论: