var pageNumber;
//加载数据表格
$('#mytab').bootstrapTable({
    toolbar: '#toolbar',                //工具按钮用哪个容器
    striped: true,                      //是否显示行间隔色
    cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
    pagination: true,                   //是否显示分页（*）
    sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
    paginationPreText : '上一页',
    paginationNextText : '下一页',
    pageNumber: 1,                       //初始化加载第一页，默认第一页
    pageSize: 10,                       //每页的记录行数（*）
    pageList: [5,10,15,20,30,50],//可供选择的每页的行数（*）
    height: $(window).height()-104,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
    columns:[
        {
            title:'全选',
            field:'select',
            checkbox:true,
            width:25,
            align:'center',
            valign:'middle'
        },
        {
            field: 'no',
            title: '序号',
            sortable: true,
            formatter: function (value, row, index) {
                //获取每页显示的数量
                var pageSize=$('#mytab').bootstrapTable('getOptions').pageSize;
                //获取当前是第几页
                var pageNumber=$('#mytab').bootstrapTable('getOptions').pageNumber;
                //返回序号，注意index是从0开始的，所以要加上1
                return pageSize * (pageNumber - 1) + index + 1;
            }
        },
        {
            title:'类别',
            field:'typeName',
        },
        {
            title:'内容',
            field:'content',
        },
        {
            title:'是否有效',
            field:'effective',
            formatter: function(value,row,index){
                if(value == 1){
                    return '是';
                }else{
                    return '否';
                }
            }
        },
        {
            title:'创建人',
            field:'creater',
        },
        {
            title:'创建时间',
            field:'createTime',
        },
        {
            title:'修改人',
            field:'updater',
        },
        {
            title:'修改时间',
            field:'updateTime',
        },
        {
            title:'操作',
            formatter: function(value,row,index){
                var editanddrop = "";
                var updateOper = row.updateOper;
                var deleteOper = row.deleteOper;
                if(updateOper == 1){
                    editanddrop += '<button type="button" onclick="updateAnno('+row.id+')" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#myModal2">编辑</button>'
                }
                if(deleteOper == 1){
                    editanddrop += '&nbsp&nbsp&nbsp<button type="button" onclick="deleteAnno('+row.id+')" class="btn btn-sm btn-danger">删除</button>';
                }
                return editanddrop;
            }
        }
    ],
    locale:'zh-CN',//中文支持,
    url:path+'/annotationTemplate/getAnnoTemplateList',//排序方式
    queryParams: function (params) {
        return{
            limit : params.limit, // 每页显示数量
            offset : params.offset, // SQL语句起始索引
            page : (params.offset / params.limit) + 1, //当前页码,
            typeName:$("#searchTypeName").val(),
            content:$("#searchContent").val(),
            creater:$("#creater").val(),
            effective:$("#searchEffective").val(),
        }
    },
    responseHandler:function(res){
        //在ajax获取到数据，渲染表格之前，修改数据源
        var nres = [];
        nres.push({total:res.total,rows:res.list});
        return nres[0];
    },
    onLoadSuccess:function(){
        $(".page-list").show();
        $(".fixed-table-body").css("overflow","auto");
    },
    //监听分页点击事件
    onPageChange: function(num, type) {
        pageNumber = num;
    },
    //选中单个复选框
    onCheck:function(row){
        var checks = $("#checks").val();
        $("#checks").val(checks+="'"+row.id + "',");
    },
    //取消单个复选框
    onUncheck:function(row){
        var checks = $("#checks").val();
        checks = checks.replace("'"+row.id + "',","");
        $("#checks").val(checks);
    },
    //全选
    onCheckAll:function(rows){
        $("#checks").val("");
        var checks = '';
        for(var i=0;i<rows.length;i++)
        {
            checks += "'"+rows[i].id + "',"
        }
        $("#checks").val(checks);
    },
    //全不选
    onUncheckAll: function (rows) {
        $("#checks").val("");
    }
})
//查询按钮
function refreshTable(){
    $("#checks").val("");
    $('#mytab').bootstrapTable('refresh',{
        url : path+'/annotationTemplate/getAnnoTemplateList'
    })
}
$(function(){
    getAnnoType();
})
function getAnnoType(){
    $.ajax({
        type:'get',
        url:path+'/annotationTemplate/selectNotContentAllAnnoTypeByCreater',
        dataType:'json',
        async:false,
        success:function(data){
            if(data != null){
                //组织未添加内容的模板select选项
                var html = '';
                for (var i = 0; i < data.length; i++) {
                    html += '<option value="'+data[i].id+'">'+data[i].typeName+'</option>';
                }
                $("#contentIsNullOption").val(html);
            }
        }
    })
}
//编辑
function updateAnno(id){
    $("#parentId").empty();
    $("#parentId").append($("#contentIsNullOption").val());
    $.ajax({
        type:'get',
        url:path+'/annotationTemplate/getAnnoTemplateById',
        data:{id:id},
        dataType:'json',
        success:function(data){
            if(null != data){
                $("#typeId").val(data.id);
                $("#parentId").append('<option value="'+data.parentId+'">'+data.newName+'</option>');
                $("#parentId").val(data.parentId);
                $("#content").val(data.content);
                $("#effective1").val(data.effective);
            }
        }
    })
}
//删除
function deleteAnno(id){
    Common.confirm({
        title: "提示",
        message: "请确认是否删除该对象?",
        operate: function (reselt) {
            if (reselt) {
                $.ajax({
                    type: 'post',
                    url: path + "/annotationTemplate/deleteAnoType",
                    data: {id: id},
                    dataType: 'json',
                    success: function (data) {
                        if (data.code == 0) {
                            toastr.success("删除成功!");
                            refreshTable();
                            $('#mytab').bootstrapTable('selectPage', pageNumber);
                        } else {
                            toastr.warning(data.msg);
                        }
                    }
                })
            }
        }
    })
}
//导出excel功能
function exportExcel(){
    var checks = $("#checks").val();
    if(checks != '') {
        checks = checks.substring(0, checks.length - 1);
        var url = path+"/annotationTemplate/exportExcel?checks="+checks;
        window.location.href = url;
    }else{
        Common.confirm({
            title: "提示",
            message: "没有选中，您确定要按搜索栏条件导出?",
            operate: function (reselt) {
                if (reselt) {
                    var url = path+"/annotationTemplate/exportExcel?creater="
                        +$("#creater").val()+"&typeName="+$("#searchTypeName").val()+"&content="+$("#searchContent").val()+"&effective="+$("#searchEffective").val();
                    window.location.href = url;
                }
            }
        })
    }
}
//树操作
var zNodes;
var menu = {
    setting: {
        view:{
            fontCss : {"font-family": "微软雅黑","color":"blue"}
        },
        data:{
            key:{
                name:"typeName"
            },
            simpleData: {
                enable: true,
                idKey: "id",
                pIdKey: "parentId",
            },
        },
        callback: { //回调函数
            onClick: zTreeOnClick }
    },
    loadMenuTree:function(){
        $.ajax({
            type: "get",
            url:path+"/annotationTemplate/getAnnoTypeNameTree",
            dataType:"json",
            success:function(data){
                $.fn.zTree.init($("#ztree"), menu.setting, data);
                zTree = $.fn.zTree.getZTreeObj("ztree");
                var nodes = zTree.getNodes();
                for (var i = 0; i < nodes.length; i++) { //设置节点展开
                    zTree.expandNode(nodes[i], true, true, true);
                }
                zNodes = data;
            }
        })
    }
};
//加载树
$().ready(function(data){
    menu.loadMenuTree();
    //初始化模糊搜索方法
    fuzzySearch('ztree','#key',null,true,menu.setting,zNodes);
});
function refrashTree(){
    menu.loadMenuTree();
}
//树点击事件
function zTreeOnClick(event, treeId, treeNode) {
    $("#treeId").val(treeNode.id);
    var level = treeNode.level;
    $("#level").val(treeNode.level);
    $("#childNode").val(treeNode.children);
    if(treeNode.level > 0){
        $("#typeParentId").val(treeNode.parentId);
        $("#annoTypeDiv").show();
        $("#typeBtnDiv").show();
        $("#annoTypeId").val(treeNode.id);
        if(level != '' && level == 2){
            //子级的时候，标识列清空隐藏
            $("#typeFlag").val("");
            $("#typeDiv").hide();
        }else if(level != '' && level == 1){
            $("#typeDiv").show();
            $("#typeFlag").val(treeNode.typeFlag);
        }
        $("#typeName").val(treeNode.newName);
        $("#effective").val(treeNode.effective);
        //清除自身parentId的name字段
        //$("#typeParentId").removeAttr("name");
        //分类判断是否可操作
        var isOper = treeNode.isOper;
        if(isOper == null){
            $("#typeBtnDiv").hide();
        }
    }else{
        $("#annoTypeId").val("");
        $("#typeParentId").val(0);
        //清除自身parentId的name字段
        //$("#typeParentId").removeAttr("name");
        $("#annoTypeDiv").hide();
    }

}
//清空类别表单
function resetAnnoType(){
    $("#typeBtnDiv").show();
    var level = $("#level").val();
    if(level != '' && level == 2){
        toastr.warning("不能再往下添加了!");
    }else{
        if(level == 0){
            $("#typeParentId").val(0);
        }else{
            if($("#typeParentId").val() == 0){
                $("#typeParentId").val($("#annoTypeId").val());
            }
        }
        $("#annoTypeId").val("");
        form1.reset();
        if(level != '' && level > 0){
            $("#typeDiv").hide();
        }else if(level != ''){
            $("#typeDiv").show();
            $("#annoTypeDiv").show();
        }
        if(level == ''){
            toastr.warning("请选中根节点!");
        }
    }
}
//监听关闭模态框刷新事件
$('#myModal1').on('hide.bs.modal', function () {
    window.location.reload();
    getAnnoType();
});
//保存类别功能方法
function saveAnoType(){
    if($("#typeParentId").val() == 0 && $("#typeFlag").val() == ''){
        toastr.warning("类别标志不能为空!");
        $("#typeFlag").focus();
    }else{
        if($("#typeName").val() != ''){
            $.ajax({
                type:'post',
                url:path+'/annotationTemplate/addAnoType',
                data:$("#form1").serialize(),
                dataType:'json',
                success:function(data){
                    if(data.code == 0){
                        if($("#annoTypeId").val() == ''){
                            $("#level").val(Number($("#level").val())+1);
                        }
                        refrashTree();
                        toastr.success("保存成功!");
                        $("#annoTypeId").val(data.msg);
                    }else{
                        toastr.warning(data.msg);
                    }
                    setTimeout(function(){
                        var zTree = $.fn.zTree.getZTreeObj("ztree");
                        var node = zTree.getNodeByParam("id",data.msg);
                        $("#childNode").val(node.children);
                        zTree.selectNode(node);
                    },500);
                }
            })

        }else{
            toastr.warning("类别名称不能为空!");
            $("#typeName").focus();
        }
    }
}

/*删除类别功能方法*/
function deleteAnoType(){
    //判断是否有下级，有则不让删
    var childNode = $("#childNode").val();
    if (childNode != '') {
        toastr.warning("存在子节点，先从子节点开始删！");
    } else {
        if ($("#annoTypeId").val() != '') {
            Common.confirm({
                title: "提示",
                message: "请确认是否删除该对象?",
                operate: function (reselt) {
                    if (reselt) {
                        $.ajax({
                            type: 'post',
                            url: path + "/annotationTemplate/deleteAnoType",
                            data: {id: $("#annoTypeId").val()},
                            dataType: 'json',
                            success: function (data) {
                                if (data.code == 0) {
                                    refrashTree();
                                    toastr.success("删除成功!");
                                } else {
                                    toastr.error("删除失败，请联系超管!");
                                }
                            }
                        })
                    }
                }
            })
        } else {
            toastr.warning("请确认您是否选中一项!");
        }
    }
}

/*********************************************添加功能****************************************************/
//添加功能方法
function addAnnoType(){
    $("#typeId").val("");
    form2.reset();
    $("#parentId").empty();
    $("#parentId").append($("#contentIsNullOption").val());
}
//保存
function saveAnno(){
    var flag = false;
    var parentId = $("#parentId").val();
    if(parentId != '' && parentId != null){
        if($("#content").val() != ''){
            $.ajax({
                type:'post',
                url:path+"/annotationTemplate/addAnno",
                data:$("#form2").serialize(),
                dataType:'json',
                success:function(data){
                    if(data.code == 0){
                        flag = true;
                        toastr.success("保存成功!");
                        addAnnoType();
                    }else{
                        toastr.warning(data.msg);
                    }
                }
            })
        }else{
            toastr.warning("内容不能为空!");
            $("#content").focus();
        }
    setTimeout(function(){
        var id = $("#typeId").val();
        if(flag){
            if(id != ''){
                refreshTable();
                $('#mytab').bootstrapTable('selectPage', pageNumber);
                $('#myModal2').modal('hide');
            }else{
                window.location.reload();
            }
        }
    },500)
    }else{
        toastr.warning("添加失败，类别不能为空，如若没有为添加类别请先到个人原因和批注模板页面添加类别！");
    }
}
//清空标注模板表单
function clearAnno(){
    form2.reset();
}