From 254401d8f124732b50de6dfe74a6c5b90637e832 Mon Sep 17 00:00:00 2001 From: yitaikarma Date: Mon, 13 Apr 2026 17:26:50 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E8=A1=8C=E4=B8=BA=E6=A0=91=E5=8A=A0=E8=BD=BD=E4=B8=8B=E5=B1=9E?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=B9=B6=E4=BC=98=E5=8C=96=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/decision/designer/designer.vue | 31 ++++++++++++- .../views/decision/designer/properties.vue | 44 ++++++++++++++++++- 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/modeler/src/views/decision/designer/designer.vue b/modeler/src/views/decision/designer/designer.vue index 57e4e9e..8766aa0 100644 --- a/modeler/src/views/decision/designer/designer.vue +++ b/modeler/src/views/decision/designer/designer.vue @@ -43,6 +43,7 @@ (false); const treesCardRef = ref | null>(null); const platforms = ref([]); + const subPlatforms = ref([]); const nodeCommands = ref([]) const currentScenarioId = ref(null); const currentPlatformId = ref(null); @@ -153,6 +155,27 @@ export default defineComponent({ loadNodeCommands(); } + // 加载下属平台 + const loadSubPlatforms = (treeId: number) => { + console.log(treeId); + + if (!treeId || treeId <= 0) { + subPlatforms.value = []; + return; + } + + findSubPlatforms(treeId).then(r => { + if (r.data && Array.isArray(r.data)) { + subPlatforms.value = r.data as Platform[]; + } else { + subPlatforms.value = []; + } + }).catch(err => { + console.error('加载下属平台失败:', err); + subPlatforms.value = []; + }); + }; + // 处理拖动开始 const handleDragStart = (nm: NodeDragTemplate) => { draggedNodeData.value = nm; @@ -267,6 +290,10 @@ export default defineComponent({ graph: nodeGraph, }; currentTreeEditing.value = true; + + // 加载下属平台 + loadSubPlatforms(r.data.id); + nextTick(() => { initGraph(); }); @@ -343,6 +370,7 @@ export default defineComponent({ }; selectedModelNode.value = null; selectedNodeTaskElement.value = null; + subPlatforms.value = []; // 重置下属平台 nextTick(() => { initGraph(); @@ -487,6 +515,7 @@ export default defineComponent({ nodeCommands, currentScenarioId, platforms, + subPlatforms, treesCardRef, handleCreateTree, currentTreeEditing, diff --git a/modeler/src/views/decision/designer/properties.vue b/modeler/src/views/decision/designer/properties.vue index ed0e85a..bde1f84 100644 --- a/modeler/src/views/decision/designer/properties.vue +++ b/modeler/src/views/decision/designer/properties.vue @@ -101,7 +101,7 @@ size="small" type="editable-card" @edit="onEditParameterTab"> - + - {{pl.description}} + {{pl.description}} | null | undefined>, required: false }, graph: { type: [Object, null] as PropType, required: true }, platforms: { type: Array as PropType, required: true }, + subPlatforms: { type: Array as PropType, required: false, default: () => [] }, nodeCommands: { type: Array as PropType, required: true }, }, emits: ['update-element', 'update-tree'], setup(props, { emit }) { const platforms = ref(props.platforms ?? []); + const subPlatforms = ref(props.subPlatforms ?? []); const nodeCommands = ref(props.nodeCommands ?? []); const activeTopTabsKey = ref('1'); @@ -299,6 +301,41 @@ export default defineComponent({ multiableParameters.value = multiable === true && groupedParameters.value.length > 0; }; + // 获取平台Tab显示名称 + const getPlatformTabName = (index: number): string => { + if (!currentTree.value?.platformId) { + return `平台 ${index + 1}`; + } + + // 查找当前行为树绑定的平台 + const currentPlatform = platforms.value.find(p => p.id === currentTree.value?.platformId); + if (!currentPlatform) { + return `平台 ${index + 1}`; + } + + // 如果有多个分组,显示平台名称和索引 + if (groupedParameters.value.length > 1) { + return `${currentPlatform.name || '未知平台'}-${index + 1}`; + } + + return currentPlatform.name || '平台'; + }; + + // 获取可用的平台列表(包括当前平台和其下属平台) + const getAvailablePlatforms = (): Platform[] => { + if (!currentTree.value?.platformId) { + return platforms.value; + } + + // 如果有下属平台,返回下属平台列表 + if (subPlatforms.value && subPlatforms.value.length > 0) { + return subPlatforms.value; + } + + // 否则返回所有平台 + return platforms.value; + }; + const resolveNode = (n?: Node | null | undefined) => { groupedParametersActiveTab.value = 0; @@ -389,6 +426,7 @@ export default defineComponent({ watch(() => props.nodeCommands, (n: NodeCommand[] | null | undefined) => nodeCommands.value = n ?? [], { deep: true, immediate: true }); watch(() => props.platforms, (n: Platform[] | null | undefined) => platforms.value = n ?? [], { deep: true, immediate: true }); + watch(() => props.subPlatforms, (n: Platform[] | null | undefined) => subPlatforms.value = n ?? [], { deep: true, immediate: true }); onMounted(() => load()); @@ -400,6 +438,8 @@ export default defineComponent({ multiableParameters, onEditParameterTab, groupedParameters, + getPlatformTabName, + getAvailablePlatforms, actionSpaceColumns, activeTopTabsKey, activeBottomTabsKey, From bb45ff557bea7da6098381f594c0ab25452d554c Mon Sep 17 00:00:00 2001 From: yitaikarma Date: Mon, 13 Apr 2026 17:33:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E8=A1=8C=E4=B8=BA=E6=A0=91ID=E8=8E=B7=E5=8F=96=E4=B8=8B?= =?UTF-8?q?=E5=B1=9E=E5=B9=B3=E5=8F=B0=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modeler/src/views/decision/designer/api.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modeler/src/views/decision/designer/api.ts b/modeler/src/views/decision/designer/api.ts index e05404e..16fdd21 100644 --- a/modeler/src/views/decision/designer/api.ts +++ b/modeler/src/views/decision/designer/api.ts @@ -28,6 +28,10 @@ export const findOneTreeByPlatformId = (platformId: number): Promise => { + return req.get(`/system/behaviortree/underling/${treeId}`); +}; + export const findOneTreeById = (id: number): Promise => { return req.get(`/system/behaviortree/${id}`); }; From 5c83b561cc859dfbb18dd8bf1be7eedd53150c05 Mon Sep 17 00:00:00 2001 From: MHW Date: Mon, 13 Apr 2026 17:58:01 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/system/BehaviortreeMapper.xml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/auto-solution-behaviour/src/main/resources/mapper/system/BehaviortreeMapper.xml b/auto-solution-behaviour/src/main/resources/mapper/system/BehaviortreeMapper.xml index ecd2411..f43522a 100644 --- a/auto-solution-behaviour/src/main/resources/mapper/system/BehaviortreeMapper.xml +++ b/auto-solution-behaviour/src/main/resources/mapper/system/BehaviortreeMapper.xml @@ -5,13 +5,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - - - + + + + + + + + +