---
title: "移动端公文正文支持外部引用"
publicId: "9f85b51f-225b-45e5-8e7d-e0c9bdcf8f56"
source: "https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/doc/9f85b51f-225b-45e5-8e7d-e0c9bdcf8f56"
---
有两个可自定义控制的功能点

**1.控制公文流程表单的【新建正文/打开正文】按钮的显隐**

![image.png](_assets/9f85b51f-225b-45e5-8e7d-e0c9bdcf8f56/1151321869826261084.png)代码示例如下：

**请注意，一定要前置加载，因为要在公文流程表单加载前注册事件，才能保证事件生效。**

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

/**
 * params参数中有workflowId,requestId等，可用于
 * 项目上根据流程，节点等屏蔽按钮的个性化需求
 */
const hideOpenTextFn = (params) => {
  //打开正文快捷按钮，true：隐藏，false：显示
  return { result: true };
};

corsImport('@weapp/odoc').then(app => {
  const { OdocHookUtil } = app;

  //注册隐藏打开正文的快捷按钮
  OdocHookUtil.regOdocSyncHook('FlowForm.hideOpenTextBtn', hideOpenTextFn);
});
```

**2.正文组件的引用**

正文组件支持传入以下参数

| 参数 | 类型 | 说明 | 是否必须 |
| --- | --- | --- | --- |
| baseStore |  | 流程的baseStore | 必须 |
| themeStore |  | 流程的themeStore | 必须 |
| isShowBackToBtn | boolean，true：显示，false：隐藏。 | 是否显示返回表单按钮 | 可选，默认显示 |
| isShowBottomBtn | boolean，true：显示，false：隐藏。 | 是否显示底部按钮 | 可选，默认显示 |
| onLoadSuccess | Function:(ref:any) => void;<br>通过ref可以调用以下方法：<br>1、checkText = (successFn: Function,<br>failFn: Function)，正文保存前的校验事件，通常可以注册在流程的验证事件中。比如<br>baseStore.registerVerifyDataEvent(ref.checkText)，这样可以达到在流程提交时，校验公文正文，比如套红是否完成。<br>2、saveText = (successFn: Function, failFn: Function)，正文保存的事件，通常可以注册在流程的保存事件中。比如baseStore.registerSaveDataEvent(ref.saveText)，可以保证流程提交时，同时保存正文，正文内容不丢失。 | 正文加载成功后的事件 | 可选，按需控制 |

调用接口getMobileOdocTextComFn确认是否需要显示正文，回参

showOdocText：true，显示正文，false，不显示正文。

odocTextProps：请参照例子，将参数传入到正文组件中，已经做好一些正文组件的初始化。

代码示例如下：

```javascript
import { observer } from "mobx-react";
import { corsImport } from '@weapp/utils';

@observer
export default class MNewOdocText extends React.Component<any, any> {
  OdocText: any;
  odocTextProps;

  constructor(props: any) {
    super(props);
    this.state = { showOdocText: false };
  }

  componentDidMount() {
    corsImport('@weapp/odoc').then(app => {
      const { getMobileOdocTextComFn, MOdocTextCom4Ex } = app;
      const wfsdk = window.weappWorkflow.getFlowPageSDK();
      const { baseStore, themeStore } = wfsdk;
      const props = { baseStore, themeStore, isShowBackToBtn: false, isShowBottomBtn: true, 
         onLoadSuccess: this.onLoadSuccess };

      getMobileOdocTextComFn(props).then(response => {
        const { showOdocText, odocTextProps } = response;
        this.OdocText = MOdocTextCom4Ex;
        this.odocTextProps = odocTextProps;
        this.setState({ showOdocText });
      });
    });
  }

  onLoadSuccess = (instance: any) => {
    console.error('instance:', instance);
  }

  render() {
    const { showOdocText } = this.state;
    const OdocText = this.OdocText;
    const odocTextProps = this.odocTextProps;

    return (
      <>
        {
          showOdocText ? <OdocText {...odocTextProps} /> : <div />
        }
      </>
    );
  }
}
```
