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.

439 lines
18 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="/WF/Scripts/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css" />
<link href="/WF/Scripts/bootstrap/css/font-awesome.css" rel="stylesheet" />
<link href="/WF/Style/skin/css/style.css" rel="stylesheet" type="text/css" />
<link href="/WF/Style/skin/css/animate.css" rel="stylesheet" type="text/css" />
<link href="/WF/Style/skin/font/iconfont.css" rel="stylesheet" type="text/css" />
<script src="/DataUser/JSLibData/CommonShowConfig.js"></script>
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="ibox-content">
<table class="table table-striped">
<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="/WF/Comm/JScript.js" type="text/javascript"></script>
<script type="text/javascript" src="/WF/Scripts/bootstrap/js/jquery.min.js"></script>
<script type="text/javascript" src="/WF/Scripts/bootstrap/js/bootstrap.min.js"></script>
<script src="/WF/Scripts/QueryString.js" type="text/javascript"></script>
<script src="/WF/Scripts/config.js" type="text/javascript"></script>
<script src="/WF/Comm/Gener.js" type="text/javascript"></script>
<script src="/WF/Scripts/layui/layui/lay/modules/layer.js" type="text/javascript"></script>
<!-- 处理多语言 -->
<!--<script src="/WF/Data/lang/load.js" type="text/javascript"></script>-->
<!--路径问题这里直接引入zh-cn.js-->
<script src="/WF/Data/lang/js/zh-cn.js" type="text/javascript"></script>
<script src="/WF/Data/lang/lang.js" type="text/javascript"></script>
<script type="text/javascript">
var webUser = null;
//页面启动函数.
$(function () {
//Hide_IsTodoList:是否隐藏该条信息,CommonShowConfig.js中定义
if ("undefined" == typeof Hide_IsTodoList) {
var Hide_IsTodoList = true;
}
if (webUser == null)
webUser = new WebUser();
if (webUser.No == null)
return;
//授权的情况下.
if (webUser.IsAuthorize == "1") {
SetHref("AuthorTodolist.htm");
return;
}
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.Cloud.HttpHandler.App");
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 == null)
paras = "";
var mystrs = "";
// AtPara atap = new AtPara(paras);
//if (paras.c)
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 (paras.indexOf("&IsCC=1") >= 0
|| paras.indexOf("&IsAuto=1") >= 0) {
var batchUrl = './WFRpt.htm?FK_Flow=' + flowNo + '&FK_Node=' + nodeID + '&WorkID=' + workID + '&FID=' + fid;
url = "<a href='#' onclick='WinOpenFull(\"" + batchUrl + "\")'>" + data[i].Title + "</a>";
} else {
if (isRead == 0)
url = "<a href=\"javascript:WinOpenIt('../WF/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='/WF/Img/Mail_UnRead.png' />" + title + "</a>";
else
url = "<a href=\"javascript:WinOpenIt('../WF/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='/WF/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 (date.getTime() > edt.getTime() && 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 < 2 * 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,work.Auther) + "</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));
// if (webUser.IsAuthorize == "0" && Hide_IsTodoList == true)
// $("#Table2").append(", <a href='AuthorList.htm' >查看授权待办</a>");
var div = window.parent.document.getElementById("Todolist_EmpWorks");
if (div != null) {
div.innerHTML = realCount;
}
}
function GetState(wfState, auther) {
switch (parseInt(wfState)) {
case 1:
return "<font color=#bc65e0>" + window.lang.caogao + "</font>";
case 2:
if (auther != null && auther != undefined && auther != "")
return "<font color=orange>授权</font>";
return "<font color=green>" + window.lang.daiban + "</font>";
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 hour = date.getHours();
if (hour >= 1 && hour <= 9) {
hour = "0" + hour;
}
var minute = date.getMinutes();
if (minute >= 1 && minute <= 9) {
minute = "0" + minute;
}
//当前时间=年份-月份-日 小时:分钟
var cdt = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + hour + seperator2 + minute;
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;
}
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 WinOpenFull(url) {
layer.open({
skin: 'layer-class',
type: 2,
title: '待办',
area: ['96%', '90%'],
content: url
});
}
function WinOpenIt(url) {
var self = window.open(url);
var loop = setInterval(function () {
if (self.closed) {
clearInterval(loop);
InitPage();
InitHomeCount();
}
}, 1);
}
</script>
</body>
</html>