//@ sourceURL=unit_code.js
var $dataTableHot;
var TableInit = function () {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $dataTableHot = $('#tb_report').bootstrapTable({
            url: '/thmz/listUnitCode',         //请求后台的URL（*）
            method: 'post',                      //请求方式（*）
            toolbar: '#toolbar',                //工具按钮用哪个容器
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber: 1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
            search: false,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
            strictSearch: true,
            showColumns: false,                  //是否显示所有的列
            showRefresh: true,                  //是否显示刷新按钮
            minimumCountColumns: 2,             //最少允许的列数
            clickToSelect: true,                //是否启用点击选中行
            uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
            showToggle: true,                    //是否显示详细视图和列表视图的切换按钮
            cardView: false,                    //是否显示详细视图
            detailView: false,
            ajaxOptions: {
                headers: {
                    'Accept': 'application/json',
                    'Authorization': 'Bearer ' + localStorage.getItem("token")
                }
            },
            columns: [{
                field: 'delFlag',
                title: '停用',
                align: "center",
                valign: 'middle',
                formatter: function (value, row, index) {
                    if (value == '1') {
                        return "是";
                    } else if (value == '0') {
                        return "否";
                    }
                }
            },
                //     {
                //     field: 'code',
                //     title: '科室编码',
                //     align: "center",
                //     valign: 'middle',
                // },
                {
                    field: 'name',
                    title: '科室名称',
                    align: "center",
                    valign: 'middle',
                }, {
                    field: 'classValue',
                    title: '分类',
                    align: "center",
                    valign: 'middle',
                }, {
                    field: 'mzClassValue',
                    title: '门诊分类码',
                    align: "center",
                    valign: 'middle',
                }, {
                    field: 'sortCode',
                    title: '排序码',
                    align: "center",
                    valign: 'middle',
                }, {
                    field: 'pyCode',
                    title: '拼音码',
                    align: "center",
                }, {
                    field: 'wbCode',
                    title: '五笔码',
                    align: "center",
                    valign: 'middle',
                }, {
                    field: 'ynCode',
                    title: '院内码',
                    align: "center",
                    valign: 'middle',
                    formatter: function (value, row, index) {
                        if (value == '1') {
                            return "自建";
                        }
                        return "共建";
                    }
                }, {
                    field: 'mzFlag',
                    title: '门诊开放',
                    align: "center",
                    valign: 'middle',
                    formatter: function (value, row, index) {
                        if (value == '1') {
                            return "是";
                        }
                        return "否";
                    }
                }, {
                    field: 'yjFlag',
                    title: '医技上线',
                    align: "center",
                    valign: 'middle',
                    formatter: function (value, row, index) {
                        if (value == '1') {
                            return "是";
                        }
                        return "否";
                    }
                }
                // , {
                //     field: 'xnhDeptCode',
                //     title: '新农合科室编码',
                //     align: "center",
                //     valign: 'middle',
                // }, {
                //     field: 'xnhDeptName',
                //     title: '新农合科室名称',
                //     align: "center",
                //     valign: 'middle',
                // }
                , {
                    field: 'parentName',
                    title: '父科室',
                    align: "center",
                    valign: 'middle',
                }, {
                    field: 'ghChargeFlag',
                    title: '收取挂号费',
                    align: "center",
                    valign: 'middle',
                    formatter: function (value, row, index) {
                        if (value == '1') {
                            return "是";
                        }
                        return "否";
                    }
                }, {
                    field: 'supplyFlag',
                    title: '用药方式执行科室',
                    align: "center",
                    valign: 'middle',
                    formatter: function (value, row, index) {
                        if (value == '1') {
                            return "是";
                        }
                        return "否";
                    }
                }, {
                    field: 'ghjzFlag',
                    title: '门诊挂号就诊',
                    align: "center",
                    valign: 'middle',
                    formatter: function (value, row, index) {
                        if (value == '1') {
                            return "是";
                        }
                        return "否";
                    }
                }, {
                    field: 'officePos',
                    title: '就诊地点',
                    align: "center",
                    valign: 'middle',
                }, {
                    title: '操作',
                    align: "center",
                    valign: 'middle',
                    formatter: function (value, row, index) {
                        var str;
                        if (row.delFlag == 1) {
                            str = '<button type="button" class="btn btn-success  btn-sm" onclick="updateDeleteUnitCode(\'' + row.code + '\',\'' + row.name + '\',\'' + row.delFlag + '\')">启用</button>';
                        } else {
                            str = '<button type="button" class="btn btn-primary  btn-sm" onclick="updateDeleteUnitCode(\'' + row.code + '\',\'' + row.name + '\',\'' + row.delFlag + '\')">停用</button>';
                        }
                        str += '<button type="button" class="btn btn-default  btn-sm" onclick="editUnitCode(\'' + row.code + '\')">编辑</button>';
                        return [str].join('');
                    }
                }],

            responseHandler: function (res) {
                if (res == '401' || res == 401) {
                    window.location.href = '/thmz/login/view'
                    return;
                }
                var ress = eval(res);
                if (ress.code == -1) {
                    new PNotify({
                        title: '错误提示',
                        text: ress.message,
                        type: 'error',
                        hide: false,
                        styling: 'bootstrap3'
                    });
                    return {
                        "total": 0,//总页数
                        "rows": {}   //数据
                    };
                }
                return {
                    "total": ress.pageViewVO.total,//总页数
                    "rows": ress.pageViewVO.data   //数据
                };
            },
        });
    };

    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            pageSize: params.limit,   //页面大小
            pageIndex: params.offset / params.limit,  //页码
            orderByCase: $("#orderByCase").val(),
            zdUnitCode: {
                code: $("#deptNoParam").val(),
                pyCode: $("#pyCode").val(),
                wbCode: $("#wbCode").val(),
                delFlag: $("#delFlag").val(),
                classCode: $("#classType").val()
            }
        };
        return temp;
    };
    return oTableInit;
};


var ButtonInit = function () {
    var oInit = new Object();
    oInit.Init = function () {
        //重置查询参数
        $('#btn_clean').click(function () {
            $("#delFlag").selectpicker('val', null);//默认选中
            $("#delFlag").selectpicker('refresh');
            $("#classType").selectpicker('val', null);//默认选中
            $("#classType").selectpicker('refresh');
            $("#deptNoParam").selectpicker('val', null);//默认选中
            $("#deptNoParam").selectpicker('refresh');
            $("#pyCode").val(null);
            $("#wbCode").val(null);
        });
        //初始化页面上面的按钮事件
        //查询
        $('#btn_query').click(function () {
            $("#tb_report").bootstrapTable('refresh');
        });

        //导出excel
        $('#export_excel').click(function () {
            exportExcel();
        });
        // //点击切换后给表头设置排序事件
        // $("button[name='toggle']").click(function () {
        //     changeOrderByCause();
        // });
    };

    return oInit;
};


/**
 * 导出excel
 */
function exportExcel() {
    window.location.href = "/thmz/excelUnitCode?orderByCase=" + $("#orderByCase").val() + "&code=" + $("#code").val() + "&name=" + $("#name").val() + "&pyCode=" + $("#pyCode").val() + "&wbCode=" + $("#wbCode").val() + "&delFlag=" + $("#delFlag").val() + "&classCode=" + $("#classType").val();
}


/**
 * 初始化下拉选
 */
function initSelect() {
//启动Bootsrap-Select
    $(".selectpicker").selectpicker({
        dropuAuto: false
    });
    var yesNo = '<option value="1">是</option><option value="0">否</option>';
    $('#delFlag').html(yesNo);
    $('#delFlag').selectpicker('refresh');
    $('#ynCodePlus').html('<option value="1">自建</option><option value="0">共建</option>');
    $('#ynCodePlus').selectpicker('refresh');
    $('#mzFlagPlus').html(yesNo);
    $('#mzFlagPlus').selectpicker('refresh');
    $('#yjFlagPlus').html(yesNo);
    $('#yjFlagPlus').selectpicker('refresh');
    $('#ghChargeFlagPlus').html(yesNo);
    $('#ghChargeFlagPlus').selectpicker('refresh');
    $('#supplyFlagPlus').html(yesNo);
    $('#supplyFlagPlus').selectpicker('refresh');
    $('#ghjzFlagPlus').html(yesNo);
    $('#ghjzFlagPlus').selectpicker('refresh');

    //所有科室分类列表
    $.ajax({
        type: "GET",
        url: '/thmz/listClassCode',
        dataType: "json",
        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
        success: function (data) {
            if (data == '401' || data == 401) {
                window.location.href = '/thmz/login/view'
                return;
            }
            var html = '';
            $.each(data.data, function (commentIndex, comment) {
                html += '<option value="' + comment.code + '">' + comment.name + '</option>';
            });
            $('#classType').empty();   //清空resText里面的所有内容
            $('#classTypePlus').empty();
            $('#classType').html(html);
            $('#classType').selectpicker('refresh');
            $('#classTypePlus').html(html);
            $('#classTypePlus').selectpicker('refresh');
        }
    });

    initParentCodePlus();

    //所有门诊分类码列表
    $.ajax({
        type: "GET",
        url: '/thmz/getMzClass',
        dataType: "json",
        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
        success: function (res) {
            if (res == '401' || res == 401) {
                window.location.href = '/thmz/login/view'
                return;
            }
            var html = '<option value="-1">无</option>';
            $.each(res.data, function (commentIndex, comment) {
                html += '<option value="' + comment.code + '">' + comment.name + '</option>';
            });
            $('#mzClassPlus').empty();   //清空resText里面的所有内容
            $('#mzClassPlus').html(html);
            $('#mzClassPlus').selectpicker('refresh');
        }
    });
}

/**
 * 初始化父科室下拉选
 */
function initParentCodePlus() {
    //父科室列表
    $.ajax({
        type: "GET",
        url: '/thmz/allUnitCode',
        dataType: "json",
        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
        success: function (data) {
            if (data == '401' || data == 401) {
                window.location.href = '/thmz/login/view'
                return;
            }
            $('#parentCodePlus').empty();   //清空resText里面的所有内容
            var html = '';
            $.each(data.data, function (commentIndex, comment) {
                html += '<option value="' + comment.code + '">' + comment.name + '</option>';
            });
            $('#parentCodePlus').html(html);
            $('#parentCodePlus').selectpicker('refresh');
        }
    });
}

/**
 * 打开编辑窗口
 * @param code
 */
function editUnitCode(code) {
    //设置当前要修改的部门的编码  因为部门表没有主键，需要记录下来要修改的记录原code，防止修改了code本身
    $("#originalCode").val(code);
    clearModel();
    if ($('#parentCodePlus').find("option").length == 1) {
        initParentCodePlus();
    }
    $("div.bs-example-modal-lg").modal();
    $("#myModalLabel").text("编辑科室");
    fillModel(code);
}

/**
 * 删除记录 （停用）
 * @param code
 */
function updateDeleteUnitCode(code, name, delFlag) {
    $("#deleteCode").val(code);// 将模态框中需要修改删除的科室的ID设为需要删除的
    $("#dataDelFlag").val(delFlag);// 将模态框中需要删除的科室的停用状态设置成当前状态
    if (delFlag == 1) {
        $("#deleteMessage").html("您确认要启用【" + name + "】科室吗？");
    } else {
        $("#deleteMessage").html("您确认要停用【" + name + "】科室吗？");
    }
    $("#deleteConfirmModel").modal({
        backdrop: 'static',
        keyboard: false
    });

}


/**
 * 停用科室操作提交
 */
function deleteSubmit() {
    var delFlag = $("#dataDelFlag").val();
    var newDelFlag = 1;
    var text = "科室停用成功";
    if (delFlag == 1) {
        newDelFlag = 0;
        text = "科室启用成功";
    }
    $.ajax({
        type: "POST",
        url: '/thmz/saveUnitCode',
        contentType: "application/json;charset=UTF-8",
        dataType: "json",
        data: JSON.stringify({"originalCode": $("#deleteCode").val(), "delFlag": newDelFlag}),
        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
        success: function (res) {
            if (res == '401' || res == 401) {
                window.location.href = '/thmz/login/view'
                return;
            }
            if (res.code == 0) {
                new PNotify({
                    title: '操作成功',
                    text: text,
                    type: 'success',
                    styling: 'bootstrap3'
                });
                $dataTableHot.bootstrapTable('refresh');
            } else {
                new PNotify({
                    title: '错误提示',
                    text: res.message,
                    type: 'error',
                    hide: false,
                    styling: 'bootstrap3'
                });
            }
        }
    });
}

/**
 * 清空部门编辑窗口
 */
function clearModel() {
   // $("#codePlus").val(null);
    $("#namePlus").val(null);
    // $("#pyCodePlus").val(null);
    // $("#wbCodePlus").val(null);
    // $("#xnhDeptCodePlus").val(null);
    // $("#xnhDeptNamePlus").val(null);
    $("#officePosPlus").val(null);
    $("#sortCodePlus").val(null);
    $("#classTypePlus").selectpicker('val', null);//默认不选中
    $("#classTypePlus").selectpicker('refresh');
    $("#ynCodePlus").selectpicker('val', null);//默认不选中
    $("#ynCodePlus").selectpicker('refresh');
    $("#parentCodePlus").selectpicker('val', null);//默认不选中
    $("#parentCodePlus").selectpicker('refresh');
    $("#mzFlagPlus").selectpicker('val', null);//默认不选中
    $("#mzFlagPlus").selectpicker('refresh');
    $("#classTypePlus").selectpicker('val', null);//默认不选中
    $("#classTypePlus").selectpicker('refresh');
    $("#ghjzFlagPlus").selectpicker('val', null);//默认不选中
    $("#ghjzFlagPlus").selectpicker('refresh');
    $("#ghChargeFlagPlus").selectpicker('val', null);//默认不选中
    $("#ghChargeFlagPlus").selectpicker('refresh');
    $("#yjFlagPlus").selectpicker('val', null);//默认不选中
    $("#yjFlagPlus").selectpicker('refresh');
    $("#supplyFlagPlus").selectpicker('val', null);//默认不选中
    $("#supplyFlagPlus").selectpicker('refresh');
}

/**
 * 填入原部门数据到编辑窗口
 */
function fillModel(code) {
    $.ajax({
        type: "POST",
        url: '/thmz/getUnitCodeByCode',
        contentType: "application/json;charset=UTF-8",
        dataType: "json",
        data: JSON.stringify({"code": code}),
        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
        success: function (res) {
            if (res == '401' || res == 401) {
                window.location.href = '/thmz/login/view'
                return;
            }
            if (res.code == 0) {
                // $("#codePlus").val(res.data.code);
                $("#namePlus").val(res.data.name);
                // $("#pyCodePlus").val(res.data.pyCode);
                // $("#wbCodePlus").val(res.data.wbCode);
                // $("#xnhDeptCodePlus").val(res.data.xnhDeptCode);
                // $("#xnhDeptNamePlus").val(res.data.xnhDeptName);
                $("#officePosPlus").val(res.data.officePos);
                $("#sortCodePlus").val(res.data.sortCode);
                $("#classTypePlus").selectpicker('val', res.data.classCode);
                $("#classTypePlus").selectpicker('refresh');
                $("#ynCodePlus").selectpicker('val', res.data.ynCode);
                $("#ynCodePlus").selectpicker('refresh');
                $("#parentCodePlus").selectpicker('val', res.data.parentCode);
                $("#parentCodePlus").selectpicker('refresh');
                $("#mzFlagPlus").selectpicker('val', res.data.mzFlag);
                $("#mzFlagPlus").selectpicker('refresh');
                $("#mzClassPlus").selectpicker('val', res.data.mzClass);
                $("#mzClassPlus").selectpicker('refresh');
                $("#ghjzFlagPlus").selectpicker('val', res.data.ghjzFlag);
                $("#ghjzFlagPlus").selectpicker('refresh');
                $("#ghChargeFlagPlus").selectpicker('val', res.data.ghChargeFlag);
                $("#ghChargeFlagPlus").selectpicker('refresh');
                $("#yjFlagPlus").selectpicker('val', res.data.yjFlag);
                $("#yjFlagPlus").selectpicker('refresh');
                $("#supplyFlagPlus").selectpicker('val', res.data.supplyFlag);
                $("#supplyFlagPlus").selectpicker('refresh');
            } else {
                new PNotify({
                    title: '错误提示',
                    text: res.message,
                    type: 'error',
                    hide: false,
                    styling: 'bootstrap3'
                });
            }
        }
    });
}


$(function () {
    initDeptSelect();
    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();
    //2.初始化Button的点击事件
    var oButtonInit = new ButtonInit();
    oButtonInit.Init();
    //changeOrderByCause();
    initSelect();
    //数据校验
    init_validator();
    //在刷新按钮前添加新增按钮
    $("button[name='refresh']").before("<button class='btn btn-default' type='button' name='plus' aria-label='' title='新增'>" +
        "<i class='glyphicon glyphicon glyphicon-plus icon-plus'></i></button>");
    //为新增按钮增加事件
    $("button[name='plus']").on("click", function (t) {
        $("#originalCode").val(null);
        clearModel();
        if ($('#parentCodePlus').find("option").length == 1) {
            initParentCodePlus();
        }
        $("#myModalLabel").text("新增科室");
        $("div.bs-example-modal-lg").modal();
    });

    $("#saveUnitCode").on("click", function (t) {
        var validatorResult = validator.checkAll($("#formPlus"));
        if (!validatorResult) {
            return;
        }
        var params = {
         //   "code": $("#codePlus").val(),
            "name": $("#namePlus").val(),
            // "pyCode": $("#pyCodePlus").val(),
            // "wbCode": $("#wbCodePlus").val(),
            // "xnhDeptCode": $("#xnhDeptCodePlus").val(),
            // "xnhDeptName": $("#xnhDeptNamePlus").val(),
            "officePos": $("#officePosPlus").val(),
            "sortCode": $("#sortCodePlus").val(),
            "classCode": $("#classTypePlus").val(),
            "mzClass": $("#mzClassPlus").val(),
            "ynCode": $("#ynCodePlus").val(),
            "parentCode": $("#parentCodePlus").val(),
            "mzFlag": $("#mzFlagPlus").val(),
            "ghjzFlag": $("#ghjzFlagPlus").val(),
            "ghChargeFlag": $("#ghChargeFlagPlus").val(),
            "yjFlag": $("#yjFlagPlus").val(),
            "supplyFlag": $("#supplyFlagPlus").val()
        };
        var originalCode = $("#originalCode").val();
        if (originalCode != null && originalCode != '') {
            params["originalCode"] = originalCode;
        }
        var json = JSON.stringify(params);
        $.ajax({
            type: "POST",
            url: '/thmz/saveUnitCode',
            contentType: "application/json;charset=UTF-8",
            dataType: "json",
            data: json,
            headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
            success: function (data) {
                if (data == '401' || data == 401) {
                    window.location.href = '/thmz/login/view'
                    return;
                }
                if (data.code == 0) {
                    $("div.bs-example-modal-lg").modal("hide");
                    $dataTableHot.bootstrapTable('refresh');
                } else {
                    new PNotify({
                        title: '错误提示',
                        text: data.message,
                        type: 'error',
                        hide: false,
                        styling: 'bootstrap3'
                    });
                }
            }
        });
    });
});




/**
 * 挂号列表中的科室列表
 */
function initDeptSelect() {
    //科室列表
    $.ajax({
        type: "GET",
        url: '/thmz/allUnitCode',
        dataType: "json",
        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
        success: function (data) {
            if (data == '401' || data == 401) {
                window.location.href = '/thmz/login/view'
                return;
            }
            var html = '';
            $.each(data.data, function (commentIndex, comment) {
                html += '<option value="' + comment.code + '">' + comment.name + '(' + comment.pyCode + '-'+comment.code+')</option>';
            });
            $('#deptNoParam').empty();
            $('#deptNoParam').html(html);
            $('#deptNoParam').selectpicker('refresh');
        }
    });
}