; 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'; });