功能变化: 菜单管理按钮配置优化
This commit is contained in:
@@ -30,31 +30,31 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "Menu:Search",
|
||||||
"api": "/api/system/menu/",
|
"api": "/api/system/menu/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "Menu:Retrieve",
|
||||||
"api": "/api/system/menu/{id}/",
|
"api": "/api/system/menu/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "Menu:Create",
|
||||||
"api": "/api/system/menu/",
|
"api": "/api/system/menu/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "Menu:Update",
|
||||||
"api": "/api/system/menu/{id}/",
|
"api": "/api/system/menu/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "Menu:Delete",
|
||||||
"api": "/api/system/menu/{id}/",
|
"api": "/api/system/menu/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -77,25 +77,25 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "MenuButton:Search",
|
||||||
"api": "/api/system/menu_button/",
|
"api": "/api/system/menu_button/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "MenuButton:Create",
|
||||||
"api": "/api/system/menu_button/",
|
"api": "/api/system/menu_button/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "MenuButton:Update",
|
||||||
"api": "/api/system/menu_button/{id}/",
|
"api": "/api/system/menu_button/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "MenuButton:Delete",
|
||||||
"api": "/api/system/menu_button/{id}/",
|
"api": "/api/system/menu_button/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -118,31 +118,31 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "Dept:Search",
|
||||||
"api": "/api/system/dept/",
|
"api": "/api/system/dept/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "Dept:Retrieve",
|
||||||
"api": "/api/system/dept/{id}/",
|
"api": "/api/system/dept/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "Dept:Create",
|
||||||
"api": "/api/system/dept/",
|
"api": "/api/system/dept/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "Dept:Update",
|
||||||
"api": "/api/system/dept/{id}/",
|
"api": "/api/system/dept/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "Dept:Delete",
|
||||||
"api": "/api/system/dept/{id}/",
|
"api": "/api/system/dept/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -165,37 +165,37 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "Role:Search",
|
||||||
"api": "/api/system/role/",
|
"api": "/api/system/role/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "Role:Retrieve",
|
||||||
"api": "/api/system/role/{id}/",
|
"api": "/api/system/role/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "Role:Create",
|
||||||
"api": "/api/system/role/",
|
"api": "/api/system/role/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "Role:Update",
|
||||||
"api": "/api/system/role/{id}/",
|
"api": "/api/system/role/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "保存",
|
"name": "保存",
|
||||||
"value": "Save",
|
"value": "Role:Save",
|
||||||
"api": "/api/system/role/{id}/",
|
"api": "/api/system/role/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "Role:Delete",
|
||||||
"api": "/api/system/role/{id}/",
|
"api": "/api/system/role/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -218,55 +218,55 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "User:Search",
|
||||||
"api": "/api/system/user/",
|
"api": "/api/system/user/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "User:Retrieve",
|
||||||
"api": "/api/system/user/{id}/",
|
"api": "/api/system/user/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "User:Create",
|
||||||
"api": "/api/system/user/",
|
"api": "/api/system/user/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "导出",
|
"name": "导出",
|
||||||
"value": "Export",
|
"value": "User:Export",
|
||||||
"api": "/api/system/user/export/",
|
"api": "/api/system/user/export/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "导入",
|
"name": "导入",
|
||||||
"value": "Import",
|
"value": "User:Import",
|
||||||
"api": "/api/system/user/import/",
|
"api": "/api/system/user/import/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "User:Update",
|
||||||
"api": "/api/system/user/{id}/",
|
"api": "/api/system/user/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "重设密码",
|
"name": "重设密码",
|
||||||
"value": "ResetPassword",
|
"value": "User:ResetPassword",
|
||||||
"api": "/api/system/user/{id}/reset_password/",
|
"api": "/api/system/user/{id}/reset_password/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "重置密码",
|
"name": "重置密码",
|
||||||
"value": "DefaultPassword",
|
"value": "User:DefaultPassword",
|
||||||
"api": "/api/system/user/{id}/reset_to_default_password/",
|
"api": "/api/system/user/{id}/reset_to_default_password/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "User:Delete",
|
||||||
"api": "/api/system/user/{id}/",
|
"api": "/api/system/user/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -289,31 +289,31 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "MessageCenter:Search",
|
||||||
"api": "/api/system/message_center/",
|
"api": "/api/system/message_center/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "MessageCenter:Retrieve",
|
||||||
"api": "/api/system/message_center/{id}/",
|
"api": "/api/system/message_center/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "MessageCenter:Create",
|
||||||
"api": "/api/system/message_center/",
|
"api": "/api/system/message_center/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "MessageCenter:Update",
|
||||||
"api": "/api/system/message_center/{id}/",
|
"api": "/api/system/message_center/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "MessageCenter:Delete",
|
||||||
"api": "/api/system/menu/{id}/",
|
"api": "/api/system/menu/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -336,31 +336,31 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "WhiteList:Search",
|
||||||
"api": "/api/system/api_white_list/",
|
"api": "/api/system/api_white_list/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "WhiteList:Retrieve",
|
||||||
"api": "/api/system/api_white_list/{id}/",
|
"api": "/api/system/api_white_list/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "WhiteList:Create",
|
||||||
"api": "/api/system/api_white_list/",
|
"api": "/api/system/api_white_list/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "WhiteList:Update",
|
||||||
"api": "/api/system/api_white_list/{id}/",
|
"api": "/api/system/api_white_list/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "WhiteList:Delete",
|
||||||
"api": "/api/system/api_white_list/{id}/",
|
"api": "/api/system/api_white_list/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -400,31 +400,31 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "Config:Search",
|
||||||
"api": "/api/system/system_config/",
|
"api": "/api/system/system_config/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "Config:Retrieve",
|
||||||
"api": "/api/system/system_config/{id}/",
|
"api": "/api/system/system_config/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "Config:Create",
|
||||||
"api": "/api/system/system_config/",
|
"api": "/api/system/system_config/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "Config:Update",
|
||||||
"api": "/api/system/system_config/{id}/",
|
"api": "/api/system/system_config/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "Config:Delete",
|
||||||
"api": "/api/system/system_config/{id}/",
|
"api": "/api/system/system_config/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -447,31 +447,31 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "Dictionary:Search",
|
||||||
"api": "/api/system/dictionary/",
|
"api": "/api/system/dictionary/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "Dictionary:Retrieve",
|
||||||
"api": "/api/system/dictionary/{id}/",
|
"api": "/api/system/dictionary/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "Dictionary:Create",
|
||||||
"api": "/api/system/dictionary/",
|
"api": "/api/system/dictionary/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "Dictionary:Update",
|
||||||
"api": "/api/system/dictionary/{id}/",
|
"api": "/api/system/dictionary/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "Dictionary:Delete",
|
||||||
"api": "/api/system/dictionary/{id}/",
|
"api": "/api/system/dictionary/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -494,31 +494,31 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "Areas:Search",
|
||||||
"api": "/api/system/area/",
|
"api": "/api/system/area/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "Areas:Retrieve",
|
||||||
"api": "/api/system/area/{id}/",
|
"api": "/api/system/area/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "新增",
|
"name": "新增",
|
||||||
"value": "Create",
|
"value": "Areas:Create",
|
||||||
"api": "/api/system/area/",
|
"api": "/api/system/area/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "Areas:Update",
|
||||||
"api": "/api/system/area/{id}/",
|
"api": "/api/system/area/{id}/",
|
||||||
"method": 2
|
"method": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "Areas:Delete",
|
||||||
"api": "/api/system/area/{id}/",
|
"api": "/api/system/area/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -541,25 +541,25 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "File:Retrieve",
|
||||||
"api": "/api/system/file/{id}/",
|
"api": "/api/system/file/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "File:Search",
|
||||||
"api": "/api/system/file/",
|
"api": "/api/system/file/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "编辑",
|
"name": "编辑",
|
||||||
"value": "Update",
|
"value": "File:Update",
|
||||||
"api": "/api/system/file/{id}/",
|
"api": "/api/system/file/{id}/",
|
||||||
"method": 1
|
"method": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "删除",
|
"name": "删除",
|
||||||
"value": "Delete",
|
"value": "File:Delete",
|
||||||
"api": "/api/system/file/{id}/",
|
"api": "/api/system/file/{id}/",
|
||||||
"method": 3
|
"method": 3
|
||||||
}
|
}
|
||||||
@@ -599,13 +599,13 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "LoginLog:Search",
|
||||||
"api": "/api/system/login_log/",
|
"api": "/api/system/login_log/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "LoginLog:Retrieve",
|
||||||
"api": "/api/system/login_log/{id}/",
|
"api": "/api/system/login_log/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
}
|
}
|
||||||
@@ -628,13 +628,13 @@
|
|||||||
"menu_button": [
|
"menu_button": [
|
||||||
{
|
{
|
||||||
"name": "详情",
|
"name": "详情",
|
||||||
"value": "Retrieve",
|
"value": "OperationLog:Retrieve",
|
||||||
"api": "/api/system/operation_log/{id}/",
|
"api": "/api/system/operation_log/{id}/",
|
||||||
"method": 0
|
"method": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "查询",
|
"name": "查询",
|
||||||
"value": "Search",
|
"value": "OperationLog:Search",
|
||||||
"api": "/api/system/operation_log/",
|
"api": "/api/system/operation_log/",
|
||||||
"method": 0
|
"method": 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ class MenuButton(CoreModel):
|
|||||||
help_text="关联菜单",
|
help_text="关联菜单",
|
||||||
)
|
)
|
||||||
name = models.CharField(max_length=64, verbose_name="名称", help_text="名称")
|
name = models.CharField(max_length=64, verbose_name="名称", help_text="名称")
|
||||||
value = models.CharField(max_length=64, verbose_name="权限值", help_text="权限值")
|
value = models.CharField(unique=True,max_length=64, verbose_name="权限值", help_text="权限值")
|
||||||
api = models.CharField(max_length=200, verbose_name="接口地址", help_text="接口地址")
|
api = models.CharField(max_length=200, verbose_name="接口地址", help_text="接口地址")
|
||||||
METHOD_CHOICES = (
|
METHOD_CHOICES = (
|
||||||
(0, "GET"),
|
(0, "GET"),
|
||||||
|
|||||||
@@ -128,25 +128,12 @@ class WebRouterSerializer(CustomModelSerializer):
|
|||||||
"""
|
"""
|
||||||
path = serializers.CharField(source="web_path")
|
path = serializers.CharField(source="web_path")
|
||||||
title = serializers.CharField(source="name")
|
title = serializers.CharField(source="name")
|
||||||
menuPermission = serializers.SerializerMethodField(read_only=True)
|
|
||||||
|
|
||||||
def get_menuPermission(self, instance):
|
|
||||||
# 判断是否是超级管理员
|
|
||||||
if self.request.user.is_superuser:
|
|
||||||
return instance.menuPermission.values_list('value', flat=True)
|
|
||||||
else:
|
|
||||||
# 根据当前角色获取权限按钮id集合
|
|
||||||
permissionIds = self.request.user.role.values_list('permission', flat=True)
|
|
||||||
queryset = instance.menuPermission.filter(id__in=permissionIds, menu=instance.id).values_list('value', flat=True)
|
|
||||||
if queryset:
|
|
||||||
return queryset
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Menu
|
model = Menu
|
||||||
fields = ('id', 'parent', 'icon', 'sort', 'path', 'name', 'title', 'is_link', 'is_catalog', 'web_path', 'component',
|
fields = ('id', 'parent', 'icon', 'sort', 'path', 'name', 'title', 'is_link', 'is_catalog', 'web_path', 'component',
|
||||||
'component_name', 'cache', 'visible', 'menuPermission')
|
'component_name', 'cache', 'visible')
|
||||||
read_only_fields = ["id"]
|
read_only_fields = ["id"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,11 @@
|
|||||||
@Created on: 2021/6/3 003 0:30
|
@Created on: 2021/6/3 003 0:30
|
||||||
@Remark: 菜单按钮管理
|
@Remark: 菜单按钮管理
|
||||||
"""
|
"""
|
||||||
from dvadmin.system.models import MenuButton
|
from django.db.models import F
|
||||||
|
from rest_framework.decorators import action
|
||||||
|
|
||||||
|
from dvadmin.system.models import MenuButton, RoleMenuButtonPermission
|
||||||
|
from dvadmin.utils.json_response import DetailResponse
|
||||||
from dvadmin.utils.serializers import CustomModelSerializer
|
from dvadmin.utils.serializers import CustomModelSerializer
|
||||||
from dvadmin.utils.viewset import CustomModelViewSet
|
from dvadmin.utils.viewset import CustomModelViewSet
|
||||||
|
|
||||||
@@ -57,3 +61,19 @@ class MenuButtonViewSet(CustomModelViewSet):
|
|||||||
create_serializer_class = MenuButtonCreateUpdateSerializer
|
create_serializer_class = MenuButtonCreateUpdateSerializer
|
||||||
update_serializer_class = MenuButtonCreateUpdateSerializer
|
update_serializer_class = MenuButtonCreateUpdateSerializer
|
||||||
extra_filter_class = []
|
extra_filter_class = []
|
||||||
|
|
||||||
|
@action(methods=['get'],detail=False)
|
||||||
|
def menu_button_all_permission(self,request):
|
||||||
|
"""
|
||||||
|
获取所有的按钮权限
|
||||||
|
:param request:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
is_superuser = request.user.is_superuser
|
||||||
|
is_admin = request.user.role.values_list('admin', flat=True)
|
||||||
|
if is_superuser or True in is_admin:
|
||||||
|
queryset = MenuButton.objects.values_list('menu_button__value',flat=True)
|
||||||
|
else:
|
||||||
|
role_id = request.user.role.values_list('id', flat=True)
|
||||||
|
queryset = RoleMenuButtonPermission.objects.filter(role__in=role_id).values_list('menu_button__value',flat=True).distinct()
|
||||||
|
return DetailResponse(data=queryset)
|
||||||
@@ -111,107 +111,3 @@ class RoleViewSet(CustomModelViewSet):
|
|||||||
create_serializer_class = RoleCreateUpdateSerializer
|
create_serializer_class = RoleCreateUpdateSerializer
|
||||||
update_serializer_class = RoleCreateUpdateSerializer
|
update_serializer_class = RoleCreateUpdateSerializer
|
||||||
search_fields = ['name', 'key']
|
search_fields = ['name', 'key']
|
||||||
|
|
||||||
@action(methods=['GET'], detail=False, permission_classes=[IsAuthenticated])
|
|
||||||
def role_get_menu(self, request):
|
|
||||||
"""根据当前用户的角色返回角色拥有的菜单"""
|
|
||||||
is_superuser = request.user.is_superuser
|
|
||||||
is_admin = request.user.role.values_list('admin',flat=True)
|
|
||||||
if is_superuser or True in is_admin:
|
|
||||||
queryset = Menu.objects.filter(status=1).all()
|
|
||||||
else:
|
|
||||||
menu_id_list = request.user.role.values_list('menu',flat=True)
|
|
||||||
queryset = Menu.objects.filter(id__in=menu_id_list)
|
|
||||||
# queryset = self.filter_queryset(queryset)
|
|
||||||
serializer = MenuPermissonSerializer(queryset, many=True,request=request)
|
|
||||||
return DetailResponse(data=serializer.data)
|
|
||||||
|
|
||||||
@action(methods=['GET'], detail=False, permission_classes=[IsAuthenticated])
|
|
||||||
def data_scope(self, request):
|
|
||||||
is_superuser = request.user.is_superuser
|
|
||||||
role_queryset = Role.objects.filter(users__id=request.user.id).values_list('data_range', flat=True)
|
|
||||||
if is_superuser:
|
|
||||||
data = [
|
|
||||||
{
|
|
||||||
"value": 0,
|
|
||||||
"label": '仅本人数据权限'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 1,
|
|
||||||
"label": '本部门及以下数据权限'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 2,
|
|
||||||
"label": '本部门数据权限'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 3,
|
|
||||||
"label": '全部数据权限'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 4,
|
|
||||||
"label": '自定义数据权限'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
else:
|
|
||||||
data = []
|
|
||||||
data_range_list = list(set(role_queryset))
|
|
||||||
for item in data_range_list:
|
|
||||||
if item == 0:
|
|
||||||
data = [{
|
|
||||||
"value": 0,
|
|
||||||
"label": '仅本人数据权限'
|
|
||||||
}]
|
|
||||||
elif item == 1:
|
|
||||||
data = [{
|
|
||||||
"value": 0,
|
|
||||||
"label": '仅本人数据权限'
|
|
||||||
}, {
|
|
||||||
"value": 1,
|
|
||||||
"label": '本部门及以下数据权限'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 2,
|
|
||||||
"label": '本部门数据权限'
|
|
||||||
}]
|
|
||||||
elif item == 2:
|
|
||||||
data = [{
|
|
||||||
"value": 0,
|
|
||||||
"label": '仅本人数据权限'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 2,
|
|
||||||
"label": '本部门数据权限'
|
|
||||||
}]
|
|
||||||
elif item == 3:
|
|
||||||
data = [{
|
|
||||||
"value": 0,
|
|
||||||
"label": '仅本人数据权限'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 3,
|
|
||||||
"label": '全部数据权限'
|
|
||||||
}, ]
|
|
||||||
elif item == 4:
|
|
||||||
data = [{
|
|
||||||
"value": 0,
|
|
||||||
"label": '仅本人数据权限'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"value": 4,
|
|
||||||
"label": '自定义数据权限'
|
|
||||||
}]
|
|
||||||
else:
|
|
||||||
data = []
|
|
||||||
return DetailResponse(data=data)
|
|
||||||
|
|
||||||
@action(methods=['GET'], detail=False, permission_classes=[IsAuthenticated])
|
|
||||||
def data_scope_dept(self,request):
|
|
||||||
"""根据当前角色获取部门信息"""
|
|
||||||
is_superuser = request.user.is_superuser
|
|
||||||
if is_superuser:
|
|
||||||
queryset = Dept.objects.values('id','name','parent')
|
|
||||||
else:
|
|
||||||
dept_list = request.user.role.values_list('dept',flat=True)
|
|
||||||
queryset = Dept.objects.filter(id__in=dept_list).values('id','name','parent')
|
|
||||||
return DetailResponse(data=queryset)
|
|
||||||
@@ -71,8 +71,8 @@ class RoleMenuButtonPermissionViewSet(CustomModelViewSet):
|
|||||||
if is_superuser or True in is_admin:
|
if is_superuser or True in is_admin:
|
||||||
queryset = Menu.objects.filter(status=1).values('id','name','parent','is_catalog')
|
queryset = Menu.objects.filter(status=1).values('id','name','parent','is_catalog')
|
||||||
else:
|
else:
|
||||||
role_id = request.user.role.id
|
role_id = request.user.role.values_list('id',flat=True)
|
||||||
queryset = RoleMenuButtonPermission.objects.filter(role=role_id).values(id=F('menu__id'),name=F('menu__name'),parent=F('menu__parent'),is_catalog=F('menu__is_catalog'))
|
queryset = RoleMenuButtonPermission.objects.filter(role__in=role_id).values(id=F('menu__id'),name=F('menu__name'),parent=F('menu__parent'),is_catalog=F('menu__is_catalog'))
|
||||||
return DetailResponse(data=queryset)
|
return DetailResponse(data=queryset)
|
||||||
|
|
||||||
@action(methods=['GET'], detail=False, permission_classes=[IsAuthenticated])
|
@action(methods=['GET'], detail=False, permission_classes=[IsAuthenticated])
|
||||||
@@ -183,6 +183,11 @@ class RoleMenuButtonPermissionViewSet(CustomModelViewSet):
|
|||||||
|
|
||||||
@action(methods=['get'],detail=False)
|
@action(methods=['get'],detail=False)
|
||||||
def menu_to_button(self,request):
|
def menu_to_button(self,request):
|
||||||
|
"""
|
||||||
|
根据菜单获取按钮
|
||||||
|
:param request:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
params = request.query_params
|
params = request.query_params
|
||||||
if params:
|
if params:
|
||||||
menu_id = params.get('menu',None)
|
menu_id = params.get('menu',None)
|
||||||
|
|||||||
@@ -13,13 +13,12 @@ import piniaPersist from 'pinia-plugin-persist'
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import fastCrud from './settings.ts'
|
import fastCrud from './settings.ts'
|
||||||
import pinia from './stores';
|
import pinia from './stores';
|
||||||
|
import permission from "/@/plugin/permission/index";
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
pinia.use(piniaPersist)
|
pinia.use(piniaPersist)
|
||||||
|
|
||||||
directive(app);
|
directive(app);
|
||||||
other.elSvg(app);
|
other.elSvg(app);
|
||||||
|
app.use(permission)
|
||||||
app.use(pinia).use(router).use(ElementPlus, { i18n: i18n.global.t }).use(i18n).use(VueGridLayout).use(fastCrud).mount('#app');
|
app.use(pinia).use(router).use(ElementPlus, { i18n: i18n.global.t }).use(i18n).use(VueGridLayout).use(fastCrud).mount('#app');
|
||||||
|
|
||||||
app.config.globalProperties.mittBus = mitt();
|
app.config.globalProperties.mittBus = mitt();
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { request } from "/@/utils/service";
|
import { request } from "/@/utils/service";
|
||||||
// import request from "/@/utils/request";
|
|
||||||
|
|
||||||
export function getCaptcha() {
|
export function getCaptcha() {
|
||||||
return request({
|
return request({
|
||||||
@@ -19,4 +18,4 @@ export function getUserInfo() {
|
|||||||
url: '/api/system/user/user_info/',
|
url: '/api/system/user/user_info/',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,11 +81,8 @@ export const createCrudOptions = function ({
|
|||||||
},
|
},
|
||||||
name: {
|
name: {
|
||||||
title: '权限名称',
|
title: '权限名称',
|
||||||
type: 'dict-select',
|
type: 'text',
|
||||||
search: {show: true},
|
search: {show: true},
|
||||||
dict: dict({
|
|
||||||
data: dictionary('system_button')
|
|
||||||
}),
|
|
||||||
column: {
|
column: {
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
@@ -103,7 +100,7 @@ export const createCrudOptions = function ({
|
|||||||
},
|
},
|
||||||
helper: {
|
helper: {
|
||||||
render (h) {
|
render (h) {
|
||||||
return (< el-alert title="可手动输入不在列表中的新值" type="warning" description="比较常用的建议放在字典管理中"/>
|
return (< el-alert title="手动输入" type="warning" description="页面中按钮的名称或者自定义一个名称"/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -122,7 +119,7 @@ export const createCrudOptions = function ({
|
|||||||
placeholder: '输入权限标识',
|
placeholder: '输入权限标识',
|
||||||
helper: {
|
helper: {
|
||||||
render (h) {
|
render (h) {
|
||||||
return (< el-alert title="用于前端按钮权限的判断展示" type="warning" description="使用方法:vm.hasPermissions(权限值)"/>
|
return (< el-alert title="唯一值" type="warning" description="用于判断前端按钮权限或接口权限"/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user