From 6c70ec6d538c8b8f82ce46570d13fe29ef004056 Mon Sep 17 00:00:00 2001 From: kdyq007 Date: Sun, 17 Nov 2019 17:09:24 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=20=E5=AE=8C=E6=88=90roles?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/models/acl.py | 2 +- ui/package.json | 9 +- ui/src/api/acl/app.js | 34 ++ ui/src/api/acl/resource.js | 34 ++ ui/src/api/acl/role.js | 34 ++ ui/src/api/acl/user.js | 8 +- ui/src/config/router.config.js | 6 +- ui/src/views/cmdb/acl/module/resourceForm.vue | 218 ++++++++++++ ui/src/views/cmdb/acl/module/roleForm.vue | 221 ++++++++++++ ui/src/views/cmdb/acl/module/userForm.vue | 3 +- ui/src/views/cmdb/acl/resources.vue | 333 +++++++++++++++++- ui/src/views/cmdb/acl/roles.vue | 333 +++++++++++++++++- ui/src/views/cmdb/acl/users.vue | 16 +- 13 files changed, 1223 insertions(+), 28 deletions(-) create mode 100644 ui/src/api/acl/app.js create mode 100644 ui/src/api/acl/resource.js create mode 100644 ui/src/api/acl/role.js create mode 100644 ui/src/views/cmdb/acl/module/resourceForm.vue create mode 100644 ui/src/views/cmdb/acl/module/roleForm.vue diff --git a/api/models/acl.py b/api/models/acl.py index d1b3056..79328f7 100644 --- a/api/models/acl.py +++ b/api/models/acl.py @@ -68,7 +68,7 @@ class UserQuery(BaseQuery): class User(CRUDModel): __tablename__ = 'users' - __bind_key__ = "user" + # __bind_key__ = "user" query_class = UserQuery uid = db.Column(db.Integer, primary_key=True, autoincrement=True) diff --git a/ui/package.json b/ui/package.json index 43220ed..0f71589 100644 --- a/ui/package.json +++ b/ui/package.json @@ -13,10 +13,14 @@ }, "dependencies": { "@antv/data-set": "^0.10.2", + "@handsontable-pro/vue": "^3.1.1", + "@handsontable/vue": "^4.1.1", "ant-design-vue": "^1.4.2", "axios": "^0.19.0", "core-js": "^3.1.2", "enquire.js": "^2.1.6", + "handsontable": "^7.2.2", + "handsontable-pro": "^6.2.3", "js-cookie": "^2.2.0", "json2csv": "^4.5.2", "lodash.get": "^4.4.2", @@ -37,10 +41,7 @@ "vuex": "^3.1.1", "wangeditor": "^3.1.1", "xlsx": "latest", - "@handsontable-pro/vue": "^3.1.1", - "@handsontable/vue": "^4.1.1", - "handsontable": "^7.2.2", - "handsontable-pro": "^6.2.3" + "yarn": "^1.19.1" }, "devDependencies": { "@ant-design/colors": "^3.2.1", diff --git a/ui/src/api/acl/app.js b/ui/src/api/acl/app.js new file mode 100644 index 0000000..c134f36 --- /dev/null +++ b/ui/src/api/acl/app.js @@ -0,0 +1,34 @@ +import { axios } from '@/utils/request' + +const urlPrefix = '/v1/acl' + +export function searchRole (params) { + return axios({ + url: urlPrefix + `/roles`, + method: 'GET', + params: params + }) +} + +export function addRole (params) { + return axios({ + url: urlPrefix + '/roles', + method: 'POST', + data: params + }) +} + +export function updateRoleById (id, params) { + return axios({ + url: urlPrefix + `/roles/${id}`, + method: 'PUT', + data: params + }) +} + +export function deleteRoleById (id) { + return axios({ + url: urlPrefix + `/roles/${id}`, + method: 'DELETE' + }) +} diff --git a/ui/src/api/acl/resource.js b/ui/src/api/acl/resource.js new file mode 100644 index 0000000..106562a --- /dev/null +++ b/ui/src/api/acl/resource.js @@ -0,0 +1,34 @@ +import { axios } from '@/utils/request' + +const urlPrefix = '/v1/acl' + +export function searchResource (params) { + return axios({ + url: urlPrefix + `/resources`, + method: 'GET', + params: params + }) +} + +export function addResource (params) { + return axios({ + url: urlPrefix + '/resources', + method: 'POST', + data: params + }) +} + +export function updateResourceById (id, params) { + return axios({ + url: urlPrefix + `/resources/${id}`, + method: 'PUT', + data: params + }) +} + +export function deleteResourceById (id) { + return axios({ + url: urlPrefix + `/resources/${id}`, + method: 'DELETE' + }) +} diff --git a/ui/src/api/acl/role.js b/ui/src/api/acl/role.js new file mode 100644 index 0000000..c134f36 --- /dev/null +++ b/ui/src/api/acl/role.js @@ -0,0 +1,34 @@ +import { axios } from '@/utils/request' + +const urlPrefix = '/v1/acl' + +export function searchRole (params) { + return axios({ + url: urlPrefix + `/roles`, + method: 'GET', + params: params + }) +} + +export function addRole (params) { + return axios({ + url: urlPrefix + '/roles', + method: 'POST', + data: params + }) +} + +export function updateRoleById (id, params) { + return axios({ + url: urlPrefix + `/roles/${id}`, + method: 'PUT', + data: params + }) +} + +export function deleteRoleById (id) { + return axios({ + url: urlPrefix + `/roles/${id}`, + method: 'DELETE' + }) +} diff --git a/ui/src/api/acl/user.js b/ui/src/api/acl/user.js index 37e55c8..f81a43f 100644 --- a/ui/src/api/acl/user.js +++ b/ui/src/api/acl/user.js @@ -1,6 +1,6 @@ import { axios } from '@/utils/request' -const urlPrefix = '/v0.1' +const urlPrefix = '/v1/acl' export function currentUser () { return axios({ @@ -11,8 +11,9 @@ export function currentUser () { export function searchUser (params) { return axios({ - url: urlPrefix + `/users?${params}`, - method: 'GET' + url: urlPrefix + `/users`, + method: 'GET', + data: params }) } @@ -38,4 +39,3 @@ export function deleteUserById (id) { method: 'DELETE' }) } - diff --git a/ui/src/config/router.config.js b/ui/src/config/router.config.js index ec48c6f..be7ab04 100644 --- a/ui/src/config/router.config.js +++ b/ui/src/config/router.config.js @@ -78,21 +78,21 @@ const cmdbRouter = [ name: 'acl_users', hideChildrenInMenu: true, component: () => import('@/views/cmdb/acl/users'), - meta: { title: 'Users', keepAlive: true } + meta: { title: '用户管理', keepAlive: true } }, { path: '/acl/roles', name: 'acl_roles', hideChildrenInMenu: true, component: () => import('@/views/cmdb/acl/roles'), - meta: { title: 'Roles', keepAlive: true } + meta: { title: '角色管理', keepAlive: true } }, { path: '/acl/resources', name: 'acl_resources', hideChildrenInMenu: true, component: () => import('@/views/cmdb/acl/resources'), - meta: { title: 'Resources', keepAlive: true } + meta: { title: '资源管理', keepAlive: true } } ] } diff --git a/ui/src/views/cmdb/acl/module/resourceForm.vue b/ui/src/views/cmdb/acl/module/resourceForm.vue new file mode 100644 index 0000000..556f666 --- /dev/null +++ b/ui/src/views/cmdb/acl/module/resourceForm.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/ui/src/views/cmdb/acl/module/roleForm.vue b/ui/src/views/cmdb/acl/module/roleForm.vue new file mode 100644 index 0000000..37917a9 --- /dev/null +++ b/ui/src/views/cmdb/acl/module/roleForm.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/ui/src/views/cmdb/acl/module/userForm.vue b/ui/src/views/cmdb/acl/module/userForm.vue index 20bba40..a76863f 100644 --- a/ui/src/views/cmdb/acl/module/userForm.vue +++ b/ui/src/views/cmdb/acl/module/userForm.vue @@ -129,10 +129,9 @@ export default { }, data () { return { - drawerTitle: '新增用户', drawerVisible: false, - formLayout: 'vertical', + formLayout: 'vertical' } }, diff --git a/ui/src/views/cmdb/acl/resources.vue b/ui/src/views/cmdb/acl/resources.vue index 6d9c248..c3eb9eb 100644 --- a/ui/src/views/cmdb/acl/resources.vue +++ b/ui/src/views/cmdb/acl/resources.vue @@ -1,10 +1,337 @@ - diff --git a/ui/src/views/cmdb/acl/roles.vue b/ui/src/views/cmdb/acl/roles.vue index 6d9c248..8968342 100644 --- a/ui/src/views/cmdb/acl/roles.vue +++ b/ui/src/views/cmdb/acl/roles.vue @@ -1,10 +1,337 @@ - diff --git a/ui/src/views/cmdb/acl/users.vue b/ui/src/views/cmdb/acl/users.vue index 5e50201..3fbedc6 100644 --- a/ui/src/views/cmdb/acl/users.vue +++ b/ui/src/views/cmdb/acl/users.vue @@ -43,9 +43,9 @@ -