index.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <div :class="[(isShowCreateGroup || isShowManageGroup || isShowSelectMember) && 'tui-group']">
  3. <CreateGroup v-if="isShowCreateGroup" />
  4. <ManageGroup v-if="isShowManageGroup" />
  5. <SelectMember v-if="isShowSelectMember" />
  6. </div>
  7. </template>
  8. <script lang="ts" setup>
  9. import {
  10. TUIStore,
  11. StoreName,
  12. } from '@tencentcloud/chat-uikit-engine';
  13. import { ref } from '../../adapter-vue';
  14. import CreateGroup from './create-group/index.vue';
  15. import ManageGroup from './manage-group/index.vue';
  16. import SelectMember from './select-member/index.vue';
  17. const isShowCreateGroup = ref(false);
  18. const isShowManageGroup = ref(false);
  19. const isShowSelectMember = ref(false);
  20. TUIStore.watch(StoreName.GRP, {
  21. isShowCreateComponent: (data: any) => {
  22. if (data) {
  23. isShowCreateGroup.value = true;
  24. } else {
  25. isShowCreateGroup.value = false;
  26. }
  27. },
  28. isShowManageComponent: (data: any) => {
  29. if (data) {
  30. isShowManageGroup.value = true;
  31. } else {
  32. isShowManageGroup.value = false;
  33. }
  34. },
  35. isShowSelectComponent: (data: any) => {
  36. if (data) {
  37. isShowSelectMember.value = true;
  38. } else {
  39. isShowSelectMember.value = false;
  40. }
  41. },
  42. });
  43. </script>
  44. <style lang="scss" scoped>
  45. .tui-group {
  46. width: 100%;
  47. height: 100%;
  48. }
  49. </style>