king
2024-05-16 b69b5f6329ca5f87932436b7a6c1ddfc3377e10f
src/utils/utils.js
@@ -2149,6 +2149,7 @@
    let status = 0
    let statusName = ''
    let detailId = ''
    let sign = ''
    let error = ''
    let userid = sessionStorage.getItem('UserID') || ''
    let checkIds = []
@@ -2197,14 +2198,31 @@
                }
              })
              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)) {
@@ -2213,45 +2231,58 @@
              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]
              }
            }
          }
@@ -2264,6 +2295,7 @@
        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 => {
@@ -2288,7 +2320,7 @@
        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 = '当前用户不在审批人列表中'
@@ -2453,6 +2485,12 @@
      }
    }
    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(',')}'`)
@@ -2475,9 +2513,7 @@
    _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
  }