|
@@ -5,8 +5,12 @@ import {
|
|
|
axios,
|
|
|
cancelUModel,
|
|
|
checkGenMeshScene,
|
|
|
+ copyModel,
|
|
|
+ copyScene,
|
|
|
delScene,
|
|
|
deleteModel,
|
|
|
+ downModelHash,
|
|
|
+ downSceneHash,
|
|
|
downloadSceneList,
|
|
|
genMeshSceneByCloud,
|
|
|
getModelRunProgress,
|
|
@@ -15,6 +19,7 @@ import {
|
|
|
updateModelScene,
|
|
|
uploadModel,
|
|
|
} from "@/request";
|
|
|
+import saveAs from "@/util/file-serve";
|
|
|
import { ElMessage } from "element-plus";
|
|
|
|
|
|
interface BaseScene {
|
|
@@ -53,6 +58,7 @@ export enum QuoteSceneStatus {
|
|
|
DEL = -1,
|
|
|
RUN = 0,
|
|
|
ERR = 1,
|
|
|
+ QUEUE = 5,
|
|
|
SUCCESS = 2,
|
|
|
ARCHIVE = 3,
|
|
|
RERUN = 4,
|
|
@@ -60,8 +66,10 @@ export enum QuoteSceneStatus {
|
|
|
|
|
|
export interface ModelScene extends BaseScene {
|
|
|
modelTitle: string;
|
|
|
+ renderType: string;
|
|
|
modelId: number;
|
|
|
createStatus: ModelSceneStatus;
|
|
|
+ fileNewName: string;
|
|
|
modelSize: string;
|
|
|
modelDateType: string;
|
|
|
progress?: number;
|
|
@@ -85,14 +93,24 @@ export enum SceneType {
|
|
|
export enum ModelSceneStatus {
|
|
|
ERR = -1,
|
|
|
RUN = 0,
|
|
|
+ REV = 2,
|
|
|
SUCCESS = 1,
|
|
|
CANCEL = -2,
|
|
|
}
|
|
|
|
|
|
+const downHash = async (res: string, name: string) => {
|
|
|
+ if (res.includes("code")) {
|
|
|
+ ElMessage.error(JSON.parse(res).message);
|
|
|
+ } else {
|
|
|
+ await saveAs(new Blob([res], { type: "text/plain" }), name + "-hash.txt");
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
export const setModelScene = (scene: ModelScene) =>
|
|
|
axios.post(updateModelScene, {
|
|
|
modelId: scene.modelId,
|
|
|
modelTitle: scene.modelTitle,
|
|
|
+ renderType: scene.renderType,
|
|
|
});
|
|
|
|
|
|
export const cancelUploadModelScene = (scene: ModelScene) =>
|
|
@@ -101,19 +119,42 @@ export const cancelUploadModelScene = (scene: ModelScene) =>
|
|
|
export const delModelScene = (scene: ModelScene) =>
|
|
|
axios.post(deleteModel, { modelId: scene.modelId });
|
|
|
|
|
|
-export const uploadModelScene = (
|
|
|
+export const copyModelScene = (scene: ModelScene) =>
|
|
|
+ axios.post(copyModel, { modelId: scene.modelId });
|
|
|
+
|
|
|
+export const downModelSceneHash = async (scene: ModelScene) => {
|
|
|
+ const res = (await axios.get(downModelHash, {
|
|
|
+ params: { modelId: scene.modelId, ingoreRes: true },
|
|
|
+ responseType: "text",
|
|
|
+ })) as string;
|
|
|
+ await downHash(res, scene.modelTitle);
|
|
|
+};
|
|
|
+
|
|
|
+export const uploadModelScene = async (
|
|
|
file: File,
|
|
|
progressCallback: (progress: number) => void
|
|
|
-) =>
|
|
|
- axios<undefined>({
|
|
|
+) => {
|
|
|
+ let done = false;
|
|
|
+ await axios<undefined>({
|
|
|
method: "POST",
|
|
|
url: uploadModel,
|
|
|
data: { file },
|
|
|
onUploadProgress(event: any) {
|
|
|
- progressCallback(Math.round((event.loaded / event.total) * 100) || 0);
|
|
|
+ if (!done) {
|
|
|
+ const p = Math.round((event.loaded / event.total) * 100);
|
|
|
+ if (p === 100) {
|
|
|
+ progressCallback(0);
|
|
|
+ } else {
|
|
|
+ progressCallback(p || 0);
|
|
|
+ }
|
|
|
+ console.log("进度:", p);
|
|
|
+ }
|
|
|
},
|
|
|
});
|
|
|
-
|
|
|
+ console.log("上传完成");
|
|
|
+ done = true;
|
|
|
+ progressCallback(0);
|
|
|
+};
|
|
|
export const getModelSceneStatus = async (scene: ModelScene) => {
|
|
|
const progress = (
|
|
|
await axios.get<number>(getModelRunProgress, {
|
|
@@ -145,7 +186,7 @@ type ScenePaggingParams = PaggingReq<
|
|
|
}
|
|
|
>;
|
|
|
export const getScenePagging = async (params: ScenePaggingParams) => {
|
|
|
- return (
|
|
|
+ const data = (
|
|
|
await axios.get(
|
|
|
params.type === SceneType.SWMX ? getModelSceneList : getSceneList,
|
|
|
{
|
|
@@ -153,11 +194,24 @@ export const getScenePagging = async (params: ScenePaggingParams) => {
|
|
|
}
|
|
|
)
|
|
|
).data as PaggingRes<Scene>;
|
|
|
+
|
|
|
+ return data;
|
|
|
};
|
|
|
|
|
|
export const delQuoteScene = (scene: QuoteScene) =>
|
|
|
axios.get(delScene, { params: { num: scene.num } });
|
|
|
|
|
|
+export const copyQuoteScene = (scene: QuoteScene) =>
|
|
|
+ axios.post(copyScene, { num: scene.num });
|
|
|
+
|
|
|
+export const downQuoteSceneHash = async (scene: QuoteScene) => {
|
|
|
+ const res = (await axios.get(downSceneHash, {
|
|
|
+ params: { num: scene.num, ingoreRes: true, type: scene.type },
|
|
|
+ responseType: "text",
|
|
|
+ })) as any;
|
|
|
+ await downHash(res, scene.title);
|
|
|
+};
|
|
|
+
|
|
|
export type QueryDownloadQuoteSceneParams = PaggingReq<{
|
|
|
deptId: string;
|
|
|
userName: string;
|