scene.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import axios from './instance'
  2. import { MODEL_LIST, MODEL_SIGN, SCENE_LIST_ALL } from './constant'
  3. import { params } from '@/env'
  4. export enum SceneStatus {
  5. DEL = -1,
  6. RUN = 0,
  7. ERR = 1,
  8. SUCCESS = 2,
  9. ARCHIVE = 3,
  10. RERUN = 4,
  11. }
  12. export enum SceneType {
  13. SWKK = 0,
  14. SWKJ = 1,
  15. SWSS = 2,
  16. SWMX = 3,
  17. SWSSMX = 4,
  18. SWYDSS = 5,
  19. SWYDMX = 6,
  20. }
  21. export const SceneTypeDesc: Record<SceneType, string> = {
  22. [SceneType.SWKK]: '八目',
  23. [SceneType.SWKJ]: '双目转台',
  24. [SceneType.SWSS]: '激光转台点云场景',
  25. [SceneType.SWMX]: '三维模型',
  26. [SceneType.SWSSMX]: '激光转台Mesh场景',
  27. [SceneType.SWYDSS]: '激光移动点云场景',
  28. [SceneType.SWYDMX]: '激光移动Mesh场景'
  29. }
  30. export interface Scene {
  31. createTime: string
  32. id: number
  33. isLaser: boolean
  34. modelDateType: string
  35. modelGlbUrl: string
  36. model3dgsUrl: string;
  37. modelShpUrl: string;
  38. modelId: number
  39. modelObjUrl: string
  40. modelSize: number
  41. status: SceneStatus
  42. modelTitle: string
  43. name: string
  44. num: string
  45. sceneName: string
  46. snCode: string
  47. thumb: string
  48. title: string
  49. type: SceneType
  50. }
  51. export type Scenes = Scene[]
  52. const toLocalScene = (scene: Scene) => ({
  53. ...scene,
  54. num: scene.type === SceneType.SWMX ? scene.modelId.toString() : scene.num,
  55. name: scene.name || scene.sceneName || scene.modelTitle,
  56. })
  57. export const fetchScenes = async () => {
  58. const scenes = await axios.get<Scenes>(MODEL_LIST, { params: { caseId: params.caseId } })
  59. return scenes.map(toLocalScene)
  60. }
  61. export const fetchScenesAll = async (params: {numList: Scene['num'][], type: SceneType}) => {
  62. const scenes = await axios.post<Scenes>(SCENE_LIST_ALL, params)
  63. return scenes.map(toLocalScene)
  64. }
  65. export const fetchScene = async (modelId: Scene['modelId']) => {
  66. const scene = await axios.get<Scene>(MODEL_SIGN, { params: { modelId } })
  67. return toLocalScene(scene)
  68. }