element-plus/website/docs/es/popover.md
三咲智子 55348b30b6
style: use prettier (#3228)
* style: use prettier

* style: just prettier format, no code changes

* style: eslint fix
object-shorthand, prefer-const

* style: fix no-void

* style: no-console
2021-09-04 19:29:28 +08:00

12 KiB

Popover

Uso básico

Similar a un Tooltip, Popover está construido con Vue-popper. Así que para atributos duplicados, por favor refiérase a la documentación de Tooltip.

:::demo El atributo trigger es usado para definir como el popover se dispara: hover, click, focus o manual. En cuanto al elemento desencadenante, puedes escribirlo de dos maneras diferentes: usando el #referencenamed slot, o usando la directiva v-popover y poniendo el ref de Popover.

<template>
  <el-popover
    placement="top-start"
    title="Title"
    :width="200"
    trigger="hover"
    content="this is content, this is content, this is content"
  >
    <template #reference>
      <el-button>Hover to activate</el-button>
    </template>
  </el-popover>

  <el-popover
    placement="bottom"
    title="Title"
    :width="200"
    trigger="click"
    content="this is content, this is content, this is content"
  >
    <template #reference>
      <el-button>Click to activate</el-button>
    </template>
  </el-popover>

  <el-popover
    ref="popover"
    placement="right"
    title="Title"
    :width="200"
    trigger="focus"
    content="this is content, this is content, this is content"
  >
    <template #reference>
      <el-button>Focus to activate</el-button>
    </template>
  </el-popover>

  <el-popover
    placement="bottom"
    title="Title"
    :width="200"
    trigger="manual"
    content="this is content, this is content, this is content"
    v-model:visible="visible"
  >
    <template #reference>
      <el-button @click="visible = !visible">Manual to activate</el-button>
    </template>
  </el-popover>
</template>

<script>
  export default {
    data() {
      return {
        visible: false,
      }
    },
  }
</script>
<!--
<setup>

  import { defineComponent, ref } from 'vue';

  export default defineComponent({
    setup() {
      return {
        visible: ref(false),
      };
    },
  });

</setup>
-->

:::

Información anidada

Otros componentes pueden anidarse dentro de popover. A continuación un ejemplo de una tabla anidada.

:::demo Reemplaza el atributo content con un slot.

<el-popover placement="right" :width="400" trigger="click">
  <template #reference>
    <el-button>Click to activate</el-button>
  </template>
  <el-table :data="gridData">
    <el-table-column width="150" property="date" label="date"></el-table-column>
    <el-table-column width="100" property="name" label="name"></el-table-column>
    <el-table-column
      width="300"
      property="address"
      label="address"
    ></el-table-column>
  </el-table>
</el-popover>

<script>
  export default {
    data() {
      return {
        gridData: [
          {
            date: '2016-05-02',
            name: 'Jack',
            address: 'New York City',
          },
          {
            date: '2016-05-04',
            name: 'Jack',
            address: 'New York City',
          },
          {
            date: '2016-05-01',
            name: 'Jack',
            address: 'New York City',
          },
          {
            date: '2016-05-03',
            name: 'Jack',
            address: 'New York City',
          },
        ],
      }
    },
  }
</script>
<!--
<setup>

  import { defineComponent, reactive, toRefs } from 'vue';

  export default defineComponent({
    setup() {
      const state = reactive({
        gridData: [
          {
            date: '2016-05-02',
            name: 'Jack',
            address: 'New York City',
          },
          {
            date: '2016-05-04',
            name: 'Jack',
            address: 'New York City',
          },
          {
            date: '2016-05-01',
            name: 'Jack',
            address: 'New York City',
          },
          {
            date: '2016-05-03',
            name: 'Jack',
            address: 'New York City',
          },
        ],
      });
      return {
        ...toRefs(state),
      };
    },
  });

</setup>
-->

:::

Operación anidada

Por supuesto, puedes anidar otras operaciones. Es más ligero que utilizar un dialog.

:::demo

<el-popover placement="top" :width="160" v-model:visible="visible">
  <p>Are you sure to delete this?</p>
  <div style="text-align: right; margin: 0">
    <el-button size="mini" type="text" @click="visible = false"
      >cancel</el-button
    >
    <el-button type="primary" size="mini" @click="visible = false"
      >confirm</el-button
    >
  </div>
  <template #reference>
    <el-button @click="visible = true">Delete</el-button>
  </template>
</el-popover>

<script>
  export default {
    data() {
      return {
        visible: false,
      }
    },
  }
</script>
<!--
<setup>

  import { defineComponent, ref } from 'vue';

  export default defineComponent({
    setup() {
      return {
        visible: ref(false),
      };
    },
  });

</setup>
-->

:::

Atributos

Atributo Descripción Tipo Valores aceptados Por defecto
trigger cómo se dispara el popover string click/focus/hover/manual click
title título del popover string
content contenido del popover, puede ser sustituido por un slot string
width ancho del popover string, number Min width 150px
placement posición del popover en la pantalla string top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end bottom
disabled si el popover está deshabilitado boolean false
visible / v-model:visible si el popover está visible Boolean false
offset popover offset number 0
transition animación de transición del popover string el-fade-in-linear
show-arrow si una flecha del tooltip es mostrada o no. Para más información, por favor refiérase a Vue-popper boolean true
popper-options parámetros para popper.js object por favor, refiérase a popper.js { boundariesElement: 'body', gpuAcceleration: false }
popper-class clase propia para popover string
show-after retraso de la apariencia, en milisegundos number 0
hide-after retraso en el cierre, en milisegundos number 0
auto-close tiempo a esperar en milisegundos para esconder el Tooltip number 0
tabindex tabindex de Popover number

Slot

Nombre Descripción
texto contenido en popover
reference elemento HTML que dispara el popover

Eventos

Nombre del evento Descripción Parámetros
show se dispara cuando se muestra el popover
after-enter se dispara cuando la transición de entrada termina
hide se dispara cuando se oculta el popover
after-leave se dispara cuando la transición de salida termina