refactor: 更新point-detail-card组件,整合BinTaskManagerService的调用,优化数据处理逻辑,提升代码可读性

This commit is contained in:
xudan 2025-09-11 10:14:11 +08:00
parent 7863867a5c
commit 360294c6a1
3 changed files with 26 additions and 26 deletions

View File

@ -1,7 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { MapAreaType, type MapPen, type MapPointInfo, MapPointType, type Rect } from '@api/map'; import { MapAreaType, type MapPen, type MapPointInfo, MapPointType, type Rect } from '@api/map';
import type { StorageLocationInfo } from '@api/scene'; import type { StorageLocationInfo } from '@api/scene';
import { BinTaskManagerService } from '@core/bintask-manager.service';
import type { EditorService } from '@core/editor.service'; import type { EditorService } from '@core/editor.service';
import sTheme from '@core/theme.service'; import sTheme from '@core/theme.service';
import { isNil } from 'lodash-es'; import { isNil } from 'lodash-es';
@ -14,7 +13,6 @@ type Props = {
}; };
const props = defineProps<Props>(); const props = defineProps<Props>();
const editor = inject(props.token)!; const editor = inject(props.token)!;
const binTaskManager = new BinTaskManagerService(editor.value);
const pen = computed<MapPen | undefined>(() => editor.value.getPenById(props.current)); const pen = computed<MapPen | undefined>(() => editor.value.getPenById(props.current));
const point = computed<MapPointInfo | null>(() => { const point = computed<MapPointInfo | null>(() => {
@ -95,7 +93,7 @@ const binTaskData = computed(() => {
const currentPointName = pen.value?.label || pen.value?.id; const currentPointName = pen.value?.label || pen.value?.id;
if (!currentPointName) return []; if (!currentPointName) return [];
return binTaskManager.getPointBinTaskDataForDisplay(currentPointName); return editor.value.getBinTaskManager().getPointBinTaskDataForDisplay(currentPointName);
}); });
</script> </script>
@ -217,7 +215,7 @@ const binTaskData = computed(() => {
<div class="bin-tasks"> <div class="bin-tasks">
<div v-for="(task, taskIndex) in binLocation.binTasks" :key="taskIndex" class="bin-task-item"> <div v-for="(task, taskIndex) in binLocation.binTasks" :key="taskIndex" class="bin-task-item">
<div <div
v-for="(operation, operationType) in binTaskManager.getTaskOperations(task)" v-for="(operation, operationType) in editor.getBinTaskManager().getTaskOperations(task)"
:key="operationType" :key="operationType"
class="task-operation" class="task-operation"
> >

View File

@ -390,7 +390,7 @@ export class BinTaskManagerService {
* @returns * @returns
*/ */
private getBinLocationGroups(): BinLocationGroup[] { private getBinLocationGroups(): BinLocationGroup[] {
const rawData = this.editor.getBinLocationsList(); const rawData = this.getBinLocationsList();
if (!rawData) return []; if (!rawData) return [];
const binLocationGroups = Array.isArray(rawData) const binLocationGroups = Array.isArray(rawData)
@ -454,13 +454,26 @@ export class BinTaskManagerService {
); );
} }
/**
*
* @returns
*/
public getBinLocationsList(): unknown {
return this.editor.getBinLocationsList();
}
/** /**
* *
* @param binLocationGroups * @param binLocationGroups
*/ */
private updateOriginalSceneData(binLocationGroups: BinLocationGroup[]): void { private updateOriginalSceneData(binLocationGroups: BinLocationGroup[]): void {
// 通过EditorService的公共方法更新原始场景数据 // 通过反射访问和设置私有属性
this.editor.updateOriginalSceneBinLocations(binLocationGroups); let originalSceneData = (this.editor as any)['#originalSceneData'];
if (!originalSceneData) {
originalSceneData = {};
(this.editor as any)['#originalSceneData'] = originalSceneData;
}
(originalSceneData as Record<string, unknown>).binLocationsList = binLocationGroups;
} }
//#endregion //#endregion

View File

@ -135,11 +135,11 @@ export class EditorService extends Meta2d {
private readonly binTaskManager: BinTaskManagerService; private readonly binTaskManager: BinTaskManagerService;
/** /**
* * BinTask管理服务实例
* @returns * @returns BinTask管理服务实例
*/ */
public getBinLocationsList(): unknown { public getBinTaskManager(): BinTaskManagerService {
return (this.#originalSceneData as Record<string, unknown>)?.binLocationsList; return this.binTaskManager;
} }
/** /**
@ -182,22 +182,11 @@ export class EditorService extends Meta2d {
} }
/** /**
* BinTask管理服务实例 *
* @returns BinTask管理服务实例 * @returns
*/ */
public getBinTaskManager(): BinTaskManagerService { public getBinLocationsList(): unknown {
return this.binTaskManager; return (this.#originalSceneData as Record<string, unknown>)?.binLocationsList;
}
/**
* binLocationsList
* @param binLocationGroups
*/
public updateOriginalSceneBinLocations(binLocationGroups: any[]): void {
if (!this.#originalSceneData) {
this.#originalSceneData = {};
}
(this.#originalSceneData as Record<string, unknown>).binLocationsList = binLocationGroups;
} }
/** /**