2024-02-05 09:15:37 +08:00
|
|
|
|
//流程配置json
|
|
|
|
|
|
|
|
|
|
|
|
import { InfoId } from './bpmnConfig';
|
|
|
|
|
|
import { FormConfigItem, formInitConfig, FormSettingItem } from './formSetting';
|
|
|
|
|
|
import { CountersignConfig, MemberConfig } from './memberSetting';
|
2024-05-22 16:47:57 +08:00
|
|
|
|
import {AssignmentConfig, FormAssignmentSourceConfig, TimeOutConfig} from './ParamSetting';
|
2024-02-05 09:15:37 +08:00
|
|
|
|
import { ApiConfig } from '/@/components/ApiConfig/src/interface';
|
|
|
|
|
|
|
|
|
|
|
|
import {
|
2024-11-18 11:52:27 +08:00
|
|
|
|
ApprovalOpinionDisplayType,
|
|
|
|
|
|
AuthType,
|
|
|
|
|
|
AutoAgreeRule,
|
|
|
|
|
|
ButtonType,
|
|
|
|
|
|
DesignatedApprover,
|
|
|
|
|
|
ElectronicSignatureVerification,
|
|
|
|
|
|
NoHandler,
|
|
|
|
|
|
NoticePolicyType,
|
|
|
|
|
|
OperationType,
|
|
|
|
|
|
ProcessStatus,
|
|
|
|
|
|
RecordType,
|
|
|
|
|
|
TaskPermissions,
|
|
|
|
|
|
RejectType,
|
|
|
|
|
|
CallActivityType,
|
|
|
|
|
|
FinishType,
|
|
|
|
|
|
ExecutionType,
|
|
|
|
|
|
MemberType,
|
|
|
|
|
|
ApproveType,
|
|
|
|
|
|
NodeEventExType, SubProcessType,
|
2024-02-05 09:15:37 +08:00
|
|
|
|
} from '/@/enums/workflowEnum';
|
|
|
|
|
|
import { BpmnNodeKey } from '/@/enums/workflowEnum';
|
|
|
|
|
|
|
|
|
|
|
|
export interface ProcessJsonModel {
|
|
|
|
|
|
processConfig: ProcessConfig; //流程属性配置
|
|
|
|
|
|
//子节点配置
|
|
|
|
|
|
childNodeConfig: ChildNodeConfig;
|
|
|
|
|
|
}
|
|
|
|
|
|
export type ChildNodeItem =
|
|
|
|
|
|
| StartEventConfig
|
|
|
|
|
|
| UserTaskConfig
|
|
|
|
|
|
| ScriptTaskConfig
|
|
|
|
|
|
| GatewayConfig
|
|
|
|
|
|
| EndEventConfig;
|
|
|
|
|
|
export type ChildNodeConfig = Array<ChildNodeItem>;
|
|
|
|
|
|
// 专项菜单
|
|
|
|
|
|
export interface MenuConfig {
|
|
|
|
|
|
enabled: boolean;
|
|
|
|
|
|
code: string;
|
|
|
|
|
|
name: string;
|
|
|
|
|
|
system: undefined | string;
|
|
|
|
|
|
parentId: undefined | string;
|
|
|
|
|
|
icon: string;
|
|
|
|
|
|
order: undefined | number;
|
|
|
|
|
|
remark: string;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 权限设置
|
|
|
|
|
|
interface AuthConfig {
|
|
|
|
|
|
authType: AuthType; //权限设置 0 所有 1 指定
|
|
|
|
|
|
authMemberConfigs?: MemberConfig[]; //必须authType === 1 权限指定的人员
|
|
|
|
|
|
}
|
|
|
|
|
|
//超时提醒
|
|
|
|
|
|
interface TimeoutConfig {
|
|
|
|
|
|
enabled: boolean; //是否提醒
|
|
|
|
|
|
hour: undefined | number; //超时时间
|
|
|
|
|
|
interval: undefined | number; //消息间隔
|
|
|
|
|
|
pushHits: undefined | number; //推送次数
|
|
|
|
|
|
pushMemberConfigs: MemberConfig[]; //推送人
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//关联任务
|
|
|
|
|
|
export interface RelationProcessConfig {
|
|
|
|
|
|
id: string; //模板id
|
|
|
|
|
|
name: string; //模板名称
|
|
|
|
|
|
code: string; //模板编码
|
|
|
|
|
|
definitionKey?: string; //定义可以
|
|
|
|
|
|
processStatus?: ProcessStatus; //流程状态
|
|
|
|
|
|
processAuth?: TaskPermissions; //任务权限
|
|
|
|
|
|
}
|
|
|
|
|
|
// 命名规则
|
|
|
|
|
|
export interface NameRuleItem {
|
|
|
|
|
|
key: string;
|
|
|
|
|
|
title: string;
|
|
|
|
|
|
}
|
|
|
|
|
|
export type NameRule = Array<NameRuleItem>;
|
|
|
|
|
|
export type ProcessConfigParameter = Array<ProcessParameter>;
|
|
|
|
|
|
export interface ProcessConfig {
|
|
|
|
|
|
processId: string; //节点id
|
|
|
|
|
|
type: BpmnNodeKey; //节点类型
|
|
|
|
|
|
name: string; //节点名称
|
|
|
|
|
|
parentId: string; //父节点(流程id)
|
|
|
|
|
|
remark: string; //节点描述
|
|
|
|
|
|
code: string; //模板编码
|
|
|
|
|
|
category: undefined | string; //分类
|
|
|
|
|
|
nameRule?: string; //命名规则
|
|
|
|
|
|
nameRuleConfigs?: NameRule; // 命名规则列表
|
|
|
|
|
|
autoAgreeRule?: Array<AutoAgreeRule>; //自动同意规则
|
|
|
|
|
|
isPrevChooseNext: DesignatedApprover; //是否上一节点审批人指定下一节点审批人
|
|
|
|
|
|
noHandler: NoHandler; //无对应处理人
|
|
|
|
|
|
defaultFormList: Array<FormSettingItem>; //默认表单
|
|
|
|
|
|
appShow: boolean; //移动端是否显示
|
|
|
|
|
|
content?: string; //bpmn 设计 xml
|
|
|
|
|
|
authConfig: AuthConfig; //权限设置
|
|
|
|
|
|
menuConfig: MenuConfig; //是否启用菜单
|
|
|
|
|
|
formInitConfig: formInitConfig; //表单发起流程
|
|
|
|
|
|
timeoutRemidConfig: TimeoutConfig; //超时提醒配置
|
|
|
|
|
|
relationProcessConfigs: Array<RelationProcessConfig>; //关联任务
|
|
|
|
|
|
processParamConfigs: ProcessConfigParameter; //流程参数
|
2025-03-19 16:38:35 +08:00
|
|
|
|
globalStartEventConfigs: NodeEventConfig[];//全局 用户节点 结束事件
|
|
|
|
|
|
globalEndEventConfigs: NodeEventConfig[];//全局 用户节点 结束事件
|
2025-03-31 16:20:34 +08:00
|
|
|
|
globalPrequalifyBeforeEventConfigs: NodeEventConfig[];//预审前
|
|
|
|
|
|
globalPrequalifyAfterEventConfigs: NodeEventConfig[];//预审后
|
2025-03-19 16:38:35 +08:00
|
|
|
|
globalFinishEventConfigs: NodeEventConfig[];//终止事件
|
|
|
|
|
|
globalRejectEventConfigs: NodeEventConfig[];//全局退回事件
|
|
|
|
|
|
globalAgreeEventConfigs: NodeEventConfig[];//全局同意事件
|
|
|
|
|
|
globalSuspendedEventConfigs: NodeEventConfig[];//全局 挂起/暂停事件
|
|
|
|
|
|
globalRestoreEventConfigs: NodeEventConfig[];//全局 恢复事件
|
2024-02-05 09:15:37 +08:00
|
|
|
|
xmlContent: String; //xml
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 参数操作
|
|
|
|
|
|
export interface ProcessParameter {
|
|
|
|
|
|
id: string;
|
|
|
|
|
|
name: string;
|
|
|
|
|
|
type: OperationType;
|
|
|
|
|
|
value: string;
|
|
|
|
|
|
apiConfig: ApiConfig;
|
2024-05-22 16:47:57 +08:00
|
|
|
|
|
|
|
|
|
|
formConfig: FormAssignmentSourceConfig; // 如果type === 表单数据 存储表单配置
|
2024-02-05 09:15:37 +08:00
|
|
|
|
}
|
|
|
|
|
|
// 输入参数
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 开始节点配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface StartEventConfig extends BasicNodeConfig {
|
|
|
|
|
|
parentId: string; //父节点(流程id)
|
|
|
|
|
|
assignmentConfig: AssignmentConfig; //参数操作
|
|
|
|
|
|
formConfigs: Array<FormConfigItem>; // 表单配置
|
|
|
|
|
|
subProcessInitiator: string; //子流程开始节点发起人
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 用户节点配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
//按钮配置
|
|
|
|
|
|
export interface ButtonConfigItem {
|
|
|
|
|
|
approveType: ApproveType; //审批类型
|
|
|
|
|
|
buttonType: ButtonType; //按钮类型
|
|
|
|
|
|
buttonName: string; //按钮名称
|
|
|
|
|
|
buttonCode: string; //按钮编码
|
|
|
|
|
|
checked: boolean; //选中
|
|
|
|
|
|
scriptContent?: string; //脚本内容
|
|
|
|
|
|
scriptLanguage?: number; //脚本格式
|
|
|
|
|
|
apiConfig?: ApiConfig; //api配置
|
|
|
|
|
|
buttonOpera?: RejectType; //驳回类型
|
|
|
|
|
|
}
|
|
|
|
|
|
// 意见簿
|
|
|
|
|
|
export interface OpinionConfig {
|
|
|
|
|
|
enabled: boolean; //是否关联表单
|
|
|
|
|
|
showType: ApprovalOpinionDisplayType; //审批意见展示类型 0 显示所有 1 显示最终结果
|
|
|
|
|
|
signature: ElectronicSignatureVerification; //电子签章验证
|
|
|
|
|
|
component: Array<string>; //关联意见框组件
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 用户任务配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface UserTaskConfig extends BasicNodeConfig {
|
|
|
|
|
|
parentId: string; //父节点(流程id)
|
|
|
|
|
|
currentProgress: undefined | number; //进度
|
|
|
|
|
|
autoAgreeRule: Array<AutoAgreeRule>; //自动同意规则
|
|
|
|
|
|
isPrevChooseNext: DesignatedApprover; //是否上一节点审批人指定下一节点审批人
|
|
|
|
|
|
noHandler: NoHandler; //无对应处理人
|
|
|
|
|
|
provisionalApprover: Boolean; //临时审批人
|
|
|
|
|
|
noticePolicyConfigs: NoticePolicyType[]; //通知策略
|
|
|
|
|
|
approverConfigs: MemberConfig[]; //审批人
|
|
|
|
|
|
// authMember: MemberConfig; //审批人
|
|
|
|
|
|
circulateConfigs: MemberConfig[]; //传阅人
|
|
|
|
|
|
countersignConfig: CountersignConfig; //会签
|
|
|
|
|
|
buttonConfigs: Array<ButtonConfigItem>;
|
|
|
|
|
|
opinionConfig: OpinionConfig;
|
|
|
|
|
|
formConfigs: Array<FormConfigItem>; // 表单配置
|
|
|
|
|
|
assignmentConfig: AssignmentConfig; //参数操作
|
|
|
|
|
|
timeOutHandle: TimeOutConfig; //超时处理
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 脚本节点配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface ScriptTaskConfig extends BasicNodeConfig {
|
|
|
|
|
|
parentId: string; //父节点(流程id)
|
|
|
|
|
|
noticePolicyConfigs: NoticePolicyType[]; //通知策略
|
|
|
|
|
|
recordInfo: RecordType; //记录信息
|
|
|
|
|
|
script: {
|
|
|
|
|
|
enabled: boolean;
|
|
|
|
|
|
scriptFormat: string; //脚本格式
|
|
|
|
|
|
scriptContent: string; //脚本内容
|
|
|
|
|
|
};
|
|
|
|
|
|
api: {
|
|
|
|
|
|
enabled: boolean;
|
|
|
|
|
|
apiConfig: ApiConfig;
|
|
|
|
|
|
};
|
|
|
|
|
|
assignmentConfig: AssignmentConfig; //参数操作
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 网关配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface GatewayConfig extends BasicNodeConfig {
|
|
|
|
|
|
parentId: string; //父节点(流程id)
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 结束配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface EndEventConfig extends BasicNodeConfig {
|
|
|
|
|
|
parentId: string; //父节点(流程id)
|
|
|
|
|
|
noticePolicyConfigs: NoticePolicyType[]; //通知策略
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 子流程配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface SubProcessConfig extends BasicNodeConfig {
|
|
|
|
|
|
parentId: string; //父节点(流程id)
|
2024-11-18 11:52:27 +08:00
|
|
|
|
subProcessType: SubProcessType.MULTIPLE, // 调用类型
|
|
|
|
|
|
finishType: FinishType.ALL, //完成条件
|
|
|
|
|
|
percentOf: undefined, //百分比数值
|
|
|
|
|
|
executionType: ExecutionType.PARALLEL, //执行类型
|
|
|
|
|
|
originatorNode: '', //如果调用类型为单实例 子流程发起人
|
|
|
|
|
|
originatorType: MemberType.FORM_FIELD, //发起人类型
|
|
|
|
|
|
originatorConfig: '', //表单数据
|
|
|
|
|
|
approverConfigs: MemberConfig[], //审批人
|
|
|
|
|
|
inParams: [], //输入参数
|
|
|
|
|
|
outParams: [], //输出参数
|
|
|
|
|
|
startEventConfigs: [],
|
|
|
|
|
|
endEventConfigs: [],
|
2024-02-05 09:15:37 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 流程线配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface SequenceFlowConfig extends BasicNodeConfig {
|
|
|
|
|
|
parentId: string; //父节点(流程id)
|
|
|
|
|
|
conditionConfigs: ConditionConfig[]; //变量来源
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 流转条件配置
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface ConditionConfig {
|
|
|
|
|
|
nodeId: string;
|
|
|
|
|
|
formId: string;
|
|
|
|
|
|
formField: string;
|
|
|
|
|
|
}
|
|
|
|
|
|
export interface CallActivityParams {
|
|
|
|
|
|
source: string;
|
|
|
|
|
|
target: string;
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 外部流程
|
|
|
|
|
|
*/
|
|
|
|
|
|
export interface CallActivityConfig extends BasicNodeConfig {
|
|
|
|
|
|
parentId: string; //父节点(流程id)
|
|
|
|
|
|
schemaId: string; //被调用元素(外部流程schemaId)
|
|
|
|
|
|
schemaName: string; //被调用元素(外部流程schemaName)
|
|
|
|
|
|
callActivityType: CallActivityType.SINGLE; // 调用类型
|
|
|
|
|
|
finishType: FinishType.ALL; //完成条件
|
|
|
|
|
|
percentOf: undefined | Number; //百分比数值
|
|
|
|
|
|
executionType: ExecutionType; //执行类型
|
|
|
|
|
|
originatorType: MemberType; //发起人类型
|
|
|
|
|
|
originatorNode: string; //如果调用类型为单实例 子流程发起人
|
|
|
|
|
|
originatorConfig: string; //发起人表单数据配置
|
|
|
|
|
|
inParams: CallActivityParams[]; //输入参数
|
|
|
|
|
|
outParams: CallActivityParams[]; //输出参数
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export type ValidateProcessConfigs = Array<{
|
|
|
|
|
|
nodeName: string; //节点名称
|
|
|
|
|
|
nodeType: BpmnNodeKey; //节点类型
|
|
|
|
|
|
msg: string;
|
|
|
|
|
|
validate: boolean;
|
|
|
|
|
|
}>;
|
|
|
|
|
|
|
|
|
|
|
|
export interface BasicNodeConfig {
|
|
|
|
|
|
id: string; //节点id
|
|
|
|
|
|
type: BpmnNodeKey; //节点类型
|
|
|
|
|
|
name: string; //节点名称
|
|
|
|
|
|
remark: string; //节点描述
|
|
|
|
|
|
startEventConfigs: NodeEventConfig[];
|
|
|
|
|
|
endEventConfigs: NodeEventConfig[];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface NodeEventConfig {
|
|
|
|
|
|
type: NodeEventExType; //节点类型:
|
|
|
|
|
|
apiConfig?: ApiConfig; //APi配置
|
|
|
|
|
|
liteflowId?: string; //流程引擎
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface RootElement {
|
|
|
|
|
|
id: InfoId;
|
|
|
|
|
|
name: string;
|
|
|
|
|
|
$type: BpmnNodeKey;
|
|
|
|
|
|
incoming?: Array<RootElement>;
|
|
|
|
|
|
outgoing?: Array<RootElement>;
|
|
|
|
|
|
flowElements?: Array<RootElement>;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export type RootElements = Array<RootElement>;
|