@touchvue/chat 1.0.0-beta.2 → 1.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/_virtual/_plugin-vue_export-helper.mjs +10 -0
- package/es/_virtual/_plugin-vue_export-helper.mjs.map +1 -0
- package/es/package.json.mjs +1 -1
- package/es/packages/components/touchchat/component/CardView.vue.mjs +3 -2
- package/es/packages/components/touchchat/component/CardView.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/component/CardView.vue2.mjs +66 -42
- package/es/packages/components/touchchat/component/CardView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/FileView.vue.mjs +3 -2
- package/es/packages/components/touchchat/component/FileView.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/component/FileView.vue2.mjs +17 -4
- package/es/packages/components/touchchat/component/FileView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/HelloChat.vue.mjs +3 -2
- package/es/packages/components/touchchat/component/HelloChat.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/component/HelloChat.vue2.mjs +26 -14
- package/es/packages/components/touchchat/component/HelloChat.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/ImageView.vue.mjs +3 -2
- package/es/packages/components/touchchat/component/ImageView.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/component/LinkView.vue.mjs +3 -2
- package/es/packages/components/touchchat/component/LinkView.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/component/LinkView.vue2.mjs +17 -3
- package/es/packages/components/touchchat/component/LinkView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/index.mjs +4 -4
- package/es/packages/components/touchchat/index.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/AiMessage.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiChat/AiMessage.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs +223 -162
- package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/ChatInput.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiChat/ChatInput.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +137 -116
- package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/HistoryList.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiChat/HistoryList.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs +216 -142
- package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs +60 -52
- package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/MessageActions.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiChat/MessageActions.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs +199 -166
- package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/TouchChat.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiChat/TouchChat.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs +196 -157
- package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs +90 -17
- package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/UserMessage.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiChat/UserMessage.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs +36 -27
- package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.mjs +80 -68
- package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/Content.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/Content.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/Content.vue2.mjs +144 -105
- package/es/packages/components/touchchat/src/AiRobot/Content.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/Header.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/Header.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/Header.vue2.mjs +36 -27
- package/es/packages/components/touchchat/src/AiRobot/Header.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/Input.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/Input.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/Scene.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/Scene.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/Scene.vue2.mjs +14 -8
- package/es/packages/components/touchchat/src/AiRobot/Scene.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/component/HelloChat.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/component/HelloChat.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.mjs +219 -159
- package/es/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/component/face.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/component/face.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/component/face.vue2.mjs +22 -9
- package/es/packages/components/touchchat/src/AiRobot/component/face.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/component/letter.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/component/letter.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/component/letter.vue2.mjs +6 -2
- package/es/packages/components/touchchat/src/AiRobot/component/letter.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.mjs +2 -2
- package/es/packages/components/touchchat/src/AiRobot/component/start.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/component/start.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/component/start.vue2.mjs +2 -2
- package/es/packages/components/touchchat/src/AiRobot/index.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/AiRobot/index.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiRobot/index.vue2.mjs +107 -39
- package/es/packages/components/touchchat/src/AiRobot/index.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/index.vue.mjs +3 -2
- package/es/packages/components/touchchat/src/index.vue.mjs.map +1 -1
- package/es/packages/components/touchchat/src/index.vue2.mjs +84 -52
- package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
- package/lib/_virtual/_plugin-vue_export-helper.js +14 -0
- package/lib/_virtual/_plugin-vue_export-helper.js.map +1 -0
- package/lib/package.json.js +1 -1
- package/lib/packages/components/touchchat/component/CardView.vue.js +3 -2
- package/lib/packages/components/touchchat/component/CardView.vue.js.map +1 -1
- package/lib/packages/components/touchchat/component/CardView.vue2.js +66 -42
- package/lib/packages/components/touchchat/component/CardView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/FileView.vue.js +3 -2
- package/lib/packages/components/touchchat/component/FileView.vue.js.map +1 -1
- package/lib/packages/components/touchchat/component/FileView.vue2.js +16 -3
- package/lib/packages/components/touchchat/component/FileView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/HelloChat.vue.js +3 -2
- package/lib/packages/components/touchchat/component/HelloChat.vue.js.map +1 -1
- package/lib/packages/components/touchchat/component/HelloChat.vue2.js +26 -14
- package/lib/packages/components/touchchat/component/HelloChat.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/ImageView.vue.js +3 -2
- package/lib/packages/components/touchchat/component/ImageView.vue.js.map +1 -1
- package/lib/packages/components/touchchat/component/LinkView.vue.js +3 -2
- package/lib/packages/components/touchchat/component/LinkView.vue.js.map +1 -1
- package/lib/packages/components/touchchat/component/LinkView.vue2.js +16 -2
- package/lib/packages/components/touchchat/component/LinkView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/index.js +4 -4
- package/lib/packages/components/touchchat/index.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js +223 -162
- package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +136 -115
- package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js +215 -141
- package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js +59 -51
- package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js +199 -166
- package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js +195 -156
- package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js +89 -16
- package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js +35 -26
- package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.js +79 -67
- package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/Content.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/Content.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/Content.vue2.js +143 -104
- package/lib/packages/components/touchchat/src/AiRobot/Content.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/Header.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/Header.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/Header.vue2.js +35 -26
- package/lib/packages/components/touchchat/src/AiRobot/Header.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/Input.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/Input.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/Scene.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/Scene.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/Scene.vue2.js +14 -8
- package/lib/packages/components/touchchat/src/AiRobot/Scene.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/HelloChat.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/component/HelloChat.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.js +219 -159
- package/lib/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/face.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/component/face.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/face.vue2.js +21 -8
- package/lib/packages/components/touchchat/src/AiRobot/component/face.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/letter.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/component/letter.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/letter.vue2.js +6 -2
- package/lib/packages/components/touchchat/src/AiRobot/component/letter.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.js +2 -2
- package/lib/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/start.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/component/start.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/component/start.vue2.js +2 -2
- package/lib/packages/components/touchchat/src/AiRobot/component/start.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/index.vue.js +3 -2
- package/lib/packages/components/touchchat/src/AiRobot/index.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiRobot/index.vue2.js +106 -38
- package/lib/packages/components/touchchat/src/AiRobot/index.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/index.vue.js +3 -2
- package/lib/packages/components/touchchat/src/index.vue.js.map +1 -1
- package/lib/packages/components/touchchat/src/index.vue2.js +83 -51
- package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
- package/package.json +1 -1
- package/theme/components/index.css +12 -0
- package/theme/index.css +12 -0
- package/theme/skin/default.css +12 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, inject, ref, reactive, computed, watch, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createElementVNode, toDisplayString, withDirectives, withKeys, withModifiers, vModelText,
|
|
1
|
+
import { defineComponent, inject, ref, reactive, computed, watch, openBlock, createElementBlock, normalizeClass, createCommentVNode, Fragment, renderList, createElementVNode, toDisplayString, withDirectives, withKeys, withModifiers, vModelText, nextTick } from 'vue';
|
|
2
2
|
|
|
3
3
|
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
4
|
__name: "HistoryList",
|
|
@@ -10,7 +10,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
10
10
|
setup(__props, { emit: __emit }) {
|
|
11
11
|
const props = __props;
|
|
12
12
|
const isRobot = inject("scripts", []).length > 0;
|
|
13
|
-
console.log("isRobot === historyList", isRobot, inject("scripts", []));
|
|
14
13
|
const emit = __emit;
|
|
15
14
|
const actionMenus = ref({});
|
|
16
15
|
const tooltipContainerRefs = ref({});
|
|
@@ -26,6 +25,23 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
26
25
|
const state = reactive({
|
|
27
26
|
actionMenuVisible: {}
|
|
28
27
|
});
|
|
28
|
+
const handlePageChange = inject("handlePageChange", () => {
|
|
29
|
+
console.warn("\u672A\u63D0\u4F9BhandlePageChange\u51FD\u6570");
|
|
30
|
+
});
|
|
31
|
+
let scrollTimeout = null;
|
|
32
|
+
const handleScroll = (event) => {
|
|
33
|
+
if (scrollTimeout) {
|
|
34
|
+
clearTimeout(scrollTimeout);
|
|
35
|
+
}
|
|
36
|
+
scrollTimeout = setTimeout(() => {
|
|
37
|
+
const container = event.target;
|
|
38
|
+
const { scrollTop, scrollHeight, clientHeight } = container;
|
|
39
|
+
const isBottom = scrollHeight - scrollTop <= clientHeight + 10;
|
|
40
|
+
if (isBottom) {
|
|
41
|
+
handlePageChange();
|
|
42
|
+
}
|
|
43
|
+
}, 200);
|
|
44
|
+
};
|
|
29
45
|
const handleStartRename = (id) => {
|
|
30
46
|
const item = props.chatHistory.find((item2) => item2.id === id);
|
|
31
47
|
if (item) {
|
|
@@ -34,7 +50,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
34
50
|
state.actionMenuVisible[id] = false;
|
|
35
51
|
nextTick(() => {
|
|
36
52
|
var _a;
|
|
37
|
-
console.log("editInputRefs.value", editInputRefs.value[id]);
|
|
38
53
|
(_a = editInputRefs.value[id]) == null ? void 0 : _a.focus();
|
|
39
54
|
});
|
|
40
55
|
}
|
|
@@ -245,147 +260,206 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
245
260
|
}, 200);
|
|
246
261
|
};
|
|
247
262
|
return (_ctx, _cache) => {
|
|
248
|
-
return openBlock(), createElementBlock(
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
}),
|
|
277
|
-
createElementVNode("path", {
|
|
278
|
-
"fill-rule": "evenodd",
|
|
279
|
-
"clip-rule": "evenodd",
|
|
280
|
-
d: "M10.1505 7.53219H11.9613V8.73219H10.1505V7.53219Z",
|
|
281
|
-
fill: "#1D2129"
|
|
282
|
-
}),
|
|
283
|
-
createElementVNode("path", {
|
|
284
|
-
"fill-rule": "evenodd",
|
|
285
|
-
"clip-rule": "evenodd",
|
|
286
|
-
d: "M4.03937 7.53219H5.85014V8.73219H4.03937V7.53219Z",
|
|
287
|
-
fill: "#1D2129"
|
|
288
|
-
})
|
|
289
|
-
])),
|
|
290
|
-
createElementVNode("div", { class: "history-item" }, [
|
|
291
|
-
createElementVNode("span", { class: "history-title" }, toDisplayString(group.groupName), 1)
|
|
292
|
-
])
|
|
293
|
-
]),
|
|
294
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(group.items, (item) => {
|
|
295
|
-
return openBlock(), createElementBlock("li", {
|
|
296
|
-
key: item.id,
|
|
297
|
-
ref_for: true,
|
|
298
|
-
ref: (el) => setHistoryItemRef(item.id, el),
|
|
299
|
-
class: normalizeClass([item.id === _ctx.activeChat ? "active" : "", "history-item-container"]),
|
|
300
|
-
onClick: ($event) => handleSelectChat(item.id)
|
|
301
|
-
}, [
|
|
302
|
-
createElementVNode("div", { class: "history-item" }, [
|
|
303
|
-
createElementVNode("div", {
|
|
304
|
-
ref_for: true,
|
|
305
|
-
ref: (el) => setTooltipContainerRef(item.id, el),
|
|
306
|
-
class: "tooltip-container",
|
|
307
|
-
style: { "flex": "1" }
|
|
308
|
-
}, [
|
|
309
|
-
editingId.value === item.id ? withDirectives((openBlock(), createElementBlock("input", {
|
|
310
|
-
key: 0,
|
|
311
|
-
ref_for: true,
|
|
312
|
-
ref: (el) => setEditInputRef(item.id, el),
|
|
313
|
-
"onUpdate:modelValue": ($event) => editTitle.value = $event,
|
|
314
|
-
class: "edit-title-input",
|
|
315
|
-
onBlur: ($event) => handleRenameComplete(item.id),
|
|
316
|
-
onKeyup: withKeys(($event) => handleRenameComplete(item.id), ["enter"]),
|
|
317
|
-
onClick: withModifiers(() => {
|
|
318
|
-
}, ["stop"])
|
|
319
|
-
}, null, 40, ["onUpdate:modelValue", "onBlur", "onKeyup", "onClick"])), [
|
|
320
|
-
[vModelText, editTitle.value]
|
|
321
|
-
]) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
322
|
-
createElementVNode("span", { class: "history-title" }, toDisplayString(item.title || "\u65B0\u5BF9\u8BDD"), 1),
|
|
323
|
-
shouldShowTooltip(item.id, item.title) ? (openBlock(), createElementBlock("div", {
|
|
324
|
-
key: 0,
|
|
325
|
-
ref_for: true,
|
|
326
|
-
ref: "tooltipRef",
|
|
327
|
-
class: "custom-tooltip"
|
|
328
|
-
}, toDisplayString(item.title), 513)) : createCommentVNode("", true)
|
|
329
|
-
], 64))
|
|
330
|
-
], 512)
|
|
331
|
-
]),
|
|
332
|
-
editingId.value !== item.id ? (openBlock(), createElementBlock("div", {
|
|
333
|
-
key: 0,
|
|
334
|
-
class: "item-actions"
|
|
335
|
-
}, [
|
|
336
|
-
createElementVNode("button", {
|
|
337
|
-
class: "more-btn",
|
|
338
|
-
onClick: withModifiers(($event) => handleToggleActionMenu(item.id), ["stop"])
|
|
339
|
-
}, "...", 8, ["onClick"]),
|
|
340
|
-
state.actionMenuVisible[item.id] ? (openBlock(), createElementBlock("div", {
|
|
341
|
-
key: 0,
|
|
342
|
-
ref_for: true,
|
|
343
|
-
ref: (el) => actionMenus.value[item.id] = el,
|
|
344
|
-
class: "action-menu",
|
|
345
|
-
onMouseenter: preventMenuClose,
|
|
346
|
-
onMouseleave: ($event) => delayedCloseMenu(item.id)
|
|
347
|
-
}, [
|
|
348
|
-
createElementVNode("div", {
|
|
349
|
-
class: "menu-item",
|
|
350
|
-
onClick: withModifiers(($event) => handleStartRename(item.id), ["stop"])
|
|
351
|
-
}, [
|
|
352
|
-
(openBlock(), createElementBlock("svg", {
|
|
353
|
-
width: "16",
|
|
354
|
-
height: "16",
|
|
355
|
-
viewBox: "0 0 24 24",
|
|
356
|
-
fill: "none",
|
|
357
|
-
stroke: "currentColor",
|
|
358
|
-
"stroke-width": "2"
|
|
359
|
-
}, [
|
|
360
|
-
createElementVNode("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }),
|
|
361
|
-
createElementVNode("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })
|
|
362
|
-
])),
|
|
363
|
-
createElementVNode("span", null, "\u91CD\u547D\u540D")
|
|
364
|
-
], 8, ["onClick"]),
|
|
365
|
-
createElementVNode("div", {
|
|
366
|
-
class: "menu-item delete-btn",
|
|
367
|
-
onClick: withModifiers(($event) => handleMenuAction("delete", item.id), ["stop"])
|
|
263
|
+
return openBlock(), createElementBlock(
|
|
264
|
+
"ul",
|
|
265
|
+
{
|
|
266
|
+
ref_key: "historyListRef",
|
|
267
|
+
ref: historyListRef,
|
|
268
|
+
class: normalizeClass(["history-list", { "is-robot": isRobot }]),
|
|
269
|
+
onScroll: handleScroll
|
|
270
|
+
},
|
|
271
|
+
[
|
|
272
|
+
createCommentVNode(" \u52A8\u6001\u65F6\u95F4\u5206\u7EC4 "),
|
|
273
|
+
(openBlock(true), createElementBlock(
|
|
274
|
+
Fragment,
|
|
275
|
+
null,
|
|
276
|
+
renderList(groupedChatHistory.value, (group) => {
|
|
277
|
+
return openBlock(), createElementBlock(
|
|
278
|
+
Fragment,
|
|
279
|
+
{
|
|
280
|
+
key: group.groupKey
|
|
281
|
+
},
|
|
282
|
+
[
|
|
283
|
+
createCommentVNode(" \u5206\u7EC4\u6807\u9898 "),
|
|
284
|
+
createElementVNode("li", { class: "history-group-header" }, [
|
|
285
|
+
(openBlock(), createElementBlock("svg", {
|
|
286
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
287
|
+
width: "16",
|
|
288
|
+
height: "17",
|
|
289
|
+
viewBox: "0 0 16 17",
|
|
290
|
+
fill: "none"
|
|
368
291
|
}, [
|
|
369
|
-
(
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
fill: "
|
|
374
|
-
|
|
375
|
-
|
|
292
|
+
createElementVNode("path", {
|
|
293
|
+
"fill-rule": "evenodd",
|
|
294
|
+
"clip-rule": "evenodd",
|
|
295
|
+
d: "M1.28906 3.54885C1.28906 3.21748 1.55769 2.94885 1.88906 2.94885H14.1113C14.4427 2.94885 14.7113 3.21748 14.7113 3.54885V12.7155C14.7113 13.0469 14.4427 13.3155 14.1113 13.3155H9.77648L8.42444 14.6676C8.31192 14.7801 8.1593 14.8433 8.00017 14.8433C7.84104 14.8433 7.68843 14.7801 7.57591 14.6676L6.22387 13.3155H1.88906C1.55769 13.3155 1.28906 13.0469 1.28906 12.7155V3.54885ZM2.48906 4.14885V12.1155H6.4724C6.63153 12.1155 6.78414 12.1787 6.89666 12.2913L8.00017 13.3948L9.10369 12.2913C9.21621 12.1787 9.36882 12.1155 9.52795 12.1155H13.5113V4.14885H2.48906Z",
|
|
296
|
+
fill: "#1D2129"
|
|
297
|
+
}),
|
|
298
|
+
createElementVNode("path", {
|
|
299
|
+
"fill-rule": "evenodd",
|
|
300
|
+
"clip-rule": "evenodd",
|
|
301
|
+
d: "M7.09462 7.53219H8.90649V8.73219H7.09462V7.53219Z",
|
|
302
|
+
fill: "#1D2129"
|
|
303
|
+
}),
|
|
304
|
+
createElementVNode("path", {
|
|
305
|
+
"fill-rule": "evenodd",
|
|
306
|
+
"clip-rule": "evenodd",
|
|
307
|
+
d: "M10.1505 7.53219H11.9613V8.73219H10.1505V7.53219Z",
|
|
308
|
+
fill: "#1D2129"
|
|
309
|
+
}),
|
|
310
|
+
createElementVNode("path", {
|
|
311
|
+
"fill-rule": "evenodd",
|
|
312
|
+
"clip-rule": "evenodd",
|
|
313
|
+
d: "M4.03937 7.53219H5.85014V8.73219H4.03937V7.53219Z",
|
|
314
|
+
fill: "#1D2129"
|
|
315
|
+
})
|
|
316
|
+
])),
|
|
317
|
+
createElementVNode("div", { class: "history-item" }, [
|
|
318
|
+
createElementVNode(
|
|
319
|
+
"span",
|
|
320
|
+
{ class: "history-title" },
|
|
321
|
+
toDisplayString(group.groupName),
|
|
322
|
+
1
|
|
323
|
+
/* TEXT */
|
|
324
|
+
)
|
|
325
|
+
])
|
|
326
|
+
]),
|
|
327
|
+
createCommentVNode(" \u5206\u7EC4\u5185\u5BF9\u8BDD\u9879 "),
|
|
328
|
+
(openBlock(true), createElementBlock(
|
|
329
|
+
Fragment,
|
|
330
|
+
null,
|
|
331
|
+
renderList(group.items, (item) => {
|
|
332
|
+
return openBlock(), createElementBlock("li", {
|
|
333
|
+
key: item.id,
|
|
334
|
+
ref_for: true,
|
|
335
|
+
ref: (el) => setHistoryItemRef(item.id, el),
|
|
336
|
+
class: normalizeClass([item.id === _ctx.activeChat ? "active" : "", "history-item-container"]),
|
|
337
|
+
onClick: ($event) => handleSelectChat(item.id)
|
|
376
338
|
}, [
|
|
377
|
-
createElementVNode("
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
339
|
+
createElementVNode("div", { class: "history-item" }, [
|
|
340
|
+
createElementVNode(
|
|
341
|
+
"div",
|
|
342
|
+
{
|
|
343
|
+
ref_for: true,
|
|
344
|
+
ref: (el) => setTooltipContainerRef(item.id, el),
|
|
345
|
+
class: "tooltip-container",
|
|
346
|
+
style: { "flex": "1" }
|
|
347
|
+
},
|
|
348
|
+
[
|
|
349
|
+
editingId.value === item.id ? withDirectives((openBlock(), createElementBlock("input", {
|
|
350
|
+
key: 0,
|
|
351
|
+
ref_for: true,
|
|
352
|
+
ref: (el) => setEditInputRef(item.id, el),
|
|
353
|
+
"onUpdate:modelValue": ($event) => editTitle.value = $event,
|
|
354
|
+
class: "edit-title-input",
|
|
355
|
+
onBlur: ($event) => handleRenameComplete(item.id),
|
|
356
|
+
onKeyup: withKeys(($event) => handleRenameComplete(item.id), ["enter"]),
|
|
357
|
+
onClick: withModifiers(() => {
|
|
358
|
+
}, ["stop"])
|
|
359
|
+
}, null, 40, ["onUpdate:modelValue", "onBlur", "onKeyup", "onClick"])), [
|
|
360
|
+
[vModelText, editTitle.value]
|
|
361
|
+
]) : (openBlock(), createElementBlock(
|
|
362
|
+
Fragment,
|
|
363
|
+
{ key: 1 },
|
|
364
|
+
[
|
|
365
|
+
createElementVNode(
|
|
366
|
+
"span",
|
|
367
|
+
{ class: "history-title" },
|
|
368
|
+
toDisplayString(item.title || "\u65B0\u5BF9\u8BDD"),
|
|
369
|
+
1
|
|
370
|
+
/* TEXT */
|
|
371
|
+
),
|
|
372
|
+
shouldShowTooltip(item.id, item.title) ? (openBlock(), createElementBlock(
|
|
373
|
+
"div",
|
|
374
|
+
{
|
|
375
|
+
key: 0,
|
|
376
|
+
ref_for: true,
|
|
377
|
+
ref: "tooltipRef",
|
|
378
|
+
class: "custom-tooltip"
|
|
379
|
+
},
|
|
380
|
+
toDisplayString(item.title),
|
|
381
|
+
513
|
|
382
|
+
/* TEXT, NEED_PATCH */
|
|
383
|
+
)) : createCommentVNode("v-if", true)
|
|
384
|
+
],
|
|
385
|
+
64
|
|
386
|
+
/* STABLE_FRAGMENT */
|
|
387
|
+
))
|
|
388
|
+
],
|
|
389
|
+
512
|
|
390
|
+
/* NEED_PATCH */
|
|
391
|
+
)
|
|
392
|
+
]),
|
|
393
|
+
createCommentVNode(" \u83DC\u5355\u663E\u793A\u72B6\u6001 - \u6DFB\u52A0\u6761\u4EF6\u5224\u65AD\u9690\u85CF\u64CD\u4F5C\u6309\u94AE "),
|
|
394
|
+
editingId.value !== item.id ? (openBlock(), createElementBlock("div", {
|
|
395
|
+
key: 0,
|
|
396
|
+
class: "item-actions"
|
|
397
|
+
}, [
|
|
398
|
+
createElementVNode("button", {
|
|
399
|
+
class: "more-btn",
|
|
400
|
+
onClick: withModifiers(($event) => handleToggleActionMenu(item.id), ["stop"])
|
|
401
|
+
}, "...", 8, ["onClick"]),
|
|
402
|
+
state.actionMenuVisible[item.id] ? (openBlock(), createElementBlock("div", {
|
|
403
|
+
key: 0,
|
|
404
|
+
ref_for: true,
|
|
405
|
+
ref: (el) => actionMenus.value[item.id] = el,
|
|
406
|
+
class: "action-menu",
|
|
407
|
+
onMouseenter: preventMenuClose,
|
|
408
|
+
onMouseleave: ($event) => delayedCloseMenu(item.id)
|
|
409
|
+
}, [
|
|
410
|
+
createElementVNode("div", {
|
|
411
|
+
class: "menu-item",
|
|
412
|
+
onClick: withModifiers(($event) => handleStartRename(item.id), ["stop"])
|
|
413
|
+
}, [
|
|
414
|
+
(openBlock(), createElementBlock("svg", {
|
|
415
|
+
width: "16",
|
|
416
|
+
height: "16",
|
|
417
|
+
viewBox: "0 0 24 24",
|
|
418
|
+
fill: "none",
|
|
419
|
+
stroke: "currentColor",
|
|
420
|
+
"stroke-width": "2"
|
|
421
|
+
}, [
|
|
422
|
+
createElementVNode("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }),
|
|
423
|
+
createElementVNode("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })
|
|
424
|
+
])),
|
|
425
|
+
createElementVNode("span", null, "\u91CD\u547D\u540D")
|
|
426
|
+
], 8, ["onClick"]),
|
|
427
|
+
createElementVNode("div", {
|
|
428
|
+
class: "menu-item delete-btn",
|
|
429
|
+
onClick: withModifiers(($event) => handleMenuAction("delete", item.id), ["stop"])
|
|
430
|
+
}, [
|
|
431
|
+
(openBlock(), createElementBlock("svg", {
|
|
432
|
+
width: "16",
|
|
433
|
+
height: "16",
|
|
434
|
+
viewBox: "0 0 24 24",
|
|
435
|
+
fill: "none",
|
|
436
|
+
stroke: "currentColor",
|
|
437
|
+
"stroke-width": "2"
|
|
438
|
+
}, [
|
|
439
|
+
createElementVNode("polyline", { points: "3 6 5 6 21 6" }),
|
|
440
|
+
createElementVNode("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })
|
|
441
|
+
])),
|
|
442
|
+
createElementVNode("span", null, "\u5220\u9664")
|
|
443
|
+
], 8, ["onClick"])
|
|
444
|
+
], 40, ["onMouseleave"])) : createCommentVNode("v-if", true)
|
|
445
|
+
])) : createCommentVNode("v-if", true)
|
|
446
|
+
], 10, ["onClick"]);
|
|
447
|
+
}),
|
|
448
|
+
128
|
|
449
|
+
/* KEYED_FRAGMENT */
|
|
450
|
+
))
|
|
451
|
+
],
|
|
452
|
+
64
|
|
453
|
+
/* STABLE_FRAGMENT */
|
|
454
|
+
);
|
|
455
|
+
}),
|
|
456
|
+
128
|
|
457
|
+
/* KEYED_FRAGMENT */
|
|
458
|
+
))
|
|
459
|
+
],
|
|
460
|
+
34
|
|
461
|
+
/* CLASS, NEED_HYDRATION */
|
|
462
|
+
);
|
|
389
463
|
};
|
|
390
464
|
}
|
|
391
465
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryList.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/HistoryList.vue"],"sourcesContent":["<template>\n <ul ref=\"historyListRef\" class=\"history-list\" :class=\"{ 'is-robot': isRobot }\">\n <!-- 动态时间分组 -->\n <template v-for=\"group in groupedChatHistory\" :key=\"group.groupKey\">\n <!-- 分组标题 -->\n <li class=\"history-group-header\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.28906 3.54885C1.28906 3.21748 1.55769 2.94885 1.88906 2.94885H14.1113C14.4427 2.94885 14.7113 3.21748 14.7113 3.54885V12.7155C14.7113 13.0469 14.4427 13.3155 14.1113 13.3155H9.77648L8.42444 14.6676C8.31192 14.7801 8.1593 14.8433 8.00017 14.8433C7.84104 14.8433 7.68843 14.7801 7.57591 14.6676L6.22387 13.3155H1.88906C1.55769 13.3155 1.28906 13.0469 1.28906 12.7155V3.54885ZM2.48906 4.14885V12.1155H6.4724C6.63153 12.1155 6.78414 12.1787 6.89666 12.2913L8.00017 13.3948L9.10369 12.2913C9.21621 12.1787 9.36882 12.1155 9.52795 12.1155H13.5113V4.14885H2.48906Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.09462 7.53219H8.90649V8.73219H7.09462V7.53219Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.1505 7.53219H11.9613V8.73219H10.1505V7.53219Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.03937 7.53219H5.85014V8.73219H4.03937V7.53219Z\"\n fill=\"#1D2129\"\n />\n </svg>\n <div class=\"history-item\">\n <span class=\"history-title\">{{ group.groupName }}</span>\n </div>\n </li>\n <!-- 分组内对话项 -->\n <li\n v-for=\"item in group.items\"\n :key=\"item.id\"\n :ref=\"el => setHistoryItemRef(item.id, el as HTMLElement)\"\n :class=\"[item.id === activeChat ? 'active' : '', 'history-item-container']\"\n @click=\"handleSelectChat(item.id)\"\n >\n <div class=\"history-item\">\n <div\n :ref=\"el => setTooltipContainerRef(item.id, el as HTMLElement)\"\n class=\"tooltip-container\"\n style=\"flex: 1\"\n >\n <template v-if=\"editingId === item.id\">\n <input\n :ref=\"el => setEditInputRef(item.id, el as HTMLInputElement)\"\n v-model=\"editTitle\"\n class=\"edit-title-input\"\n @blur=\"handleRenameComplete(item.id)\"\n @keyup.enter=\"handleRenameComplete(item.id)\"\n @click.stop\n />\n </template>\n <template v-else>\n <span class=\"history-title\">{{ item.title || '新对话' }}</span>\n <div\n v-if=\"shouldShowTooltip(item.id, item.title)\"\n ref=\"tooltipRef\"\n class=\"custom-tooltip\"\n >\n {{ item.title }}\n </div>\n </template>\n </div>\n </div>\n\n <!-- 菜单显示状态 - 添加条件判断隐藏操作按钮 -->\n <div v-if=\"editingId !== item.id\" class=\"item-actions\">\n <button class=\"more-btn\" @click.stop=\"handleToggleActionMenu(item.id)\">...</button>\n\n <div\n v-if=\"state.actionMenuVisible[item.id]\"\n :ref=\"el => (actionMenus[item.id] = el as HTMLElement)\"\n class=\"action-menu\"\n @mouseenter=\"preventMenuClose\"\n @mouseleave=\"delayedCloseMenu(item.id)\"\n >\n <div class=\"menu-item\" @click.stop=\"handleStartRename(item.id)\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\" />\n </svg>\n <span>重命名</span>\n </div>\n <div class=\"menu-item delete-btn\" @click.stop=\"handleMenuAction('delete', item.id)\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <polyline points=\"3 6 5 6 21 6\" />\n <path\n d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\n />\n </svg>\n <span>删除</span>\n </div>\n </div>\n </div>\n </li>\n </template>\n </ul>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, reactive, nextTick, computed, watch, inject } from 'vue';\n\n// 类型定义\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\ninterface GroupedChat {\n groupKey: string;\n groupName: string;\n items: HistoryItem[];\n}\n\n// Props\nconst props = defineProps<{\n activeChat: string;\n chatHistory: HistoryItem[];\n}>();\n\nconst isRobot = inject('scripts', []).length > 0;\nconsole.log('isRobot === historyList', isRobot, inject('scripts', []));\n\n// Emits\nconst emit = defineEmits<{\n (e: 'select-chat', id: string): void;\n (e: 'rename-chat', id: string, newTitle: string): void;\n (e: 'delete-chat', id: string): void;\n}>();\n\n// 内部状态\nconst actionMenus = ref<Record<string, HTMLElement | null>>({});\nconst tooltipContainerRefs = ref<Record<string, HTMLElement | null>>({});\nconst editingId = ref<string | null>(null);\nconst editTitle = ref('');\nconst editInputRefs = ref<Record<string, HTMLInputElement | null>>({}); // 修改为对象存储多个引用\n\n// 设置输入框引用\nconst setEditInputRef = (id: string, el: HTMLInputElement | null) => {\n editInputRefs.value[id] = el;\n};\n\nconst setTooltipContainerRef = (id: string, el: HTMLElement | null) => {\n tooltipContainerRefs.value[id] = el;\n};\n\nconst state = reactive<{\n actionMenuVisible: Record<string, boolean>;\n}>({\n actionMenuVisible: {},\n});\n\n// 开始重命名\nconst handleStartRename = (id: string) => {\n const item = props.chatHistory.find(item => item.id === id);\n if (item) {\n editingId.value = id;\n editTitle.value = item.title || '';\n state.actionMenuVisible[id] = false;\n nextTick(() => {\n console.log('editInputRefs.value', editInputRefs.value[id]);\n editInputRefs.value[id]?.focus();\n });\n }\n};\n\n// 完成重命名\nconst handleRenameComplete = (id: string) => {\n if (editingId.value === id) {\n const trimmedTitle = editTitle.value.trim();\n if (trimmedTitle) {\n emit('rename-chat', id, trimmedTitle);\n }\n editingId.value = null;\n }\n};\n\n// 时间分组辅助函数\nconst getGroupKey = (date: Date): string => {\n const now = new Date();\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n const sevenDaysAgo = new Date(today);\n sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);\n const thirtyDaysAgo = new Date(today);\n thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);\n\n const targetDate = new Date(date);\n const targetDateNormalized = new Date(\n targetDate.getFullYear(),\n targetDate.getMonth(),\n targetDate.getDate()\n );\n\n if (targetDateNormalized >= today) return 'today';\n if (targetDateNormalized >= yesterday) return 'yesterday';\n if (targetDate >= sevenDaysAgo) return 'sevenDays';\n if (targetDate >= thirtyDaysAgo) return 'thirtyDays';\n return `${targetDate.getFullYear()}-${String(targetDate.getMonth() + 1).padStart(2, '0')}`;\n};\n\n// 格式化分组名称\nconst formatGroupName = (key: string): string => {\n switch (key) {\n case 'today':\n return '今天';\n case 'yesterday':\n return '昨天';\n case 'sevenDays':\n return '7天内';\n case 'thirtyDays':\n return '30天内';\n default:\n return key;\n }\n};\n\nconst handleMenuAction = (action: string, id: string) => {\n if (action === 'delete') {\n emit('delete-chat', id);\n }\n};\n\n// 按时间分组的计算属性\nconst groupedChatHistory = computed<GroupedChat[]>(() => {\n // 复制并排序对话(最新的在前)\n const sortedChats = [...props.chatHistory].sort(\n (a, b) => new Date(b.time).getTime() - new Date(a.time).getTime()\n );\n\n // 分组处理\n const groups: Record<string, HistoryItem[]> = {};\n sortedChats.forEach(chat => {\n const key = getGroupKey(new Date(chat.time));\n if (!groups[key]) groups[key] = [];\n groups[key].push(chat);\n });\n\n // 转换为有序数组\n return Object.entries(groups)\n .map(([key, items]) => ({\n groupKey: key,\n groupName: formatGroupName(key),\n items,\n }))\n .sort((a, b) => {\n // 自定义排序确保分组顺序正确\n const order: Record<string, number> = {\n today: 0,\n yesterday: 1,\n sevenDays: 2,\n thirtyDays: 3,\n };\n return (\n (order[a.groupKey] ?? 100) - (order[b.groupKey] ?? 100) ||\n b.groupKey.localeCompare(a.groupKey)\n );\n });\n});\n\n// 修改缓存类型定义\ninterface TooltipCacheItem {\n value: boolean;\n timestamp: number;\n}\n\n// 使用Map存储每个ID的测量结果,避免重复计算\nconst tooltipMeasurementCache = new Map<string, TooltipCacheItem>();\n\nconst clearTooltipCache = () => {\n tooltipMeasurementCache.clear();\n};\n\nwatch(() => props.chatHistory, clearTooltipCache);\n\n// 改进shouldShowTooltip函数\nconst shouldShowTooltip = (id: string, title: string) => {\n if (!title || editingId.value === id) return false;\n\n // 获取容器元素\n const containerEl = tooltipContainerRefs.value[id];\n if (!containerEl) {\n return false;\n }\n\n // 强制重新计算布局\n containerEl.getBoundingClientRect();\n // 获取容器的实际宽度(包括padding和border)\n const containerStyle = window.getComputedStyle(containerEl);\n const containerWidth = containerEl.offsetWidth;\n const containerPaddingX =\n parseFloat(containerStyle.paddingLeft) + parseFloat(containerStyle.paddingRight);\n const containerBorderX =\n parseFloat(containerStyle.borderLeftWidth) + parseFloat(containerStyle.borderRightWidth);\n // 内容区域宽度 = 总宽度 - padding - border\n const contentWidth = containerWidth - containerPaddingX - containerBorderX;\n\n // 如果容器宽度为0,不缓存结果,返回false\n if (containerWidth === 0) {\n return false;\n }\n\n // 检查缓存,但添加时间戳以支持定期更新\n const now = Date.now();\n const cacheKey = `${id}_${containerWidth}_${contentWidth}`; // 改进缓存键\n if (tooltipMeasurementCache.has(cacheKey)) {\n const cached = tooltipMeasurementCache.get(cacheKey);\n // 如果缓存项存在且未过期(5秒)\n if (cached && now - cached.timestamp < 5000) {\n return cached.value;\n }\n }\n\n // 创建临时元素测量文本宽度\n const tempElement = document.createElement('span');\n tempElement.className = 'history-title';\n tempElement.textContent = title;\n\n // 复制实际元素的样式\n const historyTitleEl = containerEl.querySelector('.history-title');\n if (historyTitleEl) {\n const titleStyle = window.getComputedStyle(historyTitleEl);\n // 复制所有相关样式\n tempElement.style.fontSize = titleStyle.fontSize;\n tempElement.style.fontFamily = titleStyle.fontFamily;\n tempElement.style.fontWeight = titleStyle.fontWeight;\n tempElement.style.letterSpacing = titleStyle.letterSpacing;\n tempElement.style.wordSpacing = titleStyle.wordSpacing;\n tempElement.style.textTransform = titleStyle.textTransform;\n }\n\n tempElement.style.visibility = 'hidden';\n tempElement.style.position = 'absolute';\n tempElement.style.whiteSpace = 'nowrap';\n document.body.appendChild(tempElement);\n\n // 强制重绘\n tempElement.getBoundingClientRect();\n const textWidth = tempElement.offsetWidth;\n\n document.body.removeChild(tempElement);\n\n // 添加5px阈值,避免边框等因素导致的误差\n const shouldShow = textWidth > contentWidth + 5;\n\n // 缓存结果,包含时间戳\n tooltipMeasurementCache.set(cacheKey, {\n value: shouldShow,\n timestamp: now,\n });\n\n return shouldShow;\n};\n\n// 事件处理\nconst handleSelectChat = (id: string) => {\n if (editingId.value === null) {\n emit('select-chat', id);\n resetAllMenus();\n }\n};\n\nconst resetAllMenus = () => {\n Object.keys(state.actionMenuVisible).forEach(key => {\n state.actionMenuVisible[key] = false;\n });\n};\n\nconst handleToggleActionMenu = (id: string, event?: MouseEvent) => {\n if (editingId.value === null) {\n event?.stopPropagation();\n props.chatHistory.forEach(item => {\n item.id !== id && (state.actionMenuVisible[item.id] = false);\n });\n state.actionMenuVisible[id] = !state.actionMenuVisible[id];\n\n // 添加动态定位逻辑\n if (state.actionMenuVisible[id]) {\n positionActionMenu(id);\n }\n }\n};\n\n// 添加对history-list容器的引用\nconst historyListRef = ref<HTMLUListElement | null>(null);\n\n// 添加对历史记录项的引用\nconst historyItemRefs = ref<Record<string, HTMLElement | null>>({});\n\nconst setHistoryItemRef = (id: string, el: HTMLElement | null) => {\n historyItemRefs.value[id] = el;\n};\n\n// 添加菜单定位函数\nconst positionActionMenu = (id: string) => {\n nextTick(() => {\n const menuEl = actionMenus.value[id];\n const historyItemEl = historyItemRefs.value[id];\n if (!menuEl || !historyItemEl || !historyListRef.value) return;\n\n // 重置样式\n menuEl.style.top = '';\n menuEl.style.bottom = '';\n menuEl.style.transform = '';\n menuEl.style.marginTop = '';\n menuEl.style.position = 'absolute';\n\n const menuHeight = menuEl.offsetHeight;\n const historyItemRect = historyItemEl.getBoundingClientRect();\n const listRect = historyListRef.value.getBoundingClientRect();\n const buttonEl = menuEl.previousElementSibling as HTMLElement;\n\n // 计算历史记录项底部到列表容器底部的距离\n const distanceToBottom = listRect.bottom - historyItemRect.bottom;\n\n // 如果距离小于菜单高度,则显示在上方\n if (distanceToBottom < menuHeight) {\n if (buttonEl) {\n // const buttonRect = buttonEl.getBoundingClientRect();\n // 直接设置菜单顶部位置为按钮顶部减去菜单高度\n menuEl.style.top = `${-menuHeight}px`;\n menuEl.style.bottom = 'auto';\n menuEl.style.transform = 'none';\n }\n } else {\n // 否则显示在下方\n menuEl.style.top = '100%';\n menuEl.style.bottom = 'auto';\n menuEl.style.transform = 'translateY(0)';\n }\n });\n};\n\n// 添加菜单关闭延迟逻辑\nlet menuCloseTimer: number | null = null;\n\nconst preventMenuClose = () => {\n if (menuCloseTimer) {\n clearTimeout(menuCloseTimer);\n menuCloseTimer = null;\n }\n};\n\nconst delayedCloseMenu = (id: string) => {\n preventMenuClose();\n menuCloseTimer = window.setTimeout(() => {\n state.actionMenuVisible[id] = false;\n }, 200);\n};\n</script>\n\n<!-- <style scoped>\n/* @import '../../style/TouchHistory.less'; */\n@import '../../style/HistoryList.less';\n</style> -->\n"],"names":["item","_createElementBlock","_normalizeClass","_Fragment","_renderList","_createElementVNode","_toDisplayString","_openBlock","activeChat","_withKeys","_withModifiers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HistoryList.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/HistoryList.vue"],"sourcesContent":["<template>\n <ul\n ref=\"historyListRef\"\n class=\"history-list\"\n :class=\"{ 'is-robot': isRobot }\"\n @scroll=\"handleScroll\"\n >\n <!-- 动态时间分组 -->\n <template v-for=\"group in groupedChatHistory\" :key=\"group.groupKey\">\n <!-- 分组标题 -->\n <li class=\"history-group-header\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.28906 3.54885C1.28906 3.21748 1.55769 2.94885 1.88906 2.94885H14.1113C14.4427 2.94885 14.7113 3.21748 14.7113 3.54885V12.7155C14.7113 13.0469 14.4427 13.3155 14.1113 13.3155H9.77648L8.42444 14.6676C8.31192 14.7801 8.1593 14.8433 8.00017 14.8433C7.84104 14.8433 7.68843 14.7801 7.57591 14.6676L6.22387 13.3155H1.88906C1.55769 13.3155 1.28906 13.0469 1.28906 12.7155V3.54885ZM2.48906 4.14885V12.1155H6.4724C6.63153 12.1155 6.78414 12.1787 6.89666 12.2913L8.00017 13.3948L9.10369 12.2913C9.21621 12.1787 9.36882 12.1155 9.52795 12.1155H13.5113V4.14885H2.48906Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.09462 7.53219H8.90649V8.73219H7.09462V7.53219Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.1505 7.53219H11.9613V8.73219H10.1505V7.53219Z\"\n fill=\"#1D2129\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.03937 7.53219H5.85014V8.73219H4.03937V7.53219Z\"\n fill=\"#1D2129\"\n />\n </svg>\n <div class=\"history-item\">\n <span class=\"history-title\">{{ group.groupName }}</span>\n </div>\n </li>\n <!-- 分组内对话项 -->\n <li\n v-for=\"item in group.items\"\n :key=\"item.id\"\n :ref=\"el => setHistoryItemRef(item.id, el as HTMLElement)\"\n :class=\"[item.id === activeChat ? 'active' : '', 'history-item-container']\"\n @click=\"handleSelectChat(item.id)\"\n >\n <div class=\"history-item\">\n <div\n :ref=\"el => setTooltipContainerRef(item.id, el as HTMLElement)\"\n class=\"tooltip-container\"\n style=\"flex: 1\"\n >\n <template v-if=\"editingId === item.id\">\n <input\n :ref=\"el => setEditInputRef(item.id, el as HTMLInputElement)\"\n v-model=\"editTitle\"\n class=\"edit-title-input\"\n @blur=\"handleRenameComplete(item.id)\"\n @keyup.enter=\"handleRenameComplete(item.id)\"\n @click.stop\n />\n </template>\n <template v-else>\n <span class=\"history-title\">{{ item.title || '新对话' }}</span>\n <div\n v-if=\"shouldShowTooltip(item.id, item.title)\"\n ref=\"tooltipRef\"\n class=\"custom-tooltip\"\n >\n {{ item.title }}\n </div>\n </template>\n </div>\n </div>\n\n <!-- 菜单显示状态 - 添加条件判断隐藏操作按钮 -->\n <div v-if=\"editingId !== item.id\" class=\"item-actions\">\n <button class=\"more-btn\" @click.stop=\"handleToggleActionMenu(item.id)\">...</button>\n\n <div\n v-if=\"state.actionMenuVisible[item.id]\"\n :ref=\"el => (actionMenus[item.id] = el as HTMLElement)\"\n class=\"action-menu\"\n @mouseenter=\"preventMenuClose\"\n @mouseleave=\"delayedCloseMenu(item.id)\"\n >\n <div class=\"menu-item\" @click.stop=\"handleStartRename(item.id)\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\" />\n </svg>\n <span>重命名</span>\n </div>\n <div class=\"menu-item delete-btn\" @click.stop=\"handleMenuAction('delete', item.id)\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <polyline points=\"3 6 5 6 21 6\" />\n <path\n d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\n />\n </svg>\n <span>删除</span>\n </div>\n </div>\n </div>\n </li>\n </template>\n </ul>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, reactive, nextTick, computed, watch, inject } from 'vue';\n\n// 类型定义\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\ninterface GroupedChat {\n groupKey: string;\n groupName: string;\n items: HistoryItem[];\n}\n\n// Props\nconst props = defineProps<{\n activeChat: string;\n chatHistory: HistoryItem[];\n}>();\n\nconst isRobot = inject('scripts', []).length > 0;\n\n// Emits\nconst emit = defineEmits<{\n (e: 'select-chat', id: string): void;\n (e: 'rename-chat', id: string, newTitle: string): void;\n (e: 'delete-chat', id: string): void;\n}>();\n\n// 内部状态\nconst actionMenus = ref<Record<string, HTMLElement | null>>({});\nconst tooltipContainerRefs = ref<Record<string, HTMLElement | null>>({});\nconst editingId = ref<string | null>(null);\nconst editTitle = ref('');\nconst editInputRefs = ref<Record<string, HTMLInputElement | null>>({}); // 修改为对象存储多个引用\n\n// 设置输入框引用\nconst setEditInputRef = (id: string, el: HTMLInputElement | null) => {\n editInputRefs.value[id] = el;\n};\n\nconst setTooltipContainerRef = (id: string, el: HTMLElement | null) => {\n tooltipContainerRefs.value[id] = el;\n};\n\nconst state = reactive<{\n actionMenuVisible: Record<string, boolean>;\n}>({\n actionMenuVisible: {},\n});\n\nconst handlePageChange = inject<() => void>('handlePageChange', () => {\n console.warn('未提供handlePageChange函数');\n});\n\n// 开始重命名\nlet scrollTimeout: ReturnType<typeof setTimeout> | null = null;\nconst handleScroll = (event: Event) => {\n if (scrollTimeout) {\n clearTimeout(scrollTimeout);\n }\n scrollTimeout = setTimeout(() => {\n const container = event.target as HTMLElement;\n const { scrollTop, scrollHeight, clientHeight } = container;\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10; // 10px 缓冲\n if (isBottom) {\n handlePageChange();\n }\n }, 200);\n};\n\nconst handleStartRename = (id: string) => {\n const item = props.chatHistory.find(item => item.id === id);\n if (item) {\n editingId.value = id;\n editTitle.value = item.title || '';\n state.actionMenuVisible[id] = false;\n nextTick(() => {\n editInputRefs.value[id]?.focus();\n });\n }\n};\n\n// 完成重命名\nconst handleRenameComplete = (id: string) => {\n if (editingId.value === id) {\n const trimmedTitle = editTitle.value.trim();\n if (trimmedTitle) {\n emit('rename-chat', id, trimmedTitle);\n }\n editingId.value = null;\n }\n};\n\n// 时间分组辅助函数\nconst getGroupKey = (date: Date): string => {\n const now = new Date();\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n const sevenDaysAgo = new Date(today);\n sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);\n const thirtyDaysAgo = new Date(today);\n thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);\n\n const targetDate = new Date(date);\n const targetDateNormalized = new Date(\n targetDate.getFullYear(),\n targetDate.getMonth(),\n targetDate.getDate()\n );\n\n if (targetDateNormalized >= today) return 'today';\n if (targetDateNormalized >= yesterday) return 'yesterday';\n if (targetDate >= sevenDaysAgo) return 'sevenDays';\n if (targetDate >= thirtyDaysAgo) return 'thirtyDays';\n return `${targetDate.getFullYear()}-${String(targetDate.getMonth() + 1).padStart(2, '0')}`;\n};\n\n// 格式化分组名称\nconst formatGroupName = (key: string): string => {\n switch (key) {\n case 'today':\n return '今天';\n case 'yesterday':\n return '昨天';\n case 'sevenDays':\n return '7天内';\n case 'thirtyDays':\n return '30天内';\n default:\n return key;\n }\n};\n\nconst handleMenuAction = (action: string, id: string) => {\n if (action === 'delete') {\n emit('delete-chat', id);\n }\n};\n\n// 按时间分组的计算属性\nconst groupedChatHistory = computed<GroupedChat[]>(() => {\n // 复制并排序对话(最新的在前)\n const sortedChats = [...props.chatHistory].sort(\n (a, b) => new Date(b.time).getTime() - new Date(a.time).getTime()\n );\n\n // 分组处理\n const groups: Record<string, HistoryItem[]> = {};\n sortedChats.forEach(chat => {\n const key = getGroupKey(new Date(chat.time));\n if (!groups[key]) groups[key] = [];\n groups[key].push(chat);\n });\n\n // 转换为有序数组\n return Object.entries(groups)\n .map(([key, items]) => ({\n groupKey: key,\n groupName: formatGroupName(key),\n items,\n }))\n .sort((a, b) => {\n // 自定义排序确保分组顺序正确\n const order: Record<string, number> = {\n today: 0,\n yesterday: 1,\n sevenDays: 2,\n thirtyDays: 3,\n };\n return (\n (order[a.groupKey] ?? 100) - (order[b.groupKey] ?? 100) ||\n b.groupKey.localeCompare(a.groupKey)\n );\n });\n});\n\n// 修改缓存类型定义\ninterface TooltipCacheItem {\n value: boolean;\n timestamp: number;\n}\n\n// 使用Map存储每个ID的测量结果,避免重复计算\nconst tooltipMeasurementCache = new Map<string, TooltipCacheItem>();\n\nconst clearTooltipCache = () => {\n tooltipMeasurementCache.clear();\n};\n\nwatch(() => props.chatHistory, clearTooltipCache);\n\n// 改进shouldShowTooltip函数\nconst shouldShowTooltip = (id: string, title: string) => {\n if (!title || editingId.value === id) return false;\n\n // 获取容器元素\n const containerEl = tooltipContainerRefs.value[id];\n if (!containerEl) {\n return false;\n }\n\n // 强制重新计算布局\n containerEl.getBoundingClientRect();\n // 获取容器的实际宽度(包括padding和border)\n const containerStyle = window.getComputedStyle(containerEl);\n const containerWidth = containerEl.offsetWidth;\n const containerPaddingX =\n parseFloat(containerStyle.paddingLeft) + parseFloat(containerStyle.paddingRight);\n const containerBorderX =\n parseFloat(containerStyle.borderLeftWidth) + parseFloat(containerStyle.borderRightWidth);\n // 内容区域宽度 = 总宽度 - padding - border\n const contentWidth = containerWidth - containerPaddingX - containerBorderX;\n\n // 如果容器宽度为0,不缓存结果,返回false\n if (containerWidth === 0) {\n return false;\n }\n\n // 检查缓存,但添加时间戳以支持定期更新\n const now = Date.now();\n const cacheKey = `${id}_${containerWidth}_${contentWidth}`; // 改进缓存键\n if (tooltipMeasurementCache.has(cacheKey)) {\n const cached = tooltipMeasurementCache.get(cacheKey);\n // 如果缓存项存在且未过期(5秒)\n if (cached && now - cached.timestamp < 5000) {\n return cached.value;\n }\n }\n\n // 创建临时元素测量文本宽度\n const tempElement = document.createElement('span');\n tempElement.className = 'history-title';\n tempElement.textContent = title;\n\n // 复制实际元素的样式\n const historyTitleEl = containerEl.querySelector('.history-title');\n if (historyTitleEl) {\n const titleStyle = window.getComputedStyle(historyTitleEl);\n // 复制所有相关样式\n tempElement.style.fontSize = titleStyle.fontSize;\n tempElement.style.fontFamily = titleStyle.fontFamily;\n tempElement.style.fontWeight = titleStyle.fontWeight;\n tempElement.style.letterSpacing = titleStyle.letterSpacing;\n tempElement.style.wordSpacing = titleStyle.wordSpacing;\n tempElement.style.textTransform = titleStyle.textTransform;\n }\n\n tempElement.style.visibility = 'hidden';\n tempElement.style.position = 'absolute';\n tempElement.style.whiteSpace = 'nowrap';\n document.body.appendChild(tempElement);\n\n // 强制重绘\n tempElement.getBoundingClientRect();\n const textWidth = tempElement.offsetWidth;\n\n document.body.removeChild(tempElement);\n\n // 添加5px阈值,避免边框等因素导致的误差\n const shouldShow = textWidth > contentWidth + 5;\n\n // 缓存结果,包含时间戳\n tooltipMeasurementCache.set(cacheKey, {\n value: shouldShow,\n timestamp: now,\n });\n\n return shouldShow;\n};\n\n// 事件处理\nconst handleSelectChat = (id: string) => {\n if (editingId.value === null) {\n emit('select-chat', id);\n resetAllMenus();\n }\n};\n\nconst resetAllMenus = () => {\n Object.keys(state.actionMenuVisible).forEach(key => {\n state.actionMenuVisible[key] = false;\n });\n};\n\nconst handleToggleActionMenu = (id: string, event?: MouseEvent) => {\n if (editingId.value === null) {\n event?.stopPropagation();\n props.chatHistory.forEach(item => {\n item.id !== id && (state.actionMenuVisible[item.id] = false);\n });\n state.actionMenuVisible[id] = !state.actionMenuVisible[id];\n\n // 添加动态定位逻辑\n if (state.actionMenuVisible[id]) {\n positionActionMenu(id);\n }\n }\n};\n\n// 添加对history-list容器的引用\nconst historyListRef = ref<HTMLUListElement | null>(null);\n\n// 添加对历史记录项的引用\nconst historyItemRefs = ref<Record<string, HTMLElement | null>>({});\n\nconst setHistoryItemRef = (id: string, el: HTMLElement | null) => {\n historyItemRefs.value[id] = el;\n};\n\n// 添加菜单定位函数\nconst positionActionMenu = (id: string) => {\n nextTick(() => {\n const menuEl = actionMenus.value[id];\n const historyItemEl = historyItemRefs.value[id];\n if (!menuEl || !historyItemEl || !historyListRef.value) return;\n\n // 重置样式\n menuEl.style.top = '';\n menuEl.style.bottom = '';\n menuEl.style.transform = '';\n menuEl.style.marginTop = '';\n menuEl.style.position = 'absolute';\n\n const menuHeight = menuEl.offsetHeight;\n const historyItemRect = historyItemEl.getBoundingClientRect();\n const listRect = historyListRef.value.getBoundingClientRect();\n const buttonEl = menuEl.previousElementSibling as HTMLElement;\n\n // 计算历史记录项底部到列表容器底部的距离\n const distanceToBottom = listRect.bottom - historyItemRect.bottom;\n\n // 如果距离小于菜单高度,则显示在上方\n if (distanceToBottom < menuHeight) {\n if (buttonEl) {\n // const buttonRect = buttonEl.getBoundingClientRect();\n // 直接设置菜单顶部位置为按钮顶部减去菜单高度\n menuEl.style.top = `${-menuHeight}px`;\n menuEl.style.bottom = 'auto';\n menuEl.style.transform = 'none';\n }\n } else {\n // 否则显示在下方\n menuEl.style.top = '100%';\n menuEl.style.bottom = 'auto';\n menuEl.style.transform = 'translateY(0)';\n }\n });\n};\n\n// 添加菜单关闭延迟逻辑\nlet menuCloseTimer: number | null = null;\n\nconst preventMenuClose = () => {\n if (menuCloseTimer) {\n clearTimeout(menuCloseTimer);\n menuCloseTimer = null;\n }\n};\n\nconst delayedCloseMenu = (id: string) => {\n preventMenuClose();\n menuCloseTimer = window.setTimeout(() => {\n state.actionMenuVisible[id] = false;\n }, 200);\n};\n</script>\n\n<!-- <style scoped>\n/* @import '../../style/TouchHistory.less'; */\n@import '../../style/HistoryList.less';\n</style> -->\n"],"names":["item","_createElementBlock","_normalizeClass","_createCommentVNode","_Fragment","_renderList","_createElementVNode","_toDisplayString","_openBlock","activeChat","_withKeys","_withModifiers"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _sfc_main from './HistorySidebar.vue2.mjs';
|
|
2
|
+
import _export_sfc from '../../../../../_virtual/_plugin-vue_export-helper.mjs';
|
|
2
3
|
|
|
4
|
+
var HistorySidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "HistorySidebar.vue"]]);
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
export { _sfc_main as default };
|
|
6
|
+
export { HistorySidebar as default };
|
|
6
7
|
//# sourceMappingURL=HistorySidebar.vue.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistorySidebar.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HistorySidebar.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|