@ndscnj/roomkit-web-vue3 25.12.2418 → 25.12.2420

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.
Files changed (41) hide show
  1. package/es/assets/imgs/vote-icon.png.mjs +4 -0
  2. package/es/components/RoomFooter/VoteControl/MoreControlPC.vue.mjs +5 -47
  3. package/es/components/RoomFooter/VoteControl/MoreControlPC.vue2.mjs +50 -1
  4. package/es/components/RoomFooter/VoteControl/index.mjs +2 -2
  5. package/es/components/RoomFooter/VoteControl/useMoreControlHooks.mjs +3 -1
  6. package/es/components/RoomFooter/index/index.d.ts +26 -4
  7. package/es/components/RoomFooter/index/indexH5.vue.d.ts +10 -1
  8. package/es/components/RoomFooter/index/indexH5.vue.mjs +1 -1
  9. package/es/components/RoomFooter/index/indexH5.vue2.mjs +11 -2
  10. package/es/components/RoomFooter/voteControl.vue.d.ts +15 -0
  11. package/es/components/RoomFooter/voteControl.vue.mjs +7 -0
  12. package/es/components/RoomFooter/voteControl.vue2.mjs +80 -0
  13. package/es/components/RoomVote/indexPC.vue.mjs +1 -1
  14. package/es/conference.vue.d.ts +1 -0
  15. package/es/conference.vue.mjs +1 -1
  16. package/es/conference.vue2.mjs +4 -1
  17. package/es/index.mjs +59 -19
  18. package/lib/assets/imgs/vote-icon.png.js +4 -0
  19. package/lib/components/RoomFooter/VoteControl/MoreControlPC.vue.js +5 -47
  20. package/lib/components/RoomFooter/VoteControl/MoreControlPC.vue2.js +51 -2
  21. package/lib/components/RoomFooter/VoteControl/index.js +2 -2
  22. package/lib/components/RoomFooter/VoteControl/useMoreControlHooks.js +3 -1
  23. package/lib/components/RoomFooter/index/index.d.ts +26 -4
  24. package/lib/components/RoomFooter/index/indexH5.vue.d.ts +10 -1
  25. package/lib/components/RoomFooter/index/indexH5.vue.js +1 -1
  26. package/lib/components/RoomFooter/index/indexH5.vue2.js +10 -1
  27. package/lib/components/RoomFooter/voteControl.vue.d.ts +15 -0
  28. package/lib/components/RoomFooter/voteControl.vue.js +7 -0
  29. package/lib/components/RoomFooter/voteControl.vue2.js +80 -0
  30. package/lib/components/RoomVote/indexPC.vue.js +1 -1
  31. package/lib/conference.vue.d.ts +1 -0
  32. package/lib/conference.vue.js +1 -1
  33. package/lib/conference.vue2.js +4 -1
  34. package/lib/index.js +59 -19
  35. package/package.json +1 -1
  36. package/src/TUIRoom/components/RoomFooter/VoteControl/MoreControlPC.vue +7 -2
  37. package/src/TUIRoom/components/RoomFooter/VoteControl/useMoreControlHooks.ts +2 -1
  38. package/src/TUIRoom/components/RoomFooter/index/indexH5.vue +8 -0
  39. package/src/TUIRoom/components/RoomFooter/voteControl.vue +46 -9
  40. package/src/TUIRoom/components/RoomVote/indexPC.vue +0 -1
  41. package/src/TUIRoom/conference.vue +4 -1
@@ -1,4 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const MoreControlPC_vue_vue_type_script_setup_true_lang = require("./MoreControlPC.vue.js");
4
- exports.default = MoreControlPC_vue_vue_type_script_setup_true_lang.default;
3
+ const Vue = require("vue");
4
+ const voteIcon = require("../../../assets/imgs/vote-icon.png.js");
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: "more-control-container"
18
+ };
19
+ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
20
+ __name: "MoreControlPC",
21
+ setup(__props) {
22
+ const moreControlConfig = roomService.roomService.getComponentConfig("MoreControl");
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(() => [..._cache[0] || (_cache[0] = [
41
+ Vue.createElementVNode("img", {
42
+ class: "ndsc-img-box",
43
+ src: voteIcon.default,
44
+ alt: ""
45
+ }, null, -1)
46
+ ])]),
47
+ _: 1
48
+ }, 8, ["is-active", "title"])
49
+ ])) : Vue.createCommentVNode("", true);
50
+ };
51
+ }
52
+ });
53
+ exports.default = _sfc_main;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const MoreControlH5 = require("./MoreControlH5.vue.js");
4
- const MoreControlPC_vue_vue_type_script_setup_true_lang = require("./MoreControlPC.vue.js");
4
+ const MoreControlPC = require("./MoreControlPC.vue.js");
5
5
  const environment = require("../../../utils/environment.js");
6
- const MoreControl = environment.isMobile ? MoreControlH5.default : MoreControlPC_vue_vue_type_script_setup_true_lang.default;
6
+ const MoreControl = environment.isMobile ? MoreControlH5.default : MoreControlPC.default;
7
7
  exports.default = MoreControl;
@@ -9,6 +9,7 @@ function useControl() {
9
9
  const { t } = index.useI18n();
10
10
  const basicStore = basic.useBasicStore();
11
11
  const { sidebarName } = pinia.storeToRefs(basicStore);
12
+ const isSidebarOpen = Vue.computed(() => basicStore.isSidebarOpen);
12
13
  const iconName = Vue.computed(
13
14
  () => sidebarName.value === "vote" ? icon.ICON_NAME.MoreActive : icon.ICON_NAME.More
14
15
  );
@@ -16,7 +17,8 @@ function useControl() {
16
17
  t,
17
18
  basicStore,
18
19
  iconName,
19
- sidebarName
20
+ sidebarName,
21
+ isSidebarOpen
20
22
  };
21
23
  }
22
24
  exports.default = useControl;
@@ -1,8 +1,30 @@
1
- declare const Index: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
2
- "show-overlay": (...args: any[]) => void;
3
- }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
1
+ declare const Index: ({
2
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
3
+ "onShow-overlay"?: ((...args: any[]) => any) | undefined;
4
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
5
+ "show-overlay": (...args: any[]) => void;
6
+ }, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
7
+ P: {};
8
+ B: {};
9
+ D: {};
10
+ C: {};
11
+ M: {};
12
+ Defaults: {};
13
+ }, Readonly<{}> & Readonly<{
14
+ "onShow-overlay"?: ((...args: any[]) => any) | undefined;
15
+ }>, {}, {}, {}, {}, {}>;
16
+ __isFragment?: never;
17
+ __isTeleport?: never;
18
+ __isSuspense?: never;
19
+ } & import('vue').ComponentOptionsBase<Readonly<{}> & Readonly<{
4
20
  "onShow-overlay"?: ((...args: any[]) => any) | undefined;
5
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any> | ({
21
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
22
+ "show-overlay": (...args: any[]) => void;
23
+ }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
24
+ $slots: {
25
+ contentH5?(_: {}): any;
26
+ };
27
+ })) | ({
6
28
  new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
7
29
  "onOn-vote"?: ((...args: any[]) => any) | undefined;
8
30
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
@@ -1,6 +1,15 @@
1
- declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
1
+ declare function __VLS_template(): {
2
+ contentH5?(_: {}): any;
3
+ };
4
+ declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
2
5
  "show-overlay": (...args: any[]) => void;
3
6
  }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
4
7
  "onShow-overlay"?: ((...args: any[]) => any) | undefined;
5
8
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
9
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
6
10
  export default _default;
11
+ type __VLS_WithTemplateSlots<T, S> = T & {
12
+ new (): {
13
+ $slots: S;
14
+ };
15
+ };
@@ -3,5 +3,5 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const indexH5_vue_vue_type_script_setup_true_lang = require("./indexH5.vue2.js");
4
4
  ;/* empty css */
5
5
  const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.js");
6
- const indexH5 = /* @__PURE__ */ _pluginVue_exportHelper.default(indexH5_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-f3bbac91"]]);
6
+ const indexH5 = /* @__PURE__ */ _pluginVue_exportHelper.default(indexH5_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-90dd0d72"]]);
7
7
  exports.default = indexH5;
@@ -58,6 +58,7 @@ const ChatControl_vue_vue_type_script_setup_true_lang = require("../ChatControl.
58
58
  const ManageStageControl_vue_vue_type_script_setup_true_lang = require("../ManageStageControl.vue.js");
59
59
  const MemberApplyControl = require("../ApplyControl/MemberApplyControl.vue.js");
60
60
  const index$1 = require("../MoreControl/index.js");
61
+ const voteControl = require("../voteControl.vue.js");
61
62
  const AIControl = require("../AIControl.vue.js");
62
63
  const useMitt = require("../../../hooks/useMitt.js");
63
64
  const useRoomFooterHooks = require("./useRoomFooterHooks.js");
@@ -91,8 +92,16 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
91
92
  !Vue.unref(roomStore).isSpeakAfterTakingSeatMode ? Vue.withDirectives((Vue.openBlock(), Vue.createBlock(ChatControl_vue_vue_type_script_setup_true_lang.default, { key: 2 }, null, 512)), [
92
93
  [Vue.unref(vTap.default), () => handleControlClick("chatControl")]
93
94
  ]) : Vue.createCommentVNode("", true),
95
+ Vue.createVNode(voteControl.default, {
96
+ onClick: _cache[0] || (_cache[0] = ($event) => handleControlClick("voteControl"))
97
+ }, {
98
+ contentH5: Vue.withCtx(() => [
99
+ Vue.renderSlot(_ctx.$slots, "contentH5", {}, void 0, true)
100
+ ]),
101
+ _: 3
102
+ }),
94
103
  Vue.createVNode(AIControl.default, {
95
- onClick: _cache[0] || (_cache[0] = ($event) => handleControlClick("AIControl"))
104
+ onClick: _cache[1] || (_cache[1] = ($event) => handleControlClick("AIControl"))
96
105
  }),
97
106
  Vue.unref(roomStore).isSpeakAfterTakingSeatMode && (Vue.unref(isMaster) || Vue.unref(isAdmin)) ? Vue.withDirectives((Vue.openBlock(), Vue.createBlock(ManageStageControl_vue_vue_type_script_setup_true_lang.default, { key: 3 }, null, 512)), [
98
107
  [Vue.unref(vTap.default), () => handleControlClick("MasterApplyControl")]
@@ -0,0 +1,15 @@
1
+ declare function __VLS_template(): {
2
+ contentH5?(_: {}): any;
3
+ };
4
+ declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
5
+ "on-vote": (...args: any[]) => void;
6
+ }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
7
+ "onOn-vote"?: ((...args: any[]) => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
9
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
10
+ export default _default;
11
+ type __VLS_WithTemplateSlots<T, S> = T & {
12
+ new (): {
13
+ $slots: S;
14
+ };
15
+ };
@@ -0,0 +1,7 @@
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-b0e5925b"]]);
7
+ exports.default = voteControl;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const Vue = require("vue");
4
+ const voteIcon = require("../../assets/imgs/vote-icon.png.js");
5
+ require("../../services/main.js");
6
+ const roomService = require("../../services/roomService.js");
7
+ const index = require("../../locales/index.js");
8
+ require("@tencentcloud/tuiroom-engine-js");
9
+ require("../../utils/environment.js");
10
+ require("mitt");
11
+ require("../../services/manager/roomActionManager.js");
12
+ require("@tencentcloud/tui-core");
13
+ const IconButton = require("../common/base/IconButton.vue.js");
14
+ const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3");
15
+ const basic = require("../../stores/basic.js");
16
+ const _hoisted_1 = { class: "more-control-container" };
17
+ const _hoisted_2 = {
18
+ key: 0,
19
+ class: "contact-container"
20
+ };
21
+ const _hoisted_3 = { class: "container-title-box" };
22
+ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
23
+ __name: "voteControl",
24
+ emits: ["on-vote"],
25
+ setup(__props, { emit: __emit }) {
26
+ const { basicStore } = roomService.roomService;
27
+ const sidebarName = Vue.computed(() => basicStore.sidebarName);
28
+ const { t } = index.useI18n();
29
+ const showToolBox = Vue.ref(false);
30
+ const emit = __emit;
31
+ function toggleToolBox() {
32
+ console.log(showToolBox.value, "0000");
33
+ showToolBox.value = !showToolBox.value;
34
+ emit("on-vote", {
35
+ name: "onVote",
36
+ visible: showToolBox.value
37
+ });
38
+ }
39
+ const basicStoreNew = basic.useBasicStore();
40
+ function handleClose() {
41
+ basicStoreNew.setSidebarOpenStatus(false);
42
+ basicStoreNew.setSidebarName("");
43
+ }
44
+ return (_ctx, _cache) => {
45
+ return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
46
+ Vue.createVNode(IconButton.default, {
47
+ "is-active": sidebarName.value === "vote",
48
+ title: Vue.unref(t)("Vote"),
49
+ onClickIcon: toggleToolBox
50
+ }, {
51
+ default: Vue.withCtx(() => [..._cache[0] || (_cache[0] = [
52
+ Vue.createElementVNode("img", {
53
+ class: "ndsc-img-box",
54
+ src: voteIcon.default,
55
+ alt: ""
56
+ }, null, -1)
57
+ ])]),
58
+ _: 1
59
+ }, 8, ["is-active", "title"]),
60
+ showToolBox.value ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_2, [
61
+ Vue.createElementVNode("div", _hoisted_3, [
62
+ Vue.createElementVNode("span", {
63
+ onClick: handleClose,
64
+ class: "icon-container"
65
+ }, [
66
+ Vue.createVNode(Vue.unref(uikitBaseComponentVue3.IconArrowStrokeBack), {
67
+ size: "10",
68
+ class: "close-icon"
69
+ })
70
+ ]),
71
+ _cache[1] || (_cache[1] = Vue.createElementVNode("div", { class: "tool-box-item" }, "表决", -1))
72
+ ]),
73
+ Vue.renderSlot(_ctx.$slots, "contentH5", {}, void 0, true),
74
+ _cache[2] || (_cache[2] = Vue.createElementVNode("div", { class: "bottom-box" }, null, -1))
75
+ ])) : Vue.createCommentVNode("", true)
76
+ ]);
77
+ };
78
+ }
79
+ });
80
+ exports.default = _sfc_main;
@@ -10,5 +10,5 @@ function _sfc_render(_ctx, _cache) {
10
10
  Vue.renderSlot(_ctx.$slots, "content", {}, void 0, true)
11
11
  ]);
12
12
  }
13
- const indexPC = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-41107c5f"]]);
13
+ const indexPC = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-183c195c"]]);
14
14
  exports.default = indexPC;
@@ -16,6 +16,7 @@ declare function enterRoom(options: {
16
16
  declare function resetStore(): void;
17
17
  declare function __VLS_template(): {
18
18
  content?(_: {}): any;
19
+ contentH5?(_: {}): any;
19
20
  };
20
21
  declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
21
22
  displayMode: "permanent" | "wake-up";
@@ -4,5 +4,5 @@ const conference_vue_vue_type_script_setup_true_lang = require("./conference.vue
4
4
  ;/* empty css */
5
5
  ;/* empty css */
6
6
  const _pluginVue_exportHelper = require("./_virtual/_plugin-vue_export-helper.js");
7
- const ConferenceMainView = /* @__PURE__ */ _pluginVue_exportHelper.default(conference_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-b4d71215"]]);
7
+ const ConferenceMainView = /* @__PURE__ */ _pluginVue_exportHelper.default(conference_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-3323a5f0"]]);
8
8
  exports.default = ConferenceMainView;
@@ -280,11 +280,14 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
280
280
  content: Vue.withCtx(() => [
281
281
  Vue.renderSlot(_ctx.$slots, "content", {}, void 0, true)
282
282
  ]),
283
+ contentH5: Vue.withCtx(() => [
284
+ Vue.renderSlot(_ctx.$slots, "contentH5", {}, void 0, true)
285
+ ]),
283
286
  _: 3
284
287
  }, 512), [
285
288
  [Vue.vShow, Vue.unref(showRoomTool)]
286
289
  ]),
287
- Vue.createVNode(Vue.unref(index$3.default), null, {
290
+ Vue.createVNode(Vue.unref(index$3.default), { onOnVote: onVote }, {
288
291
  content: Vue.withCtx(() => [
289
292
  Vue.renderSlot(_ctx.$slots, "content", {}, void 0, true)
290
293
  ]),
package/lib/index.js CHANGED
@@ -3635,6 +3635,46 @@ to {
3635
3635
  border-radius: 8px;
3636
3636
  color: var(--text-color-primary);
3637
3637
  background-color: var(--button-color-secondary-default);
3638
+ }.contact-container[data-v-b0e5925b] {
3639
+ position: fixed;
3640
+ top: 0;
3641
+ bottom: 0;
3642
+ left: 0;
3643
+ z-index: 11;
3644
+ box-sizing: border-box;
3645
+ width: 100vw;
3646
+ height: auto;
3647
+ background-color: var(--uikit-color-black-8);
3648
+ }
3649
+ .contact-container .container-title-box[data-v-b0e5925b] {
3650
+ width: 100vw;
3651
+ height: 6vh;
3652
+ background-color: var(--uikit-color-black-8);
3653
+ display: flex;
3654
+ align-items: center;
3655
+ justify-content: center;
3656
+ }
3657
+ .contact-container .container-title-box .icon-container[data-v-b0e5925b] {
3658
+ position: absolute;
3659
+ top: 0;
3660
+ left: 0;
3661
+ box-sizing: content-box;
3662
+ width: 10px;
3663
+ height: 18px;
3664
+ padding: 20px 25px;
3665
+ background-size: cover;
3666
+ }
3667
+ .contact-container .container-title-box .close-icon[data-v-b0e5925b] {
3668
+ background-size: cover;
3669
+ }
3670
+ .contact-container .bottom-box[data-v-b0e5925b] {
3671
+ width: 100vw;
3672
+ height: 7vh;
3673
+ background-color: var(--uikit-color-black-8);
3674
+ }
3675
+ .ndsc-img-box[data-v-b0e5925b] {
3676
+ width: 24px;
3677
+ height: 24px;
3638
3678
  }.tool-box[data-v-34681937] {
3639
3679
  position: absolute;
3640
3680
  bottom: 72px;
@@ -3664,7 +3704,7 @@ to {
3664
3704
  .tool-box .tool-box-item[data-v-34681937]:hover {
3665
3705
  border-radius: 8px;
3666
3706
  background-color: var(--list-color-hover);
3667
- }.footer-container[data-v-f3bbac91] {
3707
+ }.footer-container[data-v-90dd0d72] {
3668
3708
  position: absolute;
3669
3709
  bottom: 0;
3670
3710
  display: flex;
@@ -3966,6 +4006,9 @@ to {
3966
4006
  border-radius: 8px;
3967
4007
  color: var(--text-color-primary);
3968
4008
  background-color: var(--button-color-secondary-default);
4009
+ }.ndsc-img-box[data-v-ca02c770] {
4010
+ width: 24px;
4011
+ height: 24px;
3969
4012
  }.footer-container[data-v-4afcea78] {
3970
4013
  position: absolute;
3971
4014
  bottom: 0;
@@ -5075,17 +5118,14 @@ to {
5075
5118
  font-size: 16px;
5076
5119
  font-weight: 400;
5077
5120
  text-align: end;
5078
- }.more-container[data-v-41107c5f] {
5079
- padding: 20px;
5080
- }
5081
- .more-container .more-title[data-v-41107c5f] {
5121
+ }.more-container .more-title[data-v-183c195c] {
5082
5122
  display: flex;
5083
5123
  align-items: center;
5084
5124
  }
5085
- .more-container .more-title .email-icon[data-v-41107c5f] {
5125
+ .more-container .more-title .email-icon[data-v-183c195c] {
5086
5126
  color: var(--uikit-color-gray-7);
5087
5127
  }
5088
- .more-container .more-title .more-notice[data-v-41107c5f] {
5128
+ .more-container .more-title .more-notice[data-v-183c195c] {
5089
5129
  width: 100%;
5090
5130
  height: 22px;
5091
5131
  padding-left: 8px;
@@ -5094,15 +5134,15 @@ to {
5094
5134
  line-height: 22px;
5095
5135
  color: var(--text-color-primary);
5096
5136
  }
5097
- .more-container .more-item[data-v-41107c5f] {
5137
+ .more-container .more-item[data-v-183c195c] {
5098
5138
  position: relative;
5099
5139
  display: flex;
5100
5140
  flex-direction: column;
5101
5141
  }
5102
- .more-container .more-item[data-v-41107c5f]:not(:first-child) {
5142
+ .more-container .more-item[data-v-183c195c]:not(:first-child) {
5103
5143
  margin-top: 20px;
5104
5144
  }
5105
- .more-container .more-item:not(:first-child) .item-title[data-v-41107c5f] {
5145
+ .more-container .more-item:not(:first-child) .item-title[data-v-183c195c] {
5106
5146
  width: 100%;
5107
5147
  padding-bottom: 8px;
5108
5148
  font-size: 14px;
@@ -5110,7 +5150,7 @@ to {
5110
5150
  line-height: 22px;
5111
5151
  color: var(--text-color-primary);
5112
5152
  }
5113
- .more-container .more-item:not(:first-child) .more-content[data-v-41107c5f] {
5153
+ .more-container .more-item:not(:first-child) .more-content[data-v-183c195c] {
5114
5154
  position: relative;
5115
5155
  box-sizing: border-box;
5116
5156
  display: inline-block;
@@ -5130,7 +5170,7 @@ to {
5130
5170
  background-color: var(--bg-color-input);
5131
5171
  border: 1px solid var(--stroke-color-module);
5132
5172
  }
5133
- .more-container .more-item:not(:first-child) .copy-icon[data-v-41107c5f] {
5173
+ .more-container .more-item:not(:first-child) .copy-icon[data-v-183c195c] {
5134
5174
  position: absolute;
5135
5175
  top: 45px;
5136
5176
  right: 10px;
@@ -9168,7 +9208,7 @@ body, html {
9168
9208
  }
9169
9209
  .tui-room :not([class|=el]) {
9170
9210
  transition: background-color 0.3s, color 0.3s, box-shadow 0.3s;
9171
- }.tui-room[data-v-b4d71215] {
9211
+ }.tui-room[data-v-3323a5f0] {
9172
9212
  position: relative;
9173
9213
  display: flex;
9174
9214
  flex-direction: column;
@@ -9180,7 +9220,7 @@ body, html {
9180
9220
  text-align: left;
9181
9221
  background-color: var(--bg-color-topbar);
9182
9222
  }
9183
- .tui-room .header[data-v-b4d71215] {
9223
+ .tui-room .header[data-v-3323a5f0] {
9184
9224
  position: absolute;
9185
9225
  top: 0;
9186
9226
  left: 0;
@@ -9191,20 +9231,20 @@ body, html {
9191
9231
  border-bottom: 1px solid var(--stroke-color-primary);
9192
9232
  box-shadow: 0 1px 0 var(--uikit-color-black-8);
9193
9233
  }
9194
- .tui-room .content[data-v-b4d71215] {
9234
+ .tui-room .content[data-v-3323a5f0] {
9195
9235
  position: absolute;
9196
9236
  top: 0;
9197
9237
  width: 100%;
9198
9238
  height: 100%;
9199
9239
  background-color: var(--bg-color-topbar);
9200
9240
  }
9201
- .tui-room.tui-room-h5[data-v-b4d71215] {
9241
+ .tui-room.tui-room-h5[data-v-3323a5f0] {
9202
9242
  width: 100%;
9203
9243
  min-width: 350px;
9204
9244
  height: 100%;
9205
9245
  min-height: 525px;
9206
9246
  }
9207
- #roomContainer.chat-room[data-v-b4d71215] {
9247
+ #roomContainer.chat-room[data-v-3323a5f0] {
9208
9248
  position: absolute;
9209
9249
  top: 0;
9210
9250
  right: 0;
@@ -9216,8 +9256,8 @@ body, html {
9216
9256
  margin: auto;
9217
9257
  border-radius: 10px;
9218
9258
  }
9219
- #roomContainer.tui-room-h5[data-v-b4d71215],
9220
- #roomContainer .chat-room[data-v-b4d71215] {
9259
+ #roomContainer.tui-room-h5[data-v-3323a5f0],
9260
+ #roomContainer .chat-room[data-v-3323a5f0] {
9221
9261
  width: 100%;
9222
9262
  height: 100%;
9223
9263
  }.user-info-container[data-v-9e9aff53] {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ndscnj/roomkit-web-vue3",
3
- "version": "25.12.2418",
3
+ "version": "25.12.2420",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.mjs",
6
6
  "types": "./es/index.d.ts",
@@ -5,7 +5,7 @@
5
5
  :title="t('Vote')"
6
6
  @click-icon="toggleMoreSidebar"
7
7
  >
8
- <IconMore size="24" />
8
+ <img class="ndsc-img-box" src="../../../assets/imgs/vote-icon.png" alt=""/>
9
9
  </icon-button>
10
10
  </div>
11
11
  </template>
@@ -28,4 +28,9 @@ function toggleMoreSidebar() {
28
28
  basicStore.setSidebarName('vote');
29
29
  }
30
30
  </script>
31
- <style lang="scss" scoped></style>
31
+ <style lang="scss" scoped>
32
+ .ndsc-img-box{
33
+ width:24px;
34
+ height: 24px
35
+ }
36
+ </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,13 @@
14
14
  v-if="!roomStore.isSpeakAfterTakingSeatMode"
15
15
  v-tap="() => handleControlClick('chatControl')"
16
16
  />
17
+ <voteControl
18
+ @click="handleControlClick('voteControl')"
19
+ >
20
+ <template #contentH5>
21
+ <slot name="contentH5"></slot>
22
+ </template>
23
+ </voteControl>
17
24
  <AIControl
18
25
  @click="handleControlClick('AIControl')"
19
26
  />
@@ -46,6 +53,7 @@ import ChatControl from '../ChatControl.vue';
46
53
  import MasterApplyControl from '../ManageStageControl.vue';
47
54
  import MemberApplyControl from '../ApplyControl/MemberApplyControl.vue';
48
55
  import MoreControl from '../MoreControl/index';
56
+ import voteControl from '../voteControl.vue';
49
57
  import AIControl from '../AIControl.vue';
50
58
  import bus from '../../../hooks/useMitt';
51
59
  import vTap from '../../../directives/vTap';
@@ -1,14 +1,21 @@
1
1
  <template>
2
- <div class="vote-control-container">
2
+ <div class="more-control-container">
3
3
  <icon-button
4
4
  :is-active="sidebarName === 'vote'"
5
5
  :title="t('Vote')"
6
6
  @click-icon="toggleToolBox"
7
7
  >
8
- <IconAIIcon size="24" />
8
+ <img class="ndsc-img-box" src="../../assets/imgs/vote-icon.png" alt=""/>
9
9
  </icon-button>
10
10
  <div class="contact-container" v-if="showToolBox">
11
- <slot name="content"></slot>
11
+ <div class="container-title-box">
12
+ <span @click="handleClose" class="icon-container">
13
+ <IconArrowStrokeBack size="10" class="close-icon" />
14
+ </span>
15
+ <div class="tool-box-item">表决</div>
16
+ </div>
17
+ <slot name="contentH5"></slot>
18
+ <div class="bottom-box"></div>
12
19
  </div>
13
20
  </div>
14
21
  </template>
@@ -18,10 +25,8 @@ import { roomService } from '../../services';
18
25
  import { defineEmits, ref,computed,watch } from 'vue';
19
26
  import { useI18n } from '../../locales';
20
27
  import IconButton from '../common/base/IconButton.vue';
21
- import {
22
- IconAIIcon,
23
- } from '@tencentcloud/uikit-base-component-vue3';
24
- import roomVote from '../RoomVote';
28
+ import { IconArrowStrokeBack } from '@tencentcloud/uikit-base-component-vue3';
29
+ import { useBasicStore } from '../../stores/basic';
25
30
  const { basicStore } = roomService;
26
31
  const sidebarName = computed(() => basicStore.sidebarName);
27
32
  const { t } = useI18n();
@@ -35,8 +40,10 @@ function toggleToolBox() {
35
40
  visible: showToolBox.value,
36
41
  });
37
42
  }
38
- function handleOnCloseContact() {
39
- showToolBox.value = false;
43
+ const basicStoreNew = useBasicStore();
44
+ function handleClose() {
45
+ basicStoreNew.setSidebarOpenStatus(false);
46
+ basicStoreNew.setSidebarName('');
40
47
  }
41
48
  </script>
42
49
 
@@ -51,5 +58,35 @@ function handleOnCloseContact() {
51
58
  width: 100vw;
52
59
  height: auto;
53
60
  background-color: var(--uikit-color-black-8);
61
+ .container-title-box{
62
+ width: 100vw;
63
+ height: 6vh;
64
+ background-color: var(--uikit-color-black-8);
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ .icon-container {
69
+ position: absolute;
70
+ top: 0;
71
+ left: 0;
72
+ box-sizing: content-box;
73
+ width: 10px;
74
+ height: 18px;
75
+ padding: 20px 25px;
76
+ background-size: cover;
77
+ }
78
+ .close-icon {
79
+ background-size: cover;
80
+ }
81
+ }
82
+ .bottom-box{
83
+ width: 100vw;
84
+ height: 7vh;
85
+ background-color: var(--uikit-color-black-8);
86
+ }
87
+ }
88
+ .ndsc-img-box{
89
+ width:24px;
90
+ height: 24px
54
91
  }
55
92
  </style>
@@ -9,7 +9,6 @@
9
9
 
10
10
  <style lang="scss" scoped>
11
11
  .more-container {
12
- padding: 20px;
13
12
 
14
13
  .more-title {
15
14
  display: flex;