checkTaskList.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. const $ = require('jquery');
  2. require("../css/checkTaskList.less");
  3. require('./modal.js');
  4. const { api, ywCheckApi } = require('./api.js')
  5. const { post, getCookie, getUrlArgObjectNew, emptyBox, listenScroll,getScoreTabList } = require('./utils.js')
  6. require('./../resource/jquery-ui/jquery-ui.min.js');
  7. require('./../resource/jquery-ui/jquery-ui.min.css');
  8. const iconCalenBlue = require("./../images/icon_calen_blue.png")
  9. const iconCalenGrey = require("./../images/icon_calen_grey.png")
  10. const iconDown = require("./../images/arrow_down.png")
  11. const iconUp = require("./../images/arrow_up.png")
  12. const loadingImg = require("./../images/loading.gif")
  13. const arrowLeft = require("./../images/arrow_left.png")
  14. const arrowRight = require("./../images/arrow_right.png")
  15. listenScroll()
  16. $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  17. $(".selectStatus").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  18. $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  19. let tabList = [],global_deptId = "",global_checkStatus = "",global_score='',global_level="",data_desc = ["leaveHospitalDate"], data_asc = [];
  20. let isPlacefile = getCookie('isPlacefile') || 1
  21. if (isPlacefile != 1) {
  22. data_desc = ["behospitalDate"]
  23. }
  24. $(function(){
  25. $(window.parent.document).find(".modaltip").hide();//切换页面过快时toast隐藏
  26. $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
  27. $('.iconCalen').on("mouseenter", function (e) {
  28. $(this).attr("src", iconCalenBlue)
  29. })
  30. $('.iconCalen').on("mouseleave", function (e) {
  31. $(this).attr("src", iconCalenGrey)
  32. })
  33. $('.iconCalen').on("click", function (e) {
  34. $(this).parent().find("input").focus()
  35. })
  36. //菜单选中
  37. $(".menu .page", parent.document).removeClass("active")
  38. $(parent.document).find(".menu .page[code=YH-ZKHC-HCRWLB]").addClass("active")
  39. //日期初始化
  40. $.datepicker.regional['zh-CN'] = {
  41. clearText: '清除',
  42. clearStatus: '清除已选日期',
  43. closeText: '关闭',
  44. closeStatus: '不改变当前选择',
  45. prevText: '<上月',
  46. prevStatus: '显示上月',
  47. prevBigText: '<<',
  48. prevBigStatus: '显示上一年',
  49. nextText: '下月>',
  50. nextStatus: '显示下月',
  51. nextBigText: '>>',
  52. nextBigStatus: '显示下一年',
  53. currentText: '今天',
  54. currentStatus: '显示本月',
  55. monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  56. monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  57. yearNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  58. monthStatus: '选择月份',
  59. yearStatus: '选择年份',
  60. weekHeader: '周',
  61. weekStatus: '年内周次',
  62. dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
  63. dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
  64. dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
  65. dayStatus: '设置 DD 为一周起始',
  66. dateStatus: '选择 m月 d日, DD',
  67. dateFormat: 'yy-mm-dd',
  68. firstDay: 1,
  69. initStatus: '请选择日期',
  70. isRTL: false
  71. };
  72. $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
  73. let endDate = new Date(),startDate = "-6d";
  74. $("#datepicker").datepicker({
  75. changeMonth: true,
  76. changeYear: true,
  77. dateFormat: "yy-mm-dd",
  78. }).datepicker("setDate", startDate);
  79. $("#datepicker2").datepicker({
  80. changeMonth: true,
  81. changeYear: true,
  82. dateFormat: "yy-mm-dd"
  83. }).datepicker("setDate", endDate);
  84. //getPageSet().then(res =>{
  85. $(".filter").click(); //初始查询
  86. //})
  87. //选择病历等级
  88. $('.selectLevel').on("click", function (e) {
  89. e.stopPropagation()
  90. $(".deptList ").css("display", "none")
  91. $(".selectDept .arrow").attr("src", iconDown)
  92. $(".checkList ").css("display", "none")
  93. $(".selectCheck .arrow").attr("src", iconDown)
  94. const showList = $(".levelList ").css("display")
  95. if (showList == "none" || !showList) {
  96. $(".levelList ").css("display", "block")
  97. $(".selectLevel .arrow").attr("src", iconUp)
  98. } else {
  99. $(".levelList ").css("display", "none")
  100. $(".selectLevel .arrow").attr("src", iconDown)
  101. }
  102. })
  103. //选择核查状态
  104. $('.selectStatus').on("click", function (e) {
  105. e.stopPropagation()
  106. $(".deptList ").css("display", "none")
  107. $(".selectDept .arrow").attr("src", iconDown)
  108. $(".selectCheck .arrow").attr("src", iconDown)
  109. const showList = $(".statusList").css("display")
  110. if (showList == "none" || !showList) {
  111. $(".statusList").css("display", "block")
  112. $(".selectStatus .arrow").attr("src", iconUp)
  113. } else {
  114. $(".statusList").css("display", "none")
  115. $(".selectStatus .arrow").attr("src", iconDown)
  116. }
  117. })
  118. //筛选分值选择
  119. $('.selectScore').on("click", function(e){
  120. e.stopPropagation();
  121. $(".deptList ").css("display","none")
  122. $(".selectDept .arrow").attr("src",iconDown)
  123. $(".selectScore .arrow").attr("src",iconDown)
  124. $(".scoreList ").css("display","block")
  125. })
  126. //筛选
  127. $(".filter").on("click", function () {
  128. const filterData = getFilterData();
  129. const behosDateStartTime = new Date(filterData.jobDistributionTimeStart).getTime()
  130. const behosDateEndTime = new Date(filterData.jobDistributionTimeEnd).getTime()
  131. if (behosDateStartTime > behosDateEndTime) {
  132. $.alerModal({ "message": '生成日期开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  133. return
  134. }
  135. getTabData(1)
  136. })
  137. $(".abnormalClear").on("click", function (e) {
  138. clearFilter();
  139. getTabData(1)
  140. })
  141. getScoreTabList((data)=>{rendeScoreList(data)},true)
  142. getTabData(1)
  143. bindLeveldSelect()
  144. bindStatusdSelect()
  145. $('.selectDept').on("click", function (e) {
  146. e.stopPropagation()
  147. $(".levelList ").css("display", "none")
  148. $(".selectLevel .arrow").attr("src", iconDown)
  149. $(".statusList").css("display", "none")
  150. $(".selectStatus .arrow").attr("src", iconDown)
  151. const showList = $(".deptList ").css("display")
  152. if (showList == "none" || !showList) {
  153. $(".deptList ").css("display", "block")
  154. $(".selectDept .arrow").attr("src", iconUp)
  155. } else {
  156. $(".deptList ").css("display", "none")
  157. $(".selectDept .arrow").attr("src", iconDown)
  158. }
  159. })
  160. $(document).on("click", function () {
  161. $(".statusList").css("display", "none")
  162. $(".levelList ").css("display", "none")
  163. $(".deptList").css("display", "none")
  164. $(".selectDept .arrow").attr("src", iconDown)
  165. $(".selectLevel .arrow").attr("src", iconDown)
  166. $(".selectStatus .arrow").attr("src", iconDown)
  167. })
  168. //获取科室列表
  169. getDeptList()
  170. })
  171. //判断有无某一权限
  172. function hasData(data) {
  173. let trdObj = JSON.parse(getCookie("trdObj"))
  174. let lis = trdObj['YH-ZKHC-HCRWLB']
  175. if (!lis) {
  176. return false
  177. }
  178. if (lis.indexOf(data) > -1) {//有权限
  179. return true
  180. }
  181. return false;
  182. }
  183. //列表获取筛选值
  184. function getFilterData(){
  185. const obj = {};
  186. $(".filterBox input[code]").map((i,it)=>{
  187. obj[$(it).attr("code")]=$(it).val()
  188. })
  189. return obj;
  190. }
  191. //重置筛选项
  192. function clearFilter(){
  193. $(".filterBox input").val("");
  194. data_desc=["leaveHospitalDate"];
  195. /*if(isPlacefile != 1){
  196. data_desc=["behospital_date"]
  197. }*/
  198. data_asc=[];
  199. //默认日期为本月
  200. const days = new Date().getDate()-1;
  201. let startDate = "-"+days+"d",endDate=new Date();
  202. $( "#datepicker" ).datepicker({
  203. changeMonth: true,
  204. changeYear: true,
  205. dateFormat:"yy-mm-dd",
  206. }).datepicker( "setDate", startDate);
  207. $( "#datepicker2" ).datepicker({
  208. changeMonth: true,
  209. changeYear: true,
  210. dateFormat:"yy-mm-dd"
  211. }).datepicker( "setDate",endDate);
  212. $("th[code]").removeClass("asc desc")
  213. $('.selectDept ').html('全部')
  214. $(".deptList").css("display", "none")
  215. $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  216. $('.selectLevel').html('全部')
  217. $(".levelList").css("display", "none")
  218. $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  219. $('.selectStatus').html('全部')
  220. $(".statusList").css("display", "none")
  221. $(".selectStatus").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  222. $('.selectScore i').html('全部')
  223. $(".scoreList").css("display", "none")
  224. global_score='';
  225. }
  226. function getTabData(activePage) {
  227. const filterData = getFilterData();
  228. const param = {
  229. level: global_level,//病历等级
  230. asc: data_asc, //升序
  231. desc: data_desc, //降序
  232. size: 15,
  233. current:activePage,
  234. ...filterData,
  235. checkJobTypes:global_score.trim()?[global_score]:[],
  236. behDeptId:global_deptId.trim(),
  237. status:global_checkStatus,
  238. jobDistributionTimeStart:filterData.jobDistributionTimeStart+" 00:00:00",
  239. jobDistributionTimeEnd:filterData.jobDistributionTimeEnd+" 23:59:59"
  240. }
  241. $('.pagination').html("")
  242. $('.tbody').html(emptyBox('努力加载中...', '', 14))
  243. return post(ywCheckApi.getUserList, param).then(res => {
  244. if (res.data.code == '0') {
  245. tabList = res.data.data.records
  246. const totalPage = res.data.data.pages
  247. const totalNum = res.data.data.total
  248. renderTab(tabList, activePage)
  249. renderPagination(totalPage, Number(activePage), totalNum)
  250. if (totalPage > 0) {
  251. renderPagination(totalPage, Number(activePage), totalNum)
  252. } else {
  253. $('.pagination').html("")
  254. }
  255. } else {
  256. $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  257. }
  258. }).catch((e) => {
  259. })
  260. }
  261. //排序事件
  262. function bindOrder() {
  263. $("th[code]").off("click").on("click", function (e) {
  264. const code = $(this).attr("code");
  265. if (data_asc[0] === code) {
  266. data_desc = [code];
  267. data_asc = [];
  268. $("th[code]").removeClass("asc desc");
  269. $(this).addClass("desc");
  270. } else {
  271. data_desc = [];
  272. data_asc = [code];
  273. $("th[code]").removeClass("asc desc");
  274. $(this).addClass("asc");
  275. }
  276. getTabData(1);
  277. });
  278. }
  279. //来源筛选下拉
  280. function rendeScoreList(list){console.log(list)
  281. const arr = Object.keys(list);
  282. if(arr.length == 0){
  283. $('.scoreList').html("")
  284. return
  285. }
  286. let str = `<li class="scoreItem ellipsis" data-id=" " data-name="全部">全部</li>`;
  287. for(let i = 0; i < arr.length; i++){
  288. str += `<li class="scoreItem ellipsis" data-id=${arr[i]} data-name=${list[arr[i]]}> ${list[arr[i]]}</li>`
  289. }
  290. $('.scoreList').html(str)
  291. bindScoreSelect()
  292. }
  293. function bindScoreSelect(){
  294. $('.scoreItem').on("click",function(){
  295. const scoreItemName = $(this).attr("data-name")
  296. const scoreItemItemId = $(this).attr("data-id")
  297. global_score =scoreItemItemId;
  298. $('.selectScore i').html(scoreItemName)
  299. $(".scoreList").css("display", "none")
  300. })
  301. }
  302. function renderTab(data) {
  303. let str = ``,code="";
  304. if (data.length === 0) {
  305. $('.tbody').html(emptyBox(null, 14))
  306. return;
  307. }
  308. const titles = $(".tabTitle th[valCode]");
  309. for(let i = 0; i < data.length; i++){
  310. const item = data[i]
  311. str += `
  312. <tr data-index=${i}>`;
  313. for(let i=0;i<titles.length;i++){
  314. code=$(titles[i]).attr('valCode');
  315. str += `<td class="${code=='behospitalCode'?'beHospitalId':''} textCenter"><span data-index=${i}>${ item[code] || "-"}<span></td>`
  316. }
  317. str += "</tr>"
  318. }
  319. $('.tbody').html(str)
  320. bindScoreDetail()
  321. bindOrder()
  322. }
  323. function bindScoreDetail() {
  324. $('.tbody').unbind("click").on('click', 'tr .beHospitalId', function (e) {
  325. console.log(tabList)
  326. console.log($(this).parent().index())
  327. const index = $(this).parent().index()
  328. const id = tabList[index].behospitalCode
  329. const name = tabList[index].name
  330. const age = tabList[index].age;
  331. const checkStatus = tabList[index].checkStatus
  332. scoreDetail({id, age,name, hid:getCookie("hospitalid"),code:'YH-ZKHC-HCRWLB'})
  333. });
  334. }
  335. function scoreDetail(obj) {
  336. window.open(`./qcScore.html?id=${obj.id}&age=${obj.age}&name=${obj.name}&hid=${obj.hid}&code=${obj.code}`)
  337. }
  338. //病历等级选择
  339. function bindLeveldSelect() {
  340. $('.levelItem').on("click", function () {
  341. const levelItemName = $(this).attr("data-name")
  342. global_level = $(this).attr("data-id")
  343. $('.selectLevel').html(levelItemName)
  344. $(".levelList").css("display", "none")
  345. $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  346. })
  347. }
  348. //病历核查状态选中
  349. function bindStatusdSelect() {
  350. $('.statusItem').on("click", function () {
  351. const levelItemName = $(this).attr("data-name")
  352. global_checkStatus = $(this).attr("data-id")
  353. $('.selectStatus').html(levelItemName)
  354. $(".statusList").css("display", "none")
  355. $(".selectStatus").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  356. })
  357. }
  358. function getDeptList() {
  359. post(api.getDeptList, {}).then(res => {
  360. if (res.data.code == '0') {
  361. const deptList = res.data.data
  362. rendeDeptList(deptList)
  363. } else { }
  364. }).catch((e) => {
  365. })
  366. }
  367. function rendeDeptList(deptList) {
  368. //console.log(deptList)
  369. let str = `<li class="deptItem ellipsis" data-id=" " data-name="全部">全部</li>`
  370. for (let i = 0; i < deptList.length; i++) {
  371. str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
  372. }
  373. $('.deptList').html(str)
  374. bindDeptSelect()
  375. }
  376. //科室选择
  377. function bindDeptSelect() {
  378. $('.deptItem').on("click", function () {
  379. const deptItemName = $(this).attr("data-name")
  380. global_deptId = $(this).attr("data-id")
  381. if (deptItemName.length > 10) {
  382. $('.selectDept').text(deptItemName.substring(0, 8) + '...')
  383. } else {
  384. $('.selectDept').text(deptItemName)
  385. }
  386. $('.selectDept ').text(deptItemName).attr('title', deptItemName)
  387. $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  388. $(".deptList").css("display", "none")
  389. })
  390. }
  391. function loading() {
  392. const str = `
  393. <div class="loadingBox">
  394. <div class="mask"></div>
  395. <img class="loadingImg" src=${loadingImg} alt="loading" />
  396. </div>
  397. `
  398. $("#mainBox", parent.document).append(str)
  399. }
  400. function hideLoading() {
  401. $("#mainBox .loadingBox", parent.document).remove()
  402. }
  403. $(function () {
  404. });
  405. //分页渲染
  406. function renderPagination(totalPage, activePage, totalNum) {
  407. let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
  408. if (totalPage <= 6) {
  409. for (let i = 1; i <= totalPage; i++) {
  410. str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
  411. }
  412. } else {
  413. if (activePage <= 3) { //选中页数小于4
  414. for (let i = 1; i <= 4; i++) {
  415. str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
  416. }
  417. str += `<span class="more" >...</span>`
  418. str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
  419. } else if (activePage > totalPage - 3) {
  420. str += `<span class="pageNum page1" data-page=1>1</span>`
  421. str += `<span class="more" >...</span>`
  422. str += `<span class="pageNum ${'page' + (totalPage - 3)}" data-page=${totalPage - 3}>${totalPage - 3}</span>`
  423. str += `<span class="pageNum ${'page' + (totalPage - 2)}" data-page=${totalPage - 2}>${totalPage - 2}</span>`
  424. str += `<span class="pageNum ${'page' + (totalPage - 1)}" data-page=${totalPage - 1}>${totalPage - 1}</span>`
  425. str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
  426. } else {
  427. str += `<span class="pageNum page1" data-page=1>1</span>`
  428. str += `<span class="more" >...</span>`
  429. str += `<span class="pageNum ${'page' + (activePage - 1)}" data-page=${activePage - 1}>${activePage - 1}</span>`
  430. str += `<span class="pageNum ${'page' + activePage}" data-page=${activePage}>${activePage}</span>`
  431. str += `<span class="pageNum ${'page' + (activePage + 1)}" data-page=${activePage + 1}>${activePage + 1}</span>`
  432. str += `<span class="more" >...</span>`
  433. str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
  434. }
  435. }
  436. str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
  437. $('.pagination').html(str)
  438. $('.page' + activePage).addClass('activePage')
  439. $(".pageNum").on("click", function (e) {
  440. const activePageNow = Number($(this).attr('data-page'))
  441. getTabData(activePageNow)
  442. // renderPagination(totalPage,activePageNow,totalNum)
  443. })
  444. $(".prePage").on("click", function (e) {
  445. let activePageNow = Number($(".activePage").attr('data-page'))
  446. if (activePageNow > 1) {
  447. activePageNow--
  448. getTabData(activePageNow)
  449. // renderPagination(totalPage,activePageNow,totalNum)
  450. }
  451. })
  452. $(".nextPage").on("click", function (e) {
  453. let activePageNow = Number($(".activePage").attr('data-page'))
  454. if (activePageNow < totalPage) {
  455. activePageNow++
  456. getTabData(activePageNow)
  457. // renderPagination(totalPage,activePageNow,totalNum)
  458. }
  459. })
  460. }