/** * 封装bootstrap-table * * 1、对bootstrap-table的属性进行一些默认的配置, 2、扩展了对搜索按钮、go按钮 3、处理搜索表单的值添加到bootstrap-table * 的默的queryParams中 3.提供一些与表单相关的操作 * @author 姜友瑶 * @date 2016-06-24 */ //公用表格对象 var MGrid = function () { "use strict"; return { /** 初始化表格 */ initGrid: function (_initParam) { var tablbeHeaight = function () { var height = ($(document).height() - $("#serchform").height() - 70); if (height < 100) { height = 300; console.log("小于100") } return height; } /** 表格默认属性 */ var option = { tableSelecter: "#mgrid",// 表格选择器 请保持唯一 serchFormSelecter: "#serchform",// 搜索表单选择器 searchListSelecter: ".search-list", striped: true, //height:tablbeHeaight(), $table: null,// 当前表单的jQuery对象 pagination: true,// 显示分页栏 sidePagination: 'server',// 服务器分页 dataSearch: true,// 显示搜索框 selectItemName: "keys", // 设置checkbox的值 pageList: [15, 50,100,200,300,400,500,1000],// 设置分页显示条数下拉控件的值 showColumns: false,// 显示选择显示列按钮 showRefresh: false,// 显示刷新按钮 seniorSerch: ".senior-serch",//高级搜索点击侧滑事件 serchClose: ".serch-close",//关闭高级搜索框 showToggle: false,// 显示卡片切换 showToolbar: false, clickToSelect: false,// 点击行时选中 mutexClick:true,//开启互斥点击 delUrl: "",// 数据删除地址 fixedColumns: false,// 是否固定列 fixedNumber: 0, // 固定列数 pageSize:15, queryParams: function (params) { return $.extend(params, MForm .toJson(this.serchFormSelecter)); },// 添加搜索值 method: "post",// 数据提交方式 contentType: "application/x-www-form-urlencoded", }; option = $.extend(option, _initParam); var mygrid = new grid(option); mygrid.init(); //初始化下拉框切换的选择条件 var $dropdown_menu=$(".dropdown-menu"); $dropdown_menu.find("li").click(function(){ var node=$(this); var $search_text= $("#search-text") $search_text.attr("name",node.data("field")); $dropdown_menu.prev("button").html(node.html()+''); }); return mygrid; }, /** 表格序号调用 */ indexfn: function (value, row, index) { return index + 1; }, /** 获取url */ getUrl: function (value, row, index) { return "" + value + ""; }, getYk: function (value, row, index) { if(value){ if(value>=0){ return ''+'+'+value+''; }else{ return ''+value+''; } } }, getImage: function (value, row, index) { if (!value && value == '') { return ""; } return ""; }, /** 获取时间 */ getTime: function (value, row, index) { var temp = ""; try { temp = value var date = new Date(temp); if (!temp) { return ""; } else { return date.getFullYear() + "-" + setFomartZero((date.getMonth() + 1)) + "-" + setFomartZero(date.getDate()) + " " + setFomartZero(date.getHours()) + ":" + setFomartZero(date.getMinutes()); } } catch (e) { console.err('MGrid getTime执行失败'); } return temp; }, /** 获取时间 */ getTimeDD: function (value, row, index) { var temp = ""; try { temp = value var date = new Date(temp); if (!temp) { return ""; } else { return date.getFullYear() + "-" + setFomartZero((date.getMonth() + 1)) + "-" + setFomartZero(date.getDate()); } } catch (e) { console.err('MGrid getTime执行失败'); } return temp; }, /** 获取时间 */ getTimeHHSS: function (value, row, index) { var temp = ""; try { temp = value var date = new Date(temp); if (!temp) { return ""; } else { return setFomartZero(date.getHours()) + ":" + setFomartZero(date.getMinutes()); } } catch (e) { console.err('MGrid getTime执行失败'); } return temp; }, goPage: function (node, max, tableId) { var $node = $(node); var page = $(node).prev("input").val(); $("#" + tableId).bootstrapTable('selectPage', page); var pages = $(node).next(".pagination").find(".page-number"); //改变分页样式,但是没效果好奇怪 pages.each(function () { var li = $(this); li.attr("class", "page-number") if (li.find("a").html() == page) { li.attr("class", "page-number active") } }); } } }(); function setFomartZero(date) { if (date < 10) { return "0" + date; } return date; } //私有对象 function grid(option) { this.initParam = option; this.initParam.$table = $(this.initParam.tableSelecter); this.initParam.$table.bootstrapTable(this.initParam); /** 初始化表格 */ this.init = function () { //处理搜索组件 _table = this; _table.initParam.$table.find("li").click(function () { $searlist = $(_table.initParam.searchListSelecter); $input = $("#" + $(_table.initParam.searchListSelecter).data("for")); $button = $(_table.initParam.searchListSelecter).find("button"); $input.attr("name", $(this).data("field")); $button.html($(this).find("a").html() + ' '); }); if(_table.initParam.mutexClick){ //注册互斥点击事件 _table.initParam.$table.on("click-row.bs.table", function (row, $element, field) { _table.initParam.$table.bootstrapTable('uncheckAll') _table.initParam.$table.bootstrapTable('check', field[0].rowIndex - 1); }); } //高级搜索 $(_table.initParam.seniorSerch).click(function () { $(".senior-content").animate({right: '0'}); }); $(_table.initParam.serchClose).click(function () { $(".senior-content").animate({right: '-350px'}); }); $(_table.initParam.serchFormSelecter).keypress(function (e) { if (e.keyCode == 13) { e.preventDefault(); window.event.returnValue = false; _table.serchData(1); return false; } }); }; /** 搜索按钮方法 * page 说明要跳转到的页数 * */ this.serchData = function (page) { if (page) { this.initParam.$table.bootstrapTable('selectPage', +page); } else { this.initParam.$table.bootstrapTable('refresh', { silent: false }); /*确认后延时关闭高级搜索*/ setTimeout(function () { $(".senior-content").animate({right: '-30%'}); }, 200) } }; /** 跳转页面 */ this.goPage = function (node, max, tableId) { var page = 1; var pageNow = $(node).prev().val(); if (pageNow > max) { page = max; } else { page = pageNow <= 0 ? "1" : pageNow; } this.initParam.$table.bootstrapTable('selectPage', +page); }; /** * 删除表格单条数据 */ this.delItem = function (id) { var _this = this; MTools.handleItem(this.initParam.delUrl + "?keys=" + id, "确认要删除这条数据吗?", function () { _this.serchData(); }); }; /** * 批量删除表格单条数据 */ this.delItems = function (idFiledName) { var count = this.initParam.$table.bootstrapTable('getSelections').length; if (count < 1) { layer.msg("请选择您要删除的数据", { icon: 5 }); return false; } var _this = this; MTools.handleItem(this.initParam.delUrl + "?keys=" + this.getSelectItemsIds(idFiledName), "确认要删除这" + count + "条数据吗?", function () { _this.serchData(); }); }; this.getSelectItem = function () { var items = this.initParam.$table.bootstrapTable('getSelections'); if (items.length != 1) { if (items.length < 1) { layer.msg('请选择一条要操作的数据', { icon: 7 }); } else { layer.msg('一次只能选择一条数据', { icon: 7 }); } e.preventDefault(); window.event.returnValue = false; return false; } else { return items[0]; } }; /** * 获取被选中项的id 转换为用逗号分开的id返回 * * @param idFiledName * id 字段的字段名称 */ this.getSelectItemsIds = function (idFiledName) { if (!idFiledName) { idFiledName = "id"; } var items = this.initParam.$table.bootstrapTable('getSelections'); var keys = ""; for (var i = 0; i < items.length; i++) { if (i == items.length - 1) { keys += items[i][idFiledName]; } else { keys += items[i][idFiledName] + ","; } } return keys; }; /** * 返回一个id */ this.getSelectItemId = function (idFiledName) { if (!idFiledName) { idFiledName = "id"; } var items = this.initParam.$table.bootstrapTable('getSelections'); if (items.length != 1) { if (items.length < 1) { layer.msg('请选择一条要操作的数据', { icon: 7 }); } else { layer.msg('一次只能选择一条数据', { icon: 7 }); } e.preventDefault(); window.event.returnValue = false; return false; } else { var keys = ""; for (var i = 0; i < items.length; i++) { if (i == items.length - 1) { keys += items[i][idFiledName]; } else { keys += items[i][idFiledName] + ","; } } return keys; } }; }