@touchvue/chat 1.0.0-beta.35 → 1.0.0-beta.37

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.
@@ -21,7 +21,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
21
21
  agentsType: "",
22
22
  clickCreateNum: 0
23
23
  });
24
- const historyContainer = vue.ref(null);
25
24
  const watchHistoryData = vue.ref([]);
26
25
  const watchHistoryDetail = vue.ref([]);
27
26
  const chatComponent = vue.ref();
@@ -172,10 +171,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
172
171
  vue.onMounted(() => {
173
172
  loadFromLocalStorage();
174
173
  });
175
- function saveToLocalStorage() {
174
+ const saveToLocalStorage = () => {
176
175
  localStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, JSON.stringify(state.chatHistory));
177
176
  localStorage.setItem(STORAGE_KEYS.SIDEBAR_STATE, JSON.stringify(state.isSidebarCollapsed));
178
- }
177
+ };
179
178
  const toggleSidebarOut = (item, index) => {
180
179
  messageItem.value = item;
181
180
  messageIndex.value = index;
@@ -186,11 +185,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
186
185
  state.isSidebarCollapsed = false;
187
186
  toggleSidebar();
188
187
  };
189
- function toggleSidebar() {
188
+ const toggleSidebar = () => {
190
189
  state.isSidebarCollapsed = !state.isSidebarCollapsed;
191
190
  saveToLocalStorage();
192
- }
193
- function createNewChat(title = "\u65B0\u5BF9\u8BDD", messageList = [], type) {
191
+ };
192
+ const createNewChat = (title = "\u65B0\u5BF9\u8BDD", messageList = [], type) => {
194
193
  var _a;
195
194
  let agentsId = "";
196
195
  if (agents.length > 0) {
@@ -207,8 +206,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
207
206
  state.chatHistory.unshift(newChat);
208
207
  saveToLocalStorage();
209
208
  return newChat;
210
- }
211
- function startNewChat() {
209
+ };
210
+ const startNewChat = () => {
212
211
  var _a, _b, _c, _d, _e, _f, _g;
213
212
  localStorage.setItem("activeAgentsName", "");
214
213
  const robotHistory = localStorage.getItem(STORAGE_KEYS.CHAT_HISTORY) || "[]";
@@ -242,11 +241,20 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
242
241
  const newChat = createNewChat("\u65B0\u5BF9\u8BDD" + (state.chatHistory.length + 1));
243
242
  state.activeChat = newChat.id;
244
243
  change("");
245
- }
244
+ };
246
245
  const change = vue.inject("change", () => {
247
246
  console.warn("\u672A\u63D0\u4F9Bchange\u51FD\u6570");
248
247
  });
249
- function selectChat(id, type) {
248
+ const changeChatHistory = (index) => {
249
+ state.activeChat = state.chatHistory[index].id;
250
+ change(state.chatHistory[index].id);
251
+ };
252
+ const clearChatHistory = () => {
253
+ state.chatHistory = [];
254
+ state.activeChat = "";
255
+ localStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, JSON.stringify([]));
256
+ };
257
+ const selectChat = (id, type) => {
250
258
  state.activeChat = id;
251
259
  state.toggleSidebarFlag = false;
252
260
  state.agentsType = type;
@@ -255,11 +263,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
255
263
  }
256
264
  change(id);
257
265
  resetAllMenus();
258
- }
266
+ };
259
267
  const historyRemove = vue.inject("historyRemove", () => {
260
268
  console.warn("\u672A\u63D0\u4F9Bremove\u51FD\u6570");
261
269
  });
262
- function deleteChat(id) {
270
+ const deleteChat = (id) => {
263
271
  const index = state.chatHistory.findIndex((item) => item.id === id);
264
272
  if (index === -1)
265
273
  return;
@@ -272,11 +280,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
272
280
  }
273
281
  historyRemove(id);
274
282
  saveToLocalStorage();
275
- }
283
+ };
276
284
  const beforeSendMessage = () => {
277
285
  state.toggleSidebarFlag = false;
278
286
  };
279
- function sendMessage(messageList, type) {
287
+ const sendMessage = (messageList, type) => {
280
288
  state.mockMessages = messageList;
281
289
  if (type) {
282
290
  return;
@@ -293,12 +301,12 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
293
301
  }
294
302
  saveToLocalStorage();
295
303
  }
296
- }
297
- function resetAllMenus() {
304
+ };
305
+ const resetAllMenus = () => {
298
306
  Object.keys(state.actionMenuVisible).forEach((key) => {
299
307
  state.actionMenuVisible[key] = false;
300
308
  });
301
- }
309
+ };
302
310
  const handleRenameChat = (id, newTitle) => {
303
311
  const item = state.chatHistory.find((item2) => item2.id === id);
304
312
  if (item) {
@@ -323,7 +331,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
323
331
  state.toggleSidebarFlag = false;
324
332
  },
325
333
  create: () => {
326
- startNewChat();
334
+ const newChat = createNewChat("\u65B0\u5BF9\u8BDD" + (state.chatHistory.length + 1));
335
+ state.activeChat = newChat.id;
336
+ change("");
327
337
  },
328
338
  retry: (index) => {
329
339
  var _a;
@@ -332,183 +342,180 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
332
342
  update: (index, message) => {
333
343
  var _a;
334
344
  (_a = chatComponent.value) == null ? void 0 : _a.update(index, message);
345
+ },
346
+ changeChat: (index) => {
347
+ changeChatHistory(index);
348
+ },
349
+ clearChat: () => {
350
+ clearChatHistory();
335
351
  }
336
352
  });
337
353
  return (_ctx, _cache) => {
338
- return vue.openBlock(), vue.createElementBlock(
339
- "div",
340
- {
341
- ref_key: "historyContainer",
342
- ref: historyContainer,
343
- class: "touchchat"
344
- },
345
- [
346
- state.isSidebarCollapsed && !isNotHeader ? (vue.openBlock(), vue.createElementBlock("div", {
347
- key: 0,
348
- class: "touchchat-header"
354
+ return vue.openBlock(), vue.createElementBlock("div", { class: "touchchat" }, [
355
+ state.isSidebarCollapsed && !isNotHeader ? (vue.openBlock(), vue.createElementBlock("div", {
356
+ key: 0,
357
+ class: "touchchat-header"
358
+ }, [
359
+ vue.createElementVNode("div", {
360
+ class: "touchchat-showmenu",
361
+ onClick: vue.withModifiers(toggleSidebar, ["stop"])
362
+ }, [
363
+ vue.createElementVNode("div", { class: "touchchat-showmenu-icon" })
364
+ ]),
365
+ vue.createElementVNode("div", {
366
+ class: "touchchat-add-lite",
367
+ onClick: vue.withModifiers(startNewChat, ["stop"])
349
368
  }, [
350
- vue.createElementVNode("div", {
351
- class: "touchchat-showmenu",
352
- onClick: vue.withModifiers(toggleSidebar, ["stop"])
353
- }, [
354
- vue.createElementVNode("div", { class: "touchchat-showmenu-icon" })
369
+ vue.createElementVNode("div", { class: "touchchat-add-lite-icon" }),
370
+ vue.createElementVNode("span", null, "\u65B0\u5BF9\u8BDD")
371
+ ])
372
+ ])) : vue.createCommentVNode("v-if", true),
373
+ vue.createElementVNode("div", { class: "touchchat-content" }, [
374
+ !isNotHeader && !state.isSidebarCollapsed ? (vue.openBlock(), vue.createBlock(HistorySidebar.default, {
375
+ key: 0,
376
+ "is-sidebar-collapsed": state.isSidebarCollapsed,
377
+ "active-chat": state.activeChat,
378
+ "chat-history": state.chatHistory,
379
+ onToggleSidebar: toggleSidebar,
380
+ onStartNewChat: startNewChat,
381
+ onSelectChat: selectChat,
382
+ onRenameChat: handleRenameChat,
383
+ onDeleteChat: deleteChat
384
+ }, null, 8, ["is-sidebar-collapsed", "active-chat", "chat-history"])) : vue.createCommentVNode("v-if", true),
385
+ !iIsAgent.value ? (vue.openBlock(), vue.createBlock(TouchChat.default, {
386
+ ref_key: "chatComponent",
387
+ ref: chatComponent,
388
+ key: state.activeChat + "-chat",
389
+ value: currentChatMessages.value,
390
+ onSendMessage: sendMessage,
391
+ onToggleSidebar: toggleSidebarOut,
392
+ onBeforeSendMessage: beforeSendMessage
393
+ }, {
394
+ aimsg: vue.withCtx(({ item, index }) => [
395
+ vue.renderSlot(_ctx.$slots, "aimsg", {
396
+ item,
397
+ index
398
+ })
399
+ ]),
400
+ msg: vue.withCtx(({ item, index }) => [
401
+ vue.renderSlot(_ctx.$slots, "msg", {
402
+ item,
403
+ index
404
+ })
405
+ ]),
406
+ aiAvatar: vue.withCtx(() => [
407
+ vue.renderSlot(_ctx.$slots, "aiAvatar")
408
+ ]),
409
+ userAvatar: vue.withCtx(() => [
410
+ vue.renderSlot(_ctx.$slots, "userAvatar")
411
+ ]),
412
+ welcome: vue.withCtx(() => [
413
+ vue.renderSlot(_ctx.$slots, "welcome")
414
+ ]),
415
+ edit: vue.withCtx(() => [
416
+ vue.renderSlot(_ctx.$slots, "edit")
417
+ ]),
418
+ shortcut: vue.withCtx(() => [
419
+ vue.renderSlot(_ctx.$slots, "shortcut")
420
+ ]),
421
+ top: vue.withCtx(() => [
422
+ vue.renderSlot(_ctx.$slots, "top")
423
+ ]),
424
+ fn: vue.withCtx(({ item, index }) => [
425
+ vue.renderSlot(_ctx.$slots, "fn", {
426
+ item,
427
+ index
428
+ })
429
+ ]),
430
+ extendsFn: vue.withCtx(({ item, index }) => [
431
+ vue.renderSlot(_ctx.$slots, "extendsFn", {
432
+ item,
433
+ index
434
+ })
435
+ ]),
436
+ _: 3
437
+ /* FORWARDED */
438
+ }, 8, ["value"])) : (vue.openBlock(), vue.createElementBlock(
439
+ vue.Fragment,
440
+ { key: 2 },
441
+ [
442
+ vue.createCommentVNode(' :key="state.activeChat" '),
443
+ (vue.openBlock(), vue.createBlock(TouchAgent.default, {
444
+ ref_key: "chatComponent",
445
+ ref: chatComponent,
446
+ key: state.activeChat + "-agent",
447
+ value: currentChatMessages.value,
448
+ onSendMessage: sendMessage,
449
+ onToggleSidebar: toggleSidebarOut,
450
+ onBeforeSendMessage: beforeSendMessage
451
+ }, {
452
+ aimsg: vue.withCtx(({ item, index }) => [
453
+ vue.renderSlot(_ctx.$slots, "aimsg", {
454
+ item,
455
+ index
456
+ })
457
+ ]),
458
+ msg: vue.withCtx(({ item, index }) => [
459
+ vue.renderSlot(_ctx.$slots, "msg", {
460
+ item,
461
+ index
462
+ })
463
+ ]),
464
+ aiAvatar: vue.withCtx(() => [
465
+ vue.renderSlot(_ctx.$slots, "aiAvatar")
466
+ ]),
467
+ userAvatar: vue.withCtx(() => [
468
+ vue.renderSlot(_ctx.$slots, "userAvatar")
469
+ ]),
470
+ welcome: vue.withCtx(() => [
471
+ vue.renderSlot(_ctx.$slots, "welcome")
472
+ ]),
473
+ edit: vue.withCtx(() => [
474
+ vue.renderSlot(_ctx.$slots, "edit")
475
+ ]),
476
+ shortcut: vue.withCtx(() => [
477
+ vue.renderSlot(_ctx.$slots, "shortcut")
478
+ ]),
479
+ top: vue.withCtx(() => [
480
+ vue.renderSlot(_ctx.$slots, "top")
481
+ ]),
482
+ fn: vue.withCtx(({ item, index }) => [
483
+ vue.renderSlot(_ctx.$slots, "fn", {
484
+ item,
485
+ index
486
+ })
487
+ ]),
488
+ extendsFn: vue.withCtx(({ item, index }) => [
489
+ vue.renderSlot(_ctx.$slots, "extendsFn", {
490
+ item,
491
+ index
492
+ })
493
+ ]),
494
+ _: 3
495
+ /* FORWARDED */
496
+ }, 8, ["value"]))
497
+ ],
498
+ 2112
499
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
500
+ )),
501
+ vue.withDirectives(vue.createVNode(SiderBarView.default, {
502
+ flag: state.isSidebarCollapsed,
503
+ item: messageItem.value,
504
+ index: messageIndex.value
505
+ }, {
506
+ extend: vue.withCtx(({ item: slotMessageItem, index: slotMessageIndex }) => [
507
+ vue.renderSlot(_ctx.$slots, "extend", {
508
+ item: slotMessageItem,
509
+ index: slotMessageIndex
510
+ })
355
511
  ]),
356
- vue.createElementVNode("div", {
357
- class: "touchchat-add-lite",
358
- onClick: vue.withModifiers(startNewChat, ["stop"])
359
- }, [
360
- vue.createElementVNode("div", { class: "touchchat-add-lite-icon" }),
361
- vue.createElementVNode("span", null, "\u65B0\u5BF9\u8BDD")
362
- ])
363
- ])) : vue.createCommentVNode("v-if", true),
364
- vue.createElementVNode("div", { class: "touchchat-content" }, [
365
- !isNotHeader && !state.isSidebarCollapsed ? (vue.openBlock(), vue.createBlock(HistorySidebar.default, {
366
- key: 0,
367
- "is-sidebar-collapsed": state.isSidebarCollapsed,
368
- "active-chat": state.activeChat,
369
- "chat-history": state.chatHistory,
370
- onToggleSidebar: toggleSidebar,
371
- onStartNewChat: startNewChat,
372
- onSelectChat: selectChat,
373
- onRenameChat: handleRenameChat,
374
- onDeleteChat: deleteChat
375
- }, null, 8, ["is-sidebar-collapsed", "active-chat", "chat-history"])) : vue.createCommentVNode("v-if", true),
376
- !iIsAgent.value ? (vue.openBlock(), vue.createBlock(TouchChat.default, {
377
- ref_key: "chatComponent",
378
- ref: chatComponent,
379
- key: state.activeChat,
380
- value: currentChatMessages.value,
381
- onSendMessage: sendMessage,
382
- onToggleSidebar: toggleSidebarOut,
383
- onBeforeSendMessage: beforeSendMessage
384
- }, {
385
- aimsg: vue.withCtx(({ item, index }) => [
386
- vue.renderSlot(_ctx.$slots, "aimsg", {
387
- item,
388
- index
389
- })
390
- ]),
391
- msg: vue.withCtx(({ item, index }) => [
392
- vue.renderSlot(_ctx.$slots, "msg", {
393
- item,
394
- index
395
- })
396
- ]),
397
- aiAvatar: vue.withCtx(() => [
398
- vue.renderSlot(_ctx.$slots, "aiAvatar")
399
- ]),
400
- userAvatar: vue.withCtx(() => [
401
- vue.renderSlot(_ctx.$slots, "userAvatar")
402
- ]),
403
- welcome: vue.withCtx(() => [
404
- vue.renderSlot(_ctx.$slots, "welcome")
405
- ]),
406
- edit: vue.withCtx(() => [
407
- vue.renderSlot(_ctx.$slots, "edit")
408
- ]),
409
- shortcut: vue.withCtx(() => [
410
- vue.renderSlot(_ctx.$slots, "shortcut")
411
- ]),
412
- top: vue.withCtx(() => [
413
- vue.renderSlot(_ctx.$slots, "top")
414
- ]),
415
- fn: vue.withCtx(({ item, index }) => [
416
- vue.renderSlot(_ctx.$slots, "fn", {
417
- item,
418
- index
419
- })
420
- ]),
421
- extendsFn: vue.withCtx(({ item, index }) => [
422
- vue.renderSlot(_ctx.$slots, "extendsFn", {
423
- item,
424
- index
425
- })
426
- ]),
427
- _: 3
428
- /* FORWARDED */
429
- }, 8, ["value"])) : (vue.openBlock(), vue.createElementBlock(
430
- vue.Fragment,
431
- { key: 2 },
432
- [
433
- vue.createCommentVNode(' :key="state.activeChat" '),
434
- vue.createVNode(TouchAgent.default, {
435
- ref_key: "chatComponent",
436
- ref: chatComponent,
437
- value: currentChatMessages.value,
438
- onSendMessage: sendMessage,
439
- onToggleSidebar: toggleSidebarOut,
440
- onBeforeSendMessage: beforeSendMessage
441
- }, {
442
- aimsg: vue.withCtx(({ item, index }) => [
443
- vue.renderSlot(_ctx.$slots, "aimsg", {
444
- item,
445
- index
446
- })
447
- ]),
448
- msg: vue.withCtx(({ item, index }) => [
449
- vue.renderSlot(_ctx.$slots, "msg", {
450
- item,
451
- index
452
- })
453
- ]),
454
- aiAvatar: vue.withCtx(() => [
455
- vue.renderSlot(_ctx.$slots, "aiAvatar")
456
- ]),
457
- userAvatar: vue.withCtx(() => [
458
- vue.renderSlot(_ctx.$slots, "userAvatar")
459
- ]),
460
- welcome: vue.withCtx(() => [
461
- vue.renderSlot(_ctx.$slots, "welcome")
462
- ]),
463
- edit: vue.withCtx(() => [
464
- vue.renderSlot(_ctx.$slots, "edit")
465
- ]),
466
- shortcut: vue.withCtx(() => [
467
- vue.renderSlot(_ctx.$slots, "shortcut")
468
- ]),
469
- top: vue.withCtx(() => [
470
- vue.renderSlot(_ctx.$slots, "top")
471
- ]),
472
- fn: vue.withCtx(({ item, index }) => [
473
- vue.renderSlot(_ctx.$slots, "fn", {
474
- item,
475
- index
476
- })
477
- ]),
478
- extendsFn: vue.withCtx(({ item, index }) => [
479
- vue.renderSlot(_ctx.$slots, "extendsFn", {
480
- item,
481
- index
482
- })
483
- ]),
484
- _: 3
485
- /* FORWARDED */
486
- }, 8, ["value"])
487
- ],
488
- 2112
489
- /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
490
- )),
491
- vue.withDirectives(vue.createVNode(SiderBarView.default, {
492
- flag: state.isSidebarCollapsed,
493
- item: messageItem.value,
494
- index: messageIndex.value
495
- }, {
496
- extend: vue.withCtx(({ item: slotMessageItem, index: slotMessageIndex }) => [
497
- vue.renderSlot(_ctx.$slots, "extend", {
498
- item: slotMessageItem,
499
- index: slotMessageIndex
500
- })
501
- ]),
502
- _: 3
503
- /* FORWARDED */
504
- }, 8, ["flag", "item", "index"]), [
505
- [vue.vShow, state.toggleSidebarFlag]
506
- ])
512
+ _: 3
513
+ /* FORWARDED */
514
+ }, 8, ["flag", "item", "index"]), [
515
+ [vue.vShow, state.toggleSidebarFlag]
507
516
  ])
508
- ],
509
- 512
510
- /* NEED_PATCH */
511
- );
517
+ ])
518
+ ]);
512
519
  };
513
520
  }
514
521
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TouchHistory.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchHistory.vue"],"sourcesContent":["<template>\n\t<div ref=\"historyContainer\" class=\"touchchat\">\n\t\t<div v-if=\"state.isSidebarCollapsed && !isNotHeader\" class=\"touchchat-header\">\n\t\t\t<div class=\"touchchat-showmenu\" @click.stop=\"toggleSidebar\">\n\t\t\t\t<div class=\"touchchat-showmenu-icon\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-add-lite\" @click.stop=\"startNewChat\">\n\t\t\t\t<div class=\"touchchat-add-lite-icon\"></div>\n\t\t\t\t<span>新对话</span>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"touchchat-content\">\n\t\t\t<HistorySidebar v-if=\"!isNotHeader && !state.isSidebarCollapsed\" :is-sidebar-collapsed=\"state.isSidebarCollapsed\" :active-chat=\"state.activeChat\" :chat-history=\"state.chatHistory\" @toggle-sidebar=\"toggleSidebar\" @start-new-chat=\"startNewChat\" @select-chat=\"selectChat\" @rename-chat=\"handleRenameChat\" @delete-chat=\"deleteChat\"> </HistorySidebar>\n\t\t\t<TouchChat v-if=\"!iIsAgent\" ref=\"chatComponent\" :key=\"state.activeChat\" :value=\"currentChatMessages\" @send-message=\"sendMessage\" @toggle-sidebar=\"toggleSidebarOut\" @before-send-message=\"beforeSendMessage\">\n\t\t\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #msg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #userAvatar>\n\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #welcome>\n\t\t\t\t\t<slot name=\"welcome\" />\n\t\t\t\t</template>\n\t\t\t\t<template #edit>\n\t\t\t\t\t<slot name=\"edit\" />\n\t\t\t\t</template>\n\t\t\t\t<template #shortcut>\n\t\t\t\t\t<slot name=\"shortcut\" />\n\t\t\t\t</template>\n\t\t\t\t<template #top>\n\t\t\t\t\t<slot name=\"top\" />\n\t\t\t\t</template>\n\t\t\t\t<template #fn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t</TouchChat>\n\t\t\t<!-- :key=\"state.activeChat\" -->\n\t\t\t<TouchAgent v-else ref=\"chatComponent\" :value=\"currentChatMessages\" @send-message=\"sendMessage\" @toggle-sidebar=\"toggleSidebarOut\" @before-send-message=\"beforeSendMessage\">\n\t\t\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #msg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #userAvatar>\n\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #welcome>\n\t\t\t\t\t<slot name=\"welcome\" />\n\t\t\t\t</template>\n\t\t\t\t<template #edit>\n\t\t\t\t\t<slot name=\"edit\" />\n\t\t\t\t</template>\n\t\t\t\t<template #shortcut>\n\t\t\t\t\t<slot name=\"shortcut\" />\n\t\t\t\t</template>\n\t\t\t\t<template #top>\n\t\t\t\t\t<slot name=\"top\" />\n\t\t\t\t</template>\n\t\t\t\t<template #fn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t</TouchAgent>\n\t\t\t<SiderBarView v-show=\"state.toggleSidebarFlag\" :flag=\"state.isSidebarCollapsed\" :item=\"messageItem\" :index=\"messageIndex\">\n\t\t\t\t<template #extend=\"{ item: slotMessageItem, index: slotMessageIndex }\">\n\t\t\t\t\t<slot name=\"extend\" :item=\"slotMessageItem\" :index=\"slotMessageIndex\" />\n\t\t\t\t</template>\n\t\t\t</SiderBarView>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, computed, watch, reactive, inject, ref, provide, Ref } from 'vue'\nimport TouchChat from './TouchChat.vue'\nimport TouchAgent from './TouchAgent.vue'\nimport HistorySidebar from './HistorySidebar.vue'\nimport SiderBarView from './SiderBarView.vue'\nimport type { ChatMessage } from './SiderBarView.vue'\n\ninterface HistoryItem {\n\tid: string\n\ttitle: string\n\ttime: Date\n\ttype: string // 用于区分不同类型的对话\n\tmessages?: ChatMessage[]\n}\n\ninterface Agent {\n\tid: string\n\tname: string\n\tintro: string\n}\n\n// 状态管理\nconst state = reactive({\n\tactiveChat: '',\n\tchatHistory: [] as HistoryItem[],\n\tisSidebarCollapsed: false,\n\tactionMenuVisible: {} as Record<string, boolean>,\n\tmockMessages: [] as ChatMessage[],\n\ttoggleSidebarFlag: false,\n\tagentsType: '',\n\tclickCreateNum: 0\n})\nconst historyContainer = ref(null)\nconst watchHistoryData = ref<HistoryItem[]>([])\nconst watchHistoryDetail = ref<ChatMessage[]>([])\nconst chatComponent = ref<InstanceType<typeof TouchChat>>()\n\nconst layout = inject<string>('layout', 'side, think, upload, chain')\nconst isNotHeader = !layout.includes('side')\nconst scripts = inject<any[]>('scripts', [])\nconst agents = inject<Agent[]>('agents', [])\nconst agentsInfo = ref<Agent>()\nconst isAgentRef = inject<Ref<boolean>>('isAgent', ref(false))\nconst iIsAgent = ref(isAgentRef.value)\nwatch(\n\tisAgentRef,\n\tnewVal => {\n\t\tiIsAgent.value = newVal\n\t},\n\t{ immediate: true }\n)\n// 提供更新函数给后代组件\nconst updateSharedData = (item: Agent) => {\n\tagentsInfo.value = item\n\tif (chatComponent.value) {\n\t\tchatComponent.value?.handleAgentSelect?.(item)\n\t}\n}\nprovide('updateSharedData', updateSharedData)\n\n// 本地存储相关\nconst STORAGE_KEYS = {\n\tCHAT_HISTORY: scripts.length === 0 ? 'chatHistory' : 'robotHistory',\n\tSIDEBAR_STATE: 'sidebarCollapsed'\n}\n\nconst loadFromLocalStorage = () => {\n\t// 加载折叠状态\n\tconst savedCollapseState = localStorage.getItem(STORAGE_KEYS.SIDEBAR_STATE)\n\tif (savedCollapseState) {\n\t\tstate.isSidebarCollapsed = JSON.parse(savedCollapseState)\n\t}\n\n\tif (scripts.length > 0) {\n\t\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, '[]')\n\t\tlocalStorage.setItem('activeAgentsName', '')\n\t}\n\n\t// 加载聊天历史\n\tconst savedHistory = localStorage.getItem(STORAGE_KEYS.CHAT_HISTORY)\n\tconst historyData = JSON.parse(savedHistory || '[]')\n\tif (agents.length > 0 && !historyData.length) {\n\t\tagents.forEach(item => {\n\t\t\tconst agentsList = [\n\t\t\t\t{\n\t\t\t\t\tchatId: item.id,\n\t\t\t\t\tuser: 'ai',\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tisShowLike: true,\n\t\t\t\t\tcontent: item?.intro || '我是AI助手,我可以回答你的问题,你可以和我聊天,也可以问我问题。'\n\t\t\t\t}\n\t\t\t]\n\t\t\tcreateNewChat(item.name, agentsList, item.name)\n\t\t})\n\t}\n\tif (watchHistoryData.value.length > 0) {\n\t\tstate.chatHistory = watchHistoryData.value\n\t\t// if (state.chatHistory.length > 0) {\n\t\t// \tstate.activeChat = state.chatHistory[0].id\n\t\t// }\n\t} else if (historyData.length > 0) {\n\t\tstate.chatHistory = historyData\n\t\t// if (state.chatHistory.length > 0) {\n\t\t// \tstate.activeChat = state.chatHistory[0].id\n\t\t// }\n\t}\n\t// else {\n\t// \t// 初始化默认对话\n\t// \tconst newChat = createNewChat('AI基础问答')\n\t// \tstate.activeChat = newChat.id\n\t// }\n}\n\nconst historyList = inject<any>('historyList', [])\nconst setHistoryData = ref(Array.isArray(historyList) ? historyList : typeof historyList === 'object' && historyList ? historyList : [])\nconst computedHistoryData = computed(() => {\n\tif (setHistoryData.value.length) {\n\t\treturn setHistoryData.value\n\t}\n\treturn []\n})\nwatch(\n\tcomputedHistoryData,\n\tnewVal => {\n\t\twatchHistoryData.value = newVal\n\t\tstate.chatHistory = newVal\n\t\tloadFromLocalStorage()\n\t},\n\t{ immediate: true }\n)\nconst historyDetail = inject<ChatMessage[]>('historyDetail', [])\nconst setMessageDetail = ref(Array.isArray(historyDetail) ? historyDetail : typeof historyDetail === 'object' && historyDetail ? historyDetail : [])\nconst computedHistoryDetail = computed(() => {\n\tif (setMessageDetail.value.length) {\n\t\treturn setMessageDetail.value\n\t}\n\treturn []\n})\nwatch(\n\tcomputedHistoryDetail,\n\tnewVal => {\n\t\twatchHistoryDetail.value = newVal\n\t},\n\t{ immediate: true }\n)\nconst messageItem = ref<ChatMessage>({ user: '', type: '', content: '' })\nconst messageIndex = ref<number>(0)\n\n// 修改currentChatMessages计算属性\nconst currentChatMessages = computed(() => {\n\tif (watchHistoryDetail.value.length) {\n\t\treturn watchHistoryDetail.value\n\t}\n\tif (!state.activeChat) return []\n\tif ((!watchHistoryDetail.value.length && !watchHistoryData.value.length) || watchHistoryData.value.length) {\n\t\tconst currentChat = state.chatHistory.find(item => item.id === state.activeChat)\n\t\treturn currentChat?.messages || []\n\t} else {\n\t\treturn watchHistoryDetail.value\n\t}\n})\n\nwatch(\n\t() => {\n\t\tif (typeof historyList === 'object' && historyList !== undefined) {\n\t\t\treturn historyList\n\t\t}\n\t\treturn historyList\n\t},\n\tnewVal => {\n\t\tif (newVal && Array.isArray(newVal) && newVal.length) {\n\t\t\twatchHistoryData.value = newVal\n\t\t\t// loadFromLocalStorage()\n\t\t\tif (!scripts.length) {\n\t\t\t\tstate.chatHistory = newVal\n\t\t\t\tif (state.chatHistory.length > 0 && !state.activeChat) {\n\t\t\t\t\tstate.activeChat = state.chatHistory[0].id\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{ deep: true }\n)\n\nwatch(\n\t() => {\n\t\tif (typeof historyDetail === 'object' && historyDetail !== undefined) {\n\t\t\treturn historyDetail\n\t\t}\n\t\treturn historyDetail\n\t},\n\tnewVal => {\n\t\tif (newVal && Array.isArray(newVal)) {\n\t\t\twatchHistoryDetail.value = JSON.parse(JSON.stringify(newVal))\n\t\t\tif (chatComponent.value) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tchatComponent.value?.$forceUpdate?.()\n\t\t\t\t}, 0)\n\t\t\t}\n\t\t}\n\t},\n\t{ deep: true, immediate: true }\n)\n\n// 生命周期\nonMounted(() => {\n\tloadFromLocalStorage()\n\t// 初始化事件监听\n\t// initEventListeners()\n})\n\nfunction saveToLocalStorage() {\n\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, JSON.stringify(state.chatHistory))\n\tlocalStorage.setItem(STORAGE_KEYS.SIDEBAR_STATE, JSON.stringify(state.isSidebarCollapsed))\n}\n\n// 事件监听\n// function initEventListeners() {\n// \tdocument.addEventListener('click', () => {\n// \t\t// 点击空白处关闭所有菜单\n// \t\tObject.keys(state.actionMenuVisible).forEach(key => {\n// \t\t\tstate.actionMenuVisible[key] = false\n// \t\t})\n// \t})\n// }\n\nconst toggleSidebarOut = (item: ChatMessage, index: number) => {\n\tmessageItem.value = item\n\tmessageIndex.value = index\n\tif (state.toggleSidebarFlag) {\n\t\treturn\n\t}\n\tstate.toggleSidebarFlag = true\n\tstate.isSidebarCollapsed = false\n\ttoggleSidebar()\n}\n\n// 侧边栏控制\nfunction toggleSidebar() {\n\tstate.isSidebarCollapsed = !state.isSidebarCollapsed\n\tsaveToLocalStorage()\n}\n\n// 聊天管理\nfunction createNewChat(title: string = '新对话', messageList: ChatMessage[] = [], type?: string) {\n\tlet agentsId = ''\n\tif (agents.length > 0) {\n\t\tagentsId = agents.find(item => item.name === title)?.id || ''\n\t}\n\tconst newChat: HistoryItem = {\n\t\t// id: Date.now().toString(),\n\t\tid: agentsId ? agentsId : (Math.floor(Math.random() * 89999999) + 10000000).toString(),\n\t\ttitle,\n\t\ttime: new Date(),\n\t\tmessages: messageList,\n\t\ttype: type ? type : ''\n\t}\n\n\tstate.chatHistory.unshift(newChat)\n\tsaveToLocalStorage()\n\treturn newChat\n}\n\nfunction startNewChat() {\n\tlocalStorage.setItem('activeAgentsName', '')\n\tconst robotHistory = localStorage.getItem(STORAGE_KEYS.CHAT_HISTORY) || '[]'\n\tconst robotHistoryData = JSON.parse(robotHistory)\n\tlet messageList: ChatMessage[] = []\n\tlet messageItem: HistoryItem = {} as HistoryItem\n\tlet firstMessageList: ChatMessage[] = []\n\tif (robotHistoryData.length) {\n\t\tmessageItem = robotHistoryData.find((item: HistoryItem) => item.id === state.activeChat) || ({} as HistoryItem)\n\t\tmessageList = messageItem?.messages || []\n\t\tfirstMessageList = robotHistoryData?.[0]?.messages || ([] as ChatMessage[])\n\t}\n\tstate.toggleSidebarFlag = false\n\tif ((watchHistoryData.value.length > 0 && firstMessageList.length > 0 && (watchHistoryDetail.value.length > 0 || currentChatMessages.value.length > 0 || messageList.length > 0)) || (!messageItem?.messages && firstMessageList.length > 0) || !state.clickCreateNum) {\n\t\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\n\t\tstate.activeChat = newChat.id\n\t\tchange('')\n\t\tstate.clickCreateNum++\n\t\treturn\n\t}\n\tif (state.chatHistory.length > 0 && !state.chatHistory?.[0]?.messages?.length) {\n\t\tstate.activeChat = state.chatHistory[0].id\n\t\tchange('')\n\t\treturn\n\t}\n\tif (!currentChatMessages.value.length && state.chatHistory.length > 0) {\n\t\tstate.activeChat = state.chatHistory?.[0]?.id ?? ''\n\t\tchange('')\n\t\treturn\n\t}\n\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\n\tstate.activeChat = newChat.id\n\tchange('')\n}\n\nconst change = inject<(id: string) => void>('change', () => {\n\tconsole.warn('未提供change函数')\n})\n\nfunction selectChat(id: string, type?: string) {\n\tstate.activeChat = id\n\tstate.toggleSidebarFlag = false\n\tstate.agentsType = type as string\n\tif (!type) {\n\t\tlocalStorage.setItem('activeAgentsName', '')\n\t}\n\tchange(id)\n\tresetAllMenus()\n}\n\nconst historyRemove = inject<(id: string) => void>('historyRemove', () => {\n\tconsole.warn('未提供remove函数')\n})\n\nfunction deleteChat(id: string) {\n\tconst index = state.chatHistory.findIndex(item => item.id === id)\n\tif (index === -1) return\n\n\tstate.chatHistory.splice(index, 1)\n\n\tif (state.chatHistory.length > 0) {\n\t\tselectChat(state.chatHistory[0].id)\n\t} else {\n\t\tstate.activeChat = ''\n\t\tstate.mockMessages = []\n\t}\n\thistoryRemove(id)\n\tsaveToLocalStorage()\n}\n\nconst beforeSendMessage = () => {\n\tstate.toggleSidebarFlag = false\n}\n\nfunction sendMessage(messageList: ChatMessage[], type?: string) {\n\tstate.mockMessages = messageList\n\n\tif (type) {\n\t\treturn\n\t}\n\n\tif (!state.activeChat) {\n\t\tconst newChat = createNewChat('AI基础问答', messageList)\n\t\tnewChat.messages = messageList\n\t\tstate.activeChat = newChat.id\n\t} else {\n\t\tconst currentChat = state.chatHistory.find(item => item.id === state.activeChat)\n\t\tif (currentChat) {\n\t\t\tcurrentChat.messages = messageList\n\t\t\tcurrentChat.time = new Date()\n\t\t}\n\t\tsaveToLocalStorage()\n\t}\n}\n\n// 菜单控制\nfunction resetAllMenus() {\n\tObject.keys(state.actionMenuVisible).forEach(key => {\n\t\tstate.actionMenuVisible[key] = false\n\t})\n}\n\nconst handleRenameChat = (id: string, newTitle: string) => {\n\tconst item = state.chatHistory.find(item => item.id === id)\n\tif (item) {\n\t\titem.title = newTitle\n\t\titem.time = new Date()\n\t\tsaveToLocalStorage()\n\t}\n}\n\n// 监听聊天历史变化,自动保存\nwatch(\n\t() => state.chatHistory,\n\t() => {\n\t\tsaveToLocalStorage()\n\t},\n\t{ deep: true }\n)\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\tchatComponent.value?.send(value, fileList, auto, type)\n\t},\n\tcloseExtend: () => {\n\t\tstate.toggleSidebarFlag = false\n\t},\n\tcreate: () => {\n\t\tstartNewChat()\n\t},\n\tretry: (index: number) => {\n\t\tchatComponent.value?.retry(index)\n\t},\n\tupdate: (index: number, message: object) => {\n\t\tchatComponent.value?.update(index, message)\n\t}\n})\n</script>\n"],"names":["reactive","ref","inject","watch","provide","computed","onMounted","messageItem","newChat","item","_createElementBlock","_createElementVNode","_createBlock","HistorySidebar","TouchChat","_withCtx","_renderSlot","_Fragment","_createCommentVNode","_createVNode","TouchAgent","SiderBarView","_vShow"],"mappings":"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"}
1
+ {"version":3,"file":"TouchHistory.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchHistory.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat\">\n\t\t<div v-if=\"state.isSidebarCollapsed && !isNotHeader\" class=\"touchchat-header\">\n\t\t\t<div class=\"touchchat-showmenu\" @click.stop=\"toggleSidebar\">\n\t\t\t\t<div class=\"touchchat-showmenu-icon\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-add-lite\" @click.stop=\"startNewChat\">\n\t\t\t\t<div class=\"touchchat-add-lite-icon\"></div>\n\t\t\t\t<span>新对话</span>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"touchchat-content\">\n\t\t\t<HistorySidebar v-if=\"!isNotHeader && !state.isSidebarCollapsed\" :is-sidebar-collapsed=\"state.isSidebarCollapsed\" :active-chat=\"state.activeChat\" :chat-history=\"state.chatHistory\" @toggle-sidebar=\"toggleSidebar\" @start-new-chat=\"startNewChat\" @select-chat=\"selectChat\" @rename-chat=\"handleRenameChat\" @delete-chat=\"deleteChat\"> </HistorySidebar>\n\t\t\t<TouchChat v-if=\"!iIsAgent\" ref=\"chatComponent\" :key=\"state.activeChat + '-chat'\" :value=\"currentChatMessages\" @send-message=\"sendMessage\" @toggle-sidebar=\"toggleSidebarOut\" @before-send-message=\"beforeSendMessage\">\n\t\t\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #msg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #userAvatar>\n\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #welcome>\n\t\t\t\t\t<slot name=\"welcome\" />\n\t\t\t\t</template>\n\t\t\t\t<template #edit>\n\t\t\t\t\t<slot name=\"edit\" />\n\t\t\t\t</template>\n\t\t\t\t<template #shortcut>\n\t\t\t\t\t<slot name=\"shortcut\" />\n\t\t\t\t</template>\n\t\t\t\t<template #top>\n\t\t\t\t\t<slot name=\"top\" />\n\t\t\t\t</template>\n\t\t\t\t<template #fn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t</TouchChat>\n\t\t\t<!-- :key=\"state.activeChat\" -->\n\t\t\t<TouchAgent v-else ref=\"chatComponent\" :key=\"state.activeChat + '-agent'\" :value=\"currentChatMessages\" @send-message=\"sendMessage\" @toggle-sidebar=\"toggleSidebarOut\" @before-send-message=\"beforeSendMessage\">\n\t\t\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #msg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #userAvatar>\n\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #welcome>\n\t\t\t\t\t<slot name=\"welcome\" />\n\t\t\t\t</template>\n\t\t\t\t<template #edit>\n\t\t\t\t\t<slot name=\"edit\" />\n\t\t\t\t</template>\n\t\t\t\t<template #shortcut>\n\t\t\t\t\t<slot name=\"shortcut\" />\n\t\t\t\t</template>\n\t\t\t\t<template #top>\n\t\t\t\t\t<slot name=\"top\" />\n\t\t\t\t</template>\n\t\t\t\t<template #fn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t</TouchAgent>\n\t\t\t<SiderBarView v-show=\"state.toggleSidebarFlag\" :flag=\"state.isSidebarCollapsed\" :item=\"messageItem\" :index=\"messageIndex\">\n\t\t\t\t<template #extend=\"{ item: slotMessageItem, index: slotMessageIndex }\">\n\t\t\t\t\t<slot name=\"extend\" :item=\"slotMessageItem\" :index=\"slotMessageIndex\" />\n\t\t\t\t</template>\n\t\t\t</SiderBarView>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, computed, watch, reactive, inject, ref, provide, Ref } from 'vue'\nimport TouchChat from './TouchChat.vue'\nimport TouchAgent from './TouchAgent.vue'\nimport HistorySidebar from './HistorySidebar.vue'\nimport SiderBarView from './SiderBarView.vue'\nimport type { ChatMessage } from './SiderBarView.vue'\n\ninterface HistoryItem {\n\tid: string\n\ttitle: string\n\ttime: Date\n\ttype: string // 用于区分不同类型的对话\n\tmessages?: ChatMessage[]\n}\n\ninterface Agent {\n\tid: string\n\tname: string\n\tintro: string\n}\n\n// 状态管理\nconst state = reactive({\n\tactiveChat: '',\n\tchatHistory: [] as HistoryItem[],\n\tisSidebarCollapsed: false,\n\tactionMenuVisible: {} as Record<string, boolean>,\n\tmockMessages: [] as ChatMessage[],\n\ttoggleSidebarFlag: false,\n\tagentsType: '',\n\tclickCreateNum: 0\n})\n\nconst watchHistoryData = ref<HistoryItem[]>([])\nconst watchHistoryDetail = ref<ChatMessage[]>([])\nconst chatComponent = ref<InstanceType<typeof TouchChat>>()\n\nconst layout = inject<string>('layout', 'side, think, upload, chain')\nconst isNotHeader = !layout.includes('side')\nconst scripts = inject<any[]>('scripts', [])\nconst agents = inject<Agent[]>('agents', [])\nconst agentsInfo = ref<Agent>()\nconst isAgentRef = inject<Ref<boolean>>('isAgent', ref(false))\nconst iIsAgent = ref(isAgentRef.value)\nwatch(\n\tisAgentRef,\n\tnewVal => {\n\t\tiIsAgent.value = newVal\n\t},\n\t{ immediate: true }\n)\n// 提供更新函数给后代组件\nconst updateSharedData = (item: Agent) => {\n\tagentsInfo.value = item\n\tif (chatComponent.value) {\n\t\tchatComponent.value?.handleAgentSelect?.(item)\n\t}\n}\nprovide('updateSharedData', updateSharedData)\n\n// 本地存储相关\nconst STORAGE_KEYS = {\n\tCHAT_HISTORY: scripts.length === 0 ? 'chatHistory' : 'robotHistory',\n\tSIDEBAR_STATE: 'sidebarCollapsed'\n}\n\nconst loadFromLocalStorage = () => {\n\t// 加载折叠状态\n\tconst savedCollapseState = localStorage.getItem(STORAGE_KEYS.SIDEBAR_STATE)\n\tif (savedCollapseState) {\n\t\tstate.isSidebarCollapsed = JSON.parse(savedCollapseState)\n\t}\n\n\tif (scripts.length > 0) {\n\t\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, '[]')\n\t\tlocalStorage.setItem('activeAgentsName', '')\n\t}\n\n\t// 加载聊天历史\n\tconst savedHistory = localStorage.getItem(STORAGE_KEYS.CHAT_HISTORY)\n\tconst historyData = JSON.parse(savedHistory || '[]')\n\tif (agents.length > 0 && !historyData.length) {\n\t\tagents.forEach(item => {\n\t\t\tconst agentsList = [\n\t\t\t\t{\n\t\t\t\t\tchatId: item.id,\n\t\t\t\t\tuser: 'ai',\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tisShowLike: true,\n\t\t\t\t\tcontent: item?.intro || '我是AI助手,我可以回答你的问题,你可以和我聊天,也可以问我问题。'\n\t\t\t\t}\n\t\t\t]\n\t\t\tcreateNewChat(item.name, agentsList, item.name)\n\t\t})\n\t}\n\tif (watchHistoryData.value.length > 0) {\n\t\tstate.chatHistory = watchHistoryData.value\n\t\t// if (state.chatHistory.length > 0) {\n\t\t// \tstate.activeChat = state.chatHistory[0].id\n\t\t// }\n\t} else if (historyData.length > 0) {\n\t\tstate.chatHistory = historyData\n\t\t// if (state.chatHistory.length > 0) {\n\t\t// \tstate.activeChat = state.chatHistory[0].id\n\t\t// }\n\t}\n\t// else {\n\t// \t// 初始化默认对话\n\t// \tconst newChat = createNewChat('AI基础问答')\n\t// \tstate.activeChat = newChat.id\n\t// }\n}\n\nconst historyList = inject<any>('historyList', [])\nconst setHistoryData = ref(Array.isArray(historyList) ? historyList : typeof historyList === 'object' && historyList ? historyList : [])\nconst computedHistoryData = computed(() => {\n\tif (setHistoryData.value.length) {\n\t\treturn setHistoryData.value\n\t}\n\treturn []\n})\nwatch(\n\tcomputedHistoryData,\n\tnewVal => {\n\t\twatchHistoryData.value = newVal\n\t\tstate.chatHistory = newVal\n\t\tloadFromLocalStorage()\n\t},\n\t{ immediate: true }\n)\nconst historyDetail = inject<ChatMessage[]>('historyDetail', [])\nconst setMessageDetail = ref(Array.isArray(historyDetail) ? historyDetail : typeof historyDetail === 'object' && historyDetail ? historyDetail : [])\nconst computedHistoryDetail = computed(() => {\n\tif (setMessageDetail.value.length) {\n\t\treturn setMessageDetail.value\n\t}\n\treturn []\n})\nwatch(\n\tcomputedHistoryDetail,\n\tnewVal => {\n\t\twatchHistoryDetail.value = newVal\n\t},\n\t{ immediate: true }\n)\nconst messageItem = ref<ChatMessage>({ user: '', type: '', content: '' })\nconst messageIndex = ref<number>(0)\n\n// 修改currentChatMessages计算属性\nconst currentChatMessages = computed(() => {\n\tif (watchHistoryDetail.value.length) {\n\t\treturn watchHistoryDetail.value\n\t}\n\tif (!state.activeChat) return []\n\tif ((!watchHistoryDetail.value.length && !watchHistoryData.value.length) || watchHistoryData.value.length) {\n\t\tconst currentChat = state.chatHistory.find(item => item.id === state.activeChat)\n\t\treturn currentChat?.messages || []\n\t} else {\n\t\treturn watchHistoryDetail.value\n\t}\n})\n\nwatch(\n\t() => {\n\t\tif (typeof historyList === 'object' && historyList !== undefined) {\n\t\t\treturn historyList\n\t\t}\n\t\treturn historyList\n\t},\n\tnewVal => {\n\t\tif (newVal && Array.isArray(newVal) && newVal.length) {\n\t\t\twatchHistoryData.value = newVal\n\t\t\t// loadFromLocalStorage()\n\t\t\tif (!scripts.length) {\n\t\t\t\tstate.chatHistory = newVal\n\t\t\t\tif (state.chatHistory.length > 0 && !state.activeChat) {\n\t\t\t\t\tstate.activeChat = state.chatHistory[0].id\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{ deep: true }\n)\n\nwatch(\n\t() => {\n\t\tif (typeof historyDetail === 'object' && historyDetail !== undefined) {\n\t\t\treturn historyDetail\n\t\t}\n\t\treturn historyDetail\n\t},\n\tnewVal => {\n\t\tif (newVal && Array.isArray(newVal)) {\n\t\t\twatchHistoryDetail.value = JSON.parse(JSON.stringify(newVal))\n\t\t\tif (chatComponent.value) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tchatComponent.value?.$forceUpdate?.()\n\t\t\t\t}, 0)\n\t\t\t}\n\t\t}\n\t},\n\t{ deep: true, immediate: true }\n)\n\n// 生命周期\nonMounted(() => {\n\tloadFromLocalStorage()\n\t// 初始化事件监听\n\t// initEventListeners()\n})\n\nconst saveToLocalStorage = () => {\n\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, JSON.stringify(state.chatHistory))\n\tlocalStorage.setItem(STORAGE_KEYS.SIDEBAR_STATE, JSON.stringify(state.isSidebarCollapsed))\n}\n\n// 事件监听\n// function initEventListeners() {\n// \tdocument.addEventListener('click', () => {\n// \t\t// 点击空白处关闭所有菜单\n// \t\tObject.keys(state.actionMenuVisible).forEach(key => {\n// \t\t\tstate.actionMenuVisible[key] = false\n// \t\t})\n// \t})\n// }\n\nconst toggleSidebarOut = (item: ChatMessage, index: number) => {\n\tmessageItem.value = item\n\tmessageIndex.value = index\n\tif (state.toggleSidebarFlag) {\n\t\treturn\n\t}\n\tstate.toggleSidebarFlag = true\n\tstate.isSidebarCollapsed = false\n\ttoggleSidebar()\n}\n\n// 侧边栏控制\nconst toggleSidebar = () => {\n\tstate.isSidebarCollapsed = !state.isSidebarCollapsed\n\tsaveToLocalStorage()\n}\n\n// 聊天管理\nconst createNewChat = (title: string = '新对话', messageList: ChatMessage[] = [], type?: string) => {\n\tlet agentsId = ''\n\tif (agents.length > 0) {\n\t\tagentsId = agents.find(item => item.name === title)?.id || ''\n\t}\n\tconst newChat: HistoryItem = {\n\t\t// id: Date.now().toString(),\n\t\tid: agentsId ? agentsId : (Math.floor(Math.random() * 89999999) + 10000000).toString(),\n\t\ttitle,\n\t\ttime: new Date(),\n\t\tmessages: messageList,\n\t\ttype: type ? type : ''\n\t}\n\n\tstate.chatHistory.unshift(newChat)\n\tsaveToLocalStorage()\n\treturn newChat\n}\n\nconst startNewChat = () => {\n\tlocalStorage.setItem('activeAgentsName', '')\n\tconst robotHistory = localStorage.getItem(STORAGE_KEYS.CHAT_HISTORY) || '[]'\n\tconst robotHistoryData = JSON.parse(robotHistory)\n\tlet messageList: ChatMessage[] = []\n\tlet messageItem: HistoryItem = {} as HistoryItem\n\tlet firstMessageList: ChatMessage[] = []\n\tif (robotHistoryData.length) {\n\t\tmessageItem = robotHistoryData.find((item: HistoryItem) => item.id === state.activeChat) || ({} as HistoryItem)\n\t\tmessageList = messageItem?.messages || []\n\t\tfirstMessageList = robotHistoryData?.[0]?.messages || ([] as ChatMessage[])\n\t}\n\tstate.toggleSidebarFlag = false\n\tif ((watchHistoryData.value.length > 0 && firstMessageList.length > 0 && (watchHistoryDetail.value.length > 0 || currentChatMessages.value.length > 0 || messageList.length > 0)) || (!messageItem?.messages && firstMessageList.length > 0) || !state.clickCreateNum) {\n\t\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\n\t\tstate.activeChat = newChat.id\n\t\tchange('')\n\t\tstate.clickCreateNum++\n\t\treturn\n\t}\n\tif (state.chatHistory.length > 0 && !state.chatHistory?.[0]?.messages?.length) {\n\t\tstate.activeChat = state.chatHistory[0].id\n\t\tchange('')\n\t\treturn\n\t}\n\tif (!currentChatMessages.value.length && state.chatHistory.length > 0) {\n\t\tstate.activeChat = state.chatHistory?.[0]?.id ?? ''\n\t\tchange('')\n\t\treturn\n\t}\n\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\n\tstate.activeChat = newChat.id\n\tchange('')\n}\n\nconst change = inject<(id: string) => void>('change', () => {\n\tconsole.warn('未提供change函数')\n})\n\nconst changeChatHistory = (index: number) => {\n\tstate.activeChat = state.chatHistory[index].id\n\tchange(state.chatHistory[index].id)\n}\n\nconst clearChatHistory = () => {\n\tstate.chatHistory = []\n\tstate.activeChat = ''\n\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, JSON.stringify([]))\n}\n\nconst selectChat = (id: string, type?: string) => {\n\tstate.activeChat = id\n\tstate.toggleSidebarFlag = false\n\tstate.agentsType = type as string\n\tif (!type) {\n\t\tlocalStorage.setItem('activeAgentsName', '')\n\t}\n\tchange(id)\n\tresetAllMenus()\n}\n\nconst historyRemove = inject<(id: string) => void>('historyRemove', () => {\n\tconsole.warn('未提供remove函数')\n})\n\nconst deleteChat = (id: string) => {\n\tconst index = state.chatHistory.findIndex(item => item.id === id)\n\tif (index === -1) return\n\n\tstate.chatHistory.splice(index, 1)\n\n\tif (state.chatHistory.length > 0) {\n\t\tselectChat(state.chatHistory[0].id)\n\t} else {\n\t\tstate.activeChat = ''\n\t\tstate.mockMessages = []\n\t}\n\thistoryRemove(id)\n\tsaveToLocalStorage()\n}\n\nconst beforeSendMessage = () => {\n\tstate.toggleSidebarFlag = false\n}\n\nconst sendMessage = (messageList: ChatMessage[], type?: string) => {\n\tstate.mockMessages = messageList\n\n\tif (type) {\n\t\treturn\n\t}\n\n\tif (!state.activeChat) {\n\t\tconst newChat = createNewChat('AI基础问答', messageList)\n\t\tnewChat.messages = messageList\n\t\tstate.activeChat = newChat.id\n\t} else {\n\t\tconst currentChat = state.chatHistory.find(item => item.id === state.activeChat)\n\t\tif (currentChat) {\n\t\t\tcurrentChat.messages = messageList\n\t\t\tcurrentChat.time = new Date()\n\t\t}\n\t\tsaveToLocalStorage()\n\t}\n}\n\n// 菜单控制\nconst resetAllMenus = () => {\n\tObject.keys(state.actionMenuVisible).forEach(key => {\n\t\tstate.actionMenuVisible[key] = false\n\t})\n}\n\nconst handleRenameChat = (id: string, newTitle: string) => {\n\tconst item = state.chatHistory.find(item => item.id === id)\n\tif (item) {\n\t\titem.title = newTitle\n\t\titem.time = new Date()\n\t\tsaveToLocalStorage()\n\t}\n}\n\n// 监听聊天历史变化,自动保存\nwatch(\n\t() => state.chatHistory,\n\t() => {\n\t\tsaveToLocalStorage()\n\t},\n\t{ deep: true }\n)\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\tchatComponent.value?.send(value, fileList, auto, type)\n\t},\n\tcloseExtend: () => {\n\t\tstate.toggleSidebarFlag = false\n\t},\n\tcreate: () => {\n\t\t// startNewChat()\n\t\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\n\t\tstate.activeChat = newChat.id\n\t\tchange('')\n\t},\n\tretry: (index: number) => {\n\t\tchatComponent.value?.retry(index)\n\t},\n\tupdate: (index: number, message: object) => {\n\t\tchatComponent.value?.update(index, message)\n\t},\n\tchangeChat: (index: number) => {\n\t\tchangeChatHistory(index)\n\t},\n\tclearChat: () => {\n\t\tclearChatHistory()\n\t}\n})\n</script>\n"],"names":["reactive","ref","inject","watch","provide","computed","onMounted","messageItem","newChat","item","_createElementBlock","_createElementVNode","_createBlock","HistorySidebar","TouchChat","_withCtx","_renderSlot","_Fragment","_createCommentVNode","TouchAgent","_createVNode","SiderBarView","_vShow"],"mappings":"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"}