(function(w, $, d, _) { "use strict"; /** * Description: 基于bootstrap table封装的表格增删改查组件 * author: panshuwei * date:2017-10-20 */ function noop() {} Date.prototype.Format = function(fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } function CURDTable(value) { this.cfg = $.extend(true, {}, { m: "#modal", d: "#detail", toolbar: "#exampleTableEventsToolbar", footerbar: '#footerbar', showAfterRender: ['#footerbar'], editTitle: "编辑", detailTitle: '详情', addTitle: "增加", confirmMsg: "确定删除此条数据?", confirmSSMsg: '确定审核?', confirmSendMsg: '确定通知送检?', addBtn: "#add", editBtn: "#edit", batchEditBtn: '#bedit', batchDelBtn: "#bdel", checkAllBtn: '#checkall', endStateBtn: '#endState', checkAllBox: '#checkbox', delBtn: "#del", serBtn: "#ser", refBtn: "#ref", uuid: 'id', stateField: 'state', hideCols: ['id'], urlGetType: 'list', dataSourceType: 'server', pageSize: 12, inputBar: "#inputBox", leftFixedColumns: false, leftFixedNumber: 1, rightFixedColumns: false, rightFixedNumber: 1, multipleFooterBar: false, rowClickHandler: function() {}, extendCheck: function() { //保存之前,做额外的校验,并提示,eg:【节能项目】中申报日期应该早于竣工日期 return true; }, dbRowClickHandler: function() {}, renderCompleteHandler: function(resp) {}, getFirstRowUUID: function() {}, beforeSend: noop, // modal中最后发请求前的处理 afterPostBody: noop, params: { params: {} } }, value); this.addFlag = true; this.moveToolFlag = null; this.$t = null; this.$m = null; this.$d = null; this.childSls = this.cfg.childSls || {}; this.selections = []; this.first_row_uuid = null; this.handlers = {}; this.footerbar_father = $(this.cfg.footerbar).parent(); this.footerbar = $(this.cfg.footerbar); this.authParams = {}; eBase.debug('[CURDTable.js][CURDTable][构造器]'); } CURDTable.prototype = { /** * 初始化函数 * */ init: function(instance) { w.$c = instance || null; eBase.debug('[CURDTable.js][init]'); this.urlParams = null; this.authParams = this.parserUrl(location.href, this.cfg.urlGetType || 'obj').params; this.initModal(); this.initOperateEvents(); this.hideTitle(); this.renderTable(); this.hideBtns(); this.addListeners(); this.initModelData(); }, hideBtns: function() { var self = this; self.$t && self.$t.bootstrapTable("uncheckAll"); self.hideStateRow(); self.hideBatchBtns(); $(self.cfg.batchDelBtn).length > 0 && $(self.cfg.batchDelBtn).hide(); $(self.cfg.checkAllBtn).length > 0 && $(self.cfg.checkAllBtn).hide(); $(self.cfg.checkAllBox).length > 0 && $(self.cfg.checkAllBox).hide(); $(self.cfg.endStateBtn).length > 0 && $(self.cfg.endStateBtn).hide(); $(self.cfg.batchEditBtn).length > 0 && $(self.cfg.batchEditBtn).show(); }, showBtns: function() { var self = this; self.showStateRow(); self.showBatchBtns(); $(self.cfg.batchDelBtn).length > 0 && $(self.cfg.batchDelBtn).show(); $(self.cfg.checkAllBtn).length > 0 && $(self.cfg.checkAllBtn).show(); $(self.cfg.checkAllBox).length > 0 && $(self.cfg.checkAllBox).show(); $(self.cfg.endStateBtn).length > 0 && $(self.cfg.endStateBtn).show(); $(self.cfg.batchEditBtn).length > 0 && $(self.cfg.batchEditBtn).hide(); }, showBatchBtns: function() { var self = this; if (_.has(self.cfg, 'batchBtns')) { _.each(self.cfg.batchBtns, function(value, key, list) { $(value.el).show(); }); } }, hideBatchBtns: function() { var self = this; if (_.has(self.cfg, 'batchBtns')) { _.each(self.cfg.batchBtns, function(value, key, list) { $(value.el).hide(); }); } }, addHideBtnListener: function() { var self = this; if (_.has(self.cfg, 'batchBtns')) { _.each(self.cfg.batchBtns, function(value, key, list) { $(value.el).click(function() { }); }); } }, showStateRow: function() { try { this.$t && this.$t.bootstrapTable("showColumn", this.cfg.stateField); } catch (error) { } }, hideStateRow: function() { try { this.$t && this.$t.bootstrapTable("hideColumn", this.cfg.stateField); } catch (error) { } }, hideTitle: function() { var self = this; $(this.cfg.t).find('tr').hide(); if (_.has(this.cfg, 'showAfterRender')) { _.each(this.cfg.showAfterRender, function(item, index) { self.cfg.multipleFooterBar == true && $(item).hide(); self.cfg.multipleFooterBar == false && $(item).css('opacity', 0); }); } }, showTitle: function() { var self = this; $(this.cfg.t).find('tr').show(); if (_.has(this.cfg, 'showAfterRender')) { _.each(this.cfg.showAfterRender, function(item, index) { self.cfg.multipleFooterBar == true && $(item).show();; self.cfg.multipleFooterBar == false && $(item).css('opacity', 1); }); } }, renderCompleteHandler: function(resp) { var self = this, result, rows = []; if (_.has(resp, 'rows')) { rows = resp.rows; } if (_.isArray(rows) && rows.length > 0) { result = rows[0]; } self.cfg.getFirstRowUUID(result); }, initValidate: function() { $(this.cfg.m).find('form').bootstrapValidator({ trigger: 'blur keyup change' //trigger: 'keyup change' }); }, /** * 初始化所有组件的监听函数 * */ addListeners: function() { this.addButtonListeners(); this.addTableListeners(); this.addModalListeners(); }, initModal: function() { this.$m = $(this.cfg.m).modal({ show: false, backdrop: 'static', keyboard: true }); this.$d = $(this.cfg.d).modal({ show: false, backdrop: 'static', keyboard: true }); this.inputFileInput(); }, inputFileInput: function() { var self = this; self.$m.find('input[type="file"]').each(function() { var name = $(this).data('field'); var self_el = $(this); var allowedFileTypes = _.has(self.cfg, 'fileType') ? self.cfg.fileType[name]['allowedFileTypes'] : ['image']; var allowedFileExtensions = _.has(self.cfg, 'fileType') ? self.cfg.fileType[name]['allowedFileExtensions'] : ['jpg', 'png', 'gif']; var showPreview = _.has(self.cfg, 'fileType') ? self.cfg.fileType[name]['showPreview'] : false; self_el.fileinput('destroy'); self_el.fileinput({ language: 'zh', uploadUrl: '/zuul/oss/putObject', showUpload: false, showCaption: true, showPreview: showPreview, overwriteInitial: false, dropZoneEnabled: false, allowedFileTypes: allowedFileTypes, allowedFileExtensions: allowedFileExtensions, maxFileSize: 2000, maxFileCount: 1 }).on("filebatchselected", function(event, files) { var tokenUrl = _.has(self.cfg, 'tokenUrl') ? self.cfg.tokenUrl : '/auth/token/oss'; var params = { filename: files[0].name, filesize: files[0].size }; eBase.debug('[CardTable.js][inputFileInput][filebatchselected]'); eBase.send({ url: tokenUrl, data: JSON.stringify(params) }, 'post').done(function(resp) { if (resp['code'] == '0') { self_el.fileinput("upload", { Athorization: resp['data'] }); } else { self_el.fileinput("upload"); } }).fail(function(resp) { self_el.fileinput("upload"); }); }).on("fileuploaded", function(event, data) { self.$m.find("input[name='" + name + "']").val(data.response.data.filePath); }).on("filecleared", function(event, data) { self.$m.find("input[name='" + name + "']").val(''); }); }); }, queryParams: function(params) { var result; result = { pageSize: params.pageSize, pageIndex: params.pageNumber }; return result; }, renderMultipleSelect: function() { var config = { '.chosen-select': { 'placeholder_text_multiple': ' --请选择--' }, '.chosen-select-deselect': { allow_single_deselect: true }, '.chosen-select-no-single': { disable_search_threshold: 10 }, '.chosen-select-no-results': { no_results_text: '找不到数据!' }, '.chosen-select-width': { width: "95%" } }; for (var selector in config) { $(selector).chosen(config[selector]); } }, initDateInput: function() { _.has(this.cfg, 'dataInputs') && this.initDateInputByArrAndType(this.cfg.dataInputs, 'yyyy-MM-dd HH:mm:ss'); _.has(this.cfg, 'yearInputs') && this.initDateInputByArrAndType(this.cfg.yearInputs, 'yyyy'); _.has(this.cfg, 'monthInputs') && this.initDateInputByArrAndType(this.cfg.monthInputs, 'yyyy-MM'); _.has(this.cfg, 'dayInputs') && this.initDateInputByArrAndType(this.cfg.dayInputs, 'yyyy-MM-dd'); }, initDateInputByArrAndType(arr, format) { var self = this; _.each(arr, function(item, index) { if ($(item).length > 0) { d.render({ elem: item, event: "focus", istime: true, format: format, done: function() { eBase.debug('[CURDTable.js][initDateInput][done event handler]'); $(item).trigger('change'); }, choose: function(dates) { eBase.debug('[CURDTable.js][initDateInput][choose event handler]'); $(item).trigger('change'); } }); } }); }, initModelData: function() { eBase.debug('[CURDTable.js][initModelData][enter]'); var self = this; if (!self.cfg || !self.cfg.childSls) return; for (var key in self.cfg.childSls) { var obj = self.cfg.childSls[key]; if (obj && obj.url) { self.sendOne(self, obj); } } }, initSelect: function() { eBase.debug('[CURDTable.js][initModelData][enter]'); var self = this; if (!self.cfg || !self.cfg.childSls) return; for (var key in self.cfg.childSls) { var obj = self.cfg.childSls[key]; if (obj && obj.url) { self.sendSelectOne(self, obj); } } }, refreshAPI: function() { var self = this; if (_.has(self.cfg, 'childSls')) { var refList = _.filter(self.cfg.childSls, function(item) { if (_.has(item, 'autoRef') && 'true' == item.autoRef) { return true; } else { return false; } }); _.each(refList, function(item) { self.sendOne(self, item); }); } }, sendOne: function(self, item) { var type = 'get'; var sendObj = { url: item.url }; if (_.has(item, 'params')) sendObj.data = $.extend(true, {}, {}, item.params); try { type = item.type } catch (err) {} eBase.send(sendObj, type).done(function(resp) { switch (resp['code']) { case eBase.OK_CODE: self.parserSData(resp, item); self.renderMultipleSelect(); self.setRowValues(); break; default: break; } }).fail(function(resp) { //w.layer.msg("获取数据失败"); }); }, sendSelectOne: function(self, item) { var type = 'get'; this.authParams = this.parserUrl(location.href, this.cfg.urlGetType || 'obj').params; var sendObj = { url: item.url + `?auth_aid=${this.authParams.auth_aid}&auth_mid=${this.authParams.auth_mid}&auth_cid=${this.authParams.auth_cid}` }; if (_.has(item, 'params')) sendObj.data = $.extend(true, {}, {}, item.params); try { type = item.type } catch (err) {} eBase.send(sendObj, type).done(function(resp) { switch (resp['code']) { case eBase.OK_CODE: self.parserSData(resp, item); self.renderMultipleSelect(); break; default: break; } }).fail(function(resp) { //w.layer.msg("获取数据失败"); }); }, parserSData: function(resp, item) { var self = this; var el,list; if(_.has(resp,'data') && _.has(resp.data,'list')) { list = resp.data.list; } else { list = resp.data; } if(_.has(resp,'data') && _.has(resp.data,'typeCode')) { el = resp.data.typeCode; } else { el = item.el; } var els = []; if (item.selector && _.isArray(item.selector)) { els = item.selector } else { els = [el]; } list = this.filter(el, list); _.each(els, function(single_el, index) { var showDef = _.has(item, 'showDef') ? item.showDef : false; $(single_el).length > 0 && $(single_el).each(function() { self.setSelect($(this), list, item.def, showDef); }); }); this.fire('select:render.complete'); try { $(el).trigger("chosen:updated.chosen"); } catch (error) { eBase.debug('[CURDTable.js][setSelect][catch]'); } }, isArray: function(o) { return Object.prototype.toString.call(o) == '[object Array]'; }, filter: function(el, list) { var result = []; var self = this; if (self.childSls && self.childSls[el] && self.childSls[el]['filter']) { var f1 = self.childSls[el]['filter']; var fu; if (self.urlParams && self.urlParams.hasOwnProperty(f1)) { fu = self.urlParams[f1]; } if (self.isArray(fu)) { result = _.filter(list, function(item) { return self.isIn(item['id'], fu); }); } else { if (undefined != fu) { for (var i = 0; i < list.length; i++) { if (list[i]['id'] == fu) { result.push(list[i]); } } } else { return list; } } } else { return list; } return result; }, setSelect: function(el, list, def, showDef, keyf, valf) { keyf = keyf || 'code'; valf = valf || 'name'; this.clearSelect(el); if (undefined != def) { if (showDef == true) { $(el).append(""); } else { $(el).append(""); } } if (list.length === 0) { eBase.debug('[CURDTable.js][setSelect][list is null]'); return; } for (var i = 0; i < list.length; i++) { el.append(''); } el.val(""); // this.fire('select:render.complete'); // try { // $(el).trigger("chosen:updated.chosen"); // } catch (error) { // eBase.debug('[CURDTable.js][setSelect][catch]'); // } }, clearSelect: function(el) { if (_.isString(el)) { $(el).empty(); } else { el.empty(); } }, initHideCols: function(pt) { var self = this; if (_.has(self.cfg, 'hideCols')) { _.each(self.cfg.hideCols, function(item, index) { try { pt.bootstrapTable("hideColumn", item); } catch (err) { } }); } }, isIn: function(value, list) { for (var i = 0; i < list.length; i++) { if (value == list[i]) { return true; } } return false; }, renderLocalDataTable: function(cache, sidePagination, pagination) { var self = this; var colConfig = _.has(self.cfg, 'columns') ? self.cfg.columns : []; self.$t = $(self.cfg.t).bootstrapTable({ data: self.cfg.data, search: 0, striped: true, cache: cache, sortClass: '1', pagination: pagination, paginationLoop: true, showRefresh: 0, sortOrder: "asc", sortable: true, dataType: "json", uniqueId: self.cfg.uuid, showExport: 0, paginationHAlign: 'right', strictSearch: true, clickToSelect: true, exportDataType: "basic", sidePagination: sidePagination, toolbar: self.cfg.toolbar, footerbar: self.cfg.footerbar, queryParamsType: "undefined", pageNumber: 1, pageSize: self.cfg.pageSize, pageList: [12, 24, 50, 100], columns: colConfig, onPostBody: function() { eBase.debug('[CURDTable.js][renderTable][lonPostBody]'); self.fire('render.complete'); self.cfg.afterPostBody(); }, onLoadError: function() { eBase.debug('[CURDTable.js][renderTable][lonPostBody]'); self.fire('render.error'); } }); }, renderLocalTable: function(cache, sidePagination, pagination) { var self = this; eBase.send({ url: self.cfg.queryUrl }, 'get').done(function(data) { var colConfig = _.has(self.cfg, 'columns') ? self.cfg.columns : []; self.renderTitle(data); self.$t = $(self.cfg.t).bootstrapTable({ data: data.rows, search: 0, striped: true, cache: cache, pagination: pagination, paginationLoop: true, showRefresh: 0, sortOrder: "asc", sortable: true, dataType: "json", uniqueId: self.cfg.uuid, showExport: 0, paginationHAlign: 'right', strictSearch: true, clickToSelect: true, exportDataType: "basic", sidePagination: sidePagination, toolbar: self.cfg.toolbar, footerbar: self.cfg.footerbar, queryParamsType: "undefined", pageNumber: 1, pageSize: self.cfg.pageSize, pageList: [12, 24, 50, 100], columns: colConfig, onPostBody: function() { eBase.debug('[CURDTable.js][renderTable][lonPostBody]'); self.fire('render.complete'); $('.bs-checkbox').css('vertical-align', ' middle'); self.cfg.afterPostBody(); }, onLoadError: function() { eBase.debug('[CURDTable.js][renderTable][lonPostBody]'); self.fire('render.error'); } }); }).fail(function(resp) { //fail }); }, renderTable: function() { eBase.debug('[CURDTable.js][renderTable][enter]'); var self = this; $(self.cfg.t).bootstrapTable('destroy'); var method = self.cfg.method || 'post', pagination = true, sidePagination = 'server', cache = true; if (self.cfg.pagination != undefined) { pagination = self.cfg.pagination; } var operateFormatter = self.getOperate(self.cfg.appendOperate); var operate = { field: '', title: '操作', valign: "middle", align: 'right', events: self.operateEvents, formatter: operateFormatter }; var defaultHeight = _.has(self.cfg, 'height') ? self.cfg.height : 680; var colConfig = _.has(self.cfg, 'columns') ? self.cfg.columns : []; if (_.has(self.cfg, 'appendOperate')) { colConfig.push(operate); } try { $(self.cfg.t).bootstrapTable('destroy'); } catch (err) {} if (self.cfg.dataSourceType === 'localData') { self.renderLocalDataTable(cache, sidePagination, pagination); } else if (self.cfg.dataSourceType === 'local') { sidePagination = 'client'; self.renderLocalTable(cache, sidePagination, pagination); } else { self.$t = $(self.cfg.t).bootstrapTable({ url: self.cfg.queryUrl, dataField: "rows", totalField: 'total', method: method, search: 0, striped: true, cache: cache, dataType: "json", pagination: pagination, paginationLoop: true, showRefresh: 0, height: defaultHeight, sortOrder: "asc", sortable: true, sortStable: true, uniqueId: self.cfg.uuid, showExport: 0, paginationHAlign: 'right', strictSearch: true, clickToSelect: true, exportDataType: "basic", sidePagination: sidePagination, toolbar: self.cfg.toolbar, footerbar: self.cfg.footerbar, queryParamsType: "undefined", pageNumber: 1, pageSize: self.cfg.pageSize, pageList: [12, 24, 50, 100], columns: colConfig, leftFixedColumns: self.cfg.leftFixedColumns, leftFixedNumber: self.cfg.leftFixedNumber, rightFixedColumns: self.cfg.rightFixedColumns, rightFixedNumber: self.cfg.rightFixedNumber, responseHandler: function(resp) { var code = resp.code; switch (code) { case eBase.NOT_LOGIN_CODE: eBase.gotoLoginPage(); break; case eBase.OK_CODE: self.renderTitle(resp); self.showTitle(); self.renderCompleteHandler(resp); self.moveToolFlag = resp['total'] > parseInt(self.cfg.pageSize) ? true : false; break; case eBase.ERROR_CODE: case eBase.DEL_CODE: case eBase.NO_AUTH: default: resp.rows = []; w.layer.msg(resp.msg); break; } return resp; }, onPostBody: function() { eBase.debug('[CURDTable.js][renderTable][onPostBody]'); self.moveFooterbar(self.moveToolFlag); $('.bs-checkbox').css('vertical-align', ' middle'); self.fire('render.complete'); self.cfg.afterPostBody(); }, onLoadError: function() { eBase.debug('[CURDTable.js][renderTable][lonPostBody]'); self.fire('render.error'); }, queryParams: function(params) { var rst = { pageIndex: params.pageNumber, pageSize: params.pageSize, sortName: params.sortName, //排序功能 sortOrder: params.sortOrder, //排序功能 }; self.cfg.pagination === false && (rst = {}); rst = $.extend(true, {}, rst, self.cfg.params); if (Object.keys(self.urlParams || {})[0]) { return $.extend(rst, { params: self.urlParams }); } else { return rst; } return {}; } }); } self.$t && self.$t.on('load-success.bs.table', function(data) { eBase.debug('[CURDTable.js][renderTable][load data success]'); }); self.initHideCols(self.$t); self.initValidate(); self.initDateInput(); self.initChildEvent(); }, renderTitle: function(resp) { if (_.has(this.cfg, 'ti')) { var ti_el = this.cfg.ti; if ($(ti_el).length > 0) { if (_.has(resp, 'title')) { $(ti_el).text(resp.title); $(ti_el).attr('title', resp.title); } else if (_.has(resp, 'map') && _.has(resp.map, 'title')) { $(ti_el).text(resp.map.title); $(ti_el).attr('title', resp.map.title); } } } }, getOperate: function(type, custom_fuc) { var result = null, self = this; switch (type) { case w.CONSTE.OPERATE.ALL: result = self.OperatingFomatter; break; case w.CONSTE.OPERATE.SHENHE_ALL: result = self.OperatingShenAllFomatter; break; case w.CONSTE.OPERATE.METERING_MANAGER: result = self.OperatingMeteringFomatter; break; case w.CONSTE.OPERATE.SONGJIAN: result = self.SubmitForCheckFomatter; break; case w.CONSTE.OPERATE.INVESTMENT_TRACK: result = self.investmentTrackFomatter; break; case w.CONSTE.OPERATE.DETAIL: result = self.detailFomatter; break; case w.CONSTE.OPERATE.NEW_OPERATE: result = self.OperatingNewsManagerFomateer; break; default: if (_.isFunction(custom_fuc)) { result = custom_fuc } break; } return result; }, investmentTrackFomatter: function(value, row, index) { return '项目跟踪'; }, detailFomatter: function(value, row, index) { return '详情' }, SubmitForCheckFomatter: function(value, row, index) { return '通知送检'; }, OperatingFomatter: function(value, row, index) { return '编辑\ |详情\ |删除'; }, OperatingShenAllFomatter: function(value, row, index) { var b_valid = row['b_valid']; if (b_valid == 1) { return `编辑 |详情 |删除`; } else { return `编辑 |详情 |删除 |审核`; } }, OperatingMeteringFomatter: function(value, row, index) { return '详情\ |计量器具管理'; }, OperatingNewsManagerFomateer: function(value, row, index) { return '撤销\ |编辑\ |删除'; }, moveFooterbar: function(flag) { var self = this; if (null != flag && _.has(self.cfg, 'footerbar')) { if (self.cfg.multipleFooterBar == true) { flag && self.footerbar.css('opacity', 1) && self.footerbar.show() && $(self.cfg.t).parent().parent().find('.fixed-table-footer').after(self.footerbar); !flag && self.footerbar.css('opacity', 1) && self.footerbar.show() && self.footerbar_father.append(self.footerbar); self.addButtonListeners(); } else { flag && self.footerbar.css('opacity', 1) && self.footerbar.show() && $(self.cfg.t).parent().parent().find('.fixed-table-footer').after($(self.cfg.footerbar)); !flag && self.footerbar.css('opacity', 1) && self.footerbar.show() && self.footerbar_father.append($(self.cfg.footerbar)); } } }, clearModal: function() { var self = this; if (_.has(self.cfg, 'clearModal') && _.isFunction(self.cfg.clearModal)) { self.cfg.clearModal(); return; } self.$m.find('input').val(""); self.$m.find('input[type="text"]').val(""); self.$m.find('input[type="password"]').val(""); self.$m.find('input[type="email"]').val(""); self.$m.find('input[type="file"]').fileinput('clear'); self.$m.find('select:not(.constant)').val(""); //TODO: 加 .constant 不清空 }, showModal: function(row) { var self = this; var row, title, def = {}; if (self.addFlag) { row = {}; title = self.cfg.addTitle; } else { row = self.selections[0]; title = self.cfg.editTitle; } row = row || def; self.$m.data('id', row.id); self.$m.find('.modal-title').text(title); if (!self.addFlag && _.has(self.cfg, 'setEditRow') && _.isFunction(self.cfg.setEditRow)) { self.cfg.setEditRow(row); return; } else { self.$m.modal('show'); } self.setRowValues(); }, showEditModalPanel: function() { this.$m.modal('show'); }, showDetailModalPanel: function() { this.$d.modal('show'); }, showDetailModal: function(row) { var self = this; self.$d.find('.modal-title').text(self.cfg.detailTitle); try { var opt = $("#illegal_detail").val(); if (opt === '0') { self.$d.find('.illegal').removeClass("hidden-em"); } else { self.$d.find('.illegal').addClass("hidden-em"); } } catch (err) { } if (_.has(self.cfg, 'setDetailRow') && _.isFunction(self.cfg.setDetailRow)) { for (var key1 in row) { self.$d.find('input').attr('disabled', true); self.$d.find('select').attr('disabled', true); } self.cfg.setDetailRow(row); return; } else { self.$d.modal('show'); } for (var key in row) { self.$d.find('input[name="' + key + '"]').val(row[key]); self.$d.find('input[name="' + key + '"]').attr('disabled', true); self.$d.find('select[name="' + key + '"]').attr('disabled', true); self.$d.find("select[name]").each(function() { var data = $(this).attr('name'); if (key === data) { $(this).val(row[key]); return false; } }); self.$d.find('img[name="' + key + '"]').each(function() { $(this).attr('src', row[key]); }); self.$d.find('a[name="' + key + '"]').each(function() { if ('' != row[key]) { $(this).attr('href', row[key]).attr("download", row[key]); } }); self.$d.find("select[multiple]").each(function() { var data = $(this).attr('name'); if (key === data) { $(this).val(row[key]); $(this).trigger("chosen:updated"); return false; } }); } }, addDownloadEvent: function(el, url) { el.off('click').on('click', function() { if (undefined != url && '' != url) { var $a = $("").attr("href", url).attr("download", url); $a[0].click(); } return false; }); }, setRowValues: function(row) { var self = this; var row, title, def = {}; row = self.selections[0] || def; if (self.addFlag) row = def; for (var key in row) { self.$m.find('input[name="' + key + '"]').val(row[key]); self.$m.find('select[name="' + key + '"]').each(function() { var data = $(this).attr('name'); if (key === data) { $(this).val(row[key]); return false; } }); self.$m.find("select[multiple]").each(function() { var data = $(this).attr('name'); if (key === data) { $(this).val(row[key]); $(this).trigger("chosen:updated"); return false; } }); self.$m.find('input[type="file"]').each(function() { var self_el = $(this); var name = self_el.data('field'); var name1 = name + '1'; var thisImage = row[name1] || undefined; var allowedFileTypes = _.has(self.cfg, 'fileType') ? self.cfg.fileType[name]['allowedFileTypes'] : ['image']; var allowedFileExtensions = _.has(self.cfg, 'fileType') ? self.cfg.fileType[name]['allowedFileExtensions'] : ['jpg', 'png', 'gif']; var showPreview = _.has(self.cfg, 'fileType') ? self.cfg.fileType[name]['showPreview'] : false; if (thisImage) { self_el.fileinput('destroy'); self_el.fileinput({ language: 'zh', uploadUrl: '/zuul/oss/putObject', showUpload: false, showCaption: true, overwriteInitial: true, dropZoneEnabled: false, showPreview: showPreview, allowedFileTypes: allowedFileTypes, allowedFileExtensions: allowedFileExtensions, maxFileSize: 2000, maxFileCount: 1, initialPreviewAsData: true, layoutTemplates: { actionDelete: '', actionUpload: '', actionZoom: '', footer: '' }, initialCaption: row[name], initialPreview: [ thisImage ] }).on("filebatchselected", function(event, files) { var tokenUrl = _.has(self.cfg, 'tokenUrl') ? self.cfg.tokenUrl : '/auth/token/oss'; var params = { filename: files[0].name, filesize: files[0].size }; eBase.debug('[CardTable.js][inputFileInput][filebatchselected]'); eBase.send({ url: tokenUrl, data: JSON.stringify(params) }, 'post').done(function(resp) { if (resp['code'] == '0') { self_el.fileinput("upload", { Athorization: resp['data'] }); } else { self_el.fileinput("upload"); } }).fail(function(resp) { self_el.fileinput("upload"); }); }).on("fileuploaded", function(event, data) { self.$m.find("input[name='" + name + "']").val(data.response.data.filePath); }).on("filecleared", function(event, data) { self.$m.find("input[name='" + name + "']").val(''); }); } else { self_el.fileinput('clear'); } }); //end each } }, setDefault: function() { var self = this; if (_.has(self.cfg, 'defValues')) { for (var key in self.cfg.defValues) { var val = self.cfg.defValues[key]; $('input[name="' + key + '"],select[name="' + key + '"]').val(val); } } }, autoFill: function() { var self = this; if (_.has(self.cfg, 'autoIds') && _.isArray(self.cfg.autoIds)) { _.each(self.cfg.autoIds, function(item) { self.$m.find('input[name="' + item + '"]').each(function() { $(this).val(self.randomId()); $(this).removeAttr('disabled', 'disabled'); $(this).parent().find('button').length > 0 && $(this).parent().find('button').removeAttr('disabled', 'disabled'); $(this).parent().find('button').length > 0 && $(this).parent().find('button').click(function() { $(this).parent().parent().find('input[type="text"]').val(self.randomId()); }); }); }); } }, unuseFields: function() { var self = this; if (_.has(self.cfg, 'unEditFields') && _.isArray(self.cfg.unEditFields)) { _.each(self.cfg.unEditFields, function(item) { self.$m.find('input[name="' + item + '"],select[name="' + item + '"]').each(function() { $(this).attr('disabled', 'disabled'); $(this).parent().find('button').length > 0 && $(this).parent().find('button').attr('disabled', 'disabled'); }); }); } }, initChildEvent: function() { var self = this; if (!self.cfg.child || self.cfg.child.length == 0) return; for (var i = 0; i < self.cfg.child.length; i++) { var item = self.cfg.child[i]; var el = item['el']; $(el).change(function() { var it = self.findElByID('#' + $(this).attr('id')); if (it) { var sv = $(it['el']).find("option:selected").val(); self.$m.find('input[name="' + it['keyField'] + '"]').val(sv); } }); } }, findElByID: function(el) { var self = this; if (!self.cfg.child || self.cfg.child.length == 0) return null; for (var i = 0; i < self.cfg.child.length; i++) { var elm = self.cfg.child[i]['el']; if (elm === el) { return self.cfg.child[i]; } } return null; }, editClickHandler: function(id) { var self = this; eBase.debug('[CURDTable.js][editClickHandler][editBtn click handler]'); self.addFlag = false; self.selections = []; if (_.isUndefined(id)) { self.selections = $(self.cfg.t).bootstrapTable('getSelections'); } else { self.selections.push($(self.cfg.t).bootstrapTable('getRowByUniqueId', id)); } if (self.selections && self.selections.length == 0) { w.layer.msg("请选择一条记录"); return; } else if (self.selections && self.selections.length > 1) { w.layer.msg("一次不能编辑多条"); return; } self.showModal(); var opt = $("#illegal").val(); if (opt == 1) { $(".illegal").removeClass("hidden-em"); } else { $(".illegal").addClass("hidden-em"); } self.unuseFields(); self.refreshAPI(); }, delClickHandler: function(id, batch) { var self = this; eBase.debug('[CURDTable.js][delClickHandler][del button click handler]'); self.selections = []; if (_.isUndefined(id)) { self.selections = $(self.cfg.t).bootstrapTable('getSelections'); } else { self.selections.push($(self.cfg.t).bootstrapTable('getRowByUniqueId', id)); } if (self.selections && self.selections.length < 1) { w.layer.msg("请选择要删除的数据"); return; } var delIndex = w.layer.confirm(self.cfg.confirmMsg, { btn: ['删除', '取消'], shade: false }, function() { eBase.debug('[CURDTable.js][delClickHandler][删除 click handler]'); var ids = []; for (var i = 0; i < self.selections.length; i++) { var item = self.selections[i][self.cfg.uuid]; item && ids.push(item); } self.delItem(ids); w.layer.close(delIndex); }, function() { eBase.debug('[CURDTable.js][delClickHandler][取消 click handler]'); }); }, shenHeClickHandler: function(id, batch) { var self = this; eBase.debug('[CURDTable.js][shenHeClickHandler][del button click handler]'); self.selections = []; if (_.isUndefined(id)) { self.selections = $(self.cfg.t).bootstrapTable('getSelections'); } else { self.selections.push($(self.cfg.t).bootstrapTable('getRowByUniqueId', id)); } if (self.selections && self.selections.length < 1) { w.layer.msg("请选择要审核的数据"); return; } var delIndex = w.layer.confirm(self.cfg.confirmSSMsg, { btn: ['确认', '取消'], shade: false }, function() { eBase.debug('[CURDTable.js][shenHeClickHandler][SHENHE click handler]'); var ids = []; for (var i = 0; i < self.selections.length; i++) { var item = self.selections[i][self.cfg.uuid]; item && ids.push(item); } self.shenheItem(ids); w.layer.close(delIndex); }, function() { eBase.debug('[CURDTable.js][delClickHandler][取消 click handler]'); }); }, submitForCheckClickHandler: function(id, batch) { var self = this; eBase.debug('[CURDTable.js][submitForCheckClickHandler][del button click handler]'); self.selections = []; if (_.isUndefined(id)) { self.selections = $(self.cfg.t).bootstrapTable('getSelections'); } else { self.selections.push($(self.cfg.t).bootstrapTable('getRowByUniqueId', id)); } if (self.selections && self.selections.length < 1) { w.layer.msg("请选择要通知送检的数据"); return; } var delIndex = w.layer.confirm(self.cfg.confirmSendMsg, { btn: ['确认', '取消'], shade: false }, function() { eBase.debug('[CURDTable.js][submitForCheckClickHandler][submitForCheck click handler]'); var ids = []; for (var i = 0; i < self.selections.length; i++) { var item = self.selections[i][self.cfg.uuid]; item && ids.push(item); } self.submitForCheckItem(ids); w.layer.close(delIndex); }, function() { eBase.debug('[CURDTable.js][delClickHandler][取消 click handler]'); }); }, gotoMeteringManagerPage: function(id, row) { var target = this.cfg.meteringPage || 'meteringPage.html'; window.location.href = target + '?id=' + id + '&name=' + row['name']; }, gotoInvestmentOfFixedTrack: function(id, row) { var target = 'investmentOfFixedTrack_new.html'; window.location.href = target + '?id=' + id; }, //宣传公告的撤销按钮 CancelClickHandler: function(id, row) { var self = this; eBase.send({ url: '/monitor/publicitybulletin/release', data: JSON.stringify(['' + row.id]) }).done(function(res) { if (res.code === 0) { self.$t.bootstrapTable('refresh'); self.refreshAPI(); w.layer.msg('发布状态撤销成功!', { time: 1500 }); } else { w.layer.msg('撤销失败'); } }).fail(function(res) { w.layer.msg('res.msg') }) }, detailClickHandler: function(id) { var self = this; eBase.debug('[CURDTable.js][detailClickHandler][editBtn click handler]'); self.addFlag = false; self.selections = []; if (_.isUndefined(id)) { self.selections = $(self.cfg.t).bootstrapTable('getSelections'); } else { self.selections.push($(self.cfg.t).bootstrapTable('getRowByUniqueId', id)); } if (self.selections && self.selections.length == 0) { w.layer.msg("请选择一条记录"); return; } else if (self.selections && self.selections.length > 1) { w.layer.msg("一次不能查看多条"); return; } self.showDetailModal(self.selections[0]); }, addButtonListeners: function() { var self = this; $(self.cfg.addBtn).length > 0 && $(self.cfg.addBtn).off('click').on('click', function() { if (self.isLocal()) return; eBase.debug('[CURDTable.js][addButtonListeners][addBtn click handler]'); self.addFlag = true; self.clearModal(); self.showModal(); $("#illegal").val('0'); $(".illegal").addClass("hidden-em"); self.autoFill(); self.setDefault(); self.refreshAPI(); setTimeout(function() { $('.modal-body').scrollTop(0); }, 200); }); $(self.cfg.editBtn).length > 0 && $(self.cfg.editBtn).off('click').on('click', function() { if (self.isLocal()) return; self.editClickHandler(); }); $(self.cfg.delBtn).length > 0 && $(self.cfg.delBtn).off('click').on('click', function() { if (self.isLocal()) return; self.delClickHandler(); }); $(self.cfg.batchDelBtn).length > 0 && $(self.cfg.batchDelBtn).off('click').on('click', function() { if (self.isLocal()) return; self.delClickHandler(); }); $(self.cfg.shenheBtn).length > 0 && $(self.cfg.shenheBtn).off('click').on('click', function() { if (self.isLocal()) return; self.shenHeClickHandler(); }); $(self.cfg.submitForCheckBtn).length > 0 && $(self.cfg.submitForCheckBtn).off('click').on('click', function() { if (self.isLocal()) return; self.submitForCheckClickHandler(); }); $(self.cfg.checkAllBtn).length > 0 && $(self.cfg.checkAllBtn).off('click').on('click', function() { var check = $(self.cfg.checkAllBtn).data('cked'); if (check === 'checked') { $(self.cfg.checkAllBtn).data('cked', 'unchecked'); self.$t && self.$t.bootstrapTable("uncheckAll"); } else { $(self.cfg.checkAllBtn).data('cked', 'checked'); self.$t && self.$t.bootstrapTable("checkAll"); } }); $(self.cfg.endStateBtn).length > 0 && $(self.cfg.endStateBtn).off('click').on('click', function() { self.hideBtns(); }); $(self.cfg.batchEditBtn).length > 0 && $(self.cfg.batchEditBtn).off('click').on('click', function() { self.showBtns(); }); self.$m && self.$m.find('.submit').off('click').on('click', function() { var row = {}; if (_.has(self.cfg, 'getRow') && _.isFunction(self.cfg.getRow)) { row = self.cfg.getRow(); } else { self.$m.find('input[name]').each(function() { row[$(this).attr('name')] = $(this).val(); }); self.$m.find('select[name]').each(function() { row[$(this).attr('name')] = $(this).val(); }); } row = _.has(self.cfg, 'extendRows') ? $.extend(true, {}, self.cfg.extendRows, row) : $.extend(true, {}, {}, row); if (_.has(self.cfg, 'ValidateFields')) { _.each(self.cfg.ValidateFields, function(item, index) { $(self.cfg.m).find('form').data("bootstrapValidator").addField(item); }); } $(self.cfg.m).find('form').data("bootstrapValidator").validate(); var flag = $(self.cfg.m).find('form').data("bootstrapValidator").isValid(); var extendFlag = self.cfg.extendCheck(); if (flag && extendFlag) { self.addItem(row); } }); self.$d && self.$d.find('.submit').off('click').on('click', function() { eBase.debug('[CURDTable.js][addModalListeners][detail panel submit click handler]'); }); _.has(self.cfg, 'search_params') && $(self.cfg.search_params.field_select).find('a').off('click').on('click', function() { var text = $(this).text() + '\ '; $(self.cfg.search_params.field_select).find('button').html(text); $(self.cfg.search_params.field_input).data('field', $(this).data('field')); $(self.cfg.search_params.field_input).attr('placeholder', $(this).data('placeholder')); $(self.cfg.search_params.field_input).val(''); }); var searchHandler = function() { if (self.isLocal()) return; var params = {}; $(self.cfg.inputBar).find("input[data-field]").each(function() { var key = $(this).data('field'); var value = $(this).val(); if ('' != value && '' != key) { params[key] = value; } }); $(self.cfg.inputBar).find("select[data-field]").each(function() { var key = $(this).data('field'); var value = $(this).val(); if ('' != value && '' != key) { params[key] = value; } }); // var newp = self.urlParams ? $.extend({}, self.urlParams, params) : params; var newp = self.urlParams ? $.extend({}, self.urlParams, (self.cfg.params && self.cfg.params.params ? self.cfg.params.params : {}), params) : $.extend({}, (self.cfg.params && self.cfg.params.params ? self.cfg.params.params : {}), params); var opt = { url: self.cfg.queryUrl, method: 'post', silent: true, query: { params: newp } }; $(self.cfg.t).bootstrapTable('refresh', opt); }; $(self.cfg.inputBar).find("input[data-field]").off('keyup').on('keyup', function(event) { if (event.keyCode == 13) { searchHandler(); } }); $(self.cfg.serBtn) && $(self.cfg.serBtn).length > 0 && $(self.cfg.serBtn).off('click').on('click', searchHandler); $(self.cfg.refBtn) && $(self.cfg.refBtn).length > 0 && $(self.cfg.refBtn).off('click').on('click', function() { var newpp = self.urlParams ? $.extend({}, self.urlParams, {}) : {}; var opt = { url: self.cfg.queryUrl, method: 'post', silent: true, query: { params: newpp } }; self.clearInputs(); $(self.cfg.t).bootstrapTable('refresh', opt); }); }, isLocal: function() { var result = false; if (this.cfg.dataSourceType === 'local') { w.layer.msg("静态数据"); result = true; } return result; }, randomId: function() { var now = new Date(); var id = '' + this.getFormatterDate(now) + '' + _.random(100000, 999999); return id; }, getFormatterDate: function(date) { var result; if (_.isDate(date)) { date = new Date(); var year = date.getFullYear(), m = date.getMonth() + 1, moth = m >= 10 ? m : '0' + m, day = date.getDate(); result = '' + year + moth + day; } else { throw new Error('params is not a date'); } return result; }, clearInputs: function() { var self = this; if (!$(self.cfg.inputBar) || $(self.cfg.inputBar).length <= 0) return; $(self.cfg.inputBar).find("input[data-field]").each(function() { var value = $(this).val(''); }); }, compileHeight: function() { var count = 0; var self = this; $(self.cfg.t).find("th[data-field]").each(function() { var input_hidden = $(this).data('hidden'); if (!input_hidden) { count++; } }); return Math.ceil(count / 2) * 49 + 42 + 40 + 50 + 30; }, addModalListeners: function() { var self = this; if ("undefined" == self.$m) return; self.$m.on('hide.bs.modal', function() { eBase.debug('[CURDTable.js][addModalListeners][hide.bs.modal click]'); $(this).find('form').bootstrapValidator('resetForm', true); }); }, addTableListeners: function() { var self = this; $(self.cfg.t).on("all.bs.table", function() { //eBase.debug('all.bs.table click'); }).on("click-row.bs.table", function(row, $element, field) { self.cfg.rowClickHandler && self.cfg.rowClickHandler(row, $element, field); //eBase.debug("Event:click-row.bs.table"); }).on("dbl-click-row.bs.table", function(row, $element, field) { self.cfg.dbRowClickHandler && self.cfg.dbRowClickHandler(row, $element, field); //eBase.debug("Event:dbl-click-row.bs.table"); }).on("sort.bs.table", function() { //eBase.debug("Event:sort.bs.table"); }).on("check.bs.table", function(row, $element, field) { //eBase.debug("Event:check.bs.table"); }).on("uncheck.bs.table", function(row, $element, field) { //eBase.debug("Event:uncheck.bs.table"); }).on("check-all.bs.table", function() { //eBase.debug("Event:check-all.bs.table"); }).on("uncheck-all.bs.table", function() { //eBase.debug("Event:uncheck-all.bs.table"); }).on("load-success.bs.table", function() { //eBase.debug("Event:load-success.bs.table"); }).on("load-error.bs.table", function() { //eBase.debug("Event:load-error.bs.table"); }).on("column-switch.bs.table", function() { //eBase.debug("Event:column-switch.bs.table"); }).on("page-change.bs.table", function() { //eBase.debug("Event:page-change.bs.table"); }).on("search.bs.table", function() { //eBase.debug("Event:search.bs.table"); }).on("success.bs.table", function() { self.fire('render.complete'); }); window.onresize = function() { // self.$t && self.$t.bootstrapTable("resetWidth"); } }, initOperateEvents: function() { var self = this; this.operateEvents = { 'click .o_edit': function(e, value, row, index) { eBase.debug('[CURDTable.js][operateEvents][edit operate click handler]'); self.checkDataSource() && self.cfg.uuid && self.editClickHandler(row[self.cfg.uuid]); }, 'click .o_detail': function(e, value, row, index) { eBase.debug('[CURDTable.js][operateEvents][detail operate handler]'); self.cfg.uuid && self.detailClickHandler(row[self.cfg.uuid]); }, 'click .o_remove': function(e, value, row, index) { eBase.debug('[CURDTable.js][operateEvents][remove operate click handler]'); self.checkDataSource() && self.cfg.uuid && self.delClickHandler(row[self.cfg.uuid]); }, 'click .o_shenhe': function(e, value, row, index) { eBase.debug('[CURDTable.js][operateEvents][shenhe operate click handler]'); self.checkDataSource() && self.cfg.uuid && self.shenHeClickHandler(row[self.cfg.uuid]); }, 'click .o_m_manager': function(e, value, row, index) { eBase.debug('[CURDTable.js][operateEvents][o_m_manager operate click handler]'); self.checkDataSource() && self.cfg.uuid && self.gotoMeteringManagerPage(row[self.cfg.uuid], row); }, 'click .o_submitForCheck': function(e, value, row, index) { eBase.debug('[CURDTable.js][operateEvents][submitForCheck operate click handler]'); self.checkDataSource() && self.cfg.uuid && self.submitForCheckClickHandler(row[self.cfg.uuid]); }, 'click .o_track': function(e, value, row, index) { self.cfg.investment_track_handler && self.cfg.investment_track_handler(); }, 'click .o_fixed_detail': function(e, value, row, index) { self.checkDataSource() && self.cfg.uuid && self.gotoInvestmentOfFixedTrack(row[self.cfg.uuid], row); }, 'click .o_cancel': function(e, value, row, index) { self.checkDataSource() && self.cfg.uuid && self.CancelClickHandler(row[self.cfg.uuid], row); }, }; }, checkDataSource: function() { var result = true; if (this.cfg.dataSourceType && this.cfg.dataSourceType != 'server') { w.layer.msg("静态数据"); result = false; } return result; }, /** * 获取整个table的函数 * */ queryData: function() { var self = this; eBase.send({ url: self.cfg.queryUrl }).done(function(result) { eBase.debug('[CURDTable.js][queryData][send success]'); $(self.cfg.t).bootstrapTable('refresh'); }).fail(function(result) { eBase.debug('[CURDTable.js][queryData][send fail]'); }); }, trace: function(msg, row) { eBase.debug(msg + ":" + JSON.stringify(row)); }, /** * 增加,修改 * */ addItem: function(row) { var self = this; if (!_.has(self.cfg, 'addUrl') && !_.has(self.cfg, 'editUrl')) return; var url = self.addFlag ? self.cfg.addUrl : self.cfg.editUrl; var msg = self.addFlag ? "添加--参数为:" : "编辑--口参数为:"; self.trace(msg, row); self.cfg.beforeSend(row); eBase.send({ 'url': url, data: JSON.stringify(row) }).done(function() { eBase.debug('[CURDTable.js][addItem][send success]'); w.layer.msg('保存成功'); self.$m.modal('hide'); self.$t.bootstrapTable('refresh'); $(self.cfg.m).find('form').bootstrapValidator('resetForm', true); self.refreshAPI(); self.fire('modify.complete'); }).fail(function() { eBase.debug('[CURDTable.js][addItem][send failed]'); //TODO: 失败不做操作 // self.$m.modal('hide'); // self.$t.bootstrapTable('refresh'); // $(self.cfg.m).find('form').bootstrapValidator('resetForm', true); // self.refreshAPI(); }); }, delItem: function(ids) { var self = this; if (!_.has(self.cfg, 'delUrl')) return; self.trace("删除参数:", ids); eBase.debug('[CURDTable.js][delItem]'); eBase.send({ 'url': self.cfg.delUrl, data: JSON.stringify(ids) }).done(function() { eBase.debug('[CURDTable.js][delItem][send success]'); self.$t.bootstrapTable('refresh'); self.refreshAPI(); w.layer.msg('删除成功'); self.fire('modify.complete'); }).fail(function() { eBase.debug('[CURDTable.js][delItem][send failed]'); }); }, shenheItem: function(ids) { var self = this; var url = ''; if (_.has(self.cfg, 'shenheUrl')) { url = self.cfg.shenheUrl; } eBase.send({ 'url': url, data: JSON.stringify(ids) }).done(function() { eBase.debug('[CURDTable.js][shenheItem][send success]'); self.$t.bootstrapTable('refresh'); self.refreshAPI(); w.layer.msg('审核成功'); }).fail(function() { eBase.debug('[CURDTable.js][shenheItem][send failed]'); }); }, submitForCheckItem: function(ids) { var self = this; var url = ''; if (_.has(self.cfg, 'submitForCheckUrl')) { url = self.cfg.submitForCheckUrl; } eBase.send({ 'url': url, data: JSON.stringify(ids) }).done(function() { eBase.debug('[CURDTable.js][submitForCheckItem][send success]'); self.$t.bootstrapTable('refresh'); self.refreshAPI(); w.layer.msg('已通知'); }).fail(function() { eBase.debug('[CURDTable.js][submitForCheckItem][send failed]'); }); }, unuse: function(el) { $(el).attr("disabled", true); }, checkValue: function(el, val) { $(el).val(val); }, checkText: function(el, txt) { txt = txt || ''; $(el).find("option").each(function() { alert($(this).text()); if (text && txt === $(this).text()) { $(el).val($(this).val()); } }); }, on: function(type, handler) { if (this.handlers[type] == undefined) { this.handlers[type] = []; } //在数组里面我要把需要执行的回调push到数组里面 this.handlers[type].push(handler); }, fire: function(type, data) { if (this.handlers[type] instanceof Array) { var handlers = this.handlers[type]; for (var i = 0; i < handlers.length; i++) { handlers[i](data); } } }, parserUrl: function(url, type) { type = type || 'obj'; if (!url || "" == url) return false; var result = {}; var params = {}; if (url.indexOf("?") != -1) { var str = url.split("?")[1]; var strs = str.split("&"); for (var i = 0; i < strs.length; i++) { if ('obj' == type) { params[strs[i].split("=")[0]] = strs[i].split("=")[1]; } else { var list = strs[i].split("=")[1].split(","); params[strs[i].split("=")[0]] = list; } } result.url = url.split("?")[0]; result.params = params; } else { result.url = url; } return result; }, refreshTable: function(newParams) { newParams = newParams || {}; var self = this, params = {}; if (self.isLocal()) return; $.extend(self.cfg.params.params, newParams) $(self.cfg.inputBar).find("input[data-field]").each(function() { var key = $(this).data('field'); var value = $(this).val(); if ('' != value && '' != key) { params[key] = value; } }); $(self.cfg.inputBar).find("select[data-field]").each(function() { var key = $(this).data('field'); var value = $(this).val(); if ('' != value && '' != key) { params[key] = value; } }); // var newp = self.urlParams ? $.extend({}, self.urlParams, params) : params; var newp = self.urlParams ? $.extend({}, self.urlParams, (self.cfg.params && self.cfg.params.params ? self.cfg.params.params : {}), params) : $.extend({}, (self.cfg.params && self.cfg.params.params ? self.cfg.params.params : {}), params); // newp = { ...newp, // ...newParams // } newp = $.extend(newp, newParams); var opt = { url: self.cfg.queryUrl, method: 'post', silent: true, query: { params: newp } }; $(self.cfg.t).bootstrapTable('refresh', opt); } }; w.cur = CURDTable; w.$c = null; function TFormatter(value, row, index) { if ("1" == value) { return "是"; } return "否"; } function EFormatter(value, row, index) { if ("0" == value) { return "启用"; } return "禁用"; } function DateFormatter(value, row, index) { return new Date(value).Format('yyyy-MM-dd'); } function SubstrDateFormatter(result, row, index) { if (!result) return ''; result += ''; var date = new Date(result.substr(0, 4) + '-' + result.substr(4, 2) + '-' + result.substr(6, 2) + ' ' + result.substr(8, 2) + ':' + result.substr(10, 2) + ':' + result.substr(12, 2)); date = date.Format('yyyy-MM-dd hh:mm') return date; } function MFormatter(value, row, index) { var result = ' '; switch (value) { case '2': result = '故障'; break; case '3': result = '停用'; break; case '1': default: result = '正常'; break; } return result; } function EnergyAuditFormatter(value, row, index) { if (value == '1') { return '已审核'; } else { return '待审核'; } } function ImageFormatter(value, row, index) { var image = ''; if (value) { image = ''; return image; } else { return ''; } } function Left16Formatter(value, row, index) { return '' + value + ''; } function RightAlignFormatter(value, row, index) { return '' + value + ''; } function IndexFormatter(value, row, index) { return '' + (index + 1); } function OperatingNewsManagerFomateer(value, row, index) { var uuid = window.$c.cfg.uuid; return '撤销\ |编辑\ |删除'; } function OperatingFomatter(value, row, index) { var uuid = window.$c.cfg.uuid; return '编辑\ |详情\ |删除'; } function OperatingFomatterC(value, row, index) { var uuid = window.$c.cfg.uuid; return '编辑\ |详情'; } function OperatingEDFomatter(value, row, index) { var uuid = window.$c.cfg.uuid; return '编辑\ |删除'; } function OperatingDFomatter(value, row, index) { var uuid = window.$c.cfg.uuid; return '详情'; } function OperatingMoreFomatter(value, row, index) { var uuid = window.$c.cfg.uuid; return '修改\ |删除\ |设置\ |复制'; } function OperatingExcutionFomatter(value, row, index) { var uuid = window.$c.cfg.uuid; return '执行预案'; } function OperatingAuditFomatter(value, row, index) { var uuid = window.$c.cfg.uuid; return '编辑\ |详情\ |删除\ |审核'; } function OperatingInvestAFomatter(value, row, index) { var uuid = window.$c.cfg.uuid; return '详情\ |审核'; } function OperatingShenheFomatter(value, row, index) { var uuid = window.$c.cfg.uuid; return '审核'; } function onSubmitClick(id) { checkDataSource() && window.$c && window.$c.shenHeClickHandler(id); } function onShenClick(id) { checkDataSource() && window.$c && window.$c.shenHeClickHandler(id); } function onEditClick(id) { checkDataSource() && window.$c && window.$c.editClickHandler(id); } function checkDataSource() { var result = true; if (window.$c && window.$c.cfg.dataSourceType != 'server') { w.layer.msg("静态数据"); result = false; } return result; } function onDetailClick(id) { $(window.$c.cfg.d).length > 0 ? window.$c.detailClickHandler(id) : window.$c.editClickHandler(id); } function onCancelClick(id) { checkDataSource() && window.$c && window.$c.cancelClickHandler(id); } function onDelClick(id) { checkDataSource() && window.$c && window.$c.delClickHandler(id); } w.TFormatter = TFormatter; w.EFormatter = EFormatter; w.DateFormatter = DateFormatter; w.MFormatter = MFormatter; w.ImageFormatter = ImageFormatter; w.IndexFormatter = IndexFormatter; w.EnergyAuditFormatter = EnergyAuditFormatter; w.OperatingFomatter = OperatingFomatter; w.OperatingFomatterC = OperatingFomatterC; w.Left16Formatter = Left16Formatter; w.onEditClick = onEditClick; w.onCancelClick = onCancelClick; w.onDetailClick = onDetailClick; w.onShenClick = onShenClick; w.onDelClick = onDelClick; w.RightAlignFormatter = RightAlignFormatter; w.OperatingEDFomatter = OperatingEDFomatter; w.OperatingDFomatter = OperatingDFomatter; w.OperatingMoreFomatter = OperatingMoreFomatter; w.OperatingExcutionFomatter = OperatingExcutionFomatter; w.OperatingAuditFomatter = OperatingAuditFomatter; w.OperatingShenheFomatter = OperatingShenheFomatter; w.SubstrDateFormatter = SubstrDateFormatter; w.OperatingInvestAFomatter = OperatingInvestAFomatter; w.OperatingNewsManagerFomateer = OperatingNewsManagerFomateer })(window, jQuery, laydate, _);