| | |
| | | <div class="flex h-full"> |
| | | <div class="flex flex-col h-full flex-auto relative"> |
| | | <!-- 消息列表区域 --> |
| | | <div ref="chatListDom" class="relative h-full flex flex-col items-center overflow-y-auto" style="height: calc(100% - 50px)"> |
| | | <div v-resize="updateChatWidth" ref="chatListDom" class="relative h-full flex flex-col items-center overflow-y-auto flex-auto"> |
| | | <span |
| | | class="more-loading absolute text-blue-400 left-[50%] translate-x-[-50%] cursor-pointer w-10" |
| | | v-loading="moreIsLoading" |
| | |
| | | </div> |
| | | |
| | | <!-- 输入区域 --> |
| | | <div class="sticky bottom-0 w-full px-6 pt-12 pb-6 bg-[rgb(247,248,250)] flex justify-center z-[1]" v-if="!isSharePage"> |
| | | <div class="w-full px-6 pb-6 bg-[rgb(247,248,250)] flex justify-center z-[1] flex-0" v-if="!isSharePage"> |
| | | <slot name="input-area" /> |
| | | </div> |
| | | </div> |
| | |
| | | <script setup lang="ts"> |
| | | import { ref } from 'vue'; |
| | | import { useScroll } from '../hooks/useScroll'; |
| | | import { useChatWidth } from '../hooks/useChatWidth'; |
| | | |
| | | const props = defineProps<{ |
| | | loading?: boolean; |
| | | moreIsLoading?: boolean; |
| | | isSharePage?: boolean; |
| | | chatWidth?: string; |
| | | }>(); |
| | | |
| | | const chatListDom = ref<HTMLDivElement>(); |
| | |
| | | chatListDom, |
| | | }); |
| | | |
| | | const { updateChatWidth, chatWidth } = useChatWidth(); |
| | | |
| | | defineExpose({ |
| | | chatListDom, |
| | | scrollToBottom, |
| | | chatWidth, |
| | | }); |
| | | </script> |
| | | |