From ff7333d882d6820278cc0cfb1afdb9b7c3c4b971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=BF=E5=B0=8F=E5=A4=A9?= <1638245306@qq.com> Date: Sun, 29 Oct 2023 21:02:53 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=88=A0=E9=99=A4=E6=97=A7=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/views/role_api_permission.py | 3 +- web/src/utils/dictionary.ts | 6 +- .../menu/components/MenuButtonCom/api.ts | 41 -- .../menu/components/MenuButtonCom/crud.tsx | 202 -------- .../menu/components/MenuButtonCom/index.vue | 28 -- .../menu/components/MenuFormCom/index.vue | 279 ----------- .../menu/components/MenuTreeCom/index.vue | 318 ------------- web/src/views/system/menu/crud.ts | 45 +- .../role/components/PermissionCom/api.ts | 117 ----- .../role/components/PermissionCom/index.vue | 350 -------------- .../role/components/PermissionComCopy/api.ts | 21 - .../components/PermissionComCopy/index.vue | 235 ---------- .../components/PermissionComCopy/types.ts | 20 - web/src/views/system/role/crud.tsx | 8 +- web/src/views/system/rolePermission/api.ts | 107 ----- web/src/views/system/rolePermission/index.vue | 432 ------------------ 16 files changed, 31 insertions(+), 2181 deletions(-) delete mode 100644 web/src/views/system/menu/components/MenuButtonCom/api.ts delete mode 100644 web/src/views/system/menu/components/MenuButtonCom/crud.tsx delete mode 100644 web/src/views/system/menu/components/MenuButtonCom/index.vue delete mode 100644 web/src/views/system/menu/components/MenuFormCom/index.vue delete mode 100644 web/src/views/system/menu/components/MenuTreeCom/index.vue delete mode 100644 web/src/views/system/role/components/PermissionCom/api.ts delete mode 100644 web/src/views/system/role/components/PermissionCom/index.vue delete mode 100644 web/src/views/system/role/components/PermissionComCopy/api.ts delete mode 100644 web/src/views/system/role/components/PermissionComCopy/index.vue delete mode 100644 web/src/views/system/role/components/PermissionComCopy/types.ts delete mode 100644 web/src/views/system/rolePermission/api.ts delete mode 100644 web/src/views/system/rolePermission/index.vue diff --git a/backend/dvadmin/system/views/role_api_permission.py b/backend/dvadmin/system/views/role_api_permission.py index 82a53b1..e4b6099 100644 --- a/backend/dvadmin/system/views/role_api_permission.py +++ b/backend/dvadmin/system/views/role_api_permission.py @@ -231,8 +231,7 @@ class RoleApiPermissionViewSet(CustomModelViewSet): """ params = request.query_params is_superuser = request.user.is_superuser - is_admin = request.user.role.values_list('admin', flat=True) - if is_superuser or True in is_admin: + if is_superuser: queryset = Dept.objects.values('id', 'name', 'parent') else: if not params: diff --git a/web/src/utils/dictionary.ts b/web/src/utils/dictionary.ts index 0305891..f7b89af 100644 --- a/web/src/utils/dictionary.ts +++ b/web/src/utils/dictionary.ts @@ -4,16 +4,16 @@ import { DictionaryStore } from '/@/stores/dictionary'; /** * @method 获取指定name字典 */ -export const dictionary = (key: string,value:string|number) => { +export const dictionary = (key: string,value:string|number|null=null) => { const dict = DictionaryStore() const dictionary = toRaw(dict.data) - if(value!==null || value !==''){ + if(value!==null){ for (let item of dictionary[key]) { if (item.value === value) { return item.label } } - return '' + return [] } return dictionary[key] } diff --git a/web/src/views/system/menu/components/MenuButtonCom/api.ts b/web/src/views/system/menu/components/MenuButtonCom/api.ts deleted file mode 100644 index bc473fc..0000000 --- a/web/src/views/system/menu/components/MenuButtonCom/api.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { request } from '/@/utils/service'; -import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; - -export const apiPrefix = '/api/system/menu_button/'; -export function GetList(query: PageQuery) { - return request({ - url: apiPrefix, - method: 'get', - params: query, - }); -} -export function GetObj(id: InfoReq) { - return request({ - url: apiPrefix + id, - method: 'get', - }); -} - -export function AddObj(obj: AddReq) { - return request({ - url: apiPrefix, - method: 'post', - data: obj, - }); -} - -export function UpdateObj(obj: any) { - return request({ - url: apiPrefix + obj.id + '/', - method: 'put', - data: obj, - }); -} - -export function DelObj(id: DelReq) { - return request({ - url: apiPrefix + id + '/', - method: 'delete', - data: { id }, - }); -} diff --git a/web/src/views/system/menu/components/MenuButtonCom/crud.tsx b/web/src/views/system/menu/components/MenuButtonCom/crud.tsx deleted file mode 100644 index fe34d05..0000000 --- a/web/src/views/system/menu/components/MenuButtonCom/crud.tsx +++ /dev/null @@ -1,202 +0,0 @@ -import { AddReq, DelReq, EditReq, dict, CreateCrudOptionsRet, CreateCrudOptionsProps } from '@fast-crud/fast-crud'; -import * as api from './api'; - -import { request } from '/@/utils/service'; -//此处为crudOptions配置 -export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet { - const pageRequest = async () => { - if (context!.selectOptions.value.id) { - return await api.GetList({ menu: context!.selectOptions.value.id } as any); - } else { - return undefined; - } - }; - const editRequest = async ({ form, row }: EditReq) => { - return await api.UpdateObj({ ...form, menu: row.menu }); - }; - const delRequest = async ({ row }: DelReq) => { - return await api.DelObj(row.id); - }; - const addRequest = async ({ form }: AddReq) => { - return await api.AddObj({ ...form, ...{ menu: context!.selectOptions.value.id } }); - }; - return { - crudOptions: { - search: { - container: { - action: { - //按钮栏配置 - col: { - span: 8, - }, - }, - }, - }, - rowHandle: { - //固定右侧 - fixed: 'right', - width: 200, - buttons: { - view: { - show: false, - }, - edit: { - icon: '', - type: 'primary', - }, - remove: { - icon: '', - type: 'primary', - }, - }, - }, - request: { - pageRequest, - addRequest, - editRequest, - delRequest, - }, - form: { - col: { span: 24 }, - labelWidth: '100px', - wrapper: { - is: 'el-dialog', - width: '600px', - }, - }, - columns: { - _index: { - title: '序号', - form: { show: false }, - column: { - type: 'index', - align: 'center', - width: '70px', - columnSetDisabled: true, //禁止在列设置中选择 - }, - }, - search: { - title: '关键词', - column: { show: false }, - type: 'text', - search: { show: true }, - form: { - show: false, - component: { - placeholder: '输入关键词搜索', - }, - }, - }, - id: { - title: 'ID', - type: 'text', - column: { show: false }, - search: { show: false }, - form: { show: false }, - }, - name: { - title: '权限名称', - type: 'text', - search: { show: true }, - column: { - minWidth: 120, - sortable: true, - }, - form: { - rules: [{ required: true, message: '权限名称必填' }], - component: { - placeholder: '输入权限名称搜索', - props: { - clearable: true, - allowCreate: true, - filterable: true, - }, - }, - helper: { - render() { - return ; - }, - }, - }, - }, - value: { - title: '权限值', - type: 'text', - search: { show: false }, - column: { - width: 120, - sortable: true, - }, - form: { - rules: [{ required: true, message: '权限标识必填' }], - placeholder: '输入权限标识', - helper: { - render() { - return ; - }, - }, - }, - }, - method: { - title: '请求方式', - search: { show: false }, - type: 'dict-select', - column: { - width: 120, - sortable: true, - }, - dict: dict({ - data: [ - { label: 'GET', value: 0 }, - { label: 'POST', value: 1, color: 'success' }, - { label: 'PUT', value: 2, color: 'warning' }, - { label: 'DELETE', value: 3, color: 'danger' }, - ], - }), - form: { - rules: [{ required: true, message: '必填项' }], - }, - }, - api: { - title: '接口地址', - search: { show: false }, - type: 'dict-select', - dict: dict({ - getData() { - return request({ url: '/swagger.json' }).then((res: any) => { - const ret = Object.keys(res.paths); - const data = []; - for (const item of ret) { - const obj: any = {}; - obj.label = item; - obj.value = item; - data.push(obj); - } - return data; - }); - }, - }), - column: { - minWidth: 250, - sortable: true, - }, - form: { - rules: [{ required: true, message: '必填项' }], - component: { - props: { - allowCreate: true, - filterable: true, - clearable: true, - }, - }, - helper: { - render() { - return ; - }, - }, - }, - }, - }, - }, - }; -}; diff --git a/web/src/views/system/menu/components/MenuButtonCom/index.vue b/web/src/views/system/menu/components/MenuButtonCom/index.vue deleted file mode 100644 index af2bddd..0000000 --- a/web/src/views/system/menu/components/MenuButtonCom/index.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/web/src/views/system/menu/components/MenuFormCom/index.vue b/web/src/views/system/menu/components/MenuFormCom/index.vue deleted file mode 100644 index c7e519d..0000000 --- a/web/src/views/system/menu/components/MenuFormCom/index.vue +++ /dev/null @@ -1,279 +0,0 @@ - - - - - diff --git a/web/src/views/system/menu/components/MenuTreeCom/index.vue b/web/src/views/system/menu/components/MenuTreeCom/index.vue deleted file mode 100644 index 82363f5..0000000 --- a/web/src/views/system/menu/components/MenuTreeCom/index.vue +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - diff --git a/web/src/views/system/menu/crud.ts b/web/src/views/system/menu/crud.ts index 4f9c446..5e026ba 100644 --- a/web/src/views/system/menu/crud.ts +++ b/web/src/views/system/menu/crud.ts @@ -95,28 +95,6 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti form: { labelWidth: '120px', row: { gutter: 20 }, - // group: { - // groupType: 'tabs', //collapse, tabs - // accordion: false, - // groups: { - // catalog: { - // label: '目录', - // icon: 'el-icon-goods', - // columns: ['name', 'icon', 'sort', 'status'], - // }, - // menu: { - // label: '菜单', - // icon: 'el-icon-price-tag', - // columns: ['parent', 'name', 'icon', 'is_link', 'web_path', 'component', 'cache', 'visible', 'frame_out', 'sort', 'status'], - // }, - // info: { - // label: '按钮', - // collapsed: true, //默认折叠 - // icon: 'el-icon-warning-outline', - // columns: ['name', 'component'], - // }, - // }, - // }, }, table: { lazy: true, @@ -150,6 +128,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti }), form: { value:0, + component:{ + optionName: "el-radio-button" + }, valueChange({ form, value, getComponentRef }) { if (value) { getComponentRef("parent")?.reloadDict(); // 执行city的select组件的reloadDict()方法,触发“city”重新加载字典 @@ -259,11 +240,29 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti show: false, }, }, + component_name: { + title: '组件名称', + form: { + show:compute(({form})=>{ + return [1].includes(form.menu_type); + }), + rules: [{ required: true, message: '请输入组件名称', trigger: 'blur' }], + component: { + placeholder: '请输入组件名称', + }, + }, + column: { + show: false, + }, + }, component: { title: compute(({ form }) => { return form.menu_type === 1 ? '组件地址' : '按钮权限值'; }), form: { + col:{ + span:24, + }, show: compute(({ form }) => { return [1,2].includes(form.menu_type) }), @@ -271,7 +270,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return form.menu_type === 1 ? 'src/views下的文件夹地址' : '按钮权限值是唯一的标识'; }), rules: [{ required: true, message: '请输入组件地址', trigger: 'blur' }], + component: { + style: { width: '100%', }, diff --git a/web/src/views/system/role/components/PermissionCom/api.ts b/web/src/views/system/role/components/PermissionCom/api.ts deleted file mode 100644 index 8e9abaa..0000000 --- a/web/src/views/system/role/components/PermissionCom/api.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { request } from "/@/utils/service"; - -/** - * 获取角色所拥有的菜单 - * @param params - */ -export function GetMenu(params:any) { - return request({ - url: '/api/system/role_menu_button_permission/role_get_menu/', - method: 'get', - params:params - }); -} - -/*** - * 新增权限 - * @param data - * @constructor - */ -export function SaveMenuPermission(data:any) { - return request({ - url: '/api/system/role_menu_permission/save_auth/', - method: 'post', - data:data - }); -} - - -/** - * 获取菜单下的按钮 - * @param params - * @constructor - */ -export function GetMenuButton(params:any) { - return request({ - url: '/api/system/role_menu_button_permission/role_menu_get_button/', - method: 'get', - params:params - }); -} - - -/*** - * 根据角色获取已授权的菜单 - * @param params - * @constructor - */ -export function role_to_menu (params:any={}) { - return request({ - url: '/api/system/role_menu_button_permission/role_to_menu/', - method: 'get', - params: params - }) -} - -/*** - * 根据角色获取数据权限范围 - * @constructor - */ -export function GetDataScope (params:any={}) { - return request({ - url: '/api/system/role_menu_button_permission/data_scope/', - method: 'get', - params: params - }) -} - -/*** - * 获取权限部门 - * @constructor - */ -export function GetDataScopeDept (params:any) { - return request({ - url: '/api/system/role_menu_button_permission/role_to_dept_all/', - method: 'get', - params: params - }) -} - -/*** - * 新增权限 - * @param data - * @constructor - */ -export function CreatePermission(data:any) { - return request({ - url: '/api/system/role_menu_button_permission/', - method: 'post', - data:data - }); -} - -/*** - * 根据菜单获取菜单下按钮 - * @param params - */ -export function getObj(params:any) { - return request({ - url: '/api/system/role_menu_button_permission/menu_to_button/', - method: 'get', - params:params - }); -} - -/** - * 删除按钮权限 - * @param data - * @constructor - */ -export function DeletePermission(data:any) { - return request({ - url: `/api/system/role_menu_button_permission/${data.id}/`, - method: 'delete', - data:{} - }); -} - diff --git a/web/src/views/system/role/components/PermissionCom/index.vue b/web/src/views/system/role/components/PermissionCom/index.vue deleted file mode 100644 index e191226..0000000 --- a/web/src/views/system/role/components/PermissionCom/index.vue +++ /dev/null @@ -1,350 +0,0 @@ - - - - - diff --git a/web/src/views/system/role/components/PermissionComCopy/api.ts b/web/src/views/system/role/components/PermissionComCopy/api.ts deleted file mode 100644 index 9d4c590..0000000 --- a/web/src/views/system/role/components/PermissionComCopy/api.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { request } from "/@/utils/service"; - -export function getDataPermissionRange() { - return request({ - url: '/api/system/role_menu_button_permission/data_scope/', - method: 'get', - }) -} -export function getDataPermissionDept() { - return request({ - url: '/api/system/role_menu_button_permission/role_to_dept_all/', - method: 'get' - }) -} - -export function getDataPermissionMenu() { - return request({ - url: '/api/system/role_menu_button_permission/get_role_permissions/', - method: 'get' - }) -} \ No newline at end of file diff --git a/web/src/views/system/role/components/PermissionComCopy/index.vue b/web/src/views/system/role/components/PermissionComCopy/index.vue deleted file mode 100644 index 1d08e99..0000000 --- a/web/src/views/system/role/components/PermissionComCopy/index.vue +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - diff --git a/web/src/views/system/role/components/PermissionComCopy/types.ts b/web/src/views/system/role/components/PermissionComCopy/types.ts deleted file mode 100644 index 6abb63d..0000000 --- a/web/src/views/system/role/components/PermissionComCopy/types.ts +++ /dev/null @@ -1,20 +0,0 @@ -export interface DataPermissionRangeType { - label: string; - value: number; -} - -export interface CustomDataPermissionDeptType { - id: number; - name: string; - patent: number; - children: CustomDataPermissionDeptType[] -} - -export interface CustomDataPermissionMenuType { - id: number; - name: string; - is_catalog: boolean; - menuPermission: { id: number; name: string; value: string }[] | null; - columns: { id: number; name: string; title: string }[] | null; - children: CustomDataPermissionMenuType[] -} \ No newline at end of file diff --git a/web/src/views/system/role/crud.tsx b/web/src/views/system/role/crud.tsx index 057b406..16653fc 100644 --- a/web/src/views/system/role/crud.tsx +++ b/web/src/views/system/role/crud.tsx @@ -167,6 +167,9 @@ export const createCrudOptions = function ({ title: '状态', search: { show: true }, type: 'dict-radio', + dict: dict({ + data: dictionary('button_status_bool'), + }), column: { width: 100, component: { @@ -189,10 +192,7 @@ export const createCrudOptions = function ({ }, editForm: { show: columnPermission('status', 'is_update'), - }, - dict: dict({ - data: dictionary('button_status_bool'), - }), + } }, update_datetime: { title: '更新时间', diff --git a/web/src/views/system/rolePermission/api.ts b/web/src/views/system/rolePermission/api.ts deleted file mode 100644 index f015ab7..0000000 --- a/web/src/views/system/rolePermission/api.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { request } from "/@/utils/service"; - -/** - * 获取角色所拥有的菜单 - * @param params - */ -export function GetMenu(params:any) { - return request({ - url: '/api/system/role_menu_button_permission/role_get_menu/', - method: 'get', - params:params - }); -} - -/*** - * 新增权限 - * @param data - * @constructor - */ -export function SaveMenuPermission(data:any) { - return request({ - url: '/api/system/role_menu_permission/save_auth/', - method: 'post', - data:data - }); -} - - -/** - * 获取菜单下的按钮 - * @param params - * @constructor - */ -export function GetMenuButton(params:any) { - return request({ - url: '/api/system/role_menu_button_permission/role_menu_get_button/', - method: 'get', - params:params - }); -} - - - - - -/*** - * 根据角色获取数据权限范围 - * @constructor - */ -export function GetDataScope (params:any={}) { - return request({ - url: '/api/system/role_menu_button_permission/data_scope/', - method: 'get', - params: params - }) -} - -/*** - * 获取权限部门 - * @constructor - */ -export function GetDataScopeDept (params:any) { - return request({ - url: '/api/system/role_menu_button_permission/role_to_dept_all/', - method: 'get', - params: params - }) -} - -/*** - * 新增权限 - * @param data - * @constructor - */ -export function CreatePermission(data:any) { - return request({ - url: '/api/system/role_menu_button_permission/', - method: 'post', - data:data - }); -} - -/*** - * 根据菜单获取菜单下按钮 - * @param params - */ -export function getObj(params:any) { - return request({ - url: '/api/system/role_menu_button_permission/menu_to_button/', - method: 'get', - params:params - }); -} - -/** - * 删除按钮权限 - * @param data - * @constructor - */ -export function DeletePermission(data:any) { - return request({ - url: `/api/system/role_menu_button_permission/${data.id}/`, - method: 'delete', - data:{} - }); -} - diff --git a/web/src/views/system/rolePermission/index.vue b/web/src/views/system/rolePermission/index.vue deleted file mode 100644 index bf8896f..0000000 --- a/web/src/views/system/rolePermission/index.vue +++ /dev/null @@ -1,432 +0,0 @@ - - - - -