@scienjoy/sj-ai-plus 1.0.0 → 1.0.1
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/README.md +1 -18
- package/package.json +1 -1
- package/ui/es/packages/components/src/sjDigitalHumanAssistant/src/index.vue.ts +2 -2
- package/ui/es/packages/components/src/sjDigitalHumanAssistant/src/index.vue2.ts +233 -212
- package/ui/es/packages/components/src/utils/api.ts +7 -4
- package/ui/es/sj-ai-plus.css +1 -1
- package/ui/lib/packages/components/src/sjDigitalHumanAssistant/src/index.vue.ts +1 -1
- package/ui/lib/packages/components/src/sjDigitalHumanAssistant/src/index.vue2.ts +1 -1
- package/ui/lib/packages/components/src/utils/api.ts +1 -1
- package/ui/lib/sj-ai-plus.css +1 -1
package/README.md
CHANGED
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
|
4
|
-
|
|
5
|
-
## Recommended IDE Setup
|
|
6
|
-
|
|
7
|
-
- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
|
|
8
|
-
|
|
9
|
-
## Type Support For `.vue` Imports in TS
|
|
10
|
-
|
|
11
|
-
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
|
|
12
|
-
|
|
13
|
-
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
|
|
14
|
-
|
|
15
|
-
1. Disable the built-in TypeScript Extension
|
|
16
|
-
1. Run `Extensions: Show Built-in Extensions` from VSCode's command palette
|
|
17
|
-
2. Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
|
|
18
|
-
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
|
|
1
|
+
SJ AI组件库
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import t from "./index.vue2.ts";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
const m = /* @__PURE__ */
|
|
3
|
+
import a from "../../../../../_virtual/_plugin-vue_export-helper.ts";
|
|
4
|
+
const m = /* @__PURE__ */ a(t, [["__scopeId", "data-v-7ad3c1b0"]]);
|
|
5
5
|
export {
|
|
6
6
|
m as default
|
|
7
7
|
};
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
/* empty css */
|
|
2
|
-
import { defineComponent as Se, ref as d, reactive as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
2
|
+
import { defineComponent as Se, ref as d, reactive as Ye, computed as Te, watch as oe, nextTick as m, onMounted as Be, onUnmounted as Ie, resolveComponent as Oe, resolveDirective as je, openBlock as P, createElementBlock as A, normalizeStyle as ke, withDirectives as f, createElementVNode as n, vShow as w, normalizeClass as xe, toDisplayString as ae, createVNode as L, withModifiers as ie, withCtx as le, renderSlot as se, createCommentVNode as G, createBlock as Ue, Teleport as ze } from "vue";
|
|
3
|
+
import ce from "../../utils/api.ts";
|
|
4
|
+
import Ee from "../../utils/utils.ts";
|
|
5
5
|
import Fe from "../../utils/videoBackgroundRemoval.ts";
|
|
6
|
-
import { ElIcon as
|
|
7
|
-
const Ae = { class: "digital-human-assistant" },
|
|
6
|
+
import { ElIcon as Ne } from "../../../../../node_modules/.pnpm/element-plus@2.13.1_vue@3.5.27_typescript@5.9.3_/node_modules/element-plus/es/components/icon/index.ts";
|
|
7
|
+
const Ae = { class: "digital-human-assistant" }, Ge = { class: "placeholder left-placeholder" }, Je = { class: "placeholder right-placeholder" }, qe = { class: "window-header-left" }, Ke = { class: "window-title-text" }, Qe = { class: "window-header-btns" }, Ze = { class: "disconnect-btn" }, et = {
|
|
8
8
|
class: "connect-btn",
|
|
9
9
|
disabled: ""
|
|
10
|
-
},
|
|
10
|
+
}, tt = { class: "connect-btn" }, nt = { class: "window-content" }, ot = { class: "main-content-inner" }, at = { class: "window-header-left" }, it = { class: "window-title-text" }, lt = { class: "window-header-btns" }, st = { class: "disconnect-btn" }, ct = {
|
|
11
11
|
class: "connect-btn",
|
|
12
12
|
disabled: ""
|
|
13
|
-
}, dt = { class: "connect-btn" },
|
|
13
|
+
}, dt = { class: "connect-btn" }, ut = { class: "window-content" }, rt = { class: "window-header-left" }, vt = { class: "window-title-text" }, ht = { class: "window-header-btns" }, ft = { class: "disconnect-btn" }, wt = {
|
|
14
14
|
class: "connect-btn",
|
|
15
15
|
disabled: ""
|
|
16
|
-
},
|
|
16
|
+
}, gt = { class: "connect-btn" }, mt = { class: "window-content" }, pt = Se({
|
|
17
17
|
name: "SjDigitalHumanAssistant"
|
|
18
|
-
}),
|
|
19
|
-
...
|
|
18
|
+
}), kt = /* @__PURE__ */ Se({
|
|
19
|
+
...pt,
|
|
20
20
|
props: {
|
|
21
21
|
windowWidth: { default: 320 },
|
|
22
22
|
windowHeight: { default: 467 },
|
|
@@ -32,123 +32,134 @@ const Ae = { class: "digital-human-assistant" }, Ne = { class: "placeholder left
|
|
|
32
32
|
maxReconnectTimes: { default: 10 },
|
|
33
33
|
baseUrl: { default: "" }
|
|
34
34
|
},
|
|
35
|
-
setup(
|
|
36
|
-
const o =
|
|
35
|
+
setup(V, { expose: Le }) {
|
|
36
|
+
const o = V, de = d(null), ue = d(null), u = d(null), a = d(null), p = Fe(), re = d(null), ve = d(null), he = d(null), X = d(null), H = d(!1), s = d(!1), h = d(!1), fe = d(!0), Y = d(!1), r = Ye({
|
|
37
37
|
x: 0,
|
|
38
38
|
y: 0,
|
|
39
39
|
offsetX: 0,
|
|
40
40
|
offsetY: 0
|
|
41
|
-
}), v = d(o.defaultStickSide),
|
|
42
|
-
let
|
|
43
|
-
const
|
|
41
|
+
}), v = d(o.defaultStickSide), B = d(!1), C = d(!1), M = d(!1), J = d(!1), q = d(!1);
|
|
42
|
+
let l = null, b = "";
|
|
43
|
+
const I = d(null), y = d(0), O = d(!1), W = d(!1), He = Te(() => ({
|
|
44
44
|
"--sidebar-width": o.sidebarWidth,
|
|
45
45
|
"--window-width": `${o.windowWidth}px`,
|
|
46
46
|
"--window-height": `${o.windowHeight}px`
|
|
47
|
-
})), Me =
|
|
47
|
+
})), Me = Te(() => ({
|
|
48
48
|
left: `${r.x}px`,
|
|
49
49
|
top: `${r.y}px`,
|
|
50
50
|
width: `${o.windowWidth}px`,
|
|
51
51
|
height: `${o.windowHeight}px`,
|
|
52
|
-
zIndex:
|
|
52
|
+
zIndex: B.value || M.value ? 9999 : 1e3
|
|
53
53
|
})), We = (t) => {
|
|
54
|
-
!t &&
|
|
54
|
+
!t && u.value ? (O.value = !1, y.value = 0, _e()) : t ? (O.value = !0, Ve()) : console.warn("自动连接超时:video元素未挂载"), fe.value = t;
|
|
55
55
|
}, j = (t) => {
|
|
56
|
-
We(!t),
|
|
57
|
-
},
|
|
56
|
+
We(!t), Y.value = t, t && s.value && m(() => g());
|
|
57
|
+
}, De = () => {
|
|
58
58
|
j(!0);
|
|
59
|
-
},
|
|
59
|
+
}, we = () => {
|
|
60
60
|
switch (v.value) {
|
|
61
61
|
case "left":
|
|
62
|
-
return
|
|
62
|
+
return ve.value ?? X.value;
|
|
63
63
|
case "right":
|
|
64
|
-
return
|
|
64
|
+
return he.value ?? X.value;
|
|
65
65
|
default:
|
|
66
|
-
return
|
|
66
|
+
return re.value ?? X.value;
|
|
67
67
|
}
|
|
68
|
-
}, x = () =>
|
|
68
|
+
}, x = () => ue.value?.getBoundingClientRect() || {
|
|
69
69
|
width: 0,
|
|
70
70
|
height: 0,
|
|
71
71
|
left: 0,
|
|
72
72
|
right: 0,
|
|
73
73
|
top: 0,
|
|
74
74
|
bottom: 0
|
|
75
|
-
},
|
|
75
|
+
}, ge = () => de.value?.getBoundingClientRect() || {
|
|
76
76
|
width: 0,
|
|
77
77
|
height: 0,
|
|
78
78
|
left: 0,
|
|
79
79
|
right: 0,
|
|
80
80
|
top: 0,
|
|
81
81
|
bottom: 0
|
|
82
|
-
},
|
|
82
|
+
}, K = (t, e) => {
|
|
83
83
|
const i = x();
|
|
84
84
|
return {
|
|
85
85
|
x: Math.max(0, Math.min(t, i.width - o.windowWidth)),
|
|
86
86
|
y: Math.max(0, Math.min(e, i.height - o.windowHeight))
|
|
87
87
|
};
|
|
88
|
-
}, we = () => {
|
|
89
|
-
const t = x(), e = t.width - o.windowWidth - 10, i = t.height - o.windowHeight - 10;
|
|
90
|
-
return q(e, i);
|
|
91
|
-
}, ge = () => {
|
|
92
|
-
const t = x(), e = he();
|
|
93
|
-
G.value = e.left <= t.left + o.edgeThreshold, J.value = e.right >= t.right - o.edgeThreshold;
|
|
94
88
|
}, me = () => {
|
|
95
|
-
const t = x(), e =
|
|
96
|
-
|
|
97
|
-
},
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
},
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
89
|
+
const t = x(), e = t.width - o.windowWidth - 10, i = t.height - o.windowHeight - 10;
|
|
90
|
+
return K(e, i);
|
|
91
|
+
}, pe = () => {
|
|
92
|
+
const t = x(), e = ge();
|
|
93
|
+
J.value = e.left <= t.left + o.edgeThreshold, q.value = e.right >= t.right - o.edgeThreshold;
|
|
94
|
+
}, be = () => {
|
|
95
|
+
const t = x(), e = ge(), i = e.left <= t.left + o.edgeThreshold ? "left" : e.right >= t.right - o.edgeThreshold ? "right" : "";
|
|
96
|
+
i !== v.value && (v.value = i, u.value && (u.value.volume = i ? 0.5 : 1), D(), g()), J.value = q.value = !1;
|
|
97
|
+
}, $e = (t) => {
|
|
98
|
+
B.value = !0, r.offsetX = t.clientX - r.x, r.offsetY = t.clientY - r.y, document.addEventListener("mousemove", Q), document.addEventListener("mouseup", Z);
|
|
99
|
+
}, Q = (t) => {
|
|
100
|
+
if (!B.value) return;
|
|
101
|
+
const e = x(), { x: i, y: c } = K(t.clientX - e.left - r.offsetX, t.clientY - e.top - r.offsetY);
|
|
102
|
+
r.x = i, r.y = c, pe();
|
|
103
|
+
}, Z = () => {
|
|
104
|
+
be(), B.value = !1, document.removeEventListener("mousemove", Q), document.removeEventListener("mouseup", Z);
|
|
105
|
+
}, ye = (t, e) => {
|
|
106
|
+
C.value = !0, r.offsetX = e.clientX - (e.clientX - o.windowWidth / 2), r.offsetY = e.clientY - (e.clientY - 20), document.addEventListener("mousemove", U);
|
|
107
|
+
}, U = (t) => {
|
|
108
|
+
if (!C.value) return;
|
|
109
109
|
const e = Math.abs(t.movementX), i = Math.abs(t.movementY);
|
|
110
|
-
(e > o.dragThreshold || i > o.dragThreshold) && (M.value = !0, v.value = "", document.removeEventListener("mousemove",
|
|
111
|
-
},
|
|
110
|
+
(e > o.dragThreshold || i > o.dragThreshold) && (M.value = !0, v.value = "", document.removeEventListener("mousemove", U), document.addEventListener("mousemove", ee), document.addEventListener("mouseup", te));
|
|
111
|
+
}, ee = (t) => {
|
|
112
112
|
if (!M.value) return;
|
|
113
|
-
const e = x(), { x: i, y:
|
|
114
|
-
r.x = i, r.y =
|
|
115
|
-
},
|
|
116
|
-
|
|
113
|
+
const e = x(), { x: i, y: c } = K(t.clientX - e.left - r.offsetX, t.clientY - e.top - r.offsetY);
|
|
114
|
+
r.x = i, r.y = c, pe();
|
|
115
|
+
}, te = () => {
|
|
116
|
+
be(), C.value = M.value = !1, document.removeEventListener("mousemove", ee), document.removeEventListener("mouseup", te);
|
|
117
117
|
}, z = () => {
|
|
118
|
-
|
|
119
|
-
},
|
|
120
|
-
if (!
|
|
118
|
+
C.value && !M.value && (C.value = !1, document.removeEventListener("mousemove", U));
|
|
119
|
+
}, ne = async (t) => {
|
|
120
|
+
if (!s.value || !b)
|
|
121
121
|
return;
|
|
122
|
+
await E(), console.log("已打断当前对话,准备播放新文本:", t);
|
|
122
123
|
const e = {
|
|
123
124
|
text: t,
|
|
124
125
|
type: "echo",
|
|
125
126
|
interrupt: !0,
|
|
126
|
-
sessionid: parseInt(
|
|
127
|
+
sessionid: parseInt(b)
|
|
127
128
|
};
|
|
128
|
-
|
|
129
|
+
ce.digitalHumanChat(o.baseUrl, e).then((i) => {
|
|
129
130
|
i && Number(i.code);
|
|
130
131
|
}).catch((i) => {
|
|
131
132
|
console.log("api.digitalHumanChat:", i);
|
|
132
133
|
});
|
|
134
|
+
}, E = async () => {
|
|
135
|
+
if (!s.value || !b) return;
|
|
136
|
+
const t = {
|
|
137
|
+
sessionid: parseInt(b)
|
|
138
|
+
};
|
|
139
|
+
ce.digitalHumanInterruptTalk(o.baseUrl, t).then((e) => {
|
|
140
|
+
e && Number(e.code) === 0 && console.log("数字人对话已成功打断");
|
|
141
|
+
}).catch((e) => {
|
|
142
|
+
console.log("api.digitalHumanInterruptTalk:", e);
|
|
143
|
+
});
|
|
133
144
|
}, S = () => {
|
|
134
|
-
|
|
135
|
-
},
|
|
145
|
+
I.value && (clearTimeout(I.value), I.value = null, console.log("重连定时器已清除")), W.value = !1;
|
|
146
|
+
}, D = (t = !1) => {
|
|
136
147
|
if (!a.value) return;
|
|
137
148
|
t || p.stopProcessing();
|
|
138
149
|
const e = a.value.getContext("2d");
|
|
139
150
|
if (e && (e.clearRect(0, 0, a.value.width, a.value.height), !t)) {
|
|
140
|
-
const i = a.value.width,
|
|
141
|
-
a.value.width = i, a.value.height =
|
|
151
|
+
const i = a.value.width, c = a.value.height;
|
|
152
|
+
a.value.width = i, a.value.height = c;
|
|
142
153
|
}
|
|
143
154
|
a.value && !t && (a.value.style.width = "", a.value.style.height = "", v.value === "" && (a.value.style.marginLeft = "", a.value.style.marginTop = ""));
|
|
144
155
|
}, g = async (t = !1) => {
|
|
145
|
-
if (!
|
|
156
|
+
if (!u.value || !a.value || !H.value || !s.value) return;
|
|
146
157
|
await m();
|
|
147
|
-
const e =
|
|
148
|
-
console.log("视频原始宽高比:",
|
|
149
|
-
let
|
|
150
|
-
const
|
|
151
|
-
|
|
158
|
+
const e = u.value.videoWidth || o.windowWidth, i = u.value.videoHeight || o.windowHeight, c = e / i;
|
|
159
|
+
console.log("视频原始宽高比:", c, "尺寸:", e, i);
|
|
160
|
+
let _;
|
|
161
|
+
const R = we();
|
|
162
|
+
R ? _ = R.getBoundingClientRect() : _ = {
|
|
152
163
|
width: v.value ? 0 : o.windowWidth,
|
|
153
164
|
height: v.value ? 0 : o.windowHeight,
|
|
154
165
|
left: 0,
|
|
@@ -156,310 +167,320 @@ const Ae = { class: "digital-human-assistant" }, Ne = { class: "placeholder left
|
|
|
156
167
|
right: 0,
|
|
157
168
|
bottom: 0
|
|
158
169
|
};
|
|
159
|
-
const F =
|
|
170
|
+
const F = _.width || (v.value ? 300 : o.windowWidth), N = _.height || (v.value ? window.innerHeight - 40 : o.windowHeight), Xe = F / N;
|
|
160
171
|
let T, k;
|
|
161
|
-
|
|
162
|
-
const
|
|
163
|
-
a.value.width = Math.floor(T *
|
|
172
|
+
Xe > c ? (k = N, T = k * c) : (T = F, k = T / c);
|
|
173
|
+
const Ce = window.devicePixelRatio || 1;
|
|
174
|
+
a.value.width = Math.floor(T * Ce), a.value.height = Math.floor(k * Ce), a.value.style.display = "block", a.value.style.objectFit = "contain", v.value === "" ? (a.value.style.width = `${T}px`, a.value.style.height = `${k}px`, a.value.style.marginLeft = `${(F - T) / 2}px`, a.value.style.marginTop = `${(N - k) / 2}px`) : (a.value.style.width = "100%", a.value.style.height = "100%", a.value.style.marginLeft = "0", a.value.style.marginTop = "0"), console.log("Canvas适配完成:", {
|
|
164
175
|
mode: v.value || "浮动",
|
|
165
|
-
container: { width: F, height:
|
|
176
|
+
container: { width: F, height: N },
|
|
166
177
|
canvas: { drawWidth: T, drawHeight: k, physicalWidth: a.value.width, physicalHeight: a.value.height }
|
|
167
|
-
}), t || (p.videoRef.value =
|
|
168
|
-
},
|
|
169
|
-
if (O.value ||
|
|
178
|
+
}), t || (p.videoRef.value = u.value, p.canvasRef.value = a.value, await p.processVideo());
|
|
179
|
+
}, $ = () => {
|
|
180
|
+
if (O.value || s.value || h.value || W.value) {
|
|
170
181
|
console.log("重连条件不满足:手动断开/已连接/正在连接/正在冷却");
|
|
171
182
|
return;
|
|
172
183
|
}
|
|
173
|
-
if (
|
|
174
|
-
console.
|
|
184
|
+
if (E().then(() => {
|
|
185
|
+
console.log("重连前已打断当前对话");
|
|
186
|
+
}), o.maxReconnectTimes !== -1 && y.value >= o.maxReconnectTimes) {
|
|
187
|
+
console.warn(`数字人重连已达最大次数(${o.maxReconnectTimes}),停止重连`), S(), Ee.funcElMessageShowCtrl(`数字人连接失败,已尝试${o.maxReconnectTimes}次重连,请重试!`), y.value = 0;
|
|
175
188
|
return;
|
|
176
189
|
}
|
|
177
|
-
W.value = !0,
|
|
190
|
+
W.value = !0, I.value = setTimeout(() => {
|
|
178
191
|
try {
|
|
179
|
-
|
|
192
|
+
y.value++, console.log(`数字人第${y.value}次重连... (最大次数:${o.maxReconnectTimes})`), _e();
|
|
180
193
|
} finally {
|
|
181
194
|
W.value = !1;
|
|
182
195
|
}
|
|
183
196
|
}, o.reconnectInterval * 1e3);
|
|
184
|
-
},
|
|
185
|
-
if (
|
|
197
|
+
}, Pe = async () => {
|
|
198
|
+
if (l)
|
|
186
199
|
try {
|
|
187
|
-
|
|
188
|
-
const t = await
|
|
189
|
-
await
|
|
190
|
-
if (
|
|
191
|
-
|
|
200
|
+
l.addTransceiver("video", { direction: "recvonly" }), l.addTransceiver("audio", { direction: "recvonly" });
|
|
201
|
+
const t = await l.createOffer();
|
|
202
|
+
await l.setLocalDescription(t), await new Promise((c) => {
|
|
203
|
+
if (l?.iceGatheringState === "complete")
|
|
204
|
+
c();
|
|
192
205
|
else {
|
|
193
|
-
const
|
|
194
|
-
|
|
206
|
+
const _ = () => {
|
|
207
|
+
l?.iceGatheringState === "complete" && (l?.removeEventListener("icegatheringstatechange", _), c());
|
|
195
208
|
};
|
|
196
|
-
|
|
209
|
+
l?.addEventListener("icegatheringstatechange", _);
|
|
197
210
|
}
|
|
198
211
|
});
|
|
199
|
-
const e =
|
|
212
|
+
const e = l.localDescription, i = {
|
|
200
213
|
sdp: e.sdp,
|
|
201
214
|
type: e.type
|
|
202
215
|
};
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}).catch((
|
|
206
|
-
console.error("api.digitalHumanOffer 失败:",
|
|
216
|
+
ce.digitalHumanOffer(o.baseUrl, i).then((c) => {
|
|
217
|
+
c ? (b = c.sessionid, l.setRemoteDescription(new RTCSessionDescription(c)), s.value = !0, y.value = 0, S(), console.log("数字人连接成功,重置重连状态"), m(() => g())) : (s.value = !1, console.log("数字人连接失败:接口返回空"), $()), h.value = !1;
|
|
218
|
+
}).catch((c) => {
|
|
219
|
+
console.error("api.digitalHumanOffer 失败:", c), s.value = !1, h.value = !1, $();
|
|
207
220
|
});
|
|
208
221
|
} catch (t) {
|
|
209
|
-
console.error("negotiate 失败:", t),
|
|
222
|
+
console.error("negotiate 失败:", t), s.value = !1, h.value = !1, $();
|
|
210
223
|
}
|
|
211
|
-
},
|
|
212
|
-
if (
|
|
224
|
+
}, _e = () => {
|
|
225
|
+
if (s.value || h.value) {
|
|
213
226
|
console.log("当前已连接/正在连接,无需重复触发");
|
|
214
227
|
return;
|
|
215
228
|
}
|
|
216
|
-
|
|
229
|
+
h.value = !0, console.log("开始建立数字人连接...");
|
|
217
230
|
const t = {
|
|
218
231
|
sdpSemantics: "unified-plan"
|
|
219
232
|
};
|
|
220
|
-
|
|
221
|
-
e.track.kind === "video" &&
|
|
222
|
-
|
|
223
|
-
},
|
|
233
|
+
l && (l.close(), l = null), l = new RTCPeerConnection(t), l.addEventListener("track", (e) => {
|
|
234
|
+
e.track.kind === "video" && u.value && (u.value.srcObject = e.streams[0], u.value.onloadedmetadata = async () => {
|
|
235
|
+
u.value && a.value && (p.videoRef.value = u.value, p.canvasRef.value = a.value, await g(), await p.processVideo());
|
|
236
|
+
}, u.value.onresize = () => {
|
|
224
237
|
g();
|
|
225
238
|
});
|
|
226
|
-
}),
|
|
227
|
-
switch (console.log("ICE连接状态变化:",
|
|
239
|
+
}), l.addEventListener("iceconnectionstatechange", () => {
|
|
240
|
+
switch (console.log("ICE连接状态变化:", l.iceConnectionState), l.iceConnectionState) {
|
|
228
241
|
case "disconnected":
|
|
229
242
|
case "failed":
|
|
230
243
|
case "closed":
|
|
231
|
-
console.log("WebRTC连接断开/失败,触发重连"),
|
|
244
|
+
console.log("WebRTC连接断开/失败,触发重连"), s.value = !1, h.value = !1, l = null, b = "", u.value && (u.value.srcObject = null), D(), E().then(() => {
|
|
245
|
+
console.log("ICE连接断开,已打断对话");
|
|
246
|
+
}), $();
|
|
232
247
|
break;
|
|
233
248
|
case "connected":
|
|
234
|
-
|
|
249
|
+
y.value = 0, S(), console.log("ICE连接成功,重置重连状态"), m(() => g());
|
|
235
250
|
break;
|
|
236
251
|
}
|
|
237
|
-
}),
|
|
238
|
-
},
|
|
239
|
-
O.value = !0, S(),
|
|
240
|
-
|
|
252
|
+
}), Pe();
|
|
253
|
+
}, Ve = () => {
|
|
254
|
+
O.value = !0, S(), h.value = !1, p.stopProcessing(), D(), E().then(() => {
|
|
255
|
+
console.log("手动断开连接,已打断当前对话");
|
|
256
|
+
}), setTimeout(() => {
|
|
257
|
+
l && (l.close(), l = null), b = "", u.value && (u.value.srcObject = null), s.value = !1, y.value = 0, console.log("手动断开连接,重置所有状态");
|
|
241
258
|
}, 500);
|
|
242
259
|
};
|
|
243
|
-
|
|
244
|
-
digitalHumanChat:
|
|
260
|
+
Le({
|
|
261
|
+
digitalHumanChat: ne,
|
|
245
262
|
// 播放文本的核心方法
|
|
246
|
-
|
|
263
|
+
digitalHumanInterruptTalk: E,
|
|
264
|
+
// 打断方法
|
|
265
|
+
isConnected: s,
|
|
247
266
|
// 连接状态
|
|
248
|
-
isConnecting:
|
|
267
|
+
isConnecting: h,
|
|
249
268
|
// 连接中状态
|
|
250
|
-
reconnect:
|
|
269
|
+
reconnect: $,
|
|
251
270
|
// 手动触发重连
|
|
252
271
|
clearReconnectTimer: S,
|
|
253
272
|
// 手动停止重连
|
|
254
|
-
currentReconnectTimes:
|
|
273
|
+
currentReconnectTimes: y,
|
|
255
274
|
// 暴露当前重连次数,方便调试
|
|
256
275
|
isWaitingReconnect: W,
|
|
257
276
|
adaptCanvasToContainer: g
|
|
258
277
|
// 暴露适配方法,方便父组件调用
|
|
259
|
-
}),
|
|
278
|
+
}), oe(
|
|
260
279
|
v,
|
|
261
280
|
async (t, e) => {
|
|
262
|
-
!
|
|
281
|
+
!H.value || !u.value || (await m(), u.value.volume = t ? 0.5 : 1, s.value && (D(), await g()));
|
|
263
282
|
},
|
|
264
283
|
{ immediate: !0, deep: !0 }
|
|
265
|
-
),
|
|
266
|
-
[() =>
|
|
284
|
+
), oe(
|
|
285
|
+
[() => s.value, () => o.defaultPlayText],
|
|
267
286
|
async ([t, e], [i]) => {
|
|
268
|
-
t && !i && e &&
|
|
287
|
+
t && !i && e && b && (console.log("连接成功,自动播放默认文本:", e), await ne(e), m(() => g()));
|
|
269
288
|
},
|
|
270
289
|
{ immediate: !1 }
|
|
271
|
-
),
|
|
290
|
+
), oe(
|
|
272
291
|
() => o.defaultPlayText,
|
|
273
292
|
async (t) => {
|
|
274
|
-
|
|
293
|
+
s.value && t && b && (console.log("默认文本加载完成,自动播放:", t), await ne(t), m(() => g()));
|
|
275
294
|
},
|
|
276
295
|
{ immediate: !0 }
|
|
277
|
-
),
|
|
278
|
-
await m(), await m(),
|
|
279
|
-
const { x: t, y: e } =
|
|
280
|
-
r.x = t, r.y = e, window.addEventListener("resize",
|
|
296
|
+
), Be(async () => {
|
|
297
|
+
await m(), await m(), H.value = !0;
|
|
298
|
+
const { x: t, y: e } = me();
|
|
299
|
+
r.x = t, r.y = e, window.addEventListener("resize", Re);
|
|
281
300
|
});
|
|
282
|
-
const
|
|
301
|
+
const Re = Ee.debounce(() => {
|
|
283
302
|
if (v.value === "") {
|
|
284
|
-
const { x: t, y: e } =
|
|
303
|
+
const { x: t, y: e } = me();
|
|
285
304
|
r.x = t, r.y = e;
|
|
286
305
|
}
|
|
287
|
-
|
|
306
|
+
s.value && H.value && (D(!0), m(() => g(!0)));
|
|
288
307
|
}, 50);
|
|
289
|
-
return
|
|
290
|
-
|
|
308
|
+
return Ie(() => {
|
|
309
|
+
E().then(() => {
|
|
310
|
+
console.log("组件卸载,已打断当前对话");
|
|
311
|
+
}), document.removeEventListener("mousemove", U), document.removeEventListener("mousemove", ee), document.removeEventListener("mouseup", te), document.removeEventListener("mousemove", Q), document.removeEventListener("mouseup", Z), window.removeEventListener("resize", Re), S(), p.stopProcessing(), u.value && (u.value.srcObject = null), l && l.close();
|
|
291
312
|
}), (t, e) => {
|
|
292
|
-
const i = Oe("CloseBold"),
|
|
293
|
-
return
|
|
313
|
+
const i = Oe("CloseBold"), c = Ne, _ = je("drag");
|
|
314
|
+
return P(), A("div", {
|
|
294
315
|
class: "draggable-window-container",
|
|
295
|
-
style:
|
|
316
|
+
style: ke(He.value)
|
|
296
317
|
}, [
|
|
297
|
-
|
|
298
|
-
[w,
|
|
299
|
-
[
|
|
318
|
+
f(n("div", Ae, null, 512), [
|
|
319
|
+
[w, fe.value],
|
|
320
|
+
[_, ["digital-human-assistant", De, !0]]
|
|
300
321
|
]),
|
|
301
322
|
n("div", {
|
|
302
323
|
ref_key: "teleportFallbackRef",
|
|
303
|
-
ref:
|
|
324
|
+
ref: X,
|
|
304
325
|
class: "teleport-fallback"
|
|
305
326
|
}, null, 512),
|
|
306
|
-
|
|
307
|
-
[w, G.value]
|
|
308
|
-
]),
|
|
309
|
-
h(n("div", Ge, null, 512), [
|
|
327
|
+
f(n("div", Ge, null, 512), [
|
|
310
328
|
[w, J.value]
|
|
311
329
|
]),
|
|
312
|
-
|
|
330
|
+
f(n("div", Je, null, 512), [
|
|
331
|
+
[w, q.value]
|
|
332
|
+
]),
|
|
333
|
+
Y.value && v.value === "left" ? (P(), A("div", {
|
|
313
334
|
key: 0,
|
|
314
|
-
class:
|
|
335
|
+
class: xe(["sidebar left-sidebar", { pressing: C.value }])
|
|
315
336
|
}, [
|
|
316
337
|
n("div", {
|
|
317
338
|
class: "window-header",
|
|
318
|
-
onMousedown: e[2] || (e[2] = (
|
|
339
|
+
onMousedown: e[2] || (e[2] = (R) => ye("left", R)),
|
|
319
340
|
onMouseup: z,
|
|
320
341
|
onMouseleave: z
|
|
321
342
|
}, [
|
|
322
|
-
n("div",
|
|
323
|
-
n("span",
|
|
324
|
-
n("div",
|
|
325
|
-
|
|
326
|
-
[w, !
|
|
343
|
+
n("div", qe, [
|
|
344
|
+
n("span", Ke, ae(V.windowTitle), 1),
|
|
345
|
+
n("div", Qe, [
|
|
346
|
+
f(n("button", Ze, "未连接", 512), [
|
|
347
|
+
[w, !s.value && !h.value]
|
|
327
348
|
]),
|
|
328
|
-
|
|
329
|
-
[w,
|
|
349
|
+
f(n("button", et, "连接中...", 512), [
|
|
350
|
+
[w, h.value]
|
|
330
351
|
]),
|
|
331
|
-
|
|
332
|
-
[w,
|
|
352
|
+
f(n("button", tt, "已连接", 512), [
|
|
353
|
+
[w, s.value]
|
|
333
354
|
])
|
|
334
355
|
])
|
|
335
356
|
]),
|
|
336
|
-
|
|
357
|
+
L(c, {
|
|
337
358
|
class: "drag-window-hide",
|
|
338
|
-
onClick: e[0] || (e[0] = (
|
|
339
|
-
onMousedown: e[1] || (e[1] =
|
|
359
|
+
onClick: e[0] || (e[0] = (R) => j(!1)),
|
|
360
|
+
onMousedown: e[1] || (e[1] = ie(() => {
|
|
340
361
|
}, ["stop"]))
|
|
341
362
|
}, {
|
|
342
|
-
default:
|
|
343
|
-
|
|
363
|
+
default: le(() => [
|
|
364
|
+
L(i)
|
|
344
365
|
]),
|
|
345
366
|
_: 1
|
|
346
367
|
})
|
|
347
368
|
], 32),
|
|
348
|
-
n("div",
|
|
369
|
+
n("div", nt, [
|
|
349
370
|
se(t.$slots, "sidebar-left", {}, void 0, !0),
|
|
350
371
|
n("div", {
|
|
351
372
|
ref_key: "sidebarLeftVideoRef",
|
|
352
|
-
ref:
|
|
373
|
+
ref: ve,
|
|
353
374
|
class: "sidebar-video-container"
|
|
354
375
|
}, null, 512)
|
|
355
376
|
])
|
|
356
|
-
], 2)) :
|
|
377
|
+
], 2)) : G("", !0),
|
|
357
378
|
n("div", {
|
|
358
379
|
class: "main-content-outer",
|
|
359
380
|
ref_key: "containerRef",
|
|
360
|
-
ref:
|
|
381
|
+
ref: ue
|
|
361
382
|
}, [
|
|
362
|
-
n("div",
|
|
383
|
+
n("div", ot, [
|
|
363
384
|
se(t.$slots, "main", {}, void 0, !0)
|
|
364
385
|
]),
|
|
365
|
-
|
|
386
|
+
Y.value && v.value === "" ? (P(), A("div", {
|
|
366
387
|
key: 0,
|
|
367
388
|
ref_key: "dragWindowRef",
|
|
368
|
-
ref:
|
|
389
|
+
ref: de,
|
|
369
390
|
class: "draggable-window",
|
|
370
|
-
style:
|
|
391
|
+
style: ke(Me.value)
|
|
371
392
|
}, [
|
|
372
393
|
n("div", {
|
|
373
394
|
class: "window-header",
|
|
374
|
-
onMousedown:
|
|
395
|
+
onMousedown: $e
|
|
375
396
|
}, [
|
|
376
|
-
n("div",
|
|
377
|
-
n("span",
|
|
378
|
-
n("div",
|
|
379
|
-
|
|
380
|
-
[w, !
|
|
397
|
+
n("div", at, [
|
|
398
|
+
n("span", it, ae(V.windowTitle), 1),
|
|
399
|
+
n("div", lt, [
|
|
400
|
+
f(n("button", st, "未连接", 512), [
|
|
401
|
+
[w, !s.value && !h.value]
|
|
381
402
|
]),
|
|
382
|
-
|
|
383
|
-
[w,
|
|
403
|
+
f(n("button", ct, "连接中...", 512), [
|
|
404
|
+
[w, h.value]
|
|
384
405
|
]),
|
|
385
|
-
|
|
386
|
-
[w,
|
|
406
|
+
f(n("button", dt, "已连接", 512), [
|
|
407
|
+
[w, s.value]
|
|
387
408
|
])
|
|
388
409
|
])
|
|
389
410
|
]),
|
|
390
|
-
|
|
411
|
+
L(c, {
|
|
391
412
|
class: "drag-window-hide",
|
|
392
|
-
onClick: e[3] || (e[3] = (
|
|
393
|
-
onMousedown: e[4] || (e[4] =
|
|
413
|
+
onClick: e[3] || (e[3] = (R) => j(!1)),
|
|
414
|
+
onMousedown: e[4] || (e[4] = ie(() => {
|
|
394
415
|
}, ["stop"]))
|
|
395
416
|
}, {
|
|
396
|
-
default:
|
|
397
|
-
|
|
417
|
+
default: le(() => [
|
|
418
|
+
L(i)
|
|
398
419
|
]),
|
|
399
420
|
_: 1
|
|
400
421
|
})
|
|
401
422
|
], 32),
|
|
402
|
-
n("div",
|
|
423
|
+
n("div", ut, [
|
|
403
424
|
n("div", {
|
|
404
425
|
class: "video-container",
|
|
405
426
|
ref_key: "windowVideoRef",
|
|
406
|
-
ref:
|
|
427
|
+
ref: re
|
|
407
428
|
}, null, 512)
|
|
408
429
|
])
|
|
409
|
-
], 4)) :
|
|
430
|
+
], 4)) : G("", !0)
|
|
410
431
|
], 512),
|
|
411
|
-
|
|
432
|
+
Y.value && v.value === "right" ? (P(), A("div", {
|
|
412
433
|
key: 1,
|
|
413
|
-
class:
|
|
434
|
+
class: xe(["sidebar right-sidebar", { pressing: C.value }])
|
|
414
435
|
}, [
|
|
415
436
|
n("div", {
|
|
416
437
|
class: "window-header",
|
|
417
|
-
onMousedown: e[7] || (e[7] = (
|
|
438
|
+
onMousedown: e[7] || (e[7] = (R) => ye("right", R)),
|
|
418
439
|
onMouseup: z,
|
|
419
440
|
onMouseleave: z
|
|
420
441
|
}, [
|
|
421
|
-
n("div",
|
|
422
|
-
n("span",
|
|
423
|
-
n("div",
|
|
424
|
-
|
|
425
|
-
[w, !
|
|
442
|
+
n("div", rt, [
|
|
443
|
+
n("span", vt, ae(V.windowTitle), 1),
|
|
444
|
+
n("div", ht, [
|
|
445
|
+
f(n("button", ft, "未连接", 512), [
|
|
446
|
+
[w, !s.value && !h.value]
|
|
426
447
|
]),
|
|
427
|
-
|
|
428
|
-
[w,
|
|
448
|
+
f(n("button", wt, "连接中...", 512), [
|
|
449
|
+
[w, h.value]
|
|
429
450
|
]),
|
|
430
|
-
|
|
431
|
-
[w,
|
|
451
|
+
f(n("button", gt, "已连接", 512), [
|
|
452
|
+
[w, s.value]
|
|
432
453
|
])
|
|
433
454
|
])
|
|
434
455
|
]),
|
|
435
|
-
|
|
456
|
+
L(c, {
|
|
436
457
|
class: "drag-window-hide",
|
|
437
|
-
onClick: e[5] || (e[5] = (
|
|
438
|
-
onMousedown: e[6] || (e[6] =
|
|
458
|
+
onClick: e[5] || (e[5] = (R) => j(!1)),
|
|
459
|
+
onMousedown: e[6] || (e[6] = ie(() => {
|
|
439
460
|
}, ["stop"]))
|
|
440
461
|
}, {
|
|
441
|
-
default:
|
|
442
|
-
|
|
462
|
+
default: le(() => [
|
|
463
|
+
L(i)
|
|
443
464
|
]),
|
|
444
465
|
_: 1
|
|
445
466
|
})
|
|
446
467
|
], 32),
|
|
447
|
-
n("div",
|
|
468
|
+
n("div", mt, [
|
|
448
469
|
se(t.$slots, "sidebar-right", {}, void 0, !0),
|
|
449
470
|
n("div", {
|
|
450
471
|
ref_key: "sidebarRightVideoRef",
|
|
451
|
-
ref:
|
|
472
|
+
ref: he,
|
|
452
473
|
class: "sidebar-video-container"
|
|
453
474
|
}, null, 512)
|
|
454
475
|
])
|
|
455
|
-
], 2)) :
|
|
456
|
-
|
|
476
|
+
], 2)) : G("", !0),
|
|
477
|
+
H.value ? (P(), Ue(ze, {
|
|
457
478
|
key: 2,
|
|
458
|
-
to:
|
|
479
|
+
to: we()
|
|
459
480
|
}, [
|
|
460
481
|
n("video", {
|
|
461
482
|
ref_key: "digitalHumanVideo",
|
|
462
|
-
ref:
|
|
483
|
+
ref: u,
|
|
463
484
|
class: "digital-video source-video",
|
|
464
485
|
poster: "",
|
|
465
486
|
playsinline: "",
|
|
@@ -470,11 +491,11 @@ const Ae = { class: "digital-human-assistant" }, Ne = { class: "placeholder left
|
|
|
470
491
|
ref: a,
|
|
471
492
|
class: "digital-video processed-canvas"
|
|
472
493
|
}, null, 512)
|
|
473
|
-
], 8, ["to"])) :
|
|
494
|
+
], 8, ["to"])) : G("", !0)
|
|
474
495
|
], 4);
|
|
475
496
|
};
|
|
476
497
|
}
|
|
477
498
|
});
|
|
478
499
|
export {
|
|
479
|
-
|
|
500
|
+
kt as default
|
|
480
501
|
};
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { request as r } from "./axios.ts";
|
|
2
2
|
const i = {
|
|
3
|
-
async digitalHumanChat(
|
|
4
|
-
return await r(
|
|
3
|
+
async digitalHumanChat(t, a) {
|
|
4
|
+
return await r(t, "/human", a, "post");
|
|
5
5
|
},
|
|
6
|
-
async digitalHumanOffer(
|
|
7
|
-
return await r(
|
|
6
|
+
async digitalHumanOffer(t, a) {
|
|
7
|
+
return await r(t, "/offer", a, "post");
|
|
8
|
+
},
|
|
9
|
+
async digitalHumanInterruptTalk(t, a) {
|
|
10
|
+
return await r(t, "/interrupt_talk", a, "post");
|
|
8
11
|
}
|
|
9
12
|
};
|
|
10
13
|
export {
|
package/ui/es/sj-ai-plus.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121,187,255);--el-color-primary-light-5:rgb(160,207,255);--el-color-primary-light-7:rgb(198,226,255);--el-color-primary-light-8:rgb(217,236,255);--el-color-primary-light-9:rgb(236,245,255);--el-color-primary-dark-2:rgb(51,126,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(149,212,117);--el-color-success-light-5:rgb(179,225,157);--el-color-success-light-7:rgb(209,237,196);--el-color-success-light-8:rgb(225,243,216);--el-color-success-light-9:rgb(240,249,235);--el-color-success-dark-2:rgb(82,155,46);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(238,190,119);--el-color-warning-light-5:rgb(243,209,158);--el-color-warning-light-7:rgb(248,227,197);--el-color-warning-light-8:rgb(250,236,216);--el-color-warning-light-9:rgb(253,246,236);--el-color-warning-dark-2:rgb(184,130,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152,152);--el-color-danger-light-5:rgb(250,182,182);--el-color-danger-light-7:rgb(252,211,211);--el-color-danger-light-8:rgb(253,226,226);--el-color-danger-light-9:rgb(254,240,240);--el-color-danger-dark-2:rgb(196,86,86);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152,152);--el-color-error-light-5:rgb(250,182,182);--el-color-error-light-7:rgb(252,211,211);--el-color-error-light-8:rgb(253,226,226);--el-color-error-light-9:rgb(254,240,240);--el-color-error-dark-2:rgb(196,86,86);--el-color-info:#909399;--el-color-info-light-3:rgb(177,179,184);--el-color-info-light-5:rgb(200,201,204);--el-color-info-light-7:rgb(222,223,224);--el-color-info-light-8:rgb(233,233,235);--el-color-info-light-9:rgb(244,244,245);--el-color-info-dark-2:rgb(115,118,122);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;color:var(--color);display:inline-flex;fill:currentColor;font-size:inherit;height:1em;justify-content:center;line-height:1em;position:relative;width:1em}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.draggable-window-container[data-v-bcb94941]{width:100%;height:100vh;min-width:800px;min-height:500px;display:flex;background:#f0f2f5;overflow:hidden;position:relative}.draggable-window-container .digital-human-assistant[data-v-bcb94941]{width:100px;height:100px;background:url(/src/assets/images/digitalHuman/digital_human_assistant.png) 0 0 no-repeat;background-size:100% 100%;box-shadow:0 4px 12px #000c;border-radius:50%;position:absolute;top:30px;right:30px;z-index:9;cursor:move}.draggable-window-container .drag-window-hide[data-v-bcb94941]{z-index:9;cursor:pointer}.draggable-window-container .teleport-fallback[data-v-bcb94941]{position:absolute;top:-9999px;left:-9999px;width:0;height:0;overflow:hidden;pointer-events:none}.draggable-window-container .placeholder[data-v-bcb94941]{position:fixed;top:0;width:var(--sidebar-width);height:100vh;background:#409eff33;border:2px dashed #4361ee;z-index:9998}.draggable-window-container .placeholder.left-placeholder[data-v-bcb94941]{left:0}.draggable-window-container .placeholder.right-placeholder[data-v-bcb94941]{right:0}.draggable-window-container .sidebar[data-v-bcb94941]{width:var(--sidebar-width);height:100%;background:#fff;box-shadow:0 4px 12px #0000001a;transition:opacity .2s}.draggable-window-container .sidebar.left-sidebar[data-v-bcb94941]{order:1}.draggable-window-container .sidebar.right-sidebar[data-v-bcb94941]{order:3}.draggable-window-container .sidebar.pressing[data-v-bcb94941]{opacity:.8}.draggable-window-container .sidebar .window-header[data-v-bcb94941]{height:40px;line-height:40px;background:#4361ee;color:#fff;padding:0 16px;border-radius:0;user-select:none;cursor:move;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.draggable-window-container .sidebar .window-header .window-header-left[data-v-bcb94941]{display:flex;align-items:center;gap:16px}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns[data-v-bcb94941]{display:flex;gap:8px;pointer-events:none}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button[data-v-bcb94941]{padding:2px 8px;border:none;border-radius:3px;font-size:12px;color:#fff}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.connect-btn[data-v-bcb94941]{background:#52c41a}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.connect-btn[data-v-bcb94941]:disabled{background:#a3d990;cursor:not-allowed}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-bcb94941]{background:#ff4d4f}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-bcb94941]:disabled{background:#ffb3b3;cursor:not-allowed}.draggable-window-container .sidebar .window-content[data-v-bcb94941]{padding:16px;height:calc(100% - 40px);background:#f8f9fa;box-sizing:border-box;position:relative}.draggable-window-container .sidebar .window-content .sidebar-video-container[data-v-bcb94941]{position:absolute;top:0;left:0;width:100%;height:100%;background:transparent;z-index:1;display:flex;padding:0;margin:0;overflow:hidden;justify-content:center;align-items:center}.draggable-window-container .sidebar .window-content .sidebar-video-container .source-video[data-v-bcb94941]{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.draggable-window-container .sidebar .window-content .sidebar-video-container .processed-canvas[data-v-bcb94941]{object-fit:contain!important;background:transparent}.draggable-window-container .sidebar .window-content .sidebar-video-container .digital-video[data-v-bcb94941]{min-width:100%;max-width:100%;max-height:100%}.draggable-window-container .sidebar .window-content .sidebar-video-container .digital-video[poster][data-v-bcb94941]{background:url(/src/assets/images/digitalHuman/digital_human_assistant_bg.png) 0 0 no-repeat;background-size:200px 200px;background-position:center center;background-repeat:no-repeat}.draggable-window-container .main-content-outer[data-v-bcb94941]{order:2;flex:1;height:100vh;position:relative}.draggable-window-container .main-content-outer .main-content-inner[data-v-bcb94941]{padding:20px;height:100%;box-sizing:border-box}.draggable-window-container .main-content-outer .draggable-window[data-v-bcb94941]{position:absolute;width:var(--window-width);height:var(--window-height);border-radius:10px;box-shadow:0 4px 12px #0000001a}.draggable-window-container .main-content-outer .draggable-window .window-header[data-v-bcb94941]{height:40px;line-height:40px;background:#4361ee;color:#fff;padding:0 16px;border-radius:10px 10px 0 0;user-select:none;cursor:move;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left[data-v-bcb94941]{display:flex;align-items:center;gap:16px}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns[data-v-bcb94941]{display:flex;gap:8px;pointer-events:none}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button[data-v-bcb94941]{padding:2px 8px;border:none;border-radius:3px;font-size:12px;color:#fff}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.connect-btn[data-v-bcb94941]{background:#52c41a}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.connect-btn[data-v-bcb94941]:disabled{background:#a3d990;cursor:not-allowed}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-bcb94941]{background:#ff4d4f}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-bcb94941]:disabled{background:#ffb3b3;cursor:not-allowed}.draggable-window-container .main-content-outer .draggable-window .window-content[data-v-bcb94941]{height:calc(100% - 40px);border-radius:0 0 10px 10px;box-sizing:border-box;overflow:hidden}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container[data-v-bcb94941]{width:100%;height:100%;background:transparent;position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container .source-video[data-v-bcb94941]{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container .processed-canvas[data-v-bcb94941]{object-fit:contain!important;background:transparent}.draggable-window-container .main-content-outer .draggable-window .window-content .digital-video[data-v-bcb94941]{min-width:100%;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:cover}.draggable-window-container .main-content-outer .draggable-window .window-content .digital-video[poster][data-v-bcb94941]{background:url(/src/assets/images/digitalHuman/digital_human_assistant_bg.png) 0 0 no-repeat;background-size:100px 100px;background-position:center center;background-repeat:no-repeat}[data-v-bcb94941] .processed-canvas{object-fit:contain!important;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}
|
|
1
|
+
@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121,187,255);--el-color-primary-light-5:rgb(160,207,255);--el-color-primary-light-7:rgb(198,226,255);--el-color-primary-light-8:rgb(217,236,255);--el-color-primary-light-9:rgb(236,245,255);--el-color-primary-dark-2:rgb(51,126,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(149,212,117);--el-color-success-light-5:rgb(179,225,157);--el-color-success-light-7:rgb(209,237,196);--el-color-success-light-8:rgb(225,243,216);--el-color-success-light-9:rgb(240,249,235);--el-color-success-dark-2:rgb(82,155,46);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(238,190,119);--el-color-warning-light-5:rgb(243,209,158);--el-color-warning-light-7:rgb(248,227,197);--el-color-warning-light-8:rgb(250,236,216);--el-color-warning-light-9:rgb(253,246,236);--el-color-warning-dark-2:rgb(184,130,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152,152);--el-color-danger-light-5:rgb(250,182,182);--el-color-danger-light-7:rgb(252,211,211);--el-color-danger-light-8:rgb(253,226,226);--el-color-danger-light-9:rgb(254,240,240);--el-color-danger-dark-2:rgb(196,86,86);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152,152);--el-color-error-light-5:rgb(250,182,182);--el-color-error-light-7:rgb(252,211,211);--el-color-error-light-8:rgb(253,226,226);--el-color-error-light-9:rgb(254,240,240);--el-color-error-dark-2:rgb(196,86,86);--el-color-info:#909399;--el-color-info-light-3:rgb(177,179,184);--el-color-info-light-5:rgb(200,201,204);--el-color-info-light-7:rgb(222,223,224);--el-color-info-light-8:rgb(233,233,235);--el-color-info-light-9:rgb(244,244,245);--el-color-info-dark-2:rgb(115,118,122);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;color:var(--color);display:inline-flex;fill:currentColor;font-size:inherit;height:1em;justify-content:center;line-height:1em;position:relative;width:1em}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.draggable-window-container[data-v-7ad3c1b0]{width:100%;height:100vh;min-width:800px;min-height:500px;display:flex;background:#f0f2f5;overflow:hidden;position:relative}.draggable-window-container .digital-human-assistant[data-v-7ad3c1b0]{width:100px;height:100px;background:url(/src/assets/images/digitalHuman/digital_human_assistant.png) 0 0 no-repeat;background-size:100% 100%;box-shadow:0 4px 12px #000c;border-radius:50%;position:absolute;top:30px;right:30px;z-index:9;cursor:move}.draggable-window-container .drag-window-hide[data-v-7ad3c1b0]{z-index:9;cursor:pointer}.draggable-window-container .teleport-fallback[data-v-7ad3c1b0]{position:absolute;top:-9999px;left:-9999px;width:0;height:0;overflow:hidden;pointer-events:none}.draggable-window-container .placeholder[data-v-7ad3c1b0]{position:fixed;top:0;width:var(--sidebar-width);height:100vh;background:#409eff33;border:2px dashed #4361ee;z-index:9998}.draggable-window-container .placeholder.left-placeholder[data-v-7ad3c1b0]{left:0}.draggable-window-container .placeholder.right-placeholder[data-v-7ad3c1b0]{right:0}.draggable-window-container .sidebar[data-v-7ad3c1b0]{width:var(--sidebar-width);height:100%;background:#fff;box-shadow:0 4px 12px #0000001a;transition:opacity .2s}.draggable-window-container .sidebar.left-sidebar[data-v-7ad3c1b0]{order:1}.draggable-window-container .sidebar.right-sidebar[data-v-7ad3c1b0]{order:3}.draggable-window-container .sidebar.pressing[data-v-7ad3c1b0]{opacity:.8}.draggable-window-container .sidebar .window-header[data-v-7ad3c1b0]{height:40px;line-height:40px;background:#4361ee;color:#fff;padding:0 16px;border-radius:0;user-select:none;cursor:move;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.draggable-window-container .sidebar .window-header .window-header-left[data-v-7ad3c1b0]{display:flex;align-items:center;gap:16px}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns[data-v-7ad3c1b0]{display:flex;gap:8px;pointer-events:none}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button[data-v-7ad3c1b0]{padding:2px 8px;border:none;border-radius:3px;font-size:12px;color:#fff}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.connect-btn[data-v-7ad3c1b0]{background:#52c41a}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.connect-btn[data-v-7ad3c1b0]:disabled{background:#a3d990;cursor:not-allowed}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-7ad3c1b0]{background:#ff4d4f}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-7ad3c1b0]:disabled{background:#ffb3b3;cursor:not-allowed}.draggable-window-container .sidebar .window-content[data-v-7ad3c1b0]{padding:16px;height:calc(100% - 40px);background:#f8f9fa;box-sizing:border-box;position:relative}.draggable-window-container .sidebar .window-content .sidebar-video-container[data-v-7ad3c1b0]{position:absolute;top:0;left:0;width:100%;height:100%;background:transparent;z-index:1;display:flex;padding:0;margin:0;overflow:hidden;justify-content:center;align-items:center}.draggable-window-container .sidebar .window-content .sidebar-video-container .source-video[data-v-7ad3c1b0]{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.draggable-window-container .sidebar .window-content .sidebar-video-container .processed-canvas[data-v-7ad3c1b0]{object-fit:contain!important;background:transparent}.draggable-window-container .sidebar .window-content .sidebar-video-container .digital-video[data-v-7ad3c1b0]{min-width:100%;max-width:100%;max-height:100%}.draggable-window-container .sidebar .window-content .sidebar-video-container .digital-video[poster][data-v-7ad3c1b0]{background:url(/src/assets/images/digitalHuman/digital_human_assistant_bg.png) 0 0 no-repeat;background-size:200px 200px;background-position:center center;background-repeat:no-repeat}.draggable-window-container .main-content-outer[data-v-7ad3c1b0]{order:2;flex:1;height:100vh;position:relative}.draggable-window-container .main-content-outer .main-content-inner[data-v-7ad3c1b0]{padding:20px;height:100%;box-sizing:border-box}.draggable-window-container .main-content-outer .draggable-window[data-v-7ad3c1b0]{position:absolute;width:var(--window-width);height:var(--window-height);border-radius:10px;box-shadow:0 4px 12px #0000001a}.draggable-window-container .main-content-outer .draggable-window .window-header[data-v-7ad3c1b0]{height:40px;line-height:40px;background:#4361ee;color:#fff;padding:0 16px;border-radius:10px 10px 0 0;user-select:none;cursor:move;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left[data-v-7ad3c1b0]{display:flex;align-items:center;gap:16px}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns[data-v-7ad3c1b0]{display:flex;gap:8px;pointer-events:none}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button[data-v-7ad3c1b0]{padding:2px 8px;border:none;border-radius:3px;font-size:12px;color:#fff}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.connect-btn[data-v-7ad3c1b0]{background:#52c41a}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.connect-btn[data-v-7ad3c1b0]:disabled{background:#a3d990;cursor:not-allowed}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-7ad3c1b0]{background:#ff4d4f}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-7ad3c1b0]:disabled{background:#ffb3b3;cursor:not-allowed}.draggable-window-container .main-content-outer .draggable-window .window-content[data-v-7ad3c1b0]{height:calc(100% - 40px);border-radius:0 0 10px 10px;box-sizing:border-box;overflow:hidden}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container[data-v-7ad3c1b0]{width:100%;height:100%;background:transparent;position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container .source-video[data-v-7ad3c1b0]{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container .processed-canvas[data-v-7ad3c1b0]{object-fit:contain!important;background:transparent}.draggable-window-container .main-content-outer .draggable-window .window-content .digital-video[data-v-7ad3c1b0]{min-width:100%;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:cover}.draggable-window-container .main-content-outer .draggable-window .window-content .digital-video[poster][data-v-7ad3c1b0]{background:url(/src/assets/images/digitalHuman/digital_human_assistant_bg.png) 0 0 no-repeat;background-size:100px 100px;background-position:center center;background-repeat:no-repeat}[data-v-7ad3c1b0] .processed-canvas{object-fit:contain!important;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index.vue2.ts");;/* empty css */const t=require("../../../../../_virtual/_plugin-vue_export-helper.ts"),u=t.default(e.default,[["__scopeId","data-v-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index.vue2.ts");;/* empty css */const t=require("../../../../../_virtual/_plugin-vue_export-helper.ts"),u=t.default(e.default,[["__scopeId","data-v-7ad3c1b0"]]);exports.default=u;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});;/* empty css */const e=require("vue"),de=require("../../utils/api.ts"),re=require("../../utils/utils.ts"),ye=require("../../utils/videoBackgroundRemoval.ts"),Ee=require("../../../../../node_modules/.pnpm/element-plus@2.13.1_vue@3.5.27_typescript@5.9.3_/node_modules/element-plus/es/components/icon/index.ts"),Ve={class:"digital-human-assistant"},ke={class:"placeholder left-placeholder"},_e={class:"placeholder right-placeholder"},Se={class:"window-header-left"},xe={class:"window-title-text"},Ce={class:"window-header-btns"},Te={class:"disconnect-btn"},Re={class:"connect-btn",disabled:""},Ne={class:"connect-btn"},De={class:"window-content"},Me={class:"main-content-inner"},Le={class:"window-header-left"},We={class:"window-title-text"},He={class:"window-header-btns"},$e={class:"disconnect-btn"},Be={class:"connect-btn",disabled:""},Pe={class:"connect-btn"},Xe={class:"window-content"},Ye={class:"window-header-left"},Oe={class:"window-title-text"},je={class:"window-header-btns"},ze={class:"disconnect-btn"},Ie={class:"connect-btn",disabled:""},qe={class:"connect-btn"},Fe={class:"window-content"},Ue=e.defineComponent({name:"SjDigitalHumanAssistant"}),Ae=e.defineComponent({...Ue,props:{windowWidth:{default:320},windowHeight:{default:467},windowTitle:{default:"数字人助手"},sidebarWidth:{default:"25%"},sidebarLeftTitle:{default:"左侧业务区"},sidebarRightTitle:{default:"右侧业务区"},edgeThreshold:{default:10},dragThreshold:{default:8},defaultStickSide:{default:""},defaultPlayText:{default:""},reconnectInterval:{default:5},maxReconnectTimes:{default:10},baseUrl:{default:""}},setup(R,{expose:ue}){const n=R,A=e.ref(null),G=e.ref(null),c=e.ref(null),a=e.ref(null),h=ye.default(),J=e.ref(null),K=e.ref(null),Q=e.ref(null),N=e.ref(null),_=e.ref(!1),d=e.ref(!1),v=e.ref(!1),Z=e.ref(!0),D=e.ref(!1),r=e.reactive({x:0,y:0,offsetX:0,offsetY:0}),u=e.ref(n.defaultStickSide),M=e.ref(!1),p=e.ref(!1),S=e.ref(!1),Y=e.ref(!1),O=e.ref(!1);let l=null,b="";const L=e.ref(null),w=e.ref(0),W=e.ref(!1),x=e.ref(!1),ve=e.computed(()=>({"--sidebar-width":n.sidebarWidth,"--window-width":`${n.windowWidth}px`,"--window-height":`${n.windowHeight}px`})),fe=e.computed(()=>({left:`${r.x}px`,top:`${r.y}px`,width:`${n.windowWidth}px`,height:`${n.windowHeight}px`,zIndex:M.value||S.value?9999:1e3})),he=o=>{!o&&c.value?(W.value=!1,w.value=0,le()):o?(W.value=!0,pe()):console.warn("自动连接超时:video元素未挂载"),Z.value=o},H=o=>{he(!o),D.value=o,o&&d.value&&e.nextTick(()=>f())},we=()=>{H(!0)},ee=()=>{switch(u.value){case"left":return K.value??N.value;case"right":return Q.value??N.value;default:return J.value??N.value}},V=()=>G.value?.getBoundingClientRect()||{width:0,height:0,left:0,right:0,top:0,bottom:0},te=()=>A.value?.getBoundingClientRect()||{width:0,height:0,left:0,right:0,top:0,bottom:0},j=(o,t)=>{const i=V();return{x:Math.max(0,Math.min(o,i.width-n.windowWidth)),y:Math.max(0,Math.min(t,i.height-n.windowHeight))}},oe=()=>{const o=V(),t=o.width-n.windowWidth-10,i=o.height-n.windowHeight-10;return j(t,i)},ne=()=>{const o=V(),t=te();Y.value=t.left<=o.left+n.edgeThreshold,O.value=t.right>=o.right-n.edgeThreshold},ae=()=>{const o=V(),t=te(),i=t.left<=o.left+n.edgeThreshold?"left":t.right>=o.right-n.edgeThreshold?"right":"";i!==u.value&&(u.value=i,c.value&&(c.value.volume=i?.5:1),C(),f()),Y.value=O.value=!1},me=o=>{M.value=!0,r.offsetX=o.clientX-r.x,r.offsetY=o.clientY-r.y,document.addEventListener("mousemove",z),document.addEventListener("mouseup",I)},z=o=>{if(!M.value)return;const t=V(),{x:i,y:s}=j(o.clientX-t.left-r.offsetX,o.clientY-t.top-r.offsetY);r.x=i,r.y=s,ne()},I=()=>{ae(),M.value=!1,document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",I)},ie=(o,t)=>{p.value=!0,r.offsetX=t.clientX-(t.clientX-n.windowWidth/2),r.offsetY=t.clientY-(t.clientY-20),document.addEventListener("mousemove",$)},$=o=>{if(!p.value)return;const t=Math.abs(o.movementX),i=Math.abs(o.movementY);(t>n.dragThreshold||i>n.dragThreshold)&&(S.value=!0,u.value="",document.removeEventListener("mousemove",$),document.addEventListener("mousemove",q),document.addEventListener("mouseup",F))},q=o=>{if(!S.value)return;const t=V(),{x:i,y:s}=j(o.clientX-t.left-r.offsetX,o.clientY-t.top-r.offsetY);r.x=i,r.y=s,ne()},F=()=>{ae(),p.value=S.value=!1,document.removeEventListener("mousemove",q),document.removeEventListener("mouseup",F)},B=()=>{p.value&&!S.value&&(p.value=!1,document.removeEventListener("mousemove",$))},U=async o=>{if(!d.value||!b)return;const t={text:o,type:"echo",interrupt:!0,sessionid:parseInt(b)};de.default.digitalHumanChat(n.baseUrl,t).then(i=>{i&&Number(i.code)}).catch(i=>{console.log("api.digitalHumanChat:",i)})},k=()=>{L.value&&(clearTimeout(L.value),L.value=null,console.log("重连定时器已清除")),x.value=!1},C=(o=!1)=>{if(!a.value)return;o||h.stopProcessing();const t=a.value.getContext("2d");if(t&&(t.clearRect(0,0,a.value.width,a.value.height),!o)){const i=a.value.width,s=a.value.height;a.value.width=i,a.value.height=s}a.value&&!o&&(a.value.style.width="",a.value.style.height="",u.value===""&&(a.value.style.marginLeft="",a.value.style.marginTop=""))},f=async(o=!1)=>{if(!c.value||!a.value||!_.value||!d.value)return;await e.nextTick();const t=c.value.videoWidth||n.windowWidth,i=c.value.videoHeight||n.windowHeight,s=t/i;console.log("视频原始宽高比:",s,"尺寸:",t,i);let m;const g=ee();g?m=g.getBoundingClientRect():m={width:u.value?0:n.windowWidth,height:u.value?0:n.windowHeight,left:0,top:0,right:0,bottom:0};const P=m.width||(u.value?300:n.windowWidth),X=m.height||(u.value?window.innerHeight-40:n.windowHeight),be=P/X;let y,E;be>s?(E=X,y=E*s):(y=P,E=y/s);const ce=window.devicePixelRatio||1;a.value.width=Math.floor(y*ce),a.value.height=Math.floor(E*ce),a.value.style.display="block",a.value.style.objectFit="contain",u.value===""?(a.value.style.width=`${y}px`,a.value.style.height=`${E}px`,a.value.style.marginLeft=`${(P-y)/2}px`,a.value.style.marginTop=`${(X-E)/2}px`):(a.value.style.width="100%",a.value.style.height="100%",a.value.style.marginLeft="0",a.value.style.marginTop="0"),console.log("Canvas适配完成:",{mode:u.value||"浮动",container:{width:P,height:X},canvas:{drawWidth:y,drawHeight:E,physicalWidth:a.value.width,physicalHeight:a.value.height}}),o||(h.videoRef.value=c.value,h.canvasRef.value=a.value,await h.processVideo())},T=()=>{if(W.value||d.value||v.value||x.value){console.log("重连条件不满足:手动断开/已连接/正在连接/正在冷却");return}if(n.maxReconnectTimes!==-1&&w.value>=n.maxReconnectTimes){console.warn(`数字人重连已达最大次数(${n.maxReconnectTimes}),停止重连`),k(),re.default.funcElMessageShowCtrl(`数字人连接失败,已尝试${n.maxReconnectTimes}次重连,请重试!`),w.value=0;return}x.value=!0,L.value=setTimeout(()=>{try{w.value++,console.log(`数字人第${w.value}次重连... (最大次数:${n.maxReconnectTimes})`),le()}finally{x.value=!1}},n.reconnectInterval*1e3)},ge=async()=>{if(l)try{l.addTransceiver("video",{direction:"recvonly"}),l.addTransceiver("audio",{direction:"recvonly"});const o=await l.createOffer();await l.setLocalDescription(o),await new Promise(s=>{if(l?.iceGatheringState==="complete")s();else{const m=()=>{l?.iceGatheringState==="complete"&&(l?.removeEventListener("icegatheringstatechange",m),s())};l?.addEventListener("icegatheringstatechange",m)}});const t=l.localDescription,i={sdp:t.sdp,type:t.type};de.default.digitalHumanOffer(n.baseUrl,i).then(s=>{s?(b=s.sessionid,l.setRemoteDescription(new RTCSessionDescription(s)),d.value=!0,w.value=0,k(),console.log("数字人连接成功,重置重连状态"),e.nextTick(()=>f())):(d.value=!1,console.log("数字人连接失败:接口返回空"),T()),v.value=!1}).catch(s=>{console.error("api.digitalHumanOffer 失败:",s),d.value=!1,v.value=!1,T()})}catch(o){console.error("negotiate 失败:",o),d.value=!1,v.value=!1,T()}},le=()=>{if(d.value||v.value){console.log("当前已连接/正在连接,无需重复触发");return}v.value=!0,console.log("开始建立数字人连接...");const o={sdpSemantics:"unified-plan"};l&&(l.close(),l=null),l=new RTCPeerConnection(o),l.addEventListener("track",t=>{t.track.kind==="video"&&c.value&&(c.value.srcObject=t.streams[0],c.value.onloadedmetadata=async()=>{c.value&&a.value&&(h.videoRef.value=c.value,h.canvasRef.value=a.value,await f(),await h.processVideo())},c.value.onresize=()=>{f()})}),l.addEventListener("iceconnectionstatechange",()=>{switch(console.log("ICE连接状态变化:",l.iceConnectionState),l.iceConnectionState){case"disconnected":case"failed":case"closed":console.log("WebRTC连接断开/失败,触发重连"),d.value=!1,v.value=!1,l=null,b="",c.value&&(c.value.srcObject=null),C(),T();break;case"connected":w.value=0,k(),console.log("ICE连接成功,重置重连状态"),e.nextTick(()=>f());break}}),ge()},pe=()=>{W.value=!0,k(),v.value=!1,h.stopProcessing(),C(),setTimeout(()=>{l&&(l.close(),l=null),b="",c.value&&(c.value.srcObject=null),d.value=!1,w.value=0,console.log("手动断开连接,重置所有状态")},500)};ue({digitalHumanChat:U,isConnected:d,isConnecting:v,reconnect:T,clearReconnectTimer:k,currentReconnectTimes:w,isWaitingReconnect:x,adaptCanvasToContainer:f}),e.watch(u,async(o,t)=>{!_.value||!c.value||(await e.nextTick(),c.value.volume=o?.5:1,d.value&&(C(),await f()))},{immediate:!0,deep:!0}),e.watch([()=>d.value,()=>n.defaultPlayText],async([o,t],[i])=>{o&&!i&&t&&b&&(console.log("连接成功,自动播放默认文本:",t),await U(t),e.nextTick(()=>f()))},{immediate:!1}),e.watch(()=>n.defaultPlayText,async o=>{d.value&&o&&b&&(console.log("默认文本加载完成,自动播放:",o),await U(o),e.nextTick(()=>f()))},{immediate:!0}),e.onMounted(async()=>{await e.nextTick(),await e.nextTick(),_.value=!0;const{x:o,y:t}=oe();r.x=o,r.y=t,window.addEventListener("resize",se)});const se=re.default.debounce(()=>{if(u.value===""){const{x:o,y:t}=oe();r.x=o,r.y=t}d.value&&_.value&&(C(!0),e.nextTick(()=>f(!0)))},50);return e.onUnmounted(()=>{document.removeEventListener("mousemove",$),document.removeEventListener("mousemove",q),document.removeEventListener("mouseup",F),document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",I),window.removeEventListener("resize",se),k(),h.stopProcessing(),c.value&&(c.value.srcObject=null),l&&l.close()}),(o,t)=>{const i=e.resolveComponent("CloseBold"),s=Ee.ElIcon,m=e.resolveDirective("drag");return e.openBlock(),e.createElementBlock("div",{class:"draggable-window-container",style:e.normalizeStyle(ve.value)},[e.withDirectives(e.createElementVNode("div",Ve,null,512),[[e.vShow,Z.value],[m,["digital-human-assistant",we,!0]]]),e.createElementVNode("div",{ref_key:"teleportFallbackRef",ref:N,class:"teleport-fallback"},null,512),e.withDirectives(e.createElementVNode("div",ke,null,512),[[e.vShow,Y.value]]),e.withDirectives(e.createElementVNode("div",_e,null,512),[[e.vShow,O.value]]),D.value&&u.value==="left"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sidebar left-sidebar",{pressing:p.value}])},[e.createElementVNode("div",{class:"window-header",onMousedown:t[2]||(t[2]=g=>ie("left",g)),onMouseup:B,onMouseleave:B},[e.createElementVNode("div",Se,[e.createElementVNode("span",xe,e.toDisplayString(R.windowTitle),1),e.createElementVNode("div",Ce,[e.withDirectives(e.createElementVNode("button",Te,"未连接",512),[[e.vShow,!d.value&&!v.value]]),e.withDirectives(e.createElementVNode("button",Re,"连接中...",512),[[e.vShow,v.value]]),e.withDirectives(e.createElementVNode("button",Ne,"已连接",512),[[e.vShow,d.value]])])]),e.createVNode(s,{class:"drag-window-hide",onClick:t[0]||(t[0]=g=>H(!1)),onMousedown:t[1]||(t[1]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1})],32),e.createElementVNode("div",De,[e.renderSlot(o.$slots,"sidebar-left",{},void 0,!0),e.createElementVNode("div",{ref_key:"sidebarLeftVideoRef",ref:K,class:"sidebar-video-container"},null,512)])],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"main-content-outer",ref_key:"containerRef",ref:G},[e.createElementVNode("div",Me,[e.renderSlot(o.$slots,"main",{},void 0,!0)]),D.value&&u.value===""?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dragWindowRef",ref:A,class:"draggable-window",style:e.normalizeStyle(fe.value)},[e.createElementVNode("div",{class:"window-header",onMousedown:me},[e.createElementVNode("div",Le,[e.createElementVNode("span",We,e.toDisplayString(R.windowTitle),1),e.createElementVNode("div",He,[e.withDirectives(e.createElementVNode("button",$e,"未连接",512),[[e.vShow,!d.value&&!v.value]]),e.withDirectives(e.createElementVNode("button",Be,"连接中...",512),[[e.vShow,v.value]]),e.withDirectives(e.createElementVNode("button",Pe,"已连接",512),[[e.vShow,d.value]])])]),e.createVNode(s,{class:"drag-window-hide",onClick:t[3]||(t[3]=g=>H(!1)),onMousedown:t[4]||(t[4]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1})],32),e.createElementVNode("div",Xe,[e.createElementVNode("div",{class:"video-container",ref_key:"windowVideoRef",ref:J},null,512)])],4)):e.createCommentVNode("",!0)],512),D.value&&u.value==="right"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sidebar right-sidebar",{pressing:p.value}])},[e.createElementVNode("div",{class:"window-header",onMousedown:t[7]||(t[7]=g=>ie("right",g)),onMouseup:B,onMouseleave:B},[e.createElementVNode("div",Ye,[e.createElementVNode("span",Oe,e.toDisplayString(R.windowTitle),1),e.createElementVNode("div",je,[e.withDirectives(e.createElementVNode("button",ze,"未连接",512),[[e.vShow,!d.value&&!v.value]]),e.withDirectives(e.createElementVNode("button",Ie,"连接中...",512),[[e.vShow,v.value]]),e.withDirectives(e.createElementVNode("button",qe,"已连接",512),[[e.vShow,d.value]])])]),e.createVNode(s,{class:"drag-window-hide",onClick:t[5]||(t[5]=g=>H(!1)),onMousedown:t[6]||(t[6]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1})],32),e.createElementVNode("div",Fe,[e.renderSlot(o.$slots,"sidebar-right",{},void 0,!0),e.createElementVNode("div",{ref_key:"sidebarRightVideoRef",ref:Q,class:"sidebar-video-container"},null,512)])],2)):e.createCommentVNode("",!0),_.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:ee()},[e.createElementVNode("video",{ref_key:"digitalHumanVideo",ref:c,class:"digital-video source-video",poster:"",playsinline:"",autoplay:""},null,512),e.createElementVNode("canvas",{ref_key:"processedCanvas",ref:a,class:"digital-video processed-canvas"},null,512)],8,["to"])):e.createCommentVNode("",!0)],4)}}});exports.default=Ae;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});;/* empty css */const e=require("vue"),G=require("../../utils/api.ts"),ue=require("../../utils/utils.ts"),Ee=require("../../utils/videoBackgroundRemoval.ts"),ke=require("../../../../../node_modules/.pnpm/element-plus@2.13.1_vue@3.5.27_typescript@5.9.3_/node_modules/element-plus/es/components/icon/index.ts"),Ve={class:"digital-human-assistant"},_e={class:"placeholder left-placeholder"},Te={class:"placeholder right-placeholder"},Ce={class:"window-header-left"},Se={class:"window-title-text"},xe={class:"window-header-btns"},Ne={class:"disconnect-btn"},Re={class:"connect-btn",disabled:""},De={class:"connect-btn"},Me={class:"window-content"},Le={class:"main-content-inner"},He={class:"window-header-left"},We={class:"window-title-text"},$e={class:"window-header-btns"},Be={class:"disconnect-btn"},Pe={class:"connect-btn",disabled:""},Xe={class:"connect-btn"},Ye={class:"window-content"},Ie={class:"window-header-left"},Oe={class:"window-title-text"},je={class:"window-header-btns"},ze={class:"disconnect-btn"},qe={class:"connect-btn",disabled:""},Ue={class:"connect-btn"},Fe={class:"window-content"},Ae=e.defineComponent({name:"SjDigitalHumanAssistant"}),Ge=e.defineComponent({...Ae,props:{windowWidth:{default:320},windowHeight:{default:467},windowTitle:{default:"数字人助手"},sidebarWidth:{default:"25%"},sidebarLeftTitle:{default:"左侧业务区"},sidebarRightTitle:{default:"右侧业务区"},edgeThreshold:{default:10},dragThreshold:{default:8},defaultStickSide:{default:""},defaultPlayText:{default:""},reconnectInterval:{default:5},maxReconnectTimes:{default:10},baseUrl:{default:""}},setup(R,{expose:ve}){const n=R,J=e.ref(null),K=e.ref(null),d=e.ref(null),a=e.ref(null),f=Ee.default(),Q=e.ref(null),Z=e.ref(null),ee=e.ref(null),D=e.ref(null),T=e.ref(!1),s=e.ref(!1),v=e.ref(!1),te=e.ref(!0),M=e.ref(!1),r=e.reactive({x:0,y:0,offsetX:0,offsetY:0}),u=e.ref(n.defaultStickSide),L=e.ref(!1),b=e.ref(!1),C=e.ref(!1),I=e.ref(!1),O=e.ref(!1);let l=null,m="";const H=e.ref(null),w=e.ref(0),W=e.ref(!1),S=e.ref(!1),he=e.computed(()=>({"--sidebar-width":n.sidebarWidth,"--window-width":`${n.windowWidth}px`,"--window-height":`${n.windowHeight}px`})),fe=e.computed(()=>({left:`${r.x}px`,top:`${r.y}px`,width:`${n.windowWidth}px`,height:`${n.windowHeight}px`,zIndex:L.value||C.value?9999:1e3})),me=o=>{!o&&d.value?(W.value=!1,w.value=0,ce()):o?(W.value=!0,be()):console.warn("自动连接超时:video元素未挂载"),te.value=o},$=o=>{me(!o),M.value=o,o&&s.value&&e.nextTick(()=>h())},we=()=>{$(!0)},oe=()=>{switch(u.value){case"left":return Z.value??D.value;case"right":return ee.value??D.value;default:return Q.value??D.value}},k=()=>K.value?.getBoundingClientRect()||{width:0,height:0,left:0,right:0,top:0,bottom:0},ne=()=>J.value?.getBoundingClientRect()||{width:0,height:0,left:0,right:0,top:0,bottom:0},j=(o,t)=>{const i=k();return{x:Math.max(0,Math.min(o,i.width-n.windowWidth)),y:Math.max(0,Math.min(t,i.height-n.windowHeight))}},ae=()=>{const o=k(),t=o.width-n.windowWidth-10,i=o.height-n.windowHeight-10;return j(t,i)},ie=()=>{const o=k(),t=ne();I.value=t.left<=o.left+n.edgeThreshold,O.value=t.right>=o.right-n.edgeThreshold},le=()=>{const o=k(),t=ne(),i=t.left<=o.left+n.edgeThreshold?"left":t.right>=o.right-n.edgeThreshold?"right":"";i!==u.value&&(u.value=i,d.value&&(d.value.volume=i?.5:1),x(),h()),I.value=O.value=!1},ge=o=>{L.value=!0,r.offsetX=o.clientX-r.x,r.offsetY=o.clientY-r.y,document.addEventListener("mousemove",z),document.addEventListener("mouseup",q)},z=o=>{if(!L.value)return;const t=k(),{x:i,y:c}=j(o.clientX-t.left-r.offsetX,o.clientY-t.top-r.offsetY);r.x=i,r.y=c,ie()},q=()=>{le(),L.value=!1,document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",q)},se=(o,t)=>{b.value=!0,r.offsetX=t.clientX-(t.clientX-n.windowWidth/2),r.offsetY=t.clientY-(t.clientY-20),document.addEventListener("mousemove",B)},B=o=>{if(!b.value)return;const t=Math.abs(o.movementX),i=Math.abs(o.movementY);(t>n.dragThreshold||i>n.dragThreshold)&&(C.value=!0,u.value="",document.removeEventListener("mousemove",B),document.addEventListener("mousemove",U),document.addEventListener("mouseup",F))},U=o=>{if(!C.value)return;const t=k(),{x:i,y:c}=j(o.clientX-t.left-r.offsetX,o.clientY-t.top-r.offsetY);r.x=i,r.y=c,ie()},F=()=>{le(),b.value=C.value=!1,document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",F)},P=()=>{b.value&&!C.value&&(b.value=!1,document.removeEventListener("mousemove",B))},A=async o=>{if(!s.value||!m)return;await V(),console.log("已打断当前对话,准备播放新文本:",o);const t={text:o,type:"echo",interrupt:!0,sessionid:parseInt(m)};G.default.digitalHumanChat(n.baseUrl,t).then(i=>{i&&Number(i.code)}).catch(i=>{console.log("api.digitalHumanChat:",i)})},V=async()=>{if(!s.value||!m)return;const o={sessionid:parseInt(m)};G.default.digitalHumanInterruptTalk(n.baseUrl,o).then(t=>{t&&Number(t.code)===0&&console.log("数字人对话已成功打断")}).catch(t=>{console.log("api.digitalHumanInterruptTalk:",t)})},_=()=>{H.value&&(clearTimeout(H.value),H.value=null,console.log("重连定时器已清除")),S.value=!1},x=(o=!1)=>{if(!a.value)return;o||f.stopProcessing();const t=a.value.getContext("2d");if(t&&(t.clearRect(0,0,a.value.width,a.value.height),!o)){const i=a.value.width,c=a.value.height;a.value.width=i,a.value.height=c}a.value&&!o&&(a.value.style.width="",a.value.style.height="",u.value===""&&(a.value.style.marginLeft="",a.value.style.marginTop=""))},h=async(o=!1)=>{if(!d.value||!a.value||!T.value||!s.value)return;await e.nextTick();const t=d.value.videoWidth||n.windowWidth,i=d.value.videoHeight||n.windowHeight,c=t/i;console.log("视频原始宽高比:",c,"尺寸:",t,i);let g;const p=oe();p?g=p.getBoundingClientRect():g={width:u.value?0:n.windowWidth,height:u.value?0:n.windowHeight,left:0,top:0,right:0,bottom:0};const X=g.width||(u.value?300:n.windowWidth),Y=g.height||(u.value?window.innerHeight-40:n.windowHeight),ye=X/Y;let y,E;ye>c?(E=Y,y=E*c):(y=X,E=y/c);const re=window.devicePixelRatio||1;a.value.width=Math.floor(y*re),a.value.height=Math.floor(E*re),a.value.style.display="block",a.value.style.objectFit="contain",u.value===""?(a.value.style.width=`${y}px`,a.value.style.height=`${E}px`,a.value.style.marginLeft=`${(X-y)/2}px`,a.value.style.marginTop=`${(Y-E)/2}px`):(a.value.style.width="100%",a.value.style.height="100%",a.value.style.marginLeft="0",a.value.style.marginTop="0"),console.log("Canvas适配完成:",{mode:u.value||"浮动",container:{width:X,height:Y},canvas:{drawWidth:y,drawHeight:E,physicalWidth:a.value.width,physicalHeight:a.value.height}}),o||(f.videoRef.value=d.value,f.canvasRef.value=a.value,await f.processVideo())},N=()=>{if(W.value||s.value||v.value||S.value){console.log("重连条件不满足:手动断开/已连接/正在连接/正在冷却");return}if(V().then(()=>{console.log("重连前已打断当前对话")}),n.maxReconnectTimes!==-1&&w.value>=n.maxReconnectTimes){console.warn(`数字人重连已达最大次数(${n.maxReconnectTimes}),停止重连`),_(),ue.default.funcElMessageShowCtrl(`数字人连接失败,已尝试${n.maxReconnectTimes}次重连,请重试!`),w.value=0;return}S.value=!0,H.value=setTimeout(()=>{try{w.value++,console.log(`数字人第${w.value}次重连... (最大次数:${n.maxReconnectTimes})`),ce()}finally{S.value=!1}},n.reconnectInterval*1e3)},pe=async()=>{if(l)try{l.addTransceiver("video",{direction:"recvonly"}),l.addTransceiver("audio",{direction:"recvonly"});const o=await l.createOffer();await l.setLocalDescription(o),await new Promise(c=>{if(l?.iceGatheringState==="complete")c();else{const g=()=>{l?.iceGatheringState==="complete"&&(l?.removeEventListener("icegatheringstatechange",g),c())};l?.addEventListener("icegatheringstatechange",g)}});const t=l.localDescription,i={sdp:t.sdp,type:t.type};G.default.digitalHumanOffer(n.baseUrl,i).then(c=>{c?(m=c.sessionid,l.setRemoteDescription(new RTCSessionDescription(c)),s.value=!0,w.value=0,_(),console.log("数字人连接成功,重置重连状态"),e.nextTick(()=>h())):(s.value=!1,console.log("数字人连接失败:接口返回空"),N()),v.value=!1}).catch(c=>{console.error("api.digitalHumanOffer 失败:",c),s.value=!1,v.value=!1,N()})}catch(o){console.error("negotiate 失败:",o),s.value=!1,v.value=!1,N()}},ce=()=>{if(s.value||v.value){console.log("当前已连接/正在连接,无需重复触发");return}v.value=!0,console.log("开始建立数字人连接...");const o={sdpSemantics:"unified-plan"};l&&(l.close(),l=null),l=new RTCPeerConnection(o),l.addEventListener("track",t=>{t.track.kind==="video"&&d.value&&(d.value.srcObject=t.streams[0],d.value.onloadedmetadata=async()=>{d.value&&a.value&&(f.videoRef.value=d.value,f.canvasRef.value=a.value,await h(),await f.processVideo())},d.value.onresize=()=>{h()})}),l.addEventListener("iceconnectionstatechange",()=>{switch(console.log("ICE连接状态变化:",l.iceConnectionState),l.iceConnectionState){case"disconnected":case"failed":case"closed":console.log("WebRTC连接断开/失败,触发重连"),s.value=!1,v.value=!1,l=null,m="",d.value&&(d.value.srcObject=null),x(),V().then(()=>{console.log("ICE连接断开,已打断对话")}),N();break;case"connected":w.value=0,_(),console.log("ICE连接成功,重置重连状态"),e.nextTick(()=>h());break}}),pe()},be=()=>{W.value=!0,_(),v.value=!1,f.stopProcessing(),x(),V().then(()=>{console.log("手动断开连接,已打断当前对话")}),setTimeout(()=>{l&&(l.close(),l=null),m="",d.value&&(d.value.srcObject=null),s.value=!1,w.value=0,console.log("手动断开连接,重置所有状态")},500)};ve({digitalHumanChat:A,digitalHumanInterruptTalk:V,isConnected:s,isConnecting:v,reconnect:N,clearReconnectTimer:_,currentReconnectTimes:w,isWaitingReconnect:S,adaptCanvasToContainer:h}),e.watch(u,async(o,t)=>{!T.value||!d.value||(await e.nextTick(),d.value.volume=o?.5:1,s.value&&(x(),await h()))},{immediate:!0,deep:!0}),e.watch([()=>s.value,()=>n.defaultPlayText],async([o,t],[i])=>{o&&!i&&t&&m&&(console.log("连接成功,自动播放默认文本:",t),await A(t),e.nextTick(()=>h()))},{immediate:!1}),e.watch(()=>n.defaultPlayText,async o=>{s.value&&o&&m&&(console.log("默认文本加载完成,自动播放:",o),await A(o),e.nextTick(()=>h()))},{immediate:!0}),e.onMounted(async()=>{await e.nextTick(),await e.nextTick(),T.value=!0;const{x:o,y:t}=ae();r.x=o,r.y=t,window.addEventListener("resize",de)});const de=ue.default.debounce(()=>{if(u.value===""){const{x:o,y:t}=ae();r.x=o,r.y=t}s.value&&T.value&&(x(!0),e.nextTick(()=>h(!0)))},50);return e.onUnmounted(()=>{V().then(()=>{console.log("组件卸载,已打断当前对话")}),document.removeEventListener("mousemove",B),document.removeEventListener("mousemove",U),document.removeEventListener("mouseup",F),document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",q),window.removeEventListener("resize",de),_(),f.stopProcessing(),d.value&&(d.value.srcObject=null),l&&l.close()}),(o,t)=>{const i=e.resolveComponent("CloseBold"),c=ke.ElIcon,g=e.resolveDirective("drag");return e.openBlock(),e.createElementBlock("div",{class:"draggable-window-container",style:e.normalizeStyle(he.value)},[e.withDirectives(e.createElementVNode("div",Ve,null,512),[[e.vShow,te.value],[g,["digital-human-assistant",we,!0]]]),e.createElementVNode("div",{ref_key:"teleportFallbackRef",ref:D,class:"teleport-fallback"},null,512),e.withDirectives(e.createElementVNode("div",_e,null,512),[[e.vShow,I.value]]),e.withDirectives(e.createElementVNode("div",Te,null,512),[[e.vShow,O.value]]),M.value&&u.value==="left"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sidebar left-sidebar",{pressing:b.value}])},[e.createElementVNode("div",{class:"window-header",onMousedown:t[2]||(t[2]=p=>se("left",p)),onMouseup:P,onMouseleave:P},[e.createElementVNode("div",Ce,[e.createElementVNode("span",Se,e.toDisplayString(R.windowTitle),1),e.createElementVNode("div",xe,[e.withDirectives(e.createElementVNode("button",Ne,"未连接",512),[[e.vShow,!s.value&&!v.value]]),e.withDirectives(e.createElementVNode("button",Re,"连接中...",512),[[e.vShow,v.value]]),e.withDirectives(e.createElementVNode("button",De,"已连接",512),[[e.vShow,s.value]])])]),e.createVNode(c,{class:"drag-window-hide",onClick:t[0]||(t[0]=p=>$(!1)),onMousedown:t[1]||(t[1]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1})],32),e.createElementVNode("div",Me,[e.renderSlot(o.$slots,"sidebar-left",{},void 0,!0),e.createElementVNode("div",{ref_key:"sidebarLeftVideoRef",ref:Z,class:"sidebar-video-container"},null,512)])],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"main-content-outer",ref_key:"containerRef",ref:K},[e.createElementVNode("div",Le,[e.renderSlot(o.$slots,"main",{},void 0,!0)]),M.value&&u.value===""?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dragWindowRef",ref:J,class:"draggable-window",style:e.normalizeStyle(fe.value)},[e.createElementVNode("div",{class:"window-header",onMousedown:ge},[e.createElementVNode("div",He,[e.createElementVNode("span",We,e.toDisplayString(R.windowTitle),1),e.createElementVNode("div",$e,[e.withDirectives(e.createElementVNode("button",Be,"未连接",512),[[e.vShow,!s.value&&!v.value]]),e.withDirectives(e.createElementVNode("button",Pe,"连接中...",512),[[e.vShow,v.value]]),e.withDirectives(e.createElementVNode("button",Xe,"已连接",512),[[e.vShow,s.value]])])]),e.createVNode(c,{class:"drag-window-hide",onClick:t[3]||(t[3]=p=>$(!1)),onMousedown:t[4]||(t[4]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1})],32),e.createElementVNode("div",Ye,[e.createElementVNode("div",{class:"video-container",ref_key:"windowVideoRef",ref:Q},null,512)])],4)):e.createCommentVNode("",!0)],512),M.value&&u.value==="right"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sidebar right-sidebar",{pressing:b.value}])},[e.createElementVNode("div",{class:"window-header",onMousedown:t[7]||(t[7]=p=>se("right",p)),onMouseup:P,onMouseleave:P},[e.createElementVNode("div",Ie,[e.createElementVNode("span",Oe,e.toDisplayString(R.windowTitle),1),e.createElementVNode("div",je,[e.withDirectives(e.createElementVNode("button",ze,"未连接",512),[[e.vShow,!s.value&&!v.value]]),e.withDirectives(e.createElementVNode("button",qe,"连接中...",512),[[e.vShow,v.value]]),e.withDirectives(e.createElementVNode("button",Ue,"已连接",512),[[e.vShow,s.value]])])]),e.createVNode(c,{class:"drag-window-hide",onClick:t[5]||(t[5]=p=>$(!1)),onMousedown:t[6]||(t[6]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1})],32),e.createElementVNode("div",Fe,[e.renderSlot(o.$slots,"sidebar-right",{},void 0,!0),e.createElementVNode("div",{ref_key:"sidebarRightVideoRef",ref:ee,class:"sidebar-video-container"},null,512)])],2)):e.createCommentVNode("",!0),T.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:oe()},[e.createElementVNode("video",{ref_key:"digitalHumanVideo",ref:d,class:"digital-video source-video",poster:"",playsinline:"",autoplay:""},null,512),e.createElementVNode("canvas",{ref_key:"processedCanvas",ref:a,class:"digital-video processed-canvas"},null,512)],8,["to"])):e.createCommentVNode("",!0)],4)}}});exports.default=Ge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./axios.ts"),r={async digitalHumanChat(e
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./axios.ts"),r={async digitalHumanChat(t,e){return await a.request(t,"/human",e,"post")},async digitalHumanOffer(t,e){return await a.request(t,"/offer",e,"post")},async digitalHumanInterruptTalk(t,e){return await a.request(t,"/interrupt_talk",e,"post")}};exports.default=r;
|
package/ui/lib/sj-ai-plus.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121,187,255);--el-color-primary-light-5:rgb(160,207,255);--el-color-primary-light-7:rgb(198,226,255);--el-color-primary-light-8:rgb(217,236,255);--el-color-primary-light-9:rgb(236,245,255);--el-color-primary-dark-2:rgb(51,126,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(149,212,117);--el-color-success-light-5:rgb(179,225,157);--el-color-success-light-7:rgb(209,237,196);--el-color-success-light-8:rgb(225,243,216);--el-color-success-light-9:rgb(240,249,235);--el-color-success-dark-2:rgb(82,155,46);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(238,190,119);--el-color-warning-light-5:rgb(243,209,158);--el-color-warning-light-7:rgb(248,227,197);--el-color-warning-light-8:rgb(250,236,216);--el-color-warning-light-9:rgb(253,246,236);--el-color-warning-dark-2:rgb(184,130,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152,152);--el-color-danger-light-5:rgb(250,182,182);--el-color-danger-light-7:rgb(252,211,211);--el-color-danger-light-8:rgb(253,226,226);--el-color-danger-light-9:rgb(254,240,240);--el-color-danger-dark-2:rgb(196,86,86);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152,152);--el-color-error-light-5:rgb(250,182,182);--el-color-error-light-7:rgb(252,211,211);--el-color-error-light-8:rgb(253,226,226);--el-color-error-light-9:rgb(254,240,240);--el-color-error-dark-2:rgb(196,86,86);--el-color-info:#909399;--el-color-info-light-3:rgb(177,179,184);--el-color-info-light-5:rgb(200,201,204);--el-color-info-light-7:rgb(222,223,224);--el-color-info-light-8:rgb(233,233,235);--el-color-info-light-9:rgb(244,244,245);--el-color-info-dark-2:rgb(115,118,122);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;color:var(--color);display:inline-flex;fill:currentColor;font-size:inherit;height:1em;justify-content:center;line-height:1em;position:relative;width:1em}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.draggable-window-container[data-v-bcb94941]{width:100%;height:100vh;min-width:800px;min-height:500px;display:flex;background:#f0f2f5;overflow:hidden;position:relative}.draggable-window-container .digital-human-assistant[data-v-bcb94941]{width:100px;height:100px;background:url(/src/assets/images/digitalHuman/digital_human_assistant.png) 0 0 no-repeat;background-size:100% 100%;box-shadow:0 4px 12px #000c;border-radius:50%;position:absolute;top:30px;right:30px;z-index:9;cursor:move}.draggable-window-container .drag-window-hide[data-v-bcb94941]{z-index:9;cursor:pointer}.draggable-window-container .teleport-fallback[data-v-bcb94941]{position:absolute;top:-9999px;left:-9999px;width:0;height:0;overflow:hidden;pointer-events:none}.draggable-window-container .placeholder[data-v-bcb94941]{position:fixed;top:0;width:var(--sidebar-width);height:100vh;background:#409eff33;border:2px dashed #4361ee;z-index:9998}.draggable-window-container .placeholder.left-placeholder[data-v-bcb94941]{left:0}.draggable-window-container .placeholder.right-placeholder[data-v-bcb94941]{right:0}.draggable-window-container .sidebar[data-v-bcb94941]{width:var(--sidebar-width);height:100%;background:#fff;box-shadow:0 4px 12px #0000001a;transition:opacity .2s}.draggable-window-container .sidebar.left-sidebar[data-v-bcb94941]{order:1}.draggable-window-container .sidebar.right-sidebar[data-v-bcb94941]{order:3}.draggable-window-container .sidebar.pressing[data-v-bcb94941]{opacity:.8}.draggable-window-container .sidebar .window-header[data-v-bcb94941]{height:40px;line-height:40px;background:#4361ee;color:#fff;padding:0 16px;border-radius:0;user-select:none;cursor:move;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.draggable-window-container .sidebar .window-header .window-header-left[data-v-bcb94941]{display:flex;align-items:center;gap:16px}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns[data-v-bcb94941]{display:flex;gap:8px;pointer-events:none}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button[data-v-bcb94941]{padding:2px 8px;border:none;border-radius:3px;font-size:12px;color:#fff}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.connect-btn[data-v-bcb94941]{background:#52c41a}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.connect-btn[data-v-bcb94941]:disabled{background:#a3d990;cursor:not-allowed}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-bcb94941]{background:#ff4d4f}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-bcb94941]:disabled{background:#ffb3b3;cursor:not-allowed}.draggable-window-container .sidebar .window-content[data-v-bcb94941]{padding:16px;height:calc(100% - 40px);background:#f8f9fa;box-sizing:border-box;position:relative}.draggable-window-container .sidebar .window-content .sidebar-video-container[data-v-bcb94941]{position:absolute;top:0;left:0;width:100%;height:100%;background:transparent;z-index:1;display:flex;padding:0;margin:0;overflow:hidden;justify-content:center;align-items:center}.draggable-window-container .sidebar .window-content .sidebar-video-container .source-video[data-v-bcb94941]{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.draggable-window-container .sidebar .window-content .sidebar-video-container .processed-canvas[data-v-bcb94941]{object-fit:contain!important;background:transparent}.draggable-window-container .sidebar .window-content .sidebar-video-container .digital-video[data-v-bcb94941]{min-width:100%;max-width:100%;max-height:100%}.draggable-window-container .sidebar .window-content .sidebar-video-container .digital-video[poster][data-v-bcb94941]{background:url(/src/assets/images/digitalHuman/digital_human_assistant_bg.png) 0 0 no-repeat;background-size:200px 200px;background-position:center center;background-repeat:no-repeat}.draggable-window-container .main-content-outer[data-v-bcb94941]{order:2;flex:1;height:100vh;position:relative}.draggable-window-container .main-content-outer .main-content-inner[data-v-bcb94941]{padding:20px;height:100%;box-sizing:border-box}.draggable-window-container .main-content-outer .draggable-window[data-v-bcb94941]{position:absolute;width:var(--window-width);height:var(--window-height);border-radius:10px;box-shadow:0 4px 12px #0000001a}.draggable-window-container .main-content-outer .draggable-window .window-header[data-v-bcb94941]{height:40px;line-height:40px;background:#4361ee;color:#fff;padding:0 16px;border-radius:10px 10px 0 0;user-select:none;cursor:move;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left[data-v-bcb94941]{display:flex;align-items:center;gap:16px}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns[data-v-bcb94941]{display:flex;gap:8px;pointer-events:none}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button[data-v-bcb94941]{padding:2px 8px;border:none;border-radius:3px;font-size:12px;color:#fff}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.connect-btn[data-v-bcb94941]{background:#52c41a}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.connect-btn[data-v-bcb94941]:disabled{background:#a3d990;cursor:not-allowed}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-bcb94941]{background:#ff4d4f}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-bcb94941]:disabled{background:#ffb3b3;cursor:not-allowed}.draggable-window-container .main-content-outer .draggable-window .window-content[data-v-bcb94941]{height:calc(100% - 40px);border-radius:0 0 10px 10px;box-sizing:border-box;overflow:hidden}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container[data-v-bcb94941]{width:100%;height:100%;background:transparent;position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container .source-video[data-v-bcb94941]{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container .processed-canvas[data-v-bcb94941]{object-fit:contain!important;background:transparent}.draggable-window-container .main-content-outer .draggable-window .window-content .digital-video[data-v-bcb94941]{min-width:100%;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:cover}.draggable-window-container .main-content-outer .draggable-window .window-content .digital-video[poster][data-v-bcb94941]{background:url(/src/assets/images/digitalHuman/digital_human_assistant_bg.png) 0 0 no-repeat;background-size:100px 100px;background-position:center center;background-repeat:no-repeat}[data-v-bcb94941] .processed-canvas{object-fit:contain!important;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}
|
|
1
|
+
@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121,187,255);--el-color-primary-light-5:rgb(160,207,255);--el-color-primary-light-7:rgb(198,226,255);--el-color-primary-light-8:rgb(217,236,255);--el-color-primary-light-9:rgb(236,245,255);--el-color-primary-dark-2:rgb(51,126,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(149,212,117);--el-color-success-light-5:rgb(179,225,157);--el-color-success-light-7:rgb(209,237,196);--el-color-success-light-8:rgb(225,243,216);--el-color-success-light-9:rgb(240,249,235);--el-color-success-dark-2:rgb(82,155,46);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(238,190,119);--el-color-warning-light-5:rgb(243,209,158);--el-color-warning-light-7:rgb(248,227,197);--el-color-warning-light-8:rgb(250,236,216);--el-color-warning-light-9:rgb(253,246,236);--el-color-warning-dark-2:rgb(184,130,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152,152);--el-color-danger-light-5:rgb(250,182,182);--el-color-danger-light-7:rgb(252,211,211);--el-color-danger-light-8:rgb(253,226,226);--el-color-danger-light-9:rgb(254,240,240);--el-color-danger-dark-2:rgb(196,86,86);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152,152);--el-color-error-light-5:rgb(250,182,182);--el-color-error-light-7:rgb(252,211,211);--el-color-error-light-8:rgb(253,226,226);--el-color-error-light-9:rgb(254,240,240);--el-color-error-dark-2:rgb(196,86,86);--el-color-info:#909399;--el-color-info-light-3:rgb(177,179,184);--el-color-info-light-5:rgb(200,201,204);--el-color-info-light-7:rgb(222,223,224);--el-color-info-light-8:rgb(233,233,235);--el-color-info-light-9:rgb(244,244,245);--el-color-info-dark-2:rgb(115,118,122);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:rgba(255,255,255,.9);--el-mask-color-extra-light:rgba(255,255,255,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;color:var(--color);display:inline-flex;fill:currentColor;font-size:inherit;height:1em;justify-content:center;line-height:1em;position:relative;width:1em}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.draggable-window-container[data-v-7ad3c1b0]{width:100%;height:100vh;min-width:800px;min-height:500px;display:flex;background:#f0f2f5;overflow:hidden;position:relative}.draggable-window-container .digital-human-assistant[data-v-7ad3c1b0]{width:100px;height:100px;background:url(/src/assets/images/digitalHuman/digital_human_assistant.png) 0 0 no-repeat;background-size:100% 100%;box-shadow:0 4px 12px #000c;border-radius:50%;position:absolute;top:30px;right:30px;z-index:9;cursor:move}.draggable-window-container .drag-window-hide[data-v-7ad3c1b0]{z-index:9;cursor:pointer}.draggable-window-container .teleport-fallback[data-v-7ad3c1b0]{position:absolute;top:-9999px;left:-9999px;width:0;height:0;overflow:hidden;pointer-events:none}.draggable-window-container .placeholder[data-v-7ad3c1b0]{position:fixed;top:0;width:var(--sidebar-width);height:100vh;background:#409eff33;border:2px dashed #4361ee;z-index:9998}.draggable-window-container .placeholder.left-placeholder[data-v-7ad3c1b0]{left:0}.draggable-window-container .placeholder.right-placeholder[data-v-7ad3c1b0]{right:0}.draggable-window-container .sidebar[data-v-7ad3c1b0]{width:var(--sidebar-width);height:100%;background:#fff;box-shadow:0 4px 12px #0000001a;transition:opacity .2s}.draggable-window-container .sidebar.left-sidebar[data-v-7ad3c1b0]{order:1}.draggable-window-container .sidebar.right-sidebar[data-v-7ad3c1b0]{order:3}.draggable-window-container .sidebar.pressing[data-v-7ad3c1b0]{opacity:.8}.draggable-window-container .sidebar .window-header[data-v-7ad3c1b0]{height:40px;line-height:40px;background:#4361ee;color:#fff;padding:0 16px;border-radius:0;user-select:none;cursor:move;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.draggable-window-container .sidebar .window-header .window-header-left[data-v-7ad3c1b0]{display:flex;align-items:center;gap:16px}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns[data-v-7ad3c1b0]{display:flex;gap:8px;pointer-events:none}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button[data-v-7ad3c1b0]{padding:2px 8px;border:none;border-radius:3px;font-size:12px;color:#fff}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.connect-btn[data-v-7ad3c1b0]{background:#52c41a}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.connect-btn[data-v-7ad3c1b0]:disabled{background:#a3d990;cursor:not-allowed}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-7ad3c1b0]{background:#ff4d4f}.draggable-window-container .sidebar .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-7ad3c1b0]:disabled{background:#ffb3b3;cursor:not-allowed}.draggable-window-container .sidebar .window-content[data-v-7ad3c1b0]{padding:16px;height:calc(100% - 40px);background:#f8f9fa;box-sizing:border-box;position:relative}.draggable-window-container .sidebar .window-content .sidebar-video-container[data-v-7ad3c1b0]{position:absolute;top:0;left:0;width:100%;height:100%;background:transparent;z-index:1;display:flex;padding:0;margin:0;overflow:hidden;justify-content:center;align-items:center}.draggable-window-container .sidebar .window-content .sidebar-video-container .source-video[data-v-7ad3c1b0]{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.draggable-window-container .sidebar .window-content .sidebar-video-container .processed-canvas[data-v-7ad3c1b0]{object-fit:contain!important;background:transparent}.draggable-window-container .sidebar .window-content .sidebar-video-container .digital-video[data-v-7ad3c1b0]{min-width:100%;max-width:100%;max-height:100%}.draggable-window-container .sidebar .window-content .sidebar-video-container .digital-video[poster][data-v-7ad3c1b0]{background:url(/src/assets/images/digitalHuman/digital_human_assistant_bg.png) 0 0 no-repeat;background-size:200px 200px;background-position:center center;background-repeat:no-repeat}.draggable-window-container .main-content-outer[data-v-7ad3c1b0]{order:2;flex:1;height:100vh;position:relative}.draggable-window-container .main-content-outer .main-content-inner[data-v-7ad3c1b0]{padding:20px;height:100%;box-sizing:border-box}.draggable-window-container .main-content-outer .draggable-window[data-v-7ad3c1b0]{position:absolute;width:var(--window-width);height:var(--window-height);border-radius:10px;box-shadow:0 4px 12px #0000001a}.draggable-window-container .main-content-outer .draggable-window .window-header[data-v-7ad3c1b0]{height:40px;line-height:40px;background:#4361ee;color:#fff;padding:0 16px;border-radius:10px 10px 0 0;user-select:none;cursor:move;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left[data-v-7ad3c1b0]{display:flex;align-items:center;gap:16px}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns[data-v-7ad3c1b0]{display:flex;gap:8px;pointer-events:none}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button[data-v-7ad3c1b0]{padding:2px 8px;border:none;border-radius:3px;font-size:12px;color:#fff}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.connect-btn[data-v-7ad3c1b0]{background:#52c41a}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.connect-btn[data-v-7ad3c1b0]:disabled{background:#a3d990;cursor:not-allowed}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-7ad3c1b0]{background:#ff4d4f}.draggable-window-container .main-content-outer .draggable-window .window-header .window-header-left .window-header-btns button.disconnect-btn[data-v-7ad3c1b0]:disabled{background:#ffb3b3;cursor:not-allowed}.draggable-window-container .main-content-outer .draggable-window .window-content[data-v-7ad3c1b0]{height:calc(100% - 40px);border-radius:0 0 10px 10px;box-sizing:border-box;overflow:hidden}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container[data-v-7ad3c1b0]{width:100%;height:100%;background:transparent;position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container .source-video[data-v-7ad3c1b0]{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.draggable-window-container .main-content-outer .draggable-window .window-content .video-container .processed-canvas[data-v-7ad3c1b0]{object-fit:contain!important;background:transparent}.draggable-window-container .main-content-outer .draggable-window .window-content .digital-video[data-v-7ad3c1b0]{min-width:100%;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:cover}.draggable-window-container .main-content-outer .draggable-window .window-content .digital-video[poster][data-v-7ad3c1b0]{background:url(/src/assets/images/digitalHuman/digital_human_assistant_bg.png) 0 0 no-repeat;background-size:100px 100px;background-position:center center;background-repeat:no-repeat}[data-v-7ad3c1b0] .processed-canvas{object-fit:contain!important;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}
|