@ndscnj/roomkit-web-vue3 25.12.24157 → 25.12.24159
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/VoteControl/MoreControlH5.vue.d.ts +2 -0
- package/es/components/RoomFooter/VoteControl/MoreControlH5.vue.mjs +1 -1
- package/es/components/RoomFooter/VoteControl/MoreControlH5.vue2.mjs +14 -53
- package/es/components/RoomFooter/VoteControl/MoreControlPC.vue.d.ts +5 -1
- package/es/components/RoomFooter/VoteControl/MoreControlPC.vue.mjs +7 -1
- package/es/components/RoomFooter/VoteControl/index.d.ts +7 -1
- package/es/components/RoomFooter/VoteControl/useMoreControlHooks.mjs +3 -1
- package/es/components/RoomFooter/index/index.d.ts +31 -4
- package/es/components/RoomFooter/index/indexH5.vue.d.ts +12 -1
- package/es/components/RoomFooter/index/indexH5.vue.mjs +1 -1
- package/es/components/RoomFooter/index/indexH5.vue2.mjs +19 -4
- package/es/components/RoomSidebar/index.d.ts +1 -27
- package/es/components/RoomSidebar/indexPC.vue.d.ts +1 -5
- package/es/components/RoomSidebar/indexPC.vue.mjs +2 -13
- package/es/components/RoomVote/index.d.ts +2 -6
- package/es/components/RoomVote/indexH5.vue.d.ts +10 -5
- package/es/components/RoomVote/indexH5.vue.mjs +9 -2
- package/es/index.mjs +51 -51
- package/lib/components/Chat/index/indexH5.vue.js +1 -1
- package/lib/components/ManageMember/MemberItem/indexH5.vue.js +1 -1
- package/lib/components/ManageMember/indexH5.vue.js +1 -1
- package/lib/components/RoomFooter/VoteControl/MoreControlH5.vue.d.ts +2 -0
- package/lib/components/RoomFooter/VoteControl/MoreControlH5.vue.js +1 -1
- package/lib/components/RoomFooter/VoteControl/MoreControlH5.vue2.js +13 -52
- package/lib/components/RoomFooter/VoteControl/MoreControlPC.vue.d.ts +5 -1
- package/lib/components/RoomFooter/VoteControl/MoreControlPC.vue.js +7 -1
- package/lib/components/RoomFooter/VoteControl/index.d.ts +7 -1
- package/lib/components/RoomFooter/VoteControl/useMoreControlHooks.js +3 -1
- package/lib/components/RoomFooter/index/index.d.ts +31 -4
- package/lib/components/RoomFooter/index/indexH5.vue.d.ts +12 -1
- package/lib/components/RoomFooter/index/indexH5.vue.js +2 -2
- package/lib/components/RoomFooter/index/indexH5.vue2.js +18 -3
- package/lib/components/RoomInvite/indexH5.vue.js +1 -1
- package/lib/components/RoomMore/indexH5.vue.js +1 -1
- package/lib/components/RoomSidebar/index.d.ts +1 -27
- package/lib/components/RoomSidebar/indexH5.vue.js +1 -1
- package/lib/components/RoomSidebar/indexPC.vue.d.ts +1 -5
- package/lib/components/RoomSidebar/indexPC.vue.js +1 -12
- package/lib/components/RoomVote/index.d.ts +2 -6
- package/lib/components/RoomVote/indexH5.vue.d.ts +10 -5
- package/lib/components/RoomVote/indexH5.vue.js +9 -2
- package/lib/index.js +51 -51
- package/package.json +1 -1
- package/src/TUIRoom/components/RoomFooter/VoteControl/MoreControlH5.vue +10 -42
- package/src/TUIRoom/components/RoomFooter/VoteControl/MoreControlPC.vue +6 -2
- package/src/TUIRoom/components/RoomFooter/VoteControl/useMoreControlHooks.ts +2 -1
- package/src/TUIRoom/components/RoomFooter/index/indexH5.vue +14 -2
- package/src/TUIRoom/components/RoomSidebar/indexPC.vue +1 -12
- package/src/TUIRoom/components/RoomVote/indexH5.vue +1 -30
- package/es/components/RoomVote/indexH5.vue2.mjs +0 -51
- package/es/components/RoomVote/useRoomMoreHooks.mjs +0 -43
- package/lib/components/RoomVote/indexH5.vue2.js +0 -51
- package/lib/components/RoomVote/useRoomMoreHooks.js +0 -43
package/lib/index.js
CHANGED
|
@@ -3635,6 +3635,44 @@ to {
|
|
|
3635
3635
|
border-radius: 8px;
|
|
3636
3636
|
color: var(--text-color-primary);
|
|
3637
3637
|
background-color: var(--button-color-secondary-default);
|
|
3638
|
+
}.show-more-content[data-v-b8ad5a8b] {
|
|
3639
|
+
position: absolute;
|
|
3640
|
+
bottom: 15px;
|
|
3641
|
+
left: 5%;
|
|
3642
|
+
width: 90%;
|
|
3643
|
+
height: 17vh;
|
|
3644
|
+
padding: 10px;
|
|
3645
|
+
border-radius: 13px;
|
|
3646
|
+
animation-name: popup-b8ad5a8b;
|
|
3647
|
+
animation-duration: 200ms;
|
|
3648
|
+
background-color: var(--bg-color-operate);
|
|
3649
|
+
}
|
|
3650
|
+
@keyframes popup-b8ad5a8b {
|
|
3651
|
+
from {
|
|
3652
|
+
bottom: 0;
|
|
3653
|
+
}
|
|
3654
|
+
to {
|
|
3655
|
+
bottom: 15px;
|
|
3656
|
+
}
|
|
3657
|
+
}
|
|
3658
|
+
.control-compent[data-v-b8ad5a8b] {
|
|
3659
|
+
display: flex;
|
|
3660
|
+
}
|
|
3661
|
+
.close[data-v-b8ad5a8b] {
|
|
3662
|
+
position: relative;
|
|
3663
|
+
top: 10%;
|
|
3664
|
+
display: flex;
|
|
3665
|
+
align-items: center;
|
|
3666
|
+
justify-content: center;
|
|
3667
|
+
width: 100%;
|
|
3668
|
+
padding: 10px;
|
|
3669
|
+
font-style: normal;
|
|
3670
|
+
font-weight: 400;
|
|
3671
|
+
line-height: 24px;
|
|
3672
|
+
text-align: center;
|
|
3673
|
+
border-radius: 8px;
|
|
3674
|
+
color: var(--text-color-primary);
|
|
3675
|
+
background-color: var(--button-color-secondary-default);
|
|
3638
3676
|
}.tool-box[data-v-34681937] {
|
|
3639
3677
|
position: absolute;
|
|
3640
3678
|
bottom: 72px;
|
|
@@ -3664,7 +3702,7 @@ to {
|
|
|
3664
3702
|
.tool-box .tool-box-item[data-v-34681937]:hover {
|
|
3665
3703
|
border-radius: 8px;
|
|
3666
3704
|
background-color: var(--list-color-hover);
|
|
3667
|
-
}.footer-container[data-v-
|
|
3705
|
+
}.footer-container[data-v-ee2c0715] {
|
|
3668
3706
|
position: absolute;
|
|
3669
3707
|
bottom: 0;
|
|
3670
3708
|
display: flex;
|
|
@@ -3928,44 +3966,6 @@ to {
|
|
|
3928
3966
|
}
|
|
3929
3967
|
.footer .mirror-container .mirror-text[data-v-21a63691] {
|
|
3930
3968
|
margin-left: 4px;
|
|
3931
|
-
}.show-more-content[data-v-c413959d] {
|
|
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-c413959d;
|
|
3940
|
-
animation-duration: 200ms;
|
|
3941
|
-
background-color: var(--bg-color-operate);
|
|
3942
|
-
}
|
|
3943
|
-
@keyframes popup-c413959d {
|
|
3944
|
-
from {
|
|
3945
|
-
bottom: 0;
|
|
3946
|
-
}
|
|
3947
|
-
to {
|
|
3948
|
-
bottom: 15px;
|
|
3949
|
-
}
|
|
3950
|
-
}
|
|
3951
|
-
.control-compent[data-v-c413959d] {
|
|
3952
|
-
display: flex;
|
|
3953
|
-
}
|
|
3954
|
-
.close[data-v-c413959d] {
|
|
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
3969
|
}.footer-container[data-v-4afcea78] {
|
|
3970
3970
|
position: absolute;
|
|
3971
3971
|
bottom: 0;
|
|
@@ -4986,13 +4986,13 @@ to {
|
|
|
4986
4986
|
right: 0;
|
|
4987
4987
|
z-index: 101;
|
|
4988
4988
|
height: 100%;
|
|
4989
|
-
}span[data-v-
|
|
4989
|
+
}span[data-v-872a5da4] {
|
|
4990
4990
|
padding-right: 5px;
|
|
4991
4991
|
font-size: 12px;
|
|
4992
4992
|
font-weight: 500;
|
|
4993
4993
|
line-height: 17px;
|
|
4994
4994
|
}
|
|
4995
|
-
.contact-container-main[data-v-
|
|
4995
|
+
.contact-container-main[data-v-872a5da4] {
|
|
4996
4996
|
position: fixed;
|
|
4997
4997
|
bottom: 0;
|
|
4998
4998
|
display: flex;
|
|
@@ -5000,11 +5000,11 @@ to {
|
|
|
5000
5000
|
width: 100%;
|
|
5001
5001
|
padding-bottom: 4vh;
|
|
5002
5002
|
border-radius: 15px 15px 0 0;
|
|
5003
|
-
animation-name: popup-
|
|
5003
|
+
animation-name: popup-872a5da4;
|
|
5004
5004
|
animation-duration: 200ms;
|
|
5005
5005
|
background-color: var(--bg-color-operate);
|
|
5006
5006
|
}
|
|
5007
|
-
@keyframes popup-
|
|
5007
|
+
@keyframes popup-872a5da4 {
|
|
5008
5008
|
from {
|
|
5009
5009
|
transform: scaleY(0);
|
|
5010
5010
|
transform-origin: bottom;
|
|
@@ -5014,7 +5014,7 @@ to {
|
|
|
5014
5014
|
transform-origin: bottom;
|
|
5015
5015
|
}
|
|
5016
5016
|
}
|
|
5017
|
-
.contact-container-main .contact-title-main[data-v-
|
|
5017
|
+
.contact-container-main .contact-title-main[data-v-872a5da4] {
|
|
5018
5018
|
display: flex;
|
|
5019
5019
|
flex-direction: row;
|
|
5020
5020
|
align-items: center;
|
|
@@ -5026,7 +5026,7 @@ to {
|
|
|
5026
5026
|
line-height: 24px;
|
|
5027
5027
|
color: var(--text-color-primary);
|
|
5028
5028
|
}
|
|
5029
|
-
.contact-container-main .contact-content-main[data-v-
|
|
5029
|
+
.contact-container-main .contact-content-main[data-v-872a5da4] {
|
|
5030
5030
|
display: flex;
|
|
5031
5031
|
flex-direction: row;
|
|
5032
5032
|
align-items: center;
|
|
@@ -5035,8 +5035,8 @@ to {
|
|
|
5035
5035
|
padding: 0 0 0 25px;
|
|
5036
5036
|
margin-bottom: 10px;
|
|
5037
5037
|
}
|
|
5038
|
-
.contact-container-main .contact-title[data-v-
|
|
5039
|
-
.contact-container-main .contact-content[data-v-
|
|
5038
|
+
.contact-container-main .contact-title[data-v-872a5da4],
|
|
5039
|
+
.contact-container-main .contact-content[data-v-872a5da4] {
|
|
5040
5040
|
width: 28%;
|
|
5041
5041
|
font-family: "PingFang SC";
|
|
5042
5042
|
font-size: 14px;
|
|
@@ -5046,7 +5046,7 @@ to {
|
|
|
5046
5046
|
white-space: nowrap;
|
|
5047
5047
|
color: var(--text-color-primary);
|
|
5048
5048
|
}
|
|
5049
|
-
.contact-container-main .contact-content[data-v-
|
|
5049
|
+
.contact-container-main .contact-content[data-v-872a5da4] {
|
|
5050
5050
|
width: 62%;
|
|
5051
5051
|
overflow: hidden;
|
|
5052
5052
|
font-size: 14px;
|
|
@@ -5054,7 +5054,7 @@ to {
|
|
|
5054
5054
|
white-space: nowrap;
|
|
5055
5055
|
color: var(--text-color-secondary);
|
|
5056
5056
|
}
|
|
5057
|
-
.contact-container-main .contact-bottom[data-v-
|
|
5057
|
+
.contact-container-main .contact-bottom[data-v-872a5da4] {
|
|
5058
5058
|
width: 90%;
|
|
5059
5059
|
padding-left: 40px;
|
|
5060
5060
|
font-family: "PingFang SC";
|
|
@@ -5065,11 +5065,11 @@ to {
|
|
|
5065
5065
|
text-align: center;
|
|
5066
5066
|
color: var(--text-color-secondary);
|
|
5067
5067
|
}
|
|
5068
|
-
.contact-container-main .copy[data-v-
|
|
5068
|
+
.contact-container-main .copy[data-v-872a5da4] {
|
|
5069
5069
|
margin-left: 30px;
|
|
5070
5070
|
color: var(--text-color-link);
|
|
5071
5071
|
}
|
|
5072
|
-
.cancel[data-v-
|
|
5072
|
+
.cancel[data-v-872a5da4] {
|
|
5073
5073
|
flex: 1;
|
|
5074
5074
|
padding-right: 30px;
|
|
5075
5075
|
font-size: 16px;
|
package/package.json
CHANGED
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div v-if="
|
|
3
|
+
<div v-if="voteControlConfig.visible" class="more-control-container">
|
|
4
4
|
<icon-button
|
|
5
5
|
v-tap="showMore"
|
|
6
|
-
:is-active="sidebarName === '
|
|
7
|
-
:title="t('
|
|
6
|
+
:is-active="sidebarName === 'vote'"
|
|
7
|
+
:title="t('Vote')"
|
|
8
8
|
>
|
|
9
9
|
<IconExtension size="24" />
|
|
10
10
|
</icon-button>
|
|
11
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
12
|
</div>
|
|
27
13
|
</template>
|
|
28
14
|
<script setup lang="ts">
|
|
@@ -30,37 +16,19 @@ import { ref, onMounted, onUnmounted, defineEmits } from 'vue';
|
|
|
30
16
|
import { IconExtension } from '@tencentcloud/uikit-base-component-vue3';
|
|
31
17
|
import IconButton from '../../common/base/IconButton.vue';
|
|
32
18
|
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
19
|
import { roomService } from '../../../services';
|
|
40
|
-
|
|
41
|
-
const moreControlConfig = roomService.getComponentConfig('MoreControl');
|
|
20
|
+
const voteControlConfig = roomService.getComponentConfig('MoreControl');
|
|
42
21
|
const showMoreContent = ref(false);
|
|
43
22
|
const moreContentRef = ref();
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
const roomStore = useRoomStore();
|
|
47
|
-
const emit = defineEmits(['show-overlay']);
|
|
23
|
+
const { t, sidebarName,basicStore } = userMoreControl();
|
|
24
|
+
const emit = defineEmits(['show-overlay','on-vote']);
|
|
48
25
|
function showMore() {
|
|
49
26
|
showMoreContent.value = true;
|
|
27
|
+
emit('on-vote', {
|
|
28
|
+
name: 'onVote',
|
|
29
|
+
visible:basicStore.isSidebarOpen,
|
|
30
|
+
});
|
|
50
31
|
}
|
|
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
32
|
function handleDocumentClick(event: MouseEvent) {
|
|
65
33
|
if (showMoreContent.value && !moreContentRef.value.contains(event.target)) {
|
|
66
34
|
showMoreContent.value = false;
|
|
@@ -14,10 +14,10 @@ import { IconMore } from '@tencentcloud/uikit-base-component-vue3';
|
|
|
14
14
|
import IconButton from '../../common/base/IconButton.vue';
|
|
15
15
|
import userMoreControl from './useMoreControlHooks';
|
|
16
16
|
import { roomService } from '../../../services';
|
|
17
|
-
|
|
17
|
+
import { defineEmits} from 'vue';
|
|
18
18
|
const moreControlConfig = roomService.getComponentConfig('MoreControl');
|
|
19
19
|
const { t, basicStore, sidebarName } = userMoreControl();
|
|
20
|
-
|
|
20
|
+
const emit = defineEmits(['on-vote']);
|
|
21
21
|
function toggleMoreSidebar() {
|
|
22
22
|
if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'vote') {
|
|
23
23
|
basicStore.setSidebarOpenStatus(false);
|
|
@@ -26,6 +26,10 @@ function toggleMoreSidebar() {
|
|
|
26
26
|
}
|
|
27
27
|
basicStore.setSidebarOpenStatus(true);
|
|
28
28
|
basicStore.setSidebarName('vote');
|
|
29
|
+
emit('on-vote', {
|
|
30
|
+
name: 'onVote',
|
|
31
|
+
visible:basicStore.isSidebarOpen,
|
|
32
|
+
});
|
|
29
33
|
}
|
|
30
34
|
</script>
|
|
31
35
|
<style lang="scss" scoped></style>
|
|
@@ -9,7 +9,7 @@ export default function useControl() {
|
|
|
9
9
|
|
|
10
10
|
const basicStore = useBasicStore();
|
|
11
11
|
const { sidebarName } = storeToRefs(basicStore);
|
|
12
|
-
|
|
12
|
+
const isSidebarOpen = computed(() => basicStore.isSidebarOpen);
|
|
13
13
|
const iconName = computed(() =>
|
|
14
14
|
sidebarName.value === 'vote' ? ICON_NAME.MoreActive : ICON_NAME.More
|
|
15
15
|
);
|
|
@@ -19,5 +19,6 @@ export default function useControl() {
|
|
|
19
19
|
basicStore,
|
|
20
20
|
iconName,
|
|
21
21
|
sidebarName,
|
|
22
|
+
isSidebarOpen
|
|
22
23
|
};
|
|
23
24
|
}
|
|
@@ -14,6 +14,15 @@
|
|
|
14
14
|
v-if="!roomStore.isSpeakAfterTakingSeatMode"
|
|
15
15
|
v-tap="() => handleControlClick('chatControl')"
|
|
16
16
|
/>
|
|
17
|
+
<vote-control
|
|
18
|
+
v-tap="() => handleControlClick('voteControl')"
|
|
19
|
+
@show-overlay="handleShowOverlay"
|
|
20
|
+
@on-vote="onVote"
|
|
21
|
+
>
|
|
22
|
+
<template #content>
|
|
23
|
+
<slot name="content"></slot>
|
|
24
|
+
</template>
|
|
25
|
+
</vote-control>
|
|
17
26
|
<AIControl
|
|
18
27
|
@click="handleControlClick('AIControl')"
|
|
19
28
|
/>
|
|
@@ -46,6 +55,7 @@ import ChatControl from '../ChatControl.vue';
|
|
|
46
55
|
import MasterApplyControl from '../ManageStageControl.vue';
|
|
47
56
|
import MemberApplyControl from '../ApplyControl/MemberApplyControl.vue';
|
|
48
57
|
import MoreControl from '../MoreControl/index';
|
|
58
|
+
import VoteControl from '../VoteControl/index';
|
|
49
59
|
import AIControl from '../AIControl.vue';
|
|
50
60
|
import bus from '../../../hooks/useMitt';
|
|
51
61
|
import vTap from '../../../directives/vTap';
|
|
@@ -54,8 +64,10 @@ import useRoomFooter from './useRoomFooterHooks';
|
|
|
54
64
|
|
|
55
65
|
const { roomStore, isMaster, isAdmin, isAudience } = useRoomFooter();
|
|
56
66
|
|
|
57
|
-
const emit = defineEmits(['show-overlay']);
|
|
58
|
-
|
|
67
|
+
const emit = defineEmits(['show-overlay','on-vote']);
|
|
68
|
+
const onVote = (data: { name: string; visible: boolean }) => {
|
|
69
|
+
emit('on-vote', { code: data.visible, message: 'vote' });
|
|
70
|
+
};
|
|
59
71
|
function handleControlClick(name: string) {
|
|
60
72
|
bus.emit('experience-communication', name);
|
|
61
73
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
:size="400"
|
|
9
9
|
>
|
|
10
10
|
<chat v-if="sidebarName == 'chat'" />
|
|
11
|
-
<room-vote v-if="sidebarName == 'vote'">
|
|
11
|
+
<room-vote v-if="sidebarName == 'vote'" >
|
|
12
12
|
<template #content>
|
|
13
13
|
<slot name="content"></slot>
|
|
14
14
|
</template>
|
|
@@ -28,18 +28,7 @@ import RoomMore from '../RoomMore';
|
|
|
28
28
|
import RoomVote from '../RoomVote';
|
|
29
29
|
import Chat from '../Chat/index';
|
|
30
30
|
import AITranscription from '../common/widgets/AITools/AITranscription.vue';
|
|
31
|
-
import { defineEmits,watch} from 'vue';
|
|
32
31
|
const { isSidebarOpen, title, handleClose, sidebarName } = useSideBar();
|
|
33
|
-
const emit = defineEmits(['on-vote',]);
|
|
34
|
-
watch(
|
|
35
|
-
() => isSidebarOpen,
|
|
36
|
-
(newValue, oldValue) => {
|
|
37
|
-
emit('on-vote', {
|
|
38
|
-
name: 'onVote',
|
|
39
|
-
visible: isSidebarOpen,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
);
|
|
43
32
|
</script>
|
|
44
33
|
|
|
45
34
|
<style lang="scss"></style>
|
|
@@ -1,40 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="contact-container-main">
|
|
3
|
-
<
|
|
4
|
-
<div>{{ t('Contact us') }}</div>
|
|
5
|
-
<span v-tap="handleCloseContact" class="cancel">{{ t('Cancel') }}</span>
|
|
6
|
-
</div>
|
|
7
|
-
<div
|
|
8
|
-
v-for="item in contactContentList"
|
|
9
|
-
:key="item.id"
|
|
10
|
-
class="contact-content-main"
|
|
11
|
-
>
|
|
12
|
-
<span class="contact-title">{{ t(item.title) }}</span>
|
|
13
|
-
<span class="contact-content">{{ item.content }}</span>
|
|
14
|
-
<IconCopy v-tap="() => onCopy(item.copyLink)" class="copy" />
|
|
15
|
-
</div>
|
|
16
|
-
<span class="contact-bottom">
|
|
17
|
-
{{
|
|
18
|
-
t(
|
|
19
|
-
'If you have any questions, please feel free to join our QQ group or send an email'
|
|
20
|
-
)
|
|
21
|
-
}}
|
|
22
|
-
</span>
|
|
3
|
+
<slot name="content"></slot>
|
|
23
4
|
</div>
|
|
24
5
|
</template>
|
|
25
6
|
|
|
26
7
|
<script setup lang="ts">
|
|
27
|
-
import useRoomMoreControl from './useRoomMoreHooks';
|
|
28
|
-
import { IconCopy } from '@tencentcloud/uikit-base-component-vue3';
|
|
29
|
-
import vTap from '../../directives/vTap';
|
|
30
8
|
|
|
31
|
-
const { t, onCopy, contactContentList } = useRoomMoreControl();
|
|
32
|
-
|
|
33
|
-
const emit = defineEmits(['on-close-contact']);
|
|
34
|
-
|
|
35
|
-
function handleCloseContact() {
|
|
36
|
-
emit('on-close-contact');
|
|
37
|
-
}
|
|
38
9
|
</script>
|
|
39
10
|
|
|
40
11
|
<style lang="scss" scoped>
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { defineComponent, createElementBlock, openBlock, createElementVNode, withDirectives, toDisplayString, unref, createTextVNode, Fragment, renderList, createVNode } from "vue";
|
|
2
|
-
import useRoomMoreHooks from "./useRoomMoreHooks.mjs";
|
|
3
|
-
import { IconCopy } from "@tencentcloud/uikit-base-component-vue3";
|
|
4
|
-
import vTap from "../../directives/vTap.mjs";
|
|
5
|
-
const _hoisted_1 = { class: "contact-container-main" };
|
|
6
|
-
const _hoisted_2 = { class: "contact-title-main" };
|
|
7
|
-
const _hoisted_3 = { class: "cancel" };
|
|
8
|
-
const _hoisted_4 = { class: "contact-title" };
|
|
9
|
-
const _hoisted_5 = { class: "contact-content" };
|
|
10
|
-
const _hoisted_6 = { class: "contact-bottom" };
|
|
11
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
12
|
-
__name: "indexH5",
|
|
13
|
-
emits: ["on-close-contact"],
|
|
14
|
-
setup(__props, { emit: __emit }) {
|
|
15
|
-
const { t, onCopy, contactContentList } = useRoomMoreHooks();
|
|
16
|
-
const emit = __emit;
|
|
17
|
-
function handleCloseContact() {
|
|
18
|
-
emit("on-close-contact");
|
|
19
|
-
}
|
|
20
|
-
return (_ctx, _cache) => {
|
|
21
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
22
|
-
createElementVNode("div", _hoisted_2, [
|
|
23
|
-
createElementVNode("div", null, toDisplayString(unref(t)("Contact us")), 1),
|
|
24
|
-
withDirectives((openBlock(), createElementBlock("span", _hoisted_3, [
|
|
25
|
-
createTextVNode(toDisplayString(unref(t)("Cancel")), 1)
|
|
26
|
-
])), [
|
|
27
|
-
[unref(vTap), handleCloseContact]
|
|
28
|
-
])
|
|
29
|
-
]),
|
|
30
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(contactContentList), (item) => {
|
|
31
|
-
return openBlock(), createElementBlock("div", {
|
|
32
|
-
key: item.id,
|
|
33
|
-
class: "contact-content-main"
|
|
34
|
-
}, [
|
|
35
|
-
createElementVNode("span", _hoisted_4, toDisplayString(unref(t)(item.title)), 1),
|
|
36
|
-
createElementVNode("span", _hoisted_5, toDisplayString(item.content), 1),
|
|
37
|
-
withDirectives(createVNode(unref(IconCopy), { class: "copy" }, null, 512), [
|
|
38
|
-
[unref(vTap), () => unref(onCopy)(item.copyLink)]
|
|
39
|
-
])
|
|
40
|
-
]);
|
|
41
|
-
}), 128)),
|
|
42
|
-
createElementVNode("span", _hoisted_6, toDisplayString(unref(t)(
|
|
43
|
-
"If you have any questions, please feel free to join our QQ group or send an email"
|
|
44
|
-
)), 1)
|
|
45
|
-
]);
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
export {
|
|
50
|
-
_sfc_main as default
|
|
51
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { computed } from "vue";
|
|
2
|
-
import { TUIToast, TOAST_TYPE } from "@tencentcloud/uikit-base-component-vue3";
|
|
3
|
-
import i18n, { useI18n } from "../../locales/index.mjs";
|
|
4
|
-
import "../../utils/environment.mjs";
|
|
5
|
-
import { clipBoard } from "../../utils/adapter.mjs";
|
|
6
|
-
function useRoomMoreHooks() {
|
|
7
|
-
const { t } = useI18n();
|
|
8
|
-
const groupNumber = "770645461";
|
|
9
|
-
const email = "chaooliang@tencent.com";
|
|
10
|
-
async function onCopy(value) {
|
|
11
|
-
try {
|
|
12
|
-
await clipBoard(value);
|
|
13
|
-
TUIToast({
|
|
14
|
-
message: t("Copied successfully"),
|
|
15
|
-
type: TOAST_TYPE.SUCCESS
|
|
16
|
-
});
|
|
17
|
-
} catch (error) {
|
|
18
|
-
TUIToast({
|
|
19
|
-
message: t("Copied failure"),
|
|
20
|
-
type: TOAST_TYPE.ERROR
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
const isZH = computed(() => i18n.global.locale.value === "zh-CN");
|
|
25
|
-
const contactContentList = [
|
|
26
|
-
{ id: 1, title: "group chat", content: groupNumber, copyLink: groupNumber },
|
|
27
|
-
{ id: 2, title: "Email", content: email, copyLink: email }
|
|
28
|
-
];
|
|
29
|
-
const handleClick = () => {
|
|
30
|
-
window.open("https://zhiliao.qq.com/s/c5GY7HIM62CK", "_blank");
|
|
31
|
-
};
|
|
32
|
-
return {
|
|
33
|
-
t,
|
|
34
|
-
onCopy,
|
|
35
|
-
contactContentList,
|
|
36
|
-
email,
|
|
37
|
-
handleClick,
|
|
38
|
-
isZH
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export {
|
|
42
|
-
useRoomMoreHooks as default
|
|
43
|
-
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const Vue = require("vue");
|
|
4
|
-
const useRoomMoreHooks = require("./useRoomMoreHooks.js");
|
|
5
|
-
const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3");
|
|
6
|
-
const vTap = require("../../directives/vTap.js");
|
|
7
|
-
const _hoisted_1 = { class: "contact-container-main" };
|
|
8
|
-
const _hoisted_2 = { class: "contact-title-main" };
|
|
9
|
-
const _hoisted_3 = { class: "cancel" };
|
|
10
|
-
const _hoisted_4 = { class: "contact-title" };
|
|
11
|
-
const _hoisted_5 = { class: "contact-content" };
|
|
12
|
-
const _hoisted_6 = { class: "contact-bottom" };
|
|
13
|
-
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
|
|
14
|
-
__name: "indexH5",
|
|
15
|
-
emits: ["on-close-contact"],
|
|
16
|
-
setup(__props, { emit: __emit }) {
|
|
17
|
-
const { t, onCopy, contactContentList } = useRoomMoreHooks.default();
|
|
18
|
-
const emit = __emit;
|
|
19
|
-
function handleCloseContact() {
|
|
20
|
-
emit("on-close-contact");
|
|
21
|
-
}
|
|
22
|
-
return (_ctx, _cache) => {
|
|
23
|
-
return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
|
|
24
|
-
Vue.createElementVNode("div", _hoisted_2, [
|
|
25
|
-
Vue.createElementVNode("div", null, Vue.toDisplayString(Vue.unref(t)("Contact us")), 1),
|
|
26
|
-
Vue.withDirectives((Vue.openBlock(), Vue.createElementBlock("span", _hoisted_3, [
|
|
27
|
-
Vue.createTextVNode(Vue.toDisplayString(Vue.unref(t)("Cancel")), 1)
|
|
28
|
-
])), [
|
|
29
|
-
[Vue.unref(vTap.default), handleCloseContact]
|
|
30
|
-
])
|
|
31
|
-
]),
|
|
32
|
-
(Vue.openBlock(true), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(Vue.unref(contactContentList), (item) => {
|
|
33
|
-
return Vue.openBlock(), Vue.createElementBlock("div", {
|
|
34
|
-
key: item.id,
|
|
35
|
-
class: "contact-content-main"
|
|
36
|
-
}, [
|
|
37
|
-
Vue.createElementVNode("span", _hoisted_4, Vue.toDisplayString(Vue.unref(t)(item.title)), 1),
|
|
38
|
-
Vue.createElementVNode("span", _hoisted_5, Vue.toDisplayString(item.content), 1),
|
|
39
|
-
Vue.withDirectives(Vue.createVNode(Vue.unref(uikitBaseComponentVue3.IconCopy), { class: "copy" }, null, 512), [
|
|
40
|
-
[Vue.unref(vTap.default), () => Vue.unref(onCopy)(item.copyLink)]
|
|
41
|
-
])
|
|
42
|
-
]);
|
|
43
|
-
}), 128)),
|
|
44
|
-
Vue.createElementVNode("span", _hoisted_6, Vue.toDisplayString(Vue.unref(t)(
|
|
45
|
-
"If you have any questions, please feel free to join our QQ group or send an email"
|
|
46
|
-
)), 1)
|
|
47
|
-
]);
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
exports.default = _sfc_main;
|
|
@@ -1,43 +0,0 @@
|
|
|
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 index = require("../../locales/index.js");
|
|
6
|
-
require("../../utils/environment.js");
|
|
7
|
-
const adapter = require("../../utils/adapter.js");
|
|
8
|
-
function useRoomMoreHooks() {
|
|
9
|
-
const { t } = index.useI18n();
|
|
10
|
-
const groupNumber = "770645461";
|
|
11
|
-
const email = "chaooliang@tencent.com";
|
|
12
|
-
async function onCopy(value) {
|
|
13
|
-
try {
|
|
14
|
-
await adapter.clipBoard(value);
|
|
15
|
-
uikitBaseComponentVue3.TUIToast({
|
|
16
|
-
message: t("Copied successfully"),
|
|
17
|
-
type: uikitBaseComponentVue3.TOAST_TYPE.SUCCESS
|
|
18
|
-
});
|
|
19
|
-
} catch (error) {
|
|
20
|
-
uikitBaseComponentVue3.TUIToast({
|
|
21
|
-
message: t("Copied failure"),
|
|
22
|
-
type: uikitBaseComponentVue3.TOAST_TYPE.ERROR
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
const isZH = Vue.computed(() => index.default.global.locale.value === "zh-CN");
|
|
27
|
-
const contactContentList = [
|
|
28
|
-
{ id: 1, title: "group chat", content: groupNumber, copyLink: groupNumber },
|
|
29
|
-
{ id: 2, title: "Email", content: email, copyLink: email }
|
|
30
|
-
];
|
|
31
|
-
const handleClick = () => {
|
|
32
|
-
window.open("https://zhiliao.qq.com/s/c5GY7HIM62CK", "_blank");
|
|
33
|
-
};
|
|
34
|
-
return {
|
|
35
|
-
t,
|
|
36
|
-
onCopy,
|
|
37
|
-
contactContentList,
|
|
38
|
-
email,
|
|
39
|
-
handleClick,
|
|
40
|
-
isZH
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
exports.default = useRoomMoreHooks;
|