limit.ejs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <div class="panel-content">
  2. <div class="panel-title fluid">
  3. <div class="title-main d-flex justify-content-between">
  4. <div>联动计量检查配置</div>
  5. </div>
  6. </div>
  7. <div class="content-wrap">
  8. <div class="c-body">
  9. <div class="sjs-height-0 row">
  10. <div class="col-2">
  11. <div class="d-flex flex-row">
  12. <form class="ml-2 p-2" method="POST" action="/setting/limit/save">
  13. <input type="hidden" name="_csrf_j2" value="<%= ctx.csrf %>" />
  14. <button class="btn btn-sm btn-light text-primary"><i class="fa fa-plus" aria-hidden="true" type="submit"></i> 新增配置</button>
  15. </form>
  16. </div>
  17. <div>
  18. <dl class="list-group">
  19. <% for (const limit of limitList) { %>
  20. <dd class="list-group-item <%- (limit.limit_id === curLimit.limit_id ? 'bg-warning' : '')%>">
  21. <div class="d-flex justify-content-between align-items-center table-file" limitId="<%- limit.limit_id %>">
  22. <div><%- limit.name %>%></div>
  23. <div class="btn-group-table" style="display: none;">
  24. <a href="javascript: void(0);" class="mr-1" data-toggle="tooltip" data-placement="bottom" data-original-title="编辑" name="renameLimit"><i class="fa fa-pencil fa-fw"></i></a>
  25. <a href="javascript: void(0);" class="mr-1" data-toggle="tooltip" data-placement="bottom" data-original-title="删除" name="delLimit"><i class="fa fa-trash-o fa-fw text-danger"></i></a>
  26. </div>
  27. </div>
  28. </dd>
  29. <% } %>
  30. </dl>
  31. </div>
  32. </div>
  33. <div class="col-10">
  34. <div class="d-flex flex-row">
  35. <div class="p-2">
  36. <button class="btn btn-sm btn-light text-primary"><i class="fa fa-plus" aria-hidden="true" type="submit"></i> 新增判断</button>
  37. </div>
  38. </div>
  39. <div>
  40. <table class="table table-sm table-bordered">
  41. <tr class="text-center"><th>序号</th><th>允许计量</th><th>条件</th><th>计量下限</th><th>计量上限</th><th>超限提示</th></tr>
  42. <tbody>
  43. </tbody>
  44. </table>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. <div stype="display: none">
  51. <form id="hiddenForm" action="" method="POST">
  52. <input type="hidden" name="_csrf_j2" value="<%= ctx.csrf %>" />
  53. <input type="hidden" id="extra" name="" value="">
  54. </form>
  55. </div>
  56. </div>
  57. <script>
  58. const limitList = JSON.parse('<%- JSON.stringify(limitList) %>');
  59. const limitOptions = JSON.parse('<%- JSON.stringify(limitOptions) %>');
  60. $('.table-file').click(function(e) {
  61. if (this.getAttribute('renaming') === '1') return;
  62. if (e.target.tagName === 'A' || e.target.tagName === 'I' || e.target.tagName === 'INPUT') return;
  63. window.location.href = '/setting/limit?id=' + this.getAttribute('limitId');
  64. });
  65. $('body').on('mouseenter', ".table-file", function(){
  66. $(this).children(".btn-group-table").css("display","block");
  67. });
  68. $('body').on('mouseleave', ".table-file", function(){
  69. $(this).children(".btn-group-table").css("display","none");
  70. });
  71. const hiddenSubmit = function(action, extraName, extraValue) {
  72. $('#hiddenForm').attr('action', action);
  73. if (extraName) {
  74. $('#extra').attr('name', extraName);
  75. $('#extra').val(extraValue);
  76. };
  77. $('#hiddenForm').submit();
  78. };
  79. $('body').on('click', 'a[name=renameLimit]', function(e){
  80. $(this).parents('.table-file').attr('renaming', '1');
  81. $(`#${this.getAttribute('aria-describedby')}`).remove();
  82. const limitId = $(this).parents('.table-file').attr('limitId');
  83. const limit = limitList.find(x => { return x.limit_id === limitId; });
  84. if (!limit) return;
  85. const html = [];
  86. html.push(`<div><input type="text" class="form-control form-control-sm" style="width: 160px" value="${limit.name}"/></div>`);
  87. html.push('<div class="btn-group-table" style="display: none;">',
  88. `<a href="javascript: void(0)" name="renameOk" class="mr-1"><i class="fa fa-check fa-fw"></i></a>`,
  89. `<a href="javascript: void(0)" class="mr-1" name="renameCancel"><i class="fa fa-remove fa-fw text-danger"></i></a>`, '</div>');
  90. $(`.table-file[limitId=${limitId}]`).html(html.join(''));
  91. e.stopPropagation();
  92. });
  93. $('body').on('click', 'a[name=renameOk]', function(){
  94. const limitId = $(this).parents('.table-file').attr('limitId');
  95. const newName = $(this).parents('.table-file').find('input').val();
  96. hiddenSubmit('/setting/limit/save?id='+limitId, 'name', newName);
  97. $(this).parents('.table-file').attr('renaming', '0');
  98. });
  99. $('body').on('click', 'a[name=renameCancel]', function() {
  100. $(this).parents('.table-file').attr('renaming', '0');
  101. const limitId = $(this).parents('.table-file').attr('limitId');
  102. const limit = limitList.find(x => { return x.limit_id === limitId; });
  103. if (!limit) return;
  104. const html = [];
  105. html.push(`<div>${limit.name}</div>`);
  106. html.push('<div class="btn-group-table" style="display: none;">',
  107. '<a href="javascript: void(0);" class="mr-1" data-toggle="tooltip" data-placement="bottom" data-original-title="编辑" name="renameLimit"><i class="fa fa-pencil fa-fw"></i></a>',
  108. '<a href="javascript: void(0);" class="mr-1" data-toggle="tooltip" data-placement="bottom" data-original-title="删除" name="delLimit"><i class="fa fa-trash-o fa-fw text-danger"></i></a>',
  109. '</div>');
  110. $(`.table-file[limitId=${limitId}]`).html(html.join(''));
  111. });
  112. $('body').on('click', 'a[name=delLimit]', function(e){
  113. e.stopPropagation();
  114. const limitId = $(this).parents('.table-file').attr('limitId');
  115. hiddenSubmit('/setting/limit/del?id='+limitId);
  116. });
  117. $(document).ready(() => {
  118. autoFlashHeight();
  119. });
  120. </script>