(function($){
$.rxWorkFlow=function(settings,callback){
var _this=this;
_this.opts={
btnHolder:null,
titleHolder:null,
wfListHolder:null,
arrBtns:[],
wfCode:"",
wfID:0,
mID:0,
aID:0,
nID:0,
withdrawAid:0,
lID:0,
snID:0,
appendCols:[],
onValid:function(code){return true;},
success:function(data){
if(data.code=="07"){
pageObj.workFlowObj.refreshGrid();}
else{
if(data.error=="0"){
$.lnkMsgBox.success(data.msg,function(){
window.location.replace(window.location.href);});}
else{
$.lnkMsgBox.error(data.msg);}}},
fail:function(data){$.lnkMsgBox.warn(data.msg);}};
$.extend(_this.opts,settings);
_this.btnsArr=[];
_this.wfListGrid=null;
_this.ActionInfo={};
_this.ActionCommand={
"01":"Approve",
"011":"Across",
"02":"Approve",
"08":"Approve",
"05":"Approve",
"10":"Approve",
"07":"Confirm"};
var wfProtype={
_wfPath:'../../RxAPI/csp/RxAPI.dll?page=WFAPI',
rowGroup:{},
remarkRowIndex:null,
_command:{
getWF:"GetWfInfo",
getBtns:"GetActionBtn",
getWfTitle:"GetWfTitle",
refreshGrid:"QueryWfAuditList",
onAudit:"ApproveJSON",
onAccross:"AcrossJSON",
onConfirm:"ConfirmJSON"},
error:{
isBusy:"流程系统忙,请稍后再试。",
noInfo:"流程系统出现异常,暂时无法获取到单据信息。",
remarkOverflow:"流程审核说明不能超过50个汉字。",
invalidAuditSeq:"无效的流程审核参数。",
parseError:"流程系统返回信息异常,请稍后再试。"},
dump:function(err){
$.lnkMsgBox.warn(this.error[err]);},
ajaxAction:function(url,callback){
$.getJSON(url,callback);},
lnkBtn:function(holder,id,text,enable,func){
var _btnDiv=$("
");
holder.append(_btnDiv);
var _btn=_btnDiv.lnkButton({
name:id,
text:text,
width:70,
disabled:(enable=="0"?true:false),
click:func||function(){}});
return _btn;},
parseURL:function(cmd,options,params){
var opts={wfCode:0,wfID:0,mID:0,aID:0,nID:0,lID:0,snID:0};
$.extend(opts,options);
var urlPram={
pcmd:this._command[cmd],
wfid:opts.wfID,
wfcode:opts.wfCode,
mid:opts.mID,
aid:opts.aID,
nid:opts.nID,
lid:opts.lID,
snid:opts.snID};
if(typeof wf_api!=='undefined'){
this._wfPath=wf_api;}
var url=this._wfPath+"&"+decodeURIComponent($.param(urlPram));
if(typeof params!=="undefined"){
if(typeof params=="string"){
url+="&"+decodeURIComponent($.trim(params));}
else{
url+="&"+decodeURIComponent($.param(params))}}
url+="&sessionKey="+sessionkey;
url+="&format=json&jsoncallback=?";
return url;},
initGrid:function(options){
var g=this,opts={wfListHolder:'body',data:{Rows:[]}};
$.extend(opts,options);
if(typeof opts.wfListHolder=='string'){
opts.wfListHolder=$(opts.wfListHolder);}
var stepName=null;
var stepRowIndex=null;
var gridColumns=[{display:"序号",name:'rowIdx',width:35},{display:"步骤",name:'wfnd_stepName',width:80,render:function(rowdata,rowindex){
var _rowId=this.getRowId(rowindex);
var _cellId=this.getCellId(rowindex,"c1");
if(stepName!=rowdata.wfnd_stepName){
stepName=rowdata.wfnd_stepName;
stepRowIndex="R"+rowindex;
g.rowGroup[stepRowIndex]={rowSpan:{cellId:_cellId,span:1},hideRows:[],hideCells:[],groupIndex:{}};
return stepName;}
else{
g.rowGroup[stepRowIndex].hideRows.push(_rowId);
g.rowGroup[stepRowIndex].hideCells.push(_cellId);
g.rowGroup[stepRowIndex].groupIndex["R"+rowindex]=true;
g.rowGroup[stepRowIndex].rowSpan.span++;
return "";}}},{display:"角色:部门/岗位",name:'wfnd_name',align:'left',lineWrap:true,width:310},{display:"属性",name:'audit_type',width:60,render:function(rowdata,rowindex){
if(rowdata.audit_type=="--"){
return rowdata.audit_type;}
else{
return ""+rowdata.audit_type+"";}}},{display:"操作人",name:'wfnd_emp_name',width:70,render:function(rowdata,rowindex){
if(rowdata.wfnd_emp_name=="--"){
return rowdata.wfnd_emp_name;}
else{
return ""+rowdata.wfnd_emp_name+"";}}},{display:"意见",name:'audit_state',width:60},{display:"审核说明/步骤职责",name:'role_comment',align:'left',render:function(rowdata,rowindex){
if(rowdata.audit_state=="待审"&&rowdata.wfnd_emp_id==rowdata.user_id){
g.remarkRowIndex="R"+rowindex;
return "";}
else{
if(rowdata.audit_remark==""){
return ""+rowdata.role_comment+"
";}
else{
return ""+rowdata.audit_remark+"
";}}}},{display:"操作日期",name:'audit_time',width:90}];
$.merge(gridColumns,opts.appendCols);
var wfGrid=opts.wfListHolder.lnkGridView({
columns:gridColumns,
enabledSselect:false,
height:165});
g.refreshGrid(wfGrid,opts);
return wfGrid;},
reConstructGrid:function(gridObj){
var g=this;
var _expanding=false;
for(var rowIndex in g.rowGroup){
var _groupItem=g.rowGroup[rowIndex];
var _rowSpan=_groupItem.rowSpan;
var _cellDiv=$(document.getElementById(_rowSpan.cellId)).find("div");
if(_cellDiv){
_cellDiv.append("("+_rowSpan.span+")");
if(_rowSpan.span>1){
if(g.remarkRowIndex&&_groupItem.groupIndex[g.remarkRowIndex]){
var treeImg=$("");
_cellDiv.prepend(treeImg);}
else{
var treeImg=$("");
treeImg.attr("rowIndex",rowIndex)
treeImg.click(function(){
if($(this).hasClass("tree-open")){
$(this).removeClass("tree-open");
g.shrinkRow(this,gridObj);}
else{
$(this).addClass("tree-open");
g.expandingRow(this,gridObj);}});
_cellDiv.prepend(treeImg);}
if(g.remarkRowIndex){
$("#auditDesc").focus(function(){
if($.trim($(this).val())==$(this).attr("role")){
$(this).val("");
this.style.color='black';}
this.rows=4;}).blur(function(){
if($.trim($(this).val())==""){
$(this).val($(this).attr("role"));
this.style.color='#999';}
this.rows=1;});}}}
for(var i=0,l=_groupItem.hideCells.length;i100){
remarkCtrl.select();
wfProtype.dump("remarkOverflow");}
else{
if($.isFunction(_this.opts.onValid)){
_isPass=(_this.opts.onValid(code)==true);}}
return _isPass;};
_this.refreshGrid=function(){
wfProtype.refreshGrid(_this.wfListGrid,_this.opts);};
_this.submitWork=function(code,pcmd,paras){
var isSysCallBack=_this.ActionInfo[code].enable!=1;
var isNonBlock=true;
var colName=[],colLength=[],colVal=[];
$.each(_this.opts.appendCols,function(index,col){
if(col["fieldLength"]&&col["bindCtrl"]&col["bindCtrl"]!=""){
colName.push(col["name"]);
colLength.push(col["fieldLength"]);
var _colVal=$.trim($("#"+col["bindCtrl"]).val());
colVal.push(_colVal);}});
var _url=wfProtype._wfPath+"&pcmd="+pcmd+paras;
_url+="&colName="+encodeURIComponent(colName.join("|||"));
_url+="&colLength="+encodeURIComponent(colLength.join("|||"));
_url+="&colVal="+encodeURIComponent(colVal.join("|||"));
_url+="&sessionKey="+sessionkey;
_url+="&format=json&jsoncallback=?";
wfProtype.ajaxAction(_url,function(jsnResult){
_this.opts.success(jsnResult);});};
_this.clickFunc=function(code){
var actionCmd=code;
var isNonSysCmd=_this.ActionInfo[actionCmd].enable==1;
var remarkCtrl=$("#auditDesc");
var remarkValue="";
var roleComment="";
if(remarkCtrl.length>0){
remarkValue=$.trim(remarkCtrl.val());
roleComment=remarkCtrl.attr("role");
if(remarkValue==roleComment){
remarkCtrl.val("");}
if(isNonSysCmd&&remarkValue!=roleComment&&remarkValue.length>100){
$.lnkMsgBox.warn("审核说明不能超过100个字!",function(){
remarkCtrl.focus();});
return false;}}
if(isNonSysCmd&&$.isFunction(_this.opts.onValid)){
if(!_this.opts.onValid(code)){
return false;}}
var param="&wfid="+_this.opts.wfID;
param+="&mid="+_this.opts.mID;
param+="&aid="+(code=='05'||code=='10'?_this.opts.withdrawAid:_this.opts.aID);
param+="&nid="+_this.opts.nID;
param+="&action_code="+code;
param+="&aut_desc="+encodeURIComponent(remarkValue);
switch(code){
case "01":
if(remarkCtrl.length>0){
if(remarkCtrl.attr("seq")&&remarkCtrl.attr("seq")==2&&(remarkValue==roleComment||remarkValue.length==0)){
$.lnkMsgBox.warn("请填写审核说明!",function(){
remarkCtrl.focus();});}
if(remarkCtrl.attr("seq")&&remarkCtrl.attr("seq")==1){
$.lnkMsgBox.confirm("您要求联名的反馈意见还未全部回复
是否通过确认?",function(yes){
if(yes){
if(_this.opts.lID=="1"){
param+="&lid="+_this.opts.lID+"&snid="+t_this.opts.snID;
actionCmd+="1";}
_this.submitWork(code,_this.ActionCommand[actionCmd],param);}});}
else{
if(_this.opts.lID=="1"){
param+="&lid="+_this.opts.lID+"&snid="+t_this.opts.snID;
actionCmd+="1";}
_this.submitWork(code,_this.ActionCommand[actionCmd],param);}}
else{
if(_this.opts.lID=="1"){
param+="&lid="+_this.opts.lID+"&snid="+t_this.opts.snID;
actionCmd+="1";}
_this.submitWork(code,_this.ActionCommand[actionCmd],param);}
break;
case "02":
_this.submitWork(code,_this.ActionCommand[actionCmd],param);
break;
case "04":
case "06":
case "12":
case "13":
case "09":
wfProtype.openWfDialog(code,_this.opts);
break;
case "05":
case "10":
_this.submitWork(code,_this.ActionCommand[actionCmd],param);
break;
case "07":
param+="&lid="+_this.opts.lID;
_this.submitWork(code,_this.ActionCommand[actionCmd],param);
break;
case "08":
_this.submitWork(code,_this.ActionCommand[actionCmd],param);
break;
case "11":
break;
default:
break;}},
_this._initAfter=function(){
if(_this.opts.lID=="4"||_this.opts.lID=="6"||_this.opts.lID=="9"||_this.opts.lID=="11"||_this.opts.lID=="13"){
_this.clickFunc("07");}
else if(this.opts.lID==null||this.opts.lID=="0"||this.opts.lID=="1"){
_url=wfProtype.parseURL("getBtns",_this.opts);
wfProtype.ajaxAction(_url,function(jsnResult){
if(jsnResult){
_this.opts.withdrawAid=jsnResult.aid;
var btnRows=jsnResult.Rows;
if(btnRows.length>0){
var btnObj=[];
for(var i=0,len=btnRows.length;i原单]";}
if(jsnResult["checkBill"]){
var _url="../../"+jsnResult["checkBill"]["WfUrl"];
_wfTitle+="["+jsnResult["checkBill"]["CheckState"]+"]";}
_this.opts.titleHolder.html(_wfTitle);}});
_this.wfListGrid=wfProtype.initGrid(_this.opts);}};
_this._init=function(){
if(_this.opts.arrBtns.length>0){
_this.addBtns(_this.opts.arrBtns);};
if(parseInt(_this.opts.mID)>0){
var _url=wfProtype.parseURL("getWF",_this.opts);
wfProtype.ajaxAction(_url,function(jsnResult){
if(jsnResult){
_this.opts.wfID=jsnResult.info.ID;
_this.opts.showGrid=jsnResult.info.CT>0;
_this.ActionInfo=jsnResult.actions;
if($.isFunction(callback)){
callback(0,_this.opts.showGrid);};
_this._initAfter();}});}
else{
if($.isFunction(callback)){
callback(0,false);}}};
_this._init();
return _this;};
rxWorkFlow=function(settings,callback){
return new $.rxWorkFlow(settings,callback);};})(jQuery);
function fnOpenWfWin(obj,type){
var url="";
if(type==1){
url="../../WFsys/csp/WFSys.dll?page=EWF03AE&pcmd=init&edit=-1&seq="+$(obj).attr("seq")+"&wfm_id="+$(obj).attr("wfm_id")+"&TH=600&TW=900";}
else if(type==2){
url="../../PM03Sys/csp/PM03Sys.dll?page=ETM05AB&pcmd=init&emp_id="+$(obj).attr("wfnd_emp_id")+"&TW=840&TH=330";}}
function getWFNode(){
var nodes=[{display:'审核流程',colSpan:4},{display:'申请',newline:true,name:'n1',width:80,
render:function(rowdata,rowindex,value){
if(rowdata.s1==1){
return ""+rowdata.n1+"
";}
else if(rowdata.s1==2){
return ""+rowdata.n1+"
";}
else if(rowdata.s1==0){
return ""+rowdata.n1+"
";}
else{
return rowdata.n1;}}},{display:'审核',name:'n2',width:80,
render:function(rowdata,rowindex,value){
if(rowdata.s2==1){
return ""+rowdata.n2+"
";}
else if(rowdata.s2==2){
return ""+rowdata.n2+"
";}
else if(rowdata.s2==0){
return ""+rowdata.n2+"
";}
else{
return rowdata.n2;}}},{display:'复核',name:'n3',width:80,
render:function(rowdata,rowindex,value){
if(rowdata.s3==1){
return ""+rowdata.n3+"
";}
else if(rowdata.s3==2){
return ""+rowdata.n3+"
";}
else if(rowdata.s3==0){
return ""+rowdata.n3+"
";}
else{
return rowdata.n3;}}},{display:'批准',name:'n4',width:80,
render:function(rowdata,rowindex,value){
if(rowdata.s4==1){
return ""+rowdata.n4+"
";}
else if(rowdata.s4==2){
return ""+rowdata.n4+"
";}
else if(rowdata.s4==0){
return ""+rowdata.n4+"
";}
else{
return rowdata.n4;}}}];
return nodes;}
function rxWFEmpInfo(obj,emp_id){
if(emp_id=="")return;
if(obj.title==""){
var _wfPath="../../rxDeskTop/csp/rxDeskTop.dll?page=WFAPI";
if(typeof wf_api!=='undefined'){
_wfPath=wf_api;}
var url=_wfPath+"&pcmd=GetEmpDetail&emp_id="+emp_id+"&format=json&jsoncallback=?";
$.getJSON(url,function(jsnObj){
if(jsnObj){obj.title=jsnObj.empInfo;}});}}