qcListOutHospital.js 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337
  1. const $ = require('jquery');
  2. require("../css/qcListOutHospital.less");
  3. require('./modal.js');
  4. const { api } = require('./api.js')
  5. const { post, getCookie, getLocal, getUrlArgObjectNew, emptyBox, downloadExportedData, expJson, getLogoParam, focusMenuItem, listenScroll, exportTimeLimit } = require('./utils.js')
  6. require('./../resource/jquery-ui/jquery-ui.min.js');
  7. require('./../resource/jquery-ui/jquery-ui.min.css');
  8. const iconCheck = require("./../images/icon_check.png")
  9. const iconUnCheck = require("./../images/icon_unchecked.png")
  10. const iconCalenBlue = require("./../images/icon_calen_blue.png")
  11. const iconCalenGrey = require("./../images/icon_calen_grey.png")
  12. const iconDown = require("./../images/arrow_down.png")
  13. const iconUp = require("./../images/arrow_up.png")
  14. const loadingImg = require("./../images/loading.gif")
  15. const arrowLeft = require("./../images/arrow_left.png")
  16. const arrowRight = require("./../images/arrow_right.png")
  17. const goUpG = require("./../images/arrow_up_grey.png")
  18. const goUpB = require("./../images/arrow_up_blue.png")
  19. const goDownG = require("./../images/arrow_down_grey.png")
  20. const goDownB = require("./../images/arrow_down_blue.png")
  21. let isPlacefile = getCookie('isPlacefile') || 1
  22. let pageSet = [], pageSetCopy = [], showNum = 0, scrollTop = 0;
  23. let srcUrl = $("#contentIframe", parent.document).attr("src")
  24. let statisticsType = getUrlArgObjectNew("dateType", srcUrl) || getUrlArgObjectNew("shijian", srcUrl) || "2"
  25. let chengdu = getUrlArgObjectNew("chengdu", srcUrl) || ""
  26. let deptIdPram = getUrlArgObjectNew("deptId", srcUrl) || ""
  27. let deptNamePram = getUrlArgObjectNew("deptName", srcUrl) || ""
  28. let docName = getUrlArgObjectNew("docName", srcUrl) || ""
  29. let startDateParam = getUrlArgObjectNew("startDateParam", srcUrl) || ""
  30. let endDateParam = getUrlArgObjectNew("endDateParam", srcUrl) || ""
  31. let outNumType = getUrlArgObjectNew("outNumType", srcUrl) || ""
  32. let outNumName = getUrlArgObjectNew("outNum", srcUrl) || ""
  33. let from = getUrlArgObjectNew("from", srcUrl) || ""
  34. let casesId = getUrlArgObjectNew("casesEntryId", srcUrl) || "";
  35. let isSingleReject = getUrlArgObjectNew("isSingleReject", srcUrl) || ""
  36. let inner = getUrlArgObjectNew("inner", srcUrl) || ""
  37. let deptListDept = JSON.parse(getCookie("deptList")) || []
  38. let currentPage;
  39. listenScroll()
  40. $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  41. $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  42. $(".fpSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  43. $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  44. $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  45. let tabList = [], name = "", behospitalCode = "", behosDateStart = "", level = "", behosDateEnd = "", scoreSum = 0,
  46. nameTemp = "", behospitalCodeTemp = "", levelTemp = "", deptId = "", deptIdTemp = "", doctorName = "", deptName = "", deptNameTemp = "",
  47. doctorNum = "", doctorNameTemp = "", doctorNumTemp = "", leaveHosType = "", leaveHosTypeTemp = "",
  48. fpCheckStatus = "", fpCheckStatusTemp = "", fpCheckName = "", fpCheckNameTemp = "", qcCheckMain = "", qcCheckMainTemp = "", qcCheckName = "", qcCheckNameTemp = "", qcCheckStatus = "", qcCheckStatusTemp = "", fpCheckDateStart = "", fpCheckDateEnd = "",
  49. qcCheckDateStart = "", qcCheckDateEnd = "", data_desc = ["leaveHospitalDate"], data_asc = [];
  50. if (isPlacefile != 1) {
  51. data_desc = ["behospitalDate"]
  52. }
  53. if (chengdu) {
  54. levelTemp = chengdu
  55. level = chengdu
  56. $('.selectLevel').html(chengdu)
  57. $(".levelList").css("display", "none")
  58. $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  59. }
  60. if (from == '1' && outNumType && outNumName) {
  61. leaveHosType = leaveHosTypeTemp = outNumType
  62. $('.selectLeaveHosType').html(outNumName)
  63. $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  64. }
  65. if (docName) {
  66. doctorNameTemp = docName
  67. doctorName = docName
  68. $('.doctorInp').val(docName)
  69. }
  70. if (deptIdPram && deptNamePram) {
  71. deptIdTemp = deptIdPram = deptIdPram
  72. deptName = deptNameTemp = deptNamePram
  73. $('.selectDept').val(deptNamePram)
  74. $('.selectDept ').attr('title', deptNamePram)
  75. $(".deptList").css("display", "none")
  76. }
  77. if (from == 2) {
  78. // $(".export").css('display','none')
  79. // $(".partTitle .titlePic ").html(`<a class="consoleD" href="deptConsole.html">控制台(科室) / </a><a class="consoleP" href="singleVeto.html?from=1">条目缺陷占比 / </a>缺陷详情`)
  80. // deptId=deptListDept[0]&&deptListDept[0].deptId;
  81. // deptName=deptListDept[0]&&deptListDept[0].deptName;
  82. // deptNameTemp=deptListDept[0]&&deptListDept[0].deptName;
  83. // deptIdTemp=deptListDept[0]&&deptListDept[0].deptId;
  84. // $('.selectDept').html(deptName)
  85. } else if (from == 3) {
  86. // $(".partTitle .titlePic ").html(`<a href="keyItemFlawControl.html">关键条目缺陷占比 / </a>缺陷详情`)
  87. } else {
  88. if (inner == 2) {
  89. $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a>入院人数统计`)
  90. $(".inorout").css('display', 'none')
  91. } else {
  92. $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a>出院人数统计`)
  93. $(".inorout").css('display', 'block')
  94. }
  95. }
  96. $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
  97. $('.iconCalen').on("mouseenter", function (e) {
  98. $(this).attr("src", iconCalenBlue)
  99. })
  100. $('.iconCalen').on("mouseleave", function (e) {
  101. $(this).attr("src", iconCalenGrey)
  102. })
  103. $('.iconCalen').on("click", function (e) {
  104. $(this).parent().find("input").focus()
  105. })
  106. $('.recordScoreBtn').css("opacity", hasData('FUNC000017') ? '1' : '0.5')
  107. $(".partTitle .consoleD").click(function () {
  108. //初始菜单选中
  109. focusMenuItem('YH-KZT')
  110. $(".container", parent.document).addClass("console-cont");
  111. })
  112. $("#filterToggler").click(function () {
  113. const text = $(this).text();
  114. $(".toggle-item").slideToggle();
  115. $(this).text(text === "收起筛选" ? "展开筛选" : "收起筛选").toggleClass("up");
  116. });
  117. // YH-ZKK-CYRSTJ
  118. $(".menu .page", parent.document).removeClass("active")
  119. if (isPlacefile == '1') {
  120. $(parent.document).find(".menu .page[code=YH-ZKK-CYRSTJ]").addClass("active")
  121. } else {
  122. $(parent.document).find(".menu .page[code=YH-ZKK-RYRSTJ]").addClass("active")
  123. }
  124. //判断有无某一权限
  125. function hasData(data) {
  126. let trdObj = JSON.parse(getLocal("trdObj"))
  127. let lis = trdObj['YH-BLZK-ZKPF']
  128. if (!lis) {
  129. return false
  130. }
  131. if (lis.indexOf(data) > -1) {//有权限
  132. return true
  133. }
  134. return false;
  135. }
  136. function getTabData(activePage) {
  137. const param = {
  138. current: activePage,
  139. behospitalCode: behospitalCode,
  140. patName: name, //病人姓名
  141. level: level,//病历等级
  142. behDeptName: deptName == "全部" ? "" : deptName || "",
  143. deptName: deptName == "全部" ? "" : deptName || "",
  144. ascs: data_asc, //升序
  145. descs: data_desc, //降序
  146. startDate: behosDateStart.replace(/\//g, '-'), //出院日期--开始时间
  147. endDate: behosDateEnd.replace(/\//g, '-'), //出院日期--结束时间
  148. size: 15,
  149. doctorName: doctorName,
  150. doctorId: doctorNum,
  151. leaveHosType: leaveHosType == "全部" ? "" : leaveHosType, //出院人数类型
  152. checkStatus: qcCheckStatus ? Number(qcCheckStatus) : qcCheckStatus, //病历核查状态
  153. mrStatus: fpCheckStatus ? Number(fpCheckStatus) : fpCheckStatus, //首页核查状态(1:已核查,0:未核查)
  154. chName: qcCheckName, //病历核查人员
  155. diagnose: qcCheckMain,
  156. mrName: fpCheckName, //首页核查人员
  157. chTimeStart: qcCheckDateStart.replace(/\//g, '-'), //病历核查起始时间
  158. chTimeEnd: qcCheckDateEnd.replace(/\//g, '-'), //病历核查截止时间
  159. mrTimeStart: fpCheckDateStart.replace(/\//g, '-'), //首页核查起始时间
  160. mrTimeEnd: fpCheckDateEnd.replace(/\//g, '-'), //首页核查截止时间
  161. }
  162. $('.pagination').html("")
  163. $('.tbody').html(emptyBox('努力加载中...', '', 1))
  164. return post(api.leaveHosMRPage, param).then(res => {
  165. if (res.data.code == '0') {
  166. const data = res.data.data;
  167. tabList = data.records;
  168. const totalPage = data.pages;
  169. const totalNum = data.total;
  170. currentPage = activePage
  171. renderTab(tabList, data.hospitalId);
  172. renderPagination(totalPage, Number(activePage), totalNum)
  173. if (totalPage > 1) {
  174. renderPagination(totalPage, Number(activePage), totalNum)
  175. } else {
  176. $('.pagination').html("")
  177. }
  178. } else {
  179. const token = localStorage.getItem('accessToken');
  180. if (!token && window.location.href.indexOf('login') == -1) {
  181. //alert('无token判断,跳回登录')
  182. } else {
  183. $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  184. }
  185. }
  186. }).catch((e) => {
  187. console.log(999)
  188. })
  189. }
  190. //getTabData(1)
  191. $(".filter").on("click", function (e) {
  192. behosDateStart = $("#datepicker").val()
  193. behosDateEnd = $("#datepicker2").val()
  194. fpCheckDateStart = $("#datepickerFp1").val()
  195. fpCheckDateEnd = $("#datepickerFp2").val()
  196. qcCheckDateStart = $("#datepickerQc1").val()
  197. qcCheckDateEnd = $("#datepickerQc2").val()
  198. const behosDateStartTime = new Date(behosDateStart).getTime()
  199. const behosDateEndTime = new Date(behosDateEnd).getTime()
  200. const qcCheckDateStartTime = new Date(qcCheckDateStart).getTime()
  201. const qcCheckDateEndTime = new Date(qcCheckDateEnd).getTime()
  202. const fpCheckDateStartTime = new Date(fpCheckDateStart).getTime()
  203. const fpCheckDateEndTime = new Date(fpCheckDateEnd).getTime()
  204. if (behosDateStartTime > behosDateEndTime) {
  205. $.alerModal({ "message": '出院日期开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  206. return
  207. }
  208. if (qcCheckDateStartTime > qcCheckDateEndTime) {
  209. $.alerModal({ "message": '病历核查开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  210. return
  211. }
  212. if (fpCheckDateStartTime > fpCheckDateEndTime) {
  213. $.alerModal({ "message": '病案首页核查开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  214. return
  215. }
  216. if (behosDateStart) {
  217. behosDateStart = behosDateStart + ' 00:00:00'
  218. }
  219. if (behosDateEnd) {
  220. behosDateEnd = behosDateEnd + ' 23:59:59'
  221. }
  222. if (fpCheckDateStart) {
  223. fpCheckDateStart = fpCheckDateStart + ' 00:00:00'
  224. }
  225. if (fpCheckDateEnd) {
  226. fpCheckDateEnd = fpCheckDateEnd + ' 23:59:59'
  227. }
  228. if (qcCheckDateStart) {
  229. qcCheckDateStart = qcCheckDateStart + ' 00:00:00'
  230. }
  231. if (qcCheckDateEnd) {
  232. qcCheckDateEnd = qcCheckDateEnd + ' 23:59:59'
  233. }
  234. name = nameTemp
  235. behospitalCode = behospitalCodeTemp
  236. level = levelTemp === "全部" ? "" : levelTemp
  237. deptId = deptIdTemp
  238. deptName = deptNameTemp
  239. doctorName = doctorNameTemp
  240. doctorNum = doctorNumTemp
  241. leaveHosType = leaveHosTypeTemp
  242. fpCheckStatus = fpCheckStatusTemp
  243. qcCheckStatus = qcCheckStatusTemp
  244. fpCheckName = fpCheckNameTemp
  245. qcCheckName = qcCheckNameTemp
  246. qcCheckMain = qcCheckMainTemp
  247. if (deptName == "") {
  248. $(".selectDept").attr({ 'title': "全部", 'data-id': '' }).val("全部")
  249. }
  250. getTabData(1)
  251. })
  252. $(".abnormalClear").on("click", function (e) {
  253. tabList = [];
  254. name = "";
  255. behospitalCode = "";
  256. level = "";
  257. scoreSum = 0;
  258. nameTemp = "";
  259. behospitalCodeTemp = "";
  260. levelTemp = "";
  261. deptId = "";
  262. deptName = "";
  263. deptNameTemp = "";
  264. deptIdTemp = "";
  265. doctorName = "";
  266. fpCheckName = "";
  267. qcCheckName = "";
  268. qcCheckMain = "";
  269. doctorNum = "";
  270. doctorNameTemp = "";
  271. doctorNumTemp = "";
  272. fpCheckNameTemp = "";
  273. qcCheckNameTemp = "";
  274. qcCheckMainTemp = "";
  275. fpCheckStatus = "";
  276. fpCheckStatusTemp = "";
  277. qcCheckStatus = "";
  278. qcCheckStatusTemp = ""
  279. leaveHosType = "";
  280. leaveHosTypeTemp = "";
  281. data_desc = ["leaveHospitalDate"];
  282. if (isPlacefile != 1) {
  283. data_desc = ["behospitalDate"]
  284. }
  285. data_asc = [];
  286. if (from == 2) {
  287. // deptId=deptListDept[0]&&deptListDept[0].deptId;
  288. // deptName=deptListDept[0]&&deptListDept[0].deptName;
  289. // deptNameTemp=deptListDept[0]&&deptListDept[0].deptName;
  290. // deptIdTemp=deptListDept[0]&&deptListDept[0].deptId;
  291. }
  292. $('.patientNumInp').val('')
  293. $('.patientNameInp').val('')
  294. $('.doctorInp').val('')
  295. $('.doctorNumInp').val('')
  296. $('.doctorInp').val('')
  297. $('.fpCheckPeople').val('')
  298. $('.qcCheckPeople').val('')
  299. $('.qcCheckMain').val('')
  300. $(".selectDept").attr({ 'title': "全部", 'data-id': '' }).val("全部")
  301. // $('#datepicker').val('')
  302. // $('#datepicker2').val('')
  303. //默认日期为本年
  304. let year = new Date().getFullYear()
  305. let month = new Date().getMonth() + 1
  306. $("#datepicker").datepicker({
  307. changeMonth: true,
  308. changeYear: true,
  309. dateFormat: "yy/mm/dd",
  310. }).datepicker("setDate", new Date(`${year}-01-01`));
  311. $("#datepicker2").datepicker({
  312. changeMonth: true,
  313. changeYear: true,
  314. dateFormat: "yy/mm/dd"
  315. }).datepicker("setDate", new Date());
  316. $("#datepickerFp1").datepicker({
  317. changeMonth: true,
  318. changeYear: true,
  319. dateFormat: "yy/mm/dd",
  320. }).datepicker("setDate", "");
  321. $("#datepickerFp2").datepicker({
  322. changeMonth: true,
  323. changeYear: true,
  324. dateFormat: "yy/mm/dd"
  325. }).datepicker("setDate", "");
  326. $("#datepickerQc1").datepicker({
  327. changeMonth: true,
  328. changeYear: true,
  329. dateFormat: "yy/mm/dd",
  330. }).datepicker("setDate", "");
  331. $("#datepickerQc2").datepicker({
  332. changeMonth: true,
  333. changeYear: true,
  334. dateFormat: "yy/mm/dd"
  335. }).datepicker("setDate", "");
  336. if (from == 2) {
  337. // console.log('deptListDept',deptListDept)
  338. // $('.selectDept ').html(deptListDept[0].deptName)
  339. } else {
  340. $('.selectDept ').html('全部')
  341. }
  342. $(".deptList").css("display", "none")
  343. $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  344. // $('.selectDept ').addClass('unSelect')
  345. $('.selectLevel').html('全部')
  346. $(".levelList").css("display", "none")
  347. $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  348. // $('.selectLevel ').addClass('unSelect')
  349. $('.fpSelectCheck').html('全部')
  350. $(".fpCheckList").css("display", "none")
  351. $(".fpSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  352. $('.qcSelectCheck').html('全部')
  353. $(".qcCheckList").css("display", "none")
  354. $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  355. $('.selectLeaveHosType').html('全部')
  356. $(".leaveHosTypeList").css("display", "none")
  357. $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  358. $("th[code]").removeClass("asc desc")
  359. if (isPlacefile == 1) {
  360. $(".leaveHospitalDate").addClass(" desc")
  361. } else {
  362. $(".behospitalDate").addClass(" desc")
  363. }
  364. behosDateStart = $("#datepicker").val()
  365. behosDateEnd = $("#datepicker2").val()
  366. if (behosDateStart) {
  367. behosDateStart = behosDateStart + ' 00:00:00'
  368. }
  369. if (behosDateEnd) {
  370. behosDateEnd = behosDateEnd + ' 23:59:59'
  371. }
  372. fpCheckDateStart = ""
  373. fpCheckDateEnd = ""
  374. qcCheckDateStart = ""
  375. qcCheckDateEnd = ""
  376. getTabData(1)
  377. getDeptList()
  378. })
  379. function renderTab(data, hisId) {
  380. let str = ``
  381. let hasSelectAll = true;
  382. if (data.length === 0) {
  383. $('.tbody').html(emptyBox(null, showNum + 2))
  384. // initScroll("qcListCopy","YX",1)
  385. return;
  386. }
  387. for (let i = 0; i < data.length; i++) {
  388. const item = data[i]
  389. if (!item.hasSelect) {
  390. hasSelectAll = false
  391. }
  392. str += `
  393. <tr data-index=${i}>
  394. <td class="scoreOperaItem textCenter">${item.hasSelect ? `<img class="iconCheck" src=${iconCheck} />` : `<img class="iconCheck" src=${iconUnCheck} />`}</td>
  395. `
  396. // str += `
  397. // <tr data-index=${i}>
  398. // <td class="textCenter">${(currentPage-1)*15 + i+1}</td>`
  399. for (let j = 0; j < pageSet.length; j++) {
  400. if (pageSet[j].status == 1) {
  401. if (pageSet[j].val === "checkStatus" || pageSet[j].val === "mrStatus") {
  402. str += `<td class="${isTextCenter(pageSet[j].val) ? 'textCenter' : ''}"><span data-index=${i} class="${pageSet[j].val == 'name' ? 'patientNameSpan' : ''} ">${item[pageSet[j].val] == "1" ? "已核查" : item[pageSet[j].val] === 0 ? "未核查" : "-"}<span></td>`
  403. } else if (pageSet[j].val == 'scoreRes' || pageSet[j].val == 'scoreBn') {
  404. str += `<td class="${isTextCenter(pageSet[j].val) ? 'textCenter' : 'textCenter'}"><span data-index=${i} class="${pageSet[j].val == 'name' ? 'patientNameSpan' : ''} ">${item[pageSet[j].val] === null ? '-' : item[pageSet[j].val]}<span></td>`
  405. } else {
  406. str += `<td class="${isTextCenter(pageSet[j].val) ? 'textCenter' : ''}"><span data-index=${i} class="${pageSet[j].val == 'name' ? 'patientNameSpan' : ''} ">${item[pageSet[j].val] || "-"}<span></td>`
  407. }
  408. }
  409. }
  410. // <td >${item.behospitalCode || "-"}</td>
  411. // <td>${item.fileCode || "-"}</td>
  412. // <td class="textCenter"><span data-index=${i} class="patientNameSpan">${item.name || "-"}<span></td>
  413. // <td class="textCenter">${item.sex || "-"}</td>
  414. // <td class="textCenter">${item.age || "-"}</td>
  415. // <td class="textCenter">${item.bedCode || "-"}</td>
  416. // <td class="textCenter">${item.behospitalDate&&item.behospitalDate.slice(0,10) || "-"}</td>
  417. // <td class="textCenter">${item.leaveHospitalDate&&item.leaveHospitalDate.slice(0,10)|| "-"}</td>
  418. // <td class="textCenter">${item.diagnose|| "-"}</td>
  419. // <td class="textCenter">${item.behDoctorName || "-"}</td>
  420. // <td class="textCenter">${item.doctorName || "-"}</td>
  421. // <td class="textCenter">${item.directorDoctorName || "-"}</td>
  422. // <td class="textCenter">${item.behDeptName || "-"}</td>
  423. // <td class="textCenter">${item.level || "-"}</td>
  424. // <td class="textCenter">${item.scoreRes || "-"}</td>
  425. // <td class="textCenter">${item.gradeTime&&item.gradeTime.slice(0,10) || "-"}</td>
  426. str += "</tr>"
  427. }
  428. if (data.length === 0) {
  429. hasSelectAll = false
  430. }
  431. if (hasSelectAll) {
  432. $('.scoreOpera img').attr("src", iconCheck)
  433. $('.scoreOpera').attr("data-selectall", true)
  434. } else {
  435. $('.scoreOpera img').attr("src", iconUnCheck)
  436. $('.scoreOpera').attr("data-selectall", false)
  437. }
  438. $('.tbody').html(str)
  439. bindScoreOperaItem()
  440. bindRecordScoreOper()
  441. bindScoreDetail(hisId)
  442. // initScroll("qcListCopy","YX",1)
  443. }
  444. function isTextCenter(name) {
  445. const textCenterList = ['level', 'scoreRes', 'sex', 'age', 'behospitalDate', 'leaveHospitalDate', 'placefileDate', 'gradeTime', 'checkStatus', 'mrStatus', 'mrTime', 'chTime', 'chName', 'mrName', 'diagnose', 'behDoctorName', 'directorDoctorName', 'doctorName', 'name']
  446. return textCenterList.findIndex(item => item == name) > -1
  447. }
  448. function scoreDetail(id, age, hid, code, name) {
  449. const logoParam = getLogoParam();
  450. window.open(`./qcScore.html?id=${id}&age=${age}&name=${name}&hid=${getCookie('hospitalid')}&code=${code}` + logoParam)
  451. }
  452. function bindScoreDetail(hisId) {
  453. $('.patientNameSpan').on('click', function (e) {
  454. const index = $(this).attr("data-index")
  455. const id = tabList[index].behospitalCode
  456. const age = tabList[index].age;
  457. const noScore = tabList[index].level == '未评分'
  458. const checkStatus = tabList[index].checkStatus
  459. if (noScore) {
  460. $.alerModal({ "message": '请先进行评分!', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  461. return
  462. } else {
  463. scoreDetail(id, age, hisId, 'YH-BLZK-ZKPF', tabList[index].name)
  464. }
  465. })
  466. }
  467. //选择病历等级
  468. $('.selectLevel').on("click", function (e) {
  469. e.stopPropagation()
  470. $(".deptList ").css("display", "none")
  471. $(".selectDept .arrow").attr("src", iconDown)
  472. $(".checkList ").css("display", "none")
  473. $(".selectCheck .arrow").attr("src", iconDown)
  474. $(".leaveHosTypeList").css("display", "none")
  475. $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  476. $(".fpCheckList ").css("display", "none")
  477. $(".fpSelectCheck .arrow").attr("src", iconDown)
  478. $(".qcSelectCheck .arrow").attr("src", iconDown)
  479. $(".qcCheckList ").css("display", "none")
  480. const showList = $(".levelList ").css("display")
  481. if (showList == "none" || !showList) {
  482. $(".levelList ").css("display", "block")
  483. $(".selectLevel .arrow").attr("src", iconUp)
  484. } else {
  485. $(".levelList ").css("display", "none")
  486. $(".selectLevel .arrow").attr("src", iconDown)
  487. }
  488. })
  489. //选择病案首页核查状态
  490. $('.fpSelectCheck').on("click", function (e) {
  491. e.stopPropagation()
  492. $(".deptList ").css("display", "none")
  493. $(".selectDept .arrow").attr("src", iconDown)
  494. $(".levelList ").css("display", "none")
  495. $(".selectLevel .arrow").attr("src", iconDown)
  496. $(".leaveHosTypeList").css("display", "none")
  497. $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  498. $(".qcSelectCheck .arrow").attr("src", iconDown)
  499. $(".qcCheckList ").css("display", "none")
  500. const showList = $(".fpCheckList ").css("display")
  501. if (showList == "none" || !showList) {
  502. $(".fpCheckList ").css("display", "block")
  503. $(".fpSelectCheck .arrow").attr("src", iconUp)
  504. } else {
  505. $(".fpCheckList ").css("display", "none")
  506. $(".fpSelectCheck .arrow").attr("src", iconDown)
  507. }
  508. })
  509. //选择病历核查状态
  510. $('.qcSelectCheck').on("click", function (e) {
  511. e.stopPropagation()
  512. $(".deptList ").css("display", "none")
  513. $(".selectDept .arrow").attr("src", iconDown)
  514. $(".levelList ").css("display", "none")
  515. $(".selectLevel .arrow").attr("src", iconDown)
  516. $(".leaveHosTypeList").css("display", "none")
  517. $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  518. $(".fpSelectCheck .arrow").attr("src", iconDown)
  519. $(".fpCheckList ").css("display", "none")
  520. const showList = $(".qcCheckList ").css("display")
  521. if (showList == "none" || !showList) {
  522. $(".qcCheckList ").css("display", "block")
  523. $(".qcSelectCheck .arrow").attr("src", iconUp)
  524. } else {
  525. $(".qcCheckList ").css("display", "none")
  526. $(".qcSelectCheck .arrow").attr("src", iconDown)
  527. }
  528. })
  529. //选择出院人数类型
  530. $('.selectLeaveHosType').on("click", function (e) {
  531. e.stopPropagation()
  532. $(".deptList ").css("display", "none")
  533. $(".selectDept .arrow").attr("src", iconDown)
  534. $(".levelList ").css("display", "none")
  535. $(".checkList ").css("display", "none")
  536. $(".selectCheck .arrow").attr("src", iconDown)
  537. $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  538. const showList = $(".checkList ").css("display")
  539. if (showList == "none" || !showList) {
  540. $(".leaveHosTypeList ").css("display", "block")
  541. $(".selectLeaveHosType .arrow").attr("src", iconUp)
  542. } else {
  543. $(".leaveHosTypeList ").css("display", "none")
  544. $(".selectLeaveHosType .arrow").attr("src", iconDown)
  545. }
  546. })
  547. bindLeveldSelect()
  548. //病历等级选择
  549. function bindLeveldSelect() {
  550. $('.levelItem').on("click", function () {
  551. const levelItemName = $(this).attr("data-name")
  552. const levelItemItemId = $(this).attr("data-id")
  553. levelTemp = levelItemItemId
  554. $('.selectLevel').html(levelItemName)
  555. $(".levelList").css("display", "none")
  556. $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  557. $('.selectLevel').removeClass('unSelect')
  558. })
  559. }
  560. bindleaveHosTypeSelect()
  561. //出院人数类型选择
  562. function bindleaveHosTypeSelect() {
  563. $('.leaveHosTypeItem').on("click", function () {
  564. const leaveHosTypeItemName = $(this).attr("data-name")
  565. const leaveHosTypeItemItemId = $(this).attr("data-id")
  566. leaveHosTypeTemp = leaveHosTypeItemItemId
  567. $('.selectLeaveHosType').html(leaveHosTypeItemName)
  568. $(".leaveHosTypeList").css("display", "none")
  569. $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  570. $('.selectLeaveHosType').removeClass('unSelect')
  571. })
  572. }
  573. bindCheckedSelectFp()
  574. //病案首页核查状态选择
  575. function bindCheckedSelectFp() {
  576. $('.fpCheckItem').on("click", function () {
  577. const fpCheckItemName = $(this).attr("data-name")
  578. const fpCheckItemItemId = $(this).attr("data-id") || ""
  579. fpCheckStatusTemp = fpCheckItemItemId
  580. $('.fpSelectCheck').html(fpCheckItemName)
  581. $(".fpCheckList").css("display", "none")
  582. $(".fpSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  583. $('.fpSelectCheck').removeClass('unSelect')
  584. })
  585. }
  586. bindCheckedSelectQc()
  587. //病历核查状态选择
  588. function bindCheckedSelectQc() {
  589. $('.qcCheckItem').on("click", function () {
  590. const qcCheckItemName = $(this).attr("data-name")
  591. const qcCheckItemItemId = $(this).attr("data-id") || ""
  592. qcCheckStatusTemp = qcCheckItemItemId
  593. $('.qcSelectCheck').html(qcCheckItemName)
  594. $(".qcCheckList").css("display", "none")
  595. $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  596. $('.qcSelectCheck').removeClass('unSelect')
  597. })
  598. }
  599. function bindScoreOperaItem() {
  600. $(".scoreOperaItem").off("click").on("click", function (e) {
  601. const index = $(this).parent().attr("data-index")
  602. tabList[index].hasSelect = tabList[index].hasSelect ? false : true
  603. renderTab(tabList)
  604. })
  605. }
  606. function bindRecordScoreOper() {
  607. $(".recordScoreOperaBtn").on("click", function (e) {
  608. if (!hasData('FUNC000017')) {
  609. return
  610. }
  611. const index = $(this).parent().attr("data-index")
  612. const behospitalCode = tabList[index].behospitalCode
  613. loading()
  614. recordScore(behospitalCode, 1, true)
  615. })
  616. }
  617. function bindOperaAll() {
  618. $('.scoreOpera').on("click", function (e) {
  619. const hasSelectAll = $('.scoreOpera').attr("data-selectall")
  620. if (hasSelectAll == 'true') {
  621. for (let i = 0; i < tabList.length; i++) {
  622. tabList[i].hasSelect = false
  623. }
  624. } else {
  625. for (let i = 0; i < tabList.length; i++) {
  626. tabList[i].hasSelect = true
  627. }
  628. }
  629. renderTab(tabList)
  630. })
  631. }
  632. //获取页面配置
  633. function getPageSet() {
  634. return post(api.getQcListPageSet, { pageType: 1 }).then(res => {
  635. if (res.data.code == '0') {
  636. pageSet = res.data.data
  637. pageSetCopy = JSON.parse(JSON.stringify(pageSet))
  638. showNum = 0
  639. renderTabTitle(pageSet)
  640. } else { }
  641. }).catch((e) => {
  642. })
  643. }
  644. function renderTabTitle(data) {
  645. // let str = `
  646. // <th class="textCenter" style="width: 65px;">序号</th>`
  647. let str = ` <th class="textCenter" ></th>`
  648. let defaultOrder = isPlacefile == 1 ? 'leaveHospitalDate' : 'behospitalDate'
  649. for (let i = 0; i < data.length; i++) {
  650. const item = data[i]
  651. if (item.status == 1) {
  652. showNum++
  653. str += `<th class="textCenter ${item.val} ${item.val == defaultOrder ? 'desc' : ''}" code="${item.val}">${item.name}</th>`
  654. }
  655. }
  656. let operStr = `<td colspan="${showNum + 2}" style="background: #fff">
  657. <div class="tabFoot">
  658. <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="${iconUnCheck}" alt="checkbox">全选</span>
  659. <span class="recordScoreBtn">评分</span>
  660. <span class="setCol">列设置</span>
  661. <span class="tipIcon"><img class="toolTipIcon" src=${require('./../images/toolTip.png')} alt="关闭" /></span>
  662. <span class="tooltip">可设置列的隐藏、显示及排序</span>
  663. </div>
  664. </td>`
  665. $(".tabOpera").html(operStr)
  666. $(".tabTitle").html(str)
  667. //全选绑定
  668. bindOperaAll()
  669. bindRecordScoreBtn()
  670. bindSetCol()
  671. bindOrder()
  672. bindToolTip()
  673. }
  674. function bindToolTip() {
  675. $('.tipIcon').off("hover").hover(function () {
  676. $('.tooltip').css('visibility', "visible")
  677. }, function () {
  678. $('.tooltip').css('visibility', "hidden")
  679. })
  680. }
  681. function bindSetCol() {
  682. $(".setCol").off("click").on("click", function () {
  683. renderColSet(pageSetCopy)
  684. })
  685. $('.setCol').off("hover").hover(function () {
  686. $('.setCol').css('color', '#00A1FF')
  687. }, function () {
  688. $('.setCol').css('color', '#777777')
  689. })
  690. }
  691. //获取科室列表
  692. getDeptList()
  693. function getDeptList(val) {
  694. if (from == 2) {
  695. // rendeDeptList(deptListDept)
  696. // return
  697. }
  698. post(api.getDeptList, { inputStr: val == "全部" ? "" : val || "" }).then(res => {
  699. if (res.data.code == '0') {
  700. const deptList = res.data.data || []
  701. rendeDeptList(deptList)
  702. } else {
  703. rendeDeptList([])
  704. }
  705. }).catch((e) => {
  706. })
  707. }
  708. function rendeDeptList(deptList) {
  709. let str = `<li class="deptItem ellipsis" data-id=" " data-name="全部">全部</li>`;
  710. if (deptList.length == 0) {
  711. $('.deptList').html("")
  712. return
  713. }
  714. if (from == 2) {
  715. // str = ''
  716. }
  717. for (let i = 0; i < deptList.length; i++) {
  718. str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
  719. }
  720. $('.deptList').html(str)
  721. bindDeptSelect()
  722. }
  723. //科室选择
  724. function bindDeptSelect() {
  725. $('.deptItem').on("mousedown", function (e) {
  726. const deptItemName = $(this).attr("data-name")
  727. const deptItemId = $(this).attr("data-id")
  728. deptIdTemp = deptItemId
  729. deptNameTemp = deptItemName === "全部" ? "" : deptItemName;
  730. $('.selectDept').val(deptItemName)
  731. $('.selectDept ').attr('title', deptItemName)
  732. $(".deptList").css("display", "none")
  733. $('.selectDept').removeClass('unSelect')
  734. })
  735. }
  736. $('.selectDept').on("focus", function () {
  737. $(".levelList ").css("display", "none")
  738. $(".selectLevel .arrow").attr("src", iconDown)
  739. $(".fpCheckList ").css("display", "none")
  740. $(".fpSelectCheck .arrow").attr("src", iconDown)
  741. $(".qcCheckList ").css("display", "none")
  742. $(".qcSelectCheck .arrow").attr("src", iconDown)
  743. $(".leaveHosTypeList").css("display", "none")
  744. $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  745. $(".deptList ").css("display", "block")
  746. $(".selectDept .arrow").attr("src", iconUp)
  747. })
  748. $('.selectDept').on("blur", function (e) {
  749. $(".deptList ").css("display", "none")
  750. $(".selectDept .arrow").attr("src", iconDown)
  751. })
  752. $('.selectDept').on("input", function (e) {
  753. let val = $(this).val().trim()
  754. deptName = deptNameTemp = val
  755. getDeptList(deptName)
  756. })
  757. function loading() {
  758. const str = `
  759. <div class="loadingBox">
  760. <div class="mask"></div>
  761. <img class="loadingImg" src=${loadingImg} alt="loading" />
  762. </div>
  763. `
  764. $("#mainBox", parent.document).append(str)
  765. }
  766. function hideLoading() {
  767. $("#mainBox .loadingBox", parent.document).remove()
  768. }
  769. function bindRecordScoreBtn() {
  770. $('.recordScoreBtn').off("click").on("click", function (e) {
  771. scoreSum = 0; // 解决全选评分之后 再单选 toast不隐藏的bug
  772. // if(!hasData('FUNC000017')){
  773. // return
  774. // }
  775. let scoreList = []
  776. for (let i = 0; i < tabList.length; i++) {
  777. if (tabList[i].hasSelect) {
  778. scoreList.push(tabList[i].behospitalCode)
  779. }
  780. }
  781. if (scoreList.length === 0) {
  782. $.alerModal({ "message": '请选择要评分的项!', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  783. return
  784. } else {
  785. loading()
  786. for (let j = 0; j < scoreList.length; j++) {
  787. recordScore(scoreList[j], scoreList.length, true)
  788. }
  789. }
  790. })
  791. }
  792. function bindOrder() {
  793. $("th[code]").off("click").on("click", function (e) {
  794. const code = $(this).attr("code");
  795. if (data_asc[0] === code) {
  796. data_desc = [code];
  797. data_asc = [];
  798. $("th[code]").removeClass("asc desc");
  799. $(this).addClass("desc");
  800. } else {
  801. data_desc = [];
  802. data_asc = [code];
  803. $("th[code]").removeClass("asc desc");
  804. $(this).addClass("asc");
  805. }
  806. getTabData(1);
  807. // console.log(code)
  808. });
  809. }
  810. function recordScore(behospitalCode, totalNum, hasToast) {
  811. const param = {
  812. behospitalCode: behospitalCode
  813. }
  814. post(api.recordScore, param).then(res => {
  815. if (res.data.code == '0') {
  816. scoreSum++
  817. if (scoreSum === totalNum) {
  818. hideLoading()
  819. scoreSum = 0
  820. const activePage = $(".activePage").attr('data-page') || 1
  821. getTabData(activePage)
  822. if (hasToast) {
  823. $.alerModal({ "message": '评分成功', type: "tip", time: '1000', isFather: true, win: true, fatherWrapper: $("#mainBox", parent.document) });
  824. }
  825. }
  826. } else {
  827. scoreSum++
  828. if (scoreSum === totalNum) {
  829. hideLoading()
  830. scoreSum = 0
  831. const activePage = $(".activePage").attr('data-page') || 1
  832. getTabData(activePage)
  833. if (hasToast) {
  834. $.alerModal({ "message": '评分失败,请重试~', type: "tip", time: '1000', win: 'default', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  835. }
  836. }
  837. }
  838. }).catch((e) => {
  839. scoreSum++
  840. if (scoreSum === totalNum) {
  841. hideLoading()
  842. scoreSum = 0
  843. const activePage = $(".activePage").attr('data-page') || 1
  844. getTabData(activePage)
  845. if (hasToast) {
  846. $.alerModal({ "message": '评分失败,请重试~', type: "tip", time: '1000', win: 'default', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  847. }
  848. }
  849. })
  850. }
  851. function renderColSet(list) {
  852. let pageSetList = list || pageSetCopy
  853. let allSelect = true
  854. for (let i = 0; i < pageSetList.length; i++) {
  855. if (pageSetList[i].status != 1) {
  856. allSelect = false
  857. }
  858. }
  859. let str = `<div class='colSetBox'>
  860. <div class='mask'></div>
  861. <div class='cloInfobox'>
  862. <div class='cloInfoTitle'><span class='cloInfoTitleTxt'>列显示设置</span> <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></div>
  863. <div class='cloInfo'></div>
  864. <div class='btnBox'> <span class='defaultColSet'>恢复默认</span><span class='cancalColSet'>取消</span> <span class='saveColSet'>保存设置</span></div>
  865. </div>
  866. </div>`
  867. 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' >`
  868. for (let i = 0; i < pageSetList.length; i++) {
  869. infoStr += `<div class='colTabInfo' data-index=${i}>
  870. <span class='colOpera' data-index=${i}>${pageSetList[i].status == 1 ? `<img class="toggleSelectCol" src=${iconCheck} />` : `<img class="toggleSelectCol" src=${iconUnCheck} />`}</span>
  871. <span class='colName'>
  872. <span>${pageSetList[i].name}</span>
  873. <span class="pageOrder">
  874. <span class="pageSetUpBox">${i === 0 ? '' : `<img class="pageSetUp" src=${goUpG} />`}</span>
  875. <span class="pageSetDownBox">${i === pageSetList.length - 1 ? '' : `<img class="pageSetDown" src=${goDownG} />`}</span>
  876. </span>
  877. </span>
  878. </div>`
  879. }
  880. infoStr += "</div>"
  881. // $(".main-body").append(str)
  882. if (!$("#mainBox .colSetBox", parent.document).length) {
  883. $("#mainBox", parent.document).append(str)
  884. }
  885. $("#mainBox .colSetBox .cloInfo", parent.document).html(infoStr)
  886. $(".colTabInfoBox", parent.document).scrollTop(scrollTop)
  887. scrollTop = 0
  888. bindSelectCol()
  889. bindColOrder()
  890. bindSaveColSet()
  891. bindDefaultColset()
  892. bindCloseColSet()
  893. bindImgEnter()
  894. }
  895. function bindDefaultColset() {
  896. $('.defaultColSet', parent.document).off("hover").hover(function () {
  897. $(this).css('color', '#00A1FF')
  898. }, function () {
  899. $(this).css('color', '#777777')
  900. })
  901. $('.defaultColSet', parent.document).off("click").on('click', function () {
  902. return post(api.getDefaultPageSet, { pageType: 1 }).then(res => {
  903. if (res.data.code == '0') {
  904. pageSet = res.data.data
  905. pageSetCopy = JSON.parse(JSON.stringify(pageSet))
  906. renderColSet(pageSetCopy)
  907. } else { }
  908. }).catch((e) => {
  909. })
  910. // closeColSet()
  911. })
  912. }
  913. function bindImgEnter() {
  914. $(".pageSetUpBox img", parent.document).off("mouseenter").on("mouseenter", function () {
  915. $(this).attr('src', goUpB)
  916. })
  917. $(".pageSetDownBox img", parent.document).off("mouseenter").on("mouseenter", function () {
  918. $(this).attr('src', goDownB)
  919. })
  920. $(".pageSetUpBox img", parent.document).off("mouseout").on("mouseout", function () {
  921. $(this).attr('src', goUpG)
  922. })
  923. $(".pageSetDownBox img", parent.document).off("mouseout").on("mouseout", function () {
  924. $(this).attr('src', goDownG)
  925. })
  926. }
  927. function bindSelectCol() {
  928. $(".toggleSelectCol", parent.document).off("click").on("click", function () {
  929. const index = $(this).parent().attr("data-index")
  930. pageSetCopy[index].status = pageSetCopy[index].status == 1 ? 0 : 1
  931. scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
  932. renderColSet(pageSetCopy)
  933. })
  934. $(".toggleSelectColAll", parent.document).off("click").on("click", function () {
  935. const hasSelectAll = $(this).attr("data-select")
  936. for (let i = 0; i < pageSetCopy.length; i++) {
  937. if (hasSelectAll == "true") {
  938. pageSetCopy[i].status = 0
  939. } else {
  940. pageSetCopy[i].status = 1
  941. }
  942. }
  943. scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
  944. renderColSet(pageSetCopy)
  945. })
  946. }
  947. function closeColSet() {
  948. pageSetCopy = JSON.parse(JSON.stringify(pageSet))
  949. $("#mainBox .colSetBox", parent.document).remove()
  950. }
  951. function bindCloseColSet() {
  952. $(".colSetBox .iconClose", parent.document).off("click").on("click", function () {
  953. closeColSet()
  954. })
  955. $(".colSetBox .cancalColSet", parent.document).off("click").on("click", function () {
  956. closeColSet()
  957. })
  958. }
  959. function bindSaveColSet() {
  960. $(".saveColSet", parent.document).off("click").on("click", function () {
  961. let showNumSet = 0
  962. let sysUserPagesetVOList = []
  963. for (let i = 0; i < pageSetCopy.length; i++) {
  964. const item = pageSetCopy[i]
  965. sysUserPagesetVOList.push({
  966. name: item.name,
  967. orderNo: i,
  968. status: item.status,
  969. val: item.val
  970. })
  971. if (item.status == 1) {
  972. showNumSet++
  973. }
  974. }
  975. if (showNumSet === 0) {
  976. $.alerModal({ "message": '最少显示一列', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  977. return
  978. }
  979. return post(api.saveQcListPageSet, { pageType: 1, sysUserPagesetVOList: sysUserPagesetVOList }).then(res => {
  980. if (res.data.code == '0') {
  981. closeColSet()
  982. getPageSet().then(res => {
  983. $(".filter").click(); //初始查询
  984. })
  985. } else {
  986. $("#mainBox .colSetBox", parent.document).remove()
  987. $.alerModal({ "message": '保存失败,请重试~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  988. }
  989. }).catch((e) => {
  990. $("#mainBox .colSetBox", parent.document).remove()
  991. $.alerModal({ "message": '保存失败,请重试~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  992. })
  993. })
  994. }
  995. function bindColOrder() {
  996. $(".pageSetUp", parent.document).off("click").on("click", function () {
  997. const index = parseInt($(this).parent().parent().parent().parent().attr("data-index"))
  998. if (index != 0) {
  999. const upItem = pageSetCopy[index]
  1000. const upItemPre = pageSetCopy[index - 1]
  1001. pageSetCopy.splice(index - 1, 2, upItem, upItemPre)
  1002. scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
  1003. renderColSet(pageSetCopy)
  1004. } else {
  1005. return
  1006. }
  1007. })
  1008. $(".pageSetDown", parent.document).off("click").on("click", function () {
  1009. const index = parseInt($(this).parent().parent().parent().parent().attr("data-index"))
  1010. if (index == pageSetCopy.length - 1) {
  1011. return
  1012. } else {
  1013. const downItem = pageSetCopy[index]
  1014. const downItemBack = pageSetCopy[index + 1]
  1015. pageSetCopy.splice(index, 2, downItemBack, downItem)
  1016. scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
  1017. renderColSet(pageSetCopy)
  1018. }
  1019. })
  1020. }
  1021. $(".patientNumInp").on("input", function (e) {
  1022. const val = $(this).val().trim();
  1023. let beCode = behospitalCode;
  1024. const patrn = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/g;
  1025. beCode = val.replace(patrn, function (x) {
  1026. return "\\" + x;
  1027. });
  1028. behospitalCodeTemp = beCode
  1029. });
  1030. $(".patientNameInp").on("input", function (e) {
  1031. const val = $(this).val().trim()
  1032. nameTemp = val
  1033. })
  1034. $(".doctorInp").on("input", function (e) {
  1035. const val = $(this).val().trim()
  1036. doctorNameTemp = val
  1037. })
  1038. $(".fpCheckPeople").on("input", function (e) {
  1039. const val = $(this).val().trim()
  1040. fpCheckNameTemp = val
  1041. })
  1042. $(".qcCheckPeople").on("input", function (e) {
  1043. const val = $(this).val().trim()
  1044. qcCheckNameTemp = val
  1045. })
  1046. $(".qcCheckMain").on("input", function (e) {
  1047. const val = $(this).val().trim()
  1048. qcCheckMainTemp = val
  1049. })
  1050. $(".doctorNumInp").on("input", function (e) {
  1051. const val = $(this).val().trim();
  1052. doctorNumTemp = val
  1053. })
  1054. $(function () {
  1055. $.datepicker.regional['zh-CN'] = {
  1056. clearText: '清除',
  1057. clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
  1058. closeText: '关闭',
  1059. closeStatus: '不改变当前选择',
  1060. prevText: '<上月',
  1061. prevStatus: '显示上月',
  1062. prevBigText: '<<',
  1063. prevBigStatus: '显示上一年',
  1064. nextText: '下月>',
  1065. nextStatus: '显示下月',
  1066. nextBigText: '>>',
  1067. nextBigStatus: '显示下一年',
  1068. currentText: '今天',
  1069. currentStatus: '显示本月',
  1070. monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  1071. monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  1072. yearNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  1073. monthStatus: '选择月份',
  1074. yearStatus: '选择年份',
  1075. weekHeader: '周',
  1076. weekStatus: '年内周次',
  1077. dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
  1078. dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
  1079. dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
  1080. dayStatus: '设置 DD 为一周起始',
  1081. dateStatus: '选择 m月 d日, DD',
  1082. dateFormat: 'yy-mm-dd',
  1083. firstDay: 1,
  1084. initStatus: '请选择日期',
  1085. isRTL: false
  1086. };
  1087. $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
  1088. let startDate = "", endDate = new Date()
  1089. let year = new Date().getFullYear()
  1090. let month = new Date().getMonth() + 1
  1091. if (statisticsType == '1') {
  1092. startDate = new Date(`${year}-${month}-01`)
  1093. } else if (statisticsType == '2') {
  1094. startDate = new Date(`${year}-01-01`)
  1095. } else if (statisticsType == '3') {
  1096. startDate = new Date(startDateParam)
  1097. endDate = new Date(endDateParam)
  1098. } else {
  1099. startDate = "-6d"
  1100. }
  1101. $("#datepicker").datepicker({
  1102. changeMonth: true,
  1103. changeYear: true,
  1104. dateFormat: "yy/mm/dd",
  1105. }).datepicker("setDate", startDate);
  1106. $("#datepicker2").datepicker({
  1107. changeMonth: true,
  1108. changeYear: true,
  1109. dateFormat: "yy/mm/dd"
  1110. }).datepicker("setDate", endDate);
  1111. $("#datepickerFp1").datepicker({
  1112. changeMonth: true,
  1113. changeYear: true,
  1114. dateFormat: "yy/mm/dd"
  1115. }).datepicker("setDate", "");
  1116. $("#datepickerFp2").datepicker({
  1117. changeMonth: true,
  1118. changeYear: true,
  1119. dateFormat: "yy/mm/dd"
  1120. }).datepicker("setDate", "");
  1121. $("#datepickerQc1").datepicker({
  1122. changeMonth: true,
  1123. changeYear: true,
  1124. dateFormat: "yy/mm/dd"
  1125. }).datepicker("setDate", "");
  1126. $("#datepickerQc2").datepicker({
  1127. changeMonth: true,
  1128. changeYear: true,
  1129. dateFormat: "yy/mm/dd"
  1130. }).datepicker("setDate", "");
  1131. getPageSet().then(res => {
  1132. $(".filter").click(); //初始查询
  1133. })
  1134. });
  1135. //分页渲染
  1136. function renderPagination(totalPage, activePage, totalNum) {
  1137. let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
  1138. if (totalPage <= 6) {
  1139. for (let i = 1; i <= totalPage; i++) {
  1140. str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
  1141. }
  1142. } else {
  1143. if (activePage <= 3) { //选中页数小于4
  1144. for (let i = 1; i <= 4; i++) {
  1145. str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
  1146. }
  1147. str += `<span class="more" >...</span>`
  1148. str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
  1149. } else if (activePage > totalPage - 3) {
  1150. str += `<span class="pageNum page1" data-page=1>1</span>`
  1151. str += `<span class="more" >...</span>`
  1152. str += `<span class="pageNum ${'page' + (totalPage - 3)}" data-page=${totalPage - 3}>${totalPage - 3}</span>`
  1153. str += `<span class="pageNum ${'page' + (totalPage - 2)}" data-page=${totalPage - 2}>${totalPage - 2}</span>`
  1154. str += `<span class="pageNum ${'page' + (totalPage - 1)}" data-page=${totalPage - 1}>${totalPage - 1}</span>`
  1155. str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
  1156. } else {
  1157. str += `<span class="pageNum page1" data-page=1>1</span>`
  1158. str += `<span class="more" >...</span>`
  1159. str += `<span class="pageNum ${'page' + (activePage - 1)}" data-page=${activePage - 1}>${activePage - 1}</span>`
  1160. str += `<span class="pageNum ${'page' + activePage}" data-page=${activePage}>${activePage}</span>`
  1161. str += `<span class="pageNum ${'page' + (activePage + 1)}" data-page=${activePage + 1}>${activePage + 1}</span>`
  1162. str += `<span class="more" >...</span>`
  1163. str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
  1164. }
  1165. }
  1166. str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
  1167. $('.pagination').html(str)
  1168. $('.page' + activePage).addClass('activePage')
  1169. $(".pageNum").on("click", function (e) {
  1170. const activePageNow = Number($(this).attr('data-page'))
  1171. getTabData(activePageNow)
  1172. // renderPagination(totalPage,activePageNow,totalNum)
  1173. })
  1174. $(".prePage").on("click", function (e) {
  1175. let activePageNow = Number($(".activePage").attr('data-page'))
  1176. if (activePageNow > 1) {
  1177. activePageNow--
  1178. getTabData(activePageNow)
  1179. // renderPagination(totalPage,activePageNow,totalNum)
  1180. }
  1181. })
  1182. $(".nextPage").on("click", function (e) {
  1183. let activePageNow = Number($(".activePage").attr('data-page'))
  1184. if (activePageNow < totalPage) {
  1185. activePageNow++
  1186. getTabData(activePageNow)
  1187. // renderPagination(totalPage,activePageNow,totalNum)
  1188. }
  1189. })
  1190. }
  1191. $(document).on("click", function () {
  1192. $(".levelList ").css("display", "none")
  1193. // $(".deptList").css("display", "none")
  1194. $(".leaveHosTypeList").css("display", "none")
  1195. $(".fpCheckList").css("display", "none")
  1196. $(".qcCheckList").css("display", "none")
  1197. $(".selectDept .arrow").attr("src", iconDown)
  1198. $(".selectLevel .arrow").attr("src", iconDown)
  1199. $(".selectLeaveHosType .arrow").attr("src", iconDown)
  1200. $(".fpSelectCheck .arrow").attr("src", iconDown)
  1201. $(".qcSelectCheck .arrow").attr("src", iconDown)
  1202. })
  1203. let radioCheck = 1;
  1204. $(function ($) {
  1205. $('.export').click(function () {
  1206. const start = new Date(behosDateStart).getTime()
  1207. const end = new Date(behosDateEnd).getTime()
  1208. if (start > end) {
  1209. $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  1210. return
  1211. }
  1212. const param = {
  1213. behospitalCode: behospitalCode,
  1214. patName: name, //病人姓名
  1215. level: level,//病历等级
  1216. behDeptName: deptName == "全部" ? "" : deptName || "",
  1217. deptName: deptName == "全部" ? "" : deptName || "",
  1218. ascs: data_asc, //升序
  1219. descs: data_desc, //降序
  1220. startDate: behosDateStart.replace(/\//g, '-'), //出院日期--开始时间
  1221. endDate: behosDateEnd.replace(/\//g, '-'), //出院日期--结束时间
  1222. doctorName: doctorName,
  1223. isPlacefile: isPlacefile,
  1224. doctorId: doctorNum,
  1225. checkStatus: qcCheckStatus ? Number(qcCheckStatus) : qcCheckStatus, //病历核查状态
  1226. mrStatus: fpCheckStatus ? Number(fpCheckStatus) : fpCheckStatus, //首页核查状态(1:已核查,0:未核查)
  1227. chName: qcCheckName, //病历核查人员
  1228. diagnose: qcCheckMain,
  1229. mrName: fpCheckName, //首页核查人员
  1230. chTimeStart: qcCheckDateStart.replace(/\//g, '-'), //病历核查起始时间
  1231. chTimeEnd: qcCheckDateEnd.replace(/\//g, '-'), //病历核查截止时间
  1232. mrTimeStart: fpCheckDateStart.replace(/\//g, '-'), //首页核查起始时间
  1233. mrTimeEnd: fpCheckDateEnd.replace(/\//g, '-'), //首页核查截止时间
  1234. leaveHosType: leaveHosType == "全部" ? "" : leaveHosType, //出院人数类型
  1235. }
  1236. $.alerModal({ type: "radio", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  1237. closeRadio()
  1238. radioSelect()
  1239. bindSaveColPort(param)
  1240. })
  1241. });
  1242. function closeRadio() {
  1243. $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document).off("click").on("click", function () {
  1244. $(".divModal", parent.document).remove()
  1245. })
  1246. }
  1247. function radioSelect() {
  1248. $(".selectDate", parent.document).click(function () {
  1249. $(this).find("input").prop("checked", true)
  1250. $(this).siblings().find("input").prop("checked", false)
  1251. })
  1252. }
  1253. function bindSaveColPort(param) {
  1254. $(".savePort", parent.document).off("click").on("click", function () {
  1255. radioCheck = $(".selectDate input[type='radio']:checked", parent.document).attr("data-select")
  1256. let time = radioCheck == 2 ? exportTimeLimit.defectTime : exportTimeLimit.normalTime
  1257. if ((new Date(behosDateEnd) - new Date(behosDateStart)) / 24 / 60 / 60 / 1000 > time) {
  1258. $.alerModal({ "message": `最多只能导出${time}天`, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  1259. return
  1260. }
  1261. param.radioCheck = radioCheck || 1
  1262. expJson(api.leaveHosMrPageExport, param).then(res => {
  1263. $(".divModal", parent.document).remove()
  1264. downloadExportedData(res.data, $(".partTitle").text() + ".xls")
  1265. })
  1266. })
  1267. }