import axios from './instance' import { MODEL_LIST, MODEL_SIGN, SCENE_LIST_ALL } from './constant' import { params } from '@/env' export enum SceneStatus { DEL = -1, RUN = 0, ERR = 1, SUCCESS = 2, ARCHIVE = 3, RERUN = 4, } export enum SceneType { SWKK = 0, SWKJ = 1, SWSS = 2, SWMX = 3, SWSSMX = 4, SWYDSS = 5, SWYDMX = 6, } export const SceneTypeDesc: Record = { [SceneType.SWKK]: '八目', [SceneType.SWKJ]: '双目转台', [SceneType.SWSS]: '激光转台点云场景', [SceneType.SWMX]: '三维模型', [SceneType.SWSSMX]: '激光转台Mesh场景', [SceneType.SWYDSS]: '激光移动点云场景', [SceneType.SWYDMX]: '激光移动Mesh场景' } export interface Scene { createTime: string id: number isLaser: boolean modelDateType: string modelGlbUrl: string model3dgsUrl: string; modelShpUrl: string; modelId: number modelObjUrl: string modelSize: number status: SceneStatus modelTitle: string name: string num: string sceneName: string snCode: string thumb: string title: string type: SceneType } export type Scenes = Scene[] const toLocalScene = (scene: Scene) => ({ ...scene, num: scene.type === SceneType.SWMX ? scene.modelId.toString() : scene.num, name: scene.name || scene.sceneName || scene.modelTitle, }) export const fetchScenes = async () => { const scenes = await axios.get(MODEL_LIST, { params: { caseId: params.caseId } }) return scenes.map(toLocalScene) } export const fetchScenesAll = async (params: {numList: Scene['num'][], type: SceneType}) => { const scenes = await axios.post(SCENE_LIST_ALL, params) return scenes.map(toLocalScene) } export const fetchScene = async (modelId: Scene['modelId']) => { const scene = await axios.get(MODEL_SIGN, { params: { modelId } }) return toLocalScene(scene) }