@@ -13,7 +13,7 @@
|
||||
<TressCard
|
||||
ref="treesCardRef"
|
||||
:scenarioId="currentScenarioId"
|
||||
:platformId="currentPlatformId"
|
||||
:treeId="currentTreeId"
|
||||
@create-tree="handleCreateTree"
|
||||
@select-tree="handleSelectTree"
|
||||
/>
|
||||
@@ -128,6 +128,7 @@ export default defineComponent({
|
||||
const nodeCommands = ref<NodeCommand[]>([])
|
||||
const currentScenarioId = ref<number | undefined>();
|
||||
const currentPlatformId = ref<number | null>(null);
|
||||
const currentTreeId = ref<number | null>(null);
|
||||
const fromScenarioPage = ref<boolean>(false);
|
||||
|
||||
const {
|
||||
@@ -326,12 +327,35 @@ export default defineComponent({
|
||||
selectedModelNode.value = null;
|
||||
selectedNodeTaskElement.value = null;
|
||||
loadSubPlatforms(currentPlatformId.value);
|
||||
console.log('currentBehaviorTree.value: ', tree);
|
||||
|
||||
nextTick(() => {
|
||||
initGraph();
|
||||
console.log('initGraphTree: ', tree);
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
const loadTargetTree = (tree: BehaviorTree) => {
|
||||
currentTreeId.value = tree.id;
|
||||
resolveBehaviorTreeGraph(tree.id, tree.xmlContent).then(nodeGraph => {
|
||||
applyBehaviorTree({
|
||||
...tree,
|
||||
graph: nodeGraph,
|
||||
});
|
||||
}).catch(error => {
|
||||
console.error('resolve tree graph error:', error);
|
||||
message.error('加载行为树图失败');
|
||||
});
|
||||
};
|
||||
|
||||
const handleCreateTree = () => {
|
||||
destroyGraph();
|
||||
|
||||
selectedModelNode.value = null;
|
||||
selectedNodeTaskElement.value = null;
|
||||
subPlatforms.value = []; // 重置下属平台
|
||||
|
||||
initGraphConfig();
|
||||
nextTick(() => {
|
||||
initGraph();
|
||||
});
|
||||
};
|
||||
|
||||
@@ -339,15 +363,7 @@ export default defineComponent({
|
||||
console.info('handleSelectTree', tree);
|
||||
findOneTreeById(tree.id).then(r => {
|
||||
if (r.data) {
|
||||
resolveBehaviorTreeGraph(r.data.id, r.data.xmlContent).then(nodeGraph => {
|
||||
applyBehaviorTree({
|
||||
...r.data,
|
||||
graph: nodeGraph,
|
||||
});
|
||||
}).catch(error => {
|
||||
console.error('resolve tree graph error:', error);
|
||||
message.error('加载行为树图失败');
|
||||
});
|
||||
loadTargetTree(r.data);
|
||||
} else {
|
||||
message.error(r.msg ?? '行为树不存在.');
|
||||
}
|
||||
@@ -381,18 +397,7 @@ export default defineComponent({
|
||||
currentScenarioId.value = scenario.id;
|
||||
};
|
||||
|
||||
const handleCreateTree = () => {
|
||||
destroyGraph();
|
||||
initGraphConfig();
|
||||
|
||||
selectedModelNode.value = null;
|
||||
selectedNodeTaskElement.value = null;
|
||||
subPlatforms.value = []; // 重置下属平台
|
||||
|
||||
nextTick(() => {
|
||||
initGraph();
|
||||
});
|
||||
};
|
||||
|
||||
// 初始化X6画布
|
||||
const initGraph = () => {
|
||||
@@ -404,9 +409,7 @@ export default defineComponent({
|
||||
try {
|
||||
graph.value = createCanvas(canvas.value);
|
||||
console.log('画布初始化成功');
|
||||
if (!currentBehaviorTree.value) {
|
||||
initGraphConfig();
|
||||
}
|
||||
|
||||
createElements();
|
||||
|
||||
graph.value?.on('edge:click', (args: any) => {
|
||||
@@ -457,22 +460,23 @@ export default defineComponent({
|
||||
console.info('init');
|
||||
|
||||
nextTick(() => {
|
||||
initGraphConfig();
|
||||
initGraph();
|
||||
window.addEventListener('resize', handleResize);
|
||||
console.log('节点挂载完成');
|
||||
|
||||
window.addEventListener('resize', handleResize);
|
||||
|
||||
resolveQuery();
|
||||
|
||||
if (currentPlatformId.value) {
|
||||
if (currentPlatformId.value) {
|
||||
findOneTreeByPlatformId(currentPlatformId.value).then(r => {
|
||||
if (r.data) {
|
||||
handleSelectTree(r.data);
|
||||
loadTargetTree(r.data);
|
||||
} else {
|
||||
handleCreateTree();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
currentPlatformId.value = null;
|
||||
handleCreateTree();
|
||||
}
|
||||
});
|
||||
@@ -544,6 +548,7 @@ export default defineComponent({
|
||||
nodeCommands,
|
||||
currentScenarioId,
|
||||
currentPlatformId,
|
||||
currentTreeId,
|
||||
platforms,
|
||||
subPlatforms,
|
||||
scenariosCardRef,
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
</div>
|
||||
<a-list :data-source="behaviorTrees || []" size="small" style="min-height: 25vh">
|
||||
<template #renderItem="{ item }">
|
||||
<a-list-item :class="{ 'ks-item-selected': platformId === item.id || selectedId === item.id }" @click="()=> handleSelect(item)">
|
||||
<a-list-item :class="{ 'ks-item-selected': treeId === item.id }" @click="()=> handleSelect(item)">
|
||||
<a-flex>
|
||||
<a-tooltip placement="bottom">
|
||||
<template #title>
|
||||
@@ -67,7 +67,7 @@ import { substring } from '@/utils/strings';
|
||||
export default defineComponent({
|
||||
props: {
|
||||
scenarioId: Number as PropType<number | undefined>,
|
||||
platformId: Number as PropType<number | null>,
|
||||
treeId: Number as PropType<number | null>,
|
||||
},
|
||||
emits: ['select-tree', 'create-tree'],
|
||||
components: {
|
||||
@@ -87,7 +87,6 @@ export default defineComponent({
|
||||
});
|
||||
const activeKey = ref<number>(1);
|
||||
const totalTress = ref<number>(0);
|
||||
const selectedId = ref<number | null>(null);
|
||||
|
||||
watch(
|
||||
() => props.scenarioId,
|
||||
@@ -99,17 +98,7 @@ export default defineComponent({
|
||||
}
|
||||
behaviorTreeQuery.value.pageNum = 1;
|
||||
behaviorTreeQuery.value.scenarioId = props.scenarioId;
|
||||
loadTress(() => {
|
||||
if (props.platformId) {
|
||||
return;
|
||||
}
|
||||
// 默认选中第一个行为树
|
||||
const selectedTree = behaviorTrees.value[0];
|
||||
if (selectedTree) {
|
||||
selectedId.value = selectedTree.id;
|
||||
emit('select-tree', selectedTree);
|
||||
}
|
||||
});
|
||||
loadTress();
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
@@ -152,7 +141,6 @@ export default defineComponent({
|
||||
];
|
||||
|
||||
const handleSelect = (record: BehaviorTree) => {
|
||||
selectedId.value = record.id;
|
||||
emit('select-tree', record);
|
||||
};
|
||||
|
||||
@@ -171,7 +159,6 @@ export default defineComponent({
|
||||
totalTress,
|
||||
substring,
|
||||
activeKey,
|
||||
selectedId,
|
||||
behaviorTrees,
|
||||
behaviorTreeQuery,
|
||||
loadTress,
|
||||
|
||||
Reference in New Issue
Block a user