const $ = require('jquery'); require("../css/uncorrectedCasesStatistics.less"); require('./modal.js'); const { api } = require('./api.js') const { post, getCookie, getUrlArgObjectNew, emptyBox, setTitleTxt, setDatePicker, getPickerDate, expJson, downloadExportedData, initScroll, listenScroll } = 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 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 = "", columns = [], isfirstRenderTitle = false; 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) || "" /*if(lineType){ $("th[code="+data_desc+"]").addClass("desc"); }*/ //setTitleTxt('',from) //导航栏面包屑 let isPlacefile = getCookie('isPlacefile') || 1 let tableType = 1; let timelinessId = "3241"; let globaltableData = []; 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') } if (!statisticsType) { setDatePicker($("#datepicker"), $("#datepicker2"), 'default') } $(".abnormalClear").click(function () { data_desc = ""; data_asc = ""; deptId = ""; deptIdTemp = ""; deptName = ""; deptNameTemp = ""; casesEntryId = ""; setDatePicker($("#datepicker"), $("#datepicker2"), "default") $(".selectDept").attr({ 'title': "首次病程未在患者入院8小时内完成(杭州七院标准版)", 'data-id': '' }).val("首次病程未在患者入院8小时内完成(杭州七院标准版)") $('.patientNumInp').val('') $("th[code]").removeClass("asc desc") //behospitalCode =behospitalCodeTemp= "" getDeptList() 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") $(parent.document).find(".menu .page[code=YH-ZKK-SXXXGTJ_GLY]").addClass("active") //判断有无某一权限 /*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: 15, // "deptName": deptName == "全部" ? "" : deptName || "", // "name": deptName == "全部" ? "" : deptName || "", // "asc": [data_asc], //升序 "ascs": [], // "desc": [data_desc], "descs": ["behospitalDate"], //降序 //"type": 0, //1-本月,2-本年,0-自定义时间(现在所有都是自定义时间,都会传开始日期和结束日期) "startDate": dateStatrt.replace(/\//g, '-'), "endDate": dateEnd.replace(/\//g, '-'), "casesEntryId": timelinessId, "size": 15 } startDateParam = dateStatrt endDateParam = dateEnd $('.pagination').html("") $('.key-list tbody').html(emptyBox('努力加载中...', '', 1)) let url if (tableType === 1) { url = api.getDeptA } else { url = api.getDeptB } post(url, param).then(res => { if (res.data.code == '0') { globaltableData = res.data.data || []; console.log(globaltableData); renderTabTitle(globaltableData) renderTab(globaltableData, globaltableData.hospitalId, activePage); // // if (isfirstRenderTitle === false) { renderTabTitle(data) }  //首次渲染渲染Table表头 // // globaltableData = data; // // rende renderPaginationrTab(data, data.hospitalId, activePage); let totalNum =parseInt(globaltableData.data.total); console.log(totalNum); let totalPage = Math.ceil(totalNum / 15); // 假设每页15条 if (totalPage > 0) { renderPagination(totalPage, activePage, totalNum); } else { $('.pagination').html(""); } } else { $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) }); } }).catch((e) => { console.log(e); }); } getTabData(1) $(".filter").on("click", function (e) { deptName = deptNameTemp; behospitalCode = behospitalCodeTemp; if (deptName == "") { $(".selectDept").attr({ 'title': "首次病程未在患者入院8小时内完成(杭州七院标准版)", 'data-id': '' }).val("首次病程未在患者入院8小时内完成(杭州七院标准版)") } 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) { let formatColumns = formatTableData(data.columns) data = data.data.records; console.log(data); // console.log("renderTab", data); let str = `` if(data.length===0){ $('.key-list tbody').html(emptyBox()) return; } for (let i = 0; i < data.length; i++) { const item = data[i]; const pageSize = 15; // 获取当前页的数据 (根据 activePage 计算要显示的起始位置和结束位置) const startIndex = (activePage - 1) * pageSize; // 获取当前页的数据 const currentPageData = data; console.log("当前页数据", currentPageData); let str = ``; // 遍历当前页的数据并生成表格行 for (let i = 0; i < currentPageData.length; i++) { const item = currentPageData[i]; if (tableType === 1) { str += ` ${startIndex + i + 1} ${item.behospitalCode || "-"} ${item.name || "-"} ${item.sex || "-"} ${item.fileCode || "-"} ${item.doctorName || "-"} ${item.behDeptName || "-"} ${item.ruleName || "-"} ${(item.behospitalDate || "-").split(' ')[0]} ${(item.behospitalGmtCreate || "-").split(' ')[0]} ${item.isPlacefile || "-"} `; } else { str += ` ${startIndex + i + 1} ${item.behospitalCode || "-"} ${item.name || "-"} ${item.sex || "-"} ${item.fileCode || "-"} ${item.doctorName || "-"} ${item.behDeptName || "-"} ${item.ruleName || "-"} ${item.remark || "-"} ${item.behospitalDate || "-"} ${item.isPlacefile || "-"} `; } } // console.log(str); $('.key-list tbody').html(str?str:emptyBox()) /*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", "uccDetail.html?from=3&deptName=" + name + "&deptId=" + id + "&casesEntryId=" + casesId + "&defectName=" + casesName + "&startDate=" + startDateParam + "&endDate=" + endDateParam) }) // initScroll("partDetailControl","YX",1) } } $('.selectDept').on("focus", function (e) { e.stopPropagation() // let val = $(this).val().trim() // deptName = deptNameTemp = val // val&&getDeptList(val) $(".deptList ").css("display", "block") }) $('.selectDept').on("blur", function (e) { $(".deptList ").css("display", "none") $(".selectDept .arrow").attr("src", iconDown) }) $('.selectDept').on("input", function (e) { let val = $(this).val().trim() deptName = deptNameTemp = val getDeptList(deptName) }) //获取科室列表 getDeptList() function getDeptList(val) { post(api.getTimelinessList, { inputStr: val == "首次病程未在患者入院8小时内完成(杭州七院标准版)" ? "" : val || "" }).then(res => { if (res.data.code == '0') { const deptList = res.data.data || [] // console.log("111111111", deptList); rendeDeptList(deptList) } else { rendeDeptList([]) } }).catch((e) => { }) } function rendeDeptList(deptList) { if (deptList.length == 0) { $('.deptList').html("") return } let str = `
  • `; for (let i = 0; i < deptList.length; i++) { str += `
  • ${deptList[i].timelinessName}
  • ` } $('.deptList').html(str) bindDeptSelect() } //科室选择 function bindDeptSelect() { $('.deptItem').on("mousedown", function () { let index = $(this).index() if (index > 3) { tableType = 2 } else { tableType = 1 } timelinessId = $(this).attr("data-id") // console.log(timelinessId); const deptItemName = $(this).attr("data-name") const deptItemId = $(this).attr("data-id") deptIdTemp = deptItemId; deptNameTemp = deptItemName === "全部" ? "" : deptItemName; $('.selectDept').val(deptItemName) $('.selectDept ').attr('title', deptItemName) $(".deptList").css("display", "none") $('.selectDept').removeClass('unSelect') // console.log("index", index); }) } //获取页面配置 // function getPageSet(){ // 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 = { // "name": deptName, // "asc":data_asc, //升序 // "desc":data_desc, //降序 // "startDate":dateStatrt.replace(/\//g,'-'), // "endDate":dateEnd.replace(/\//g,'-') // } // startDateParam = dateStatrt // endDateParam = dateEnd // post(api.unModifyMRStatistics,param).then(res =>{ // if(res.data.code == '0'){ // const data = res.data.data||[]; // renderTabTitle(data) //渲染Table表头 // }else{ // $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)}); // } // }).catch((e) =>{ // }) // } // getPageSet() // 渲染 table 表头 function renderTabTitle(data) { isfirstRenderTitle = true; data = data.columns; // console.log("data", data); let str = ` 序号`; // 遍历 columns 数据,渲染表头 for (let i = 0; i < data.length; i++) { const item = data[i]; if (item.isShow == 1) { str += `${item.columnName}`; } } // console.log("str", str); // 打印生成的表头 // 将生成的表头渲染到页面 $(".tabTitle").html(str); // 绑定事件 bindOrder(); } function loading() { const str = `
    loading
    ` $("#mainBox", parent.document).append(str) } function hideLoading() { $("#mainBox .loadingBox", parent.document).remove() } // 上升下降筛选 function bindOrder() { $("th[code]").off("click").on("click", function () { const code = $(this).attr("code"); console.log(code, 'code'); let type; // 根据当前状态切换升序和降序 if (data_asc === code) { data_desc = code; data_asc = ""; $("th[code]").removeClass("asc desc"); $(this).addClass("desc"); type = "desc"; } else { data_desc = ""; data_asc = code; $("th[code]").removeClass("asc desc"); $(this).addClass("asc"); type = "asc"; } // 字段与实际对象字段的映射 const fieldMapping = { "病人住院序号": "behospitalCode", "病人姓名": "name", "性别": "sex", "病案号": "fileCode", "主管医生": "doctorName", "住院科室": "behDeptName", "规则名称": "ruleName", "入院日期": "behospitalDate", "首次病程创建时间": "behospitalGmtCreate", "是否归档": "isPlacefile", "备注": "remark" }; const field = fieldMapping[code]; if (!field) return; // 如果没有对应的字段则返回 // 判断字段类型,并执行排序 const isNumericField = ["behospitalCode", "fileCode", "isPlacefile"].includes(field); const isDateField = ["behospitalDate", "behospitalGmtCreate"].includes(field); globaltableData.data.records.sort((a, b) => { if (isNumericField) { return sortByKey(new Number(a[field]), new Number(b[field]), type); } else if (isDateField) { return sortByKey(new Date(a[field]), new Date(b[field]), type); } else { return sortByKey(a[field], b[field], type); } }); renderTab(globaltableData, globaltableData.hospitalId, 1); }); } // 通用排序函数 function sortByKey(a, b, type) { if (type === "asc") { return a > b ? 1 : (a < b ? -1 : 0); } else { return a < b ? 1 : (a > b ? -1 : 0); } } //分页渲染 function renderPagination(totalPage, activePage, totalNum) { let str = `共${totalPage}页/${totalNum}条数据 `; // 如果总页数小于等于6,直接渲染所有页码 if (totalPage <= 6) { for (let i = 1; i <= totalPage; i++) { str += `${i}`; } } else { // 如果总页数大于6 if (activePage <= 3) { // 如果当前选中页小于等于3,渲染前4页并显示省略号 for (let i = 1; i <= 4; i++) { str += `${i}`; } str += `...`; str += `${totalPage}`; } else if (activePage > totalPage - 3) { // 如果当前页接近最后3页,渲染最后几页 str += `1`; str += `...`; for (let i = totalPage - 3; i <= totalPage; i++) { str += `${i}`; } } else { // 如果当前页在中间区域,渲染1、当前页前后、最后一页 str += `1`; str += `...`; str += `${activePage - 1}`; str += `${activePage}`; str += `${activePage + 1}`; str += `...`; str += `${totalPage}`; } } str += ``; // 渲染分页HTML $('.pagination').html(str); // 高亮当前页 $(`.page${activePage}`).addClass('activePage'); // 绑定页码点击事件 $(".pageNum").off("click").on("click", function () { const activePageNow = Number($(this).attr('data-page')); getTabData(activePageNow); }); // 绑定上一页按钮 $(".prePage").off("click").on("click", function () { let activePageNow = Number($(".activePage").attr('data-page')); if (activePageNow > 1) { activePageNow--; getTabData(activePageNow); } }); // 绑定下一页按钮 $(".nextPage").off("click").on("click", function () { let activePageNow = Number($(".activePage").attr('data-page')); if (activePageNow < totalPage) { activePageNow++; getTabData(activePageNow); } }); } // function renderPagination(totalPage, activePage, totalNum) { // let str = `共${totalPage}页/${totalNum}条数据` // if (totalPage <= 6) { // for (let i = 1; i <= totalPage; i++) { // str += `${i}` // } // } else { // if (activePage <= 3) { //选中页数小于4 // for (let i = 1; i <= 4; i++) { // str += `${i}` // } // str += `...` // str += `${totalPage}` // } else if (activePage > totalPage - 3) { // str += `1` // str += `...` // str += `${totalPage - 3}` // str += `${totalPage - 2}` // str += `${totalPage - 1}` // str += `${totalPage}` // } else { // str += `1` // str += `...` // str += `${activePage - 1}` // str += `${activePage}` // str += `${activePage + 1}` // str += `...` // str += `${totalPage}` // } // } // str += `` // $('.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() deptName = val }) $(function () { const iconCalenBlue = require("./../images/icon_calen_blue.png") const iconCalenGrey = require("./../images/icon_calen_grey.png") $('.datapickerBox').append(``) $('.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() }) $('.exportData').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 } let limitTime = 3 * 30 * 24 * 60 * 60 * 1000; const param = { //"type": 0, //1-本月,2-本年,0-自定义时间(现在所有都是自定义时间,都会传开始日期和结束日期) "startDate": startDateParam.replace(/\//g, '-'), "endDate": endDateParam.replace(/\//g, '-') } // if (start - end > limitTime) { // $.alerModal({ "message": '最多只能导出90天', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) }); // return // } else { // expJson(api.AdmunModifyMRSExportByDept, param).then(res => { // downloadExportedData(res.data, "时效性相关统计管理员.xls") // }) // } // 直接调用导出函数,不设置时间限制 expJson(api.AdmunModifyMRSExportByDept, param).then(res => { downloadExportedData(res.data, "时效性相关统计管理员.xls"); }).catch(error => { // 添加错误处理,以便于在导出失败时给出提示 $.alerModal({ "message": '导出数据失败', type: "error", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) }); }); // 初始渲染TableTitle // getPageSet().then(res =>{ // $(".filter").click(); //初始查询 // }) }) });