qcList.js 46 KB

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