外键穿透的自定义点击事件

外键穿透的自定义点击事件

作者:


 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
  protected onInitialized(formPresenter) {
    formPresenter.getBean(BeanNames.EventController).on(InternalEvent.onCancel, this.cancel);
    const isTemplateBill = this.isTemplateBill;
    if (isTemplateBill) {
      // 修改外键(项目project)的onClick的穿透的行为。当是计划模板时,穿透到项目模板。
      const masterRenderController = this.formPresenter.getBean(BeanNames.MasterRendererController);
      const billTypeId = this.getBillTypeId();

      const options: ForeignKeyLinkRenderOption = {
        onClick(params: ForeignKeyLinkClickParams) {
          if (params.entityName === EN_Project){
            const hash = appRouterHashManager.generateHash('ProjectTemplate', PageModeEnum.Form as any, {
              mode: BizFormModeEnum.View,
              copyId: params.id,
              id: params.id,
              data: {},
              billTypeId,
            });
            proxyHistory.push(hash)
          }
        },
      }
      masterRenderController.add(NewForeignKeyLinkRender(options))
    }
  }

主要是第10行的onClick,可以重新定义外键穿透的默认的onClick。比如穿透到另一个entityName,或者搞一个弹窗。