qcList.js 48 KB

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