import { FlowContextType, FlowNode, Menu } from "../type"; export declare class FlowEventService { loadFlowNode(node: FlowNode): FlowNode; /** * 保存节点,去除所有的menus数据内容 */ getSaveFlowNode(nodes: FlowNode): FlowNode; /** * 获取事件流打开动作里面的存储行为 * @returns */ getSaveDataBehaviorByAction(nodes: FlowNode): StorageDataBehaviorType[]; private _getSaveDataBehaviorByAction; /** * 创建节点 * @param curModel * @param key * @returns */ createFlowNode(curModel: any, key: string): any; /** * 处理插入节点,对规则节点的处理逻辑有问题 * @param curModel * @param newNode */ InterpositionFlowNode(curModel: any, newNode: any): any; private createUUid; private updatedParentConfig; /** * 菜单配置 * 1,模块下子模块都是条件/或者缺省条件 的情况下,是可以添加多个条件的,否则只能有一条线路 * 2, 请求动作,成功,失败和成功或失败是互斥的 * 3, 除条件以为的子模块不允许子啊添加动作 * @param node * @returns */ getMenusByNode(node: FlowNode, FlowCtx: FlowContextType): any; getMenusPosition(item: any, target: any, graph: any, refContainer: any): { top: any; left: any; }; getDeleteMenus(model: any, graph: any): Menu[]; /** * 判断节点是否是条件节点,并且有多个条件的情况下,应该过滤掉删除当前节点的方法 * @param model * @param graph * @returns */ private isHaveMultiCondition; updatedParentConfigs(data: FlowNode | undefined): FlowNode; /** * 除了判断是否是插入节点 * 这里除了明确指出来的插入节点以外还需要注意类似 * 动作突然修改成接口,添加节点的内容插入 * @param key * @returns */ isInsertNode(key: string, current?: FlowNode): boolean; /** * 校验所有的节点是否正确,不断扩充,暂时只校验请求接口 * 1,请求动作节点后面必须是成功,失败,穿透 * 2,规则节点必须绑定instanceId * 3,规则节点前置,后置,预制等必须有结束节点 * 4, 只要存在一个结束节点或者异常结束节点就行 */ checkAllNode(newData: FlowNode): { code: number; msg: string; }; /** * 检测至少含义一个结束节点 * 1,结束节点 * 2,公共事件流节点 * 3,异常节点 * @param node * @returns */ checkAllEndNodeData(node: FlowNode): boolean; /** * 递归遍历修改树图数据 * 1,规则节点和结束节点只要存在一个就行 * 以遇到结束节点作为执行完成的标准 * @param root 当前跟节点 * @param option 更新类型: 删除节点 删除一整个子树 添加节点 * @param targetId 要删除的节点 || 在那个节点下新增 * @param newNode 新增节点 * @param isInsertNode 判断是否插入节点 * @returns */ getNewTreeGraphData(root: any, option: string, targetId: string, newNode?: any, isInsertNode?: boolean): any; /** * 补充menus * @param node */ private addInitNodeMenus; /** * 1,请求动作节点后面必须是成功,失败,穿透 * @param nodeList * @returns */ private checkAllRequestNodeData; /** * 2,规则节点必须绑定instanceId * 3,规则节点前置,后置,预制等必须有结束节点 * @param nodeList */ private checkAllRuleNodeData; /** * 补充插入菜单, * 暂时只支持条件,动作,插入其他节点 */ private addInterpositionMenus; /** * 可能是插入节点,应该转换成对应的节点内容 * 用于去生成新的节点 * @param key * @returns */ private getNewKey; private handleSaveFlowNode; /** * 处理多条件节点,即某个节点下面可以有多个条件和一个缺省条件 * @param node * @returns */ private handleConditionMenus; /** * 处理动作节点下的请求动作 * @param node * @param FlowCtx * @returns */ private handleActionRequestMenus; private isHaveFinallyNode; private isSuccessOrErrorNode; private isSuccessAndErrorNode; /** * 暂时只针对menus中含有rule里面的menus,目的是保证整条链路只有一个规则 * * @param menus * @param parentKeys */ private handleParentKeysMenus; private isHaveRuleInParentKeys; private isHaveRuleInChildren; /** * 判断是否有除请求以外的任何数据 * 主要是action节点之前不是请求,后来改成请求后要插入成功,失败或穿透的子模块 * @param children */ private isNoHaveActionRequestData; private _checkRequestChildren; /** * 校验请求动作 * @param node */ private checkActionRequestData; private checkRuleNodeData; private checkChildrenNode; private getOneFlowNode; /** * 判断子节点只能是条件或者缺省条件 * @param children * @returns */ private isHaveConditionAndElseInChildren; /** * 节点存在条件 * @param children * @returns */ private isHaveConditionInChildren; /** * 节点存在缺省条件 * @param children * @returns */ private isHaveConditionElseChildren; private _updateParentConfig; }