@tencentcloud/roomkit-electron-vue3 2.7.0 → 2.7.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/es/components/AITools/AISubtitles.vue.mjs +1 -1
- package/es/components/AITools/AISubtitles.vue2.mjs +18 -19
- package/es/components/AITools/AITranscription.vue.mjs +1 -1
- package/es/components/AITools/AITranscription.vue2.mjs +65 -76
- package/es/components/ManageMember/MemberControl/index.vue.mjs +1 -1
- package/es/components/ManageMember/MemberControl/index.vue2.mjs +6 -4
- package/es/components/ManageMember/MemberItemCommon/MemberInfo.vue.mjs +1 -1
- package/es/components/RoomFooter/BasicBeauty.vue.mjs +1 -1
- package/es/components/RoomFooter/BasicBeauty.vue2.mjs +3 -1
- package/es/components/RoomFooter/ChatControl.vue.mjs +2 -0
- package/es/components/ScheduleConference/ScheduleConferencePanel/index.vue2.mjs +1 -1
- package/es/components/ScheduleConference/ScheduleRoomControl.vue2.mjs +1 -1
- package/es/components/ScheduleConference/ScheduleRoomList.vue2.mjs +1 -1
- package/es/index.mjs +118 -110
- package/es/services/function/aiTask.d.ts +13 -17
- package/es/services/function/aiTask.mjs +63 -100
- package/es/services/manager/dataReportManager.d.ts +4 -1
- package/es/services/manager/dataReportManager.mjs +3 -0
- package/es/utils/utils.d.ts +2 -0
- package/es/utils/utils.mjs +33 -0
- package/lib/components/AITools/AISubtitles.vue.js +1 -1
- package/lib/components/AITools/AISubtitles.vue2.js +17 -18
- package/lib/components/AITools/AITranscription.vue.js +1 -1
- package/lib/components/AITools/AITranscription.vue2.js +64 -75
- package/lib/components/ManageMember/MemberControl/index.vue.js +1 -1
- package/lib/components/ManageMember/MemberControl/index.vue2.js +5 -3
- package/lib/components/ManageMember/MemberItemCommon/MemberInfo.vue.js +1 -1
- package/lib/components/RoomFooter/BasicBeauty.vue.js +1 -1
- package/lib/components/RoomFooter/BasicBeauty.vue2.js +3 -1
- package/lib/components/RoomFooter/ChatControl.vue.js +2 -0
- package/lib/components/ScheduleConference/ScheduleConferencePanel/index.vue2.js +1 -1
- package/lib/components/ScheduleConference/ScheduleRoomControl.vue2.js +1 -1
- package/lib/components/ScheduleConference/ScheduleRoomList.vue2.js +1 -1
- package/lib/index.js +118 -110
- package/lib/services/function/aiTask.d.ts +13 -17
- package/lib/services/function/aiTask.js +63 -100
- package/lib/services/manager/dataReportManager.d.ts +4 -1
- package/lib/services/manager/dataReportManager.js +3 -0
- package/lib/utils/utils.d.ts +2 -0
- package/lib/utils/utils.js +33 -0
- package/package.json +2 -2
- package/src/TUIRoom/components/AITools/AISubtitles.vue +26 -23
- package/src/TUIRoom/components/AITools/AITranscription.vue +106 -101
- package/src/TUIRoom/components/ManageMember/MemberControl/index.vue +8 -3
- package/src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue +1 -1
- package/src/TUIRoom/components/RoomFooter/BasicBeauty.vue +2 -1
- package/src/TUIRoom/components/RoomFooter/ChatControl.vue +2 -1
- package/src/TUIRoom/services/function/aiTask.ts +79 -113
- package/src/TUIRoom/services/manager/dataReportManager.ts +3 -0
- package/src/TUIRoom/utils/utils.ts +47 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./AISubtitles.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const AISubtitlesOverlay = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const AISubtitlesOverlay = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c187363f"]]);
|
|
5
5
|
export {
|
|
6
6
|
AISubtitlesOverlay as default
|
|
7
7
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, onUnmounted, openBlock, createElementBlock, Fragment, renderList, toDisplayString, createCommentVNode } from "vue";
|
|
1
|
+
import { defineComponent, ref, computed, onMounted, onUnmounted, openBlock, createElementBlock, Fragment, renderList, toDisplayString, unref, createCommentVNode } from "vue";
|
|
2
2
|
import "../../services/main.mjs";
|
|
3
3
|
import { roomService } from "../../services/roomService.mjs";
|
|
4
4
|
import "../../locales/index.mjs";
|
|
@@ -6,6 +6,7 @@ import "@tencentcloud/tuiroom-engine-electron";
|
|
|
6
6
|
import "mitt";
|
|
7
7
|
import "../../services/manager/roomActionManager.mjs";
|
|
8
8
|
import "@tencentcloud/tui-core";
|
|
9
|
+
import { MetricsKey } from "../../services/manager/dataReportManager.mjs";
|
|
9
10
|
import { AI_TASK } from "../../services/function/aiTask.mjs";
|
|
10
11
|
const _hoisted_1 = {
|
|
11
12
|
key: 0,
|
|
@@ -14,32 +15,30 @@ const _hoisted_1 = {
|
|
|
14
15
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
15
16
|
__name: "AISubtitles",
|
|
16
17
|
setup(__props) {
|
|
17
|
-
const
|
|
18
|
-
const subtitleLines = computed(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
clearTimeout(subtitleTimeout);
|
|
25
|
-
}
|
|
26
|
-
subtitleTimeout = setTimeout(() => {
|
|
27
|
-
rawSubtitleText.value = "";
|
|
28
|
-
}, 3e3);
|
|
29
|
-
};
|
|
18
|
+
const subtitleMessages = ref({});
|
|
19
|
+
const subtitleLines = computed(() => {
|
|
20
|
+
const arr = Object.keys(subtitleMessages.value).map((userId) => {
|
|
21
|
+
return subtitleMessages.value[userId];
|
|
22
|
+
});
|
|
23
|
+
return arr.sort((a, b) => a.startMsTs - b.startMsTs);
|
|
24
|
+
});
|
|
30
25
|
const handleAISubtitles = (data) => {
|
|
31
26
|
if (!data) return;
|
|
32
|
-
|
|
33
|
-
resetSubtitleTimeout();
|
|
27
|
+
subtitleMessages.value = Object.assign({}, data.subtitleMessages);
|
|
34
28
|
};
|
|
35
|
-
|
|
29
|
+
onMounted(() => {
|
|
30
|
+
roomService.dataReportManager.reportCount(MetricsKey.AITask);
|
|
31
|
+
roomService.aiTask.on(AI_TASK.TRANSCRIPTION_TASK, handleAISubtitles);
|
|
32
|
+
});
|
|
36
33
|
onUnmounted(() => {
|
|
37
34
|
roomService.aiTask.off(AI_TASK.TRANSCRIPTION_TASK, handleAISubtitles);
|
|
38
35
|
});
|
|
39
36
|
return (_ctx, _cache) => {
|
|
40
37
|
return subtitleLines.value.length ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
41
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(subtitleLines.value, (line
|
|
42
|
-
return openBlock(), createElementBlock("div", {
|
|
38
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(subtitleLines.value, (line) => {
|
|
39
|
+
return openBlock(), createElementBlock("div", {
|
|
40
|
+
key: line.sender
|
|
41
|
+
}, toDisplayString(`${unref(roomService).roomStore.getDisplayName(line.sender)}: ${line == null ? void 0 : line.text}`), 1);
|
|
43
42
|
}), 128))
|
|
44
43
|
])) : createCommentVNode("", true);
|
|
45
44
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./AITranscription.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const AITranscription = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const AITranscription = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-631b02ec"]]);
|
|
5
5
|
export {
|
|
6
6
|
AITranscription as default
|
|
7
7
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, onMounted, nextTick, computed, openBlock, createElementBlock, Fragment, renderList, createElementVNode, toDisplayString } from "vue";
|
|
1
|
+
import { defineComponent, ref, onMounted, nextTick, computed, watch, onUnmounted, openBlock, createElementBlock, Fragment, renderList, createElementVNode, toDisplayString, unref } from "vue";
|
|
2
2
|
import "../../services/main.mjs";
|
|
3
3
|
import { roomService } from "../../services/roomService.mjs";
|
|
4
4
|
import "../../locales/index.mjs";
|
|
@@ -6,108 +6,97 @@ import "@tencentcloud/tuiroom-engine-electron";
|
|
|
6
6
|
import "mitt";
|
|
7
7
|
import "../../services/manager/roomActionManager.mjs";
|
|
8
8
|
import "@tencentcloud/tui-core";
|
|
9
|
+
import { MetricsKey } from "../../services/manager/dataReportManager.mjs";
|
|
9
10
|
import { AI_TASK } from "../../services/function/aiTask.mjs";
|
|
11
|
+
import { formatTimestampToTime } from "../../utils/utils.mjs";
|
|
10
12
|
const _hoisted_1 = { class: "title" };
|
|
11
13
|
const _hoisted_2 = { class: "speaker" };
|
|
12
14
|
const _hoisted_3 = { class: "timestamp" };
|
|
13
|
-
const
|
|
15
|
+
const timeInterval = 60 * 1e3;
|
|
14
16
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
15
17
|
__name: "AITranscription",
|
|
16
18
|
setup(__props) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
const
|
|
19
|
+
const conversationContainerRef = ref();
|
|
20
|
+
const isUserScrolling = ref(false);
|
|
21
|
+
const rawTranscribedMessageList = ref(
|
|
22
|
+
roomService.aiTask.transcribedMessageList
|
|
23
|
+
);
|
|
24
|
+
onMounted(() => {
|
|
25
|
+
scrollToBottom();
|
|
26
|
+
});
|
|
20
27
|
const scrollToBottom = async () => {
|
|
21
|
-
if (
|
|
28
|
+
if (conversationContainerRef.value && !isUserScrolling.value) {
|
|
22
29
|
await nextTick();
|
|
23
|
-
|
|
30
|
+
conversationContainerRef.value.scrollTop = conversationContainerRef.value.scrollHeight;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const handleScroll = () => {
|
|
34
|
+
if (conversationContainerRef.value) {
|
|
35
|
+
const isAtBottom = conversationContainerRef.value.scrollTop + conversationContainerRef.value.clientHeight >= conversationContainerRef.value.scrollHeight - 5;
|
|
36
|
+
if (isAtBottom) {
|
|
37
|
+
isUserScrolling.value = false;
|
|
38
|
+
scrollToBottom();
|
|
39
|
+
} else {
|
|
40
|
+
isUserScrolling.value = true;
|
|
41
|
+
}
|
|
24
42
|
}
|
|
25
43
|
};
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
let
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
44
|
+
const transcribedMessageList = computed(() => {
|
|
45
|
+
const aggregatedMessageList = [];
|
|
46
|
+
let currentAggregatedMessage = null;
|
|
47
|
+
for (const message of rawTranscribedMessageList.value) {
|
|
48
|
+
if (!currentAggregatedMessage || message.sender !== currentAggregatedMessage.sender || message.startMsTs - currentAggregatedMessage.startMsTs > timeInterval) {
|
|
49
|
+
currentAggregatedMessage = {
|
|
50
|
+
messages: [message],
|
|
51
|
+
sender: message.sender,
|
|
52
|
+
startMsTs: message.startMsTs
|
|
53
|
+
};
|
|
54
|
+
aggregatedMessageList.push(currentAggregatedMessage);
|
|
36
55
|
} else {
|
|
37
|
-
|
|
38
|
-
result.push({
|
|
39
|
-
timestamp: currentTimestamp,
|
|
40
|
-
speaker: currentSpeaker,
|
|
41
|
-
messages: currentMessages
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
currentSpeaker = item.speaker;
|
|
45
|
-
currentTimestamp = timestampMinute;
|
|
46
|
-
currentMessages = [item.content];
|
|
56
|
+
currentAggregatedMessage.messages.push(message);
|
|
47
57
|
}
|
|
48
|
-
});
|
|
49
|
-
if (currentSpeaker !== null) {
|
|
50
|
-
result.push({
|
|
51
|
-
timestamp: currentTimestamp,
|
|
52
|
-
speaker: currentSpeaker,
|
|
53
|
-
messages: currentMessages
|
|
54
|
-
});
|
|
55
58
|
}
|
|
56
|
-
return
|
|
59
|
+
return aggregatedMessageList;
|
|
57
60
|
});
|
|
58
|
-
|
|
61
|
+
watch(rawTranscribedMessageList, () => {
|
|
62
|
+
scrollToBottom();
|
|
63
|
+
});
|
|
64
|
+
const handleAITranscriptionTask = async (data) => {
|
|
59
65
|
if (!data) return;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
rawTranscribedMessageList.value = [...data.transcribedMessageList];
|
|
67
|
+
};
|
|
68
|
+
onMounted(() => {
|
|
69
|
+
roomService.dataReportManager.reportCount(MetricsKey.AITask);
|
|
70
|
+
roomService.aiTask.on(AI_TASK.TRANSCRIPTION_TASK, handleAITranscriptionTask);
|
|
71
|
+
});
|
|
72
|
+
onUnmounted(() => {
|
|
73
|
+
roomService.aiTask.off(AI_TASK.TRANSCRIPTION_TASK, handleAITranscriptionTask);
|
|
63
74
|
});
|
|
64
|
-
function processConversation(data) {
|
|
65
|
-
const pattern = /(\d{2}:\d{2}:\d{2}->\d{2}:\d{2}:\d{2})\s+([\u4e00-\u9fa5\w]+):\s*(.*)/;
|
|
66
|
-
const conversations2 = [];
|
|
67
|
-
const lines = data.split("\n");
|
|
68
|
-
lines.forEach((line) => {
|
|
69
|
-
const match = pattern.exec(line);
|
|
70
|
-
if (match) {
|
|
71
|
-
const timestamp = match[1];
|
|
72
|
-
const speaker = match[2];
|
|
73
|
-
const content = match[3];
|
|
74
|
-
conversations2.push({
|
|
75
|
-
timestamp,
|
|
76
|
-
speaker,
|
|
77
|
-
content
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
conversations2.sort((a, b) => {
|
|
82
|
-
const timeA = a.timestamp.split("->")[0];
|
|
83
|
-
const timeB = b.timestamp.split("->")[0];
|
|
84
|
-
return timeA.localeCompare(timeB);
|
|
85
|
-
});
|
|
86
|
-
return conversations2;
|
|
87
|
-
}
|
|
88
75
|
return (_ctx, _cache) => {
|
|
89
76
|
return openBlock(), createElementBlock("div", {
|
|
90
77
|
class: "conversation",
|
|
91
|
-
ref_key: "
|
|
92
|
-
ref:
|
|
78
|
+
ref_key: "conversationContainerRef",
|
|
79
|
+
ref: conversationContainerRef,
|
|
80
|
+
onScroll: handleScroll
|
|
93
81
|
}, [
|
|
94
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
82
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(transcribedMessageList.value, (group) => {
|
|
95
83
|
return openBlock(), createElementBlock("div", {
|
|
96
|
-
key:
|
|
97
|
-
class: "conversation-
|
|
84
|
+
key: group.startMsTs,
|
|
85
|
+
class: "conversation-group"
|
|
98
86
|
}, [
|
|
99
87
|
createElementVNode("div", _hoisted_1, [
|
|
100
|
-
createElementVNode("span", _hoisted_2, toDisplayString(
|
|
101
|
-
createElementVNode("span", _hoisted_3, toDisplayString(
|
|
88
|
+
createElementVNode("span", _hoisted_2, toDisplayString(unref(roomService).roomStore.getDisplayName(group.sender)), 1),
|
|
89
|
+
createElementVNode("span", _hoisted_3, toDisplayString(unref(formatTimestampToTime)(group.startMsTs)), 1)
|
|
102
90
|
]),
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
91
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(group.messages, (message, messageIndex) => {
|
|
92
|
+
return openBlock(), createElementBlock("div", {
|
|
93
|
+
key: messageIndex,
|
|
94
|
+
class: "content"
|
|
95
|
+
}, toDisplayString(message.text), 1);
|
|
96
|
+
}), 128))
|
|
108
97
|
]);
|
|
109
98
|
}), 128))
|
|
110
|
-
],
|
|
99
|
+
], 544);
|
|
111
100
|
};
|
|
112
101
|
}
|
|
113
102
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./index.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const MemberControl = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const MemberControl = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7b4cb2fa"]]);
|
|
5
5
|
export {
|
|
6
6
|
MemberControl as default
|
|
7
7
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, computed, ref, watch, openBlock, createElementBlock,
|
|
1
|
+
import { defineComponent, computed, ref, watch, openBlock, createElementBlock, createBlock, withCtx, createTextVNode, toDisplayString, createCommentVNode, createElementVNode, createVNode, unref, normalizeClass, withDirectives, Fragment, renderList, vShow, isRef, nextTick } from "vue";
|
|
2
2
|
import { useI18n } from "../../../locales/index.mjs";
|
|
3
3
|
import TuiButton from "../../common/base/Button.vue.mjs";
|
|
4
4
|
import Dialog from "../../common/base/Dialog/index.vue.mjs";
|
|
@@ -29,9 +29,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
29
29
|
tempUserName
|
|
30
30
|
} = useMemberControl(props);
|
|
31
31
|
const { isCanOperateMySelf } = useMemberItem(props.userInfo);
|
|
32
|
-
const singleControl = computed(() =>
|
|
32
|
+
const singleControl = computed(() => {
|
|
33
|
+
return isCanOperateMySelf.value ? null : controlList.value[0];
|
|
34
|
+
});
|
|
33
35
|
const moreControlList = computed(() => {
|
|
34
|
-
return isCanOperateMySelf ? controlList.value : controlList.value.slice(1);
|
|
36
|
+
return isCanOperateMySelf.value ? controlList.value : controlList.value.slice(1);
|
|
35
37
|
});
|
|
36
38
|
const dropdownClass = ref("down");
|
|
37
39
|
const moreBtnRef = ref();
|
|
@@ -80,7 +82,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
80
82
|
}
|
|
81
83
|
return (_ctx, _cache) => {
|
|
82
84
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
83
|
-
|
|
85
|
+
singleControl.value ? (openBlock(), createBlock(TuiButton, {
|
|
84
86
|
key: 0,
|
|
85
87
|
class: "button",
|
|
86
88
|
size: "default",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./MemberInfo.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const MemberInfo = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const MemberInfo = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8d1bfc30"]]);
|
|
5
5
|
export {
|
|
6
6
|
MemberInfo as default
|
|
7
7
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./BasicBeauty.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const BasicBeauty = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const BasicBeauty = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2e9e258c"]]);
|
|
5
5
|
export {
|
|
6
6
|
BasicBeauty as default
|
|
7
7
|
};
|
|
@@ -10,7 +10,9 @@ import { TRTCVideoMirrorType, TRTCVideoRotation, TRTCVideoFillMode } from "@tenc
|
|
|
10
10
|
import "mitt";
|
|
11
11
|
import "../../services/manager/roomActionManager.mjs";
|
|
12
12
|
import "@tencentcloud/tui-core";
|
|
13
|
+
import { MetricsKey } from "../../services/manager/dataReportManager.mjs";
|
|
13
14
|
import { isMobile } from "../../utils/environment.mjs";
|
|
15
|
+
import { throttle } from "../../utils/utils.mjs";
|
|
14
16
|
import Dialog from "../common/base/Dialog/index.vue.mjs";
|
|
15
17
|
import TuiButton from "../common/base/Button.vue.mjs";
|
|
16
18
|
import Slider from "../common/base/Slider.vue.mjs";
|
|
@@ -23,7 +25,6 @@ import CompareIcon from "../common/icons/CompareIcon.vue.mjs";
|
|
|
23
25
|
import useGetRoomEngine from "../../hooks/useRoomEngine.mjs";
|
|
24
26
|
import { useBasicStore } from "../../stores/basic.mjs";
|
|
25
27
|
import { TRTCBeautyStyle } from "../../constants/room.mjs";
|
|
26
|
-
import { throttle } from "../../utils/utils.mjs";
|
|
27
28
|
const _hoisted_1 = {
|
|
28
29
|
key: 0,
|
|
29
30
|
class: "basicBeauty-control-container"
|
|
@@ -114,6 +115,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
114
115
|
view: "test-preview"
|
|
115
116
|
}));
|
|
116
117
|
isLoading.value = false;
|
|
118
|
+
roomService.dataReportManager.reportCount(MetricsKey.setBasicBeauty);
|
|
117
119
|
};
|
|
118
120
|
const closeBeautySettingPanel = async () => {
|
|
119
121
|
var _a;
|
|
@@ -12,6 +12,7 @@ import "@tencentcloud/tuiroom-engine-electron";
|
|
|
12
12
|
import "mitt";
|
|
13
13
|
import "../../services/manager/roomActionManager.mjs";
|
|
14
14
|
import "@tencentcloud/tui-core";
|
|
15
|
+
import { MetricsKey } from "../../services/manager/dataReportManager.mjs";
|
|
15
16
|
import "../../utils/environment.mjs";
|
|
16
17
|
const _hoisted_1 = {
|
|
17
18
|
key: 0,
|
|
@@ -34,6 +35,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
34
35
|
basicStore.setSidebarOpenStatus(true);
|
|
35
36
|
basicStore.setSidebarName("chat");
|
|
36
37
|
chatStore.updateUnReadCount(0);
|
|
38
|
+
roomService.dataReportManager.reportCount(MetricsKey.openChat);
|
|
37
39
|
}
|
|
38
40
|
return (_ctx, _cache) => {
|
|
39
41
|
return unref(chatControlConfig).visible ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
@@ -25,8 +25,8 @@ import "mitt";
|
|
|
25
25
|
import "../../../services/manager/roomActionManager.mjs";
|
|
26
26
|
import "@tencentcloud/tui-core";
|
|
27
27
|
import "../../../utils/environment.mjs";
|
|
28
|
-
import { PASSWORD_MAX_LENGTH_LIMIT } from "../../../constants/room.mjs";
|
|
29
28
|
import { deepClone, calculateByteLength } from "../../../utils/utils.mjs";
|
|
29
|
+
import { PASSWORD_MAX_LENGTH_LIMIT } from "../../../constants/room.mjs";
|
|
30
30
|
import { invalidDigitalPasswordRegex } from "../../../utils/common.mjs";
|
|
31
31
|
import { getDateAndTime, convertToTimestamp, calculateEndTime } from "../scheduleUtils.mjs";
|
|
32
32
|
import SvgIcon from "../../common/base/SvgIcon.vue.mjs";
|
|
@@ -8,6 +8,7 @@ import "mitt";
|
|
|
8
8
|
import "../../services/manager/roomActionManager.mjs";
|
|
9
9
|
import "@tencentcloud/tui-core";
|
|
10
10
|
import { isMobile } from "../../utils/environment.mjs";
|
|
11
|
+
import { convertSecondsToHMS, getUrlWithRoomId } from "../../utils/utils.mjs";
|
|
11
12
|
import useRoomInfo from "../RoomHeader/RoomInfo/useRoomInfoHooks.mjs";
|
|
12
13
|
import SvgIcon from "../common/base/SvgIcon.vue.mjs";
|
|
13
14
|
import Dialog from "../common/base/Dialog/index.vue.mjs";
|
|
@@ -20,7 +21,6 @@ import WarningIcon from "../common/icons/WarningIcon.vue.mjs";
|
|
|
20
21
|
import TuiButton from "../common/base/Button.vue.mjs";
|
|
21
22
|
import vClickOutside from "../../directives/vClickOutside.mjs";
|
|
22
23
|
import ScheduleConferencePanel from "./ScheduleConferencePanel/index.vue.mjs";
|
|
23
|
-
import { convertSecondsToHMS, getUrlWithRoomId } from "../../utils/utils.mjs";
|
|
24
24
|
import { useBasicStore } from "../../stores/basic.mjs";
|
|
25
25
|
import { storeToRefs } from "pinia";
|
|
26
26
|
import ConferenceDetail from "./ConferenceDetail.vue.mjs";
|
|
@@ -8,12 +8,12 @@ import "mitt";
|
|
|
8
8
|
import "../../services/manager/roomActionManager.mjs";
|
|
9
9
|
import "@tencentcloud/tui-core";
|
|
10
10
|
import { isMobile } from "../../utils/environment.mjs";
|
|
11
|
+
import { objectMerge } from "../../utils/utils.mjs";
|
|
11
12
|
import SvgIcon from "../common/base/SvgIcon.vue.mjs";
|
|
12
13
|
import CalendarIcon from "../common/icons/CalendarIcon.vue.mjs";
|
|
13
14
|
import ApplyStageLabelIcon from "../common/icons/ApplyStageLabelIcon.vue.mjs";
|
|
14
15
|
import ScheduleRoomControl from "./ScheduleRoomControl.vue.mjs";
|
|
15
16
|
import LoadingScheduleIcon from "../common/icons/LoadingScheduleIcon.vue.mjs";
|
|
16
|
-
import { objectMerge } from "../../utils/utils.mjs";
|
|
17
17
|
const _hoisted_1 = {
|
|
18
18
|
key: 0,
|
|
19
19
|
class: "schedule-loading"
|