From 54fa8cf01cf6f828ba0139482f84f7822fbdd13f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=BF=E5=B0=8F=E5=A4=A9?= <1638245306@qq.com> Date: Thu, 16 Mar 2023 22:38:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=F0=9F=90=9B=20=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 菜单管理搜索问题 --- backend/application/settings.py | 3 +++ backend/dvadmin/system/views/menu.py | 7 +++++++ backend/dvadmin/system/views/role.py | 3 ++- web/src/stores/dictionary.ts | 14 +++++++++++++- web/src/utils/service.ts | 10 +++++++++- web/src/views/system/menu/crud.tsx | 3 +-- 6 files changed, 35 insertions(+), 5 deletions(-) diff --git a/backend/application/settings.py b/backend/application/settings.py index 1641939..10556ac 100644 --- a/backend/application/settings.py +++ b/backend/application/settings.py @@ -259,6 +259,9 @@ LOGGING = { # ================================================= # REST_FRAMEWORK = { + 'DEFAULT_PARSER_CLASSES': ( + 'rest_framework.parsers.JSONParser', + ), "DATETIME_FORMAT": "%Y-%m-%d %H:%M:%S", # 日期时间格式配置 "DATE_FORMAT": "%Y-%m-%d", "DEFAULT_FILTER_BACKENDS": ( diff --git a/backend/dvadmin/system/views/menu.py b/backend/dvadmin/system/views/menu.py index e09e5f2..ae74af8 100644 --- a/backend/dvadmin/system/views/menu.py +++ b/backend/dvadmin/system/views/menu.py @@ -103,8 +103,15 @@ class MenuViewSet(CustomModelViewSet): def list(self,request): """懒加载""" + request.query_params._mutable = True params = request.query_params parent = params.get('parent', None) + page = params.get('page',None) + limit = params.get('limit', None) + if page: + del params['page'] + if limit: + del params['limit'] if params: if parent: queryset = self.queryset.filter(status=1, parent=parent) diff --git a/backend/dvadmin/system/views/role.py b/backend/dvadmin/system/views/role.py index 903ab01..0af5dcb 100644 --- a/backend/dvadmin/system/views/role.py +++ b/backend/dvadmin/system/views/role.py @@ -14,6 +14,7 @@ from dvadmin.system.models import Role, Menu, MenuButton, Dept from dvadmin.system.views.dept import DeptSerializer from dvadmin.system.views.menu import MenuSerializer from dvadmin.system.views.menu_button import MenuButtonSerializer +from dvadmin.utils.crud_mixin import FastCrudMixin from dvadmin.utils.json_response import SuccessResponse, DetailResponse from dvadmin.utils.serializers import CustomModelSerializer from dvadmin.utils.validator import CustomUniqueValidator @@ -81,7 +82,7 @@ class MenuPermissonSerializer(CustomModelSerializer): fields = ['id', 'parent', 'name', 'menuPermission'] -class RoleViewSet(CustomModelViewSet): +class RoleViewSet(CustomModelViewSet,FastCrudMixin): """ 角色管理接口 list:查询 diff --git a/web/src/stores/dictionary.ts b/web/src/stores/dictionary.ts index 573def1..656b9ca 100644 --- a/web/src/stores/dictionary.ts +++ b/web/src/stores/dictionary.ts @@ -42,7 +42,19 @@ export const DictionaryStore = defineStore('Dictionary', { dataList.forEach((item: any) => { let childrens = item.children; // console.log(item); - this.data[item.value] = childrens; + // this.data[item.value] = childrens; + childrens.forEach((children:any, index:any) => { + switch (children.type) { + case 1: + children.value = Number(children.value) + break + case 6: + children.value = children.value === 'true' + break + } + }) + console.log(childrens) + this.data[item.value]=childrens }); }); }, diff --git a/web/src/utils/service.ts b/web/src/utils/service.ts index 42bdf57..50bce47 100644 --- a/web/src/utils/service.ts +++ b/web/src/utils/service.ts @@ -13,9 +13,17 @@ function createService() { // 创建一个 axios 实例 const service = axios.create({ timeout: 20000, + headers: { + 'Content-Type': 'application/json;charset=utf-8' + }, paramsSerializer: { serialize(params) { - return qs.stringify(params, { allowDots: true }); + return qs.stringify(params, { indices: false,encoder: (val:string) => { + if (typeof val === 'boolean') { + return val ? 1 : 0; + } + return val; + } }); }, }, }); diff --git a/web/src/views/system/menu/crud.tsx b/web/src/views/system/menu/crud.tsx index 48c4c46..7040f6b 100644 --- a/web/src/views/system/menu/crud.tsx +++ b/web/src/views/system/menu/crud.tsx @@ -17,7 +17,6 @@ export const createCrudOptions = function ({ crudExpose, menuButtonRef }: { crud //验证路由地址 const validateWebPath = (rule: string, value: string, callback: Function) => { const isLink = JSON.parse(crudExpose.getFormData().is_link); - console.log(isLink); let pattern = /^\/.*?/; if (isLink) { pattern = /^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/g; @@ -33,7 +32,7 @@ export const createCrudOptions = function ({ crudExpose, menuButtonRef }: { crud }; const pageRequest = async (query: PageQuery) => { - return await api.GetList({}); + return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { form.id = row.id;