function InitPage() { //加载标签页 var handler = new HttpHandler("BP.WF.HttpHandler.CCMobile_WorkOpt_OneWork"); handler.AddPara("FK_Node", fk_node); handler.AddPara("FK_Flow", fk_flow); handler.AddPara("WorkID", workid); handler.AddPara("FID", fid); var data = handler.DoMethodReturnString("TimeBase_Init"); if (data.indexOf('err@') == 0) { alert(data); return; } if (data == "[]") { return; } data = cceval('(' + data + ')'); //日志列表. var tracks = data["Track"]; //工作列表. var gwf = data["WF_GenerWorkFlow"][0]; if (gwf.WFState == 3) $("#Undo").hide(); //获得工作人员列表. var gwls = data["WF_GenerWorkerlist"]; var timeDay = ""; var checkStr = ""; var dotColor = -1; var idx = 1; //输出列表. for (var i = 0; i < tracks.length; i++) { var track = tracks[i]; if (track.FID != 0) continue; if (track.ActionType == ActionType.FlowBBS) continue; if (track.ActionType == ActionType.WorkCheck) continue; //如果是协作发送,就不输出他. edit 2016.02.20 .BBS也不显示,added by liuxc,2016-12-15 if (track.ActionType == ActionType.TeampUp || track.ActionType == ActionType.FlowBBS) continue; // 记录审核节点。 if (track.ActionType == ActionType.WorkCheck) checkStr = track.NDFrom; //记录当前的审核节点id. //审核信息过滤, if (track.ActionType == ActionType.WorkCheck) { if (gwf.FK_Node == checkStr && gwf.WFState != 3) continue; //如果当前节点与审核信息节点一致,就说明当前人员的审核意见已经保存,但是工作还没有发送,就不让他显示。 } // 前进. if (track.ActionType == ActionType.Forward) { if (checkStr == track.NDFrom) continue; } var rdt = track.RDT; if (timeDay == "") { timeDay = rdt.substring(0, 10); dotColor = dotColor + 1; if (dotColor == 3) dotColor = 1; var rowDay = ""; rowDay += "" + timeDay + ""; rowDay += ""; $("#Table1 tr:last").after(rowDay); } else if (rdt.indexOf(timeDay) != 0) { timeDay = rdt.substring(0, 10); dotColor = dotColor + 1; if (dotColor == 3) dotColor = 1; var rowDay = ""; rowDay += "" + timeDay + "" rowDay += ""; $("#Table1 tr:last").after(rowDay); } //左边的日期点. var left = ""; var time = rdt.substring(10, 16); time = time.replace(':', '时'); time = time + "分"; left += "

" + track.EmpFromT; left += " - " + time; //时间轴. var timeBase = ""; var imgUrl = ActionTypeStr(track.ActionType); timeBase = "" + track.ActionTypeText + ""; //内容. var doc = ""; doc = track.NDFromT + " - " + timeBase + track.ActionTypeText; var at = track.ActionType; if (at == ActionType.Forward || at == ActionType.ForwardAskfor || at == ActionType.WorkCheck || at == ActionType.Order || at == ActionType.SubFlowForward //分流节点也显示表单 || at == ActionType.FlowOver //added by liuxc,2014-12-3,正常结束结点也显示表单 || at == ActionType.Skip) //added by liuxc,2015-7-13,自动跳转的也显示表单 { //this.AddTD("表单"); var url = "../../WFRpt.htm?OID=" + track.WorkID + "&WorkID=" + track.WorkID + "&FK_Flow=" + fk_flow + "&FK_Node=" + track.NDFrom + "&DoType=View&MyPK=" + track.MyPK; url += "&PWorkID=" + gwf.PWorkID; url += "&PFlowNo=" + gwf.PFlowNo; url += "&PNodeID=" + gwf.PNodeID; url += "&Frms=" + gwf.Paras_Frms; //暂时去掉表单. //doc += " - 表单"; } if (at == ActionType.FlowOver || at == ActionType.CC || at == ActionType.UnSend) { doc += "

"; doc += "

"; } else { doc += "

到节点:" + track.NDToT + "

"; } //增加两列,到达时间、用时 added by liuxc,2014-12-4 if (idx > 1) { var toTime = tracks[idx - 1 - 1]["RDT"]; var toTimeDot = toTime.replace(/\-/g, "/"); toTimeDot = new Date(toTimeDot); //当前发生日期. var timeDot = tracks[i]["RDT"].replace(/\-/g, "/"); timeDot = new Date(timeDot); //doc += "

到达时间:" + toTime + " 用时:" + GetSpanTime(toTimeDot, timeDot) + "

"; } if ((at == ActionType.Forward || ActionType.Start) && Hide_IsOpenFrm == true ) { doc += "

查看表单

"; } // 删除信息. var tag = track.Tag; if (tag != null) tag = tag.replace("~", "'"); var msg = track.Msg; if (msg != "") doc += "" + msg + "
"; msg = msg.replace("WorkCheck@", ""); var newRow = ""; newRow = ""; newRow += "" + left + ""; newRow += ""; newRow += "" + doc + ""; newRow += ""; $("#Table1 tr:last").after(newRow); idx++; } //结束循环track. //增加等待审核的人员, 在所有的人员循环以后. if (gwls) { var isHaveNoChecker = false; for (var i = 0; i < gwls.length; i++) { var gwl = gwls[i]; if (gwl.IsPass == 1) continue; isHaveNoChecker = true; } //如果有尚未审核的人员,就输出. if (isHaveNoChecker == true) { var rowDay = ""; rowDay += "等待审批"; rowDay += ""; $("#Table1 tr:last").after(rowDay); for (var i = 0; i < gwls.length; i++) { var html = ""; var gwl = gwls[i]; if (gwl.IsPass == 1) continue; var doc = ""; doc += "审批人:"; doc += gwl.EmpName; //判断是否隐藏 if (Hide_IsRead == true) { doc += "
"; doc += "阅读状态:"; if (gwl.IsRead == "1") doc += "已阅读."; else doc += "尚未阅读."; } doc += "
"; doc += "工作到达日期:"; doc += gwl.RDT; //到达时间. var toTime = gwl.RDT; var toTimeDot = toTime.replace(/\-/g, "/"); toTimeDot = new Date(toTimeDot); //当前发生日期. timeDot = new Date(); doc += "
"; doc += "已经耗时:"; doc += GetSpanTime(toTimeDot, timeDot); doc += "
"; doc += "应完成日期:"; doc += gwl.SDT; //应该完成日期. toTime = gwl.SDT; toTimeDot = toTime.replace(/\-/g, "/"); toTimeDot = new Date(toTimeDot); //当前发生日期. timeDot = new Date(); doc += "
"; doc += "还剩余:"; if (toTime == '无') { doc += '无'; } else { doc += GetSpanTime(timeDot, toTimeDot); } var left = ""; left += "

"; left += "" + gwl.EmpName; var newRow = ""; newRow = ""; newRow += "" + left + ""; newRow += ""; newRow += "" + doc + ""; newRow += ""; $("#Table1 tr:last").after(newRow); } } } if (window.screen) { var w = screen.availWidth; var h = screen.availHeight; window.moveTo(0, 0); window.resizeTo(w, h); } } function UnSend() { mui.confirm('您确定要撤销发送吗?', function (e) { if (e.index == 1) { //加载标签页 var handler = new HttpHandler("BP.WF.HttpHandler.CCMobile_WorkOpt_OneWork"); handler.AddPara("FK_Node", fk_node); handler.AddPara("FK_Flow", fk_flow); handler.AddPara("WorkID", workid); handler.AddPara("FID", fid); var data = handler.DoMethodReturnString("TimeBase_UnSend"); if (data.indexOf('err@') == 0) { mui.alert(data); return; } var url = "../../MyFlow.htm?FK_Flow=" + fk_flow + "&WorkID=" + workid + "&t=" + Math.random(); SetHref(url); } }) } function ToFrm(ndFrom,workID,trackID) { var fk_flow = GetQueryString("FK_Flow"); var workID = GetQueryString("WorkID"); var url = GetHrefUrl(); url = url.substring(url.indexOf("?")); url = "../../MyFrm.htm" + url; var isShow = GetQueryString("IsShowUnSend"); if (isShow == null || isShow == '') isShow = "0"; url = "../../MyFrm.htm" + url + "&IsShowUnSend=" + isShow; SetHref(url); } function GetSpanTime(date1, date2) { ///计算date2-date1的时间差,返回使用“x天x小时x分x秒”形式的字符串表示 var date3 = date2.getTime() - date1.getTime(); //时间差秒 var str = ''; //计算出相差天数 var days = Math.floor(date3 / (24 * 3600 * 1000)); if (days > 0) { str += days + '天'; } //计算出小时数 var leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数 var hours = Math.floor(leave1 / (3600 * 1000)); if (hours > 0) { str += hours + '小时'; } //计算相差分钟数 var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数 var minutes = Math.floor(leave2 / (60 * 1000)); if (minutes > 0) { str += minutes + '分'; } if (str.length == 0) { var leave3 = leave2 % (60 * 1000); var seconds = Math.floor(leave3 / 1000); str += seconds + '秒'; } return str; } /**Begin - Form Controls ***************/ var ActionType = { /// /// 发起 /// Start: 0, /// /// 前进(发送) /// Forward: 1, /// /// 退回 /// Return: 2, /// /// 退回并原路返回. /// ReturnAndBackWay: 201, /// /// 移交 /// Shift: 3, /// /// 撤消移交 /// UnShift: 4, /// /// 撤消发送 /// UnSend: 5, /// /// 分流前进 /// ForwardFL: 6, /// /// 合流前进 /// ForwardHL: 7, /// /// 流程正常结束 /// FlowOver: 8, /// /// 调用起子流程 /// CallChildenFlow: 9, /// /// 启动子流程 /// StartChildenFlow: 10, /// /// 子线程前进 /// SubFlowForward: 11, /// /// 取回 /// Tackback: 12, /// /// 恢复已完成的流程 /// RebackOverFlow: 13, /// /// 强制终止流程 For lijian:2012-10-24. /// FlowOverByCoercion: 14, /// /// 挂起 /// Hungup: 15, /// /// 取消挂起 /// UnHungup: 16, /// /// 强制移交 /// ShiftByCoercion: 17, /// /// 催办 /// Press: 18, /// /// 逻辑删除流程(撤销流程) /// DeleteFlowByFlag: 19, /// /// 恢复删除流程(撤销流程) /// UnDeleteFlowByFlag: 20, /// /// 抄送 /// CC: 21, /// /// 工作审核(日志) /// WorkCheck: 22, /// /// 删除子线程 /// DeleteSubThread: 23, /// /// 请求加签 /// AskforHelp: 24, /// /// 加签向下发送 /// ForwardAskfor: 25, /// /// 自动条转的方式向下发送 /// Skip: 26, /// /// 队列发送 /// Order: 27, /// /// 协作发送 /// TeampUp: 28, /// /// 流程评论 /// FlowBBS: 29, /// /// 信息 /// Info: 100 }; function ActionTypeStr(at) { switch (at) { case ActionType.Start: return "../../Img/Action/Start.png"; case ActionType.Forward: return "../../Img/Action/Forward.png"; case ActionType.Return: return "../../Img/Action/Return.png"; case ActionType.ReturnAndBackWay: return "../../Img/Action/ReturnAndBackWay.png"; case ActionType.Shift: return "../../Img/Action/Shift.png"; case ActionType.UnShift: return "../../Img/Action/UnShift.png"; case ActionType.UnSend: return "../../Img/Action/UnSend.png"; case ActionType.ForwardFL: return "../../Img/Action/ForwardFL.png"; case ActionType.ForwardHL: return "../../Img/Action/ForwardHL.png"; case ActionType.CallChildenFlow: return "../../Img/Action/CallChildenFlow.png"; case ActionType.StartChildenFlow: return "../../Img/Action/StartChildenFlow.png"; case ActionType.SubFlowForward: return "../../Img/Action/SubFlowForward.png"; case ActionType.RebackOverFlow: return "../../Img/Action/RebackOverFlow.png"; case ActionType.FlowOverByCoercion: return "../../Img/Action/FlowOverByCoercion.png"; case ActionType.Hungup: return "../../Img/Action/Hungup.png"; case ActionType.UnHungup: return "../../Img/Action/UnHungup.png"; case ActionType.ShiftByCoercion: return "../../Img/Action/ShiftByCoercion.png"; case ActionType.Press: return "../../Img/Action/Press.png"; case ActionType.DeleteFlowByFlag: return "../../Img/Action/DeleteFlowByFlag.png"; case ActionType.UnDeleteFlowByFlag: return "../../Img/Action/UnDeleteFlowByFlag.png"; case ActionType.CC: return "../../Img/Action/CC.png"; case ActionType.WorkCheck: return "../../Img/Action/WorkCheck.png"; case ActionType.AskforHelp: return "../../Img/Action/AskforHelp.png"; case ActionType.Skip: return "../../Img/Action/Skip.png"; case ActionType.Order: return "../../Img/Action/Order.png"; case ActionType.TeampUp: return "../../Img/Action/TeampUp.png"; case ActionType.FlowBBS: return "../../Img/Action/FlowBBS.png"; case ActionType.Info: return "../../Img/Action/Info.png"; default: return "../../Img/Dot.png"; } }