diff --git a/.gitignore b/.gitignore
index 95d65ce2b9a71f4bb29af2f1f9c13231bc69e3b2..12bc2b3ee3e90884a6db97506c55488fbcb98dc4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,6 @@
.history/
.vscode/
-web/package-lock.json
\ No newline at end of file
+web/package-lock.json
+
+*.bat
\ No newline at end of file
diff --git a/backend/dvadmin/system/fixtures/init_menu.json b/backend/dvadmin/system/fixtures/init_menu.json
index 835a41e2bb214bea6bce6d2097b20e538fe43195..ec9742aa7ee793dfef84736611f102781cba0610 100644
--- a/backend/dvadmin/system/fixtures/init_menu.json
+++ b/backend/dvadmin/system/fixtures/init_menu.json
@@ -11,12 +11,164 @@
"status": true,
"cache": false,
"visible": true,
- "parent": null,
"children": [
+ {
+ "name": "用户管理",
+ "icon": "iconfont icon-icon-",
+ "sort": 1,
+ "is_link": false,
+ "is_catalog": false,
+ "web_path": "/user",
+ "component": "system/user/index",
+ "component_name": "user",
+ "status": true,
+ "cache": false,
+ "visible": true,
+ "children": [],
+ "menu_button": [
+ {
+ "name": "查询",
+ "value": "user:Search",
+ "api": "/api/system/user/",
+ "method": 0
+ },
+ {
+ "name": "新增",
+ "value": "user:Create",
+ "api": "/api/system/user/",
+ "method": 1
+ },
+ {
+ "name": "编辑",
+ "value": "user:Update",
+ "api": "/api/system/user/{id}/",
+ "method": 2
+ },
+ {
+ "name": "删除",
+ "value": "user:Delete",
+ "api": "/api/system/user/{id}/",
+ "method": 3
+ },
+ {
+ "name": "导出",
+ "value": "user:Export",
+ "api": "/api/system/user/export/",
+ "method": 1
+ },
+ {
+ "name": "导入",
+ "value": "user:Import",
+ "api": "/api/system/user/import/",
+ "method": 1
+ },
+ {
+ "name": "获取导入模板",
+ "value": "user:ImportTemplate",
+ "api": "/api/system/user/import/",
+ "method": 0
+ },
+ {
+ "name": "批量更新模板",
+ "value": "user:BatchUpdateTemplate",
+ "api": "/api/system/user/update_template/",
+ "method": 0
+ },
+ {
+ "name": "重设密码",
+ "value": "user:ResetPassword",
+ "api": "/api/system/user/{id}/reset_password/",
+ "method": 2
+ },
+ {
+ "name": "重置密码",
+ "value": "user:ResetDefaultPassword",
+ "api": "/api/system/user/{id}/reset_to_default_password/",
+ "method": 2
+ }
+ ],
+ "menu_field": [
+ {
+ "field_name": "avatar",
+ "title": "头像",
+ "model": "Users"
+ },
+ {
+ "field_name": "create_datetime",
+ "title": "创建时间",
+ "model": "Users"
+ },
+ {
+ "field_name": "creator",
+ "title": "创建人",
+ "model": "Users"
+ },
+ {
+ "field_name": "dept",
+ "title": "所属部门",
+ "model": "Users"
+ },
+ {
+ "field_name": "dept_belong_id",
+ "title": "数据归属部门",
+ "model": "Users"
+ },
+ {
+ "field_name": "description",
+ "title": "描述",
+ "model": "Users"
+ },
+ {
+ "field_name": "email",
+ "title": "邮箱",
+ "model": "Users"
+ },
+ {
+ "field_name": "gender",
+ "title": "性别",
+ "model": "Users"
+ },
+ {
+ "field_name": "id",
+ "title": "Id",
+ "model": "Users"
+ },
+ {
+ "field_name": "mobile",
+ "title": "电话",
+ "model": "Users"
+ },
+ {
+ "field_name": "modifier",
+ "title": "修改人",
+ "model": "Users"
+ },
+ {
+ "field_name": "name",
+ "title": "姓名",
+ "model": "Users"
+ },
+ {
+ "field_name": "update_datetime",
+ "title": "修改时间",
+ "model": "Users"
+ },
+ {
+ "field_name": "username",
+ "title": "用户账号",
+ "model": "Users"
+ },
+ {
+ "field_name": "user_type",
+ "title": "用户类型",
+ "model": "Users"
+ }
+ ]
+ },
{
"name": "菜单管理",
"icon": "iconfont icon-caidan",
- "sort": 1,
+ "sort": 2,
"is_link": false,
"is_catalog": false,
"web_path": "/menu",
@@ -25,7 +177,6 @@
"status": true,
"cache": false,
"visible": true,
- "parent": 1,
"children": [],
"menu_button": [
{
@@ -35,11 +186,29 @@
"method": 0
},
{
- "name": "详情",
+ "name": "单例",
"value": "menu:Retrieve",
"api": "/api/system/menu/{id}/",
"method": 0
},
+ {
+ "name": "新增",
+ "value": "menu:Create",
+ "api": "/api/system/menu/",
+ "method": 1
+ },
+ {
+ "name": "编辑",
+ "value": "menu:Update",
+ "api": "/api/system/menu/{id}/",
+ "method": 2
+ },
+ {
+ "name": "删除",
+ "value": "menu:Delete",
+ "api": "/api/system/menu/{id}/",
+ "method": 3
+ },
{
"name": "查询所有",
"value": "menu:SearchAll",
@@ -53,22 +222,28 @@
"method": 0
},
{
- "name": "查询按钮权限",
- "value": "btn:Search",
+ "name": "查询按钮",
+ "value": "menu:SearchButton",
"api": "/api/system/menu_button/",
"method": 0
},
{
- "name": "查询列权限",
- "value": "column:Search",
- "api": "/api/system/column/",
- "method": 0
+ "name": "新增按钮",
+ "value": "menu:CreateButton",
+ "api": "/api/system/menu_button/",
+ "method": 1
},
{
- "name": "新增",
- "value": "menu:Create",
- "api": "/api/system/menu/",
- "method": 1
+ "name": "编辑按钮",
+ "value": "menu:UpdateButton",
+ "api": "/api/system/menu_button/{id}/",
+ "method": 2
+ },
+ {
+ "name": "删除按钮",
+ "value": "menu:DeleteButton",
+ "api": "/api/system/menu_button/{id}/",
+ "method": 3
},
{
"name": "上移",
@@ -83,10 +258,10 @@
"method": 1
},
{
- "name": "新增按钮权限",
- "value": "btn:Create",
- "api": "/api/system/menu_button/",
- "method": 1
+ "name": "查询列权限",
+ "value": "column:Search",
+ "api": "/api/system/column/",
+ "method": 0
},
{
"name": "新增列权限",
@@ -94,47 +269,23 @@
"api": "/api/system/column/",
"method": 1
},
- {
- "name": "自动匹配列权限",
- "value": "column:Match",
- "api": "/api/system/column/auto_match_fields/",
- "method": 1
- },
- {
- "name": "编辑",
- "value": "menu:Update",
- "api": "/api/system/menu/{id}/",
- "method": 2
- },
- {
- "name": "修改按钮权限",
- "value": "btn:Update",
- "api": "/api/system/menu_button/{id}/",
- "method": 2
- },
{
"name": "编辑列权限",
"value": "column:Update",
"api": "/api/system/column/{id}/",
"method": 2
},
- {
- "name": "删除",
- "value": "menu:Delete",
- "api": "/api/system/menu/{id}/",
- "method": 3
- },
- {
- "name": "删除按钮权限",
- "value": "btn:Delete",
- "api": "/api/system/menu_button/{id}/",
- "method": 3
- },
{
"name": "删除列权限",
"value": "column:Delete",
"api": "/api/system/column/{id}/",
"method": 3
+ },
+ {
+ "name": "自动匹配列权限",
+ "value": "column:Match",
+ "api": "/api/system/column/auto_match_fields/",
+ "method": 1
}
],
"menu_field": []
@@ -151,7 +302,6 @@
"status": true,
"cache": false,
"visible": true,
- "parent": 1,
"children": [],
"menu_button": [
{
@@ -223,7 +373,6 @@
"status": true,
"cache": false,
"visible": true,
- "parent": 1,
"children": [],
"menu_button": [
{
@@ -233,17 +382,11 @@
"method": 0
},
{
- "name": "详情",
+ "name": "单例",
"value": "role:Retrieve",
"api": "/api/system/role/{id}/",
"method": 0
},
- {
- "name": "权限配置",
- "value": "role:Permission",
- "api": "/api/system/role/{id}/",
- "method": 0
- },
{
"name": "新增",
"value": "role:Create",
@@ -256,222 +399,122 @@
"api": "/api/system/role/{id}/",
"method": 2
},
- {
- "name": "保存",
- "value": "role:Save",
- "api": "/api/system/role/{id}/",
- "method": 2
- },
{
"name": "删除",
"value": "role:Delete",
"api": "/api/system/role/{id}/",
"method": 3
- }
- ],
- "menu_field": [
- {
- "field_name": "create_datetime",
- "title": "创建时间",
- "model": "Role"
- },
- {
- "field_name": "creator",
- "title": "创建人",
- "model": "Role"
- },
- {
- "field_name": "dept_belong_id",
- "title": "数据归属部门",
- "model": "Role"
- },
- {
- "field_name": "description",
- "title": "描述",
- "model": "Role"
- },
- {
- "field_name": "id",
- "title": "Id",
- "model": "Role"
- },
- {
- "field_name": "key",
- "title": "权限字符",
- "model": "Role"
- },
- {
- "field_name": "modifier",
- "title": "修改人",
- "model": "Role"
},
{
- "field_name": "name",
- "title": "角色名称",
- "model": "Role"
- },
- {
- "field_name": "sort",
- "title": "角色顺序",
- "model": "Role"
- },
- {
- "field_name": "status",
- "title": "角色状态",
- "model": "Role"
- },
- {
- "field_name": "update_datetime",
- "title": "修改时间",
- "model": "Role"
- }
- ]
- },
- {
- "name": "用户管理",
- "icon": "iconfont icon-icon-",
- "sort": 6,
- "is_link": false,
- "is_catalog": false,
- "web_path": "/user",
- "component": "system/user/index",
- "component_name": "user",
- "status": true,
- "cache": false,
- "visible": true,
- "parent": 1,
- "children": [],
- "menu_button": [
- {
- "name": "查询",
- "value": "user:Search",
- "api": "/api/system/user/",
+ "name": "获取所有可授权数据范围的部门",
+ "value": "role:AllDataRangeDept",
+ "api": "/api/system/role_menu_button_permision/role_to_dept_all/",
"method": 0
},
{
- "name": "详情",
- "value": "user:Retrieve",
- "api": "/api/system/user/{id}/",
+ "name": "获取所有可授权菜单",
+ "value": "role:AllCanMenu",
+ "api": "/api/system/role_menu_button_permision/get_role_menu/",
"method": 0
},
{
- "name": "新增",
- "value": "user:Create",
- "api": "/api/system/user/",
- "method": 1
+ "name": "获取所有已授权用户",
+ "value": "role:AllAuthorizedUser",
+ "api": "/api/system/role/get_role_users/",
+ "method": 0
},
{
- "name": "导出",
- "value": "user:Export",
- "api": "/api/system/user/export/",
- "method": 1
+ "name": "获取菜单所有可授权按钮",
+ "value": "role:AllMenuButton",
+ "api": "/api/system/role_menu_button_permision/get_role_menu_btn_field/",
+ "method": 0
},
{
- "name": "导入",
- "value": "user:Import",
- "api": "/api/system/user/import/",
- "method": 1
+ "name": "授权菜单",
+ "value": "role:SetMenu",
+ "api": "/api/system/role_menu_button_permision/set_role_menu/",
+ "method": 2
},
{
- "name": "编辑",
- "value": "user:Update",
- "api": "/api/system/user/{id}/",
+ "name": "授权菜单按钮",
+ "value": "role:SetMenuButton",
+ "api": "/api/system/role_menu_button_permision/set_role_menu_btn/",
"method": 2
},
{
- "name": "重设密码",
- "value": "user:ResetPassword",
- "api": "/api/system/user/{id}/reset_password/",
+ "name": "授权数据范围",
+ "value": "role:SetDataRange",
+ "api": "/api/system/role_menu_button_permision/set_role_menu_btn_data_range/",
"method": 2
},
{
- "name": "重置密码",
- "value": "user:DefaultPassword",
- "api": "/api/system/user/{id}/reset_to_default_password/",
- "method": 2
+ "name": "获取所有用户",
+ "value": "role:AllUser",
+ "api": "/api/system/user/",
+ "method": 0
},
{
- "name": "删除",
- "value": "user:Delete",
- "api": "/api/system/user/{id}/",
- "method": 3
+ "name": "授权用户予角色",
+ "value": "role:SetUserRole",
+ "api": "/api/system/role/{id}/set_role_users/",
+ "method": 2
}
],
"menu_field": [
- {
- "field_name": "avatar",
- "title": "头像",
- "model": "Users"
- },
{
"field_name": "create_datetime",
"title": "创建时间",
- "model": "Users"
+ "model": "Role"
},
{
"field_name": "creator",
"title": "创建人",
- "model": "Users"
- },
- {
- "field_name": "dept",
- "title": "所属部门",
- "model": "Users"
+ "model": "Role"
},
{
"field_name": "dept_belong_id",
"title": "数据归属部门",
- "model": "Users"
+ "model": "Role"
},
{
"field_name": "description",
"title": "描述",
- "model": "Users"
- },
- {
- "field_name": "email",
- "title": "邮箱",
- "model": "Users"
- },
- {
- "field_name": "gender",
- "title": "性别",
- "model": "Users"
+ "model": "Role"
},
{
"field_name": "id",
"title": "Id",
- "model": "Users"
+ "model": "Role"
},
{
- "field_name": "mobile",
- "title": "电话",
- "model": "Users"
+ "field_name": "key",
+ "title": "权限字符",
+ "model": "Role"
},
{
"field_name": "modifier",
"title": "修改人",
- "model": "Users"
+ "model": "Role"
},
{
"field_name": "name",
- "title": "姓名",
- "model": "Users"
+ "title": "角色名称",
+ "model": "Role"
},
{
- "field_name": "update_datetime",
- "title": "修改时间",
- "model": "Users"
+ "field_name": "sort",
+ "title": "角色顺序",
+ "model": "Role"
},
{
- "field_name": "username",
- "title": "用户账号",
- "model": "Users"
+ "field_name": "status",
+ "title": "角色状态",
+ "model": "Role"
},
{
- "field_name": "user_type",
- "title": "用户类型",
- "model": "Users"
+ "field_name": "update_datetime",
+ "title": "修改时间",
+ "model": "Role"
}
]
},
@@ -690,35 +733,11 @@
"menu_button": [
{
"name": "查询",
- "value": "Search",
- "api": "/api/system/downloadCenter/",
- "method": 0
- },
- {
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/downloadCenter/{id}/",
- "method": 0
- },
- {
- "name": "新增",
- "value": "Create",
- "api": "/api/system/downloadCenter/",
- "method": 1
- },
- {
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/downloadCenter/{id}/",
- "method": 2
- },
- {
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/downloadCenter/{id}/",
- "method": 3
+ "value": "downloadCenter:Search",
+ "api": "/api/system/download_center/"
}
- ]
+ ],
+ "menu_field": []
}
],
"menu_button": [],
diff --git a/backend/dvadmin/utils/viewset.py b/backend/dvadmin/utils/viewset.py
index 42948b1afb7a80fbe6fd1e8175a6345157365598..89de67a28f9cf83012e0a3c143bfdecb1a20ea39 100644
--- a/backend/dvadmin/utils/viewset.py
+++ b/backend/dvadmin/utils/viewset.py
@@ -152,3 +152,13 @@ class CustomModelViewSet(ModelViewSet, ImportSerializerMixin, ExportSerializerMi
return SuccessResponse(data=[], msg="删除成功")
else:
return ErrorResponse(msg="未获取到keys字段")
+
+ @action(methods=['post'], detail=False)
+ def get_by_ids(self, request):
+ """通过IDS列表获取数据"""
+ ids = request.data.get('ids', [])
+ if ids and ids != ['']:
+ queryset = self.get_queryset().filter(id__in=ids)
+ serializer = self.get_serializer(queryset, many=True)
+ return DetailResponse(data=serializer.data)
+ return DetailResponse(data=None)
diff --git a/backend/templates/terms_service.html b/backend/templates/terms_service.html
index cef7e386f498364ef67303a1b64ac2803b4c4b5a..566cd8663a1fe3c9e419c30040e2102146cd6448 100644
--- a/backend/templates/terms_service.html
+++ b/backend/templates/terms_service.html
@@ -82,7 +82,7 @@