checkControlDept.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765
  1. const $ = require('jquery');
  2. require("@less/dept/checkControlDept.less");
  3. require('../modal.js');
  4. const {api} = require('@js/api.js')
  5. const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate,downloadExportedData,expJson,initScroll,listenScroll} = require('@js/utils.js')
  6. require('../../resource/jquery-ui/jquery-ui.min.js');
  7. require('../../resource/jquery-ui/jquery-ui.min.css');
  8. const iconCheck= require("@images/icon_check.png")
  9. const iconUnCheck = require("@images/icon_unchecked.png")
  10. const iconCalenBlue= require("@images/icon_calen_blue.png")
  11. const iconCalenGrey= require("@images/icon_calen_grey.png")
  12. const iconDown= require("@images/arrow_down.png")
  13. const iconUp = require("@images/arrow_up.png")
  14. const loadingImg = require("@images/loading.gif")
  15. const arrowLeft= require("@images/arrow_left.png")
  16. const arrowRight = require("@images/arrow_right.png")
  17. listenScroll()
  18. let isPlacefile = getCookie('isPlacefile')||1
  19. $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  20. $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  21. let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType="",
  22. nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
  23. data_desc='',data_asc='',casesIdTemp= '', casesName='';
  24. let deptList = JSON.parse(getCookie("deptList"))||[]
  25. $(function(){
  26. let srcUrl = $("#contentIframe",parent.document).attr("src")
  27. statisticsType = getUrlArgObjectNew("dateType",srcUrl)||""
  28. deptId = deptIdTemp = getUrlArgObjectNew("deptName",srcUrl)||""
  29. let startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
  30. let endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
  31. if(statisticsType == 1){
  32. $(".monthYear .mon").css({
  33. backgroundColor:'#00A1FF',
  34. color:'#fff'
  35. }).siblings().css({
  36. color:'#00A1FF',
  37. backgroundColor:'#fff'
  38. })
  39. setDatePicker($("#datepicker"),$("#datepicker2"),1)
  40. }else if(statisticsType == 2){
  41. $(".monthYear .year").css({
  42. backgroundColor:'#00A1FF',
  43. color:'#fff'
  44. }).siblings().css({
  45. color:'#00A1FF',
  46. backgroundColor:'#fff'
  47. })
  48. setDatePicker($("#datepicker"),$("#datepicker2"),2)
  49. }else if(statisticsType == 3){
  50. setDatePicker($("#datepicker"),$("#datepicker2"),3,new Date(startDateParam),new Date(endDateParam))
  51. }else{
  52. setDatePicker($("#datepicker"),$("#datepicker2"),"default")
  53. }
  54. if(!statisticsType){
  55. setDatePicker($("#datepicker"),$("#datepicker2"),"default")
  56. }
  57. if(deptId){
  58. $(".selectDept").html(deptId).attr({
  59. "data-id":deptId,
  60. "title":deptId
  61. }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  62. getDeptList()
  63. }else{
  64. getDeptList(1)
  65. }
  66. })
  67. // 重置
  68. $(".abnormalClear").click(function(){
  69. casesName ='全部'
  70. casesIdTemp= ''
  71. $('.selectModuleType').val('全部')
  72. deptId=deptIdTemp = deptList[0]&&deptList[0].deptName
  73. behospitalCode=behospitalCodeTemp = ""
  74. setDatePicker($("#datepicker"),$("#datepicker2"),"default")
  75. $(".patientNumInp").val("")
  76. $(".selectDept").html(deptId).attr({
  77. "data-id":deptId,
  78. "title":deptId
  79. }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  80. getmoduleTypeList()
  81. getTabData(1)
  82. })
  83. $(".partTitle a").click(function(){
  84. //初始菜单选中
  85. focusMenuItem('YH-KZTKS')
  86. $(".container",parent.document).addClass("console-cont");
  87. })
  88. function focusMenuItem(code){
  89. const ele = $(parent.document).find(".menu .page[code="+code+"]");
  90. const parEle = ele.parents(".list-1");
  91. if(!parEle.is(".list-1-show")){
  92. parEle.click();
  93. }
  94. //console.log($(parent.document).find(".menu .page[code='YH-ZKK-GMKQXZB_XQ']"))
  95. ele.click();
  96. }
  97. $(function() {
  98. const iconCalenBlue= require("@images/icon_calen_blue.png")
  99. const iconCalenGrey= require("@images/icon_calen_grey.png")
  100. $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
  101. $('.iconCalen').on("mouseenter", function(e){
  102. $(this).attr("src", iconCalenBlue)
  103. })
  104. $('.iconCalen').on("mouseleave", function(e){
  105. $(this).attr("src", iconCalenGrey)
  106. })
  107. $('.iconCalen').on("click", function(e){
  108. $(this).parent().find("input").focus()
  109. })
  110. });
  111. $('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
  112. //科室处理
  113. function getDeptList(flg){
  114. let str = ``
  115. if(deptList.length<=0)return
  116. if(flg){
  117. $(".checkControl .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
  118. deptId = deptIdTemp = deptList[0].deptName
  119. }
  120. for(let i = 0;i < deptList.length;i++){
  121. let tmp = deptList[i]
  122. str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
  123. }
  124. $(".checkControl .filterDropList").html(str)
  125. getmoduleTypeList()
  126. getTabData(1)
  127. }
  128. dateChange()
  129. //所有数据切换日期筛选
  130. function dateChange(){
  131. $(".monthYear .mon").click(function(){
  132. $(this).css({
  133. backgroundColor:'#00A1FF',
  134. color:'#fff'
  135. }).siblings().css({
  136. color:'#00A1FF',
  137. backgroundColor:'#fff'
  138. })
  139. $(".dayDetail .deptListWrap").css("display","block")
  140. $(".dayDetail .dayFilter").css("display","none")
  141. statisticsType = 1
  142. setDatePicker($("#datepicker"),$("#datepicker2"),1)
  143. getTabData(1)
  144. })
  145. $(".monthYear .year").click(function(){
  146. $(this).css({
  147. backgroundColor:'#00A1FF',
  148. color:'#fff'
  149. }).siblings().css({
  150. color:'#00A1FF',
  151. backgroundColor:'#fff'
  152. })
  153. $(".dayDetail .deptListWrap").css("display","none")
  154. $(".dayDetail .dayFilter").css("display","block")
  155. statisticsType = 2
  156. setDatePicker($("#datepicker"),$("#datepicker2"),2)
  157. getTabData(1)
  158. })
  159. }
  160. //判断有无某一权限
  161. function hasData(data){
  162. let trdObj = JSON.parse(getCookie("trdObj"))
  163. let lis = trdObj['YH-BLZK-ZKPF']
  164. if(!lis){
  165. return false
  166. }
  167. if(lis.indexOf(data)>-1){//有权限
  168. return true
  169. }
  170. return false;
  171. }
  172. function getTabData(activePage){
  173. const dateStatrt = getPickerDate($("#datepicker"),1)
  174. const dateEnd = getPickerDate($("#datepicker2"),2)
  175. const start = new Date(dateStatrt).getTime()
  176. const end = new Date(dateEnd).getTime()
  177. if(start > end){
  178. $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  179. return
  180. }
  181. const param = {
  182. "asc": data_asc,
  183. "desc": data_desc,
  184. "deptName": deptId||"",
  185. // "name": behospitalCode||"",
  186. "doctorName": casesName =='全部'?"": casesName || '',
  187. "doctorId": casesIdTemp || '',
  188. "type": 0, //1-本月,2-本年,0-自定义时间(现在 都是自定义时间,都会传具体时间进去)
  189. "startDate":dateStatrt,
  190. "endDate":dateEnd,
  191. "isPlacefile":isPlacefile
  192. }
  193. startDateParam = dateStatrt
  194. endDateParam = dateEnd
  195. post(api.qcCheckStatisticsByDept,param).then(res =>{
  196. if(res.data.code == '0'){
  197. const data = res.data.data||[];
  198. renderTab(data,data.hospitalId,activePage);
  199. renderPagination(totalPage,Number(activePage),totalNum)
  200. if(totalPage > 1){
  201. renderPagination(totalPage,Number(activePage),totalNum)
  202. } else{
  203. $('.pagination').html("")
  204. }
  205. }else{
  206. $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  207. }
  208. }).catch((e) =>{
  209. })
  210. }
  211. //模块类型
  212. $('.selectModuleType').on("focus", function(e){
  213. e.stopPropagation()
  214. $(".rejectList ").css("display","none")
  215. $(".usedList ").css("display", "none")
  216. $(".selectReject .arrow").attr("src",iconDown)
  217. $(".selectUsed .arrow").attr("src",iconDown)
  218. $(".moduleTypeList ").css("display","block")
  219. })
  220. $('.selectModuleType').on("blur", function(e){
  221. $(".moduleTypeList ").css("display","none")
  222. })
  223. $('.selectModuleType').on("input", function(e){
  224. let val = $(this).val().trim()
  225. casesName = casesNameTemp = val
  226. getmoduleTypeList(val)
  227. })
  228. //获取模块类型
  229. function getmoduleTypeList(val,dept){
  230. post(api.getListDoctor,{inputStr:val=="全部"?"":val||"",deptName:dept||deptId}).then(res =>{
  231. if(res.data.code == '0'){
  232. const moduleTypeList = res.data.data
  233. renderModuleTypeList(moduleTypeList)
  234. }else{
  235. renderModuleTypeList([])
  236. }
  237. }).catch((e) =>{
  238. })
  239. }
  240. function renderModuleTypeList(moduleTypeList){
  241. if(moduleTypeList.length == 0){
  242. $('.moduleTypeList').html("")
  243. return
  244. }
  245. let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`
  246. for(let i = 0; i < moduleTypeList.length; i++){
  247. str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].name} data-id=${moduleTypeList[i].doctorId} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`
  248. }
  249. $('.moduleTypeList').html(str)
  250. bindModuleTypeSelect()
  251. }
  252. //模块类型选择
  253. function bindModuleTypeSelect(){
  254. $('.modeTypeItem').on("mousedown",function(){
  255. const modeTypeItemName = $(this).attr("data-name")
  256. const modeTypeItemId = $(this).attr("data-id")
  257. casesIdTemp =modeTypeItemId
  258. casesName=casesNameTemp = modeTypeItemName=="全部"?"":modeTypeItemName;
  259. // console.log(casesName,'casesName' ,modeTypeItemId,'modeTypeItemId');
  260. $('.selectModuleType').val(modeTypeItemName).attr("title",modeTypeItemName)
  261. $(".moduleTypeList ").css("display", "none")
  262. })
  263. }
  264. $(".filter").on("click", function(e){
  265. name = nameTemp
  266. behospitalCode = behospitalCodeTemp
  267. level = levelTemp
  268. deptId = deptIdTemp
  269. getTabData(1)
  270. })
  271. function renderTab(data,hisId,activePage){
  272. let str = ``
  273. for(let i = 0; i < data.length; i++){
  274. const item = data[i]
  275. str += `
  276. <tr data-index=${i}>
  277. <td class="textCenter">${(activePage-1)*15 + i+1}</td>
  278. <td>${item.doctorName || "-"}</td>
  279. <td class="goHomeDetail" dept-id="${item.deptId || ""}" dept-name="${item.deptName || ""}" data-check="0">${item.mrNum +''|| "-"}</td>
  280. <td class="goHomeDetail" dept-id="${item.deptId || ""}" dept-name="${item.deptName || ""}" data-check="1">${item.checkedNum+'' || "-"}</td>
  281. <td class="goHomeDetail" dept-id="${item.deptId || ""}" dept-name="${item.deptName || ""}" data-improve="1">${item.improveNum+'' || "-"}</td>
  282. <td>${item.improvePercentStr || "-"}</td>
  283. <td class="goHomeDetail" dept-id="${item.deptId || ""}" dept-name="${item.deptName || ""}" data-improve="2">${item.improveToPassNum+'' || "-"}</td>
  284. <td>${item.improveToPassPercentStr || "-"}</td>
  285. <td class="goHomeDetail" dept-id="${item.deptId || ""}" dept-name="${item.deptName || ""}" data-improve="3">${item.improveToFullNum +''|| "-"}</td>
  286. <td>${item.improveToFullPercentStr || "-"}</td>
  287. </tr>
  288. `
  289. }
  290. $('.tbody').html(str?str:emptyBox())
  291. bindScoreDetail(hisId)
  292. $(".goHomeDetail").click(function () {
  293. let id = $(this).attr("dept-id");
  294. let casesName = $(this).attr("data-name");
  295. let casesId = $(this).attr("data-id");
  296. let name = $(this).attr("dept-name");
  297. let checkStatus = $(this).attr("data-check");
  298. let improveType = $(this).attr("data-improve");
  299. name = name === "全院" ? "全部" : name;
  300. if (checkStatus === '1') {
  301. // 核查数量跳转
  302. $(parent.document).find("#contentIframe").attr("src", "qcListCopy.html?from=7&deptName=" + name + "&deptId=" + id + "&casesEntryId=" + casesId + "&defectName=" + casesName + "&startDate=" + startDateParam + "&endDate=" + endDateParam)
  303. // return
  304. } else if(checkStatus === '0'){
  305. // 质控总数跳转
  306. $(parent.document).find("#contentIframe").attr("src", "qcListCopy.html?from=8&deptName=" + name + "&deptId=" + id + "&casesEntryId=" + casesId + "&defectName=" + casesName + "&startDate=" + startDateParam + "&endDate=" + endDateParam )
  307. }else{
  308. $(parent.document).find("#contentIframe").attr("src", "qcListCopy.html?from=6&deptName=" + name + "&deptId=" + id + "&casesEntryId=" + casesId + "&defectName=" + casesName + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&improveType=" + improveType)
  309. }
  310. })
  311. // initScroll("partDetailControl","YX",1)
  312. }
  313. function scoreDetail(id,age,hid,code){
  314. window.open(`./qcScore.html?id=${id}&age=${age}&hid=${hid}&code=${code}`)
  315. }
  316. function bindScoreDetail(hisId){
  317. $('.patientNameSpan').on('click',function(e){
  318. const index = $(this).attr("data-index")
  319. const type = $(this).attr("data-type")
  320. const item = tabList[index]
  321. midifyMsgBox(item,type)
  322. })
  323. }
  324. function midifyMsgBox(item,type){
  325. const itemCopy = JSON.parse(JSON.stringify(item))
  326. let msgBox = ''
  327. if(type == 1){
  328. msgBox = `<div class="midifyMsgBox">
  329. <div class="mask"></div>
  330. <div class="midifyMsgContent abnormal">
  331. <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('@images/icon_close_default.png')} alt="关闭" /></p>
  332. <div class="itemMsgInfoBox">
  333. <span class="itemMsgLab abnormalLeft">状态:</span>
  334. <span class="abnormalAll" data-status="${itemCopy.status}">${itemCopy.status == 0?"未处理":"已处理"}</span>
  335. <ul class="abnormalStatusLis">
  336. <li data-status="0">未处理</li>
  337. <li data-status="1">已处理</li>
  338. </ul>
  339. </div>
  340. <div class="itemMsgInfoBox">
  341. <span class="itemMsgLab abnormalLeft abnormalMark">备注:</span>
  342. <span class="itemInfoRight">
  343. <textarea class="abnormalTxt" placeholder="请输入内容" >${itemCopy.remark}</textarea>
  344. </span>
  345. </div>
  346. <div class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</div>
  347. <div class="midifyMsgBtn abnormalBtn">
  348. <span class="midifyEdit">保存</span>
  349. </div>
  350. </div>
  351. </div>`
  352. }else{
  353. msgBox = `<div class="midifyMsgBox">
  354. <div class="mask"></div>
  355. <div class="midifyMsgContent midifyMsgContentDel">
  356. <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('@images/icon_close_default.png')} alt="关闭" /></p>
  357. <p class="delTips">确认要删除该条异常记录?</p>
  358. <div class="midifyMsgBtn midifyMsgBtnDel">
  359. <span class="midifyEdit midifyEditDel">删除</span>
  360. <span class="midifyEdit midifyEditQuit">取消</span>
  361. </div>
  362. </div>
  363. </div>`
  364. }
  365. $("#mainBox", parent.document).append(msgBox)
  366. $(".midifyEditDel", parent.document).on("click",function(){
  367. delModifyOne(itemCopy)
  368. })
  369. $(".midifyEditQuit", parent.document).on("click",function(){
  370. $("#mainBox .midifyMsgBox", parent.document).remove()
  371. })
  372. $(".abnormalAll", parent.document).on("click",function(){
  373. $(".abnormalStatusLis", parent.document).slideToggle()
  374. })
  375. $(".abnormalStatusLis li", parent.document).on("click",function(){
  376. let status = $(this).attr("data-status")
  377. let str = $(this).html()
  378. $(".abnormalAll", parent.document).attr("data-status",status).html(str)
  379. $(".abnormalStatusLis", parent.document).slideToggle()
  380. })
  381. $("#mainBox .midifyMsgBox .iconClose", parent.document).on("click", function(e){
  382. $("#mainBox .midifyMsgBox", parent.document).remove()
  383. })
  384. $("#mainBox .midifyMsgBox .itemScore", parent.document).on("keypress", function(event){
  385. return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))
  386. })
  387. $("#mainBox .midifyMsgBox .itemScore", parent.document).on("input", function(e){
  388. const val = $(this).val()
  389. itemCopy.score = val
  390. })
  391. $("#mainBox .midifyMsgBox .midifyEdit", parent.document).on("click", function(e){
  392. saveModifyOne(itemCopy)
  393. })
  394. }
  395. //保存修改
  396. function delModifyOne(itemCopy){
  397. let param = {
  398. "id": itemCopy.id
  399. }
  400. post(api.delQcAnnormal,param).then(res =>{
  401. if(res.data.code == '0'){
  402. const data = res.data.data;
  403. getTabData(1)
  404. $("#mainBox .midifyMsgBox", parent.document).remove()
  405. $.alerModal({"message":'删除成功',type:"tip",time:'1000',isFather: true,win: true, fatherWrapper: $("#mainBox", parent.document)});
  406. }else{
  407. $.alerModal({"message":'删除失败,请重试~',type:"tip",time:'1000',win:'default',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  408. }
  409. }).catch((e) =>{
  410. $.alerModal({"message":'删除失败,请重试~',type:"tip",time:'1000',win:'default',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  411. })
  412. }
  413. //保存修改
  414. function saveModifyOne(itemCopy){
  415. let txt = $(".abnormalTxt", parent.document).val()
  416. let status = $(".abnormalAll", parent.document).attr("data-status")
  417. let param = {
  418. "id": itemCopy.id,
  419. "remark": txt,
  420. "status": status
  421. }
  422. post(api.saveQcAnnormal,param).then(res =>{
  423. if(res.data.code == '0'){
  424. const data = res.data.data;
  425. getTabData(1)
  426. $("#mainBox .midifyMsgBox", parent.document).remove()
  427. $.alerModal({"message":'修改成功',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  428. }else{
  429. }
  430. }).catch((e) =>{
  431. })
  432. }
  433. //选择病历等级
  434. $('.selectLevel').on("click", function(e){
  435. e.stopPropagation()
  436. $(".deptList ").css("display", "none")
  437. $(".selectDept .arrow").attr("src",iconDown)
  438. const showList = $(".levelList ").css("display")
  439. if(showList == "none" ||!showList){
  440. $(".levelList ").css("display","block")
  441. $(".selectLevel .arrow").attr("src",iconUp)
  442. }else{
  443. $(".levelList ").css("display", "none")
  444. $(".selectLevel .arrow").attr("src",iconDown)
  445. }
  446. })
  447. bindLeveldSelect()
  448. //是否启用选择
  449. function bindLeveldSelect(){
  450. $('.levelItem').on("click",function(){
  451. const levelItemName = $(this).attr("data-name")
  452. const levelItemItemId = $(this).attr("data-id")
  453. levelTemp =levelItemItemId
  454. $('.selectLevel').html(levelItemName)
  455. $(".levelList").css("display", "none")
  456. $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  457. })
  458. }
  459. //全选绑定
  460. $('.selectDept').on("click", function(e){
  461. e.stopPropagation()
  462. $(".levelList ").css("display","none")
  463. $(".selectLevel .arrow").attr("src",iconDown)
  464. const showList = $(".deptList ").css("display")
  465. if(showList == "none" ||!showList){
  466. $(".deptList ").css("display","block")
  467. $(".selectDept .arrow").attr("src",iconUp)
  468. }else{
  469. $(".deptList ").css("display", "none")
  470. $(".selectDept .arrow").attr("src",iconDown)
  471. }
  472. })
  473. bindDeptSelect()
  474. //科室选择
  475. function bindDeptSelect(){
  476. $("body").on("click",'.deptItem',function(){
  477. const deptItemName = $(this).attr("data-name")
  478. const deptItemId = $(this).attr("data-id")
  479. deptIdTemp =deptItemId
  480. if(deptItemName.length > 10){
  481. $('.selectDept').html(deptItemName.substring(0,8)+'...')
  482. }else{
  483. $('.selectDept').html(deptItemName)
  484. }
  485. $('.selectDept ').attr({'title':deptItemName,'data-id':deptItemName})
  486. $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  487. $(".deptList").css("display", "none")
  488. getmoduleTypeList('',deptItemId)
  489. })
  490. }
  491. function loading(){
  492. const str = `
  493. <div class="loadingBox">
  494. <div class="mask"></div>
  495. <img class="loadingImg" src=${loadingImg} alt="loading" />
  496. </div>
  497. `
  498. $("#mainBox", parent.document).append(str)
  499. }
  500. function hideLoading(){
  501. $("#mainBox .loadingBox", parent.document).remove()
  502. }
  503. $('.recordScoreBtn').on("click",function(e){
  504. if(!hasData('FUNC000017')){
  505. return
  506. }
  507. let scoreList = []
  508. for(let i = 0; i <tabList.length; i++){
  509. if(tabList[i].hasSelect){
  510. scoreList.push(tabList[i].behospitalCode)
  511. }
  512. }
  513. if(scoreList.length === 0){
  514. $.alerModal({"message":'请选择要评分的项!',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  515. return
  516. } else{
  517. loading()
  518. for(let j = 0; j < scoreList.length; j++){
  519. recordScore(scoreList[j],scoreList.length)
  520. }
  521. }
  522. })
  523. $("th[code]").on("click",function(e){
  524. const code=$(this).attr("code");
  525. if(data_asc===code){
  526. data_desc=code;
  527. data_asc='';
  528. $("th[code]").removeClass("asc desc");
  529. $(this).addClass("desc");
  530. }else{
  531. data_desc='';
  532. data_asc=code;
  533. $("th[code]").removeClass("asc desc");
  534. $(this).addClass("asc");
  535. }
  536. getTabData(1);
  537. });
  538. function recordScore(behospitalCode,totalNum){
  539. const param = {
  540. behospitalCode: behospitalCode
  541. }
  542. post(api.recordScore,param).then(res =>{
  543. if(res.data.code == '0'){
  544. scoreSum++
  545. if(scoreSum === totalNum){
  546. hideLoading()
  547. scoreSum = 0
  548. const activePage = $(".activePage").attr('data-page') || 1
  549. getTabData(activePage)
  550. }
  551. }else{}
  552. }).catch((e) =>{
  553. })
  554. }
  555. $(".patientNumInp").on("input", function(e){
  556. const val = $(this).val().trim()
  557. behospitalCodeTemp = val
  558. })
  559. $(".patientNameInp").on("input", function(e){
  560. const val = $(this).val().trim()
  561. nameTemp = val
  562. })
  563. $(".doctorInp").on("input", function(e){
  564. const val = $(this).val().trim()
  565. doctorNameTemp = val
  566. })
  567. $(".doctorNumInp").on("input", function(e){
  568. const val = $(this).val().trim();
  569. doctorNumTemp = val
  570. })
  571. $(function() {
  572. $.datepicker.regional['zh-CN'] = {
  573. clearText: '清除',
  574. clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
  575. closeText: '关闭',
  576. closeStatus: '不改变当前选择',
  577. prevText: '<上月',
  578. prevStatus: '显示上月',
  579. prevBigText: '<<',
  580. prevBigStatus: '显示上一年',
  581. nextText: '下月>',
  582. nextStatus: '显示下月',
  583. nextBigText: '>>',
  584. nextBigStatus: '显示下一年',
  585. currentText: '今天',
  586. currentStatus: '显示本月',
  587. monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
  588. monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
  589. yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
  590. monthStatus: '选择月份',
  591. yearStatus: '选择年份',
  592. weekHeader: '周',
  593. weekStatus: '年内周次',
  594. dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
  595. dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
  596. dayNamesMin: ['日','一','二','三','四','五','六'],
  597. dayStatus: '设置 DD 为一周起始',
  598. dateStatus: '选择 m月 d日, DD',
  599. dateFormat: 'yy-mm-dd',
  600. firstDay: 1,
  601. initStatus: '请选择日期',
  602. isRTL: false};
  603. $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
  604. $( "#datepicker" ).datepicker({
  605. changeMonth: true,
  606. changeYear: true,
  607. dateFormat:"yy/mm/dd"
  608. });
  609. $( "#datepicker2" ).datepicker({
  610. changeMonth: true,
  611. changeYear: true,
  612. dateFormat:"yy/mm/dd"
  613. });
  614. });
  615. //分页渲染
  616. function renderPagination(totalPage,activePage,totalNum){
  617. let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
  618. if(totalPage <= 6){
  619. for(let i = 1; i <= totalPage; i++){
  620. str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
  621. }
  622. }else{
  623. if(activePage <= 3){ //选中页数小于4
  624. for(let i = 1; i <= 4; i++){
  625. str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
  626. }
  627. str += `<span class="more" >...</span>`
  628. str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
  629. } else if(activePage > totalPage -3){
  630. str += `<span class="pageNum page1" data-page=1>1</span>`
  631. str += `<span class="more" >...</span>`
  632. str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
  633. str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
  634. str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
  635. str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
  636. } else {
  637. str += `<span class="pageNum page1" data-page=1>1</span>`
  638. str += `<span class="more" >...</span>`
  639. str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
  640. str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
  641. str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
  642. str += `<span class="more" >...</span>`
  643. str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
  644. }
  645. }
  646. str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
  647. $('.pagination').html(str)
  648. $('.page' + activePage).addClass('activePage')
  649. $(".pageNum").on("click", function(e){
  650. const activePageNow = Number($(this).attr('data-page'))
  651. getTabData(activePageNow)
  652. // renderPagination(totalPage,activePageNow,totalNum)
  653. })
  654. $(".prePage").on("click", function(e){
  655. let activePageNow = Number($(".activePage").attr('data-page'))
  656. if(activePageNow > 1){
  657. activePageNow--
  658. getTabData(activePageNow)
  659. // renderPagination(totalPage,activePageNow,totalNum)
  660. }
  661. })
  662. $(".nextPage").on("click", function(e){
  663. let activePageNow = Number($(".activePage").attr('data-page'))
  664. if(activePageNow < totalPage){
  665. activePageNow++
  666. getTabData(activePageNow)
  667. // renderPagination(totalPage,activePageNow,totalNum)
  668. }
  669. })
  670. }
  671. $(document).on("click", function(){
  672. $(".levelList ").css("display", "none")
  673. $(".deptList").css("display", "none")
  674. $(".selectDept .arrow").attr("src",iconDown)
  675. })
  676. $((function($){
  677. })($));
  678. $(function() {
  679. const iconCalenBlue = require('@images/icon_calen_blue.png');
  680. const iconCalenGrey = require('@images/icon_calen_grey.png');
  681. $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`);
  682. $('.iconCalen').on('mouseenter', function(e) {
  683. $(this).attr('src', iconCalenBlue);
  684. });
  685. $('.iconCalen').on('mouseleave', function(e) {
  686. $(this).attr('src', iconCalenGrey);
  687. });
  688. $('.iconCalen').on('click', function(e) {
  689. $(this)
  690. .parent()
  691. .find('input')
  692. .focus();
  693. });
  694. $('.exportData').click(function() {
  695. const start = new Date(startDateParam).getTime();
  696. const end = new Date(endDateParam).getTime();
  697. if (start > end) {
  698. $.alerModal({
  699. message: '开始时间不能大于结束时间~',
  700. type: 'tip',
  701. time: '1000',
  702. isFather: true,
  703. fatherWrapper: $('#mainBox', parent.document),
  704. });
  705. return;
  706. }
  707. const param = {
  708. name: deptId == '全部' ? '' : deptId || '',
  709. deptName: deptId == '全部' ? '' : deptId || '',
  710. // asc:data_asc, //升序
  711. // desc:data_desc, //降序
  712. "doctorName": casesName =='全部'?"": casesName || '',
  713. "doctorId": casesIdTemp || '',
  714. startDate: startDateParam.replace(/\//g, '-'),
  715. endDate: endDateParam.replace(/\//g, '-'),
  716. isPlacefile: isPlacefile,
  717. };
  718. expJson(api.qcCheckStaExportByDept, param).then(res => {
  719. downloadExportedData(
  720. res.data,
  721. isPlacefile == 1 ? '终末质控核查统计.xls' : '运行质控核查统计.xls'
  722. );
  723. });
  724. // 初始渲染TableTitle
  725. // getPageSet().then(res =>{
  726. // $(".filter").click(); //初始查询
  727. // })
  728. });
  729. });