# 流程要点二开文档

## 一、前端js-sdk

<span style="color:red">最低版本支持：weapp-workflow-1.75</span>

### 前置条件
> 所有要点sdk调用前，需先获取当前流程页面sdk，所有操作均基于该实例执行。

```javacript
const wffpSdk = weappWorkflow.getFlowPageSDK();
```

### 1.1、获取要点数据
**功能说明**

获取当前场景下的所有要点数据，支持仅获取「显示的要点」。

**使用示例**
```javascript
// 1. 获取全部要点（含隐藏）
const allPoints = wffpSdk.getFlowPointList();

// 2. 仅获取显示中的要点
const displayPoints = wffpSdk.getFlowPointList(true);
```

### 1.2、控制要点显隐

**功能说明**

根据要点pointIds，批量控制要点显示/隐藏状态

**参数说明**
  | 参数名    | 类型   | 必传 | 说明  |
|-----------|--------|------|--------|
| `pointIds` | string[] | 是   | 操作的要点id集合 |
| `isShow` | boolean | 是   | 显示/隐藏 |

**使用示例**
```javascript
// 隐藏指定 ID 的要点
wffpSdk.setFlowPointDisplay(['pointId1', 'pointId2'], false);
```

### 1.3、控制要点选中状态
**功能说明**

根据要点 pointIds，批量设置要点勾选 / 取消勾选状态

**参数说明**
  | 参数名    | 类型   | 必传 | 说明  |
|-----------|--------|------|--------|
| `pointIds` | string[] | 是   | 操作的要点id集合 |
| `isSelected` | boolean | 是   | true 勾选，false 取消勾选 |

**使用示例**
```javascript
// 勾选指定 ID 的要点
wffpSdk.setFlowPointSelected(['pointId1', 'pointId2'], true);
```

### 1.4、控制要点是否需要补充说明
**功能说明**

根据要点 pointIds，批量标记要点是否需要填写补充说明

**参数说明**
  | 参数名    | 类型   | 必传 | 说明  |
|-----------|--------|------|--------|
| `pointIds` | string[] | 是   | 操作的要点id集合 |
| `needNotes` | boolean | 是   | true 需要补充说明，false 无需补充 |

**使用示例**
```javascript
// 标记指定要点需要补充说明
wffpSdk.setFlowPointNeedNotes(['pointId1', 'pointId2'], true);
```

### 1.5、设置要点补充说明内容
**功能说明**

为指定要点设置补充说明内容，仅对「需要补充说明」的要点生效

**参数说明**
  | 参数名    | 类型   | 必传 | 说明  |
|-----------|--------|------|--------|
| `pointIds` | string[] | 是   | 操作的要点id集合 |
| `notes` | string | 是   | 补充说明的文本内容 |

**使用示例**
```javascript
// 为指定要点设置补充说明
wffpSdk.setFlowPointNotes(['pointId1'], '该要点已审核');
```
### 1.6、监听要点修改事件
**功能说明**

支持监听要点选中、补充说明内容修改，触发自定义回调。支持多次绑定多个修改监听事件



**使用示例**
```javascript
// 定义change
const onChange = (params) => {
  const { point, attr } = params;
  console.log(`要点${point.pointId}的${attr}属性修改：`, point);
};

// 开启监听（返回回调可用于取消监听）
const changeCallback = wffpSdk.onFlowPointsChange(onChange);
```

### 1.7、取消要点修改监听
**功能说明**

取消已注册的要点修改事件监听


**使用示例**
```javascript
// 取消监听（changeCallback为onFlowPointsChange返回的回调）
wffpSdk.offFlowPointsChange(changeCallback);
```

### 1.8、设置 SDK 操作场景
**功能说明**

切换要点操作的场景（正向提交 / 退回场景），决定sdk操作的哪个要点组件，默认操作正向要点

**使用示例**
```javascript
// 设置为退回场景
wffpSdk.setFlowPointScene('reject');

// 恢复为正向提交场景
wffpSdk.setFlowPointScene('submit');
```
