content.ts 3.74 KB
import { defHttp } from '@/utils/external/http/axios'
import {
  BaseSaveContentParams,
  BaseUpdateContentParams,
  DataViewListRecord,
  DateViewConfigurationInfoType
} from './model/contentModel'
import type { ErrorMessageMode, PaginationResult } from '/#/external/axios'
import { ChartType } from '@/views/three/items'

enum Api {
  //大屏设计器
  DATA_VIEW_CONTENT = '/data_view/content',
  //大屏内容
  DATA_VIEW = '/data_view',
  FILE_UPLOAD = '/oss/upload',
  // 针对3D模型
  THREE_JS_MODEL = '/3d_component'
}

/**
 * @description: 大屏设计器 update api
 */
export function contentUpdateApi(params: BaseUpdateContentParams, mode: ErrorMessageMode = 'modal') {
  return defHttp.put<BaseUpdateContentParams>(
    {
      url: Api.DATA_VIEW_CONTENT,
      params
    },
    {
      errorMessageMode: mode
    }
  )
}

/**
 * @description: 大屏设计器 save api
 */
export function contentSaveApi(params: object, mode: ErrorMessageMode = 'modal') {
  return defHttp.post<BaseSaveContentParams>(
    {
      url: Api.DATA_VIEW_CONTENT,
      params
    },
    {
      errorMessageMode: mode
    }
  )
}

/**
 * @description: 大屏设计器 delete api
 */
export function contentDeleteApi(data: [string], mode: ErrorMessageMode = 'modal') {
  return defHttp.delete(
    {
      url: Api.DATA_VIEW_CONTENT,
      data
    },
    {
      errorMessageMode: mode
    }
  )
}

/**
 * @description:大屏内容 content get api
 */

export const getDataView = (id: string) => {
  return defHttp.get<DateViewConfigurationInfoType>({
    url: `${Api.DATA_VIEW}/get_configuration_info/${id}`
  })
}

/**
 * @description:  大屏内容 get api
 */

export const getDataViewList = (params: object) => {
  return defHttp.get<PaginationResult<DataViewListRecord>>({
    url: `${Api.DATA_VIEW}`,
    params
  })
}
/**
 * @description:  大屏内容 保存 api
 */

export const saveDataViewList = (data: object) => {
  return defHttp.put({
    url: `${Api.DATA_VIEW}`,
    data
  })
}

/**
 * @description: file Upload
 */
export const uploadFile = async (file: FormData, mode: ErrorMessageMode = 'modal') => {
  return defHttp.post(
    { url: Api.FILE_UPLOAD, params: file },
    {
      errorMessageMode: mode
    }
  )
}

/**
 * @description: 3D模型编辑 delete api
 */
export function threeJsDeleteApi(ids: string[], mode: ErrorMessageMode = 'modal') {
  return defHttp.delete(
    {
      url: Api.THREE_JS_MODEL + '?ids=' + ids
    },
    {
      errorMessageMode: mode
    }
  )
}

/**
 * @description: 3D模型编辑 分页 api
 */
export const getThreeJsModelList = (params: object) => {
  return defHttp.get<PaginationResult<ChartType>>({
    url: Api.THREE_JS_MODEL + '/page',
    params
  })
}

/**
 * @description: 3D模型 发布 api
 */
export const putThreeJsModelRelease = (params: { id: string | number; state: number }) => {
  return defHttp.put({
    url: Api.THREE_JS_MODEL + '/publish' + '/' + params['id'] + '/' + params['state'],
    params
  })
}

/**
 * @description: 3D模型 更新 api
 */
export const updateThreeJsModel = (params: { id: string; name: string }) => {
  return defHttp.put({
    url: Api.THREE_JS_MODEL + '/' + params['id'] + '/' + params['name'],
    params
  })
}

/**
 * @description: 3D模型 保存 api
 */
export function saveOrUpdateThreeJsModel(params: Recordable) {
  return defHttp.post({
    url: Api.THREE_JS_MODEL + '/' + params['id'],
    data: params['data']
  })
}

/**
 * @description: 3D模型 获取 api
 */
export function getThreeJsModel(id: string) {
  return defHttp.get({
    url: Api.THREE_JS_MODEL + '/' + id
  })
}

/**
 * @description: 3D模型 批量发布/取消发布 api
 */
export function putReleaseThreeJsModel(state: number, ids: string[]) {
  return defHttp.put({
    url: Api.THREE_JS_MODEL + '/publish/' + state,
    data: ids
  })
}