调整行为树挂载到平台的逻辑,修复发送平台变量未正确渲染
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -101,7 +101,7 @@ import { DeleteOutlined, LinkOutlined, CheckOutlined, SettingOutlined } from '@a
|
||||
import type { Graph } from '@antv/x6';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { substring } from '@/utils/strings';
|
||||
import { updateBehaviorTree } from './api';
|
||||
import { updateBehaviorTree, updateBehaviorTreeIdOfPlatform } from './api';
|
||||
import type { BehaviorTree } from '../designer/tree';
|
||||
|
||||
export default defineComponent({
|
||||
@@ -156,7 +156,7 @@ export default defineComponent({
|
||||
// 判断行为树是否已挂载到当前节点
|
||||
const isTreeMounted = (treeId: number): boolean => {
|
||||
if (!element.value) return false;
|
||||
const currentTreeId = (element.value as any).behaviorTreeId as number | undefined;
|
||||
const currentTreeId = (element.value as any).behaviortreeId as number | undefined;
|
||||
return currentTreeId === treeId;
|
||||
};
|
||||
|
||||
@@ -188,25 +188,23 @@ export default defineComponent({
|
||||
if (!element.value) return;
|
||||
|
||||
try {
|
||||
// 更新节点的behaviorTreeId属性
|
||||
const updatedElement = { ...(element.value as any), behaviorTreeId: tree.id };
|
||||
// 更新节点的behaviortreeId属性
|
||||
const updatedElement = { ...(element.value as any), behaviortreeId: tree.id };
|
||||
|
||||
// 调用后端API更新行为树(将platformId关联到该平台)
|
||||
const platformIdValue = (element.value as any).platformId as number | undefined;
|
||||
const treeToUpdate = {
|
||||
...tree,
|
||||
platformId: platformIdValue ?? null
|
||||
};
|
||||
|
||||
const updateResponse = await updateBehaviorTree(treeToUpdate);
|
||||
if (updateResponse.code === 200) {
|
||||
// 调用后端API:同时更新平台表的 behaviortreeId 和行为树表的 platformId
|
||||
const platformIdValue = (element.value as any).platformId as number;
|
||||
const [platformRes, treeRes] = await Promise.all([
|
||||
updateBehaviorTreeIdOfPlatform({ id: platformIdValue, behaviortreeId: tree.id }),
|
||||
updateBehaviorTree({ ...tree, platformId: platformIdValue }),
|
||||
]);
|
||||
if (platformRes.code === 200 && treeRes.code === 200) {
|
||||
// 更新本地节点数据
|
||||
if (_props.node) {
|
||||
_props.node.setData(updatedElement);
|
||||
}
|
||||
message.success(`已成功挂载行为树: ${tree.name}`);
|
||||
} else {
|
||||
message.error(updateResponse.msg || '挂载失败');
|
||||
message.error(platformRes.msg || treeRes.msg || '挂载失败');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('挂载行为树失败:', error);
|
||||
|
||||
Reference in New Issue
Block a user