"use strict"; const common_vendor = require("../../common/vendor.js"); require("../../common/libraries/request.js"); const common_store_useWeAppAuthStore = require("../../common/store/useWeAppAuthStore.js"); require("../../common/store/useWorkStore.js"); const pages_ai_method = require("./method.js"); const pages_ai_model = require("./model.js"); const common_libraries_userUserLogin = require("../../common/libraries/userUserLogin.js"); require("../../gen/Apis.js"); require("../../common/libraries/setTabBar.js"); require("../../common/libraries/apiLoading.js"); require("../../common/libraries/upload.js"); if (!Array) { const _easycom_hs_empty2 = common_vendor.resolveComponent("hs-empty"); const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons"); const _easycom_hs_button2 = common_vendor.resolveComponent("hs-button"); (_easycom_hs_empty2 + _easycom_uni_icons2 + _easycom_hs_button2)(); } const _easycom_hs_empty = () => "../../components/hs-empty/hs-empty.js"; const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js"; const _easycom_hs_button = () => "../../components/hs-button/hs-button.js"; if (!Math) { (MyHeaderPrologue + _easycom_hs_empty + _easycom_uni_icons + _easycom_hs_button)(); } const MyHeaderPrologue = () => "./components/HeaderPrologue.js"; const _sfc_defineComponent = /* @__PURE__ */ common_vendor.defineComponent({ __name: "chat", setup(__props) { common_vendor.dayjs.extend(common_vendor.relativeTime); common_vendor.dayjs.locale("zh-cn"); const auth = common_store_useWeAppAuthStore.useWeAppAuthStore(); const userLoginStatus = common_vendor.ref(false); const inputMessage = common_vendor.ref(""); const isInputFocused = common_vendor.ref(false); const messages = common_vendor.ref([]); const loading = common_vendor.ref(false); const loadingText = common_vendor.ref("正在输入中..."); let socketTask = null; let isConnected = common_vendor.ref(false); const currentPage = common_vendor.ref(1); const pageSize = common_vendor.ref(10); const hasMore = common_vendor.ref(true); const isLoadingHistory = common_vendor.ref(false); const conversationId = common_vendor.ref(""); const currentOffset = common_vendor.ref(0); const quickQuestionsData = common_vendor.ref({}); const lastMessageContent = common_vendor.ref(""); const goToPageLogin = () => { common_vendor.index.navigateTo({ url: "/pages/login" }); }; const scrollToBottom = () => { common_vendor.nextTick$1(() => { common_vendor.index.pageScrollTo({ scrollTop: 999999, duration: 300 }); }); }; const getHistoryMessages = async (page = 1) => { var _a, _b, _c; const userPhone = (_b = (_a = auth.data) == null ? void 0 : _a.user) == null ? void 0 : _b.phone; if (!userPhone) { console.log("用户未登录,无法获取历史记录"); return; } if (isLoadingHistory.value) { return; } try { isLoadingHistory.value = true; const offset = (page - 1) * pageSize.value; currentOffset.value = offset; const response = await ((_c = pages_ai_method.method) == null ? void 0 : _c.customRequest("public/customer/init", { platform: "property", platform_user_id: userPhone, //userPhone limit: pageSize.value, offset })); if (response.statusCode === 200) { const result = response.data; let historyMessages = []; if (result.conversation && result.conversation.id) { conversationId.value = result.conversation.id; console.log("获取到会话ID:", conversationId.value); } else if (result.conversation_id) { conversationId.value = result.conversation_id; console.log("获取到会话ID:", conversationId.value); } else if (result.conversations && result.conversations.id) { conversationId.value = result.conversations.id; console.log("获取到会话ID:", conversationId.value); } if (result.messages && Array.isArray(result.messages)) { historyMessages = result.messages.map((item) => { const message = { role: item.sender_type === "customer" ? "user" : "ai", content: item.message || item.content || "", created_at: item.created_at || item.timestamp || new Date().toISOString() }; if (item.message_type) { message.message_type = item.message_type; } let imageUrlData = null; if (item.image_url && Array.isArray(item.image_url)) { imageUrlData = item.image_url; } else if (item.images && Array.isArray(item.images)) { imageUrlData = item.images; } else if (item.metadata && item.metadata.image_url && Array.isArray(item.metadata.image_url)) { imageUrlData = item.metadata.image_url; } if (imageUrlData) { message.image_url = imageUrlData; message.images = imageUrlData; } if (item.metadata) { message.metadata = item.metadata; } return message; }); console.log("从messages字段获取到历史记录:", historyMessages.length); } else if (result.data && Array.isArray(result.data)) { historyMessages = result.data.map((item) => { const message = { role: item.sender_type === "customer" ? "user" : "ai", content: item.message || item.content || "", created_at: item.created_at || item.timestamp || new Date().toISOString() }; if (item.message_type) { message.message_type = item.message_type; } let imageUrlData = null; if (item.image_url && Array.isArray(item.image_url)) { imageUrlData = item.image_url; } else if (item.images && Array.isArray(item.images)) { imageUrlData = item.images; } else if (item.metadata && item.metadata.image_url && Array.isArray(item.metadata.image_url)) { imageUrlData = item.metadata.image_url; } if (imageUrlData) { message.image_url = imageUrlData; message.images = imageUrlData; } if (item.metadata) { message.metadata = item.metadata; } return message; }); console.log("从data字段获取到历史记录:", historyMessages.length); } else if (result.list && Array.isArray(result.list)) { historyMessages = result.list.map((item) => { const message = { role: item.sender_type === "customer" ? "user" : "ai", content: item.message || item.content || "", created_at: item.created_at || item.timestamp || new Date().toISOString() }; if (item.message_type) { message.message_type = item.message_type; } let imageUrlData = null; if (item.image_url && Array.isArray(item.image_url)) { imageUrlData = item.image_url; } else if (item.images && Array.isArray(item.images)) { imageUrlData = item.images; } else if (item.metadata && item.metadata.image_url && Array.isArray(item.metadata.image_url)) { imageUrlData = item.metadata.image_url; } if (imageUrlData) { message.image_url = imageUrlData; message.images = imageUrlData; } if (item.metadata) { message.metadata = item.metadata; } return message; }); console.log("从list字段获取到历史记录:", historyMessages.length); } if (page === 1) { if (historyMessages.length > 0) { messages.value = historyMessages; console.log("第一页历史记录已加载,总共", historyMessages.length, "条消息"); } else { console.log("没有历史记录"); messages.value = []; } } else { if (historyMessages.length > 0) { setTimeout(() => { messages.value.unshift(...historyMessages); console.log( "加载更多历史记录,新增", historyMessages.length, "条消息,总共", messages.value.length, "条" ); }, 300); } } const totalItems = result.total || result.count || result.total_count || 0; hasMore.value = totalItems > messages.value.length; currentPage.value = page; if (page === 1) { setTimeout(() => { scrollToBottom(); }, 100); console.log("[Customer] 历史记录加载完成,开始建立WebSocket连接"); initWebSocket(); } } else { console.error("获取历史记录失败,状态码:", response.statusCode); } } catch (error) { console.error("获取历史记录异常:", error); } finally { isLoadingHistory.value = false; } }; common_vendor.onPullDownRefresh(async () => { if (isLoadingHistory.value || !hasMore.value) { console.log("正在加载或没有更多数据"); common_vendor.index.stopPullDownRefresh(); return; } console.log("触发下拉分页,加载更多历史记录"); const nextPage = currentPage.value + 1; try { await getHistoryMessages(nextPage); await new Promise((resolve) => setTimeout(resolve, 500)); } catch (error) { console.error("加载历史记录失败:", error); } finally { common_vendor.index.stopPullDownRefresh(); } }); const initWebSocket = () => { var _a; if (socketTask) { return; } try { const wsUrl = `${(_a = pages_ai_model.useModel) == null ? void 0 : _a.WS_BASE_URL}/ws/socket.io/?EIO=4&transport=websocket`; socketTask = common_vendor.index.connectSocket({ url: wsUrl, header: { "content-type": "application/json" } }); common_vendor.index.onSocketOpen((res) => { isConnected.value = true; const connectPacket = '40/customer,{"jwt":""}'; common_vendor.index.sendSocketMessage({ data: connectPacket, success: () => { if (conversationId.value) { setTimeout(() => { const joinMessage = `42/customer,["join_conversation",{"conversation_id":"${conversationId.value}"}]`; console.log("[Customer] 加入会话房间:", joinMessage); common_vendor.index.sendSocketMessage({ data: joinMessage, success: () => { console.log("[Customer] 成功加入会话房间"); }, fail: (error) => { console.error("[Customer] 加入会话房间失败:", error); } }); }, 200); } }, fail: (error) => { console.error("[Customer] Socket.IO连接包发送失败:", error); } }); }); common_vendor.index.onSocketError((error) => { console.error("[Customer] WebSocket error:", error); isConnected.value = false; socketTask = null; }); common_vendor.index.onSocketClose((res) => { console.log("[Customer] WebSocket disconnected", res); isConnected.value = false; socketTask = null; }); common_vendor.index.onSocketMessage((res) => { const data = res.data; if (typeof data === "string") { if (data.startsWith("42/customer,")) { const payload = data.substring("42/customer,".length); try { const parsedData = JSON.parse(payload); console.log("解析Socket.IO事件:", parsedData); handleSocketEvent(parsedData); } catch (e) { console.error("解析Socket.IO数据失败:", e, "原始数据:", payload); } } else if (data.startsWith("40/customer")) { console.log("Socket.IO连接确认"); } else if (data.startsWith("2")) { common_vendor.index.sendSocketMessage({ data: "3" }); } else if (data.startsWith("0")) { console.log("Socket.IO握手成功"); } else { try { const jsonData = JSON.parse(data); console.log("解析JSON消息:", jsonData); handleJsonMessage(jsonData); } catch (e) { console.log("非JSON格式的字符串消息:", data); } } } else if (typeof data === "object") { console.log("收到对象类型消息:", data); handleObjectMessage(data); } else { console.log("收到其他类型消息,类型:", typeof data); } }); } catch (error) { console.error("初始化Socket.IO异常:", error); isConnected.value = false; socketTask = null; } }; const handleSocketEvent = (parsedData) => { if (Array.isArray(parsedData) && parsedData.length >= 2) { const eventType = parsedData[0]; const eventData = parsedData[1]; console.log("[Customer] Socket.IO事件类型:", eventType, "事件数据:", eventData); if (eventType === "new_message") { processMessage(eventData); } else if (eventType === "join_conversation_response") { console.log("[Customer] Joined room:", eventData); } else if (eventType === "message") { processMessage(eventData); } else if (eventType === "typing") { processTypingIndicator(eventData); } else { console.log("[Customer] 未处理的Socket.IO事件类型:", eventType); } } }; const handleJsonMessage = (jsonData) => { console.log("[Customer] 处理JSON消息:", jsonData); if (jsonData.type === "message" || jsonData.event === "new_message") { processMessage(jsonData.data || jsonData); } else if (jsonData.type === "typing" || jsonData.event === "typing") { processTypingIndicator(jsonData.data || jsonData); } else if (jsonData.message || jsonData.content) { processMessage(jsonData); } else { console.log("[Customer] 未识别的JSON消息结构:", jsonData); } }; const handleObjectMessage = (objData) => { console.log("[Customer] 处理对象消息:", objData); if (objData.message || objData.content || objData.text) { processMessage(objData); } else if (objData.is_typing !== void 0) { processTypingIndicator(objData); } else { console.log("[Customer] 未识别的对象消息结构:", objData); } }; const processTypingIndicator = (typingData) => { if (typingData.is_typing && typingData.user_type === "staff") { loading.value = true; loadingText.value = "客服正在输入..."; } else { loading.value = false; } }; const processMessage = (messageData) => { if (messageData.sender_type === "customer" || messageData.role === "user") { return; } let messageContent = ""; if (typeof messageData === "string") { messageContent = messageData; } else { messageContent = messageData.message || messageData.content || messageData.text || messageData.body || "收到回复"; } if (typeof messageContent === "string") { messageContent = messageContent.replace(/↵/g, "\n").replace(/\\n/g, "\n"); } console.log("[Customer] 收到新消息内容:", messageContent); if (messageContent === lastMessageContent.value) { console.log("[Customer] 消息与HTTP返回的消息相同,跳过显示"); lastMessageContent.value = ""; return; } loading.value = false; const newMessage = { role: "ai", content: messageContent, created_at: messageData.created_at || messageData.timestamp || messageData.time || new Date().toISOString() }; if (messageData.suggested_questions && Array.isArray(messageData.suggested_questions) && messageData.suggested_questions.length > 0) { newMessage.quickQuestions = messageData.suggested_questions; } else if (messageData.quickQuestions && Array.isArray(messageData.quickQuestions) && messageData.quickQuestions.length > 0) { newMessage.quickQuestions = messageData.quickQuestions; } if (messageData.need_confirmation !== void 0) { newMessage.needConfirmation = messageData.need_confirmation; } if (messageData.confirmation_type !== void 0) { newMessage.confirmationType = messageData.confirmation_type; } messages.value.push(newMessage); scrollToBottom(); }; const handleQuickQuestion = (question) => { inputMessage.value = question; handleSendMessage(); }; const handleQuickFast = (name) => { handleQuickAction({ message: name }); }; const handleQuickAction = (action) => { inputMessage.value = action.message; handleSendMessage(); }; const handleConfirmation = (message, confirmation) => { if (message.selectedConfirmation !== void 0) { return; } message.selectedConfirmation = confirmation; setTimeout(() => { inputMessage.value = confirmation; handleSendMessage(); }, 300); }; const handleSendMessage = async () => { var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l; const message = inputMessage.value.trim(); const hasImages = ((_c = (_b = (_a = pages_ai_model.useModel) == null ? void 0 : _a.selectedImages) == null ? void 0 : _b.value) == null ? void 0 : _c.length) > 0; if (!message && !hasImages || loading.value) return; const userPhone = (_e = (_d = auth.data) == null ? void 0 : _d.user) == null ? void 0 : _e.phone; const projectId = (_g = (_f = auth.data) == null ? void 0 : _f.selected_house) == null ? void 0 : _g.asset_projects_id; const projectName = (_i = (_h = auth.data) == null ? void 0 : _h.selected_house) == null ? void 0 : _i.full_name; if (!userPhone || !projectId) { common_vendor.index.showToast({ title: "请先登录并绑定房屋", icon: "none" }); return; } if (!isConnected.value) { initWebSocket(); await new Promise((resolve) => setTimeout(resolve, 1e3)); } const uploadedImages = ((_k = (_j = pages_ai_model.useModel) == null ? void 0 : _j.selectedImages) == null ? void 0 : _k.value) || []; let messageType = "text"; if (hasImages && message) { messageType = "mixed"; } else if (hasImages && !message) { messageType = "image"; } const userMessage = { role: "user", content: message || "", // 纯图片时传空字符串 created_at: new Date().toISOString(), message_type: messageType, image_url: uploadedImages.length > 0 ? uploadedImages : void 0, images: uploadedImages.length > 0 ? uploadedImages : void 0 }; messages.value.push(userMessage); inputMessage.value = ""; pages_ai_model.useModel.selectedImages.value = []; scrollToBottom(); if (message && message.includes("查询")) { loadingText.value = "正在查询中请稍后..."; } else { loadingText.value = "正在输入中..."; } loading.value = true; try { const response = await ((_l = pages_ai_method.method) == null ? void 0 : _l.customRequest("public/chat", { platform: "property", message: message || "", // 纯图片时传空字符串 tenant_project_id: projectId, message_type: messageType, tenant_project_name: projectName || "", conversation_id: conversationId.value, image_url: uploadedImages.length > 0 ? uploadedImages : void 0 })); if (response.statusCode === 200) { const result = response.data; console.log("[Customer] HTTP接口响应数据:", result); let httpReplyMessage = null; let suggestedQuestions = []; let needConfirmation = false; let confirmationType = null; if (result.reply && typeof result.reply === "string") { httpReplyMessage = result.reply; suggestedQuestions = result.suggested_questions || []; needConfirmation = result.need_confirmation || false; confirmationType = result.confirmation_type || null; } else if (result.reply && result.reply.message) { httpReplyMessage = result.reply.message; suggestedQuestions = result.reply.suggested_questions || result.suggested_questions || []; needConfirmation = result.reply.need_confirmation || result.need_confirmation || false; confirmationType = result.reply.confirmation_type || result.confirmation_type || null; } else if (result.reply && result.reply.content) { httpReplyMessage = result.reply.content; suggestedQuestions = result.reply.suggested_questions || result.suggested_questions || []; needConfirmation = result.reply.need_confirmation || result.need_confirmation || false; confirmationType = result.reply.confirmation_type || result.confirmation_type || null; } else if (result.message) { httpReplyMessage = result.message; suggestedQuestions = result.suggested_questions || []; needConfirmation = result.need_confirmation || false; confirmationType = result.confirmation_type || null; } else if (result.content) { httpReplyMessage = result.content; suggestedQuestions = result.suggested_questions || []; needConfirmation = result.need_confirmation || false; confirmationType = result.confirmation_type || null; } else if (result.answer) { httpReplyMessage = result.answer; suggestedQuestions = result.suggested_questions || []; needConfirmation = result.need_confirmation || false; confirmationType = result.confirmation_type || null; } else if (result.response) { httpReplyMessage = result.response; suggestedQuestions = result.suggested_questions || []; needConfirmation = result.need_confirmation || false; confirmationType = result.confirmation_type || null; } else if (typeof result === "string") { httpReplyMessage = result; } if (httpReplyMessage) { console.log("[Customer] HTTP接口返回回答消息:", httpReplyMessage); console.log("[Customer] 建议问题:", suggestedQuestions); console.log("[Customer] 需要确认:", needConfirmation, "确认类型:", confirmationType); let formattedMessage = httpReplyMessage; if (typeof formattedMessage === "string") { formattedMessage = formattedMessage.replace(/↵/g, "\n").replace(/\\n/g, "\n"); } lastMessageContent.value = formattedMessage; loading.value = false; messages.value.push({ role: "ai", content: formattedMessage, created_at: new Date().toISOString(), quickQuestions: suggestedQuestions.length > 0 ? suggestedQuestions : void 0, needConfirmation, confirmationType }); scrollToBottom(); } else { console.log("[Customer] 消息发送成功,等待WebSocket回复"); } } else { throw new Error("请求失败"); } } catch (error) { console.error("发送消息失败:", error); common_vendor.index.showToast({ title: "发送失败,请稍后重试", icon: "none" }); messages.value.push({ role: "ai", content: "抱歉,网络连接出现问题,请稍后再试。" }); loading.value = false; scrollToBottom(); } }; common_vendor.onUnmounted(() => { if (socketTask || isConnected.value) { common_vendor.index.closeSocket(); socketTask = null; isConnected.value = false; console.log("页面卸载,WebSocket连接已关闭"); } }); common_vendor.onLoad(async (op) => { var _a, _b, _c; await ((_a = common_vendor.getCurrentInstance()) == null ? void 0 : _a.appContext.config.globalProperties.$onLaunched); if ((_b = common_libraries_userUserLogin.getUserLogin) == null ? void 0 : _b.getLoginStatus()) { userLoginStatus.value = true; quickQuestionsData.value = await ((_c = pages_ai_method.method) == null ? void 0 : _c.getQuickQuestions()); getHistoryMessages(1); if (op == null ? void 0 : op.message) { handleQuickAction(op); } } else { userLoginStatus.value = false; messages.value = []; } }); return (_ctx, _cache) => { var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B; return common_vendor.e({ a: userLoginStatus.value }, userLoginStatus.value ? common_vendor.e({ b: common_vendor.o(handleQuickFast), c: common_vendor.f(messages.value, (message, index, i0) => { var _a2, _b2; return common_vendor.e({ a: message.role === "ai" }, message.role === "ai" ? {} : {}, { b: message.image_url && message.image_url.length > 0 }, message.image_url && message.image_url.length > 0 ? { c: common_vendor.f(message.image_url, (image, imgIndex, i1) => { return { a: image, b: common_vendor.o(($event) => { var _a3; return (_a3 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _a3.previewImage(image, message.image_url); }, imgIndex), c: imgIndex }; }), d: message.image_url.length === 1 ? "widthFix" : "aspectFill", e: message.image_url.length === 1 ? 1 : "" } : message.images && message.images.length > 0 ? { g: common_vendor.f(message.images, (image, imgIndex, i1) => { return { a: image, b: common_vendor.o(($event) => { var _a3; return (_a3 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _a3.previewImage(image, message.images); }, imgIndex), c: imgIndex }; }), h: message.images.length === 1 ? "widthFix" : "aspectFill", i: message.images.length === 1 ? 1 : "" } : message.metadata && message.metadata.image_url && message.metadata.image_url.length > 0 ? { k: common_vendor.f(message.metadata.image_url, (image, imgIndex, i1) => { return { a: image, b: common_vendor.o(($event) => { var _a3; return (_a3 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _a3.previewImage(image, message.metadata.image_url); }, imgIndex), c: imgIndex }; }), l: message.metadata.image_url.length === 1 ? "widthFix" : "aspectFill", m: message.metadata.image_url.length === 1 ? 1 : "" } : {}, { f: message.images && message.images.length > 0, j: message.metadata && message.metadata.image_url && message.metadata.image_url.length > 0, n: message.content && message.content.trim() }, message.content && message.content.trim() ? { o: common_vendor.f((_a2 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _a2.formatMessageContent(message.content), (line, lineIndex, i1) => { return { a: common_vendor.t(line), b: "text-" + lineIndex }; }) } : {}, { p: message.quickQuestions && message.quickQuestions.length > 0 }, message.quickQuestions && message.quickQuestions.length > 0 ? { q: common_vendor.f(message.quickQuestions, (question, qIndex, i1) => { return { a: common_vendor.t(question), b: qIndex, c: common_vendor.o(($event) => handleQuickQuestion(question), qIndex) }; }) } : {}, { r: message.needConfirmation }, message.needConfirmation ? { s: message.selectedConfirmation === "是" ? 1 : "", t: message.selectedConfirmation !== void 0 ? 1 : "", v: common_vendor.o(($event) => handleConfirmation(message, "是"), index), w: message.selectedConfirmation === "否" ? 1 : "", x: message.selectedConfirmation !== void 0 ? 1 : "", y: common_vendor.o(($event) => handleConfirmation(message, "否"), index) } : {}, { z: message.created_at && !message.quickQuestions }, message.created_at && !message.quickQuestions ? common_vendor.e({ A: message.role === "ai" }, message.role === "ai" ? { B: common_vendor.o(($event) => { var _a3; return (_a3 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _a3.copyMessage(message.content); }, index) } : {}, { C: common_vendor.t((_b2 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _b2.formatTime(message.created_at)), D: message.role === "user" }, message.role === "user" ? { E: common_vendor.o(($event) => { var _a3; return (_a3 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _a3.copyMessage(message.content); }, index) } : {}) : {}, { F: index, G: `msg-${index}`, H: common_vendor.n(message.role === "user" ? "user-message" : "ai-message") }); }), d: !((_a = messages.value) == null ? void 0 : _a.length) }, !((_b = messages.value) == null ? void 0 : _b.length) ? { e: common_vendor.p({ height: "20vh" }) } : {}, { f: loading.value }, loading.value ? { g: common_vendor.t(loadingText.value) } : {}, { h: ((_e = (_d = (_c = common_vendor.unref(pages_ai_model.useModel)) == null ? void 0 : _c.selectedImages) == null ? void 0 : _d.value) == null ? void 0 : _e.length) > 0 }, ((_h = (_g = (_f = common_vendor.unref(pages_ai_model.useModel)) == null ? void 0 : _f.selectedImages) == null ? void 0 : _g.value) == null ? void 0 : _h.length) > 0 ? common_vendor.e({ i: common_vendor.f((_j = (_i = common_vendor.unref(pages_ai_model.useModel)) == null ? void 0 : _i.selectedImages) == null ? void 0 : _j.value, (image, index, i0) => { return { a: image, b: "25c36616-2-" + i0, c: common_vendor.o(($event) => { var _a2; return (_a2 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _a2.removeImage(index); }, index), d: index }; }), j: common_vendor.p({ type: "closeempty", size: "14", color: "#fff" }), k: ((_m = (_l = (_k = common_vendor.unref(pages_ai_model.useModel)) == null ? void 0 : _k.selectedImages) == null ? void 0 : _l.value) == null ? void 0 : _m.length) < 9 }, ((_p = (_o = (_n = common_vendor.unref(pages_ai_model.useModel)) == null ? void 0 : _n.selectedImages) == null ? void 0 : _o.value) == null ? void 0 : _p.length) < 9 ? { l: common_vendor.p({ type: "plus", size: "30", color: "#999" }), m: common_vendor.o(($event) => { var _a2; return (_a2 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _a2.chooseImage(); }) } : {}) : {}, { n: common_vendor.o(($event) => isInputFocused.value = true), o: common_vendor.o(($event) => isInputFocused.value = false), p: common_vendor.o(handleSendMessage), q: inputMessage.value, r: common_vendor.o(($event) => inputMessage.value = $event.detail.value), s: !inputMessage.value.trim() && !isInputFocused.value && ((_s = (_r = (_q = common_vendor.unref(pages_ai_model.useModel)) == null ? void 0 : _q.selectedImages) == null ? void 0 : _r.value) == null ? void 0 : _s.length) === 0 }, !inputMessage.value.trim() && !isInputFocused.value && ((_v = (_u = (_t = common_vendor.unref(pages_ai_model.useModel)) == null ? void 0 : _t.selectedImages) == null ? void 0 : _u.value) == null ? void 0 : _v.length) === 0 ? { t: common_vendor.p({ type: "camera", size: "24", color: "#666" }), v: common_vendor.o(($event) => { var _a2; return (_a2 = common_vendor.unref(pages_ai_method.method)) == null ? void 0 : _a2.chooseImage(); }) } : {}, { w: (inputMessage.value.trim() || isInputFocused.value || ((_y = (_x = (_w = common_vendor.unref(pages_ai_model.useModel)) == null ? void 0 : _w.selectedImages) == null ? void 0 : _x.value) == null ? void 0 : _y.length) > 0) && !loading.value }, (inputMessage.value.trim() || isInputFocused.value || ((_B = (_A = (_z = common_vendor.unref(pages_ai_model.useModel)) == null ? void 0 : _z.selectedImages) == null ? void 0 : _A.value) == null ? void 0 : _B.length) > 0) && !loading.value ? { x: common_vendor.p({ type: "paperplane-filled", size: "20", color: "#fff" }), y: common_vendor.o(handleSendMessage) } : {}, { z: loading.value }, loading.value ? { A: common_vendor.p({ type: "spinner-cycle", size: "20", color: "#ccc" }) } : {}) : { B: common_vendor.p({ height: "20vh", baseStyle: { paddingTop: "35%" }, text: "登录体验更多功能" }), C: common_vendor.o(goToPageLogin), D: common_vendor.p({ label: "去登录", size: "md", type: "primary" }) }); }; } }); _sfc_defineComponent.__runtimeHooks = 1; const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_defineComponent, [["__file", "/Users/zsq/Sources/github/2025property-pay/pay-customer/src/pages/ai/chat.vue"]]); wx.createPage(MiniProgramPage);