From 14a31a8ca8b84db8492f32baac082465bbd14f58 Mon Sep 17 00:00:00 2001 From: hayden Date: Mon, 28 Oct 2024 18:08:38 +0800 Subject: [PATCH] pref: Use virtual scroll load models --- .vscode/settings.json | 1 + src/components/DialogCreateTask.vue | 6 +- src/components/DialogDownload.vue | 6 +- src/components/DialogManager.vue | 83 ++++++++---- src/components/DialogModelDetail.vue | 6 +- ...ponseScrollArea.vue => ResponseScroll.vue} | 127 ++++++++++++++++-- src/hooks/model.ts | 6 +- 7 files changed, 179 insertions(+), 56 deletions(-) rename src/components/{ResponseScrollArea.vue => ResponseScroll.vue} (65%) diff --git a/.vscode/settings.json b/.vscode/settings.json index cb2e947..b1a7621 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -35,6 +35,7 @@ "inplace", "contentcontainer", "itemlist", + "virtualscroller" ], "editor.defaultFormatter": "esbenp.prettier-vscode", "files.associations": { diff --git a/src/components/DialogCreateTask.vue b/src/components/DialogCreateTask.vue index d186db0..a3325c8 100644 --- a/src/components/DialogCreateTask.vue +++ b/src/components/DialogCreateTask.vue @@ -38,7 +38,7 @@ - +
-
+ @@ -75,7 +75,7 @@ import DialogResizer from 'components/DialogResizer.vue' import ResponseInput from 'components/ResponseInput.vue' import ResponseSelect from 'components/ResponseSelect.vue' -import ResponseScrollArea from 'components/ResponseScrollArea.vue' +import ResponseScroll from 'components/ResponseScroll.vue' import ModelContent from 'components/ModelContent.vue' import Button from 'primevue/button' import Dialog from 'primevue/dialog' diff --git a/src/components/DialogDownload.vue b/src/components/DialogDownload.vue index 42f9722..6ac2062 100644 --- a/src/components/DialogDownload.vue +++ b/src/components/DialogDownload.vue @@ -34,7 +34,7 @@ - +
--> - +
@@ -155,7 +155,7 @@ diff --git a/src/components/DialogModelDetail.vue b/src/components/DialogModelDetail.vue index 3eaad50..680dcfc 100644 --- a/src/components/DialogModelDetail.vue +++ b/src/components/DialogModelDetail.vue @@ -10,7 +10,7 @@ pt:content:class="px-0" @after-hide="handleCancel" > - +
-
+
@@ -59,7 +59,7 @@ import Button from 'primevue/button' import Dialog from 'primevue/dialog' import ModelContent from 'components/ModelContent.vue' import DialogResizer from 'components/DialogResizer.vue' -import ResponseScrollArea from 'components/ResponseScrollArea.vue' +import ResponseScroll from 'components/ResponseScroll.vue' import { useConfig } from 'hooks/config' import { computed, ref, watchEffect } from 'vue' import { useModelNodeAction, useModels } from 'hooks/model' diff --git a/src/components/ResponseScrollArea.vue b/src/components/ResponseScroll.vue similarity index 65% rename from src/components/ResponseScrollArea.vue rename to src/components/ResponseScroll.vue index d001c49..0b60689 100644 --- a/src/components/ResponseScrollArea.vue +++ b/src/components/ResponseScroll.vue @@ -4,12 +4,30 @@ ref="viewport" data-scroll-viewport class="h-full w-full overflow-auto scrollbar-none" + :style="{ contain: items ? 'strict' : undefined }" @scroll="onContentScroll" v-resize="onContainerResize" > -
- +
+ +
+ +
+ +
No Data
+
+
+ +
-