refactor: 更新point-detail-card组件,整合BinTaskManagerService的调用,优化数据处理逻辑,提升代码可读性
This commit is contained in:
parent
7863867a5c
commit
360294c6a1
@ -1,7 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import { MapAreaType, type MapPen, type MapPointInfo, MapPointType, type Rect } from '@api/map';
|
||||
import type { StorageLocationInfo } from '@api/scene';
|
||||
import { BinTaskManagerService } from '@core/bintask-manager.service';
|
||||
import type { EditorService } from '@core/editor.service';
|
||||
import sTheme from '@core/theme.service';
|
||||
import { isNil } from 'lodash-es';
|
||||
@ -14,7 +13,6 @@ type Props = {
|
||||
};
|
||||
const props = defineProps<Props>();
|
||||
const editor = inject(props.token)!;
|
||||
const binTaskManager = new BinTaskManagerService(editor.value);
|
||||
|
||||
const pen = computed<MapPen | undefined>(() => editor.value.getPenById(props.current));
|
||||
const point = computed<MapPointInfo | null>(() => {
|
||||
@ -95,7 +93,7 @@ const binTaskData = computed(() => {
|
||||
const currentPointName = pen.value?.label || pen.value?.id;
|
||||
if (!currentPointName) return [];
|
||||
|
||||
return binTaskManager.getPointBinTaskDataForDisplay(currentPointName);
|
||||
return editor.value.getBinTaskManager().getPointBinTaskDataForDisplay(currentPointName);
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -217,7 +215,7 @@ const binTaskData = computed(() => {
|
||||
<div class="bin-tasks">
|
||||
<div v-for="(task, taskIndex) in binLocation.binTasks" :key="taskIndex" class="bin-task-item">
|
||||
<div
|
||||
v-for="(operation, operationType) in binTaskManager.getTaskOperations(task)"
|
||||
v-for="(operation, operationType) in editor.getBinTaskManager().getTaskOperations(task)"
|
||||
:key="operationType"
|
||||
class="task-operation"
|
||||
>
|
||||
|
@ -390,7 +390,7 @@ export class BinTaskManagerService {
|
||||
* @returns 库位组数组,如果数据无效则返回空数组
|
||||
*/
|
||||
private getBinLocationGroups(): BinLocationGroup[] {
|
||||
const rawData = this.editor.getBinLocationsList();
|
||||
const rawData = this.getBinLocationsList();
|
||||
if (!rawData) return [];
|
||||
|
||||
const binLocationGroups = Array.isArray(rawData)
|
||||
@ -454,13 +454,26 @@ export class BinTaskManagerService {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库位任务配置数据
|
||||
* @returns 库位任务配置列表
|
||||
*/
|
||||
public getBinLocationsList(): unknown {
|
||||
return this.editor.getBinLocationsList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新原始场景数据
|
||||
* @param binLocationGroups 库位组数据
|
||||
*/
|
||||
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
|
||||
|
@ -135,11 +135,11 @@ export class EditorService extends Meta2d {
|
||||
private readonly binTaskManager: BinTaskManagerService;
|
||||
|
||||
/**
|
||||
* 获取库位任务配置数据
|
||||
* @returns 库位任务配置列表
|
||||
* 获取BinTask管理服务实例
|
||||
* @returns BinTask管理服务实例
|
||||
*/
|
||||
public getBinLocationsList(): unknown {
|
||||
return (this.#originalSceneData as Record<string, unknown>)?.binLocationsList;
|
||||
public getBinTaskManager(): BinTaskManagerService {
|
||||
return this.binTaskManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -182,22 +182,11 @@ export class EditorService extends Meta2d {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取BinTask管理服务实例
|
||||
* @returns BinTask管理服务实例
|
||||
* 获取库位任务配置数据
|
||||
* @returns 库位任务配置列表
|
||||
*/
|
||||
public getBinTaskManager(): BinTaskManagerService {
|
||||
return this.binTaskManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新原始场景数据中的binLocationsList
|
||||
* @param binLocationGroups 库位组数据
|
||||
*/
|
||||
public updateOriginalSceneBinLocations(binLocationGroups: any[]): void {
|
||||
if (!this.#originalSceneData) {
|
||||
this.#originalSceneData = {};
|
||||
}
|
||||
(this.#originalSceneData as Record<string, unknown>).binLocationsList = binLocationGroups;
|
||||
public getBinLocationsList(): unknown {
|
||||
return (this.#originalSceneData as Record<string, unknown>)?.binLocationsList;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user