---
title: "公文正文按钮显示在流程表单中（基线260101以上）"
publicId: "2aa56c06-8bcb-43ab-b90a-86d3a34309cc"
source: "https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/doc/2aa56c06-8bcb-43ab-b90a-86d3a34309cc"
---
公文正文的按钮列表数据生效前，支持前置事件，支持通过ecode调整按钮中的数据，比如按钮显示在流程的顶部，或者通过过滤原有的按钮数据，隐藏按钮。

```typescript
import { corsImport } from '@weapp/utils';

/**
 * 例外配置，只有该按钮不显示在右上角，如果要测试，请将此处的值清空
 */
//const exclusionKeys = new Set(['TOGGLE_FULL_SCREEN']);
const exclusionKeys = new Set();


/**
 * 调整正文的按钮显示在流程表单中
 */
const beforeGetOdocTextButtonList = ({ buttonList, callbackFn, requestParams }: any) => {
  /**
   * 自定义的逻辑，请自行调整逻辑
   * top = true，表示按钮显示在流程菜单中
   */
  buttonList.forEach((item: any) => {
    if (!exclusionKeys.has(item.odocBtnType)) {
      item.top = true;
    }
  });

  //一定要调用，使修改后的参数生效
  callbackFn(buttonList);
}

corsImport('@weapp/odoc').then(app => {
  const { OdocHookUtil } = app;
  //正文按钮添加到流程菜单中的钩子事件
  OdocHookUtil.regOdocAsyncHook('FlowForm.beforeGetOdocTextButtonList', beforeGetOdocTextButtonList);
});
```

如果有进一步的需求，比如需要调整正文按钮在流程右上角菜单中的顺序，也支持通过ecode实现前置事件来调整。

```typescript
import { corsImport } from '@weapp/utils';

/**
 * 调整流程菜单中正文按钮的顺序，标准功能默认是追加流程的菜单最后
 * 此例中，按钮都默认追加到第一个
 * 
 * 注意，只是示例，请根据实际需求调整
 */
const beforeAppendOdocTextMenu = ({ flowPageSdk, menuList }: any) => {
  let keys = [];
  menuList.forEach((menuItem: any) => {
    //menuItem.istop = 1;  按钮显示在顶部，而非更多菜单中 
    flowPageSdk.addOperMenu(menuItem, 'First');
    keys.push(menuItem?.customMenuKey);
  });
  flowPageSdk?.registerInterceptEvent?.('BeforeClickOperBtn|CUSTOM', (successFn, failFn, params) => {
    const {btn: {customMenuKey, id}} = params; 
    if(customMenuKey && keys && keys.length > 0 && keys.indexOf(customMenuKey) != -1) {
      //如果满足条件不继续执行了
      console.log("ecode",customMenuKey)
    } else {
      successFn?.();
    }
  }, 2)//不能比1小
}

corsImport('@weapp/odoc').then(app => {
  const { OdocHookUtil } = app;
  //正文按钮添加到流程菜单中的钩子事件
  OdocHookUtil.regOdocAsyncHook('FlowForm.beforeAppendOdocTextMenu', beforeAppendOdocTextMenu);
});
```
