@touchvue/chat 1.0.0-beta.2 → 1.0.0-beta.4

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.
Files changed (191) hide show
  1. package/es/package.json.mjs +1 -1
  2. package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue2.mjs +3 -3
  3. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue2.mjs.map +1 -0
  4. package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue2.mjs +3 -1
  5. package/es/packages/components/touchchat/component/AiRobot/face.vue2.mjs.map +1 -0
  6. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs.map +1 -0
  7. package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue2.mjs +9 -6
  8. package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.mjs.map +1 -0
  9. package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue2.mjs +1 -1
  10. package/es/packages/components/touchchat/component/AiRobot/start.vue2.mjs.map +1 -0
  11. package/es/packages/components/touchchat/component/CardView.vue2.mjs.map +1 -1
  12. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs +2 -2
  13. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs.map +1 -1
  14. package/es/packages/components/touchchat/img/aiAvatar.png.mjs +4 -0
  15. package/es/packages/components/touchchat/img/aiAvatar.png.mjs.map +1 -0
  16. package/es/packages/components/touchchat/img/icon.png.mjs.map +1 -0
  17. package/es/packages/components/touchchat/img/userAvatar.png.mjs +4 -0
  18. package/es/packages/components/touchchat/img/userAvatar.png.mjs.map +1 -0
  19. package/es/packages/components/touchchat/index.mjs +1 -1
  20. package/es/packages/components/touchchat/index.mjs.map +1 -1
  21. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs +115 -199
  22. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs.map +1 -1
  23. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +43 -137
  24. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
  25. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs +90 -127
  26. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs.map +1 -1
  27. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs +17 -39
  28. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs.map +1 -1
  29. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs +41 -181
  30. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs.map +1 -1
  31. package/es/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue2.mjs +1 -1
  32. package/es/packages/components/touchchat/src/AiChat/Scene.vue2.mjs.map +1 -0
  33. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue.mjs +6 -0
  34. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue.mjs.map +1 -0
  35. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs +25 -0
  36. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs.map +1 -0
  37. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs +618 -390
  38. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
  39. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs +200 -89
  40. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs.map +1 -1
  41. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs +42 -37
  42. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs.map +1 -1
  43. package/es/packages/components/touchchat/src/index.vue2.mjs +54 -29
  44. package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
  45. package/lib/package.json.js +1 -1
  46. package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue2.js +3 -3
  47. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue2.js.map +1 -0
  48. package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue2.js +3 -1
  49. package/lib/packages/components/touchchat/component/AiRobot/face.vue2.js.map +1 -0
  50. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js.map +1 -0
  51. package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue2.js +8 -5
  52. package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.js.map +1 -0
  53. package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue2.js +1 -1
  54. package/lib/packages/components/touchchat/component/AiRobot/start.vue2.js.map +1 -0
  55. package/lib/packages/components/touchchat/component/CardView.vue2.js.map +1 -1
  56. package/lib/packages/components/touchchat/component/HelloChat.vue2.js +2 -2
  57. package/lib/packages/components/touchchat/component/HelloChat.vue2.js.map +1 -1
  58. package/lib/packages/components/touchchat/img/aiAvatar.png.js +8 -0
  59. package/lib/packages/components/touchchat/img/aiAvatar.png.js.map +1 -0
  60. package/lib/packages/components/touchchat/img/icon.png.js.map +1 -0
  61. package/lib/packages/components/touchchat/img/userAvatar.png.js +8 -0
  62. package/lib/packages/components/touchchat/img/userAvatar.png.js.map +1 -0
  63. package/lib/packages/components/touchchat/index.js +1 -1
  64. package/lib/packages/components/touchchat/index.js.map +1 -1
  65. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js +107 -191
  66. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js.map +1 -1
  67. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +43 -137
  68. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
  69. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js +89 -126
  70. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js.map +1 -1
  71. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js +16 -38
  72. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js.map +1 -1
  73. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js +41 -181
  74. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js.map +1 -1
  75. package/lib/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue2.js +1 -1
  76. package/lib/packages/components/touchchat/src/AiChat/Scene.vue2.js.map +1 -0
  77. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue.js +10 -0
  78. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue.js.map +1 -0
  79. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js +29 -0
  80. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js.map +1 -0
  81. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js +615 -387
  82. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
  83. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js +199 -88
  84. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js.map +1 -1
  85. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js +41 -36
  86. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js.map +1 -1
  87. package/lib/packages/components/touchchat/src/index.vue2.js +53 -28
  88. package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
  89. package/package.json +81 -81
  90. package/theme/components/index.css +1447 -2004
  91. package/theme/img/aiArrow.png +0 -0
  92. package/theme/img/loading.png +0 -0
  93. package/theme/img/logo.png +0 -0
  94. package/theme/img/userArrow.png +0 -0
  95. package/theme/index.css +1448 -2005
  96. package/theme/skin/default.css +1448 -2005
  97. package/es/packages/components/touchchat/img/AI.png.mjs +0 -4
  98. package/es/packages/components/touchchat/img/AI.png.mjs.map +0 -1
  99. package/es/packages/components/touchchat/img/asir.png.mjs +0 -4
  100. package/es/packages/components/touchchat/img/asir.png.mjs.map +0 -1
  101. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue.mjs +0 -6
  102. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue.mjs.map +0 -1
  103. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.mjs +0 -620
  104. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.mjs.map +0 -1
  105. package/es/packages/components/touchchat/src/AiRobot/Content.vue.mjs +0 -6
  106. package/es/packages/components/touchchat/src/AiRobot/Content.vue.mjs.map +0 -1
  107. package/es/packages/components/touchchat/src/AiRobot/Content.vue2.mjs +0 -224
  108. package/es/packages/components/touchchat/src/AiRobot/Content.vue2.mjs.map +0 -1
  109. package/es/packages/components/touchchat/src/AiRobot/Header.vue.mjs +0 -6
  110. package/es/packages/components/touchchat/src/AiRobot/Header.vue.mjs.map +0 -1
  111. package/es/packages/components/touchchat/src/AiRobot/Header.vue2.mjs +0 -188
  112. package/es/packages/components/touchchat/src/AiRobot/Header.vue2.mjs.map +0 -1
  113. package/es/packages/components/touchchat/src/AiRobot/Input.vue.mjs +0 -6
  114. package/es/packages/components/touchchat/src/AiRobot/Input.vue.mjs.map +0 -1
  115. package/es/packages/components/touchchat/src/AiRobot/Input.vue2.mjs +0 -69
  116. package/es/packages/components/touchchat/src/AiRobot/Input.vue2.mjs.map +0 -1
  117. package/es/packages/components/touchchat/src/AiRobot/Scene.vue2.mjs.map +0 -1
  118. package/es/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.mjs.map +0 -1
  119. package/es/packages/components/touchchat/src/AiRobot/component/face.vue2.mjs.map +0 -1
  120. package/es/packages/components/touchchat/src/AiRobot/component/letter.vue2.mjs.map +0 -1
  121. package/es/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.mjs.map +0 -1
  122. package/es/packages/components/touchchat/src/AiRobot/component/start.vue2.mjs.map +0 -1
  123. package/es/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.mjs +0 -4
  124. package/es/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.mjs.map +0 -1
  125. package/es/packages/components/touchchat/src/AiRobot/img/icon.png.mjs.map +0 -1
  126. package/es/packages/components/touchchat/src/AiRobot/index.vue.mjs +0 -6
  127. package/es/packages/components/touchchat/src/AiRobot/index.vue.mjs.map +0 -1
  128. package/es/packages/components/touchchat/src/AiRobot/index.vue2.mjs +0 -67
  129. package/es/packages/components/touchchat/src/AiRobot/index.vue2.mjs.map +0 -1
  130. package/lib/packages/components/touchchat/img/AI.png.js +0 -8
  131. package/lib/packages/components/touchchat/img/AI.png.js.map +0 -1
  132. package/lib/packages/components/touchchat/img/asir.png.js +0 -8
  133. package/lib/packages/components/touchchat/img/asir.png.js.map +0 -1
  134. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue.js +0 -10
  135. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue.js.map +0 -1
  136. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.js +0 -624
  137. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.js.map +0 -1
  138. package/lib/packages/components/touchchat/src/AiRobot/Content.vue.js +0 -10
  139. package/lib/packages/components/touchchat/src/AiRobot/Content.vue.js.map +0 -1
  140. package/lib/packages/components/touchchat/src/AiRobot/Content.vue2.js +0 -228
  141. package/lib/packages/components/touchchat/src/AiRobot/Content.vue2.js.map +0 -1
  142. package/lib/packages/components/touchchat/src/AiRobot/Header.vue.js +0 -10
  143. package/lib/packages/components/touchchat/src/AiRobot/Header.vue.js.map +0 -1
  144. package/lib/packages/components/touchchat/src/AiRobot/Header.vue2.js +0 -192
  145. package/lib/packages/components/touchchat/src/AiRobot/Header.vue2.js.map +0 -1
  146. package/lib/packages/components/touchchat/src/AiRobot/Input.vue.js +0 -10
  147. package/lib/packages/components/touchchat/src/AiRobot/Input.vue.js.map +0 -1
  148. package/lib/packages/components/touchchat/src/AiRobot/Input.vue2.js +0 -73
  149. package/lib/packages/components/touchchat/src/AiRobot/Input.vue2.js.map +0 -1
  150. package/lib/packages/components/touchchat/src/AiRobot/Scene.vue2.js.map +0 -1
  151. package/lib/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.js.map +0 -1
  152. package/lib/packages/components/touchchat/src/AiRobot/component/face.vue2.js.map +0 -1
  153. package/lib/packages/components/touchchat/src/AiRobot/component/letter.vue2.js.map +0 -1
  154. package/lib/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.js.map +0 -1
  155. package/lib/packages/components/touchchat/src/AiRobot/component/start.vue2.js.map +0 -1
  156. package/lib/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.js +0 -8
  157. package/lib/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.js.map +0 -1
  158. package/lib/packages/components/touchchat/src/AiRobot/img/icon.png.js.map +0 -1
  159. package/lib/packages/components/touchchat/src/AiRobot/index.vue.js +0 -10
  160. package/lib/packages/components/touchchat/src/AiRobot/index.vue.js.map +0 -1
  161. package/lib/packages/components/touchchat/src/AiRobot/index.vue2.js +0 -71
  162. package/lib/packages/components/touchchat/src/AiRobot/index.vue2.js.map +0 -1
  163. package/theme/img/default.png +0 -0
  164. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.mjs +0 -0
  165. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.mjs.map +0 -0
  166. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.mjs +0 -0
  167. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.mjs.map +0 -0
  168. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.mjs +0 -0
  169. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.mjs.map +0 -0
  170. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue2.mjs +0 -0
  171. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.mjs +0 -0
  172. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.mjs.map +0 -0
  173. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.mjs +0 -0
  174. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.mjs.map +0 -0
  175. /package/es/packages/components/touchchat/{src/AiRobot/img → img}/icon.png.mjs +0 -0
  176. /package/es/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue.mjs +0 -0
  177. /package/es/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue.mjs.map +0 -0
  178. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.js +0 -0
  179. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.js.map +0 -0
  180. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.js +0 -0
  181. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.js.map +0 -0
  182. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.js +0 -0
  183. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.js.map +0 -0
  184. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue2.js +0 -0
  185. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.js +0 -0
  186. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.js.map +0 -0
  187. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.js +0 -0
  188. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.js.map +0 -0
  189. /package/lib/packages/components/touchchat/{src/AiRobot/img → img}/icon.png.js +0 -0
  190. /package/lib/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue.js +0 -0
  191. /package/lib/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue.js.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatPanel.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiRobot/ChatPanel.vue"],"sourcesContent":["<script lang=\"ts\">\nconst STORAGE_KEY = 'aiRobotChatHistory'\n</script>\n<template>\n <div\n v-show=\"!isChatPanelOpen\"\n :class=\"!isNotHeader ? 'ai-robot-container' : 'ai-robot-container-not-header'\"\n >\n <!-- 聊天消息区域 -->\n <div class=\"chat-container\">\n <!-- @history=\"handleHistory\" -->\n <Header\n v-if=\"!isNotHeader\"\n :chat-history=\"chatHistory\"\n :active-chat=\"activeChat\"\n @select-chat=\"handleSelectChat\"\n @close=\"toggleChatPanel\"\n @new-chat=\"handleNewChat\"\n @delete-chat=\"handleDeleteChat\"\n @rename-chat=\"handleRenameChat\"\n />\n <div v-if=\"!messages.length\">\n <slot name=\"welcome\">\n <HelloChat @handle-item-click=\"handleItemClick\"></HelloChat>\n </slot>\n </div>\n <Content\n :messages=\"messages\"\n @complete=\"complete\"\n @copy=\"handleMessageAction\"\n @retry=\"handleMessageAction\"\n @like=\"handleMessageAction\"\n @dislike=\"handleMessageAction\"\n @edit=\"handleMessageAction\"\n @delete=\"handleMessageAction\"\n @save-edit=\"handleSaveEdit\"\n @cancel-edit=\"handleCancelEdit\"\n >\n <template #aiAvatar>\n <slot name=\"aiAvatar\" />\n </template>\n <template #userAvatar>\n <slot name=\"userAvatar\" />\n </template>\n </Content>\n <div class=\"bottom-area\">\n <!-- 场景按钮 -->\n <Scene\n v-if=\"!isNotHeader\"\n :scripts=\"scripts\"\n :btn-disable=\"btnDisable\"\n :selected-script-name=\"selectedScriptName\"\n @scene-click=\"sceneClick\"\n />\n <!-- 输入区域 -->\n <Input\n v-model:input-message=\"inputMessage\"\n :btn-disable=\"btnDisable\"\n @send-message=\"sendMessage\"\n >\n <template #input=\"{ disabled }\">\n <slot name=\"input\" :disabled=\"disabled\" />\n </template>\n </Input>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { showToast } from '../../utils/tools';\nimport { ref, onMounted, provide, getCurrentInstance, watch, inject } from 'vue';\nimport Header from './Header.vue';\nimport Content from './Content.vue';\nimport Scene from './Scene.vue';\nimport Input from './Input.vue';\nimport start from './component/start.vue';\nimport face from './component/face.vue';\nimport meterialPrepare from './component/meterialPrepare.vue';\nimport HelloChat from './component/HelloChat.vue';\n\n// 定义与 HistoryList.vue 中匹配的类型\ninterface ChatMessage {\n id: string; // 添加 id 属性\n chatId?: string;\n user: string;\n type: 'user' | 'ai'; // 将 string 改为 'user' | 'ai'\n content: string;\n component?: string;\n isShowAvatar?: boolean;\n avatar?: string;\n isChating?: boolean;\n thinkContent?: string;\n reasoningContent?: string;\n isLiked?: boolean;\n isDisliked?: boolean;\n isEditing?: boolean;\n editContent?: string;\n}\n\ninterface HistoryItem {\n id: string;\n title: string;\n time: Date;\n messages: ChatMessage[]; // 将 Message[] 改为 ChatMessage[]\n}\n\nconst props = defineProps({\n isChatPanelOpen: {\n type: Boolean,\n required: true,\n },\n scripts: {\n type: Array<{\n name: string;\n content: Array<{\n user: string;\n data?: string;\n subData?: Array<string>;\n type?: string;\n }>;\n }>,\n default: () => [],\n },\n});\n\nconst emit = defineEmits(['toggleChatPanel']);\n\n// 定义 helloChatInfo 的类型\ninterface HelloChatInfo {\n info1: Script[];\n info2: Script[];\n info3: Script[];\n}\n\ninterface ScriptContent {\n user: string;\n data?: string;\n subData?: string[];\n type?: string;\n}\n\ninterface Script {\n name: string;\n id?: string;\n subTitle?: string;\n content: ScriptContent[];\n}\n\nconst robotUnmatched = inject('robotUnmatched', '');\nconst helloChatList: Script[] = inject<Script[]>('helloChatList', []);\n// 显式指定变量类型为 HelloChatInfo\nconst helloChatInfo: HelloChatInfo = inject<HelloChatInfo>('helloChatInfo', {\n info1: [] as Script[],\n info2: [] as Script[],\n info3: [] as Script[],\n});\nconst isNotHeader = inject('isNotHeader', false);\n\nconst componentMap = {\n start,\n face,\n meterialPrepare,\n};\n\n// 消息类型定义\ninterface Message {\n id: string;\n type: 'user' | 'ai';\n component?: string;\n time?: string;\n content?: string;\n isLiked?: boolean;\n isDisliked?: boolean;\n isEditing?: boolean;\n editContent?: string;\n}\n\n// 状态定义\nconst inputMessage = ref('');\nconst messages = ref<ChatMessage[]>([]);\nconst btnDisable = ref(false);\nconst selectedScriptName = ref('');\nconst currentScriptIndex = ref(0);\n// 添加聊天历史记录状态\nconst chatHistory = ref<HistoryItem[]>([]);\nconst activeChat = ref('');\n// 状态定义\nconst isSwitchingHistory = ref(false);\nconst sendMessageType = ref('');\n\n// 选择历史记录 没有文字流显示\nprovide('isSwitchingHistory', isSwitchingHistory);\n\n// 处理选择聊天事件\nconst handleSelectChat = (chatId: string) => {\n activeChat.value = chatId;\n isSwitchingHistory.value = false;\n\n const selectedChat = chatHistory.value.find(chat => chat.id === chatId);\n\n if (selectedChat) {\n isSwitchingHistory.value = true;\n messages.value = [...selectedChat.messages];\n // 添加延迟以确保消息渲染完成\n setTimeout(() => {\n isSwitchingHistory.value = false;\n }, 1000);\n } else {\n console.error(`未找到ID为${chatId}的聊天记录`);\n }\n};\n\n// 本地存储相关\n\n\n// 从本地存储加载聊天历史\nconst loadFromLocalStorage = () => {\n const savedHistory = localStorage.getItem(STORAGE_KEY);\n if (savedHistory) {\n try {\n // 解析时将字符串日期转换为Date对象\n const parsedHistory = JSON.parse(savedHistory, (key, value) => {\n if (key === 'time' && typeof value === 'string') {\n return new Date(value);\n }\n return value;\n });\n chatHistory.value = parsedHistory;\n if (chatHistory.value.length > 0) {\n // 加载最近的对话\n activeChat.value = chatHistory.value[0].id;\n messages.value = chatHistory.value[0].messages;\n }\n } catch (error) {\n console.error('Failed to load chat history:', error);\n // 加载失败时初始化一个新对话\n createNewChat();\n }\n } else {\n // 没有历史记录时初始化一个新对话\n createNewChat();\n }\n};\n\n// 保存聊天历史到本地存储\nconst saveToLocalStorage = () => {\n try {\n // 将Date对象转换为字符串\n const historyToSave = JSON.stringify(chatHistory.value, (key, value) => {\n if (key === 'time') {\n // 检查value是否是有效的Date对象\n if (value instanceof Date && !isNaN(value.getTime())) {\n return value.toISOString();\n }\n // 如果不是有效Date对象,返回当前时间作为默认值\n return new Date().toISOString();\n }\n return value;\n });\n localStorage.setItem(STORAGE_KEY, historyToSave);\n } catch (error) {\n console.error('Failed to save chat history:', error);\n }\n};\n\n// 创建新对话\nconst createNewChat = (title: string = '新对话') => {\n selectedScriptName.value = '';\n const newChat: HistoryItem = {\n id: Date.now().toString(),\n title,\n time: new Date(),\n messages: [],\n };\n\n chatHistory.value.unshift(newChat);\n activeChat.value = newChat.id;\n messages.value = newChat.messages;\n saveToLocalStorage();\n};\n\n// 更新当前对话\nconst updateCurrentChat = () => {\n const currentChat = chatHistory.value.find(item => item.id === activeChat.value);\n if (currentChat) {\n currentChat.messages = [...messages.value];\n // currentChat.time = new Date();\n // 如果是第一条消息且是系统消息,尝试用用户的第一条消息作为标题\n if (currentChat.messages.length > 1 && currentChat.title === '新对话') {\n const userMessage = currentChat.messages.find(msg => msg.type === 'user');\n if (userMessage && userMessage.content) {\n currentChat.title =\n userMessage.content.substring(0, 20) + (userMessage.content.length > 20 ? '...' : '');\n }\n }\n saveToLocalStorage();\n }\n};\n\n// 完成函数修改\nconst complete = () => {\n btnDisable.value = false;\n updateCurrentChat(); // 完成后保存对话\n};\n\nconst handleDeleteChat = (id: string) => {\n // 查找要删除的聊天索引\n const index = chatHistory.value.findIndex(chat => chat.id === id);\n if (index !== -1) {\n // 删除该聊天\n chatHistory.value.splice(index, 1);\n // 如果删除的是当前活跃的聊天\n if (id === activeChat.value) {\n if (chatHistory.value.length > 0) {\n // 切换到最近的聊天\n activeChat.value = chatHistory.value[0].id;\n messages.value = [...chatHistory.value[0].messages];\n } else {\n // 如果没有聊天了,创建一个新的\n createNewChat();\n }\n }\n // 保存更改\n saveToLocalStorage();\n }\n};\n\n// 处理重命名聊天事件\nconst handleRenameChat = (data: { id: string; newTitle: string }) => {\n const { id, newTitle } = data;\n // 查找要重命名的聊天\n const chat = chatHistory.value.find(item => item.id === id);\n if (chat) {\n // 更新标题\n chat.title = newTitle;\n // 更新时间为当前时间\n chat.time = new Date();\n // 保存更改\n saveToLocalStorage();\n }\n};\n\n// 添加保存编辑处理函数\nconst handleSaveEdit = (index: number, content: string) => {\n const message = messages.value[index];\n if (message && message.type === 'user') {\n // 更新消息内容\n message.content = content;\n message.isEditing = false;\n // 删除临时编辑内容\n delete message.editContent;\n // 更新消息数组\n messages.value.splice(index, 1, { ...message });\n // 保存到本地存储\n updateCurrentChat();\n // 显示成功提示\n showToast('编辑成功');\n\n // --- 修正:删除用户消息后的所有连续AI回复 --- //\n // 查找用户消息后的所有AI回复并删除\n let aiMessagesCount = 0;\n for (let i = index + 1; i < messages.value.length; i++) {\n if (messages.value[i].type === 'ai') {\n aiMessagesCount++;\n } else {\n // 遇到非AI消息则停止删除\n break;\n }\n }\n // 删除找到的所有AI消息\n if (aiMessagesCount > 0) {\n messages.value.splice(index + 1, aiMessagesCount);\n }\n // --- 修正:在用户消息后插入新的AI回复 --- //\n // 触发AI重新回复\n setTimeout(() => {\n // 使用更新后的用户消息内容生成新的AI回复\n const result = findMatchingScriptContent(content, sendMessageType.value);\n\n if (result && result.responses.length > 0) {\n currentScriptIndex.value = result.nextIndex;\n // 存储新AI消息的数组,将类型改为 ChatMessage[]\n const newAiMessages: ChatMessage[] = [];\n\n result.responses.forEach((response, idx) => {\n const pauseMarker = Array.isArray(response.data) ? '\\u200B'.repeat(20) : '';\n const responseContent = Array.isArray(response.data)\n ? response.data.join(pauseMarker)\n : response.data;\n\n const newAiMsgId = `ai-${Date.now()}-${idx}`;\n newAiMessages.push({\n id: newAiMsgId,\n type: 'ai',\n user: 'ai', // 添加 user 属性\n component: response.type || undefined,\n content: responseContent || '',\n });\n });\n\n // 在用户消息后插入新的AI消息\n messages.value.splice(index + 1, 0, ...newAiMessages);\n } else {\n const newAiMsgId = `ai-${Date.now()}`;\n // 在用户消息后插入默认AI回复\n messages.value.splice(index + 1, 0, {\n id: newAiMsgId,\n type: 'ai',\n user: 'ai', // 添加 user 属性\n content: robotUnmatched,\n });\n }\n // 保存聊天记录\n updateCurrentChat();\n }, 500);\n // --- 插入新AI回复结束 --- //\n }\n};\n\n// 添加取消编辑处理函数\nconst handleCancelEdit = (index: number) => {\n const message = messages.value[index];\n if (message && message.type === 'user') {\n // 恢复原始内容\n message.content = message.editContent || '';\n message.isEditing = false;\n // 删除临时编辑内容\n delete message.editContent;\n // 更新消息数组\n messages.value.splice(index, 1, { ...message });\n // 显示成功提示\n showToast('编辑已取消');\n }\n};\n\n// 挂载时加载历史记录\nonMounted(() => {\n if (!isNotHeader) {\n loadFromLocalStorage();\n }\n if (isNotHeader && props.scripts && props.scripts.length > 0) {\n // 检查scripts[0]的第一条消息是否为AI消息\n const firstScript = props.scripts[0];\n if (firstScript && firstScript.content && firstScript.content.length > 0) {\n const firstMessage = firstScript.content[0];\n if (firstMessage.user === 'ai') {\n // 直接展示AI消息\n selectedScriptName.value = firstScript.name;\n const aiMsgId = `ai-${Date.now()}`;\n messages.value.push({\n id: aiMsgId,\n type: 'ai',\n user: 'ai', // 添加 user 属性\n component: firstMessage.type || undefined,\n content: firstMessage.data || '',\n });\n updateCurrentChat();\n\n // 初始化脚本索引,确保后续用户回复能正确匹配\n // currentScriptIndex.value = 1; // 假设AI消息后是下一个用户输入点\n } else {\n // 原有逻辑:发送第一条用户消息\n sceneClick(firstScript);\n }\n }\n }\n});\nconst handleItemClick = (script: Script, type?: string) => {\n if (type) {\n sendMessageType.value = type;\n }\n sceneClick(script);\n};\n\nconst sceneClick = (script: Script) => {\n // 更新选中状态\n selectedScriptName.value = script.name;\n\n // 提取重复逻辑为辅助函数\n const findAndSendFirstUserMessage = (dataSource: Script[]) => {\n const targetScript = dataSource.find(item => item.name === script.name);\n if (targetScript && targetScript.content.length) {\n const firstUserMessage = targetScript.content.find(citem => citem.user === 'i')?.data;\n if (firstUserMessage) {\n sendMessage(firstUserMessage);\n }\n }\n };\n\n // 根据不同类型调用辅助函数\n if (!sendMessageType.value && props.scripts.length) {\n findAndSendFirstUserMessage(props.scripts);\n } else if (sendMessageType.value === '0' && helloChatList.length) {\n findAndSendFirstUserMessage(helloChatList);\n } else if (sendMessageType.value === '1' && helloChatInfo.info1.length) {\n findAndSendFirstUserMessage(helloChatInfo.info1);\n } else if (sendMessageType.value === '2' && helloChatInfo.info2.length) {\n findAndSendFirstUserMessage(helloChatInfo.info2);\n } else if (sendMessageType.value === '3' && helloChatInfo.info3.length) {\n findAndSendFirstUserMessage(helloChatInfo.info3);\n }\n};\n\n// 添加点击事件处理函数\nconst toggleChatPanel = () => {\n emit('toggleChatPanel');\n};\n\n// 然后修改findMatchingScriptContent函数\nconst findMatchingScriptContent = (\n userInput: string,\n type?: string\n): {\n responses: Array<{\n user: string;\n data?: string;\n subData?: Array<string>;\n type?: string;\n }>;\n nextIndex: number;\n} | null => {\n // 获取当前选中的脚本\n let array = props.scripts;\n switch (type) {\n case '0':\n array = helloChatList;\n break;\n case '1':\n array = helloChatInfo.info1;\n break;\n case '2':\n array = helloChatInfo.info2;\n break;\n case '3':\n array = helloChatInfo.info3;\n break;\n default:\n break;\n }\n const currentScript = array.find(s => s.name === selectedScriptName.value);\n if (!currentScript) return null;\n\n // 如果 currentScriptIndex 是 0 且第一条消息是 AI 消息,寻找第一个用户输入点\n if (\n currentScriptIndex.value === 0 &&\n currentScript.content.length > 0 &&\n currentScript.content[0].user === 'ai'\n ) {\n let firstUserInputIndex = -1;\n for (let i = 0; i < currentScript.content.length; i++) {\n if (currentScript.content[i].user === 'i') {\n firstUserInputIndex = i;\n break;\n }\n }\n\n if (firstUserInputIndex !== -1) {\n currentScriptIndex.value = firstUserInputIndex;\n } else {\n return null;\n }\n }\n\n // 检查是否匹配第一条脚本数据(重置流程)\n const firstItem = currentScript.content[0];\n if (firstItem.user === 'i') {\n // 优先检查data是否匹配\n const isDataMatch = firstItem.data && userInput.includes(firstItem.data);\n\n // 修改subData匹配逻辑,支持数组类型\n let isSubDataMatch = false;\n if (firstItem.subData) {\n if (Array.isArray(firstItem.subData)) {\n isSubDataMatch = firstItem.subData.some(item => userInput.includes(item));\n }\n }\n\n if (isDataMatch || isSubDataMatch) {\n currentScriptIndex.value = 0;\n\n // 收集第一条后的AI回复直到下一个用户输入点\n const responses: Array<{\n user: string;\n data?: string;\n subData?: Array<string>;\n type?: string;\n }> = [];\n let nextIndex = currentScript.content.length;\n\n for (let i = 1; i < currentScript.content.length; i++) {\n const item = currentScript.content[i];\n if (item.user === 'i') {\n nextIndex = i;\n break;\n }\n if (item.user === 'ai') {\n responses.push(item);\n }\n }\n\n return { responses, nextIndex };\n }\n }\n\n // 检查当前索引位置的条目\n const currentItem = currentScript.content[currentScriptIndex.value];\n if (!currentItem || currentItem.user !== 'i') {\n return null;\n }\n\n // 当前条目是否匹配用户输入(优先检查data)\n const isDataMatch = currentItem.data && userInput.includes(currentItem.data);\n\n // 修改subData匹配逻辑,支持数组类型\n let isSubDataMatch = false;\n if (currentItem.subData) {\n if (Array.isArray(currentItem.subData)) {\n // 如果是数组,检查数组中是否有任何一个元素被userInput包含\n isSubDataMatch = currentItem.subData.some(item => userInput.includes(item));\n }\n }\n\n if (isDataMatch || isSubDataMatch) {\n // 收集AI回复\n const responses: Array<{\n user: string;\n data?: string;\n subData?: Array<string>;\n type?: string;\n }> = [];\n let nextIndex = currentScript.content.length; // 默认设为脚本末尾\n\n // 查找下一个用户输入点并收集AI回复\n for (let i = currentScriptIndex.value + 1; i < currentScript.content.length; i++) {\n const item = currentScript.content[i];\n if (item.user === 'ai') {\n responses.push(item);\n } else if (item.user === 'i') {\n nextIndex = i;\n break;\n }\n }\n\n // 更新当前索引\n currentScriptIndex.value = nextIndex;\n\n return { responses, nextIndex };\n }\n\n return null;\n};\n// 修改发送消息函数\nconst sendMessage = (message?: string) => {\n if (btnDisable.value) return;\n if (message !== undefined && typeof message !== 'string') {\n console.error('message must be a string');\n return;\n }\n btnDisable.value = true;\n const contentToSend = message !== undefined ? message : inputMessage.value;\n if (!contentToSend.trim()) return;\n\n // 添加用户消息,包含 user 属性\n const userMsgId = `user-${Date.now()}`;\n messages.value.push({\n id: userMsgId,\n type: 'user',\n user: 'user', // 添加 user 属性\n content: contentToSend.trim(),\n });\n\n // 清空输入框\n if (message === undefined) {\n inputMessage.value = '';\n }\n\n // 模拟AI回复\n setTimeout(() => {\n const result = findMatchingScriptContent(contentToSend, sendMessageType.value);\n\n if (result && result.responses.length > 0) {\n currentScriptIndex.value = result.nextIndex;\n result.responses.forEach((response, index) => {\n const pauseMarker = Array.isArray(response.data) ? '​'.repeat(20) : '';\n const content = Array.isArray(response.data)\n ? response.data.join(pauseMarker)\n : response.data;\n\n setTimeout(() => {\n const aiMsgId = `ai-${Date.now()}-${index}`;\n messages.value.push({\n id: aiMsgId,\n type: 'ai',\n user: 'ai', // 添加 user 属性\n component: response.type || undefined,\n content: content || '',\n });\n }, index * 800);\n });\n } else {\n const aiMsgId = `ai-${Date.now()}`;\n messages.value.push({\n id: aiMsgId,\n type: 'ai',\n user: 'ai', // 添加 user 属性\n content: robotUnmatched,\n });\n }\n // 保存聊天记录\n updateCurrentChat();\n }, 500);\n};\n\n// 处理新对话函数修改\nconst handleNewChat = () => {\n // 查找是否有消息内容为空的对话\n const emptyChat = chatHistory.value.find(chat => chat.messages.length === 0);\n if (emptyChat) {\n // 然后跳转到该对话\n handleSelectChat(emptyChat.id);\n return;\n }\n createNewChat();\n currentScriptIndex.value = 0;\n};\n\n// 监听聊天历史变化,自动保存\nwatch(\n () => chatHistory.value,\n () => saveToLocalStorage(),\n { deep: true }\n);\n\nconst instance = getCurrentInstance();\n// 添加消息操作处理函数\nconst handleMessageAction = (\n action: 'copy' | 'edit' | 'retry' | 'like' | 'dislike' | 'delete',\n index: number\n) => {\n console.log(action, index, messages.value, '=== 560 ===');\n const message = messages.value[index];\n if (!message) return;\n\n switch (action) {\n case 'copy':\n navigator.clipboard.writeText(message.content || '').then(() => {\n // 实际项目中可以替换为项目中使用的提示组件\n showToast('复制成功');\n });\n break;\n case 'edit':\n // 启用编辑模式\n if (message) {\n message.isEditing = true;\n message.editContent = message.content; // 初始化编辑内容\n // 更新消息\n messages.value.splice(index, 1, { ...message });\n }\n break;\n case 'delete':\n messageUtils.deleteMessageChain(index);\n updateCurrentChat();\n break;\n case 'retry': {\n // 获取当前AI消息和对应的用户消息\n const userMessageIndex = index - 1;\n const userMessage = messages.value[userMessageIndex];\n\n if (userMessage && userMessage.type === 'user') {\n // 先删除当前AI消息\n messages.value.splice(index, 1);\n\n // 立即更新视图\n updateCurrentChat();\n\n // 直接生成新的AI消息,不重新发送用户消息\n setTimeout(() => {\n // 使用用户原始消息内容查找匹配的脚本回复\n const result = findMatchingScriptContent(\n userMessage?.content || '',\n sendMessageType.value\n );\n\n if (result && result.responses.length > 0) {\n currentScriptIndex.value = result.nextIndex;\n // 存储新AI消息的数组\n const newAiMessages: ChatMessage[] = [];\n\n result.responses.forEach((response, idx) => {\n const pauseMarker = Array.isArray(response.data) ? '\\u200B'.repeat(20) : '';\n const content = Array.isArray(response.data)\n ? response.data.join(pauseMarker)\n : response.data;\n\n const newAiMsgId = `ai-${Date.now()}-${idx}`;\n newAiMessages.push({\n id: newAiMsgId,\n type: 'ai',\n user: 'ai',\n component: response.type || undefined,\n content: content || '',\n });\n });\n\n // 在用户消息后插入新的AI消息\n messages.value.splice(userMessageIndex + 1, 0, ...newAiMessages);\n } else {\n const newAiMsgId = `ai-${Date.now()}`;\n // 在用户消息后插入默认AI回复\n messages.value.splice(userMessageIndex + 1, 0, {\n id: newAiMsgId,\n type: 'ai',\n user: 'ai',\n content: robotUnmatched,\n });\n }\n // 保存聊天记录\n updateCurrentChat();\n }, 500);\n }\n break;\n }\n case 'like':\n messageUtils.updateMessage(index, {\n isLiked: true,\n isDisliked: false,\n });\n updateCurrentChat();\n break;\n case 'dislike':\n messageUtils.updateMessage(index, {\n isLiked: false,\n isDisliked: true,\n });\n updateCurrentChat();\n break;\n }\n};\n\n// 添加消息管理工具函数\nconst messageUtils = {\n // 更新消息内容\n updateMessage: (index: number, updates: Partial<Message>) => {\n if (index < 0 || index >= messages.value.length) return;\n messages.value.splice(index, 1, { ...messages.value[index], ...updates });\n },\n\n // 删除消息及其后续所有连续的AI回复,直到遇到下一个用户消息\n deleteMessageChain: (index: number) => {\n if (index < 0 || index >= messages.value.length) return;\n\n // 起始删除位置\n let startIndex = index;\n\n // 删除数量(至少删除当前消息)\n let deleteCount = 1;\n\n // 检查后续消息是否为AI消息\n for (let i = index + 1; i < messages.value.length; i++) {\n if (messages.value[i].type === 'ai') {\n deleteCount++;\n } else {\n // 遇到非AI消息(用户消息)则停止\n break;\n }\n }\n\n messages.value.splice(startIndex, deleteCount);\n },\n};\n\n// 在provide中添加handleMessageAction方法\nprovide('parentContext', {\n instance,\n methods: {\n sendMessage,\n handleMessageAction,\n },\n components: componentMap,\n state: {\n messages,\n inputMessage,\n },\n});\n</script>\n\n<!-- <style lang=\"less\" scoped>\n@import '../../style/variables.less';\n@import './style/index.less';\n</style> -->\n"],"names":["inject","start","face","meterialPrepare","ref","provide","showToast","onMounted","isDataMatch","isSubDataMatch","watch","getCurrentInstance","_createElementBlock","_unref","_createElementVNode","_createBlock","Header","_renderSlot","_createVNode","HelloChat","Content","Scene","Input","_withCtx"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var Content_vue_vue_type_script_setup_true_lang = require('./Content.vue2.js');
6
-
7
-
8
-
9
- exports.default = Content_vue_vue_type_script_setup_true_lang.default;
10
- //# sourceMappingURL=Content.vue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Content.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,228 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var vue = require('vue');
6
- var AI = require('../../img/AI.png.js');
7
- var asir = require('../../img/asir.png.js');
8
- var letter_vue_vue_type_script_setup_true_lang = require('./component/letter.vue2.js');
9
- var start_vue_vue_type_script_setup_true_lang = require('./component/start.vue2.js');
10
- var face_vue_vue_type_script_setup_true_lang = require('./component/face.vue2.js');
11
- var meterialPrepare_vue_vue_type_script_setup_true_lang = require('./component/meterialPrepare.vue2.js');
12
- var MessageActions_vue_vue_type_script_setup_true_lang = require('../AiChat/MessageActions.vue2.js');
13
-
14
- var _sfc_main = /* @__PURE__ */ vue.defineComponent({
15
- __name: "Content",
16
- props: {
17
- messages: {}
18
- },
19
- emits: [
20
- "complete",
21
- "copy",
22
- "retry",
23
- "like",
24
- "dislike",
25
- "edit",
26
- "delete",
27
- "save-edit",
28
- "cancel-edit"
29
- ],
30
- setup(__props, { emit: __emit }) {
31
- const props = __props;
32
- const emit = __emit;
33
- const rootMap = vue.inject("rootMap", () => ({}));
34
- const isAvatar = vue.inject("isAvatar", false);
35
- const messageContainer = vue.ref(null);
36
- const componentMap = {
37
- start: start_vue_vue_type_script_setup_true_lang.default,
38
- face: face_vue_vue_type_script_setup_true_lang.default,
39
- meterialPrepare: meterialPrepare_vue_vue_type_script_setup_true_lang.default,
40
- ...rootMap
41
- };
42
- const editContents = vue.ref({});
43
- const editTextareaRefs = vue.ref({});
44
- vue.watch(
45
- () => props.messages,
46
- (newMessages) => {
47
- newMessages.forEach((msg, index) => {
48
- if (msg.isEditing) {
49
- editContents.value[index] = msg.content || "";
50
- vue.nextTick(() => {
51
- var _a;
52
- if (editTextareaRefs.value[index]) {
53
- (_a = editTextareaRefs.value[index]) == null ? void 0 : _a.focus();
54
- }
55
- });
56
- }
57
- });
58
- },
59
- { deep: true }
60
- );
61
- const handleComplete = () => {
62
- emit("complete");
63
- };
64
- const handleCopy = (index) => {
65
- emit("copy", "copy", index);
66
- };
67
- const handleRetry = (index) => {
68
- emit("retry", "retry", index);
69
- };
70
- const handleLike = (index) => {
71
- emit("like", "like", index);
72
- };
73
- const handleDislike = (index) => {
74
- emit("dislike", "dislike", index);
75
- };
76
- const handleEdit = (index) => {
77
- emit("edit", "edit", index);
78
- };
79
- const handleDelete = (index) => {
80
- emit("delete", "delete", index);
81
- };
82
- const onSaveEdit = (index) => {
83
- const content = editContents.value[index];
84
- if (content.trim()) {
85
- emit("save-edit", index, content);
86
- }
87
- };
88
- const onCancelEdit = (index) => {
89
- emit("cancel-edit", index);
90
- };
91
- const scrollToBottom = () => {
92
- vue.nextTick(() => {
93
- if (messageContainer.value) {
94
- messageContainer.value.scrollTop = messageContainer.value.scrollHeight;
95
- }
96
- });
97
- };
98
- vue.onMounted(() => {
99
- scrollToBottom();
100
- });
101
- vue.watch(
102
- () => props.messages.length,
103
- (newLength, oldLength) => {
104
- if (newLength > oldLength) {
105
- scrollToBottom();
106
- }
107
- }
108
- );
109
- vue.watch(
110
- () => props.messages,
111
- (newMessages) => {
112
- newMessages.forEach((msg, index) => {
113
- if (msg.isEditing) {
114
- editContents.value[index] = msg.content || "";
115
- vue.nextTick(() => {
116
- var _a;
117
- if (editTextareaRefs.value[index]) {
118
- (_a = editTextareaRefs.value[index]) == null ? void 0 : _a.focus();
119
- }
120
- });
121
- }
122
- });
123
- },
124
- { deep: true }
125
- );
126
- return (_ctx, _cache) => {
127
- return vue.openBlock(), vue.createElementBlock("div", {
128
- ref_key: "messageContainer",
129
- ref: messageContainer,
130
- class: "message-list"
131
- }, [
132
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(props.messages, (msg, index) => {
133
- return vue.openBlock(), vue.createElementBlock("div", {
134
- key: msg.id,
135
- class: vue.normalizeClass(["message-item", `${msg.type}-message`])
136
- }, [
137
- msg.type === "ai" ? (vue.openBlock(), vue.createElementBlock("div", {
138
- key: 0,
139
- class: "avatar-container"
140
- }, [
141
- vue.renderSlot(_ctx.$slots, "aiAvatar", {}, () => [
142
- vue.unref(isAvatar) ? (vue.openBlock(), vue.createElementBlock("img", {
143
- key: 0,
144
- src: AI.default,
145
- alt: "AI \u5934\u50CF",
146
- class: "avatar"
147
- })) : vue.createCommentVNode("", true)
148
- ])
149
- ])) : vue.createCommentVNode("", true),
150
- vue.createElementVNode("div", {
151
- class: vue.normalizeClass(["text-content-wrapper", { "is-editing": msg.isEditing }])
152
- }, [
153
- !msg.isEditing ? (vue.openBlock(), vue.createElementBlock("div", {
154
- key: 0,
155
- class: "text-content"
156
- }, [
157
- msg.type === "ai" && msg.component ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(componentMap[msg.component]), {
158
- key: 0,
159
- data: msg.content,
160
- onComplete: handleComplete
161
- }, null, 40, ["data"])) : msg.type === "ai" && !msg.component ? (vue.openBlock(), vue.createBlock(letter_vue_vue_type_script_setup_true_lang.default, {
162
- key: 1,
163
- data: msg.content,
164
- onComplete: handleComplete
165
- }, null, 8, ["data"])) : (vue.openBlock(), vue.createElementBlock("div", { key: 2 }, vue.toDisplayString(msg.content), 1))
166
- ])) : (vue.openBlock(), vue.createElementBlock("div", {
167
- key: 1,
168
- class: "edit-input-container"
169
- }, [
170
- vue.withDirectives(vue.createElementVNode("textarea", {
171
- ref_for: true,
172
- ref: "editTextareaRefs[index]",
173
- "onUpdate:modelValue": ($event) => editContents.value[index] = $event,
174
- class: "edit-textarea",
175
- placeholder: "\u8BF7\u8F93\u5165\u6D88\u606F\u5185\u5BB9..."
176
- }, null, 8, ["onUpdate:modelValue"]), [
177
- [vue.vModelText, editContents.value[index]]
178
- ]),
179
- vue.createElementVNode("div", { class: "edit-controls" }, [
180
- vue.createElementVNode("button", {
181
- class: "btn cancel-btn",
182
- onClick: ($event) => onCancelEdit(index)
183
- }, "\u53D6\u6D88", 8, ["onClick"]),
184
- vue.createElementVNode("button", {
185
- class: "btn send-btn",
186
- disabled: !editContents.value[index].trim(),
187
- onClick: ($event) => onSaveEdit(index)
188
- }, " \u53D1\u9001 ", 8, ["disabled", "onClick"])
189
- ])
190
- ])),
191
- vue.createVNode(MessageActions_vue_vue_type_script_setup_true_lang.default, {
192
- "message-type": msg.type,
193
- index,
194
- "show-copy": true,
195
- "is-show-like": msg.type === "ai",
196
- "is-liked": msg.isLiked || false,
197
- "is-disliked": msg.isDisliked || false,
198
- "is-editing": msg.isEditing || false,
199
- onCopy: ($event) => handleCopy(index),
200
- onRetry: ($event) => handleRetry(index),
201
- onLike: ($event) => handleLike(index),
202
- onDislike: ($event) => handleDislike(index),
203
- onEdit: ($event) => handleEdit(index),
204
- onDelete: ($event) => handleDelete(index)
205
- }, null, 8, ["message-type", "index", "is-show-like", "is-liked", "is-disliked", "is-editing", "onCopy", "onRetry", "onLike", "onDislike", "onEdit", "onDelete"])
206
- ], 2),
207
- msg.type === "user" ? (vue.openBlock(), vue.createElementBlock("div", {
208
- key: 1,
209
- class: "avatar-container"
210
- }, [
211
- vue.renderSlot(_ctx.$slots, "userAvatar", {}, () => [
212
- vue.unref(isAvatar) ? (vue.openBlock(), vue.createElementBlock("img", {
213
- key: 0,
214
- src: asir.default,
215
- alt: "\u7528\u6237\u5934\u50CF",
216
- class: "avatar"
217
- })) : vue.createCommentVNode("", true)
218
- ])
219
- ])) : vue.createCommentVNode("", true)
220
- ], 2);
221
- }), 128))
222
- ], 512);
223
- };
224
- }
225
- });
226
-
227
- exports.default = _sfc_main;
228
- //# sourceMappingURL=Content.vue2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Content.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiRobot/Content.vue"],"sourcesContent":["<template>\n <div ref=\"messageContainer\" class=\"message-list\">\n <!-- 统一渲染所有消息 -->\n <div\n v-for=\"(msg, index) in props.messages\"\n :key=\"msg.id\"\n :class=\"['message-item', `${msg.type}-message`]\"\n >\n <div v-if=\"msg.type === 'ai'\" class=\"avatar-container\">\n <slot name=\"aiAvatar\">\n <img v-if=\"isAvatar\" src=\"../../img/AI.png\" alt=\"AI 头像\" class=\"avatar\" />\n </slot>\n </div>\n <!-- text-content -->\n <div class=\"text-content-wrapper\" :class=\"{ 'is-editing': msg.isEditing }\">\n <div v-if=\"!msg.isEditing\" class=\"text-content\">\n <component\n :is=\"componentMap[msg.component]\"\n v-if=\"msg.type === 'ai' && msg.component\"\n :data=\"msg.content\"\n @complete=\"handleComplete\"\n />\n <letter\n v-else-if=\"msg.type === 'ai' && !msg.component\"\n :data=\"msg.content as string\"\n @complete=\"handleComplete\"\n >\n </letter>\n <div v-else>{{ msg.content }}</div>\n </div>\n <!-- 编辑区域 -->\n <div v-else class=\"edit-input-container\">\n <textarea\n ref=\"editTextareaRefs[index]\"\n v-model=\"editContents[index]\"\n class=\"edit-textarea\"\n placeholder=\"请输入消息内容...\"\n ></textarea>\n <div class=\"edit-controls\">\n <button class=\"btn cancel-btn\" @click=\"onCancelEdit(index)\">取消</button>\n <button\n class=\"btn send-btn\"\n :disabled=\"!editContents[index].trim()\"\n @click=\"onSaveEdit(index)\"\n >\n 发送\n </button>\n </div>\n </div>\n <!-- 消息操作按钮 - 移到内容下方 -->\n <MessageActions\n :message-type=\"msg.type\"\n :index=\"index\"\n :show-copy=\"true\"\n :is-show-like=\"msg.type === 'ai'\"\n :is-liked=\"msg.isLiked || false\"\n :is-disliked=\"msg.isDisliked || false\"\n :is-editing=\"msg.isEditing || false\"\n @copy=\"handleCopy(index)\"\n @retry=\"handleRetry(index)\"\n @like=\"handleLike(index)\"\n @dislike=\"handleDislike(index)\"\n @edit=\"handleEdit(index)\"\n @delete=\"handleDelete(index)\"\n />\n </div>\n <div v-if=\"msg.type === 'user'\" class=\"avatar-container\">\n <slot name=\"userAvatar\">\n <img v-if=\"isAvatar\" src=\"../../img/asir.png\" alt=\"用户头像\" class=\"avatar\" />\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, nextTick, onMounted, inject, watch } from 'vue';\nimport Letter from './component/letter.vue';\nimport start from './component/start.vue';\nimport face from './component/face.vue';\nimport meterialPrepare from './component/meterialPrepare.vue';\nimport MessageActions from '../AiChat/MessageActions.vue';\n\n// 定义组件映射接口,添加字符串索引签名\ninterface ComponentMap {\n start: typeof start;\n face: typeof face;\n meterialPrepare: typeof meterialPrepare;\n [key: string]: any; // 添加字符串索引签名\n}\n\nexport interface Message {\n id: string;\n type: 'user' | 'ai';\n component?: string;\n time?: string;\n content?: string;\n isLiked?: boolean;\n isDisliked?: boolean;\n isEditing?: boolean;\n}\n\nconst props = defineProps<{\n messages: Message[];\n}>();\nconst emit = defineEmits([\n 'complete',\n 'copy',\n 'retry',\n 'like',\n 'dislike',\n 'edit',\n 'delete',\n 'save-edit',\n 'cancel-edit',\n]);\n\nconst rootMap = inject('rootMap', () => ({}));\nconst isAvatar = inject('isAvatar', false);\nconst messageContainer = ref<HTMLElement | null>(null);\n// 明确componentMap的类型为ComponentMap\nconst componentMap: ComponentMap = {\n start,\n face,\n meterialPrepare,\n ...rootMap,\n};\n\n// 编辑相关状态管理\nconst editContents = ref<Record<number, string>>({});\nconst editTextareaRefs = ref<Record<number, HTMLTextAreaElement | null>>({});\n\n// 监听messages变化,更新编辑内容\nwatch(\n () => props.messages,\n newMessages => {\n newMessages.forEach((msg, index) => {\n if (msg.isEditing) {\n editContents.value[index] = msg.content || '';\n // 延迟聚焦到编辑框\n nextTick(() => {\n if (editTextareaRefs.value[index]) {\n editTextareaRefs.value[index]?.focus();\n }\n });\n }\n });\n },\n { deep: true }\n);\n\nconst handleComplete = () => {\n emit('complete');\n // scrollToBottom();\n};\n\nconst handleCopy = (index: number) => {\n emit('copy', 'copy', index);\n};\n\nconst handleRetry = (index: number) => {\n emit('retry', 'retry', index);\n};\n\nconst handleLike = (index: number) => {\n emit('like', 'like', index);\n};\n\nconst handleDislike = (index: number) => {\n emit('dislike', 'dislike', index);\n};\n\nconst handleEdit = (index: number) => {\n emit('edit', 'edit', index);\n};\n\nconst handleDelete = (index: number) => {\n emit('delete', 'delete', index);\n};\n\n// 保存编辑\nconst onSaveEdit = (index: number) => {\n const content = editContents.value[index];\n if (content.trim()) {\n emit('save-edit', index, content);\n }\n};\n\n// 取消编辑\nconst onCancelEdit = (index: number) => {\n emit('cancel-edit', index);\n};\n\n// 滚动到底部\nconst scrollToBottom = () => {\n nextTick(() => {\n if (messageContainer.value) {\n messageContainer.value.scrollTop = messageContainer.value.scrollHeight;\n }\n });\n};\n\n// 初始化滚动到底部\nonMounted(() => {\n scrollToBottom();\n});\n\n// 添加一个新的监听器,监听messages数组的变化\nwatch(\n () => props.messages.length,\n (newLength, oldLength) => {\n // 当消息数量增加时,滚动到底部\n if (newLength > oldLength) {\n scrollToBottom();\n }\n }\n);\n\n// 保留现有的watch监听器\nwatch(\n () => props.messages,\n newMessages => {\n newMessages.forEach((msg, index) => {\n if (msg.isEditing) {\n editContents.value[index] = msg.content || '';\n // 延迟聚焦到编辑框\n nextTick(() => {\n if (editTextareaRefs.value[index]) {\n editTextareaRefs.value[index]?.focus();\n }\n });\n }\n });\n },\n { deep: true }\n);\n</script>\n\n<!-- <style lang=\"less\" scoped>\n@import '../../style/variables.less';\n@import './style/index.less';\n@import '../../style/UserMessage.less';\n@import '../../style/AiMessage.less';\n@import './style/Content.less';\n</style> -->\n"],"names":["inject","ref","start","face","meterialPrepare","watch","nextTick","onMounted","_createElementBlock","_openBlock","_Fragment","_normalizeClass","_renderSlot","_unref","_imports_0","_createElementVNode","_createBlock","_resolveDynamicComponent","Letter","_toDisplayString","_vModelText","_createVNode","MessageActions","_imports_1"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var Header_vue_vue_type_script_setup_true_lang = require('./Header.vue2.js');
6
-
7
-
8
-
9
- exports.default = Header_vue_vue_type_script_setup_true_lang.default;
10
- //# sourceMappingURL=Header.vue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,192 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var vue = require('vue');
6
- var HistoryList_vue_vue_type_script_setup_true_lang = require('../AiChat/HistoryList.vue2.js');
7
-
8
- var _sfc_main = /* @__PURE__ */ vue.defineComponent({
9
- __name: "Header",
10
- props: {
11
- chatHistory: {
12
- type: Array,
13
- required: true
14
- },
15
- activeChat: {
16
- type: String,
17
- required: true
18
- }
19
- },
20
- emits: ["close", "newChat", "history", "selectChat", "renameChat", "deleteChat"],
21
- setup(__props, { emit: __emit }) {
22
- const props = __props;
23
- const state = vue.reactive({
24
- currentRenameId: "",
25
- currentTitle: ""
26
- });
27
- const emit = __emit;
28
- const isHistoryOpen = vue.ref(false);
29
- const historyDropdown = vue.ref(null);
30
- const activeItemMenu = vue.ref(null);
31
- const handleRenameChat = (id, newTitle) => {
32
- const chat = props.chatHistory.find((item) => item.id === id);
33
- if (chat) {
34
- state.currentRenameId = id;
35
- state.currentTitle = chat.title;
36
- emit("renameChat", {
37
- id,
38
- newTitle: newTitle.trim()
39
- });
40
- }
41
- };
42
- const handleDeleteChat = (id) => {
43
- emit("deleteChat", id);
44
- };
45
- const toggleHistoryDropdown = () => {
46
- isHistoryOpen.value = !isHistoryOpen.value;
47
- emit("history", isHistoryOpen.value);
48
- };
49
- const selectChat = (chatId) => {
50
- emit("selectChat", chatId);
51
- closeHistoryDropdown();
52
- };
53
- const closeHistoryDropdown = () => {
54
- isHistoryOpen.value = false;
55
- activeItemMenu.value = null;
56
- };
57
- const handleClose = () => {
58
- emit("close");
59
- };
60
- const handleNewChat = () => {
61
- emit("newChat");
62
- closeHistoryDropdown();
63
- };
64
- const handleDocumentClick = (event) => {
65
- if (historyDropdown.value && !historyDropdown.value.contains(event.target)) {
66
- closeHistoryDropdown();
67
- }
68
- };
69
- vue.onMounted(() => {
70
- document.addEventListener("click", handleDocumentClick);
71
- });
72
- vue.onBeforeUnmount(() => {
73
- document.removeEventListener("click", handleDocumentClick);
74
- });
75
- return (_ctx, _cache) => {
76
- return vue.openBlock(), vue.createElementBlock("div", { class: "header-container" }, [
77
- vue.createElementVNode("div", { class: "chat-header" }, [
78
- vue.createElementVNode("div", {
79
- class: "close-btn",
80
- onClick: handleClose
81
- }, [
82
- (vue.openBlock(), vue.createElementBlock("svg", {
83
- xmlns: "http://www.w3.org/2000/svg",
84
- width: "16",
85
- height: "16",
86
- viewBox: "0 0 16 16",
87
- fill: "none"
88
- }, [
89
- vue.createElementVNode("path", {
90
- "fill-rule": "evenodd",
91
- "clip-rule": "evenodd",
92
- d: "M3.375 3.178L15.579 15.382L14.625 16.336L2.421 4.132L3.375 3.178Z",
93
- fill: "#1D2129"
94
- }),
95
- vue.createElementVNode("path", {
96
- "fill-rule": "evenodd",
97
- "clip-rule": "evenodd",
98
- d: "M15.579 4.132L3.375 16.336L2.421 15.382L14.625 3.178L15.579 4.132Z",
99
- fill: "#1D2129"
100
- })
101
- ]))
102
- ]),
103
- vue.createElementVNode("div", { class: "header-title" }, "AI \u5BF9\u8BDD"),
104
- vue.createElementVNode("div", { class: "header-actions" }, [
105
- vue.createElementVNode("div", {
106
- class: "action-icon new-chat",
107
- onClick: handleNewChat
108
- }, [
109
- (vue.openBlock(), vue.createElementBlock("svg", {
110
- xmlns: "http://www.w3.org/2000/svg",
111
- width: "14",
112
- height: "14",
113
- viewBox: "0 0 14 14",
114
- fill: "none"
115
- }, [
116
- vue.createElementVNode("path", {
117
- d: "M6.16668 13.5089H7.83334V7.67554H13.6667V6.00887H7.83334V0.175537H6.16668V6.00887H0.333344V7.67554H6.16668V13.5089Z",
118
- fill: "#1D2129"
119
- })
120
- ]))
121
- ]),
122
- vue.createElementVNode("div", {
123
- class: "action-icon history",
124
- onClick: vue.withModifiers(toggleHistoryDropdown, ["stop"])
125
- }, [
126
- (vue.openBlock(), vue.createElementBlock("svg", {
127
- xmlns: "http://www.w3.org/2000/svg",
128
- width: "20",
129
- height: "21",
130
- viewBox: "0 0 20 21",
131
- fill: "none"
132
- }, [
133
- vue.createElementVNode("path", {
134
- "fill-rule": "evenodd",
135
- "clip-rule": "evenodd",
136
- d: "M10 3.95312C6.1954 3.95312 3.11113 7.03739 3.11113 10.842V17.7309H10C13.8047 17.7309 16.8889 14.6466 16.8889 10.842C16.8889 7.03738 13.8047 3.95312 10 3.95312ZM2.36113 18.4809L1.61113 18.4808V10.842C1.61113 6.20895 5.36698 2.45312 10 2.45312C14.6331 2.45312 18.3889 6.20896 18.3889 10.842C18.3889 15.4751 14.6331 19.2309 10 19.2309H2.36168L2.36113 18.4809ZM2.36113 18.4809L2.36168 19.2309C1.94747 19.2309 1.61113 18.8951 1.61113 18.4808L2.36113 18.4809Z",
137
- fill: "#1D2129"
138
- }),
139
- vue.createElementVNode("path", {
140
- "fill-rule": "evenodd",
141
- "clip-rule": "evenodd",
142
- d: "M5.43055 7.80035H13.8056V9.30035H5.43055V7.80035Z",
143
- fill: "#1D2129"
144
- }),
145
- vue.createElementVNode("path", {
146
- "fill-rule": "evenodd",
147
- "clip-rule": "evenodd",
148
- d: "M5.43055 10.8559H13.8056V12.3559H5.43055V10.8559Z",
149
- fill: "#1D2129"
150
- }),
151
- vue.createElementVNode("path", {
152
- "fill-rule": "evenodd",
153
- "clip-rule": "evenodd",
154
- d: "M5.43055 13.9115H10.75V15.4115H5.43055V13.9115Z",
155
- fill: "#1D2129"
156
- })
157
- ]))
158
- ])
159
- ])
160
- ]),
161
- isHistoryOpen.value ? (vue.openBlock(), vue.createElementBlock("div", {
162
- key: 0,
163
- ref_key: "historyDropdown",
164
- ref: historyDropdown,
165
- class: "history-dropdown"
166
- }, [
167
- vue.createElementVNode("div", null, [
168
- props.chatHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", {
169
- key: 0,
170
- class: "no-history"
171
- }, [
172
- vue.createElementVNode("p", null, "\u6682\u65E0\u5386\u53F2\u8BB0\u5F55")
173
- ])) : (vue.openBlock(), vue.createElementBlock("div", { key: 1 }, [
174
- vue.createElementVNode("div", { class: "history-group" }, [
175
- vue.createVNode(HistoryList_vue_vue_type_script_setup_true_lang.default, {
176
- "active-chat": props.activeChat,
177
- "chat-history": props.chatHistory,
178
- onSelectChat: selectChat,
179
- onRenameChat: handleRenameChat,
180
- onDeleteChat: handleDeleteChat
181
- }, null, 8, ["active-chat", "chat-history"])
182
- ])
183
- ]))
184
- ])
185
- ], 512)) : vue.createCommentVNode("", true)
186
- ]);
187
- };
188
- }
189
- });
190
-
191
- exports.default = _sfc_main;
192
- //# sourceMappingURL=Header.vue2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiRobot/Header.vue"],"sourcesContent":["<template>\n <div class=\"header-container\">\n <div class=\"chat-header\">\n <div class=\"close-btn\" @click=\"handleClose\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3.375 3.178L15.579 15.382L14.625 16.336L2.421 4.132L3.375 3.178Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15.579 4.132L3.375 16.336L2.421 15.382L14.625 3.178L15.579 4.132Z\"\n fill=\"#1D2129\"\n />\n </svg>\n </div>\n <div class=\"header-title\">AI 对话</div>\n <div class=\"header-actions\">\n <div class=\"action-icon new-chat\" @click=\"handleNewChat\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n >\n <path\n d=\"M6.16668 13.5089H7.83334V7.67554H13.6667V6.00887H7.83334V0.175537H6.16668V6.00887H0.333344V7.67554H6.16668V13.5089Z\"\n fill=\"#1D2129\"\n />\n </svg>\n </div>\n <div class=\"action-icon history\" @click.stop=\"toggleHistoryDropdown\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"21\"\n viewBox=\"0 0 20 21\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10 3.95312C6.1954 3.95312 3.11113 7.03739 3.11113 10.842V17.7309H10C13.8047 17.7309 16.8889 14.6466 16.8889 10.842C16.8889 7.03738 13.8047 3.95312 10 3.95312ZM2.36113 18.4809L1.61113 18.4808V10.842C1.61113 6.20895 5.36698 2.45312 10 2.45312C14.6331 2.45312 18.3889 6.20896 18.3889 10.842C18.3889 15.4751 14.6331 19.2309 10 19.2309H2.36168L2.36113 18.4809ZM2.36113 18.4809L2.36168 19.2309C1.94747 19.2309 1.61113 18.8951 1.61113 18.4808L2.36113 18.4809Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.43055 7.80035H13.8056V9.30035H5.43055V7.80035Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.43055 10.8559H13.8056V12.3559H5.43055V10.8559Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.43055 13.9115H10.75V15.4115H5.43055V13.9115Z\"\n fill=\"#1D2129\"\n />\n </svg>\n </div>\n </div>\n </div>\n\n <!-- 历史记录悬浮窗 -->\n <div v-if=\"isHistoryOpen\" ref=\"historyDropdown\" class=\"history-dropdown\">\n <!-- class=\"history-list\" -->\n <div>\n <div v-if=\"props.chatHistory.length === 0\" class=\"no-history\">\n <p>暂无历史记录</p>\n </div>\n <div v-else>\n <div class=\"history-group\">\n <!-- <div class=\"group-header\">\n\t\t\t\t\t\t\t<span>最近对话</span>\n\t\t\t\t\t\t</div> -->\n <HistoryList\n :active-chat=\"props.activeChat\"\n :chat-history=\"props.chatHistory\"\n @select-chat=\"selectChat\"\n @rename-chat=\"handleRenameChat\"\n @delete-chat=\"handleDeleteChat\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, reactive, defineEmits, onMounted, onBeforeUnmount, PropType } from 'vue';\nimport HistoryList from '../AiChat/HistoryList.vue';\n\n// 定义与 HistoryList.vue 中匹配的类型\ninterface ChatMessage {\n chatId?: string;\n user: string;\n type: string;\n content: string;\n isShowAvatar?: boolean;\n avatar?: string;\n isChating?: boolean;\n thinkContent?: string;\n reasoningContent?: string;\n}\n\ninterface HistoryItem {\n id: string;\n title: string;\n time: Date;\n messages: ChatMessage[];\n}\n\nconst props = defineProps({\n chatHistory: {\n type: Array as PropType<HistoryItem[]>,\n required: true,\n },\n activeChat: {\n type: String,\n required: true,\n },\n});\n\n// 添加重命名相关状态\nconst state = reactive<{\n currentRenameId: string;\n currentTitle: string;\n}>({\n currentRenameId: '',\n currentTitle: '',\n});\n\nconst emit = defineEmits<{\n (e: 'close'): void;\n (e: 'newChat'): void;\n (e: 'history', isOpen: boolean): void;\n (e: 'selectChat', id: string): void;\n (e: 'renameChat', data: { id: string; newTitle: string }): void;\n (e: 'deleteChat', id: string): void;\n}>();\n\nconst isHistoryOpen = ref(false);\nconst historyDropdown = ref<HTMLElement | null>(null);\nconst activeItemMenu = ref<string | null>(null);\n\n// 处理重命名对话\nconst handleRenameChat = (id: string, newTitle: string) => {\n // 查找当前对话\n const chat = props.chatHistory.find(item => item.id === id);\n if (chat) {\n state.currentRenameId = id;\n state.currentTitle = chat.title;\n emit('renameChat', {\n id: id,\n newTitle: newTitle.trim(),\n });\n }\n};\n\n// 处理删除对话\nconst handleDeleteChat = (id: string) => {\n // 添加确认对话框\n emit('deleteChat', id);\n};\n\n// 点击历史记录按钮切换悬浮窗显示/隐藏\nconst toggleHistoryDropdown = () => {\n isHistoryOpen.value = !isHistoryOpen.value;\n emit('history', isHistoryOpen.value); // 触发 history 事件,传递当前状态\n};\n\nconst selectChat = (chatId: string) => {\n emit('selectChat', chatId);\n closeHistoryDropdown();\n};\n\n// 关闭悬浮窗\nconst closeHistoryDropdown = () => {\n isHistoryOpen.value = false;\n activeItemMenu.value = null;\n};\n\n// 处理关闭按钮点击\nconst handleClose = () => {\n emit('close');\n};\n\n// 处理新对话按钮点击\nconst handleNewChat = () => {\n emit('newChat');\n closeHistoryDropdown();\n};\n\n// 点击文档其他地方关闭悬浮窗\nconst handleDocumentClick = (event: MouseEvent) => {\n if (historyDropdown.value && !historyDropdown.value.contains(event.target as Node)) {\n closeHistoryDropdown();\n }\n};\n\n// 挂载时添加事件监听\nonMounted(() => {\n document.addEventListener('click', handleDocumentClick);\n});\n\n// 卸载时移除事件监听\nonBeforeUnmount(() => {\n document.removeEventListener('click', handleDocumentClick);\n});\n</script>\n\n<!-- <style lang=\"less\" scoped>\n@import './style/Header.less';\n</style> -->\n"],"names":["reactive","ref","onMounted","onBeforeUnmount","_createElementBlock","_createElementVNode","_createVNode","HistoryList"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgIA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAYd,IAAA,MAAM,QAAQA,YAGX,CAAA;AAAA,MACD,eAAiB,EAAA,EAAA;AAAA,MACjB,YAAc,EAAA,EAAA;AAAA,KACf,CAAA,CAAA;AAED,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AASb,IAAM,MAAA,aAAA,GAAgBC,QAAI,KAAK,CAAA,CAAA;AAC/B,IAAM,MAAA,eAAA,GAAkBA,QAAwB,IAAI,CAAA,CAAA;AACpD,IAAM,MAAA,cAAA,GAAiBA,QAAmB,IAAI,CAAA,CAAA;AAG9C,IAAM,MAAA,gBAAA,GAAmB,CAAC,EAAA,EAAY,QAAqB,KAAA;AAEzD,MAAA,MAAM,OAAO,KAAM,CAAA,WAAA,CAAY,KAAK,CAAQ,IAAA,KAAA,IAAA,CAAK,OAAO,EAAE,CAAA,CAAA;AAC1D,MAAA,IAAI,IAAM,EAAA;AACR,QAAA,KAAA,CAAM,eAAkB,GAAA,EAAA,CAAA;AACxB,QAAA,KAAA,CAAM,eAAe,IAAK,CAAA,KAAA,CAAA;AAC1B,QAAA,IAAA,CAAK,YAAc,EAAA;AAAA,UACjB,EAAA;AAAA,UACA,QAAA,EAAU,SAAS,IAAK,EAAA;AAAA,SACzB,CAAA,CAAA;AAAA,OACH;AAAA,KACF,CAAA;AAGA,IAAM,MAAA,gBAAA,GAAmB,CAAC,EAAe,KAAA;AAEvC,MAAA,IAAA,CAAK,cAAc,EAAE,CAAA,CAAA;AAAA,KACvB,CAAA;AAGA,IAAA,MAAM,wBAAwB,MAAM;AAClC,MAAc,aAAA,CAAA,KAAA,GAAQ,CAAC,aAAc,CAAA,KAAA,CAAA;AACrC,MAAK,IAAA,CAAA,SAAA,EAAW,cAAc,KAAK,CAAA,CAAA;AAAA,KACrC,CAAA;AAEA,IAAM,MAAA,UAAA,GAAa,CAAC,MAAmB,KAAA;AACrC,MAAA,IAAA,CAAK,cAAc,MAAM,CAAA,CAAA;AACzB,MAAqB,oBAAA,EAAA,CAAA;AAAA,KACvB,CAAA;AAGA,IAAA,MAAM,uBAAuB,MAAM;AACjC,MAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AACtB,MAAA,cAAA,CAAe,KAAQ,GAAA,IAAA,CAAA;AAAA,KACzB,CAAA;AAGA,IAAA,MAAM,cAAc,MAAM;AACxB,MAAA,IAAA,CAAK,OAAO,CAAA,CAAA;AAAA,KACd,CAAA;AAGA,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,IAAA,CAAK,SAAS,CAAA,CAAA;AACd,MAAqB,oBAAA,EAAA,CAAA;AAAA,KACvB,CAAA;AAGA,IAAM,MAAA,mBAAA,GAAsB,CAAC,KAAsB,KAAA;AACjD,MAAI,IAAA,eAAA,CAAgB,SAAS,CAAC,eAAA,CAAgB,MAAM,QAAS,CAAA,KAAA,CAAM,MAAc,CAAG,EAAA;AAClF,QAAqB,oBAAA,EAAA,CAAA;AAAA,OACvB;AAAA,KACF,CAAA;AAGA,IAAAC,aAAA,CAAU,MAAM;AACd,MAAS,QAAA,CAAA,gBAAA,CAAiB,SAAS,mBAAmB,CAAA,CAAA;AAAA,KACvD,CAAA,CAAA;AAGD,IAAAC,mBAAA,CAAgB,MAAM;AACpB,MAAS,QAAA,CAAA,mBAAA,CAAoB,SAAS,mBAAmB,CAAA,CAAA;AAAA,KAC1D,CAAA,CAAA;;4BA/NC,EAAAC,sBAAA,CAoGM,OAAA,EApGD,KAAA,EAAM,oBAAkB,EAAA;AAAA,QAC3BC,sBA0EM,CAAA,KAAA,EAAA,EA1ED,KAAA,EAAM,eAAa,EAAA;AAAA,UACtBA,uBAqBM,KAAA,EAAA;AAAA,YArBD,KAAM,EAAA,WAAA;AAAA,YAAa,OAAO,EAAA,WAAA;AAAA;4BAC7B,EAAAD,sBAAA,CAmBM,KAAA,EAAA;AAAA,cAlBJ,KAAM,EAAA,4BAAA;AAAA,cACN,KAAM,EAAA,IAAA;AAAA,cACN,MAAO,EAAA,IAAA;AAAA,cACP,OAAQ,EAAA,WAAA;AAAA,cACR,IAAK,EAAA,MAAA;AAAA;cAELC,uBAKE,MAAA,EAAA;AAAA,gBAJA,WAAU,EAAA,SAAA;AAAA,gBACV,WAAU,EAAA,SAAA;AAAA,gBACV,CAAE,EAAA,mEAAA;AAAA,gBACF,IAAK,EAAA,SAAA;AAAA;cAEPA,uBAKE,MAAA,EAAA;AAAA,gBAJA,WAAU,EAAA,SAAA;AAAA,gBACV,WAAU,EAAA,SAAA;AAAA,gBACV,CAAE,EAAA,oEAAA;AAAA,gBACF,IAAK,EAAA,SAAA;AAAA;;;UAIXA,uBAAqC,KAAhC,EAAA,EAAA,KAAM,EAAA,cAAA,IAAe,iBAAK,CAAA;AAAA,UAC/BA,sBAiDM,CAAA,KAAA,EAAA,EAjDD,KAAA,EAAM,kBAAgB,EAAA;AAAA,YACzBA,uBAaM,KAAA,EAAA;AAAA,cAbD,KAAM,EAAA,sBAAA;AAAA,cAAwB,OAAO,EAAA,aAAA;AAAA;8BACxC,EAAAD,sBAAA,CAWM,KAAA,EAAA;AAAA,gBAVJ,KAAM,EAAA,4BAAA;AAAA,gBACN,KAAM,EAAA,IAAA;AAAA,gBACN,MAAO,EAAA,IAAA;AAAA,gBACP,OAAQ,EAAA,WAAA;AAAA,gBACR,IAAK,EAAA,MAAA;AAAA;gBAELC,uBAGE,MAAA,EAAA;AAAA,kBAFA,CAAE,EAAA,qHAAA;AAAA,kBACF,IAAK,EAAA,SAAA;AAAA;;;YAIXA,uBAiCM,KAAA,EAAA;AAAA,cAjCD,KAAM,EAAA,qBAAA;AAAA,cAAuB,2BAAY,qBAAqB,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA;8BACjE,EAAAD,sBAAA,CA+BM,KAAA,EAAA;AAAA,gBA9BJ,KAAM,EAAA,4BAAA;AAAA,gBACN,KAAM,EAAA,IAAA;AAAA,gBACN,MAAO,EAAA,IAAA;AAAA,gBACP,OAAQ,EAAA,WAAA;AAAA,gBACR,IAAK,EAAA,MAAA;AAAA;gBAELC,uBAKE,MAAA,EAAA;AAAA,kBAJA,WAAU,EAAA,SAAA;AAAA,kBACV,WAAU,EAAA,SAAA;AAAA,kBACV,CAAE,EAAA,ucAAA;AAAA,kBACF,IAAK,EAAA,SAAA;AAAA;gBAEPA,uBAKE,MAAA,EAAA;AAAA,kBAJA,WAAU,EAAA,SAAA;AAAA,kBACV,WAAU,EAAA,SAAA;AAAA,kBACV,CAAE,EAAA,mDAAA;AAAA,kBACF,IAAK,EAAA,SAAA;AAAA;gBAEPA,uBAKE,MAAA,EAAA;AAAA,kBAJA,WAAU,EAAA,SAAA;AAAA,kBACV,WAAU,EAAA,SAAA;AAAA,kBACV,CAAE,EAAA,mDAAA;AAAA,kBACF,IAAK,EAAA,SAAA;AAAA;gBAEPA,uBAKE,MAAA,EAAA;AAAA,kBAJA,WAAU,EAAA,SAAA;AAAA,kBACV,WAAU,EAAA,SAAA;AAAA,kBACV,CAAE,EAAA,iDAAA;AAAA,kBACF,IAAK,EAAA,SAAA;AAAA;;;;;QAQJ,aAAa,CAAA,KAAA,qBAAxBD,uBAqBM,KAAA,EAAA;AAAA;iBArBwB,EAAA,iBAAA;AAAA,UAAJ,GAAI,EAAA,eAAA;AAAA,UAAkB,KAAM,EAAA,kBAAA;AAAA;UAEpDC,sBAAA,CAkBM,OAAA,IAAA,EAAA;AAAA,YAjBO,MAAM,WAAY,CAAA,MAAA,KAAM,sBAAnCD,uBAEM,KAAA,EAAA;AAAA;cAFqC,KAAM,EAAA,YAAA;AAAA;cAC/CC,sBAAA,CAAa,WAAV,sCAAM,CAAA;AAAA,oCAEXD,uBAaM,KAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,EAAA;AAAA,cAZJC,sBAWM,CAAA,KAAA,EAAA,EAXD,KAAA,EAAM,iBAAe,EAAA;AAAA,gBAIxBC,gBAMEC,uDAAA,EAAA;AAAA,kBALC,eAAa,KAAM,CAAA,UAAA;AAAA,kBACnB,gBAAc,KAAM,CAAA,WAAA;AAAA,kBACpB,YAAa,EAAA,UAAA;AAAA,kBACb,YAAa,EAAA,gBAAA;AAAA,kBACb,YAAa,EAAA,gBAAA;AAAA;;;;;;;;;;;;"}
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var Input_vue_vue_type_script_setup_true_lang = require('./Input.vue2.js');
6
-
7
-
8
-
9
- exports.default = Input_vue_vue_type_script_setup_true_lang.default;
10
- //# sourceMappingURL=Input.vue.js.map