From c89148f6814442ba5318b993311dbc894f5874eb Mon Sep 17 00:00:00 2001 From: Angelo Date: Mon, 25 Apr 2022 12:11:39 +0800 Subject: [PATCH] refactor(initialize data): bug fixed & refactor initialize script --- backend/dvadmin/system/initialize.py | 1420 ----------------- .../system/management/commands/init.py | 26 +- backend/dvadmin/system/util/init_data.py | 1373 ++++++++++++++++ backend/dvadmin/system/util/initialize.py | 91 ++ backend/dvadmin/utils/serializers.py | 60 +- .../d2-container/components/d2-source.vue | 19 +- web/src/views/system/login/page.vue | 29 +- 7 files changed, 1540 insertions(+), 1478 deletions(-) delete mode 100644 backend/dvadmin/system/initialize.py create mode 100644 backend/dvadmin/system/util/init_data.py create mode 100644 backend/dvadmin/system/util/initialize.py 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"> - 本页源码 + @click="handleClick" + > + 本页源码 @@ -51,11 +52,11 @@ export default { $paddingLR: 15px; $paddingTB: 7px; $fontSize: 12px; - $rightOuter: $paddingLR / 2; + $rightOuter: calc($paddingLR / 2); opacity: 0; position: fixed; z-index: 9999; - right: - $borderRadius - $rightOuter; + right: -$borderRadius - $rightOuter; bottom: 20px; font-size: $fontSize; line-height: $fontSize; @@ -63,17 +64,17 @@ export default { border-radius: $borderRadius; padding: $paddingTB $paddingLR; padding-right: $borderRadius + $paddingLR; - background-color: rgba(#000, .7); + background-color: rgba(#000, 0.7); border: 1px solid #000; - color: #FFF; - transition: all .3s; + color: #fff; + transition: all 0.3s; @extend %unable-select; &.d2-source--active { opacity: 1; } &:hover { - right: - $borderRadius; - background-color: rgba(#000, .9); + right: -$borderRadius; + background-color: rgba(#000, 0.9); } } diff --git a/web/src/views/system/login/page.vue b/web/src/views/system/login/page.vue index d0bb2fe..fc095eb 100644 --- a/web/src/views/system/login/page.vue +++ b/web/src/views/system/login/page.vue @@ -86,14 +86,15 @@ 注册用户

--> - + 快速选择用户(限dev环境) +