1118-gaofei-焊接首页
This commit is contained in:
		
							parent
							
								
									0aa91d6a8f
								
							
						
					
					
						commit
						ed3517280a
					
				|  | @ -42,8 +42,9 @@ | ||||||
|     <Prefer32Bit>false</Prefer32Bit> |     <Prefer32Bit>false</Prefer32Bit> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Reference Include="Apache.NMS.ActiveMQ"> |     <Reference Include="Apache.NMS.ActiveMQ, Version=1.7.2.4108, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL"> | ||||||
|       <HintPath>..\packages\Apache.NMS.ActiveMQ.1.7.2\lib\net40\Apache.NMS.ActiveMQ.dll</HintPath> |       <SpecificVersion>False</SpecificVersion> | ||||||
|  |       <HintPath>bin\Debug\Apache.NMS.ActiveMQ.dll</HintPath> | ||||||
|     </Reference> |     </Reference> | ||||||
|     <Reference Include="EmitMapper, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |     <Reference Include="EmitMapper, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | ||||||
|       <HintPath>..\packages\EmitMapper.1.0.0\lib\EmitMapper.dll</HintPath> |       <HintPath>..\packages\EmitMapper.1.0.0\lib\EmitMapper.dll</HintPath> | ||||||
|  |  | ||||||
|  | @ -57,7 +57,8 @@ | ||||||
|   </Target> |   </Target> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Reference Include="Apache.NMS, Version=1.8.0.0, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL"> |     <Reference Include="Apache.NMS, Version=1.8.0.0, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL"> | ||||||
|       <HintPath>..\packages\Apache.NMS.1.8.0\lib\net40\Apache.NMS.dll</HintPath> |       <SpecificVersion>False</SpecificVersion> | ||||||
|  |       <HintPath>bin\Apache.NMS.dll</HintPath> | ||||||
|     </Reference> |     </Reference> | ||||||
|     <Reference Include="Apache.NMS.ActiveMQ, Version=1.7.2.4108, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL"> |     <Reference Include="Apache.NMS.ActiveMQ, Version=1.7.2.4108, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL"> | ||||||
|       <HintPath>..\packages\Apache.NMS.ActiveMQ.1.7.2\lib\net40\Apache.NMS.ActiveMQ.dll</HintPath> |       <HintPath>..\packages\Apache.NMS.ActiveMQ.1.7.2\lib\net40\Apache.NMS.ActiveMQ.dll</HintPath> | ||||||
|  |  | ||||||
|  | @ -12,242 +12,207 @@ | ||||||
|         * { |         * { | ||||||
|             box-sizing: border-box; |             box-sizing: border-box; | ||||||
|         } |         } | ||||||
|         .pd{ | 
 | ||||||
|  |         .pd { | ||||||
|             padding: 20px; |             padding: 20px; | ||||||
|         } |         } | ||||||
|         .pd10{ | 
 | ||||||
|  |         .pd10 { | ||||||
|             padding: 10px !important; |             padding: 10px !important; | ||||||
|         } |         } | ||||||
|         .wrap{ | 
 | ||||||
|             height:100%; |         .flexV { | ||||||
|             padding:15px; |             flex-direction: column; | ||||||
|         } |         } | ||||||
|         .bw-item-content{ | 
 | ||||||
|  |         .wrap { | ||||||
|  |             height: 100%; | ||||||
|  |             padding: 15px; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .iteml { | ||||||
|  |             margin-left: 5px; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .itemb { | ||||||
|  |             margin-bottom: 5px; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .bottom-wrap { | ||||||
|             padding: 0; |             padding: 0; | ||||||
|  |             margin-bottom: 5px; | ||||||
|         } |         } | ||||||
|         .bottom-wrap{ | 
 | ||||||
|            padding:0; |             .bottom-wrap:last-child { | ||||||
|            margin-bottom:0; |                 margin-bottom: 0; | ||||||
|             } |             } | ||||||
|          .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: 0px; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         .top { |         .top { | ||||||
|             display: flex; |             display: flex; | ||||||
|             display: -webkit-flex; |             display: -webkit-flex; | ||||||
|             overflow: hidden; |             overflow: hidden; | ||||||
|             width: 100%; |             width: 100%; | ||||||
|         } |         } | ||||||
|         .bw-b-bottom{ | 
 | ||||||
|             width:100%; |             .top .item { | ||||||
|             height:100%; |             } | ||||||
|  | 
 | ||||||
|  |         .bw-b { | ||||||
|  |             width: 50%; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         .bw-b-bottom-up { |         .bw-b-bottom-up { | ||||||
|             border-radius:0; |  | ||||||
|             height: 100%; |  | ||||||
|             margin:0; |  | ||||||
|             box-shadow: none; |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         .tab-wrap { |         .tab-wrap { | ||||||
|             left: auto; |             left: auto; | ||||||
|             right: 15px; |             right: 15px; | ||||||
|             top: 8px; |             top: 5px; | ||||||
|  |             font-size: 12px; | ||||||
|         } |         } | ||||||
|        .tab-wrap .tab{ | 
 | ||||||
|             border-radius:0 !important; |         .tab .t-item { | ||||||
|             border: none!important; |  | ||||||
|             box-shadow: none !important; |  | ||||||
|         } |  | ||||||
|         .tab-wrap .tab .active { |  | ||||||
|             color: rgba(0,162,233, 1); |  | ||||||
|             background-color: transparent !important; |  | ||||||
|         } |  | ||||||
|        .tab-wrap .tab .t-item { |  | ||||||
|             width: auto; |             width: auto; | ||||||
|  |             padding: 5px 10px; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .tit-item { | ||||||
|  |             padding: 0 10px; | ||||||
|  |             color: #fff; | ||||||
|  |             justify-content: space-between; | ||||||
|  |             font-size: 12px; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         .tip-item { | ||||||
|  |             margin-left: 10px; | ||||||
|  |             align-items: center; | ||||||
|             font-size: 10px; |             font-size: 10px; | ||||||
|             padding: 2px; |  | ||||||
|         } |         } | ||||||
|         .itemlr{ | 
 | ||||||
|             margin: 0 5px 5px 0; |         .tip { | ||||||
|  |             width: 25px; | ||||||
|  |             height: 13px; | ||||||
|  |             background-color: #258F76; | ||||||
|  |             border-radius: 2px; | ||||||
|  |             margin-right: 5px; | ||||||
|         } |         } | ||||||
|         .mgb{ | 
 | ||||||
|             margin-bottom: 5px; |         .info-wrap { | ||||||
|  |             width: 100%; | ||||||
|  |             height: 100%; | ||||||
|  |             padding: 5px 10px; | ||||||
|         } |         } | ||||||
|         .flex4 { | 
 | ||||||
|             -webkit-flex: 4; |             .info-wrap .info-item { | ||||||
|             /* Chrome */ |                 align-items: center; | ||||||
|             -ms-flex: 4; /* IE 10 */ |                 margin: 0 20px; | ||||||
|             flex: 4; |  | ||||||
|             /* NEW, Spec - Opera 12.1, Firefox 20+ */ |  | ||||||
|             /*-webkit-box-flex: 3; /* OLD - iOS 6-, Safari 3.1-6 */ |  | ||||||
|             -moz-box-flex: 4; |  | ||||||
|             /* OLD - Firefox 19- */ |  | ||||||
|         } |  | ||||||
|         .flex6 { |  | ||||||
|             -webkit-flex: 6; |  | ||||||
|             /* Chrome */ |  | ||||||
|             -ms-flex: 6; /* IE 10 */ |  | ||||||
|             flex: 6; |  | ||||||
|             /* NEW, Spec - Opera 12.1, Firefox 20+ */ |  | ||||||
|             /*-webkit-box-flex: 3; /* OLD - iOS 6-, Safari 3.1-6 */ |  | ||||||
|             -moz-box-flex: 6; |  | ||||||
|             /* OLD - Firefox 19- */ |  | ||||||
|         } |  | ||||||
|         .flex9 { |  | ||||||
|             -webkit-flex: 9; |  | ||||||
|             /* Chrome */ |  | ||||||
|             -ms-flex: 9; /* IE 10 */ |  | ||||||
|             flex: 9; |  | ||||||
|             /* NEW, Spec - Opera 12.1, Firefox 20+ */ |  | ||||||
|             /*-webkit-box-flex: 3; /* OLD - iOS 6-, Safari 3.1-6 */ |  | ||||||
|             -moz-box-flex: 9; |  | ||||||
|             /* OLD - Firefox 19- */ |  | ||||||
|         } |  | ||||||
|         .info-wrap{ |  | ||||||
|             width:100%; |  | ||||||
|             height:100%; |  | ||||||
|             padding:5px 10px; |  | ||||||
|         } |  | ||||||
|         .info-wrap .info-item{ |  | ||||||
|             align-items:center; |  | ||||||
|             margin:0 20px; |  | ||||||
|             } |             } | ||||||
|  | 
 | ||||||
|                 .info-wrap .info-item .title { |                 .info-wrap .info-item .title { | ||||||
|             margin-bottom:5px; |                     margin-bottom: 5px; | ||||||
|              font-size:14px; |                     font-size: 14px; | ||||||
|                 } |                 } | ||||||
|  | 
 | ||||||
|  |         .tip-next { | ||||||
|  |             background-color: #92BF55; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         .info-wrap .info-item .item { |         .info-wrap .info-item .item { | ||||||
|             width:100%; |             width: 100%; | ||||||
|             height:100%; |             height: 100%; | ||||||
|             background-color:#267AA4; |             background-color: #267AA4; | ||||||
|             border-radius:15px; |             border-radius: 25px; | ||||||
|             align-items:center; |             align-items: center; | ||||||
|             justify-content:space-around; |             justify-content: space-around; | ||||||
|         } |         } | ||||||
|         .info-wrap .info-item .item .i-num{ | 
 | ||||||
|             color:#F48A5C; |             .info-wrap .info-item .item .i-num { | ||||||
|             font-size:28px; |                 color: #F48A5C; | ||||||
|  |                 font-size: 48px; | ||||||
|             } |             } | ||||||
|         .info-wrap .info-item .item .i-num-c{ | 
 | ||||||
|              color:#C1DF8E; |             .info-wrap .info-item .item .i-num-c { | ||||||
|  |                 color: #C1DF8E; | ||||||
|             } |             } | ||||||
|     </style> |     </style> | ||||||
| </head> | </head> | ||||||
| <body> | <body> | ||||||
|     <div class="wrap flex"> |     <div class="wrap flex flexV"> | ||||||
|         <div class="bottom-wrap flex1"> |         <div class="bottom-wrap flex1"> | ||||||
|             <div class="top flexV"> |             <div class="top flex"> | ||||||
|                 <div class="item flex4 itemlr"> |                 <div class="item flex1 flex flexV"> | ||||||
|                     <div class="bw-b-bottom"> |                     <div class="bw-b-bottom" style="margin-bottom: 5px;"> | ||||||
|                         <div class="bw-b-bottom-up"> |                         <div class="bw-b-bottom-up"> | ||||||
|                             <div class="info-wrap flex"> |                             <div class="info-wrap flex"> | ||||||
|                                 <div class="info-item flex flexV flex1"> |                                 <div class="info-item flex flexV flex1"> | ||||||
|                                     <div class="title">一次合格率</div> |                                     <div class="title">一次合格率</div> | ||||||
|                                     <div class="item flex1 flex flexV"> |                                     <div class="item flex1 flex flexV"> | ||||||
|                                         <div class="specialNum i-num">87</div> |                                         <div runat="server" id="divFirstOKRate" class="specialNum i-num">87</div> | ||||||
|                                         <div style="font-size:10px">单位:%</div> |                                         <div style="font-size: 10px">单位:%</div> | ||||||
|                                     </div> |  | ||||||
|                                 </div> |  | ||||||
|                                 <div class="info-item flex flexV flex1"> |  | ||||||
|                                     <div class="title">焊工总人数</div> |  | ||||||
|                                     <div class="item flex1 flex flexV"> |  | ||||||
|                                         <div class="specialNum i-num i-num-c">176</div> |  | ||||||
|                                         <div style="font-size:10px">单位:人</div> |  | ||||||
|                                     </div> |                                     </div> | ||||||
|                                 </div> |                                 </div> | ||||||
|                             </div> |                             </div> | ||||||
|                             <%--<div class="bw-item-content flex"> |  | ||||||
|                                 <div class="flex1 pd" > |  | ||||||
|                                      <div id='one'  style="width: 100%; height: 100%;"></div> |  | ||||||
|                                 </div> |  | ||||||
|                                <div class="flex1 pd" > |  | ||||||
|                                      <div id='one1'   style="width: 100%; height: 100%;"></div> |  | ||||||
|                                 </div> |  | ||||||
|                             </div>--%> |  | ||||||
|                         </div> |                         </div> | ||||||
|                     </div> |                     </div> | ||||||
|                 </div> |                 </div> | ||||||
|                 <div class="item flex6 itemlr"> |                 <div class="item flex2 iteml"> | ||||||
|                     <div class="bw-b-bottom"> |                     <div class="bw-b-bottom"> | ||||||
|                         <div class="bw-b-bottom-up"> |                         <div class="bw-b-bottom-up"> | ||||||
|                             <div class="tab-wrap" style="right:5px;"> |                             <div class="tab-wrap"> | ||||||
|                                 <div class="tab" data-value="4"> |                                 <div class="tab" data-value="3"> | ||||||
|                                     <div class="t-item active">按达因量</div> |                                     <div class="t-item active">按分包商</div> | ||||||
|                                     <div class="t-item ">按焊口数</div> |                                     <div class="spline"></div> | ||||||
|  |                                     <div class="t-item ">按装置</div> | ||||||
|                                 </div> |                                 </div> | ||||||
|                             </div> |                             </div> | ||||||
|  |                             <div class="bw-item-content flex1 pdtb0"> | ||||||
|  |                                 <div id='four' 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"> | ||||||
|  |                     <div class="bw-b-bottom"> | ||||||
|  |                         <div class="bw-b-bottom-up"> | ||||||
|  |                             <div class="tab-wrap" style="right: 5px;"> | ||||||
|  |                             </div> | ||||||
|                             <div class="bw-item-content"> |                             <div class="bw-item-content"> | ||||||
|                                 <div id='two' style="width: 100%; height: 100%;"></div> |                                 <div id='two' style="width: 100%; height: 100%;"></div> | ||||||
|                             </div> |                             </div> | ||||||
|                         </div> |                         </div> | ||||||
|                     </div> |                     </div> | ||||||
|                 </div> |                 </div> | ||||||
|                  |                 <div class="item flex2 iteml"> | ||||||
|                 <div class="item flex9 itemlr"> |  | ||||||
|                     <div class="bw-b-bottom"> |  | ||||||
|                         <div class="bw-b-bottom-up"> |  | ||||||
|                             <div class="tab-wrap" style="right:5px;"> |  | ||||||
|                                 <div class="tab" data-value="4"> |  | ||||||
|                                     <div class="t-item active">按分包商</div> |  | ||||||
|                                     <div class="t-item ">按单位工程</div> |  | ||||||
|                                     <div class="t-item">按材质类别</div> |  | ||||||
|                                 </div> |  | ||||||
|                             </div> |  | ||||||
|                             <div class="bw-item-content"> |  | ||||||
|                                 <div id='five' style="width: 100%; height: 100%;"></div> |  | ||||||
|                             </div> |  | ||||||
|                         </div> |  | ||||||
|                     </div> |  | ||||||
|                 </div> |  | ||||||
|             </div> |  | ||||||
|         </div> |  | ||||||
|         <div class="bottom-wrap flex3"> |  | ||||||
|             <div class="top flexV"> |  | ||||||
|                 <div class="item flex1 mgb"> |  | ||||||
|                     <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="t-item ">按单位工程</div> |  | ||||||
|                                     <div class="t-item">按材质类别</div> |  | ||||||
|                                 </div> |  | ||||||
|                             </div> |  | ||||||
|                             <div class="bw-item-content pd10"> |  | ||||||
|                                 <div id='four' style="width: 100%; height: 100%;"></div> |  | ||||||
|                             </div> |  | ||||||
|                         </div> |  | ||||||
|                     </div> |  | ||||||
|                 </div> |  | ||||||
|                 <div class="item flex1 mgb"> |  | ||||||
|                     <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="t-item ">按单位工程</div> |  | ||||||
|                                     <div class="t-item">按材质类别</div> |  | ||||||
|                                 </div> |  | ||||||
|                             </div> |  | ||||||
|                             <div class="bw-item-content pd10"> |  | ||||||
|                                 <div id='six' style="width: 100%; height: 100%;"></div> |  | ||||||
|                             </div> |  | ||||||
|                         </div> |  | ||||||
|                     </div> |  | ||||||
|                 </div> |  | ||||||
|                 <div class="item flex1 mgb"> |  | ||||||
|                     <div class="bw-b-bottom"> |                     <div class="bw-b-bottom"> | ||||||
|                         <div class="bw-b-bottom-up"> |                         <div class="bw-b-bottom-up"> | ||||||
|                             <div class="tab-wrap"> |                             <div class="tab-wrap"> | ||||||
|                                 <div class="tab" data-value="2"> |                                 <div class="tab" data-value="2"> | ||||||
|                                     <div class="t-item active">按分包商</div> |                                     <div class="t-item active">按分包商</div> | ||||||
|                                     <div class="t-item ">按单位工程</div> |                                     <div class="spline"></div> | ||||||
|                                     <div class="t-item">按材质类别</div> |                                     <div class="t-item">按装置</div> | ||||||
|                                 </div> |                                 </div> | ||||||
|                             </div> |                             </div> | ||||||
|                             <div class="bw-item-content pd10"> |                             <div class="bw-item-content"> | ||||||
|                                 <div id='three' style="width: 100%; height: 100%;"></div> |                                 <div id='three' style="width: 100%; height: 100%;"></div> | ||||||
|                             </div> |                             </div> | ||||||
|                         </div> |                         </div> | ||||||
|  | @ -270,12 +235,12 @@ | ||||||
|             //    formatter: '{a} <br/>{b} : {c}%' |             //    formatter: '{a} <br/>{b} : {c}%' | ||||||
|             //}, |             //}, | ||||||
|             title: { |             title: { | ||||||
|                 left:'center', |                 left: 'center', | ||||||
|                 text: title, |                 text: title, | ||||||
|                 textStyle: { |                 textStyle: { | ||||||
|                     color: '#278AC8', |                     color: '#278AC8', | ||||||
|                     fontSize: 14, |                     fontSize: 14, | ||||||
|                     fontWeight:'300' |                     fontWeight: '300' | ||||||
|                 }, |                 }, | ||||||
|                 show: true |                 show: true | ||||||
|             }, |             }, | ||||||
|  | @ -288,10 +253,10 @@ | ||||||
|                     pointer: { |                     pointer: { | ||||||
|                         show: true, |                         show: true, | ||||||
|                         length: '70%', |                         length: '70%', | ||||||
|                         width : 3 |                         width: 3 | ||||||
|                     }, |                     }, | ||||||
|                     axisTick : { //刻度线样式(及短线样式) |                     axisTick: { //刻度线样式(及短线样式) | ||||||
|                       length : 0 |                         length: 0 | ||||||
|                     }, |                     }, | ||||||
|                     splitLine: { |                     splitLine: { | ||||||
|                         length: 10, |                         length: 10, | ||||||
|  | @ -301,7 +266,7 @@ | ||||||
|                     }, |                     }, | ||||||
|                     axisLine: { |                     axisLine: { | ||||||
|                         lineStyle: { |                         lineStyle: { | ||||||
|                             width : 10//表盘宽度 |                             width: 10//表盘宽度 | ||||||
|                         } |                         } | ||||||
|                     }, |                     }, | ||||||
|                     min: 0, |                     min: 0, | ||||||
|  | @ -324,6 +289,7 @@ | ||||||
|     //category_One('one1', 76, '项目焊工总人数', '{value}人'); |     //category_One('one1', 76, '项目焊工总人数', '{value}人'); | ||||||
| </script> | </script> | ||||||
| <script type="text/javascript"> | <script type="text/javascript"> | ||||||
|  | 
 | ||||||
|     function category_two(id, xArr, data) { |     function category_two(id, xArr, data) { | ||||||
|         // 基于准备好的dom,初始化echarts实例 |         // 基于准备好的dom,初始化echarts实例 | ||||||
|         var myChart = echarts.init(document.getElementById(id)) |         var myChart = echarts.init(document.getElementById(id)) | ||||||
|  | @ -331,9 +297,9 @@ | ||||||
|         var option = { |         var option = { | ||||||
|             title: [{ |             title: [{ | ||||||
|                 text: '项目焊接工程量统计', |                 text: '项目焊接工程量统计', | ||||||
| 	            top:'10', |                 top: '10', | ||||||
|                 //left:'center', |                 //left:'center', | ||||||
| 	            textStyle:{ |                 textStyle: { | ||||||
|                     color: '#278AC8', |                     color: '#278AC8', | ||||||
|                     fontSize: 12, |                     fontSize: 12, | ||||||
|                     //fontWeight:300 |                     //fontWeight:300 | ||||||
|  | @ -347,8 +313,8 @@ | ||||||
|                 show: true, |                 show: true, | ||||||
|                 bottom: 0, |                 bottom: 0, | ||||||
|                 align: 'left', |                 align: 'left', | ||||||
|                 textStyle:{//图例文字的样式 |                 textStyle: {//图例文字的样式 | ||||||
|                     color:'#fff' |                     color: '#fff' | ||||||
|                 } |                 } | ||||||
|             }, |             }, | ||||||
|             color: ['#1E9B7D', '#8EC43D'], |             color: ['#1E9B7D', '#8EC43D'], | ||||||
|  | @ -362,7 +328,7 @@ | ||||||
|                     label: { |                     label: { | ||||||
|                         show: true, |                         show: true, | ||||||
|                         position: 'inside', |                         position: 'inside', | ||||||
|                         formatter: function(data){ return data.percent.toFixed(2)+"%";}  |                         formatter: function (data) { return data.percent.toFixed(2) + "%"; } | ||||||
|                     }, |                     }, | ||||||
|                     //emphasis: { |                     //emphasis: { | ||||||
|                     //    label: { |                     //    label: { | ||||||
|  | @ -375,8 +341,8 @@ | ||||||
|                         show: false |                         show: false | ||||||
|                     }, |                     }, | ||||||
|                     data: [ |                     data: [ | ||||||
|                         { value: 35, name: '已完成' }, |                         { value: data.num1, name: '已完成' }, | ||||||
|                         { value: 10, name: '未完成' } |                         { value: data.num2, name: '未完成' } | ||||||
|                     ], |                     ], | ||||||
|                     itemStyle: { |                     itemStyle: { | ||||||
|                         normal: { |                         normal: { | ||||||
|  | @ -409,29 +375,163 @@ | ||||||
|             //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |             //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } | ||||||
|         } |         } | ||||||
|     ] |     ] | ||||||
|     category_two('two', xArr, data) |     var two =<%=Two %>; | ||||||
|  |     category_two('two', xArr, two) | ||||||
| </script> | </script> | ||||||
| <script type="text/javascript"> | <script type="text/javascript"> | ||||||
|     function category_Three(id, xArr, series, title) { |     function category_Three(id, xArr, data, num) { | ||||||
|         // 基于准备好的dom,初始化echarts实例 |         // 基于准备好的dom,初始化echarts实例 | ||||||
|         var myChart = echarts.init(document.getElementById(id)) |         var myChart = echarts.init(document.getElementById(id)) | ||||||
|         // 指定图表的配置项和数据 |         // 指定图表的配置项和数据 | ||||||
|         var option = { |         var option = { | ||||||
|             title: { |             title: { | ||||||
|                 // left:'center', |                 // left:'center', | ||||||
|                 text: title, |                 text: '焊接完成量', | ||||||
|                 textStyle: { |                 textStyle: { | ||||||
|                     fontSize: 12, |  | ||||||
|                     color: '#fff', |                     color: '#fff', | ||||||
|                     fontWeight:'300' |                     fontWeight: 'normal', | ||||||
|  |                     fontSize: 12 | ||||||
|                 }, |                 }, | ||||||
|                 show: true |                 show: true | ||||||
|             }, |             }, | ||||||
|             tooltip: {}, |             tooltip: {}, | ||||||
|             legend: { |             legend: { | ||||||
|                 //data: ['销量'], |                 left: '10%', | ||||||
|  |                 show: true, | ||||||
|  |                 textStyle: {//图例文字的样式 | ||||||
|  |                     color: '#ffffff', | ||||||
|  |                     fontSize: 10, | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             xAxis: { | ||||||
|  |                 axisTick: { | ||||||
|                     show: false |                     show: false | ||||||
|                 }, |                 }, | ||||||
|  |                 axisLine: { | ||||||
|  |                     lineStyle: { | ||||||
|  |                         color: 'rgba(255, 255, 255, 0.3)', | ||||||
|  |                     } | ||||||
|  |                 }, | ||||||
|  |                 axisLabel: { | ||||||
|  |                     show: true, | ||||||
|  |                     textStyle: { | ||||||
|  |                         color: 'rgba(255, 255, 255, 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(255, 255, 255, 0.3)' | ||||||
|  |                     } | ||||||
|  |                 }, | ||||||
|  |                 axisLabel: { | ||||||
|  |                     show: true, | ||||||
|  |                     textStyle: { | ||||||
|  |                         color: 'rgba(255, 255, 255, 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(255, 255, 255, 0.3)' | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         // 使用刚指定的配置项和数据显示图表。 | ||||||
|  |         myChart.setOption(option) | ||||||
|  |     } | ||||||
|  |     var three =<%=Three %>; | ||||||
|  |     //var xArr = ["分包1", "分包2", "分包3", "分包4", "分包5", "分包6", "分包7", "分包8", "分包9"] | ||||||
|  |     var xArr = three.categories | ||||||
|  |     var data = [ | ||||||
|  |         { | ||||||
|  |             name: '已完成', | ||||||
|  |             type: 'bar', | ||||||
|  |             stack: '总量', | ||||||
|  |             barWidth: 40, | ||||||
|  |             //data: [3, 5, 8, 10, 6, 4, 5, 9, 12], | ||||||
|  |             data: three.series[0].data, | ||||||
|  |             itemStyle: { normal: { color: 'rgba(162,63,21, 1)' } } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |             name: '未完成', | ||||||
|  |             type: 'bar', | ||||||
|  |             stack: '总量', | ||||||
|  |             barWidth: 40, | ||||||
|  |             //data: [2, 7, 5, 9, 12, 9, 2, 8, 10], | ||||||
|  |             data: three.series[1].data, | ||||||
|  |             itemStyle: { normal: { color: 'rgba(206,143,135,1)' } } | ||||||
|  |         } | ||||||
|  |     ] | ||||||
|  |     category_Three('three', xArr, data, three.xFontNum) | ||||||
|  | </script> | ||||||
|  | <script type="text/javascript"> | ||||||
|  |     function line(id, xArr, data) { | ||||||
|  |         // 基于准备好的dom,初始化echarts实例 | ||||||
|  |         var myChart = echarts.init(document.getElementById(id)) | ||||||
|  |         // 指定图表的配置项和数据 | ||||||
|  |         var option = { | ||||||
|  |             title: { | ||||||
|  |                 //left: 'center', | ||||||
|  |                 text: '一次合格率', | ||||||
|  |                 textStyle: { | ||||||
|  |                     color: '#fff', | ||||||
|  |                     fontWeight: 'normal', | ||||||
|  |                     fontSize: 12 | ||||||
|  |                 }, | ||||||
|  |                 show: true | ||||||
|  |             }, | ||||||
|  |             tooltip: { | ||||||
|  |                 formatter: '{a}<br />{b}: {c}%' | ||||||
|  |             }, | ||||||
|  |             legend: { | ||||||
|  |                 show: true, | ||||||
|  |                 textStyle: { | ||||||
|  |                     color: '#fff' | ||||||
|  |                 }, | ||||||
|  |                 left: '10%', | ||||||
|  |             }, | ||||||
|             xAxis: { |             xAxis: { | ||||||
|                 axisTick: { |                 axisTick: { | ||||||
|                     show: false |                     show: false | ||||||
|  | @ -464,21 +564,22 @@ | ||||||
|                     show: true, |                     show: true, | ||||||
|                     textStyle: { |                     textStyle: { | ||||||
|                         color: 'rgba(255, 255, 255, 0.8)' |                         color: 'rgba(255, 255, 255, 0.8)' | ||||||
|                     } |                     }, | ||||||
|  |                     formatter: '{value} %' | ||||||
|                 } |                 } | ||||||
|             }, |             }, | ||||||
|             series: series, |             series: data, | ||||||
|             grid: { |             grid: { | ||||||
|                 top: '25%', |                 top: '15%', | ||||||
|                 left: '0%', |                 left: '10', | ||||||
|                 right: '0%', |                 right: '10', | ||||||
|                 bottom: '0%', |                 bottom: '0%', | ||||||
|                 containLabel: true, |                 containLabel: true, | ||||||
|                 backgroundColor: 'rgba(0,162,233, 0.01)', |                 backgroundColor: 'rgba(0,162,233, 0.01)', | ||||||
|                 // borderColor: 'rgba(0,162,233, 1)' |                 // borderColor: 'rgba(0,162,233, 1)' | ||||||
|             }, |             }, | ||||||
|             itemStyle: { |             itemStyle: { | ||||||
|                 color: 'rgba(200,201,10, 1)' |                 //color: 'rgba(200,201,10, 1)' | ||||||
|             }, |             }, | ||||||
|             backgroundColor: 'rgba(0,162,233, 0.01)', |             backgroundColor: 'rgba(0,162,233, 0.01)', | ||||||
|             textStyle: { |             textStyle: { | ||||||
|  | @ -489,26 +590,23 @@ | ||||||
|         // 使用刚指定的配置项和数据显示图表。 |         // 使用刚指定的配置项和数据显示图表。 | ||||||
|         myChart.setOption(option) |         myChart.setOption(option) | ||||||
|     } |     } | ||||||
|     var xArr = ["类别1", "类别2", "类别3", "类别4", "类别5", "类别6", "类别7", "类别8", "类别9"] |     var four =<%=Four %>; | ||||||
|     var data = [12, 5, 28, 43, 22, 11, 23, 50, 8] |     var xArr1 = four.categories | ||||||
|     var series = [{ |     var data1 = [{ | ||||||
|         name: '数量', |         name: '分包1', | ||||||
|         type: 'bar', |         type: 'line', | ||||||
|          barWidth: 40, |         data: [76, 86, 96], | ||||||
|         data: data, |     }, { | ||||||
|         itemStyle: { normal: { color: 'rgba(236,157,27, 1)' } } |         name: '分包2', | ||||||
|     }]; |         type: 'line', | ||||||
|     |         data: [56, 66, 76], | ||||||
|     category_Three('three', xArr, series, '焊工业绩分析') |     }, { | ||||||
| 
 |         name: '分包3', | ||||||
|      var series1 = [{ |         type: 'line', | ||||||
|         name: '数量', |         data: [51, 61, 71], | ||||||
|          type: 'bar', |     }] | ||||||
|          barWidth: 40, |     var data2 = four.series3 | ||||||
|         data: data, |     line('four', xArr1, data2) | ||||||
|         itemStyle: { normal: { color: 'rgba(57,178,210, 1)' } } |  | ||||||
|     }]; |  | ||||||
|     category_Three('four', xArr, series1, '焊接一次合格率') |  | ||||||
| </script> | </script> | ||||||
| <script type="text/javascript"> | <script type="text/javascript"> | ||||||
|     function category_five(id, xArr, data) { |     function category_five(id, xArr, data) { | ||||||
|  | @ -540,7 +638,7 @@ | ||||||
|                     indicator: (function () { |                     indicator: (function () { | ||||||
|                         var res = []; |                         var res = []; | ||||||
|                         for (var i = 1; i <= 12; i++) { |                         for (var i = 1; i <= 12; i++) { | ||||||
|                             res.push({ text: '问题' + i , max: 100 }); |                             res.push({ text: '问题' + i, max: 100 }); | ||||||
|                         } |                         } | ||||||
|                         return res; |                         return res; | ||||||
|                     })(), |                     })(), | ||||||
|  | @ -571,7 +669,7 @@ | ||||||
|         myChart.setOption(option) |         myChart.setOption(option) | ||||||
|     } |     } | ||||||
|     var xArr = ["类别1", "类别2", "类别3", "类别4", "类别5", "类别6", "类别7"] |     var xArr = ["类别1", "类别2", "类别3", "类别4", "类别5", "类别6", "类别7"] | ||||||
|     var data = [ { |     var data = [{ | ||||||
|         name: '', |         name: '', | ||||||
|         type: 'line', |         type: 'line', | ||||||
|         data: [23, 25, 22, 13, 4, 12, 9], |         data: [23, 25, 22, 13, 4, 12, 9], | ||||||
|  | @ -597,7 +695,7 @@ | ||||||
|                 textStyle: { |                 textStyle: { | ||||||
|                     color: '#fff', |                     color: '#fff', | ||||||
|                     fontSize: 12, |                     fontSize: 12, | ||||||
|                     fontWeight:'300' |                     fontWeight: '300' | ||||||
|                 }, |                 }, | ||||||
|                 show: true |                 show: true | ||||||
|             }, |             }, | ||||||
|  | @ -663,7 +761,7 @@ | ||||||
|         myChart.setOption(option) |         myChart.setOption(option) | ||||||
|     } |     } | ||||||
|     var xArr = ["类别1", "类别2", "类别3", "类别4", "类别5", "类别6", "类别7"] |     var xArr = ["类别1", "类别2", "类别3", "类别4", "类别5", "类别6", "类别7"] | ||||||
|     var data = [ { |     var data = [{ | ||||||
|         name: '', |         name: '', | ||||||
|         type: 'line', |         type: 'line', | ||||||
|         data: [23, 25, 22, 13, 4, 12, 9], |         data: [23, 25, 22, 13, 4, 12, 9], | ||||||
|  | @ -748,126 +846,66 @@ | ||||||
|             //category_One('one', xArr, data) |             //category_One('one', xArr, data) | ||||||
|         } |         } | ||||||
|         else if (value == 2) { |         else if (value == 2) { | ||||||
|             var xArr = ["分包一", "分包二", "分包三"] |             var three =<%=Three %>; | ||||||
|  |             var three2 =<%=Three2 %>; | ||||||
|  |             if (index == 0) { | ||||||
|  |                 var xArr = three.categories | ||||||
|                 var data = [ |                 var data = [ | ||||||
|                     { |                     { | ||||||
|                     name: '计划值', |                         name: '已完成', | ||||||
|                         type: 'bar', |                         type: 'bar', | ||||||
|  |                         stack: '总量', | ||||||
|                         barWidth: 40, |                         barWidth: 40, | ||||||
|                     data: [0.23, 0.35, 0.42], |                         data: three.series[0].data, | ||||||
|                     //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |                         itemStyle: { normal: { color: 'rgba(162,63,21, 1)' } } | ||||||
|                     }, |                     }, | ||||||
|                     { |                     { | ||||||
|                     name: '实际值', |                         name: '未完成', | ||||||
|                         type: 'bar', |                         type: 'bar', | ||||||
|  |                         stack: '总量', | ||||||
|                         barWidth: 40, |                         barWidth: 40, | ||||||
|                     data: [0.2, 0.28, 0.35], |                         data: three.series[1].data, | ||||||
|                     //itemStyle: { normal: { color: 'rgba(231,236,114,.9)' } } |                         itemStyle: { normal: { color: 'rgba(206,143,135,1)' } } | ||||||
|                 }, |  | ||||||
|                 { |  | ||||||
|                     name: '累计计划值', |  | ||||||
|                     type: 'line', |  | ||||||
|                     smooth: true, |  | ||||||
|                     data: [0.23, 0.58, 1], |  | ||||||
|                     //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |  | ||||||
|                 }, |  | ||||||
|                 { |  | ||||||
|                     name: '累计实际值', |  | ||||||
|                     type: 'line', |  | ||||||
|                     smooth: true, |  | ||||||
|                     data: [0.2, 0.48, 0.83], |  | ||||||
|                     //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |  | ||||||
|                     } |                     } | ||||||
|                 ] |                 ] | ||||||
|             if (index == 2) { |                 category_Three('three', xArr, data, three.xFontNum) | ||||||
|                 xArr = ["单位工程一", "单位工程二", "单位工程三"] |             } | ||||||
|                 data = [ |             else if (index == 2) { | ||||||
|  |                 var xArr = three2.categories | ||||||
|  |                 var data = [ | ||||||
|                     { |                     { | ||||||
|                         name: '计划值', |                         name: '已完成', | ||||||
|                         type: 'bar', |                         type: 'bar', | ||||||
|  |                         stack: '总量', | ||||||
|                         barWidth: 40, |                         barWidth: 40, | ||||||
|                         data: [0.20, 0.33, 0.47], |                         data: three2.series[0].data, | ||||||
|                         //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |                         itemStyle: { normal: { color: 'rgba(162,63,21, 1)' } } | ||||||
|                     }, |                     }, | ||||||
|                     { |                     { | ||||||
|                         name: '实际值', |                         name: '未完成', | ||||||
|                         type: 'bar', |                         type: 'bar', | ||||||
|  |                         stack: '总量', | ||||||
|                         barWidth: 40, |                         barWidth: 40, | ||||||
|                         data: [0.15, 0.25, 0.33], |                         data: three2.series[1].data, | ||||||
|                         //itemStyle: { normal: { color: 'rgba(231,236,114,.9)' } } |                         itemStyle: { normal: { color: 'rgba(206,143,135,1)' } } | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         name: '累计计划值', |  | ||||||
|                         type: 'line', |  | ||||||
|                         smooth: true, |  | ||||||
|                         data: [0.20, 0.53, 1], |  | ||||||
|                         //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         name: '累计实际值', |  | ||||||
|                         type: 'line', |  | ||||||
|                         smooth: true, |  | ||||||
|                         data: [0.15, 0.4, 0.73], |  | ||||||
|                         //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |  | ||||||
|                     } |                     } | ||||||
|                 ] |                 ] | ||||||
|  |                 category_Three('three', xArr, data, three2.xFontNum) | ||||||
|             } |             } | ||||||
|             else if (index == 4) { |  | ||||||
|                 xArr = ["建筑", "安装"] |  | ||||||
|                 data = [ |  | ||||||
|                     { |  | ||||||
|                         name: '计划值', |  | ||||||
|                         type: 'bar', |  | ||||||
|                          barWidth: 40, |  | ||||||
|                         data: [0.45, 0.55], |  | ||||||
|                         //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         name: '实际值', |  | ||||||
|                         type: 'bar', |  | ||||||
|                          barWidth: 40, |  | ||||||
|                         data: [0.36, 0.43], |  | ||||||
|                         //itemStyle: { normal: { color: 'rgba(231,236,114,.9)' } } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         name: '累计计划值', |  | ||||||
|                         type: 'line', |  | ||||||
|                         smooth: true, |  | ||||||
|                         data: [0.45, 1], |  | ||||||
|                         //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         name: '累计实际值', |  | ||||||
|                         type: 'line', |  | ||||||
|                         smooth: true, |  | ||||||
|                         data: [0.36, 0.79], |  | ||||||
|                         //itemStyle: { normal: {  color: 'rgba(200,201,10, 1)' } } |  | ||||||
|                     } |  | ||||||
|                 ] |  | ||||||
|             } |  | ||||||
|             category_Two('two', xArr, data) |  | ||||||
|         } |         } | ||||||
|         else if (value == 3) { |         else if (value == 3) { | ||||||
|             var data = [{ value: 10, name: '分包一' }, |             var four =<%=Four %>; | ||||||
|             { value: 5, name: '分包二' }, |             var four2 =<%=Four2 %>; | ||||||
|             { value: 15, name: '分包三' }, |             if (index == 0) { | ||||||
|             { value: 25, name: '分包四' }, |                 var xArr1 = four.categories | ||||||
|             { value: 20, name: '分包五' }, |                 var data2 = four.series3 | ||||||
|             { value: 35, name: '分包六' }]; |                 line('four', xArr1, data2) | ||||||
|             if (index == 2) { |  | ||||||
|                 data = [{ value: 25, name: '单位工程一' }, |  | ||||||
|                 { value: 35, name: '单位工程二' }, |  | ||||||
|                 { value: 30, name: '单位工程三' }]; |  | ||||||
|             } |             } | ||||||
|             else if (index == 4) { |             else if (index == 2) { | ||||||
|                 data = [{ value: 45, name: '建筑' }, |                 var xArr1 = four2.categories | ||||||
|                 { value: 55, name: '安装' }]; |                 var data2 = four2.series3 | ||||||
|  |                 line('four', xArr1, data2) | ||||||
|             } |             } | ||||||
|             else if (index == 6) { |  | ||||||
|                 data = [{ value: 35, name: '质量不合格' }, |  | ||||||
|                 { value: 65, name: '质量缺陷' }]; |  | ||||||
|             } |  | ||||||
|             pie('three', data) |  | ||||||
|         } |         } | ||||||
|         else if (value == 4) { |         else if (value == 4) { | ||||||
|             var xArr = ["主项一", "主项二", "主项三", "主项四", "主项五"] |             var xArr = ["主项一", "主项二", "主项三", "主项四", "主项五"] | ||||||
|  |  | ||||||
|  | @ -4,6 +4,8 @@ using System.Linq; | ||||||
| using System.Web; | using System.Web; | ||||||
| using System.Web.UI; | using System.Web.UI; | ||||||
| using System.Web.UI.WebControls; | using System.Web.UI.WebControls; | ||||||
|  | using BLL; | ||||||
|  | using Newtonsoft.Json; | ||||||
| 
 | 
 | ||||||
| namespace FineUIPro.Web | namespace FineUIPro.Web | ||||||
| { | { | ||||||
|  | @ -11,7 +13,203 @@ namespace FineUIPro.Web | ||||||
|     { |     { | ||||||
|         protected void Page_Load(object sender, EventArgs e) |         protected void Page_Load(object sender, EventArgs e) | ||||||
|         { |         { | ||||||
| 
 |             if (!IsPostBack) | ||||||
|  |             { | ||||||
|  |                 var firstOKRates = from x in Funs.DB.HJGL_FirstOKRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "unit" orderby x.Months descending select x; | ||||||
|  |                 var units = firstOKRates.Where(x => x.Type == "unit").Select(x => x.Name).Distinct(); | ||||||
|  |                 if (firstOKRates.Count() > 0) | ||||||
|  |                 { | ||||||
|  |                     int totalNum = 0, oKNum = 0; | ||||||
|  |                     foreach (var item in units) | ||||||
|  |                     { | ||||||
|  |                         var f = firstOKRates.FirstOrDefault(x => x.Name == item);   //取每个单位最后一个月的一次合格率数据进行汇总 | ||||||
|  |                         if (f != null) | ||||||
|  |                         { | ||||||
|  |                             totalNum += f.TotalNum ?? 0; | ||||||
|  |                             oKNum += f.OKNum ?? 0; | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|  |                     if (totalNum > 0) | ||||||
|  |                     { | ||||||
|  |                         var a = Convert.ToDouble(oKNum); | ||||||
|  |                         var b = Convert.ToDouble(totalNum); | ||||||
|  |                         this.divFirstOKRate.InnerHtml = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 2)).ToString(); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|  |                 { | ||||||
|  |                     this.divFirstOKRate.InnerHtml = "0"; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         #region 项目焊接工程量统计 | ||||||
|  |         protected string Two | ||||||
|  |         { | ||||||
|  |             get | ||||||
|  |             { | ||||||
|  |                 Model.Num num = new Model.Num(); | ||||||
|  |                 var finishRates = from x in Funs.DB.HJGL_FinishRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "unit" select x; | ||||||
|  |                 int totalNum = 0, finishNum = 0; | ||||||
|  |                 foreach (var item in finishRates) | ||||||
|  |                 { | ||||||
|  |                     totalNum += item.TotalNum ?? 0; | ||||||
|  |                     finishNum += item.FinishNum ?? 0; | ||||||
|  |                 } | ||||||
|  |                 int notFinishNum = totalNum - finishNum; | ||||||
|  |                 num.num1 = finishNum; | ||||||
|  |                 num.num2 = notFinishNum; | ||||||
|  |                 return JsonConvert.SerializeObject(num); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region 一次合格率 | ||||||
|  |         protected string Four | ||||||
|  |         { | ||||||
|  |             get | ||||||
|  |             { | ||||||
|  |                 List<Model.SingleSerie2> series = new List<Model.SingleSerie2>(); | ||||||
|  |                 Model.BusinessColumn businessColumn = new Model.BusinessColumn(); | ||||||
|  |                 List<string> listCategories = new List<string>(); | ||||||
|  |                 businessColumn.title = "一次合格率"; | ||||||
|  |                 var views = (from x in Funs.DB.HJGL_FirstOKRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "unit" orderby x.Months select x).ToList(); | ||||||
|  |                 var months = views.Select(x => x.Months).Distinct().ToList(); | ||||||
|  |                 var units = views.Select(x => x.Name).Distinct().ToList(); | ||||||
|  |                 for (int i = 0; i < months.Count; i++) | ||||||
|  |                 { | ||||||
|  |                     listCategories.Add(string.Format("{0:yyyy-MM}", views[i].Months)); | ||||||
|  |                 } | ||||||
|  |                 for (int i = 0; i < units.Count; i++) | ||||||
|  |                 { | ||||||
|  |                     Model.SingleSerie2 s = new Model.SingleSerie2(); | ||||||
|  |                     s.name = units[i]; | ||||||
|  |                     s.type = "line"; | ||||||
|  |                     List<double?> listdata = new List<double?>(); | ||||||
|  |                     for (int j = 0; j < months.Count; j++) | ||||||
|  |                     { | ||||||
|  |                         var item = views.FirstOrDefault(x => x.Name == units[i] && x.Months == months[j]); | ||||||
|  |                         if (item != null) | ||||||
|  |                         { | ||||||
|  |                             listdata.Add(Convert.ToDouble(item.Rate.Replace("%", ""))); | ||||||
|  |                         } | ||||||
|  |                         else | ||||||
|  |                         { | ||||||
|  |                             listdata.Add(null); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     s.data = listdata; | ||||||
|  |                     series.Add(s); | ||||||
|  |                 } | ||||||
|  |                 businessColumn.categories = listCategories; | ||||||
|  |                 businessColumn.series3 = series; | ||||||
|  |                 return JsonConvert.SerializeObject(businessColumn); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         protected string Four2 | ||||||
|  |         { | ||||||
|  |             get | ||||||
|  |             { | ||||||
|  |                 List<Model.SingleSerie2> series = new List<Model.SingleSerie2>(); | ||||||
|  |                 Model.BusinessColumn businessColumn = new Model.BusinessColumn(); | ||||||
|  |                 List<string> listCategories = new List<string>(); | ||||||
|  |                 businessColumn.title = "一次合格率"; | ||||||
|  |                 var views = (from x in Funs.DB.HJGL_FirstOKRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "device" orderby x.Months select x).ToList(); | ||||||
|  |                 var months = views.Select(x => x.Months).Distinct().ToList(); | ||||||
|  |                 var devices = views.Select(x => x.Name).Distinct().ToList(); | ||||||
|  |                 for (int i = 0; i < months.Count; i++) | ||||||
|  |                 { | ||||||
|  |                     listCategories.Add(string.Format("{0:yyyy-MM}", views[i].Months)); | ||||||
|  |                 } | ||||||
|  |                 for (int i = 0; i < devices.Count; i++) | ||||||
|  |                 { | ||||||
|  |                     Model.SingleSerie2 s = new Model.SingleSerie2(); | ||||||
|  |                     s.name = devices[i]; | ||||||
|  |                     s.type = "line"; | ||||||
|  |                     List<double?> listdata = new List<double?>(); | ||||||
|  |                     for (int j = 0; j < months.Count; j++) | ||||||
|  |                     { | ||||||
|  |                         var item = views.FirstOrDefault(x => x.Name == devices[i] && x.Months == months[j]); | ||||||
|  |                         if (item != null) | ||||||
|  |                         { | ||||||
|  |                             listdata.Add(Convert.ToDouble(item.Rate.Replace("%", ""))); | ||||||
|  |                         } | ||||||
|  |                         else | ||||||
|  |                         { | ||||||
|  |                             listdata.Add(null); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                     s.data = listdata; | ||||||
|  |                     series.Add(s); | ||||||
|  |                 } | ||||||
|  |                 businessColumn.categories = listCategories; | ||||||
|  |                 businessColumn.series3 = series; | ||||||
|  |                 return JsonConvert.SerializeObject(businessColumn); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region  焊接完成量 | ||||||
|  |         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 = 18; | ||||||
|  |                 var views = (from x in Funs.DB.HJGL_FinishRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "unit" orderby x.Code select x).ToList(); | ||||||
|  |                 Model.SingleSerie s = new Model.SingleSerie(); | ||||||
|  |                 Model.SingleSerie s2 = new Model.SingleSerie(); | ||||||
|  |                 List<double> listdata = new List<double>(); | ||||||
|  |                 List<double> listdata2 = new List<double>(); | ||||||
|  |                 foreach (var item in views) | ||||||
|  |                 { | ||||||
|  |                     listCategories.Add(item.Name); | ||||||
|  |                     listdata.Add(item.FinishNum ?? 0); | ||||||
|  |                     listdata2.Add((item.TotalNum ?? 0) - (item.FinishNum ?? 0)); | ||||||
|  |                 } | ||||||
|  |                 s.data = listdata; | ||||||
|  |                 s2.data = listdata2; | ||||||
|  |                 series.Add(s); | ||||||
|  |                 series.Add(s2); | ||||||
|  |                 businessColumn.categories = listCategories; | ||||||
|  |                 businessColumn.series = series; | ||||||
|  |                 return JsonConvert.SerializeObject(businessColumn); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         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 = 18; | ||||||
|  |                 var views = (from x in Funs.DB.HJGL_FinishRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "device" orderby x.Code select x).ToList(); | ||||||
|  |                 Model.SingleSerie s = new Model.SingleSerie(); | ||||||
|  |                 Model.SingleSerie s2 = new Model.SingleSerie(); | ||||||
|  |                 List<double> listdata = new List<double>(); | ||||||
|  |                 List<double> listdata2 = new List<double>(); | ||||||
|  |                 foreach (var item in views) | ||||||
|  |                 { | ||||||
|  |                     listCategories.Add(item.Name); | ||||||
|  |                     listdata.Add(item.FinishNum ?? 0); | ||||||
|  |                     listdata2.Add((item.TotalNum ?? 0) - (item.FinishNum ?? 0)); | ||||||
|  |                 } | ||||||
|  |                 s.data = listdata; | ||||||
|  |                 s2.data = listdata2; | ||||||
|  |                 series.Add(s); | ||||||
|  |                 series.Add(s2); | ||||||
|  |                 businessColumn.categories = listCategories; | ||||||
|  |                 businessColumn.series = series; | ||||||
|  |                 return JsonConvert.SerializeObject(businessColumn); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         #endregion | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | @ -20,5 +20,14 @@ namespace FineUIPro.Web { | ||||||
|         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 |         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 | ||||||
|         /// </remarks> |         /// </remarks> | ||||||
|         protected global::System.Web.UI.HtmlControls.HtmlHead Head1; |         protected global::System.Web.UI.HtmlControls.HtmlHead Head1; | ||||||
|  |          | ||||||
|  |         /// <summary> | ||||||
|  |         /// divFirstOKRate 控件。 | ||||||
|  |         /// </summary> | ||||||
|  |         /// <remarks> | ||||||
|  |         /// 自动生成的字段。 | ||||||
|  |         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 | ||||||
|  |         /// </remarks> | ||||||
|  |         protected global::System.Web.UI.HtmlControls.HtmlGenericControl divFirstOKRate; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -16,5 +16,6 @@ namespace Model | ||||||
|         public List<SingleSerie> series { get; set; } |         public List<SingleSerie> series { get; set; } | ||||||
| 
 | 
 | ||||||
|         public List<SingleSerie> series2 { get; set; } |         public List<SingleSerie> series2 { get; set; } | ||||||
|  |         public List<SingleSerie2> series3 { get; set; } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -71204,7 +71204,7 @@ namespace Model | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QualifiedProjectCode", DbType="NVarChar(50)")] | 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QualifiedProjectCode", DbType="NVarChar(500)")] | ||||||
| 		public string QualifiedProjectCode | 		public string QualifiedProjectCode | ||||||
| 		{ | 		{ | ||||||
| 			get | 			get | ||||||
|  | @ -245489,7 +245489,7 @@ namespace Model | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(2000)")] | 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(200)")] | ||||||
| 		public string Address | 		public string Address | ||||||
| 		{ | 		{ | ||||||
| 			get | 			get | ||||||
|  | @ -245553,7 +245553,7 @@ namespace Model | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] | 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(200)")] | ||||||
| 		public string WorkAreaName | 		public string WorkAreaName | ||||||
| 		{ | 		{ | ||||||
| 			get | 			get | ||||||
|  | @ -327152,7 +327152,7 @@ namespace Model | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(2000)")] | 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(200)")] | ||||||
| 		public string Address | 		public string Address | ||||||
| 		{ | 		{ | ||||||
| 			get | 			get | ||||||
|  | @ -327168,7 +327168,7 @@ namespace Model | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] | 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(200)")] | ||||||
| 		public string WorkAreaName | 		public string WorkAreaName | ||||||
| 		{ | 		{ | ||||||
| 			get | 			get | ||||||
|  | @ -334640,7 +334640,7 @@ namespace Model | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(100)")] | 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="NVarChar(102)")] | ||||||
| 		public string Name | 		public string Name | ||||||
| 		{ | 		{ | ||||||
| 			get | 			get | ||||||
|  |  | ||||||
|  | @ -184,6 +184,7 @@ | ||||||
|     <Compile Include="PieData.cs" /> |     <Compile Include="PieData.cs" /> | ||||||
|     <Compile Include="Properties\AssemblyInfo.cs" /> |     <Compile Include="Properties\AssemblyInfo.cs" /> | ||||||
|     <Compile Include="SingleSerie.cs" /> |     <Compile Include="SingleSerie.cs" /> | ||||||
|  |     <Compile Include="SingleSerie2.cs" /> | ||||||
|     <Compile Include="SpSysMenuItem.cs" /> |     <Compile Include="SpSysMenuItem.cs" /> | ||||||
|     <Compile Include="SpSysUserItem.cs" /> |     <Compile Include="SpSysUserItem.cs" /> | ||||||
|     <Compile Include="APIItem\ResponeData.cs" /> |     <Compile Include="APIItem\ResponeData.cs" /> | ||||||
|  |  | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | using System; | ||||||
|  | using System.Collections.Generic; | ||||||
|  | using System.Linq; | ||||||
|  | using System.Text; | ||||||
|  | using System.Threading.Tasks; | ||||||
|  | 
 | ||||||
|  | namespace Model | ||||||
|  | { | ||||||
|  |     public class SingleSerie2 | ||||||
|  |     { | ||||||
|  |         public string name { get; set; } | ||||||
|  |         public string type { get; set; } | ||||||
|  |         public List<double?> data { get; set; } | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue