diff --git a/backend/dvadmin/system/initialize.py b/backend/dvadmin/system/initialize.py
deleted file mode 100644
index a6d2198..0000000
--- a/backend/dvadmin/system/initialize.py
+++ /dev/null
@@ -1,1420 +0,0 @@
-# 初始化
-import datetime
-import os
-
-import django
-
-from dvadmin.utils.core_initialize import CoreInitialize
-
-os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'application.settings')
-django.setup()
-
-from dvadmin.system.models import Dept, Button, Menu, MenuButton, Role, Users
-
-
-class Initialize(CoreInitialize):
- creator_id = 1
-
- def init_dept(self):
- """
- 初始化部门信息
- """
- self.dept_data = [
- {
- "id": 1,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "DVAdmin团队",
- "sort": 1,
- "owner": "",
- "phone": "",
- "email": "",
- "status": 1,
- "creator_id": 1,
- "parent_id": None
- },
- {
- "id": 2,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 2,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "技术部",
- "sort": 1,
- "owner": None,
- "phone": None,
- "email": None,
- "status": 1,
- "creator_id": 1,
- "parent_id": 1
- },
- {
- "id": 3,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 3,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "运营部",
- "sort": 2,
- "owner": "",
- "phone": "",
- "email": "",
- "status": 1,
- "creator_id": 1,
- "parent_id": 1
- }
- ]
- self.save(Dept, self.dept_data, "部门信息")
-
- def init_button(self):
- """
- 初始化按钮表
- """
- self.button_data = [
- {
- "id": 1,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "creator_id": 1
- },
- {
- "id": 2,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "creator_id": 1
- },
- {
- "id": 3,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "creator_id": 1
- },
- {
- "id": 4,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "creator_id": 1
- },
- {
- "id": 5,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "creator_id": 1
- },
- {
- "id": 6,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "保存",
- "value": "Save",
- "creator_id": 1
- },
- {
- "id": 7,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "导入",
- "value": "Import",
- "creator_id": 1
- },
- {
- "id": 8,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "导出",
- "value": "Export",
- "creator_id": 1
- },
- {
- "id": 9,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "重置密码",
- "value": "ResetPwd",
- "creator_id": 1
- }
- ]
- self.save(Button, self.button_data, "权限表标识")
-
- def init_menu(self):
- """
- 初始化菜单表
- """
- self.menu_data = [
- {
- "id": 1,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "navicon",
- "name": "菜单管理",
- "sort": 1,
- "is_link": 0,
- "web_path": "/menu",
- "component": "system/menu",
- "component_name": "menu",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 2,
- "is_catalog": 0
- },
- {
- "id": 2,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "cog",
- "name": "系统管理",
- "sort": 1,
- "is_link": 0,
- "web_path": "",
- "component": "",
- "component_name": "",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": None,
- "is_catalog": 1
- },
- {
- "id": 3,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "users",
- "name": "用户管理",
- "sort": 6,
- "is_link": 0,
- "web_path": "/user",
- "component": "system/user/index",
- "component_name": "user",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 2,
- "is_catalog": 0
- },
- {
- "id": 4,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "address-book",
- "name": "角色管理",
- "sort": 4,
- "is_link": 0,
- "web_path": "/role",
- "component": "system/role/index",
- "component_name": "role",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 2,
- "is_catalog": 0
- },
- {
- "id": 5,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "bank",
- "name": "部门管理",
- "sort": 3,
- "is_link": 0,
- "web_path": "/dept",
- "component": "system/dept/index",
- "component_name": "dept",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 2,
- "is_catalog": 0
- },
- {
- "id": 7,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "dot-circle-o",
- "name": "菜单按钮",
- "sort": 2,
- "is_link": 0,
- "web_path": "/menuButton",
- "component": "system/menuButton/index",
- "component_name": "menuButton",
- "status": 1,
- "cache": 0,
- "visible": 0,
- "creator_id": 1,
- "parent_id": 2,
- "is_catalog": 0
- },
- {
- "id": 8,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "bullseye",
- "name": "按钮管理",
- "sort": 2,
- "is_link": 0,
- "web_path": "/button",
- "component": "system/button/index",
- "component_name": "button",
- "status": 1,
- "cache": 0,
- "visible": 0,
- "creator_id": 1,
- "parent_id": 2,
- "is_catalog": 0
- },
- {
- "id": 9,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "compass",
- "name": "接口白名单",
- "sort": 7,
- "is_link": 0,
- "web_path": "/apiWhiteList",
- "component": "system/whiteList/index",
- "component_name": "whiteList",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 2,
- "is_catalog": 0
- },
- {
- "id": 10,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "book",
- "name": "字典管理",
- "sort": 1,
- "is_link": 0,
- "web_path": "/dictionary",
- "component": "system/dictionary/index",
- "component_name": "dictionary",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 17,
- "is_catalog": 0
- },
- {
- "id": 11,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "map",
- "name": "地区管理",
- "sort": 2,
- "is_link": 0,
- "web_path": "/areas",
- "component": "system/areas/index",
- "component_name": "areas",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 17,
- "is_catalog": 0
- },
- {
- "id": 13,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "file-text-o",
- "name": "附件管理",
- "sort": 3,
- "is_link": 0,
- "web_path": "/file",
- "component": "system/fileList/index",
- "component_name": "file",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 17,
- "is_catalog": 0
- },
- {
- "id": 15,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "book",
- "name": "日志管理",
- "sort": 3,
- "is_link": 0,
- "web_path": "",
- "component": "",
- "component_name": "",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": None,
- "is_catalog": 1
- },
- {
- "id": 16,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "file-code-o",
- "name": "操作日志",
- "sort": 2,
- "is_link": 0,
- "web_path": "/operationLog",
- "component": "system/log/operationLog/index",
- "component_name": "operationLog",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 15,
- "is_catalog": 0
- },
- {
- "id": 17,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "cogs",
- "name": "常规配置",
- "sort": 2,
- "is_link": 0,
- "web_path": "",
- "component": "",
- "component_name": "",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": None,
- "is_catalog": 1
- },
- {
- "id": 18,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "external-link",
- "name": "DVAdmin官网",
- "sort": 4,
- "is_link": 1,
- "web_path": "https://django-vue-admin.com",
- "component": "",
- "component_name": "",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": None,
- "is_catalog": 0
- },
- {
- "id": 19,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "bug",
- "name": "前端错误日志",
- "sort": 4,
- "is_link": 0,
- "web_path": "/frontendLog",
- "component": "system/log/frontendLog/index",
- "component_name": "frontendLog",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 15,
- "is_catalog": 0
- },
- {
- "id": 20,
- "description": "",
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "icon": "file-text",
- "name": "登录日志",
- "sort": 1,
- "is_link": 0,
- "web_path": "/loginLog",
- "component": "system/log/loginLog/index",
- "component_name": "loginLog",
- "status": 1,
- "cache": 0,
- "visible": 1,
- "creator_id": 1,
- "parent_id": 15,
- "is_catalog": 0
- }
- ]
- self.save(Menu, self.menu_data, "菜单表")
-
- def init_menu_button(self):
- """
- 初始化菜单按钮表
- """
- self.menu_button_data = [
- {
- "id": 1,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/menu/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 1
- },
- {
- "id": 2,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/menu/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 1
- },
- {
- "id": 3,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "api": "/api/system/menu/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 1
- },
- {
- "id": 4,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/menu/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 1
- },
- {
- "id": 5,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/menu/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 1
- },
- {
- "id": 6,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/user/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 3
- },
- {
- "id": 7,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/user/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 3
- },
- {
- "id": 8,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/user/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 3
- },
- {
- "id": 9,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "api": "/api/system/user/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 3
- },
- {
- "id": 10,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/user/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 3
- },
- {
- "id": 11,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/role/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 4
- },
- {
- "id": 12,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/role/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 4
- },
- {
- "id": 13,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/role/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 4
- },
- {
- "id": 14,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "api": "/api/system/role/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 4
- },
- {
- "id": 15,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/role/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 4
- },
- {
- "id": 16,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/dept/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 5
- },
- {
- "id": 17,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/dept/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 5
- },
- {
- "id": 18,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/dept/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 5
- },
- {
- "id": 19,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "api": "/api/system/dept/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 5
- },
- {
- "id": 20,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/dept/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 5
- },
- {
- "id": 21,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/menu_button/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 7
- },
- {
- "id": 22,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/menu_button/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 7
- },
- {
- "id": 23,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "api": "/api/system/menu_button/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 7
- },
- {
- "id": 24,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/menu_button/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 7
- },
- {
- "id": 25,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "api": "/api/system/button/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 8
- },
- {
- "id": 26,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/button/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 8
- },
- {
- "id": 27,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/button/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 8
- },
- {
- "id": 28,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/button/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 8
- },
- {
- "id": 29,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "保存",
- "value": "Save",
- "api": "/api/system/role/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 6
- },
- {
- "id": 30,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/api_white_list/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 9
- },
- {
- "id": 31,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/api_white_list/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 9
- },
- {
- "id": 32,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/api_white_list/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 9
- },
- {
- "id": 33,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "api": "/api/system/api_white_list/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 9
- },
- {
- "id": 34,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/api_white_list/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 9
- },
- {
- "id": 35,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/dictionary/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 10
- },
- {
- "id": 36,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/dictionary/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 10
- },
- {
- "id": 37,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/dictionary/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 10
- },
- {
- "id": 38,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "api": "/api/system/dictionary/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 10
- },
- {
- "id": 39,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/dictionary/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 10
- },
- {
- "id": 40,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/area/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 11
- },
- {
- "id": 41,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/area/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 11
- },
- {
- "id": 42,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/area/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 11
- },
- {
- "id": 43,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "新增",
- "value": "Create",
- "api": "/api/system/area/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 11
- },
- {
- "id": 44,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/area/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 11
- },
- {
- "id": 45,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/operation_log/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 16
- },
- {
- "id": 46,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/operation_log/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 16
- },
- {
- "id": 47,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "导出",
- "value": "Export",
- "api": "/api/system/user/export/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 3
- },
- {
- "id": 48,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "导入",
- "value": "Import",
- "api": "/api/system/user/import/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 3
- },
- {
- "id": 49,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/file/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 13
- },
- {
- "id": 50,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/file/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 13
- },
- {
- "id": 51,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "删除",
- "value": "Delete",
- "api": "/api/system/file/{id}/",
- "method": 3,
- "creator_id": 1,
- "menu_id": 13
- },
- {
- "id": 52,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "编辑",
- "value": "Update",
- "api": "/api/system/file/{id}/",
- "method": 1,
- "creator_id": 1,
- "menu_id": 13
- },
- {
- "id": 53,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "重置密码",
- "value": "ResetPwd",
- "api": "/api/system/user/reset_password/{id}/",
- "method": 2,
- "creator_id": 1,
- "menu_id": 3
- },{
- "id": 54,
- "description": None,
- "modifier": "1",
- "dept_belong_id": "1",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "查询",
- "value": "Search",
- "api": "/api/system/login_log/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 20
- },
- {
- "id": 55,
- "description": None,
- "modifier": "1",
- "dept_belong_id": "1",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "详情",
- "value": "Retrieve",
- "api": "/api/system/login_log/{id}/",
- "method": 0,
- "creator_id": 1,
- "menu_id": 20
- }
- ]
- self.save(MenuButton, self.menu_button_data, "菜单按钮表")
-
- def init_role(self):
- """
- 初始化角色表
- """
- data = [
- {
- "id": 1,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "name": "管理员",
- "key": "admin",
- "sort": 1,
- "status": 1,
- "admin": 1,
- "data_range": 3,
- "menu": [ele.get("id") for ele in self.menu_data],
- "permission": [ele.get("id") for ele in self.menu_button_data],
- "remark": None,
- "creator_id": 1
- }
- ]
- self.save(Role, data, "角色表")
-
- def init_users(self):
- """
- 初始化用户表
- """
- data = [
- {
- "password": "pbkdf2_sha256$260000$g17x5wlSiW1FZAh1Eudchw$ZeSAqj3Xak0io8v/pmPW0BX9EX5R2zFXDwbbD68oBFk=",
- "last_login": None,
- "is_superuser": 1,
- "first_name": "",
- "last_name": "",
- "is_staff": 1,
- "is_active": 1,
- "id": 1,
- "description": None,
- "modifier": "1",
- "dept_belong_id": 1,
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "username": "superadmin",
- "email": "dvadmin@django-vue-admin.com",
- "mobile": "13333333333",
- "avatar": None,
- "name": "超级管理员",
- "gender": 1,
- "creator_id": None,
- "dept_id": 1
- },
- {
- "password": "pbkdf2_sha256$260000$g17x5wlSiW1FZAh1Eudchw$ZeSAqj3Xak0io8v/pmPW0BX9EX5R2zFXDwbbD68oBFk=",
- "last_login": None,
- "is_superuser": 0,
- "first_name": "",
- "last_name": "",
- "is_staff": 1,
- "is_active": 1,
- "id": 2,
- "description": "",
- "modifier": "1",
- "dept_belong_id": "",
- "update_datetime": datetime.datetime.now(),
- "create_datetime": datetime.datetime.now(),
- "username": "admin",
- "email": "dvadmin@django-vue-admin.com",
- "mobile": "13333333333",
- "avatar": "",
- "name": "管理员",
- "gender": 1,
- "creator_id": None,
- "dept_id": 1,
- "role": [1],
- }
- ]
- self.save(Users, data, "用户表", no_reset=True)
-
- def run(self):
- self.init_dept()
- self.init_button()
- self.init_menu()
- self.init_menu_button()
- self.init_role()
- self.init_users()
-
-
-# 项目init 初始化,默认会执行 main 方法进行初始化
-def main(reset=False):
- Initialize(reset).run()
- pass
-
-
-if __name__ == '__main__':
- main()
diff --git a/backend/dvadmin/system/management/commands/init.py b/backend/dvadmin/system/management/commands/init.py
index 4a168f4..4a299b5 100644
--- a/backend/dvadmin/system/management/commands/init.py
+++ b/backend/dvadmin/system/management/commands/init.py
@@ -13,27 +13,33 @@ class Command(BaseCommand):
"""
def add_arguments(self, parser):
- parser.add_argument('init_name', nargs='*', type=str, )
- parser.add_argument('-y', nargs='*')
- parser.add_argument('-Y', nargs='*')
- parser.add_argument('-n', nargs='*')
- parser.add_argument('-N', nargs='*')
+ parser.add_argument(
+ "init_name",
+ nargs="*",
+ type=str,
+ )
+ parser.add_argument("-y", nargs="*")
+ parser.add_argument("-Y", nargs="*")
+ parser.add_argument("-n", nargs="*")
+ parser.add_argument("-N", nargs="*")
def handle(self, *args, **options):
reset = False
- if isinstance(options.get('y'), list) or isinstance(options.get('Y'), list):
+ if isinstance(options.get("y"), list) or isinstance(options.get("Y"), list):
reset = True
- if isinstance(options.get('n'), list) or isinstance(options.get('N'), list):
+ if isinstance(options.get("n"), list) or isinstance(options.get("N"), list):
reset = False
print(f"正在准备初始化数据,{'如有初始化数据,将会不做操作跳过' if not reset else '初始数据将会先删除后新增'}...")
for app in settings.INSTALLED_APPS:
try:
- exec(f"""
-from {app}.initialize import main
+ exec(
+ f"""
+from {app}.util.initialize import main
main(reset={reset})
- """)
+ """
+ )
except ModuleNotFoundError:
pass
print("初始化数据完成!")
diff --git a/backend/dvadmin/system/util/init_data.py b/backend/dvadmin/system/util/init_data.py
new file mode 100644
index 0000000..e7f5e5a
--- /dev/null
+++ b/backend/dvadmin/system/util/init_data.py
@@ -0,0 +1,1373 @@
+import datetime
+
+
+dept_data = [
+ {
+ "id": 1,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "DVAdmin团队",
+ "sort": 1,
+ "owner": "",
+ "phone": "",
+ "email": "",
+ "status": 1,
+ "creator_id": 1,
+ "parent_id": None,
+ },
+ {
+ "id": 2,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 2,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "技术部",
+ "sort": 1,
+ "owner": None,
+ "phone": None,
+ "email": None,
+ "status": 1,
+ "creator_id": 1,
+ "parent_id": 1,
+ },
+ {
+ "id": 3,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 3,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "运营部",
+ "sort": 2,
+ "owner": "",
+ "phone": "",
+ "email": "",
+ "status": 1,
+ "creator_id": 1,
+ "parent_id": 1,
+ },
+]
+
+button_data = [
+ {
+ "id": 1,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "creator_id": 1,
+ },
+ {
+ "id": 2,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "creator_id": 1,
+ },
+ {
+ "id": 3,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "creator_id": 1,
+ },
+ {
+ "id": 4,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "creator_id": 1,
+ },
+ {
+ "id": 5,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "creator_id": 1,
+ },
+ {
+ "id": 6,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "保存",
+ "value": "Save",
+ "creator_id": 1,
+ },
+ {
+ "id": 7,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "导入",
+ "value": "Import",
+ "creator_id": 1,
+ },
+ {
+ "id": 8,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "导出",
+ "value": "Export",
+ "creator_id": 1,
+ },
+ {
+ "id": 9,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "重置密码",
+ "value": "ResetPwd",
+ "creator_id": 1,
+ },
+]
+
+menu_data = [
+ {
+ "id": 1,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "navicon",
+ "name": "菜单管理",
+ "sort": 1,
+ "is_link": 0,
+ "web_path": "/menu",
+ "component": "system/menu",
+ "component_name": "menu",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 2,
+ "is_catalog": 0,
+ },
+ {
+ "id": 2,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "cog",
+ "name": "系统管理",
+ "sort": 1,
+ "is_link": 0,
+ "web_path": "",
+ "component": "",
+ "component_name": "",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": None,
+ "is_catalog": 1,
+ },
+ {
+ "id": 3,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "users",
+ "name": "用户管理",
+ "sort": 6,
+ "is_link": 0,
+ "web_path": "/user",
+ "component": "system/user/index",
+ "component_name": "user",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 2,
+ "is_catalog": 0,
+ },
+ {
+ "id": 4,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "address-book",
+ "name": "角色管理",
+ "sort": 4,
+ "is_link": 0,
+ "web_path": "/role",
+ "component": "system/role/index",
+ "component_name": "role",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 2,
+ "is_catalog": 0,
+ },
+ {
+ "id": 5,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "bank",
+ "name": "部门管理",
+ "sort": 3,
+ "is_link": 0,
+ "web_path": "/dept",
+ "component": "system/dept/index",
+ "component_name": "dept",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 2,
+ "is_catalog": 0,
+ },
+ {
+ "id": 7,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "dot-circle-o",
+ "name": "菜单按钮",
+ "sort": 2,
+ "is_link": 0,
+ "web_path": "/menuButton",
+ "component": "system/menuButton/index",
+ "component_name": "menuButton",
+ "status": 1,
+ "cache": 0,
+ "visible": 0,
+ "creator_id": 1,
+ "parent_id": 2,
+ "is_catalog": 0,
+ },
+ {
+ "id": 8,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "bullseye",
+ "name": "按钮管理",
+ "sort": 2,
+ "is_link": 0,
+ "web_path": "/button",
+ "component": "system/button/index",
+ "component_name": "button",
+ "status": 1,
+ "cache": 0,
+ "visible": 0,
+ "creator_id": 1,
+ "parent_id": 2,
+ "is_catalog": 0,
+ },
+ {
+ "id": 9,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "compass",
+ "name": "接口白名单",
+ "sort": 7,
+ "is_link": 0,
+ "web_path": "/apiWhiteList",
+ "component": "system/whiteList/index",
+ "component_name": "whiteList",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 2,
+ "is_catalog": 0,
+ },
+ {
+ "id": 10,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "book",
+ "name": "字典管理",
+ "sort": 1,
+ "is_link": 0,
+ "web_path": "/dictionary",
+ "component": "system/dictionary/index",
+ "component_name": "dictionary",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 17,
+ "is_catalog": 0,
+ },
+ {
+ "id": 11,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "map",
+ "name": "地区管理",
+ "sort": 2,
+ "is_link": 0,
+ "web_path": "/areas",
+ "component": "system/areas/index",
+ "component_name": "areas",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 17,
+ "is_catalog": 0,
+ },
+ {
+ "id": 13,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "file-text-o",
+ "name": "附件管理",
+ "sort": 3,
+ "is_link": 0,
+ "web_path": "/file",
+ "component": "system/fileList/index",
+ "component_name": "file",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 17,
+ "is_catalog": 0,
+ },
+ {
+ "id": 15,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "book",
+ "name": "日志管理",
+ "sort": 3,
+ "is_link": 0,
+ "web_path": "",
+ "component": "",
+ "component_name": "",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": None,
+ "is_catalog": 1,
+ },
+ {
+ "id": 16,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "file-code-o",
+ "name": "操作日志",
+ "sort": 2,
+ "is_link": 0,
+ "web_path": "/operationLog",
+ "component": "system/log/operationLog/index",
+ "component_name": "operationLog",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 15,
+ "is_catalog": 0,
+ },
+ {
+ "id": 17,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "cogs",
+ "name": "常规配置",
+ "sort": 2,
+ "is_link": 0,
+ "web_path": "",
+ "component": "",
+ "component_name": "",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": None,
+ "is_catalog": 1,
+ },
+ {
+ "id": 18,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "external-link",
+ "name": "DVAdmin官网",
+ "sort": 4,
+ "is_link": 1,
+ "web_path": "https://django-vue-admin.com",
+ "component": "",
+ "component_name": "",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": None,
+ "is_catalog": 0,
+ },
+ {
+ "id": 19,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "bug",
+ "name": "前端错误日志",
+ "sort": 4,
+ "is_link": 0,
+ "web_path": "/frontendLog",
+ "component": "system/log/frontendLog/index",
+ "component_name": "frontendLog",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 15,
+ "is_catalog": 0,
+ },
+ {
+ "id": 20,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "icon": "file-text",
+ "name": "登录日志",
+ "sort": 1,
+ "is_link": 0,
+ "web_path": "/loginLog",
+ "component": "system/log/loginLog/index",
+ "component_name": "loginLog",
+ "status": 1,
+ "cache": 0,
+ "visible": 1,
+ "creator_id": 1,
+ "parent_id": 15,
+ "is_catalog": 0,
+ },
+]
+
+menu_button_data = [
+ {
+ "id": 1,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/menu/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 1,
+ },
+ {
+ "id": 2,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/menu/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 1,
+ },
+ {
+ "id": 3,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "api": "/api/system/menu/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 1,
+ },
+ {
+ "id": 4,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/menu/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 1,
+ },
+ {
+ "id": 5,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/menu/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 1,
+ },
+ {
+ "id": 6,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/user/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 3,
+ },
+ {
+ "id": 7,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/user/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 3,
+ },
+ {
+ "id": 8,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/user/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 3,
+ },
+ {
+ "id": 9,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "api": "/api/system/user/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 3,
+ },
+ {
+ "id": 10,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/user/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 3,
+ },
+ {
+ "id": 11,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/role/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 4,
+ },
+ {
+ "id": 12,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/role/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 4,
+ },
+ {
+ "id": 13,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/role/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 4,
+ },
+ {
+ "id": 14,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "api": "/api/system/role/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 4,
+ },
+ {
+ "id": 15,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/role/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 4,
+ },
+ {
+ "id": 16,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/dept/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 5,
+ },
+ {
+ "id": 17,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/dept/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 5,
+ },
+ {
+ "id": 18,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/dept/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 5,
+ },
+ {
+ "id": 19,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "api": "/api/system/dept/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 5,
+ },
+ {
+ "id": 20,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/dept/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 5,
+ },
+ {
+ "id": 21,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/menu_button/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 7,
+ },
+ {
+ "id": 22,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/menu_button/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 7,
+ },
+ {
+ "id": 23,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "api": "/api/system/menu_button/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 7,
+ },
+ {
+ "id": 24,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/menu_button/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 7,
+ },
+ {
+ "id": 25,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "api": "/api/system/button/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 8,
+ },
+ {
+ "id": 26,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/button/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 8,
+ },
+ {
+ "id": 27,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/button/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 8,
+ },
+ {
+ "id": 28,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/button/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 8,
+ },
+ {
+ "id": 29,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "保存",
+ "value": "Save",
+ "api": "/api/system/role/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 6,
+ },
+ {
+ "id": 30,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/api_white_list/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 9,
+ },
+ {
+ "id": 31,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/api_white_list/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 9,
+ },
+ {
+ "id": 32,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/api_white_list/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 9,
+ },
+ {
+ "id": 33,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "api": "/api/system/api_white_list/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 9,
+ },
+ {
+ "id": 34,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/api_white_list/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 9,
+ },
+ {
+ "id": 35,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/dictionary/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 10,
+ },
+ {
+ "id": 36,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/dictionary/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 10,
+ },
+ {
+ "id": 37,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/dictionary/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 10,
+ },
+ {
+ "id": 38,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "api": "/api/system/dictionary/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 10,
+ },
+ {
+ "id": 39,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/dictionary/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 10,
+ },
+ {
+ "id": 40,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/area/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 11,
+ },
+ {
+ "id": 41,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/area/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 11,
+ },
+ {
+ "id": 42,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/area/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 11,
+ },
+ {
+ "id": 43,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "新增",
+ "value": "Create",
+ "api": "/api/system/area/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 11,
+ },
+ {
+ "id": 44,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/area/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 11,
+ },
+ {
+ "id": 45,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/operation_log/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 16,
+ },
+ {
+ "id": 46,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/operation_log/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 16,
+ },
+ {
+ "id": 47,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "导出",
+ "value": "Export",
+ "api": "/api/system/user/export/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 3,
+ },
+ {
+ "id": 48,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "导入",
+ "value": "Import",
+ "api": "/api/system/user/import/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 3,
+ },
+ {
+ "id": 49,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/file/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 13,
+ },
+ {
+ "id": 50,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/file/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 13,
+ },
+ {
+ "id": 51,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "删除",
+ "value": "Delete",
+ "api": "/api/system/file/{id}/",
+ "method": 3,
+ "creator_id": 1,
+ "menu_id": 13,
+ },
+ {
+ "id": 52,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "编辑",
+ "value": "Update",
+ "api": "/api/system/file/{id}/",
+ "method": 1,
+ "creator_id": 1,
+ "menu_id": 13,
+ },
+ {
+ "id": 53,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "重置密码",
+ "value": "ResetPwd",
+ "api": "/api/system/user/reset_password/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 3,
+ },
+ {
+ "id": 54,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": "1",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "查询",
+ "value": "Search",
+ "api": "/api/system/login_log/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 20,
+ },
+ {
+ "id": 55,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": "1",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "详情",
+ "value": "Retrieve",
+ "api": "/api/system/login_log/{id}/",
+ "method": 0,
+ "creator_id": 1,
+ "menu_id": 20,
+ },
+ {
+ "id": 56,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "保存",
+ "value": "Save",
+ "api": "/api/system/role/{id}/",
+ "method": 2,
+ "creator_id": 1,
+ "menu_id": 4,
+ },
+]
+
+role_data = [
+ {
+ "id": 1,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "name": "管理员",
+ "key": "admin",
+ "sort": 1,
+ "status": 1,
+ "admin": 1,
+ "data_range": 3,
+ "menu": [ele.get("id") for ele in menu_data],
+ "permission": [ele.get("id") for ele in menu_button_data],
+ "remark": None,
+ "creator_id": 1,
+ }
+]
+
+staff_data = [
+ {
+ "password": "pbkdf2_sha256$260000$g17x5wlSiW1FZAh1Eudchw$ZeSAqj3Xak0io8v/pmPW0BX9EX5R2zFXDwbbD68oBFk=",
+ "last_login": None,
+ "is_superuser": 1,
+ "first_name": "",
+ "last_name": "",
+ "is_staff": 1,
+ "is_active": 1,
+ "id": 1,
+ "description": None,
+ "modifier": "1",
+ "dept_belong_id": 1,
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "username": "superadmin",
+ "email": "dvadmin@django-vue-admin.com",
+ "mobile": "13333333333",
+ "avatar": None,
+ "name": "超级管理员",
+ "gender": 1,
+ "creator_id": None,
+ "dept_id": 1,
+ },
+ {
+ "password": "pbkdf2_sha256$260000$g17x5wlSiW1FZAh1Eudchw$ZeSAqj3Xak0io8v/pmPW0BX9EX5R2zFXDwbbD68oBFk=",
+ "last_login": None,
+ "is_superuser": 0,
+ "first_name": "",
+ "last_name": "",
+ "is_staff": 1,
+ "is_active": 1,
+ "id": 2,
+ "description": "",
+ "modifier": "1",
+ "dept_belong_id": "",
+ "update_datetime": datetime.datetime.now(),
+ "create_datetime": datetime.datetime.now(),
+ "username": "admin",
+ "email": "dvadmin@django-vue-admin.com",
+ "mobile": "13333333333",
+ "avatar": "",
+ "name": "管理员",
+ "gender": 1,
+ "creator_id": None,
+ "dept_id": 1,
+ "role": [1],
+ },
+]
diff --git a/backend/dvadmin/system/util/initialize.py b/backend/dvadmin/system/util/initialize.py
new file mode 100644
index 0000000..fb82d09
--- /dev/null
+++ b/backend/dvadmin/system/util/initialize.py
@@ -0,0 +1,91 @@
+# 初始化
+import os
+
+import django
+
+from dvadmin.utils.core_initialize import CoreInitialize
+
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "application.settings")
+django.setup()
+
+from dvadmin.system.models import (
+ Dept,
+ Button,
+ Menu,
+ MenuButton,
+ Role,
+ Users,
+ Dictionary,
+)
+
+from .init_data import (
+ dept_data,
+ button_data,
+ menu_data,
+ menu_button_data,
+ role_data,
+ staff_data,
+)
+
+
+class Initialize(CoreInitialize):
+ creator_id = 1
+
+ def init_dept(self):
+ """
+ 初始化部门信息
+ """
+ self.dept_data = dept_data
+ self.save(Dept, self.dept_data, "部门信息")
+
+ def init_button(self):
+ """
+ 初始化按钮表
+ """
+ self.button_data = button_data
+ self.save(Button, self.button_data, "权限表标识")
+
+ def init_menu(self):
+ """
+ 初始化菜单表
+ """
+ self.menu_data = menu_data
+ self.save(Menu, self.menu_data, "菜单表")
+
+ def init_menu_button(self):
+ """
+ 初始化菜单按钮表
+ """
+ self.menu_button_data = menu_button_data
+ self.save(MenuButton, self.menu_button_data, "菜单权限表")
+
+ def init_role(self):
+ """
+ 初始化角色表
+ """
+ data = role_data
+ self.save(Role, data, "角色表")
+
+ def init_users(self):
+ """
+ 初始化用户表
+ """
+ data = staff_data
+ self.save(Users, data, "用户表", no_reset=False)
+
+ def run(self):
+ self.init_dept()
+ self.init_button()
+ self.init_menu()
+ self.init_menu_button()
+ self.init_role()
+ self.init_users()
+
+
+# 项目init 初始化,默认会执行 main 方法进行初始化
+def main(reset=False):
+ Initialize(reset).run()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/backend/dvadmin/utils/serializers.py b/backend/dvadmin/utils/serializers.py
index c6af51c..09cf50c 100644
--- a/backend/dvadmin/utils/serializers.py
+++ b/backend/dvadmin/utils/serializers.py
@@ -17,37 +17,46 @@ from dvadmin.system.models import Users
from django_restql.mixins import DynamicFieldsMixin
-
-class CustomModelSerializer(DynamicFieldsMixin,ModelSerializer):
+class CustomModelSerializer(DynamicFieldsMixin, ModelSerializer):
"""
增强DRF的ModelSerializer,可自动更新模型的审计字段记录
(1)self.request能获取到rest_framework.request.Request对象
"""
+
# 修改人的审计字段名称, 默认modifier, 继承使用时可自定义覆盖
- modifier_field_id = 'modifier'
+ modifier_field_id = "modifier"
modifier_name = serializers.SerializerMethodField(read_only=True)
def get_modifier_name(self, instance):
- if not hasattr(instance, 'modifier'):
+ if not hasattr(instance, "modifier"):
return None
- queryset = Users.objects.filter(username=instance.modifier).values_list('name', flat=True).first()
+ queryset = (
+ Users.objects.filter(id=instance.modifier)
+ .values_list("name", flat=True)
+ .first()
+ )
if queryset:
return queryset
return None
# 创建人的审计字段名称, 默认creator, 继承使用时可自定义覆盖
- creator_field_id = 'creator'
- creator_name = serializers.SlugRelatedField(slug_field="name", source="creator", read_only=True)
+ creator_field_id = "creator"
+ creator_name = serializers.SlugRelatedField(
+ slug_field="name", source="creator", read_only=True
+ )
# 数据所属部门字段
- dept_belong_id_field_name = 'dept_belong_id'
+ dept_belong_id_field_name = "dept_belong_id"
# 添加默认时间返回格式
- create_datetime = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
- update_datetime = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False)
-
+ create_datetime = serializers.DateTimeField(
+ format="%Y-%m-%d %H:%M:%S", required=False, read_only=True
+ )
+ update_datetime = serializers.DateTimeField(
+ format="%Y-%m-%d %H:%M:%S", required=False
+ )
def __init__(self, instance=None, data=empty, request=None, **kwargs):
super().__init__(instance, data, **kwargs)
- self.request: Request = request or self.context.get('request', None)
+ self.request: Request = request or self.context.get("request", None)
def save(self, **kwargs):
return super().save(**kwargs)
@@ -60,30 +69,36 @@ class CustomModelSerializer(DynamicFieldsMixin,ModelSerializer):
if self.creator_field_id in self.fields.fields:
validated_data[self.creator_field_id] = self.request.user
- if self.dept_belong_id_field_name in self.fields.fields and validated_data.get(
- self.dept_belong_id_field_name, None) is None:
- validated_data[self.dept_belong_id_field_name] = getattr(self.request.user, 'dept_id', None)
+ if (
+ self.dept_belong_id_field_name in self.fields.fields
+ and validated_data.get(self.dept_belong_id_field_name, None) is None
+ ):
+ validated_data[self.dept_belong_id_field_name] = getattr(
+ self.request.user, "dept_id", None
+ )
return super().create(validated_data)
def update(self, instance, validated_data):
if self.request:
if hasattr(self.instance, self.modifier_field_id):
- setattr(self.instance, self.modifier_field_id, self.get_request_user_id())
+ setattr(
+ self.instance, self.modifier_field_id, self.get_request_user_id()
+ )
return super().update(instance, validated_data)
def get_request_username(self):
- if getattr(self.request, 'user', None):
- return getattr(self.request.user, 'username', None)
+ if getattr(self.request, "user", None):
+ return getattr(self.request.user, "username", None)
return None
def get_request_name(self):
- if getattr(self.request, 'user', None):
- return getattr(self.request.user, 'name', None)
+ if getattr(self.request, "user", None):
+ return getattr(self.request.user, "name", None)
return None
def get_request_user_id(self):
- if getattr(self.request, 'user', None):
- return getattr(self.request.user, 'id', None)
+ if getattr(self.request, "user", None):
+ return getattr(self.request.user, "id", None)
return None
# @cached_property
@@ -132,4 +147,3 @@ class CustomModelSerializer(DynamicFieldsMixin,ModelSerializer):
# fields.pop(field, None)
#
# return fields
-
diff --git a/web/src/components/d2-container/components/d2-source.vue b/web/src/components/d2-container/components/d2-source.vue
index 2c85d5a..b81a8e9 100644
--- a/web/src/components/d2-container/components/d2-source.vue
+++ b/web/src/components/d2-container/components/d2-source.vue
@@ -3,8 +3,9 @@
v-if="show"
class="d2-source"
:class="{ 'd2-source--active': isActive }"
- @click="handleClick">
-