89 lines
4.0 KiB
JavaScript
Executable File
89 lines
4.0 KiB
JavaScript
Executable File
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'echarts','echarts-theme', 'template', 'addtabs', 'moment','citypicker'], function ($, undefined, Backend, Table, Form, echarts, undefined, Template, Datatable, Moment) {
|
|
|
|
var Controller = {
|
|
index: function () {
|
|
Controller.api.bindevent()
|
|
Controller.api.datepicker()
|
|
Controller.api.getChartData()
|
|
$('#filter-btn').on('click', function () {
|
|
Controller.api.getChartData();
|
|
});
|
|
},
|
|
api: {
|
|
getChartData:function (){
|
|
// 获取日期范围值
|
|
var daterange = $('#daterange').val();
|
|
/* var source = $('#source').val();
|
|
var city_id = $('#area_id').val();
|
|
var item_id = $('#item_id').val();
|
|
*/
|
|
// 构建查询参数
|
|
var params = {
|
|
'daterange': daterange,
|
|
/* 'source': source,
|
|
'area_id': city_id,
|
|
'item_id': item_id,*/
|
|
};
|
|
|
|
$.ajax({
|
|
url: "dashboard/getData", //
|
|
type: "POST",
|
|
dataType: "json",
|
|
data: params,
|
|
success: function (response) {
|
|
Controller.api.chart(response);
|
|
},
|
|
error: function () {
|
|
console.error("图表数据加载失败");
|
|
}
|
|
});
|
|
},
|
|
bindevent: function () {
|
|
Form.api.bindevent($("form[role=form]"));
|
|
},
|
|
datepicker: function () {
|
|
var ranges = {};
|
|
ranges[__('Today')] = [Moment().startOf('day'), Moment().endOf('day')];
|
|
ranges[__('Yesterday')] = [Moment().subtract(1, 'days').startOf('day'), Moment().subtract(1, 'days').endOf('day')];
|
|
ranges[__('Last 7 Days')] = [Moment().subtract(6, 'days').startOf('day'), Moment().endOf('day')];
|
|
ranges[__('Last 30 Days')] = [Moment().subtract(29, 'days').startOf('day'), Moment().endOf('day')];
|
|
ranges[__('This Month')] = [Moment().startOf('month'), Moment().endOf('month')];
|
|
ranges[__('Last Month')] = [Moment().subtract(1, 'month').startOf('month'), Moment().subtract(1, 'month').endOf('month')];
|
|
ranges[__('今年')] = [Moment().startOf('year'), Moment().endOf('year')];
|
|
var options = {
|
|
timePicker: false,
|
|
autoUpdateInput: false,
|
|
timePickerSeconds: true,
|
|
timePicker24Hour: true,
|
|
autoApply: true,
|
|
locale: {
|
|
format: 'YYYY-MM-DD',
|
|
customRangeLabel: __("Custom Range"),
|
|
applyLabel: __("Apply"),
|
|
cancelLabel: __("Clear"),
|
|
},
|
|
ranges: ranges,
|
|
};
|
|
var callback = function (start, end) {
|
|
$(this.element).val(start.format(options.locale.format) + " - " + end.format(options.locale.format));
|
|
};
|
|
require(['bootstrap-daterangepicker'], function () {
|
|
$(".datetimerange").each(function () {
|
|
$(this).on('apply.daterangepicker', function (ev, picker) {
|
|
callback.call(picker, picker.startDate, picker.endDate);
|
|
var label = picker.chosenLabel;
|
|
$(picker.element).data('label', label).trigger("change");
|
|
});
|
|
$(this).on('cancel.daterangepicker', function (ev, picker) {
|
|
$(this).val('');
|
|
});
|
|
$(this).daterangepicker($.extend({}, options), callback);
|
|
});
|
|
});
|
|
},
|
|
}
|
|
};
|
|
|
|
return Controller;
|
|
});
|