From b08c74260d5ba0f3e30b609d27c320dceeac2199 Mon Sep 17 00:00:00 2001 From: libertyspy Date: Fri, 27 Mar 2026 00:05:04 +0800 Subject: [PATCH] UPDATE: VERSION-20260326 --- modeler/src/views/decision/api.ts | 21 +++++++++++++++++++ .../src/views/decision/designer/designer.vue | 14 ++++++++++++- .../views/decision/designer/properties.vue | 20 ++++++++++++++++-- modeler/src/views/decision/types/platform.ts | 4 ++++ 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 modeler/src/views/decision/api.ts diff --git a/modeler/src/views/decision/api.ts b/modeler/src/views/decision/api.ts new file mode 100644 index 0000000..b1a4096 --- /dev/null +++ b/modeler/src/views/decision/api.ts @@ -0,0 +1,21 @@ +/* + * This file is part of the kernelstudio package. + * + * (c) 2014-2025 zlin + * + * For the full copyright and license information, please view the LICENSE file + * that was distributed with this source code. + */ + +import { HttpRequestClient } from '@/utils/request'; +import type { BasicResponse } from '@/types'; +import type { PlatformListableResponse } from './types'; + +const req = HttpRequestClient.create({ + baseURL: '/api', +}); + + +export const findAllBasicPlatforms = (): Promise => { + return req.get('/system/firerule/platforms/basic'); +}; \ No newline at end of file diff --git a/modeler/src/views/decision/designer/designer.vue b/modeler/src/views/decision/designer/designer.vue index 8364d4e..177e3cc 100644 --- a/modeler/src/views/decision/designer/designer.vue +++ b/modeler/src/views/decision/designer/designer.vue @@ -37,6 +37,7 @@ (null); const changed = ref(false); const treesCardRef = ref | null>(null); + const platforms = ref([]); const { handleGraphEvent, @@ -111,6 +114,13 @@ export default defineComponent({ resizeCanvas, } = useGraphCanvas(); + const loadPlatforms = () => { + platforms.value = []; + findAllBasicPlatforms().then(r => { + platforms.value = r.data ?? []; + }); + }; + // 处理拖动开始 const handleDragStart = (nm: NodeDragTemplate) => { draggedNodeData.value = nm; @@ -393,6 +403,7 @@ export default defineComponent({ // 初始化 onMounted(() => { init(); + loadPlatforms(); }); // 清理 @@ -410,6 +421,7 @@ export default defineComponent({ }); return { + platforms, treesCardRef, handleCreateTree, currentTreeEditing, diff --git a/modeler/src/views/decision/designer/properties.vue b/modeler/src/views/decision/designer/properties.vue index 9f96f84..8974da1 100644 --- a/modeler/src/views/decision/designer/properties.vue +++ b/modeler/src/views/decision/designer/properties.vue @@ -103,9 +103,16 @@ @edit="onEditParameterTab"> - - + + {{pl.description}} + + @@ -154,6 +161,7 @@ import type { ElementParameter, ElementVariable, GraphTaskElement } from '../gra import type { BehaviorTree } from './tree'; import type { Graph, Node, NodeProperties } from '@antv/x6'; import { generateKey } from '@/utils/strings'; +import type { Platform } from '@/views/decision/types'; const actionSpaceColumns = [ { title: '序号', dataIndex: 'index', key: 'index', width: 40 }, @@ -170,9 +178,12 @@ export default defineComponent({ treeEditing: { type: Boolean as PropType, required: true, default: false }, node: { type: [Object, null] as PropType | null | undefined>, required: false }, graph: { type: [Object, null] as PropType, required: true }, + platforms: { type: Array as PropType, required: true }, }, emits: ['update-element', 'update-tree'], setup(props, { emit }) { + const platforms = ref(props.platforms ?? []); + const activeTopTabsKey = ref('1'); const activeBottomTabsKey = ref('1'); const activeBottomTabs2Key = ref('1'); @@ -187,6 +198,8 @@ export default defineComponent({ const multiableParameters = ref(false); const groupedParametersActiveTab = ref(0); + console.error(platforms.value) + const createEmptyParameters = (): ElementParameter[] => { try { return JSON.parse(JSON.stringify(currentElement.value?.parameters ?? [])) as ElementParameter[]; @@ -359,9 +372,12 @@ export default defineComponent({ watch(() => currentElement.value, () => updateNode(), { deep: true }); + watch(() => props.platforms, (n: Platform[] | null | undefined) => platforms.value = n ?? [], { deep: true, immediate: true }); + onMounted(() => load()); return { + platforms, addParameterTab, groupedParametersActiveTab, multiableParameters, diff --git a/modeler/src/views/decision/types/platform.ts b/modeler/src/views/decision/types/platform.ts index a3a137d..ab834a5 100644 --- a/modeler/src/views/decision/types/platform.ts +++ b/modeler/src/views/decision/types/platform.ts @@ -18,6 +18,10 @@ export interface Platform { [key: string]: unknown; } +export interface PlatformListableResponse extends ApiDataResponse { + +} + export interface PlatformComponent { id: number, name: NullableString,