itemManager.js 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. const $ = require('jquery');
  2. require("../css/itemManager.less");
  3. require('./../resource/jquery-ui/jquery-ui.min.js');
  4. const {api} = require('./api.js')
  5. const {post} = require('./utils.js')
  6. let casesId="", name="", isReject ="", isUsed =""
  7. //获取表格数据
  8. function getTabData(activePage){
  9. const param = {
  10. current:activePage,
  11. casesId: casesId,
  12. name: name, //条目名
  13. isReject: isReject, //1-单项否决 0-非
  14. isUsed: isUsed //0-未启用 1-启用
  15. }
  16. post(api.getQcCasesEntryAll,param).then(res =>{
  17. if(res.data.code == '0'){
  18. const data = res.data.data.records
  19. const totalPage = res.data.data.pages
  20. const totalNum = res.data.data.total
  21. renderTab(data,activePage)
  22. renderPagination(totalPage,activePage,totalNum)
  23. }else{}
  24. }).catch((e) =>{
  25. })
  26. }
  27. $(".moduleItemInp").on("input", function(e){
  28. const val = $(this).val().trim()
  29. name = val
  30. })
  31. $(".filter").on("click", function(e){
  32. getTabData(1)
  33. })
  34. $('.selectModuleType').on("click", function(e){
  35. e.stopPropagation()
  36. $(".rejectList ").css("display","none")
  37. $(".usedList ").css("display", "none")
  38. const showList = $(".moduleTypeList ").css("display")
  39. if(showList == "none" ||!showList){
  40. $(".moduleTypeList ").css("display","block")
  41. }else{
  42. $(".moduleTypeList ").css("display", "none")
  43. }
  44. })
  45. $('.selectReject').on("click", function(e){
  46. e.stopPropagation()
  47. $(".moduleTypeList ").css("display", "none")
  48. $(".usedList ").css("display", "none")
  49. const showList = $(".rejectList ").css("display")
  50. if(showList == "none" ||!showList){
  51. $(".rejectList ").css("display","block")
  52. }else{
  53. $(".rejectList ").css("display", "none")
  54. }
  55. })
  56. $('.selectUsed').on("click", function(e){
  57. e.stopPropagation()
  58. $(".moduleTypeList ").css("display", "none")
  59. $(".rejectList ").css("display","none")
  60. const showList = $(".usedList ").css("display")
  61. if(showList == "none" ||!showList){
  62. $(".usedList ").css("display","block")
  63. }else{
  64. $(".usedList ").css("display", "none")
  65. }
  66. })
  67. bindRejectSelect()
  68. bindUsedSelect()
  69. getTabData(1)
  70. getmoduleTypeList()
  71. function renderTab(data,activePage){
  72. let str = ``
  73. for(let i = 0; i < data.length; i++){
  74. const item = data[i]
  75. str += `
  76. <tr data-id=${item.id} data-index=${i}>
  77. <td>${(activePage-1)*10 + i+1}</td>
  78. <td>${item.casesName}</td>
  79. <td>${item.name}</td>
  80. <td>${item.msg}</td>
  81. <td>${item.score}</td>
  82. <td>${item.isReject}</td>
  83. <td>${item.isUsed}</td>
  84. <td class="editItem">修改</td>
  85. </tr>
  86. `
  87. }
  88. $('tbody').html(str)
  89. bindEdit(data,activePage)
  90. }
  91. function bindEdit(data,activePage){
  92. $('.editItem').click(function(e){
  93. const index = $(this).parent().attr('data-index')
  94. editItem(data[index],activePage)
  95. })
  96. }
  97. //修改
  98. function editItem(item,activePage){
  99. const itemCpoy = JSON.parse(JSON.stringify(item))
  100. $('.pop-box').remove()
  101. $('.container').append('<div class="pop-box"></div>')
  102. const str = `
  103. <div><span>提示信息:</span> <input class="itemTipMsg" value=${itemCpoy.msg} /></div>
  104. <div><span>分值:</span> <input class="itemScore" type="number" value=${itemCpoy.score} /></div>
  105. <div><span>单项否决</span><span class="itemReject">${itemCpoy.isReject}</span></div>
  106. <div><span>启用</span><span class="itemUsed">${itemCpoy.isUsed}</span></div>
  107. <div class="confirmEdit">确定</div>
  108. `
  109. $('.pop-box').html(str)
  110. $(".itemTipMsg").on("input", function(e){
  111. const val = $(this).val()
  112. itemCpoy.msg = val
  113. })
  114. $(".itemScore").on("input", function(e){
  115. const val = $(this).val()
  116. itemCpoy.score = val
  117. })
  118. $(".itemReject").on("click", function(e){
  119. itemCpoy.isReject = itemCpoy.isReject == 1 ? 0 : 1
  120. $('.pop-box').remove()
  121. editItem(itemCpoy,activePage)
  122. })
  123. $(".itemUsed").on("click", function(e){
  124. itemCpoy.isUsed = itemCpoy.isUsed == 1 ? 0 : 1
  125. $('.pop-box').remove()
  126. editItem(itemCpoy,activePage)
  127. })
  128. $(".confirmEdit").on("click", function(){
  129. saveEdit(itemCpoy,activePage)
  130. $('.pop-box').remove()
  131. })
  132. }
  133. //保存修改
  134. function saveEdit(item,activePage){
  135. const param = {
  136. id: item.id,
  137. isReject: item.isReject,
  138. isUsed: item.isUsed,
  139. msg: item.msg,
  140. score: item.score
  141. }
  142. post(api.updataQcCasesEntry,param).then(res =>{
  143. if(res.data.code == '0'){
  144. const data = res.data.data
  145. getTabData(activePage)
  146. }else{}
  147. }).catch((e) =>{
  148. })
  149. }
  150. //获取模块类型
  151. function getmoduleTypeList(){
  152. post(api.getQcCasesAll).then(res =>{
  153. if(res.data.code == '0'){
  154. const moduleTypeList = res.data.data
  155. renderModuleTypeList(moduleTypeList)
  156. }else{}
  157. }).catch((e) =>{
  158. })
  159. }
  160. function renderModuleTypeList(moduleTypeList){
  161. let str = `<li class="modeTypeItem" data-id=" " data-name="全部">全部</li>`
  162. for(let i = 0; i < moduleTypeList.length; i++){
  163. str += `<li class="modeTypeItem" data-id=${moduleTypeList[i].id} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`
  164. }
  165. $('.moduleTypeList').html(str)
  166. bindModuleTypeSelect()
  167. }
  168. //模块类型选择
  169. function bindModuleTypeSelect(){
  170. $('.modeTypeItem').on("click",function(){
  171. const modeTypeItemName = $(this).attr("data-name")
  172. const modeTypeItemId = $(this).attr("data-id")
  173. casesId=modeTypeItemId
  174. $('.selectModuleType').html(modeTypeItemName)
  175. $(".moduleTypeList ").css("display", "none")
  176. })
  177. }
  178. //单项否决选择
  179. function bindRejectSelect(){
  180. $('.rejectItem').on("click",function(){
  181. const rejectItemName = $(this).attr("data-name")
  182. const rejectItemId = $(this).attr("data-id")
  183. isReject=rejectItemId
  184. $('.selectReject').html(rejectItemName)
  185. $(".rejectList ").css("display", "none")
  186. })
  187. }
  188. //是否启用选择
  189. function bindUsedSelect(){
  190. $('.usedItem').on("click",function(){
  191. const usedItemName = $(this).attr("data-name")
  192. const usedItemItemId = $(this).attr("data-id")
  193. isUsed=usedItemItemId
  194. $('.selectUsed').html(usedItemName)
  195. $(".usedList").css("display", "none")
  196. })
  197. }
  198. //分页渲染
  199. function renderPagination(totalPage,activePage,totalNum){
  200. let str = `<span class="totalNum">共${totalPage}页/${totalNum}条数据</span><span class="prePage">前一页</span>`
  201. if(totalPage <= 6){
  202. for(let i = 1; i <= totalPage; i++){
  203. str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
  204. }
  205. }else{
  206. if(activePage <= 3){ //选中页数小于4
  207. for(let i = 1; i <= 4; i++){
  208. str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
  209. }
  210. str += `<span class="more" >...</span>`
  211. str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
  212. } else if(activePage > totalPage -3){
  213. str += `<span class="pageNum page1" data-page=1>1</span>`
  214. str += `<span class="more" >...</span>`
  215. str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
  216. str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
  217. str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
  218. str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
  219. } else {
  220. str += `<span class="pageNum page1" data-page=1>1</span>`
  221. str += `<span class="more" >...</span>`
  222. str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
  223. str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
  224. str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
  225. str += `<span class="more" >...</span>`
  226. str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
  227. }
  228. }
  229. str += `<span class="nextPage">后一页</span>`
  230. $('.pagination').html(str)
  231. $('.page' + activePage).addClass('activePage')
  232. $(".pageNum").on("click", function(e){
  233. const activePageNow = Number($(this).attr('data-page'))
  234. getTabData(activePageNow)
  235. // renderPagination(totalPage,activePageNow,totalNum)
  236. })
  237. $(".prePage").on("click", function(e){
  238. let activePageNow = Number($(".activePage").attr('data-page'))
  239. if(activePageNow > 1){
  240. activePageNow--
  241. getTabData(activePageNow)
  242. // renderPagination(totalPage,activePageNow,totalNum)
  243. }
  244. })
  245. $(".nextPage").on("click", function(e){
  246. let activePageNow = Number($(".activePage").attr('data-page'))
  247. if(activePageNow < totalPage){
  248. activePageNow++
  249. getTabData(activePageNow)
  250. // renderPagination(totalPage,activePageNow,totalNum)
  251. }
  252. })
  253. }
  254. $(document).on("click", function(){
  255. $(".moduleTypeList ").css("display", "none")
  256. $(".rejectList ").css("display","none")
  257. $(".usedList ").css("display", "none")
  258. })