hdw
2018-12-06 a3e0ff8aab80c2a9425d4ccb66c862df957dcf2f
导出数据
2个文件已修改
168 ■■■■■ 已修改文件
gx_tieta/WebRoot/pages/js/common.js 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/temp.html 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/pages/js/common.js
@@ -546,6 +546,143 @@
    }
})(jQuery, window, document, GLOBAL);
// 导出报表
;(function($, window, document, gl, undefined) {
    // 定义testVal的命名空间
    gl.namespace('expExcel');
    var ExpExcel = function() {
        this.thead = '';        // 表格的头部
        this.tbody = '';        // 表格的内容
        this.normal = 1;        // 是否为通用的导出
        this.dataBreak = '';    // 数据分割符
        this.pageNames = '';    // 工作簿名称
        this.pageBreak = '';    // 工作簿分隔符
        this.form = '';
        this.form = this.initForm();
    };
    var prop = ExpExcel.prototype;
    // 初始化
    prop._init = function(obj) {
        var defaults = {
            thead: [],
            tbody: [],
            normal: 1,
            dataBreak: '&',
            pageNames: ['数据表格'],
            pageBreak: '$'
        };
        // 合并对象
        var opts = $.extend({}, defaults, obj | {});
        this._setThead(obj.thead, opts.pageBreak, opts.dataBreak);
        this._setTbody(obj.tbody, opts.pageBreak, opts.dataBreak);
        this._setPageNames(opts.pageNames, opts.pageBreak);
        this.dataBreak = opts.dataBreak;
        this.pageBreak = opts.pageBreak;
        this.normal = opts.normal;
        this.form = this.initForm();
        this._setForm();
    };
    // 设置页面中的元素
    prop._setForm = function() {
        var ele = $('#exp_container');
        // 创建容器
        if(ele.length == 0) {
            $('body').append($('<div id="exp_container"></div>'));
        }
        ele = $('#exp_container');
        console.log(ele.length);
        // 更新内容
        ele.text('');
        var form = $('<form id="exp_excel" action="ExportTable.servlet" method="post"></form>');
        var thead = $('<input type="hidden" id="exp_thead" name="exp_thead" value=""/>');
        var tbody = $('<input type="hidden" id="exp_tbody" name="exp_tbody" value=""/>');
        var normal = $('<input type="hidden" id="exp_normal" name="exp_normal" value=""/>');
        var dataBreak = $('<input type="hidden" id="exp_data_break" name="exp_data_break" value=""/>');
        var pageNames = $('<input type="hidden" id="exp_page_names" name="exp_page_names" value=""/>');
        var pageBreak = $('<input type="hidden" id="exp_page_break" name="exp_page_break" value=""/>');
        thead.val(this.thead);
        tbody.val(this.tbody);
        normal.val(this.normal);
        dataBreak.val(this.dataBreak);
        pageNames.val(this.pageNames);
        pageBreak.val(this.pageBreak);
        form.append(thead);
        form.append(tbody);
        form.append(normal);
        form.append(dataBreak);
        form.append(pageNames);
        form.append(pageBreak);
        ele.append(form);
        this.form = form;
    };
    // 设置表格头部的值
    prop._setThead = function(thead, pageBreak, dataBreak) {
        var arr = [];
        // 数据分割
        for(var i=0; i<thead.length; i++) {
            var _arr = thead[i].join(dataBreak);
            arr.push(_arr)
        }
        // 工作簿分割
        var str = arr.join(pageBreak);
        this.thead = str;
    };
    // 设置表格内容
    prop._setTbody = function(tbody, pageBreak, dataBreak) {
        var arr = [];
        // 数据分割
        for(var i=0; i<tbody.length; i++) {
            var _arr = tbody[i].join(dataBreak);
            arr.push(_arr)
        }
        // 工作簿分割
        var str = arr.join(pageBreak);
        this.tbody = str;
    };
    // 设置工作簿内容
    prop._setPageNames = function(pageNames, pageBreak) {
        var str = pageNames.join(pageBreak);
        this.pageNames = str;
    };
    // 初始化form
    prop.initForm = function() {
        this.form = '12345';
    };
    // 导出表格
    prop.xls = function(obj) {
        this._init(obj); // 初始化内容
        // 导出内容
        if(this.form == '12345') {
            alert('没有检测到form表单')
        }else {
            this.form.submit();
        }
    };
    var expExcel = new ExpExcel();
    console.log(expExcel);
    // 绑定导出数据对象
    GLOBAL.expExcel = expExcel;
})(jQuery, window, document, GLOBAL);
// 生成阿里图标的元素
function create_ali_font(cla, color, data) {
    var i = $('<i class="icon iconfont"></i>');
gx_tieta/WebRoot/temp.html
@@ -8,10 +8,10 @@
    <link rel="stylesheet" href="src/css/layui.css">
</head>
<body>
    <div id="exp_container"></div>
    <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
    <script type="text/javascript" src="src/layui.js"></script>
    <script type="text/javascript" src="js/base.js"></script>
       <script type="text/javascript" src="pages/js/common.js"></script>
    <script>
        var ExpExcel = function() {
            this.thead = '';        // 表格的头部
@@ -26,7 +26,7 @@
        var prop = ExpExcel.prototype;
        
        // 初始化
        prop._init = function(ele, obj) {
        prop._init = function(obj) {
            var defaults = {
                thead: [],
                tbody: [],
@@ -48,11 +48,17 @@
            this.normal = opts.normal;
            
            this.form = this.initForm();
            this._setForm(ele);
            this._setForm();
        };
        
        // 设置页面中的元素
        prop._setForm = function(ele) {
        prop._setForm = function() {
            var ele = $('#exp_container');
            // 创建容器
            if(ele.length == 0) {
                $('body').append($('<div id="exp_container"></div>'));
            }
            ele = $('#exp_container');
            // 更新内容
            ele.text('');
@@ -81,7 +87,7 @@
            
            ele.append(form);
            this.form = form;
        }
        };
        // 设置表格头部的值
        prop._setThead = function(thead, pageBreak, dataBreak) {
@@ -113,33 +119,32 @@
        prop._setPageNames = function(pageNames, pageBreak) {
            var str = pageNames.join(pageBreak);
            this.pageNames = str;
        }
        };
        
        // 初始化form
        prop.initForm = function() {
            this.form = '12345';
        }
        };
        // 导出表格
        prop.xls = function(ele, obj) {
        prop.xls = function(obj) {
            this._init(ele, obj); // 初始化内容
            this._init(obj); // 初始化内容
            // 导出内容
            if(this.form == '12345') {
                alert('没有检测到form表单')
            }else {
                this.form.submit();
            }
        }
        };
        var expExcel = new ExpExcel();
        var tblData = {
            thead: [['h1', 'h2', 'h3', 'h4'], ['xh1', 'xh2', 'xh3', 'xh4']],
            tbody:[['t1', 't2', 't3', 't4'], ['xt1', 'xt2', 'xt3', 'xt3']]
        }
        };
        
        expExcel.xls($('#exp_container'), tblData);
        GLOBAL.expExcel.xls(tblData);
    </script>
</body>
</html>