12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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[]> & { type: SceneType }> => {
- if (data.type === SceneType.SWMX) {
- const modelScenes = await axios.post<PagingResult<ServeModelScene[]>>(
- MODEL_SCENE_LIST,
- { modelTitle: data.sceneName, ...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,
- })),
- type: data.type
- }
- } else {
- const res = await axios.post<PagingResult<Scenes>>(SCENE_LIST, data)
- return { ...res, type: data.type }
- }
- }
- // 上传模型文件
- 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 })
|