diff --git a/packages/canvas/src/components/container/CanvasMenu.vue b/packages/canvas/src/components/container/CanvasMenu.vue index 26ce7ce3a4..c03ee387d8 100644 --- a/packages/canvas/src/components/container/CanvasMenu.vue +++ b/packages/canvas/src/components/container/CanvasMenu.vue @@ -132,19 +132,57 @@ export default { wrap({ value, name }) { const componentName = value || name const { schema, parent } = getCurrent() - if (schema && parent) { - const index = parent.children.indexOf(schema) - const wrapSchema = { - componentName, - id: null, - props: {}, - children: [schema] - } - parent.children.splice(index, 1, wrapSchema) + if (!schema || !parent) { + return + } - getController().addHistory() + const index = parent.children.findIndex(({ id }) => schema.id === id) + let wrapSchema = { + componentName, + id: null, + props: { + content: '提示信息' + }, + children: [schema] + } + // 需要对popover特殊处理 + if (value === 'TinyPopover') { + wrapSchema = { + componentName, + props: { + width: 200, + title: '弹框标题', + trigger: 'manual', + modelValue: true + }, + children: [ + { + componentName: 'Template', + props: { + slot: 'reference' + }, + children: [schema] + }, + { + componentName: 'Template', + props: { + slot: 'default' + }, + children: [ + { + componentName: 'div', + props: { + placeholder: '提示内容' + } + } + ] + } + ] + } } + parent.children.splice(index, 1, wrapSchema) + getController().addHistory() }, createBlock() { if (useCanvas().isSaved()) { diff --git a/packages/canvas/src/components/render/render.js b/packages/canvas/src/components/render/render.js index f6d36f9ba9..cc7947c2ca 100644 --- a/packages/canvas/src/components/render/render.js +++ b/packages/canvas/src/components/render/render.js @@ -169,6 +169,7 @@ const parseI18n = (i18n, scope, ctx) => { const renderDefault = (children, scope, parent) => children.map?.((child) => + // eslint-disable-next-line no-use-before-define h(renderer, { schema: child, scope,