From 6781ba45775af16872ac68f7e459b1072b16c4cc Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 18 十月 2023 17:33:47 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/utils/utils.js | 157 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 125 insertions(+), 32 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index e874151..7da4357 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -1,3 +1,4 @@ +import React from 'react' import moment from 'moment' import md5 from 'md5' @@ -2117,6 +2118,7 @@ let status = 0 let statusName = '' let detailId = '' + let error = '' if (verify.flowType === 'start') { target = flow.cells.filter(cell => cell.mknode === 'start')[0] @@ -2125,17 +2127,112 @@ detailId = target.id status = target.mkdata.status statusName = target.mkdata.statusName + } else { + error = '宸ヤ綔娴佹棤寮�濮嬭妭鐐�' } } else if (_data.works_flow_param) { - node = JSON.parse(window.decodeURIComponent(window.atob(_data.works_flow_param))) + try { + node = JSON.parse(window.decodeURIComponent(window.atob(_data.works_flow_param))) + } catch (e) { + node = null + } if (node) { let lines = flow.cells.filter(cell => cell.shape === 'edge' && cell.source.cell === node.id) if (verify.flowType === 'reject') { line = lines.filter(cell => cell.mkdata.flowType === 'reject' || cell.mknode === 'startEdge')[0] } else { - line = lines.filter(cell => cell.mkdata.flowType !== 'reject' && cell.mknode !== 'startEdge')[0] + let endEdge = null + lines = lines.filter(cell => { + if (cell.mknode === 'endEdge') { + endEdge = cell + return false + } + + return cell.mkdata.flowType !== 'reject' && cell.mknode !== 'startEdge' + }) + + if (lines.length === 0) { + if (!endEdge) { + error = '鏃犲彲鎵ц鐨勬祦绋嬪垎鏀�' + } else { + line = endEdge + } + } else { + let branchKey = verify.flowBranch ? verify.flowBranch.toLowerCase() : '' + + if (!branchKey) { + lines.forEach(line => { + if (line.mkdata.execCondition === 'open') { + error = '鎸夐挳鏈缃祦绋嬫帶鍒跺瓧娈点��' + } + }) + if (!error) { + line = lines[0] + } + } else if (!_data.hasOwnProperty(branchKey)) { + error = '琛屼俊鎭腑鏃犳祦绋嬫帶鍒跺瓧娈点��' + } else { + if (endEdge) { + line = endEdge + } + + let equalLine = null + let gtOrLtLine = [] + let unEqualLine = null + let branchVal = _data[branchKey] + + if (branchVal && typeof(branchVal) === 'string' && !isNaN(branchVal)) { + branchVal = +branchVal + } + + lines.forEach(item => { + if (item.mkdata.execCondition !== 'open') { + line = item + } else { + if (item.mkdata.match === '=') { + if (item.mkdata.matchVal === branchVal + '') { + equalLine = item + } + } else if (item.mkdata.match === '!=') { + if (item.mkdata.matchVal !== branchVal + '') { + unEqualLine = item + } + } else { + if (item.mkdata.match === '<') { + if (item.mkdata.matchVal < branchVal) { + gtOrLtLine.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)}) + } + } else if (item.mkdata.match === '<=') { + if (item.mkdata.matchVal <= branchVal) { + gtOrLtLine.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)}) + } + } + } + } + }) + + 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 + } + } + } } + } else { + error = '琛屼俊鎭腑宸ヤ綔娴佸弬鏁版棤娉曡В鏋�' } if (line) { @@ -2143,7 +2240,11 @@ status = line.mkdata.status statusName = line.mkdata.statusName target = flow.cells.filter(cell => cell.id === line.target.cell)[0] + } else if (!error) { + error = '宸ヤ綔娴佷腑鏃犲搴旀祦绋�' } + } else { + error = '琛屼俊鎭腑鏃犲伐浣滄祦鍙傛暟' } if (verify.flowSql === 'true' && target) { @@ -2184,20 +2285,12 @@ ` } } else if (verify.flowSql === 'true') { - target = flow.cells.filter(cell => cell.mknode === 'start')[0] - - if (target) { - detailId = target.id - } - status = 0 statusName = '寮傚父' + _sql += ` /* 宸ヤ綔娴佸紓甯竤ql */ - update s_my_works_flow set status=@status@,statusname=@statusname@,works_flow_param=@works_flow_param@,works_flow_detail_id=@works_flow_detail_id@,modifydate=getdate(),modifyuserid=@userid@,modifyuser=@username,modifystaff=@fullname - where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0 - insert into s_my_works_flow_log (works_flow_id,works_flow_code,works_flow_name,works_flow_param,status,statusname,works_flow_detail_id,work_group,work_grade,upid) - select @ID@,@works_flow_code@,@works_flow_name@ ,@works_flow_param@,@status@,@statusname@,@works_flow_detail_id@,@work_group@,@work_grade@,@time_id@ + select @ErrorCode='E',@retmsg='${error || '宸ヤ綔娴佹墽琛屽紓甯�'}' goto aaa ` } @@ -2302,10 +2395,7 @@ * @description 鑾峰彇鏍囪淇℃伅 */ export function getMark (marks, record, style = {}) { - let icon = null - let innerStyle = null - let position = null - let signType = '' + let res = {} style = JSON.parse(JSON.stringify(style)) marks.some(mark => { @@ -2342,42 +2432,45 @@ if (type === 'font') { style.color = mark.color - innerStyle = {color: mark.color} - signType = ' sign-font' + res.innerStyle = {color: mark.color} + res.signType = ' sign-font' } else if (type === 'background') { style.backgroundColor = mark.color if (mark.fontColor) { style.color = mark.fontColor - innerStyle = {color: mark.fontColor} + res.innerStyle = {color: mark.fontColor} } } else if (type === 'underline') { style.textDecoration = 'underline' style.color = mark.color - innerStyle = {color: mark.color, textDecoration: 'underline'} + res.innerStyle = {color: mark.color, textDecoration: 'underline'} } else if (type === 'line-through') { style.textDecoration = 'line-through' style.color = mark.color - innerStyle = {color: mark.color, textDecoration: 'line-through'} + res.innerStyle = {color: mark.color, textDecoration: 'line-through'} } else if (type.indexOf('icon') > -1) { - icon = mark.signType[mark.signType.length - 1] - innerStyle = {color: mark.color} + res.icon = mark.signType[mark.signType.length - 1] + res.innerStyle = {color: mark.color} if (type === 'iconfront' || mark.signType[1] === 'front') { - position = 'front' + res.position = 'front' } else { - position = 'back' + res.position = 'back' } + } else if (type === 'indent') { + style.color = mark.color + res.space = Array(mark.signType[1] + 1).join(' ') + } else if (type === 'pointfront') { + res.position = 'front' + res.point = <span style={{display: 'inline-block', marginRight: '3px', width: '8px', height: '8px', borderRadius: '14px', background: mark.color, verticalAlign: 'middle'}}></span> + } else if (type === 'pointback') { + res.position = 'back' + res.point = <span style={{display: 'inline-block', marginLeft: '3px', width: '8px', height: '8px', borderRadius: '14px', background: mark.color, verticalAlign: 'middle'}}></span> } return true }) - return { - style, - icon, - innerStyle, - position, - signType - } + return res } /** -- Gitblit v1.8.0