From a2710ddc2525e4e637fd157f0180e6d3b801c8be Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sun, 13 Apr 2025 01:27:52 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E5=A4=8D=E5=86=85=E7=BD=AE?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在前端添加 lastType 变量,用于判断类型变化并重置分页偏移量 - 在后端修改内置插件查询逻辑,支持分页请求 - 优化后端返回数据结构,使其与前端请求一致 --- .../ui/certd-client/src/views/sys/plugin/crud.tsx | 7 +++++++ .../src/modules/plugin/service/plugin-service.ts | 14 +++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/ui/certd-client/src/views/sys/plugin/crud.tsx b/packages/ui/certd-client/src/views/sys/plugin/crud.tsx index aa1273f0..fa91e6ee 100644 --- a/packages/ui/certd-client/src/views/sys/plugin/crud.tsx +++ b/packages/ui/certd-client/src/views/sys/plugin/crud.tsx @@ -10,7 +10,14 @@ import yaml from "js-yaml"; export default function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet { const router = useRouter(); const { t } = useI18n(); + + let lastType = ""; const pageRequest = async (query: UserPageQuery): Promise => { + if (lastType && lastType != query?.query?.type) { + //lastType有变化 + query.page.offset = 0; + } + lastType = query?.query?.type; return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { diff --git a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts index 0e13c78b..78aede1a 100644 --- a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts +++ b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts @@ -33,13 +33,21 @@ export class PluginService extends BaseService { if (pageReq.query.type && pageReq.query.type !== "builtIn") { return await super.page(pageReq); } + //仅查询内置插件 + const offset = pageReq.page.offset; + const limit = pageReq.page.limit; + const builtInList = await this.getBuiltInEntityList(); + + //获取分页数据 + const data = builtInList.slice(offset, offset + limit); + return { - records: builtInList, + records: data, total: builtInList.length, - offset: 0, - limit: 99999 + offset: offset, + limit: limit }; }