You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

412 lines
17 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>待办</title>
<link href="Scripts/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css" />
<link href="Scripts/bootstrap/css/font-awesome.css" rel="stylesheet" />
<link href="Style/skin/css/style.css" rel="stylesheet" type="text/css" />
<link href="Style/skin/css/animate.css" rel="stylesheet" type="text/css" />
<link href="Style/skin/font/iconfont.css" rel="stylesheet" type="text/css" />
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="ibox-content">
<table class="table table-striped">
<caption>
<div id="cap">
</div>
</caption>
<thead>
<tr id="tablet">
</tr>
</thead>
<tbody id="Table1">
</tbody>
</table>
<div class="row">
<div class="col-sm-12">
<span id="Table2"></span>
</div>
</div>
</div>
</div>
<script language="JavaScript" src="Comm/JScript.js" type="text/javascript"></script>
<script type="text/javascript" src="Scripts/bootstrap/js/jquery.min.js"></script>
<script type="text/javascript" src="Scripts/bootstrap/js/bootstrap.min.js"></script>
<script src="Scripts/QueryString.js" type="text/javascript"></script>
<script src="Scripts/config.js" type="text/javascript"></script>
<script src="Comm/Gener.js" type="text/javascript"></script>
<script src="Scripts/layui/layui/lay/modules/layer.js" type="text/javascript">></script>
<!-- 处理多语言 -->
<script src="Data/lang/load.js" type="text/javascript"></script>
<script src="Data/lang/js/zh-cn.js"></script>
<script src="Data/lang/lang.js" type="text/javascript"></script>
<script type="text/javascript">
function GroupBarClick(groupName) {
var alt = document.getElementById('Img' + groupName).alert;
var sta = 'block';
if (alt == 'Max') {
sta = 'block';
alt = 'Min';
classname = 'fa fa-minus-square';
} else {
sta = 'none';
alt = 'Max';
classname = 'fa fa-plus-square';
}
document.getElementById('Img' + groupName).className = classname;
document.getElementById('Img' + groupName).alert = alt;
var i = 0;
for (i = 0; i <= 600; i++) {
var row = document.getElementById(groupName + i);
if (row == null || row == undefined || row.style == null)
continue;
if (sta == 'block') {
row.style.display = '';
} else {
row.style.display = sta;
}
}
}
function WinOpenIt(url) {
var self = window.open(url);
var loop = setInterval(function () {
if (self.closed) {
clearInterval(loop);
InitPage();
InitHomeCount();
}
}, 1);
}
//页面启动函数.
$(function () {
var webUser = new WebUser();
if (webUser.IsAuthorize == "0") {
//alert('当前非授权登录状态,无法处理待办。');
SetHref('AuthorList.htm');
return;
}
$("#cap").html("<font color=red>" + webUser.Name + "</font>授权给您的代办");
InitPage();
});
//初始化数据.
function InitPage() {
document.title = window.lang.daiban;
//获取参数FlowNos为空时显示所有的待办否则显示参数中的流程
var flowNos = GetQueryString("FlowNos");
//获取当前时间
var cdt = getNowFormatDate();
var timeKey = Math.random();
var handler = new HttpHandler("BP.WF.HttpHandler.WF");
handler.AddUrlData();
var data = handler.DoMethodReturnString("Todolist_Init");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
data = cceval('(' + data + ')');
//设置表头.
var groupBy = GetQueryString("GroupBy");
if (groupBy == "" || groupBy == null) groupBy = "ByFlow";
var nodeIDt = GetQueryString("FK_Node");
var tablet = "";
tablet += "<th style='width:40px;'>#</th>";
// title += "<th >优先级</th>";
tablet += "<th>" + window.lang.biaoti + "</th>";
if (groupBy == "ByNode") {
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByFlow' >" + window.lang.liucheng + "</th>";
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByStarter' >" + window.lang.fqr + "</th>";
}
if (groupBy == "ByFlow") {
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByNode' >" + window.lang.jiedian + "</th>";
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByStarter' >" + window.lang.fqr + "</th>";
}
if (groupBy == "ByStarter") {
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByFlow' >" + window.lang.liucheng + "</th>";
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByNode' >" + window.lang.jiedian + "</th>";
}
tablet += "<th>" + window.lang.fqrq + "</th>";
tablet += "<th>" + window.lang.sdrq + "</th>";
tablet += "<th>" + window.lang.qixian + "</th>";
tablet += "<th>" + window.lang.zhuangtai + "</th>";
tablet += "<th>" + window.lang.leixing + "<th>";
$("#tablet").html(tablet);
//生成分组的字符串.
var str = "";
var listbox = '';
for (var i = 0; i < data.length; i++) {
if (groupBy == "ByNode" || groupBy == "NodeName") {
if (str.indexOf('@' + data[i].NodeName + "@") == -1) {
if (flowNos == null || (flowNos != null && flowNos.indexOf(data[i].FK_Flow) != -1))
str += "@" + data[i].NodeName + "@";
}
}
if (groupBy == "ByFlow") {
if (str.indexOf('@' + data[i].FlowName + "@") == -1) {
if (flowNos == null || (flowNos != null && flowNos.indexOf(data[i].FK_Flow) != -1))
str += "@" + data[i].FlowName + "@";
}
}
if (groupBy == "ByStarter") {
if (str.indexOf('@' + data[i].StarterName + "@") == -1) {
if (flowNos == null || (flowNos != null && flowNos.indexOf(data[i].FK_Flow) != -1))
str += "@" + data[i].StarterName + "@";
}
}
}
var strs = str.split("@"); //生成数组.
var num = 0;
var is1 = false;
var realCount = 0;
//循环数组.
for (var idx = 0; idx < strs.length; idx++) {
var groupName = strs[idx];
if (groupName == "" || groupName == null)
continue;
listbox += "<tr onclick=\"GroupBarClick('" + groupName + "')\" > <th colspan=9 class='table-title'> <i class='fa fa-minus-square' alert='Min' id='Img" + groupName + "'></i><span>" + groupName + "</span></th> </tr>";
//增加处理.
for (var i = 0; i < data.length; i++) {
var work = data[i];
if (groupBy == "ByNode" || groupBy == "NodeName") {
if (work.NodeName != groupName) {
continue;
}
} else if (groupBy == "ByFlow") {
if (work.FlowName != groupName) {
continue;
}
} else if (groupBy == "ByStarter") {
if (work.StarterName != groupName) {
continue;
}
} else {
continue;
}
//当参数flowNos不为空时流程编码存在于flowNos时显示
if (flowNos != null && flowNos.indexOf(data[i].FK_Flow) == -1)
continue;
realCount++;
var newRow = "";
var title = work.Title;
var isRead = work.IsRead;
var flowNo = work.FK_Flow;
var flowName = work.FlowName;
var nodeName = work.NodeName;
var starterName = work.StarterName;
var pri = work.PRI;
var nodeID = work.FK_Node;
var fid = work.FID;
var workID = work.WorkID;
var pWorkID = work.PWorkID;
var paras = work.AtPara;
if (paras) {
paras = paras.replace("'", "\\'");
while (true) {
paras = paras.replace('@', '&');
if (paras.indexOf('@') < 0) {
break;
}
}
paras = "1" + paras;
}
num++;
if (is1 == true) {
listbox += "<tr id='" + groupName + num + "' >";
is1 = false;
}
else {
listbox += "<tr id='" + groupName + num + "' >";
is1 = true;
}
listbox += "<td>" + num + "</td>"; //序号.
var url = "";
if (isRead == 0)
url = "<a href=\"javascript:WinOpenIt('MyFlow.htm?FK_Flow=" + flowNo + "&PWorkID=" + pWorkID + "&FK_Node=" + nodeID + "&FID=" + fid + "&WorkID=" + workID + "&IsRead=0&T=" + timeKey + "&Paras=" + paras + "');\" ><img class=Icon align='middle' src='Img/Mail_UnRead.png' />" + title + "</a>";
else
url = "<a href=\"javascript:WinOpenIt('MyFlow.htm?FK_Flow=" + flowNo + "&PWorkID=" + pWorkID + "&FK_Node=" + nodeID + "&FID=" + fid + "&WorkID=" + workID + "&IsRead=0&T=" + timeKey + "&Paras=" + paras + "');\" ><img class=Icon align='middle' src='Img/Mail_Read.png' />" + title + "</a>";
listbox += "<td>" + url + "</td>"; //标题
if (groupBy == "ByNode" || groupBy == "NodeName") {
listbox += "<td>" + flowName + "</td>"; //流程类别
listbox += "<td>" + starterName + "</td>"; //发起人
} else if (groupBy == "ByFlow") {
listbox += "<td>" + nodeName + "</td>"; //节点名称
listbox += "<td>" + starterName + "</td>"; //发起人
} else if (groupBy == "ByStarter") {
listbox += "<td>" + flowName + "</td>"; //流程类别
listbox += "<td>" + nodeName + "</td>"; //节点名称
}
listbox += "<td>" + work.RDT + "</td>"; //发起时间
listbox += "<td>" + work.ADT + "</td>"; //接受时间
listbox += "<td>" + work.SDT + "</td>"; //应完成时间
//为天业解决开始节点撤销回来后,就是逾期状态.
var len = nodeID.toString().length;
var entStr = nodeID.toString().substr(len - 2);
//判断期限是否少于三天,加警告颜色
var date = new Date();
var edt = work.SDT.replace(/\-/g, "/");
edt = new Date(Date.parse(edt.replace(/-/g, "/")));
passTime = GetSpanTime(date, edt);
//判断流程是否逾期
if (cdt > work.SDT && work.WFState == 2 && entStr != "01" && work.RDT != work.SDT && paras.indexOf("&IsCC=1") == -1) {
listbox += "<td><font color=red>" + window.lang.yuqi + "</font></td>";
}
else {
if (passTime >= 0 && passTime < 3 * 24 * 3600 * 1000) {
listbox += "<td><font color='#ffac38'>" + window.lang.jinggao + "</font></td>";
} else {
listbox += "<td><font color=green>" + window.lang.zhengchang + "</font></td>";
}
}
listbox += "<td>" + GetState(work.WFState) + "</td>";
//备注
//newRow += "<td width='100'><div style='width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;' title='" + work.FlowNote + "'>" + work.FlowNote + "</div></td>";
listbox += "</tr>";
}
}
// $("#Table1").after("<br><br><div style='float:left;' >合计:" + data.length + "条</div> <div style='float:right;' >[<a href='TaskPoolApply.htm' >共享任务池待办</a>][<a href='TodolistOfAuth.htm' >查看授权人的待办工作</a>]</div>");
$('#Table1').html(listbox);
$("#Table2").html(window.lang.heji + ": " + realCount + " " + (realCount > 1 ? window.lang.records : window.lang.record));
$('#Table2').append(" - <a href='javascript:BackToMyTodolist();'>返回我的待办</a>");
var div = window.parent.document.getElementById("Todolist_EmpWorks");
if (div != null) {
div.innerHTML = realCount;
}
}
function ExitAuth() {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Comm");
var data = handler.DoMethodReturnString("WebUser_BackToAuthorize");
SetHref('AuthorList.htm');
}
function BackToMyTodolist() {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Comm");
var data = handler.DoMethodReturnString("WebUser_BackToAuthorize");
SetHref('Todolist.htm');
}
function GetState(wfState) {
//alert(wfState);
switch (wfState) {
case 1:
return window.lang.caogao;
case 2:
return window.lang.daiban;
break;
case 3: //已完成.
return window.lang.ywc;
break;
case 4:
return window.lang.guaqi;
case 5:
return "<font color=red>" + window.lang.tuihui + "</font>";
case 6:
return window.lang.zhuanfa;
case 7:
return window.lang.shanchu;
case 8:
return window.lang.jiaqian;
case 11:
return window.lang.jqhf;
default:
return window.lang.other;
}
}
//获取当前时间
function getNowFormatDate() {
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
//当前时间=年份-月份-日 小时:分钟
var cdt = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + date.getHours() + seperator2 + date.getMinutes();
return cdt;
}
function GetSpanTime(date1, date2) {
///<summary>计算date2-date1的时间差返回使用“x天x小时x分x秒”形式的字符串表示</summary>
var date3 = date2.getTime() - date1.getTime(); //时间差秒.
// if (date1.getTime() > date2.getTime())
// date3 = date1.getTime() - date2.getTime();
return date3;
}
</script>
</body>
</html>