qualityControl.js 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. const $ = require('jquery');
  2. require("../css/quality.less");
  3. require('./../resource/jquery-ui/jquery-ui.min.js');
  4. require('./modal.js');
  5. const { api } = require('./api.js')
  6. const { post, getCookie, getUrlArgObjectNew, emptyBox, setDatePicker, getPickerDate, listenScroll } = require('./utils.js')
  7. const switchIconOpen = require("./../images/btn_open.png")
  8. const switchIconClose = require("./../images/btn_close.png")
  9. const iconDown = require("./../images/arrow_down.png")
  10. const iconUp = require("./../images/arrow_up.png")
  11. const iconCalenBlue = require("./../images/icon_calen_blue.png")
  12. const iconCalenGrey = require("./../images/icon_calen_grey.png")
  13. let casesId = "", name = "", isReject = "", isUsed = "", casesName = "", casesNameTemp = "", casesIdTemp = "", nameTemp = "", isRejectTemp = "", isUsedTemp = "", from = "", deptIdTemp = "", deptId = "", data_asc = [], data_desc = ['percent'], startDateParam = "", endDateParam = ""
  14. $(function () {
  15. listenScroll('.mukuai')
  16. dateChange()
  17. let srcUrl = $("#contentIframe", parent.document).attr("src")
  18. // deptName = getUrlArgObjectNew("deptName",srcUrl)||""
  19. isRejectTemp = isReject = getUrlArgObjectNew("dateType", srcUrl) || ""
  20. from = getUrlArgObjectNew("from", srcUrl) || ""
  21. name = nameTemp = getUrlArgObjectNew("name", srcUrl) || ""
  22. let startDateParam = getUrlArgObjectNew("startDateParam", srcUrl) || ""
  23. let endDateParam = getUrlArgObjectNew("endDateParam", srcUrl) || ""
  24. $(".partTitle a").click(function () {
  25. //初始菜单选中
  26. $(".container", parent.document).addClass("console-cont");
  27. focusMenuItem('YH-KZT')
  28. })
  29. $(".abnormalClear").click(function () {
  30. // window.location.reload()
  31. name = nameTemp = ""
  32. casesName = casesNameTemp = ""
  33. data_asc = [],
  34. data_desc = ['percent']
  35. setDatePicker($("#datepicker"), $("#datepicker2"), 1)
  36. $("th[code]").removeClass("asc desc").addClass("desc");
  37. $(".moduleScore").addClass("desc")
  38. $(".patientNumInp").val("")
  39. $(".selectModuleType ").val("全部")
  40. getTabData(1)
  41. getmoduleTypeList()
  42. })
  43. if (isReject == 1) {
  44. $(".monthYear .mon").css({
  45. backgroundColor: '#00A1FF',
  46. color: '#fff'
  47. }).siblings().css({
  48. color: '#00A1FF',
  49. backgroundColor: '#fff'
  50. })
  51. setDatePicker($("#datepicker"), $("#datepicker2"), 1)
  52. } else if (isReject == 2) {
  53. $(".monthYear .year").css({
  54. backgroundColor: '#00A1FF',
  55. color: '#fff'
  56. }).siblings().css({
  57. color: '#00A1FF',
  58. backgroundColor: '#fff'
  59. })
  60. setDatePicker($("#datepicker"), $("#datepicker2"), 2)
  61. } else if (isReject == 3) {
  62. setDatePicker($("#datepicker"), $("#datepicker2"), 3, new Date(startDateParam), new Date(endDateParam))
  63. } else {
  64. setDatePicker($("#datepicker"), $("#datepicker2"), 1)
  65. }
  66. if (!isReject) {
  67. setDatePicker($("#datepicker"), $("#datepicker2"), 1)
  68. }
  69. getTabData(1)//条目缺陷
  70. })
  71. function focusMenuItem(code) {
  72. const ele = $(parent.document).find(".menu .page[code=" + code + "]");
  73. const parEle = ele.parents(".list-1");
  74. if (!parEle.is(".list-1-show")) {
  75. parEle.click();
  76. }
  77. //console.log($(parent.document).find(".menu .page[code='YH-ZKK-GMKQXZB_XQ']"))
  78. ele.click();
  79. }
  80. // YH-ZKK-GMKQXZB_XQ
  81. $(".menu .page", parent.document).removeClass("active")
  82. $(parent.document).find(".menu .page[code=YH-ZKK-YLZLKZZB_XQ]").addClass("active")
  83. //判断有无某一权限
  84. function hasData(data) {
  85. let lis = JSON.parse(getCookie("codeLis")) || []
  86. if (lis.indexOf(data) > -1) {//有权限
  87. return true
  88. }
  89. return false;
  90. }
  91. //所有数据切换日期筛选
  92. function dateChange() {
  93. $(".monthYear .mon").click(function () {
  94. $(this).css({
  95. backgroundColor: '#00A1FF',
  96. color: '#fff'
  97. }).siblings().css({
  98. color: '#00A1FF',
  99. backgroundColor: '#fff'
  100. })
  101. isReject = 1
  102. isRejectTemp = 1
  103. setDatePicker($("#datepicker"), $("#datepicker2"), 1)
  104. getTabData(1)
  105. })
  106. $(".monthYear .year").click(function () {
  107. $(this).css({
  108. backgroundColor: '#00A1FF',
  109. color: '#fff'
  110. }).siblings().css({
  111. color: '#00A1FF',
  112. backgroundColor: '#fff'
  113. })
  114. isReject = 2
  115. isRejectTemp = 2
  116. setDatePicker($("#datepicker"), $("#datepicker2"), 2)
  117. getTabData(1)
  118. })
  119. }
  120. $("th[code]").on("click", function (e) {
  121. const code = $(this).attr("code");
  122. if (data_asc[0] === code) {
  123. data_desc = [code];
  124. data_asc = [];
  125. $("th[code]").removeClass("asc desc");
  126. $(this).addClass("desc");
  127. } else {
  128. data_desc = [];
  129. data_asc = [code];
  130. $("th[code]").removeClass("asc desc");
  131. $(this).addClass("asc");
  132. }
  133. getTabData(1);
  134. // console.log(code)
  135. });
  136. //获取表格数据
  137. function getTabData(activePage) {
  138. const dateStatrt = getPickerDate($("#datepicker"), 1)
  139. const dateEnd = getPickerDate($("#datepicker2"), 2)
  140. const start = new Date(dateStatrt).getTime()
  141. const end = new Date(dateEnd).getTime()
  142. if (start > end) {
  143. $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  144. return
  145. }
  146. const param = {
  147. indexName: casesName,
  148. "startDate": dateStatrt,
  149. "endDate": dateEnd,
  150. }
  151. startDateParam = dateStatrt
  152. endDateParam = dateEnd
  153. $('.pagination').html("")
  154. $('.tbody').html(emptyBox('努力加载中...', '', 1))
  155. post(api.medicalRecordIndicator, param).then(res => {
  156. if (res.data.code == '0') {
  157. const data = res.data.data
  158. renderTab(data, activePage)
  159. } else { }
  160. }).catch((e) => { })
  161. }
  162. $(".filter").on("click", function (e) {
  163. casesId = casesIdTemp, name = nameTemp, isReject = isRejectTemp, isUsed = isUsedTemp, deptId = deptIdTemp, casesName = casesNameTemp
  164. if (casesName == "") {
  165. $(".selectModuleType").attr({ 'title': "全部", 'data-id': '' }).val("全部")
  166. }
  167. getTabData(1)
  168. })
  169. $(".filterclear").on("click", function (e) {
  170. nameTemp = ""
  171. })
  172. // getmoduleTypeList()
  173. function renderTab(data, activePage) {
  174. let str = ``;
  175. for (let i = 0; i < data.length; i++) {
  176. const item = data[i]
  177. str += `
  178. <tr data-id=${item.id} data-index=${i}>
  179. <td class="textCenter">${(activePage - 1) * 15 + i + 1}</td>
  180. <td data-model="${item.name}">${item.name}</td>
  181. <td class="textCenter">${item.notCopiedStr || '-'}</td>
  182. </tr>
  183. `
  184. }
  185. $('.tbody').html(str ? str : emptyBox())
  186. }
  187. $('.selectModuleType').on("focus", function (e) {
  188. e.stopPropagation()
  189. $(".moduleTypeList ").css("display", "block")
  190. })
  191. $('.selectModuleType').on("blur", function (e) {
  192. $(".moduleTypeList ").css("display", "none")
  193. })
  194. $('.selectModuleType').on("input", function (e) {
  195. let val = $(this).val().trim()
  196. casesName = casesNameTemp = val
  197. getmoduleTypeList(val)
  198. })
  199. getmoduleTypeList()
  200. //获取指标列表数据
  201. function getmoduleTypeList(val) {
  202. post(api.getMedQualityCoList, { inputStr: val == "全部" ? "" : val || "" }).then(res => {
  203. if (res.data.code == '0') {
  204. const moduleTypeList = res.data.data
  205. renderModuleTypeList(moduleTypeList)
  206. } else {
  207. renderModuleTypeList([])
  208. }
  209. }).catch((e) => {
  210. })
  211. }
  212. function renderModuleTypeList(moduleTypeList) {
  213. if (moduleTypeList.length == 0) {
  214. $('.moduleTypeList').html("")
  215. return
  216. }
  217. let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`
  218. for (let i = 0; i < moduleTypeList.length; i++) {
  219. str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].columnName} data-id=${moduleTypeList[i].columnName} data-name=${moduleTypeList[i].columnName}> ${moduleTypeList[i].columnName}</li>`
  220. }
  221. $('.moduleTypeList').html(str)
  222. bindModuleTypeSelect()
  223. }
  224. //模块类型选择
  225. function bindModuleTypeSelect() {
  226. $('.modeTypeItem').on("mousedown", function () {
  227. const modeTypeItemName = $(this).attr("data-name")
  228. const modeTypeItemId = $(this).attr("data-id")
  229. // deptNameTemp=deptItemName=="全部"?"":deptItemName;
  230. casesIdTemp = modeTypeItemId
  231. casesName = casesNameTemp = modeTypeItemName == "全部" ? "" : modeTypeItemName;
  232. $('.selectModuleType').val(modeTypeItemName).attr("title", modeTypeItemName)
  233. $(".moduleTypeList ").css("display", "none")
  234. })
  235. }
  236. $(function () {
  237. $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
  238. $('.iconCalen').on("mouseenter", function (e) {
  239. $(this).attr("src", iconCalenBlue)
  240. })
  241. $('.iconCalen').on("mouseleave", function (e) {
  242. $(this).attr("src", iconCalenGrey)
  243. })
  244. $('.iconCalen').on("click", function (e) {
  245. $(this).parent().find("input").focus()
  246. })
  247. });