|
@@ -1,72 +1,64 @@
|
|
|
import {
|
|
|
addRelicsSceneFetch,
|
|
|
delRelicsSceneFetch,
|
|
|
- relicsInfoFetch,
|
|
|
relicsScenesFetch,
|
|
|
- updateRelicsFetch,
|
|
|
updateRelicsScenePosNameFetch,
|
|
|
} from "@/request";
|
|
|
import { computed, ref } from "vue";
|
|
|
-import { Relics, RelicsScene, RelicsScenePoint } from "@/request/type";
|
|
|
+import { Scene, ScenePoint } from "@/request/type";
|
|
|
import { gHeaders } from "@/request/state";
|
|
|
+import { relics } from "./relics";
|
|
|
+import { DeviceType as SceneType } from "./device";
|
|
|
|
|
|
-export type { RelicsScene, RelicsScenePoint };
|
|
|
-
|
|
|
-export const relics = ref<Relics>();
|
|
|
-export const scenes = ref<RelicsScene[]>([]);
|
|
|
+export type { Scene, ScenePoint };
|
|
|
|
|
|
+export const scenes = ref<Scene[]>([]);
|
|
|
export const scenePoints = computed(() =>
|
|
|
scenes.value.reduce((t, scene) => {
|
|
|
t.push(...scene.scenePos);
|
|
|
return t;
|
|
|
- }, [] as RelicsScenePoint[])
|
|
|
+ }, [] as ScenePoint[])
|
|
|
);
|
|
|
+export const relicsId = computed(() => relics.value!.relicsId);
|
|
|
|
|
|
-const fileNames = new Array(6).fill(0);
|
|
|
-export const getPointPano = (sceneCode: string, pid: number) =>
|
|
|
- fileNames.map(
|
|
|
- (_, i) =>
|
|
|
- `https://4dkk.4dage.com/scene_view_data/${sceneCode}/images/tiles/4k/${pid}_skybox${i}.jpg`
|
|
|
- );
|
|
|
+// https://4dkankan.oss-cn-shenzhen.aliyuncs.com/scene_view_data/KJ-t-OgSx9XIrvNQ/images/panoramas/22.jpg?x-oss-process=image/resize,m_fixed,w_6144&171342528615
|
|
|
+// const fileNames = new Array(6).fill(0);
|
|
|
+// export const getPointPano = (sceneCode: string, pid: number) =>
|
|
|
+// fileNames.map(
|
|
|
+// (_, i) =>
|
|
|
+// `https://4dkk.4dage.com/scene_view_data/${sceneCode}/images/tiles/4k/${pid}_skybox${i}.jpg`
|
|
|
+// );
|
|
|
|
|
|
-const refreshScenes = async (relicsId: number) => {
|
|
|
- scenes.value = await relicsScenesFetch(relicsId);
|
|
|
+export const getPointPano = (sceneCode: string, pid: number) =>
|
|
|
+ `https://4dkankan.oss-cn-shenzhen.aliyuncs.com/scene_view_data/${sceneCode}/images/panoramas/${pid}.jpg`;
|
|
|
+// `https://4dkk.4dage.com/scene_view_data/${sceneCode}/images/pan/high/${pid}.jpg`;
|
|
|
+export const refreshScenes = async () => {
|
|
|
+ scenes.value = await relicsScenesFetch(relicsId.value);
|
|
|
};
|
|
|
|
|
|
-export const initRelics = async (relicsId: number) => {
|
|
|
- const data = await Promise.all([
|
|
|
- relicsInfoFetch(relicsId),
|
|
|
- refreshScenes(relicsId),
|
|
|
- ]);
|
|
|
- [relics.value] = data;
|
|
|
+export const addRelicsScene = async (sceneCode: string) => {
|
|
|
+ await addRelicsSceneFetch(relicsId.value, sceneCode);
|
|
|
+ await refreshScenes();
|
|
|
};
|
|
|
-export const updateRelicsName = async (name: string) => {
|
|
|
- await updateRelicsFetch({ ...relics.value!, name });
|
|
|
- relics.value!.name = name;
|
|
|
+export const delRelicsScene = async (scene: Scene) => {
|
|
|
+ await delRelicsSceneFetch(relicsId.value, scene.id);
|
|
|
+ await refreshScenes();
|
|
|
};
|
|
|
|
|
|
-export const addScene = async (sceneCode: string) => {
|
|
|
- await addRelicsSceneFetch(relics.value!.relicsId, sceneCode);
|
|
|
- await refreshScenes(relics.value!.relicsId);
|
|
|
-};
|
|
|
-export const delScene = async (scene: RelicsScene) => {
|
|
|
- await delRelicsSceneFetch(relics.value!.relicsId, scene.id);
|
|
|
- await refreshScenes(relics.value!.relicsId);
|
|
|
-};
|
|
|
export const updateScenePointName = async (
|
|
|
- point: RelicsScenePoint,
|
|
|
+ point: ScenePoint,
|
|
|
newName: string
|
|
|
) => {
|
|
|
await updateRelicsScenePosNameFetch(point.id, newName);
|
|
|
- if (relics.value) {
|
|
|
- await refreshScenes(relics.value.relicsId);
|
|
|
- }
|
|
|
+ relicsId.value && (await refreshScenes());
|
|
|
};
|
|
|
|
|
|
-export const gotoScene = (scene: RelicsScene) => {
|
|
|
+export const gotoScene = (scene: Scene, edit = false) => {
|
|
|
const params = new URLSearchParams();
|
|
|
params.set("m", scene.sceneCode);
|
|
|
- params.set("token", gHeaders.token);
|
|
|
+ if (edit) {
|
|
|
+ params.set("token", gHeaders.token);
|
|
|
+ }
|
|
|
params.set("lang", "zh");
|
|
|
if (scene.sceneCode.startsWith("KJ")) {
|
|
|
window.open(`https://test.4dkankan.com/spg.html?` + params.toString());
|
|
@@ -74,3 +66,28 @@ export const gotoScene = (scene: RelicsScene) => {
|
|
|
window.open(`https://uat-laser.4dkankan.com/uat/?` + params.toString());
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
+// 普通场景状态
|
|
|
+export enum SceneStatus {
|
|
|
+ ERR = -1,
|
|
|
+ RUN = 0,
|
|
|
+ SUCCESS = 1,
|
|
|
+ // DEL = 2,
|
|
|
+ // ARCHIVE = 3,
|
|
|
+ // RERUN = 4,
|
|
|
+}
|
|
|
+
|
|
|
+export { SceneType };
|
|
|
+export const SceneTypeDesc: { [key in SceneType]: string } = {
|
|
|
+ [SceneType.VR]: "全景VR",
|
|
|
+ [SceneType.CLUNT]: "点云场景",
|
|
|
+};
|
|
|
+
|
|
|
+export const SceneStatusDesc: { [key in SceneStatus]: string } = {
|
|
|
+ // [SceneStatus.DEL]: "场景被删",
|
|
|
+ // [SceneStatus.ARCHIVE]: "封存",
|
|
|
+ // [SceneStatus.RERUN]: "重新计算中",
|
|
|
+ [SceneStatus.RUN]: "计算中",
|
|
|
+ [SceneStatus.ERR]: "计算失败",
|
|
|
+ [SceneStatus.SUCCESS]: "计算成功",
|
|
|
+};
|