A-A+
通达OA-工作量表单限制发起人才能删除
1、修改弹出框的js文件
文件:D:\MYOA\webroot\general\workflow\list\js\work_operation.js
找到:function work_run_pending(pageName)
function work_run_pending(pageName) { if(checkSelectRows()){ loadModal(); open_bootcss_modal("myModal","880","5"); jQuery('.modal-body').load('data/'+pageName+'.php',function(){ var selectRows = getSelectRows(); if(selectRows == ""){ return false; } var resultData = getRunData(selectRows) var aaa1 = resultData.runData[0].create_man; var geturl = 'http://' + window.location.host + '/general/getloginuser.php'; jQuery.ajax({ type: "GET", url: geturl, dataType: 'json', success: function(data){ var login_name = data.login_name; if(aaa1 == login_name){ jQuery('#myModalLabel').html('作废'); jQuery('.quick-date-select').show(); var Data = {"runData":resultData.runData} var template = jQuery.templates("#pendingDataTmpl"); var htmlOutput = template.render(Data); jQuery("#pendingData").html(htmlOutput); jQuery('.quick-date-select').click(function(){ var padding_id = jQuery(this).attr("pending"); jQuery("#"+padding_id).click(); }); }else{ alert('只有发起人可以作废'); return false; } } }); // console.log(resultData.runData[0]); // jQuery('#myModalLabel').html(td_lang.general.workflow.msg_60); }); } }
红色部分是添加的内容,用ajax请求获取当前登录用户名,比较表单提交的用户名。
因为无法获取当前选中表单数据的提交人,所以还需要传递给此表单用户数据
继续当前文档找function getRunData(selectRows){
function getRunData(selectRows){ var runData = new Array(); var runFlowData = new Array(); var flowDelegateTypeArr = new Array(); for(var i = 0; i < selectRows.length; i++){ var dataTr = jQuery(window.frames["workflow-data-list"].document).find("#gridTable").find("tr[role='row'][id='"+selectRows[i]+"']"); var flow_id = dataTr.find("td[aria-describedby='gridTable_flow_id']").html(); var delegate_type = dataTr.find("td[aria-describedby='gridTable_delegate_type']").html(); flowDelegateTypeArr.push(delegate_type); var run_id = dataTr.find("td[aria-describedby='gridTable_run_id']").html(); var prcs_key_id = dataTr.find("td[aria-describedby='gridTable_prcs_key_id']").html(); var run_name = dataTr.find("td[aria-describedby='gridTable_run_name']").find('a').html(); var prcs_name = dataTr.find("td[aria-describedby='gridTable_prcs_name']").find('a').html(); var create_man = dataTr.find("td[aria-describedby='gridTable_create_man']").find('a').html(); var flow_prcs = dataTr.find("td[aria-describedby='gridTable_flow_prcs']").html(); var prcs_id = (prcs_name.match(/\d/g))[0]; runFlowData.push(flow_id+"_"+prcs_id); var selectData = { 'run_id':run_id, 'run_name':run_name, 'prcs_name':prcs_name, 'create_man':create_man, 'prcs_key_id':prcs_key_id, 'flow_id':flow_id, 'prcs_id':prcs_id, 'delegate_type':delegate_type, 'flow_prcs':flow_prcs }; runData.push(selectData); } var resultData = {"runData" : runData, "flowDelegateTypeArr":flowDelegateTypeArr, "runFlowDataArr":runFlowData}; //alert(runFlowData.join(",").match(/28,/g).length); return resultData; //runData; }
如此work_run_pending中就能获取到当前选中表单提交人的信息了。
2、添加文件D:\MYOA\webroot\general\getloginuser.php
内容如下:
<?php
include_once("inc/auth.inc.php");
include_once("inc/conn.php");
$username = $_SESSION["LOGIN_USER_NAME"];
$data['login_name'] = iconv('gb2312','utf-8',$username);
echo json_encode($data);?>
1