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

# @qse/approve-pc

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

## 安装

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

## 使用

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

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

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

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

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

// 审批按钮组件 参数与 ApprovePC 一样
function App() {
  return <ApprovePC.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} />`