utils.js 28 KB

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