;
layui.config({
base: "../../../admin/js/layuiPlugins/"
}).use(['form', 'layer', 'jquery', 'laypage', 'element', 'table', 'laydate', 'laytpl', 'cascade'], function() {
var form = layui.form,
layer = layui.layer,
laytpl = layui.laytpl,
laypage = layui.laypage,
$ = layui.jquery,
table = layui.table,
element = layui.element,
laydate = layui.laydate,
cascade = layui.cascade;
//自定义验证
form.verify({
namelength: [
/^.{0,18}$/,
"长度限制在0-18个字符噢"
]
});
//监听一级Tab切换
element.on('tab(tabBrief)', function(obj) {
switch (obj.index) {
case 0:
shopTableVm.reload();
break;
}
});
var vm = function(obj) {
var _this = this;
_this.dataId = obj.dataId || 'dataListId'; //数据表ID
_this.elem = obj.elem || 'dataListBox'; //数据表容器
_this.toolbar = obj.toolbar || '';
_this.url = obj.url || ''; //数据表接口URL
_this.page = obj.page; //分页
_this.limit = obj.limit;
_this.cols = obj.cols || []; //表头
_this.done = obj.done || ''; //表头
_this.formObj = {}; //当前表单对象
_this.searchParameter = {}; //搜索参数
_this.config = {};
_this.where = obj.where;
_this.config.dateTime = obj.dateTime;
_this.dateTime = {
year: 365 * 1 * 24 * 3600 * 1000,
month: 30 * 1 * 24 * 3600 * 1000,
day: 24 * 3600 * 1000,
}
_this.main();
};
//入口函数
vm.prototype.main = function() {
var _this = this;
_this.initializationData()
};
//初始化表格
vm.prototype.initializationData = function() {
var _this = this;
_this.dataListObj = table.render({
id: _this.dataId,
elem: _this.elem,
toolbar: _this.toolbar,
defaultToolbar: ['filter'],
url: _this.url,
page: _this.page,
cols: _this.cols,
done: _this.done,
where: $.extend(_this.where, _this.searchParameter),
limit: _this.limit,
});
};
//重新加载数据表
vm.prototype.reload = function() {
var _this = this;
_this.dataListObj = table.reload(_this.dataId, { //执行重载数据表
where: _this.searchParameter,
page: {
curr: 1
}
});
};
//初始化组件
vm.prototype.initializationModule = function(obj) {
var _this = this;
$.ajax({
url: obj.url,
data: obj.data,
success: function(res) {
var html = '';
for (var i in res.data) {
html += '';
}
$(obj.elem).html(html);
form.render();
}
});
};
//初始化事件监听
vm.prototype.eventMonitor = function(id) {
var _this = this;
//监听搜索表单事件
if (typeof(_this.formEvent) == "object") {
form.on('submit(' + _this.formEvent + ')', function(obj) {
_this.formInfoSearch(_this.formEvent, obj);
return false;
});
}
return _this;
};
//搜索处理函数
vm.prototype.formInfoSearch = function(id, obj) {
var _this = this;
_this.searchParameter = obj.field;
if (obj.field.dateRange) {
_this.searchParameter.beginTime = obj.field.dateRange.substring(0, 10);
_this.searchParameter.endTime = obj.field.dateRange.substring(13, 23);
}else{
_this.searchParameter.beginTime = "";
_this.searchParameter.endTime = "";
}
delete _this.searchParameter.dateRange;
_this.reload();
};
//渲染时间选择器
vm.prototype.showTimeSelect = function() {
var _this = this;
laydate.render({
elem: _this.datePicker,
range: true
});
};
//jquer事件绑定
vm.prototype.$event = function() {
var _this = this;
//监听头部工具栏
table.on('toolbar(' + _this.dataId + ')', function(obj) {
switch (obj.event) {
case 'export':
_this.dataExport();
break;
};
});
};
//数据导出处理函数
vm.prototype.dataExport = function() {
var _this = this;
_this.downloadParameter = '?';
for (var i in _this.dataListObj.config.where) {
_this.downloadParameter += "&" + i + '=' + _this.dataListObj.config.where[i];
}
_this.startDownload();
};
//启动下载
vm.prototype.startDownload = function() {
var _this = this;
window.open(window.hywa.config.href + window.hywa.config.port[_this.dataDownload] + _this.downloadParameter);
};
//模板引擎
function typeTpl(obj) {
laytpl(selectTpl.innerHTML).render(obj, function(html) {
$(obj.elem).html(html);
form.render();
});
}
// 店铺统计
var shopTableVm = new vm({
dataId: 'shopTableData',
elem: '#shopTableData',
url: 'shopsTableUrl',
toolbar: '#shopToolbar',
dateTime: {
year: 1,
day: 1,
},
page: true,
cols: [
[{
field: 'payTime',
title: '日期',
align: 'center'
}, {
field: 'orderAmount',
title: '交易流水(元)',
align: 'center'
}, {
field: 'numberOfOrders',
title: '有效单数',
align: 'center'
}, {
field: 'sellerName',
title: '店铺名称',
}, {
field: 'sellerId',
title: '店铺编号',
}]
],
done: function(res) {
$.ajax({
type: 'get',
url: "shopsTotalUrl",
data: {
beginTime: shopTableVm.searchParameter.beginTime,
endTime: shopTableVm.searchParameter.endTime,
},
success: function(res) {
$('#shopCounter').text('合计:' + (res.data[0].amount || 0) + '元,' + (res.data[0].totalOrders || 0) + '单');
},
})
if (!layui.data('auth').data.output) {
$('.output-btn').hide();
}
}
});
//初始化事件监听
shopTableVm.formEvent = ['shopTableSearch'];
shopTableVm.eventMonitor();
shopTableVm.$event();
shopTableVm.datePicker = '#datePicker'; //时间容器
shopTableVm.showTimeSelect();
shopTableVm.dataDownload = 'shopExportUrl';
});