layui.config({
    base: '../../js/ext/',   // 第三方模块所在目录
    version: 'v1.6.4' // 插件版本号
}).extend({
    soulTable: 'soulTable.slim'
});
var layer;
var element;
var form;
var table;
var soulTable;
var allData;
var resourceSetId = localStorage.getItem("unitResourceSetId");
layui.use(['element', 'layer','form','table','soulTable'], function(){
        layer = layui.layer;
        element = layui.element;
        form = layui.form;
        table = layui.table;
        soulTable = layui.soulTable;
        addUnitTableMessage();

    $("#addTable").click(function () {
        var newData = table.cache.myTable; //获取当前表格的数据
        var indexNum = newData.length + 1;
        var newRow = {id:"",dictKey: "",dickVal: "",dictSort:"",description:"",parentId:"",isParent:"",isNewAdd:"1",LAY_NUM:indexNum}; //新增行的数据
        newData.splice(indexNum, 0, newRow); //将新增行数据插入到当前行的后面
        table.reload('myTable', {
            data: newData //重新加载表格数据
        });
    });

});

function addUnitTableMessage() {
    $.ajax({
        type: 'POST',
        async: false, // 默认异步true,false表示同步
        url: ctxPath + "/selectUtil/getDataDictByDickVal",// 请求地址
        dataType: 'json', // 服务器返回数据类型
        data: {"dictKey": "org_type"}, //获取提交的表单字段
        success: function (data) {
            let objData= data;
            allData = data;
            console.log("objData="+objData);
            if (objData.length > 0) {
                table.render({
                    elem: '#myTable'
                    // ,toolbar: '#myBar'
                    ,rowDrag: {done: function(obj) {
                            // 完成时（松开时）触发
                            // 如果拖动前和拖动后无变化，则不会触发此方法
                            // console.log(obj.row) // 当前行数据
                            // console.log(obj.cache) // 改动后全表数据
                            console.log("原来的数据索引="+obj.oldIndex) // 原来的数据索引
                            console.log(" 改动后数据索引"+obj.newIndex) // 改动后数据索引

                            var row_id = obj.row.id  	// 当前id
                            var row_sort = obj.newIndex+1 		// 拖动后的排序

                            console.log(row_id)
                            console.log(row_sort)

                        }}
                    ,totalRow: true
                    ,cols: [[
                        {field: 'dictKey', title: '类型',edit:'text', align:'center'},
                        {fixed: 'right', title:'操作', align:'center',toolbar: '#toolsBar'}
                    ]]
                    , data: objData
                    ,done: function () {
                        soulTable.render(this)
                    }
                });
                //监听工具条
                table.on('edit(test)', function (obj) {

                });
                form.on('submit(formDemo)', function (data) {
                    var tableData = table.cache.myTable; //
                    console.log(JSON.stringify(tableData));
                    var tf = false;
                    tableData.forEach(item => {
                        let id = item.id;
                        let dictKey = item.dictKey;
                        let isNewAdd = item.isNewAdd;
                        if(dictKey ==""){
                            tf = true;
                        }
                    });
                    if(tf){
                        layer.msg("请填写完整分类类型！", {icon: 2});
                        return;
                    }

                    $.ajax({
                        type: 'POST',
                        async: false, // 默认异步true,false表示同步
                        url: ctxPath + "/teamSet/saveDataDict",// 请求地址
                        dataType: 'json', // 服务器返回数据类型
                        data: {stringKey:JSON.stringify(tableData),resourceSetId:resourceSetId,dataDictType:"org_type"}, //获取提交的表单字段
                        success: function (data) {
                            var status = data.resMsg;
                            if("保存成功"==status){
                                layer.msg("保存成功", {icon: 1});
                            }else{
                                // layer.msg("数据添加失败！", {icon: 2});
                                layer.msg("保存失败", {icon: 2});

                            }
                        }
                    });

                });

                //监听工具条
                table.on('tool(myTable)', function (obj) {
                    let data = obj.data; //当前行数据
                    let rowIndex = obj.index;
                    let value = obj.value; // 得到修改后的值
                    let oldValue = obj.oldValue;
                    let layEvent = obj.event; //当前点击的事件名
                    let id = obj.data.id;
                    let dickVal = obj.data.dickVal;
                    let field = obj.field; // 得到字段
                    let isNewAdd = obj.data.isNewAdd;
                    let newData = table.cache.myTable; //获取当前表格的数据
                    if (layEvent === 'del') {
                        if(isNewAdd == "1" || isNewAdd == 1){
                            newData.splice(rowIndex, 1); //将新增行数据插入到当前行的后面
                            table.reload('myTable', {
                                data: newData //重新加载表格数据
                            });
                        }else{
                            if(dickVal == undefined || dickVal =='undefined'){
                                let conIndex = layer.confirm('是否确认删除？', {
                                    btn: ['确认', '取消'] //可以无限个按钮
                                }, function(index, layero){
                                    //按钮【确认】的回调
                                    $.ajax({
                                        type: 'POST',
                                        async: false, // 默认异步true,false表示同步
                                        url: ctxPath + "/teamSet/delDataDict",// 请求地址
                                        dataType: 'json', // 服务器返回数据类型
                                        data: {id:id}, //获取提交的表单字段
                                        success: function (data) {
                                            let status = data.resMsg;
                                            if("删除成功"==status){
                                                //layer.msg("数据添加成功！", {icon: 1});
                                                newData.splice(rowIndex, 1); //将新增行数据插入到当前行的后面
                                                table.reload('myTable', {
                                                    data: newData //重新加载表格数据
                                                });
                                                layer.msg("删除成功", {icon: 1});


                                            }else{
                                                // layer.msg("数据添加失败！", {icon: 2});
                                                layer.msg("删除失败", {icon: 1});

                                            }
                                        }
                                    });

                                }, function(index){
                                    //按钮【取消】的回调


                                });
                            }else{
                                layer.msg("此数据位基础类型，不能删除！", {icon: 2});
                            }
                        }

                    }
                });
            }
        },
        error:function (data) {

        }
    });
}