layui.config({ base: "../../../admin/js/layuiPlugins/" }).use(['form', 'layer', 'jquery', 'laypage', 'element', 'table', 'laydate', 'cascade'], function() { var form = layui.form, layer = layui.layer, 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(productTabBrief)', function(obj) { switch (obj.index) { case 0: tableVm.reload(); break; } }); var vm = function(obj) { var _this = this; _this.dataId = obj.dataId || 'dataListId'; //数据表ID _this.elem = obj.elem || 'dataListBox'; //数据表容器 _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, 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.startDate = obj.field.dateRange.substring(0, 10); _this.searchParameter.endDate = obj.field.dateRange.substring(13, 23); }else{ _this.searchParameter.startDate = ""; _this.searchParameter.endDate = ""; } 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; $(_this.dataExportBtn).on("click", function(e) { _this.dataExport(); }); }; //数据导出处理函数 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); }; // 表格列表 var tableVm = new vm({ dataId: 'purchaseOrderTableData', elem: '#purchaseOrderTableData', url: 'purchaseOrderTableUrl', dateTime: { year: 1, day: 1, }, page: true, cols: [ [{ field: 'purchaseOrderNumber', title: '采购订单号', minWidth: 220, align: 'center', fixed: 'left', }, { field: 'createTime', title: '下单时间', align: 'center', minWidth: 180 }, { field: 'orderAmount', title: '订单金额(元)', align: 'center', minWidth:140 }, { field: 'payWay', title: '支付方式', align: 'center', templet: "{{ d.payWay == 1 ? '微信支付' : '其它' }}", minWidth:120 }, { field: 'realPay', title: '支付金额(元)', align: 'center', minWidth:140 }, { field: 'payNumber', title: '支付订单编号', align: 'center', minWidth:220 }, { field: 'name', title: '用户名', align: 'center', minWidth:120 }, { field: 'status', title: '订单状态', align: 'center', templet: '#orderStatusTpl', minWidth:80 }, { field: 'operating', title: '操作', toolbar: "#operatingTool", align: 'center', fixed: 'right', minWidth: 80 }] ] //设置表头 , done: function(res) { setTimeout(function() { table.resize('purchaseOrderTableData'); }, 100) if (res.data.length === 0) { flowOrderRender() } else { flowOrderRender(res.data[0].id) } } }); //初始化事件监听 tableVm.formEvent = ['purchaseOrderTableSearch']; tableVm.eventMonitor(); tableVm.$event(); tableVm.datePicker = '#datePicker'; //时间容器 tableVm.showTimeSelect(); function flowOrderRender(id) { table.render({ id: 'flowOrderTableData', elem: '#flowOrderTableData', data:[], page: false, cols: [ [{ field: 'waterNumber', title: '流转订单', align: 'center', minWidth:60, fixed: 'left', }, { field: 'productName', title: '商品名称', align: 'center', minWidth:160, fixed: 'left', }, { field: 'specification', title: '规格', align: 'center', minWidth:60 }, { field: 'amount', title: '数量', align: 'center', minWidth:60 }, { field: 'price', title: '金额(元)', align: 'center', minWidth:80 }, { field: 'sellerName', title: '供应商', align: 'center', minWidth:140 }, { field: 'customerNote', title: '客户备注', align: 'center', minWidth:140 }, { field: 'status', title: '备货状态', align: 'center', templet: '#flowerOrderStatusTpl', minWidth:140, fixed: 'right', }] ] }); } //监听行单击事件 table.on('row(' + tableVm.dataId + ')', function(obj) { obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click'); table.reload('flowOrderTableData',{ url:'flowOrderTableUrl?orderId=' + obj.data.id }); }); //注册按钮事件 $('.layui-btn[data-type]').on('click', function() { var type = $(this).data('type'); activeByType(type); }); //激活事件 var activeByType = function(type, arg) { if (arguments.length === 2) { active[type] ? active[type].call(this, arg) : ''; } else { active[type] ? active[type].call(this) : ''; } } //定义事件集合 var active = { add: function() { layer.open({ type: 2, title: "新增", area: ['600px', '500px'], maxmin: true, content: 'add_change.html', btn: ['确定', '取消'], yes: function(index, layero) { //点击确认触发 iframe 内容中的按钮提交 var submit = layero.find('iframe').contents().find("#formSubmit"); submit.click(); }, }); }, updateRow: function(obj) { var oldData = table.cache[layTableId]; for (var i = 0, row; i < oldData.length; i++) { row = oldData[i]; if (row.tempId == obj.tempId) { $.extend(oldData[i], obj); return; } } tableIns.reload({ data: oldData }); } } //可用性修改 form.on('switch(isUserble)', function(data) { console.log('sdhahdiehie', data.elem.title) var field = { id: data.elem.id, isUserble: '', isRecommend: parseInt(data.elem.title) } if (data.elem.checked == false) { field.isUserble = 0 } else { field.isUserble = 1 } $.ajax({ type: 'post', url: 'addImgTextContent', data: JSON.stringify(field), contentType: 'application/json', success: function(res) { if (!(res.code - 0)) { layer.msg(res.msg, { icon: 1 }); tableVm.reload(); } else { data.elem.checked = !data.elem.checked; form.render(); } } }); }); //工具条处理 function toolOperating(name, obj) { if (obj.event === 'detail') { let index = layer.open({ type: 2, title: "详情", area: ['1200px', '700px'], maxmin: true, content: 'detail.html?id=' + obj.data.id, //btn: ['确定', '取消'], yes: function(index, layero) { var submit = layero.find('iframe').contents().find("#formSubmit"); submit.click(); }, }); layer.full(index); } } //监听事件条 table.on('tool(' + tableVm.dataId + ')', function(obj) { toolOperating(tableVm.dataId, obj); }); });