permission.ejs 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <% include ./sub_menu.ejs %>
  2. <div class="panel-content">
  3. <div class="panel-title">
  4. <div class="title-main">
  5. <h2>账号管理
  6. <a href="#sel-batch" data-toggle="modal" data-target="#sel-batch" class="btn btn-primary btn-sm pull-right mr-1">选择账号</a>
  7. <a href="/setting/user" class="btn btn-primary btn-sm pull-right mr-1">新增账号</a>
  8. </h2>
  9. </div>
  10. </div>
  11. <div class="content-wrap">
  12. <div class="c-body">
  13. <div class="sjs-height-0">
  14. <nav class="nav nav-tabs m-3" role="tablist">
  15. <a class="nav-item nav-link" href="/sp/<%- ctx.subProject.id %>/setting/user" aria-selected="false">账号列表</a>
  16. <a class="nav-item nav-link active" href="/sp/<%- ctx.subProject.id %>/setting/user/permission?ptype=<%- ptype %><%- (keyword ? '&keyword=' + keyword : '')%>" aria-selected="true">模块权限</a>
  17. <a class="nav-item nav-link" href="/sp/<%- ctx.subProject.id %>/setting/user/data-range?module=file" aria-selected="false">数据范围</a>
  18. <div class="ml-auto">
  19. <form class="input-group input-group-sm" method="get">
  20. <input type="hidden" class="form-control" value="<%- ptype %>" name="ptype">
  21. <input type="text" class="form-control" placeholder="账号/姓名/单位/手机 搜索" aria-label="账号/姓名/单位/手机 搜索" value="<%- keyword %>" aria-describedby="button-addon2" name="keyword">
  22. <div class="input-group-append">
  23. <button class="btn btn-outline-primary" type="submit" id="search"><i class="fa fa-search"></i></button>
  24. </div>
  25. </form>
  26. </div>
  27. </nav>
  28. <div class="tab-content m-3">
  29. <div id="user-purview" class="tab-pane active">
  30. <div class="row">
  31. <div class="col-3">
  32. <dl class="list-group">
  33. <a href="/sp/<%- ctx.subProject.id %>/setting/user/permission?ptype=datacollect<%- (keyword ? '&keyword=' + keyword : '')%>" class="list-group-item list-group-item-action <%- (ptype === 'datacollect' ? 'active' : '') %>">决策大屏</a>
  34. <a href="/sp/<%- ctx.subProject.id %>/setting/user/permission?ptype=info<%- (keyword ? '&keyword=' + keyword : '')%>" class="list-group-item list-group-item-action <%- (ptype === 'info' ? 'active' : '') %>">项目概况</a>
  35. <a href="/sp/<%- ctx.subProject.id %>/setting/user/permission?ptype=contract<%- (keyword ? '&keyword=' + keyword : '')%>" class="list-group-item list-group-item-action <%- (ptype === 'contract' ? 'active' : '') %>">项目合同</a>
  36. <a href="/sp/<%- ctx.subProject.id %>/setting/user/permission?ptype=file<%- (keyword ? '&keyword=' + keyword : '')%>" class="list-group-item list-group-item-action <%- (ptype === 'file' ? 'active' : '') %>">资料管理</a>
  37. <a href="/sp/<%- ctx.subProject.id %>/setting/user/permission?ptype=budget<%- (keyword ? '&keyword=' + keyword : '')%>" class="list-group-item list-group-item-action <%- (ptype === 'budget' ? 'active' : '') %>">项目进度</a>
  38. <dd class="list-group-item">资金监管</dd>
  39. <a href="/sp/<%- ctx.subProject.id %>/setting/user/permission?ptype=fund_trans<%- (keyword ? '&keyword=' + keyword : '')%>" class="list-group-item list-group-item-action <%- (ptype === 'fund_trans' ? 'active' : '') %>"><span class="ml-4"></span>资金划拨</a>
  40. <a href="/sp/<%- ctx.subProject.id %>/setting/user/permission?ptype=fund_pay<%- (keyword ? '&keyword=' + keyword : '')%>" class="list-group-item list-group-item-action <%- (ptype === 'fund_pay' ? 'active' : '') %>"><span class="ml-4"></span>资金支付</a>
  41. <a href="/sp/<%- ctx.subProject.id %>/setting/user/permission?ptype=payment<%- (keyword ? '&keyword=' + keyword : '')%>" class="list-group-item list-group-item-action <%- (ptype === 'payment' ? 'active' : '') %>">支付审批</a>
  42. </dl>
  43. </div>
  44. <div class="col-9">
  45. <div class="card mb-2">
  46. <div class="card-header d-flex justify-content-between">
  47. <div>
  48. <%- ptypeStr %>
  49. <% if (ptypeHint) { %>
  50. <div class="btn-group">
  51. <a href="javascript:void(0);" data-toggle="dropdown" title="权限说明" aria-expanded="false"><i class="fa fa-question-circle"></i></a>
  52. <div class="dropdown-menu bg-dark" style="will-change: transform;">
  53. <% for (const i of ptypeHint) { %>
  54. <div class="dropdown-item text-light bg-dark"><%- i %></div>
  55. <% } %>
  56. </div>
  57. </div>
  58. <% } %>
  59. </div>
  60. <div class="ml-auto">
  61. <div class="form-check form-check-inline">
  62. <span style="margin:0 .5rem 0 1rem; font-weight: bold;">筛选已授权</span>
  63. <div class="custom-control custom-switch">
  64. <input type="checkbox" class="custom-control-input" id="filter-valid">
  65. <label class="custom-control-label" for="filter-valid"></label>
  66. </div>
  67. </div>
  68. <button class="btn btn-sm btn-warning" id="save-permission" style="display: none;">保存</button>
  69. </div>
  70. </div>
  71. <div class="card-body py-2" id="sp-pageshow-content">
  72. <div class="scroll-y" style="height: 100%">
  73. <table class="table table-hover table-bordered table-sm">
  74. <thead><tr class="text-center" style="position: sticky; top: 0; z-index: 10">
  75. <th width="120px">用户</th>
  76. <th width="240px">公司</th>
  77. <th width="150px">职位</th>
  78. <% for (const key in permissionConst) { %>
  79. <th><%- permissionConst[key].title %><br/><input class="ml-1" type="checkbox" name="permission-check-all" ptype="<%- ptype %>" pvalue="<%- permissionConst[key].value %>" style="vertical-align: middle"></th>
  80. <% } %>
  81. </tr>
  82. </thead>
  83. <tbody class="text-center">
  84. <% for (const user of subProjectAccountList) { %>
  85. <% const tp = user[ptype + '_permission'].split(','); %>
  86. <tr name="user-permission" class="permission-parent" pid="<%- user.permission_id %>">
  87. <td><%- user.name %></td>
  88. <td><%- user.company %></td>
  89. <td><%- user.role %></td>
  90. <% for (const key in permissionConst) { %>
  91. <td><input type="checkbox" name="permission-check" ptype="<%- ptype %>" pvalue="<%- permissionConst[key].value %>" <%- (tp.indexOf(permissionConst[key].value + '') >= 0 ? 'checked' : '') %> onchange="$('#save-permission').show();"></td>
  92. <% } %>
  93. </tr>
  94. <% } %>
  95. </tbody>
  96. </table>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <script>
  109. const accountGroup = JSON.parse(unescape('<%- escape(JSON.stringify(accountGroup)) %>'));
  110. const accountList = JSON.parse(unescape('<%- escape(JSON.stringify(accountList)) %>'));
  111. const permissionConst = JSON.parse(unescape('<%- escape(JSON.stringify(permissionConst)) %>'));
  112. const reCalcHeight = function () {
  113. $('#sp-pageshow-content').height($(window).height() - 187);
  114. }
  115. reCalcHeight();
  116. $(window).resize(reCalcHeight);
  117. </script>