# APP业务
js依赖
```html
```
## 初始化
### 数据初始化
页面需要隐藏 `oa-form-footer-tool-bar`,由原生调用方法触发
> 页面加载 -> APP初始化
```js
appOaFormUtil.setForm(layui.form);
appOaFormUtil.initAppFormData(initObj);
```
参数
|名称|类型|说明|
|-|-|-|
|initObj|object|初始化对象|
initObj
|名称|类型|说明|
|-|-|-|
|confirmAssignees|array|[确认代理人](./app.md#代理人)列表|
|fields|array|[字段](./app.md#字段)列表|
|formButton|object|[表单按钮](./app.md#表单按钮)|
|currentUser|object|[当前用户](./app.md#当前用户)|
附件回显
```javascript
appOaFormUtil.initAppAttachments(files);
```
参数
|名称|类型|说明|
|-|-|-|
|files|string|英文逗号分割的文件列表|
### 流程日志
- Method: **GET**
- Content-Type: `application/json`
- URL:`app/oa/list-process-log/process-instance-id/{processInstanceId}`
- PathParams:
|参数|说明|
|-|-|
|processInstanceId|流程实例ID|
- Headers:
```json
{
token: token
}
```
- RequestBody:
```json
{
taskId: "任务ID",
taskName: "任务名称",
startTime: "开始时间",
endTime: "结束时间",
usedTime: "耗时"
userIds: "任务代理人ID",
userNames: "任务代理人名称",
taskStatus: "任务状态,needToBeDealtWith:待办,alreadyDone:已办",
// 任务变量,内容不固定
taskVariables: {},
// 流程变量,内容不固定
processVariables: {}
// 备注
comment: {
type: "批注类型。SIGN:签批,JOINTLY_SIGN:会签,GO_BACK:回退,FORCED_END:强制结束,TRANSFER:转交",
userId: "批注人ID",
userName: "批注人名称",
fieldName: "字段名称",
fieldExplain: "字段说明",
content: "批注内容",
time: "时间"
},
// 转交批注
transferComments: [
{
type: "批注类型。SIGN:签批,JOINTLY_SIGN:会签,GO_BACK:回退,FORCED_END:强制结束,TRANSFER:转交",
userId: "批注人ID",
userName: "批注人名称",
content: "批注内容",
time: "时间"
}
]
}
```
说明
|名称|类型|说明|参数值|
|-|-|-|-|
|taskId|string|任务ID||
|taskName|string|任务名称||
|startTime|string|开始时间||
|endTime|string|结束时间||
|usedTime|string|耗时||
|userIds|string|任务代理人ID||
|userNames|string|任务代理人名称||
|taskStatus|string|任务状态|needToBeDealtWith:待办,alreadyDone:已办|
|taskVariables|string|任务变量,内容不固定||
|processVariables|string|流程变量,内容不固定||
|comment|string|[日志备注](./app.md#日志备注)||
|transferComments|object|[日志转交批注](./app.md#日志转交批注)列表||
- Response
状态码
|名称|值|
|-|-|
|200|请求成功|
|400|请求错误|
|401|权限不足|
|403|访问禁止|
|500|系统错误|
Body:
```json
{
code: "错误编码",
msg: "错误原因"
}
```
js处理代码
```js
var commentText = '';
var comment = item.comment;
if (comment) {
if (comment.type === 'JOINTLY_SIGN') {
commentText = '动作:会签。批注:' + comment.content + '。时间:' + comment.time;
} else if (comment.type === 'GO_BACK') {
commentText = '动作:回退。批注:' + comment.content + '。时间:' + comment.time;
} else if (comment.type === 'FORCED_END') {
commentText = '动作:强制结束。批注:' + comment.content + '。时间:' + comment.time;
}
}
// 转交记录
var transferCommentText = '';
var transferComments = item.transferComments;
// 倒叙
for(var j = transferComments.length, transferComment; transferComment = transferComments[--j];) {
if(transferCommentText) {
transferCommentText += '\n'
}
transferCommentText += (transferComments.length - j) +'. 转交人:'+ transferComment.userName +'。原因:'+ transferComment.content +'。时间:'+ transferComment.time;
}
```
## 方法
### 字段赋值
> APP -> 页面字段
方法
```js
appOaFormUtil.setFieldValue(fieldName, fieldValue)
```
参数
|名称|类型|说明|参数值|
|-|-|-|-|
|fieldName|string|字段名|
|fieldValue|string|字段值|
### 附件赋值
方法
```js
appOaFormUtil.setAttachments(attachments)
```
参数
|名称|类型|说明|参数值|
|-|-|-|-|
|attachments|string|附件列表|格式:附件1,附件2。附件格式:ID:名称。英文冒号分割ID与名称,英文逗号分割组。名称不能有英文冒号与逗号|
### 抄送人赋值
方法
```js
appOaFormUtil.setCcs(ccs)
```
参数
|名称|类型|说明|参数值|
|-|-|-|-|
|ccs|string|抄送人列表|格式:抄送人ID1,抄送人ID2。英文逗号分割。|
### 提交表单
```js
appOaFormUtil.submitFormReport(btnIndex);
```
参数
|名称|类型|说明|参数值|
|-|-|-|-|
|btnIndex|int|按钮的下标||
## 回调
页面提交成功,通知APP
```javascript
appOaFormUtil.callbackAppSubmitStatus(submitStatus);
```
参数
|名称|类型|说明|参数值|
|-|-|-|-|
|submitStatus|boolean|提交状态|true:成功,false;失败|
## 事件
### 回退
- Method: **PUT**
- Content-Type: `application/json`
- URL:`app/oa-form-report/update-go-back/process-instance-id/{processInstanceId}/task-id/{taskId}/node-id/{nodeId}`
- PathParams:
|参数|说明|
|-|-|
|processInstanceId|流程实例ID|
|taskId|当前任务ID|
|nodeId|回退到的节点ID|
- Headers:
```json
{
token: token
}
```
- RequestBody:
```json
{
reason: "原因"
}
```
- Response
状态码
|名称|值|
|-|-|
|200|请求成功|
|400|请求错误|
|401|权限不足|
|403|访问禁止|
|500|系统错误|
Body:
```json
{
code: "错误编码",
msg: "错误原因"
}
```
### 强制结束
- Method: **PUT**
- Content-Type: `application/json`
- URL:`app/oa-form-report/update-forced-end/process-instance-id/{processInstanceId}/task-id/{taskId}`
- PathParams:
|参数|说明|
|-|-|
|processInstanceId|流程实例ID|
|taskId|当前任务ID|
- Headers:
```json
{
token: token
}
```
- RequestBody:
```json
{
reason: "原因"
}
```
- Response
状态码
|名称|值|
|-|-|
|200|请求成功|
|400|请求错误|
|401|权限不足|
|403|访问禁止|
|500|系统错误|
Body:
```json
{
code: "错误编码",
msg: "错误原因"
}
```
### 转交
- Method: **PUT**
- Content-Type: `application/json`
- URL:`app/oa-form-report/update-assignee/process-instance-id/{processInstanceId}/task-id/{taskId}`
- PathParams:
|参数|说明|
|-|-|
|processInstanceId|流程实例ID|
|taskId|当前任务ID|
- Headers:
```json
{
token: token
}
```
- RequestBody:
```json
{
assignee: "接收人ID",
reason: "原因"
}
```
- Response
状态码
|名称|值|
|-|-|
|200|请求成功|
|400|请求错误|
|401|权限不足|
|403|访问禁止|
|500|系统错误|
Body:
```json
{
code: "错误编码",
msg: "错误原因"
}
```
## 对象说明
### 代理人
|属性|类型|说明|参数值|
|-|-|-|-|
|assignees|Array|[代理人用户](./app.md#代理人用户)列表||
|btnExc|string|按钮条件||
|btnText|string|按钮名称||
|nextEndEvent|boolean|下节点是否为结束节点|true:是,false:否|
|nodeType|string|节点类型|normal:普通(单实例)节点,multiple:多实例节点|
### 代理人用户
|属性|类型|说明|参数值|
|-|-|-|-|
|userId|string|用户ID||
|userName|string|用户昵称||
|userUsername|string|用户名||
|avatar|string|头像ID||
### 字段
|属性|类型|说明|参数值|
|-|-|-|-|
|fieldName|string|字段名称||
|isEditable|int|可编辑|0:否,1:是|
|isVisible|int|可显示|0:否,1:是|
|editHistory|string|编辑历史|noRecord:不记录(默认),latest:记录最新(签批),all:记录全部(会签)
|autoBackFill|string|自动回填|noBackFill:不回填(默认),currentUserName:当前用户名,currentUserDepartment:当前用户部门|
### 表单按钮
|属性|类型|说明|参数值|
|-|-|-|-|
|btnAttachment|int|附件按钮|0:未激活,1:已激活|
|btnForcedEnd|int|强制结束按钮|0:未激活,1:已激活|
|btnPrint|int|打印按钮|0:未激活,1:已激活
|btnCc|int|抄送按钮|0:未激活,1:已激活|
|btnGoBack|int|回退按钮|0:未激活,1:已激活|
|btnTransfer|int|转交按钮|0:未激活,1:已激活|
|goBackUserTasks|array|[历史任务](./app.md#历史任务)列表(按执行顺序),当 btnGoBack 激活时有效||
### 历史任务
|属性|类型|说明|参数值|
|-|-|-|-|
|nodeId|string|节点ID||
|taskName|string|任务名称||
### 当前用户
|属性|类型|说明|参数值|
|-|-|-|-|
|userId|string|用户ID||
|userName|string|用户名||
|departments|array|[用户部门](./app.md#用户部门)列表||
### 用户部门
|属性|类型|说明|参数值|
|-|-|-|-|
|departmentId|string|部门ID||
|departmentParentId|string|部门上级ID||
|departmentName|string|部门名称||
|departmentCode|string|部门编码||
|departmentNo|string|部门编号||
### 日志备注
|属性|类型|说明|参数值|
|-|-|-|-|
|type|string|批注类型|SIGN:签批,JOINTLY_SIGN:会签,GO_BACK:回退,FORCED_END:强制结束,TRANSFER:转交|
|userId|string|批注人ID||
|userName|string|批注人名称||
|fieldName|string|字段名称||
|fieldExplain|string|字段说明||
|content|string|批注内容||
|time|string|时间||
### 日志转交批注
|属性|类型|说明|参数值|
|-|-|-|-|
|type|string|批注类型|SIGN:签批,JOINTLY_SIGN:会签,GO_BACK:回退,FORCED_END:强制结束,TRANSFER:转交|
|userId|string|批注人ID||
|userName|string|批注人名称||
|content|string|批注内容||
|time|string|时间||