datagrid 生成动态列(三) js部分


/**合并表头单元格*/
function mergeColumn(){
    //$("td[id^='del']").attr("style","border:none;");
    $("td[id='ss']").attr("style","border-bottom-style:none");
    $("td[id='www']").attr("style","border-top-style:none");
}

/**获取年份_表头*/
function getYear(startTime, endTime) {
    var yearHead = "";
    $.ajax({
        url: '/cop/customer/getYearHead?startTime=' + startTime + '&endTime=' + endTime,
        dataType: 'json',
        type: 'post',
        async: false,
        success: function (Data) {
                yearHead = JSON.stringify(Data);
            },
            error: function (Data) {
                $.messager.alert('提示', '取年列失败!', 'info');
            }
    });
    return yearHead;
}
/**获取月份_表头(不带title)*/
function getMonthRemoveTitle(startTime, endTime) {
    var monthHead = "";
    $.ajax({
        url: '/cop/customer/getMonthHead?type=0&startTime=' + startTime + '&endTime=' + endTime,
        dataType: 'json',
        type: 'post',
        async: false,
        success: function (Data) {
                monthHead = JSON.stringify(Data);
            },
            error: function (Data) {
                alert("获取月份失败!");
            }
    });
    return monthHead;
}
/**获取月份_表头(不带Filed)*/
function getMonthRemoveFiled(startTime, endTime) {
    var monthHead = "";
    $.ajax({
        url: '/cop/customer/getMonthHead?type=1&startTime=' + startTime + '&endTime=' + endTime,
        dataType: 'json',
        type: 'post',
        async: false,
        success: function (Data) {
                monthHead = JSON.stringify(Data);
            },
            error: function (Data) {
                alert("获取月份失败!");
            }
    });
    return monthHead;
}

/**查询方法*/
function search() {
    var startTime = $.trim($('#d4311').datebox('getValue'));
    var endTime = $.trim($('#d4312').datebox('getValue'));
    if (startTime == "" || endTime == "") {
        startTime = "2017-01-01";
        endTime = "2017-12-01";
    }
    /**时间验证部分*/
    var startTmp = new Date(startTime.replace(/-/g, "/"));
    var endTmp = new Date(endTime.replace(/-/g, "/"));
    if(startTmp>=endTmp){
        alert("起始时间不能大于开始时间");
         return;
    }
    var col_year = eval(getYear(startTime, endTime));
    var col_value = eval(getMonthRemoveTitle(startTime, endTime));
    var col_title = eval(getMonthRemoveFiled(startTime, endTime));
    $('#dwDatagrid').datagrid({
        frozenColumns: [
            [{
                "title": "",
                "colspan": 7,
                "rowspan": 1,
                "id": "ss"
            }],
            [{
                "title": "",
                "colspan": 7,
                "id": "www"
            }],
            [{
                "field": "underLine",
                "title": "线下",
                "rowspan": 1
            }, {
                "field": "lineNum",
                "title": "行号",
                "rowspan": 1
            }, {
                "field": "customerName",
                "title": "客户名称",
                "rowspan": 1
            }, {
                "field": "grade",
                "title": "客户分级",
                "rowspan": 1
            }, {
                "field": "customerReation",
                "title": "客户关系",
                "rowspan": 1
            }, {
                "field": "Item",
                "title": "物料编码",
                "rowspan": 1
            }, {
                "field": "moneyOrnum",
                "title": "      ",
                "rowspan": 1
            }]
        ],
        columns: [
            col_year,
            col_title,
            col_value
        ],
        method: 'POST',
        url: 'customer/test'
    });
   mergeColumn();
}

/**日期显示格式化*/
function formartDate(id){
    $('#'+id).datebox({  
        onShowPanel : function() {// 显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层  
            span.trigger('click'); // 触发click事件弹出月份层  
            if (!tds)  
                setTimeout(function() {// 延时触发获取月份对象,因为上面的事件触发和对象生成有时间间隔  
                    tds = p.find('div.calendar-menu-month-inner td');  
                    tds.click(function(e) {  
                        e.stopPropagation(); // 禁止冒泡执行easyui给月份绑定的事件  
                        var year = /\d{4}/.exec(span.html())[0]// 得到年份  
                        , month = parseInt($(this).attr('abbr'), 10) + 1; // 月份  
                        $('#'+id).datebox('hidePanel')// 隐藏日期对象  
                        .datebox('setValue', year + '-' + month); // 设置日期的值  
                    });  
                }, 0);  
        },  
        parser : function(s) {// 配置parser,返回选择的日期  
            if (!s)  
                return new Date();  
            var arr = s.split('-');  
            return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, 1);  
        },  
        formatter : function(d) {  
            if (d.getMonth() == 0) {  
                return d.getFullYear()-1 + '-' + 12;  
            } else {  
                return d.getFullYear() + '-' + d.getMonth();  
            }  
        }// 配置formatter,只返回年月  
    });  
    var p = $('#'+id).datebox('panel'), // 日期选择对象  
    tds = false, // 日期选择对象中月份  
    span = p.find('span.calendar-text'); // 显示月份层的触发控件
}

/***
 * 生成列头部分
 */
$(document).ready(function () {
    search();
    formartDate('d4311');
    formartDate('d4312');
});

posted @ 2017-06-16 16:15  albert_think  阅读(876)  评论(0编辑  收藏  举报