qcListDocteam.js 39 KB

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