//excel终端树配置项设置表格内容
function setTableData(data) {
    var tableData = '';

    for (var i = 0; i < data.length; i++) {
        tableData += '["' + data[i].rdName + '",';
        tableData += '"' + data[i].rdDescribe + '",';
        tableData += '"' + (data[i].parentGUID == "0" ? "parentNull" : data[i].parentGUID) + '",'; //使用parentNull特殊处理是为了与终端树关联过滤数据
        tableData += '"' + data[i].rdIndex + '",""],';
    }

    //去除最右边',' string转json
    tableData = tableData.substring(0, tableData.lastIndexOf(','));
    tableData = eval('[' + tableData + ']');
    initTable(tableData);
}

var objTable = null;

/**
 该方法与终端树交互，存在隐藏列参与搜索的情况
 如果需要修改，可另外再写一个方法，指定哪些列参与搜索
 */
//搜索框内容改变结果记录
var searchValue = "";

function valueChange(value) {
    searchValue = value;
    objTable.search(value).draw();
}

//初始化表格
function initTable(data) {
    objTable = $('#excelList').DataTable({
        data: data,
        lengthChange: false,
        bDestroy: true,
        info: false,
        paging: false,
        scrollY: document.getElementById("right").offsetHeight - document.getElementById("search").offsetHeight - 3 - 42 + 'px',
        ordering: false,
        columnDefs: [{
            targets: [2, 3],
            visible:
                false
        }],
        dom: 'lrt<<"myStyle"i><"myStyle"p>>',
        language:
            {
                url: '/pqs9900/json/chine.json'
            }
        ,
        createdRow: function (row, data, index) {
            var $btnView = $('<button type="button" data-toggle="modal" data-target="#addModal" class="btn themeBGColor btn-view"><i class="glyphicon glyphicon-plus"></i>新增节点配置</button><button type="button" class="btn btn-danger ml10"><i class="glyphicon glyphicon-trash"></i>删除</button><button type="button" class="btn themeBGColor updateData ml10"><i class="glyphicon glyphicon-edit"></i>编辑</button>');
            $('td', row).eq(2).append($btnView);
        }
        ,
        fnDrawCallback: function (objTable) {
            $("#excelList_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页  <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
            var table = $("#excelList").dataTable();

            $('#dataTable-btn').click(function (e) {
                if ($("#changePage").val() && $("#changePage").val() > 0) {
                    var redirectpage = $("#changePage").val() - 1;
                } else {
                    var redirectpage = 0;
                }

                table.fnPageChange(redirectpage);
            });
        }
    });
    new $.fn.dataTable.Buttons(objTable, {
        buttons: [
            {
                extend: 'csv',//导出格式
                title: '字典管理列表',//导出csv名称
                exportOptions: {
                    columns: [0, 1],//导出需要的列
                    format: {
                        body: function (data) {//对导出内容的筛选 data 表格内容 rid 行索引 cid 列索引
                            return data;
                        }
                    }
                }
            }
        ]
    });
    modifyCss(objTable);
}

function modifyCss(dataTable) {
    dataTable.buttons().container().css("display", "inline-block");
    dataTable.buttons().container().css("float", "right");
    dataTable.buttons().container().css("top", "4px");
    dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
    dataTable.buttons().container().appendTo('.header');
    dataTable.buttons().container().after($("#fliteData")[0]);
}

//新增子节点,带入父节点的ID
var parentID = null;
$('#excelList').on("click", ".btn-view", function () {
    //清空input内容
    $('#shortName').val("");
    $('#fullName').val("");
    b = true;

    //设置模态对话框标题
    document.getElementById("addModalLabel").innerText = '新增节点配置';

    if (objTable != null) {
        var item = objTable.row($(this).closest('tr')).data();
        parentID = item[3];
    }
});

//提交节点数据
var b = true; //判断是新建还是更新提交
function commitData() {
    var shortName = $('#shortName').val();

    if (!enz.test(shortName)) {
        layer.msg('缩写只支持字母、数字！');
        //去除关闭dialog属性
        document.getElementById('commit').removeAttribute("data-dismiss");
        return;
    }

    var fullName = $('#fullName').val();

    if (!cenz.test(fullName)) {
        layer.msg('全称只支持汉字、字母、数字！'); //全称只支持汉字、字母、数字
        //去除关闭dialog属性
        document.getElementById('commit').removeAttribute("data-dismiss");
        return;
    }

    if ("modal" != document.getElementById('commit').getAttribute("data-dismiss")) {
        //dialog添加属性
        document.getElementById('commit').setAttribute("data-dismiss", "modal");
    }

    //xss过滤
    shortName = filterXSS(shortName);
    fullName = filterXSS(fullName);

    if (b) {
        $.post('/pqs9900/report/createData', {
            'shortName': shortName,
            'fullName': fullName,
            'parentID': parentID
        }, function (data) {
            layer.msg(data.body);

            if (0 === data.code) {
                getData();//如果数据添加成功，刷新界面
                valueChange(searchValue);//根据上次结果还原表格数据
            }
        }, "json");
    } else {
        $.post('/pqs9900/report/updateData', {
            'shortName': shortName,
            'fullName': fullName,
            'rdIndex': rdIndex
        }, function (data) {
            layer.msg(data.body);

            if (0 === data.code) {
                getData();//如果数据更新成功，刷新界面
                valueChange(searchValue);//根据上次结果还原表格数据
            }
        }, "json");
    }
}

//删除按钮
var deleteGuid = null;
$('#excelList').on("click", ".btn-danger", function () {
    if (objTable != null) {
        var item = objTable.row($(this).closest('tr')).data();

        if ('jcpz' === item[0]) {
            layer.msg("无法删除基础项配置.");
            return;
        }

        //判断是否是父节点，如果是弹框提示是否确认删除
        if (objTable.search(item[3]).page.info().recordsDisplay > 1) {
            document.getElementById("deleteInfo").innerText = '该配置有子节点配置，是否确认删除？';
            $('#deleteModal').modal();
        } else {
            document.getElementById("deleteInfo").innerText = '是否确认删除？';
            $('#deleteModal').modal();
        }

        deleteGuid = item[3];
    }
});

//确认删除
function deleteData() {
    $.post('/pqs9900/report/deleteData', {
        'rdIndex': deleteGuid
    }, function (data) {
        layer.msg(data.body);

        if (0 === data.code) {
            getData();//如果数据删除成功，刷新界面
            valueChange(searchValue);//根据上次结果还原表格数据
        }
    }, "json");
}

//编辑按钮
var rdIndex = null;
$('#excelList').on("click", ".updateData", function () {
    if (objTable != null) {
        var item = objTable.row($(this).closest('tr')).data();
        //获取shortName与fullName配置信息
        var shortName = item[0];
        var fullName = item[1];
        rdIndex = item[3];
        b = false;

        //设置模态对话框标题
        document.getElementById("addModalLabel").innerText = '编辑配置项';

        /**
         与新增子节点配置同用一个dialog
         填充编辑框内容
         */
        $('#shortName').val(shortName);
        $('#fullName').val(fullName);
        $('#addModal').modal();
    }
});
