|
@@ -31,7 +31,25 @@
|
|
|
</style>
|
|
|
</head>
|
|
|
<body>
|
|
|
- <div id="main" style="width: 1400px;height:500px;"></div>
|
|
|
+
|
|
|
+ <div class="input-box" style="height: 45px;" class="dataTableStatis" seachType="2">
|
|
|
+ <label class="form-label col-2 col-sm-2 huanhang" style="text-align: right;margin: 10px 0px;font-weight: bold;font-size: 23px;">${detectionConfig.configDetectContent!''}: </label>
|
|
|
+ <div class="formControls col-2 col-sm-2 text-c huanhang" style="margin-left: -4%;margin: 10px 0px 10px -19px;">
|
|
|
+ <input class="my-input beginTime" style="width: 90%;" type="text" value="" name="beginTime_2" id="beginTime_2" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M',dateFmt: 'yyyy-MM',onpicked: getResetDateByTime,oncleared :getResetDateByTime })" placeholder="生产日期(开始)" readonly="readonly"/>
|
|
|
+ </div>
|
|
|
+ <div class="formControls col-2 col-sm-2 text-c huanhang" style="margin-left: -4%;margin: 10px 0px 10px -19px;">
|
|
|
+ <input class="my-input endTime" style="width: 90%;" type="text" value="" name="endTime_2" id="endTime_2" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M',dateFmt: 'yyyy-MM',minDate:beginTime_2.value,onpicked: getResetDateByTime,oncleared :getResetDateByTime })" placeholder="生产日期(结束)" readonly="readonly"/>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="formControls col-2 col-sm-2 text-c huanhang" style="margin-left: -4%;margin: 10px 0px 10px -19px;">
|
|
|
+ <input class="my-input startDate" style="width: 90%;" type="text" value="" name="startDate" id="startDate" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d',dateFmt: 'yyyy-MM-dd',onpicked: getResetDateByTime,oncleared :getResetDateByTime })" placeholder="返厂日期(开始)" readonly="readonly"/>
|
|
|
+ </div>
|
|
|
+ <div class="formControls col-2 col-sm-2 text-c huanhang" style="margin-left: -4%;margin: 10px 0px 10px -19px;">
|
|
|
+ <input class="my-input endDate" style="width: 90%;" type="text" value="" name="endDate" id="endDate" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d',dateFmt: 'yyyy-MM-dd',minDate:startDate.value,onpicked: getResetDateByTime,oncleared :getResetDateByTime })" placeholder="返厂日期(结束)" readonly="readonly"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div id="main" style="width: 1400px;height:550px;"></div>
|
|
|
|
|
|
</body>
|
|
|
<script type="text/javascript" src="${path}/common/lib/echarts/3.8/echarts.common.min.js"></script>
|
|
@@ -41,103 +59,93 @@
|
|
|
<script>
|
|
|
var myChart = echarts.init(document.getElementById('main'));
|
|
|
$(function () {
|
|
|
- detectStatisticsData();
|
|
|
- })
|
|
|
+ detectStatisticsDataCinfig();
|
|
|
+ });
|
|
|
|
|
|
/**
|
|
|
* 当月统计
|
|
|
* @param state
|
|
|
*/
|
|
|
- function detectStatisticsData() {
|
|
|
+ function detectStatisticsDataCinfig(beginTime,endTime,startDate,endDate) {
|
|
|
$.ajax({
|
|
|
type: "POST",
|
|
|
- data: {},
|
|
|
- url: "${path}/admin/detect/detect_statistics_data",
|
|
|
+ data: {
|
|
|
+ configId : ${detectionConfig.configId},
|
|
|
+ beginTime:beginTime,
|
|
|
+ endTime:endTime,
|
|
|
+ startDate:startDate,
|
|
|
+ endDate:endDate
|
|
|
+ },
|
|
|
+ url: "${path}/admin/detect/select_config_statistic",
|
|
|
success: function(data){
|
|
|
if (data.returnCode == 200) {
|
|
|
|
|
|
- var numArray = new Array();
|
|
|
- var monthArray = new Array();
|
|
|
- for (var i=0;i<data.returnMsg.complaintDetectInfoList.length;i++){
|
|
|
- var countNum = data.returnMsg.complaintDetectInfoList[i].countNum;
|
|
|
- numArray.push(countNum);
|
|
|
+ var detectProductionArray = new Array();
|
|
|
+ for (var k=0;k<data.returnMsg.detectProductionList.length;k++) {
|
|
|
+ var detectProduction = data.returnMsg.detectProductionList[k].detectProduction;
|
|
|
+ detectProductionArray.push(detectProduction);
|
|
|
+ }
|
|
|
+ detectProductionArray.push("全部");
|
|
|
|
|
|
- var detectProduction = data.returnMsg.complaintDetectInfoList[i].detectProduction;
|
|
|
- if(detectProduction == "未知"){
|
|
|
- var flag = false;
|
|
|
- for (var k=0;k<monthArray.length;k++){
|
|
|
- if(monthArray[k] == '未知'){
|
|
|
- var otherMonthNum = numArray[k];
|
|
|
- numArray[k] = numArray[k]+countNum;
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- }
|
|
|
- if(!flag){
|
|
|
- monthArray.push('未知');
|
|
|
- }
|
|
|
- }else{
|
|
|
- var newDate = formatDate(detectProduction,"yyyy年MM月");
|
|
|
- monthArray.push(newDate.substring(2,newDate.length))
|
|
|
+ var creatTimeArray = new Array();
|
|
|
+ for (var k=0;k<data.returnMsg.creatTimeList.length;k++) {
|
|
|
+ var creatTime = data.returnMsg.creatTimeList[k].detectCreateTime;
|
|
|
+ creatTime = formatDate(creatTime,"yyyy-MM-dd");
|
|
|
+ creatTimeArray.push(creatTime);
|
|
|
+ }
|
|
|
+ var seriesArray = new Array();
|
|
|
+ for (var k=0;k<data.returnMsg.list.length;k++) {
|
|
|
+ var newDate = data.returnMsg.list[k];
|
|
|
+ var dateName,dateAttr;
|
|
|
+ for(var m in newDate) {
|
|
|
+ dateName = m;
|
|
|
+ dateAttr = newDate[m];
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- var newNumArray = new Array();
|
|
|
- for (var i=0;i<monthArray.length;i++){
|
|
|
- newNumArray.push(numArray[i]);
|
|
|
+ var series = {
|
|
|
+ name:dateName,
|
|
|
+ type:'line',
|
|
|
+ data:dateAttr
|
|
|
+ };
|
|
|
+ seriesArray.push(series);
|
|
|
}
|
|
|
+
|
|
|
var option = {
|
|
|
- title : {
|
|
|
- text: '本月故障机器',
|
|
|
- subtext: ''
|
|
|
+ title: {
|
|
|
+ text: ''
|
|
|
},
|
|
|
- tooltip : {
|
|
|
+ tooltip: {
|
|
|
trigger: 'axis'
|
|
|
},
|
|
|
legend: {
|
|
|
- data:['本月故障机器']
|
|
|
+ data:detectProductionArray
|
|
|
+ },
|
|
|
+ grid: {
|
|
|
+ left: '3%',
|
|
|
+ right: '4%',
|
|
|
+ bottom: '3%',
|
|
|
+ containLabel: true
|
|
|
},
|
|
|
toolbox: {
|
|
|
- show : true,
|
|
|
- feature : {
|
|
|
-// dataView : {show: true, readOnly: false},
|
|
|
-// magicType : {show: true, type: ['line', 'bar']},
|
|
|
-// restore : {show: true},
|
|
|
-// saveAsImage : {show: true}
|
|
|
- }
|
|
|
+
|
|
|
},
|
|
|
- calculable : true,
|
|
|
- xAxis : [
|
|
|
- {
|
|
|
- type : 'category',
|
|
|
- data : monthArray
|
|
|
- }
|
|
|
- ],
|
|
|
- yAxis : [
|
|
|
- {
|
|
|
- type : 'value'
|
|
|
- }
|
|
|
- ],
|
|
|
- series : {
|
|
|
- name:'本月故障机器',
|
|
|
- type:'bar',
|
|
|
- data:newNumArray,
|
|
|
-// barWidth : 10%,
|
|
|
- markPoint : {
|
|
|
- data : [
|
|
|
- {type : 'max', name: '最大值'},
|
|
|
- {type : 'min', name: '最小值'}
|
|
|
- ]
|
|
|
- }
|
|
|
-// ,markLine : {
|
|
|
-// data : [
|
|
|
-// {type : 'average', name: '平均值'}
|
|
|
-// ]
|
|
|
-// }
|
|
|
- }
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ boundaryGap: false,
|
|
|
+ data: creatTimeArray
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type: 'value'
|
|
|
+ },
|
|
|
+ dataZoom: [{
|
|
|
+ startValue: '2019-05-01'
|
|
|
+ }, {
|
|
|
+ type: 'inside'
|
|
|
+ }],
|
|
|
+ series: seriesArray
|
|
|
};
|
|
|
|
|
|
// 使用刚指定的配置项和数据显示图表。
|
|
|
- myChart.setOption(option);
|
|
|
+ myChart.setOption(option,true);
|
|
|
}else{
|
|
|
layer.msg("获取信息失败!", {icon: 5, time: 3000});
|
|
|
}
|
|
@@ -147,69 +155,18 @@
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- $('.configSelect').change(function() {
|
|
|
- getResetDate($(this));
|
|
|
- });
|
|
|
-
|
|
|
- $('.beginTime').change(function() {
|
|
|
- getResetDate($(this));
|
|
|
- });
|
|
|
- $('.endTime').change(function() {
|
|
|
- getResetDate($(this));
|
|
|
- });
|
|
|
-
|
|
|
/**
|
|
|
* 选择数据后重置数据
|
|
|
*/
|
|
|
function getResetDateByTime() {
|
|
|
var id = this.id;
|
|
|
var $node = $("#"+id);
|
|
|
-// var $thisDiv = $node.parents(".dataTableStatis");
|
|
|
- var $thisDiv = $node.parent().parent();
|
|
|
- var type = $thisDiv.attr("seachType");
|
|
|
- var beginTime = $thisDiv.find(".beginTime").val();
|
|
|
- var endTime = $thisDiv.find(".endTime").val();
|
|
|
- var configName = $thisDiv.find(".configSelect").find("option:selected").text();
|
|
|
- var configId = $thisDiv.find(".configSelect").val();
|
|
|
- detectStatisticsJudgement(type,beginTime,endTime,configId);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 选择数据后重置数据
|
|
|
- */
|
|
|
- function getResetDate($node) {
|
|
|
-// var $thisDiv = $node.parents(".dataTableStatis");
|
|
|
var $thisDiv = $node.parent().parent();
|
|
|
- var type = $thisDiv.attr("seachType");
|
|
|
var beginTime = $thisDiv.find(".beginTime").val();
|
|
|
var endTime = $thisDiv.find(".endTime").val();
|
|
|
- var configName = $thisDiv.find(".configSelect").find("option:selected").text();
|
|
|
- var configId = $thisDiv.find(".configSelect").val();
|
|
|
- detectStatisticsJudgement(type,beginTime,endTime,configId);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 到单独配置页面
|
|
|
- */
|
|
|
- function toSelectConfigStatistic(data) {
|
|
|
- var configId = data.configId;
|
|
|
- window.location.href= "${path}/admin/dealer/to_select_config_statistic?configId="+configId;
|
|
|
+ var startDate = $thisDiv.find(".startDate").val();
|
|
|
+ var endDate = $thisDiv.find(".endDate").val();
|
|
|
+ detectStatisticsDataCinfig(beginTime,endTime,startDate,endDate);
|
|
|
}
|
|
|
-
|
|
|
- $('.chosen').chosen({
|
|
|
- no_results_text: "没有找到结果!",//搜索无结果时显示的提示
|
|
|
- search_contains:true, //关键字模糊搜索。设置为true,只要选项包含搜索词就会显示;设置为false,则要求从选项开头开始匹配
|
|
|
- allow_single_deselect:true, //单选下拉框是否允许取消选择。如果允许,选中选项会有一个x号可以删除选项
|
|
|
- disable_search: false, //禁用搜索。设置为true,则无法搜索选项。
|
|
|
- disable_search_threshold: 0, //当选项少等于于指定个数时禁用搜索。
|
|
|
- inherit_select_classes: true, //是否继承原下拉框的样式类,此处设为继承
|
|
|
- placeholder_text_single: '', //单选选择框的默认提示信息,当选项为空时会显示。如果原下拉框设置了data-placeholder,会覆盖这里的值。
|
|
|
- width: '200px', //设置chosen下拉框的宽度。即使原下拉框本身设置了宽度,也会被width覆盖。
|
|
|
- max_shown_results: 1000, //下拉框最大显示选项数量
|
|
|
- display_disabled_options: false,
|
|
|
- single_backstroke_delete: false, //false表示按两次删除键才能删除选项,true表示按一次删除键即可删除
|
|
|
- case_sensitive_search: false, //搜索大小写敏感。此处设为不敏感
|
|
|
- group_search: false, //选项组是否可搜。此处搜索不可搜
|
|
|
- include_group_label_in_selected: true //选中选项是否显示选项分组。false不显示,true显示。默认false。
|
|
|
- });
|
|
|
</script>
|
|
|
</html>
|