create-iking-admin
Version:
金合技术中台脚手架
183 lines (175 loc) • 4.12 kB
text/typescript
import {
EApprovalEmpty,
EApprovalReject,
EApproveCategory,
EApproveType,
EMultipleSignature,
ESelectRange
} from '@main/views/approve-workflow/enum'
// 审批节点默认属性
export const APPROVAL_PROPS = {
approveType: EApproveType.人工审批,
approvalCategory: EApproveCategory.指定成员,
mode: EMultipleSignature.依次审批,
sign: false,
initiatorSpecifiedScopeType: ESelectRange.全公司,
// 退回时是否直接退回到发起节点
backToInitiator: false,
nobody: {
handler: EApprovalEmpty.自动通过,
assignedUser: []
},
timeLimit: {
timeout: {
unit: 'H',
value: 0
},
handler: {
type: 'REFUSE',
notify: {
once: true,
hour: 1
}
}
},
assignedUser: [],
permissions: [],
formPerms: [],
selfSelect: {
multiple: false
},
leaderTop: {
endCondition: 'TOP',
endLevel: 1
},
leader: {
level: 1
},
role: [],
refuse: {
type: EApprovalReject.直接结束, // 驳回规则 TO_END TO_NODE TO_BEFORE
target: '' // 驳回到指定ID的节点
},
formUser: '',
formDep: '',
formOrg: '',
reserveApprovals: []
}
// 根节点默认属性
export const ROOT_PROPS = {
assignedUser: [],
formPerms: [],
// 再次发起时是否由退回人直接审批
reSubmitToBack: true
}
// 办理节点默认属性
export const DISPOSE_PROPS = {
approvalCategory: EApproveCategory.指定成员,
mode: EMultipleSignature.依次审批,
sign: false,
initiatorSpecifiedScopeType: ESelectRange.全公司,
nobody: {
handler: EApprovalEmpty.自动通过,
assignedUser: []
},
timeLimit: {
timeout: {
unit: 'H',
value: 0
},
handler: {
type: 'REFUSE',
notify: {
once: true,
hour: 1
}
}
},
permissions: [],
assignedUser: [],
reserveApprovals: [],
formPerms: [],
selfSelect: {
multiple: false
},
leaderTop: {
endCondition: 'TOP',
endLevel: 1
},
leader: {
level: 1
},
role: [],
formUser: '',
formDep: '',
formOrg: ''
}
// 条件节点默认属性
export const CONDITION_PROPS = {
comparator: 'OR', // 条件组逻辑关系 OR、AND
groups: [
{
conditionOrder: 1,
comparator: 'AND', // 条件组内条件关系 OR、AND
cids: [], // 条件ID集合
conditions: [] // 组内子条件
}
],
expression: '' // 自定义表达式,灵活构建逻辑关系
}
// 抄送节点默认属性
export const CC_PROPS = {
shouldAdd: false,
assignedUser: [],
formPerms: []
}
// 触发器节点默认属性
export const TRIGGER_PROPS = {
type: 'WEBHOOK',
http: {
method: 'GET', // 请求方法 支持GET/POST
url: '', // URL地址,可以直接带参数
headers: [
// http header
{
name: '',
isField: true,
value: '' // 支持表达式 ${xxx} xxx为表单字段名称
}
],
contentType: 'FORM', // 请求参数类型
params: [
// 请求参数
{
name: '',
isField: true, // 是表单字段还是自定义
value: '' // 支持表达式 ${xxx} xxx为表单字段名称
}
],
retry: 1,
handlerByScript: false,
success: 'function handlerOk(res) {\n return true;\n}',
fail: 'function handlerFail(res) {\n return true;\n}'
},
email: {
subject: '',
to: [],
content: ''
}
}
// 延时节点默认属性
export const DELAY_PROPS = {
type: 'FIXED', // 延时类型 FIXED:到达当前节点后延时固定时长 、AUTO:延时到 dateTime设置的时间
time: 0, // 延时时间
unit: 'M', // 时间单位 D天 H小时 M分钟
dateTime: '' // 如果当天没有超过设置的此时间点,就延时到这个指定的时间,到了就直接跳过不延时
}
export default {
APPROVAL_PROPS,
CC_PROPS,
DELAY_PROPS,
CONDITION_PROPS,
ROOT_PROPS,
TRIGGER_PROPS,
DISPOSE_PROPS
}