diff --git a/backend/dvadmin/system/views/dept.py b/backend/dvadmin/system/views/dept.py index d228f94..c5179d0 100644 --- a/backend/dvadmin/system/views/dept.py +++ b/backend/dvadmin/system/views/dept.py @@ -102,8 +102,15 @@ class DeptViewSet(CustomModelViewSet): def list(self, request, *args, **kwargs): # 如果懒加载,则只返回父级 + 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=True, parent=parent) diff --git a/web/src/views/system/dept/api.ts b/web/src/views/system/dept/api.ts index 199acee..18bd97e 100644 --- a/web/src/views/system/dept/api.ts +++ b/web/src/views/system/dept/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/dept/crud.tsx b/web/src/views/system/dept/crud.tsx index f83e768..12a8459 100644 --- a/web/src/views/system/dept/crud.tsx +++ b/web/src/views/system/dept/crud.tsx @@ -20,6 +20,18 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp const addRequest = async ({ form }: AddReq) => { return await api.AddObj(form); }; + + /** + * 懒加载 + * @param row + * @returns {Promise} + */ + const loadContentMethod = (tree: any, treeNode: any, resolve: any) => { + api.GetList({ parent: tree.id }).then((res: any) => { + resolve(res.data); + }); + }; + return { crudOptions: { request: { @@ -28,21 +40,24 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp editRequest, delRequest }, + pagination: { + show: false, + }, + table: { + rowKey: 'id', + lazy: true, + load: loadContentMethod, + treeProps: { children: 'children', hasChildren: 'hasChild' }, + }, columns: { _index: { title: '序号', form: { show: false }, column: { - //type: 'index', + type: 'index', align: 'center', width: '70px', columnSetDisabled: true, //禁止在列设置中选择 - formatter: (context) => { - //计算序号,你可以自定义计算规则,此处为翻页累加 - let index = context.index ?? 1; - let pagination = crudExpose.crudBinding.value.pagination; - return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; - }, }, }, search: {