const $ = require('jquery');
require('@less/dept/readmissionDept.less');
require('../modal.js');
const { api } = require('@js/api.js');
const {
  post,
  getCookie,
  getUrlArgObjectNew,
  emptyBox,
    getLogoParam,
  setDatePicker,
  // focusMenuItem,
  getPickerDate,
  expJson,
  downloadExportedData,
  initScroll,
  listenScroll,
} = require('@js/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 iconDown = require('@images/arrow_down.png');
const iconUp = require('@images/arrow_up.png');
const loadingImg = require('@images/loading.gif');
const arrowLeft = require('@images/arrow_left.png');
const arrowRight = require('@images/arrow_right.png');
let deptName = '',
  behospitalCode = '',
  deptNameTemp = '',
  deptId = '',
  deptIdTemp = '',
  behospitalCodeTemp = '',
  data_desc = '',
  data_asc = '',
  deptRecord = '',
  patientName = '';
casesIdTemp = '';
casesName = '';
let deptList = JSON.parse(getCookie('deptList')) || [];
let srcUrl = $('#contentIframe', parent.document).attr('src');
statisticsType = getUrlArgObjectNew('dateType', srcUrl) || '';
from = getUrlArgObjectNew('from', srcUrl) || '';
lineType = getUrlArgObjectNew('lineType', srcUrl) || '';
let startDateParam = getUrlArgObjectNew('startDateParam', srcUrl) || '';
let endDateParam = getUrlArgObjectNew('endDateParam', srcUrl) || '';
$('.selectDept').append(`<img class="arrow" src=${iconDown} alt="下拉">`);
/*if(lineType){
  $("th[code="+data_desc+"]").addClass("desc");
}*/
//setTitleTxt('',from)         //导航栏面包屑
listenScroll();
if (statisticsType == 1) {
  setDatePicker($('#datepicker'), $('#datepicker2'), 1);
} else if (statisticsType == 2) {
  setDatePicker($('#datepicker'), $('#datepicker2'), 2);
} else if (statisticsType == 3) {
  setDatePicker(
    $('#datepicker'),
    $('#datepicker2'),
    3,
    new Date(startDateParam),
    new Date(endDateParam)
  );
} else {
  setDatePicker($('#datepicker'), $('#datepicker2'), 'default');
}
let isPlacefile = getCookie('isPlacefile') || 1;

if (from == 2) {
} else if (from == 3) {
} else {
  $('.partTitle .titlePic ').html(
    `<a class="consoleD" href="console.html">控制台(科室) / </a>31日再入院病历数`
  );
}
deptId = deptIdTemp = getUrlArgObjectNew('deptName', srcUrl) || '';
if (deptId) {
  $('.selectDept')
    .html(deptId)
    .attr({
      'data-id': deptId,
      title: deptId,
    })
    .append(`<img class="arrow" src=${iconDown} alt="下拉">`);
  getDeptList();
} else {
  getDeptList(1);
}

if (!statisticsType) {
  setDatePicker($('#datepicker'), $('#datepicker2'), 'default');
}
$('.abnormalClear').click(function() {
  data_desc = '';
  data_asc = '';
  deptId = '';
  deptIdTemp = '';
  deptName = '';
  deptNameTemp = '';
  patientName = '';
  deptRecord = '';
  deptId = deptIdTemp = deptList[0] && deptList[0].deptName;
  behospitalCode = behospitalCodeTemp = '';
  $('.patientNumInp').val('');
  $('.selectDept')
    .html(deptId)
    .attr({
      'data-id': deptId,
      title: deptId,
    })
    .append(`<img class="arrow" src=${iconDown} alt="下拉">`);
  setDatePicker($('#datepicker'), $('#datepicker2'), 'default');
  $('.patientRecordInp').val('');
  $('.patientNameInp').val('');
  // $(".deptList").css("display", "none")
  $('.selectDept').append(`<img class="arrow" src=${iconDown} alt="下拉">`);
  $('th[code]').removeClass('asc desc');
  //behospitalCode =behospitalCodeTemp= ""
  getmoduleTypeList();
  getTabData(1);
});
$('.partTitle a').click(function() {
  //初始菜单选中
  $('.menu .page', parent.document)
    .removeClass('active')
    .eq(0)
    .addClass('active');
  $('.container', parent.document).addClass('console-cont');
});
$('.menu .page', parent.document).removeClass('active');
const ele = $(parent.document).find('.menu .page[code=YH-KSZR-31TZRYRS_XQ]');
ele.addClass('active');
// const parEle = ele.parents(".list-1");
// if (!parEle.is(".list-1-show")) {
//   parEle.click();
// }

// setTimeout(function() {
//   $('.menuList', parent.document).scrollTop(768);
// }, 300);

//判断有无某一权限
/*function hasData(data){
  let trdObj = JSON.parse(getCookie("trdObj"))
  let lis = trdObj['YH-BLZK-ZKPF']
  if(!lis){
    return false
  }
  if(lis.indexOf(data)>-1){//有权限
    return true
  }
  return false;
}*/
function getTabData(activePage) {
  const dateStatrt = getPickerDate($('#datepicker'), 1);
  const dateEnd = getPickerDate($('#datepicker2'), 2);
  const start = new Date(dateStatrt).getTime();
  const end = new Date(dateEnd).getTime();
  if (start > end) {
    $.alerModal({
      message: '开始时间不能大于结束时间~',
      type: 'tip',
      time: '1000',
      isFather: true,
      fatherWrapper: $('#mainBox', parent.document),
    });
    return;
  }
  const param = {
    current: activePage,
    size: 10,
    name: patientName,
    fileCode: deptRecord,
    startDate: dateStatrt.replace(/\//g, '-'),
    endDate: dateEnd.replace(/\//g, '-'),
    deptName: deptIdTemp || '',
  };
  startDateParam = dateStatrt;
  endDateParam = dateEnd;
  $('.pagination').html('');
  $('.tbody').html(emptyBox('努力加载中...', '', 1));
  // return;
  post(api.reHos31DaysPageByDept, param)
    .then(res => {
      console.log(res, '返回的数据');
      if (res.data.code == '0') {
        const data = res.data.data || [];
        const totalPage = data.pages;
        const totalNum = data.total;
        renderTab(data, data.hospitalId, activePage);
        renderPagination(totalPage, Number(activePage), totalNum);
        if (totalPage > 1) {
          renderPagination(totalPage, Number(activePage), totalNum);
        } else {
          $('.pagination').html('');
        }
      } else {
        $.alerModal({
          message: res.data.msg,
          type: 'tip',
          time: '1000',
          isFather: true,
          fatherWrapper: $('#mainBox', parent.document),
        });
      }
    })
    .catch(e => {});
}

getTabData(1);

$('.filter').on('click', function(e) {
  // deptName = deptNameTemp;
  behospitalCode = behospitalCodeTemp;
  getTabData(1);
});
// // 处理th tr数据
function formatTableData(data) {
  let newColumns = data.filter(function(item, index) {
    if (item.isShow === 1) {
      return item;
    }
  });
  return newColumns;
}

function renderTab(data, hisId, activePage) {
  data = data.records;
  let newData = [];
  for (var i = 0; i < data.length; i++) {
    let dataCopy = { copy: true, ...data[i] };
    newData = [...newData, data[i], dataCopy];
  }
  let str = ``;
  for (let i = 0; i < newData.length; i++) {
    const item = newData[i];
    if (!item.copy) {
      str += `
          <tr  data-index=${i}>
          <td class="textCenter" rowspan="2">${Math.ceil(((activePage - 1) * 20 + i + 1) / 2)}</td>
          <td class="textCenter">${item.details[0].behospitalCode || '-'}</td> 
          <td class="textCenter" rowspan="2">${item.fileCode || '-'}</td> 
          <td class="textCenter patientNameSpan" data-id="${
            item.details[0].behospitalCode
          }" data-name="${item.details[1].name}" >${item.details[0].name || '-'}</td> 
          <td class="textCenter" rowspan="2">${item.sex || '-'}</td> 
          <td class="textCenter">${item.details[0].level || '-'}</td> 
          <td class="textCenter">${item.details[0].scoreRes || '-'}</td> 
          <td class="textCenter">${item.details[0].doctorName || '-'}</td> 
          <td class="textCenter"><div class="ellipsis" title="${item.details[0].diagnose}">${item.details[0].diagnose || "-"}</div></td>
          <td class="textCenter"><div class="ellipsis" title="${item.details[0].diagnoseName}">${item.details[0].diagnoseName || "-"}</div></td>  
          <td class="textCenter">${item.details[0].behospitalDate || '-'}</td> 
          <td class="textCenter">${item.details[0].leaveHospitalDate || '-'}</td> 
          <td class="textCenter">${item.details[0].behospitalDayNum || '-'}</td> 
          <td class="textCenter">${item.details[0].totleFee || '-'}</td> 
          <td class="textCenter" rowspan="2">${item.diffDays || '-'}</td> 
          <td class="textCenter" rowspan="2">${item.lastAgainBehospitalPlan || "-"}</td> 
          </tr>
        `;
    } else {
      str += `
          <tr  data-index=${i} class="copy">
          <td class="textCenter delete"></td> 
          <td class="textCenter">${item.details[1].behospitalCode || '-'}</td> 
          <td class="textCenter delete">${item.fileCode || '-'}</td> 
          <td class="textCenter patientNameSpan" data-id="${
            item.details[1].behospitalCode
          }" data-name="${item.details[1].name}">${item.details[1].name || '-'}</td> 
          <td class="textCenter delete">${item.sex || '-'}</td> 
          <td class="textCenter">${item.details[1].level || '-'}</td> 
          <td class="textCenter">${item.details[1].scoreRes || '-'}</td> 
          <td class="textCenter">${item.details[1].doctorName || '-'}</td> 
          <td class="textCenter"><div class="ellipsis" title="${item.details[1].diagnose}">${item.details[1].diagnose || "-"}</div></td> 
          <td class="textCenter"><div class="ellipsis" title="${item.details[1].diagnoseName}">${item.details[1].diagnoseName || "-"}</div></td> 
          <td class="textCenter">${item.details[1].behospitalDate || '-'}</td> 
          <td class="textCenter">${item.details[1].leaveHospitalDate || '-'}</td> 
          <td class="textCenter">${item.details[1].behospitalDayNum || '-'}</td> 
          <td class="textCenter">${item.details[1].totleFee || '-'}</td> 
          <td class="textCenter delete">${item.diffDays || '-'}</td>
          <td class="textCenter delete">${item.lastAgainBehospitalPlan || "-"}</td>  
          </tr>
        `;
    }
  }
  $('.tbody').html(str ? str : emptyBox());
  $('.tbody .copy .delete').hide();
  /*bindScoreDetail(hisId)*/
  // 跳转至详情页
  $('.goHomeDetail').click(function() {
    let casesName = $(this).attr('data-name') || '';
    let casesId = $(this).attr('data-id');
    let name = $(this).attr('dept-name');
    name = name === '全院' ? '全部' : name;
    let id = $(this).attr('dept-id');

    $(parent.document)
      .find('#contentIframe')
      .attr(
        'src',
        'uccDeptDetail.html?from=3&deptName=' +
          deptIdTemp +
          '&deptId=' +
          id +
          '&casesEntryId=' +
          casesId +
          '&defectName=' +
          casesName +
          '&startDate=' +
          startDateParam +
          '&endDate=' +
          endDateParam
      );
  });
  bindScoreDetail(hisId);
  // initScroll("partDetailControl","YX",1)
}

function scoreDetail(id, age, hid, code, name) {
    const logoParam = getLogoParam();
  window.open(
    `./qcScore.html?id=${id}&age=${age}&name=${name}&hid=${getCookie('hospitalid')}&code=${code}`+logoParam
  );
}
// 跳转至病人详情
function bindScoreDetail(hisId) {
  $('.patientNameSpan').on('click', function(e) {
    const id = $(this).attr('data-id');
    const age = '';
    const noScore = '';
    const checkStatus = '';
    const name = $(this).attr('data-name');
    if (noScore) {
      $.alerModal({
        message: '请先进行评分！',
        type: 'tip',
        time: '1000',
        isFather: true,
        fatherWrapper: $('#mainBox', parent.document),
      });
      return;
    } else {
      // scoreDetail(id,age,hisId,'YH-BLZK-ZKPF',tabList[index].name)
      scoreDetail(id, age, hisId, 'YH-BLZK-ZKPF', name);
    }
  });
}

//模块类型
$('.selectModuleType').on('focus', function(e) {
  e.stopPropagation();
  $('.rejectList ').css('display', 'none');
  $('.usedList ').css('display', 'none');
  $('.selectReject .arrow').attr('src', iconDown);
  $('.selectUsed .arrow').attr('src', iconDown);
  $('.moduleTypeList ').css('display', 'block');
});
$('.selectModuleType').on('blur', function(e) {
  $('.moduleTypeList ').css('display', 'none');
});
$('.selectModuleType').on('input', function(e) {
  let val = $(this)
    .val()
    .trim();
  casesName = casesNameTemp = val;
  getmoduleTypeList(val);
});
//获取模块类型
function getmoduleTypeList(val, dept) {
  post(api.getListDoctor, { inputStr: val == '全部' ? '' : val || '', deptName: dept || deptId })
    .then(res => {
      if (res.data.code == '0') {
        const moduleTypeList = res.data.data;
        renderModuleTypeList(moduleTypeList);
      } else {
        renderModuleTypeList([]);
      }
    })
    .catch(e => {});
}
function renderModuleTypeList(moduleTypeList) {
  if (moduleTypeList.length == 0) {
    $('.moduleTypeList').html('');
    return;
  }
  let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`;
  for (let i = 0; i < moduleTypeList.length; i++) {
    str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].name} data-id=${moduleTypeList[i].doctorId} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`;
  }
  $('.moduleTypeList').html(str);
  bindModuleTypeSelect();
}

//模块类型选择
function bindModuleTypeSelect() {
  $('.modeTypeItem').on('mousedown', function() {
    const modeTypeItemName = $(this).attr('data-name');
    const modeTypeItemId = $(this).attr('data-id');
    casesIdTemp = modeTypeItemId;
    casesName = casesNameTemp = modeTypeItemName == '全部' ? '' : modeTypeItemName;
    $('.selectModuleType')
      .val(modeTypeItemName)
      .attr('title', modeTypeItemName);
    $('.moduleTypeList ').css('display', 'none');
  });
}

//科室处理
function getDeptList(flg) {
  let str = ``;
  if (deptList.length <= 0) return;
  if (flg) {
    $('.qcListCopy .selectDept ')
      .attr('data-id', deptList[0].deptName)
      .find('i')
      .html(deptList[0].deptName);
    deptId = deptIdTemp = deptList[0].deptName;
  }
  for (let i = 0; i < deptList.length; i++) {
    let tmp = deptList[i];
    str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`;
  }
  $('.qcListCopy .filterDropList').html(str);
  getmoduleTypeList();
  getTabData(1);
}
//选择病历等级
$('.selectLevel').on('click', function(e) {
  e.stopPropagation();
  $('.deptList ').css('display', 'none');
  $('.selectDept .arrow').attr('src', iconDown);
  const showList = $('.levelList ').css('display');
  if (showList == 'none' || !showList) {
    $('.levelList ').css('display', 'block');
    $('.selectLevel .arrow').attr('src', iconUp);
  } else {
    $('.levelList ').css('display', 'none');
    $('.selectLevel .arrow').attr('src', iconDown);
  }
});
//全选绑定

$('.selectDept').on('click', function(e) {
  e.stopPropagation();
  $('.levelList ').css('display', 'none');
  $('.selectLevel .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);
  }
});

bindDeptSelect();
//科室选择
function bindDeptSelect() {
  $('body').on('click', '.deptItem', function() {
    const deptItemName = $(this).attr('data-name');
    const deptItemId = $(this).attr('data-id');
    deptId=deptIdTemp = deptItemId;
    if (deptItemName.length > 10) {
      $('.selectDept').html(deptItemName.substring(0, 8) + '...');
    } else {
      $('.selectDept').html(deptItemName);
    }
    $('.selectDept ').attr({ title: deptItemName, 'data-id': deptItemName });
    $('.selectDept').append(`<img class="arrow" src=${iconDown} alt="下拉">`);

    $('.deptList').css('display', 'none');
    getmoduleTypeList('', deptItemId);
  });
}

function loading() {
  const str = `
    <div class="loadingBox">
            <div class="mask"></div>
            <img class="loadingImg" src=${loadingImg}  alt="loading" />
        </div>
    `;
  $('#mainBox', parent.document).append(str);
}
function hideLoading() {
  $('#mainBox .loadingBox', parent.document).remove();
}
$(document).on('click', function() {
  $('.deptList').css('display', 'none');
  $('.selectDept .arrow').attr('src', iconDown);
});
// 上升下降筛选
$('th[code]')
  .off('click')
  .on('click', function(e) {
    const code = $(this).attr('code');
    if (data_asc == code) {
      data_desc = code;
      data_asc = '';
      $('th[code]').removeClass('asc desc');
      $(this).addClass('desc');
    } else {
      data_desc = '';
      data_asc = code;
      $('th[code]').removeClass('asc desc');
      $(this).addClass('asc');
    }
    getTabData(1);
  });

//分页渲染
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'));
    getTabData(activePageNow);
    // renderPagination(totalPage,activePageNow,totalNum)
  });
  $('.prePage').on('click', function(e) {
    let activePageNow = Number($('.activePage').attr('data-page'));
    if (activePageNow > 1) {
      activePageNow--;
      getTabData(activePageNow);
      // renderPagination(totalPage,activePageNow,totalNum)
    }
  });
  $('.nextPage').on('click', function(e) {
    let activePageNow = Number($('.activePage').attr('data-page'));
    if (activePageNow < totalPage) {
      activePageNow++;
      getTabData(activePageNow);
      // renderPagination(totalPage,activePageNow,totalNum)
    }
  });
}

// 获取科室名称
$('.patientNumInp').on('input', function(e) {
  const val = $(this)
    .val()
    .trim();
    deptId =deptName = val;
});

// 获取病人姓名  patientRecordInp
$('.patientNameInp').on('input', function(e) {
  const val = $(this)
    .val()
    .trim();
  patientName = val;
});

// 获取病案号  patientRecordInp
$('.patientRecordInp').on('input', function(e) {
  const val = $(this)
    .val()
    .trim();
  deptRecord = val;
});

$(function() {
  const iconCalenBlue = require('@images/icon_calen_blue.png');
  const iconCalenGrey = require('@images/icon_calen_grey.png');
  $('.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();
  });
  $('.export').click(function() {
    const start = new Date(startDateParam).getTime();
    const end = new Date(endDateParam).getTime();
    if (start > end) {
      $.alerModal({
        message: '开始时间不能大于结束时间~',
        type: 'tip',
        time: '1000',
        isFather: true,
        fatherWrapper: $('#mainBox', parent.document),
      });
      return;
    }
    const param = {
      name: patientName,
      isPlacefile: isPlacefile,
      fileCode: deptRecord,
      startDate: startDateParam.replace(/\//g, '-'),
      endDate: endDateParam.replace(/\//g, '-'),
      deptName: deptId || '',
    };
    expJson(api.reHos31DaysPageExportByDept, param).then(res => {
      downloadExportedData(res.data, '31天再入院人数.xls');
    });

    //  初始渲染TableTitle
    // getPageSet().then(res =>{
    //   $(".filter").click();   //初始查询
    // })
  });
});
