add: DDS virtual component
This commit is contained in:
@@ -213,13 +213,12 @@ async function handleAddComponent(componentData: { type: string; name: string; p
|
||||
index: 0
|
||||
};
|
||||
|
||||
console.log('添加新组件:', newComponent);
|
||||
|
||||
console.log('添加新组件:', newComponent);
|
||||
// 通过画布实例添加组件
|
||||
if (canvasInstance && canvasInstance.getDiagramData && canvasInstance.setDiagramData) {
|
||||
if (canvasInstance && canvasInstance.getDiagramData && canvasInstance.updateDiagramDataDirectly) {
|
||||
const currentData = canvasInstance.getDiagramData();
|
||||
currentData.parts.push(newComponent);
|
||||
canvasInstance.setDiagramData(currentData);
|
||||
canvasInstance.updateDiagramDataDirectly(currentData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,10 +226,9 @@ async function handleAddComponent(componentData: { type: string; name: string; p
|
||||
async function handleAddTemplate(templateData: { id: string; name: string; template: any }) {
|
||||
console.log('添加模板:', templateData);
|
||||
console.log('=== 模板组件数量:', templateData.template?.parts?.length || 0);
|
||||
|
||||
// 获取画布实例
|
||||
// 获取画布实例
|
||||
const canvasInstance = diagramCanvas.value as any;
|
||||
if (!canvasInstance || !canvasInstance.getDiagramData || !canvasInstance.setDiagramData) {
|
||||
if (!canvasInstance || !canvasInstance.getDiagramData || !canvasInstance.updateDiagramDataDirectly) {
|
||||
console.error('没有可用的画布实例添加模板');
|
||||
return;
|
||||
}
|
||||
@@ -337,9 +335,8 @@ async function handleAddTemplate(templateData: { id: string; name: string; templ
|
||||
// 添加到当前连接列表
|
||||
currentData.connections.push(...newConnections);
|
||||
}
|
||||
|
||||
// 更新图表数据
|
||||
canvasInstance.setDiagramData(currentData);
|
||||
// 更新图表数据
|
||||
canvasInstance.updateDiagramDataDirectly(currentData);
|
||||
console.log('=== 更新图表数据完成,新组件数量:', currentData.parts.length);
|
||||
|
||||
// 显示成功消息
|
||||
@@ -459,7 +456,7 @@ function handleComponentDelete(componentId: string) {
|
||||
// 更新组件属性的方法
|
||||
function updateComponentProp(componentId: string, propName: string, value: any) {
|
||||
const canvasInstance = diagramCanvas.value as any;
|
||||
if (!canvasInstance || !canvasInstance.getDiagramData || !canvasInstance.setDiagramData) {
|
||||
if (!canvasInstance || !canvasInstance.getDiagramData || !canvasInstance.updateDiagramDataDirectly) {
|
||||
console.error('没有可用的画布实例进行属性更新');
|
||||
return;
|
||||
}
|
||||
@@ -484,7 +481,7 @@ function updateComponentProp(componentId: string, propName: string, value: any)
|
||||
part.attrs[propName] = value;
|
||||
}
|
||||
|
||||
canvasInstance.setDiagramData(currentData);
|
||||
canvasInstance.updateDiagramDataDirectly(currentData);
|
||||
console.log(`更新组件${componentId}的属性${propName}为:`, value, typeof value);
|
||||
}
|
||||
}
|
||||
@@ -492,7 +489,7 @@ function updateComponentProp(componentId: string, propName: string, value: any)
|
||||
// 更新组件的直接属性
|
||||
function updateComponentDirectProp(componentId: string, propName: string, value: any) {
|
||||
const canvasInstance = diagramCanvas.value as any;
|
||||
if (!canvasInstance || !canvasInstance.getDiagramData || !canvasInstance.setDiagramData) {
|
||||
if (!canvasInstance || !canvasInstance.getDiagramData || !canvasInstance.updateDiagramDataDirectly) {
|
||||
console.error('没有可用的画布实例进行属性更新');
|
||||
return;
|
||||
}
|
||||
@@ -504,7 +501,7 @@ function updateComponentDirectProp(componentId: string, propName: string, value:
|
||||
// @ts-ignore: 动态属性赋值
|
||||
part[propName] = value;
|
||||
|
||||
canvasInstance.setDiagramData(currentData);
|
||||
canvasInstance.updateDiagramDataDirectly(currentData);
|
||||
console.log(`更新组件${componentId}的直接属性${propName}为:`, value, typeof value);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user