|
@@ -1,135 +0,0 @@
|
|
-import axios from "./instance";
|
|
|
|
-import {
|
|
|
|
- MODEL_LIST,
|
|
|
|
- INSERT_MODEL,
|
|
|
|
- UPDATE_MODEL,
|
|
|
|
- DELETE_MODEL,
|
|
|
|
- UPLOAD_HEADS,
|
|
|
|
-} from "./constant";
|
|
|
|
-
|
|
|
|
-export enum ModelType {
|
|
|
|
- SWKK = "swkk",
|
|
|
|
- SWKJ = "swkj",
|
|
|
|
- SWMX = "glb",
|
|
|
|
- SWSS = "laser",
|
|
|
|
- OSGB = "obsg",
|
|
|
|
- B3DM = "b3dm",
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export const ModelTypeDesc: Record<ModelType, string> = {
|
|
|
|
- [ModelType.SWKK]: "四维看看",
|
|
|
|
- [ModelType.SWKJ]: "四维看见",
|
|
|
|
- [ModelType.SWSS]: "四维深时",
|
|
|
|
- [ModelType.SWMX]: "三维模型",
|
|
|
|
- [ModelType.OSGB]: "osgb模型",
|
|
|
|
- [ModelType.B3DM]: "b3dm模型",
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-export interface ModelAttrs {
|
|
|
|
- show: boolean;
|
|
|
|
- scale: number;
|
|
|
|
- opacity: number;
|
|
|
|
- bottom: number;
|
|
|
|
- position: SceneLocalPos;
|
|
|
|
- rotation: SceneLocalPos;
|
|
|
|
-}
|
|
|
|
-export interface Model extends ModelAttrs {
|
|
|
|
- id: string;
|
|
|
|
- url: string;
|
|
|
|
- title: string;
|
|
|
|
- fusionId?: number;
|
|
|
|
- type: ModelType;
|
|
|
|
- size: number;
|
|
|
|
- time: string;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-interface ServiceModel {
|
|
|
|
- createTime: string;
|
|
|
|
- id: number;
|
|
|
|
- hide: number;
|
|
|
|
- modelDateType: string;
|
|
|
|
- modelUrl: string;
|
|
|
|
- fusionId?: number;
|
|
|
|
- modelSize: number;
|
|
|
|
- modelTitle: string;
|
|
|
|
- opacity: number;
|
|
|
|
- bottom: number;
|
|
|
|
- type: number;
|
|
|
|
- transform: {
|
|
|
|
- position: SceneLocalPos;
|
|
|
|
- rotation: SceneLocalPos;
|
|
|
|
- scale: [number, number, number];
|
|
|
|
- };
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const serviceToLocal = (serviceModel: ServiceModel, test = false): Model => ({
|
|
|
|
- show: !serviceModel.hide,
|
|
|
|
- scale: serviceModel.transform.scale[0],
|
|
|
|
- opacity: serviceModel.opacity || 1,
|
|
|
|
- bottom: serviceModel.bottom || 0,
|
|
|
|
- position: serviceModel.transform.position,
|
|
|
|
- rotation: serviceModel.transform.rotation,
|
|
|
|
- id: serviceModel.id.toString(),
|
|
|
|
- url: test ? "https://testgis.4dage.com/LVB2/tileset.json" : serviceModel.modelUrl,
|
|
|
|
- title: serviceModel.modelTitle,
|
|
|
|
- fusionId: serviceModel.fusionId,
|
|
|
|
- type:
|
|
|
|
- serviceModel.modelDateType === "o3dm"
|
|
|
|
- ? ModelType.B3DM
|
|
|
|
- : serviceModel.modelDateType === "osgb"
|
|
|
|
- ? ModelType.OSGB
|
|
|
|
- : serviceModel.type === 2
|
|
|
|
- ? ModelType.SWMX
|
|
|
|
- : ModelType.SWMX,
|
|
|
|
- size: serviceModel.modelSize,
|
|
|
|
- time: serviceModel.createTime,
|
|
|
|
-});
|
|
|
|
-
|
|
|
|
-const localToService = (model: Model): ServiceModel => ({
|
|
|
|
- createTime: model.time,
|
|
|
|
- id: Number(model.id),
|
|
|
|
- hide: Number(!model.show),
|
|
|
|
- fusionId: model.fusionId,
|
|
|
|
- modelDateType: model.type,
|
|
|
|
- modelUrl: model.url,
|
|
|
|
- type: model.type === ModelType.SWSS ? 2 : 3,
|
|
|
|
- modelSize: model.size,
|
|
|
|
- modelTitle: model.title,
|
|
|
|
- opacity: model.opacity,
|
|
|
|
- bottom: model.bottom,
|
|
|
|
- transform: {
|
|
|
|
- position: model.position,
|
|
|
|
- rotation: model.rotation,
|
|
|
|
- scale: [model.scale, model.scale, model.scale],
|
|
|
|
- },
|
|
|
|
-});
|
|
|
|
-
|
|
|
|
-export type Models = Model[];
|
|
|
|
-
|
|
|
|
-export const fetchModels = async () => {
|
|
|
|
- const serviceModels = await axios.post<ServiceModel[]>(MODEL_LIST);
|
|
|
|
- return serviceModels.map((item, index) => serviceToLocal(item, index == 0));
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-export const postAddModel = async (file: File) => {
|
|
|
|
- const form = new FormData();
|
|
|
|
- form.append("file", file);
|
|
|
|
-
|
|
|
|
- const serviceModel = await axios<ServiceModel>({
|
|
|
|
- url: INSERT_MODEL,
|
|
|
|
- method: "POST",
|
|
|
|
- headers: { ...UPLOAD_HEADS },
|
|
|
|
- data: form,
|
|
|
|
- });
|
|
|
|
- return serviceToLocal(serviceModel);
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-export const postUpdateModels = (model: Model) => {
|
|
|
|
- console.log("update", model);
|
|
|
|
- return axios.post<undefined>(UPDATE_MODEL, localToService(model));
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-export const postDeleteModel = (id: Model["id"]) => {
|
|
|
|
- console.log("delete");
|
|
|
|
- return axios.post<undefined>(DELETE_MODEL, { ids: [id] });
|
|
|
|
-};
|
|
|