| | |
| | | let start_num = 0 |
| | | let end_num = 0 |
| | | let unvalid = false |
| | | let map = new Map() |
| | | let appMap = new Map() |
| | | |
| | | nodes.cells.forEach(item => { |
| | | if (item.mknode === 'start') { |
| | | if (item.shape === 'mk-text' || item.shape === 'lane') return |
| | | |
| | | if (!item.mkdata) { |
| | | unvalid = true |
| | | } else if (item.mknode === 'start') { |
| | | start_num++ |
| | | } else if (item.mknode === 'end') { |
| | | end_num++ |
| | | } else if (item.shape === 'edge' && item.mknode !== 'endEdge' && item.mknode !== 'startEdge') { |
| | | if (!item.mkdata.members || item.mkdata.members.length === 0) { |
| | | } else if (item.shape === 'edge') { |
| | | if (item.mknode !== 'endEdge' && item.mknode !== 'startEdge' && (!item.mkdata.members || item.mkdata.members.length === 0)) { |
| | | unvalid = true |
| | | } else if (item.mknode === 'startEdge' || item.mkdata.flowType === 'reject') { |
| | | if (map.has(item.source.cell)) { |
| | | unvalid = true |
| | | } else { |
| | | map.set(item.source.cell, true) |
| | | } |
| | | } else if (item.mkdata.flowType === 'approval' || item.mknode === 'endEdge') { |
| | | let val = '' |
| | | if (item.mkdata.execCondition === 'open') { |
| | | val = item.mkdata.match + item.mkdata.matchVal |
| | | } |
| | | if (appMap.has(item.source.cell + val)) { |
| | | unvalid = true |
| | | } else { |
| | | appMap.set(item.source.cell + val, true) |
| | | } |
| | | } |
| | | |
| | | } |
| | | }) |
| | | |
| | | if (start_num !== 1 || end_num !== 1 || unvalid) { |
| | | _status = 0 |
| | | } |
| | |
| | | let start_num = 0 |
| | | let end_num = 0 |
| | | let unvalidId = '' |
| | | let emptyNode = null |
| | | let emptyEdge = null |
| | | let map = new Map() |
| | | let appMap = new Map() |
| | | let rejectId = '' |
| | | let approvalId = '' |
| | | |
| | | nodes.cells.forEach(item => { |
| | | if (item.mknode === 'start') { |
| | | if (item.shape === 'mk-text' || item.shape === 'lane') return |
| | | |
| | | if (!item.mkdata) { |
| | | if (item.shape !== 'edge') { |
| | | if (!emptyNode) { |
| | | emptyNode = item |
| | | } |
| | | } else { |
| | | if (!emptyEdge) { |
| | | emptyEdge = item |
| | | } |
| | | } |
| | | } else if (item.mknode === 'start') { |
| | | start_num++ |
| | | } else if (item.mknode === 'end') { |
| | | end_num++ |
| | | } else if (item.shape === 'edge' && item.mknode !== 'endEdge' && item.mknode !== 'startEdge') { |
| | | if (!item.mkdata.members || item.mkdata.members.length === 0) { |
| | | } else if (item.shape === 'edge' && !unvalidId && !rejectId && !approvalId) { |
| | | if (item.mknode !== 'endEdge' && item.mknode !== 'startEdge' && (!item.mkdata.members || item.mkdata.members.length === 0)) { |
| | | unvalidId = item.id |
| | | } else if (item.mknode === 'startEdge' || item.mkdata.flowType === 'reject') { |
| | | if (map.has(item.source.cell)) { |
| | | rejectId = item.source.cell |
| | | } else { |
| | | map.set(item.source.cell, true) |
| | | } |
| | | } else if (item.mkdata.flowType === 'approval' || item.mknode === 'endEdge') { |
| | | let val = '' |
| | | if (item.mkdata.execCondition === 'open') { |
| | | val = item.mkdata.match + item.mkdata.matchVal |
| | | } |
| | | if (appMap.has(item.source.cell + val)) { |
| | | approvalId = item.source.cell |
| | | } else { |
| | | appMap.set(item.source.cell + val, item) |
| | | } |
| | | } |
| | | } |
| | | }) |
| | |
| | | message: '结束节点不可添加多个!', |
| | | duration: 2 |
| | | }) |
| | | } else if (unvalidId) { |
| | | let edge = this.mkGraph.getCellById(unvalidId) |
| | | } else if (emptyNode) { |
| | | let errmsg = '部分节点未设置基本信息。' |
| | | if (emptyNode.attrs && emptyNode.attrs.text && emptyNode.attrs.text.text) { |
| | | errmsg = '节点《' + emptyNode.attrs.text.text + '》未设置基本信息。' |
| | | } |
| | | notification.warning({ |
| | | top: 92, |
| | | message: errmsg, |
| | | duration: 2 |
| | | }) |
| | | } else if (emptyEdge) { |
| | | let errmsg = '部分连线未设置基本信息。' |
| | | |
| | | let node = edge.getTargetCell() |
| | | let edge = this.mkGraph.getCellById(emptyEdge.id) |
| | | let target = edge.getTargetCell() |
| | | |
| | | let t_label = '' |
| | | if (target.attrs && target.attrs.text && target.attrs.text.text) { |
| | | t_label = target.attrs.text.text |
| | | } |
| | | |
| | | let source = edge.getSourceCell() |
| | | |
| | | let s_label = '' |
| | | if (source.attrs && source.attrs.text && source.attrs.text.text) { |
| | | s_label = source.attrs.text.text |
| | | } |
| | | |
| | | if (t_label && s_label) { |
| | | errmsg = '节点《' + s_label + '》与节点《' + t_label + '》间连线未设置基本信息。' |
| | | } |
| | | |
| | | notification.warning({ |
| | | top: 92, |
| | | message: errmsg, |
| | | duration: 2 |
| | | }) |
| | | } else if (rejectId) { |
| | | let node = this.mkGraph.getCellById(rejectId) |
| | | |
| | | let title = '' |
| | | if (node.attrs && node.attrs.text) { |
| | | title = node.attrs.text.text + '' |
| | | if (node.attrs && node.attrs.text && node.attrs.text.text) { |
| | | title = '节点《' + node.attrs.text.text + '》' |
| | | } else if (node.mkdata) { |
| | | title = '状态:' + node.mkdata.status + ' - ' + node.mkdata.statusName |
| | | } |
| | | |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '连接(' + title + ')的线未设置审批人!', |
| | | message: title + ' 不可设置两条驳回连线!', |
| | | duration: 2 |
| | | }) |
| | | } else if (approvalId) { |
| | | let node = this.mkGraph.getCellById(approvalId) |
| | | |
| | | let title = '' |
| | | if (node.attrs && node.attrs.text && node.attrs.text.text) { |
| | | title = '节点《' + node.attrs.text.text + '》' |
| | | } else if (node.mkdata) { |
| | | title = '状态:' + node.mkdata.status + ' - ' + node.mkdata.statusName |
| | | } |
| | | |
| | | notification.warning({ |
| | | top: 92, |
| | | message: title + ' 后的审批分支执行条件重复!', |
| | | duration: 2 |
| | | }) |
| | | } else if (unvalidId) { |
| | | let edge = this.mkGraph.getCellById(unvalidId) |
| | | |
| | | let node = edge.getTargetCell() |
| | | |
| | | let title = '' |
| | | if (node.attrs && node.attrs.text && node.attrs.text.text) { |
| | | title = node.attrs.text.text |
| | | } else if (node.mkdata) { |
| | | title = '状态:' + node.mkdata.status + ' - ' + node.mkdata.statusName |
| | | } |
| | | |
| | | let source = edge.getSourceCell() |
| | | |
| | | let s_label = '' |
| | | if (source.attrs && source.attrs.text && source.attrs.text.text) { |
| | | s_label = source.attrs.text.text |
| | | } else if (source.mkdata) { |
| | | s_label = '状态:' + source.mkdata.status + ' - ' + source.mkdata.statusName |
| | | } |
| | | |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '节点《' + s_label + '》与《' + title + '》间连线未设置审批人!', |
| | | duration: 2 |
| | | }) |
| | | } else { |