在ant desigm vue项目中,如何在表格的标题或者tags中嵌入Popover 气泡卡片?

在ant desigm vue项目中,如何在表格的标题或者tags中添加Popover 气泡卡片?

img

效果:将鼠标移动到tags列标题上,会自动显示气泡卡片,将鼠标移动到每行tags上,根据不同的标签,显示不同的文字

img

在ant design vue项目中,可以使用Popover组件来实现在表格的标题或者tags中嵌入气泡卡片。具体实现步骤如下:

  1. 首先,在需要嵌入气泡卡片的地方使用Popover组件,例如:
<Popover content="这是一个气泡卡片" title="标题">
  <a>悬浮触发</a>
</Popover>

这里的 content 属性用于设置气泡卡片的内容, title 属性用于设置卡片的标题。同时,我们将 Popover 组件包裹在一个 a 标签中,以便用户可以通过鼠标悬浮触发气泡卡片的显示。

  1. 在表格的标题或者tags中使用自定义的渲染函数(render函数),将渲染结果包裹在 Popover 组件中:

例如,对于表格的标题,可以在columns数组中添加一个render函数,来实现在表格的标题中嵌入气泡卡片:

columns: [
  {
    title: (
      <Popover content="这是一个气泡卡片" title="标题">
        <span>悬浮触发</span>
      </Popover>
    ),
    dataIndex: "name",
    key: "name",
  },
  // ...
]

这里的 title 属性包含了一个 Popover 组件,在渲染表格的标题时,会显示一个悬浮链接,当用户鼠标悬浮时,就会触发气泡卡片的显示。

类似地,我们也可以在渲染tags时,使用render函数将渲染结果包裹在 Popover 组件中:

{
  title: "标签",
  dataIndex: "tags",
  key: "tags",
  render: (tags: string[]) => (
    <>
      {tags.map((tag) => (
        <Tag key={tag}>
          <Popover content={`这是${tag}的说明`} title={tag}>
            <span>{tag}</span>
          </Popover>
        </Tag>
      ))}
    </>
  ),
},

这里的render函数将渲染结果包裹在多个 Popover 组件中,每个组件的内容和标题都不同,根据具体场景设置即可。

综上,通过使用Popover组件和render函数,我们可以非常方便地在ant design vue项目中,在表格的标题或者tags中嵌入气泡卡片。

表格的title不是可以自定义渲染吗 渲染上你的气泡卡片不就行了