1.完成初始化的配置
This commit is contained in:
@@ -400,7 +400,7 @@ TENANT_SHARED_APPS = []
|
|||||||
PLUGINS_URL_PATTERNS = []
|
PLUGINS_URL_PATTERNS = []
|
||||||
# ********** 一键导入插件配置开始 **********
|
# ********** 一键导入插件配置开始 **********
|
||||||
# 例如:
|
# 例如:
|
||||||
from dvadmin3_upgrade_center.settings import * # 升级中心
|
#from dvadmin3_upgrade_center.settings import * # 升级中心
|
||||||
# from dvadmin_celery.settings import * # celery 异步任务
|
# from dvadmin_celery.settings import * # celery 异步任务
|
||||||
# from dvadmin_third.settings import * # 第三方用户管理
|
# from dvadmin_third.settings import * # 第三方用户管理
|
||||||
# from dvadmin_ak_sk.settings import * # 秘钥管理管理
|
# from dvadmin_ak_sk.settings import * # 秘钥管理管理
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ django.setup()
|
|||||||
from dvadmin.system.models import (
|
from dvadmin.system.models import (
|
||||||
Role, Dept, Users, Menu, MenuButton,
|
Role, Dept, Users, Menu, MenuButton,
|
||||||
ApiWhiteList, Dictionary, SystemConfig,
|
ApiWhiteList, Dictionary, SystemConfig,
|
||||||
RoleMenuPermission, RoleMenuButtonPermission
|
RoleMenuPermission, RoleApiPermission
|
||||||
)
|
)
|
||||||
from dvadmin.utils.serializers import CustomModelSerializer
|
from dvadmin.utils.serializers import CustomModelSerializer
|
||||||
|
|
||||||
@@ -42,24 +42,13 @@ class UsersInitSerializer(CustomModelSerializer):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class MenuButtonInitSerializer(CustomModelSerializer):
|
|
||||||
"""
|
|
||||||
初始化菜单按钮-序列化器
|
|
||||||
"""
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = MenuButton
|
|
||||||
fields = ['id', 'name', 'value', 'api', 'method', 'menu']
|
|
||||||
read_only_fields = ["id"]
|
|
||||||
|
|
||||||
|
|
||||||
class MenuInitSerializer(CustomModelSerializer):
|
class MenuInitSerializer(CustomModelSerializer):
|
||||||
"""
|
"""
|
||||||
递归深度获取数信息(用于生成初始化json文件)
|
递归深度获取数信息(用于生成初始化json文件)
|
||||||
"""
|
"""
|
||||||
name = serializers.CharField(required=False)
|
name = serializers.CharField(required=True)
|
||||||
|
menu_type = serializers.IntegerField(required=True)
|
||||||
children = serializers.SerializerMethodField()
|
children = serializers.SerializerMethodField()
|
||||||
menu_button = serializers.SerializerMethodField()
|
|
||||||
|
|
||||||
def get_children(self, obj: Menu):
|
def get_children(self, obj: Menu):
|
||||||
data = []
|
data = []
|
||||||
@@ -69,26 +58,18 @@ class MenuInitSerializer(CustomModelSerializer):
|
|||||||
data = serializer.data
|
data = serializer.data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def get_menu_button(self, obj: Menu):
|
|
||||||
data = []
|
|
||||||
instance = obj.menuPermission.order_by('method')
|
|
||||||
if instance:
|
|
||||||
data = list(instance.values('name', 'value', 'api', 'method'))
|
|
||||||
return data
|
|
||||||
|
|
||||||
def save(self, **kwargs):
|
def save(self, **kwargs):
|
||||||
instance = super().save(**kwargs)
|
instance = super().save(**kwargs)
|
||||||
children = self.initial_data.get('children')
|
children = self.initial_data.get('children')
|
||||||
menu_button = self.initial_data.get('menu_button')
|
|
||||||
# 菜单表
|
# 菜单表
|
||||||
if children:
|
if children:
|
||||||
for menu_data in children:
|
for menu_data in children:
|
||||||
menu_data['parent'] = instance.id
|
menu_data['parent'] = instance.id
|
||||||
filter_data = {
|
filter_data = {
|
||||||
"name": menu_data['name'],
|
"name": menu_data['name'],
|
||||||
"web_path": menu_data['web_path'],
|
|
||||||
"component": menu_data['component'],
|
"component": menu_data['component'],
|
||||||
"component_name": menu_data['component_name'],
|
"menu_type": menu_data['menu_type'],
|
||||||
}
|
}
|
||||||
instance_obj = Menu.objects.filter(**filter_data).first()
|
instance_obj = Menu.objects.filter(**filter_data).first()
|
||||||
if instance_obj and not self.initial_data.get('reset'):
|
if instance_obj and not self.initial_data.get('reset'):
|
||||||
@@ -96,24 +77,12 @@ class MenuInitSerializer(CustomModelSerializer):
|
|||||||
serializer = MenuInitSerializer(instance_obj, data=menu_data, request=self.request)
|
serializer = MenuInitSerializer(instance_obj, data=menu_data, request=self.request)
|
||||||
serializer.is_valid(raise_exception=True)
|
serializer.is_valid(raise_exception=True)
|
||||||
serializer.save()
|
serializer.save()
|
||||||
# 菜单按钮
|
|
||||||
if menu_button:
|
|
||||||
for menu_button_data in menu_button:
|
|
||||||
menu_button_data['menu'] = instance.id
|
|
||||||
filter_data = {
|
|
||||||
"menu": menu_button_data['menu'],
|
|
||||||
"value": menu_button_data['value']
|
|
||||||
}
|
|
||||||
instance_obj = MenuButton.objects.filter(**filter_data).first()
|
|
||||||
serializer = MenuButtonInitSerializer(instance_obj, data=menu_button_data, request=self.request)
|
|
||||||
serializer.is_valid(raise_exception=True)
|
|
||||||
serializer.save()
|
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Menu
|
model = Menu
|
||||||
fields = ['name', 'icon', 'sort', 'is_link', 'menu_type', 'web_path', 'component', 'component_name', 'status',
|
fields = ['name', 'icon', 'sort', 'is_link', 'menu_type', 'web_path', 'component', 'component_name', 'status',
|
||||||
'cache', 'visible', 'parent', 'children', 'menu_button', 'creator', 'dept_belong_id']
|
'cache', 'visible', 'parent', 'children', 'creator', 'dept_belong_id']
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'creator': {'write_only': True},
|
'creator': {'write_only': True},
|
||||||
'dept_belong_id': {'write_only': True}
|
'dept_belong_id': {'write_only': True}
|
||||||
@@ -128,7 +97,7 @@ class RoleInitSerializer(CustomModelSerializer):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Role
|
model = Role
|
||||||
fields = ['name', 'key', 'sort', 'status', 'admin',
|
fields = ['name', 'key', 'sort', 'status',
|
||||||
'creator', 'dept_belong_id']
|
'creator', 'dept_belong_id']
|
||||||
read_only_fields = ["id"]
|
read_only_fields = ["id"]
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
@@ -166,33 +135,31 @@ class RoleMenuInitSerializer(CustomModelSerializer):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class RoleMenuButtonInitSerializer(CustomModelSerializer):
|
class RoleApiPermissionInitSerializer(CustomModelSerializer):
|
||||||
"""
|
"""
|
||||||
初始化角色菜单按钮(用于生成初始化json文件)
|
初始化角色接口权限(用于生成初始化json文件)
|
||||||
"""
|
"""
|
||||||
role_key = serializers.CharField(max_length=100, required=True)
|
role_key = serializers.CharField(max_length=100, required=True)
|
||||||
menu_button_value = serializers.CharField(max_length=100, required=True)
|
name = serializers.CharField(max_length=255, required=True)
|
||||||
|
api = serializers.CharField(max_length=255, required=True)
|
||||||
|
method = serializers.IntegerField(required=True)
|
||||||
data_range = serializers.CharField(max_length=100, required=False)
|
data_range = serializers.CharField(max_length=100, required=False)
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
init_data = self.initial_data
|
init_data = self.initial_data
|
||||||
validated_data.pop('menu_button_value')
|
|
||||||
validated_data.pop('role_key')
|
validated_data.pop('role_key')
|
||||||
role_id = Role.objects.filter(key=init_data['role_key']).first()
|
role_id = Role.objects.filter(key=init_data['role_key']).first()
|
||||||
menu_button_id = MenuButton.objects.filter(value=init_data['menu_button_value']).first()
|
|
||||||
validated_data['role'] = role_id
|
validated_data['role'] = role_id
|
||||||
validated_data['menu_button'] = menu_button_id
|
|
||||||
instance = super().create(validated_data)
|
instance = super().create(validated_data)
|
||||||
instance.dept.set([])
|
instance.dept.set([])
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = RoleMenuButtonPermission
|
model = RoleApiPermission
|
||||||
fields = ['role_key', 'menu_button_value', 'data_range', 'dept', 'creator', 'dept_belong_id']
|
fields = ['role_key', 'name','api','method', 'data_range', 'dept', 'creator', 'dept_belong_id']
|
||||||
read_only_fields = ["id"]
|
read_only_fields = ["id"]
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'role': {'required': False},
|
'role': {'required': False},
|
||||||
'menu': {'required': False},
|
|
||||||
'creator': {'write_only': True},
|
'creator': {'write_only': True},
|
||||||
'dept_belong_id': {'write_only': True}
|
'dept_belong_id': {'write_only': True}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,101 +24,36 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "menu:Search",
|
"component": "menu:search",
|
||||||
"api": "/api/system/menu/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "menu:Retrieve",
|
"component": "menu:retrieve",
|
||||||
"api": "/api/system/menu/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "menu:Create",
|
"component": "menu:create",
|
||||||
"api": "/api/system/menu/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "menu:Update",
|
"component": "menu:update",
|
||||||
"api": "/api/system/menu/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "menu:Delete",
|
"component": "menu:delete",
|
||||||
"api": "/api/system/menu/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "查询所有",
|
|
||||||
"value": "menu:SearchAll",
|
|
||||||
"api": "/api/system/menu/get_all_menu/",
|
|
||||||
"method": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "路由",
|
|
||||||
"value": "menu:router",
|
|
||||||
"api": "/api/system/menu/web_router/",
|
|
||||||
"method": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "上移",
|
|
||||||
"value": "menu:MoveUp",
|
|
||||||
"api": "/api/system/menu/mode_up/",
|
|
||||||
"method": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "下移",
|
|
||||||
"value": "menu:MoveDown",
|
|
||||||
"api": "/api/system/menu/mode_down/",
|
|
||||||
"method": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "菜单按钮",
|
|
||||||
"icon": "dot-circle-o",
|
|
||||||
"sort": 2,
|
|
||||||
"is_link": false,
|
|
||||||
"menu_type": 1,
|
|
||||||
"web_path": "/menuButton",
|
|
||||||
"component": "system/menuButton/index",
|
|
||||||
"component_name": "menuButton",
|
|
||||||
"status": true,
|
|
||||||
"cache": false,
|
|
||||||
"visible": false,
|
|
||||||
"children": [],
|
|
||||||
"menu_button": [
|
|
||||||
{
|
|
||||||
"name": "查询",
|
|
||||||
"value": "menu_button:Search",
|
|
||||||
"api": "/api/system/menu_button/",
|
|
||||||
"method": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "新增",
|
|
||||||
"value": "menu_button:Create",
|
|
||||||
"api": "/api/system/menu_button/",
|
|
||||||
"method": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "编辑",
|
|
||||||
"value": "menu_button:Update",
|
|
||||||
"api": "/api/system/menu_button/{id}/",
|
|
||||||
"method": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "删除",
|
|
||||||
"value": "menu_button:Delete",
|
|
||||||
"api": "/api/system/menu_button/{id}/",
|
|
||||||
"method": 3
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -134,67 +69,36 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "dept:Search",
|
"component": "dept:search",
|
||||||
"api": "/api/system/dept/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "dept:Retrieve",
|
"component": "dept:retrieve",
|
||||||
"api": "/api/system/dept/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "dept:Create",
|
"component": "dept:create",
|
||||||
"api": "/api/system/dept/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "dept:Update",
|
"component": "dept:update",
|
||||||
"api": "/api/system/dept/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "dept:Delete",
|
"component": "dept:delete",
|
||||||
"api": "/api/system/dept/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "查询所有",
|
|
||||||
"value": "dept:SearchAll",
|
|
||||||
"api": "/api/system/dept/all_dept/",
|
|
||||||
"method": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "懒加载查询所有",
|
|
||||||
"value": "dept:LazySearchAll",
|
|
||||||
"api": "/api/system/dept/dept_lazy_tree/",
|
|
||||||
"method": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "上移",
|
|
||||||
"value": "dept:MoveUp",
|
|
||||||
"api": "/api/system/dept/mode_up/",
|
|
||||||
"method": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "下移",
|
|
||||||
"value": "dept:MoveDown",
|
|
||||||
"api": "/api/system/dept/mode_down/",
|
|
||||||
"method": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "头信息",
|
|
||||||
"value": "dept:HeaderInfo",
|
|
||||||
"api": "/api/system/dept/dept_info/",
|
|
||||||
"method": 0
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -210,101 +114,42 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "role:Search",
|
"component": "role:search",
|
||||||
"api": "/api/system/role/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "role:Retrieve",
|
"component": "role:retrieve",
|
||||||
"api": "/api/system/role/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "role:Create",
|
"component": "role:create",
|
||||||
"api": "/api/system/role/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "role:Update",
|
"component": "role:update",
|
||||||
"api": "/api/system/role/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "保存",
|
"name": "保存",
|
||||||
"value": "role:Save",
|
"component": "role:Save",
|
||||||
"api": "/api/system/role/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "role:Delete",
|
"component": "role:delete",
|
||||||
"api": "/api/system/role/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "列管理",
|
|
||||||
"icon": "iconfont icon-bolangneng",
|
|
||||||
"sort": 5,
|
|
||||||
"is_link": false,
|
|
||||||
"menu_type": 1,
|
|
||||||
"web_path": "/columns",
|
|
||||||
"component": "system/columns/index",
|
|
||||||
"component_name": "columns",
|
|
||||||
"status": true,
|
|
||||||
"cache": false,
|
|
||||||
"visible": true,
|
|
||||||
"children": [],
|
|
||||||
"menu_button": [
|
|
||||||
{
|
|
||||||
"name": "查询",
|
|
||||||
"value": "column:Search",
|
|
||||||
"api": "/api/system/column/",
|
|
||||||
"method": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "详情",
|
|
||||||
"value": "column:Retrieve",
|
|
||||||
"api": "/api/system/column/{id}/",
|
|
||||||
"method": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "新增",
|
|
||||||
"value": "column:Create",
|
|
||||||
"api": "/api/system/column/",
|
|
||||||
"method": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "编辑",
|
|
||||||
"value": "column:Update",
|
|
||||||
"api": "/api/system/column/{id}/",
|
|
||||||
"method": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "删除",
|
|
||||||
"value": "column:Delete",
|
|
||||||
"api": "/api/system/column/{id}/",
|
|
||||||
"method": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "所有模型表",
|
|
||||||
"value": "column:AllModel",
|
|
||||||
"api": "/api/system/column/get_models/",
|
|
||||||
"method": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "自动匹配所有字段",
|
|
||||||
"value": "column:AutoMatch",
|
|
||||||
"api": "/api/system/column/auto_match_fields/",
|
|
||||||
"method": 1
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -320,61 +165,60 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "user:Search",
|
"component": "user:search",
|
||||||
"api": "/api/system/user/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "user:Retrieve",
|
"component": "user:retrieve",
|
||||||
"api": "/api/system/user/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "user:Create",
|
"component": "user:create",
|
||||||
"api": "/api/system/user/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "导出",
|
"name": "导出",
|
||||||
"value": "user:Export",
|
"component": "user:Export",
|
||||||
"api": "/api/system/user/export/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "导入",
|
"name": "导入",
|
||||||
"value": "user:Import",
|
"component": "user:Import",
|
||||||
"api": "/api/system/user/import/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "user:Update",
|
"component": "user:update",
|
||||||
"api": "/api/system/user/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "重设密码",
|
"name": "重设密码",
|
||||||
"value": "user:ResetPassword",
|
"component": "user:ResetPassword",
|
||||||
"api": "/api/system/user/{id}/reset_password/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "重置密码",
|
"name": "重置密码",
|
||||||
"value": "user:DefaultPassword",
|
"component": "user:DefaultPassword",
|
||||||
"api": "/api/system/user/{id}/reset_to_default_password/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "user:Delete",
|
"component": "user:delete",
|
||||||
"api": "/api/system/user/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -390,37 +234,36 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "messageCenter:Search",
|
"component": "messageCenter:search",
|
||||||
"api": "/api/system/message_center/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "messageCenter:Retrieve",
|
"component": "messageCenter:retrieve",
|
||||||
"api": "/api/system/message_center/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "messageCenter:Create",
|
"component": "messageCenter:create",
|
||||||
"api": "/api/system/message_center/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "messageCenter:Update",
|
"component": "messageCenter:update",
|
||||||
"api": "/api/system/message_center/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "messageCenter:Delete",
|
"component": "messageCenter:delete",
|
||||||
"api": "/api/system/menu/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -436,42 +279,40 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "api_white_list:Search",
|
"component": "api_white_list:search",
|
||||||
"api": "/api/system/api_white_list/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "api_white_list:Retrieve",
|
"component": "api_white_list:retrieve",
|
||||||
"api": "/api/system/api_white_list/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "api_white_list:Create",
|
"component": "api_white_list:create",
|
||||||
"api": "/api/system/api_white_list/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "api_white_list:Update",
|
"component": "api_white_list:update",
|
||||||
"api": "/api/system/api_white_list/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "api_white_list:Delete",
|
"component": "api_white_list:delete",
|
||||||
"api": "/api/system/api_white_list/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"menu_button": []
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "常规配置",
|
"name": "常规配置",
|
||||||
@@ -498,37 +339,36 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "system_config:Search",
|
"component": "system_config:search",
|
||||||
"api": "/api/system/system_config/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "system_config:Retrieve",
|
"component": "system_config:retrieve",
|
||||||
"api": "/api/system/system_config/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "system_config:Create",
|
"component": "system_config:create",
|
||||||
"api": "/api/system/system_config/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "system_config:Update",
|
"component": "system_config:update",
|
||||||
"api": "/api/system/system_config/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "system_config:Delete",
|
"component": "system_config:delete",
|
||||||
"api": "/api/system/system_config/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -544,37 +384,36 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "dictionary:Search",
|
"component": "dictionary:search",
|
||||||
"api": "/api/system/dictionary/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "dictionary:Retrieve",
|
"component": "dictionary:retrieve",
|
||||||
"api": "/api/system/dictionary/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "dictionary:Create",
|
"component": "dictionary:create",
|
||||||
"api": "/api/system/dictionary/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "dictionary:Update",
|
"component": "dictionary:update",
|
||||||
"api": "/api/system/dictionary/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "dictionary:Delete",
|
"component": "dictionary:delete",
|
||||||
"api": "/api/system/dictionary/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -590,37 +429,36 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "area:Search",
|
"component": "area:search",
|
||||||
"api": "/api/system/area/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "area:Retrieve",
|
"component": "area:retrieve",
|
||||||
"api": "/api/system/area/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "area:Create",
|
"component": "area:create",
|
||||||
"api": "/api/system/area/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "area:Update",
|
"component": "area:update",
|
||||||
"api": "/api/system/area/{id}/",
|
"menu_type": 2,
|
||||||
"method": 2
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "area:Delete",
|
"component": "area:delete",
|
||||||
"api": "/api/system/area/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -636,36 +474,34 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "file:Retrieve",
|
"component": "file:retrieve",
|
||||||
"api": "/api/system/file/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "file:Search",
|
"component": "file:search",
|
||||||
"api": "/api/system/file/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "file:Update",
|
"component": "file:update",
|
||||||
"api": "/api/system/file/{id}/",
|
"menu_type": 2,
|
||||||
"method": 1
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "file:Delete",
|
"component": "file:delete",
|
||||||
"api": "/api/system/file/{id}/",
|
"menu_type": 2,
|
||||||
"method": 3
|
"web_path": "/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"menu_button": []
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "日志管理",
|
"name": "日志管理",
|
||||||
@@ -674,7 +510,7 @@
|
|||||||
"is_link": false,
|
"is_link": false,
|
||||||
"menu_type": 0,
|
"menu_type": 0,
|
||||||
"web_path": "/log",
|
"web_path": "/log",
|
||||||
"component": "",
|
"component": "no",
|
||||||
"component_name": "",
|
"component_name": "",
|
||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
@@ -692,19 +528,18 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "login_log:Search",
|
"component": "login_log:search",
|
||||||
"api": "/api/system/login_log/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "login_log:Retrieve",
|
"component": "login_log:retrieve",
|
||||||
"api": "/api/system/login_log/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -720,23 +555,21 @@
|
|||||||
"status": true,
|
"status": true,
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"children": [],
|
"children": [
|
||||||
"menu_button": [
|
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "operation_log:Retrieve",
|
"component": "operation_log:retrieve",
|
||||||
"api": "/api/system/operation_log/{id}/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "operation_log:Search",
|
"component": "operation_log:search",
|
||||||
"api": "/api/system/operation_log/",
|
"menu_type": 2,
|
||||||
"method": 0
|
"web_path": "/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"menu_button": []
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
"key": "admin",
|
"key": "admin",
|
||||||
"sort": 1,
|
"sort": 1,
|
||||||
"status": true,
|
"status": true,
|
||||||
"admin": true,
|
|
||||||
"remark": null
|
"remark": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -12,7 +11,6 @@
|
|||||||
"key": "public",
|
"key": "public",
|
||||||
"sort": 2,
|
"sort": 2,
|
||||||
"status": true,
|
"status": true,
|
||||||
"admin": true,
|
|
||||||
"remark": null
|
"remark": null
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
14
backend/dvadmin/system/fixtures/init_roleapipermission.json
Normal file
14
backend/dvadmin/system/fixtures/init_roleapipermission.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"role_key": "admin",
|
||||||
|
"name": "菜单列表查询",
|
||||||
|
"api": "/api/system/menu/",
|
||||||
|
"method": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"role_key": "public",
|
||||||
|
"name": "菜单列表查询",
|
||||||
|
"api": "/api/system/menu/",
|
||||||
|
"method": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"role_key": "admin",
|
|
||||||
"menu_button_value": "menu:Search",
|
|
||||||
"data_range": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"role_key": "public",
|
|
||||||
"menu_button_value":"menu:Search",
|
|
||||||
"data_range": 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -11,7 +11,7 @@ from dvadmin.utils.core_initialize import CoreInitialize
|
|||||||
from dvadmin.system.fixtures.initSerializer import (
|
from dvadmin.system.fixtures.initSerializer import (
|
||||||
UsersInitSerializer, DeptInitSerializer, RoleInitSerializer,
|
UsersInitSerializer, DeptInitSerializer, RoleInitSerializer,
|
||||||
MenuInitSerializer, ApiWhiteListInitSerializer, DictionaryInitSerializer,
|
MenuInitSerializer, ApiWhiteListInitSerializer, DictionaryInitSerializer,
|
||||||
SystemConfigInitSerializer, RoleMenuInitSerializer, RoleMenuButtonInitSerializer
|
SystemConfigInitSerializer, RoleMenuInitSerializer, RoleApiPermissionInitSerializer
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ class Initialize(CoreInitialize):
|
|||||||
"""
|
"""
|
||||||
初始化菜单信息
|
初始化菜单信息
|
||||||
"""
|
"""
|
||||||
self.init_base(MenuInitSerializer, unique_fields=['name', 'web_path', 'component', 'component_name'])
|
self.init_base(MenuInitSerializer, unique_fields=['name'])
|
||||||
|
|
||||||
def init_role_menu(self):
|
def init_role_menu(self):
|
||||||
"""
|
"""
|
||||||
@@ -47,11 +47,11 @@ class Initialize(CoreInitialize):
|
|||||||
"""
|
"""
|
||||||
self.init_base(RoleMenuInitSerializer, unique_fields=['role', 'menu'])
|
self.init_base(RoleMenuInitSerializer, unique_fields=['role', 'menu'])
|
||||||
|
|
||||||
def init_role_menu_button(self):
|
def init_role_api_permission(self):
|
||||||
"""
|
"""
|
||||||
初始化角色菜单按钮信息
|
初始化角色菜单按钮信息
|
||||||
"""
|
"""
|
||||||
self.init_base(RoleMenuButtonInitSerializer, unique_fields=['role', 'menu_button'])
|
self.init_base(RoleApiPermissionInitSerializer, unique_fields=['role', 'api','name'])
|
||||||
|
|
||||||
def init_api_white_list(self):
|
def init_api_white_list(self):
|
||||||
"""
|
"""
|
||||||
@@ -77,7 +77,7 @@ class Initialize(CoreInitialize):
|
|||||||
self.init_users()
|
self.init_users()
|
||||||
self.init_menu()
|
self.init_menu()
|
||||||
self.init_role_menu()
|
self.init_role_menu()
|
||||||
self.init_role_menu_button()
|
self.init_role_api_permission()
|
||||||
self.init_api_white_list()
|
self.init_api_white_list()
|
||||||
self.init_dictionary()
|
self.init_dictionary()
|
||||||
self.init_system_config()
|
self.init_system_config()
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ class Role(CoreModel):
|
|||||||
key = models.CharField(max_length=64, unique=True, verbose_name="权限字符", help_text="权限字符")
|
key = models.CharField(max_length=64, unique=True, verbose_name="权限字符", help_text="权限字符")
|
||||||
sort = models.IntegerField(default=1, verbose_name="角色顺序", help_text="角色顺序")
|
sort = models.IntegerField(default=1, verbose_name="角色顺序", help_text="角色顺序")
|
||||||
status = models.BooleanField(default=True, verbose_name="角色状态", help_text="角色状态")
|
status = models.BooleanField(default=True, verbose_name="角色状态", help_text="角色状态")
|
||||||
admin = models.BooleanField(default=False, verbose_name="是否为admin", help_text="是否为admin")
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = table_prefix + "system_role"
|
db_table = table_prefix + "system_role"
|
||||||
@@ -165,7 +164,7 @@ class Menu(CoreModel):
|
|||||||
(2, "按钮"),
|
(2, "按钮"),
|
||||||
)
|
)
|
||||||
menu_type = models.IntegerField(default=0, verbose_name="菜单类型", help_text="菜单类型")
|
menu_type = models.IntegerField(default=0, verbose_name="菜单类型", help_text="菜单类型")
|
||||||
web_path = models.CharField(max_length=128, verbose_name="路由地址", null=True, blank=True, help_text="路由地址")
|
web_path = models.CharField(max_length=128,default="/", verbose_name="路由地址", null=True, blank=True, help_text="路由地址")
|
||||||
component = models.CharField(max_length=200, verbose_name="组件地址/按钮权限值", null=True, blank=True, help_text="组件地址/按钮权限值")
|
component = models.CharField(max_length=200, verbose_name="组件地址/按钮权限值", null=True, blank=True, help_text="组件地址/按钮权限值")
|
||||||
component_name = models.CharField(max_length=50, verbose_name="组件名称", null=True, blank=True,
|
component_name = models.CharField(max_length=50, verbose_name="组件名称", null=True, blank=True,
|
||||||
help_text="组件名称")
|
help_text="组件名称")
|
||||||
@@ -256,7 +255,7 @@ class RoleApiPermission(CoreModel):
|
|||||||
role = models.ForeignKey(
|
role = models.ForeignKey(
|
||||||
to="Role",
|
to="Role",
|
||||||
db_constraint=False,
|
db_constraint=False,
|
||||||
related_name="role_menu_button",
|
related_name="role_api",
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
verbose_name="关联角色",
|
verbose_name="关联角色",
|
||||||
help_text="关联角色",
|
help_text="关联角色",
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class ColumnViewSet(CustomModelViewSet):
|
|||||||
return ErrorResponse(msg="参数错误")
|
return ErrorResponse(msg="参数错误")
|
||||||
queryset = Columns.objects.filter(role_id=role_id, model=model_name, app=app_name)
|
queryset = Columns.objects.filter(role_id=role_id, model=model_name, app=app_name)
|
||||||
serializer = ColumnSerializer(queryset, many=True, request=request)
|
serializer = ColumnSerializer(queryset, many=True, request=request)
|
||||||
return DetailResponse(data=serializer.data, msg="获取成功")
|
return SuccessResponse(data=serializer.data, msg="获取成功")
|
||||||
|
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
payload = request.data
|
payload = request.data
|
||||||
|
|||||||
@@ -18,9 +18,11 @@
|
|||||||
<MenuPermission ref="menuPermissionRef" :role-id="props.roleId" @handleDrawerClose="handleDrawerClose"></MenuPermission>
|
<MenuPermission ref="menuPermissionRef" :role-id="props.roleId" @handleDrawerClose="handleDrawerClose"></MenuPermission>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="请求接口授权" name="api">
|
<el-tab-pane label="请求接口授权" name="api">
|
||||||
<ApiPermission :role-id="props.roleId"></ApiPermission>
|
<ApiPermission v-if="permissionTab==='api'" :role-id="props.roleId"></ApiPermission>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="表单字段授权" name="field">
|
||||||
|
<FieldPermission v-if="permissionTab==='field'" :role-id="props.roleId"></FieldPermission>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="接口权限" name="column">角色管理</el-tab-pane>
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
@@ -33,6 +35,7 @@ import {errorNotification} from '/@/utils/message';
|
|||||||
import {ElMessage} from 'element-plus'
|
import {ElMessage} from 'element-plus'
|
||||||
import MenuPermission from "./MenuPermission/index.vue";
|
import MenuPermission from "./MenuPermission/index.vue";
|
||||||
import ApiPermission from "./ApiPermission/index.vue";
|
import ApiPermission from "./ApiPermission/index.vue";
|
||||||
|
import FieldPermission from "./FieldPermission/index.vue";
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
roleId: {
|
roleId: {
|
||||||
type: Number,
|
type: Number,
|
||||||
|
|||||||
@@ -56,31 +56,15 @@ export const createCrudOptions = function ({
|
|||||||
show: true,
|
show: true,
|
||||||
},
|
},
|
||||||
edit: {
|
edit: {
|
||||||
show: hasPermissions('role:Update'),
|
show: hasPermissions('role:update'),
|
||||||
},
|
},
|
||||||
remove: {
|
remove: {
|
||||||
show: hasPermissions('role:Delete'),
|
show: hasPermissions('role:delete'),
|
||||||
},
|
},
|
||||||
/* custom: {
|
|
||||||
type: 'primary',
|
|
||||||
text: '权限配置',
|
|
||||||
show: hasPermissions('role:Update'),
|
|
||||||
tooltip: {
|
|
||||||
placement: 'top',
|
|
||||||
content: '权限配置',
|
|
||||||
},
|
|
||||||
click: (context: any): void => {
|
|
||||||
const { row } = context;
|
|
||||||
// eslint-disable-next-line no-mixed-spaces-and-tabs
|
|
||||||
rolePermission.value.drawer = true;
|
|
||||||
rolePermission.value.editedRoleInfo = row;
|
|
||||||
rolePermission.value.initGet();
|
|
||||||
},
|
|
||||||
}, */
|
|
||||||
customNew: {
|
customNew: {
|
||||||
type: 'primary',
|
type: 'primary',
|
||||||
text: '授权',
|
text: '授权',
|
||||||
show: hasPermissions('role:Update'),
|
// show: hasPermissions('role:Update'),
|
||||||
click: (context: any): void => {
|
click: (context: any): void => {
|
||||||
const { row } = context;
|
const { row } = context;
|
||||||
handleDrawerOpen(row);
|
handleDrawerOpen(row);
|
||||||
|
|||||||
Reference in New Issue
Block a user