| | |
| | | let status = 0 |
| | | let statusName = '' |
| | | let detailId = '' |
| | | let sign = '' |
| | | let error = '' |
| | | let userid = sessionStorage.getItem('UserID') || '' |
| | | let checkIds = [] |
| | |
| | | } |
| | | }) |
| | | if (!error) { |
| | | line = lines[0] |
| | | lines = lines.filter(cell => { |
| | | if (cell.mkdata.seniorCondition === 'open' && !line) { |
| | | cell.mkdata.seniorbers && cell.mkdata.seniorbers.forEach(per => { |
| | | if (per.worker_id === userid) { |
| | | line = cell |
| | | } |
| | | }) |
| | | |
| | | return false |
| | | } |
| | | |
| | | return true |
| | | }) |
| | | |
| | | if (!line) { |
| | | line = lines[0] |
| | | } |
| | | } |
| | | } else if (!_data.hasOwnProperty(branchKey)) { |
| | | error = '信息中无流程控制字段。' |
| | | } else { |
| | | let equalLine = null |
| | | let gtOrLtLine = [] |
| | | let unEqualLine = null |
| | | let _def_lines = [] |
| | | let _equ_lines = [] |
| | | let _unequ_lines = [] |
| | | let _or_lines = [] |
| | | let branchVal = _data[branchKey] |
| | | |
| | | if (branchVal && typeof(branchVal) === 'string' && !isNaN(branchVal)) { |
| | |
| | | |
| | | lines.forEach(item => { |
| | | if (item.mkdata.execCondition !== 'open') { |
| | | line = item |
| | | _def_lines.push(item) |
| | | } else { |
| | | if (item.mkdata.match === '=') { |
| | | if (item.mkdata.matchVal === branchVal + '') { |
| | | equalLine = item |
| | | _equ_lines.push(item) |
| | | } |
| | | } else if (item.mkdata.match === '!=') { |
| | | if (item.mkdata.matchVal !== branchVal + '') { |
| | | unEqualLine = item |
| | | _unequ_lines.push(item) |
| | | } |
| | | } else { |
| | | if (item.mkdata.match === '<') { |
| | | if (item.mkdata.matchVal < branchVal) { |
| | | gtOrLtLine.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)}) |
| | | _or_lines.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)}) |
| | | } |
| | | } else if (item.mkdata.match === '>') { |
| | | if (item.mkdata.matchVal > branchVal) { |
| | | gtOrLtLine.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)}) |
| | | _or_lines.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)}) |
| | | } |
| | | } else if (item.mkdata.match === '<=') { |
| | | if (item.mkdata.matchVal <= branchVal) { |
| | | gtOrLtLine.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)}) |
| | | _or_lines.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)}) |
| | | } |
| | | } else if (item.mkdata.match === '>=') { |
| | | if (item.mkdata.matchVal >= branchVal) { |
| | | gtOrLtLine.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)}) |
| | | _or_lines.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)}) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | |
| | | if (equalLine) { |
| | | line = equalLine |
| | | } else if (gtOrLtLine.length > 0) { |
| | | gtOrLtLine.sort((a, b) => a.dist - b.dist) |
| | | line = gtOrLtLine[0] |
| | | } else if (unEqualLine) { |
| | | line = unEqualLine |
| | | _or_lines.sort((a, b) => a.dist - b.dist) |
| | | |
| | | let _lines = [..._equ_lines, ..._or_lines, ..._unequ_lines, ..._def_lines] |
| | | |
| | | _lines = _lines.filter(cell => { |
| | | if (cell.mkdata.seniorCondition === 'open' && !line) { |
| | | cell.mkdata.seniorbers && cell.mkdata.seniorbers.forEach(per => { |
| | | if (per.worker_id === userid) { |
| | | line = cell |
| | | } |
| | | }) |
| | | |
| | | return false |
| | | } |
| | | |
| | | return true |
| | | }) |
| | | |
| | | if (!line) { |
| | | line = _lines[0] |
| | | } |
| | | } |
| | | } |
| | |
| | | detailId = line.id |
| | | status = line.mkdata.status |
| | | statusName = line.mkdata.statusName |
| | | sign = line.mkdata.seniorSign || '' |
| | | target = flow.cells.filter(cell => cell.id === line.target.cell)[0] |
| | | |
| | | line.mkdata.members && line.mkdata.members.forEach(item => { |
| | |
| | | |
| | | if (!target) { |
| | | error = '未查询到工作流目标节点' |
| | | } else if (checkIds.length === 0 && line.mknode !== 'startEdge' && line.mknode !== 'endEdge') { |
| | | } else if (checkIds.length === 0 && !['startEdge', 'endEdge', 'throughEdge'].includes(line.mknode)) { |
| | | error = '未获取到下一步审批人' |
| | | } else if (line.approvalMethod === 'countersign' && (!node.checkIds || !node.checkIds.includes(userid))) { |
| | | error = '当前用户不在审批人列表中' |
| | |
| | | } |
| | | } |
| | | |
| | | if (_backCustomScript) { |
| | | _sql += _backCustomScript |
| | | } |
| | | |
| | | _sql = _sql.replace(/@works_flow_sign@/ig, `'${sign}'`) |
| | | |
| | | _sql = _sql.replace(/@check_userids@/ig, `'${checkIds.join(',')}'`) |
| | | _sql = _sql.replace(/@notice_userids@/ig, `'${noticeIds.join(',')}'`) |
| | | |
| | |
| | | _sql = _sql.replace(/@statusname@/ig, `'${statusName}'`) |
| | | _sql = _sql.replace(/@work_group@/ig, `'${sessionStorage.getItem('work_group') || ''}'`) |
| | | _sql = _sql.replace(/@work_grade@/ig, `'${work_grade}'`) |
| | | } |
| | | |
| | | if (_backCustomScript) { |
| | | } else if (_backCustomScript) { |
| | | _sql += _backCustomScript |
| | | } |
| | | |