|
@@ -54,7 +54,7 @@
|
|
<template v-if="router.currentRoute.value.name === 'map'">
|
|
<template v-if="router.currentRoute.value.name === 'map'">
|
|
<template v-if="data.type === 'scene'">
|
|
<template v-if="data.type === 'scene'">
|
|
<el-icon color="#409efc" v-if="data.raw.creationMethod !== 2">
|
|
<el-icon color="#409efc" v-if="data.raw.creationMethod !== 2">
|
|
- <Delete @click.stop="delRelicsScene(data.raw)" />
|
|
|
|
|
|
+ <Delete @click.stop="delRelicsScenes([data.raw])" />
|
|
</el-icon>
|
|
</el-icon>
|
|
</template>
|
|
</template>
|
|
<el-icon v-else color="#409efc">
|
|
<el-icon v-else color="#409efc">
|
|
@@ -128,7 +128,6 @@ import {
|
|
Scene,
|
|
Scene,
|
|
scenes,
|
|
scenes,
|
|
ScenePoint,
|
|
ScenePoint,
|
|
- delRelicsScene,
|
|
|
|
updateScenePointName,
|
|
updateScenePointName,
|
|
gotoScene,
|
|
gotoScene,
|
|
relicsId,
|
|
relicsId,
|
|
@@ -136,10 +135,9 @@ import {
|
|
} from "@/store/scene";
|
|
} from "@/store/scene";
|
|
import { relics } from "@/store/relics";
|
|
import { relics } from "@/store/relics";
|
|
import SingleInput from "@/components/single-input.vue";
|
|
import SingleInput from "@/components/single-input.vue";
|
|
-import { ElMessage } from "element-plus";
|
|
|
|
import { router } from "@/router";
|
|
import { router } from "@/router";
|
|
import { selectScenes } from "../quisk";
|
|
import { selectScenes } from "../quisk";
|
|
-import { addRelicsSceneFetch, delRelicsSceneFetch } from "@/request";
|
|
|
|
|
|
+import { addRelicsScenesFetch, delRelicsScenesFetch } from "@/request";
|
|
import { exportFile, exportImage } from "./pc4Helper";
|
|
import { exportFile, exportImage } from "./pc4Helper";
|
|
|
|
|
|
const emit = defineEmits<{
|
|
const emit = defineEmits<{
|
|
@@ -187,38 +185,37 @@ const getSelectPoints = () =>
|
|
const addHandler = async () => {
|
|
const addHandler = async () => {
|
|
const sceneCodes = scenes.value.map((scene) => scene.sceneCode);
|
|
const sceneCodes = scenes.value.map((scene) => scene.sceneCode);
|
|
await selectScenes({
|
|
await selectScenes({
|
|
- sceneCodes: sceneCodes,
|
|
|
|
- selfSceneCodes: scenes.value
|
|
|
|
- .filter((scene) => scene.creationMethod === 2)
|
|
|
|
- .map((scene) => scene.sceneCode),
|
|
|
|
- submit: async (nSceneCodes) => {
|
|
|
|
|
|
+ scenes: scenes.value,
|
|
|
|
+ selfScenes: scenes.value.filter((scene) => scene.creationMethod === 2),
|
|
|
|
+ submit: async (nScene) => {
|
|
const requests: Promise<any>[] = [];
|
|
const requests: Promise<any>[] = [];
|
|
- for (let i = 0; i < sceneCodes.length; i++) {
|
|
|
|
- if (!nSceneCodes.includes(sceneCodes[i])) {
|
|
|
|
- requests.push(delRelicsSceneFetch(relicsId.value, scenes.value[i].id));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- for (let i = 0; i < nSceneCodes.length; i++) {
|
|
|
|
- if (!sceneCodes.includes(nSceneCodes[i])) {
|
|
|
|
- requests.push(addSceneHandler(nSceneCodes[i]));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ const delScenes = sceneCodes
|
|
|
|
+ .filter((sceneCode) => !nScene.some((scene) => scene.sceneCode === sceneCode))
|
|
|
|
+ .map((sceneCode) => scenes.value.find((scene) => scene.sceneCode === sceneCode)!);
|
|
|
|
+
|
|
|
|
+ console.log(nScene, delScenes);
|
|
|
|
+ delScenes.length && requests.push(delRelicsScenes(delScenes));
|
|
|
|
+
|
|
|
|
+ const addScenes = nScene.filter(({ sceneCode }) => !sceneCodes.includes(sceneCode));
|
|
|
|
+ addScenes.length && requests.push(addSceneHandler(addScenes));
|
|
|
|
|
|
await Promise.all(requests);
|
|
await Promise.all(requests);
|
|
|
|
+ requests.length && (await refreshScenes());
|
|
},
|
|
},
|
|
});
|
|
});
|
|
- await refreshScenes();
|
|
|
|
};
|
|
};
|
|
|
|
|
|
-const addSceneHandler = async (sceneCode: string) => {
|
|
|
|
- const sceneTypes = ["SS", "KJ", "SG"];
|
|
|
|
- if (sceneTypes.every((type) => !sceneCode.startsWith(type))) {
|
|
|
|
- ElMessage.error("场景码不正确");
|
|
|
|
- throw "场景码不正确";
|
|
|
|
- } else {
|
|
|
|
- await addRelicsSceneFetch(relicsId.value!, sceneCode);
|
|
|
|
- }
|
|
|
|
-};
|
|
|
|
|
|
+const delRelicsScenes = (scenes: Pick<Scene, "sceneId" | "sceneCode">[]) =>
|
|
|
|
+ delRelicsScenesFetch(
|
|
|
|
+ relicsId.value,
|
|
|
|
+ scenes.map((item) => ({ sceneCode: item.sceneCode, id: item.sceneId }))
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+const addSceneHandler = async (scenes: Pick<Scene, "sceneId" | "sceneCode">[]) =>
|
|
|
|
+ await addRelicsScenesFetch(
|
|
|
|
+ relicsId.value!,
|
|
|
|
+ scenes.map((item) => ({ sceneCode: item.sceneCode, id: item.sceneId }))
|
|
|
|
+ );
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|