1118-gaofei-焊接首页
This commit is contained in:
parent
0aa91d6a8f
commit
ed3517280a
|
@ -42,8 +42,9 @@
|
|||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Apache.NMS.ActiveMQ">
|
||||
<HintPath>..\packages\Apache.NMS.ActiveMQ.1.7.2\lib\net40\Apache.NMS.ActiveMQ.dll</HintPath>
|
||||
<Reference Include="Apache.NMS.ActiveMQ, Version=1.7.2.4108, Culture=neutral, PublicKeyToken=82756feee3957618, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>bin\Debug\Apache.NMS.ActiveMQ.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EmitMapper, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EmitMapper.1.0.0\lib\EmitMapper.dll</HintPath>
|
||||
|
|
|
@ -57,7 +57,8 @@
|
|||
</Target>
|
||||
<ItemGroup>
|
||||
<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 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>
|
||||
|
|
|
@ -12,32 +12,41 @@
|
|||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.pd {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.pd10 {
|
||||
padding: 10px !important;
|
||||
}
|
||||
|
||||
.flexV {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.wrap {
|
||||
height: 100%;
|
||||
padding: 15px;
|
||||
}
|
||||
.bw-item-content{
|
||||
padding: 0;
|
||||
|
||||
.iteml {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.itemb {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.bottom-wrap {
|
||||
padding: 0;
|
||||
margin-bottom:0;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.bottom-wrap:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.top {
|
||||
display: flex;
|
||||
display: -webkit-flex;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.bw-b-bottom {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
@ -50,133 +59,142 @@
|
|||
box-shadow: none;
|
||||
}
|
||||
|
||||
.bw-item-content {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.top {
|
||||
display: flex;
|
||||
display: -webkit-flex;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.top .item {
|
||||
}
|
||||
|
||||
.bw-b {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.bw-b-bottom-up {
|
||||
}
|
||||
|
||||
.tab-wrap {
|
||||
left: auto;
|
||||
right: 15px;
|
||||
top: 8px;
|
||||
top: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.tab-wrap .tab{
|
||||
border-radius:0 !important;
|
||||
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 {
|
||||
|
||||
.tab .t-item {
|
||||
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;
|
||||
padding: 2px;
|
||||
}
|
||||
.itemlr{
|
||||
margin: 0 5px 5px 0;
|
||||
}
|
||||
.mgb{
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.flex4 {
|
||||
-webkit-flex: 4;
|
||||
/* Chrome */
|
||||
-ms-flex: 4; /* IE 10 */
|
||||
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- */
|
||||
|
||||
.tip {
|
||||
width: 25px;
|
||||
height: 13px;
|
||||
background-color: #258F76;
|
||||
border-radius: 2px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.info-wrap {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.info-wrap .info-item {
|
||||
align-items: center;
|
||||
margin: 0 20px;
|
||||
}
|
||||
|
||||
.info-wrap .info-item .title {
|
||||
margin-bottom: 5px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.tip-next {
|
||||
background-color: #92BF55;
|
||||
}
|
||||
|
||||
.info-wrap .info-item .item {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #267AA4;
|
||||
border-radius:15px;
|
||||
border-radius: 25px;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.info-wrap .info-item .item .i-num {
|
||||
color: #F48A5C;
|
||||
font-size:28px;
|
||||
font-size: 48px;
|
||||
}
|
||||
|
||||
.info-wrap .info-item .item .i-num-c {
|
||||
color: #C1DF8E;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrap flex">
|
||||
<div class="wrap flex flexV">
|
||||
<div class="bottom-wrap flex1">
|
||||
<div class="top flexV">
|
||||
<div class="item flex4 itemlr">
|
||||
<div class="bw-b-bottom">
|
||||
<div class="top flex">
|
||||
<div class="item flex1 flex flexV">
|
||||
<div class="bw-b-bottom" style="margin-bottom: 5px;">
|
||||
<div class="bw-b-bottom-up">
|
||||
<div class="info-wrap flex">
|
||||
<div class="info-item flex flexV flex1">
|
||||
<div class="title">一次合格率</div>
|
||||
<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>
|
||||
</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 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 class="item flex2 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>
|
||||
</div>--%>
|
||||
</div>
|
||||
<div class="bw-item-content flex1 pdtb0">
|
||||
<div id='four' style="width: 100%; height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item flex6 itemlr">
|
||||
</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 class="tab" data-value="4">
|
||||
<div class="t-item active">按达因量</div>
|
||||
<div class="t-item ">按焊口数</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bw-item-content">
|
||||
<div id='two' style="width: 100%; height: 100%;"></div>
|
||||
|
@ -184,70 +202,17 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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="item flex2 iteml">
|
||||
<div class="bw-b-bottom">
|
||||
<div class="bw-b-bottom-up">
|
||||
<div class="tab-wrap">
|
||||
<div class="tab" data-value="2">
|
||||
<div class="t-item active">按分包商</div>
|
||||
<div class="t-item ">按单位工程</div>
|
||||
<div class="t-item">按材质类别</div>
|
||||
<div class="spline"></div>
|
||||
<div class="t-item">按装置</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bw-item-content pd10">
|
||||
<div class="bw-item-content">
|
||||
<div id='three' style="width: 100%; height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -324,6 +289,7 @@
|
|||
//category_One('one1', 76, '项目焊工总人数', '{value}人');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function category_two(id, xArr, data) {
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var myChart = echarts.init(document.getElementById(id))
|
||||
|
@ -375,8 +341,8 @@
|
|||
show: false
|
||||
},
|
||||
data: [
|
||||
{ value: 35, name: '已完成' },
|
||||
{ value: 10, name: '未完成' }
|
||||
{ value: data.num1, name: '已完成' },
|
||||
{ value: data.num2, name: '未完成' }
|
||||
],
|
||||
itemStyle: {
|
||||
normal: {
|
||||
|
@ -409,29 +375,163 @@
|
|||
//itemStyle: { normal: { color: 'rgba(200,201,10, 1)' } }
|
||||
}
|
||||
]
|
||||
category_two('two', xArr, data)
|
||||
var two =<%=Two %>;
|
||||
category_two('two', xArr, two)
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
function category_Three(id, xArr, series, title) {
|
||||
function category_Three(id, xArr, data, num) {
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var myChart = echarts.init(document.getElementById(id))
|
||||
// 指定图表的配置项和数据
|
||||
var option = {
|
||||
title: {
|
||||
// left:'center',
|
||||
text: title,
|
||||
text: '焊接完成量',
|
||||
textStyle: {
|
||||
fontSize: 12,
|
||||
color: '#fff',
|
||||
fontWeight:'300'
|
||||
fontWeight: 'normal',
|
||||
fontSize: 12
|
||||
},
|
||||
show: true
|
||||
},
|
||||
tooltip: {},
|
||||
legend: {
|
||||
//data: ['销量'],
|
||||
left: '10%',
|
||||
show: true,
|
||||
textStyle: {//图例文字的样式
|
||||
color: '#ffffff',
|
||||
fontSize: 10,
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
axisTick: {
|
||||
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: {
|
||||
axisTick: {
|
||||
show: false
|
||||
|
@ -464,21 +564,22 @@
|
|||
show: true,
|
||||
textStyle: {
|
||||
color: 'rgba(255, 255, 255, 0.8)'
|
||||
}
|
||||
},
|
||||
formatter: '{value} %'
|
||||
}
|
||||
},
|
||||
series: series,
|
||||
series: data,
|
||||
grid: {
|
||||
top: '25%',
|
||||
left: '0%',
|
||||
right: '0%',
|
||||
top: '15%',
|
||||
left: '10',
|
||||
right: '10',
|
||||
bottom: '0%',
|
||||
containLabel: true,
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
// borderColor: 'rgba(0,162,233, 1)'
|
||||
},
|
||||
itemStyle: {
|
||||
color: 'rgba(200,201,10, 1)'
|
||||
//color: 'rgba(200,201,10, 1)'
|
||||
},
|
||||
backgroundColor: 'rgba(0,162,233, 0.01)',
|
||||
textStyle: {
|
||||
|
@ -489,26 +590,23 @@
|
|||
// 使用刚指定的配置项和数据显示图表。
|
||||
myChart.setOption(option)
|
||||
}
|
||||
var xArr = ["类别1", "类别2", "类别3", "类别4", "类别5", "类别6", "类别7", "类别8", "类别9"]
|
||||
var data = [12, 5, 28, 43, 22, 11, 23, 50, 8]
|
||||
var series = [{
|
||||
name: '数量',
|
||||
type: 'bar',
|
||||
barWidth: 40,
|
||||
data: data,
|
||||
itemStyle: { normal: { color: 'rgba(236,157,27, 1)' } }
|
||||
}];
|
||||
|
||||
category_Three('three', xArr, series, '焊工业绩分析')
|
||||
|
||||
var series1 = [{
|
||||
name: '数量',
|
||||
type: 'bar',
|
||||
barWidth: 40,
|
||||
data: data,
|
||||
itemStyle: { normal: { color: 'rgba(57,178,210, 1)' } }
|
||||
}];
|
||||
category_Three('four', xArr, series1, '焊接一次合格率')
|
||||
var four =<%=Four %>;
|
||||
var xArr1 = four.categories
|
||||
var data1 = [{
|
||||
name: '分包1',
|
||||
type: 'line',
|
||||
data: [76, 86, 96],
|
||||
}, {
|
||||
name: '分包2',
|
||||
type: 'line',
|
||||
data: [56, 66, 76],
|
||||
}, {
|
||||
name: '分包3',
|
||||
type: 'line',
|
||||
data: [51, 61, 71],
|
||||
}]
|
||||
var data2 = four.series3
|
||||
line('four', xArr1, data2)
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
function category_five(id, xArr, data) {
|
||||
|
@ -748,126 +846,66 @@
|
|||
//category_One('one', xArr, data)
|
||||
}
|
||||
else if (value == 2) {
|
||||
var xArr = ["分包一", "分包二", "分包三"]
|
||||
var three =<%=Three %>;
|
||||
var three2 =<%=Three2 %>;
|
||||
if (index == 0) {
|
||||
var xArr = three.categories
|
||||
var data = [
|
||||
{
|
||||
name: '计划值',
|
||||
name: '已完成',
|
||||
type: 'bar',
|
||||
stack: '总量',
|
||||
barWidth: 40,
|
||||
data: [0.23, 0.35, 0.42],
|
||||
//itemStyle: { normal: { color: 'rgba(200,201,10, 1)' } }
|
||||
data: three.series[0].data,
|
||||
itemStyle: { normal: { color: 'rgba(162,63,21, 1)' } }
|
||||
},
|
||||
{
|
||||
name: '实际值',
|
||||
name: '未完成',
|
||||
type: 'bar',
|
||||
stack: '总量',
|
||||
barWidth: 40,
|
||||
data: [0.2, 0.28, 0.35],
|
||||
//itemStyle: { normal: { color: 'rgba(231,236,114,.9)' } }
|
||||
},
|
||||
{
|
||||
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)' } }
|
||||
data: three.series[1].data,
|
||||
itemStyle: { normal: { color: 'rgba(206,143,135,1)' } }
|
||||
}
|
||||
]
|
||||
if (index == 2) {
|
||||
xArr = ["单位工程一", "单位工程二", "单位工程三"]
|
||||
data = [
|
||||
category_Three('three', xArr, data, three.xFontNum)
|
||||
}
|
||||
else if (index == 2) {
|
||||
var xArr = three2.categories
|
||||
var data = [
|
||||
{
|
||||
name: '计划值',
|
||||
name: '已完成',
|
||||
type: 'bar',
|
||||
stack: '总量',
|
||||
barWidth: 40,
|
||||
data: [0.20, 0.33, 0.47],
|
||||
//itemStyle: { normal: { color: 'rgba(200,201,10, 1)' } }
|
||||
data: three2.series[0].data,
|
||||
itemStyle: { normal: { color: 'rgba(162,63,21, 1)' } }
|
||||
},
|
||||
{
|
||||
name: '实际值',
|
||||
name: '未完成',
|
||||
type: 'bar',
|
||||
stack: '总量',
|
||||
barWidth: 40,
|
||||
data: [0.15, 0.25, 0.33],
|
||||
//itemStyle: { normal: { color: 'rgba(231,236,114,.9)' } }
|
||||
},
|
||||
{
|
||||
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)' } }
|
||||
data: three2.series[1].data,
|
||||
itemStyle: { normal: { color: 'rgba(206,143,135,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) {
|
||||
var data = [{ value: 10, name: '分包一' },
|
||||
{ value: 5, name: '分包二' },
|
||||
{ value: 15, name: '分包三' },
|
||||
{ value: 25, name: '分包四' },
|
||||
{ value: 20, name: '分包五' },
|
||||
{ value: 35, name: '分包六' }];
|
||||
if (index == 2) {
|
||||
data = [{ value: 25, name: '单位工程一' },
|
||||
{ value: 35, name: '单位工程二' },
|
||||
{ value: 30, name: '单位工程三' }];
|
||||
var four =<%=Four %>;
|
||||
var four2 =<%=Four2 %>;
|
||||
if (index == 0) {
|
||||
var xArr1 = four.categories
|
||||
var data2 = four.series3
|
||||
line('four', xArr1, data2)
|
||||
}
|
||||
else if (index == 4) {
|
||||
data = [{ value: 45, name: '建筑' },
|
||||
{ value: 55, name: '安装' }];
|
||||
else if (index == 2) {
|
||||
var xArr1 = four2.categories
|
||||
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) {
|
||||
var xArr = ["主项一", "主项二", "主项三", "主项四", "主项五"]
|
||||
|
|
|
@ -4,6 +4,8 @@ using System.Linq;
|
|||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using BLL;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace FineUIPro.Web
|
||||
{
|
||||
|
@ -11,7 +13,203 @@ namespace FineUIPro.Web
|
|||
{
|
||||
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>
|
||||
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> 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
|
||||
{
|
||||
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
|
||||
{
|
||||
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
|
||||
{
|
||||
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
|
||||
{
|
||||
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
|
||||
{
|
||||
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
|
||||
{
|
||||
get
|
||||
|
|
|
@ -184,6 +184,7 @@
|
|||
<Compile Include="PieData.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SingleSerie.cs" />
|
||||
<Compile Include="SingleSerie2.cs" />
|
||||
<Compile Include="SpSysMenuItem.cs" />
|
||||
<Compile Include="SpSysUserItem.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