messageNoti.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. const $ = require('jquery');
  2. require("../css/messageNoti.less");
  3. require('jquery-templates');
  4. require('./modal.js');
  5. const { api } = require('./api.js')
  6. const { post, getCookie, emptyBox, listenScroll } = require('./utils.js')
  7. require('./../resource/jquery-ui/jquery-ui.min.js');
  8. require('./../resource/jquery-ui/jquery-ui.min.css');
  9. const iconDown = require("./../images/arrow_down.png")
  10. const iconUp = require("./../images/arrow_up.png")
  11. const arrowLeft = require("./../images/arrow_left.png")
  12. const arrowRight = require("./../images/arrow_right.png")
  13. listenScroll()
  14. $(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  15. $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  16. let status = "", type = "", page = 1, showNum = 0, newsNumber;
  17. $(".menu .page", parent.document).removeClass("active")
  18. $(parent.document).find(".menu .page[code=YH-XXTZ]").addClass("active")
  19. function getTabData(activePage) {
  20. const param = {
  21. current: activePage,
  22. size: 15,
  23. desc: ['gmtCreate'],
  24. type: type,
  25. status: status
  26. }
  27. $('.pagination').html("")
  28. $('.tbody').html(emptyBox('努力加载中...', '',))
  29. return post(api.newsNoticePage, param).then(res => {
  30. if (res.data.code == '0') {
  31. tabList = res.data.data.records
  32. const totalPage = res.data.data.pages
  33. const totalNum = res.data.data.total
  34. renderTab(tabList)
  35. renderPagination(totalPage, Number(activePage), totalNum)
  36. if (totalPage > 1) {
  37. renderPagination(totalPage, Number(activePage), totalNum)
  38. } else {
  39. $('.pagination').html("")
  40. }
  41. } else {
  42. const token = localStorage.getItem('accessToken');
  43. if (!token && window.location.href.indexOf('login') == -1) {
  44. //alert('无token判断,跳回登录')
  45. } else {
  46. $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  47. }
  48. }
  49. }).catch((e) => {
  50. })
  51. }
  52. function renderTab(data) {
  53. let str = ``
  54. if (data.length === 0) {
  55. $('.tbody').html(emptyBox(null, showNum + 12))
  56. return;
  57. }
  58. for (let i = 0; i < data.length; i++) {
  59. const item = data[i]
  60. str += `
  61. <tr data-index=${i} data-doc="${item.doctorName || ""}" >
  62. <td class="textCenter">${item.title || "-"}</td>
  63. <td class="textCenter">${item.type == 1 ? '质控任务' : '-'}</td>
  64. <td class="textCenter">${item.senderName || '-'}</td>
  65. <td class="textCenter">${item.gmtCreate || '-'}</td>
  66. <td class="textCenter">${item.status == 0 ? '未读' : '已读'}</td>
  67. <td class="textCenter" data-id="${item.id || ""}" data-status="${item.status || ""}">
  68. <span class="appealBtn goHomeDetail1">查看</span>
  69. </td>
  70. </tr>
  71. `
  72. }
  73. $('.tbody').html(str)
  74. $(".goHomeDetail1").click(function () {
  75. let id = $(this).parent().attr("data-id")
  76. let status = $(this).parent().attr("data-status")
  77. getNewsNoticeInfoById(id, status)
  78. })
  79. }
  80. function getNewsNoticeInfoById(id, status) {
  81. return post(api.getNewsNoticeInfoById, { id: id, status: status }).then(res => {
  82. if (res.data.code == '0') {
  83. const data = res.data.data
  84. $("#delModal").show();
  85. $(".modal-body").html('');
  86. $("#editTmpl").tmpl(data).appendTo("#delModal .modal-body");
  87. $("#delModal .confirm").unbind("click").click(function () {
  88. $("#delModal").hide();
  89. getTabData(page)
  90. getNewsCount()
  91. });
  92. } else {
  93. const token = localStorage.getItem('accessToken');
  94. if (!token && window.location.href.indexOf('login') == -1) {
  95. //alert('无token判断,跳回登录')
  96. } else {
  97. $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  98. }
  99. }
  100. }).catch((e) => {
  101. })
  102. }
  103. getNewsCount()
  104. //获取待审核数量
  105. function getNewsCount() {
  106. return post(api.getNewsCount).then(res => {
  107. if (res.data.code == '0') {
  108. newsNumber = res.data.data.count > 99 ? '99+' : res.data.data.count
  109. if (newsNumber == 0) {
  110. $(".menu .page", parent.document).children('.redNews').hide()
  111. } else {
  112. $(".menu .page", parent.document).children('.redNews').html(newsNumber)
  113. }
  114. } else {
  115. const token = localStorage.getItem('accessToken');
  116. if (!token && window.location.href.indexOf('login') == -1) {
  117. //alert('无token判断,跳回登录')
  118. } else {
  119. $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  120. }
  121. }
  122. }).catch((e) => {
  123. })
  124. }
  125. $(".filter").on("click", function (e) {
  126. getTabData(1)
  127. })
  128. $(".abnormalClear").on("click", function (e) {
  129. status = ""
  130. type = ""
  131. $('.selectType').html('全部')
  132. $(".typeList ").css("display", "none")
  133. $(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  134. $('.qcSelectCheck').html('全部')
  135. $(".qcCheckList").css("display", "none")
  136. $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  137. $("th[code]").removeClass("asc desc")
  138. getTabData(1)
  139. })
  140. //操作类型
  141. $('.selectType').on("click", function (e) {
  142. e.stopPropagation()
  143. $(".qcSelectCheck .arrow").attr("src", iconDown)
  144. $(".qcCheckList").css("display", "none")
  145. const showList = $(".typeList ").css("display")
  146. if (showList == "none" || !showList) {
  147. $(".typeList ").css("display", "block")
  148. $(".selectType .arrow").attr("src", iconUp)
  149. } else {
  150. $(".typeList ").css("display", "none")
  151. $(".selectType .arrow").attr("src", iconDown)
  152. }
  153. })
  154. //选择状态
  155. $('.qcSelectCheck').on("click", function (e) {
  156. e.stopPropagation()
  157. $(".selectType .arrow").attr("src", iconDown)
  158. $(".typeList").css("display", "none")
  159. const showList = $(".qcCheckList ").css("display")
  160. if (showList == "none" || !showList) {
  161. $(".qcCheckList ").css("display", "block")
  162. $(".qcSelectCheck .arrow").attr("src", iconUp)
  163. } else {
  164. $(".qcCheckList ").css("display", "none")
  165. $(".qcSelectCheck .arrow").attr("src", iconDown)
  166. }
  167. })
  168. getNewsDropDownBox()
  169. //获取操作类型
  170. function getNewsDropDownBox() {
  171. post(api.getNewsDropDownBox).then(res => {
  172. if (res.data.code == '0') {
  173. const typeList = res.data.data.newsType
  174. const statusList = res.data.data.newsStatus
  175. renderTypeList(typeList)
  176. renderStatusList(statusList)
  177. } else { }
  178. }).catch((e) => {
  179. })
  180. }
  181. function renderTypeList(data) {
  182. let str = ``
  183. for (var i in data) {
  184. console.log(i);
  185. str += `<li class="typeItem ellipsis" data-id=${data[i].val} data-name=${data[i].name}> ${data[i].name}</li>`
  186. }
  187. $('.typeList').html(str)
  188. bindTypedSelect()
  189. }
  190. //通知类型选择
  191. function bindTypedSelect() {
  192. $('.typeItem').on("click", function () {
  193. const typeItemName = $(this).attr("data-name")
  194. const typeItemItemId = $(this).attr("data-id")
  195. type = typeItemItemId
  196. $('.selectType').html(typeItemName)
  197. $(".typeList").css("display", "none")
  198. $(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  199. $('.selectType').removeClass('unSelect')
  200. })
  201. }
  202. function renderStatusList(data) {
  203. let str = ``
  204. for (var i in data) {
  205. str += `<li class="qcCheckItem ellipsis" data-id=${data[i].val} data-name=${data[i].name}> ${data[i].name}</li>`
  206. }
  207. $('.qcCheckList').html(str)
  208. bindCheckedSelectQc()
  209. }
  210. //状态
  211. function bindCheckedSelectQc() {
  212. $('.qcCheckItem').on("click", function () {
  213. const qcCheckItemName = $(this).attr("data-name")
  214. const qcCheckItemItemId = $(this).attr("data-id") || ""
  215. status = qcCheckItemItemId
  216. $('.qcSelectCheck').html(qcCheckItemName)
  217. $(".qcCheckList").css("display", "none")
  218. $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
  219. $('.qcSelectCheck').removeClass('unSelect')
  220. })
  221. }
  222. $(function () {
  223. getTabData(page)
  224. });
  225. //分页渲染
  226. function renderPagination(totalPage, activePage, totalNum) {
  227. let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
  228. if (totalPage <= 6) {
  229. for (let i = 1; i <= totalPage; i++) {
  230. str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
  231. }
  232. } else {
  233. if (activePage <= 3) { //选中页数小于4
  234. for (let i = 1; i <= 4; i++) {
  235. str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
  236. }
  237. str += `<span class="more" >...</span>`
  238. str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
  239. } else if (activePage > totalPage - 3) {
  240. str += `<span class="pageNum page1" data-page=1>1</span>`
  241. str += `<span class="more" >...</span>`
  242. str += `<span class="pageNum ${'page' + (totalPage - 3)}" data-page=${totalPage - 3}>${totalPage - 3}</span>`
  243. str += `<span class="pageNum ${'page' + (totalPage - 2)}" data-page=${totalPage - 2}>${totalPage - 2}</span>`
  244. str += `<span class="pageNum ${'page' + (totalPage - 1)}" data-page=${totalPage - 1}>${totalPage - 1}</span>`
  245. str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
  246. } else {
  247. str += `<span class="pageNum page1" data-page=1>1</span>`
  248. str += `<span class="more" >...</span>`
  249. str += `<span class="pageNum ${'page' + (activePage - 1)}" data-page=${activePage - 1}>${activePage - 1}</span>`
  250. str += `<span class="pageNum ${'page' + activePage}" data-page=${activePage}>${activePage}</span>`
  251. str += `<span class="pageNum ${'page' + (activePage + 1)}" data-page=${activePage + 1}>${activePage + 1}</span>`
  252. str += `<span class="more" >...</span>`
  253. str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
  254. }
  255. }
  256. str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
  257. $('.pagination').html(str)
  258. $('.page' + activePage).addClass('activePage')
  259. $(".pageNum").on("click", function (e) {
  260. const activePageNow = Number($(this).attr('data-page'))
  261. page = activePageNow
  262. getTabData(activePageNow)
  263. // renderPagination(totalPage,activePageNow,totalNum)
  264. })
  265. $(".prePage").on("click", function (e) {
  266. let activePageNow = Number($(".activePage").attr('data-page'))
  267. page = activePageNow
  268. if (activePageNow > 1) {
  269. activePageNow--
  270. getTabData(activePageNow)
  271. // renderPagination(totalPage,activePageNow,totalNum)
  272. }
  273. })
  274. $(".nextPage").on("click", function (e) {
  275. let activePageNow = Number($(".activePage").attr('data-page'))
  276. page = activePageNow
  277. if (activePageNow < totalPage) {
  278. activePageNow++
  279. getTabData(activePageNow)
  280. // renderPagination(totalPage,activePageNow,totalNum)
  281. }
  282. })
  283. }
  284. $(document).on("click", function () {
  285. $(".selectType .arrow").attr("src", iconDown)
  286. $(".typeList").css("display", "none")
  287. $(".qcSelectCheck .arrow").attr("src", iconDown)
  288. $(".qcCheckList").css("display", "none")
  289. })