userAssignRole.html 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <!--<%@ page contentType="text/html;charset=UTF-8"%>-->
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <title>账户角色分配</title>
  6. <!--<%@ include file="/webpage/include/headinspinia.jsp"%>-->
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
  8. <meta charset="utf-8"/>
  9. <meta name="viewport"
  10. content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
  11. <link rel="stylesheet"
  12. href="/common-assets/plugins/font-awesome/css/font-awesome.min.css"/>
  13. <link rel="stylesheet" href="/common-assets/plugins/outdated/bootstrap/css/bootstrap.min.css"/>
  14. <link rel="stylesheet" href="/common-assets/css/outdated/style.css"/>
  15. <link rel="stylesheet"
  16. href="/common-assets/plugins/outdated/metisMenu/2.7/metisMenu.min.css"/>
  17. <link rel="stylesheet"
  18. href="/common-assets/plugins/outdated/bootstrap-toastr/2.0.1/toastr.min.css"/>
  19. <link rel="stylesheet" href="/common-assets/plugins/outdated/icheck/custom.css"/>
  20. <script src='/common-assets/js/jquery-2.1.1.js'></script>
  21. <script src="/common-assets/js/outdated/bootstrap.min.js"></script>
  22. <script src="/common-assets/js/outdated/jquery.form-3.51.0.min.js"></script>
  23. <script src="/common-assets/plugins/layer/3.0.3/layer.js"></script>
  24. <script src="/common-assets/plugins/outdated/pace/pace.min.js"></script>
  25. <script src="/common-assets/plugins/outdated/slimscroll/jquery.slimscroll.min.js"></script>
  26. <script src="/common-assets/plugins/outdated/bootstrap-toastr/2.0.1/toastr.min.js"></script>
  27. <script src="/common-assets/plugins/outdated/jquery-validation/jquery.validate-1.11.1.min.js"></script>
  28. <script src="/common-assets/plugins/outdated/jquery-validation/localization/messages_zh.js"></script>
  29. <script src="/common-assets/plugins/outdated/icheck/icheck.min.js"></script>
  30. <script src="/common-assets/plugins/outdated/metisMenu/2.7/metisMenu.js"></script>
  31. <script src="/common-assets/plugins/dotize/dotize.js"></script>
  32. <script src="/common-assets/js/promise-polyfill.min.js"></script>
  33. <!-- 开发阶段使用vue.js以获取编译信息 -->
  34. <script src="/common-assets/plugins/vue/2.5.17/vue.min.js"></script>
  35. <script src="/common-assets/plugins/axios/0.18.0/axios.min.js"></script>
  36. <!-- 引入组件库 -->
  37. <script src="/common-assets/plugins/element-ui/lib/index.js"></script>
  38. <link rel="stylesheet" href="/common-assets/css/outdated/page.css">
  39. <!--找不到文件-->
  40. <link rel="stylesheet"
  41. href="/common-assets/plugins/outdated/bootstrap-duallistbox/css/bootstrap-duallistbox.min.css">
  42. <link rel="stylesheet"
  43. href="/common-assets/plugins/outdated/bootstrap-table/1.11.1/css/bootstrap-table.min.css">
  44. <!--找不到文件-->
  45. <script
  46. src="/common-assets/plugins/outdated/bootstrap-duallistbox/js/jquery.bootstrap-duallistbox.min.js"></script>
  47. <script
  48. src="/common-assets/plugins/outdated/bootstrap-table/1.11.1/js/bootstrap-table.min.js"></script>
  49. <script
  50. src="/common-assets/plugins/outdated/bootstrap-table/1.11.1/js/bootstrap-table-zh-CN.min.js"></script>
  51. <script>
  52. function getUrlParamString (name) {
  53. var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
  54. var r = window.location.search.substr(1).match(reg)
  55. if (r != null) return unescape(r[2])
  56. return null
  57. }
  58. var orgId = getUrlParamString('orgId')
  59. var userId = getUrlParamString('userId')
  60. </script>
  61. <script src="/common-assets/js/project.config.js"></script>
  62. <script src="/common-assets/js/outdated/common.js"></script>
  63. </head>
  64. <body class="pace-done white-bg">
  65. <div class="container-fluid">
  66. <div class="row">
  67. <div class="col-sm-12 col-lg-12">
  68. <div class="ibox float-e-margins">
  69. <div class="ibox-title ">
  70. <h5>角色分配</h5>
  71. <div class="ibox-tools">
  72. <select id="select_appId"></select> <a class="collapse-link">
  73. <i class="fa fa-chevron-up"></i>
  74. </a>
  75. </div>
  76. </div>
  77. <div class="ibox-content" id="assignRoleIbox">
  78. <div class="row">
  79. <div class="col-sm-12">
  80. <div class="form-group">
  81. <div class="col-sm-2"></div>
  82. <div class="col-sm-8">
  83. <select id="userRights" name="userRights" multiple="multiple">
  84. </select>
  85. </div>
  86. <div class="col-sm-2"></div>
  87. </div>
  88. </div>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <script type="text/javascript">
  96. var userListContentVm = new Vue({
  97. el: '#userListContent',
  98. data: function () {
  99. return {
  100. /**
  101. * 页面加载状态
  102. */
  103. pageLoading: true,
  104. /**
  105. * 页面字典列表
  106. */
  107. pageDictMap: {},
  108. }
  109. },
  110. computed: {},
  111. methods: {},
  112. created: function () {
  113. },
  114. mounted: function () {
  115. initConfig(function () {
  116. // 初始化appId
  117. $.ajax({
  118. cache: false,
  119. type: 'GET',
  120. dataType: 'json',
  121. async: false,
  122. headers: {
  123. Authorization: 'Bearer ' + auth,
  124. },
  125. url: WEB_ROOT + '/sys/app/getAppList?random=' + new Date(),
  126. error: function () {
  127. toastr.error('请求失败')
  128. },
  129. success: function (result) {
  130. var data = result.list
  131. var appIds = data.map(function (item) {
  132. return item.id
  133. })
  134. var appNames = data.map(function (item) {
  135. return item.appName
  136. })
  137. $select_appId = $('#select_appId')
  138. for (var i = 0; i < data.length; i++) {
  139. $select_appId.append('<option value=\'' + data[i].id + '\'>' + data[i].appName
  140. + '</option>')
  141. }
  142. $select_appId.val('1')
  143. //初始化多选框
  144. initRole($select_appId.val())
  145. },
  146. })
  147. })
  148. //滚动条
  149. $('.container-fluid').slimScroll({
  150. height: '100%',
  151. railOpacity: 0.9,
  152. })
  153. },
  154. })
  155. function initRole (appId) {
  156. var roleUrl = WEB_ROOT + '/sys/user/getUserAssignRole?orgId=' + orgId + '&userId=' + userId
  157. + '&appId=' + appId
  158. loadUserRights(roleUrl)
  159. }
  160. $select_appId = $('#select_appId')
  161. $select_appId.change(function () {
  162. //var appId=$(this).children('option:selected').val();// 这就是selected的值
  163. var appId = $select_appId.val()
  164. initRole(appId)
  165. })
  166. function loadUserRights (rightsUrl) {
  167. $('#userRights').load(rightsUrl, function (response, status, xhr) {
  168. if (status == 'error') {
  169. var msg = '请求失败!'
  170. toastr.error(msg)
  171. }
  172. $('#userRights').bootstrapDualListbox({
  173. nonSelectedListLabel: '可选择的角色',
  174. selectedListLabel: '已选择的角色',
  175. infoText: '共{0}个角色',
  176. filterPlaceHolder: '过滤',
  177. filterTextClear: '选择全部',
  178. infoTextEmpty: '空',
  179. infoTextFiltered: '{1}个中的{0}个',
  180. })
  181. $('#userRights').bootstrapDualListbox('refresh')
  182. })
  183. }
  184. //确认自定义js
  185. function doSubmit (callback) {
  186. var appId = $('#select_appId').val()
  187. var rolesArry = $('#userRights').val()
  188. var roles = null
  189. if (rolesArry != null) {
  190. roles = rolesArry.join(',')
  191. }
  192. var idx = layer.load(1, {
  193. shade: [0.4, '#FFF'],
  194. })
  195. $.ajax({
  196. url: WEB_ROOT + '/sys/user/saveAssignRole',
  197. data: JSON.stringify({
  198. 'appId': appId,
  199. 'userId': userId,
  200. 'roles': roles,
  201. }),
  202. // cache : false,
  203. type: 'post',
  204. dataType : 'json',
  205. contentType: 'application/json',
  206. success: function (data) {
  207. layer.close(idx)
  208. if (data.type === 'success') {
  209. callback(data)
  210. } else {
  211. toastr.error(data.message)
  212. }
  213. },
  214. error: function () {
  215. layer.close(idx)
  216. toastr.error('服务器内部错误,请稍后重试!')
  217. },
  218. })
  219. }
  220. </script>
  221. </body>
  222. </html>