import { request } from '@/utils/request' /** 模型预览状态 */ export type PlmModelPreviewStatus = 'ready' | 'converting' | 'failed' | 'not_found' /** 预览请求参数(按业务场景传其一组合即可) */ export interface PlmModelPreviewQuery { /** 生产订单 id */ orderItemId?: number | string /** 物料编码 / 图号 */ materialCode?: string /** PLM 图号(不传则后端可用 materialCode) */ drawingNo?: string /** 工序计划 id */ processPlanId?: number | string /** 派工任务 id */ dispatchId?: number | string } /** 预览结果 */ export interface PlmModelPreviewResult { status: PlmModelPreviewStatus /** glTF / glb 访问地址(相对或绝对) */ previewUrl?: string message?: string materialCode?: string drawingNo?: string materialName?: string originalFormat?: string } /** 打开预览抽屉时的上下文 */ export interface PlmModelOpenContext extends PlmModelPreviewQuery { title?: string materialName?: string } export const plmModelApi = { /** * 获取三维模型预览(后端:PLM 按需下载 → 转 glTF) * 首次可能返回 converting,前端需轮询直至 ready */ getPreview(params: PlmModelPreviewQuery) { return request({ url: '/biz/plm/model/preview', method: 'get', params, timeout: 600000, }) }, }