From 8c93cc9c9d8f2c2dfdd29a8065fbd689936ed954 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 15 Jun 2026 14:26:34 +0800 Subject: [PATCH] =?UTF-8?q?fix(build):=20=E4=BF=AE=E5=A4=8D=20v0.5.0-beta?= =?UTF-8?q?=20=E5=89=8D=E7=AB=AF=E7=BC=96=E8=AF=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 跑 npm run build 验收时发现 2 个前端项目编译失败(vue-tsc 报错),修复 4 处: frontend-h5: - src/components/chat/InputBox.vue:185 多余右括号 computed(() => inputText.value.length)) -> computed(() => inputText.value.length) - src/components/chat/MessageList.vue:134 pollMessages 调用签名错 pollMessages(convId, afterMessageId) -> pollMessages(afterMessageId) (api/message.ts:71 签名只接 1 个 afterMessageId 参数,endpoint 走 current 不需要 convId) frontend-agent: - src/components/chat/InputBox.vue 4 处错 L91/234/292 conversationStore.loading 不存在(store 暴露的是 loadingMessages) -> conversationStore.loadingMessages L136 import onUnmounted 死引用,移除 components.d.ts: 触发 unplugin-vue-components 重新生成 6 行(新组件类型) 验证: - frontend-h5: vue-tsc 0 错,417 modules transformed, dist/ 生成 - frontend-agent: vue-tsc 0 错,1750 modules transformed, dist/ 生成 不影响业务逻辑,纯 build fix。 --- frontend-agent/src/components/chat/InputBox.vue | 10 +++++----- frontend-h5/components.d.ts | 6 ++++++ frontend-h5/src/components/chat/InputBox.vue | 2 +- frontend-h5/src/components/chat/MessageList.vue | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/frontend-agent/src/components/chat/InputBox.vue b/frontend-agent/src/components/chat/InputBox.vue index dd35309..e6bcded 100644 --- a/frontend-agent/src/components/chat/InputBox.vue +++ b/frontend-agent/src/components/chat/InputBox.vue @@ -88,7 +88,7 @@ :disabled="!canSend" @click="handleSend" > - + @@ -133,7 +133,7 @@ * 底部显示字数统计,右下角发送按钮 * Enter发送,Shift+Enter换行 */ -import { ref, computed, watch, nextTick, onUnmounted } from 'vue' +import { ref, computed, watch, nextTick } from 'vue' import { ElMessage } from 'element-plus' import html2canvas from 'html2canvas-pro' import { useConversationStore } from '@/stores/conversation' @@ -227,11 +227,11 @@ const commonEmojis = [ ] /** 当前字符数 */ -const charCount = computed(() => inputText.value.length)) +const charCount = computed(() => inputText.value.length) /** 是否可以发送 */ const canSend = computed(() => { - return inputText.value.trim().length > 0 && !conversationStore.loading && charCount.value <= maxChars + return inputText.value.trim().length > 0 && !conversationStore.loadingMessages && charCount.value <= maxChars }) /** 已在参与者列表中的ID */ @@ -289,7 +289,7 @@ function handleKeydown(event: KeyboardEvent): void { // ============================================================================ async function handleSend(): Promise { const content = inputText.value.trim() - if (!content || conversationStore.loading) return + if (!content || conversationStore.loadingMessages) return try { emit('send', content) diff --git a/frontend-h5/components.d.ts b/frontend-h5/components.d.ts index b3a4353..8a8c75e 100644 --- a/frontend-h5/components.d.ts +++ b/frontend-h5/components.d.ts @@ -8,12 +8,16 @@ export {} declare module 'vue' { export interface GlobalComponents { AiHelperPanel: typeof import('./src/components/assistant/AiHelperPanel.vue')['default'] + ApprovalCardModal: typeof import('./src/components/chat/ApprovalCardModal.vue')['default'] ApprovalLinks: typeof import('./src/components/assistant/ApprovalLinks.vue')['default'] CallAgentModal: typeof import('./src/components/chat/CallAgentModal.vue')['default'] ChatPanel: typeof import('./src/components/chat/ChatPanel.vue')['default'] ComingSoon: typeof import('./src/components/assistant/ComingSoon.vue')['default'] InputBar: typeof import('./src/components/chat/InputBar.vue')['default'] + InputBox: typeof import('./src/components/chat/InputBox.vue')['default'] MessageBubble: typeof import('./src/components/chat/MessageBubble.vue')['default'] + MessageItem: typeof import('./src/components/chat/MessageItem.vue')['default'] + MessageList: typeof import('./src/components/chat/MessageList.vue')['default'] ParticipantList: typeof import('./src/components/chat/ParticipantList.vue')['default'] RightPanel: typeof import('./src/components/assistant/RightPanel.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] @@ -27,5 +31,7 @@ declare module 'vue' { VanConfigProvider: typeof import('vant/es')['ConfigProvider'] VanEmpty: typeof import('vant/es')['Empty'] VanField: typeof import('vant/es')['Field'] + VanIcon: typeof import('vant/es')['Icon'] + VanPopup: typeof import('vant/es')['Popup'] } } diff --git a/frontend-h5/src/components/chat/InputBox.vue b/frontend-h5/src/components/chat/InputBox.vue index ec30ee6..d7092bc 100644 --- a/frontend-h5/src/components/chat/InputBox.vue +++ b/frontend-h5/src/components/chat/InputBox.vue @@ -182,7 +182,7 @@ const showScreenshotEditor = ref(false) let screenshotCanvas: HTMLCanvasElement | null = null /** 当前字符数 */ -const charCount = computed(() => inputText.value.length)) +const charCount = computed(() => inputText.value.length) /** 是否可以发送消息 */ const canSend = computed(() => { diff --git a/frontend-h5/src/components/chat/MessageList.vue b/frontend-h5/src/components/chat/MessageList.vue index 60574e2..c618dde 100644 --- a/frontend-h5/src/components/chat/MessageList.vue +++ b/frontend-h5/src/components/chat/MessageList.vue @@ -131,7 +131,7 @@ async function fetchNewMessages(): Promise { const lastMsg = messages.value[messages.value.length - 1] const afterMessageId = lastMsg?.message_id - const newMessages = await pollMessages(convId, afterMessageId) + const newMessages = await pollMessages(afterMessageId) if (newMessages && newMessages.length > 0) { // 添加新消息到列表