@touchvue/chat 1.0.0-beta.45 → 1.0.0-beta.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/package.json.mjs +1 -1
- package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs +11 -2
- package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs +2 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs +4 -0
- package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs +5 -3
- package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/index.vue2.mjs +14 -11
- package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
- package/lib/package.json.js +1 -1
- package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js +11 -2
- package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js +2 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js +4 -0
- package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js +4 -2
- package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/index.vue2.js +14 -11
- package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TouchChat.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchChat.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-main\" @dragover.prevent @dragenter.prevent=\"handleDragEnter\" @dragleave=\"handleDragLeave\" @drop.prevent=\"handleDrop\">\n\t\t<div ref=\"chatContainer\" class=\"touchchat-dialog\" @scroll=\"handleScroll\">\n\t\t\t<slot name=\"top\"> </slot>\n\t\t\t<div v-if=\"chatList.length === 0\" class=\"touchchat-welcome\">\n\t\t\t\t<slot name=\"welcome\">\n\t\t\t\t\t<HelloChat @send-message=\"sendMessage\" />\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-dialog-content\">\n\t\t\t\t<template v-for=\"(item, index) in chatList\" :key=\"item.chatId\">\n\t\t\t\t\t<UserMessage v-if=\"item.user === 'u'\" :item=\"item\" :index=\"index\" @user-message-file-list=\"itemUploadFile\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @edit=\"handleMessageAction(MessageAction.EDIT, index)\" @delete=\"handleMessageAction(MessageAction.DELETE, index)\" @save-edit=\"saveEdit\" @cancel-edit=\"cancelEdit(index)\" @with-draw=\"handleMessageAction(MessageAction.WITHDRAW, index)\">\n\t\t\t\t\t\t<template #userAvatar>\n\t\t\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</UserMessage>\n\t\t\t\t\t<div v-if=\"item.user === 'withDraw'\" class=\"touchchat-dialog-withDraw\">你撤回了一条消息</div>\n\t\t\t\t\t<AiMessage v-if=\"item.user === 'ai'\" :item=\"item\" :index=\"index\" :enable-deep-thinking=\"enableDeepThinking\" :has-retry=\"activeAgentsName || scriptsLength > 0 ? false : true\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @retry=\"handleMessageAction(MessageAction.RETRY, index)\" @like=\"handleMessageAction(MessageAction.LIKE, index)\" @quote=\"handleMessageQuote\" @dislike=\"handleMessageAction(MessageAction.DISLIKE, index)\" @content-rendered=\"attachCopyButtons\" @complete-rendered=\"completeRendered\" @toggle-sidebar=\"toggleSidebarClick\" @open-side-bar=\"openSideBar\">\n\t\t\t\t\t\t<template #aimsg>\n\t\t\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #msg>\n\t\t\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</AiMessage>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"$slots.shortcut\" class=\"touchchat-edit-shortcut\">\n\t\t\t<slot name=\"shortcut\"></slot>\n\t\t</div>\n\t\t<slot name=\"edit\">\n\t\t\t<ChatInput ref=\"ChatInputRef\" v-model:input-value=\"inputValue\" v-model:enable-deep-thinking=\"enableDeepThinking\" :is-chating=\"isChating\" @send=\"handleBeforeSend\" @stop=\"handleStop\" @toggle-deep-thinking=\"(val: boolean) => (enableDeepThinking = val)\" @module-info=\"(_info: any) => {}\">\n\t\t\t\t<template #editTop>\n\t\t\t\t\t<slot name=\"editTop\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editFn>\n\t\t\t\t\t<slot name=\"editFn\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitRight>\n\t\t\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitLeft>\n\t\t\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t\t\t</template>\n\t\t\t</ChatInput>\n\t\t</slot>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport UserMessage from './UserMessage.vue'\nimport AiMessage from './AiMessage.vue'\nimport ChatInput from './ChatInput.vue'\nimport HelloChat from '../../component/HelloChat.vue'\nimport { ref, computed, onMounted, onBeforeUnmount, inject, watch, provide, type Ref } from 'vue'\nimport { MessageAction, type ChatMessage, type ChatMsgList, type ModuleItem } from './Chat/types'\nimport { useChat } from './Chat/useChat'\nimport { useCopy } from './Chat/useCopy'\n\n// 组件属性和注入\nconst emit = defineEmits(['sendMessage', 'toggleSidebar', 'beforeSendMessage', 'openSideBar'])\nconst scripts = inject<Ref<any[]>>('scripts', ref([]))\nconst unmatchText = inject<string>('unmatchText', '您的消息未匹配到任何内容')\nconst modules = inject<Ref<(string | ModuleItem)[]>>('modules', ref([]))\nconst afterSend = inject<(result: object) => void>('afterSend', () => {\n\tconsole.warn('未提供afterSend函数')\n})\nconst sendMessageInject = inject<(value: string, fileList?: any[]) => void>('send', () => {\n\tconsole.warn('未提供handleSend函数')\n})\nconst beforeSend = inject<() => { result: boolean; componentName?: string }>('beforeSend', () => ({\n\tresult: true,\n\tcomponentName: ''\n}))\n\nconst bottom = inject<() => void>('bottom', () => {\n\tconsole.warn('未提供bottom函数')\n})\n\nconst stop = inject<(item: ChatMessage, index: number) => void>('stop', () => {\n\tconsole.warn('未提供stop函数')\n})\n\n// 计算属性\nconst scriptsLength = computed(() => scripts.value?.length || 0)\n\n// 组件属性\nconst props = defineProps({\n\tvalue: {\n\t\ttype: Array as () => ChatMessage[],\n\t\tdefault: () => []\n\t}\n})\n\n// DOM 引用\nconst chatContainer = ref<HTMLElement | null>(null)\nconst ChatInputRef = ref<InstanceType<typeof ChatInput> | null>(null)\n\n// 初始化 useChat\nconst {\n\tchatList,\n\tisChating,\n\tinputValue,\n\tenableDeepThinking,\n\tactiveAgentsName,\n\tinit,\n\tsendMessage,\n\thandleBeforeSend,\n\thandleSend,\n\thandleStop,\n\thandleMessageAction,\n\tsaveEdit,\n\tcancelEdit,\n\tcompleteRendered,\n\thandleAgentSelect,\n\tupdate,\n\tupdateModule,\n\thandleDragEnter,\n\thandleDragLeave,\n\thandleDrop,\n\thandleScroll,\n\tonMounted: chatOnMounted,\n\tonBeforeUnmount: chatOnBeforeUnmount\n} = useChat({\n\tprops,\n\temit: emit as any,\n\tscripts: scripts.value,\n\tunmatchText,\n\tmodules: modules.value,\n\tafterSend,\n\tsendMessageInject,\n\tbeforeSend,\n\tbottom,\n\tstop,\n\tchatContainer,\n\tchatInputRef: ChatInputRef\n})\n\n// 使用 useCopy composable\nconst { copyWithFeedback } = useCopy()\n\n// 注入外部的 modelChange 并覆盖,调用内部 updateModule 更新 moduleInfo\nconst modelChangeExternal = inject<(item: ModuleItem, index: number) => void>('modelChange', () => {})\nprovide('modelChange', (item: ModuleItem, index: number) => {\n\tmodelChangeExternal(item, index)\n\tupdateModule(item)\n})\n\n// 附加复制按钮到代码块\nconst attachCopyButtons = (container: HTMLElement): void => {\n\tconst codeBlocks = container.querySelectorAll('pre code')\n\tcodeBlocks.forEach(codeBlock => {\n\t\tconst pre = codeBlock.parentElement\n\t\tif (pre) {\n\t\t\tconst copyBtn = document.createElement('button')\n\t\t\tcopyBtn.className = 'touchchat-code-copy'\n\t\t\tcopyBtn.addEventListener('click', () => {\n\t\t\t\tconst code = codeBlock.textContent || ''\n\t\t\t\tcopyWithFeedback(code, copyBtn, '', '已复制', 2000)\n\t\t\t})\n\t\t\tpre.style.position = 'relative'\n\t\t\tpre.appendChild(copyBtn)\n\t\t}\n\t})\n}\n\n// 侧边栏切换\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\n\temit('toggleSidebar', item, index)\n}\n\nconst openSideBar = (item: ChatMessage & ChatMsgList, index: number) => {\n\temit('openSideBar', item, index)\n}\n\nconst handleMessageQuote = (item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.updateQuoteData(item, index)\n\t}\n}\n\n// 文件上传\nconst itemUploadFile = (_item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.itemUploadFile(index, 'drop')\n\t}\n}\n\n// 组件生命周期\nonMounted(() => {\n\tchatOnMounted()\n\twatch(\n\t\t() => scripts,\n\t\t() => {\n\t\t\tinit()\n\t\t},\n\t\t{ deep: true, immediate: false }\n\t)\n})\n\nonBeforeUnmount(() => {\n\tchatOnBeforeUnmount()\n})\n\n// 提供给子组件\nprovide('touchchat', {\n\tsend: sendMessage,\n\tretry: handleMessageAction\n})\n\n// 暴露方法\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\thandleSend(value, fileList, auto, type)\n\t},\n\thandleAgentSelect,\n\tretry: (index: number) => {\n\t\thandleMessageAction(MessageAction.RETRY, index)\n\t},\n\tupdate\n})\n</script>\n"],"names":["inject","ref","computed","useChat","useCopy","provide","onMounted","watch","onBeforeUnmount","MessageAction","_createElementBlock","_unref","_createElementVNode","_renderSlot","_createVNode","HelloChat","_openBlock","_Fragment","_renderList","_createBlock","UserMessage","AiMessage","$slots","ChatInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TouchChat.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchChat.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-main\" @dragover.prevent @dragenter.prevent=\"handleDragEnter\" @dragleave=\"handleDragLeave\" @drop.prevent=\"handleDrop\">\n\t\t<div ref=\"chatContainer\" class=\"touchchat-dialog\" @scroll=\"handleScroll\">\n\t\t\t<slot name=\"top\"> </slot>\n\t\t\t<div v-if=\"chatList.length === 0\" class=\"touchchat-welcome\">\n\t\t\t\t<slot name=\"welcome\">\n\t\t\t\t\t<HelloChat @send-message=\"sendMessage\" />\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-dialog-content\">\n\t\t\t\t<template v-for=\"(item, index) in chatList\" :key=\"item.chatId\">\n\t\t\t\t\t<UserMessage v-if=\"item.user === 'u'\" :item=\"item\" :index=\"index\" @user-message-file-list=\"itemUploadFile\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @edit=\"handleMessageAction(MessageAction.EDIT, index)\" @delete=\"handleMessageAction(MessageAction.DELETE, index)\" @save-edit=\"saveEdit\" @cancel-edit=\"cancelEdit(index)\" @with-draw=\"handleMessageAction(MessageAction.WITHDRAW, index)\">\n\t\t\t\t\t\t<template #userAvatar>\n\t\t\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</UserMessage>\n\t\t\t\t\t<div v-if=\"item.user === 'withDraw'\" class=\"touchchat-dialog-withDraw\">你撤回了一条消息</div>\n\t\t\t\t\t<AiMessage v-if=\"item.user === 'ai'\" :item=\"item\" :index=\"index\" :enable-deep-thinking=\"enableDeepThinking\" :has-retry=\"activeAgentsName || scriptsLength > 0 ? false : true\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @retry=\"handleMessageAction(MessageAction.RETRY, index)\" @like=\"handleMessageAction(MessageAction.LIKE, index)\" @quote=\"handleMessageQuote\" @dislike=\"handleMessageAction(MessageAction.DISLIKE, index)\" @content-rendered=\"attachCopyButtons\" @complete-rendered=\"completeRendered\" @toggle-sidebar=\"toggleSidebarClick\" @open-side-bar=\"openSideBar\">\n\t\t\t\t\t\t<template #aimsg>\n\t\t\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #msg>\n\t\t\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</AiMessage>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"$slots.shortcut\" class=\"touchchat-edit-shortcut\">\n\t\t\t<slot name=\"shortcut\"></slot>\n\t\t</div>\n\t\t<slot name=\"edit\">\n\t\t\t<ChatInput ref=\"ChatInputRef\" v-model:input-value=\"inputValue\" v-model:enable-deep-thinking=\"enableDeepThinking\" :is-chating=\"isChating\" @send=\"handleBeforeSend\" @stop=\"handleStop\" @toggle-deep-thinking=\"(val: boolean) => (enableDeepThinking = val)\" @module-info=\"(_info: any) => {}\">\n\t\t\t\t<template #editTop>\n\t\t\t\t\t<slot name=\"editTop\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editFn>\n\t\t\t\t\t<slot name=\"editFn\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitRight>\n\t\t\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitLeft>\n\t\t\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t\t\t</template>\n\t\t\t</ChatInput>\n\t\t</slot>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport UserMessage from './UserMessage.vue'\nimport AiMessage from './AiMessage.vue'\nimport ChatInput from './ChatInput.vue'\nimport HelloChat from '../../component/HelloChat.vue'\nimport { ref, computed, onMounted, onBeforeUnmount, inject, watch, provide, type Ref } from 'vue'\nimport { MessageAction, type ChatMessage, type ChatMsgList, type ModuleItem } from './Chat/types'\nimport { useChat } from './Chat/useChat'\nimport { useCopy } from './Chat/useCopy'\n\n// 组件属性和注入\nconst emit = defineEmits(['sendMessage', 'toggleSidebar', 'beforeSendMessage', 'openSideBar'])\nconst scripts = inject<Ref<any[]>>('scripts', ref([]))\nconst unmatchText = inject<string>('unmatchText', '您的消息未匹配到任何内容')\nconst modules = inject<Ref<(string | ModuleItem)[]>>('modules', ref([]))\nconst afterSend = inject<(result: object) => void>('afterSend', () => {\n\tconsole.warn('未提供afterSend函数')\n})\nconst sendMessageInject = inject<(value: string, fileList?: any[]) => void>('send', () => {\n\tconsole.warn('未提供handleSend函数')\n})\nconst beforeSend = inject<() => { result: boolean; componentName?: string }>('beforeSend', () => ({\n\tresult: true,\n\tcomponentName: ''\n}))\n\nconst bottom = inject<() => void>('bottom', () => {\n\tconsole.warn('未提供bottom函数')\n})\n\nconst stop = inject<(item: ChatMessage, index: number) => void>('stop', () => {\n\tconsole.warn('未提供stop函数')\n})\n\n// 计算属性\nconst scriptsLength = computed(() => scripts.value?.length || 0)\n\n// 组件属性\nconst props = defineProps({\n\tvalue: {\n\t\ttype: Array as () => ChatMessage[],\n\t\tdefault: () => []\n\t}\n})\n\n// DOM 引用\nconst chatContainer = ref<HTMLElement | null>(null)\nconst ChatInputRef = ref<InstanceType<typeof ChatInput> | null>(null)\n\n// 初始化 useChat\nconst {\n\tchatList,\n\tisChating,\n\tinputValue,\n\tenableDeepThinking,\n\tactiveAgentsName,\n\tinit,\n\tsendMessage,\n\thandleBeforeSend,\n\thandleSend,\n\thandleStop,\n\thandleMessageAction,\n\tsaveEdit,\n\tcancelEdit,\n\tcompleteRendered,\n\thandleAgentSelect,\n\tupdate,\n\tupdateModule,\n\thandleDragEnter,\n\thandleDragLeave,\n\thandleDrop,\n\thandleScroll,\n\tonMounted: chatOnMounted,\n\tonBeforeUnmount: chatOnBeforeUnmount\n} = useChat({\n\tprops,\n\temit: emit as any,\n\tscripts: scripts.value,\n\tunmatchText,\n\tmodules: modules.value,\n\tafterSend,\n\tsendMessageInject,\n\tbeforeSend,\n\tbottom,\n\tstop,\n\tchatContainer,\n\tchatInputRef: ChatInputRef\n})\n\n// 使用 useCopy composable\nconst { copyWithFeedback } = useCopy()\n\n// 注入外部的 modelChange 并覆盖,调用内部 updateModule 更新 moduleInfo\nconst modelChangeExternal = inject<(item: ModuleItem, index: number) => void>('modelChange', () => {})\nprovide('modelChange', (item: ModuleItem, index: number) => {\n\tmodelChangeExternal(item, index)\n\tupdateModule(item)\n})\n\n// 附加复制按钮到代码块\nconst attachCopyButtons = (container: HTMLElement): void => {\n\tconst codeBlocks = container.querySelectorAll('pre code')\n\tcodeBlocks.forEach(codeBlock => {\n\t\tconst pre = codeBlock.parentElement\n\t\tif (pre) {\n\t\t\tconst copyBtn = document.createElement('button')\n\t\t\tcopyBtn.className = 'touchchat-code-copy'\n\t\t\tcopyBtn.addEventListener('click', () => {\n\t\t\t\tconst code = codeBlock.textContent || ''\n\t\t\t\tcopyWithFeedback(code, copyBtn, '', '已复制', 2000)\n\t\t\t})\n\t\t\tpre.style.position = 'relative'\n\t\t\tpre.appendChild(copyBtn)\n\t\t}\n\t})\n}\n\n// 侧边栏切换\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\n\temit('toggleSidebar', item, index)\n}\n\nconst openSideBar = (item: ChatMessage & ChatMsgList, index: number) => {\n\temit('openSideBar', item, index)\n}\n\nconst handleMessageQuote = (item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.updateQuoteData(item, index)\n\t}\n}\n\n// 文件上传\nconst itemUploadFile = (_item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.itemUploadFile(index, 'drop')\n\t}\n}\nconst setInputValue = inject<any>('setInput')\n\n// 组件生命周期\nonMounted(() => {\n\tsetInputValue.value = (value: string) => {\n\t\tinputValue.value = value\n\t}\n\tchatOnMounted()\n\twatch(\n\t\t() => scripts,\n\t\t() => {\n\t\t\tinit()\n\t\t},\n\t\t{ deep: true, immediate: false }\n\t)\n})\n\nonBeforeUnmount(() => {\n\tchatOnBeforeUnmount()\n})\n\n// 提供给子组件\nprovide('touchchat', {\n\tsend: sendMessage,\n\tretry: handleMessageAction\n})\n\n// 暴露方法\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\thandleSend(value, fileList, auto, type)\n\t},\n\thandleAgentSelect,\n\tretry: (index: number) => {\n\t\thandleMessageAction(MessageAction.RETRY, index)\n\t},\n\tupdate\n})\n</script>\n"],"names":["inject","ref","computed","useChat","useCopy","provide","onMounted","watch","onBeforeUnmount","MessageAction","_createElementBlock","_unref","_createElementVNode","_renderSlot","_createVNode","HelloChat","_openBlock","_Fragment","_renderList","_createBlock","UserMessage","AiMessage","$slots","ChatInput"],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
23
23
|
const isShowAvatar = vue.ref(true);
|
|
24
24
|
const userAvatarPath = vue.ref(userAvatar.default);
|
|
25
25
|
const avatar = vue.inject("avatar", true);
|
|
26
|
+
const hasRead = vue.inject("hasRead", false);
|
|
26
27
|
vue.nextTick(() => {
|
|
27
28
|
renderContent();
|
|
28
29
|
});
|
|
@@ -120,15 +121,16 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
120
121
|
key: 0,
|
|
121
122
|
class: "touch-user-wrapper"
|
|
122
123
|
}, [
|
|
123
|
-
vue.
|
|
124
|
+
vue.unref(hasRead) ? (vue.openBlock(), vue.createElementBlock(
|
|
124
125
|
"div",
|
|
125
126
|
{
|
|
127
|
+
key: 0,
|
|
126
128
|
class: vue.normalizeClass(["touchchat-action-item value-read no-hover", { "is-read": (_g = _ctx.item) == null ? void 0 : _g.isRead }])
|
|
127
129
|
},
|
|
128
130
|
null,
|
|
129
131
|
2
|
|
130
132
|
/* CLASS */
|
|
131
|
-
),
|
|
133
|
+
)) : vue.createCommentVNode("v-if", true),
|
|
132
134
|
vue.createElementVNode("div", { class: "touchchat-user-bubble" }, [
|
|
133
135
|
vue.createElementVNode("div", {
|
|
134
136
|
ref: setHtmlContentRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMessage.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/UserMessage.vue"],"sourcesContent":["<template>\n\t<!-- v-if=\"item.content\" -->\n\t<div v-if=\"!item.auto\" class=\"touchchat-user touchchat-item\" :data-chat-id=\"item.chatId\">\n\t\t<!-- 头像区域 -->\n\t\t<div class=\"touchchat-user-avatar\" :class=\"item?.files?.length && item.content ? 'file-user-avatar' : ''\">\n\t\t\t<slot name=\"userAvatar\">\n\t\t\t\t<img v-if=\"isShowAvatar\" :src=\"userAvatarPath\" class=\"touchchat-user-avatar-pic\" />\n\t\t\t</slot>\n\t\t</div>\n\n\t\t<!-- 内容区域 -->\n\t\t<div class=\"touchchat-user-content\">\n\t\t\t<!-- <div>{{item}}</div> hasColse -->\n\t\t\t<file-content v-if=\"item?.files?.length\" :file-list=\"item.files\" :has-colse=\"false\" type=\"UserMessage\" @user-message-file-list=\"userMessageFileList\"></file-content>\n\t\t\t<!-- 气泡 -->\n\t\t\t<template v-if=\"!item.isWithDraw && !item.isEditing && (item.content || item?.files?.length)\">\n\t\t\t\t<div v-if=\"item.content\" class=\"touch-user-wrapper\">\n\t\t\t\t\t<div class=\"touchchat-action-item value-read no-hover\" :class=\"{ 'is-read': item?.isRead }\"></div>\n\t\t\t\t\t<div class=\"touchchat-user-bubble\">\n\t\t\t\t\t\t<div :ref=\"setHtmlContentRef\" class=\"touchchat-user-bubble-text\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<!-- v-if=\"!scripts.length\" -->\n\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t<MessageActions :item=\"item\" message-type=\"user\" :index=\"index\" :show-copy=\"true\" @copy=\"onCopy\" @edit=\"onEdit\" @delete=\"onDelete\" @with-draw=\"onWithdraw\">\n\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</MessageActions>\n\t\t\t\t</slot>\n\t\t\t\t<!-- <slot name=\"fn\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t<MessageActions v-show=\"!item.isChating\" :item=\"item\" message-type=\"ai\" :index=\"index\" :has-retry=\"hasRetry\" :show-copy=\"true\" @copy=\"onCopy\" @retry=\"onRetry\" @like=\"onLike\" @dislike=\"onDislike\">\n\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</MessageActions>\n\t\t\t\t</slot> -->\n\t\t\t</template>\n\n\t\t\t<!-- 编辑区域 -->\n\t\t\t<div v-else-if=\"item.isEditing && item.content\" class=\"touchchat-user-edit\">\n\t\t\t\t<div class=\"touchchat-user-edit-input\">\n\t\t\t\t\t<textarea v-model=\"localEditContent\" placeholder=\"请输入消息内容...\"></textarea>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"touchchat-user-edit-submit\">\n\t\t\t\t\t<button class=\"touchchat-user-cancel\" @click=\"onCancelEdit\">\n\t\t\t\t\t\t<span class=\"touchchat-user-cancel-text\">取消</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class=\"touchchat-user-send\" :disabled=\"!localEditContent.trim()\" @click=\"onSaveEdit\">\n\t\t\t\t\t\t<span class=\"touchchat-user-send-text\">发送</span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\n// 导入新组件\nimport MessageActions from './MessageActions.vue'\nimport { ref, nextTick, watch, inject, type ComponentPublicInstance } from 'vue'\nimport type { ChatMessage, ChatMsgList, FileItem } from './Chat/types'\nimport markdown from '../../utils/markdown.ts'\nimport userAvatarBase from '../../img/userAvatar.png'\nimport fileContent from '../../component/FileContent.vue'\n\nconst props = defineProps<{\n\titem: ChatMessage & ChatMsgList\n\tindex: number\n}>()\n\nconst emits = defineEmits<{\n\t(e: 'copy', index: number): void\n\t(e: 'edit', index: number): void\n\t(e: 'delete', index: number): void\n\t(e: 'saveEdit', index: number, newContent: string): void\n\t(e: 'cancelEdit', index: number): void\n\t(e: 'withDraw', item: any, index: number): void\n\t(e: 'user-message-file-list', item: FileItem, index: number): void\n}>()\n\nconst htmlContentRef = ref<HTMLElement | null>(null)\nconst localEditContent = ref('')\nconst isShowAvatar = ref(true)\nconst userAvatarPath = ref(userAvatarBase)\nconst avatar = inject<boolean>('avatar', true)\n\n// 初始化渲染\nnextTick(() => {\n\trenderContent()\n})\n\nconst init = () => {\n\tisShowAvatar.value = avatar\n}\n\n// 修改ref赋值方式确保正确绑定\nconst setHtmlContentRef = (ref: Element | ComponentPublicInstance | null = null) => {\n\t// 只处理Element类型的引用\n\tif (ref instanceof Element) {\n\t\thtmlContentRef.value = ref as HTMLElement\n\t\trenderContent()\n\t} else {\n\t\thtmlContentRef.value = null\n\t}\n}\n\n// 监听props变化同步到本地状态\nwatch(\n\t() => props.item.editContent,\n\t(newVal: any) => {\n\t\tlocalEditContent.value = newVal || ''\n\t},\n\t{ immediate: true } // 初始化时同步\n)\n\n// 增强watch监听,添加immediate和nextTick确保时序正确\nwatch(\n\t() => props.item.content,\n\t(newContent: any) => {\n\t\tif (newContent) {\n\t\t\tnextTick(() => renderContent())\n\t\t}\n\t},\n\t{ immediate: true } // 初始化和变化时都执行\n)\n\nconst renderContent = () => {\n\tinit()\n\t// 添加防御性检查\n\tif (!htmlContentRef.value || !props.item.content) return\n\thtmlContentRef.value.innerHTML = markdown?.render(props.item.content, { isReasoning: false }) || ''\n}\n\nconst onCopy = () => emits('copy', props.index)\nconst onEdit = () => emits('edit', props.index)\nconst onDelete = () => emits('delete', props.index)\nconst onSaveEdit = () => emits('saveEdit', props.index, localEditContent.value)\nconst onCancelEdit = () => emits('cancelEdit', props.index)\nconst onWithdraw = () => emits('withDraw', props.item, props.index)\n\nconst userMessageFileList = (item: FileItem, index: number) => {\n\temits('user-message-file-list', item, index)\n}\n</script>\n"],"names":["ref","userAvatarBase","inject","nextTick","watch","markdown","_createCommentVNode","item","_createElementBlock","_createElementVNode","_normalizeClass","_renderSlot","_createBlock","fileContent","_Fragment","index","_createVNode","MessageActions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserMessage.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/UserMessage.vue"],"sourcesContent":["<template>\n\t<!-- v-if=\"item.content\" -->\n\t<div v-if=\"!item.auto\" class=\"touchchat-user touchchat-item\" :data-chat-id=\"item.chatId\">\n\t\t<!-- 头像区域 -->\n\t\t<div class=\"touchchat-user-avatar\" :class=\"item?.files?.length && item.content ? 'file-user-avatar' : ''\">\n\t\t\t<slot name=\"userAvatar\">\n\t\t\t\t<img v-if=\"isShowAvatar\" :src=\"userAvatarPath\" class=\"touchchat-user-avatar-pic\" />\n\t\t\t</slot>\n\t\t</div>\n\n\t\t<!-- 内容区域 -->\n\t\t<div class=\"touchchat-user-content\">\n\t\t\t<!-- <div>{{item}}</div> hasColse -->\n\t\t\t<file-content v-if=\"item?.files?.length\" :file-list=\"item.files\" :has-colse=\"false\" type=\"UserMessage\" @user-message-file-list=\"userMessageFileList\"></file-content>\n\t\t\t<!-- 气泡 -->\n\t\t\t<template v-if=\"!item.isWithDraw && !item.isEditing && (item.content || item?.files?.length)\">\n\t\t\t\t<div v-if=\"item.content\" class=\"touch-user-wrapper\">\n\t\t\t\t\t<div v-if=\"hasRead\" class=\"touchchat-action-item value-read no-hover\" :class=\"{ 'is-read': item?.isRead }\"></div>\n\t\t\t\t\t<div class=\"touchchat-user-bubble\">\n\t\t\t\t\t\t<div :ref=\"setHtmlContentRef\" class=\"touchchat-user-bubble-text\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<!-- v-if=\"!scripts.length\" -->\n\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t<MessageActions :item=\"item\" message-type=\"user\" :index=\"index\" :show-copy=\"true\" @copy=\"onCopy\" @edit=\"onEdit\" @delete=\"onDelete\" @with-draw=\"onWithdraw\">\n\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</MessageActions>\n\t\t\t\t</slot>\n\t\t\t\t<!-- <slot name=\"fn\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t<MessageActions v-show=\"!item.isChating\" :item=\"item\" message-type=\"ai\" :index=\"index\" :has-retry=\"hasRetry\" :show-copy=\"true\" @copy=\"onCopy\" @retry=\"onRetry\" @like=\"onLike\" @dislike=\"onDislike\">\n\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</MessageActions>\n\t\t\t\t</slot> -->\n\t\t\t</template>\n\n\t\t\t<!-- 编辑区域 -->\n\t\t\t<div v-else-if=\"item.isEditing && item.content\" class=\"touchchat-user-edit\">\n\t\t\t\t<div class=\"touchchat-user-edit-input\">\n\t\t\t\t\t<textarea v-model=\"localEditContent\" placeholder=\"请输入消息内容...\"></textarea>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"touchchat-user-edit-submit\">\n\t\t\t\t\t<button class=\"touchchat-user-cancel\" @click=\"onCancelEdit\">\n\t\t\t\t\t\t<span class=\"touchchat-user-cancel-text\">取消</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class=\"touchchat-user-send\" :disabled=\"!localEditContent.trim()\" @click=\"onSaveEdit\">\n\t\t\t\t\t\t<span class=\"touchchat-user-send-text\">发送</span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\n// 导入新组件\nimport MessageActions from './MessageActions.vue'\nimport { ref, nextTick, watch, inject, type ComponentPublicInstance } from 'vue'\nimport type { ChatMessage, ChatMsgList, FileItem } from './Chat/types'\nimport markdown from '../../utils/markdown.ts'\nimport userAvatarBase from '../../img/userAvatar.png'\nimport fileContent from '../../component/FileContent.vue'\n\nconst props = defineProps<{\n\titem: ChatMessage & ChatMsgList\n\tindex: number\n}>()\n\nconst emits = defineEmits<{\n\t(e: 'copy', index: number): void\n\t(e: 'edit', index: number): void\n\t(e: 'delete', index: number): void\n\t(e: 'saveEdit', index: number, newContent: string): void\n\t(e: 'cancelEdit', index: number): void\n\t(e: 'withDraw', item: any, index: number): void\n\t(e: 'user-message-file-list', item: FileItem, index: number): void\n}>()\n\nconst htmlContentRef = ref<HTMLElement | null>(null)\nconst localEditContent = ref('')\nconst isShowAvatar = ref(true)\nconst userAvatarPath = ref(userAvatarBase)\nconst avatar = inject<boolean>('avatar', true)\nconst hasRead = inject<boolean>('hasRead', false)\n\n// 初始化渲染\nnextTick(() => {\n\trenderContent()\n})\n\nconst init = () => {\n\tisShowAvatar.value = avatar\n}\n\n// 修改ref赋值方式确保正确绑定\nconst setHtmlContentRef = (ref: Element | ComponentPublicInstance | null = null) => {\n\t// 只处理Element类型的引用\n\tif (ref instanceof Element) {\n\t\thtmlContentRef.value = ref as HTMLElement\n\t\trenderContent()\n\t} else {\n\t\thtmlContentRef.value = null\n\t}\n}\n\n// 监听props变化同步到本地状态\nwatch(\n\t() => props.item.editContent,\n\t(newVal: any) => {\n\t\tlocalEditContent.value = newVal || ''\n\t},\n\t{ immediate: true } // 初始化时同步\n)\n\n// 增强watch监听,添加immediate和nextTick确保时序正确\nwatch(\n\t() => props.item.content,\n\t(newContent: any) => {\n\t\tif (newContent) {\n\t\t\tnextTick(() => renderContent())\n\t\t}\n\t},\n\t{ immediate: true } // 初始化和变化时都执行\n)\n\nconst renderContent = () => {\n\tinit()\n\t// 添加防御性检查\n\tif (!htmlContentRef.value || !props.item.content) return\n\thtmlContentRef.value.innerHTML = markdown?.render(props.item.content, { isReasoning: false }) || ''\n}\n\nconst onCopy = () => emits('copy', props.index)\nconst onEdit = () => emits('edit', props.index)\nconst onDelete = () => emits('delete', props.index)\nconst onSaveEdit = () => emits('saveEdit', props.index, localEditContent.value)\nconst onCancelEdit = () => emits('cancelEdit', props.index)\nconst onWithdraw = () => emits('withDraw', props.item, props.index)\n\nconst userMessageFileList = (item: FileItem, index: number) => {\n\temits('user-message-file-list', item, index)\n}\n</script>\n"],"names":["ref","userAvatarBase","inject","nextTick","watch","markdown","_createCommentVNode","item","_createElementBlock","_createElementVNode","_normalizeClass","_renderSlot","_createBlock","fileContent","_Fragment","_unref","index","_createVNode","MessageActions"],"mappings":"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"}
|
|
@@ -37,10 +37,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
37
37
|
a2uiProps: { default: () => ({}) },
|
|
38
38
|
messageActions: { default: () => {
|
|
39
39
|
return {
|
|
40
|
-
user: ["edit", "delete", "
|
|
41
|
-
ai: ["retry", "like", "dislike", "
|
|
40
|
+
user: ["edit", "delete", "copy"],
|
|
41
|
+
ai: ["retry", "like", "dislike", "copy"]
|
|
42
42
|
};
|
|
43
|
-
} }
|
|
43
|
+
} },
|
|
44
|
+
hasRead: { type: Boolean, default: false }
|
|
44
45
|
},
|
|
45
46
|
emits: ["send", "afterSend", "like", "dislike", "side-bottom", "change", "historyRemove", "remove", "bottom", "stop", "modelChange", "openSideBar", "share", "withDraw"],
|
|
46
47
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
@@ -59,6 +60,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
59
60
|
vue.provide("allowedTypes", props.allowedTypes);
|
|
60
61
|
vue.provide("a2uiProps", props.a2uiProps);
|
|
61
62
|
vue.provide("messageActions", props.messageActions);
|
|
63
|
+
vue.provide("hasRead", props.hasRead);
|
|
62
64
|
const historyListComputed = vue.computed(() => props.historyList);
|
|
63
65
|
const providedHistoryList = vue.ref(props.historyList);
|
|
64
66
|
vue.watch(
|
|
@@ -109,15 +111,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
109
111
|
emits("send", value, fileList);
|
|
110
112
|
});
|
|
111
113
|
vue.provide("sideBottom", () => {
|
|
112
|
-
console.log("sideBottom === \u89E6\u5E95\u4E8B\u4EF6");
|
|
113
114
|
emits("side-bottom");
|
|
114
115
|
});
|
|
115
116
|
vue.provide("change", (id) => {
|
|
116
|
-
console.log("change === \u6FC0\u6D3B\u4E8B\u4EF6", id);
|
|
117
117
|
emits("change", id);
|
|
118
118
|
});
|
|
119
119
|
vue.provide("historyRemove", (id) => {
|
|
120
|
-
console.log("historyRemove === \u5220\u9664\u4E8B\u4EF6", id);
|
|
121
120
|
emits("historyRemove", id);
|
|
122
121
|
});
|
|
123
122
|
vue.provide("openSideBar", (item, index) => {
|
|
@@ -133,19 +132,15 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
133
132
|
emits("afterSend", content);
|
|
134
133
|
});
|
|
135
134
|
vue.provide("remove", (item, index) => {
|
|
136
|
-
console.log("remove === \u8BE6\u60C5\u5220\u9664", item, index);
|
|
137
135
|
emits("remove", item, index);
|
|
138
136
|
});
|
|
139
137
|
vue.provide("bottom", () => {
|
|
140
|
-
console.log("bottom === \u8BE6\u60C5\u89E6\u5E95");
|
|
141
138
|
emits("bottom");
|
|
142
139
|
});
|
|
143
140
|
vue.provide("stop", (item, index) => {
|
|
144
|
-
console.log("stop === \u7528\u6237\u7EC8\u6B62\u4E8B\u4EF6");
|
|
145
141
|
emits("stop", item, index);
|
|
146
142
|
});
|
|
147
143
|
vue.provide("modelChange", (item, index) => {
|
|
148
|
-
console.log("modelChange === \u6A21\u578B\u5207\u6362\u4E8B\u4EF6", item, index);
|
|
149
144
|
emits("modelChange", item, index);
|
|
150
145
|
});
|
|
151
146
|
const deepSeekRef = vue.ref(null);
|
|
@@ -179,6 +174,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
179
174
|
height
|
|
180
175
|
};
|
|
181
176
|
});
|
|
177
|
+
const updateInputMethod = vue.ref(null);
|
|
178
|
+
vue.provide("setInput", updateInputMethod);
|
|
179
|
+
const setInput = (newValue) => {
|
|
180
|
+
if (updateInputMethod.value) {
|
|
181
|
+
updateInputMethod.value(newValue);
|
|
182
|
+
}
|
|
183
|
+
};
|
|
182
184
|
__expose({
|
|
183
185
|
send: (value, fileList, auto, type) => {
|
|
184
186
|
var _a;
|
|
@@ -207,7 +209,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
207
209
|
clearChat: () => {
|
|
208
210
|
var _a;
|
|
209
211
|
(_a = deepSeekRef.value) == null ? void 0 : _a.clearChat();
|
|
210
|
-
}
|
|
212
|
+
},
|
|
213
|
+
setInput
|
|
211
214
|
});
|
|
212
215
|
return (_ctx, _cache) => {
|
|
213
216
|
return vue.openBlock(), vue.createElementBlock(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.js","sources":["../../../../../../packages/components/touchchat/src/index.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({ name: 'Touchchat' });\n</script>\n<template>\n\t<!-- <div>1.0.0-beta.2026032301</div> -->\n\t<DeepSeek ref=\"deepSeekRef\" :style=\"elementStyle\" :class=\"elementClass\">\n\t\t<!-- msg -->\n\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #msg=\"{ item, index }\">\n\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #aiAvatar>\n\t\t\t<slot name=\"aiAvatar\" />\n\t\t</template>\n\t\t<template #userAvatar>\n\t\t\t<slot name=\"userAvatar\" />\n\t\t</template>\n\t\t<template #welcome>\n\t\t\t<slot name=\"welcome\" />\n\t\t</template>\n\t\t<!-- edit -->\n\t\t<template #edit>\n\t\t\t<slot name=\"edit\" />\n\t\t</template>\n\t\t<!-- top -->\n\t\t<template #top>\n\t\t\t<slot name=\"top\" />\n\t\t</template>\n\t\t<template #shortcut>\n\t\t\t<slot name=\"shortcut\" />\n\t\t</template>\n\t\t<!-- extend -->\n\t\t<template #extend=\"{ item, index }\">\n\t\t\t<slot name=\"extend\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<!-- fn -->\n\t\t<template #fn=\"{ item, index }\">\n\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #editTop>\n\t\t\t<slot name=\"editTop\" />\n\t\t</template>\n\t\t<template #editFn>\n\t\t\t<slot name=\"editFn\" />\n\t\t</template>\n\t\t<template #editSubmitRight>\n\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t</template>\n\t\t<template #editSubmitLeft>\n\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t</template>\n\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t</DeepSeek>\n</template>\n<script setup lang=\"ts\">\nimport { ChatMessage, ChatMsgList, MessageActions, ModuleItem } from './AiChat/Chat/types'\nimport type { AgentConfig, SubAgent } from '../src/types/a2a'\nimport DeepSeek from './AiChat/TouchHistory.vue'\nimport { provide, ref, computed, watch } from 'vue'\n\n\n\nconst emits = defineEmits<{\n\t(e: 'send', value: string, fileList?: any[]): void\n\t(e: 'afterSend', result: any): void\n\t(e: 'like', index: number, isLike: boolean): void\n\t(e: 'dislike', index: number, isDislike: boolean): void\n\t(e: 'side-bottom'): void\n\t(e: 'change', id: string): void\n\t(e: 'historyRemove', id: string): void\n\t(e: 'remove', item: ChatMessage, index: number): void\n\t(e: 'bottom'): void\n\t(e: 'stop', item: ChatMessage, index: number): void\n\t(e: 'modelChange', item: ModuleItem, index: number): void\n\t(e: 'openSideBar', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'share', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'withDraw', item: ChatMessage & ChatMsgList, index: number): void\n}>()\n\nconst sendVal = ref('')\n\ninterface ScriptItem {\n\tid?: string\n\tname: string\n\tsubTitle?: string\n\tcontent: Array<{\n\t\tuser: string\n\t\tdata?: string\n\t\talias?: string[]\n\t\ttype?: string\n\t}>\n}\n\ninterface HistoryItem {\n\tid?: string\n\ttime?: string\n\ttitle?: string\n}\n\ninterface MessageItem {\n\tchatId: string\n\tuser: string\n\ttype: string\n\tcontent: string\n\t[props: string]: any\n}\n\n// interface ModuleItem {\n// \tname: string\n// \tconfig: {\n// \t\taction: string\n// \t\theaders: () => object\n// \t\tbody: () => object\n// \t\trespoKey: () => object\n// \t}\n// }\ntype Modules = (string | ModuleItem)[]\ntype ResultArray = AgentConfig[] | SubAgent[]\ninterface MultiAgentInfo {\n\tlist: ResultArray\n\turl?: string\n\t// token?: string\n\theaders?: object\n}\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\tmode?: string\n\t\tscripts?: ScriptItem[]\n\t\twidth?: number | string\n\t\theight?: number | string\n\t\tcomponents?: { [key: string]: any } // components\n\t\tavatar?: boolean // avatar\n\t\tplaceholder?: string\n\t\tunmatchText?: string // unmatchText\n\t\ttitle?: string\n\t\tlayout?: string // layout=\"side, think, upload, chain,realtime\"\n\t\tbeforeSend?: () => { result: boolean; componentName?: string }\n\t\thistoryList?: HistoryItem[] // historyList\n\t\thistoryDetail?: MessageItem[] // historyDetail\n\t\tagents?: {\n\t\t\tid: string\n\t\t\tname: string\n\t\t\tintro: string\n\t\t}[] // agents\n\t\tmodules?: Modules // modules\n\t\tspeed?: number // speed\n\t\tallowedTypes?: string[] // allowedTypes\n\t\t// agentConfigList?: ResultArray // agentConfigList 智能体配置列表\n\t\t// multiAgentHost?: string // multiAgentHost 多智能体主机地址\n\t\t// multiAgentToken?: string // multiAgentToken 多智能体认证令牌\n\t\tagentInfo?: MultiAgentInfo // agentInfo 多智能体信息\n\t\ta2uiProps?: {\n\t\t\t[key: string]: any\n\t\t}\n\t\tmessageActions?: MessageActions\n\t}>(),\n\t{\n\t\tmode: '',\n\t\tscripts: () => [],\n\t\twidth: '',\n\t\theight: '',\n\t\tcomponents: () => ({}),\n\t\tavatar: true,\n\t\tplaceholder: 'hi,我是touchchat,快来和我聊天吧~',\n\t\tunmatchText: '您的消息未匹配到任何内容',\n\t\ttitle: 'TouchChat',\n\t\tlayout: 'side, clear, think, upload, screen, voice,realtime', //chain 思考链\n\t\t// side 侧边栏(历史记录),think 深度思考,upload 上传文件,chain 思考链\n\t\tbeforeSend: () => ({ result: true, componentName: '' }),\n\t\thistoryList: () => [],\n\t\thistoryDetail: () => [],\n\t\tagents: () => [],\n\t\tmodules: () => [],\n\t\tspeed: 10,\n\t\tallowedTypes: () => [],\n\t\tagentInfo: () => ({\n\t\t\tlist: [], // list 智能体列表 =1 单智能体 >1 多智能体\n\t\t\turl: '', // url 多智能体主机地址 单智能体为空 多智能体必传\n\t\t\theaders: {} // 多智能体请求头信息\n\t\t}),\n\t\ta2uiProps: () => ({}),\n\t\tmessageActions: () => {\n\t\t\treturn {\n\t\t\t\tuser: ['edit', 'delete', 'withDraw', 'copy'],\n\t\t\t\tai: ['retry', 'like', 'dislike', 'share', 'copy', 'quote']\n\t\t\t}\n\t\t}\n\t}\n)\n\nprovide('components', props.components)\nprovide('avatar', props.avatar)\nprovide('placeholder', props.placeholder)\nprovide('unmatchText', props.unmatchText)\nprovide('title', props.title)\nprovide('layout', props.layout)\nprovide('beforeSend', props.beforeSend)\nprovide('scripts', ref(props.scripts || []))\nprovide('speed', props.speed)\nprovide('allowedTypes', props.allowedTypes)\nprovide('a2uiProps', props.a2uiProps)\nprovide('messageActions', props.messageActions)\nconst historyListComputed = computed(() => props.historyList)\nconst providedHistoryList = ref(props.historyList)\nwatch(\n\thistoryListComputed,\n\tnewVal => {\n\t\tprovidedHistoryList.value = newVal\n\t},\n\t{ immediate: true }\n)\nprovide('historyList', providedHistoryList)\nconst historyDetailComputed = computed(() => props.historyDetail)\nconst providedHistoryDetail = ref(props.historyDetail)\nwatch(\n\thistoryDetailComputed,\n\tnewVal => {\n\t\tprovidedHistoryDetail.value = newVal\n\t},\n\t{ immediate: true }\n)\nprovide('historyDetail', providedHistoryDetail)\nprovide('agents', props.agents)\nconst iModules = ref(props.modules)\nwatch(\n\t() => props.modules,\n\tnewVal => {\n\t\tiModules.value = newVal\n\t\t// console.log('modules === index.vue === 191', newVal)\n\t},\n\t{ immediate: true }\n)\nprovide('modules', iModules)\n\nconst iMultiAgentInfo = ref(props.agentInfo)\nwatch(\n\t() => props.agentInfo,\n\tnewVal => {\n\t\tiMultiAgentInfo.value = newVal\n\t},\n\t{ immediate: true, deep: true }\n)\nprovide('agentInfo', iMultiAgentInfo)\n\n// 新增:提供处理点赞事件的函数\nprovide('like', (index: number, isLike: boolean) => {\n\t// 这里可以实现具体的点赞逻辑\n\temits('like', index, isLike) // like\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\n// 新增:提供处理点赞事件的函数 dislike\nprovide('dislike', (index: number, isUnlike: boolean) => {\n\t// 这里可以实现具体的点赞逻辑\n\temits('dislike', index, isUnlike) // dislike\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\nprovide('send', (value: string, fileList?: any[]) => {\n\t// send\n\t// 这里可以实现具体的点赞逻辑\n\tsendVal.value = value\n\temits('send', value, fileList)\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\nprovide('sideBottom', () => {\n\tconsole.log('sideBottom === 触底事件') // bottom\n\temits('side-bottom')\n})\n\nprovide('change', (id: string) => {\n\tconsole.log('change === 激活事件', id) // change\n\temits('change', id)\n})\n\nprovide('historyRemove', (id: string) => {\n\t//remove\n\tconsole.log('historyRemove === 删除事件', id)\n\temits('historyRemove', id)\n})\n\nprovide('openSideBar', (item: any, index: number) => {\n\temits('openSideBar', item, index)\n})\n\nprovide('share', (item: any, index: number) => {\n\temits('share', item, index)\n})\n\nprovide('withDraw', (item: any, index: number) => {\n\temits('withDraw', item, index)\n})\n\nprovide('afterSend', (content: any) => {\n\t// afterSend\n\t// console.log('afterSend === 发送消息事件', content)\n\temits('afterSend', content)\n})\n\nprovide('remove', (item: ChatMessage, index: number) => {\n\t// afterSend\n\tconsole.log('remove === 详情删除', item, index)\n\temits('remove', item, index)\n})\n\nprovide('bottom', () => {\n\tconsole.log('bottom === 详情触底')\n\temits('bottom')\n})\n\nprovide('stop', (item: ChatMessage, index: number) => {\n\tconsole.log('stop === 用户终止事件')\n\temits('stop', item, index)\n})\n\nprovide('modelChange', (item: ModuleItem, index: number) => {\n\tconsole.log('modelChange === 模型切换事件', item, index)\n\temits('modelChange', item, index)\n})\n\n// const rootRef = ref(null)\nconst deepSeekRef = ref<InstanceType<typeof DeepSeek> | null>(null)\n\nconst elementClass = computed(() => {\n\tconst classList = []\n\tif (props.mode) {\n\t\tclassList.push(`touchchat-${props.mode}`)\n\t}\n\treturn classList.join(' ')\n})\n\n// 修改elementStyle计算属性,移除对scripts.length的检查\nconst elementStyle = computed(() => {\n\tlet width = ''\n\tlet height = ''\n\n\tif (props.width) {\n\t\tif (typeof props.width === 'string') {\n\t\t\twidth = props.width ?? '100%'\n\t\t} else {\n\t\t\twidth = `${props.width}em`\n\t\t}\n\t}\n\n\tif (props.height) {\n\t\tif (typeof props.height === 'string') {\n\t\t\theight = props.height ?? '100%'\n\t\t} else {\n\t\t\theight = `${props.height}em`\n\t\t}\n\t}\n\n\treturn {\n\t\twidth,\n\t\theight\n\t}\n})\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\tdeepSeekRef.value?.send(value, fileList, auto, type) //send\n\t},\n\tcloseExtend: () => {\n\t\tdeepSeekRef.value?.closeExtend() // closeExtend\n\t},\n\tcreate: () => {\n\t\tdeepSeekRef.value?.create() // reset\n\t},\n\tretry: (index: number) => {\n\t\tdeepSeekRef.value?.retry(index)\n\t},\n\tupdate: (index: number, message: object) => {\n\t\tdeepSeekRef.value?.update(index, message)\n\t},\n\tchangeChat: (index: number) => {\n\t\tdeepSeekRef.value?.changeChat(index)\n\t},\n\tclearChat: () => {\n\t\tdeepSeekRef.value?.clearChat()\n\t}\n})\n</script>\n"],"names":["DO_defineComponent","ref","provide","computed","watch","_createCommentVNode","_createVNode","DeepSeek","_withCtx","_renderSlot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue2.js","sources":["../../../../../../packages/components/touchchat/src/index.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({ name: 'Touchchat' });\n</script>\n<template>\n\t<!-- <div>1.0.0-beta.2026032301</div> -->\n\t<DeepSeek ref=\"deepSeekRef\" :style=\"elementStyle\" :class=\"elementClass\">\n\t\t<!-- msg -->\n\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #msg=\"{ item, index }\">\n\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #aiAvatar>\n\t\t\t<slot name=\"aiAvatar\" />\n\t\t</template>\n\t\t<template #userAvatar>\n\t\t\t<slot name=\"userAvatar\" />\n\t\t</template>\n\t\t<template #welcome>\n\t\t\t<slot name=\"welcome\" />\n\t\t</template>\n\t\t<!-- edit -->\n\t\t<template #edit>\n\t\t\t<slot name=\"edit\" />\n\t\t</template>\n\t\t<!-- top -->\n\t\t<template #top>\n\t\t\t<slot name=\"top\" />\n\t\t</template>\n\t\t<template #shortcut>\n\t\t\t<slot name=\"shortcut\" />\n\t\t</template>\n\t\t<!-- extend -->\n\t\t<template #extend=\"{ item, index }\">\n\t\t\t<slot name=\"extend\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<!-- fn -->\n\t\t<template #fn=\"{ item, index }\">\n\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #editTop>\n\t\t\t<slot name=\"editTop\" />\n\t\t</template>\n\t\t<template #editFn>\n\t\t\t<slot name=\"editFn\" />\n\t\t</template>\n\t\t<template #editSubmitRight>\n\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t</template>\n\t\t<template #editSubmitLeft>\n\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t</template>\n\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t</DeepSeek>\n</template>\n<script setup lang=\"ts\">\nimport { ChatMessage, ChatMsgList, MessageActions, ModuleItem } from './AiChat/Chat/types'\nimport type { AgentConfig, SubAgent } from '../src/types/a2a'\nimport DeepSeek from './AiChat/TouchHistory.vue'\nimport { provide, ref, computed, watch } from 'vue'\n\n\n\nconst emits = defineEmits<{\n\t(e: 'send', value: string, fileList?: any[]): void\n\t(e: 'afterSend', result: any): void\n\t(e: 'like', index: number, isLike: boolean): void\n\t(e: 'dislike', index: number, isDislike: boolean): void\n\t(e: 'side-bottom'): void\n\t(e: 'change', id: string): void\n\t(e: 'historyRemove', id: string): void\n\t(e: 'remove', item: ChatMessage, index: number): void\n\t(e: 'bottom'): void\n\t(e: 'stop', item: ChatMessage, index: number): void\n\t(e: 'modelChange', item: ModuleItem, index: number): void\n\t(e: 'openSideBar', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'share', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'withDraw', item: ChatMessage & ChatMsgList, index: number): void\n}>()\n\nconst sendVal = ref('')\n\ninterface ScriptItem {\n\tid?: string\n\tname: string\n\tsubTitle?: string\n\tcontent: Array<{\n\t\tuser: string\n\t\tdata?: string\n\t\talias?: string[]\n\t\ttype?: string\n\t}>\n}\n\ninterface HistoryItem {\n\tid?: string\n\ttime?: string\n\ttitle?: string\n}\n\ninterface MessageItem {\n\tchatId: string\n\tuser: string\n\ttype: string\n\tcontent: string\n\t[props: string]: any\n}\n\n// interface ModuleItem {\n// \tname: string\n// \tconfig: {\n// \t\taction: string\n// \t\theaders: () => object\n// \t\tbody: () => object\n// \t\trespoKey: () => object\n// \t}\n// }\ntype Modules = (string | ModuleItem)[]\ntype ResultArray = AgentConfig[] | SubAgent[]\ninterface MultiAgentInfo {\n\tlist: ResultArray\n\turl?: string\n\t// token?: string\n\theaders?: object\n}\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\tmode?: string\n\t\tscripts?: ScriptItem[]\n\t\twidth?: number | string\n\t\theight?: number | string\n\t\tcomponents?: { [key: string]: any } // components\n\t\tavatar?: boolean // avatar\n\t\tplaceholder?: string\n\t\tunmatchText?: string // unmatchText\n\t\ttitle?: string\n\t\tlayout?: string // layout=\"side, think, upload, chain,realtime\"\n\t\tbeforeSend?: () => { result: boolean; componentName?: string }\n\t\thistoryList?: HistoryItem[] // historyList\n\t\thistoryDetail?: MessageItem[] // historyDetail\n\t\tagents?: {\n\t\t\tid: string\n\t\t\tname: string\n\t\t\tintro: string\n\t\t}[] // agents\n\t\tmodules?: Modules // modules\n\t\tspeed?: number // speed\n\t\tallowedTypes?: string[] // allowedTypes\n\t\t// agentConfigList?: ResultArray // agentConfigList 智能体配置列表\n\t\t// multiAgentHost?: string // multiAgentHost 多智能体主机地址\n\t\t// multiAgentToken?: string // multiAgentToken 多智能体认证令牌\n\t\tagentInfo?: MultiAgentInfo // agentInfo 多智能体信息\n\t\ta2uiProps?: {\n\t\t\t[key: string]: any\n\t\t}\n\t\tmessageActions?: MessageActions\n\t\thasRead?: boolean\n\t}>(),\n\t{\n\t\tmode: '',\n\t\tscripts: () => [],\n\t\twidth: '',\n\t\theight: '',\n\t\tcomponents: () => ({}),\n\t\tavatar: true,\n\t\tplaceholder: 'hi,我是touchchat,快来和我聊天吧~',\n\t\tunmatchText: '您的消息未匹配到任何内容',\n\t\ttitle: 'TouchChat',\n\t\tlayout: 'side, clear, think, upload, screen, voice,realtime', //chain 思考链\n\t\t// side 侧边栏(历史记录),think 深度思考,upload 上传文件,chain 思考链\n\t\tbeforeSend: () => ({ result: true, componentName: '' }),\n\t\thistoryList: () => [],\n\t\thistoryDetail: () => [],\n\t\tagents: () => [],\n\t\tmodules: () => [],\n\t\tspeed: 10,\n\t\tallowedTypes: () => [],\n\t\tagentInfo: () => ({\n\t\t\tlist: [], // list 智能体列表 =1 单智能体 >1 多智能体\n\t\t\turl: '', // url 多智能体主机地址 单智能体为空 多智能体必传\n\t\t\theaders: {} // 多智能体请求头信息\n\t\t}),\n\t\ta2uiProps: () => ({}),\n\t\tmessageActions: () => {\n\t\t\treturn {\n\t\t\t\tuser: ['edit', 'delete', 'copy'],\n\t\t\t\tai: ['retry', 'like', 'dislike', 'copy']\n\t\t\t}\n\t\t},\n\t\thasRead: false\n\t}\n)\n\nprovide('components', props.components)\nprovide('avatar', props.avatar)\nprovide('placeholder', props.placeholder)\nprovide('unmatchText', props.unmatchText)\nprovide('title', props.title)\nprovide('layout', props.layout)\nprovide('beforeSend', props.beforeSend)\nprovide('scripts', ref(props.scripts || []))\nprovide('speed', props.speed)\nprovide('allowedTypes', props.allowedTypes)\nprovide('a2uiProps', props.a2uiProps)\nprovide('messageActions', props.messageActions)\nprovide('hasRead', props.hasRead)\nconst historyListComputed = computed(() => props.historyList)\nconst providedHistoryList = ref(props.historyList)\nwatch(\n\thistoryListComputed,\n\tnewVal => {\n\t\tprovidedHistoryList.value = newVal\n\t},\n\t{ immediate: true }\n)\nprovide('historyList', providedHistoryList)\nconst historyDetailComputed = computed(() => props.historyDetail)\nconst providedHistoryDetail = ref(props.historyDetail)\nwatch(\n\thistoryDetailComputed,\n\tnewVal => {\n\t\tprovidedHistoryDetail.value = newVal\n\t},\n\t{ immediate: true }\n)\nprovide('historyDetail', providedHistoryDetail)\nprovide('agents', props.agents)\nconst iModules = ref(props.modules)\nwatch(\n\t() => props.modules,\n\tnewVal => {\n\t\tiModules.value = newVal\n\t\t// console.log('modules === index.vue === 191', newVal)\n\t},\n\t{ immediate: true }\n)\nprovide('modules', iModules)\n\nconst iMultiAgentInfo = ref(props.agentInfo)\nwatch(\n\t() => props.agentInfo,\n\tnewVal => {\n\t\tiMultiAgentInfo.value = newVal\n\t},\n\t{ immediate: true, deep: true }\n)\nprovide('agentInfo', iMultiAgentInfo)\n\n// 新增:提供处理点赞事件的函数\nprovide('like', (index: number, isLike: boolean) => {\n\t// 这里可以实现具体的点赞逻辑\n\temits('like', index, isLike) // like\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\n// 新增:提供处理点赞事件的函数 dislike\nprovide('dislike', (index: number, isUnlike: boolean) => {\n\t// 这里可以实现具体的点赞逻辑\n\temits('dislike', index, isUnlike) // dislike\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\nprovide('send', (value: string, fileList?: any[]) => {\n\t// send\n\t// 这里可以实现具体的点赞逻辑\n\tsendVal.value = value\n\temits('send', value, fileList)\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\nprovide('sideBottom', () => {\n\t// console.log('sideBottom === 触底事件') // bottom\n\temits('side-bottom')\n})\n\nprovide('change', (id: string) => {\n\t// console.log('change === 激活事件', id) // change\n\temits('change', id)\n})\n\nprovide('historyRemove', (id: string) => {\n\t//remove\n\t// console.log('historyRemove === 删除事件', id)\n\temits('historyRemove', id)\n})\n\nprovide('openSideBar', (item: any, index: number) => {\n\temits('openSideBar', item, index)\n})\n\nprovide('share', (item: any, index: number) => {\n\temits('share', item, index)\n})\n\nprovide('withDraw', (item: any, index: number) => {\n\temits('withDraw', item, index)\n})\n\nprovide('afterSend', (content: any) => {\n\t// afterSend\n\t// console.log('afterSend === 发送消息事件', content)\n\temits('afterSend', content)\n})\n\nprovide('remove', (item: ChatMessage, index: number) => {\n\t// afterSend\n\t// console.log('remove === 详情删除', item, index)\n\temits('remove', item, index)\n})\n\nprovide('bottom', () => {\n\t// console.log('bottom === 详情触底')\n\temits('bottom')\n})\n\nprovide('stop', (item: ChatMessage, index: number) => {\n\t// console.log('stop === 用户终止事件')\n\temits('stop', item, index)\n})\n\nprovide('modelChange', (item: ModuleItem, index: number) => {\n\t// console.log('modelChange === 模型切换事件', item, index)\n\temits('modelChange', item, index)\n})\n\n// const rootRef = ref(null)\nconst deepSeekRef = ref<InstanceType<typeof DeepSeek> | null>(null)\n\nconst elementClass = computed(() => {\n\tconst classList = []\n\tif (props.mode) {\n\t\tclassList.push(`touchchat-${props.mode}`)\n\t}\n\treturn classList.join(' ')\n})\n\n// 修改elementStyle计算属性,移除对scripts.length的检查\nconst elementStyle = computed(() => {\n\tlet width = ''\n\tlet height = ''\n\n\tif (props.width) {\n\t\tif (typeof props.width === 'string') {\n\t\t\twidth = props.width ?? '100%'\n\t\t} else {\n\t\t\twidth = `${props.width}em`\n\t\t}\n\t}\n\n\tif (props.height) {\n\t\tif (typeof props.height === 'string') {\n\t\t\theight = props.height ?? '100%'\n\t\t} else {\n\t\t\theight = `${props.height}em`\n\t\t}\n\t}\n\n\treturn {\n\t\twidth,\n\t\theight\n\t}\n})\nconst updateInputMethod = ref<any>(null)\nprovide('setInput', updateInputMethod)\nconst setInput = (newValue: string) => {\n\tif (updateInputMethod.value) {\n\t\tupdateInputMethod.value(newValue)\n\t}\n}\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\tdeepSeekRef.value?.send(value, fileList, auto, type) //send\n\t},\n\tcloseExtend: () => {\n\t\tdeepSeekRef.value?.closeExtend() // closeExtend\n\t},\n\tcreate: () => {\n\t\tdeepSeekRef.value?.create() // reset\n\t},\n\tretry: (index: number) => {\n\t\tdeepSeekRef.value?.retry(index)\n\t},\n\tupdate: (index: number, message: object) => {\n\t\tdeepSeekRef.value?.update(index, message)\n\t},\n\tchangeChat: (index: number) => {\n\t\tdeepSeekRef.value?.changeChat(index)\n\t},\n\tclearChat: () => {\n\t\tdeepSeekRef.value?.clearChat()\n\t},\n\tsetInput\n})\n</script>\n"],"names":["DO_defineComponent","ref","provide","computed","watch","_createCommentVNode","_createVNode","DeepSeek","_withCtx","_renderSlot"],"mappings":"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"}
|