
const $ = require('jquery');
require("../css/appealHistory.less");
require('./modal.js');
require('jquery-templates');
const { api } = require('./api.js')
const { post, getCookie, getLocal, getUrlArgObjectNew, setDatePicker, emptyBox, downloadExportedData, expJson, getLogoParam, listenScroll, getPickerDate, exportTimeLimit } = require('./utils.js')
require('./../resource/jquery-ui/jquery-ui.min.js');
require('./../resource/jquery-ui/jquery-ui.min.css');
const iconCheck = require("./../images/icon_check.png")
const iconUnCheck = require("./../images/icon_unchecked.png")
const iconCalenBlue = require("./../images/icon_calen_blue.png")
const iconCalenGrey = require("./../images/icon_calen_grey.png")
const iconDown = require("./../images/arrow_down.png")
const iconUp = require("./../images/arrow_up.png")
const arrowLeft = require("./../images/arrow_left.png")
const arrowRight = require("./../images/arrow_right.png")
const goUpG = require("./../images/arrow_up_grey.png")
const goUpB = require("./../images/arrow_up_blue.png")
const goDownG = require("./../images/arrow_down_grey.png")
const goDownB = require("./../images/arrow_down_blue.png");
const ret = require('bluebird/js/release/util');
listenScroll()
let pageSet = [], pageSetCopy = [], showNum = 0, scrollTop = 0;
$(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
$(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
$(".fpSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
$(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
let srcUrl = $("#contentIframe", parent.document).attr("src")
let statisticsType = getUrlArgObjectNew("dateType", srcUrl) || getUrlArgObjectNew("shijian", srcUrl) || ""
let startDateParam = getUrlArgObjectNew("startDateParam", srcUrl) || ""
let endDateParam = getUrlArgObjectNew("endDateParam", srcUrl) || ""
let page = getUrlArgObjectNew("page", srcUrl) || 1
let behosDateStart = getUrlArgObjectNew("behosDateStart", srcUrl) || ""
let behosDateEnd = getUrlArgObjectNew("behosDateEnd", srcUrl) || ""
let deptId = getUrlArgObjectNew("deptId", srcUrl) || ""
let deptName = getUrlArgObjectNew("deptName", srcUrl) || ""
let moduleName = getUrlArgObjectNew("moduleName", srcUrl) || ""
let name = getUrlArgObjectNew("name", srcUrl) || ""
let operationType = getUrlArgObjectNew("operationType", srcUrl) || ""
let state = getUrlArgObjectNew("state", srcUrl) || ""
let patientName = getUrlArgObjectNew("patientName", srcUrl) || ""
let tabList = [], deptNameTemp = "",
    deptIdTemp = "",
    fpCheckStatusTemp = "", fpCheckNameTemp = "", qcCheckNameTemp = "",
    global_checkers = [];    //审核人列表;
let isPlacefile = getCookie('isPlacefile') || 1
$('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
$('.iconCalen').on("mouseenter", function (e) {
    $(this).attr("src", iconCalenBlue)
})
$('.iconCalen').on("mouseleave", function (e) {
    $(this).attr("src", iconCalenGrey)
})
$('.iconCalen').on("click", function (e) {
    $(this).parent().find("input").focus()
})
$(".menu .page", parent.document).removeClass("active")
$(parent.document).find(".menu .page[code=YH-SSXX-SSJL]").addClass("active")


if (deptName) {
    $('.selectDept').html(deptName).attr("title", deptName)
    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
}
if (moduleName) {
    $('.selectModular').html(moduleName).attr("title", moduleName)
    $(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
}
if (operationType) {
    $('.selectType').html(operationType).attr("title", operationType)
    $(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
}
if (state) {
    $('.qcSelectCheck').html(state).attr("title", state)
    $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
}
if (name) {
    $('.name').val(name)
}
if (patientName) {
    $('.patientNameInp').val(patientName)
}
$(".name").on("input", function (e) {
    const val = $(this).val().trim()
    name = val
})
$(".patientNameInp").on("input", function (e) {
    const val = $(this).val().trim()
    patientName = val
})
function getTabData(activePage) {
    behosDateStart = getPickerDate($("#datepicker"), 1)
    behosDateEnd = getPickerDate($("#datepicker2"), 2)
    const param = {
        current: activePage,
        deptId: deptId.trim(),
        deptName: deptName == "全部" ? "" : deptName || '',
        modeName: moduleName == "全部" ? "" : moduleName || '',
        operationType: operationType,
        state: state,
        size: 15,
        name: name,
        patientName: patientName,
        complaintDateEnd: behosDateEnd.replace(/\//g, '-'),
        complaintDateStart: behosDateStart.replace(/\//g, '-'),
        "desc": ['claimant_gmt_create'],
    }
    $('.pagination').html("")
    $('.tbody').html(emptyBox('努力加载中...', '',))
    return post(api.getComplaintRecord, param).then(res => {
        if (res.data.code == '0') {
            tabList = res.data.data.records
            const totalPage = res.data.data.pages
            const totalNum = res.data.data.total
            renderTab(tabList)
            renderPagination(totalPage, Number(activePage), totalNum)
            if (totalPage > 1) {
                renderPagination(totalPage, Number(activePage), totalNum)
            } else {
                $('.pagination').html("")
            }
        } else {
            const token = localStorage.getItem('accessToken');
            if (!token && window.location.href.indexOf('login') == -1) {
                //alert('无token判断，跳回登录')
            } else {
                $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
            }
        }
    }).catch((e) => {

    })
}



$(".filter").on("click", function (e) {
    behosDateStart = $("#datepicker").val()
    behosDateEnd = $("#datepicker2").val()
    const behosDateStartTime = new Date(behosDateStart).getTime()
    const behosDateEndTime = new Date(behosDateEnd).getTime()
    if (behosDateStartTime > behosDateEndTime) {
        $.alerModal({ "message": '申诉时间开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
        return
    }
    if (behosDateStart) {
        behosDateStart = behosDateStart.replace(/\//g, '-') + ' 00:00:00'
    }
    if (behosDateEnd) {
        behosDateEnd = behosDateEnd.replace(/\//g, '-') + ' 23:59:59'
    }
    deptId = deptIdTemp
    deptName = deptNameTemp
    fpCheckName = fpCheckNameTemp
    qcCheckName = qcCheckNameTemp
    fpCheckStatus = fpCheckStatusTemp
    qcCheckStatus = state
    page = 1
    getTabData(1)
})

$(".abnormalClear").on("click", function (e) {
    page = 1
    tabList = [];
    scoreSum = 0;
    deptId = "";
    deptIdTemp = "";
    deptName = deptNameTemp = "";
    fpCheckName = "";
    qcCheckName = "";
    qcCheckMain = "";
    fpCheckNameTemp = "";
    qcCheckNameTemp = "";
    qcCheckMainTemp = "";
    fpCheckStatus = "";
    fpCheckStatusTemp = "";
    qcCheckStatus = "";
    state = ""
    operationType = ""
    moduleName = ""
    name = ""
    patientName = ""
    data_desc = ["leave_hospital_date"]
    if (isPlacefile != 1) {
        data_desc = ["behospital_date"]
    }
    data_asc = [];
    $('.patientNameInp').val('')
    $('.name').val('')
    // $('#datepicker').val('')
    // $('#datepicker2').val('')
    //默认日期为近一周
    $("#datepicker").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy/mm/dd",
    }).datepicker("setDate", "-6d");
    $("#datepicker2").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy/mm/dd"
    }).datepicker("setDate", new Date());
    $("#datepickerFp1").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy/mm/dd",
    }).datepicker("setDate", "");
    $("#datepickerFp2").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy/mm/dd"
    }).datepicker("setDate", "");
    $("#datepickerQc1").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy/mm/dd",
    }).datepicker("setDate", "");
    $("#datepickerQc2").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy/mm/dd"
    }).datepicker("setDate", "");
    $('.selectDept ').html('全部')
    $(".deptList").css("display", "none")
    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
    // $('.selectDept ').addClass('unSelect')
    $('.selectModular').html('全部')
    $(".modularList").css("display", "none")
    $(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
    // $('.selectModular ').addClass('unSelect')
    $('.selectType').html('全部')
    $(".typeList ").css("display", "none")
    $(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
    $('.qcSelectCheck').html('全部')
    $(".qcCheckList").css("display", "none")
    $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
    $("th[code]").removeClass("asc desc")
    if (isPlacefile == 1) {
        $(".leaveHospitalDate").addClass(" desc")
    } else {
        $(".behospitalDate").addClass(" desc")
    }
    behosDateStart = $("#datepicker").val()
    behosDateEnd = $("#datepicker2").val()
    if (behosDateStart) {
        behosDateStart = behosDateStart.replace(/\//g, '-') + ' 00:00:00'
    }
    if (behosDateEnd) {
        behosDateEnd = behosDateEnd.replace(/\//g, '-') + ' 23:59:59'
    }
    getTabData(page)
})

getmoduleList()

//获取模块类型
function getmoduleList() {
    post(api.getAppealMode, { pageType: 1 }).then(res => {
        if (res.data.code == '0') {
            const moduleTypeList = res.data.data
            renderModuleList(moduleTypeList)
        } else { }
    }).catch((e) => {

    })
}

function renderModuleList(moduleTypeList) {
    let str = `<li class="modularItem " data-id="" data-name="全部">全部</li>`
    for (let i = 0; i < moduleTypeList.length; i++) {
        str += `<li class="modularItem ellipsis" title=${moduleTypeList[i].modeName} data-id=${moduleTypeList[i].modeId} data-name=${moduleTypeList[i].modeName}> ${moduleTypeList[i].modeName}</li>`
    }
    $('.modularList').html(str)
    bindModuleSelect()
}
//模块类型选择
function bindModuleSelect() {
    $('.modularItem').on("click", function () {
        const modularItemName = $(this).attr("data-name")
        const modularItemItemId = $(this).attr("data-id")
        moduleName = modularItemName
        $('.selectModular').html(modularItemName)
        $(".modularList").css("display", "none")
        $(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
        $('.selectModular').removeClass('unSelect')
    })
}
getAppealReviewDictionary()
//获取操作类型
function getAppealReviewDictionary() {
    post(api.getAppealReviewDictionary).then(res => {
        if (res.data.code == '0') {
            const typeList = res.data.data['操作类型']
            const statusList = res.data.data['状态']
            renderTypeList(typeList)
            renderStatusList(statusList)
        } else { }
    }).catch((e) => {

    })
}

function renderTypeList(data) {
    let str = `<li class="typeItem " data-id="" data-name="全部">全部</li>`
    for (var i in data) {
        str += `<li class="typeItem ellipsis" title=${data[i]} data-id=${i} data-name=${data[i]}> ${data[i]}</li>`
    }
    $('.typeList').html(str)
    bindTypedSelect()
    if (operationType) {
        $('.selectType').html(data[operationType]).attr("title", data[operationType])
        $(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
    }
}
//操作类型选择
function bindTypedSelect() {
    $('.typeItem').on("click", function () {
        const typeItemName = $(this).attr("data-name")
        const typeItemItemId = $(this).attr("data-id")
        operationType = typeItemItemId
        $('.selectType').html(typeItemName)
        $(".typeList").css("display", "none")
        $(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
        $('.selectType').removeClass('unSelect')
    })
}
function renderStatusList(data) {
    let str = `<li class="qcCheckItem " data-id="" data-name="全部">全部</li>`
    for (var i in data) {
        str += `<li class="qcCheckItem ellipsis" title=${data[i]} data-id=${i} data-name=${data[i]}> ${data[i]}</li>`
    }
    $('.qcCheckList').html(str)
    bindCheckedSelectQc()
    if (state) {
        $('.qcSelectCheck').html(data[state]).attr("title", data[state])
        $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
    }
}
//状态
function bindCheckedSelectQc() {
    $('.qcCheckItem').on("click", function () {
        const qcCheckItemName = $(this).attr("data-name")
        const qcCheckItemItemId = $(this).attr("data-id") || ""
        state = qcCheckItemItemId
        $('.qcSelectCheck').html(qcCheckItemName)
        $(".qcCheckList").css("display", "none")
        $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
        $('.qcSelectCheck').removeClass('unSelect')
    })
}
//获取审核人下拉列表
function getCheckUser() {
    const param = {};
    post(api.getReviewer, param).then(function (res) {
        if (res.data.code === '0') {
            const data = res.data.data;
            global_checkers = data;
            $("#delModal .checker-drop-box ul").html("");
            $("#flawDropTmpl").tmpl({ info: data }).appendTo("#delModal .checker-drop-box ul");
            userDropEvent(".checker-drop-input", selectChecker);
        }
    });
}
function userDropEvent(domSelector, selectEvent) {
    // $("body").on("click", domSelector, function (e) {
    //     e.stopPropagation()
    //     $(domSelector).parents(".drop-box").addClass("show");
    // });
    $("body").on("click", ".checker-drop-box li", function () {
        $(".add-box .warning").hide();
        const n = $(this).attr("idx");
        selectEvent(domSelector, n);
        $(domSelector).parents(".drop-box").find(".warning").hide();
        $(domSelector).parents(".drop-box").removeClass("show");
    });
}
$(document).on("click", ".checker-drop-input", (e) => {
    e.stopPropagation()
    const showList = $("#delModal ul").css("display")
    if (showList == "none" || !showList) {
        $("#delModal ul").css("display", "block")
    } else {
        $("#delModal ul").css("display", "none")
    }

});
$(document).on("click", ".infoItem", (e) => {
    e.stopPropagation()
    $("#delModal ul").css("display", "none")
});

//审核人下拉选中
function selectChecker(domSelector, n) {
    const flaw = global_checkers[n];
    const { id, userName } = flaw;
    $(domSelector).text(userName).attr({ "code": id, "title": userName });
}
function renderTab(data) {
    let str = ``
    if (data.length === 0) {
        $('.tbody').html(emptyBox(null, showNum + 12))
        return;
    }
    for (let i = 0; i < data.length; i++) {
        const item = data[i]
        str += `
            <tr>
                <td >${item.claimantName || "-"}</td>
                <td >${item.behDeptName || "-"}</td>
                <td >${item.claimantGmtCreate}</td>
                <td >${item.behospitalCode}</td>
                <td >${item.name || "-"}</td>
                <td >${item.modeName || "-"}</td>
                ${item.qcresultDetailMsg && item.qcresultDetailMsg.length > 30 ? `<td title=${item.qcresultDetailMsg}>${item.qcresultDetailMsg.substring(0,30)+'...' || "-"}</td>` : `<td>${item.qcresultDetailMsg || "-"}</td>`}
                <td >${item.checkName || "-"}</td>
                <td >${item.checkGmtCreate || "-"}</td>
                <td >${item.appealOperationType == 0 ? '删改条目' : item.appealOperationType == 1 ? '新增已有条目' : item.appealOperationType == 2 ? '新增缺失条目' : '恢复条目'}</td>
                <td >${item.exampleStatus == 0 ? '<span class="review"><i></i>待审核</span>' : item.exampleStatus == 1 ? '<span class="rejected"><i></i>已驳回</span>' : '<span class="approved"><i></i>审核通过</span>'}</td>
                <td data-id="${item.id || ""}" data-hos="${item.hospitalId || ""}" data-behospitalCode="${item.behospitalCode || ""}" data-casesEntryId="${item.casesEntryId || ""}" data-qcresultDetailId="${item.qcresultDetailId || ""}" data-appealOperationType="${item.appealOperationType || ""}" data-index=${i}>
                    ${item.exampleStatus == 0 ? `<span class="appealBtn goHomeDetail1">查看</span><span class="appealBtn withdraw" >撤回</span>` : ''}
                    ${item.exampleStatus == 1 || item.exampleStatus == 2 ? `<span class="appealBtn goHomeDetail1">查看</span><span class="appealBtn appealAgain">再次申诉</span>` : ''}
                </td>
            </tr>
        `
    }
    $('.tbody').html(str)
    $(".withdraw").click(function () {
        let id = $(this).parent().attr("data-id")
        $("#delModal .modal-body").html("确定撤回该申诉？<br/>注：第一次提交的申诉撤回后，记录将被删除。");
        $("#delModal").show();
        $("#delModal .confirm").text("确定").unbind("click").click(function () {
            cancelAppealInfo(id)
        });

    })
    $(".appealAgain").click(function () {
        let i = $(this).parent().attr("data-index")
        let item = JSON.parse(JSON.stringify(data[i]))
        getAppealOperationType(item)
    })
    $(".goHomeDetail1").click(function () {
        let id = $(this).parent().attr("data-id")
        let hospitalId = $(this).parent().attr("data-hos")
        let behospitalCode = $(this).parent().attr("data-behospitalCode")
        let casesEntryId = $(this).parent().attr("data-casesEntryId")
        let qcresultDetailId = $(this).parent().attr("data-qcresultDetailId")
        let appealOperationType = $(this).parent().attr("data-appealOperationType")
        $(parent.document).find("#contentIframe").attr("src", "appealExamine.html?id=" + id + "&name=" + name + "&patientName=" + patientName + "&operationType=" + operationType + "&state=" + state + "&hospitalId=" + hospitalId + "&behospitalCode=" + behospitalCode + "&casesEntryId=" + casesEntryId + "&qcresultDetailId=" + qcresultDetailId + "&appealOperationType=" + appealOperationType + "&page=" + page + "&behosDateStart=" + behosDateStart + "&behosDateEnd=" + behosDateEnd + "&deptId=" + deptId + "&deptName=" + deptName + "&moduleName=" + moduleName + "&form=" + 3)
    })
}
function getComplaintDetailMsg(data) {
    post(api.getComplaintDetailMsg, { behospitalCode: data.behospitalCode, casesEntryId: data.casesEntryId, id: data.qcresultDetailId }).then(function (res) {
        if (res.data.code === '0') {
            data.qcresultDetailMsg = res.data.data.msg;
            data.qcresultDetaiValue = res.data.data.score;
            data.value = res.data.data.score;
            data.remark = res.data.data.explainInfo;
            $("#delModal").show();
            getCheckUser()
            $("#delModal .modal-body").html("");
            $("#appealDef").tmpl(data).appendTo("#delModal .modal-body");
            $("#delModal .confirm").text("确定").unbind("click").click(function () {
                addAppealInfo(data)
            });
        } else {
            $.alerModal({ "message": res.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'warn' });

        }
    }).catch(() => {
        $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });

    });
}
function getAppealOperationType(data) {
    post(api.getAppealOperationType, { appealOperationType: data.appealOperationType, exampleStatus: data.exampleStatus, qcresultDetailId: data.qcresultDetailId }).then(function (res) {
        if (res.data.code === '0') {
            if (data.appealOperationType == '2' || !data.qcresultDetailId) {
                $("#delModal").show();
                getCheckUser()
                $("#delModal .modal-body").html("");
                $("#appealDef").tmpl(data).appendTo("#delModal .modal-body");
                $("#delModal .confirm").text("确定").unbind("click").click(function () {
                    addAppealInfo(data)
                });
            } else {
                data.appealOperationType = res.data.data.appealOperationType
                getComplaintDetailMsg(data)
            }

            // $("#delModal .modal-body").html("");
            // $("#delModal").show();
            // $("#appealDef").tmpl(data).appendTo("#delModal .modal-body");
            // $("#delModal .confirm").text("确定").unbind("click").click(function () {
            //     addAppealInfo(data)
            // });
        } else {
            $.alerModal({ "message": res.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'warn' });

        }
    }).catch(() => {
        $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });

    });
}
function cancelAppealInfo(id) {
    post(api.cancelAppealInfo, { id: id }).then(function (res) {
        if (res.data.code === '0') {
            getTabData(page)
            $("#delModal").hide();
            $.alerModal({ "message": "撤回成功", type: "tip", time: '1000', win: true });
        } else {
            $.alerModal({ "message": res.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'warn' });

        }
    }).catch(() => {
        $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });

    });
}

//再次申诉
function addAppealInfo(data) {
    $(".warning").hide();
    let val = $(".textarea").val().trim()
    let num = 500
    if (!val) {
        $(".warning .red").text("申诉说明不能为空~");
        $(".warning").show();
        return
    } else if (val.length > num) {
        $(".warning .red").text("申诉说明不能超过" + num + "个字~");
        $(".warning").show();
        return
    }
    const param = {
        appealExplain: $(".textarea").val(),
        appealOperationType: data.appealOperationType,
        behospitalCode: data.behospitalCode,
        checkId: $(".checker-drop-input").attr("code"),
        appealType: 1,
        qcresultDetailId: data.qcresultDetailId,
        isReject: data.isReject,
        modeId: data.modeId,
        casesScore: data.casesScore,
        casesEntryId: data.casesEntryId,
        qcresultDetaiValue: data.qcresultDetaiValue,
        qcresultDetailMsg: data.qcresultDetailMsg,
        casesEntryMsg: data.qcresultDetailMsg,
        msg: data.msg,
        value: data.value || data.qcresultDetaiValue,
        remark: data.remark,
    }
    post(api.addAppealInfo, param).then(function (res) {
        if (res.data.code === '0') {
            getTabData(page)
            $("#delModal").hide();
            $.alerModal({ "message": "申诉成功", type: "tip", time: '1000', win: true });
        } else {
            $.alerModal({ "message": res.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'warn' });

        }
    }).catch(() => {
        $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });

    });
}
//选择申诉模块
$('.selectModular').on("click", function (e) {
    e.stopPropagation()
    $(".typeList ").css("display", "none")
    $(".selectType .arrow").attr("src", iconDown)
    $(".deptList ").css("display", "none")
    $(".selectDept .arrow").attr("src", iconDown)
    $(".qcSelectCheck .arrow").attr("src", iconDown)
    $(".qcCheckList ").css("display", "none")
    const showList = $(".modularList ").css("display")
    if (showList == "none" || !showList) {
        $(".modularList ").css("display", "block")
        $(".selectModular .arrow").attr("src", iconUp)
    } else {
        $(".modularList ").css("display", "none")
        $(".selectModular .arrow").attr("src", iconDown)
    }
})

//操作类型
$('.selectType').on("click", function (e) {
    e.stopPropagation()
    $(".deptList ").css("display", "none")
    $(".selectDept .arrow").attr("src", iconDown)
    $(".qcSelectCheck .arrow").attr("src", iconDown)
    $(".qcCheckList ").css("display", "none")
    $(".modularList ").css("display", "none")
    $(".selectModular .arrow").attr("src", iconDown)
    const showList = $(".typeList ").css("display")
    if (showList == "none" || !showList) {
        $(".typeList ").css("display", "block")
        $(".selectType .arrow").attr("src", iconUp)
    } else {
        $(".typeList ").css("display", "none")
        $(".selectType .arrow").attr("src", iconDown)
    }
})

//选择状态
$('.qcSelectCheck').on("click", function (e) {
    e.stopPropagation()
    $(".typeList ").css("display", "none")
    $(".selectType .arrow").attr("src", iconDown)
    $(".deptList ").css("display", "none")
    $(".selectDept .arrow").attr("src", iconDown)
    $(".modularList ").css("display", "none")
    $(".selectModular .arrow").attr("src", iconDown)
    const showList = $(".qcCheckList ").css("display")
    if (showList == "none" || !showList) {
        $(".qcCheckList ").css("display", "block")
        $(".qcSelectCheck .arrow").attr("src", iconUp)
    } else {
        $(".qcCheckList ").css("display", "none")
        $(".qcSelectCheck .arrow").attr("src", iconDown)
    }
})


$('.selectDept').on("click", function (e) {
    e.stopPropagation()
    $(".typeList ").css("display", "none")
    $(".selectType .arrow").attr("src", iconDown)
    $(".modularList ").css("display", "none")
    $(".selectModular .arrow").attr("src", iconDown)
    $(".qcCheckList ").css("display", "none")
    $(".qcSelectCheck .arrow").attr("src", iconDown)
    const showList = $(".deptList ").css("display")
    if (showList == "none" || !showList) {
        $(".deptList ").css("display", "block")
        $(".selectDept .arrow").attr("src", iconUp)
    } else {
        $(".deptList ").css("display", "none")
        $(".selectDept .arrow").attr("src", iconDown)
    }
})

//获取科室列表
getDeptList()
function getDeptList() {
    post(api.getAppealDept, { inputStr: "", pageType: 1 }).then(res => {
        if (res.data.code == '0') {
            const deptList = res.data.data
            rendeDeptList(deptList)
        } else { }
    }).catch((e) => {

    })
}


function rendeDeptList(deptList) {
    let str = `<li class="deptItem ellipsis" data-id=" " data-name="全部">全部</li>`
    for (let i = 0; i < deptList.length; i++) {
        str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
    }
    $('.deptList').html(str)
    bindDeptSelect()
}
//科室选择
function bindDeptSelect() {
    $('.deptItem').on("click", function () {
        const deptItemName = $(this).attr("data-name")
        const deptItemId = $(this).attr("data-id")
        deptIdTemp = deptItemId
        deptName = deptNameTemp = deptItemName
        if (deptItemName.length > 10) {
            $('.selectDept').html(deptItemName.substring(0, 8) + '...')
        } else {
            $('.selectDept').html(deptItemName)
        }
        $('.selectDept ').attr('title', deptItemName)
        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
        $('.selectDept').removeClass('unSelect')
        $(".deptList").css("display", "none")
    })
}

function renderColSet(list) {
    let pageSetList = list || pageSetCopy
    let allSelect = true
    for (let i = 0; i < pageSetList.length; i++) {
        if (pageSetList[i].status != 1) {
            allSelect = false
        }
    }
    let str = `<div class='colSetBox'> 
            <div class='mask'></div>
            <div class='cloInfobox'>
                <div class='cloInfoTitle'><span class='cloInfoTitleTxt'>列显示设置</span> <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></div>
                <div class='cloInfo'></div>
                <div class='btnBox'><span class='defaultColSet'>恢复默认</span> <span class='cancalColSet'>取消</span> <span class='saveColSet'>保存设置</span></div>
            </div>
        </div>`
    let infoStr = `<div class='colTabTitle' ><span class='colOpera toggleSelectColAll' data-select=${allSelect}>${allSelect ? `<img  src=${iconCheck} />` : `<img src=${iconUnCheck} />`}全选</span><span  class='colName'>列名</span></div><div class='colTabInfoBox' >`
    for (let i = 0; i < pageSetList.length; i++) {
        infoStr += `<div  class='colTabInfo' data-index=${i}>
            <span class='colOpera' data-index=${i}>${pageSetList[i].status == 1 ? `<img class="toggleSelectCol" src=${iconCheck} />` : `<img class="toggleSelectCol" src=${iconUnCheck} />`}</span>
            <span class='colName'>            
                <span>${pageSetList[i].name}</span>
                <span class="pageOrder">
                    <span class="pageSetUpBox">${i === 0 ? '' : `<img class="pageSetUp" src=${goUpG} />`}</span>
                    <span  class="pageSetDownBox">${i === pageSetList.length - 1 ? '' : `<img class="pageSetDown" src=${goDownG} />`}</span>
                </span>
               
            </span>
           
        </div>`
    }
    infoStr += "</div>"
    // $(".main-body").append(str)
    if (!$("#mainBox .colSetBox", parent.document).length) {
        $("#mainBox", parent.document).append(str)
    }
    $("#mainBox .colSetBox .cloInfo", parent.document).html(infoStr)

    $(".colTabInfoBox", parent.document).scrollTop(scrollTop)
    scrollTop = 0

    bindSelectCol()
    bindColOrder()
    bindSaveColSet()
    bindDefaultColset()
    bindCloseColSet()
    bindImgEnter()
}

function bindDefaultColset() {
    $('.defaultColSet', parent.document).off("hover").hover(function () {
        $(this).css('color', '#00A1FF')
    }, function () {
        $(this).css('color', '#777777')
    })
    $('.defaultColSet', parent.document).off("click").on('click', function () {
        return post(api.getDefaultPageSet, { pageType: 1 }).then(res => {
            if (res.data.code == '0') {
                pageSet = res.data.data
                pageSetCopy = JSON.parse(JSON.stringify(pageSet))
                renderColSet(pageSetCopy)
            } else { }
        }).catch((e) => {

        })
        // closeColSet()
    })

}

function bindImgEnter() {
    $(".pageSetUpBox img", parent.document).off("mouseenter").on("mouseenter", function () {
        $(this).attr('src', goUpB)
    })
    $(".pageSetDownBox img", parent.document).off("mouseenter").on("mouseenter", function () {
        $(this).attr('src', goDownB)
    })
    $(".pageSetUpBox img", parent.document).off("mouseout").on("mouseout", function () {
        $(this).attr('src', goUpG)
    })
    $(".pageSetDownBox img", parent.document).off("mouseout").on("mouseout", function () {
        $(this).attr('src', goDownG)
    })
}
function bindSelectCol() {
    $(".toggleSelectCol", parent.document).off("click").on("click", function () {
        const index = $(this).parent().attr("data-index")
        pageSetCopy[index].status = pageSetCopy[index].status == 1 ? 0 : 1
        scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
        renderColSet(pageSetCopy)

    })
    $(".toggleSelectColAll", parent.document).off("click").on("click", function () {
        const hasSelectAll = $(this).attr("data-select")
        for (let i = 0; i < pageSetCopy.length; i++) {
            if (hasSelectAll == "true") {
                pageSetCopy[i].status = 0

            } else {
                pageSetCopy[i].status = 1
            }
        }
        scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
        renderColSet(pageSetCopy)

    })
}

function closeColSet() {
    pageSetCopy = JSON.parse(JSON.stringify(pageSet))
    $("#mainBox .colSetBox", parent.document).remove()
}
function bindCloseColSet() {
    $(".colSetBox .iconClose", parent.document).off("click").on("click", function () {
        closeColSet()
    })
    $(".colSetBox .cancalColSet", parent.document).off("click").on("click", function () {
        closeColSet()
    })
}
function bindSaveColSet() {
    $(".saveColSet", parent.document).off("click").on("click", function () {
        let showNumSet = 0
        let sysUserPagesetVOList = []
        for (let i = 0; i < pageSetCopy.length; i++) {
            const item = pageSetCopy[i]
            sysUserPagesetVOList.push({
                name: item.name,
                orderNo: i,
                status: item.status,
                val: item.val
            })
            if (item.status == 1) {
                showNumSet++
            }
        }
        if (showNumSet === 0) {
            $.alerModal({ "message": '最少显示一列', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
            return
        }
        return post(api.saveQcListPageSet, { pageType: 1, sysUserPagesetVOList: sysUserPagesetVOList }).then(res => {
            if (res.data.code == '0') {
                closeColSet()
            } else {
                $("#mainBox .colSetBox", parent.document).remove()
                $.alerModal({ "message": '保存失败,请重试~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
            }
        }).catch((e) => {
            $("#mainBox .colSetBox", parent.document).remove()
            $.alerModal({ "message": '保存失败,请重试~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
        })

    })

}

function bindColOrder() {
    $(".pageSetUp", parent.document).off("click").on("click", function () {
        const index = parseInt($(this).parent().parent().parent().parent().attr("data-index"))
        if (index != 0) {
            const upItem = pageSetCopy[index]
            const upItemPre = pageSetCopy[index - 1]
            pageSetCopy.splice(index - 1, 2, upItem, upItemPre)
            scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
            renderColSet(pageSetCopy)

        } else {
            return
        }
    })
    $(".pageSetDown", parent.document).off("click").on("click", function () {
        const index = parseInt($(this).parent().parent().parent().parent().attr("data-index"))
        if (index == pageSetCopy.length - 1) {
            return
        } else {
            const downItem = pageSetCopy[index]
            const downItemBack = pageSetCopy[index + 1]
            pageSetCopy.splice(index, 2, downItemBack, downItem)
            scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
            renderColSet(pageSetCopy)
        }
    })
}

$(function () {
    $.datepicker.regional['zh-CN'] = {
        clearText: '清除',
        clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
        closeText: '关闭',
        closeStatus: '不改变当前选择',
        prevText: '<上月',
        prevStatus: '显示上月',
        prevBigText: '<<',
        prevBigStatus: '显示上一年',
        nextText: '下月>',
        nextStatus: '显示下月',
        nextBigText: '>>',
        nextBigStatus: '显示下一年',
        currentText: '今天',
        currentStatus: '显示本月',
        monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
        monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
        yearNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
        monthStatus: '选择月份',
        yearStatus: '选择年份',
        weekHeader: '周',
        weekStatus: '年内周次',
        dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
        dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
        dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
        dayStatus: '设置 DD 为一周起始',
        dateStatus: '选择 m月 d日, DD',
        dateFormat: 'yy-mm-dd',
        firstDay: 1,
        initStatus: '请选择日期',
        isRTL: false
    };
    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);

    let startDate = "", endDate = new Date()
    let year = new Date().getFullYear()
    let month = new Date().getMonth() + 1
    if (statisticsType == '1') {
        startDate = new Date(`${year}-${month}-01`)
    } else if (statisticsType == '2') {
        startDate = new Date(`${year}-01-01`)
    } else if (statisticsType == '3') {
        startDate = new Date(behosDateStart)
        endDate = new Date(behosDateEnd)
    } else {
        startDate = "-6d"
    }
    if (behosDateStart && behosDateEnd) {
        startDate = new Date(behosDateStart)
        endDate = new Date(behosDateEnd)
    }
    $("#datepicker").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy/mm/dd",
    }).datepicker("setDate", startDate);
    $("#datepicker2").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy/mm/dd"
    }).datepicker("setDate", endDate);
    getTabData(page)


});

//分页渲染
function renderPagination(totalPage, activePage, totalNum) {
    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
    if (totalPage <= 6) {
        for (let i = 1; i <= totalPage; i++) {

            str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
        }
    } else {
        if (activePage <= 3) { //选中页数小于4
            for (let i = 1; i <= 4; i++) {
                str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
            }
            str += `<span class="more" >...</span>`
            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`

        } else if (activePage > totalPage - 3) {
            str += `<span class="pageNum page1" data-page=1>1</span>`
            str += `<span class="more" >...</span>`
            str += `<span class="pageNum ${'page' + (totalPage - 3)}" data-page=${totalPage - 3}>${totalPage - 3}</span>`
            str += `<span class="pageNum ${'page' + (totalPage - 2)}" data-page=${totalPage - 2}>${totalPage - 2}</span>`
            str += `<span class="pageNum ${'page' + (totalPage - 1)}" data-page=${totalPage - 1}>${totalPage - 1}</span>`
            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
        } else {
            str += `<span class="pageNum page1" data-page=1>1</span>`
            str += `<span class="more" >...</span>`
            str += `<span class="pageNum ${'page' + (activePage - 1)}" data-page=${activePage - 1}>${activePage - 1}</span>`
            str += `<span class="pageNum ${'page' + activePage}" data-page=${activePage}>${activePage}</span>`
            str += `<span class="pageNum ${'page' + (activePage + 1)}" data-page=${activePage + 1}>${activePage + 1}</span>`
            str += `<span class="more" >...</span>`
            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
        }

    }
    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
    $('.pagination').html(str)
    $('.page' + activePage).addClass('activePage')
    $(".pageNum").on("click", function (e) {
        const activePageNow = Number($(this).attr('data-page'))
        page = activePageNow
        getTabData(activePageNow)
        // renderPagination(totalPage,activePageNow,totalNum)
    })
    $(".prePage").on("click", function (e) {
        let activePageNow = Number($(".activePage").attr('data-page'))
        page = activePageNow
        if (activePageNow > 1) {
            activePageNow--
            getTabData(activePageNow)
            // renderPagination(totalPage,activePageNow,totalNum)
        }
    })
    $(".nextPage").on("click", function (e) {
        let activePageNow = Number($(".activePage").attr('data-page'))
        page = activePageNow
        if (activePageNow < totalPage) {
            activePageNow++
            getTabData(activePageNow)
            // renderPagination(totalPage,activePageNow,totalNum)
        }
    })

}

$(document).on("click", function () {
    $(".typeList ").css("display", "none")
    $(".modularList ").css("display", "none")
    $(".deptList").css("display", "none")
    $(".qcCheckList").css("display", "none")
    $(".selectDept .arrow").attr("src", iconDown)
    $(".selectModular .arrow").attr("src", iconDown)
    $(".qcSelectCheck .arrow").attr("src", iconDown)
    $(".selectType .arrow").attr("src", iconDown)
    $("#delModal ul").css("display", "none")
})



let radioCheck = 1;
$((function ($) {
    $('.export').click(function () {
        const behosDateStartTime = new Date(behosDateStart).getTime()
        const behosDateEndTime = new Date(behosDateEnd).getTime()
        if (behosDateStartTime > behosDateEndTime) {
            $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
            return
        }
        const param = {
            deptId: deptId.trim(),
            deptName: deptName == "全部" ? "" : deptName || '',
            modeName: moduleName == "全部" ? "" : moduleName || '',
            operationType: operationType,
            isPlacefile: isPlacefile,
            state: state,
            size: 15,
            name: $('.name').val(),
            patientName: $('.patientNameInp').val(),
            complaintDateEnd: behosDateEnd.replaceAll("/", "-"),
            complaintDateStart: behosDateStart.replaceAll("/", "-"),
            "desc": ['claimant_gmt_create']
        }
        expJson(api.getComplaintRecordExport, param).then(res => {
            downloadExportedData(res.data, "申诉记录.xls")
        })
    })
})($));
