From cc8dc80622fee91af2895e020d53d0746d513e81 Mon Sep 17 00:00:00 2001 From: lipenghui Date: Tue, 23 Jan 2024 21:51:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E6=97=A0=E7=BC=9D?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=EF=BC=9B=E6=96=B0=E5=A2=9E=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=EF=BC=9B=E4=BC=98=E5=8C=96=E5=9B=BE=E5=83=8F=E5=88=86?= =?UTF-8?q?=E6=9E=90=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/base/repository.ts | 10 ++++ src/assets/svg/file_only.svg | 1 + src/components/AppMessage/index.vue | 47 +++++++++-------- src/components/AppRepositoryFile/index.d.ts | 5 ++ src/components/AppRepositoryFile/index.ts | 3 ++ src/components/AppRepositoryFile/index.vue | 56 +++++++++++++++++++++ src/components/AppTextarea/index.vue | 2 +- src/design/public.scss | 2 +- src/enums/repositoryEnum.ts | 7 +++ src/hooks/useMqtt.ts | 31 ++++++++---- src/store/moules/messageStore/index.ts | 7 +++ src/utils/axios/index.ts | 1 + src/views/conversation/index.vue | 56 +++++++++++---------- src/views/repository/index.vue | 49 ++++++++++++++---- src/views/role/index.vue | 7 ++- src/views/textToImage/index.vue | 6 ++- src/views/visualAnalysis/index.vue | 54 +++++++++----------- 17 files changed, 240 insertions(+), 104 deletions(-) create mode 100644 src/api/base/repository.ts create mode 100644 src/assets/svg/file_only.svg create mode 100644 src/components/AppRepositoryFile/index.d.ts create mode 100644 src/components/AppRepositoryFile/index.ts create mode 100644 src/components/AppRepositoryFile/index.vue create mode 100644 src/enums/repositoryEnum.ts diff --git a/src/api/base/repository.ts b/src/api/base/repository.ts new file mode 100644 index 0000000..ce15cfe --- /dev/null +++ b/src/api/base/repository.ts @@ -0,0 +1,10 @@ +import { defHttp } from '@/utils/axios/index' + +/** + * @description 获取知识库文件列表 + */ +export async function repositoryFileList(id: string) { + return defHttp.get({ + url: `/open-gpts/qanything/getFileList?kbId=${id}`, + }) +} diff --git a/src/assets/svg/file_only.svg b/src/assets/svg/file_only.svg new file mode 100644 index 0000000..aa58c15 --- /dev/null +++ b/src/assets/svg/file_only.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/AppMessage/index.vue b/src/components/AppMessage/index.vue index 23419c8..c74ad62 100644 --- a/src/components/AppMessage/index.vue +++ b/src/components/AppMessage/index.vue @@ -11,9 +11,13 @@ import { copyText } from '@/utils/copyTextToClipboard' import { useMessageStore } from '@/store/moules/messageStore/index' const props = defineProps({ + elIndex: { + type: Number, + default: 0, + }, height: { type: String, - default: 'calc(100% - 120px)', + default: '100%', }, list: { type: Array as PropType, @@ -27,12 +31,13 @@ const props = defineProps({ const emit = defineEmits(['onScrollTop', 'reloadMessage']) -defineExpose({ getScrollTopDistance, seamlessScrollToTop }) +defineExpose({ seamlessScrollToTop, getElementOffsetTop }) const messageStore = useMessageStore() -const messageRef = ref(null) -const elHeight = ref(0) // 旧列表的高度 +const messageRef = ref(null) +const filstDivTop = ref(0) + const defaultScrollTop = ref(0) // 默认滚动距离 const isAutoScroll = ref(true) // 是否自动滚动 const conversationData = computed(() => messageStore.getConversationData) @@ -86,26 +91,16 @@ async function seamlessScrollToTop() { if (!messageRef.value) { return } - await getScrollTopDistance() - messageRef.value.scrollTo(0, elHeight.value) + messageRef.value.scrollTo(0, filstDivTop.value) } /** - * @description: 获取前10个元素的总高度,用于无缝滚动顶部的距离 - * @param size 获取的元素个数,默认为10 + * @description: 获取某个元素的滚动条位置 */ -async function getScrollTopDistance(size = 10) { - if (!messageRef.value || messageRef.value.children.length < size) { - return +async function getElementOffsetTop() { + if (messageRef.value) { + filstDivTop.value = messageRef.value.children[props.elIndex].offsetTop } - await nextTick() - elHeight.value = 0 - Array.from(messageRef.value.children).slice(0, size).forEach((item) => { - elHeight.value = elHeight.value + item.clientHeight - }) - - // +130 主要是做了个补充 - elHeight.value += 130 } /** @@ -126,7 +121,7 @@ onMounted(async () => {
@@ -145,7 +140,7 @@ onMounted(async () => { || conversationData?.type === MenuTypeEnum.REPOSITORY || conversationData?.type === MenuTypeEnum.VISUAL_ANALYSIS " - editor-id="preview-only-ai" + :editor-id="`preview-only-ai${index}`" :model-value="item.content" />
@@ -183,7 +178,7 @@ onMounted(async () => { diff --git a/src/components/AppTextarea/index.vue b/src/components/AppTextarea/index.vue index effab39..cd063a4 100644 --- a/src/components/AppTextarea/index.vue +++ b/src/components/AppTextarea/index.vue @@ -69,7 +69,7 @@ function stopMessage() { diff --git a/src/views/repository/index.vue b/src/views/repository/index.vue index 2eae58a..4f90fb0 100644 --- a/src/views/repository/index.vue +++ b/src/views/repository/index.vue @@ -1,8 +1,10 @@