123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import axios from './instance'
- import {
- jsonToForm,
- uploadProgressFactory,
- UploadProgressCallback
- } from 'utils'
- import {
- QuoteSceneStatus,
- ModelSceneStatus,
- SceneType,
- UPLOAD_HEADS,
- SCENE_LIST,
- MODEL_SCENE_LIST,
- UPLOAD_MODEL,
- DELETE_MODEL
- } from 'constant'
- import type { PagingResult, PagingRequest } from '.'
- import type { QuoteSceneType, ModelSceneType } from 'constant'
- export interface BaseScene {
- id: string,
- title: string
- time: string
- }
- export interface QuoteScene extends BaseScene {
- type: QuoteSceneType,
- status: QuoteSceneStatus,
- snCode: string,
- num: string
- }
- export interface ModelScene extends BaseScene {
- status: ModelSceneStatus,
- type: ModelSceneType,
- rawType: string,
- progress?: number
- }
- export type Scene = QuoteScene | ModelScene
- export interface ServeModelScene {
- modelId: string
- modelTitle: string
- modelDateType: string
- modelSize: string
- modelObjUrl: string
- modelGlbUrl: string
- createStatus: ModelSceneStatus
- createTime: string
- }
- export type Scenes = Scene[]
- // 获取场景列表
- export type GetSceneByTypeParams = PagingRequest<{type: SceneType, sceneName?: string, status?: QuoteScene['status']}>
- export const getSceneByType = async (data: GetSceneByTypeParams): Promise<PagingResult<Scene[]>> => {
- if (data.type === SceneType.SWMX) {
- const modelScenes = await axios.post<PagingResult<ServeModelScene[]>>(MODEL_SCENE_LIST, data)
- return {
- ...modelScenes,
- list: modelScenes.list.map(scene => ({
- id: scene.modelId,
- title: scene.modelTitle,
- time: scene.createTime,
- status: scene.createStatus,
- type: SceneType.SWMX,
- rawType: scene.modelDateType,
- }))
- }
- } else {
- return await axios.post<PagingResult<Scenes>>(SCENE_LIST, data)
- }
- }
- // 上传模型文件
- export type UploadModelSceneProps = { file: File, progressCallback?: UploadProgressCallback }
- export const uploadModelScene = ({ file, progressCallback }: UploadModelSceneProps) =>
- axios<undefined>({
- method: 'POST',
- url: UPLOAD_MODEL,
- data: jsonToForm({ file }),
- headers: UPLOAD_HEADS,
- onUploadProgress: progressCallback && uploadProgressFactory(progressCallback)
- })
- // 删除模型文件
- export const deleteModelScene = (modelId: ServeModelScene['modelId']) =>
- axios.post<undefined>(DELETE_MODEL, { modelId })
|