index.vue 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <!--
  2. * @Descripttion: 用户权限--权限管理
  3. * @version:
  4. * @Author: qianlishi
  5. * @Date: 2021-12-11 14:48:27
  6. * @LastEditors: qianlishi
  7. * @LastEditTime: 2022-03-09 09:22:40
  8. -->
  9. <template>
  10. <anji-crud ref="listPage" :option="crudOption" />
  11. </template>
  12. <script>
  13. import {
  14. accessAuthorityList,
  15. accessAuthorityAdd,
  16. accessAuthorityDeleteBatch,
  17. accessAuthorityUpdate,
  18. accessAuthorityDetail
  19. } from "@/api/accessAuthority";
  20. export default {
  21. name: "AccessAuthority",
  22. data() {
  23. return {
  24. crudOption: {
  25. // 使用菜单做为页面标题
  26. title: "权限管理",
  27. // 详情页中输入框左边文字宽度
  28. labelWidth: "120px",
  29. // 查询表单条件
  30. queryFormFields: [
  31. {
  32. inputType: "anji-tree", // 该类型将内容区一分为二,左侧20%显示树
  33. anjiTreeOption: {
  34. url: "/accessAuthority/menuTree", // 请求接口,将响应中id字段做为tree的id,将label字段做为tree的label
  35. enableFilter: true, // tree 是否有input 过滤
  36. isOpen: true // true tree 展开 false 关闭
  37. },
  38. label: "所属菜单",
  39. field: "target"
  40. },
  41. {
  42. inputType: "anji-select", //form表单类型 input|input-number|anji-select(传递url或者dictCode)|anji-tree(左侧树)|date|datetime|datetimerange
  43. anjiSelectOption: {
  44. dictCode: "ENABLE_FLAG"
  45. },
  46. label: "启用状态",
  47. field: "enableFlag"
  48. },
  49. {
  50. inputType: "input",
  51. label: "菜单代码",
  52. field: "target"
  53. },
  54. {
  55. inputType: "input",
  56. label: "菜单名称",
  57. field: "targetName"
  58. },
  59. {
  60. inputType: "input",
  61. label: "按钮代码",
  62. field: "action"
  63. },
  64. {
  65. inputType: "input",
  66. label: "按钮名称",
  67. field: "actionName"
  68. }
  69. ],
  70. // 表头按钮
  71. tableButtons: [
  72. {
  73. label: "新增",
  74. type: "", // primary、success、info、warning、danger
  75. permission: "authorityManage:insert", // 按钮权限码
  76. icon: "el-icon-plus",
  77. plain: true,
  78. click: () => {
  79. return this.$refs.listPage.handleOpenEditView("add");
  80. }
  81. },
  82. {
  83. label: "删除",
  84. type: "danger",
  85. permission: "authorityManage:delete",
  86. icon: "el-icon-delete",
  87. plain: false,
  88. click: () => {
  89. return this.$refs.listPage.handleDeleteBatch();
  90. }
  91. }
  92. ],
  93. // 表格行按钮
  94. rowButtons: [
  95. {
  96. label: "编辑",
  97. permission: "authorityManage:update",
  98. click: row => {
  99. return this.$refs.listPage.handleOpenEditView("edit", row);
  100. }
  101. },
  102. {
  103. label: "删除",
  104. permission: "authorityManage:delete",
  105. click: row => {
  106. return this.$refs.listPage.handleDeleteBatch(row);
  107. }
  108. }
  109. ],
  110. // 操作按钮
  111. buttons: {
  112. query: {
  113. api: accessAuthorityList,
  114. permission: "authorityManage:query"
  115. },
  116. queryByPrimarykey: {
  117. api: accessAuthorityDetail,
  118. permission: "authorityManage:query"
  119. },
  120. add: {
  121. api: accessAuthorityAdd,
  122. permission: "authorityManage:insert"
  123. },
  124. delete: {
  125. api: accessAuthorityDeleteBatch,
  126. permission: "authorityManage:delete"
  127. },
  128. edit: {
  129. api: accessAuthorityUpdate,
  130. permission: "authorityManage:update"
  131. },
  132. rowButtonsWidth: 150 // row自定义按钮表格宽度
  133. },
  134. // 表格列
  135. columns: [
  136. {
  137. label: "",
  138. field: "id",
  139. primaryKey: true, // 根据主键查询详情或者根据主键删除时, 主键的
  140. tableHide: true, // 表格中不显示
  141. editHide: true // 编辑弹框中不显示
  142. },
  143. {
  144. label: "菜单代码", //目标菜单
  145. placeholder: "",
  146. field: "target",
  147. editField: "target",
  148. tableHide: true, // 表格中不显示
  149. inputType: "input",
  150. rules: [
  151. { required: true, message: "目标菜单必填", trigger: "blur" },
  152. { min: 1, max: 64, message: "不超过64个字符", trigger: "blur" }
  153. ],
  154. disabled: false
  155. },
  156. {
  157. label: "菜单名称", //目标菜单名称
  158. placeholder: "",
  159. field: "targetName",
  160. sortable: true,
  161. fieldTableRowRenderer: row => {
  162. return `${row["targetName"]}[${row["target"]}]`;
  163. },
  164. editField: "targetName",
  165. inputType: "input",
  166. rules: [
  167. { required: true, message: "目标菜单名称必填", trigger: "blur" },
  168. { min: 1, max: 128, message: "不超过128个字符", trigger: "blur" }
  169. ],
  170. disabled: false
  171. },
  172. {
  173. label: "按钮代码", //目标按钮
  174. placeholder: "",
  175. field: "action",
  176. tableHide: true, // 表格中不显示
  177. editField: "action",
  178. inputType: "input",
  179. rules: [
  180. { required: true, message: "目标必填", trigger: "blur" },
  181. { min: 1, max: 64, message: "不超过64个字符", trigger: "blur" }
  182. ],
  183. disabled: false
  184. },
  185. {
  186. label: "按钮名称", //目标按钮名称
  187. placeholder: "",
  188. field: "actionName",
  189. fieldTableRowRenderer: row => {
  190. return `${row["actionName"]}[${row["action"]}]`;
  191. },
  192. sortable: true,
  193. editField: "actionName",
  194. inputType: "input",
  195. rules: [
  196. { required: true, message: "目标按钮名称必填", trigger: "blur" },
  197. { min: 1, max: 128, message: "不超过128个字符", trigger: "blur" }
  198. ],
  199. disabled: false
  200. },
  201. {
  202. label: "启用状态", //0--已禁用 1--已启用 DIC_NAME=ENABLE_FLAG
  203. placeholder: "",
  204. field: "enableFlag",
  205. fieldTableRowRenderer: row => {
  206. return this.getDictLabelByCode("ENABLE_FLAG", row["enableFlag"]);
  207. },
  208. editField: "enableFlag",
  209. inputType: "anji-select",
  210. anjiSelectOption: {
  211. dictCode: "ENABLE_FLAG" //指定数据字典
  212. },
  213. colorStyle: {
  214. 0: "table-danger", //key为editField渲染的值(字典的提交值)'红色': 'danger','蓝色': 'primary','绿色': 'success','黄色': 'warning','灰色': 'info','白色':''
  215. 1: "table-success"
  216. },
  217. rules: [
  218. { required: true, message: "启用状态必填", trigger: "blur" }
  219. ],
  220. disabled: false
  221. },
  222. {
  223. label: "排序", //
  224. placeholder: "",
  225. field: "sort",
  226. editField: "sort",
  227. inputType: "input",
  228. rules: [],
  229. disabled: false
  230. },
  231. {
  232. label: "创建人",
  233. placeholder: "",
  234. field: "createBy",
  235. columnType: "expand",
  236. editField: "createBy",
  237. inputType: "input",
  238. editHide: "hideOnAdd", // 编辑弹框中不显示 true/false/'hideOnAdd hideOnView hideOnEdit'
  239. disabled: true
  240. },
  241. {
  242. label: "创建时间",
  243. placeholder: "",
  244. field: "createTime",
  245. columnType: "expand",
  246. editField: "createTime",
  247. inputType: "input",
  248. editHide: "hideOnAdd", // 编辑弹框中不显示 true/false/'hideOnAdd hideOnView hideOnEdit'
  249. disabled: true
  250. },
  251. {
  252. label: "修改人",
  253. placeholder: "",
  254. field: "updateBy",
  255. columnType: "expand",
  256. editField: "updateBy",
  257. inputType: "input",
  258. editHide: "hideOnAdd", // 编辑弹框中不显示 true/false/'hideOnAdd hideOnView hideOnEdit'
  259. disabled: true
  260. },
  261. {
  262. label: "修改时间",
  263. placeholder: "",
  264. field: "updateTime",
  265. columnType: "expand",
  266. editField: "updateTime",
  267. inputType: "input",
  268. editHide: "hideOnAdd", // 编辑弹框中不显示 true/false/'hideOnAdd hideOnView hideOnEdit'
  269. disabled: true
  270. }
  271. ]
  272. }
  273. };
  274. }
  275. };
  276. </script>