index.vue 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. <!--
  2. * @Descripttion: 用户权限--角色管理
  3. * @version:
  4. * @Author: Devli
  5. * @Date: 2021-7-17 10:46:27
  6. * @LastEditors: qianlishi
  7. * @LastEditTime: 2022-3-9 10:53:57
  8. -->
  9. <template>
  10. <anji-crud ref="listPage" :option="crudOption">
  11. <template v-slot:pageSection>
  12. <RoleAuthority
  13. :role-code="roleCode"
  14. :visib="dialogVisibleSetAuthorityForRole"
  15. @handleClose="dialogVisibleSetAuthorityForRole = false"
  16. />
  17. </template>
  18. </anji-crud>
  19. </template>
  20. <script>
  21. import {
  22. accessRoleList,
  23. accessRoleAdd,
  24. accessRoleDeleteBatch,
  25. accessRoleUpdate,
  26. accessRoleDetail
  27. } from "@/api/accessRole";
  28. import RoleAuthority from "@/views/accessRole/components/RoleAuthority";
  29. export default {
  30. name: "AccessRole",
  31. components: {
  32. RoleAuthority: RoleAuthority
  33. },
  34. data() {
  35. return {
  36. // 选中一个角色,点设定权限时,弹出对话框
  37. dialogVisibleSetAuthorityForRole: false,
  38. roleCode: "",
  39. // 页面渲染使用
  40. crudOption: {
  41. // 使用菜单做为页面标题
  42. title: "角色管理",
  43. // 详情页中输入框左边文字宽度
  44. labelWidth: "160px",
  45. // 表头按钮
  46. tableButtons: [
  47. {
  48. label: "新增",
  49. type: "", // primary、success、info、warning、danger
  50. permission: "roleManage:insert", // 按钮权限码
  51. icon: "el-icon-plus",
  52. plain: true,
  53. click: () => {
  54. return this.$refs.listPage.handleOpenEditView("add");
  55. }
  56. },
  57. {
  58. label: "删除",
  59. type: "danger",
  60. permission: "roleManage:delete",
  61. icon: "el-icon-delete",
  62. plain: false,
  63. click: () => {
  64. return this.$refs.listPage.handleDeleteBatch();
  65. }
  66. }
  67. ],
  68. // 表格行按钮
  69. rowButtons: [
  70. {
  71. label: "编辑",
  72. permission: "roleManage:update",
  73. click: row => {
  74. return this.$refs.listPage.handleOpenEditView("edit", row);
  75. }
  76. },
  77. {
  78. label: "分配权限",
  79. permission: "roleManage:grantAuthority",
  80. click: this.handleOpenDialogSetAuthorityForRole
  81. },
  82. {
  83. label: "删除",
  84. permission: "roleManage:delete",
  85. click: row => {
  86. return this.$refs.listPage.handleDeleteBatch(row);
  87. }
  88. }
  89. ],
  90. // 查询表单条件
  91. queryFormFields: [
  92. {
  93. inputType: "input",
  94. label: "角色编码",
  95. field: "roleCode"
  96. },
  97. {
  98. inputType: "input",
  99. label: "角色名称",
  100. field: "roleName"
  101. },
  102. {
  103. inputType: "anji-select", //form表单类型 input|input-number|anji-select(传递url或者dictCode)|anji-tree(左侧树)|date|datetime|datetimerange
  104. anjiSelectOption: {
  105. dictCode: "ENABLE_FLAG"
  106. },
  107. label: "启用状态",
  108. field: "enableFlag"
  109. }
  110. ],
  111. // 操作按钮
  112. buttons: {
  113. query: {
  114. api: accessRoleList,
  115. permission: "roleManage:query"
  116. },
  117. queryByPrimarykey: {
  118. api: accessRoleDetail,
  119. permission: "roleManage:query"
  120. },
  121. add: {
  122. api: accessRoleAdd,
  123. permission: "roleManage:insert"
  124. },
  125. delete: {
  126. api: accessRoleDeleteBatch,
  127. permission: "roleManage:delete"
  128. },
  129. edit: {
  130. api: accessRoleUpdate,
  131. permission: "roleManage:update"
  132. },
  133. rowButtonsWidth: 140 // row自定义按钮表格宽度
  134. },
  135. // 表格列
  136. columns: [
  137. {
  138. label: "",
  139. field: "id",
  140. primaryKey: true, // 根据主键查询详情或者根据主键删除时, 主键的
  141. tableHide: true, // 表格中不显示
  142. editHide: true // 编辑弹框中不显示
  143. },
  144. {
  145. label: "角色编码",
  146. placeholder: "",
  147. field: "roleCode",
  148. editField: "roleCode",
  149. tableHide: true, // 表格中不显示
  150. inputType: "input",
  151. rules: [
  152. { required: true, message: "角色编码必填", trigger: "blur" },
  153. { min: 1, max: 32, message: "不超过32个字符", trigger: "blur" }
  154. ],
  155. disabled: false
  156. },
  157. {
  158. label: "角色名称",
  159. placeholder: "",
  160. field: "roleName",
  161. fieldTableRowRenderer: row => {
  162. return `${row["roleName"]}[${row["roleCode"]}]`;
  163. },
  164. editField: "roleName",
  165. inputType: "input",
  166. rules: [
  167. { required: true, message: "角色名称必填", trigger: "blur" },
  168. { min: 1, max: 64, message: "不超过64个字符", trigger: "blur" }
  169. ],
  170. disabled: false
  171. },
  172. {
  173. label: "启用状态", //0--已禁用 1--已启用 DIC_NAME=ENABLE_FLAG
  174. placeholder: "",
  175. field: "enableFlag",
  176. fieldTableRowRenderer: row => {
  177. return this.getDictLabelByCode("ENABLE_FLAG", row["enableFlag"]);
  178. },
  179. editField: "enableFlag",
  180. inputType: "anji-select",
  181. anjiSelectOption: {
  182. dictCode: "ENABLE_FLAG" //指定数据字典
  183. },
  184. colorStyle: {
  185. 0: "table-danger", //key为editField渲染的值(字典的提交值)'红色': 'danger','蓝色': 'primary','绿色': 'success','黄色': 'warning','灰色': 'info','白色':''
  186. 1: "table-success"
  187. },
  188. rules: [
  189. { required: true, message: "启用状态必填", trigger: "blur" }
  190. ],
  191. disabled: false
  192. },
  193. {
  194. label: "创建人",
  195. placeholder: "",
  196. field: "createBy",
  197. editField: "createBy",
  198. inputType: "input",
  199. editHide: "hideOnAdd", // 编辑弹框中不显示 true/false/'hideOnAdd hideOnView hideOnEdit'
  200. disabled: true
  201. },
  202. {
  203. label: "创建时间",
  204. placeholder: "",
  205. field: "createTime",
  206. editField: "createTime",
  207. inputType: "input",
  208. editHide: "hideOnAdd", // 编辑弹框中不显示 true/false/'hideOnAdd hideOnView hideOnEdit'
  209. disabled: true
  210. },
  211. {
  212. label: "修改人",
  213. placeholder: "",
  214. field: "updateBy",
  215. editField: "updateBy",
  216. inputType: "input",
  217. editHide: "hideOnAdd", // 编辑弹框中不显示 true/false/'hideOnAdd hideOnView hideOnEdit'
  218. disabled: true
  219. },
  220. {
  221. label: "修改时间",
  222. placeholder: "",
  223. field: "updateTime",
  224. editField: "updateTime",
  225. inputType: "input",
  226. editHide: "hideOnAdd", // 编辑弹框中不显示 true/false/'hideOnAdd hideOnView hideOnEdit'
  227. disabled: true
  228. }
  229. ]
  230. }
  231. };
  232. },
  233. methods: {
  234. handleOpenDialogSetAuthorityForRole(props) {
  235. this.roleCode = props.roleCode;
  236. this.dialogVisibleSetAuthorityForRole = true;
  237. }
  238. }
  239. };
  240. </script>