utils.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526
  1. const qs = require('qs');
  2. const $ = require("jquery");
  3. const axios = require("axios")
  4. var Utils = require('./rePromise');
  5. require('./scrollBar.js');
  6. const baseUrl = "http://192.168.2.236:5858"
  7. //页面映射
  8. const pageMap={
  9. 'YH-KZT':'console.html',
  10. 'YH-KZTKS':'deptConsole.html',
  11. 'YH-JCSJWH-MKSJWH':'moduleManager.html',
  12. 'YH-JCSJWH-TMSJWH':'itemManager.html',
  13. 'YH-BLZK-ZKPF':'qcList.html',
  14. 'YH-BLZK-ZKPFKS':'qcListDept.html',
  15. 'YH-BLZK-ZKPFGR':'qcListPerson.html',
  16. 'YH-TJFX':'statistics.html',
  17. 'YH-QXGL-YHGL':'userManager.html',
  18. 'YH-QXGL-JSGL':'roleManager.html',
  19. 'YH-KSZR-GMKQXZB_XQ':'mukuai.html?from=2',
  20. 'YH-KSZR-TMQXZB_XQ':'singleVeto.html?from=2&special=1',
  21. 'YH-ZKK-GMKQXZB_XQ':'mukuaiControl.html?from=1',
  22. 'YH-ZKK-TMQXZB_XQ':'singleVeto.html?from=1&special=1',
  23. 'YH-YCSJJK':'abnormal.html',
  24. 'YH-ZKK-KSPJZYTS_XQ':'dayDetail.html',
  25. 'YH-ZKK-KSPJZYHF_XQ':'payDetail.html',
  26. 'YH-ZKK-GKSQXZB':'deptScoreDetailControl.html',
  27. "YH-ZKK-GKSZKPJF_XQ":'deptScoreDetailControl.html',
  28. 'YH-JCSJWH':'deptScoreDetailControl.html',
  29. 'YH-ZKK-GKSQXZB_XQ':'deptScoreDetailControl.html',
  30. 'YH-KSZR-KSQXZB_XQ':'deptScoreDetailControlDept.html?from=2',
  31. 'YH-ZKK-GKSJJBLZB_XQ':'jiaji.html',
  32. "YH-ZKK-BASYHGLZB_XQ":'partDetailControl.html',
  33. "YH-KSZR-BASYHGLZB_XQ":'partDetailControlDept.html',
  34. "YH-ZKK-ZKHCTJ":'checkControl.html',
  35. "YH-JCSJWH-ZKLXWH":'assertType.html',
  36. 'YH-BLZK-ZKPFYLZ':'qcListDocteam.html',
  37. 'YH-ZKK-GJTMQXZB':'keyItemFlawControl.html',
  38. 'YH-ZKK-CYRSTJ':'qcListOutHospital.html',
  39. 'YH-ZKK-RYRSTJ':'qcListOutHospital.html?inner=2',
  40. 'YH-ZKK-WZGBLTJ': 'uncorrectedCasesStatistics.html',
  41. 'YH-ZKK-31TZRYRS': 'readmission.html',
  42. 'YH-ZKK-YXBLJCB': 'uncorrectedCopy.html',
  43. 'YH-KSZR-GJTMQXZB_XQ': 'keyItemFlawControlDept.html',
  44. };
  45. //导出时间天数
  46. const exportTimeLimit = {
  47. defectTime: 90,
  48. normalTime: 7
  49. }
  50. //重写assign方法
  51. if (typeof Object.assign != 'function') {
  52. Object.assign = function (target) {
  53. 'use strict';
  54. if (target == null) {
  55. throw new TypeError('Cannot convert undefined or null to object');
  56. }
  57. target = Object(target);
  58. for (var index = 1; index < arguments.length; index++) {
  59. var source = arguments[index];
  60. if (source != null) {
  61. for (var key in source) {
  62. if (Object.prototype.hasOwnProperty.call(source, key)) {
  63. target[key] = source[key];
  64. }
  65. }
  66. }
  67. }
  68. return target;
  69. };
  70. }
  71. window.console = window.console || (function () {
  72. var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile
  73. = c.clear = c.exception = c.trace = c.assert = function () { };
  74. return c;
  75. })();
  76. const getUrlArgObject = function getQueryString(name) {
  77. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  78. var reg_rewrite = new RegExp("(^|/)" + name + "/([^/]*)(/|$)", "i");
  79. var r = window.location.search.substr(1).match(reg);
  80. var q = window.location.pathname.substr(1).match(reg_rewrite);
  81. if (r != null) {
  82. return decodeURIComponent(r[2]);
  83. } else if (q != null) {
  84. return decodeURIComponent(q[2]);
  85. } else {
  86. return null;
  87. }
  88. }
  89. const getUrlArgObjectNew = function(name,srcUrl) {
  90. if(srcUrl.indexOf("?") == -1){
  91. return ""
  92. }
  93. var r = srcUrl.split("?")[1].split("&"),obj={};
  94. for(let i = 0;i < r.length;i++){
  95. let tmp = r[i].split("=")
  96. obj[tmp[0]] = tmp[1]
  97. }
  98. return obj[name]
  99. }
  100. window.abortAjax = ''
  101. const post = function (url, data) {
  102. let isPlacefile = getCookie('isPlacefile')||1
  103. const token = getCookie('accessToken') || localStorage.getItem('accessToken')
  104. if(!token&&window.location.href.indexOf('login')==-1){
  105. setCookie('behosDateStart','')
  106. setCookie('behosDateEnd','')
  107. window.location.href = "../login.html"
  108. }
  109. for(let i = 0;i<$('.typeFilter').children().length;i++){
  110. if($('.typeFilter').children().eq(i).html() == '出院日期:' && isPlacefile==0){
  111. $('.typeFilter').children().eq(i).html('入院日期:')
  112. }
  113. }
  114. let need = window.location.href.indexOf('localhost')!=-1
  115. return new Utils((resolve, reject) => {
  116. abortAjax = $.ajax({
  117. method: 'post',
  118. url: (need?baseUrl:'')+url,
  119. async:true,
  120. cache: false,
  121. contentType: false,
  122. processData: false,
  123. data: JSON.stringify(Object.assign({},data,{"isPlacefile":isPlacefile})),
  124. contentType: "application/json; charset=UTF-8",
  125. beforeSend: function (xmlHttp) {
  126. xmlHttp.setRequestHeader("If-Modified-Since", "0");
  127. xmlHttp.setRequestHeader("Cache-Control", "no-cache");
  128. xmlHttp.setRequestHeader("Authorization",token?"Bearer "+token:'')
  129. },
  130. success: function (res) {
  131. resolve({ data: res });
  132. },
  133. error: function (error) {
  134. const wd = window.parent.window||window;
  135. if(error.status===403||error.status===401){
  136. setCookie('behosDateStart','')
  137. setCookie('behosDateEnd','')
  138. // wd.location.href = "../login.html";
  139. }else if(error.status===500||error.status===501||error.status===404){
  140. wd.location.href = "../error.html?code="+error.status;
  141. }
  142. reject(error);
  143. },
  144. });
  145. });
  146. }
  147. // 导出
  148. // const expJson = (url,data) =>{
  149. // const token = getCookie('accessToken')
  150. // if(!token&&window.location.href.indexOf('login')==-1){
  151. // window.location.href = "../login.html"
  152. // }
  153. // let need = window.location.href.indexOf('localhost')!=-1
  154. // console.log('bbbbbbbb',url)
  155. // return new Utils((resolve, reject) => {
  156. // $.ajax({
  157. // method: 'post',
  158. // // url: (need?baseUrl:'')+url,
  159. // url: url,
  160. // async:true,
  161. // cache: false,
  162. // contentType: false,
  163. // processData: false,
  164. // data: JSON.stringify(data),
  165. // contentType: "application/json; charset=UTF-8",
  166. // // contentType: "application/vnd.ms-excel;charset=UTF-8",
  167. // responseType: 'blob', //必须添加,否则会乱码
  168. // beforeSend: function (xmlHttp) {
  169. // xmlHttp.setRequestHeader("If-Modified-Since", "0");
  170. // xmlHttp.setRequestHeader("Cache-Control", "no-cache");
  171. // // xmlHttp.setRequestHeader("Authorization",token?"Bearer "+token:'')
  172. // xmlHttp.setRequestHeader("Authorization",'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjo4OCwidXNlcl9uYW1lIjoidDYiLCJzY29wZSI6WyJzZXJ2aWNlIl0sImV4cCI6MTU5MTQyNDk0MSwiYXV0aG9yaXRpZXMiOlsiL21vZHVsZUluZm8vZ2V0TW9kdWxlVHlwZTtBTEwiLCIvZGlhZ25vc2UvZ2V0RGV0YWlsO0FMTCIsIi9yZXRyaWV2YWwvZ2V0UmV0cmlldmFsc0J5VGFnO0FMTCIsIi9wYWNzU29uQ29udGFjdC9wYWNzU29uQ29udGFjdExpc3Q7QUxMIiwiL3F1ZXN0aW9uSW5mby9pbmRleDtBTEwiLCIvZGVwdFZpdGFsL2dldERlcHRTaG9ydExpc3RfY3JlYXRlO0FMTCIsIi9tb2R1bGVJbmZvX3ByZWMvZ2V0TW9kdWxlRGV0YWlsSW5mbztBTEwiLCIvbW9kdWxlSW5mby9nZXRNb2R1bGVEZXRhaWxJbmZvO0FMTCIsIi9jb25jZXB0RGV0YWlsLy9wYWdlO0FMTCIsIi9kaWFnbm9zZVF1ZXN0aW9uL3F1ZXJ5UXVlc3Rpb25QYWdlO0FMTCIsIi9pbmRleENvbmZpZy9nZXRJbmRleENvbmZpZ0xpc3RzO0FMTCIsIi9yZWxhdGlvbkNvbnRhY3QvcmVsYXRpb25Db250YWN0TGlzdDtBTEwiLCIvbXVsdENvbnRhY3QvbXVsdENvbnRhY3RMaXN0O0FMTCIsIi9yZXRyaWV2YWwvcmV0cmlldmFsTGlzdDtBTEwiLCIvcmVsYXRpb25Db250YWN0L3JlbGF0aW9uQ29udGFjdERldGFpbDtBTEwiLCIvZGlhZ25vc2UvdmVyaWZ5RGF0YTtBTEwiLCIvbGlzTWFwcGluZy9kZWxMaXNNYXBwaW5nQnlJZDtBTEwiLCIvY29uY2VwdERldGFpbC9pbnNlcnRPclVwZGF0ZTtBTEwiLCIvcmV0cmlldmFsL2FkZFRhZ1JldHJpZXZhbDtBTEwiLCIvbW9kdWxlSW5mb19wcmVjL2dldE1vZHVsZUluZm9MaXN0O0FMTCIsIi9yZXRyaWV2YWwvZGVsUmV0cmlldmFsc0J5UXVlc0lkO0FMTCIsIi92ZXJzaW9uRGV0YWlsL2FkZFZlcnNpb25EZXRhaWxzO0FMTCIsIi9xdWVzdGlvbkluZm8vaW5kZXhSZXY7QUxMIiwiL21vZHVsZUluZm9fcHJlYy9nZXRRdWVzdGlvbmdBbmRNb2R1bGVSZWxhdGlvbnM7QUxMIiwiL3F1ZXN0aW9uSW5mby9nZXRTcGVjaWFsO0FMTCIsIi9xdWVzdGlvbkluZm9fcHJlYy9pbmRleDtBTEwiLCIvbWVkaWNhbC9tZWRpY2FsSW5mb0V4Y2VsSW07QUxMIiwiL3ZlcnNpb25JbmZvL3NhdmVWZXJzaW9uSW5mb0FsbHM7QUxMIiwiL2xleGljb24vZ2V0TGV4aWNvbkxpc3Q7QUxMIiwiL2Rpc2NsYWltZXJJbmZvcm1hdGlvbi9hZGREaXNjbGFpbWVySW5mb3JtYXRpb25zO0FMTCIsIi92ZXJzaW9uRGV0YWlsL3VwZGF0ZVZlcnNpb25EZXRhaWxzO0FMTCIsIi9tb2R1bGVJbmZvL2RlbGV0ZTtBTEwiLCIvcmVsYXRpb24vZ2V0UmVsYXRpb25JbmZvTGlzdDtBTEwiLCIvZGlhZ25vc2UvZXhwb3J0RGlhZ25vc3RpY0FsbDtBTEwiLCIvY29uY2VwdC9jb25jZXB0SW5mb0V4Y2VsSW07QUxMIiwiL21ycWNUb2tlbi9zYXZlT3JVcGRhdGU7QUxMIiwiL21vZHVsZUluZm8vZ2V0TW9kdWxlSW5mb09uZTtBTEwiLCIvZGlhZ25vc2UvdXBkYXRlTmVvO0FMTCIsIi9ldmFsdWF0aW9uL3F1ZXJ5RXZhbHVhdGlvbkRpc2Vhc2VOYW1lcztBTEwiLCIvcXVlc3Rpb25JbmZvL3NhdmVPclVwZGF0ZTtBTEwiLCIvdmVyc2lvbkluZm8vdXBkYXRlVmVyc2lvbkluZm9BbGxzO0FMTCIsIi9saXNTb25Db250YWN0L2FkZFJlbGF0aW9uO0FMTCIsIi9saXNNYXBwaW5nL3NhdmVMaXNNYXBwaW5nO0FMTCIsIi9kZXB0Vml0YWwvZGVsQWxsRGVwdFZpdGFsTGlzdDtBTEwiLCIvZGlhZ25vc2UvcGFnZTtBTEwiLCIvbW9kdWxlSW5mby91cGRhdGVNb2R1bGVJbmZvO0FMTCIsIi9tb2R1bGVJbmZvL2dldE1vZHVsZUluZm9MaXN0O0FMTCIsIi9saXNNYXBwaW5nL2hhc0xpc01hcHBpbmc7QUxMIiwiL3F1ZXN0aW9uSW5mby9kZWxldGU7QUxMIiwiL2RpYWdub3NlL3NlYXJjaDtBTEwiLCIvZGVwdFZpdGFsL2dldERlcHRWaXRhbFBhZ2U7QUxMIiwiL21vZHVsZUluZm9fcHJlYy9zYXZlT3JVcGRhdGVNb2R1bGVJbmZvO0FMTCIsIi9xdWVzdGlvbkluZm8vbGlzdDtBTEwiLCIvaW5kZXhDb25maWcvcXVlcnlJbmRleENvbmZpZ0Rpc2Vhc2VOYW1lcztBTEwiLCIvbW9kdWxlSW5mby9nZXRRdWVzdGlvbmdBbmRNb2R1bGVSZWxhdGlvbnM7QUxMIiwiL3BhY3NNdWx0Q29udGFjdC9yZW1vdmVSZWxhdGlvbkNvbnRhY3Q7QUxMIiwiL2RpYWdub3NlL2RlbGV0ZTtBTEwiLCIvZGlhZ25vc2UvdmVyaWZ5QWxsRGF0YTtBTEwiLCIvaW5kZXhDb25maWcvc2F2ZUluZGV4Q29uZmlnTGlzdHM7QUxMIiwiL2V2YWx1YXRpb24vcXVlcnlFdmFsdWF0aW9uTW9kdWxlUGFnZXM7QUxMIiwiL3NjYWxlQ29udGVudC9pbmRleDtBTEwiLCIvcXVlc3Rpb25JbmZvL2luZGV4U3ViO0FMTCIsIi9saXNTb25Db250YWN0L3JlbW92ZVJlbGF0aW9uQ29udGFjdDtBTEwiLCIvcXVlc3Rpb25JbmZvL2dldEJ5SWRzO0FMTCIsIi9kZXB0Vml0YWwvc2F2ZURlcHRWaXRhbHM7QUxMIiwiL21ycWNUb2tlbi9kZWxldGU7QUxMIiwiL2xleGljb25SZWxhdGlvbnNoaXAvZ2V0QWxsTGV4aWNvblJlbGF0aW9uc2hpcDtBTEwiLCIvcXVlc3Rpb25JbmZvX3ByZWMvc2F2ZU9yVXBkYXRlO0FMTCIsIi9wYWNzU29uQ29udGFjdC9yZW1vdmVSZWxhdGlvblBhY3M7QUxMIiwiL2RlcHRWaXRhbC9nZXRNb2R1bGVCeURlcHRJZDtBTEwiLCIvZXZhbHVhdGlvbi9jYW5jZWxFdmFsdWF0aW9uTW9kdWxlQWxscztBTEwiLCIvZGlhZ25vc2UvaW5kZXg7QUxMIiwiL2xpc01hcHBpbmcvZ2V0TGlzTWFwcGluZ1BhZ2U7QUxMIiwiL21vZHVsZUluZm8vc2F2ZU1vZHVsZUluZm87QUxMIiwiL3JlbGF0aW9uL2FkZFJlbGF0aW9uSW5mbztBTEwiLCIvc2ltaWxhci9nZXRTaW1pbGFyTGlzdDtBTEwiLCIvc2NhbGVDb250ZW50L2dldEJ5Q29uY2VwdElkO0FMTCIsIi9wYWNzTXVsdENvbnRhY3QvbXVsdENvbnRhY3RMaXN0O0FMTCIsIi91c2VyL2dldFVzZXJPcmdNZW51O0FMTCIsIi9jb25jZXB0L2dldEFsbEluZm9ybWF0aW9uO0FMTCIsIi9jb25jZXB0RGV0YWlsL2luZGV4O0FMTCIsIi9kaWFnbm9zZS90ZW1wU2F2ZU9yVXBhdGU7QUxMIiwiL3BhY3NTb25Db250YWN0L2FkZFBhY3NSZWxhdGlvbjtBTEwiLCIvZGlhZ25vc2UvZXhwb3J0RGlhZ25vc3RpY0Jhc2lzO0FMTCIsIi9tb2R1bGVJbmZvL2dldE1vZHVsZUluZm87QUxMIiwiL2NvbmNlcHQvcmVtb3ZlQ29uY2VwdEluZm87QUxMIiwiL2xpc1NvbkNvbnRhY3QvbGlzU29uQ29udGFjdExpc3Q7QUxMIiwiL21vZHVsZUluZm9fcHJlYy9nZXRNb2R1bGVUeXBlO0FMTCIsIi9wYWNzU29uQ29udGFjdC9nZXRQYWNzQ29udGFjdERldGFpbDtBTEwiLCIvbXJxY1Rva2VuL2dldEJ5SWQ7QUxMIiwiL2xleGljb24vZ2V0QWxsTGV4aWNvbjtBTEwiLCIvdmVyc2lvbkluZm8vY2FuY2VsVmVyc2lvbkluZm9BbGxzO0FMTCIsIi9tb2R1bGVJbmZvL2dldEFsbERlcHRBbmREaXNJbmZvO0FMTCIsIi9tZWRpY2FsL3JlbW92ZU1lZGljYWxJbmZvO0FMTCIsIi9tdWx0Q29udGFjdC9yZWxhdGlvbkNvbnRhY3REZXRhaWw7QUxMIiwiL2luZGV4Q29uZmlnL3VwZGF0ZUluZGV4Q29uZmlnTGlzdDtBTEwiLCIvY29uY2VwdERldGFpbC9nZXRCeUNvbmNlcHRJZDtBTEwiLCIvcXVlc3Rpb25JbmZvX3ByZWMvZ2V0QnlJZHM7QUxMIiwiL21vZHVsZUluZm9fcHJlYy9nZXRBbGxEZXB0QW5kRGlzSW5mbztBTEwiLCIvcmV0cmlldmFsL3JldHJpZXZhbEV4Y2VsSW07QUxMIiwiL3ZlcnNpb25EZXRhaWwvY2FuY2VsVmVyc2lvbkRldGFpbHM7QUxMIiwiL2luZGV4Q29uZmlnL2NhbmNlbEluZGV4Q29uZmlnQWxscztBTEwiLCIvbWVkaWNhbC9nZXRNZWRpY2FsSW5mb0xpc3Q7QUxMIiwiL3JlbGF0aW9uL3JlbW92ZVJlbGF0aW9uSW5mbztBTEwiLCIvY29uY2VwdERldGFpbC9kZWxldGU7QUxMIiwiL3JlbGF0aW9uL3JlbGF0aW9uSW5mb0V4Y2VsSW07QUxMIiwiL21vZHVsZUluZm8vZ2V0UXVlc3Rpb25JbmZvcztBTEwiLCIvc2NhbGVDb250ZW50L3BhZ2U7QUxMIiwiL2V2YWx1YXRpb24vc2F2ZUV2YWx1YXRpb25Nb2R1bGVMaXN0cztBTEwiLCIvbW9kdWxlSW5mb19wcmVjL2RlbGV0ZTtBTEwiLCIvbWVkaWNhbC9nZXRBbGxEZXB0cztBTEwiLCIvcXVlc3Rpb25JbmZvX3ByZWMvZGVsZXRlO0FMTCIsIi9jb25jZXB0L2dldENvbmNlcHRJbmZvRGV0YWlsO0FMTCIsIi9tcnFjVG9rZW4vbGlzdDtBTEwiLCIvbXVsdENvbnRhY3QvcmVtb3ZlUmVsYXRpb25Db250YWN0O0FMTCIsIi9kZXB0Vml0YWwvZ2V0RGVwdFNob3J0TGlzdF9TZWFyaDtBTEwiLCIvbXVsdENvbnRhY3QvYWRkUmVsYXRpb247QUxMIiwiL2Rpc2NsYWltZXJJbmZvcm1hdGlvbi91cGRhdGVEaXNjbGFpbWVySW5mb3JtYXRpb25zO0FMTCIsIi9tZWRpY2FsL2FkZE1lZGljYWxJbmZvO0FMTCIsIi9jb25jZXB0L2dldEFsbENvbmNlcHQ7QUxMIiwiL2JvZHlwYXJ0L2dldEFsbEJvZHlwYXJ0O0FMTCIsIi9yZWxhdGlvbkNvbnRhY3QvcmVtb3ZlUmVsYXRpb25Db250YWN0O0FMTCIsIi9kaXNjbGFpbWVySW5mb3JtYXRpb24vZW5kRGlzY2xhaW1lckluZm9ybWF0aW9ucztBTEwiLCIvY29uY2VwdC9hZGRDb25jZXB0SW5mbztBTEwiLCIvbGV4aWNvbi9hZGRMZXhpY29uO0FMTCIsIi9kZXB0Vml0YWwvZ2V0RGVwdFNob3J0TGlzdF9tb2RpZnk7QUxMIiwiL3ZlcnNpb25JbmZvL2dldFZlcnNpb25JbmZvQWxscztBTEwiLCIvcXVlc3Rpb25JbmZvX3ByZWMvZ2V0QnlJZDtBTEwiLCIvc2NhbGVDb250ZW50L2RlbGV0ZTtBTEwiLCIvcmVsYXRpb25Db250YWN0L2FkZFJlbGF0aW9uO0FMTCIsIi9xdWVzdGlvbkluZm9fcHJlYy9wYWdlO0FMTCIsIi9saXNNYXBwaW5nL2dldFVuaXF1ZU5hbWU7QUxMIiwiL2Rpc2NsYWltZXJJbmZvcm1hdGlvbi9nZXREaXNjbGFpbWVySW5mb3JtYXRpb25zO0FMTCIsIi9kaXNjbGFpbWVySW5mb3JtYXRpb24vc3RhcnREaXNjbGFpbWVySW5mb3JtYXRpb25zO0FMTCIsIi9yZWxhdGlvbi9nZXRSZWxhdGlvbkluZm9EZXRhaWw7QUxMIiwiL3F1ZXN0aW9uSW5mb19wcmVjL2dldEJ5U3ViUXVlc3Rpb25JZDtBTEwiLCIvcXVlc3Rpb25JbmZvL2dldEJ5SWQ7QUxMIiwiL21vZHVsZUluZm9fcHJlYy9nZXRNb2R1bGVJbmZvT25lO0FMTCIsIi9kaXNjbGFpbWVySW5mb3JtYXRpb24vY2FuY2VsRGlzY2xhaW1lckluZm9ybWF0aW9ucztBTEwiLCIvY29uY2VwdC9nZXRBbGxGb3JSZWxhdGlvbjtBTEwiLCIvcGFjc011bHRDb250YWN0L3JlbGF0aW9uQ29udGFjdERldGFpbDtBTEwiLCIvc2NhbGVDb250ZW50L2luc2VydE9yVXBkYXRlO0FMTCIsIi9ldmFsdWF0aW9uL3VwZGF0ZUV2YWx1YXRpb25Nb2R1bGVMaXN0cztBTEwiLCIvbWVkaWNhbC9nZXRNZWRpY2FsSW5mb0RldGFpbDtBTEwiLCIvcGFjc011bHRDb250YWN0L2FkZFJlbGF0aW9uO0FMTCIsIi9zdGF0aXN0aWNzL2NvdW50O0FMTCIsIi92ZXJzaW9uRGV0YWlsL2dldERldGFpbEJ5SWQ7QUxMIiwiL2V2YWx1YXRpb24vZ2V0RXZhbHVhdGlvbk1vZHVsZUxpc3RzO0FMTCIsIi9tcnFjVG9rZW4vYW5hbHlzaXM7QUxMIiwiL2NvbmNlcHQvZ2V0QWxsTGlzQ29uY2VwdDtBTEwiLCIvaW5kZXhDb25maWcvcXVlcnlJbmRleENvbmZpZ1BhZ2VzO0FMTCIsIi9saXNTb25Db250YWN0L3JlbGF0aW9uQ29udGFjdERldGFpbDtBTEwiXSwianRpIjoiNGY1ODYzMmItMGIyNC00NTBjLTkyMzYtNjIxYWE5ZGVjN2YzIiwiY2xpZW50X2lkIjoidWFhLXNlcnZpY2UifQ.vVhXSiar5iUsb36XCdO5RlxP4PBhhvQPUhrWNlZuAFoURwdico5UU-6rrgrpZNhb8SyI8dlQGxcEND6qppHvDBKOco6WbbUUg0AKMx8resktupMsTdhfhZe5xApNsDJPuo6lEDVQtuzPg0H5kNpnZOArqsZjXWn2W4fLIpmTy8uKU3mhU2hkENHBkalsNcQlDcg-ZhhPDTuEESsfwR2mvMxzBFvhm4rQxuJA6pHrreT5Yx5D1h6oap12R5ung5eR08v3Ip29hvpaCyyrbK96-ph4LUpenjWjzdvCNP2FAZmlCkXn5QgGcjpZydiFp1O9wJj9jzmOKA2S1AR9KnTemw')
  173. // },
  174. // success: function (res) {
  175. // resolve({ data: res });
  176. // },
  177. // error: function (error) {
  178. // // if(error.status===403||error.status===401){
  179. // // const wd = window.parent.window||window;
  180. // // wd.location.href = "../login.html";
  181. // // }
  182. // reject(error);
  183. // },
  184. // });
  185. // });
  186. // }
  187. // 导出
  188. const expJson = (url,data) =>{
  189. const token = getCookie('accessToken') || localStorage.getItem('accessToken')
  190. if(!token&&window.location.href.indexOf('login')==-1){
  191. setCookie('behosDateStart','')
  192. setCookie('behosDateEnd','')
  193. window.location.href = "../login.html"
  194. }
  195. let need = window.location.href.indexOf('localhost')!=-1
  196. return axios({
  197. method:'post',
  198. url:(need?baseUrl:'')+url,
  199. data: data,
  200. contentType: "application/vnd.ms-excel" ,
  201. responseType: 'blob',//必须添加,否则会乱码
  202. headers:{
  203. Authorization:"Bearer "+token
  204. }
  205. })
  206. }
  207. //导出接口返回流下载
  208. function downloadExportedData(data, fileName) {
  209. var blob = new Blob([data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'}); //application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这里表示xlsx类型
  210. var downloadElement = document.createElement('a');
  211. var href = window.URL.createObjectURL(blob); //创建下载的链接
  212. downloadElement.href = href;
  213. downloadElement.download = fileName; //下载后文件名
  214. document.body.appendChild(downloadElement);
  215. downloadElement.click(); //点击下载
  216. document.body.removeChild(downloadElement); //下载完成移除元素
  217. window.URL.revokeObjectURL(href);
  218. }
  219. //判断浏览器是否为Ie8
  220. const isIe8 = function () {
  221. var DEFAULT_VERSION = 8.0;
  222. var ua = navigator.userAgent.toLowerCase();
  223. var isIE = ua.indexOf("msie") > -1;
  224. var safariVersion;
  225. if (isIE) {
  226. safariVersion = ua.match(/msie ([\d.]+)/)[1];
  227. }
  228. if (safariVersion <= DEFAULT_VERSION) {
  229. return true
  230. }
  231. }
  232. const setCookie = function(name,value){
  233. let Days = 30;
  234. let exp = new Date();
  235. exp.setTime(exp.getTime() + Days*24*60*60*1000);
  236. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  237. }
  238. //读取cookies
  239. const getCookie =function(name){
  240. let arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
  241. if(arr=document.cookie.match(reg))
  242. return unescape(arr[2]);
  243. else
  244. return null;
  245. }
  246. //删除cookies
  247. const delCookie = function(name){
  248. let exp = new Date();
  249. exp.setTime(exp.getTime() - 1);
  250. let cval=getCookie(name);
  251. if(cval!=null)
  252. document.cookie= name + "="+cval+";expires="+exp.toGMTString();
  253. };
  254. //弹窗关闭事件
  255. $(".modal .close").click(function(){
  256. $(".modal").hide();
  257. });
  258. //计算容器高度
  259. function setBoxHeight(){
  260. const ht=window.innerHeight;
  261. $(".content-box").height((ht-55)+'px');
  262. $(".flaw-table").height((ht-70)+'px');
  263. $(".content-ht").height((ht-120)+"px");
  264. $(".scroll-table tbody").css("max-height",(ht-210)+"px")
  265. }
  266. setBoxHeight();
  267. $(window).resize(function(){
  268. setBoxHeight();
  269. });
  270. //判断有无某一权限
  271. function hasData(data){
  272. let lis = JSON.parse(getCookie("codeLis"))||[]
  273. if(lis.indexOf(data)>-1){//有权限
  274. return true
  275. }
  276. return false;
  277. }
  278. //定位对应明细菜单
  279. function focusMenuItem(code){
  280. const ele = $(parent.document).find(".menu .page[code="+code+"]");
  281. const parEle = ele.parents(".list-1");
  282. if(!parEle.is(".list-1-show")){
  283. parEle.click();
  284. }
  285. //console.log($(parent.document).find(".menu .page[code='YH-ZKK-GMKQXZB_XQ']"))
  286. ele.click();
  287. }
  288. function emptyBox(name,showNum,type){
  289. let showNumer = showNum || 30
  290. let str = `<tr><td colspan="${showNumer}" style="text-align: center;color: #aaa">
  291. <img style="margin-top:50px;width:${type?'110':'140'}px;" src="${type?require('../images/dataing.png'):require('../images/empty1.png')}" />
  292. <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">${name||'暂无数据~'}</p>
  293. </td></tr>`
  294. return str
  295. }
  296. function picEmptyData(dom,str){
  297. let empty = `<div class="emptyBoxHome">
  298. <img src="${require('../images/emptyHome.png')}">
  299. <p>${str||"暂无数据~"}</p>
  300. </div>
  301. `
  302. $(dom).css({"position":"relative","display":"block"}).html(empty)
  303. }
  304. function setTitleTxt(dom,from){
  305. if(!from){
  306. $(dom?dom:".partTitle").find("a").remove()
  307. }
  308. }
  309. //mode=1:本月,mode=2:本年,mode="default":默认情况(1周) startDateDefault:mode不等于1和2开始日期,endDateDefault:mode不等于1和2结束日期
  310. function setDatePicker(picker1,picker2,mode,startDateDefault,endDateDefault){
  311. $.datepicker.regional['zh-CN'] = {
  312. clearText: '清除',
  313. clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
  314. closeText: '关闭',
  315. closeStatus: '不改变当前选择',
  316. prevText: '<上月',
  317. prevStatus: '显示上月',
  318. prevBigText: '<<',
  319. prevBigStatus: '显示上一年',
  320. nextText: '下月>',
  321. nextStatus: '显示下月',
  322. nextBigText: '>>',
  323. nextBigStatus: '显示下一年',
  324. currentText: '今天',
  325. currentStatus: '显示本月',
  326. monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
  327. monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
  328. yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
  329. monthStatus: '选择月份',
  330. yearStatus: '选择年份',
  331. weekHeader: '周',
  332. weekStatus: '年内周次',
  333. dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
  334. dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
  335. dayNamesMin: ['日','一','二','三','四','五','六'],
  336. dayStatus: '设置 DD 为一周起始',
  337. dateStatus: '选择 m月 d日, DD',
  338. dateFormat: 'yy-mm-dd',
  339. firstDay: 1,
  340. initStatus: '请选择日期',
  341. isRTL: false};
  342. $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
  343. let startDate = "", endDate=new Date()
  344. let year = new Date().getFullYear()
  345. let month = new Date().getMonth() + 1
  346. if(mode == '1'){
  347. startDate = new Date(`${year}-${month}-01`)
  348. }else if(mode == '2'){
  349. startDate = new Date(`${year}-01-01`)
  350. } else if(mode == 'default'){
  351. startDate = new Date(`${year}-01-01`)
  352. }else {
  353. startDate = startDateDefault || new Date()
  354. endDate = endDateDefault || new Date()
  355. }
  356. if(picker1){
  357. picker1.datepicker({
  358. yearRange: "2015:"+year,
  359. changeMonth: true,
  360. changeYear: true,
  361. dateFormat:"yy/mm/dd",
  362. }).datepicker( "setDate", startDate);
  363. }
  364. if(picker2){
  365. picker2.datepicker({
  366. yearRange: "2015:"+year,
  367. changeMonth: true,
  368. changeYear: true,
  369. dateFormat:"yy/mm/dd"
  370. }).datepicker( "setDate",endDate);
  371. }
  372. }
  373. //mode=1获取开始时间,mode=1获取结束时间
  374. function getPickerDate(picker,mode){
  375. if(!picker){
  376. return
  377. }
  378. let date = picker.val()
  379. if(mode == 1){
  380. return date + ' 00:00:00'
  381. // return date.replace(/\//g,'-') + ' 00:00:00'
  382. }else if(mode == 2){
  383. return date + ' 23:59:59'
  384. // return date.replace(/\//g,'-') + ' 23:59:59'
  385. }
  386. }
  387. function isMac(){
  388. var isMac = /macintosh|mac os x/i.test(navigator.userAgent);
  389. return isMac
  390. }
  391. function initScroll(el,sliderDir,sliderMode,top){
  392. if(!$("."+el+"_scroll_cont")[0]){
  393. $("."+el).addClass("scroll_cont")
  394. $("."+el).addClass(el+"_scroll_cont")
  395. $("."+el).wrap(`<div class="scroll_wrap ${el+'_scroll_wrap'}"></div>`)
  396. $(`${'.'+el+'_scroll_wrap'}`).append(`<div class="scroll_bar ${el+'_scroll_bar'}">
  397. <div class="scroll_slider ${el+'_scroll_slider'}"></div>
  398. </div>`)
  399. if(sliderDir === "YX"){
  400. $(`${'.'+el+'_scroll_wrap'}`).append(`<div class="scroll_bar ${el+'_scroll_bar2'}">
  401. <div class="scroll_slider ${el+'_scroll_slider2'}"></div>
  402. </div>`)
  403. }
  404. }
  405. if(sliderDir == "YX"){
  406. new CusScrollBar({
  407. contentSelector: `${'.'+el+'_scroll_cont'}`, //滚动内容区
  408. barSelector: `${'.'+el+'_scroll_bar'}`, //滚动条
  409. sliderSelector: `${'.'+el+'_scroll_slider'}`, //滚动滑块
  410. scrollDir:'Y',
  411. sliderMode:sliderMode || 1,
  412. top: top||"0px"
  413. });
  414. new CusScrollBar({
  415. contentSelector: `${'.'+el+'_scroll_cont'}`, //滚动内容区
  416. barSelector: `${'.'+el+'_scroll_bar2'}`, //滚动条
  417. sliderSelector: `${'.'+el+'_scroll_slider2'}`, //滚动滑块
  418. scrollDir:'X',
  419. sliderMode:sliderMode || 1
  420. });
  421. }else {
  422. new CusScrollBar({
  423. contentSelector: `${'.'+el+'_scroll_cont'}`, //滚动内容区
  424. barSelector: `${'.'+el+'_scroll_bar'}`, //滚动条
  425. sliderSelector: `${'.'+el+'_scroll_slider'}`, //滚动滑块
  426. scrollDir:sliderDir || 'Y',
  427. sliderMode:sliderMode || 1,
  428. top: top||"0px"
  429. });
  430. }
  431. }
  432. function listenScroll(dom){
  433. $(dom?dom:".container").scroll(()=>{
  434. $.datepicker._hideDatepicker($("#datepicker")[0]);
  435. $.datepicker._hideDatepicker($("#datepicker2")[0]);
  436. $.datepicker._hideDatepicker($("#datepickerFp1")[0]);
  437. $.datepicker._hideDatepicker($("#datepickerFp2")[0]);
  438. $.datepicker._hideDatepicker($("#datepickerQc1")[0]);
  439. $.datepicker._hideDatepicker($("#datepickerQc2")[0]);
  440. $("#datepicker").trigger('blur')
  441. $("#datepicker2").trigger('blur')
  442. $("#datepickerFp1").trigger('blur')
  443. $("#datepickerFp2").trigger('blur')
  444. $("#datepickerQc1").trigger('blur')
  445. $("#datepickerQc2").trigger('blur')
  446. })
  447. }
  448. const explainTitle = {
  449. '科室编码':'deptId',
  450. '科室':'deptName',
  451. '医疗组':'doctorName',
  452. '入院记录24小时内':'ryjlw_24',
  453. '首次病程记录8小时内':'scbcjlw_8h',
  454. '副主任/主任医师首次查房72小时内完成':'zrsccfw_72h',
  455. '入院后连记3天病程(不包括术后首程)':'ryhljbcw_3d',
  456. '每周至少2次副主任/主任医师查房':'zrcfw_2w',
  457. '每周至少3次主治医师查房记录':'zzcfw_3w',
  458. '抢救记录6小时内完成':'qjjlw_6h',
  459. '会诊记录在会诊申请后24小时完成':'hzjlw_24h',
  460. '术前讨论、术前小结完成':'sqtlxjw',
  461. '手术记录术后24小时内完成':'sxjlsw_24h',
  462. '术后首程在术后30分钟内完成':'xhscw_30m',
  463. '术后主刀查房24小时内完成':'shzdcfw_24h',
  464. '术后连记3天病程(包括术后首程)':'shjbcw_3d',
  465. '转科后连记3天病程(包括专科记录)':'zkjbcw_3d',
  466. '转接科记录专科后24小时内完成':'zkjlw_24',
  467. '病危/重患者每日记录病程':'bwzhjlbcw_md',
  468. '输血后完成输血记录':'sxhwjl',
  469. '24小时完成输血后评价':'sxpjw_24',
  470. '危急值记录':'wjzwjl',
  471. '住院30天阶段小结':'wywwcxj',
  472. }
  473. module.exports = {
  474. pageMap,
  475. exportTimeLimit,
  476. post,
  477. getUrlArgObject,
  478. getUrlArgObjectNew,
  479. isIe8,
  480. setCookie,
  481. getCookie,
  482. delCookie,
  483. setBoxHeight,
  484. hasData,
  485. focusMenuItem,
  486. emptyBox,
  487. picEmptyData,
  488. setTitleTxt,
  489. downloadExportedData,
  490. expJson,
  491. setDatePicker,
  492. getPickerDate,
  493. isMac,
  494. initScroll,
  495. listenScroll,
  496. explainTitle,
  497. };