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.

525 lines
20 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" />
<style type="text/css">
.pagination
{
margin: 8px 0;
display: block;
font-size: 13px;
}
.pagination .controls
{
float: left;
border: 0;
padding: 7px 0 0 15px;
color: #777;
}
.search-padding {
padding-bottom: 1px;
}
.row {
margin-right: -15px;
margin-left: 0px;
}
.table {
width: 100%;
max-width: 100%;
margin-bottom: 0px;
}
</style>
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="ibox-content">
<div class="row search-padding">
<div class="col-md-4 col-sm-4 pull-left">
<div class="form-inline">
<div class="form-group">
<input type='text' placeholder="请输入标题关键词" id='TB_Key' class="form-control" style=" width:300px;" />
</div>
<button class="btn btn-success" type="button" onclick="javascript:SearchKey();"><i class="fa fa-search"></i> 查询</button>
</div>
</div>
</div>
<table class="table table-striped">
<thead>
<tr id="tablet">
</tr>
</thead>
<tbody id="Table1"></tbody>
</table>
<!-- 显示分页信息 -->
<div class="row" style="text-align: left;">
<ul class="pagination" id="page_nav">
</ul>
<ul class="pagination controls" id="page_info">
</ul>
<div style="clear: both;"></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/bootstrap/bootstrap-paginator/js/bootstrap-paginator.js" type="text/javascript"></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 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) {
window.open(url);
return;
layer.open({
skin: 'layer-class',
type: 2,
title: '待办',
area: ['96%', '90%'],
content: url
});
}
var pageCount = 1;//总页数
var pageSize = 10;//显示行数
var total = 0;//总条数
var pageIdx = 1;//当前页
var pageStartN = 1; //开始行
var realCount = 0; //页面的实际条数
var groupNames = [];
//页面启动函数.
$(function () {
InitPage();
Paginator(pageCount, pageIdx);
});
function GetRuningData(pageIdex) {
//获取参数FlowNos为空时显示所有的待办否则显示参数中的流程
var flowNos = GetQueryString("FlowNos");
if (flowNos == null || flowNos == "" || flowNos == undefined)
flowNos = null;
//查询
var TB_Key = $("#TB_Key").val();
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 sourceData;
//获取在途总的查询信息
realCount = data.length;
if (flowNos != null) {
realCount = 0;
for (var i = 0; i < data.length; i++) {
if (flowNos.indexOf(data[i].FK_Flow) != -1)
realCount++;
}
}
//1.流程编号和查询组件为空时
if (flowNos == null && TB_Key == "")
sourceData = data;
//2.流程编号不为空和查询组件为空时
if (flowNos != null && TB_Key == "")
sourceData = $.grep(data, function (n, i) {
return (flowNos.indexOf(data[i].FK_Flow) != -1);
});
//3.流程编号为空和查询组件不为空时
if (flowNos == null && TB_Key != "")
sourceData = $.grep(data, function (n, i) {
return (data[i].Title.indexOf(TB_Key) != -1);
});
//4.流程编号为不空和查询组件不为空时
if (flowNos != null && TB_Key != "")
sourceData = $.grep(data, function (n, i) {
return (flowNos.indexOf(data[i].FK_Flow) != -1) && (data[i].Title.indexOf(TB_Key) != -1);
});
//生成分组的字符串.
//设置表头.
var groupBy = GetQueryString("GroupBy");
if (groupBy == "" || groupBy == null) groupBy = "ByFlow";
var str = "";
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 + "@";
}
}
}
groupNames = str.split("@"); //生成数组.
//总数
total = sourceData.length;
//获取分页的数据信息
data = [];
pageStartN = (pageIdex - 1) < 0 ? 1 : (pageIdx - 1) * pageSize;
pageEndN = pageIdx * pageSize > total ? total : pageIdx * pageSize;
for (var i = pageStartN; i < pageEndN; i++) {
data.push(sourceData[i]);
}
//总页数
if (total % pageSize != 0)
pageCount = parseInt(total / pageSize) + 1;
else
pageCount = parseInt(total / pageSize);
if (pageCount == 0) pageCount = 1;
return data;
}
//初始化数据.
var showGroup = "";
function InitPage() {
var flowNos = GetQueryString("FlowNos");
//获取当前时间
var cdt = getNowFormatDate();
var timeKey = Math.random();
var data = GetRuningData(pageIdx);
//设置表头.
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>标题</th>";
if (groupBy == "ByNode") {
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByFlow' >流程</th>";
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByStarter' >发起人</th>";
}
if (groupBy == "ByFlow") {
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByNode' >节点</th>";
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByStarter' >发起人</th>";
}
if (groupBy == "ByStarter") {
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByFlow' >流程</th>";
tablet += "<th><a href='?FK_Node=" + nodeIDt + "&GroupBy=ByNode' >节点</th>";
}
tablet += "<th>发起日期</th>";
tablet += "<th>到达</th>";
tablet += "<th>期限</th>";
tablet += "<th>状态</th>";
tablet += "<th>类型</th>";
$("#tablet").html(tablet);
//生成分组的字符串.
var str = "";
var num = pageStartN;
var is1 = false;
$('#Table1').html("");
//循环数组.
for (var idx = 0; idx < groupNames.length; idx++) {
var showRealCount = 0;
var listbox = '';
var groupName = groupNames[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;
num++;
showRealCount++;
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;
}
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);
//判断流程是否逾期
if (cdt > work.SDT && work.WFState == 2 && entStr != "01" && work.RDT != work.SDT && paras.indexOf("&IsCC=1") == -1) {
listbox += "<td><font color=red>逾期</font></td>";
}
else {
listbox += "<td><font color=green>正常</font></td>";
}
listbox += "<td>" + GetState(work.WFState) + "</td>";
listbox += "</tr>";
}
if (showRealCount != 0)
$('#Table1').append(listbox);
}
var div = window.parent.document.getElementById("Todolist_EmpWorks");
if (div != null) {
div.innerHTML = realCount;
}
}
//查询
function SearchKey() {
pageIdex = 1;
InitPage();
Paginator(pageCount, pageIdx);
}
//分页功能
function Paginator(pageCount, currentPage) {
var pageCount = pageCount; //取到pageCount的值(把返回数据转成object类型)
var options = {
bootstrapMajorVersion: 3, //版本
currentPage: currentPage, //当前页数
totalPages: pageCount, //总页数
shouldShowPage: true, //是否显示该按钮
itemTexts: function (type, page, current) {
switch (type) {
case "first":
return "首页";
case "prev":
return "上一页";
case "next":
return "下一页";
case "last":
return "末页";
case "page":
return page;
}
}, //点击事件用于通过Ajax来刷新整个list列表
onPageClicked: function (event, originalEvent, type, page) {
pageIdx = page;
InitPage(page);
$('#page_info').html("").append("<li class='disabled controls'>当前第" + pageIdx + "页,总共" + pageCount +
"页,总共" + total + "条记录。</li>");
}
};
$('#page_nav').bootstrapPaginator(options);
$('#page_info').html("").append("<li class='disabled controls'>当前第" + pageIdx + "页,总共" + pageCount +
"页,总共" + total + "条记录。</li>");
}
function GetState(wfState) {
switch (parseInt(wfState)) {
case 1:
return "草稿";
case 2:
return "待办";
break;
case 3: //已完成.
break;
case 4:
return "挂起";
case 5:
return "<font color=red>退回</font>";
case 6:
return "转发";
case 7:
return "删除";
case 8:
return "加签";
case 11:
return "加签回复";
default:
return "其他";
}
}
//获取当前时间
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;
}
</script>
</body>
</html>