diff --git a/modeler/src/views/decision/designer/designer.vue b/modeler/src/views/decision/designer/designer.vue
index e91fb6c..05fd343 100644
--- a/modeler/src/views/decision/designer/designer.vue
+++ b/modeler/src/views/decision/designer/designer.vue
@@ -13,7 +13,7 @@
@@ -128,6 +128,7 @@ export default defineComponent({
const nodeCommands = ref([])
const currentScenarioId = ref();
const currentPlatformId = ref(null);
+ const currentTreeId = ref(null);
const fromScenarioPage = ref(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,
diff --git a/modeler/src/views/decision/designer/trees-card.vue b/modeler/src/views/decision/designer/trees-card.vue
index 69988e8..e3e4c2a 100644
--- a/modeler/src/views/decision/designer/trees-card.vue
+++ b/modeler/src/views/decision/designer/trees-card.vue
@@ -18,7 +18,7 @@
- handleSelect(item)">
+ handleSelect(item)">
@@ -67,7 +67,7 @@ import { substring } from '@/utils/strings';
export default defineComponent({
props: {
scenarioId: Number as PropType,
- platformId: Number as PropType,
+ treeId: Number as PropType,
},
emits: ['select-tree', 'create-tree'],
components: {
@@ -87,7 +87,6 @@ export default defineComponent({
});
const activeKey = ref(1);
const totalTress = ref(0);
- const selectedId = ref(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,