element/examples/docs/es/notification.md

319 lines
9.2 KiB
Markdown
Raw Normal View History

2017-11-06 19:22:02 +08:00
## Notification
Muestra un mensaje de notificación global en una esquina de la página.
2017-11-06 19:22:02 +08:00
### Uso básico
2017-11-06 19:22:02 +08:00
2017-12-12 12:45:09 +08:00
:::demo Element ha registrado el método`$notify` y recibe un objeto como parámetro. En el caso más sencillo, puede establecer el campo de `title` y el campo de ` message` para el título y el cuerpo de la notificación. De forma predeterminada, la notificación se cierra automáticamente después de 4500ms, pero configurando `duration` se puede controlar su duración. Específicamente, si está configurado en `0`, no se cerrará automáticamente. Tenga en cuenta que `duration` recibe un `Number` en milisegundos.
2017-11-06 19:22:02 +08:00
```html
<template>
<el-button
plain
@click="open">
Closes automatically
</el-button>
<el-button
plain
@click="open2">
Won't close automatically
</el-button>
</template>
<script>
export default {
methods: {
open() {
const h = this.$createElement;
this.$notify({
title: 'Title',
message: h('i', { style: 'color: teal' }, 'This is a reminder')
});
},
open2() {
this.$notify({
title: 'Prompt',
message: 'This is a message that does not automatically close',
duration: 0
});
}
}
}
</script>
```
:::
### Tipos de notificaciones
Proporcionamos cuatro tipos: success, warning, info y error.
2017-11-06 19:22:02 +08:00
2017-12-12 12:45:09 +08:00
:::demo Element proporciona cuatro tipos de notificación: `success`, `warning`, `info` y `error`. Se definen por el campo `type` y se ignorarán otros valores. También se han registrado métodos para estos tipos que se pueden invocar directamente como en el ejemplo `open5` y `open6` sin pasar un campo `type`.
2017-11-06 19:22:02 +08:00
```html
<template>
<el-button
plain
@click="open3">
Success
</el-button>
<el-button
plain
@click="open4">
Warning
</el-button>
<el-button
plain
@click="open5">
Info
</el-button>
<el-button
plain
@click="open6">
Error
</el-button>
</template>
<script>
export default {
methods: {
open3() {
this.$notify({
title: 'Success',
message: 'This is a success message',
type: 'success'
});
},
open4() {
this.$notify({
title: 'Warning',
message: 'This is a warning message',
type: 'warning'
});
},
open5() {
this.$notify.info({
title: 'Info',
message: 'This is an info message'
});
},
open6() {
this.$notify.error({
title: 'Error',
message: 'This is an error message'
});
}
}
}
</script>
```
:::
### Posicion personalizada
2017-11-06 19:22:02 +08:00
La notificación puede surgir de cualquier rincón que uno desee.
2017-12-12 12:45:09 +08:00
:::demo El atributo `position` define desde qué esquina se desliza la notificación. Puede ser `top-right`, `top-left`, `bottom-right` o `bottom-left`. Predeterminado: `top-right`.
2017-11-06 19:22:02 +08:00
```html
<template>
<el-button
plain
@click="open7">
Top Right
</el-button>
<el-button
plain
@click="open8">
Bottom Right
</el-button>
<el-button
plain
@click="open9">
Bottom Left
</el-button>
<el-button
plain
@click="open10">
Top Left
</el-button>
</template>
<script>
export default {
methods: {
open7() {
this.$notify({
title: 'Custom Position',
message: 'I\'m at the top right corner'
});
},
open8() {
this.$notify({
title: 'Custom Position',
message: 'I\'m at the bottom right corner',
position: 'bottom-right'
});
},
open9() {
this.$notify({
title: 'Custom Position',
message: 'I\'m at the bottom left corner',
position: 'bottom-left'
});
},
open10() {
this.$notify({
title: 'Custom Position',
message: 'I\'m at the top left corner',
position: 'top-left'
});
}
}
}
</script>
```
:::
### Desplazamiento
Personalizar el desplazamiento de notificación desde el borde de la pantalla.
2017-11-06 19:22:02 +08:00
2017-12-12 12:45:09 +08:00
:::demo Configure el atributo `offset` para personalizar el desplazamiento de la notificación desde el borde de la pantalla. Tenga en cuenta que cada instancia de la notificación del mismo momento debe tener el mismo desplazamiento.
2017-11-06 19:22:02 +08:00
```html
<template>
<el-button
plain
@click="open11">
Notification with offset
</el-button>
</template>
<script>
export default {
methods: {
open11() {
this.$notify.success({
title: 'Success',
message: 'This is a success message',
offset: 100
});
}
}
}
</script>
```
:::
### Usando cadenas HTML
`message` soporta cadenas HTML.
2017-12-12 12:45:09 +08:00
:::demo Configure `dangerouslyUseHTMLString` a true y `message` se tratará como una cadena HTML.
2017-11-06 19:22:02 +08:00
```html
<template>
<el-button
plain
@click="open12">
Use HTML String
</el-button>
</template>
<script>
export default {
methods: {
open12() {
this.$notify({
title: 'HTML String',
dangerouslyUseHTMLString: true,
message: '<strong>This is <i>HTML</i> string</strong>'
});
}
}
}
</script>
```
:::
:::warning
Aunque la propiedad `message` soporta cadenas HTML, el renderizado dinámico de HTML arbitrario en su sitio web puede ser muy peligroso porque puede conducir fácilmente a [ataques XSS](https://en.wikipedia.org/wiki/Cross-site_scripting). Por lo tanto, cuando `dangerouslyUseHTMLString` está a true, por favor asegúrese de que el contenido del mensaje es confiable, y **nunca** asigne `message` al contenido proporcionado por el usuario.
2017-11-06 19:22:02 +08:00
:::
### Ocultar boton de cerrar
Es posible ocultar el botón de cerrar
2017-11-06 19:22:02 +08:00
2017-12-12 12:45:09 +08:00
:::demo Configure el atributo `showClose` como `false` para que el usuario no pueda cerrar la notificación.
2017-11-06 19:22:02 +08:00
```html
<template>
<el-button
plain
@click="open13">
Hide close button
</el-button>
</template>
<script>
export default {
methods: {
open13() {
this.$notify.success({
title: 'Info',
message: 'This is a message without close button',
showClose: false
});
}
}
}
</script>
```
:::
### Metodo global
2017-11-06 19:22:02 +08:00
Element ha añadido un método global `$notify` para Vue.prototype. Así que en una instancia de vue se puede llamar `Notification` como lo hacemos en esta página.
2017-11-06 19:22:02 +08:00
### Importar localmente
2017-11-06 19:22:02 +08:00
Importar `Notification`:
2017-11-06 19:22:02 +08:00
```javascript
import { Notification } from 'element-ui';
```
2018-01-29 12:32:46 +08:00
En este caso, debe llamar a `Notification(options)`. También se han registrado métodos para diferentes tipos, e.j. `Notification.success(options)`. Puede llamar al metodo `Notification.closeAll()` para cerrar manualmente todas las instancias.
### Opciones
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
| ------------------------ | ---------------------------------------- | ---------------- | ---------------------------------------- | ----------- |
| title | titulo | string | — | — |
| message | mensaje | string/Vue.VNode | — | — |
| dangerouslyUseHTMLString | si `message` es tratado como una cadena HTML | boolean | — | false |
| type | tipo de notificacion | string | success/warning/info/error | — |
| iconClass | clase personalizada de icono. Será anulado por `type` | string | — | — |
| customClass | nombre de clase personalizado para la notificacion | string | — | — |
| duration | duracion antes de cerrar. Si no se quiere que se cierre automaticamente este valor debe estar a 0 | number | — | 4500 |
| position | posicion personalizada | string | top-right/top-left/bottom-right/bottom-left | top-right |
| showClose | si se muestra el boton de cerrar | boolean | — | true |
| onClose | funcion que se ejecuta cuando la notificación se cierra | function | — | — |
| onClick | funcion que se ejecuta cuando se hace click en la notificación | function | — | — |
| offset | desplazamiento desde el borde superior de la pantalla. Cada instancia de notificación del mismo momento debe tener siempre el mismo desplazamiento. | number | — | 0 |
### Metodos
2017-12-03 18:03:06 +08:00
`Notification` y `this.$notify` devuelven la instancia de la notificacion actual. Para cerrar manualmente la instancia, se puede llamar `close` para ello.
| Metodo | Descripción |
| ------ | ---------------------- |
| close | cierra la notificación |