agilebuilder-ui 1.1.65-tmp26 → 1.1.65-tmp28
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/dist/index.full.min.js +1381 -1349
- package/dist/style.css +42 -22
- package/es/IntervalSelection/src/sectionDate.vue.mjs +8 -8
- package/es/chat-embed/src/chat-addition-data.vue2.mjs +14 -11
- package/es/chat-embed/src/chat-ai-answer-tip.vue2.mjs +8 -8
- package/es/chat-embed/src/chat-bubble-footer.vue2.mjs +5 -5
- package/es/chat-embed/src/chat-sender.vue2.mjs +41 -41
- package/es/chat-embed/src/components/answer-auto-chart.vue2.mjs +1 -2
- package/es/chat-embed/src/components/answer-interaction-data.vue2.mjs +6 -7
- package/es/chat-embed/src/components/history-detail.vue2.mjs +18 -18
- package/es/chat-embed/src/header.vue2.mjs +16 -16
- package/es/chat-embed/src/index.vue2.mjs +161 -161
- package/es/chat-embed/src/recommendation-message.vue2.mjs +9 -6
- package/es/chat-embed/src/sidebar-item.vue2.mjs +65 -65
- package/es/chat-embed/src/voice/voice.vue.mjs +36 -35
- package/es/date-picker-range/index.vue2.mjs +39 -39
- package/es/department-tree-mobile/src/department-tree-app.vue.mjs +8 -7
- package/es/department-tree-mobile/src/department-tree-inline-app.vue.mjs +54 -54
- package/es/department-tree-mobile/src/dept-path.vue.mjs +7 -6
- package/es/department-tree-mobile/src/dept-result.vue.mjs +7 -6
- package/es/department-user-tree-inline/src/department-user-multiple-tree-inline.vue.mjs +5 -5
- package/es/department-user-tree-mobile/src/department-user-tree-app.vue.mjs +10 -9
- package/es/department-user-tree-mobile/src/department-user-tree-inline-app.vue.mjs +64 -64
- package/es/department-user-tree-mobile/src/dept-path.vue.mjs +7 -6
- package/es/department-user-tree-mobile/src/dept-result.vue.mjs +4 -3
- package/es/empty-state/index.vue.mjs +2 -2
- package/es/fs-upload/src/fs-upload-multi.vue.mjs +1 -1
- package/es/fs-upload-list/src/fs-upload-list.vue.mjs +1 -1
- package/es/fs-upload-new/src/file-upload-mobile/file-upload-app.vue.mjs +12 -12
- package/es/fs-upload-new/src/file-upload-mobile/file-upload-browser.vue.mjs +24 -24
- package/es/fs-upload-new/src/file-upload-mobile/file-upload-component.vue2.mjs +17 -17
- package/es/fs-upload-new/src/file-upload-mobile/file-upload.vue.mjs +12 -12
- package/es/fs-upload-new/src/fs-button-upload.vue2.mjs +23 -23
- package/es/fs-upload-new/src/fs-drag-upload.vue2.mjs +23 -23
- package/es/fs-upload-new/src/fs-preview-new.vue2.mjs +34 -34
- package/es/fs-upload-new/src/fs-upload-new.vue.mjs +15 -15
- package/es/json-view/json-view-dialog.vue.mjs +5 -5
- package/es/multipart-upload/src/multipart-upload-form.vue.mjs +1 -1
- package/es/multipart-upload/src/multipart-upload-list.vue.mjs +5 -5
- package/es/row-form/index.vue2.mjs +31 -31
- package/es/row-form/operation.vue.mjs +13 -13
- package/es/secret-info/index.vue.mjs +1 -1
- package/es/src/components/Affix/index.vue2.mjs +26 -26
- package/es/src/components/Scrollbar/index.vue.mjs +22 -22
- package/es/src/views/error-page/401.vue.mjs +8 -8
- package/es/src/views/error-page/404.vue.mjs +8 -8
- package/es/src/views/layout/components/Menubar/Item.vue.mjs +1 -1
- package/es/src/views/layout/components/Menubar/Item.vue2.mjs +2 -2
- package/es/src/views/super-icon/index.mjs +7 -0
- package/es/src/views/super-icon/src/index.vue.mjs +7 -0
- package/es/src/views/super-icon/src/index.vue2.mjs +13 -0
- package/es/src/views/super-icon/src/index.vue3.mjs +4 -0
- package/es/src/views/svg-icon/src/svg-icon.vue2.mjs +14 -0
- package/es/style.css +907 -887
- package/es/super-grid/src/columns-config.vue.mjs +1 -1
- package/es/super-grid/src/components/grid-radio-input.vue.mjs +5 -5
- package/es/super-grid/src/components/select-input.vue.mjs +55 -55
- package/es/super-grid/src/row-detail.vue.mjs +1 -1
- package/es/super-grid/src/search-form-advancedQuery.vue.mjs +1 -1
- package/es/super-grid/src/search-form-number.vue.mjs +4 -5
- package/es/super-grid/src/super-grid.vue.mjs +1 -1
- package/es/super-nine-grid/src/search-form-number.vue.mjs +4 -5
- package/es/super-nine-grid/src/search-form.vue.mjs +1 -1
- package/es/super-nine-grid/src/super-nine-grid.vue.mjs +1 -1
- package/es/workgroup-tree-inline/src/workgroup-tree-inline.vue.mjs +8 -8
- package/es/workgroup-tree-mobile/src/dept-result.vue.mjs +4 -3
- package/es/workgroup-tree-mobile/src/workgroup-tree-app.vue.mjs +8 -7
- package/es/workgroup-tree-mobile/src/workgroup-tree-inline-app.vue.mjs +51 -51
- package/es/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue.mjs +5 -5
- package/es/workgroup-user-tree-mobile/src/dept-path.vue.mjs +7 -6
- package/es/workgroup-user-tree-mobile/src/dept-result.vue.mjs +4 -3
- package/es/workgroup-user-tree-mobile/src/workgroup-user-tree-app.vue.mjs +7 -6
- package/es/workgroup-user-tree-mobile/src/workgroup-user-tree-inline-app.vue.mjs +65 -65
- package/es/year-range-picker/src/year-range-picker.vue.mjs +1 -1
- package/lib/IntervalSelection/src/sectionDate.vue.cjs +6 -6
- package/lib/chat-embed/src/chat-addition-data.vue2.cjs +13 -10
- package/lib/chat-embed/src/chat-ai-answer-tip.vue2.cjs +8 -8
- package/lib/chat-embed/src/chat-bubble-footer.vue2.cjs +5 -5
- package/lib/chat-embed/src/chat-sender.vue2.cjs +20 -20
- package/lib/chat-embed/src/components/answer-auto-chart.vue2.cjs +1 -2
- package/lib/chat-embed/src/components/answer-interaction-data.vue2.cjs +5 -6
- package/lib/chat-embed/src/components/history-detail.vue2.cjs +18 -18
- package/lib/chat-embed/src/header.vue2.cjs +17 -17
- package/lib/chat-embed/src/index.vue2.cjs +123 -123
- package/lib/chat-embed/src/recommendation-message.vue2.cjs +7 -4
- package/lib/chat-embed/src/sidebar-item.vue2.cjs +35 -35
- package/lib/chat-embed/src/voice/voice.vue.cjs +36 -35
- package/lib/date-picker-range/index.vue2.cjs +11 -11
- package/lib/department-tree-mobile/src/department-tree-app.vue.cjs +7 -6
- package/lib/department-tree-mobile/src/department-tree-inline-app.vue.cjs +53 -53
- package/lib/department-tree-mobile/src/dept-path.vue.cjs +6 -6
- package/lib/department-tree-mobile/src/dept-result.vue.cjs +7 -6
- package/lib/department-user-tree-inline/src/department-user-multiple-tree-inline.vue.cjs +5 -5
- package/lib/department-user-tree-mobile/src/department-user-tree-app.vue.cjs +9 -8
- package/lib/department-user-tree-mobile/src/department-user-tree-inline-app.vue.cjs +61 -61
- package/lib/department-user-tree-mobile/src/dept-path.vue.cjs +6 -6
- package/lib/department-user-tree-mobile/src/dept-result.vue.cjs +4 -3
- package/lib/empty-state/index.vue.cjs +2 -2
- package/lib/fs-upload/src/fs-upload-multi.vue.cjs +1 -1
- package/lib/fs-upload-list/src/fs-upload-list.vue.cjs +1 -1
- package/lib/fs-upload-new/src/file-upload-mobile/file-upload-app.vue.cjs +12 -12
- package/lib/fs-upload-new/src/file-upload-mobile/file-upload-browser.vue.cjs +24 -24
- package/lib/fs-upload-new/src/file-upload-mobile/file-upload-component.vue2.cjs +17 -17
- package/lib/fs-upload-new/src/file-upload-mobile/file-upload.vue.cjs +12 -12
- package/lib/fs-upload-new/src/fs-button-upload.vue2.cjs +23 -23
- package/lib/fs-upload-new/src/fs-drag-upload.vue2.cjs +23 -23
- package/lib/fs-upload-new/src/fs-preview-new.vue2.cjs +36 -36
- package/lib/fs-upload-new/src/fs-upload-new.vue.cjs +15 -15
- package/lib/json-view/json-view-dialog.vue.cjs +6 -6
- package/lib/multipart-upload/src/multipart-upload-form.vue.cjs +1 -1
- package/lib/multipart-upload/src/multipart-upload-list.vue.cjs +5 -5
- package/lib/row-form/index.vue2.cjs +31 -31
- package/lib/row-form/operation.vue.cjs +13 -13
- package/lib/secret-info/index.vue.cjs +1 -1
- package/lib/src/components/Affix/index.vue2.cjs +28 -28
- package/lib/src/components/Scrollbar/index.vue.cjs +22 -22
- package/lib/src/views/error-page/401.vue.cjs +7 -7
- package/lib/src/views/error-page/404.vue.cjs +4 -4
- package/lib/src/views/layout/components/Menubar/Item.vue.cjs +1 -1
- package/lib/src/views/layout/components/Menubar/Item.vue2.cjs +2 -2
- package/lib/src/views/super-icon/index.cjs +5 -0
- package/lib/src/views/super-icon/src/index.vue.cjs +5 -0
- package/lib/src/views/super-icon/src/index.vue2.cjs +10 -0
- package/lib/src/views/super-icon/src/index.vue3.cjs +2 -0
- package/lib/src/views/svg-icon/src/svg-icon.vue2.cjs +12 -0
- package/lib/style.css +920 -900
- package/lib/super-grid/src/columns-config.vue.cjs +1 -1
- package/lib/super-grid/src/components/grid-radio-input.vue.cjs +5 -5
- package/lib/super-grid/src/components/select-input.vue.cjs +56 -56
- package/lib/super-grid/src/row-detail.vue.cjs +1 -1
- package/lib/super-grid/src/search-form-advancedQuery.vue.cjs +1 -1
- package/lib/super-grid/src/search-form-number.vue.cjs +6 -6
- package/lib/super-grid/src/super-grid.vue.cjs +1 -1
- package/lib/super-nine-grid/src/search-form-number.vue.cjs +6 -6
- package/lib/super-nine-grid/src/search-form.vue.cjs +1 -1
- package/lib/super-nine-grid/src/super-nine-grid.vue.cjs +1 -1
- package/lib/workgroup-tree-inline/src/workgroup-tree-inline.vue.cjs +5 -5
- package/lib/workgroup-tree-mobile/src/dept-result.vue.cjs +4 -3
- package/lib/workgroup-tree-mobile/src/workgroup-tree-app.vue.cjs +9 -8
- package/lib/workgroup-tree-mobile/src/workgroup-tree-inline-app.vue.cjs +48 -48
- package/lib/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue.cjs +5 -5
- package/lib/workgroup-user-tree-mobile/src/dept-path.vue.cjs +6 -6
- package/lib/workgroup-user-tree-mobile/src/dept-result.vue.cjs +4 -3
- package/lib/workgroup-user-tree-mobile/src/workgroup-user-tree-app.vue.cjs +9 -8
- package/lib/workgroup-user-tree-mobile/src/workgroup-user-tree-inline-app.vue.cjs +63 -63
- package/lib/year-range-picker/src/year-range-picker.vue.cjs +1 -1
- package/package.json +2 -2
- package/src/views/layout/components/Menubar/Item.vue +1 -1
- package/src/views/super-icon/index.js +6 -0
- package/src/views/super-icon/src/index.vue +52 -0
- package/src/views/svg-icon/src/svg-icon.vue +5 -8
|
@@ -1,205 +1,205 @@
|
|
|
1
|
-
import { defineComponent as e, ref as t, watch as a, onMounted as n, onBeforeUnmount as o, onUnmounted as l, computed as i, nextTick as u, openBlock as r, createElementBlock as s, createElementVNode as c, normalizeStyle as v, unref as d, createVNode as m, Transition as h, withCtx as f, withDirectives as p, normalizeClass as g, Fragment as y, createBlock as w, createCommentVNode as b, toDisplayString as k, createTextVNode as S, renderList as C, vShow as A
|
|
2
|
-
import { useI18n as
|
|
3
|
-
import { useXStream as
|
|
4
|
-
import { useDraggable as
|
|
5
|
-
import { getToken as
|
|
6
|
-
import { defaultMessage as
|
|
7
|
-
import { AI_MODELS as
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
1
|
+
import { defineComponent as e, ref as t, watch as a, onMounted as n, onBeforeUnmount as o, onUnmounted as l, computed as i, nextTick as u, openBlock as r, createElementBlock as s, createElementVNode as c, normalizeStyle as v, unref as d, createVNode as m, Transition as h, withCtx as f, withDirectives as p, normalizeClass as g, Fragment as y, createBlock as w, createCommentVNode as b, toDisplayString as k, createTextVNode as S, renderList as C, vShow as A } from "vue";
|
|
2
|
+
import { useI18n as x } from "vue-i18n";
|
|
3
|
+
import { useXStream as P, BubbleList as _, Thinking as E, XMarkdown as j, Typewriter as T } from "vue-element-plus-x";
|
|
4
|
+
import { useDraggable as D } from "@vueuse/core";
|
|
5
|
+
import { getToken as N } from "../../src/utils/auth.mjs";
|
|
6
|
+
import { defaultMessage as I, createUserMessage as M, createAiMessage as O, getMessageTemplate as q } from "./chat-embed-message.mjs";
|
|
7
|
+
import { AI_MODELS as $, MESSAGE_STATUS as R } from "./type.mjs";
|
|
8
|
+
import H from "./recommendation-message.vue.mjs";
|
|
9
|
+
import L from "./chat-addition-data.vue.mjs";
|
|
10
|
+
import z from "./chat-bubble-footer.vue.mjs";
|
|
11
|
+
import J from "./chat-ai-answer-tip.vue.mjs";
|
|
12
|
+
import V from "./header.vue.mjs";
|
|
13
|
+
import F from "./chat-sender.vue.mjs";
|
|
14
14
|
import "codemirror";
|
|
15
15
|
import "@codemirror/lang-json";
|
|
16
16
|
import "@codemirror/state";
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import { v4 as
|
|
24
|
-
import { downloadJsonFile as
|
|
25
|
-
import { replaceAiTipTags as
|
|
26
|
-
import
|
|
27
|
-
import { useRoute as
|
|
28
|
-
const
|
|
17
|
+
import U from "../../json-view/json-view-dialog.vue.mjs";
|
|
18
|
+
import W from "./components/answer-home-chart.vue.mjs";
|
|
19
|
+
import B from "./components/answer-interaction-data.vue.mjs";
|
|
20
|
+
import G from "./components/answer-auto-chart.vue.mjs";
|
|
21
|
+
import K from "../../src/assets/chat-embed/robot.gif.mjs";
|
|
22
|
+
import Q from "./sidebar-item.vue.mjs";
|
|
23
|
+
import { v4 as X } from "uuid";
|
|
24
|
+
import { downloadJsonFile as Y, generateFileName as Z } from "./util/text-file-util.mjs";
|
|
25
|
+
import { replaceAiTipTags as ee, parseAnswerContent as te, extractFilenameFromUrl as ae } from "./util/chat-embed-util.mjs";
|
|
26
|
+
import ne from "./util/mcp-utils.mjs";
|
|
27
|
+
import { useRoute as oe } from "vue-router";
|
|
28
|
+
const le = { key: 0 }, ie = ["src"], ue = { class: "chat-content" }, re = { style: { display: "flex", "flex-direction": "row" } }, se = { class: "chat-embed__main_content" }, ce = ["href", "title"], ve = ["href", "target"], de = { style: { "font-size": "10px", color: "#999", "text-align": "right" } }, me = { key: 1, style: { "margin-top": "5px", width: "100%" } }, he = ["onClick"], fe = { style: { display: "none" } }, pe = e({ __name: "index", setup(e2) {
|
|
29
29
|
var _a, _b, _c;
|
|
30
|
-
const
|
|
30
|
+
const pe2 = function() {
|
|
31
31
|
try {
|
|
32
|
-
const e3 =
|
|
32
|
+
const e3 = oe();
|
|
33
33
|
return e3.query.customSystem ? String(e3.query.customSystem) : null;
|
|
34
34
|
} catch (e3) {
|
|
35
35
|
return console.error("获取customSystem参数失败"), null;
|
|
36
36
|
}
|
|
37
37
|
}();
|
|
38
|
-
const
|
|
39
|
-
let
|
|
40
|
-
const
|
|
41
|
-
|
|
38
|
+
const ge = t(((_c = (_b = (_a = window.$vueApp) == null ? void 0 : _a.config) == null ? void 0 : _b.globalProperties) == null ? void 0 : _c.enableAiChat) || false), { startStream: ye, cancel: we, data: be, error: ke, isLoading: Se } = P(), { t: Ce } = x(), Ae = t(), xe = t(true), Pe = t([]), _e = t({}), Ee = t(false), je = t($.RAGFLOW), Te = t({}), De = {}, Ne = t(true), Ie = t(null), Me = t(false), Oe = t(false), qe = t(0), $e = t(""), Re = t("500px"), He = t(250), Le = t("https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"), ze = t(false), Je = t({}), Ve = t(), Fe = t(), Ue = t(), We = t(), Be = t(), Ge = t(false);
|
|
39
|
+
let Ke = null;
|
|
40
|
+
const Qe = t(null), Xe = document.documentElement.clientWidth - 100, Ye = document.documentElement.clientHeight - 100, { x: Ze, y: et, style: tt } = D(Ae, { initialValue: { x: Xe, y: Ye }, preventDefault: true, onStart() {
|
|
41
|
+
xe.value = true;
|
|
42
42
|
}, onMove(e3) {
|
|
43
|
-
|
|
43
|
+
xe.value = false, function(e4) {
|
|
44
44
|
var _a2, _b2;
|
|
45
|
-
const t2 = window.innerWidth - (((_a2 =
|
|
45
|
+
const t2 = window.innerWidth - (((_a2 = Ae.value) == null ? void 0 : _a2.offsetWidth) || 0), a2 = window.innerHeight - (((_b2 = Ae.value) == null ? void 0 : _b2.offsetHeight) || 0);
|
|
46
46
|
e4.x = Math.max(0, Math.min(e4.x, t2)), e4.y = Math.max(0, Math.min(e4.y, a2));
|
|
47
47
|
}(e3);
|
|
48
48
|
}, onEnd() {
|
|
49
|
-
|
|
49
|
+
at(), setTimeout(() => xe.value = true, 50);
|
|
50
50
|
} });
|
|
51
|
-
function
|
|
52
|
-
if (!
|
|
51
|
+
function at() {
|
|
52
|
+
if (!Ae.value)
|
|
53
53
|
return;
|
|
54
|
-
const e3 = window.innerWidth -
|
|
55
|
-
|
|
54
|
+
const e3 = window.innerWidth - Ae.value.offsetWidth, t2 = window.innerHeight - Ae.value.offsetHeight;
|
|
55
|
+
Ze.value > e3 && (Ze.value = e3), et.value > t2 && (et.value = t2);
|
|
56
56
|
}
|
|
57
|
-
function
|
|
57
|
+
function nt(e3) {
|
|
58
58
|
var _a2;
|
|
59
|
-
|
|
59
|
+
Ne.value = true, je.value = e3, Pe.value = [], De[e3] && 0 !== De[e3].length ? (Pe.value = De[e3], (_a2 = Ve.value) == null ? void 0 : _a2.scrollToBottom()) : Pe.value.push(I);
|
|
60
60
|
}
|
|
61
|
-
function
|
|
62
|
-
|
|
61
|
+
function ot(e3 = Ce("chatEmbed.requestFailed")) {
|
|
62
|
+
Pe.value.push(q("ai", e3, false, false)), Ee.value = false;
|
|
63
63
|
}
|
|
64
|
-
function
|
|
65
|
-
|
|
64
|
+
function lt() {
|
|
65
|
+
xe.value && (Me.value = !Me.value, vt(), Be.value.getHistory());
|
|
66
66
|
}
|
|
67
|
-
function
|
|
68
|
-
return
|
|
67
|
+
function it(e3) {
|
|
68
|
+
return Te.value[e3] || (Te.value[e3] = X().replace(/-/g, "")), Te.value[e3];
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
nt(je.value), a(Re, (e3) => {
|
|
71
71
|
document.documentElement.style.setProperty("--el-bubble-list-max-height", e3);
|
|
72
72
|
}), n(() => {
|
|
73
|
-
if (window.addEventListener("resize",
|
|
73
|
+
if (window.addEventListener("resize", at), Fe.value) {
|
|
74
74
|
const e3 = new ResizeObserver(() => {
|
|
75
|
-
|
|
75
|
+
vt();
|
|
76
76
|
});
|
|
77
|
-
e3.observe(
|
|
77
|
+
e3.observe(Fe.value.$el || Fe.value), Fe.value._resizeObserver = e3;
|
|
78
78
|
}
|
|
79
79
|
}), o(() => {
|
|
80
80
|
var _a2;
|
|
81
|
-
((_a2 =
|
|
81
|
+
((_a2 = Fe.value) == null ? void 0 : _a2._resizeObserver) && Fe.value._resizeObserver.disconnect();
|
|
82
82
|
}), l(() => {
|
|
83
|
-
window.removeEventListener("resize",
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
window.removeEventListener("resize", at), function() {
|
|
84
|
+
Ke && (Ke.abort(), Ke = null);
|
|
85
|
+
we(), Ge.value = false, Ee.value = false;
|
|
86
86
|
}();
|
|
87
87
|
});
|
|
88
|
-
const
|
|
88
|
+
const ut = i(() => {
|
|
89
89
|
var _a2, _b2, _c2;
|
|
90
|
-
if (!
|
|
90
|
+
if (!Ge.value || !be.value.length)
|
|
91
91
|
return "";
|
|
92
|
-
const e3 =
|
|
92
|
+
const e3 = be.value[be.value.length - 1];
|
|
93
93
|
try {
|
|
94
94
|
const t2 = JSON.parse(e3.data);
|
|
95
95
|
if (t2.isChunk)
|
|
96
|
-
true === t2.data &&
|
|
96
|
+
true === t2.data && _e.value.content ? (_e.value.thinkingStatus = R.END, _e.value.showThinkingContent = true, _e.value = {}, Ee.value = false) : rt(t2);
|
|
97
97
|
else {
|
|
98
98
|
if (!((_a2 = t2.data) == null ? void 0 : _a2.id) && true !== t2.data)
|
|
99
|
-
return
|
|
100
|
-
if (t2.data.reference && (((_b2 = t2.data.reference.doc_aggs) == null ? void 0 : _b2.length) && (
|
|
99
|
+
return Ee.value = false, _e.value && (_e.value.thinkingStatus = R.END), "";
|
|
100
|
+
if (t2.data.reference && (((_b2 = t2.data.reference.doc_aggs) == null ? void 0 : _b2.length) && (_e.value.docAggs = t2.data.reference.doc_aggs), ((_c2 = t2.data.reference.chunks) == null ? void 0 : _c2.length) && (_e.value.referenceChunks = t2.data.reference.chunks)), true === t2.data)
|
|
101
101
|
return function() {
|
|
102
|
-
if (
|
|
102
|
+
if (Ee.value = false, !_e.value)
|
|
103
103
|
return;
|
|
104
|
-
|
|
104
|
+
_e.value.content = ee(_e.value.content), Ct();
|
|
105
105
|
}(t2.data.answer), "";
|
|
106
|
-
|
|
106
|
+
rt(t2);
|
|
107
107
|
}
|
|
108
108
|
} catch (e4) {
|
|
109
|
-
console.error("解析数据时出错:", e4),
|
|
109
|
+
console.error("解析数据时出错:", e4), Ee.value = false;
|
|
110
110
|
}
|
|
111
111
|
return "";
|
|
112
112
|
});
|
|
113
|
-
function
|
|
113
|
+
function rt(e3) {
|
|
114
114
|
const t2 = e3.data.answer;
|
|
115
|
-
if (!t2 || !
|
|
115
|
+
if (!t2 || !_e.value)
|
|
116
116
|
return;
|
|
117
|
-
const { thinkingContent: a2, mainContent: n2 } =
|
|
118
|
-
a2 && (
|
|
117
|
+
const { thinkingContent: a2, mainContent: n2 } = te(t2);
|
|
118
|
+
a2 && (_e.value.thinkingContent = a2), n2 && (e3.isChunk ? _e.value.content += n2 : _e.value.content = n2);
|
|
119
119
|
}
|
|
120
|
-
function
|
|
121
|
-
if (
|
|
122
|
-
const e3 =
|
|
123
|
-
e3 && "ai" === e3.role && (e3.thinkingStatus =
|
|
120
|
+
function st() {
|
|
121
|
+
if (Ee.value = false, Ke && (Ke.abort(), Ke = null), Ge.value && (we(), Ge.value = false, Pe.value.length > 0)) {
|
|
122
|
+
const e3 = Pe.value[Pe.value.length - 1];
|
|
123
|
+
e3 && "ai" === e3.role && (e3.thinkingStatus = R.END, e3.content || (e3.content = "回答已取消"));
|
|
124
124
|
}
|
|
125
|
-
|
|
125
|
+
_e.value && Object.keys(_e.value).length > 0 && (_e.value.thinkingStatus = R.END, _e.value = {});
|
|
126
126
|
}
|
|
127
|
-
function
|
|
128
|
-
|
|
127
|
+
function ct() {
|
|
128
|
+
Oe.value = !Oe.value, vt();
|
|
129
129
|
}
|
|
130
|
-
function
|
|
130
|
+
function vt() {
|
|
131
131
|
let e3 = 100;
|
|
132
|
-
|
|
132
|
+
Oe.value && (e3 = 100), u(() => {
|
|
133
133
|
var _a2;
|
|
134
|
-
|
|
135
|
-
const t2 = ((_a2 =
|
|
136
|
-
|
|
134
|
+
Oe.value ? (Ue.value.style.height = `calc(${e3}vh)`, Ue.value.style.width = "calc(100vw)", $e.value = "calc(100vw - var(--chat-padding) * 2) * 0.8") : (Ue.value.style.height = `calc(${e3}vh - var(--chat-padding) * 2)`, Ue.value.style.width = 460 + He.value + "px", $e.value = 0.8 * (460 + He.value) + "px");
|
|
135
|
+
const t2 = ((_a2 = Fe.value) == null ? void 0 : _a2.offsetHeight) || 80, a2 = window.innerHeight * e3 / 100 - 56 - t2 - 72;
|
|
136
|
+
Re.value = a2 + "px";
|
|
137
137
|
});
|
|
138
138
|
}
|
|
139
|
-
function
|
|
140
|
-
switch (
|
|
141
|
-
case
|
|
139
|
+
function dt(e3) {
|
|
140
|
+
switch (Ee.value && st(), e3.systemCode = pe2, Ge.value = false, e3.aiModel) {
|
|
141
|
+
case $.RAGFLOW:
|
|
142
142
|
!function(e4) {
|
|
143
143
|
if (!e4)
|
|
144
144
|
return;
|
|
145
|
-
|
|
145
|
+
be.value = [], Pe.value.push(q("user", e4, true, false)), Ee.value = true, Te.value[je.value] ? bt(e4) : async function(e5) {
|
|
146
146
|
try {
|
|
147
147
|
const t2 = await window.$vueApp.config.globalProperties.$http.post(window.$vueApp.config.globalProperties.baseAPI + "/mc/rag-flow/converse-with-chat", { question: e5 });
|
|
148
|
-
|
|
148
|
+
Te.value[je.value] = t2.session_id, bt(e5);
|
|
149
149
|
} catch (e6) {
|
|
150
|
-
console.error("Failed to create session:", e6),
|
|
150
|
+
console.error("Failed to create session:", e6), ot();
|
|
151
151
|
}
|
|
152
152
|
}(e4);
|
|
153
153
|
}(e3.question);
|
|
154
154
|
break;
|
|
155
|
-
case
|
|
155
|
+
case $.DATABASE:
|
|
156
156
|
!function(e4) {
|
|
157
|
-
if (
|
|
157
|
+
if (Ee.value = true, !e4.question)
|
|
158
158
|
return;
|
|
159
|
-
const t2 =
|
|
160
|
-
|
|
159
|
+
const t2 = M(e4);
|
|
160
|
+
Pe.value.push(t2), _e.value = O(e4, true), Pe.value.push(_e.value);
|
|
161
161
|
try {
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
ne.sendMessageToMcp(e4, it(je.value)).then(({ answerMessage: e5, errorMessage: t3 }) => {
|
|
163
|
+
Ee.value = false, t3 ? At(t3, true) : e5 && At(e5);
|
|
164
164
|
}).catch((e5) => {
|
|
165
|
-
|
|
165
|
+
Ee.value = false, console.error("MCP error:", e5), At("未能返回有效信息", true);
|
|
166
166
|
});
|
|
167
167
|
} catch (e5) {
|
|
168
|
-
|
|
168
|
+
Ee.value = false, console.error("MCP error:", e5), At("未能返回有效信息", true);
|
|
169
169
|
}
|
|
170
170
|
}(e3);
|
|
171
171
|
break;
|
|
172
|
-
case
|
|
173
|
-
|
|
172
|
+
case $.DEEPSEEK:
|
|
173
|
+
wt(e3);
|
|
174
174
|
break;
|
|
175
|
-
case
|
|
175
|
+
case $.INTERACTION:
|
|
176
176
|
!function(e4) {
|
|
177
177
|
if (!e4.question)
|
|
178
178
|
return;
|
|
179
179
|
try {
|
|
180
|
-
const t2 =
|
|
181
|
-
|
|
180
|
+
const t2 = M(e4);
|
|
181
|
+
Pe.value.push(t2), Qe.value.parseCommand();
|
|
182
182
|
} catch (e5) {
|
|
183
|
-
console.error("systemInteraction error:", e5),
|
|
183
|
+
console.error("systemInteraction error:", e5), ot();
|
|
184
184
|
}
|
|
185
185
|
}(e3);
|
|
186
186
|
break;
|
|
187
|
-
case
|
|
187
|
+
case $.PPT_GENERATION:
|
|
188
188
|
!function(e4) {
|
|
189
189
|
if (!e4.question)
|
|
190
190
|
return;
|
|
191
|
-
const t2 =
|
|
192
|
-
|
|
193
|
-
const a2 =
|
|
194
|
-
window.$vueApp.config.globalProperties.$http.post(window.$vueApp.config.globalProperties.baseAPI + "/component/aippt/createPpt", { menuName: e4.menuName, menuCode: e4.menuCode, question: e4.question, additionalDataLabel: e4.additionalDataLabel, additionalData: JSON.stringify(e4.additionalData), fileId: e4.fileId, fileInfos: e4.fileInfos, systemCode:
|
|
191
|
+
const t2 = M(e4);
|
|
192
|
+
Pe.value.push(t2), Ge.value = true, Ee.value = true, _e.value = O(e4, true), Pe.value.push(_e.value);
|
|
193
|
+
const a2 = it(je.value);
|
|
194
|
+
window.$vueApp.config.globalProperties.$http.post(window.$vueApp.config.globalProperties.baseAPI + "/component/aippt/createPpt", { menuName: e4.menuName, menuCode: e4.menuCode, question: e4.question, additionalDataLabel: e4.additionalDataLabel, additionalData: JSON.stringify(e4.additionalData), fileId: e4.fileId, fileInfos: e4.fileInfos, systemCode: pe2, messageId: a2 }).then((e5) => {
|
|
195
195
|
if (e5.fileUrl) {
|
|
196
|
-
const t3 =
|
|
197
|
-
|
|
196
|
+
const t3 = ae(e5.fileUrl) || "点击下载";
|
|
197
|
+
_e.value.content = `PPT已生成:[${t3}](${e5.fileUrl})`;
|
|
198
198
|
} else
|
|
199
|
-
|
|
200
|
-
|
|
199
|
+
_e.value.content = "PPT生成失败,请稍后重试";
|
|
200
|
+
Ct(), Ee.value = false, window.open(e5.fileUrl, "_blank");
|
|
201
201
|
}).finally(() => {
|
|
202
|
-
|
|
202
|
+
Ee.value = false;
|
|
203
203
|
});
|
|
204
204
|
}(e3);
|
|
205
205
|
break;
|
|
@@ -207,101 +207,101 @@ const ue = { key: 0 }, re = ["src"], se = { class: "chat-content" }, ce = { styl
|
|
|
207
207
|
e3.aiModel;
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
function
|
|
211
|
-
|
|
210
|
+
function mt(e3) {
|
|
211
|
+
wt({ question: e3.question, additionalData: e3.additionalData, additionalDataLabel: e3.additionalDataLabel, menuName: e3.menuName, menuCode: e3.menuCode, aiModel: je.value });
|
|
212
212
|
}
|
|
213
|
-
function
|
|
213
|
+
function ht(e3) {
|
|
214
214
|
if (e3.content) {
|
|
215
|
-
|
|
215
|
+
wt({ question: e3.content, aiModel: je.value });
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
|
-
function
|
|
218
|
+
function ft() {
|
|
219
219
|
var _a2;
|
|
220
|
-
(_a2 =
|
|
221
|
-
if (
|
|
220
|
+
(_a2 = Qe.value) == null ? void 0 : _a2.newChatSession(), Pe.value = [], je.value === $.DEEPSEEK && async function() {
|
|
221
|
+
if (Te.value[je.value])
|
|
222
222
|
try {
|
|
223
|
-
await window.$vueApp.config.globalProperties.$http.post(window.$vueApp.config.globalProperties.baseAPI + "/component/ai/multiple-fuck/clear/" +
|
|
223
|
+
await window.$vueApp.config.globalProperties.$http.post(window.$vueApp.config.globalProperties.baseAPI + "/component/ai/multiple-fuck/clear/" + Te.value[je.value]);
|
|
224
224
|
} catch (e3) {
|
|
225
|
-
console.error("Failed to clear session:", e3),
|
|
225
|
+
console.error("Failed to clear session:", e3), ot();
|
|
226
226
|
}
|
|
227
|
-
}(),
|
|
227
|
+
}(), Ie.value = null, Te.value[je.value] = null, Ee.value = false, De[je.value] = [], nt(je.value);
|
|
228
228
|
}
|
|
229
|
-
function
|
|
230
|
-
|
|
229
|
+
function pt(e3) {
|
|
230
|
+
De[je.value] = JSON.parse(JSON.stringify(Pe.value)), nt(e3);
|
|
231
231
|
}
|
|
232
|
-
function
|
|
233
|
-
|
|
232
|
+
function gt(e3) {
|
|
233
|
+
Je.value = e3, ze.value = true;
|
|
234
234
|
}
|
|
235
|
-
function
|
|
235
|
+
function yt(e3, t2) {
|
|
236
236
|
try {
|
|
237
|
-
|
|
237
|
+
Y(e3, Z(t2 || "data"));
|
|
238
238
|
} catch (e4) {
|
|
239
239
|
console.error("下载失败:", e4);
|
|
240
240
|
}
|
|
241
241
|
}
|
|
242
|
-
async function
|
|
242
|
+
async function wt(e3) {
|
|
243
243
|
if (e3.question)
|
|
244
244
|
try {
|
|
245
|
-
const t2 =
|
|
246
|
-
|
|
247
|
-
const a2 =
|
|
248
|
-
|
|
249
|
-
const n2 =
|
|
245
|
+
const t2 = M(e3);
|
|
246
|
+
Pe.value.push(t2), Ge.value = true, Ee.value = true;
|
|
247
|
+
const a2 = it(je.value);
|
|
248
|
+
_e.value = O(e3, true), Pe.value.push(_e.value), Ke = new AbortController();
|
|
249
|
+
const n2 = N(), o2 = await fetch(window.$vueApp.config.globalProperties.baseAPI + "/component/ai/multiple-fuck", { method: "POST", headers: { "Content-Type": "application/json", authorization: n2 || "" }, body: JSON.stringify({ question: e3.question, messageId: a2, data: JSON.stringify(e3.additionalData), fileId: e3.fileId, systemCode: pe2 }), signal: Ke.signal });
|
|
250
250
|
if (!o2.body)
|
|
251
251
|
throw new Error("No response body");
|
|
252
|
-
await
|
|
252
|
+
await ye({ readableStream: o2.body });
|
|
253
253
|
} catch (e4) {
|
|
254
|
-
console.error("DeepSeek error:", e4),
|
|
254
|
+
console.error("DeepSeek error:", e4), ot();
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
|
-
async function
|
|
257
|
+
async function bt(e3) {
|
|
258
258
|
try {
|
|
259
|
-
|
|
260
|
-
const t2 =
|
|
259
|
+
Ge.value = true, _e.value = O({ question: e3 }, true), _e.value.messageType = "realtime", Pe.value.push(_e.value), Ke = new AbortController();
|
|
260
|
+
const t2 = N(), a2 = await fetch(window.$vueApp.config.globalProperties.baseAPI + "/mc/rag-flow/converse-with-chat-stream", { method: "POST", headers: { "Content-Type": "text/event-stream", authorization: t2 }, body: JSON.stringify({ question: e3, stream: true, systemCode: pe2, session_id: Te.value[je.value] }), signal: Ke.signal });
|
|
261
261
|
if (!a2.body)
|
|
262
262
|
throw new Error("No response body");
|
|
263
|
-
await
|
|
263
|
+
await ye({ readableStream: a2.body });
|
|
264
264
|
} catch (e4) {
|
|
265
265
|
if ("AbortError" === (e4 == null ? void 0 : e4.name))
|
|
266
266
|
return;
|
|
267
|
-
console.error("SSE error:", e4),
|
|
267
|
+
console.error("SSE error:", e4), Ee.value = false;
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
|
-
function
|
|
270
|
+
function kt(e3) {
|
|
271
271
|
const t2 = e3.doc_name.split(".").pop();
|
|
272
272
|
window.open(`http://101.43.172.105/document/${e3.doc_id}?ext=${t2}&prefix=document`);
|
|
273
273
|
}
|
|
274
|
-
function
|
|
275
|
-
|
|
276
|
-
const t2 = { question: e3.content, aiModel:
|
|
277
|
-
if (
|
|
274
|
+
function St(e3) {
|
|
275
|
+
Ee.value = true, it(je.value);
|
|
276
|
+
const t2 = { question: e3.content, aiModel: je.value };
|
|
277
|
+
if (_e.value = O(t2, false), Pe.value.push(_e.value), _e.value.thinkingStatus = R.NONE, e3.url) {
|
|
278
278
|
const t3 = e3.command ? e3.command : e3.content;
|
|
279
|
-
|
|
279
|
+
_e.value.link = e3.url, _e.value.linkTitle = t3, _e.value.content = e3.content;
|
|
280
280
|
} else
|
|
281
|
-
|
|
282
|
-
|
|
281
|
+
_e.value.content = e3.content;
|
|
282
|
+
_e.value = {}, Ee.value = false;
|
|
283
283
|
}
|
|
284
|
-
function
|
|
285
|
-
|
|
284
|
+
function Ct(e3 = false) {
|
|
285
|
+
_e.value.thinkingStatus = R.END, _e.value.showThinkingContent = true, _e.value.messageType = "history", _e.value = {}, Ne.value && Be.value.addCurrentToSessionHistory(Te.value[je.value], Pe.value), e3 || (Ne.value = false);
|
|
286
286
|
}
|
|
287
|
-
function
|
|
288
|
-
|
|
287
|
+
function At(e3, t2 = false) {
|
|
288
|
+
_e.value.content = e3, t2 && (_e.value.thinkingStatus = R.ERROR), Ct(t2);
|
|
289
289
|
}
|
|
290
|
-
function
|
|
291
|
-
|
|
292
|
-
|
|
290
|
+
function xt(e3, t2) {
|
|
291
|
+
Ne.value = false, Ie.value = e3, Te.value[je.value] = e3.sessionId, t2.length > 0 && (Pe.value = []), u(() => {
|
|
292
|
+
Pe.value = t2, u(() => {
|
|
293
293
|
var _a2;
|
|
294
|
-
(_a2 =
|
|
294
|
+
(_a2 = Ve.value) == null ? void 0 : _a2.scrollToBottom();
|
|
295
295
|
});
|
|
296
296
|
});
|
|
297
297
|
}
|
|
298
|
-
return (e3, t2) =>
|
|
299
|
-
|
|
300
|
-
}), dialogFullScreen:
|
|
298
|
+
return (e3, t2) => ge.value ? (r(), s("div", le, [c("div", { ref_key: "chatIcon", ref: Ae, style: v([d(tt), { position: "fixed", cursor: "pointer", "z-index": "100" }]) }, [c("img", { src: d(K), alt: "AI Avatar", onClick: lt, style: { width: "50px", height: "50px" } }, null, 8, ie)], 4), m(h, { name: "slide-up" }, { default: f(() => [p(c("div", { ref_key: "chatContainerRef", ref: Ue, class: g(["chat-container", Oe.value ? "full-screen" : "small-window"]), style: { display: "flex", flexDirection: "row" } }, [m(Q, { ref_key: "sidebarItemRef", ref: Be, style: v({ width: He.value + "px" }), onSelectHistoryItem: xt, onNewChatSession: ft, onUpdateAiHistory: t2[0] || (t2[0] = (e4) => {
|
|
299
|
+
Ie.value.value = e4;
|
|
300
|
+
}), dialogFullScreen: Oe.value, aiModel: je.value }, null, 8, ["style", "dialogFullScreen", "aiModel"]), c("div", ue, [m(V, { aiAvatar: Le.value, aiModel: je.value, chatSessionId: Te.value, dialogFullScreen: Oe.value, aiHistory: Ie.value, onExpandDialog: ct, onShowChatDialog: lt, onNewChatSession: ft }, null, 8, ["aiAvatar", "aiModel", "chatSessionId", "dialogFullScreen", "aiHistory"]), c("div", re, [(r(), s("div", { ref_key: "talkMainRef", ref: We, class: "chat-embed__main", key: qe.value }, [c("div", se, [m(d(_), { ref_key: "bubbleListRef", ref: Ve, list: Pe.value, "max-height": Re.value, "is-fog": true }, { avatar: f(({ item: e4 }) => [...t2[2] || (t2[2] = [])]), content: f(({ item: e4 }) => {
|
|
301
301
|
var _a2;
|
|
302
|
-
return [e4.isRecommend || null === e4.thinkingContent ? b("", true) : (r(), s(y, { key: 0 }, ["failed" !== e4.messageStatus ? (r(), w(d(
|
|
303
|
-
}), footer: f(({ item: e4 }) => [m(
|
|
302
|
+
return [e4.isRecommend || null === e4.thinkingContent ? b("", true) : (r(), s(y, { key: 0 }, ["failed" !== e4.messageStatus ? (r(), w(d(E), { key: 0, "button-width": "180px", style: { "margin-bottom": "5px" }, modelValue: e4.showThinkingContent, "onUpdate:modelValue": (t3) => e4.showThinkingContent = t3, status: e4.thinkingStatus, "auto-collapse": "", content: e4.thinkingContent, typing: { interval: 20 }, duration: ".3s" }, null, 8, ["modelValue", "onUpdate:modelValue", "status", "content"])) : b("", true)], 64)), e4.link ? (r(), s("a", { key: 1, href: e4.link, title: e4.linkTitle, target: "blank" }, k(e4.content), 9, ce)) : e4.content ? (r(), s(y, { key: 2 }, [c("div", { class: g(["ai" === e4.role ? "content-container" : "content-borderless-container", "chat-content-font"]) }, ["ai" !== e4.role || e4.isRecommend ? "user" === e4.role ? (r(), s(y, { key: 1 }, [S(k(e4.content) + " ", 1), ((_a2 = e4.additionalData) == null ? void 0 : _a2.length) > 0 && e4.additionalDataLabel ? (r(), w(L, { key: 0, item: e4, onViewJson: gt, onDownloadJson: yt }, null, 8, ["item"])) : b("", true)], 64)) : (r(), s(y, { key: 2 }, [S(k(e4.content), 1)], 64)) : (r(), s(y, { key: 0 }, [e4.messageType && "history" !== e4.messageType ? (r(), w(d(T), { key: 1, allowHtml: "", content: e4.content, typing: true, "is-markdown": true, "is-fog": "" }, null, 8, ["content"])) : (r(), w(d(j), { key: 0, markdown: e4.content, allowHtml: true, content: e4.content, typing: { interval: 10 }, "is-markdown": true }, { "amb-ai-tip": f(({ ...t3 }) => [m(J, { item: e4, itemProps: t3, onClickDocAgg: kt }, null, 8, ["item", "itemProps"])]), "amb-alink": f(({ ...e5 }) => [c("a", { href: e5.href, target: e5.target }, k(e5.text), 9, ve)]), "amb-home-chart": f(({ ...e5 }) => [m(W, { chartProps: e5, class: "chat-chart-container" }, null, 8, ["chartProps"])]), "amb-interaction-data": f(({ ...e5 }) => [m(B, { chartProps: e5, class: "chat-chart-container" }, null, 8, ["chartProps"])]), "amb-auto-chart": f(({ ...e5 }) => [m(G, { chartProps: e5, class: "chat-chart-container" }, null, 8, ["chartProps"])]), _: 2 }, 1032, ["markdown", "content"]))], 64)), c("div", de, [c("span", null, k(e4.sendTime), 1)])], 2), e4.recommendations && e4.recommendations.length > 0 ? (r(), w(H, { key: 0, item: e4, onClickRecommendation: ht }, null, 8, ["item"])) : b("", true), e4.docAggs && e4.docAggs.length > 0 ? (r(), s("div", me, [t2[3] || (t2[3] = c("div", { class: "content-container-header" }, "引用文件", -1)), (r(true), s(y, null, C(e4.docAggs, (e5, t3) => (r(), s("div", { onClick: (t4) => kt(e5), class: "doc-agg-item" }, k(e5.doc_name), 9, he))), 256))])) : b("", true)], 64)) : b("", true)];
|
|
303
|
+
}), footer: f(({ item: e4 }) => [m(z, { item: e4, onRegenerate: mt }, null, 8, ["item"])]), _: 1 }, 8, ["list", "max-height"]), c("div", fe, k(ut.value), 1)]), c("div", { ref_key: "talkInputRef", ref: Fe, class: "chat-embed__input_container" }, [m(F, { loading: Ee.value, ref_key: "chatSenderRef", ref: Qe, onSubmitQuestion: dt, onCommandAnswer: St, onHandleCancel: st, onViewJson: gt, onChangeAiModel: pt }, null, 8, ["loading"])], 512)]))])])], 2), [[A, Me.value]])]), _: 1 }), m(d(U), { modelValue: ze.value, "onUpdate:modelValue": t2[1] || (t2[1] = (e4) => ze.value = e4), "json-object": Je.value, "append-to-body": true, title: "预览数据" }, null, 8, ["modelValue", "json-object"])])) : b("", true);
|
|
304
304
|
} });
|
|
305
305
|
export {
|
|
306
|
-
|
|
306
|
+
pe as default
|
|
307
307
|
};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { defineComponent as e, openBlock as n, createElementBlock as t, Fragment as o, renderList as c, createBlock as m, unref as
|
|
2
|
-
import { Bubble as
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { defineComponent as e, openBlock as n, createElementBlock as t, Fragment as o, renderList as c, createBlock as m, unref as i, createSlots as r, withCtx as s, createElementVNode as a, toDisplayString as d } from "vue";
|
|
2
|
+
import { Bubble as l } from "vue-element-plus-x";
|
|
3
|
+
const p = ["onClick"], u = e({ __name: "recommendation-message", props: { item: { type: Object, required: true } }, emits: ["clickRecommendation"], setup(e2, { emit: u2 }) {
|
|
4
|
+
const v = u2;
|
|
5
|
+
return (u3, k) => (n(true), t(o, null, c(e2.item.recommendations, (e3, t2) => (n(), m(i(l), { class: "chat-embed__recommendation", "no-style": true, variant: "borderless" }, r({ content: s(() => [a("div", { class: "content-borderless-container", onClick: (n2) => ((e4) => {
|
|
6
|
+
v("clickRecommendation", e4);
|
|
7
|
+
})(e3) }, d(e3.content), 9, p)]), _: 2 }, [0 === t2 ? { name: "header", fn: s(() => [k[0] || (k[0] = a("div", { class: "content-container-header" }, "推荐内容", -1))]), key: "0" } : void 0]), 1024))), 256));
|
|
8
|
+
} });
|
|
6
9
|
export {
|
|
7
|
-
|
|
10
|
+
u as default
|
|
8
11
|
};
|