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 @@ -