haiwei-module-admin 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/package.json +54 -0
  2. package/src/api/components/account.js +58 -0
  3. package/src/api/components/auditInfo.js +30 -0
  4. package/src/api/components/auth.js +47 -0
  5. package/src/api/components/cache.js +16 -0
  6. package/src/api/components/config.js +34 -0
  7. package/src/api/components/file.js +41 -0
  8. package/src/api/components/log.js +22 -0
  9. package/src/api/components/menu.js +68 -0
  10. package/src/api/components/mime.js +10 -0
  11. package/src/api/components/module.js +18 -0
  12. package/src/api/components/permission.js +25 -0
  13. package/src/api/components/role.js +73 -0
  14. package/src/api/components/tool.js +29 -0
  15. package/src/api/index.js +13 -0
  16. package/src/components/config-admin/index.vue +47 -0
  17. package/src/components/enum-checkbox/index.vue +31 -0
  18. package/src/components/enum-radio/index.vue +31 -0
  19. package/src/components/enum-select/index.vue +31 -0
  20. package/src/components/file-download/index.vue +81 -0
  21. package/src/components/file-img/index.vue +55 -0
  22. package/src/components/file-upload/index.vue +140 -0
  23. package/src/components/file-upload-img/index.vue +263 -0
  24. package/src/components/index.js +10 -0
  25. package/src/components/login-mode-select/index.vue +11 -0
  26. package/src/components/module-select/index.vue +11 -0
  27. package/src/components/platform-select/index.vue +28 -0
  28. package/src/components/role-select/index.vue +11 -0
  29. package/src/components/upload-mixins.js +127 -0
  30. package/src/config/index.js +18 -0
  31. package/src/index.js +69 -0
  32. package/src/main.js +5 -0
  33. package/src/module.js +10 -0
  34. package/src/routes/index.js +3 -0
  35. package/src/store/index.js +4 -0
  36. package/src/views/account/components/save/index.vue +65 -0
  37. package/src/views/account/index/cols.js +50 -0
  38. package/src/views/account/index/index.vue +127 -0
  39. package/src/views/account/index/page.js +57 -0
  40. package/src/views/auditInfo/components/details/index.vue +64 -0
  41. package/src/views/auditInfo/index/cols.js +63 -0
  42. package/src/views/auditInfo/index/index.vue +118 -0
  43. package/src/views/auditInfo/index/page.js +34 -0
  44. package/src/views/button/permission-bind/index.vue +50 -0
  45. package/src/views/cache/index/cols.js +10 -0
  46. package/src/views/cache/index/index.vue +64 -0
  47. package/src/views/cache/index/page.js +29 -0
  48. package/src/views/config/index.vue +43 -0
  49. package/src/views/config/library/components/auth/index.vue +165 -0
  50. package/src/views/config/library/components/component/index.vue +149 -0
  51. package/src/views/config/library/components/path/index.vue +45 -0
  52. package/src/views/config/library/components/quartz/index.vue +66 -0
  53. package/src/views/config/library/components/system/index.vue +58 -0
  54. package/src/views/config/library/form-mixins.js +25 -0
  55. package/src/views/config/library/index.vue +76 -0
  56. package/src/views/config/module/index.vue +64 -0
  57. package/src/views/config/page.js +21 -0
  58. package/src/views/file/index/cols.js +53 -0
  59. package/src/views/file/index/index.vue +52 -0
  60. package/src/views/file/index/page.js +42 -0
  61. package/src/views/home/components/bottom/index.vue +217 -0
  62. package/src/views/home/components/top-left/index.vue +43 -0
  63. package/src/views/home/components/top-right/index.vue +148 -0
  64. package/src/views/home/index.vue +27 -0
  65. package/src/views/home/page.js +15 -0
  66. package/src/views/icon/index.vue +92 -0
  67. package/src/views/icon/page.js +15 -0
  68. package/src/views/log/login-log/cols.js +43 -0
  69. package/src/views/log/login-log/index.vue +86 -0
  70. package/src/views/log/login-log/page.js +27 -0
  71. package/src/views/menu/components/add/components/link/index.vue +106 -0
  72. package/src/views/menu/components/add/components/mixins.js +83 -0
  73. package/src/views/menu/components/add/components/node/index.vue +53 -0
  74. package/src/views/menu/components/add/components/route/index.vue +122 -0
  75. package/src/views/menu/components/add/index.vue +86 -0
  76. package/src/views/menu/components/edit/components/link/index.vue +106 -0
  77. package/src/views/menu/components/edit/components/mixins.js +80 -0
  78. package/src/views/menu/components/edit/components/node/index.vue +53 -0
  79. package/src/views/menu/components/edit/components/route/index.vue +122 -0
  80. package/src/views/menu/components/edit/index.vue +95 -0
  81. package/src/views/menu/components/tree/index.vue +153 -0
  82. package/src/views/menu/index/cols.js +46 -0
  83. package/src/views/menu/index/index.vue +175 -0
  84. package/src/views/menu/index/page.js +48 -0
  85. package/src/views/mime/components/save/index.vue +45 -0
  86. package/src/views/mime/index/cols.js +16 -0
  87. package/src/views/mime/index/index.vue +55 -0
  88. package/src/views/mime/index/page.js +42 -0
  89. package/src/views/module/components/page-list/index.vue +234 -0
  90. package/src/views/module/components/permission-list/cols.js +36 -0
  91. package/src/views/module/components/permission-list/index.vue +90 -0
  92. package/src/views/module/index/index.vue +226 -0
  93. package/src/views/module/index/page.js +21 -0
  94. package/src/views/role/components/menu-bind/index.vue +85 -0
  95. package/src/views/role/components/page-bind/index.vue +221 -0
  96. package/src/views/role/components/platform-bind/index.vue +105 -0
  97. package/src/views/role/components/save/index.vue +45 -0
  98. package/src/views/role/components/tree/index.vue +112 -0
  99. package/src/views/role/index/index.vue +67 -0
  100. package/src/views/role/index/page.js +64 -0
@@ -0,0 +1,112 @@
1
+ <template>
2
+ <nm-box page header refresh title="角色列表" icon="role" @refresh="refresh">
3
+ <template v-slot:toolbar>
4
+ <nm-button :code="buttons.add.code" type="text" icon="add" @click="add" />
5
+ <nm-button :code="buttons.edit.code" type="text" icon="edit" @click="edit" :disabled="canEdit" />
6
+ </template>
7
+ <el-tree ref="tree" v-bind="tree" v-on="on">
8
+ <span style="width:100%;height:32px;line-height:32px;" slot-scope="{ data }">
9
+ <el-tooltip v-if="data.isSpecified" effect="dark" content="指定角色,在其他业务模块中硬编码的角色,不允许编辑删除" placement="top">
10
+ <nm-icon class="nm-size-20 nm-text-warning" name="star-fill" />
11
+ </el-tooltip>
12
+ <nm-icon class="nm-size-20" v-else name="role" />
13
+ <span class="nm-m-l-5" :title="data.remarks">{{ data.label }}</span>
14
+ <nm-button v-if="!data.isSpecified" :code="buttons.del.code" type="text" icon="delete" class="nm-pull-right nm-text-danger" @click.native.stop="del(data)" />
15
+ </span>
16
+ </el-tree>
17
+
18
+ <!--保存页-->
19
+ <save-page :id="curr.id" :visible.sync="dialog.save" @success="refresh" />
20
+ </nm-box>
21
+ </template>
22
+ <script>
23
+ import page from '../../index/page'
24
+ import SavePage from '../save'
25
+ const api = $api.admin.role
26
+ export default {
27
+ components: { SavePage },
28
+ data() {
29
+ return {
30
+ tree: {
31
+ data: [],
32
+ nodeKey: 'id',
33
+ highlightCurrent: true
34
+ },
35
+ on: {
36
+ 'current-change': this.onTreeChange
37
+ },
38
+ selection: null,
39
+ curr: { id: '' },
40
+ dialog: {
41
+ save: false
42
+ },
43
+ buttons: page.buttons
44
+ }
45
+ },
46
+ computed: {
47
+ canEdit() {
48
+ return !this.selection || this.selection.isSpecified
49
+ }
50
+ },
51
+ methods: {
52
+ //刷新
53
+ refresh() {
54
+ api.query().then(data => {
55
+ let treeData = data.rows.map(m => {
56
+ return {
57
+ id: m.id,
58
+ label: m.name,
59
+ remarks: m.remarks,
60
+ isSpecified: m.isSpecified
61
+ }
62
+ })
63
+ this.tree.data = treeData
64
+
65
+ //选中第一个
66
+ if (treeData.length > 0) {
67
+ this.selection = treeData[0]
68
+ this.$nextTick(() => {
69
+ this.$refs.tree.setCurrentKey(this.selection.id)
70
+ this.$emit('change', this.selection)
71
+ })
72
+ }
73
+ })
74
+ },
75
+ add() {
76
+ this.curr.id = ''
77
+ this.dialog.save = true
78
+ },
79
+ edit() {
80
+ if (!this.selection) {
81
+ this._warning('请选择要修改的角色')
82
+ return
83
+ }
84
+ this.curr.id = this.selection.id
85
+ this.dialog.save = true
86
+ },
87
+ del(role) {
88
+ this._delete(async () => {
89
+ this._openLoading('正在删除,请稍后...')
90
+ api
91
+ .remove(role.id)
92
+ .then(() => {
93
+ this._closeLoading()
94
+ this._success('删除成功~')
95
+ this.refresh()
96
+ })
97
+ .catch(() => {
98
+ this._closeLoading()
99
+ })
100
+ }, this.msg).catch(() => {})
101
+ },
102
+ onTreeChange(data) {
103
+ if (this.selection === data) return
104
+ this.selection = data
105
+ this.$emit('change', this.selection)
106
+ }
107
+ },
108
+ created() {
109
+ this.refresh()
110
+ }
111
+ }
112
+ </script>
@@ -0,0 +1,67 @@
1
+ <template>
2
+ <nm-container>
3
+ <nm-split v-model="split">
4
+ <template v-slot:left>
5
+ <role-tree ref="tree" @change="onTreeChange" />
6
+ </template>
7
+ <template v-slot:right>
8
+ <nm-tabs>
9
+ <el-tabs type="border-card">
10
+ <el-tab-pane v-if="_hasButton(buttons.bindMenus)">
11
+ <span slot="label"><nm-icon name="menu" /> 菜单绑定</span>
12
+ <menu-bind :id="roleId" />
13
+ </el-tab-pane>
14
+ <el-tab-pane v-if="_hasButton(buttons.bindPages)" lazy>
15
+ <span slot="label"><nm-icon name="web" /> 页面授权</span>
16
+ <page-bind :id="roleId" />
17
+ </el-tab-pane>
18
+ <el-tab-pane v-if="_hasButton(buttons.bindPlatform)" lazy>
19
+ <span slot="label"><nm-icon name="android" /> 平台授权</span>
20
+ <platform-bind :id="roleId" />
21
+ </el-tab-pane>
22
+ </el-tabs>
23
+ </nm-tabs>
24
+ </template>
25
+ </nm-split>
26
+ </nm-container>
27
+ </template>
28
+ <script>
29
+ import { mixins } from 'netmodular-ui'
30
+ import page from './page'
31
+ import RoleTree from '../components/tree'
32
+ import MenuBind from '../components/menu-bind'
33
+ import PageBind from '../components/page-bind'
34
+ import PlatformBind from '../components/platform-bind'
35
+ export default {
36
+ name: page.name,
37
+ mixins: [mixins.button],
38
+ components: { RoleTree, MenuBind, PageBind, PlatformBind },
39
+ data() {
40
+ return {
41
+ split: 0.2,
42
+ roleId: '',
43
+ buttons: page.buttons
44
+ }
45
+ },
46
+ methods: {
47
+ onTreeChange(data) {
48
+ this.roleId = data.id
49
+ }
50
+ }
51
+ }
52
+ </script>
53
+ <style lang="scss">
54
+ .nm-admin-role-menus-tree {
55
+ &-node {
56
+ position: relative;
57
+ padding-left: 300px;
58
+ height: 26px;
59
+ line-height: 26px;
60
+
61
+ &-label {
62
+ position: absolute;
63
+ left: 0;
64
+ }
65
+ }
66
+ }
67
+ </style>
@@ -0,0 +1,64 @@
1
+ /** 页面信息 */
2
+ const page = new (function() {
3
+ this.title = '角色管理'
4
+ this.icon = 'role'
5
+ this.name = 'admin_role'
6
+ this.path = '/admin/role'
7
+
8
+ // 关联权限
9
+ this.permissions = [`${this.name}_query_get`]
10
+
11
+ // 按钮
12
+ this.buttons = {
13
+ add: {
14
+ text: '添加',
15
+ type: 'text',
16
+ icon: 'add',
17
+ code: `${this.name}_add`,
18
+ permissions: [`${this.name}_add_post`]
19
+ },
20
+ edit: {
21
+ text: '编辑',
22
+ type: 'text',
23
+ icon: 'edit',
24
+ code: `${this.name}_edit`,
25
+ permissions: [`${this.name}_edit_get`, `${this.name}_update_post`]
26
+ },
27
+ del: {
28
+ text: '删除',
29
+ type: 'text',
30
+ icon: 'delete',
31
+ code: `${this.name}_del`,
32
+ permissions: [`${this.name}_delete_delete`]
33
+ },
34
+ bindMenus: {
35
+ text: '菜单绑定',
36
+ type: 'text',
37
+ icon: 'bind',
38
+ code: `${this.name}_bind_menus`,
39
+ permissions: [`${this.name}_BindMenus_get`, `${this.name}_BindMenus_post`]
40
+ },
41
+ bindPages: {
42
+ text: '页面授权',
43
+ type: 'text',
44
+ icon: 'bind',
45
+ code: `${this.name}_bind_pages`,
46
+ permissions: [`${this.name}_BindPages_get`, `${this.name}_BindPages_post`]
47
+ },
48
+ bindPlatform: {
49
+ text: '平台授权',
50
+ type: 'text',
51
+ icon: 'bind',
52
+ code: `${this.name}_bind_platform`,
53
+ permissions: [`admin_permission_tree_get`, `${this.name}_BindPlatformPermissions_get`, `${this.name}_BindPlatformPermissions_post`]
54
+ }
55
+ }
56
+ })()
57
+
58
+ /** 路由信息 */
59
+ export const route = {
60
+ page,
61
+ component: () => import(/* webpackChunkName: "admin.role" */ './index')
62
+ }
63
+
64
+ export default page