From 4de58819e5628c3121b6e2ff3988157c62d8a9cc 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, 6 Mar 2023 01:49:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=AD=97=E5=85=B8=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=F0=9F=90=9B=20=E5=AD=97=E5=85=B8=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 字典管理 --- backend/dvadmin/system/views/dictionary.py | 16 ++++++++++++++++ web/src/views/system/dictionary/api.ts | 5 +++-- web/src/views/system/dictionary/crud.tsx | 11 +++++++++-- web/src/views/system/dictionary/subDict/api.ts | 2 +- web/src/views/system/dictionary/subDict/crud.tsx | 5 ++++- .../views/system/dictionary/subDict/index.vue | 4 +++- web/src/views/system/messageCenter/crud.tsx | 1 - web/src/views/system/role/curd.tsx | 2 ++ web/src/views/system/rolePermission/index.vue | 2 +- 9 files changed, 39 insertions(+), 9 deletions(-) diff --git a/backend/dvadmin/system/views/dictionary.py b/backend/dvadmin/system/views/dictionary.py index f299567..d28ef06 100644 --- a/backend/dvadmin/system/views/dictionary.py +++ b/backend/dvadmin/system/views/dictionary.py @@ -54,6 +54,22 @@ class DictionaryViewSet(CustomModelViewSet): extra_filter_class = [] search_fields = ['label'] + def list(self,request): + """懒加载""" + params = request.query_params + parent = params.get('parent', None) + if params: + if parent: + queryset = self.queryset.filter(status=1, parent=parent) + else: + queryset = self.queryset.filter(status=1) + else: + queryset = self.queryset.filter(status=1, parent__isnull=True) + queryset = self.filter_queryset(queryset) + serializer = DictionarySerializer(queryset, many=True, request=request) + data = serializer.data + return SuccessResponse(data=data) + class InitDictionaryViewSet(APIView): """ diff --git a/web/src/views/system/dictionary/api.ts b/web/src/views/system/dictionary/api.ts index cf1cebd..76a8c87 100644 --- a/web/src/views/system/dictionary/api.ts +++ b/web/src/views/system/dictionary/api.ts @@ -1,13 +1,14 @@ import { request } from '/@/utils/service'; import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; +import XEUtils from 'xe-utils'; export const apiPrefix = '/api/system/dictionary/'; export function GetList(query: PageQuery) { return request({ url: apiPrefix, method: 'get', - data: query, - }); + params: {}, + }) } export function GetObj(id: InfoReq) { return request({ diff --git a/web/src/views/system/dictionary/crud.tsx b/web/src/views/system/dictionary/crud.tsx index 687b003..2d09912 100644 --- a/web/src/views/system/dictionary/crud.tsx +++ b/web/src/views/system/dictionary/crud.tsx @@ -1,12 +1,13 @@ import * as api from './api'; import { dict, PageQuery, AddReq, DelReq, EditReq, CrudExpose, CrudOptions } from '@fast-crud/fast-crud'; import { dictionary } from '/@/utils/dictionary'; +import {ref} from 'vue'; interface CreateCrudOptionsTypes { crudOptions: CrudOptions; } -export const createCrudOptions = function ({ crudExpose, subDictRef }: { crudExpose: CrudExpose; subDictRef: any }): CreateCrudOptionsTypes { +export const createCrudOptions = function ({ crudExpose, subDictRef,showSub }: { crudExpose: CrudExpose; subDictRef: any,showSub:any }): CreateCrudOptionsTypes { const pageRequest = async (query: PageQuery) => { return await api.GetList(query); }; @@ -39,8 +40,13 @@ export const createCrudOptions = function ({ crudExpose, subDictRef }: { crudExp content: '字典配置', }, //@ts-ignore - click: (opts: any) => { + click: (context: any) => { + const {row} = context + console.log(subDictRef.value.crudBinding) + // showSub.value = true + subDictRef.value.currentRow = row subDictRef.value.drawer = true; + }, }, }, @@ -58,6 +64,7 @@ export const createCrudOptions = function ({ crudExpose, subDictRef }: { crudExp //计算序号,你可以自定义计算规则,此处为翻页累加 let index = context.index ?? 1; let pagination = crudExpose.crudBinding.value.pagination; + // @ts-ignore return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; }, }, diff --git a/web/src/views/system/dictionary/subDict/api.ts b/web/src/views/system/dictionary/subDict/api.ts index cf1cebd..83e18a4 100644 --- a/web/src/views/system/dictionary/subDict/api.ts +++ b/web/src/views/system/dictionary/subDict/api.ts @@ -6,7 +6,7 @@ export function GetList(query: PageQuery) { return request({ url: apiPrefix, method: 'get', - data: query, + params: query, }); } export function GetObj(id: InfoReq) { diff --git a/web/src/views/system/dictionary/subDict/crud.tsx b/web/src/views/system/dictionary/subDict/crud.tsx index 13c2506..1364a23 100644 --- a/web/src/views/system/dictionary/subDict/crud.tsx +++ b/web/src/views/system/dictionary/subDict/crud.tsx @@ -2,11 +2,12 @@ import * as api from './api'; import { dict, PageQuery, AddReq, DelReq, EditReq, CrudExpose, CrudOptions } from '@fast-crud/fast-crud'; import { request } from '/@/utils/service'; import { dictionary } from '/@/utils/dictionary'; +import {watch} from "vue"; interface CreateCrudOptionsTypes { crudOptions: CrudOptions; } -export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsTypes { +export const createCrudOptions = function ({ crudExpose,currentRow }: { crudExpose: CrudExpose,currentRow:any }): CreateCrudOptionsTypes { const pageRequest = async (query: PageQuery) => { return await api.GetList(query); }; @@ -20,6 +21,7 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp const addRequest = async ({ form }: AddReq) => { return await api.AddObj(form); }; + return { crudOptions: { request: { @@ -41,6 +43,7 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp //计算序号,你可以自定义计算规则,此处为翻页累加 let index = context.index ?? 1; let pagination = crudExpose.crudBinding.value.pagination; + // @ts-ignore return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; }, }, diff --git a/web/src/views/system/dictionary/subDict/index.vue b/web/src/views/system/dictionary/subDict/index.vue index ba09c46..343af27 100644 --- a/web/src/views/system/dictionary/subDict/index.vue +++ b/web/src/views/system/dictionary/subDict/index.vue @@ -1,5 +1,5 @@