From bade36dd1b149a251545585d42f800641448e678 Mon Sep 17 00:00:00 2001 From: ktianc Date: Fri, 5 Jan 2024 11:36:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=83=A8=E9=97=A8=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD=EF=BC=8C=E8=A7=92=E8=89=B2=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=94=AF=E6=8C=81=E9=83=A8=E9=97=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=92=E5=88=86=EF=BC=8C=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=9D=83=E9=99=90=E8=AE=A4=E8=AF=81=E5=8A=A0=E5=85=A5=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kinit-admin/src/api/vadmin/auth/dept.ts | 25 ++ .../src/views/Vadmin/Auth/Dept/Dept.vue | 232 ++++++++++++++++ .../Vadmin/Auth/Dept/components/Write.vue | 167 ++++++++++++ .../src/views/Vadmin/Auth/Role/Role.vue | 64 ++++- .../Auth/Role/components/AuthManage.vue | 255 ++++++++++++++++++ .../Vadmin/Auth/Role/components/Write.vue | 198 +++++++------- .../src/views/Vadmin/Auth/User/User.vue | 26 +- .../Vadmin/Auth/User/components/Write.vue | 24 ++ kinit-api/application/settings.py | 2 +- kinit-api/apps/vadmin/auth/crud.py | 159 ++++++++++- kinit-api/apps/vadmin/auth/models/__init__.py | 3 +- kinit-api/apps/vadmin/auth/models/dept.py | 31 +++ kinit-api/apps/vadmin/auth/models/m2m.py | 14 + kinit-api/apps/vadmin/auth/models/role.py | 9 +- kinit-api/apps/vadmin/auth/models/user.py | 4 +- kinit-api/apps/vadmin/auth/params/__init__.py | 1 + kinit-api/apps/vadmin/auth/params/dept.py | 31 +++ .../apps/vadmin/auth/schemas/__init__.py | 3 +- kinit-api/apps/vadmin/auth/schemas/dept.py | 40 +++ kinit-api/apps/vadmin/auth/schemas/menu.py | 2 +- kinit-api/apps/vadmin/auth/schemas/role.py | 4 + kinit-api/apps/vadmin/auth/schemas/user.py | 5 +- kinit-api/apps/vadmin/auth/utils/current.py | 8 +- .../apps/vadmin/auth/utils/validation/auth.py | 50 +++- kinit-api/apps/vadmin/auth/views.py | 62 ++++- 25 files changed, 1288 insertions(+), 131 deletions(-) create mode 100644 kinit-admin/src/api/vadmin/auth/dept.ts create mode 100644 kinit-admin/src/views/Vadmin/Auth/Dept/Dept.vue create mode 100644 kinit-admin/src/views/Vadmin/Auth/Dept/components/Write.vue create mode 100644 kinit-admin/src/views/Vadmin/Auth/Role/components/AuthManage.vue create mode 100644 kinit-api/apps/vadmin/auth/models/dept.py create mode 100644 kinit-api/apps/vadmin/auth/params/dept.py create mode 100644 kinit-api/apps/vadmin/auth/schemas/dept.py diff --git a/kinit-admin/src/api/vadmin/auth/dept.ts b/kinit-admin/src/api/vadmin/auth/dept.ts new file mode 100644 index 0000000..c40f8c0 --- /dev/null +++ b/kinit-admin/src/api/vadmin/auth/dept.ts @@ -0,0 +1,25 @@ +import request from '@/config/axios' + +export const getDeptListApi = (params: any): Promise => { + return request.get({ url: '/vadmin/auth/depts', params }) +} + +export const delDeptListApi = (data: any): Promise => { + return request.delete({ url: '/vadmin/auth/depts', data }) +} + +export const addDeptListApi = (data: any): Promise => { + return request.post({ url: '/vadmin/auth/depts', data }) +} + +export const putDeptListApi = (data: any): Promise => { + return request.put({ url: `/vadmin/auth/depts/${data.id}`, data }) +} + +export const getDeptTreeOptionsApi = (): Promise => { + return request.get({ url: '/vadmin/auth/dept/tree/options' }) +} + +export const getDeptUserTreeOptionsApi = (): Promise => { + return request.get({ url: '/vadmin/auth/dept/user/tree/options' }) +} diff --git a/kinit-admin/src/views/Vadmin/Auth/Dept/Dept.vue b/kinit-admin/src/views/Vadmin/Auth/Dept/Dept.vue new file mode 100644 index 0000000..b9e04b2 --- /dev/null +++ b/kinit-admin/src/views/Vadmin/Auth/Dept/Dept.vue @@ -0,0 +1,232 @@ + + + diff --git a/kinit-admin/src/views/Vadmin/Auth/Dept/components/Write.vue b/kinit-admin/src/views/Vadmin/Auth/Dept/components/Write.vue new file mode 100644 index 0000000..a781f49 --- /dev/null +++ b/kinit-admin/src/views/Vadmin/Auth/Dept/components/Write.vue @@ -0,0 +1,167 @@ + + + diff --git a/kinit-admin/src/views/Vadmin/Auth/Role/Role.vue b/kinit-admin/src/views/Vadmin/Auth/Role/Role.vue index a39ec84..58c9dde 100644 --- a/kinit-admin/src/views/Vadmin/Auth/Role/Role.vue +++ b/kinit-admin/src/views/Vadmin/Auth/Role/Role.vue @@ -15,7 +15,10 @@ import { Search } from '@/components/Search' import { FormSchema } from '@/components/Form' import { ContentWrap } from '@/components/ContentWrap' import Write from './components/Write.vue' +import AuthManage from './components/AuthManage.vue' import { Dialog } from '@/components/Dialog' +import { DictDetail, selectDictLabel } from '@/utils/dict' +import { useDictStore } from '@/store/modules/dict' defineOptions({ name: 'AuthRole' @@ -45,12 +48,22 @@ const { tableRegister, tableState, tableMethods } = useTable({ const { dataList, loading, total, pageSize, currentPage } = tableState const { getList, delList } = tableMethods +let dataRangeOptions = ref([]) + +const getOptions = async () => { + const dictStore = useDictStore() + const dictOptions = await dictStore.getDictObj(['sys_vadmin_data_range']) + dataRangeOptions.value = dictOptions.sys_vadmin_data_range +} + +getOptions() + const tableColumns = reactive([ { field: 'id', label: '角色编号', - show: true, - disabled: true + show: false, + disabled: false }, { field: 'name', @@ -63,6 +76,21 @@ const tableColumns = reactive([ label: '权限字符', show: true }, + { + field: 'data_range', + label: '数据范围', + show: true, + slots: { + default: (data: any) => { + const row = data.row + return ( + <> +
{selectDictLabel(unref(dataRangeOptions), row.data_range.toString())}
+ + ) + } + } + }, { field: 'order', label: '显示顺序', @@ -92,7 +120,7 @@ const tableColumns = reactive([ const row = data.row return ( <> - + ) } @@ -105,7 +133,7 @@ const tableColumns = reactive([ }, { field: 'action', - width: '150px', + width: '170px', label: '操作', show: true, slots: { @@ -125,6 +153,15 @@ const tableColumns = reactive([ > 编辑 + authManageActive(row)} + > + 权限管理 + { }) } +const authManageRef = ref>() + +// 权限管理 +const authManageActive = async (row: any) => { + const res = await getRoleApi(row.id) + if (res) { + res.data.data_range = res.data.data_range.toString() + currentRow.value = res.data + authManageRef.value?.openDrawer() + } +} + const dialogVisible = ref(false) const dialogTitle = ref('') @@ -217,15 +266,16 @@ const saveLoading = ref(false) const editAction = async (row: any) => { const res = await getRoleApi(row.id) if (res) { - dialogTitle.value = '编辑' + dialogTitle.value = '编辑角色' actionType.value = 'edit' + res.data.data_range = res.data.data_range.toString() currentRow.value = res.data dialogVisible.value = true } } const addAction = () => { - dialogTitle.value = '新增' + dialogTitle.value = '新增角色' actionType.value = 'add' currentRow.value = undefined dialogVisible.value = true @@ -298,4 +348,6 @@ const save = async () => { {{ t('dialogDemo.close') }} + + diff --git a/kinit-admin/src/views/Vadmin/Auth/Role/components/AuthManage.vue b/kinit-admin/src/views/Vadmin/Auth/Role/components/AuthManage.vue new file mode 100644 index 0000000..6f4d65c --- /dev/null +++ b/kinit-admin/src/views/Vadmin/Auth/Role/components/AuthManage.vue @@ -0,0 +1,255 @@ + + + + + + + diff --git a/kinit-admin/src/views/Vadmin/Auth/Role/components/Write.vue b/kinit-admin/src/views/Vadmin/Auth/Role/components/Write.vue index 54c8920..452bb3b 100644 --- a/kinit-admin/src/views/Vadmin/Auth/Role/components/Write.vue +++ b/kinit-admin/src/views/Vadmin/Auth/Role/components/Write.vue @@ -1,11 +1,11 @@