作者:


列表的路由不能传path参数

文档里说要用renderDocumentListRouters这个方法生成路由,但是不能传path参数指定url。 它的内部用renderDocumentList和renderMultiOrgDocumentList2个方法生成了一个普通列表路由,一个多组织列表的路由。

为了解决传path的问题,可以像下面这样写代码。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  {
    ...renderDocumentList({
      title: '编制方案设置',
      entityName: EN_BudgetModel,
      groupName: `${EN_BudgetModel}_list`,
      createPresenter: async options => {
        const { BudgetModelList } = await import(
          '@main/screens/projects/budget/budget-model/list/BudgetModelList'
        );
        return new BudgetModelList({
          ...options
        });
      },
    }),
    refreshWhenParamsChanged: true,
    path: appRouterHashManager.generateHashDef(EN_BudgetModel, PageModeEnum.List),
  },
  {
    ...renderMultiOrgDocumentList({
      entityName: EN_BudgetModel,
      groupName: defaultMultiOrgGroupName(EN_BudgetModel),
      title: `编制方案设置多组织查询`,
      createPresenter: async options => {
        const { BudgetModelList } = await import(
          '@main/screens/projects/budget/budget-model/list/BudgetModelList'
          );
        return new BudgetModelList({
          ...options
        });
      },
    })
  },
这里就是用renderDocumentList和renderMultiOrgDocumentList分别创建两个路由。

多组织查询按钮不显示

如果列表presenter中有commandActionResolver方法,则需要调一下super方法,否则的话就不会显示出多组织查询按钮。

const actions = super.commandActionResolver(commandActions)