关键事项、邮件管理、任务管理
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
<TreeNode id="6769098A-53D7-4585-87CC-2DADBCBC2C74" Text="类似项目施工经验总结清单" NavigateUrl="CQMS/QualityPlanning/ConExperienceSummary.aspx"></TreeNode>
|
||||
</TreeNode>
|
||||
<TreeNode id="3B322232-38A1-4291-9832-CD4A01C2A975" Text="检验试验计划/单位分部分项工程划分" NavigateUrl=""><TreeNode id="1025D812-2325-4FE9-A1E9-D53F2CAACDC6" Text="现场控制点裁剪(新)" NavigateUrl="CQMS/WBS/Control/PointCropping.aspx"></TreeNode>
|
||||
<TreeNode id="0E1CCE60-6F9D-419D-B763-E9E0AF5621E6" Text="单位分部分项工程划分、裁剪" NavigateUrl=""><TreeNode id="17E206A1-E06B-40C0-8DCB-E3AAA2E3B339" Text="分部分项工程数据库" NavigateUrl="CQMS/WBS/Control/DivisionSubProjectsNew.aspx"></TreeNode>
|
||||
<TreeNode id="0E1CCE60-6F9D-419D-B763-E9E0AF5621E6" Text="单位分部分项工程划分、裁剪" NavigateUrl=""><TreeNode id="17E206A1-E06B-40C0-8DCB-E3AAA2E3B339" Text="分部分项工程数据库" NavigateUrl="CQMS/WBS/Control/DivisionSubProjects.aspx"></TreeNode>
|
||||
<TreeNode id="FB94A120-921B-4AAB-B54F-EC11B6F561FD" Text="单位分部分项工程划分、裁剪" NavigateUrl="CQMS/WBS/Control/DivisionDivideAndCrop.aspx"></TreeNode>
|
||||
<TreeNode id="BA250432-492B-49A3-8BB6-D04BF74D2EDD" Text="单位分部分项工程划分表" NavigateUrl="CQMS/WBS/Control/DivisionDivideList.aspx"></TreeNode>
|
||||
</TreeNode>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Tree>
|
||||
<TreeNode id="858E83E9-ADE5-452E-BD65-82D8DFF872C0" Text="分部、工作项及费用清单裁剪" NavigateUrl="JDGL/WBS/WBSSetAudit.aspx">
|
||||
<TreeNode id="858E83E9-ADE5-452E-BD65-82D8DFF872C0" Text="工作包及检测点" NavigateUrl="JDGL/WBS/WBSSetAudit.aspx">
|
||||
</TreeNode>
|
||||
<TreeNode id="82E1EB3B-3589-4C32-9C20-40125CE6EAB4" Text="设备材料分类" NavigateUrl=""><TreeNode id="F2BC1293-8639-4BD6-8759-648BCF6346E9" Text="设备材料大类" NavigateUrl="JDGL/WBS/EquipmentMaterialBigType.aspx"></TreeNode>
|
||||
<TreeNode id="D00B3C53-2972-4D24-B88F-B38880D4A24F" Text="设备材料分类" NavigateUrl="JDGL/WBS/EquipmentMaterialType.aspx"></TreeNode>
|
||||
@@ -22,4 +22,6 @@
|
||||
<TreeNode id="7EC1FBAF-BEC9-46CD-9E3B-0D0093B4E1C2" Text="仪表完成情况" NavigateUrl="JDGL/Check/MeterCompletion.aspx"></TreeNode>
|
||||
<TreeNode id="C7037A5D-D8A6-4C1C-A5B8-2083C31C0A7B" Text="全厂地下管网完成情况" NavigateUrl="JDGL/Check/UndergroundPipeCompletion.aspx"></TreeNode>
|
||||
</TreeNode>
|
||||
<TreeNode id="1FBC729D-0A8E-423C-B133-B64583BF9611" Text="进度软件(新)" NavigateUrl=""><TreeNode id="368DB90C-8A47-44F7-A69A-D2D60A6E338C" Text="费用项裁剪" NavigateUrl="JDGL/Progress/WbsManager.aspx"></TreeNode>
|
||||
</TreeNode>
|
||||
</Tree>
|
||||
@@ -1,8 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Tree>
|
||||
<TreeNode id="168A94C7-E37D-4B9C-8684-51DF4F8C5134" Text="关键事项(内部)" NavigateUrl="">
|
||||
<TreeNode id="4A9E60ED-24FF-4410-B3B7-2A5079615A78" Text="待我处理" NavigateUrl="PZHGL/GJSX/GJSXList.aspx?classify=1">
|
||||
<TreeNode id="0BEA2126-7A48-40EB-8E21-99148E91A22B" Text="我创建的" NavigateUrl="PZHGL/GJSX/GJSXList.aspx?classify=0">
|
||||
</TreeNode>
|
||||
<TreeNode id="4A9E60ED-24FF-4410-B3B7-2A5079615A78" Text="待我处理" NavigateUrl="PZHGL/GJSX/GJSXList.aspx?classify=1"></TreeNode>
|
||||
<TreeNode id="BEF7850D-1BA5-45F9-BD40-E52F6D813E7C" Text="我已处理" NavigateUrl="PZHGL/GJSX/GJSXList.aspx?classify=2"></TreeNode>
|
||||
<TreeNode id="3C129205-F6A9-480D-B36C-E35DED5D7CEC" Text="我参与的" NavigateUrl="PZHGL/GJSX/GJSXList.aspx?classify=3"></TreeNode>
|
||||
</TreeNode>
|
||||
|
||||
@@ -6,7 +6,4 @@
|
||||
<TreeNode id="C6EF06E5-9019-4583-8122-EA94FCC545C6" Text="员工总结" NavigateUrl=""></TreeNode>
|
||||
<TreeNode id="AAF841AA-2EE8-4FEC-B1FB-B978736C6E1F" Text="员工责任书" NavigateUrl="Personal/PersonDuty.aspx"></TreeNode>
|
||||
<TreeNode id="CB373458-30B0-4850-ABFF-B38D40A04D43" Text="员工绩效考核结果" NavigateUrl="Personal/PersonCheckInfo.aspx"></TreeNode>
|
||||
<TreeNode id="522EAECC-3D40-4804-A066-A43BA8F6BFC1" Text="员工出差记录" NavigateUrl="Personal/BusinessTrip.aspx"></TreeNode>
|
||||
<TreeNode id="16229932-671B-4E04-BB61-A5C7DE4CE47F" Text="员工开车绩效记录" NavigateUrl="Personal/TestRunPerformance.aspx"></TreeNode>
|
||||
<TreeNode id="F0792B77-AEE4-4834-82C2-E5B75D0B0AB7" Text="开车月技术总结" NavigateUrl="Personal/TestRunMonthSummary.aspx"></TreeNode>
|
||||
</Tree>
|
||||
@@ -22,7 +22,8 @@
|
||||
<TreeNode id="179F286B-6DF8-414E-947F-82267076D4C8" Text="施工方案类型" NavigateUrl="BaseInfo/SolutionTempleteType.aspx"></TreeNode>
|
||||
<TreeNode id="2181FB42-22F2-4342-B604-96F5770FE892" Text="分部分项工程定义" NavigateUrl="BaseInfo/SpecialSchemeType.aspx"></TreeNode>
|
||||
<TreeNode id="D95CA72C-182C-4718-92A4-3F665E0FB660" Text="项目亮点类型定义" NavigateUrl="BaseInfo/PictureType.aspx"></TreeNode>
|
||||
<TreeNode id="3044D68E-5018-4B57-BFC4-FBE4BCCA8B8B" Text="问题类别定义" NavigateUrl="BaseInfo/QuestionType.aspx"></TreeNode>
|
||||
<TreeNode id="3044D68E-5018-4B57-BFC4-FBE4BCCA8B8B" Text="紧急程度定义" NavigateUrl="BaseInfo/QuestionType.aspx"></TreeNode>
|
||||
<TreeNode id="C7E69F5F-04A8-41F9-8EA1-C41B13248421" Text="关键事项类别定义" NavigateUrl="BaseInfo/GJSXType.aspx"></TreeNode>
|
||||
<TreeNode id="F0DF2F2B-7C12-4A0F-B7D4-0B00BADE1D64" Text="文档类别定义" NavigateUrl="BaseInfo/DocType.aspx"></TreeNode>
|
||||
<TreeNode id="D0850615-BF32-4CFA-84CA-EEA261676EA8" Text="移交专业设置" NavigateUrl="BaseInfo/TransferMajor.aspx"></TreeNode>
|
||||
</TreeNode>
|
||||
@@ -64,6 +65,8 @@
|
||||
</TreeNode>
|
||||
<TreeNode id="24A40837-0756-49B0-8B3C-EFB8A9879336" Text="合同设置" NavigateUrl=""><TreeNode id="E40C8FCE-3530-47D6-85EB-5C7E7E0A89FC" Text="施工分包方式定义" NavigateUrl=""></TreeNode>
|
||||
</TreeNode>
|
||||
<TreeNode id="88E597DD-D725-4991-8253-22C2626233D0" Text="邮箱管理" NavigateUrl=""><TreeNode id="32009B4F-3802-4C2F-824B-DBAA62876E7C" Text="邮箱配置" NavigateUrl="Email_Send/Email_Pop_Edit.aspx"></TreeNode>
|
||||
</TreeNode>
|
||||
</TreeNode>
|
||||
<TreeNode id="75AA6177-8AAD-4AA4-BC4E-3883FB095A65" Text="项目设置" NavigateUrl=""><TreeNode id="B830399C-CA36-4C23-A170-21E556D052DD" Text="项目成立" NavigateUrl="ProjectData/ProjectSet.aspx"></TreeNode>
|
||||
</TreeNode>
|
||||
|
||||
@@ -69,9 +69,11 @@
|
||||
<TreeNode id="0217CE50-3ABB-44F8-A38A-C9792C436639" Text="试车管理" NavigateUrl=""><TreeNode id="E3E38073-1DF4-4C02-AFC0-5C93EE7C23A8" Text="系统划分" NavigateUrl="TestRun/TestRunManage/DeviceRun.aspx"></TreeNode>
|
||||
<TreeNode id="4B964B32-D5CC-48A2-8750-48BC4460C264" Text="工作包设置" NavigateUrl="TestRun/TestRunManage/SetWorkPackage.aspx"></TreeNode>
|
||||
<TreeNode id="B6EE8E3B-77E2-416E-8985-3C78A2169B89" Text="工作包裁剪" NavigateUrl="TestRun/TestRunManage/SubSysWorkPackage.aspx"></TreeNode>
|
||||
<TreeNode id="AF2B0CAD-DE15-4F15-A5EE-C8FB558D00C8" Text="检查项分组信息" NavigateUrl="TestRun/TestRunManage/TemplateItemGroup.aspx"></TreeNode>
|
||||
<TreeNode id="545AACE6-34BE-4BAA-A495-B73198F1BDE2" Text="检查表模板" NavigateUrl="TestRun/TestRunManage/InspectTemplate.aspx"></TreeNode>
|
||||
<TreeNode id="086DBD12-5649-4330-807A-44ABB257495F" Text="联动试车管理" NavigateUrl="TestRun/TestRunManage/SubInspectTerm.aspx"></TreeNode>
|
||||
<TreeNode id="4041089F-5CC2-4070-9556-7DAB83CF6292" Text="检查表尾项管理" NavigateUrl="TestRun/TestRunManage/InspectTailTermList.aspx"></TreeNode>
|
||||
<TreeNode id="A593B611-82C1-40D8-BB6A-DD025DB62F8C" Text="联动试车确认" NavigateUrl="TestRun/TestRunManage/SubWorkInspect.aspx"></TreeNode>
|
||||
<TreeNode id="2232ED9A-EA3C-4CB5-A53C-D96D3F5E0527" Text="尾项处理" NavigateUrl="TestRun/TestRunManage/TailTermHandleList.aspx"></TreeNode>
|
||||
<TreeNode id="9489BD6A-1A95-43BC-85C0-A65751C2C85E" Text="尾项审核" NavigateUrl="TestRun/TestRunManage/TailTermApproveList.aspx"></TreeNode>
|
||||
<TreeNode id="26F8468D-4358-4E2A-895D-8720A6F1FA89" Text="检查表会签" NavigateUrl="TestRun/TestRunManage/InspectWanderAboutList.aspx"></TreeNode>
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
<TreeNode id="ECDD89AC-1E16-4D82-B3BE-5D62F31B7A14" Text="化工行业能源节约与生态环境保护汇总表" NavigateUrl="ZHGL/Environmental/ChemicalReport.aspx"></TreeNode>
|
||||
<TreeNode id="7652D239-1897-4886-8DF2-B71E3B060D21" Text="中央企业节能环保产业企业基本情况和经营情况报表" NavigateUrl="ZHGL/Environmental/OperationReport.aspx"></TreeNode>
|
||||
<TreeNode id="30579BFE-AB4B-49A7-A73D-B7CE902A8B69" Text="中央企业节能环保产业企业生产和服务业务情况报表" NavigateUrl="ZHGL/Environmental/EnergyReport.aspx"></TreeNode>
|
||||
<TreeNode id="CB76394B-BDEB-4F45-9D19-F38612DC6591" Text="安全生产治本攻坚三年行动工作台账" NavigateUrl="ZHGL/Information/ActionWorkLedger.aspx"></TreeNode>
|
||||
<TreeNode id="C48087A8-4C9F-485D-B0A4-C85E112BA705" Text="安全生产管理评价工作调度台账" NavigateUrl="ZHGL/Information/SafetyProductionEvaluation.aspx"></TreeNode>
|
||||
<TreeNode id="CB76394B-BDEB-4F45-9D19-F38612DC6591" Text="中央企业安全生产治本攻坚三年行动工作台账" NavigateUrl="ZHGL/Information/ActionWorkLedger.aspx"></TreeNode>
|
||||
<TreeNode id="C48087A8-4C9F-485D-B0A4-C85E112BA705" Text="中央企业安全生产管理评价工作调度台账" NavigateUrl="ZHGL/Information/SafetyProductionEvaluation.aspx"></TreeNode>
|
||||
</TreeNode>
|
||||
<TreeNode id="C0F4A4A5-D5D3-4952-9A90-9B27F5FA9DFA" Text="安全信息分析" NavigateUrl=""><TreeNode id="598568A0-A338-499F-888C-1B73665837F9" Text="人工时费用分析" NavigateUrl="ZHGL/Information/AnalyseWorkTimeCost.aspx"></TreeNode>
|
||||
<TreeNode id="8396C9E2-3376-4144-978A-CC6041EC6C6A" Text="安全事故分析" NavigateUrl="ZHGL/Information/AnalyseSafeAccident.aspx"></TreeNode>
|
||||
@@ -89,7 +89,5 @@
|
||||
<TreeNode id="EA413D2A-8D29-4DE2-932D-8511BB7F6CB2" Text="各项目巡查汇总" NavigateUrl="ZHGL/InspectionSummary/InspectionSummary.aspx"></TreeNode>
|
||||
<TreeNode id="F2133BD6-C786-407A-AD6F-3EEF613229A8" Text="施工管理绩效数据" NavigateUrl="ZHGL/Performance/PerformanceAllData.aspx"></TreeNode>
|
||||
<TreeNode id="53D8CED2-9AA7-43EA-B27D-EA10A06DF713" Text="开车人员绩效管理" NavigateUrl=""><TreeNode id="383290E0-60AE-4D16-8B5E-3899B85EC2ED" Text="开车绩效评分标准" NavigateUrl="ZHGL/TestRunPerformance/TestRunPerformanceStandard.aspx"></TreeNode>
|
||||
<TreeNode id="C1240FCB-4C72-445E-82B5-EBFAA87D0AC6" Text="开车人员月绩效报告" NavigateUrl="ZHGL/TestRunPerformance/TestRunPerformanceMonthReport.aspx"></TreeNode>
|
||||
<TreeNode id="0C6BB051-6BD1-4E35-90CE-9376F3C2D454" Text="开车人员月技术总结" NavigateUrl="ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx"></TreeNode>
|
||||
</TreeNode>
|
||||
</Tree>
|
||||
@@ -0,0 +1,969 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="mainMenu_PGJSX.aspx.cs" Inherits="FineUIPro.Web.mainMenu_PGJSX" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head id="Head1" runat="server">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>首页</title>
|
||||
<link href="../res/index/css/reset.css" rel="stylesheet" />
|
||||
<link href="../res/index/css/home.css" rel="stylesheet" />
|
||||
<link href="../res/index/css/swiper-3.4.2.min.css" rel="stylesheet" />
|
||||
<%--<link href="../res/css/common.css" rel="stylesheet" type="text/css" />--%>
|
||||
<style type="text/css">
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.flexV {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.wrap {
|
||||
height: 100%;
|
||||
padding: 15px;
|
||||
/*background-color: #EEEED1;*/
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.iteml {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.itemb {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.bottom-wrap {
|
||||
padding: 0;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.bottom-wrap:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.bw-b-bottom {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.bw-b-bottom-up {
|
||||
border-radius: 0;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.bw-item-content {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.top {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.top .item {
|
||||
}
|
||||
|
||||
.bw-b {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.bw-b-bottom-up {
|
||||
}
|
||||
|
||||
.tab-wrap {
|
||||
left: auto;
|
||||
right: 15px;
|
||||
top: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.tab .t-item {
|
||||
width: auto;
|
||||
padding: 5px 10px;
|
||||
color: #363636;
|
||||
}
|
||||
|
||||
.tit-item {
|
||||
padding: 0 10px;
|
||||
justify-content: space-between;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.tab-wrap .tab .t-item {
|
||||
color: #1C1C1C;
|
||||
}
|
||||
|
||||
.tip-item {
|
||||
margin-left: 10px;
|
||||
align-items: center;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.tip {
|
||||
width: 25px;
|
||||
height: 13px;
|
||||
background-color: #258F76;
|
||||
border-radius: 2px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.tip-next {
|
||||
background-color: #4F4F4F;
|
||||
}
|
||||
|
||||
.myTableClass {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
margin: 2px 1px;
|
||||
border-collapse: collapse; /* 设置表格边框合并 */
|
||||
border: 1px solid #BEBEBE;
|
||||
background: #ffffff;
|
||||
color: #8B8989; /* 设置表格文字颜色 */
|
||||
text-align: center; /* 设置表格文字居中 */
|
||||
}
|
||||
|
||||
.tab-title {
|
||||
height: 58px;
|
||||
color: #3CB371;
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.tab-header {
|
||||
height: 46px;
|
||||
color: #1C86EE;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
td, th {
|
||||
border: 1px solid #BEBEBE;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrap flex flexV">
|
||||
<div class="bottom-wrap flex1">
|
||||
<div class="top flex">
|
||||
<div class="item flex1 iteml">
|
||||
<div class="bw-b-bottom" style="margin-bottom: 5px;">
|
||||
<div class="bw-b-bottom-up">
|
||||
<div class="bw-item-content">
|
||||
<div id='one' style="width: 100%; height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item flex2 iteml">
|
||||
<div class="bw-b-bottom">
|
||||
<div class="bw-b-bottom-up">
|
||||
<div class="bw-item-content">
|
||||
<div id='two' style="width: 100%; height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item flex1 iteml">
|
||||
<div class="bw-b-bottom">
|
||||
<div class="bw-b-bottom-up">
|
||||
<div class="bw-item-content">
|
||||
<div id='five' style="width: 100%; height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom-wrap flex1">
|
||||
<div class="top flex">
|
||||
<div class="item flex1 iteml">
|
||||
<div class="bw-b-bottom">
|
||||
<div class="bw-b-bottom-up">
|
||||
<div class="tab-wrap">
|
||||
<div class="tab" data-value="3">
|
||||
<div class="t-item active">不足一周</div>
|
||||
<div class="spline"></div>
|
||||
<div class="t-item">一周</div>
|
||||
<div class="spline"></div>
|
||||
<div class="t-item">两周</div>
|
||||
<div class="spline"></div>
|
||||
<div class="t-item">三周</div>
|
||||
<div class="spline"></div>
|
||||
<div class="t-item">一个月</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bw-item-content">
|
||||
<div id='three' style="width: 100%; height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item flex1 iteml">
|
||||
<div class="bw-b-bottom">
|
||||
<div class="bw-b-bottom-up">
|
||||
<div class="bw-item-content">
|
||||
<div id="myDiv" runat="server" style="width: 100%; height: 100%;" ></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item flex1 iteml">
|
||||
<div class="bw-b-bottom">
|
||||
<div class="bw-b-bottom-up">
|
||||
<div class="bw-item-content">
|
||||
<div id='four' style="width: 100%; height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script type="text/javascript" src="../res/index/js/jquery-3.4.1.min.js"></script>
|
||||
<script type="text/javascript" src="../res/index/js/swiper-3.4.2.jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../res/index/js/echarts.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
function category_one(id, data, data2) {
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var myChart = echarts.init(document.getElementById(id))
|
||||
// 指定图表的配置项和数据
|
||||
var option = {
|
||||
title: [{
|
||||
text: '关键事项关闭率',
|
||||
top: '0',
|
||||
left: '30%',
|
||||
textStyle: {
|
||||
color: '#1C1C1C',
|
||||
fontSize: 16,
|
||||
fontWeight: 700
|
||||
}
|
||||
}],
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: '{a} <br/>{b}: {c} ({d}%)'
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
right: 10,
|
||||
top: 'center',
|
||||
|
||||
data: ['已关闭', '未关闭'],
|
||||
textStyle: {//图例文字的样式
|
||||
color: '#363636',
|
||||
fontSize: 10,
|
||||
}
|
||||
},
|
||||
graphic: {
|
||||
type: "text",
|
||||
left: "34%",
|
||||
top: "54%",
|
||||
style: {
|
||||
text: data2,
|
||||
textAlign: "center",
|
||||
fill: "#1C1C1C",
|
||||
fontSize: 18,
|
||||
fontWeight: 600
|
||||
}
|
||||
},
|
||||
color: ['#006400', '#FF0000'],
|
||||
series: [
|
||||
{
|
||||
name: '关键事项',
|
||||
type: 'pie',
|
||||
center: ['38%', '55%'],
|
||||
radius: ['40%', '78%'],
|
||||
avoidLabelOverlap: false,
|
||||
label: {
|
||||
show: true,
|
||||
fontSize: 16,
|
||||
fontWeight: 600,
|
||||
position: 'inside',
|
||||
formatter: function (data) { return data.value; }
|
||||
//formatter: function (data) { return data.percent.toFixed(2); }
|
||||
},
|
||||
labelLine: {
|
||||
show: false
|
||||
},
|
||||
data: [
|
||||
{ value: data[0], name: '已关闭' },
|
||||
{ value: data[1], name: '未关闭' }
|
||||
],
|
||||
itemStyle: {
|
||||
normal: {
|
||||
borderWidth: 3,
|
||||
borderColor: 'rgba(218,235,234, 1)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
// 使用刚指定的配置项和数据显示图表。
|
||||
myChart.setOption(option)
|
||||
}
|
||||
var one =<%=One %>;
|
||||
var data = one.series[0].data
|
||||
var data2 = data[0] + data[1];
|
||||
var data3 = data[2] + '%';
|
||||
category_one('one', data, data3)
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
function category_Two(id, xArr, data, num) {
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var myChart = echarts.init(document.getElementById(id))
|
||||
// 指定图表的配置项和数据
|
||||
var option = {
|
||||
title: {
|
||||
// left:'center',
|
||||
text: '关键事项统计——事项类别',
|
||||
textStyle: {
|
||||
color: '#1C1C1C',
|
||||
fontSize: 16,
|
||||
fontWeight: 700
|
||||
},
|
||||
show: true
|
||||
},
|
||||
tooltip: {},
|
||||
legend: {
|
||||
left: '80%',
|
||||
show: true,
|
||||
textStyle: {//图例文字的样式
|
||||
color: '#363636',
|
||||
fontSize: 12,
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)',
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.8)'
|
||||
},
|
||||
interval: 0,
|
||||
formatter: function (value) {
|
||||
var ret = "";//拼接加\n返回的类目项
|
||||
var maxLength = num;//每项显示文字个数
|
||||
var valLength = value.length;//X轴类目项的文字个数
|
||||
var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
|
||||
if (rowN > 1)//如果类目项的文字大于maxLength,
|
||||
{
|
||||
for (var i = 0; i < rowN; i++) {
|
||||
var temp = "";//每次截取的字符串
|
||||
var start = i * maxLength;//开始截取的位置
|
||||
var end = start + maxLength;//结束截取的位置
|
||||
//这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
|
||||
//temp = value.substring(start, end) + "\n";
|
||||
temp = value.substring(start, end) + (i == rowN - 1 ? "" : "\n");
|
||||
ret += temp; //凭借最终的字符串
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
else {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
},
|
||||
type: 'category',
|
||||
data: xArr,
|
||||
boundaryGap: [0, 0.01],
|
||||
},
|
||||
yAxis: {
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.8)'
|
||||
}
|
||||
},
|
||||
},
|
||||
series: data,
|
||||
grid: {
|
||||
top: '20%',
|
||||
left: '0%',
|
||||
right: '0%',
|
||||
bottom: '0%',
|
||||
containLabel: true,
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
// borderColor: 'rgba(0,162,233, 1)'
|
||||
},
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
}
|
||||
|
||||
// 使用刚指定的配置项和数据显示图表。
|
||||
myChart.setOption(option)
|
||||
}
|
||||
var two2 =<%=Two %>;
|
||||
var xArr = two2.categories
|
||||
var data = [
|
||||
{
|
||||
name: '未关闭',
|
||||
type: 'bar',
|
||||
stack: '总量',
|
||||
barWidth: 40,
|
||||
data: two2.series[0].data,
|
||||
label: { //柱体上显示数值
|
||||
show: true,//开启显示
|
||||
position: ['35%', '50%'],//在上方显示
|
||||
textStyle: {//数值样式
|
||||
fontSize: '20px',
|
||||
color: '#363636'
|
||||
},
|
||||
formatter: function (params) {
|
||||
// 当数值为0时返回空字符串,不显示标签
|
||||
return params.value === 0 ? '' : params.value;
|
||||
},
|
||||
},
|
||||
itemStyle: { normal: { color: 'rgba(255,0,0, 0.5)' } }
|
||||
},
|
||||
{
|
||||
name: '已关闭',
|
||||
type: 'bar',
|
||||
stack: '总量',
|
||||
barWidth: 40,
|
||||
data: two2.series[1].data,
|
||||
label: { //柱体上显示数值
|
||||
show: true,//开启显示
|
||||
position: ['35%', '50%'],//在上方显示
|
||||
textStyle: {//数值样式
|
||||
fontSize: '20px',
|
||||
color: '#363636'
|
||||
},
|
||||
formatter: function (params) {
|
||||
// 当数值为0时返回空字符串,不显示标签
|
||||
return params.value === 0 ? '' : params.value;
|
||||
},
|
||||
},
|
||||
itemStyle: { normal: { color: 'rgba(0,100,0,0.8)' } }
|
||||
}
|
||||
]
|
||||
category_Two('two', xArr, data, two2.xFontNum)
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
function category_Five(id, xArr, data, num) {
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var myChart = echarts.init(document.getElementById(id))
|
||||
// 指定图表的配置项和数据
|
||||
var option = {
|
||||
title: {
|
||||
// left:'center',
|
||||
text: '关键事项统计——责任人',
|
||||
textStyle: {
|
||||
color: '#1C1C1C',
|
||||
fontSize: 16,
|
||||
fontWeight: 700
|
||||
},
|
||||
show: true
|
||||
},
|
||||
tooltip: {},
|
||||
legend: {
|
||||
left: '60%',
|
||||
show: true,
|
||||
textStyle: {//图例文字的样式
|
||||
color: '#363636',
|
||||
fontSize: 12,
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)',
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.8)'
|
||||
},
|
||||
interval: 0,
|
||||
formatter: function (value) {
|
||||
var ret = "";//拼接加\n返回的类目项
|
||||
var maxLength = num;//每项显示文字个数
|
||||
var valLength = value.length;//X轴类目项的文字个数
|
||||
var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
|
||||
if (rowN > 1)//如果类目项的文字大于maxLength,
|
||||
{
|
||||
for (var i = 0; i < rowN; i++) {
|
||||
var temp = "";//每次截取的字符串
|
||||
var start = i * maxLength;//开始截取的位置
|
||||
var end = start + maxLength;//结束截取的位置
|
||||
//这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
|
||||
//temp = value.substring(start, end) + "\n";
|
||||
temp = value.substring(start, end) + (i == rowN - 1 ? "" : "\n");
|
||||
ret += temp; //凭借最终的字符串
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
else {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
},
|
||||
type: 'category',
|
||||
data: xArr,
|
||||
boundaryGap: [0, 0.01],
|
||||
},
|
||||
yAxis: {
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.8)'
|
||||
}
|
||||
},
|
||||
},
|
||||
series: data,
|
||||
grid: {
|
||||
top: '20%',
|
||||
left: '0%',
|
||||
right: '0%',
|
||||
bottom: '0%',
|
||||
containLabel: true,
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
// borderColor: 'rgba(0,162,233, 1)'
|
||||
},
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
}
|
||||
|
||||
// 使用刚指定的配置项和数据显示图表。
|
||||
myChart.setOption(option)
|
||||
}
|
||||
var five =<%=Five %>;
|
||||
var xArr = five.categories
|
||||
var data = [
|
||||
{
|
||||
name: '未关闭',
|
||||
type: 'bar',
|
||||
stack: '总量',
|
||||
barWidth: 40,
|
||||
data: five.series[0].data,
|
||||
label: { //柱体上显示数值
|
||||
show: true,//开启显示
|
||||
position: ['35%', '50%'],//在上方显示
|
||||
textStyle: {//数值样式
|
||||
fontSize: '20px',
|
||||
color: '#363636'
|
||||
},
|
||||
formatter: function (params) {
|
||||
// 当数值为0时返回空字符串,不显示标签
|
||||
return params.value === 0 ? '' : params.value;
|
||||
},
|
||||
},
|
||||
itemStyle: { normal: { color: 'rgba(178 ,34,34, 0.8)' } }
|
||||
},
|
||||
{
|
||||
name: '已关闭',
|
||||
type: 'bar',
|
||||
stack: '总量',
|
||||
barWidth: 40,
|
||||
data: five.series[1].data,
|
||||
label: { //柱体上显示数值
|
||||
show: true,//开启显示
|
||||
position: ['35%', '50%'],//在上方显示
|
||||
textStyle: {//数值样式
|
||||
fontSize: '20px',
|
||||
color: '#363636'
|
||||
},
|
||||
formatter: function (params) {
|
||||
// 当数值为0时返回空字符串,不显示标签
|
||||
return params.value === 0 ? '' : params.value;
|
||||
},
|
||||
},
|
||||
itemStyle: { normal: { color: 'rgba(0,100,0,0.5)' } }
|
||||
}
|
||||
]
|
||||
category_Five('five', xArr, data, five.xFontNum)
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
function category_Three(id, xArr, series) {
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var myChart = echarts.init(document.getElementById(id))
|
||||
// 指定图表的配置项和数据
|
||||
var option = {
|
||||
title: {
|
||||
// left:'center',
|
||||
text: '',
|
||||
textStyle: {
|
||||
color: '#1C1C1C',
|
||||
fontSize: 16,
|
||||
fontWeight: 700
|
||||
},
|
||||
show: false
|
||||
},
|
||||
tooltip: {},
|
||||
legend: {
|
||||
left: '3%',
|
||||
show: true,
|
||||
selectedMode: false,
|
||||
textStyle: {//图例文字的样式
|
||||
color: '#1C1C1C',
|
||||
fontSize: 16,
|
||||
fontWeight: 700
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.8)'
|
||||
},
|
||||
interval: 0,
|
||||
formatter: function (value) {
|
||||
var ret = "";//拼接加\n返回的类目项
|
||||
var maxLength = 5;//每项显示文字个数
|
||||
var valLength = value.length;//X轴类目项的文字个数
|
||||
var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
|
||||
if (rowN > 1)//如果类目项的文字大于maxLength,
|
||||
{
|
||||
for (var i = 0; i < rowN; i++) {
|
||||
var temp = "";//每次截取的字符串
|
||||
var start = i * maxLength;//开始截取的位置
|
||||
var end = start + maxLength;//结束截取的位置
|
||||
//这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
|
||||
//temp = value.substring(start, end) + "\n";
|
||||
temp = value.substring(start, end) + (i == rowN - 1 ? "" : "\n");
|
||||
ret += temp; //凭借最终的字符串
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
else {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
},
|
||||
type: 'category',
|
||||
data: xArr
|
||||
},
|
||||
yAxis: {
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.8)'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: series,
|
||||
grid: {
|
||||
top: '15%',
|
||||
left: '0%',
|
||||
right: '0%',
|
||||
bottom: '0%',
|
||||
containLabel: true,
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
// borderColor: 'rgba(0,162,233, 1)'
|
||||
},
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
}
|
||||
|
||||
// 使用刚指定的配置项和数据显示图表。
|
||||
myChart.setOption(option)
|
||||
}
|
||||
var three =<%=Three %>;
|
||||
var xArr = three.categories
|
||||
var series = [{
|
||||
name: '关键事项超期统计',
|
||||
type: 'bar',
|
||||
barWidth: 30,
|
||||
barGap: 0,
|
||||
data: three.series[0].data,
|
||||
label: { //柱体上显示数值
|
||||
show: true,//开启显示
|
||||
position: ['35%', '50%'],//在上方显示
|
||||
textStyle: {//数值样式
|
||||
fontSize: '20px',
|
||||
color: '#363636'
|
||||
},
|
||||
formatter: function (params) {
|
||||
// 当数值为0时返回空字符串,不显示标签
|
||||
return params.value === 0 ? '' : params.value;
|
||||
},
|
||||
},
|
||||
itemStyle: { normal: { color: 'rgba(30,144,255,0.8)' } }
|
||||
}];
|
||||
category_Three('three', xArr, series)
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
function category_Four(id, xArr, series) {
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var myChart = echarts.init(document.getElementById(id))
|
||||
// 指定图表的配置项和数据
|
||||
var option = {
|
||||
title: {
|
||||
// left:'center',
|
||||
text: '关键事项超期平均时间',
|
||||
textStyle: {
|
||||
color: '#1C1C1C',
|
||||
fontSize: 16,
|
||||
fontWeight: 700
|
||||
},
|
||||
show: false
|
||||
},
|
||||
tooltip: {},
|
||||
legend: {
|
||||
left: '3%',
|
||||
show: true,
|
||||
selectedMode: false,
|
||||
textStyle: {//图例文字的样式
|
||||
color: '#1C1C1C',
|
||||
fontSize: 16,
|
||||
fontWeight: 700
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.8)'
|
||||
},
|
||||
interval: 0,
|
||||
formatter: function (value) {
|
||||
var ret = "";//拼接加\n返回的类目项
|
||||
var maxLength = 5;//每项显示文字个数
|
||||
var valLength = value.length;//X轴类目项的文字个数
|
||||
var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
|
||||
if (rowN > 1)//如果类目项的文字大于maxLength,
|
||||
{
|
||||
for (var i = 0; i < rowN; i++) {
|
||||
var temp = "";//每次截取的字符串
|
||||
var start = i * maxLength;//开始截取的位置
|
||||
var end = start + maxLength;//结束截取的位置
|
||||
//这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
|
||||
//temp = value.substring(start, end) + "\n";
|
||||
temp = value.substring(start, end) + (i == rowN - 1 ? "" : "\n");
|
||||
ret += temp; //凭借最终的字符串
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
else {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
},
|
||||
type: 'category',
|
||||
data: xArr
|
||||
},
|
||||
yAxis: {
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.8)'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: series,
|
||||
grid: {
|
||||
top: '15%',
|
||||
left: '0%',
|
||||
right: '0%',
|
||||
bottom: '0%',
|
||||
containLabel: true,
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
// borderColor: 'rgba(0,162,233, 1)'
|
||||
},
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
textStyle: {
|
||||
color: 'rgba(0,0,0, 0.3)'
|
||||
}
|
||||
}
|
||||
|
||||
// 使用刚指定的配置项和数据显示图表。
|
||||
myChart.setOption(option)
|
||||
}
|
||||
var four =<%=Four %>;
|
||||
var xArr = four.categories;
|
||||
var series = [{
|
||||
name: '关键事项超期平均时间统计(单位:天)',
|
||||
type: 'bar',
|
||||
barWidth: 30,
|
||||
barGap: 0,
|
||||
data: four.series[0].data,
|
||||
markLine: {
|
||||
data: [
|
||||
{
|
||||
name: '全平台平均超期时间',
|
||||
yAxis: four.series[2].data[0],
|
||||
label: { show: true, position: "middle" },
|
||||
lineStyle: {
|
||||
type: "dashed",
|
||||
color: "#3c78d8"
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '本项目平均超期时间',
|
||||
yAxis: four.series[1].data[0],
|
||||
label: { show: true, position: "middle" },
|
||||
lineStyle: {
|
||||
type: "dashed",
|
||||
color: "#FF0000"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
label: { //柱体上显示数值
|
||||
show: true,//开启显示
|
||||
position: ['35%', '50%'],//在上方显示
|
||||
textStyle: {//数值样式
|
||||
fontSize: '20px',
|
||||
color: '#363636'
|
||||
},
|
||||
formatter: function (params) {
|
||||
// 当数值为0时返回空字符串,不显示标签
|
||||
return params.value === 0 ? '' : params.value;
|
||||
},
|
||||
//emphasis: {
|
||||
// show: true,
|
||||
// position: 'top',
|
||||
// formatter: '{c}'
|
||||
//},
|
||||
//z: 100
|
||||
},
|
||||
itemStyle: { normal: { color: 'rgba(255,140,0,0.8)' } }
|
||||
//itemStyle: { normal: { color: '#FFA500' } }
|
||||
}];
|
||||
category_Four('four', xArr, series)
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(".tab .t-item").click(function () {
|
||||
var $this = $(this)
|
||||
var index = $this.index()
|
||||
if ($this.hasClass('active') && index == 0) {
|
||||
return
|
||||
}
|
||||
var $tab = $this.closest(".tab")
|
||||
var value = $tab.attr("data-value")
|
||||
$tab.find(".t-item").removeClass('active');
|
||||
$this.addClass('active')
|
||||
|
||||
var two =<%=Two %>;
|
||||
var three =<%=Three %>;
|
||||
var three2 =<%=Three2 %>;
|
||||
var three3 =<%=Three3 %>;
|
||||
var three4 =<%=Three4 %>;
|
||||
var three5 =<%=Three5 %>;
|
||||
var num = 5;
|
||||
|
||||
if (value == 3) {
|
||||
var xArr = three.categories
|
||||
var series = [{
|
||||
name: '关键事项超期统计——不足一周',
|
||||
type: 'bar',
|
||||
data: three.series[0].data,
|
||||
itemStyle: { normal: { color: 'rgba(30,144,255,0.8)' } }
|
||||
}];
|
||||
if (index == 2) {
|
||||
xArr = three2.categories
|
||||
series = [{
|
||||
name: '关键事项超期统计——超期一周',
|
||||
type: 'bar',
|
||||
data: three2.series[0].data,
|
||||
itemStyle: { normal: { color: 'rgba(30,144,255,0.8)' } }
|
||||
}];
|
||||
}
|
||||
if (index == 4) {
|
||||
xArr = three3.categories
|
||||
series = [{
|
||||
name: '关键事项超期统计——超期两周',
|
||||
type: 'bar',
|
||||
data: three3.series[0].data,
|
||||
itemStyle: { normal: { color: 'rgba(30,144,255,0.8)' } }
|
||||
}];
|
||||
}
|
||||
if (index == 6) {
|
||||
xArr = three4.categories
|
||||
series = [{
|
||||
name: '关键事项超期统计——超期三周',
|
||||
type: 'bar',
|
||||
data: three4.series[0].data,
|
||||
itemStyle: { normal: { color: 'rgba(30,144,255,0.8)' } }
|
||||
}];
|
||||
}
|
||||
if (index == 8) {
|
||||
xArr = three5.categories
|
||||
series = [{
|
||||
name: '关键事项超期统计——超期一个月',
|
||||
type: 'bar',
|
||||
data: three5.series[0].data,
|
||||
itemStyle: { normal: { color: 'rgba(30,144,255,0.8)' } }
|
||||
}];
|
||||
}
|
||||
category_Three('three', xArr, series)
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,500 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.UI.WebControls;
|
||||
using BLL;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using Model;
|
||||
using System.Linq;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using NPOI.XSSF.Streaming.Values;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Text;
|
||||
|
||||
namespace FineUIPro.Web
|
||||
{
|
||||
public partial class mainMenu_PGJSX : PageBase
|
||||
{
|
||||
#region 定义项
|
||||
/// <summary>
|
||||
/// 项目主键
|
||||
/// </summary>
|
||||
public string ProjectId
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)ViewState["ProjectId"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["ProjectId"] = value;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
this.ProjectId = string.Empty;
|
||||
if (this.CurrUser != null && !string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
|
||||
{
|
||||
this.ProjectId = this.CurrUser.LoginProjectId;
|
||||
}
|
||||
BindGrid();
|
||||
}
|
||||
}
|
||||
|
||||
#region 关键事项统计
|
||||
|
||||
#region 关键事项
|
||||
|
||||
/// <summary>
|
||||
/// 关键事项
|
||||
/// </summary>
|
||||
protected string One
|
||||
{
|
||||
get
|
||||
{
|
||||
var db = new Model.SGGLDB(Funs.ConnString);
|
||||
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
||||
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
||||
|
||||
Model.SingleSerie s = new Model.SingleSerie();
|
||||
List<double> listdata = new List<double>();
|
||||
|
||||
businessColumn.title = "关键事项关闭率";
|
||||
var allItems = from x in db.GJSX
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId
|
||||
orderby x.GJSXID
|
||||
select x;
|
||||
int closeNum = allItems.Where(x => x.State == "0").Count();
|
||||
listdata.Add(closeNum);
|
||||
listdata.Add(allItems.Count() - closeNum);
|
||||
double closureRate = 0;
|
||||
if (allItems.Any())
|
||||
{
|
||||
closureRate = (double)closeNum / (double)allItems.Count();
|
||||
}
|
||||
listdata.Add(Math.Round(closureRate * 100, 2));
|
||||
|
||||
s.data = listdata;
|
||||
series.Add(s);
|
||||
businessColumn.series = series;
|
||||
return JsonConvert.SerializeObject(businessColumn);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 关键事项统计——按事项类别
|
||||
/// </summary>
|
||||
protected string Two
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
||||
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
||||
List<string> listCategories = new List<string>();
|
||||
businessColumn.title = "关键事项统计";
|
||||
businessColumn.xFontNum = 8;
|
||||
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
|
||||
var allItems = from x in Funs.DB.GJSX
|
||||
where x.ProjectId == this.ProjectId
|
||||
select x;
|
||||
Model.SingleSerie s = new Model.SingleSerie();
|
||||
Model.SingleSerie s2 = new Model.SingleSerie();
|
||||
List<double> listdata = new List<double>();
|
||||
List<double> listdata2 = new List<double>();
|
||||
int closeNum = 0;
|
||||
foreach (var type in gjsxTypes)
|
||||
{
|
||||
listCategories.Add(type.GJSXTypeName);
|
||||
var typeItems = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID));
|
||||
closeNum = typeItems.Where(x => x.State == "0").Count();
|
||||
listdata.Add(typeItems.Count() - closeNum);
|
||||
listdata2.Add(closeNum);
|
||||
}
|
||||
s.data = listdata;
|
||||
s2.data = listdata2;
|
||||
series.Add(s);
|
||||
series.Add(s2);
|
||||
businessColumn.categories = listCategories;
|
||||
businessColumn.series = series;
|
||||
return JsonConvert.SerializeObject(businessColumn);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 关键事项统计——按责任人
|
||||
/// </summary>
|
||||
protected string Five
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
||||
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
||||
List<string> listCategories = new List<string>();
|
||||
businessColumn.title = "关键事项统计";
|
||||
businessColumn.xFontNum = 5;
|
||||
var userIds = BLL.GJSXService.GetGJSXUserList(this.ProjectId);
|
||||
var allItems = from x in Funs.DB.GJSX
|
||||
where x.ProjectId == this.ProjectId
|
||||
select x;
|
||||
Model.SingleSerie s = new Model.SingleSerie();
|
||||
Model.SingleSerie s2 = new Model.SingleSerie();
|
||||
List<double> listdata = new List<double>();
|
||||
List<double> listdata2 = new List<double>();
|
||||
int closeNum = 0;
|
||||
foreach (var userid in userIds)
|
||||
{
|
||||
listCategories.Add(UserService.GetUserNameByUserId(userid));
|
||||
var typeItems = allItems.Where(x => x.User_Acceptance == userid);
|
||||
closeNum = typeItems.Where(x => x.State == "0").Count();
|
||||
listdata.Add(typeItems.Count() - closeNum);
|
||||
listdata2.Add(closeNum);
|
||||
}
|
||||
s.data = listdata;
|
||||
s2.data = listdata2;
|
||||
series.Add(s);
|
||||
series.Add(s2);
|
||||
businessColumn.categories = listCategories;
|
||||
businessColumn.series = series;
|
||||
return JsonConvert.SerializeObject(businessColumn);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 超期统计
|
||||
|
||||
/// <summary>
|
||||
/// 超期统计表格
|
||||
/// </summary>
|
||||
private void BindGrid()
|
||||
{
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
|
||||
var allItems = from x in Funs.DB.GJSX
|
||||
where x.ProjectId == this.ProjectId && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
|
||||
select x;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("<table id=\"myTable\" class=\"myTableClass\" > ");
|
||||
sb.Append("<thead>");
|
||||
sb.Append("<tr>");
|
||||
sb.Append("<th class=\"tab-title\" colspan=\"6\">事项类别超期统计</th>");
|
||||
sb.Append("</tr>");
|
||||
sb.Append("<tr>");
|
||||
sb.Append("<th class=\"tab-header\">事项类别</th>");
|
||||
sb.Append("<th class=\"tab-header\">不足一周</th>");
|
||||
sb.Append("<th class=\"tab-header\">超期一周</th>");
|
||||
sb.Append("<th class=\"tab-header\">超期两周</th>");
|
||||
sb.Append("<th class=\"tab-header\">超期三周</th>");
|
||||
sb.Append("<th class=\"tab-header\">超一个月</th>");
|
||||
sb.Append("</tr>");
|
||||
sb.Append("</thead>");
|
||||
sb.Append("<tbody>");
|
||||
foreach (var type in gjsxTypes)
|
||||
{
|
||||
int day1 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(7)).Count();
|
||||
int day7 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(7) && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(14)).Count();
|
||||
int day14 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(14) && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(21)).Count();
|
||||
int day21 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(21) && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(28)).Count();
|
||||
int day30 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(28)).Count();
|
||||
sb.Append("<tr>");
|
||||
sb.Append($"<td>{type.GJSXTypeName}</td>");
|
||||
sb.Append($"<td>{day1}</td>");
|
||||
sb.Append($"<td>{day7}</td>");
|
||||
sb.Append($"<td>{day14}</td>");
|
||||
sb.Append($"<td>{day21}</td>");
|
||||
sb.Append($"<td>{day30}</td>");
|
||||
sb.Append("</tr>");
|
||||
}
|
||||
sb.Append("</tbody>");
|
||||
sb.Append("</table>");
|
||||
myDiv.InnerHtml = sb.ToString();
|
||||
}
|
||||
/// <summary>
|
||||
/// 分页
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
||||
{
|
||||
BindGrid();
|
||||
}
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
|
||||
{
|
||||
BindGrid();
|
||||
}
|
||||
/// <summary>
|
||||
/// 超期统计——不足一周
|
||||
/// </summary>
|
||||
protected string Three
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
||||
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
||||
List<string> listCategories = new List<string>();
|
||||
businessColumn.title = "超期统计——不足一周";
|
||||
businessColumn.xFontNum = 5;
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
|
||||
var allItems = from x in Funs.DB.GJSX
|
||||
where x.ProjectId == this.ProjectId
|
||||
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
|
||||
&& (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(7)
|
||||
select x;
|
||||
Model.SingleSerie s = new Model.SingleSerie();
|
||||
Model.SingleSerie s2 = new Model.SingleSerie();
|
||||
List<double> listdata = new List<double>();
|
||||
foreach (var type in gjsxTypes)
|
||||
{
|
||||
listCategories.Add(type.GJSXTypeName);
|
||||
var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
|
||||
listdata.Add(typelst.Count());
|
||||
}
|
||||
s.data = listdata;
|
||||
series.Add(s);
|
||||
businessColumn.categories = listCategories;
|
||||
businessColumn.series = series;
|
||||
return JsonConvert.SerializeObject(businessColumn);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 超期统计——超期一周
|
||||
/// </summary>
|
||||
protected string Three2
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
||||
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
||||
List<string> listCategories = new List<string>();
|
||||
businessColumn.title = "超期统计——超期一周";
|
||||
businessColumn.xFontNum = 5;
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
|
||||
var allItems = from x in Funs.DB.GJSX
|
||||
where x.ProjectId == this.ProjectId
|
||||
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(7)
|
||||
&& (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(14)
|
||||
select x;
|
||||
Model.SingleSerie s = new Model.SingleSerie();
|
||||
Model.SingleSerie s2 = new Model.SingleSerie();
|
||||
List<double> listdata = new List<double>();
|
||||
foreach (var type in gjsxTypes)
|
||||
{
|
||||
listCategories.Add(type.GJSXTypeName);
|
||||
var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
|
||||
listdata.Add(typelst.Count());
|
||||
}
|
||||
s.data = listdata;
|
||||
series.Add(s);
|
||||
businessColumn.categories = listCategories;
|
||||
businessColumn.series = series;
|
||||
return JsonConvert.SerializeObject(businessColumn);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 超期统计——超期两周
|
||||
/// </summary>
|
||||
protected string Three3
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
||||
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
||||
List<string> listCategories = new List<string>();
|
||||
businessColumn.title = "超期统计——超期两周";
|
||||
businessColumn.xFontNum = 5;
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
|
||||
var allItems = from x in Funs.DB.GJSX
|
||||
where x.ProjectId == this.ProjectId
|
||||
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(14)
|
||||
&& (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(21)
|
||||
select x;
|
||||
Model.SingleSerie s = new Model.SingleSerie();
|
||||
Model.SingleSerie s2 = new Model.SingleSerie();
|
||||
List<double> listdata = new List<double>();
|
||||
foreach (var type in gjsxTypes)
|
||||
{
|
||||
listCategories.Add(type.GJSXTypeName);
|
||||
var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
|
||||
listdata.Add(typelst.Count());
|
||||
}
|
||||
s.data = listdata;
|
||||
series.Add(s);
|
||||
businessColumn.categories = listCategories;
|
||||
businessColumn.series = series;
|
||||
return JsonConvert.SerializeObject(businessColumn);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 超期统计——超期三周
|
||||
/// </summary>
|
||||
protected string Three4
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
||||
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
||||
List<string> listCategories = new List<string>();
|
||||
businessColumn.title = "超期统计——超期三周";
|
||||
businessColumn.xFontNum = 5;
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
|
||||
var allItems = from x in Funs.DB.GJSX
|
||||
where x.ProjectId == this.ProjectId
|
||||
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(21)
|
||||
&& (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(30)
|
||||
select x;
|
||||
Model.SingleSerie s = new Model.SingleSerie();
|
||||
Model.SingleSerie s2 = new Model.SingleSerie();
|
||||
List<double> listdata = new List<double>();
|
||||
foreach (var type in gjsxTypes)
|
||||
{
|
||||
listCategories.Add(type.GJSXTypeName);
|
||||
var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
|
||||
listdata.Add(typelst.Count());
|
||||
}
|
||||
s.data = listdata;
|
||||
series.Add(s);
|
||||
businessColumn.categories = listCategories;
|
||||
businessColumn.series = series;
|
||||
return JsonConvert.SerializeObject(businessColumn);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 超期统计——超期一个月
|
||||
/// </summary>
|
||||
protected string Three5
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
||||
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
||||
List<string> listCategories = new List<string>();
|
||||
businessColumn.title = "超期统计——超期一个月";
|
||||
businessColumn.xFontNum = 5;
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
|
||||
var allItems = from x in Funs.DB.GJSX
|
||||
where x.ProjectId == this.ProjectId
|
||||
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(30)
|
||||
select x;
|
||||
Model.SingleSerie s = new Model.SingleSerie();
|
||||
Model.SingleSerie s2 = new Model.SingleSerie();
|
||||
List<double> listdata = new List<double>();
|
||||
foreach (var type in gjsxTypes)
|
||||
{
|
||||
listCategories.Add(type.GJSXTypeName);
|
||||
var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
|
||||
listdata.Add(typelst.Count());
|
||||
}
|
||||
s.data = listdata;
|
||||
series.Add(s);
|
||||
businessColumn.categories = listCategories;
|
||||
businessColumn.series = series;
|
||||
return JsonConvert.SerializeObject(businessColumn);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 超期平均时间统计
|
||||
|
||||
/// <summary>
|
||||
/// 超期平均时间统计
|
||||
/// </summary>
|
||||
protected string Four
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
||||
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
||||
List<string> listCategories = new List<string>();
|
||||
businessColumn.title = "关键事项——超期平均时间";
|
||||
businessColumn.xFontNum = 5;
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
List<double> listdata = new List<double>();
|
||||
List<double> listdata2 = new List<double>();
|
||||
List<double> listdata3 = new List<double>();
|
||||
Model.SingleSerie s = new Model.SingleSerie();
|
||||
Model.SingleSerie s2 = new Model.SingleSerie();
|
||||
Model.SingleSerie s3 = new Model.SingleSerie();
|
||||
|
||||
var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
|
||||
//全平台
|
||||
var overallItems = from x in Funs.DB.GJSX
|
||||
where (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
|
||||
select new
|
||||
{
|
||||
x.GJSXTypeId,
|
||||
DiffDay = (double)((x.CloseDate ?? DateTime.Now) - Convert.ToDateTime(x.CompleteDate)).Days //+ 1
|
||||
};
|
||||
//本项目
|
||||
var allItems = from x in Funs.DB.GJSX
|
||||
where x.ProjectId == this.ProjectId
|
||||
&& (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
|
||||
select new
|
||||
{
|
||||
x.GJSXTypeId,
|
||||
DiffDay = (double)((x.CloseDate ?? DateTime.Now) - Convert.ToDateTime(x.CompleteDate)).Days //+ 1
|
||||
};
|
||||
//全平台平均超期时间
|
||||
double overallAverageDiffDay = 0;
|
||||
if (overallItems.Any())
|
||||
{
|
||||
overallAverageDiffDay = Math.Round(overallItems.Average(p => p.DiffDay), 1);
|
||||
}
|
||||
listdata3.Add(overallAverageDiffDay);
|
||||
s3.data = listdata3;
|
||||
//项目平均超期时间
|
||||
double averageDiffDay = 0;
|
||||
if (allItems.Any())
|
||||
{
|
||||
averageDiffDay = Math.Round(allItems.Average(p => p.DiffDay), 1);
|
||||
}
|
||||
listdata2.Add(averageDiffDay);
|
||||
s2.data = listdata2;
|
||||
|
||||
//各事项类别超期平均时间
|
||||
foreach (var type in gjsxTypes)
|
||||
{
|
||||
listCategories.Add(type.GJSXTypeName);
|
||||
var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
|
||||
double averageTypeDiffDay = 0;
|
||||
if (typelst.Any())
|
||||
{
|
||||
averageTypeDiffDay = typelst.Average(p => p.DiffDay);
|
||||
}
|
||||
listdata.Add(averageTypeDiffDay);
|
||||
}
|
||||
s.data = listdata;
|
||||
series.Add(s);
|
||||
series.Add(s2);
|
||||
series.Add(s3);
|
||||
businessColumn.categories = listCategories;
|
||||
businessColumn.series = series;
|
||||
return JsonConvert.SerializeObject(businessColumn);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <自动生成>
|
||||
// 此代码由工具生成。
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web
|
||||
{
|
||||
|
||||
|
||||
public partial class mainMenu_PGJSX
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Head1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlHead Head1;
|
||||
|
||||
/// <summary>
|
||||
/// myDiv 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl myDiv;
|
||||
}
|
||||
}
|
||||
@@ -35,15 +35,15 @@ namespace FineUIPro.Web.common
|
||||
}
|
||||
|
||||
|
||||
//未遂事故
|
||||
var wsAccidentList1 = from x in db.Accident_AccidentPersonRecord
|
||||
join y in db.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId
|
||||
where y.AccidentTypeName.Contains("未遂")
|
||||
select x;
|
||||
var wsAccidentList2 = from x in db.Accident_AccidentReportOther
|
||||
join y in db.Sys_Const on x.AccidentTypeId equals y.ConstValue
|
||||
where y.ConstText.Contains("未遂")
|
||||
select x;
|
||||
////未遂事故
|
||||
//var wsAccidentList1 = from x in db.Accident_AccidentPersonRecord
|
||||
// join y in db.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId
|
||||
// where y.AccidentTypeName.Contains("未遂")
|
||||
// select x;
|
||||
//var wsAccidentList2 = from x in db.Accident_AccidentReportOther
|
||||
// join y in db.Sys_Const on x.AccidentTypeId equals y.ConstValue
|
||||
// where y.ConstText.Contains("未遂")
|
||||
// select x;
|
||||
this.divWS.InnerHtml = GetNearMissNum().ToString();
|
||||
|
||||
//安全人工时
|
||||
@@ -314,7 +314,7 @@ namespace FineUIPro.Web.common
|
||||
{
|
||||
getAllPersonInOutList = getAllPersonInOutList.Where(x => x.InOutDate <= datetime2);
|
||||
}
|
||||
if (getAllPersonInOutList.Count() > 0)
|
||||
if (pids != null && getAllPersonInOutList.Count() > 0)
|
||||
{
|
||||
//cout1 = getAllPersonInOutList.Sum(x => (long)x.WorkHours);
|
||||
foreach (var pid in pids)
|
||||
|
||||
Reference in New Issue
Block a user