From 1e84782603f68d0060e59ebe0e94bb88054d0cdf Mon Sep 17 00:00:00 2001 From: zy7y <13271962515@163.com> Date: Thu, 15 Sep 2022 18:54:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/controller/role.py | 8 +- backend/dbhelper/role.py | 2 +- backend/mini.db | Bin 45056 -> 4096 bytes backend/mini.db-shm | Bin 0 -> 32768 bytes backend/mini.db-wal | Bin 0 -> 420272 bytes backend/router/url.py | 4 +- backend/tests/test_case.py | 4 +- frontend/src/service/role.js | 39 ++- frontend/src/views/main/system/role/conf.js | 49 ++++ frontend/src/views/main/system/role/role.vue | 267 ++++++++++++++++++- 10 files changed, 360 insertions(+), 13 deletions(-) create mode 100644 backend/mini.db-shm create mode 100644 backend/mini.db-wal create mode 100644 frontend/src/views/main/system/role/conf.js diff --git a/backend/controller/role.py b/backend/controller/role.py index d9e1222..c103ccd 100644 --- a/backend/controller/role.py +++ b/backend/controller/role.py @@ -62,8 +62,8 @@ async def role_put(pk: int, data: RoleIn) -> Response: async def role_query(query: RoleQuery) -> Response[ListAll[list[RoleRead]]]: """post条件查询角色表""" - limit = query.size - skip = (query.offset - 1) * limit - del query.offset, query.size - users, count = await get_roles(skip, limit, query.dict()) + size = query.limit + skip = (query.offset - 1) * size + del query.offset, query.limit + users, count = await get_roles(skip, size, query.dict()) return Response(data=ListAll(total=count, items=users)) diff --git a/backend/dbhelper/role.py b/backend/dbhelper/role.py index 4c9a4a0..6e91526 100644 --- a/backend/dbhelper/role.py +++ b/backend/dbhelper/role.py @@ -38,7 +38,7 @@ async def get_roles(skip: int, limit: int, kwargs: dict = None): kwargs = {f"{k}__contains": v for k, v in kwargs.items()} else: kwargs = {} - result = RoleModel.filter(status__not=9, **kwargs).all().order_by("-created") + result = RoleModel.filter(**kwargs).all().order_by("-created") return await result.offset(skip).limit(limit), await result.count() diff --git a/backend/mini.db b/backend/mini.db index 60e7509f1b4b6acdbc450fb461b41fcbd9f17b4b..e2a2455a104f1cf6a5d6b143f3ac8831aaaf3ab5 100644 GIT binary patch delta 36 qcmZp8z|^2HL7J73fq{W>Vxv7bBZHoQEiaJAAh20cp^1Ou1Q7t1p$Fpt literal 45056 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 GQs6IfJU-R{ literal 0 HcmV?d00001 diff --git a/backend/mini.db-wal b/backend/mini.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..015d765b82f71a2a016f562e2090aaa94aba18b0 GIT binary patch literal 420272 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 HxWNAhHu*oH literal 0 HcmV?d00001 diff --git a/backend/router/url.py b/backend/router/url.py index 29111c0..d0d6d51 100644 --- a/backend/router/url.py +++ b/backend/router/url.py @@ -157,7 +157,9 @@ routes = [ summary="查询角色拥有权限", **has_perm ), - Route.put("/role", endpoint=role_put, tags=["角色管理"], summary="角色更新", **has_perm), + Route.put( + "/role/{pk}", endpoint=role_put, tags=["角色管理"], summary="角色更新", **has_perm + ), Route.post( "/role/query", endpoint=role_query, tags=["角色管理"], summary="角色条件查询", **has_perm ), diff --git a/backend/tests/test_case.py b/backend/tests/test_case.py index 4d708a7..8e68bc3 100644 --- a/backend/tests/test_case.py +++ b/backend/tests/test_case.py @@ -247,7 +247,7 @@ params = [ type=2, component=None, pid=4, - identifier="", + identifier="role:query", api="/role/query", method="POST", ).dict(), @@ -276,7 +276,7 @@ params = [ component=None, pid=4, identifier="role:update", - api="/role", + api="/role/{pk}", method="PUT", ).dict(), ), diff --git a/frontend/src/service/role.js b/frontend/src/service/role.js index 5336e77..209e025 100644 --- a/frontend/src/service/role.js +++ b/frontend/src/service/role.js @@ -1,9 +1,44 @@ import request from '@/utils/request' // 获取角色列表, 需要考虑创建用户选择角色应该是所有未被删除的情况 -export function getRoles(parms) { +export function getRoles(params) { return request({ url: '/role', - parms + params + }) +} + +// 条件查询 +export function queryRole(data) { + return request({ + url: '/role/query', + method: 'post', + data + }) +} + +// 删除 +export function delRole(id) { + return request({ + url: `/role/${id}`, + method: 'delete' + }) +} + +// 创建 +export function addRole(data) { + return request({ + url: '/role', + method: 'post', + data + }) +} + +// 修改 +export function putRole(id, data) { + return request({ + url: `/role/${id}`, + method: 'put', + data }) } diff --git a/frontend/src/views/main/system/role/conf.js b/frontend/src/views/main/system/role/conf.js new file mode 100644 index 0000000..288de5b --- /dev/null +++ b/frontend/src/views/main/system/role/conf.js @@ -0,0 +1,49 @@ +export const columns = [ + { + title: 'ID', + dataIndex: 'id', + key: 'id' + }, + { + title: '名称', + dataIndex: 'name', + key: 'name' + }, + { + title: '描述', + dataIndex: 'remark', + key: 'remark' + }, + { + title: '状态', + dataIndex: 'status', + key: 'status' + }, + { + title: '创建时间', + dataIndex: 'created', + key: 'created' + }, + { + title: '更新时间', + dataIndex: 'modified', + key: 'modified' + }, + { + title: '操作', + key: 'action' + } +] + +export const addRoleRules = [ + { + name: [ + { required: true, message: '请输入名称', trigger: 'blur' }, + { min: 3, max: 12, message: '3-12', trigger: 'blur' } + ], + remark: [ + { required: true, message: '请输入描述', trigger: 'blur' }, + { min: 1, max: 20, message: '1~20', trigger: 'blur' } + ] + } +] diff --git a/frontend/src/views/main/system/role/role.vue b/frontend/src/views/main/system/role/role.vue index dc6f494..678a2a9 100644 --- a/frontend/src/views/main/system/role/role.vue +++ b/frontend/src/views/main/system/role/role.vue @@ -1,7 +1,268 @@ - + - +