diff --git a/modeler/src/views/decision/actions.vue b/modeler/src/views/decision/actions.vue
index 9cdd530..43c5023 100644
--- a/modeler/src/views/decision/actions.vue
+++ b/modeler/src/views/decision/actions.vue
@@ -29,9 +29,9 @@
\ No newline at end of file
diff --git a/modeler/src/views/decision/api.ts b/modeler/src/views/decision/api.ts
index adbf5a0..f9a932f 100644
--- a/modeler/src/views/decision/api.ts
+++ b/modeler/src/views/decision/api.ts
@@ -12,7 +12,7 @@ import type { NodeTemplateQuery, NodeTemplatesResponse, TreeModelDetailsResponse
import type { ApiPaginationQuery, BasicResponse } from '@/types';
const req = HttpRequestClient.create({
- baseURL: '/api',
+ baseURL: '/bhtree/api',
});
export const findTemplatesByQuery = (query: Partial): Promise => {
@@ -20,7 +20,7 @@ export const findTemplatesByQuery = (query: Partial): Promise
};
export const findTreesByQuery = (query: Partial): Promise => {
- return req.get('/system/behaviortree/list', query);
+ return req.postJson('/behavior-trees', query);
};
export const findOneTreeById = (id: number): Promise => {
diff --git a/modeler/src/views/decision/builder/node.vue b/modeler/src/views/decision/builder/node.vue
index 6a3da9a..4636e31 100644
--- a/modeler/src/views/decision/builder/node.vue
+++ b/modeler/src/views/decision/builder/node.vue
@@ -98,12 +98,12 @@ export default defineComponent({
};
onMounted(() => {
- console.info('node onMounted');
+ console.info('node onMounted')
_props.node?.on('change:data', handleDataChange);
});
onUnmounted(() => {
- console.info('node onUnmounted');
+ console.info('node onUnmounted')
_props.node?.off('change:data', handleDataChange);
});
@@ -121,7 +121,6 @@ export default defineComponent({
border: 1px dashed #7a6986;
box-shadow: 2px 2px 5px #000000;
}
-
.ks-designer-node {
background: #1b3875;
//background: url('@/assets/icons/bg-node.png') center / 100% 100%;
@@ -134,7 +133,6 @@ export default defineComponent({
&:hover {
box-shadow: 0 1px 2px -2px rgb(0 0 0), 0 3px 6px 0 rgb(0 0 0 / 60%), 0 5px 12px 4px rgb(0 0 0 / 30%);
}
-
.ant-card-head {
border: 0;
height: 30px;
@@ -159,33 +157,28 @@ export default defineComponent({
}
//&.ks-designer-node-root{
- //background: #645525;
- //.ant-card-body{
- // background: #726334;
- //}
+ //background: #645525;
+ //.ant-card-body{
+ // background: #726334;
+ //}
//}
&.ks-designer-node-select {
background: #255464;
-
- .ant-card-body {
+ .ant-card-body{
background: #1c4654;
}
}
-
&.ks-designer-node-precondition,
&.ks-designer-node-parallel,
- &.ks-designer-node-sequence {
+ &.ks-designer-node-sequence{
background: #4c5a9d;
-
- .ant-card-body {
+ .ant-card-body{
background: #3f4d8d;
}
}
-
- &.ks-designer-node-action {
+ &.ks-designer-node-action{
background: #645525;
-
- .ant-card-body {
+ .ant-card-body{
background: #726334;
}
}
diff --git a/modeler/src/views/decision/constants.ts b/modeler/src/views/decision/constants.ts
index 7f3b81f..3bd634f 100644
--- a/modeler/src/views/decision/constants.ts
+++ b/modeler/src/views/decision/constants.ts
@@ -7,7 +7,7 @@
* that was distributed with this source code.
*/
-import type { NodeTemplateData, NodeTemplateQuery, TreeModelsData } from './types';
+import type { TreeModelsData, NodeTemplateQuery, NodeTemplateData } from './types';
import type { ApiPagination, ApiPaginationQuery } from '@/types';
export const defaultPagination = {
@@ -26,16 +26,16 @@ export const defaultPaginationRequest = {
page: 1,
limit: 10,
keyword: null,
-} as ApiPaginationQuery;
+} as ApiPaginationQuery
export const defaultNodeTemplateQuery = {
page: 1,
limit: 1000,
keyword: null,
include_params: true,
-} as NodeTemplateQuery;
+} as NodeTemplateQuery
export const defaultNodeTemplateData = {
templates: [],
- total: 0,
-} as NodeTemplateData;
\ No newline at end of file
+ total: 0
+} as NodeTemplateData
\ No newline at end of file
diff --git a/modeler/src/views/decision/designer.vue b/modeler/src/views/decision/designer.vue
index a3128aa..168f248 100644
--- a/modeler/src/views/decision/designer.vue
+++ b/modeler/src/views/decision/designer.vue
@@ -46,10 +46,10 @@
+ :node="selectedModelNode as any" />
@@ -60,7 +60,7 @@
import { defineComponent, nextTick, onBeforeUnmount, onMounted, ref } from 'vue';
import { message } from 'ant-design-vue';
import { getTeleport } from '@antv/x6-vue-shape';
-import { Graph, Node, type NodeProperties } from '@antv/x6';
+import { Graph, Node,Edge, type NodeProperties } from '@antv/x6';
import { CheckCircleOutlined, CheckOutlined, RollbackOutlined, SaveOutlined } from '@ant-design/icons-vue';
import { Wrapper } from '@/components/wrapper';
import { safePreventDefault, safeStopPropagation } from '@/utils/event';
@@ -100,7 +100,7 @@ export default defineComponent({
const currentTreeModelGraph = ref(null);
const selectedModelNode = ref | null>(null);
const selectedNodeTaskElement = ref(null);
- const changed = ref(false);
+ const changed = ref(false)
const {
handleGraphEvent,
@@ -201,32 +201,32 @@ export default defineComponent({
};
const createElements = () => {
- if (graph.value && currentTreeModelGraph.value) {
+ if(graph.value && currentTreeModelGraph.value){
graph.value.clearCells();
- setTimeout(() => {
- nextTick(() => {
- try {
- if (currentTreeModelGraph.value && !currentTreeModelGraph.value?.graph) {
+ setTimeout(()=> {
+ nextTick(()=> {
+ try{
+ if (currentTreeModelGraph.value && !currentTreeModelGraph.value?.graph){
currentTreeModelGraph.value.graph = {
nodes: [],
edges: [],
- };
+ }
}
- const nodes = currentTreeModelGraph.value?.graph?.nodes ?? [];
- const edges = currentTreeModelGraph.value?.graph?.edges ?? [];
+ const nodes = currentTreeModelGraph.value?.graph?.nodes ?? [];
+ const edges = currentTreeModelGraph.value?.graph?.edges ?? [];
- nodes.forEach(n => {
+ nodes.forEach(n=> {
const node = createTaskNodeElement(n);
graph.value?.addNode(node as Node);
- });
- edges.forEach(g => {
- graph.value?.addEdge(g as any);
- });
- } catch (e) {
- console.warn('createElements', e);
+ })
+ edges.forEach(g=> {
+ graph.value?.addEdge( g as any);
+ })
+ } catch (e){
+ console.warn('createElements',e)
}
- });
- }, 200);
+ })
+ }, 200)
}
};
@@ -290,7 +290,7 @@ export default defineComponent({
console.info('handleUpdateElement', element);
// 更新本地引用
selectedNodeTaskElement.value = element;
- changed.value = true;
+ changed.value = true
};
const handleSelectTree = (treeModel: TreeModel) => {
diff --git a/modeler/src/views/decision/nodes-card.vue b/modeler/src/views/decision/nodes-card.vue
index 912fa7d..9ef6a65 100644
--- a/modeler/src/views/decision/nodes-card.vue
+++ b/modeler/src/views/decision/nodes-card.vue
@@ -7,7 +7,7 @@
-
+
-

+
{{ nm.name }}
@@ -28,7 +28,7 @@
-
+
-

+
{{ nm.name }}
@@ -49,7 +49,7 @@
-
+
-

+
{{ nm.name }}
@@ -149,7 +149,7 @@ export default defineComponent({
if (r.data.templates) {
r.data.templates.forEach(tpl => {
if (tpl.type === 'action') {
- if (tpl.parameter_defs && tpl.parameter_defs.length > 0) {
+ if(tpl.parameter_defs && tpl.parameter_defs.length>0){
actionsTemplates.value.push(tpl);
}
} else if (tpl.type === 'parallel' || tpl.type === 'sequence' || tpl.type === 'precondition') {
@@ -212,6 +212,6 @@ export default defineComponent({
handleDragEnd,
};
},
-});
+})
\ No newline at end of file
diff --git a/modeler/src/views/decision/properties.vue b/modeler/src/views/decision/properties.vue
index 0d514e0..165d59b 100644
--- a/modeler/src/views/decision/properties.vue
+++ b/modeler/src/views/decision/properties.vue
@@ -14,38 +14,38 @@
style="padding-bottom:15px;"
>
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
+
@@ -83,7 +83,7 @@
-
+
@@ -113,7 +113,7 @@ import { defineComponent, onMounted, type PropType, ref, watch } from 'vue';
import { CheckOutlined } from '@ant-design/icons-vue';
import type { ElementVariable, SettingTaskNodeElement } from './types';
import type { Graph, Node, NodeProperties } from '@antv/x6';
-import { generateKey } from '@/utils/strings';
+import {generateKey} from '@/utils/strings'
const actionSpaceColumns = [
{ title: '序号', dataIndex: 'index', key: 'index', width: 40 },
@@ -127,7 +127,7 @@ export default defineComponent({
components: { CheckOutlined },
props: {
node: { type: [Object, null] as PropType | null | undefined>, required: false },
- graph: { type: [Object, null] as PropType, required: true },
+ graph: { type: [Object, null] as PropType, required: true }
},
emits: ['update-element'],
setup(props, { emit }) {
@@ -151,7 +151,7 @@ export default defineComponent({
}
};
- const addVariable = () => {
+ const addVariable = ()=> {
if (!currentElement.value) {
return;
}
@@ -165,8 +165,8 @@ export default defineComponent({
value: null,
defaults: null,
unit: null,
- });
- };
+ })
+ }
const removeVariable = (row: ElementVariable) => {
if (currentElement.value && currentElement.value.variables) {
diff --git a/modeler/src/views/decision/trees-card.vue b/modeler/src/views/decision/trees-card.vue
index 40ee330..1ba2c5a 100644
--- a/modeler/src/views/decision/trees-card.vue
+++ b/modeler/src/views/decision/trees-card.vue
@@ -1,10 +1,11 @@
+
我的行为树
-
+
@@ -15,15 +16,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+