npm package: @qse/approve-h5
Description: edu common approve h5
Author: kinoko
Latest version: 3.11.2

# approve-h5

如果需要自定义 请看`@qse/approve-core`部分

分成 npm 与 iframe 链接 使用

## iframe 引用

通过 iframe 直接访问通用的审批详情页面，无需引入组件，适用于无自定义需求的项目

### 模版

/edu-approve/index.html?sheet_id={sheet_id}&corpId={corpId}&appsysid={appsysid}

### 例子

http://www.zhidianbao.cn:8088/qsxxwapdev/edu-approve/index.html?sheet_id=1367225789891739648&corpId=ding6f34e443f18c3ecc&appsysid=59

```html
<iframe
  src="http://www.zhidianbao.cn:8088/qsxxwapdev/edu-approve/index.html?sheet_id=1367225789891739648&corpId=ding6f34e443f18c3ecc&appsysid=59"
></iframe>
```

## 安装

```sh
# 安装 更新
npm i @qse/approve-h5@latest
```

## 使用

`ApproveH5` 组件有 3 个子组件 `ApproveH5.Info` `ApproveH5.Process` `ApproveH5.Controls`，参数与`ApproveH5`一样

```jsx
// 以下两种导入都可以，选一种即可
import { ApproveH5 } from '@qse/approve-h5'
import ApproveH5 from '@qse/approve-h5'

// 完整审批页面
function App() {
  return <ApproveH5 sheet_id="1266521377981071360" userId="01632267266265" campusid="选填，影响编辑时List类型的数据" />
}

// 审批信息组件 参数与 ApproveH5 一样
function App() {
  return (
    <ApproveH5.Info sheet_id="1266521377981071360" userId="01632267266265" campusid="选填，影响编辑时List类型的数据" />
  )
}

// 审批流程组件 参数与 ApproveH5 一样
function App() {
  return <ApproveH5.Process sheet_id="1266521377981071360" userId="01632267266265" />
}

// 审批按钮组件 参数与 ApproveH5 一样
function App() {
  return <ApproveH5.Controls sheet_id="1266521377981071360" userId="01632267266265" />
}
```

## API

| 属性                  | 说明                                                                         | 类型                                                                                                      | 默认值 |
| --------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------ |
| sheet_id              | 表单 id                                                                      | string                                                                                                    |        |
| userId                | 当前登录人 id                                                                | string                                                                                                    |        |
| campusid              | 校区 id                                                                      | string                                                                                                    |        |
| disabled              | 禁用审批操作                                                                 | boolean                                                                                                   |        |
| onResolve             | 审批成功时的回调                                                             | `() => Promise<void>`                                                                                     |        |
| onReject              | 审批拒绝时的回调                                                             | `() => Promise<void>`                                                                                     |        |
| onRejectAfterComplete | 审批拒绝(审批完成后)时的回调                                                 | `() => Promise<void>`                                                                                     |        |
| onRevoke              | 审批撤回时的回调                                                             | `() => Promise<void>`                                                                                     |        |
| onUrge                | 审批催办时的回调                                                             | `() => Promise<void>`                                                                                     |        |
| onCreated             | 当 init 调用后，会执行这个方法返回详情数据                                   | `(approveState: ApproveState) => void`                                                                    |        |
| onPreview             | 当点击查看附件的时候返回`file`信息。如果不填预览不了文件，并在控制台提示警告 | `(file: Attachment) => void`                                                                              |        |
| allowNextSheet        | 允许审批完成后自动跳转下一条单据                                             | boolean                                                                                                   | false  |
| onDeliver             | 转交按钮触发事件，传递的 callback 参数需要返回人员列表，用于转交给其他人     | `(callback: (empList:Emp[], comment?:string) => Promise<void>`<br/> `approveState: ApproveState) => void` |        |
| dd                    | 钉钉 JS SDK，用于创建群聊                                                    | -                                                                                                         |        |

## dd - 创建群聊

仅钉钉环境才会显示创建群聊，按下面的步骤接入

1. 先找后端配置`钉钉群模版ID`(template_id)，需要 `form_code` 参数
2. dd.config 需要授权下面的两个 API

```js
dd.config({
  jsApiList: ['biz.chat.toConversationByOpenConversationId', 'biz.chat.toConversation'],
})
```

3. 将钉钉对象传入组件 `<Approve dd={window.dd} />`