/** 
 | 
 * 封装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; 
 | 
        } 
 | 
    }; 
 | 
  
 | 
} 
 |