|
@@ -3,7 +3,7 @@
|
|
|
<n-config-provider :theme="themes['dark']">
|
|
|
<n-message-provider>
|
|
|
<n-layout has-sider class="layout">
|
|
|
- <n-layout-sider
|
|
|
+ <!-- <n-layout-sider
|
|
|
collapse-mode="width"
|
|
|
:collapsed-width="10"
|
|
|
:width="200"
|
|
@@ -12,7 +12,7 @@
|
|
|
bordered
|
|
|
>
|
|
|
<sceneList></sceneList>
|
|
|
- </n-layout-sider>
|
|
|
+ </n-layout-sider> -->
|
|
|
<n-layout-content content-style="padding: 0px;">
|
|
|
<iframe
|
|
|
v-if="isOK"
|
|
@@ -26,7 +26,7 @@
|
|
|
class="page-result"
|
|
|
status="403"
|
|
|
title="403 禁止访问"
|
|
|
- description="服务器配置出错,请联系管理人员"
|
|
|
+ description="当前场景非公开"
|
|
|
>
|
|
|
</n-result>
|
|
|
</n-layout-content>
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
NConfigProvider,
|
|
|
NMessageProvider,
|
|
|
NLayout,
|
|
|
- NLayoutSider,
|
|
|
+ // NLayoutSider,
|
|
|
NLayoutContent,
|
|
|
GlobalTheme,
|
|
|
darkTheme,
|
|
@@ -51,32 +51,40 @@ import {
|
|
|
} from "naive-ui";
|
|
|
import { onMounted, ref, computed } from "vue";
|
|
|
import { useUrlSearchParams } from "@vueuse/core";
|
|
|
-import sceneList from "./components/sceneList.vue";
|
|
|
+import { getRoomInfo, dimissMissRoom } from "./http.ts";
|
|
|
+// import sceneList from "./components/sceneList.vue";
|
|
|
const isOK = ref(true);
|
|
|
// const iframe = ref(
|
|
|
// "https://127.0.0.1:6100/livestream/?vruserId=066893f525e56f09ce8b4420dff7e068&roomId=fd_22253&role=leader&avatar=https%3A%2F%2F4dkk.4dage.com%2Ftake-look%2Fimages%2Fother%2F1573b607db124917804edfaf1887df7a.jpeg&name=Gemer1&isTour=0&m=KJ-t-wOXfx2SDFy&vlog=1"
|
|
|
// );
|
|
|
interface needParams {
|
|
|
avatar: string;
|
|
|
+ name?: string;
|
|
|
isTour?: number;
|
|
|
m: string;
|
|
|
role: string;
|
|
|
roomId: string;
|
|
|
vlog?: string;
|
|
|
vruserId: string;
|
|
|
+ fromMiniApp?: number;
|
|
|
+ redirect?: string;
|
|
|
}
|
|
|
const params: needParams = useUrlSearchParams("history");
|
|
|
+const searchParams = new URLSearchParams(
|
|
|
+ Object.assign({ platform: "fd" }, params ? params : {})
|
|
|
+);
|
|
|
+const iframeDomain = import.meta.env.VITE_APP_IFRAME_URL;
|
|
|
+
|
|
|
+let url = searchParams.toString();
|
|
|
|
|
|
const iframeURL = computed(() => {
|
|
|
- const searchParams = new URLSearchParams(
|
|
|
- Object.assign({ platform: "fire" }, params ? params : {})
|
|
|
- );
|
|
|
- const iframeDomain = import.meta.env.VITE_APP_IFRAME_URL;
|
|
|
- const url = searchParams.toString();
|
|
|
+ searchParams.set("fromMiniApp", "0");
|
|
|
+ searchParams.set("isTour", "0");
|
|
|
+ // searchParams.delete("redirect");
|
|
|
return iframeDomain + "?" + url;
|
|
|
});
|
|
|
|
|
|
-if (!params.m || !params.role || !params.vruserId) {
|
|
|
+if (!params.m || !params.role || !params.roomId) {
|
|
|
isOK.value = false;
|
|
|
}
|
|
|
|
|
@@ -89,25 +97,61 @@ const loadFrame = (event: Event) => {
|
|
|
// console.log("target", event.target);
|
|
|
const ele = event.target as any as HTMLIFrameElement;
|
|
|
if (ele.contentWindow) {
|
|
|
-
|
|
|
}
|
|
|
};
|
|
|
-const getIframeMessage = (event: MessageEvent) => {
|
|
|
+const getIframeMessage = async (event: MessageEvent) => {
|
|
|
if ("type" in event.data) {
|
|
|
const { type, data } = event.data;
|
|
|
if (type === "metadata") {
|
|
|
document.title = data.title;
|
|
|
console.warn("getIframeMessage", data);
|
|
|
}
|
|
|
+ if (type === "exit") {
|
|
|
+ console.log("火调退出");
|
|
|
+ if (params.role === "leader") {
|
|
|
+ const redirect = decodeURIComponent(
|
|
|
+ decodeURIComponent(params.redirect || "")
|
|
|
+ );
|
|
|
+ //解散房间 ----
|
|
|
+ const res = await dimissMissRoom(params.roomId);
|
|
|
+ if (res && res.data && res.data.code === 0) {
|
|
|
+ setTimeout(() => {
|
|
|
+ window.location.href = redirect;
|
|
|
+ }, 500);
|
|
|
+ } else {
|
|
|
+ isOK.value = false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ isOK.value = false;
|
|
|
+ window.location.search = "";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (type === "fillName") {
|
|
|
+ searchParams.set("name", data);
|
|
|
+ url = searchParams.toString();
|
|
|
+ const reloadURL = location.origin + location.pathname + "?" + url;
|
|
|
+ history.replaceState(null, "", reloadURL);
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-onMounted(() => {
|
|
|
+onMounted(async () => {
|
|
|
const frameEle = document.getElementById("mainFrame");
|
|
|
if (frameEle) {
|
|
|
frameEle.addEventListener("load", loadFrame, true);
|
|
|
}
|
|
|
window.addEventListener("message", getIframeMessage, false);
|
|
|
+ const res = await getRoomInfo(params.roomId);
|
|
|
+ if (res && res.data.code === 0) {
|
|
|
+ console.log("res", res.data.data);
|
|
|
+ const { roomStatus } = res.data.data;
|
|
|
+ console.log("当前房间状态::", roomStatus);
|
|
|
+ if (roomStatus === 2 && params.role !== "leader") {
|
|
|
+ isOK.value = false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ isOK.value = false;
|
|
|
+ }
|
|
|
});
|
|
|
</script>
|
|
|
|