| /** | 
|  * 封装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()+'<span class="caret "></span>'); | 
|   | 
|   | 
|             }); | 
|   | 
|   | 
|             return mygrid; | 
|         }, | 
|   | 
|         /** 表格序号调用 */ | 
|         indexfn: function (value, row, index) { | 
|             return index + 1; | 
|         }, | 
|   | 
|         /** 获取url */ | 
|         getUrl: function (value, row, index) { | 
|             return "<a href=" + value + " target='blanck' >" + value + "</a>"; | 
|         }, | 
|         getYk: function (value, row, index) { | 
|             if(value){ | 
|                 if(value>=0){ | 
|                     return '<span style="color: green" >'+'+'+value+'</span>'; | 
|                 }else{ | 
|                     return '<span style="color: red" >'+value+'</span>'; | 
|                 } | 
|   | 
|             } | 
|         }, | 
|         getImage: function (value, row, index) { | 
|             if (!value && value == '') { | 
|                 return ""; | 
|             } | 
|             return "<img width='80px;' height='80'  src='" + value + "' />"; | 
|         }, | 
|         /** 获取时间 */ | 
|         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() + ' <span class="caret"></span>'); | 
|         }); | 
|   | 
|         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; | 
|         } | 
|     }; | 
|   | 
| } |