From 9be65db65cd04a3520e0bd29992088e53752f504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=BF=E5=B0=8F=E5=A4=A9?= <1638245306@qq.com> Date: Mon, 20 Mar 2023 10:11:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=F0=9F=90=9B=20=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E6=96=B0?= =?UTF-8?q?=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/system/views/area.py | 28 ++++++++++++++++-- web/src/views/system/user/crud.tsx | 43 +++++++++++++--------------- 2 files changed, 46 insertions(+), 25 deletions(-) diff --git a/backend/dvadmin/system/views/area.py b/backend/dvadmin/system/views/area.py index 78fc391..cd681d7 100644 --- a/backend/dvadmin/system/views/area.py +++ b/backend/dvadmin/system/views/area.py @@ -13,10 +13,14 @@ class AreaSerializer(CustomModelSerializer): 地区-序列化器 """ pcode_count = serializers.SerializerMethodField(read_only=True) - + hasChild = serializers.SerializerMethodField() def get_pcode_count(self, instance: Area): return Area.objects.filter(pcode=instance).count() - + def get_hasChild(self, instance): + hasChild = Area.objects.filter(pcode=instance.code) + if hasChild: + return True + return False class Meta: model = Area fields = "__all__" @@ -45,3 +49,23 @@ class AreaViewSet(CustomModelViewSet): queryset = Area.objects.all() serializer_class = AreaSerializer extra_filter_class = [] + + def get_queryset(self): + self.request.query_params._mutable = True + params = self.request.query_params + pcode = params.get('pcode', None) + page = params.get('page', None) + limit = params.get('limit', None) + if page: + del params['page'] + if limit: + del params['limit'] + if params: + if pcode: + queryset = self.queryset.filter(enable=True, pcode=pcode) + else: + queryset = self.queryset.filter(enable=True) + else: + queryset = self.queryset.filter(enable=True, pcode__isnull=True) + return queryset + diff --git a/web/src/views/system/user/crud.tsx b/web/src/views/system/user/crud.tsx index ce1faf5..c5aac29 100644 --- a/web/src/views/system/user/crud.tsx +++ b/web/src/views/system/user/crud.tsx @@ -48,7 +48,7 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp title: '序号', form: { show: false }, column: { - //type: 'index', + type: 'index', align: 'center', width: '70px', columnSetDisabled: true, //禁止在列设置中选择 @@ -164,9 +164,15 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp } }), form: { + rules: [ // 表单校验规则 + { + required: true, + message: '必填项' + } + ], component: { filterable: true, - placeholder: '请选择角色', + placeholder: '请选择', props: { props: { value: "id", @@ -181,7 +187,7 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp search: { disabled: true }, - type: 'dict-tree', + type: 'dict-select', dict: dict({ url: '/api/system/role/', value: 'id', @@ -200,15 +206,16 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp } }), form: { - component: { - filterable: true, - placeholder: '请选择角色', - props: { - props: { - value: "id", - label: "name", - } + rules: [ // 表单校验规则 + { + required: true, + message: '必填项' } + ], + component: { + multiple: true, + filterable: true, + placeholder: '请选择角色' }, } }, @@ -303,18 +310,8 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp avatar: { title: '头像', type: 'avatar-cropper', - form: { - component: { - props: { - elProps: { // 与el-uploader 配置一致 - multiple: false, - limit: 1 // 限制5个文件 - }, - sizeLimit: 500 * 1024 // 不能超过限制 - }, - span: 24 - }, - helper: '限制文件大小不能超过500k' + form:{ + show:false } } }