From ff3f89c7a4ce1b003e76e0643e2133bffbb08707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Thu, 6 May 2021 22:40:17 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBUG(=E6=BC=94=E7=A4=BA?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F):=20=E5=88=A4=E6=96=AD=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E4=B8=AD=EF=BC=8C=E6=98=AF=E5=90=A6=E4=B8=BA?= =?UTF-8?q?=E6=BC=94=E7=A4=BA=E6=A8=A1=E5=BC=8F(=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E5=8F=AF=E5=BF=BD=E7=95=A5=E6=AD=A4=E5=88=A4=E6=96=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-backend/apps/vadmin/op_drf/middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dvadmin-backend/apps/vadmin/op_drf/middleware.py b/dvadmin-backend/apps/vadmin/op_drf/middleware.py index 0990a07..8215c24 100644 --- a/dvadmin-backend/apps/vadmin/op_drf/middleware.py +++ b/dvadmin-backend/apps/vadmin/op_drf/middleware.py @@ -140,7 +140,7 @@ class PermissionModeMiddleware(MiddlewareMixin): def process_view(self, request, view_func, view_args, view_kwargs): # 判断环境变量中,是否为演示模式(正常可忽略此判断) - white_list = ['/admin/logout/', '/admin/login/'] + white_list = ['/admin/logout/', '/admin/login/', '/admin/api-auth/login/'] if os.getenv('DEMO_ENV') and not request.method in ['GET', 'OPTIONS'] and request.path not in white_list: return ErrorJsonResponse(data={}, msg=f'演示模式,不允许操作!') From d8bf287c85902e1bf62b7e166ca78422981afdec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Mon, 10 May 2021 22:48:02 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=96=B0=E5=8A=9F=E8=83=BD(APP=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF):=20=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=A8=A1?= =?UTF-8?q?=E6=9D=BFApp=EF=BC=8C=E6=96=B9=E4=BE=BF=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E5=88=9B=E5=BB=BAapp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-backend/apps/vadmin/logurus/test.py | 31 ------------------- dvadmin-backend/apps/vadmin/system/apps.py | 4 +-- .../apps/vadmin/template/__init__.py | 0 dvadmin-backend/apps/vadmin/template/admin.py | 0 dvadmin-backend/apps/vadmin/template/apps.py | 6 ++++ .../apps/vadmin/template/filters.py | 0 .../vadmin/template/migrations/__init__.py | 0 .../apps/vadmin/template/models/__init__.py | 2 ++ .../apps/vadmin/template/serializers.py | 0 dvadmin-backend/apps/vadmin/template/tasks.py | 0 dvadmin-backend/apps/vadmin/template/tests.py | 3 ++ dvadmin-backend/apps/vadmin/template/urls.py | 0 dvadmin-backend/apps/vadmin/template/views.py | 0 13 files changed, 13 insertions(+), 33 deletions(-) delete mode 100644 dvadmin-backend/apps/vadmin/logurus/test.py create mode 100644 dvadmin-backend/apps/vadmin/template/__init__.py create mode 100644 dvadmin-backend/apps/vadmin/template/admin.py create mode 100644 dvadmin-backend/apps/vadmin/template/apps.py create mode 100644 dvadmin-backend/apps/vadmin/template/filters.py create mode 100644 dvadmin-backend/apps/vadmin/template/migrations/__init__.py create mode 100644 dvadmin-backend/apps/vadmin/template/models/__init__.py create mode 100644 dvadmin-backend/apps/vadmin/template/serializers.py create mode 100644 dvadmin-backend/apps/vadmin/template/tasks.py create mode 100644 dvadmin-backend/apps/vadmin/template/tests.py create mode 100644 dvadmin-backend/apps/vadmin/template/urls.py create mode 100644 dvadmin-backend/apps/vadmin/template/views.py diff --git a/dvadmin-backend/apps/vadmin/logurus/test.py b/dvadmin-backend/apps/vadmin/logurus/test.py deleted file mode 100644 index d48c393..0000000 --- a/dvadmin-backend/apps/vadmin/logurus/test.py +++ /dev/null @@ -1,31 +0,0 @@ -from logging import StreamHandler, getLevelName -from logging.handlers import RotatingFileHandler -from typing import Optional, IO - - -class MyStreamHandler(StreamHandler): - - def __init__(self, stream: Optional[IO[str]] = ...) -> None: - print(222) - super().__init__(stream) - - def __repr__(self): - level = getLevelName(self.level) - name = getattr(self.stream, 'name', '') - # bpo-36015: name can be an int - name = str(name) - if name: - name += ' ' - print(111) - return '<%s %s(%s)>' % (self.__class__.__name__, name, level) -class MyRotatingFileHandler(RotatingFileHandler): - - def __init__(self, filename: str, mode: str = ..., maxBytes: int = ..., backupCount: int = ..., - encoding: Optional[str] = ..., delay: bool = ...) -> None: - print(4444) - super().__init__(filename, mode, maxBytes, backupCount, encoding, delay) - - def __repr__(self): - level = getLevelName(self.level) - print(22) - return '<%s %s (%s)>' % (self.__class__.__name__, self.baseFilename, level) diff --git a/dvadmin-backend/apps/vadmin/system/apps.py b/dvadmin-backend/apps/vadmin/system/apps.py index b5f214a..db16c07 100644 --- a/dvadmin-backend/apps/vadmin/system/apps.py +++ b/dvadmin-backend/apps/vadmin/system/apps.py @@ -1,6 +1,6 @@ from django.apps import AppConfig -class PermissionConfig(AppConfig): +class SystemConfig(AppConfig): name = 'vadmin.system' - verbose_name = "权限管理" + verbose_name = "系统管理" diff --git a/dvadmin-backend/apps/vadmin/template/__init__.py b/dvadmin-backend/apps/vadmin/template/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dvadmin-backend/apps/vadmin/template/admin.py b/dvadmin-backend/apps/vadmin/template/admin.py new file mode 100644 index 0000000..e69de29 diff --git a/dvadmin-backend/apps/vadmin/template/apps.py b/dvadmin-backend/apps/vadmin/template/apps.py new file mode 100644 index 0000000..de74370 --- /dev/null +++ b/dvadmin-backend/apps/vadmin/template/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class TemplateConfig(AppConfig): + name = 'vadmin.template' + verbose_name = "模板App" diff --git a/dvadmin-backend/apps/vadmin/template/filters.py b/dvadmin-backend/apps/vadmin/template/filters.py new file mode 100644 index 0000000..e69de29 diff --git a/dvadmin-backend/apps/vadmin/template/migrations/__init__.py b/dvadmin-backend/apps/vadmin/template/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dvadmin-backend/apps/vadmin/template/models/__init__.py b/dvadmin-backend/apps/vadmin/template/models/__init__.py new file mode 100644 index 0000000..22e8e28 --- /dev/null +++ b/dvadmin-backend/apps/vadmin/template/models/__init__.py @@ -0,0 +1,2 @@ +# from ..models.xxx import Xxx + diff --git a/dvadmin-backend/apps/vadmin/template/serializers.py b/dvadmin-backend/apps/vadmin/template/serializers.py new file mode 100644 index 0000000..e69de29 diff --git a/dvadmin-backend/apps/vadmin/template/tasks.py b/dvadmin-backend/apps/vadmin/template/tasks.py new file mode 100644 index 0000000..e69de29 diff --git a/dvadmin-backend/apps/vadmin/template/tests.py b/dvadmin-backend/apps/vadmin/template/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/dvadmin-backend/apps/vadmin/template/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/dvadmin-backend/apps/vadmin/template/urls.py b/dvadmin-backend/apps/vadmin/template/urls.py new file mode 100644 index 0000000..e69de29 diff --git a/dvadmin-backend/apps/vadmin/template/views.py b/dvadmin-backend/apps/vadmin/template/views.py new file mode 100644 index 0000000..e69de29 From 5ce22a5a9098e6f4601c6972814848901e13a311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Tue, 11 May 2021 00:21:13 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=96=B0=E5=8A=9F=E8=83=BD(=E4=B8=80?= =?UTF-8?q?=E9=94=AE=E5=88=9B=E5=BB=BAapp=E5=91=BD=E4=BB=A4):=20=E4=B8=80?= =?UTF-8?q?=E9=94=AE=E5=88=9B=E5=BB=BAapp=EF=BC=8C=E5=B9=B6=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E5=88=B0settings=E5=92=8Curls=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 创建命令: python manage.py createapp app名 python manage.py createapp app01 app02 ... --- .../apps/vadmin/op_drf/management/__init__.py | 0 .../op_drf/management/commands/__init__.py | 0 .../op_drf/management/commands/createapp.py | 75 +++++++++++++++++++ .../permission/management/commands/init.py | 2 +- dvadmin-backend/apps/vadmin/template/urls.py | 1 + 5 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 dvadmin-backend/apps/vadmin/op_drf/management/__init__.py create mode 100644 dvadmin-backend/apps/vadmin/op_drf/management/commands/__init__.py create mode 100644 dvadmin-backend/apps/vadmin/op_drf/management/commands/createapp.py diff --git a/dvadmin-backend/apps/vadmin/op_drf/management/__init__.py b/dvadmin-backend/apps/vadmin/op_drf/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dvadmin-backend/apps/vadmin/op_drf/management/commands/__init__.py b/dvadmin-backend/apps/vadmin/op_drf/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dvadmin-backend/apps/vadmin/op_drf/management/commands/createapp.py b/dvadmin-backend/apps/vadmin/op_drf/management/commands/createapp.py new file mode 100644 index 0000000..644b59f --- /dev/null +++ b/dvadmin-backend/apps/vadmin/op_drf/management/commands/createapp.py @@ -0,0 +1,75 @@ +import logging +import os +import shutil + +from django.core.management.base import BaseCommand + +logger = logging.getLogger(__name__) +from application.settings import BASE_DIR + + +class Command(BaseCommand): + """ + 创建App命令: + python manage.py createapp app名 + python manage.py createapp app01 app02 ... + """ + + def add_arguments(self, parser): + parser.add_argument('app_name', nargs='*', type=str, ) + + def handle(self, *args, **options): + app_name = options.get('app_name') + for name in app_name: + app_path = os.path.join(BASE_DIR, "apps", name) + # 判断app是否存在 + if os.path.exists(app_path): + print(f"创建失败,App {name} 已存在!") + break + source_path = os.path.join(BASE_DIR, "apps", "vadmin", "template") + target_path = app_path + if not os.path.exists(target_path): + # 如果目标路径不存在原文件夹的话就创建 + os.makedirs(target_path) + if os.path.exists(source_path): + # 如果目标路径存在原文件夹的话就先删除 + shutil.rmtree(target_path) + shutil.copytree(source_path, target_path) + # 修改app中的apps 内容 + content = f"""from django.apps import AppConfig + + +class {name.capitalize()}Config(AppConfig): + name = '{name}' + verbose_name = "{name}App" +""" + with open(os.path.join(app_path, "apps.py"), 'w', encoding='UTF-8') as f: + f.write(content) + f.close() + # 注册app到 settings.py 中 + injection(os.path.join(BASE_DIR, "application", "settings.py"), f" 'apps.{name}',\n", "INSTALLED_APPS", + "]") + + # 注册app到 urls.py 中 + injection(os.path.join(BASE_DIR, "application", "urls.py"), + f" re_path(r'^{name}/', include('apps.{name}.urls')),\n", "urlpatterns = [", + "]") + + print(f"创建 {name} App成功") + + +def injection(file_path, insert_content, startswith, endswith): + with open(file_path, "r+", encoding="utf-8") as f: + data = f.readlines() + with open(file_path, 'w', encoding='UTF-8') as f1: + is_INSTALLED_APPS = False + is_insert = False + for content in data: + # 判断文件是否 INSTALLED_APPS 开头 + if not is_insert and content.startswith(startswith): + is_INSTALLED_APPS = True + if not is_insert and content.startswith(endswith) and is_INSTALLED_APPS: + # 给前一行插入数据 + content = insert_content + content + is_insert = True + f1.writelines(content) diff --git a/dvadmin-backend/apps/vadmin/permission/management/commands/init.py b/dvadmin-backend/apps/vadmin/permission/management/commands/init.py index 3db4d21..ec4a3dc 100644 --- a/dvadmin-backend/apps/vadmin/permission/management/commands/init.py +++ b/dvadmin-backend/apps/vadmin/permission/management/commands/init.py @@ -12,7 +12,7 @@ logger = logging.getLogger(__name__) class Command(BaseCommand): """ - 项目初始化命令: python manage.py initialization + 项目初始化命令: python manage.py init """ def customSql(self, sql_list, model_name, table_name, is_yes): diff --git a/dvadmin-backend/apps/vadmin/template/urls.py b/dvadmin-backend/apps/vadmin/template/urls.py index e69de29..637600f 100644 --- a/dvadmin-backend/apps/vadmin/template/urls.py +++ b/dvadmin-backend/apps/vadmin/template/urls.py @@ -0,0 +1 @@ +urlpatterns = [] From 6b6f455249c09eadc81562fb3b222169eb11270f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Wed, 12 May 2021 00:59:48 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E6=96=B0=E5=8A=9F=E8=83=BD(=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=BB=84=E4=BB=B6=E5=B0=81=E8=A3=85):=20=E5=B0=81?= =?UTF-8?q?=E8=A3=85=E9=83=A8=E9=97=A8=E9=80=89=E6=8B=A9=E5=99=A8=E3=80=81?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=80=89=E6=8B=A9=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-ui/src/components/DeptTree/index.vue | 55 ++++++++++++++++++ dvadmin-ui/src/components/UsersTree/index.vue | 56 +++++++++++++++++++ dvadmin-ui/src/main.js | 4 ++ 3 files changed, 115 insertions(+) create mode 100644 dvadmin-ui/src/components/DeptTree/index.vue create mode 100644 dvadmin-ui/src/components/UsersTree/index.vue diff --git a/dvadmin-ui/src/components/DeptTree/index.vue b/dvadmin-ui/src/components/DeptTree/index.vue new file mode 100644 index 0000000..4c4c465 --- /dev/null +++ b/dvadmin-ui/src/components/DeptTree/index.vue @@ -0,0 +1,55 @@ + + + + + + + + + + diff --git a/dvadmin-ui/src/components/UsersTree/index.vue b/dvadmin-ui/src/components/UsersTree/index.vue new file mode 100644 index 0000000..faaf109 --- /dev/null +++ b/dvadmin-ui/src/components/UsersTree/index.vue @@ -0,0 +1,56 @@ + + + + + + + + + + diff --git a/dvadmin-ui/src/main.js b/dvadmin-ui/src/main.js index e589237..0716514 100755 --- a/dvadmin-ui/src/main.js +++ b/dvadmin-ui/src/main.js @@ -30,6 +30,8 @@ import Pagination from "@/components/Pagination"; // 自定义表格工具扩展 import RightToolbar from "@/components/RightToolbar" import SmallDialog from '@/components/SmallDialog'; +import DeptTree from '@/components/DeptTree'; +import UsersTree from '@/components/UsersTree'; import CommonIcon from '@/components/CommonIcon'; import CommonStaticTable from '@/components/CommonStaticTable'; import {getCrontabData, getIntervalData} from "./utils/validate"; // 通用图标组件 @@ -67,6 +69,8 @@ Vue.prototype.msgInfo = function (msg) { } // 自定义组件 Vue.component('small-dialog', SmallDialog); +Vue.component('dept-tree', DeptTree); +Vue.component('users-tree', UsersTree); // 全局组件挂载 Vue.component('Pagination', Pagination) Vue.component('RightToolbar', RightToolbar) From 9121e7ad29f60165bbfd447e3f55f825997e1c3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Wed, 12 May 2021 01:01:12 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBUG(=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E7=AE=A1=E7=90=86=E5=91=98=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AFBUG):?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-backend/apps/vadmin/permission/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dvadmin-backend/apps/vadmin/permission/serializers.py b/dvadmin-backend/apps/vadmin/permission/serializers.py index 6d1fd7a..f93212c 100644 --- a/dvadmin-backend/apps/vadmin/permission/serializers.py +++ b/dvadmin-backend/apps/vadmin/permission/serializers.py @@ -235,7 +235,7 @@ class UserProfileSerializer(CustomModelSerializer): class Meta: model = UserProfile depth = 1 - exclude = ('password', 'secret', 'user_permissions', 'groups', 'is_superuser', 'date_joined') + exclude = ('password', 'secret', 'user_permissions', 'groups', 'is_superuser', 'date_joined', 'creator') class ExportUserProfileSerializer(CustomModelSerializer): From 89a0c66455945914a2e819d6be540b98429de32a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Wed, 12 May 2021 19:57:00 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=98=E5=8C=96(?= =?UTF-8?q?=E6=A1=86=E6=9E=B6-=E5=88=86=E9=A1=B5=E5=99=A8):=20=E5=8F=AF?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E8=87=AA=E5=AE=9A=E4=B9=89=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-backend/application/settings.py | 2 +- dvadmin-backend/apps/vadmin/op_drf/generics.py | 2 +- dvadmin-backend/apps/vadmin/op_drf/viewsets.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dvadmin-backend/application/settings.py b/dvadmin-backend/application/settings.py index 7e19586..75411de 100644 --- a/dvadmin-backend/application/settings.py +++ b/dvadmin-backend/application/settings.py @@ -283,7 +283,7 @@ REST_FRAMEWORK = { ), 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema', - 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', + 'DEFAULT_PAGINATION_CLASS': 'vadmin.op_drf.pagination.JsonPagination', 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',), 'EXCEPTION_HANDLER': 'apps.vadmin.utils.exceptions.op_exception_handler', } diff --git a/dvadmin-backend/apps/vadmin/op_drf/generics.py b/dvadmin-backend/apps/vadmin/op_drf/generics.py index f508c38..802c111 100644 --- a/dvadmin-backend/apps/vadmin/op_drf/generics.py +++ b/dvadmin-backend/apps/vadmin/op_drf/generics.py @@ -45,7 +45,7 @@ class GenericAPIView(CustomAPIView): filter_backends = api_settings.DEFAULT_FILTER_BACKENDS # The style to use for queryset pagination. - pagination_class = Pagination + pagination_class = api_settings.DEFAULT_PAGINATION_CLASS def get_queryset(self): """ diff --git a/dvadmin-backend/apps/vadmin/op_drf/viewsets.py b/dvadmin-backend/apps/vadmin/op_drf/viewsets.py index d707526..5119aa0 100644 --- a/dvadmin-backend/apps/vadmin/op_drf/viewsets.py +++ b/dvadmin-backend/apps/vadmin/op_drf/viewsets.py @@ -29,7 +29,7 @@ def get_object_or_404(queryset, *filter_args, **filter_kwargs): class GenericViewSet(ViewSetMixin, GenericAPIView): extra_filter_backends = [] - pagination_class = Pagination + pagination_class = api_settings.DEFAULT_PAGINATION_CLASS filter_backends = [DjangoFilterBackend, OrderingFilter, SearchFilter, AdvancedSearchFilter] view_logger_classes = (CustomerModelViewLogger,) From 9044a2d137afba9d35c94bbf603b244d6d170abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Thu, 13 May 2021 09:02:35 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=98=E5=8C=96(?= =?UTF-8?q?=E6=A1=86=E6=9E=B6-=E5=88=86=E9=A1=B5=E5=99=A8):=20=E5=8F=AF?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E8=87=AA=E5=AE=9A=E4=B9=89=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-backend/application/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dvadmin-backend/application/settings.py b/dvadmin-backend/application/settings.py index 75411de..05a9015 100644 --- a/dvadmin-backend/application/settings.py +++ b/dvadmin-backend/application/settings.py @@ -283,7 +283,7 @@ REST_FRAMEWORK = { ), 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema', - 'DEFAULT_PAGINATION_CLASS': 'vadmin.op_drf.pagination.JsonPagination', + 'DEFAULT_PAGINATION_CLASS': 'vadmin.op_drf.pagination.Pagination', 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',), 'EXCEPTION_HANDLER': 'apps.vadmin.utils.exceptions.op_exception_handler', } From 80efc70ed17a41406104cab8491d3affec7371c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Sun, 16 May 2021 23:31:52 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E6=96=B0=E5=8A=9F=E8=83=BD(=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=BB=84=E4=BB=B6=E5=B0=81=E8=A3=85):=20=E5=BC=BA?= =?UTF-8?q?=E5=A4=A7CURD=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-ui/src/components/DeptTree/index.vue | 63 ++ .../src/components/ModelDisplay/index.vue | 870 ++++++++++++++++++ dvadmin-ui/src/components/UsersTree/index.vue | 62 ++ dvadmin-ui/src/main.js | 6 + 4 files changed, 1001 insertions(+) create mode 100644 dvadmin-ui/src/components/DeptTree/index.vue create mode 100644 dvadmin-ui/src/components/ModelDisplay/index.vue create mode 100644 dvadmin-ui/src/components/UsersTree/index.vue diff --git a/dvadmin-ui/src/components/DeptTree/index.vue b/dvadmin-ui/src/components/DeptTree/index.vue new file mode 100644 index 0000000..3c9a8c1 --- /dev/null +++ b/dvadmin-ui/src/components/DeptTree/index.vue @@ -0,0 +1,63 @@ + + + + + + + + + + diff --git a/dvadmin-ui/src/components/ModelDisplay/index.vue b/dvadmin-ui/src/components/ModelDisplay/index.vue new file mode 100644 index 0000000..0dad015 --- /dev/null +++ b/dvadmin-ui/src/components/ModelDisplay/index.vue @@ -0,0 +1,870 @@ + + + + + + + + + + + + + + + + + + + + + 搜索 + 重置 + + + + + + + + {{func.label}} + + {{func.label}} + + {{func.label}} + + {{func.label}} + + {{func.label}} + + + + + + + + + + + {{ field.label }} + + + + + + + + + + + + + + + + + + + + + + + + + + {{func.label}} + + {{func.label}} + + {{func.label}} + + + + + + + + + 已选择:{{ multipleSelection.length }}条 + 清空 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dvadmin-ui/src/components/UsersTree/index.vue b/dvadmin-ui/src/components/UsersTree/index.vue new file mode 100644 index 0000000..72fc4ae --- /dev/null +++ b/dvadmin-ui/src/components/UsersTree/index.vue @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/dvadmin-ui/src/main.js b/dvadmin-ui/src/main.js index e589237..f65efac 100755 --- a/dvadmin-ui/src/main.js +++ b/dvadmin-ui/src/main.js @@ -30,6 +30,9 @@ import Pagination from "@/components/Pagination"; // 自定义表格工具扩展 import RightToolbar from "@/components/RightToolbar" import SmallDialog from '@/components/SmallDialog'; +import DeptTree from '@/components/DeptTree'; +import UsersTree from '@/components/UsersTree'; +import ModelDisplay from '@/components/ModelDisplay'; import CommonIcon from '@/components/CommonIcon'; import CommonStaticTable from '@/components/CommonStaticTable'; import {getCrontabData, getIntervalData} from "./utils/validate"; // 通用图标组件 @@ -67,6 +70,9 @@ Vue.prototype.msgInfo = function (msg) { } // 自定义组件 Vue.component('small-dialog', SmallDialog); +Vue.component('dept-tree', DeptTree); +Vue.component('users-tree', UsersTree); +Vue.component('model-display', ModelDisplay); // 全局组件挂载 Vue.component('Pagination', Pagination) Vue.component('RightToolbar', RightToolbar) From 5da2cfefae19489ac860a51825b67a8da025e32a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Mon, 17 May 2021 00:15:54 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBUG(=E5=AF=BC=E5=85=A5b?= =?UTF-8?q?ug):=20=E6=97=A0=E6=B3=95=E5=AF=BC=E5=85=A5bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-backend/apps/vadmin/op_drf/mixins.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dvadmin-backend/apps/vadmin/op_drf/mixins.py b/dvadmin-backend/apps/vadmin/op_drf/mixins.py index 5305865..92f52bb 100644 --- a/dvadmin-backend/apps/vadmin/op_drf/mixins.py +++ b/dvadmin-backend/apps/vadmin/op_drf/mixins.py @@ -327,7 +327,7 @@ class ImportSerializerMixin: for ele in data: # 获取 unique 字段 filter_dic = {i: ele.get(i) for i in list(set(self.import_field_data.keys()) & set(unique_list))} - instance = queryset.filter(**filter_dic).first() + instance = filter_dic and queryset.filter(**filter_dic).first() if instance and not updateSupport: continue if not filter_dic: From 3ac19773c6c9abbaaf29a3dee69e42b46cf3c4ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Mon, 17 May 2021 00:16:27 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=98=E5=8C=96(CRUD?= =?UTF-8?q?=E7=BB=84=E4=BB=B6):=20=E6=B7=BB=E5=8A=A0=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/ModelDisplay/index.vue | 90 ++++++++++++++++++- 1 file changed, 88 insertions(+), 2 deletions(-) diff --git a/dvadmin-ui/src/components/ModelDisplay/index.vue b/dvadmin-ui/src/components/ModelDisplay/index.vue index 0dad015..2258e59 100644 --- a/dvadmin-ui/src/components/ModelDisplay/index.vue +++ b/dvadmin-ui/src/components/ModelDisplay/index.vue @@ -302,12 +302,43 @@ 取 消 - + + + + + + 将文件拖到此处,或 + 点击上传 + + + + 是否更新已经存在的数据 + 下载模板 + + 提示:仅允许导入“xls”或“xlsx”格式文件! + + +