@ndscnj/roomkit-web-vue3 25.12.2410 → 25.12.2411
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/RoomFooter/index/indexPC.vue.mjs +1 -1
- package/es/components/RoomFooter/index/indexPC.vue2.mjs +2 -2
- package/es/components/RoomFooter/{voteControl.vue.d.ts → voteControl/VoteControlH5.vue.d.ts} +2 -2
- package/es/components/RoomFooter/voteControl/VoteControlH5.vue.mjs +7 -0
- package/es/components/RoomFooter/voteControl/VoteControlH5.vue2.mjs +105 -0
- package/es/components/RoomFooter/voteControl/VoteControlPC.vue.d.ts +2 -0
- package/es/components/RoomFooter/voteControl/VoteControlPC.vue.mjs +49 -0
- package/es/components/RoomFooter/voteControl/VoteControlPC.vue2.mjs +4 -0
- package/es/components/RoomFooter/voteControl/index.d.ts +6 -0
- package/es/components/RoomFooter/voteControl/index.mjs +7 -0
- package/es/components/RoomFooter/voteControl/useMoreControlHooks.mjs +22 -0
- package/es/constants/icon.d.ts +2 -0
- package/es/constants/icon.mjs +2 -0
- package/es/index.mjs +44 -16
- package/lib/components/RoomFooter/index/indexPC.vue.js +1 -1
- package/lib/components/RoomFooter/index/indexPC.vue2.js +6 -6
- package/lib/components/RoomFooter/{voteControl.vue.d.ts → voteControl/VoteControlH5.vue.d.ts} +2 -2
- package/lib/components/RoomFooter/voteControl/VoteControlH5.vue.js +7 -0
- package/lib/components/RoomFooter/voteControl/VoteControlH5.vue2.js +105 -0
- package/lib/components/RoomFooter/voteControl/VoteControlPC.vue.d.ts +2 -0
- package/lib/components/RoomFooter/voteControl/VoteControlPC.vue.js +49 -0
- package/lib/components/RoomFooter/voteControl/VoteControlPC.vue2.js +4 -0
- package/lib/components/RoomFooter/voteControl/index.d.ts +6 -0
- package/lib/components/RoomFooter/voteControl/index.js +7 -0
- package/lib/components/RoomFooter/voteControl/useMoreControlHooks.js +22 -0
- package/lib/constants/icon.d.ts +2 -0
- package/lib/constants/icon.js +2 -0
- package/lib/index.js +44 -16
- package/package.json +1 -1
- package/src/TUIRoom/components/RoomFooter/index/indexPC.vue +1 -1
- package/src/TUIRoom/components/RoomFooter/voteControl/VoteControlH5.vue +122 -0
- package/src/TUIRoom/components/RoomFooter/voteControl/VoteControlPC.vue +31 -0
- package/src/TUIRoom/components/RoomFooter/voteControl/index.ts +8 -0
- package/src/TUIRoom/components/RoomFooter/voteControl/useMoreControlHooks.ts +23 -0
- package/src/TUIRoom/components/RoomFooter/voteControl.vue +5 -4
- package/src/TUIRoom/constants/icon.ts +2 -0
- package/es/components/RoomFooter/voteControl.vue.mjs +0 -7
- package/es/components/RoomFooter/voteControl.vue2.mjs +0 -52
- package/lib/components/RoomFooter/voteControl.vue.js +0 -7
- package/lib/components/RoomFooter/voteControl.vue2.js +0 -52
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./indexPC.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const indexPc = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const indexPc = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3a373c3a"]]);
|
|
5
5
|
export {
|
|
6
6
|
indexPc as default
|
|
7
7
|
};
|
|
@@ -65,7 +65,7 @@ import VirtualBackground from "../VirtualBackground.vue.mjs";
|
|
|
65
65
|
import AIControl from "../AIControl.vue.mjs";
|
|
66
66
|
import BasicBeauty from "../BasicBeauty.vue.mjs";
|
|
67
67
|
import bus from "../../../hooks/useMitt.mjs";
|
|
68
|
-
import
|
|
68
|
+
import VoteControl from "../voteControl/index.mjs";
|
|
69
69
|
import useRoomFooter from "./useRoomFooterHooks.mjs";
|
|
70
70
|
const _hoisted_1 = { class: "footer-container" };
|
|
71
71
|
const _hoisted_2 = { class: "left-container" };
|
|
@@ -137,7 +137,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
137
137
|
class: "center-container-item",
|
|
138
138
|
onClick: _cache[9] || (_cache[9] = ($event) => handleControlClick("MasterApplyControl"))
|
|
139
139
|
})) : createCommentVNode("", true),
|
|
140
|
-
createVNode(
|
|
140
|
+
createVNode(unref(VoteControl), {
|
|
141
141
|
class: "center-container-item",
|
|
142
142
|
onClick: _cache[10] || (_cache[10] = ($event) => handleControlClick("voteControl")),
|
|
143
143
|
onOnVote: onVote
|
package/es/components/RoomFooter/{voteControl.vue.d.ts → voteControl/VoteControlH5.vue.d.ts}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
2
|
-
"
|
|
2
|
+
"show-overlay": (...args: any[]) => void;
|
|
3
3
|
}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
|
|
4
|
-
"
|
|
4
|
+
"onShow-overlay"?: ((...args: any[]) => any) | undefined;
|
|
5
5
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
6
6
|
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import _sfc_main from "./VoteControlH5.vue2.mjs";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
+
const VoteControlH5 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4fb119e2"]]);
|
|
5
|
+
export {
|
|
6
|
+
VoteControlH5 as default
|
|
7
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { defineComponent, ref, onMounted, onUnmounted, createElementBlock, openBlock, createCommentVNode, unref, withDirectives, createBlock, withCtx, createVNode, createElementVNode, createTextVNode, toDisplayString } from "vue";
|
|
2
|
+
import { IconExtension } from "@tencentcloud/uikit-base-component-vue3";
|
|
3
|
+
import IconButton from "../../common/base/IconButton.vue.mjs";
|
|
4
|
+
import useControl from "./useMoreControlHooks.mjs";
|
|
5
|
+
import _sfc_main$1 from "../ChatControl.vue.mjs";
|
|
6
|
+
import InviteControl from "../InviteControl.vue.mjs";
|
|
7
|
+
import ContactControl from "../ContactControl.vue.mjs";
|
|
8
|
+
import { useRoomStore } from "../../../stores/room.mjs";
|
|
9
|
+
import bus from "../../../hooks/useMitt.mjs";
|
|
10
|
+
import vTap from "../../../directives/vTap.mjs";
|
|
11
|
+
import "../../../services/main.mjs";
|
|
12
|
+
import { roomService } from "../../../services/roomService.mjs";
|
|
13
|
+
import "../../../locales/index.mjs";
|
|
14
|
+
import "@tencentcloud/tuiroom-engine-js";
|
|
15
|
+
import "../../../utils/environment.mjs";
|
|
16
|
+
import "mitt";
|
|
17
|
+
import "../../../services/manager/roomActionManager.mjs";
|
|
18
|
+
import "@tencentcloud/tui-core";
|
|
19
|
+
const _hoisted_1 = {
|
|
20
|
+
key: 0,
|
|
21
|
+
class: "more-control-container"
|
|
22
|
+
};
|
|
23
|
+
const _hoisted_2 = { class: "control-compent" };
|
|
24
|
+
const _hoisted_3 = { class: "close" };
|
|
25
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
26
|
+
__name: "VoteControlH5",
|
|
27
|
+
emits: ["show-overlay"],
|
|
28
|
+
setup(__props, { emit: __emit }) {
|
|
29
|
+
const moreControlConfig = roomService.getComponentConfig("MoreControl");
|
|
30
|
+
const showMoreContent = ref(false);
|
|
31
|
+
const moreContentRef = ref();
|
|
32
|
+
const { t, sidebarName } = useControl();
|
|
33
|
+
const roomStore = useRoomStore();
|
|
34
|
+
const emit = __emit;
|
|
35
|
+
function showMore() {
|
|
36
|
+
showMoreContent.value = true;
|
|
37
|
+
}
|
|
38
|
+
function handleCancelControl() {
|
|
39
|
+
showMoreContent.value = false;
|
|
40
|
+
}
|
|
41
|
+
function handleControlClick(name) {
|
|
42
|
+
bus.emit("experience-communication", name);
|
|
43
|
+
}
|
|
44
|
+
function handleShowOverlay(data) {
|
|
45
|
+
showMoreContent.value = false;
|
|
46
|
+
emit("show-overlay", data);
|
|
47
|
+
}
|
|
48
|
+
function handleDocumentClick(event) {
|
|
49
|
+
if (showMoreContent.value && !moreContentRef.value.contains(event.target)) {
|
|
50
|
+
showMoreContent.value = false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
onMounted(() => {
|
|
54
|
+
document == null ? void 0 : document.addEventListener("click", handleDocumentClick, true);
|
|
55
|
+
});
|
|
56
|
+
onUnmounted(() => {
|
|
57
|
+
document == null ? void 0 : document.removeEventListener("click", handleDocumentClick, true);
|
|
58
|
+
});
|
|
59
|
+
return (_ctx, _cache) => {
|
|
60
|
+
return openBlock(), createElementBlock("div", null, [
|
|
61
|
+
unref(moreControlConfig).visible ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
62
|
+
withDirectives((openBlock(), createBlock(IconButton, {
|
|
63
|
+
"is-active": unref(sidebarName) === "more",
|
|
64
|
+
title: unref(t)("More")
|
|
65
|
+
}, {
|
|
66
|
+
default: withCtx(() => [
|
|
67
|
+
createVNode(unref(IconExtension), { size: "24" })
|
|
68
|
+
]),
|
|
69
|
+
_: 1
|
|
70
|
+
}, 8, ["is-active", "title"])), [
|
|
71
|
+
[unref(vTap), showMore]
|
|
72
|
+
])
|
|
73
|
+
])) : createCommentVNode("", true),
|
|
74
|
+
showMoreContent.value ? (openBlock(), createElementBlock("div", {
|
|
75
|
+
key: 1,
|
|
76
|
+
ref_key: "moreContentRef",
|
|
77
|
+
ref: moreContentRef,
|
|
78
|
+
class: "show-more-content"
|
|
79
|
+
}, [
|
|
80
|
+
createElementVNode("div", _hoisted_2, [
|
|
81
|
+
unref(roomStore).isSpeakAfterTakingSeatMode ? (openBlock(), createBlock(_sfc_main$1, {
|
|
82
|
+
key: 0,
|
|
83
|
+
onClick: _cache[0] || (_cache[0] = ($event) => handleControlClick("chatControl"))
|
|
84
|
+
})) : createCommentVNode("", true),
|
|
85
|
+
createVNode(ContactControl, {
|
|
86
|
+
onClick: _cache[1] || (_cache[1] = ($event) => handleControlClick("contactControl"))
|
|
87
|
+
}),
|
|
88
|
+
createVNode(InviteControl, {
|
|
89
|
+
onShowOverlay: handleShowOverlay,
|
|
90
|
+
onClick: _cache[2] || (_cache[2] = ($event) => handleControlClick("inviteControl"))
|
|
91
|
+
})
|
|
92
|
+
]),
|
|
93
|
+
withDirectives((openBlock(), createElementBlock("div", _hoisted_3, [
|
|
94
|
+
createTextVNode(toDisplayString(unref(t)("Cancel")), 1)
|
|
95
|
+
])), [
|
|
96
|
+
[unref(vTap), handleCancelControl]
|
|
97
|
+
])
|
|
98
|
+
], 512)) : createCommentVNode("", true)
|
|
99
|
+
]);
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
export {
|
|
104
|
+
_sfc_main as default
|
|
105
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { defineComponent, createElementBlock, createCommentVNode, unref, openBlock, createVNode, withCtx } from "vue";
|
|
2
|
+
import { IconMore } from "@tencentcloud/uikit-base-component-vue3";
|
|
3
|
+
import IconButton from "../../common/base/IconButton.vue.mjs";
|
|
4
|
+
import useControl from "./useMoreControlHooks.mjs";
|
|
5
|
+
import "../../../services/main.mjs";
|
|
6
|
+
import { roomService } from "../../../services/roomService.mjs";
|
|
7
|
+
import "../../../locales/index.mjs";
|
|
8
|
+
import "@tencentcloud/tuiroom-engine-js";
|
|
9
|
+
import "../../../utils/environment.mjs";
|
|
10
|
+
import "mitt";
|
|
11
|
+
import "../../../services/manager/roomActionManager.mjs";
|
|
12
|
+
import "@tencentcloud/tui-core";
|
|
13
|
+
const _hoisted_1 = {
|
|
14
|
+
key: 0,
|
|
15
|
+
class: "vote-control-container"
|
|
16
|
+
};
|
|
17
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
18
|
+
__name: "VoteControlPC",
|
|
19
|
+
setup(__props) {
|
|
20
|
+
const moreControlConfig = roomService.getComponentConfig("VoteControl");
|
|
21
|
+
const { t, basicStore, sidebarName } = useControl();
|
|
22
|
+
function toggleMoreSidebar() {
|
|
23
|
+
if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === "vote") {
|
|
24
|
+
basicStore.setSidebarOpenStatus(false);
|
|
25
|
+
basicStore.setSidebarName("");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
basicStore.setSidebarOpenStatus(true);
|
|
29
|
+
basicStore.setSidebarName("vote");
|
|
30
|
+
}
|
|
31
|
+
return (_ctx, _cache) => {
|
|
32
|
+
return unref(moreControlConfig).visible ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
33
|
+
createVNode(IconButton, {
|
|
34
|
+
"is-active": unref(sidebarName) === "vote",
|
|
35
|
+
title: unref(t)("Vote"),
|
|
36
|
+
onClickIcon: toggleMoreSidebar
|
|
37
|
+
}, {
|
|
38
|
+
default: withCtx(() => [
|
|
39
|
+
createVNode(unref(IconMore), { size: "24" })
|
|
40
|
+
]),
|
|
41
|
+
_: 1
|
|
42
|
+
}, 8, ["is-active", "title"])
|
|
43
|
+
])) : createCommentVNode("", true);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
export {
|
|
48
|
+
_sfc_main as default
|
|
49
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const VoteControl: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
2
|
+
"show-overlay": (...args: any[]) => void;
|
|
3
|
+
}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
|
|
4
|
+
"onShow-overlay"?: ((...args: any[]) => any) | undefined;
|
|
5
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any> | import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
export default VoteControl;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { computed } from "vue";
|
|
2
|
+
import { useBasicStore } from "../../../stores/basic.mjs";
|
|
3
|
+
import { storeToRefs } from "pinia";
|
|
4
|
+
import { useI18n } from "../../../locales/index.mjs";
|
|
5
|
+
import { ICON_NAME } from "../../../constants/icon.mjs";
|
|
6
|
+
function useControl() {
|
|
7
|
+
const { t } = useI18n();
|
|
8
|
+
const basicStore = useBasicStore();
|
|
9
|
+
const { sidebarName } = storeToRefs(basicStore);
|
|
10
|
+
const iconName = computed(
|
|
11
|
+
() => sidebarName.value === "more" ? ICON_NAME.MoreActive : ICON_NAME.More
|
|
12
|
+
);
|
|
13
|
+
return {
|
|
14
|
+
t,
|
|
15
|
+
basicStore,
|
|
16
|
+
iconName,
|
|
17
|
+
sidebarName
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
useControl as default
|
|
22
|
+
};
|
package/es/constants/icon.d.ts
CHANGED
package/es/constants/icon.mjs
CHANGED
|
@@ -20,6 +20,8 @@ var ICON_NAME = /* @__PURE__ */ ((ICON_NAME2) => {
|
|
|
20
20
|
ICON_NAME2["ManageMember"] = "manage-member";
|
|
21
21
|
ICON_NAME2["More"] = "more";
|
|
22
22
|
ICON_NAME2["MoreActive"] = "more-active";
|
|
23
|
+
ICON_NAME2["Vote"] = "vote";
|
|
24
|
+
ICON_NAME2["VoteActive"] = "vote-active";
|
|
23
25
|
ICON_NAME2["SettingActive"] = "setting-active";
|
|
24
26
|
ICON_NAME2["Setting"] = "setting";
|
|
25
27
|
ICON_NAME2["LineArrowUp"] = "line-arrow-up";
|
package/es/index.mjs
CHANGED
|
@@ -3928,17 +3928,45 @@ to {
|
|
|
3928
3928
|
}
|
|
3929
3929
|
.footer .mirror-container .mirror-text[data-v-21a63691] {
|
|
3930
3930
|
margin-left: 4px;
|
|
3931
|
-
}.
|
|
3932
|
-
position:
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3931
|
+
}.show-more-content[data-v-4fb119e2] {
|
|
3932
|
+
position: absolute;
|
|
3933
|
+
bottom: 15px;
|
|
3934
|
+
left: 5%;
|
|
3935
|
+
width: 90%;
|
|
3936
|
+
height: 17vh;
|
|
3937
|
+
padding: 10px;
|
|
3938
|
+
border-radius: 13px;
|
|
3939
|
+
animation-name: popup-4fb119e2;
|
|
3940
|
+
animation-duration: 200ms;
|
|
3941
|
+
background-color: var(--bg-color-operate);
|
|
3942
|
+
}
|
|
3943
|
+
@keyframes popup-4fb119e2 {
|
|
3944
|
+
from {
|
|
3945
|
+
bottom: 0;
|
|
3946
|
+
}
|
|
3947
|
+
to {
|
|
3948
|
+
bottom: 15px;
|
|
3949
|
+
}
|
|
3950
|
+
}
|
|
3951
|
+
.control-compent[data-v-4fb119e2] {
|
|
3952
|
+
display: flex;
|
|
3953
|
+
}
|
|
3954
|
+
.close[data-v-4fb119e2] {
|
|
3955
|
+
position: relative;
|
|
3956
|
+
top: 10%;
|
|
3957
|
+
display: flex;
|
|
3958
|
+
align-items: center;
|
|
3959
|
+
justify-content: center;
|
|
3960
|
+
width: 100%;
|
|
3961
|
+
padding: 10px;
|
|
3962
|
+
font-style: normal;
|
|
3963
|
+
font-weight: 400;
|
|
3964
|
+
line-height: 24px;
|
|
3965
|
+
text-align: center;
|
|
3966
|
+
border-radius: 8px;
|
|
3967
|
+
color: var(--text-color-primary);
|
|
3968
|
+
background-color: var(--button-color-secondary-default);
|
|
3969
|
+
}.footer-container[data-v-3a373c3a] {
|
|
3942
3970
|
position: absolute;
|
|
3943
3971
|
bottom: 0;
|
|
3944
3972
|
display: flex;
|
|
@@ -3952,25 +3980,25 @@ to {
|
|
|
3952
3980
|
background-color: var(--bg-color-topbar);
|
|
3953
3981
|
box-shadow: 0 -8px 30px var(--uikit-color-black-8);
|
|
3954
3982
|
}
|
|
3955
|
-
.footer-container .left-container[data-v-
|
|
3983
|
+
.footer-container .left-container[data-v-3a373c3a] {
|
|
3956
3984
|
display: flex;
|
|
3957
3985
|
align-items: center;
|
|
3958
3986
|
height: 100%;
|
|
3959
3987
|
}
|
|
3960
|
-
.footer-container .left-container .left-container-item[data-v-
|
|
3988
|
+
.footer-container .left-container .left-container-item[data-v-3a373c3a]:not(:first-child) {
|
|
3961
3989
|
margin-left: 1rem;
|
|
3962
3990
|
}
|
|
3963
|
-
.footer-container .center-container[data-v-
|
|
3991
|
+
.footer-container .center-container[data-v-3a373c3a] {
|
|
3964
3992
|
position: relative;
|
|
3965
3993
|
display: flex;
|
|
3966
3994
|
align-items: center;
|
|
3967
3995
|
height: 100%;
|
|
3968
3996
|
margin: 0 auto;
|
|
3969
3997
|
}
|
|
3970
|
-
.footer-container .center-container .center-container-item[data-v-
|
|
3998
|
+
.footer-container .center-container .center-container-item[data-v-3a373c3a]:not(:first-child) {
|
|
3971
3999
|
margin-left: 16px;
|
|
3972
4000
|
}
|
|
3973
|
-
.footer-container .right-container[data-v-
|
|
4001
|
+
.footer-container .right-container[data-v-3a373c3a] {
|
|
3974
4002
|
display: flex;
|
|
3975
4003
|
align-items: center;
|
|
3976
4004
|
height: 100%;
|
|
@@ -3,5 +3,5 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const indexPC_vue_vue_type_script_setup_true_lang = require("./indexPC.vue2.js");
|
|
4
4
|
;/* empty css */
|
|
5
5
|
const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.js");
|
|
6
|
-
const indexPc = /* @__PURE__ */ _pluginVue_exportHelper.default(indexPC_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-
|
|
6
|
+
const indexPc = /* @__PURE__ */ _pluginVue_exportHelper.default(indexPC_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-3a373c3a"]]);
|
|
7
7
|
exports.default = indexPc;
|
|
@@ -59,15 +59,15 @@ const ManageMemberControl_vue_vue_type_script_setup_true_lang = require("../Mana
|
|
|
59
59
|
const ChatControl_vue_vue_type_script_setup_true_lang = require("../ChatControl.vue.js");
|
|
60
60
|
const ManageStageControl_vue_vue_type_script_setup_true_lang = require("../ManageStageControl.vue.js");
|
|
61
61
|
const MemberApplyControl = require("../ApplyControl/MemberApplyControl.vue.js");
|
|
62
|
-
const index$
|
|
63
|
-
const index$
|
|
62
|
+
const index$2 = require("../MoreControl/index.js");
|
|
63
|
+
const index$3 = require("../EndControl/index.js");
|
|
64
64
|
const SettingControl_vue_vue_type_script_setup_true_lang = require("../SettingControl.vue.js");
|
|
65
65
|
const WhiteboardControl = require("../WhiteboardControl.vue.js");
|
|
66
66
|
const VirtualBackground = require("../VirtualBackground.vue.js");
|
|
67
67
|
const AIControl = require("../AIControl.vue.js");
|
|
68
68
|
const BasicBeauty = require("../BasicBeauty.vue.js");
|
|
69
69
|
const useMitt = require("../../../hooks/useMitt.js");
|
|
70
|
-
const
|
|
70
|
+
const index$1 = require("../voteControl/index.js");
|
|
71
71
|
const useRoomFooterHooks = require("./useRoomFooterHooks.js");
|
|
72
72
|
const _hoisted_1 = { class: "footer-container" };
|
|
73
73
|
const _hoisted_2 = { class: "left-container" };
|
|
@@ -139,7 +139,7 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
|
|
|
139
139
|
class: "center-container-item",
|
|
140
140
|
onClick: _cache[9] || (_cache[9] = ($event) => handleControlClick("MasterApplyControl"))
|
|
141
141
|
})) : Vue.createCommentVNode("", true),
|
|
142
|
-
Vue.createVNode(
|
|
142
|
+
Vue.createVNode(Vue.unref(index$1.default), {
|
|
143
143
|
class: "center-container-item",
|
|
144
144
|
onClick: _cache[10] || (_cache[10] = ($event) => handleControlClick("voteControl")),
|
|
145
145
|
onOnVote: onVote
|
|
@@ -149,7 +149,7 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
|
|
|
149
149
|
]),
|
|
150
150
|
_: 3
|
|
151
151
|
}),
|
|
152
|
-
Vue.createVNode(Vue.unref(index$
|
|
152
|
+
Vue.createVNode(Vue.unref(index$2.default), {
|
|
153
153
|
class: "center-container-item",
|
|
154
154
|
onClick: _cache[11] || (_cache[11] = ($event) => handleControlClick("moreControl"))
|
|
155
155
|
}),
|
|
@@ -168,7 +168,7 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
|
|
|
168
168
|
})) : Vue.createCommentVNode("", true)
|
|
169
169
|
]),
|
|
170
170
|
Vue.createElementVNode("div", _hoisted_4, [
|
|
171
|
-
Vue.createVNode(Vue.unref(index$
|
|
171
|
+
Vue.createVNode(Vue.unref(index$3.default))
|
|
172
172
|
])
|
|
173
173
|
]);
|
|
174
174
|
};
|
package/lib/components/RoomFooter/{voteControl.vue.d.ts → voteControl/VoteControlH5.vue.d.ts}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
2
|
-
"
|
|
2
|
+
"show-overlay": (...args: any[]) => void;
|
|
3
3
|
}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
|
|
4
|
-
"
|
|
4
|
+
"onShow-overlay"?: ((...args: any[]) => any) | undefined;
|
|
5
5
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
6
6
|
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const VoteControlH5_vue_vue_type_script_setup_true_lang = require("./VoteControlH5.vue2.js");
|
|
4
|
+
;/* empty css */
|
|
5
|
+
const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.js");
|
|
6
|
+
const VoteControlH5 = /* @__PURE__ */ _pluginVue_exportHelper.default(VoteControlH5_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-4fb119e2"]]);
|
|
7
|
+
exports.default = VoteControlH5;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const Vue = require("vue");
|
|
4
|
+
const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3");
|
|
5
|
+
const IconButton = require("../../common/base/IconButton.vue.js");
|
|
6
|
+
const useMoreControlHooks = require("./useMoreControlHooks.js");
|
|
7
|
+
const ChatControl_vue_vue_type_script_setup_true_lang = require("../ChatControl.vue.js");
|
|
8
|
+
const InviteControl = require("../InviteControl.vue.js");
|
|
9
|
+
const ContactControl = require("../ContactControl.vue.js");
|
|
10
|
+
const room = require("../../../stores/room.js");
|
|
11
|
+
const useMitt = require("../../../hooks/useMitt.js");
|
|
12
|
+
const vTap = require("../../../directives/vTap.js");
|
|
13
|
+
require("../../../services/main.js");
|
|
14
|
+
const roomService = require("../../../services/roomService.js");
|
|
15
|
+
require("../../../locales/index.js");
|
|
16
|
+
require("@tencentcloud/tuiroom-engine-js");
|
|
17
|
+
require("../../../utils/environment.js");
|
|
18
|
+
require("mitt");
|
|
19
|
+
require("../../../services/manager/roomActionManager.js");
|
|
20
|
+
require("@tencentcloud/tui-core");
|
|
21
|
+
const _hoisted_1 = {
|
|
22
|
+
key: 0,
|
|
23
|
+
class: "more-control-container"
|
|
24
|
+
};
|
|
25
|
+
const _hoisted_2 = { class: "control-compent" };
|
|
26
|
+
const _hoisted_3 = { class: "close" };
|
|
27
|
+
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
|
|
28
|
+
__name: "VoteControlH5",
|
|
29
|
+
emits: ["show-overlay"],
|
|
30
|
+
setup(__props, { emit: __emit }) {
|
|
31
|
+
const moreControlConfig = roomService.roomService.getComponentConfig("MoreControl");
|
|
32
|
+
const showMoreContent = Vue.ref(false);
|
|
33
|
+
const moreContentRef = Vue.ref();
|
|
34
|
+
const { t, sidebarName } = useMoreControlHooks.default();
|
|
35
|
+
const roomStore = room.useRoomStore();
|
|
36
|
+
const emit = __emit;
|
|
37
|
+
function showMore() {
|
|
38
|
+
showMoreContent.value = true;
|
|
39
|
+
}
|
|
40
|
+
function handleCancelControl() {
|
|
41
|
+
showMoreContent.value = false;
|
|
42
|
+
}
|
|
43
|
+
function handleControlClick(name) {
|
|
44
|
+
useMitt.default.emit("experience-communication", name);
|
|
45
|
+
}
|
|
46
|
+
function handleShowOverlay(data) {
|
|
47
|
+
showMoreContent.value = false;
|
|
48
|
+
emit("show-overlay", data);
|
|
49
|
+
}
|
|
50
|
+
function handleDocumentClick(event) {
|
|
51
|
+
if (showMoreContent.value && !moreContentRef.value.contains(event.target)) {
|
|
52
|
+
showMoreContent.value = false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
Vue.onMounted(() => {
|
|
56
|
+
document == null ? void 0 : document.addEventListener("click", handleDocumentClick, true);
|
|
57
|
+
});
|
|
58
|
+
Vue.onUnmounted(() => {
|
|
59
|
+
document == null ? void 0 : document.removeEventListener("click", handleDocumentClick, true);
|
|
60
|
+
});
|
|
61
|
+
return (_ctx, _cache) => {
|
|
62
|
+
return Vue.openBlock(), Vue.createElementBlock("div", null, [
|
|
63
|
+
Vue.unref(moreControlConfig).visible ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
|
|
64
|
+
Vue.withDirectives((Vue.openBlock(), Vue.createBlock(IconButton.default, {
|
|
65
|
+
"is-active": Vue.unref(sidebarName) === "more",
|
|
66
|
+
title: Vue.unref(t)("More")
|
|
67
|
+
}, {
|
|
68
|
+
default: Vue.withCtx(() => [
|
|
69
|
+
Vue.createVNode(Vue.unref(uikitBaseComponentVue3.IconExtension), { size: "24" })
|
|
70
|
+
]),
|
|
71
|
+
_: 1
|
|
72
|
+
}, 8, ["is-active", "title"])), [
|
|
73
|
+
[Vue.unref(vTap.default), showMore]
|
|
74
|
+
])
|
|
75
|
+
])) : Vue.createCommentVNode("", true),
|
|
76
|
+
showMoreContent.value ? (Vue.openBlock(), Vue.createElementBlock("div", {
|
|
77
|
+
key: 1,
|
|
78
|
+
ref_key: "moreContentRef",
|
|
79
|
+
ref: moreContentRef,
|
|
80
|
+
class: "show-more-content"
|
|
81
|
+
}, [
|
|
82
|
+
Vue.createElementVNode("div", _hoisted_2, [
|
|
83
|
+
Vue.unref(roomStore).isSpeakAfterTakingSeatMode ? (Vue.openBlock(), Vue.createBlock(ChatControl_vue_vue_type_script_setup_true_lang.default, {
|
|
84
|
+
key: 0,
|
|
85
|
+
onClick: _cache[0] || (_cache[0] = ($event) => handleControlClick("chatControl"))
|
|
86
|
+
})) : Vue.createCommentVNode("", true),
|
|
87
|
+
Vue.createVNode(ContactControl.default, {
|
|
88
|
+
onClick: _cache[1] || (_cache[1] = ($event) => handleControlClick("contactControl"))
|
|
89
|
+
}),
|
|
90
|
+
Vue.createVNode(InviteControl.default, {
|
|
91
|
+
onShowOverlay: handleShowOverlay,
|
|
92
|
+
onClick: _cache[2] || (_cache[2] = ($event) => handleControlClick("inviteControl"))
|
|
93
|
+
})
|
|
94
|
+
]),
|
|
95
|
+
Vue.withDirectives((Vue.openBlock(), Vue.createElementBlock("div", _hoisted_3, [
|
|
96
|
+
Vue.createTextVNode(Vue.toDisplayString(Vue.unref(t)("Cancel")), 1)
|
|
97
|
+
])), [
|
|
98
|
+
[Vue.unref(vTap.default), handleCancelControl]
|
|
99
|
+
])
|
|
100
|
+
], 512)) : Vue.createCommentVNode("", true)
|
|
101
|
+
]);
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
exports.default = _sfc_main;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const Vue = require("vue");
|
|
4
|
+
const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3");
|
|
5
|
+
const IconButton = require("../../common/base/IconButton.vue.js");
|
|
6
|
+
const useMoreControlHooks = require("./useMoreControlHooks.js");
|
|
7
|
+
require("../../../services/main.js");
|
|
8
|
+
const roomService = require("../../../services/roomService.js");
|
|
9
|
+
require("../../../locales/index.js");
|
|
10
|
+
require("@tencentcloud/tuiroom-engine-js");
|
|
11
|
+
require("../../../utils/environment.js");
|
|
12
|
+
require("mitt");
|
|
13
|
+
require("../../../services/manager/roomActionManager.js");
|
|
14
|
+
require("@tencentcloud/tui-core");
|
|
15
|
+
const _hoisted_1 = {
|
|
16
|
+
key: 0,
|
|
17
|
+
class: "vote-control-container"
|
|
18
|
+
};
|
|
19
|
+
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
|
|
20
|
+
__name: "VoteControlPC",
|
|
21
|
+
setup(__props) {
|
|
22
|
+
const moreControlConfig = roomService.roomService.getComponentConfig("VoteControl");
|
|
23
|
+
const { t, basicStore, sidebarName } = useMoreControlHooks.default();
|
|
24
|
+
function toggleMoreSidebar() {
|
|
25
|
+
if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === "vote") {
|
|
26
|
+
basicStore.setSidebarOpenStatus(false);
|
|
27
|
+
basicStore.setSidebarName("");
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
basicStore.setSidebarOpenStatus(true);
|
|
31
|
+
basicStore.setSidebarName("vote");
|
|
32
|
+
}
|
|
33
|
+
return (_ctx, _cache) => {
|
|
34
|
+
return Vue.unref(moreControlConfig).visible ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
|
|
35
|
+
Vue.createVNode(IconButton.default, {
|
|
36
|
+
"is-active": Vue.unref(sidebarName) === "vote",
|
|
37
|
+
title: Vue.unref(t)("Vote"),
|
|
38
|
+
onClickIcon: toggleMoreSidebar
|
|
39
|
+
}, {
|
|
40
|
+
default: Vue.withCtx(() => [
|
|
41
|
+
Vue.createVNode(Vue.unref(uikitBaseComponentVue3.IconMore), { size: "24" })
|
|
42
|
+
]),
|
|
43
|
+
_: 1
|
|
44
|
+
}, 8, ["is-active", "title"])
|
|
45
|
+
])) : Vue.createCommentVNode("", true);
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
exports.default = _sfc_main;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const VoteControlPC_vue_vue_type_script_setup_true_lang = require("./VoteControlPC.vue.js");
|
|
4
|
+
exports.default = VoteControlPC_vue_vue_type_script_setup_true_lang.default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const VoteControl: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
2
|
+
"show-overlay": (...args: any[]) => void;
|
|
3
|
+
}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
|
|
4
|
+
"onShow-overlay"?: ((...args: any[]) => any) | undefined;
|
|
5
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any> | import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
export default VoteControl;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const VoteControlH5 = require("./VoteControlH5.vue.js");
|
|
4
|
+
const VoteControlPC_vue_vue_type_script_setup_true_lang = require("./VoteControlPC.vue.js");
|
|
5
|
+
const environment = require("../../../utils/environment.js");
|
|
6
|
+
const VoteControl = environment.isMobile ? VoteControlH5.default : VoteControlPC_vue_vue_type_script_setup_true_lang.default;
|
|
7
|
+
exports.default = VoteControl;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const Vue = require("vue");
|
|
4
|
+
const basic = require("../../../stores/basic.js");
|
|
5
|
+
const pinia = require("pinia");
|
|
6
|
+
const index = require("../../../locales/index.js");
|
|
7
|
+
const icon = require("../../../constants/icon.js");
|
|
8
|
+
function useControl() {
|
|
9
|
+
const { t } = index.useI18n();
|
|
10
|
+
const basicStore = basic.useBasicStore();
|
|
11
|
+
const { sidebarName } = pinia.storeToRefs(basicStore);
|
|
12
|
+
const iconName = Vue.computed(
|
|
13
|
+
() => sidebarName.value === "more" ? icon.ICON_NAME.MoreActive : icon.ICON_NAME.More
|
|
14
|
+
);
|
|
15
|
+
return {
|
|
16
|
+
t,
|
|
17
|
+
basicStore,
|
|
18
|
+
iconName,
|
|
19
|
+
sidebarName
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
exports.default = useControl;
|
package/lib/constants/icon.d.ts
CHANGED
package/lib/constants/icon.js
CHANGED
|
@@ -22,6 +22,8 @@ var ICON_NAME = /* @__PURE__ */ ((ICON_NAME2) => {
|
|
|
22
22
|
ICON_NAME2["ManageMember"] = "manage-member";
|
|
23
23
|
ICON_NAME2["More"] = "more";
|
|
24
24
|
ICON_NAME2["MoreActive"] = "more-active";
|
|
25
|
+
ICON_NAME2["Vote"] = "vote";
|
|
26
|
+
ICON_NAME2["VoteActive"] = "vote-active";
|
|
25
27
|
ICON_NAME2["SettingActive"] = "setting-active";
|
|
26
28
|
ICON_NAME2["Setting"] = "setting";
|
|
27
29
|
ICON_NAME2["LineArrowUp"] = "line-arrow-up";
|
package/lib/index.js
CHANGED
|
@@ -3928,17 +3928,45 @@ to {
|
|
|
3928
3928
|
}
|
|
3929
3929
|
.footer .mirror-container .mirror-text[data-v-21a63691] {
|
|
3930
3930
|
margin-left: 4px;
|
|
3931
|
-
}.
|
|
3932
|
-
position:
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3931
|
+
}.show-more-content[data-v-4fb119e2] {
|
|
3932
|
+
position: absolute;
|
|
3933
|
+
bottom: 15px;
|
|
3934
|
+
left: 5%;
|
|
3935
|
+
width: 90%;
|
|
3936
|
+
height: 17vh;
|
|
3937
|
+
padding: 10px;
|
|
3938
|
+
border-radius: 13px;
|
|
3939
|
+
animation-name: popup-4fb119e2;
|
|
3940
|
+
animation-duration: 200ms;
|
|
3941
|
+
background-color: var(--bg-color-operate);
|
|
3942
|
+
}
|
|
3943
|
+
@keyframes popup-4fb119e2 {
|
|
3944
|
+
from {
|
|
3945
|
+
bottom: 0;
|
|
3946
|
+
}
|
|
3947
|
+
to {
|
|
3948
|
+
bottom: 15px;
|
|
3949
|
+
}
|
|
3950
|
+
}
|
|
3951
|
+
.control-compent[data-v-4fb119e2] {
|
|
3952
|
+
display: flex;
|
|
3953
|
+
}
|
|
3954
|
+
.close[data-v-4fb119e2] {
|
|
3955
|
+
position: relative;
|
|
3956
|
+
top: 10%;
|
|
3957
|
+
display: flex;
|
|
3958
|
+
align-items: center;
|
|
3959
|
+
justify-content: center;
|
|
3960
|
+
width: 100%;
|
|
3961
|
+
padding: 10px;
|
|
3962
|
+
font-style: normal;
|
|
3963
|
+
font-weight: 400;
|
|
3964
|
+
line-height: 24px;
|
|
3965
|
+
text-align: center;
|
|
3966
|
+
border-radius: 8px;
|
|
3967
|
+
color: var(--text-color-primary);
|
|
3968
|
+
background-color: var(--button-color-secondary-default);
|
|
3969
|
+
}.footer-container[data-v-3a373c3a] {
|
|
3942
3970
|
position: absolute;
|
|
3943
3971
|
bottom: 0;
|
|
3944
3972
|
display: flex;
|
|
@@ -3952,25 +3980,25 @@ to {
|
|
|
3952
3980
|
background-color: var(--bg-color-topbar);
|
|
3953
3981
|
box-shadow: 0 -8px 30px var(--uikit-color-black-8);
|
|
3954
3982
|
}
|
|
3955
|
-
.footer-container .left-container[data-v-
|
|
3983
|
+
.footer-container .left-container[data-v-3a373c3a] {
|
|
3956
3984
|
display: flex;
|
|
3957
3985
|
align-items: center;
|
|
3958
3986
|
height: 100%;
|
|
3959
3987
|
}
|
|
3960
|
-
.footer-container .left-container .left-container-item[data-v-
|
|
3988
|
+
.footer-container .left-container .left-container-item[data-v-3a373c3a]:not(:first-child) {
|
|
3961
3989
|
margin-left: 1rem;
|
|
3962
3990
|
}
|
|
3963
|
-
.footer-container .center-container[data-v-
|
|
3991
|
+
.footer-container .center-container[data-v-3a373c3a] {
|
|
3964
3992
|
position: relative;
|
|
3965
3993
|
display: flex;
|
|
3966
3994
|
align-items: center;
|
|
3967
3995
|
height: 100%;
|
|
3968
3996
|
margin: 0 auto;
|
|
3969
3997
|
}
|
|
3970
|
-
.footer-container .center-container .center-container-item[data-v-
|
|
3998
|
+
.footer-container .center-container .center-container-item[data-v-3a373c3a]:not(:first-child) {
|
|
3971
3999
|
margin-left: 16px;
|
|
3972
4000
|
}
|
|
3973
|
-
.footer-container .right-container[data-v-
|
|
4001
|
+
.footer-container .right-container[data-v-3a373c3a] {
|
|
3974
4002
|
display: flex;
|
|
3975
4003
|
align-items: center;
|
|
3976
4004
|
height: 100%;
|
package/package.json
CHANGED
|
@@ -103,7 +103,7 @@ import VirtualBackground from '../VirtualBackground.vue';
|
|
|
103
103
|
import AIControl from '../AIControl.vue';
|
|
104
104
|
import BasicBeauty from '../BasicBeauty.vue';
|
|
105
105
|
import bus from '../../../hooks/useMitt';
|
|
106
|
-
import voteControl from '../voteControl
|
|
106
|
+
import voteControl from '../voteControl';
|
|
107
107
|
import useRoomFooter from './useRoomFooterHooks';
|
|
108
108
|
import { isElectron } from '../../../utils/environment';
|
|
109
109
|
const { roomStore, isMaster, isAdmin, isAudience } = useRoomFooter();
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<div v-if="moreControlConfig.visible" class="more-control-container">
|
|
4
|
+
<icon-button
|
|
5
|
+
v-tap="showMore"
|
|
6
|
+
:is-active="sidebarName === 'more'"
|
|
7
|
+
:title="t('More')"
|
|
8
|
+
>
|
|
9
|
+
<IconExtension size="24" />
|
|
10
|
+
</icon-button>
|
|
11
|
+
</div>
|
|
12
|
+
<div v-if="showMoreContent" ref="moreContentRef" class="show-more-content">
|
|
13
|
+
<div class="control-compent">
|
|
14
|
+
<chat-control
|
|
15
|
+
v-if="roomStore.isSpeakAfterTakingSeatMode"
|
|
16
|
+
@click="handleControlClick('chatControl')"
|
|
17
|
+
/>
|
|
18
|
+
<contact-control @click="handleControlClick('contactControl')" />
|
|
19
|
+
<invite-control
|
|
20
|
+
@show-overlay="handleShowOverlay"
|
|
21
|
+
@click="handleControlClick('inviteControl')"
|
|
22
|
+
/>
|
|
23
|
+
</div>
|
|
24
|
+
<div v-tap="handleCancelControl" class="close">{{ t('Cancel') }}</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</template>
|
|
28
|
+
<script setup lang="ts">
|
|
29
|
+
import { ref, onMounted, onUnmounted, defineEmits } from 'vue';
|
|
30
|
+
import { IconExtension } from '@tencentcloud/uikit-base-component-vue3';
|
|
31
|
+
import IconButton from '../../common/base/IconButton.vue';
|
|
32
|
+
import userMoreControl from './useMoreControlHooks';
|
|
33
|
+
import ChatControl from '../ChatControl.vue';
|
|
34
|
+
import InviteControl from '../InviteControl.vue';
|
|
35
|
+
import ContactControl from '../ContactControl.vue';
|
|
36
|
+
import { useRoomStore } from '../../../stores/room';
|
|
37
|
+
import bus from '../../../hooks/useMitt';
|
|
38
|
+
import vTap from '../../../directives/vTap';
|
|
39
|
+
import { roomService } from '../../../services';
|
|
40
|
+
|
|
41
|
+
const moreControlConfig = roomService.getComponentConfig('MoreControl');
|
|
42
|
+
const showMoreContent = ref(false);
|
|
43
|
+
const moreContentRef = ref();
|
|
44
|
+
|
|
45
|
+
const { t, sidebarName } = userMoreControl();
|
|
46
|
+
const roomStore = useRoomStore();
|
|
47
|
+
const emit = defineEmits(['show-overlay']);
|
|
48
|
+
function showMore() {
|
|
49
|
+
showMoreContent.value = true;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function handleCancelControl() {
|
|
53
|
+
showMoreContent.value = false;
|
|
54
|
+
}
|
|
55
|
+
function handleControlClick(name: string) {
|
|
56
|
+
bus.emit('experience-communication', name);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function handleShowOverlay(data: { name: string; visible: boolean }) {
|
|
60
|
+
showMoreContent.value = false;
|
|
61
|
+
emit('show-overlay', data);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function handleDocumentClick(event: MouseEvent) {
|
|
65
|
+
if (showMoreContent.value && !moreContentRef.value.contains(event.target)) {
|
|
66
|
+
showMoreContent.value = false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
onMounted(() => {
|
|
71
|
+
document?.addEventListener('click', handleDocumentClick, true);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
onUnmounted(() => {
|
|
75
|
+
document?.removeEventListener('click', handleDocumentClick, true);
|
|
76
|
+
});
|
|
77
|
+
</script>
|
|
78
|
+
<style lang="scss" scoped>
|
|
79
|
+
.show-more-content {
|
|
80
|
+
position: absolute;
|
|
81
|
+
bottom: 15px;
|
|
82
|
+
left: 5%;
|
|
83
|
+
width: 90%;
|
|
84
|
+
height: 17vh;
|
|
85
|
+
padding: 10px;
|
|
86
|
+
border-radius: 13px;
|
|
87
|
+
animation-name: popup;
|
|
88
|
+
animation-duration: 200ms;
|
|
89
|
+
background-color: var(--bg-color-operate);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@keyframes popup {
|
|
93
|
+
from {
|
|
94
|
+
bottom: 0;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
to {
|
|
98
|
+
bottom: 15px;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.control-compent {
|
|
103
|
+
display: flex;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.close {
|
|
107
|
+
position: relative;
|
|
108
|
+
top: 10%;
|
|
109
|
+
display: flex;
|
|
110
|
+
align-items: center;
|
|
111
|
+
justify-content: center;
|
|
112
|
+
width: 100%;
|
|
113
|
+
padding: 10px;
|
|
114
|
+
font-style: normal;
|
|
115
|
+
font-weight: 400;
|
|
116
|
+
line-height: 24px;
|
|
117
|
+
text-align: center;
|
|
118
|
+
border-radius: 8px;
|
|
119
|
+
color: var(--text-color-primary);
|
|
120
|
+
background-color: var(--button-color-secondary-default);
|
|
121
|
+
}
|
|
122
|
+
</style>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div v-if="moreControlConfig.visible" class="vote-control-container">
|
|
3
|
+
<icon-button
|
|
4
|
+
:is-active="sidebarName === 'vote'"
|
|
5
|
+
:title="t('Vote')"
|
|
6
|
+
@click-icon="toggleMoreSidebar"
|
|
7
|
+
>
|
|
8
|
+
<IconMore size="24" />
|
|
9
|
+
</icon-button>
|
|
10
|
+
</div>
|
|
11
|
+
</template>
|
|
12
|
+
<script setup lang="ts">
|
|
13
|
+
import { IconMore } from '@tencentcloud/uikit-base-component-vue3';
|
|
14
|
+
import IconButton from '../../common/base/IconButton.vue';
|
|
15
|
+
import userMoreControl from './useMoreControlHooks';
|
|
16
|
+
import { roomService } from '../../../services';
|
|
17
|
+
|
|
18
|
+
const moreControlConfig = roomService.getComponentConfig('VoteControl');
|
|
19
|
+
const { t, basicStore, sidebarName } = userMoreControl();
|
|
20
|
+
|
|
21
|
+
function toggleMoreSidebar() {
|
|
22
|
+
if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'vote') {
|
|
23
|
+
basicStore.setSidebarOpenStatus(false);
|
|
24
|
+
basicStore.setSidebarName('');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
basicStore.setSidebarOpenStatus(true);
|
|
28
|
+
basicStore.setSidebarName('vote');
|
|
29
|
+
}
|
|
30
|
+
</script>
|
|
31
|
+
<style lang="scss" scoped></style>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { computed } from 'vue';
|
|
2
|
+
import { useBasicStore } from '../../../stores/basic';
|
|
3
|
+
import { storeToRefs } from 'pinia';
|
|
4
|
+
import { useI18n } from '../../../locales';
|
|
5
|
+
import { ICON_NAME } from '../../../constants/icon';
|
|
6
|
+
|
|
7
|
+
export default function useControl() {
|
|
8
|
+
const { t } = useI18n();
|
|
9
|
+
|
|
10
|
+
const basicStore = useBasicStore();
|
|
11
|
+
const { sidebarName } = storeToRefs(basicStore);
|
|
12
|
+
|
|
13
|
+
const iconName = computed(() =>
|
|
14
|
+
sidebarName.value === 'more' ? ICON_NAME.MoreActive : ICON_NAME.More
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
return {
|
|
18
|
+
t,
|
|
19
|
+
basicStore,
|
|
20
|
+
iconName,
|
|
21
|
+
sidebarName,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -7,13 +7,14 @@
|
|
|
7
7
|
>
|
|
8
8
|
<IconAIIcon size="24" />
|
|
9
9
|
</icon-button>
|
|
10
|
-
|
|
11
|
-
<
|
|
10
|
+
<div class="contact-container" v-if="!isSidebarOpen && showToolBox">
|
|
11
|
+
<slot name="content"></slot>
|
|
12
|
+
<!-- <room-vote ref="contactRef" @on-close-contact="handleOnCloseContact">
|
|
12
13
|
<template #content>
|
|
13
14
|
<slot name="content"></slot>
|
|
14
15
|
</template>
|
|
15
|
-
</room-vote>
|
|
16
|
-
</div>
|
|
16
|
+
</room-vote> -->
|
|
17
|
+
</div>
|
|
17
18
|
</div>
|
|
18
19
|
</template>
|
|
19
20
|
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import _sfc_main from "./voteControl.vue2.mjs";
|
|
2
|
-
/* empty css */
|
|
3
|
-
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const voteControl = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5b3301b3"]]);
|
|
5
|
-
export {
|
|
6
|
-
voteControl as default
|
|
7
|
-
};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { defineComponent, computed, ref, watch, createElementBlock, openBlock, createVNode, unref, withCtx } from "vue";
|
|
2
|
-
import "../../services/main.mjs";
|
|
3
|
-
import { roomService } from "../../services/roomService.mjs";
|
|
4
|
-
import { useI18n } from "../../locales/index.mjs";
|
|
5
|
-
import "@tencentcloud/tuiroom-engine-js";
|
|
6
|
-
import "../../utils/environment.mjs";
|
|
7
|
-
import "mitt";
|
|
8
|
-
import "../../services/manager/roomActionManager.mjs";
|
|
9
|
-
import "@tencentcloud/tui-core";
|
|
10
|
-
import IconButton from "../common/base/IconButton.vue.mjs";
|
|
11
|
-
import { IconAIIcon } from "@tencentcloud/uikit-base-component-vue3";
|
|
12
|
-
const _hoisted_1 = { class: "vote-control-container" };
|
|
13
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
14
|
-
__name: "voteControl",
|
|
15
|
-
emits: ["on-vote"],
|
|
16
|
-
setup(__props, { emit: __emit }) {
|
|
17
|
-
const { basicStore } = roomService;
|
|
18
|
-
const isSidebarOpen = computed(() => basicStore.isSidebarOpen);
|
|
19
|
-
const sidebarName = computed(() => basicStore.sidebarName);
|
|
20
|
-
const { t } = useI18n();
|
|
21
|
-
const showToolBox = ref(false);
|
|
22
|
-
watch(isSidebarOpen, (newValue) => {
|
|
23
|
-
showToolBox.value = newValue && false;
|
|
24
|
-
});
|
|
25
|
-
const emit = __emit;
|
|
26
|
-
function toggleToolBox() {
|
|
27
|
-
console.log(showToolBox.value, "0000");
|
|
28
|
-
showToolBox.value = !showToolBox.value;
|
|
29
|
-
emit("on-vote", {
|
|
30
|
-
name: "onVote",
|
|
31
|
-
visible: showToolBox.value
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
return (_ctx, _cache) => {
|
|
35
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
36
|
-
createVNode(IconButton, {
|
|
37
|
-
"is-active": sidebarName.value === "vote",
|
|
38
|
-
title: unref(t)("Vote"),
|
|
39
|
-
onClickIcon: toggleToolBox
|
|
40
|
-
}, {
|
|
41
|
-
default: withCtx(() => [
|
|
42
|
-
createVNode(unref(IconAIIcon), { size: "24" })
|
|
43
|
-
]),
|
|
44
|
-
_: 1
|
|
45
|
-
}, 8, ["is-active", "title"])
|
|
46
|
-
]);
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
export {
|
|
51
|
-
_sfc_main as default
|
|
52
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const voteControl_vue_vue_type_script_setup_true_lang = require("./voteControl.vue2.js");
|
|
4
|
-
;/* empty css */
|
|
5
|
-
const _pluginVue_exportHelper = require("../../_virtual/_plugin-vue_export-helper.js");
|
|
6
|
-
const voteControl = /* @__PURE__ */ _pluginVue_exportHelper.default(voteControl_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-5b3301b3"]]);
|
|
7
|
-
exports.default = voteControl;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const Vue = require("vue");
|
|
4
|
-
require("../../services/main.js");
|
|
5
|
-
const roomService = require("../../services/roomService.js");
|
|
6
|
-
const index = require("../../locales/index.js");
|
|
7
|
-
require("@tencentcloud/tuiroom-engine-js");
|
|
8
|
-
require("../../utils/environment.js");
|
|
9
|
-
require("mitt");
|
|
10
|
-
require("../../services/manager/roomActionManager.js");
|
|
11
|
-
require("@tencentcloud/tui-core");
|
|
12
|
-
const IconButton = require("../common/base/IconButton.vue.js");
|
|
13
|
-
const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3");
|
|
14
|
-
const _hoisted_1 = { class: "vote-control-container" };
|
|
15
|
-
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
|
|
16
|
-
__name: "voteControl",
|
|
17
|
-
emits: ["on-vote"],
|
|
18
|
-
setup(__props, { emit: __emit }) {
|
|
19
|
-
const { basicStore } = roomService.roomService;
|
|
20
|
-
const isSidebarOpen = Vue.computed(() => basicStore.isSidebarOpen);
|
|
21
|
-
const sidebarName = Vue.computed(() => basicStore.sidebarName);
|
|
22
|
-
const { t } = index.useI18n();
|
|
23
|
-
const showToolBox = Vue.ref(false);
|
|
24
|
-
Vue.watch(isSidebarOpen, (newValue) => {
|
|
25
|
-
showToolBox.value = newValue && false;
|
|
26
|
-
});
|
|
27
|
-
const emit = __emit;
|
|
28
|
-
function toggleToolBox() {
|
|
29
|
-
console.log(showToolBox.value, "0000");
|
|
30
|
-
showToolBox.value = !showToolBox.value;
|
|
31
|
-
emit("on-vote", {
|
|
32
|
-
name: "onVote",
|
|
33
|
-
visible: showToolBox.value
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
return (_ctx, _cache) => {
|
|
37
|
-
return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
|
|
38
|
-
Vue.createVNode(IconButton.default, {
|
|
39
|
-
"is-active": sidebarName.value === "vote",
|
|
40
|
-
title: Vue.unref(t)("Vote"),
|
|
41
|
-
onClickIcon: toggleToolBox
|
|
42
|
-
}, {
|
|
43
|
-
default: Vue.withCtx(() => [
|
|
44
|
-
Vue.createVNode(Vue.unref(uikitBaseComponentVue3.IconAIIcon), { size: "24" })
|
|
45
|
-
]),
|
|
46
|
-
_: 1
|
|
47
|
-
}, 8, ["is-active", "title"])
|
|
48
|
-
]);
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
exports.default = _sfc_main;
|