/** * Crm数据图表 * Created by jiangyouyao on 2019/4/20. */ function ChartsUtils(loadChartData) { //赋值加载数据方法 this.loadChartData = loadChartData; this.$beginTime = $("#beginTime"); this.$endTime = $("#endTime"); this.$unitSelect = $("#unitSelect"); //记录当前视图的格式化字符串 this.dateFmt = ""; //绑定搜索事件 $('#serach').on("click",{charts:this},this.updateChartsDate); //时间单位选择变化 this.$unitSelect.on("change",{charts:this},this.unitChange); } /** * 设置时间控件格式 */ ChartsUtils.prototype.setDataPackTimeValue = function () { console.log("设置时间"); var unit = this.$unitSelect.val(); var startView, minView; //控件赋值 var time = new Date(); if (unit == '时') { startView = 1; minView = "day"; this.dateFmt = "yyyy-MM-dd hh"; //时间视图默认显示当天 this.$endTime.val(DateFormat.format(DateFormat.getDateEnd(time), this.dateFmt)); this.$beginTime.val(DateFormat.format(DateFormat.getDateStart(time), this.dateFmt)); } else if (unit == '日') { console.log(time.getDate()); startView = 2; minView = "month"; this.dateFmt = "yyyy-MM-dd"; //日视图默认显示当月 this.$endTime.val(DateFormat.format(time, this.dateFmt)); this.$beginTime.val(DateFormat.format(DateFormat.addDay(time, -(time.getDate() - 1)), this.dateFmt)); } else if (unit == '月') { startView = 3; minView = "year"; this.dateFmt = "yyyy-MM"; //月视图默认显示当年 this.$endTime.val(DateFormat.format(time, this.dateFmt)); this.$beginTime.val(DateFormat.format(DateFormat.addMonth(time, -time.getMonth()), this.dateFmt)); } else if (unit == '年') { startView = 4; minView = "decade"; this.dateFmt = "yyyy"; //年视图默认显示5年 this.$endTime.val(DateFormat.format(time, this.dateFmt)); this.$beginTime.val(DateFormat.format(DateFormat.addYear(time, -5), this.dateFmt)); } console.log("startView", startView); //时间 var _initParam = { format: this.dateFmt.toLowerCase(), todayBtn: false, autoclose: true, startView: startView, maxView: 4, minView: minView }; MTools.ininDatetimepicker(_initParam); } /** * 校验时间范围 */ ChartsUtils.prototype.checkTime = function () { var beginTimeStr = this.$beginTime.val(); var endTimeStr = this.$endTime.val(); if (StringUtils.isNotEmpty(beginTimeStr) && StringUtils.isNotBlank(endTimeStr)) { //字符串不为空 var beginTime = moment(beginTimeStr); var endTime = moment(endTimeStr); console.log(beginTime.unix(), endTime.unix()); if (beginTime.unix() <= endTime.unix()) { return true; } else { layer.msg("最小日期不能大于最大日期", {icon: 2}); return false; } } else { layer.msg("请选择日期范围", {icon: 2}); return false; } } ChartsUtils.prototype.unitChange = function (event) { //移除时间控件上的绑定时间 $("#beginTime").datetimepicker('remove'); $("#endTime").datetimepicker('remove'); //根据单位重设定查询条件,新绑定时间控件, event.data.charts.setDataPackTimeValue(); event.data.charts.loadChartData(); } /** * 更新图表中的数据 */ ChartsUtils.prototype.updateChartsDate=function(event){ if(event.data.charts.checkTime()){ event.data.charts.loadChartData(); } }