utils.js 22 KB

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