index.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <transition mode="out-in">
  3. <div>
  4. <dialogIndex @closeDialog="closeDialog" @confirmDialog="confirmDialog" v-if="dialog == 'dialogIndex'"></dialogIndex>
  5. <dialogShare :shareLink="shareLink" @closeDialog="closeDialog" v-if="dialog == 'dialogShare'"></dialogShare>
  6. <createdRoom v-if="showCreated" @closeCreated="closeCreated" @createdConfirm="createdConfirm()"></createdRoom>
  7. <PageRtcLive @closeSocket="confirmDialog" @openDialog="openDialog" v-if="show"></PageRtcLive>
  8. </div>
  9. </transition>
  10. </template>
  11. <script setup>
  12. import PageRtcLive from "./PageRtcLive";
  13. // import Draw from "./paint/Draw";
  14. import createdRoom from "./dialog/createdRoom";
  15. import dialogIndex from "./dialog/index.vue";
  16. import dialogShare from "./dialog/share.vue";
  17. import browser from "@/utils/browser";
  18. import { onMounted, watch, computed, ref, nextTick } from "vue";
  19. import { useStore } from "vuex";
  20. import { useApp, getApp } from "@/app";
  21. const store = useStore();
  22. const shareLink = ref("");
  23. const dialog = ref("");
  24. const show = ref(false);
  25. const showPaint = ref(true);
  26. const showCreated = ref(false);
  27. const roomId = ref(browser.getURLParam("roomId"));
  28. const role = ref(browser.getURLParam("role"));
  29. const userName = ref(browser.getURLParam("name"));
  30. const socket = computed(() => store.getters["rtc/socket"]);
  31. const openDialog = (str, link) => {
  32. shareLink.value = link;
  33. dialog.value = str;
  34. };
  35. const closeDialog = (str, link) => {
  36. dialog.value = "";
  37. dialog.value = str;
  38. };
  39. const confirmDialog = async () => {
  40. await getApp().Connect.follow.exit();
  41. store.commit("rtc/setIsJoined", false);
  42. if (socket.value) {
  43. console.log(socket.value);
  44. socket.value.close();
  45. store.commit("rtc/setSocket", null);
  46. }
  47. let tempUrl = window.location.href;
  48. ["mode", "name", "role", "roomId", "userId"].forEach((item) => {
  49. tempUrl = browser.replaceQueryString(tempUrl, item, "");
  50. });
  51. history.replaceState(null, null, tempUrl);
  52. store.commit("showShoppingguide", false);
  53. dialog.value = "";
  54. };
  55. const closeCreated = (str, link) => {
  56. store.commit("showShoppingguide", false);
  57. showCreated.value = false;
  58. };
  59. const createdConfirm = (str, link) => {
  60. showCreated.value = false;
  61. show.value = true;
  62. };
  63. onMounted(() => {
  64. useApp().then(async (sdk) => {
  65. await nextTick();
  66. if (userName.value) {
  67. createdConfirm();
  68. } else {
  69. showCreated.value = true;
  70. }
  71. });
  72. // showCreated.value = true;
  73. });
  74. </script>
  75. <style lang="scss" scoped></style>