Merge branch 'dev' into update-pt-br

pull/18918/head
Lucas Mendes 2021-06-25 09:55:06 -03:00 committed by GitHub
commit 1ff4b2a9b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
197 changed files with 3753 additions and 816 deletions

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Create new issue
url: https://elementui.github.io/issue-generator
about: The issue which is not created via https://elementui.github.io/issue-generator will be closed immediately.

View File

@ -1,5 +1,153 @@
## Changelog
### 2.15.2
*2021-05-28*
#### Bug fixes
- Image
- fix z-index and keydown event add stopPropagation (#20859 by @cs1707)
- Input
- fix show password cursor (#20870 by @cs1707)
- fix show password icon in edge (#20902 by @cs1707)
- Carousel
- fix interval and scale bug (#20931 by @cs1707)
- Cascader
- fix delete tag bug (#20939 by @cs1707)
- Drawer
- add overflow auto (#20948 by @cs1707)
- Others
- fix isFunction (#20912 by @cs1707)
### 2.15.1
*2021-02-23*
#### Bug fixes
- Drawer
- bugfix (by @cs1707)
- Image
- fix incorrect image object fit ratio in IE (#19583 by @charlie0228)
- Cascader
- fix cascader panel active path (#20730 by @cs1707)
- Calendar
- fix calendar component i18n bug (#20758 by @iamkun)
- ColorPicker
- fix bugs (by @UxieVerity)
#### Optimization
- Doc
- update Axure resource v2.1.0 (by @iamkun)
### 2.15.0
*2021-01-15*
#### Bug fixes
- Select
- Fix placeholder i18n bug (#17644 by @nzh63)
- Popconfirm
- Popconfirm i18n bug by @iamkun)
- Drawer
- Fix focus bug (#20626 by @cs1707)
- Image
- Preview optimization (#20652 by @cs1707)
#### Optimization
- Doc
- Fix typo in french translation of datetime-picker.md (#20543 by @lonk)
- Add format attribute description to the progress component (#20641 by @cs1707)
### 2.14.1
*2020-11-11*
#### Bug fixes
- Popover
- Compatible with Vue 2.6 new v-slot syntax (#20424 by @iamkun)
#### Optimization
- I18n
- Update Arabic translation (#20202 by @elkattan)
- Update Uighur translation (#20177 by @IlhamTahir)
### 2.14.0
*2020-10-29*
#### Breaking changes
- Popconfirm
- Rename event name to `confirm`, `cancel` (#20240 by @hugiron)
#### Bug fixes
- Progress
- Fix attribute error (#19985 by @Caaalabash)
#### Optimization
- I18n
- Update Russian translation (#19451 by @yangirov)
- Update Khmer translation (#20077 by @Sovai)
- Update Ukrainian translation (#20344 by @MammutAlex)
### 2.13.2
*2020-05-18*
#### Bug fixes
- Autocomplete
- Fix change event bug (#19200 by @sxzz)
- Image
- Update error status (#19194 by @lhx6538665)
#### Optimization
- I18n
- Update ru-RU popconfirm translation (#19220 by @Opppex)
- Update vi translation (#19244 by @quangln2810)
- Update Catalan and Spanish translations (#19296 by @Ismaaa)
- Update Indonesia translation (#19320) by @therour)
- Update Brazilian Portuguese translation (#19374 by @diegomengarda)
### 2.13.1
*2020-04-13*
#### New features
- Autocomplete
- Add change event (#17913 by @sxzz)
#### Bug fixes
- Autocomplete
- Fix suggestion error when textarea (#18478 by @Roojay)
- Carousel
- Fix console typo bug (#18264 by @IceFox)
- Image
- Fix preview dose not show when preview list not contain src issue (#18975) (#19130 by @luckyCao)
- Fix shortcut key not work at second time issue (#18983) (#19156 by @luckyCao)
- Don't show image-viewer when preview is false (#18967 by @inooNgt)
- Transfer
- Fix incorrect line-height of el-transfer's first list item when it was used with el-form-item (#18917 by @Hanx)
- InputNumber
- Correctly compute inputNumberDisabled (#18439 by @ashuser-pendo)
- Chore
- Remove index intro (#19155 by @iamkun)
- Doc
- Popconfirm doc update (#18324 by @iamkun)
- Fix step-strictly docs typo (#18705 by @dream2023)
- Fix a type error in document of steps component (#17555 by @haoranyu)
### 2.13.0
*2019-11-26*

View File

@ -1,73 +1,221 @@
## Changelog
### 2.15.2
*2021-05-28*
#### Bug fixes
- Image
- fix z-index and keydown event add stopPropagation (#20859 by @cs1707)
- Input
- fix show password cursor (#20870 by @cs1707)
- fix show password icon in edge (#20902 by @cs1707)
- Carousel
- fix interval and scale bug (#20931 by @cs1707)
- Cascader
- fix delete tag bug (#20939 by @cs1707)
- Drawer
- add overflow auto (#20948 by @cs1707)
- Others
- fix isFunction (#20912 by @cs1707)
### 2.15.1
*2021-02-23*
#### Bug fixes
- Drawer
- bugfix (by @cs1707)
- Image
- fix incorrect image object fit ratio in IE (#19583 by @charlie0228)
- Cascader
- fix cascader panel active path (#20730 by @cs1707)
- Calendar
- fix calendar component i18n bug (#20758 by @iamkun)
- ColorPicker
- fix bugs (by @UxieVerity)
#### Optimization
- Doc
- update Axure resource v2.1.0 (by @iamkun)
### 2.15.0
*2021-01-15*
#### Bug fixes
- Select
- Fix placeholder i18n bug (#17644 by @nzh63)
- Popconfirm
- Popconfirm i18n bug by @iamkun
- Drawer
- Fix focus bug (#20626 by @cs1707)
- Image
- Preview optimization (#20652 by @cs1707)
#### Optimization
- Doc
- Fix typo in french translation of datetime-picker.md (#20543 by @lonk)
- Add format attribute description to the progress component (#20641 by @cs1707)
### 2.14.1
*2020-11-11*
#### Bug fixes
- Popover
- Compatible with Vue 2.6 new v-slot syntax (#20424 by @iamkun)
#### Optimization
- I18n
- Update Arabic translation (#20202 by @elkattan)
- Update Uighur translation (#20177 by @IlhamTahir)
### 2.14.0
*2020-10-29*
#### Breaking changes
- Popconfirm
- Rename event name to `confirm`, `cancel` (#20240 by @hugiron)
#### Bug fixes
- Progress
- Fix attribute error (#19985 by @Caaalabash)
#### Optimization
- I18n
- Update Russian translation (#19451 by @yangirov)
- Update Khmer translation (#20077 by @Sovai)
- Update Ukrainian translation (#20344 by @MammutAlex)
### 2.13.2
*2020-05-18*
#### Corrección de errores
- Autocomplete
- Arreglado el error cuando se daba el evento change (#19200 by @sxzz)
- Image
- Actualizado el estado de error (#19194 by @lhx6538665)
#### Optimización
- I18n
- Actualización de la traducción del popconfirm al Ruso (#19220 by @Opppex)
- Actualización de la traducción al vi (#19244 by @quangln2810)
- Actualización de la traducción al Catalán y al Español (#19296 by @Ismaaa)
- Actualización de la traducción al Indonesio (#19320) by @therour)
- Actualización de la traducción al Portugués Brasileño (#19374 by @diegomengarda)
### 2.13.1
*2020-04-13*
#### Nuevas características
- Autocomplete
- Agregado el evento change (#17913 by @sxzz)
#### Corrección de errores
- Autocomplete
- Solucionado el error de la sugerencia en textarea (#18478 by @Roojay)
- Carousel
- Arreglado el error de escritura de la consola (#18264 by @IceFox)
- Image
- Solucionado el error de que no se mostraba el preview si no existía el src (#18975) (#19130 by @luckyCao)
- Arreglado el problema de que el shortcut key no funcionaba la segunda vez (#18983) (#19156 by @luckyCao)
- No muestra la imagen cuando preview es falso (#18967 by @inooNgt)
- Transfer
- Corregida la altura (line-height) incorrecta del primer elemento del el-transfer cuando era usado con el-form-item (#18917 by @Hanx)
- InputNumber
- Calculo correcto de inputNumberDisabled (#18439 by @ashuser-pendo)
- Tarea
- Se quito la introducción del index (#19155 by @iamkun)
- Documentación
- Actualización de la documentación de Popconfirm (#18324 by @iamkun)
- Arreglado el error tipográfico de la documentación de Fix step-strictly (#18705 by @dream2023)
- Corregido un type error en la documentación de steps component (#17555 by @haoranyu)
### 2.13.0
*2019-11-26*
#### New features
#### Nuevas características
- Popconfirm
- Add popconfirm component (#17548 by @iamkun)
- Agregado componente popconfirm (#17548 by @iamkun)
#### Bug fixes
#### Corrección de errores
- BackTop
- Use cubic bezier scrolling (by @lon)
- Se usa cubic bezier para el scroll (by @lon)
- DatePicker
- Fix bug of only select min date of date range problem (#17191 by @smk0621)
- Arreglado el fallo cuando solo se elegía fecha mínima en un rango de fechas (#17191 by @smk0621)
- Select
- Fix select test cases by (@msidolphin)
- Arreglado los casos de test del select (by @msidolphin)
- Tree
- Add font-size for the style of tree empty-text (#17094 by @spengjie)
- Agregado font-size para el estilo del texto cuando esta vacío el tree (#17094 by @spengjie)
- Table
- Column header can be costumed (#17291 by @ziyoung)
- Update table header cell style (#17284 by @ziyoung)
- Fix table header height after filter (#17348 by @ziyoung)
- Fixed row-style with display not work (#17002 by @a631807682)
- Fix header table not display (#17341 by @ziyoung)
- La cabecera de la columna puede modificarse (#17291 by @ziyoung)
- Se actualizo el estilo de la cabecera de la tabla de la celda (#17284 by @ziyoung)
- Se soluciono el problema de height de la cabecera de la tabla después de un filtro (#17348 by @ziyoung)
- Corregido el estilo de la fila que con display no funcionaba (#17002 by @a631807682)
- Arreglado que la cabecera de la tabla no se mostraba (#17341 by @ziyoung)
- Calendar
- Import el-button and el-button-group (#17376 by @masongzhi)
- La importación de el-button y el-button-group (#17376 by @masongzhi)
- MessageBox
- Fix icon position error (#17410 by @nullptru)
- Corregido el error de posición del icono (#17410 by @nullptru)
- TimePicker
- Set the selection range after scrolling up or down (#16868 by @mattheyan)
- Establecido el rango de selección después de hacer scroll (#16868 by @mattheyan)
- Message
- Fix close instace offsetHeight#17564 (#17852 by @gzwgq222)
- Corregido el offsetHeight al cerrar la instancia#17564 (#17852 by @gzwgq222)
- Form
- Callback of validateField should be optional (#17314 by @CarterLi)
- La función de llamada de validateField es opcional (#17314 by @CarterLi)
- Cascader
- Fix TypeScript 3.7 compatibility (#17881 by @CarterLi)
- Corregida la compatibilidad con TypeScript 3.7 (#17881 by @CarterLi)
- Menu
- Fix router NavigationDuplicated error when using vue-router@^3.1.0 (#17269 by @iamkun)
- Corregido el error de la ruta de navegación duplicada cuando se usaba vue-router@^3.1.0 (#17269 by @iamkun)
- Dropdown
- Update type file (#17550 by @iamkun)
- Actualización del tipo de archivo (#17550 by @iamkun)
- Progress
- Add strokeLinecap prop (#17552 by @iamkun)
- Agregada la prop strokeLinecap (#17552 by @iamkun)
- InfiniteScroll
- Skip trigger event on invisible element (#17553 by @iamkun)
- Salto del disparo de evento en elementos invisibles (#17553 by @iamkun)
- Image
- Perfect picture preview behavior (#16985 by @luckyCao)
- Fix shield the page when preview big image (#16796 by @luckyCao)
- Comportamiento perfecto de personalización de imágenes (#16985 by @luckyCao)
- Corregida la pagina cuando se hace preview de imágenes grandes (#16796 by @luckyCao)
- Drawer
- Bugfix drawer-append-to-body-not-working (#16953 by @JeremyWuuuuu)
- Corregido el fallo del append-to-body del drawer que no funcionaba (#16953 by @JeremyWuuuuu)
- Select
- Fix tag show value or empty issue (17199 by @luckyCao)
- Corregido: ahora muestra el tag o el valor vacío (17199 by @luckyCao)
- Scrollbar
- Fix FireFox scroll bar width (#18091 by @iamkun)
- Arreglado el ancho del scroll en FireFox (#18091 by @iamkun)
#### Optimization
#### Optimización
- I18n
- Update sv-SE.js (#17926 by @FOLLGAD)
- Update avatar component fr doc (#17762 by @blombard)
- Actualizado sv-SE.js (#17926 by @FOLLGAD)
- Actualizada la documentación para francés para el componente avatar (#17762 by @blombard)
- Docs
- Fix time-select typo (#17250 by @wacky6)
- Fix Drawer attribute accepted value typo in es (#17122 by @haoranyu)
- Update Spanish changelog 2.12.0 (#17364 by @Gonzalo2310)
- Fix Changelog typo (#17874 by @renlixin)
- Fix Loading demo (#17862 by @MBearo)
- Add input event in input Events Table (#18061 by @zhouxinyong)
- Delete Input repeat change event (#18085 by @zhouxinyong)
- Arreglada la typografia de time-select (#17250 by @wacky6)
- Arreglado en Drawer, ahora el atributo value acepta tipografías en español (#17122 by @haoranyu)
- Actualización del Changelog 2.12.0 al español (#17364 by @Gonzalo2310)
- Arreglo de la tipografía del Changelog (#17874 by @renlixin)
- Arreglada la demo de Loading (#17862 by @MBearo)
- Agregado el evento input en los inputs de Table (#18061 by @zhouxinyong)
- Eliminado el evento repetitivo change de los input (#18085 by @zhouxinyong)
### 2.12.0
@ -1651,4 +1799,4 @@
# #
<i><sup>*</sup> El procesamiento 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á encendido, por favor asegúrese de que el contenido de `message` es confiable, y **nunca** asigne el `message` al contenido proporcionado por el usuario.</i>``
<i><sup>*</sup> El procesamiento 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á encendido, por favor asegúrese de que el contenido de `message` es confiable, y **nunca** asigne el `message` al contenido proporcionado por el usuario.</i>``

View File

@ -1,5 +1,154 @@
## Changelog
### 2.15.2
*2021-05-28*
#### Bug fixes
- Image
- fix z-index and keydown event add stopPropagation (#20859 by @cs1707)
- Input
- fix show password cursor (#20870 by @cs1707)
- fix show password icon in edge (#20902 by @cs1707)
- Carousel
- fix interval and scale bug (#20931 by @cs1707)
- Cascader
- fix delete tag bug (#20939 by @cs1707)
- Drawer
- add overflow auto (#20948 by @cs1707)
- Others
- fix isFunction (#20912 by @cs1707)
### 2.15.1
*2021-02-23*
#### Bug fixes
- Drawer
- bugfix (by @cs1707)
- Image
- fix incorrect image object fit ratio in IE (#19583 by @charlie0228)
- Cascader
- fix cascader panel active path (#20730 by @cs1707)
- Calendar
- fix calendar component i18n bug (#20758 by @iamkun)
- ColorPicker
- fix bugs (by @UxieVerity)
#### Optimization
- Doc
- update Axure resource v2.1.0 (by @iamkun)
### 2.15.0
*2021-01-15*
#### Bug fixes
- Select
- Fix placeholder i18n bug (#17644 by @nzh63)
- Popconfirm
- Popconfirm i18n bug by @iamkun
- Drawer
- Fix focus bug (#20626 by @cs1707)
- Image
- Preview optimization (#20652 by @cs1707)
#### Optimization
- Doc
- Fix typo in french translation of datetime-picker.md (#20543 by @lonk)
- Add format attribute description to the progress component (#20641 by @cs1707)
### 2.14.1
*2020-11-11*
#### Bug fixes
- Popover
- Compatible with Vue 2.6 new v-slot syntax (#20424 by @iamkun)
#### Optimization
- I18n
- Update Arabic translation (#20202 by @elkattan)
- Update Uighur translation (#20177 by @IlhamTahir)
### 2.14.0
*2020-10-29*
#### Breaking changes
- Popconfirm
- Rename event name to `confirm`, `cancel` (#20240 by @hugiron)
#### Bug fixes
- Progress
- Fix attribute error (#19985 by @Caaalabash)
#### Optimization
- I18n
- Update Russian translation (#19451 by @yangirov)
- Update Khmer translation (#20077 by @Sovai)
- Update Ukrainian translation (#20344 by @MammutAlex)
### 2.13.2
*2020-05-18*
#### Bug fixes
- Autocomplete
- Fix change event bug (#19200 by @sxzz)
- Image
- Update error status (#19194 by @lhx6538665)
#### Optimization
- I18n
- Update ru-RU popconfirm translation (#19220 by @Opppex)
- Update vi translation (#19244 by @quangln2810)
- Update Catalan and Spanish translations (#19296 by @Ismaaa)
- Update Indonesia translation (#19320) by @therour)
- Update Brazilian Portuguese translation (#19374 by @diegomengarda)
### 2.13.1
*2020-04-13*
#### New features
- Autocomplete
- Add change event (#17913 by @sxzz)
#### Bug fixes
- Autocomplete
- Fix suggestion error when textarea (#18478 by @Roojay)
- Carousel
- Fix console typo bug (#18264 by @IceFox)
- Image
- Fix preview dose not show when preview list not contain src issue (#18975) (#19130 by @luckyCao)
- Fix shortcut key not work at second time issue (#18983) (#19156 by @luckyCao)
- Don't show image-viewer when preview is false (#18967 by @inooNgt)
- Transfer
- Fix incorrect line-height of el-transfer's first list item when it was used with el-form-item (#18917 by @Hanx)
- InputNumber
- Correctly compute inputNumberDisabled (#18439 by @ashuser-pendo)
- Chore
- Remove index intro (#19155 by @iamkun)
- Doc
- Popconfirm doc update (#18324 by @iamkun)
- Fix step-strictly docs typo (#18705 by @dream2023)
- Fix a type error in document of steps component (#17555 by @haoranyu)
### 2.13.0
*2019-11-26*

View File

@ -1,5 +1,154 @@
## 更新日志
### 2.15.2
*2021-05-28*
#### Bug 修复
- Image
- 修复 z-index 增加 keydown 事件 添加 stopPropagation (#20859 by @cs1707)
- Input
- 修复 password cursor 展示 (#20870 by @cs1707)
- 修复 password icon 在 edge 下的展示 (#20902 by @cs1707)
- Carousel
- 修复 interval 和 scale bug (#20931 by @cs1707)
- Cascader
- 修复 delete tag bug (#20939 by @cs1707)
- Drawer
- 支持 overflow auto (#20948 by @cs1707)
- 其他
- 修复 isFunction (#20912 by @cs1707)
### 2.15.1
*2021-02-23*
#### Bug 修复
- Drawer
- 修复 Drawer bug (by @cs1707)
- Image
- 修复 image object fit ratio 在 IE 下的 bug (#19583 by @charlie0228)
- Cascader
- 修复 cascader panel active path (#20730 by @cs1707)
- Calendar
- 修复 calendar 国际化 bug (#20758 by @iamkun)
- ColorPicker
- 修复 bugs (by @UxieVerity)
#### 优化
- Doc
- 更新 Axure 设计资源 v2.1.0 (by @iamkun)
### 2.15.0
*2021-01-15*
#### Bug 修复
- Select
- 修复 placeholder 国际化 bug (#17644 by @nzh63)
- Popconfirm
- 修复 Popconfirm 国际化 bug by @iamkun
- Drawer
- 修复 focus bug (#20626 by @cs1707)
- Image
- 图片预览优化 (#20652 by @cs1707)
#### 优化
- Doc
- 更新法语文档 datetime-picker.md (#20543 by @lonk)
- 更新 Progress 组件文档 (#20641 by @cs1707)
### 2.14.1
*2020-11-11*
#### Bug 修复
- Popover
- 兼容 Vue 2.6 新 v-slot 语法 (#20424 by @iamkun)
#### 优化
- I18n
- 更新阿拉伯语翻译 (#20202 by @elkattan)
- 更新维吾尔语翻译 (#20177 by @IlhamTahir)
### 2.14.0
*2020-10-29*
#### 非兼容性更新
- Popconfirm
- 事件名称修改为 `confirm`, `cancel` (#20240 by @hugiron)
#### Bug 修复
- Progress
- 修复参数错误的问题 (#19985 by @Caaalabash)
#### 优化
- I18n
- 更新俄语翻译 (#19451 by @yangirov)
- 更新高棉语翻译 (#20077 by @Sovai)
- 更新乌克兰语翻译 (#20344 by @MammutAlex)
### 2.13.2
*2020-05-18*
#### Bug 修复
- Autocomplete
- 修复 'change event' 错误 (#19200 by @sxzz)
- Image
- 更新错误状态 (#19194 by @lhx6538665)
#### 优化
- I18n
- 更新 ru-RU popconfirm 翻译 (#19220 by @Opppex)
- 更新 vi 翻译 (#19244 by @quangln2810)
- 更新 Catalan 和 Spanish 翻译 (#19296 by @Ismaaa)
- 更新 Indonesia 翻译 (#19320) by @therour)
- 更新 Brazilian Portuguese 翻译 (#19374 by @diegomengarda)
### 2.13.1
*2020-04-13*
#### 新特性
- Autocomplete
- 添加 change 事件 (#17913 by @sxzz)
#### Bug 修复
- Autocomplete
- 修复类型为 textarea 时建议错误问题 (#18478 by @Roojay)
- Carousel
- 修复 console.warn 文案拼写错误 (#18264 by @IceFox)
- Image
- 修复当 preview-src-list 属性不包含 src 时图片预览大图展示为空的问题 (#18975) (#19130 by @luckyCao)
- 修复第二次图片预览时快捷键失效问题 (#18983) (#19156 by @luckyCao)
- 修复 preview-src-list 为空时点击图片会给 body 添加 overflow: scroll 的问题 (#18967 by @inooNgt)
- Transfer
- 修复和 Form 组件一起使用时错误的行高问题 (#18917 by @Hanx)
- InputNumber
- 正确计算 inputNumberDisabled (#18439 by @ashuser-pendo)
- Chore
- 更新首页文案 (#19155 by @iamkun)
- Doc
- 更新 Popconfirm 文档 (#18324 by @iamkun)
- 修复 step-strictly 文档拼写问题 (#18705 by @dream2023)
- 修复 Steps 组件文档问题 (#17555 by @haoranyu)
### 2.13.0
*2019-11-26*

110
README.md
View File

@ -36,33 +36,12 @@
</a>
</p>
<p align="center">
<b>Special thanks to the generous sponsorship by:</b>
</p>
<table>
<tbody>
<tr>
<td align="center" valign="middle">
<a href="https://tipe.io/?ref=element" target="_blank">
<img width="150px" src="https://user-images.githubusercontent.com/1016365/34124854-48fafa06-e3e9-11e7-8c04-251055feebee.png">
</a>
</td>
<td align="center" valign="middle">
<a href="https://www.duohui.cn/?utm_source=element&utm_medium=web&utm_campaign=element-index" target="_blank">
<img width="150px" src="https://user-images.githubusercontent.com/10095631/35603534-bb24470c-0678-11e8-8bcc-17ceaef8cbef.png">
</a>
</td>
<td align="center" valign="middle">
<a href="https://bitsrc.io/" target="_blank">
<img width="150px" src="https://user-images.githubusercontent.com/10095631/41342907-e44e7196-6f2f-11e8-92f2-47702dc8f059.png">
</a>
</td>
</tr>
</tbody>
</table>
> A Vue.js 2.0 UI Toolkit for Web.
Element will stay with Vue 2.x
For Vue 3.0, we recommend using [Element Plus](https://github.com/element-plus/element-plus) from the same team
## Links
- Homepage and documentation
- [International users](http://element.eleme.io/#/en-US)
@ -71,6 +50,7 @@
- [French users](http://element.eleme.io/#/fr-FR)
- [awesome-element](https://github.com/ElementUI/awesome-element)
- [FAQ](./FAQ.md)
- [Vue.js 3.0 migration](https://github.com/element-plus/element-plus)
- [Customize theme](http://element.eleme.io/#/en-US/component/custom-theme)
- [Preview and generate theme online](https://elementui.github.io/theme-chalk-preview)
- [Element for React](https://github.com/elemefe/element-react)
@ -126,8 +106,6 @@ We have collected some [frequently asked questions](https://github.com/ElemeFE/e
## Contribution
Please make sure to read the contributing guide ([中文](https://github.com/ElemeFE/element/blob/master/.github/CONTRIBUTING.zh-CN.md) | [English](https://github.com/ElemeFE/element/blob/master/.github/CONTRIBUTING.en-US.md) | [Español](https://github.com/ElemeFE/element/blob/master/.github/CONTRIBUTING.es.md) | [Français](https://github.com/ElemeFE/element/blob/master/.github/CONTRIBUTING.fr-FR.md)) before making a pull request.
[![Let's fund issues in this repository](https://issuehunt.io/static/embed/issuehunt-button-v1.svg)](https://issuehunt.io/repos/67274736)
## Special Thanks
English documentation is brought to you by SwiftGG Translation Team:
- [raychenfj](https://github.com/raychenfj)
@ -157,87 +135,11 @@ French documentation is made possible by these community developers:
- [smalesys](https://github.com/smalesys)
- [blombard](https://github.com/blombard)
## Donation
If you find Element useful, you can buy us a cup of coffee
<img width="650" src="https://user-images.githubusercontent.com/14025786/44833997-5d7c4d80-ac62-11e8-8445-1dffec0eb13c.png" alt="donation">
## Backers
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/element#backer)]
<a href="https://opencollective.com/element/backer/0/website" target="_blank"><img src="https://opencollective.com/element/backer/0/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/1/website" target="_blank"><img src="https://opencollective.com/element/backer/1/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/2/website" target="_blank"><img src="https://opencollective.com/element/backer/2/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/3/website" target="_blank"><img src="https://opencollective.com/element/backer/3/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/4/website" target="_blank"><img src="https://opencollective.com/element/backer/4/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/5/website" target="_blank"><img src="https://opencollective.com/element/backer/5/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/6/website" target="_blank"><img src="https://opencollective.com/element/backer/6/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/7/website" target="_blank"><img src="https://opencollective.com/element/backer/7/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/8/website" target="_blank"><img src="https://opencollective.com/element/backer/8/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/9/website" target="_blank"><img src="https://opencollective.com/element/backer/9/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/10/website" target="_blank"><img src="https://opencollective.com/element/backer/10/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/11/website" target="_blank"><img src="https://opencollective.com/element/backer/11/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/12/website" target="_blank"><img src="https://opencollective.com/element/backer/12/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/13/website" target="_blank"><img src="https://opencollective.com/element/backer/13/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/14/website" target="_blank"><img src="https://opencollective.com/element/backer/14/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/15/website" target="_blank"><img src="https://opencollective.com/element/backer/15/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/16/website" target="_blank"><img src="https://opencollective.com/element/backer/16/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/17/website" target="_blank"><img src="https://opencollective.com/element/backer/17/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/18/website" target="_blank"><img src="https://opencollective.com/element/backer/18/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/19/website" target="_blank"><img src="https://opencollective.com/element/backer/19/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/20/website" target="_blank"><img src="https://opencollective.com/element/backer/20/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/21/website" target="_blank"><img src="https://opencollective.com/element/backer/21/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/22/website" target="_blank"><img src="https://opencollective.com/element/backer/22/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/23/website" target="_blank"><img src="https://opencollective.com/element/backer/23/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/24/website" target="_blank"><img src="https://opencollective.com/element/backer/24/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/25/website" target="_blank"><img src="https://opencollective.com/element/backer/25/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/26/website" target="_blank"><img src="https://opencollective.com/element/backer/26/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/27/website" target="_blank"><img src="https://opencollective.com/element/backer/27/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/28/website" target="_blank"><img src="https://opencollective.com/element/backer/28/avatar.svg"></a>
<a href="https://opencollective.com/element/backer/29/website" target="_blank"><img src="https://opencollective.com/element/backer/29/avatar.svg"></a>
## Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/element#sponsor)]
<a href="https://opencollective.com/element/sponsor/0/website" target="_blank"><img src="https://opencollective.com/element/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/1/website" target="_blank"><img src="https://opencollective.com/element/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/2/website" target="_blank"><img src="https://opencollective.com/element/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/3/website" target="_blank"><img src="https://opencollective.com/element/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/4/website" target="_blank"><img src="https://opencollective.com/element/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/5/website" target="_blank"><img src="https://opencollective.com/element/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/6/website" target="_blank"><img src="https://opencollective.com/element/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/7/website" target="_blank"><img src="https://opencollective.com/element/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/8/website" target="_blank"><img src="https://opencollective.com/element/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/9/website" target="_blank"><img src="https://opencollective.com/element/sponsor/9/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/10/website" target="_blank"><img src="https://opencollective.com/element/sponsor/10/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/11/website" target="_blank"><img src="https://opencollective.com/element/sponsor/11/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/12/website" target="_blank"><img src="https://opencollective.com/element/sponsor/12/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/13/website" target="_blank"><img src="https://opencollective.com/element/sponsor/13/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/14/website" target="_blank"><img src="https://opencollective.com/element/sponsor/14/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/15/website" target="_blank"><img src="https://opencollective.com/element/sponsor/15/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/16/website" target="_blank"><img src="https://opencollective.com/element/sponsor/16/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/17/website" target="_blank"><img src="https://opencollective.com/element/sponsor/17/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/18/website" target="_blank"><img src="https://opencollective.com/element/sponsor/18/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/19/website" target="_blank"><img src="https://opencollective.com/element/sponsor/19/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/20/website" target="_blank"><img src="https://opencollective.com/element/sponsor/20/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/21/website" target="_blank"><img src="https://opencollective.com/element/sponsor/21/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/22/website" target="_blank"><img src="https://opencollective.com/element/sponsor/22/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/23/website" target="_blank"><img src="https://opencollective.com/element/sponsor/23/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/24/website" target="_blank"><img src="https://opencollective.com/element/sponsor/24/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/25/website" target="_blank"><img src="https://opencollective.com/element/sponsor/25/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/26/website" target="_blank"><img src="https://opencollective.com/element/sponsor/26/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/27/website" target="_blank"><img src="https://opencollective.com/element/sponsor/27/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/28/website" target="_blank"><img src="https://opencollective.com/element/sponsor/28/avatar.svg"></a>
<a href="https://opencollective.com/element/sponsor/29/website" target="_blank"><img src="https://opencollective.com/element/sponsor/29/avatar.svg"></a>
## Join Discussion Group
Scan the QR code using [Dingtalk App](https://www.dingtalk.com/) to join in discussion group :
<img alt="Join Discusion Group" src="https://user-images.githubusercontent.com/17680888/66537329-9a4b9100-eb52-11e9-9d99-65469cfdae58.jpeg" width="300">
<img alt="Join Discusion Group" src="https://user-images.githubusercontent.com/17680888/93177882-0ae92d80-f766-11ea-870d-3fa2d7f06454.png" width="300">
## LICENSE

View File

@ -1,6 +1,6 @@
var fs = require('fs');
var path = require('path');
var version = process.env.VERSION || require('../../package.json').version;
var content = { '1.4.13': '1.4', '2.0.11': '2.0', '2.1.0': '2.1', '2.2.2': '2.2', '2.3.9': '2.3', '2.4.11': '2.4', '2.5.4': '2.5', '2.6.3': '2.6', '2.7.2': '2.7', '2.8.2': '2.8', '2.9.2': '2.9', '2.10.1': '2.10', '2.11.1': '2.11', '2.12.0': '2.12' };
if (!content[version]) content[version] = '2.13';
var content = { '1.4.13': '1.4', '2.0.11': '2.0', '2.1.0': '2.1', '2.2.2': '2.2', '2.3.9': '2.3', '2.4.11': '2.4', '2.5.4': '2.5', '2.6.3': '2.6', '2.7.2': '2.7', '2.8.2': '2.8', '2.9.2': '2.9', '2.10.1': '2.10', '2.11.1': '2.11', '2.12.0': '2.12', '2.13.2': '2.13', '2.14.1': '2.14' };
if (!content[version]) content[version] = '2.15';
fs.writeFileSync(path.resolve(__dirname, '../../examples/versions.json'), JSON.stringify(content));

View File

@ -40,7 +40,7 @@ if [ "$TRAVIS_TAG" ]; then
# build sub folder
echo $TRAVIS_TAG
SUB_FOLDER='2.13'
SUB_FOLDER='2.15'
mkdir $SUB_FOLDER
rm -rf *.js *.css *.map static
rm -rf $SUB_FOLDER/**

View File

@ -6,7 +6,7 @@ cd temp_web
git clone --depth 1 -b gh-pages --single-branch https://github.com/ElemeFE/element.git && cd element
# build sub folder
SUB_FOLDER='2.13'
SUB_FOLDER='2.15'
mkdir -p $SUB_FOLDER
rm -rf *.js *.css *.map static
rm -rf $SUB_FOLDER/**
@ -15,5 +15,5 @@ cp -rf ../../examples/element-ui/** $SUB_FOLDER/
cd ../..
# deploy domestic site
faas deploy alpha -P element
faas deploy daily -P element
rm -rf temp_web

View File

@ -80,5 +80,8 @@
"cascader-panel": "./packages/cascader-panel/index.js",
"avatar": "./packages/avatar/index.js",
"drawer": "./packages/drawer/index.js",
"popconfirm": "./packages/popconfirm/index.js"
"popconfirm": "./packages/popconfirm/index.js",
"skeleton": "./packages/skeleton/index.js",
"skeleton-item": "./packages/skeleton-item/index.js",
"empty": "./packages/empty/index.js"
}

View File

@ -1,24 +0,0 @@
<svg width="98" height="150" viewBox="0 0 98 150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>duohui-element</title>
<desc>Created using Figma</desc>
<g id="Canvas" transform="translate(-2216 140)">
<clipPath id="clip-0" clip-rule="evenodd">
<path d="M 2216 -140L 2314 -140L 2314 10L 2216 10L 2216 -140Z" fill="#FFFFFF"/>
</clipPath>
<g id="duohui-element" clip-path="url(#clip-0)">
<path d="M 2216 -140L 2314 -140L 2314 10L 2216 10L 2216 -140Z" fill="#FFFFFF"/>
<g id="Duohui Icon 2">
<g id="Vector">
<use xlink:href="#path0_fill" transform="matrix(1.26636 0 0 1.21929 2230 -75.7038)" fill="#3A88FD"/>
</g>
<g id="Vector">
<use xlink:href="#path1_fill" transform="matrix(1.41534 0 0 1.21834 2226 -112)" fill="#35AFFB"/>
</g>
</g>
</g>
</g>
<defs>
<path id="path0_fill" fill-rule="evenodd" d="M 25.7722 1.00635C 26.2 0.374983 26.8949 -2.6613e-07 27.6349 -2.6613e-07C 28.3755 -2.6613e-07 29.0699 0.374983 29.4983 1.00635C 34.409 8.24964 47.798 27.9964 54.5986 38.0262C 55.3878 39.1901 55.4896 40.7162 54.8623 41.983C 54.235 43.2498 52.9833 44.0452 51.6178 44.0452C 39.6694 44.0452 15.601 44.0452 3.6521 44.0452C 2.28712 44.0452 1.03545 43.2498 0.408173 41.983C -0.219106 40.7162 -0.117353 39.1901 0.671804 38.0262C 7.47242 27.9964 20.8609 8.24964 25.7722 1.00635Z"/>
<path id="path1_fill" fill-rule="evenodd" d="M 24.9939 1.44703C 25.6137 0.533117 26.5572 -3.01614e-07 27.5551 -3.01614e-07C 28.5535 -3.01614e-07 29.497 0.533117 30.1168 1.44703C 35.4674 9.33854 47.8725 27.6342 54.4043 37.2681C 55.1825 38.4157 55.3299 39.982 54.7847 41.2999C 54.2389 42.6185 53.096 43.4556 51.8426 43.4556C 39.9023 43.4556 15.2084 43.4556 3.26811 43.4556C 2.01471 43.4556 0.871739 42.6185 0.325978 41.2999C -0.219783 39.982 -0.0717813 38.4157 0.70639 37.2681C 7.23818 27.6342 19.6433 9.33854 24.9939 1.44703Z"/>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,175 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 148.32 226.69">
<defs>
<style>
.cls-1 {
isolation: isolate;
}
.cls-2 {
fill: url(#radial-gradient);
}
.cls-3 {
fill: url(#linear-gradient);
}
.cls-4 {
fill: url(#linear-gradient-2);
}
.cls-5 {
fill: url(#linear-gradient-3);
}
.cls-6 {
fill: url(#linear-gradient-4);
}
.cls-7 {
fill: url(#linear-gradient-5);
}
.cls-8 {
fill: url(#linear-gradient-6);
}
.cls-9 {
opacity: 0.7;
}
.cls-11, .cls-9 {
mix-blend-mode: multiply;
}
.cls-10 {
fill: url(#linear-gradient-7);
}
.cls-12 {
fill: url(#linear-gradient-8);
}
.cls-13 {
fill: url(#linear-gradient-9);
}
.cls-14 {
fill: #3c2e36;
}
.cls-15 {
fill: url(#linear-gradient-10);
}
.cls-16 {
fill: url(#radial-gradient-2);
}
</style>
<radialGradient id="radial-gradient" cx="74.93" cy="117.87" r="86.39" gradientTransform="translate(0 22.72) scale(1 1.07)" gradientUnits="userSpaceOnUse">
<stop offset="0.32" stop-color="#e4dce1"/>
<stop offset="0.48" stop-color="#e1dadf"/>
<stop offset="0.59" stop-color="#d9d3da"/>
<stop offset="0.68" stop-color="#cac7d2"/>
<stop offset="0.76" stop-color="#b5b6c6"/>
<stop offset="0.79" stop-color="#aaadc0"/>
<stop offset="1" stop-color="#6f6f85"/>
</radialGradient>
<linearGradient id="linear-gradient" x1="38.85" y1="122.53" x2="108.18" y2="108.38" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#e4dce1"/>
<stop offset="0.19" stop-color="#d7d0d7"/>
<stop offset="0.53" stop-color="#b5b2be"/>
<stop offset="0.97" stop-color="#808296"/>
</linearGradient>
<linearGradient id="linear-gradient-2" x1="32.25" y1="64.7" x2="148.44" y2="64.7" gradientUnits="userSpaceOnUse">
<stop offset="0.32" stop-color="#e4dce1"/>
<stop offset="0.49" stop-color="#e1dadf"/>
<stop offset="0.6" stop-color="#d9d3da"/>
<stop offset="0.69" stop-color="#cac7d2"/>
<stop offset="0.78" stop-color="#b5b6c6"/>
<stop offset="0.81" stop-color="#aaadc0"/>
<stop offset="1" stop-color="#6f6f85"/>
</linearGradient>
<linearGradient id="linear-gradient-3" x1="139.11" y1="68.34" x2="139.11" y2="1.17" gradientUnits="userSpaceOnUse">
<stop offset="0.12" stop-color="#888aa0"/>
<stop offset="0.54" stop-color="#716f8a"/>
<stop offset="0.89" stop-color="#635d7c"/>
</linearGradient>
<linearGradient id="linear-gradient-4" x1="111.94" y1="16.05" x2="135.36" y2="16.05" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#3c314b"/>
<stop offset="0.54" stop-color="#534a67"/>
<stop offset="0.89" stop-color="#635d7c"/>
</linearGradient>
<linearGradient id="linear-gradient-5" x1="6752.04" y1="68.34" x2="6752.04" y2="-3.45" gradientTransform="matrix(-1, 0, 0, 1, 6787.68, 0)" gradientUnits="userSpaceOnUse">
<stop offset="0.19" stop-color="#e4dce1"/>
<stop offset="0.42" stop-color="#c2bac6"/>
<stop offset="0.92" stop-color="#6b6582"/>
<stop offset="0.97" stop-color="#635d7c"/>
</linearGradient>
<linearGradient id="linear-gradient-6" x1="39.39" y1="16.05" x2="62.82" y2="16.05" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#3c314b"/>
<stop offset="0.02" stop-color="#3d324c"/>
<stop offset="0.35" stop-color="#524a66"/>
<stop offset="0.65" stop-color="#5f5876"/>
<stop offset="0.89" stop-color="#635d7c"/>
</linearGradient>
<linearGradient id="linear-gradient-7" x1="79.66" y1="229.05" x2="79.66" y2="194.82" gradientUnits="userSpaceOnUse">
<stop offset="0.03" stop-color="#808296"/>
<stop offset="0.31" stop-color="#b7b8c3" stop-opacity="0.78"/>
<stop offset="0.79" stop-color="#fff" stop-opacity="0.5"/>
</linearGradient>
<linearGradient id="linear-gradient-8" x1="87.38" y1="117.84" x2="87.38" y2="41.77" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#e3dddf" stop-opacity="0"/>
<stop offset="0.04" stop-color="#cbc5cd" stop-opacity="0.12"/>
<stop offset="0.15" stop-color="#9d97a9" stop-opacity="0.37"/>
<stop offset="0.25" stop-color="#7b758f" stop-opacity="0.54"/>
<stop offset="0.35" stop-color="#67617f" stop-opacity="0.65"/>
<stop offset="0.45" stop-color="#605a7a" stop-opacity="0.68"/>
<stop offset="0.54" stop-color="#575070" stop-opacity="0.75"/>
<stop offset="1" stop-color="#382e4a"/>
</linearGradient>
<linearGradient id="linear-gradient-9" x1="11357.22" y1="78.8" x2="11361.46" y2="58.49" gradientTransform="matrix(-1, 0, 0, 1, 11419.34, 0)" gradientUnits="userSpaceOnUse">
<stop offset="0.07" stop-color="#28ffff"/>
<stop offset="0.41" stop-color="#51d2ff"/>
<stop offset="0.8" stop-color="#7ba3ff"/>
<stop offset="1" stop-color="#8b91ff"/>
</linearGradient>
<linearGradient id="linear-gradient-10" x1="113" y1="78.8" x2="117.24" y2="58.49" gradientTransform="matrix(1, 0, 0, 1, 0, 0)" xlink:href="#linear-gradient-9"/>
<radialGradient id="radial-gradient-2" cx="36.09" cy="124.71" r="36.13" gradientUnits="userSpaceOnUse">
<stop offset="0.11" stop-color="#635d7c"/>
<stop offset="0.35" stop-color="#5f5876"/>
<stop offset="0.65" stop-color="#524a66"/>
<stop offset="0.98" stop-color="#3d324c"/>
<stop offset="1" stop-color="#3c314b"/>
</radialGradient>
</defs>
<title>Asset 3</title>
<g class="cls-1">
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<g>
<path class="cls-2" d="M138.13,128.27c-4.7-9.78-11.29-21.28-9.75-33.55a15.83,15.83,0,0,1,3.26-8.26A65.12,65.12,0,0,1,114.75,99a64.1,64.1,0,0,1-6.11,2.76,66.61,66.61,0,0,0-14.35,9.42c-13.43,11.7-26.21,44.39-48.51,50.6h0a23.9,23.9,0,0,1-9.81,2c-9.41-.07-20.4-6.21-26.26-15.43C1,134.68,3.58,115.85,9.49,103.81c-.18.37-.37.74-.55,1.13a102.51,102.51,0,0,0-4.2,10.42v0A86.37,86.37,0,0,0,0,143.69c0,45.84,35.49,83,79.27,83,11.19,0,29-3.38,43.66-13.61a57.75,57.75,0,0,0,22.57-32C151.54,158.58,144.94,142.45,138.13,128.27Z"/>
<path class="cls-3" d="M51.46,158.37a27,27,0,0,1-5.67,3.38h0c22.3-6.21,35.07-38.9,48.51-50.6a66.61,66.61,0,0,1,14.35-9.42,58.67,58.67,0,0,1-21.26,4.09c-19.75,0-37.75-10.49-48.31-24,1,1.39,13,15.46,22.29,43.72A30,30,0,0,1,51.46,158.37Z"/>
<path class="cls-4" d="M145.33,59.56c-2.08,22.29-28.26,46.26-58,46.26-29.95,0-55.88-24.12-58-46.26-1.45-15.6,7.34-36,58-36S146.78,44,145.33,59.56Z"/>
<path class="cls-5" d="M135.36,0h0a51.59,51.59,0,0,0-4.68,32.1A37.21,37.21,0,0,1,134,34.24c10,7.23,12.12,17,11.34,25.32a35.2,35.2,0,0,1-1.6,7.61A73.45,73.45,0,0,0,142.08,12,71.18,71.18,0,0,0,135.36,0Z"/>
<path class="cls-6" d="M130.68,32.1A51.59,51.59,0,0,1,135.36,0h0a57.92,57.92,0,0,0-9.41,6.87,59.8,59.8,0,0,0-14,18.75q3.35.64,6.29,1.45A53.09,53.09,0,0,1,130.68,32.1Z"/>
<path class="cls-7" d="M39.39,0h0a51.59,51.59,0,0,1,4.68,32.1,37.21,37.21,0,0,0-3.31,2.14c-10,7.23-12.12,17-11.34,25.32A35.2,35.2,0,0,0,31,67.17,73.45,73.45,0,0,1,32.67,12,71.18,71.18,0,0,1,39.39,0Z"/>
<path class="cls-8" d="M48.81,6.87A57.92,57.92,0,0,0,39.39,0h0a51.59,51.59,0,0,1,4.68,32.1,53.09,53.09,0,0,1,12.45-5q2.94-.82,6.29-1.45A59.8,59.8,0,0,0,48.81,6.87Z"/>
<g class="cls-9">
<path class="cls-10" d="M84.24,182.6c-26.08,0-49.56,5.42-66,14.08,14.54,18.33,36.47,30,61,30,11.19,0,29-3.38,43.66-13.61A58.81,58.81,0,0,0,141,192.47C125.56,186.3,105.79,182.6,84.24,182.6Z"/>
</g>
<g>
<g class="cls-11">
<path class="cls-12" d="M138.51,52.94c-.56-2.94-2-5.19-5-5.88-7.88-1.85-27,9.84-37.8,15.34-4,2.06-6.16,3.05-8.34,3s-4.31-.94-8.34-3c-10.77-5.5-29.92-17.18-37.8-15.34-3,.7-4.44,2.94-5,5.88-1,5.16.35,18,9.89,27.49,7.14,7.11,16.68,10.46,24.69,12.71l.18.08a4.2,4.2,0,0,0-.09.88c0,3.28,3.83,5.94,8.56,5.94,2.34,0,6.35-.65,7.9-1.71h0c1.55,1.06,5.56,1.71,7.9,1.71,4.73,0,8.56-2.66,8.56-5.94a4.2,4.2,0,0,0-.09-.88l.18-.08c8-2.25,17.56-5.6,24.69-12.71C138.16,70.92,139.49,58.1,138.51,52.94Z"/>
</g>
<path class="cls-13" d="M75.26,75.35C64.56,86.85,47.81,77.09,45,63.28c-1.83-9.07,3.63-7.73,8.71-5.67C60.14,60.2,68.84,66.27,75.26,75.35Z"/>
<path class="cls-14" d="M60.43,68.26a15.16,15.16,0,0,1-2.19,8,15.56,15.56,0,0,1,0-15.92A15.16,15.16,0,0,1,60.43,68.26Z"/>
<path d="M87.36,86.64a8.15,8.15,0,0,0-6.27,2.49c8.25,5.17,4.31,5.17,12.55,0A8.15,8.15,0,0,0,87.36,86.64Z"/>
<path class="cls-15" d="M99.86,75.35c10.69,11.5,27.45,1.74,30.23-12.07,1.83-9.07-3.63-7.73-8.71-5.67C115,60.2,106.28,66.27,99.86,75.35Z"/>
<path class="cls-14" d="M114.69,68.26a15.16,15.16,0,0,0,2.19,8,15.56,15.56,0,0,0,0-15.92A15.16,15.16,0,0,0,114.69,68.26Z"/>
</g>
<path class="cls-16" d="M9.71,148.35c5.86,9.22,16.85,15.37,26.26,15.43a23.7,23.7,0,0,0,8.21-1.41l0,0c-15,4.18-19.32-25.16-10.92-43.06v0c1.09-3.38,2.35-6.34,3.42-8.83.37-.86,2.53-5.15,2.09-9.8-.84-9-14-17.33-24-5.37A44.52,44.52,0,0,0,9.39,104C3.55,116.06,1.08,134.76,9.71,148.35Z"/>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -3,6 +3,21 @@
height: 80px;
}
#v3-banner {
background-color: #409EFF;
min-height: 30px;
padding: 5px 60px;
z-index: 19;
box-sizing: border-box;
text-align: center;
color: #eee;
}
#v3-banner a {
color: #FFF;
font-weight: bold;
}
.header {
height: 80px;
background-color: #fff;
@ -267,6 +282,16 @@
</style>
<template>
<div class="headerWrapper">
<div id="v3-banner" v-if="isHome">
<template v-if="lang === 'zh-CN'">
您正在浏览基于 Vue 2.x Element UI 文档;
<a href="https://element-plus.org/#/zh-CN">点击这里</a> 查看 Vue 3.x 的升级版本
</template>
<template v-else>
Youre browsing the documentation of Element UI for Vue 2.x version.
<a href="https://element-plus.org">Click here</a> for Vue 3.x version
</template>
</div>
<header class="header" ref="header">
<div class="container">
<h1><router-link :to="`/${ lang }`">
@ -380,7 +405,6 @@
import compoLang from '../i18n/component.json';
import Element from 'main/index.js';
import themeLoader from './theme/loader';
import { getTestEle } from './theme/loader/api.js';
import bus from '../bus';
import { ACTION_USER_CONFIG_UPDATE } from './theme/constant.js';
@ -422,19 +446,12 @@
},
isComponentPage() {
return /^component/.test(this.$route.name);
},
isHome() {
return /^home/.test(this.$route.name);
}
},
mounted() {
getTestEle()
.then(() => {
this.$isEle = true;
ga('send', 'event', 'DocView', 'Ele', 'Inner');
})
.catch((err) => {
ga('send', 'event', 'DocView', 'Ele', 'Outer');
console.error(err);
});
const testInnerImg = new Image();
testInnerImg.onload = () => {
this.$isEle = true;

View File

@ -122,21 +122,6 @@
:class="{ 'is-fade': isFade }"
:style="navStyle">
<ul>
<li class="nav-item sponsors">
<a>{{ lang === 'zh-CN' ? '赞助商' : 'Sponsors' }}</a>
<ul class="pure-menu-list sub-nav">
<li class="nav-item" v-show="lang !== 'zh-CN'">
<a href="https://tipe.io/?ref=element" target="_blank">
<img src="~examples/assets/images/tipe.svg" alt="tipe.io">
</a>
</li>
<li class="nav-item">
<a class="sponsor" href="https://www.duohui.cn/?utm_source=element&utm_medium=web&utm_campaign=element-index" target="_blank">
<img src="~examples/assets/images/duohui.svg" alt="duohui">
</a>
</li>
</ul>
</li>
<li
class="nav-item"
v-for="(item, key) in data"

View File

@ -5,7 +5,6 @@ const { version } = Element;
const hostList = {
local: 'http://localhost:3008/',
alpha: 'https://element-api.ar.elenet.me/element/theme/',
production: 'https://element-api.ele.me/element/theme/'
};
@ -15,10 +14,6 @@ export const getVars = () => {
return get(`${host}getVariable?version=${version}`);
};
export const getTestEle = () => {
return get(`${hostList.alpha}getVariable`);
};
export const updateVars = (data, cb) => {
return post(`${host}updateVariable?version=${version}`, data, cb);
};

View File

@ -44,4 +44,5 @@
@import "./infinite-scroll.scss";
@import "./avatar.scss";
@import "./drawer.scss";
@import "./skeleton.scss";

46
examples/demo-styles/skeleton.scss vendored Normal file
View File

@ -0,0 +1,46 @@
.demo-block.demo-skeleton {
.el-card {
margin-bottom: 16px;
}
.card-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.time {
font-size: 13px;
color: #999;
}
.bottom {
margin-top: 13px;
line-height: 12px;
}
.button {
padding: 0;
min-height: auto;
}
.image {
&.multi-content {
width: 400px;
height: 267px;
}
width: 100%;
display: block;
}
.clearfix:before,
.clearfix:after {
display: table;
content: '';
}
.clearfix:after {
clear: both;
}
}

View File

@ -59,8 +59,8 @@ Display date.
| range | time range, including start time and end time. Start time must be start day of week, end time must be end day of week, the time span cannot exceed two months. | Array | — | — |
| first-day-of-week | fisrt day of week| Number | 1 to 7 | 1 |
### dateCell scoped slot 参数
### dateCell Scoped Slot Parameters
| Attribute | Description | Type | Accepted Values | Default |
|-----------------|-------------- |---------- |---------------------- |--------- |
| date | date the cell represents | Date | — | — |
| data | { type, isSelected, day}. `type` indicates which month the date belongs, optional values are prev-month, current-month, next-month; `isSelected` indicates whether the date is selected; `day` is the formatted date in the format yyyy-MM-dd | Object | — | — |
| data | { type, isSelected, day}. The `type` property indicates which month the date belongs, optional values are `prev-month`, `current-month`, `next-month`. The `isSelected` property indicates whether the date is selected. The `day` property is the formatted date in the format yyyy-MM-dd | Object | — | — |

View File

@ -0,0 +1,61 @@
## Empty
Placeholder hints for empty states.
### Basic usage
:::demo
```html
<el-empty description="description"></el-empty>
```
:::
### Custom image
Use `image` prop to set image URL.
:::demo
```html
<el-empty image="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"></el-empty>
```
:::
### Image size
Use `image-size` prop to control image size.
:::demo
```html
<el-empty :image-size="200"></el-empty>
```
:::
### Bottom content
Use the default slot to insert content at the bottom.
:::demo
```html
<el-empty>
<el-button type="primary">Button</el-button>
</el-empty>
```
:::
### Empty Attributes
| Attribute | Description | Type | Acceptable Value | Default |
|------------- |---------------- |---------------- |---------------------- |-------- |
| image | image URL | string | — | — |
| image-size | image size (width) | number | — | — |
| description | description | string | — | — |
### Empty Slots
| Name | Description |
|------|--------|
| default | Custom bottom content |
| image | Custom image |
| description | Custom description |

View File

@ -595,7 +595,7 @@ All components in a Form inherit their `size` attribute from that Form. Similarl
| label-position | position of label. If set to 'left' or 'right', `label-width` prop is also required | string | left / right / top | right |
| label-width | width of label, e.g. '50px'. All its direct child form items will inherit this value. Width `auto` is supported. | string | — | — |
| label-suffix | suffix of the label | string | — | — |
| hide-required-asterisk | whether required fields should have a red asterisk (star) beside their labels | boolean | — | false |
| hide-required-asterisk | whether to hide a red asterisk (star) next to the required field label. | boolean | — | false |
| show-message | whether to show the error message | boolean | — | true |
| inline-message | whether to display the error message inline with the form item | boolean | — | false |
| status-icon | whether to display an icon indicating the validation result | boolean | — | false |

View File

@ -174,7 +174,7 @@ Use attribute `size` to set additional sizes with `medium`, `small` or `mini`.
|min | the minimum allowed value | number | — | `-Infinity` |
|max | the maximum allowed value | number | — | `Infinity` |
|step | incremental step | number | — | 1 |
|step-strictly | whether input value can only be multiple of step | number | — | false |
|step-strictly | whether input value can only be multiple of step | boolean | — | false |
|precision | precision of input value | number | — | — |
|size | size of the component | string | large/small| — |
|disabled| whether the component is disabled | boolean | — | false |

View File

@ -659,6 +659,7 @@ Attribute | Description | Type | Options | Default
| Event Name | Description | Parameters |
|----| ----| ----|
|select | triggers when a suggestion is clicked | suggestion being clicked |
| change | triggers when the icon inside Input value change | (value: string \| number) |
### Autocomplete Methods

View File

@ -337,7 +337,7 @@ The classes are:
| gutter | grid spacing | number | — | 0 |
| type | layout mode, you can use flex, works in modern browsers | string | — | — |
| justify | horizontal alignment of flex layout | string | start/end/center/space-around/space-between | start |
| align | vertical alignment of flex layout | string | top/middle/bottom | top |
| align | vertical alignment of flex layout | string | top/middle/bottom | |
| tag | custom element tag | string | * | div |
### Col Attributes

View File

@ -24,10 +24,10 @@ You can customise Popconfirm like:
```html
<template>
<el-popconfirm
confirmButtonText='OK'
cancelButtonText='No, Thanks'
confirm-button-text='OK'
cancel-button-text='No, Thanks'
icon="el-icon-info"
iconColor="red"
icon-color="red"
title="Are you sure to delete this?"
>
<el-button slot="reference">Delete</el-button>
@ -40,15 +40,21 @@ You can customise Popconfirm like:
| Attribute | Description | Type | Accepted Values | Default |
|--------------------|----------------------------------------------------------|-------------------|-------------|--------|
| title | Title | String | — | — |
| confirmButtonText | Confirm button text | String | — | — |
| cancelButtonText | Cancel button text | String | — | — |
| confirmButtonType | Confirm button type | String | — | Primary |
| cancelButtonType | Cancel button type | String | — | Text |
| confirm-button-text | Confirm button text | String | — | — |
| cancel-button-text | Cancel button text | String | — | — |
| confirm-button-type | Confirm button type | String | — | Primary |
| cancel-button-type | Cancel button type | String | — | Text |
| icon | Icon | String | — | el-icon-question |
| iconColor | Icon color | String | — | #f90 |
| hideIcon | is hide Icon | Boolean | — | false |
| icon-color | Icon color | String | — | #f90 |
| hide-icon | is hide Icon | Boolean | — | false |
### Slot
| Name | Description |
|--- | ---|
| reference | HTML element that triggers Popconfirm |
### Events
| Event Name | Description | Parameters |
|---------|--------|---------|
| confirm | triggers when click confirm button | — |
| cancel | triggers when click cancel button | — |

View File

@ -170,4 +170,5 @@ You also can specify `type` attribute to `dashboard` to use dashboard progress b
| color | background color of progress bar. Overrides `status` prop | string/function/array | — | '' |
| width | the canvas width of circle progress bar | number | — | 126 |
| show-text | whether to show percentage | boolean | — | true |
| stroke-linecap | circle/dashboard type shape at the end path | string | butt/round/square | round |
| stroke-linecap | circle/dashboard type shape at the end path | string | butt/round/square | round |
| format | custom text format | function(percentage) | — | — |

View File

@ -0,0 +1,315 @@
## Skeleton
When loading data, and you need a rich experience for visual and interactions for your end users, you can choose `skeleton`.
### Basic usage
The basic skeleton.
:::demo
```html
<template>
<el-skeleton />
</template>
```
:::
### Configurable Rows
You can configure the row numbers yourself, we are rendering a title row with 33% width of the others.
:::demo
```html
<el-skeleton :rows="6" />
```
:::
### Animation
We have provided a switch flag indicating whether showing the loading animation, called `animated` when this is true, all children of `el-skeleton` will show animation
:::demo
```html
<el-skeleton :rows="6" animated />
```
:::
### Customized Template
ElementPlus only provides the most common template, sometimes that could be a problem, so you have a slot named `template` to do that work.
Also we have provided different types skeleton unit that you can choose, for more detailed info, please scroll down to the bottom of this page to see the API description. Also, when building your own customized skeleton structure, you should be structuring them as closer to the real DOM as possible, which avoiding the DOM bouncing caused by the height difference.
:::demo
```html
<template>
<el-skeleton style="width: 240px">
<template slot="template">
<el-skeleton-item variant="image" style="width: 240px; height: 240px;" />
<div style="padding: 14px;">
<el-skeleton-item variant="p" style="width: 50%" />
<div
style="display: flex; align-items: center; justify-items: space-between;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
</el-skeleton>
</template>
```
:::
### Loading state
When `Loading` ends, we always need to show the real UI with data to our end users. with the attribtue `loading` we can control whether showing the DOM. You can also use slot `default` to structure the real DOM element.
:::demo
```html
<template>
<div style="width: 240px">
<p>
<label style="margin-right: 16px;">Switch Loading</label>
<el-switch v-model="loading" />
</p>
<el-skeleton style="width: 240px" :loading="loading" animated>
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 240px; height: 240px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card :body-style="{ padding: '0px', marginBottom: '1px' }">
<img
src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"
class="image"
/>
<div style="padding: 14px;">
<span>Delicious hamberger</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">Operation button</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data () {
return {
loading: true,
currentDate: '2021-06-01'
}
},
}
</script>
```
:::
### Rendering a list of data
Most of the time, skeleton is used as indicators of rendering a list of data which haven't been fetched from server yet, then we need to create a list of skeleton out of no where to make it look like it is loading, with `count` attribute, you can control how many these templates you need to render to the browser.
:::tip
We do not recommend rendering lots of fake UI to the browser, it will still cause the performance issue, it also costs longer to destroy the skeleton. Keep `count` as small as it can be to make better user experience.
:::
:::demo
```html
<template>
<div style="width: 400px">
<p>
<el-button @click="setLoading">Click me to reload</el-button>
</p>
<el-skeleton style="width:400px" :loading="loading" animated :count="3">
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 400px; height: 267px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card
:body-style="{ padding: '0px', marginBottom: '1px' }"
v-for="item in lists"
:key="item.name"
>
<img :src="item.imgUrl" class="image multi-content" />
<div style="padding: 14px;">
<span>Delicious hamberger</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">Operation button</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data() {
return {
loading: true,
currentDate: '2021-06-01',
lists: [],
}
},
mounted() {
this.loading = false
this.lists = [
{
imgUrl:
'https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg',
name: 'Deer',
},
{
imgUrl:
'https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg',
name: 'Horse',
},
{
imgUrl:
'https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg',
name: 'Mountain Lion',
},
]
},
methods: {
setLoading() {
this.loading = true
setTimeout(() => (this.loading = false), 2000)
},
},
}
</script>
```
:::
### Avoiding rendering bouncing.
Sometimes API responds very quickly, when that happens, the skeleton just gets rendered to the DOM then it needs to switch back to real DOM, that causes the sudden flashy. To avoid such thing, you can use the `throttle` attribute.
:::demo
```html
<template>
<div style="width: 240px">
<p>
<label style="margin-right: 16px;">Switch Loading</label>
<el-switch v-model="loading" />
</p>
<el-skeleton
style="width: 240px"
:loading="loading"
animated
:throttle="500"
>
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 240px; height: 240px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card :body-style="{ padding: '0px', marginBottom: '1px'}">
<img
src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"
class="image"
/>
<div style="padding: 14px;">
<span>Delicious hamberger</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">operation button</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
currentDate: '2021-06-01'
}
},
}
</script>
```
:::
### Skeleton Attributes
| Attribute | Description | Type | Acceptable Value | Default |
| ------- | ---------------- | ------- | ------------ | ------ |
| animated | whether showing the animation | boolean | true / false | false |
| count | how many fake items to render to the DOM | number | integer | 1 |
| loading | whether showing the skeleton | boolean | true / false | true |
| rows | numbers of the row, only useful when no template slot were given | number | integer | 4 |
| throttle | Rendering delay in millseconds | number | integer | 0 |
### Skeleton Item Attributes
| Attribute | Description | Type | Acceptable Value | Default |
| ------- | ---------------- | ------- | ------------ | ------ |
| variant | The current rendering skeleton type | Enum(string) | p / text / h1 / h3 / text / caption / button / image / circle / rect | text |
### Skeleton Slots
| Name | Description |
| ---- | ----------- |
| default | Real rendering DOM |
| template | Custom rendering skeleton template |

View File

@ -6,7 +6,7 @@ Guide the user to complete tasks in accordance with the process. Its steps can b
Simple step bar.
:::demo Set `active` attribute with `Number` type, which indicates the index of steps and starts from 0. You can set `space` attribute when the width of the step needs to be fixed which accepts `Boolean` type. The unit of the `space` attribute is `px`. If not set, it is responsive. Setting the `finish-status` attribute can change the state of the steps that have been completed.
:::demo Set `active` attribute with `Number` type, which indicates the index of steps and starts from 0. You can set `space` attribute when the width of the step needs to be fixed which accepts `Number` type. The unit of the `space` attribute is `px`. If not set, it is responsive. Setting the `finish-status` attribute can change the state of the steps that have been completed.
```html
<el-steps :active="active" finish-status="success">
@ -50,7 +50,7 @@ Shows the status of the step for each step.
```
:::
### Center
### Center
Title and desription can be centered.

View File

@ -229,11 +229,11 @@ Descripción incluye un mensaje con información más detallada.
| center | si el texto debe estar centrado | boolean | — | false |
| close-text | texto de cerrado personalizado | string | — | — |
| show-icon | si un icono del tipo de alerta se debe mostrar | boolean | — | false |
| effect | Choose theme | string | light/dark | light |
| effect | selecciona tema | string | light/dark | light |
### Slot
| Name | Description |
| Nombre | Descripción |
|------|--------|
| — | descripción |
| title | El contenido del título de alerta. |

View File

@ -57,8 +57,8 @@ Muestra fechas.
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
|-----------------|------------------- |---------- |---------------------- |------------ |
| value / v-model | valor vinculante | Date/string/number | — | — |
| range | rango de tiempo, incluyendo el tiempo de inicio y el tiempo final. Start time must be start day of week, end time must be end day of week, the time span cannot exceed two months | Array | — | — |
| first-day-of-week | fisrt day of week| Number | 1 to 7 | 1 |
| range | rango de tiempo, incluyendo el tiempo de inicio y el tiempo final. Start time debe ser el primer dia de la semana, end time debe ser el ultimo día de la semana, el time entre las fechas no puede exceder dos meses | Array | — | — |
| first-day-of-week | primer día de la semana | Number | 1 to 7 | 1 |
### dateCell scoped slot
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |

View File

@ -169,4 +169,4 @@ Puede definir cuándo mostrar las sombras.
| ---------- | ---------------------------------------- | ------ | ----------------- | ------------------- |
| header | Titulo del card. También acepta DOM pasado por `slot#header` | string | — | — |
| body-style | Estilo CSS del cuerpo | object | — | { padding: '20px' } |
| shadow | cuando mostrar la sombra del Card | string | always / hover / never | always |
| shadow | Cuando mostrar la sombra del Card | string | always / hover / never | always |

View File

@ -190,12 +190,12 @@ Por defecto, `direction` es `horizontal`. El carousel puede ser mostrado de form
| initial-index | Indice del slider inicial activo (empieza desde 0) | number | — | 0 |
| trigger | Evento que muestra los indicadores | string | hover/click | hover |
| autoplay | Si se enlazan automáticamente las diapositivas | boolean | — | true |
| interval | Intervalo del auto loop, en milisegundos | number | — | 3000 |
| interval | Intervalo del auto loop, en mili segundos | number | — | 3000 |
| indicator-position | Posición del indicador de paginación | string | outside/none | — |
| arrow | Cuando se muestran las flechas | string | always/hover/never | hover |
| type | Tipo de carrusel | string | card | — |
| loop | Si se muestra cíclicamente | boolean | — | true |
| direction | direccion en la que se muestra el contenido | string | horizontal/vertical | horizontal |
| direction | dirección en la que se muestra el contenido | string | horizontal/vertical | horizontal |
### Eventos de Carousel
| Nombre evento | Descripción | Parámetros |
@ -210,8 +210,8 @@ Por defecto, `direction` es `horizontal`. El carousel puede ser mostrado de form
| next | Cambia al slider siguiente | — |
### Atributos de Carousel-Item
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
| -------- | ---------------------------------------- | ------ | ----------------- | ----------- |
| name | Nombre del item que puede ser usado en `setActiveItem` | string | — | — |
| label | Texto que se mostrara en el indicador de paginacion correspondiente | string | — | — |
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
| -------- | ------------------------------------------------------------ | ------ | ----------------- | ----------- |
| name | Nombre del ítem que puede ser usado en `setActiveItem` | string | — | — |
| label | Texto que se mostrara en el indicador de paginación correspondiente | string | — | — |

View File

@ -1923,14 +1923,14 @@ Puede personalizar el contenido del nodo de cascada.
| show-all-levels | si muestra todos los niveles del valor seleccionado en el input | boolean | — | true |
| collapse-tags | si se colapsan los tags en la selección múltiple | boolean | - | false |
| separator | separador de las etiquetas de las opciones | string | — | ' / ' |
| filterable | si las opciones pueden ser usadas para la busqueda | boolean | — | — |
| filterable | si las opciones pueden ser usadas para la búsqueda | boolean | — | — |
| filter-method | lógica de búsqueda personalizable. El primer parámetro es `node`, el segundo es `keyword`, y es necesario devolver un valor boolean que indique si se ha tenido éxito. | function(node, keyword) | - | - |
| debounce | retraso en milisegundos para el tipeo de los datos de filtro | number | — | 300 |
| debounce | retraso en mili segundos para el tipeo de los datos de filtro | number | — | 300 |
| before-filter | hook antes de filtrar con el valor a filtrar como parámetro. Si se devuelve `false` o se devuelve una `Promise` y luego se rechaza, se abortará el filtrado. | function(value) | — | — |
| popper-class | nombre de clase personalizado para el menú desplegable de Cascader | string | — | — |
### Eventos de Cascader
| Nombre del evento | Descripción | Parámetros |
| Nombre | Descripción | Parámetros |
|---------- |-------- |---------- |
| change | se desencadena cuando cambia el valor ligado. | valor |
| expand-change | se desencadena cuando las opciones expandidas cambian | un array de los nodos padres del nodo en expansión |
@ -1939,13 +1939,13 @@ Puede personalizar el contenido del nodo de cascada.
| visible-change | se activa cuando aparece/desaparece el menú desplegable | verdadero cuando aparece, y falso de otra manera |
| remove-tag | se activa cuando se quita la etiqueta en modo de selección múltiple | el valor de la etiqueta que se quita |
### Cascader Methods
| Method Name | Description | Parameters |
### Cascader Métodos
| Método | Descripción | Parámetros |
| ---- | ---- | ---- |
| getCheckedNodes | get an array of currently selected node | (leafOnly) whether only return the leaf checked nodes, default is `false` |
| getCheckedNodes | Obtiene el array de los nodos seleccionados actualmente | (leafOnly) Si solo devuelve los nodos chequeados, por defecto es `false` |
### Slots de Cascader
| Nombre del slot | Descripción |
| Nombre | Descripción |
|---------|-------------|
| - | el contenido personalizado del nodo cascader, el parámetro es { node, data }, que son el actual objeto Node y los datos del nodo respectivamente. |
| empty | cuando no hay opciones coincidentes. |
@ -1958,19 +1958,19 @@ Puede personalizar el contenido del nodo de cascada.
| props | opciones de configuración, consulte la siguiente tabla. | object | — | — |
### Eventos de CascaderPanel
| Nombre de los evetos | Descripción | Parámetros |
| Evento | Descripción | Parámetros |
|---------- |-------- |---------- |
| change | se desencadena cuando cambia el valor ligado. | valor |
| expand-change | se desencadena cuando las opciones expandidas cambian | un array de los nodos padres del nodo en expansión |
### CascaderPanel Methods
| Method Name | Description | Parameters |
### CascaderPanel Métodos
| Método | Descripción | Parámetros |
| ---- | ---- | ---- |
| getCheckedNodes | get an array of currently selected node | (leafOnly) whether only return the leaf checked nodes, default is `false` |
| clearCheckedNodes | clear checked nodes | - |
| getCheckedNodes | Obtiene el array de los nodos seleccionados actualmente | (leafOnly) Si solo devuelve los nodos chequeados, por defecto es `false` |
| clearCheckedNodes | Limpia de nodos chequeados | - |
### Slots de CascaderPanel
| Nombre del slot | Descripción |
| Nombre | Descripción |
|---------|-------------|
| - | el contenido personalizado del nodo cascader, el parámetro es { node, data }, que son el actual objeto Node y los datos del nodo respectivamente. |

View File

@ -253,8 +253,8 @@ Checkbox con estilo tipo Botón.
| indeterminate | similar a `indeterminate` en el checkbox nativo | boolean | — | false |
### Eventos de Checkbox
| Nombre | Descripción | Parametros |
| ------ | ---------------------------------------- | -------------------- |
| Nombre | Descripción | Parámetros |
| ------ | ------------------------------------------ | -------------------- |
| change | se ejecuta cuando el valor enlazado cambia | el valor actualizado |
### Atributos de Checkbox-group
@ -269,8 +269,8 @@ Checkbox con estilo tipo Botón.
| fill | color de border y de fondo cuando el botón está activo | string | — | #409EFF |
### Eventos de Checkbox-group
| Nombre de Evento | Descripción | Parametros |
| ---------------- | ---------------------------------------- | -------------------- |
| Nombre de Evento | Descripción | Parámetros |
| ---------------- | ------------------------------------------ | -------------------- |
| change | se ejecuta cuando el valor enlazado cambia | el valor actualizado |
### Atributos de Checkbox-button

View File

@ -119,8 +119,8 @@ Además de usar el atributo `title`, se puede personalizar el título del panel
| accordion | especifica si activa el modo acordeón | boolean | — | false |
### Eventos de Collapse
| Nombre de Evento | Descripción | Parametros |
| ---------------- | ---------------------------------------- | ---------------------------------------- |
| Nombre de Evento | Descripción | Parámetros |
| ---------------- | --------------------------------------------- | ------------------------------------------------------------ |
| change | se dispara cuando los paneles activos cambian | (activeNames: array (No modo acordeón) / string (modo acordeón)) |

View File

@ -117,8 +117,8 @@ ColorPicker es un selector de color que soporta varios formatos de color.
| predefine | opciones de colores predefinidas | array | — | — |
### Eventos
| Nombre de Evento | Descripción | Parametros |
| ---------------- | ---------------------------------------- | ---------------------- |
| change | se dispara cuando el valor del input cambia | valor del color |
| Nombre de Evento | Descripción | Parámetros |
| ---------------- | ----------------------------------------------- | ---------------------- |
| change | se dispara cuando el valor del input cambia | valor del color |
| active-change | se dispara cuando el actual color activo cambia | valor del color activo |

View File

@ -2,11 +2,9 @@
Element utiliza la metodología BEM en CSS con la finalidad de que puedas sobrescribir los estilos fácilmente. Pero, si necesita remplazar estilos a gran escala, por ejemplo, cambiar el color del tema de azul a naranja o verde, quizás reemplazarlos uno a uno no sea lo más adecuado, para ello hay 4 maneras de modificar los estilos.
### Theme Roller
Use [Online Theme Roller](./#/es/theme) to customize all Design Tokens of global variables and componentsand preview the new theme in real-time.and it can generate a complete style package based on the new theme for you to download directly (to import new style files in your project, please refer to the 'Import custom theme' or part of this section).
Use [Online Theme Roller](./#/es/theme) para personalizar el diseño de las variables globales y componentes, y vea el resultado en tiempo real. Puede generar un completo paquete de estilos basado en un nuevo tema que puede bajar directamente (para importar los archivos del nuevo estilo al proyecto por favor vea la sección 'Importar un tema personalizado').
Also, use [Theme Roller Chrome Extension](https://chrome.google.com/webstore/detail/element-theme-roller/lifkjlojflekabbmlddfccdkphlelmim)to customize theme and preview in real-time on any website developed by Element.
<img src="https://shadow.elemecdn.com/app/sns-client/element-theme-editor2.e16c6a01-806d-11e9-bc23-21435c54c509.png" style="width: 100%;margin: 30px auto 0;display: block;">
También puede usar [Theme Roller Chrome Extension](https://chrome.google.com/webstore/detail/element-theme-roller/lifkjlojflekabbmlddfccdkphlelmim), para personalizar un tema y ver el resultado en tiempo real en cualquier sitio desarrollado con Element.<img src="https://shadow.elemecdn.com/app/sns-client/element-theme-editor2.e16c6a01-806d-11e9-bc23-21435c54c509.png" style="width: 100%;margin: 30px auto 0;display: block;">
### Cambiando el color del tema
Si lo que se busca es cambiar el color del tema de Element, se recomienda utilizar el [sitio de visualización de temas](https://elementui.github.io/theme-chalk-preview/#/en-US). Element utiliza un color azul brillante y amigable como tema principal. Al cambiarlo, puede hacer que Element este más conectado visualmente a proyectos específicos.
@ -102,9 +100,9 @@ et
> ✔ build element theme
```
### Use custom theme
### Uso de los temas personalizados
#### <strong>Importar un tema personalizado</strong>
Importing your own theme is just like importing the default theme, only this time you import the file built from "Online Theme Roller" or "CLI tool":
Importar su propio tema es igual que importar el tema por defecto, sol que esta vez se deben importar los archivos construidos con "Online Theme Roller" o "CLI tool":
```javascript
import '../theme/index.css'

View File

@ -333,17 +333,17 @@ Preste atención a la capitalización
| `MM` | mes | | 01 |
| `W` | semana | solamente para semanas en picker's `format`; no acepta 0 | 1 |
| `WW` | semana | solamente para semanas en picker's `format` | 01 |
| `d` | dia | no acepta 0 | 2 |
| `dd` | dia | | 02 |
| `d` | día | no acepta 0 | 2 |
| `dd` | día | | 02 |
| `H` | hora | 24-hora reloj; no acepta 0 | 3 |
| `HH` | hora | 24-hora reloj | 03 |
| `h` | hora | 12-hora reloj; debe usarse con `A` o `a`; no acepta 0 | 3 |
| `hh` | hour | 12-hora reloj; debe usarse con `A` o `a` | 03 |
| `hh` | hora | 12-hora reloj; debe usarse con `A` o `a` | 03 |
| `m` | minuto | no acepta 0 | 4 |
| `mm` | minuto | | 04 |
| `s` | segundo | no acepta 0 | 5 |
| `ss` | segundo | | 05 |
| `A` | AM/PM | solamente para `format`, mayusculas | AM |
| `A` | AM/PM | solamente para `format`, mayúsculas | AM |
| `a` | am/pm | solamente para `format`, minúsculas | am |
| `timestamp` | JS timestamp | solamente para `value-format`; valor vinculado debe ser un `number` | 1483326245000 |
| `[MM]` | No hay caracteres de escape | Para escapar de los caracteres, colóquelos entre corchetes (ejemplo: [A] [MM]). | MM |
@ -450,7 +450,7 @@ Al seleccionar un intervalo de fechas, puede asignar la hora para la fecha de in
| picker-options | opciones adicionales, chequee la tabla debajo | object | — | {} |
| range-separator | separador de rangos | string | — | '-' |
| default-value | opcional, valor por defecto para el calendario | Date | cualquiera aceptado por `new Date()` | — |
| default-time | opcional, los valores para las horas que se deben usar en la seleccion de fechas cuando se usa el modo rango | string[] | Array de dos valores, cada uno es un string del estilo `12:00:00`. El primer elemento es para la fecha de inicio y el segundo es para la fecha final. | — |
| default-time | opcional, los valores para las horas que se deben usar en la selección de fechas cuando se usa el modo rango | string[] | Array de dos valores, cada uno es un string del estilo `12:00:00`. El primer elemento es para la fecha de inicio y el segundo es para la fecha final. | — |
| value-format | opcional, formato del valor enlazado. Si no esta especificado, el valor enlazado será un objeto Date. | string | ver [date formats](#/es/component/date-picker#date-formats) | — |
| name | igual que `name` en el input nativo | string | — | — |
| unlink-panels | desvincular los dos paneles de fecha en el range-picker | boolean | — | false |
@ -474,18 +474,18 @@ Al seleccionar un intervalo de fechas, puede asignar la hora para la fecha de in
### Eventos
| Nombre | Descripción | Parametros |
| ------ | ---------------------------------------- | ---------------------------- |
| Nombre | Descripción | Parámetros |
| ------ | ---------------------------------------------- | ---------------------------- |
| change | se dispara cuando el usuario confirma el valor | valor enlazado al componente |
| blur | se dispara cuando el input pierde el foco | instancia del componente |
| focus | se dispara cuando el input obtiene el foco | instancia del componente |
| blur | se dispara cuando el input pierde el foco | instancia del componente |
| focus | se dispara cuando el input obtiene el foco | instancia del componente |
### Metodos
| Metodo | Descripción | Parameteros |
| ------ | -------------------------- | ----------- |
| focus | coloca el foco en el input | — |
### Métodos
| Método | Descripción | Parámetros |
| ------ | -------------------------- | ---------- |
| focus | coloca el foco en el input | — |
### Slots
| Name | Description |
| Nombre | Descripción |
| --------------- | ------------------------------------- |
| range-separator | Separador de los rangos personalizado |

View File

@ -214,7 +214,7 @@ DateTimePicker se deriva de DatePicker y TimePicker. Por una explicación más d
| unlink-panels | desconectar dos date-panels en range-picker | boolean | — | false |
| prefix-icon | Clase personalizada para el icono prefijado | string | — | el-icon-date |
| clear-icon | Clase personalizada para el icono `clear` | string | — | el-icon-circle-close |
| validate-event | si se debe disparar la validacion | boolean | - | true |
| validate-event | si se debe disparar la validación | boolean | - | true |
### Picker Options
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |

View File

@ -233,14 +233,14 @@ Si la variable ligada a `visible` se gestiona en el Vuex store, el `.sync` no pu
### Slots
| Nombre | Descripcíon |
| Nombre | Descripcn |
| ------ | -------------------------------------- |
| — | contenido de Diálogo |
| title | contenido del título de Diálogo |
| footer | contenido del pie de página de Diálogo |
### Eventos
| Nombre de Evento | Descripcíon | Parámetros |
| Nombre de Evento | Descripción | Parámetros |
| ---------------- | ---------------------------------------- | ---------- |
| open | se activa cuando se abre el cuadro de Diálogo | — |
| opened | se activa cuando la animación de apertura del Dialog termina. | — |

View File

@ -50,11 +50,11 @@ Llamada de un drawer temporal, desde varias direcciones
```
:::
### No Title
### Sin titulo
When you no longer need a title, you can remove title from drawer.
Si no necesitas el titulo lo puedes eliminar del drawer.
:::demo Set the `withHeader` attribute to **false**, you can remove the title from drawer, thus your drawer can have more space on screen. If you want to be accessible, make sure to set the `title` attribute.
:::demo Asigne **false** al atributo `withHeader`, se puede eliminar el atributo title del drawer, de esa manera el drawer tendrá mas espacio para el contenido. Por razones de accesibilidad se recomienda asignar siempre un contenido valido al atributo `title`.
```html
<el-button @click="drawer = true" type="primary" style="margin-left: 16px;">
@ -280,7 +280,7 @@ Si la variable `visible` se gestiona en el almacén de Vuex, el `.sync` no puede
| title | El título del Drawer, también se puede establecer por slot con nombre, las descripciones detalladas se pueden encontrar en el formulario de slot. | string | — | — |
| visible | Si se muestra el Drawer, también soporta la notación `.sync` | boolean | — | false |
| wrapperClosable | Indica si el usuario puede cerrar el Drawer haciendo clic en la capa de sombreado. | boolean | - | true |
| withHeader | Flag that controls the header section's existance, default to true, when withHeader set to false, both `title attribute` and `title slot` won't work | boolean | - | true |
| withHeader | Indica si la sección header existirá, por defecto es true, cuando es false no tienen efecto, ambos, `title attribute` y `title slot` | boolean | - | true |
### Drawer Slot's

View File

@ -38,7 +38,7 @@ Pase el ratón por el menú desplegable para desplegarlo y obtener más acciones
Utilizando un botón para activar la lista desplegable.
:::demo Utilice `split-button` para dividir el elemento detonante en un grupo de botones, siendo el botón izquierdo un botón normal y el botón derecho el objetivo real de la detonacion. Si desea insertar una línea de separación entre la posición tres y la posición cuatro, sólo añada un divisor de clase a la posición cuatro.
:::demo Utilice `split-button` para dividir el elemento detonante en un grupo de botones, siendo el botón izquierdo un botón normal y el botón derecho el objetivo real de la detonación. Si desea insertar una línea de separación entre la posición tres y la posición cuatro, sólo añada un divisor de clase a la posición cuatro.
```html
<el-dropdown>
@ -290,13 +290,13 @@ Además del tamaño predeterminado, el componente Dropdown proporciona tres tama
| dropdown | contenido del menu Dropdown, normalmente es un elemento `<el-dropdown-menu>` |
### Dropdown Eventos
| Nombre | Descripción | Parametros |
| -------------- | ---------------------------------------- | ---------------------------------------- |
| click | si `split-button` es `true`, se activa al hacer clic en el botón izquierdo | — |
| command | activa cuando se hace clic en un elemento desplegable | el comando enviado desde el elemento desplegable |
| visible-change | se activa cuando aparece/desaparece el desplegable | true cuando aparece, y false de otro modo |
| Nombre | Descripción | Parámetros |
| -------------- | ------------------------------------------------------------ | ------------------------------------------------ |
| click | si `split-button` es `true`, se activa al hacer clic en el botón izquierdo | — |
| command | activa cuando se hace clic en un elemento desplegable | el comando enviado desde el elemento desplegable |
| visible-change | se activa cuando aparece/desaparece el desplegable | true cuando aparece, y false de otro modo |
### Dropdown Menu Item Atributos
### Dropdown Menú Ítem Atributos
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
| -------- | ---------------------------------------- | -------------------- | ----------------- | ----------- |
| command | un comando que se enviará al `command` callback del Dropdown | string/number/object | — | — |

61
examples/docs/es/empty.md Normal file
View File

@ -0,0 +1,61 @@
## Empty
Placeholder hints for empty states.
### Basic usage
:::demo
```html
<el-empty description="descrição"></el-empty>
```
:::
### Custom image
Use `image` prop to set image URL.
:::demo
```html
<el-empty image="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"></el-empty>
```
:::
### Image size
Use `image-size` prop to control image size.
:::demo
```html
<el-empty :image-size="200"></el-empty>
```
:::
### Bottom content
Use the default slot to insert content at the bottom.
:::demo
```html
<el-empty>
<el-button type="primary">Button</el-button>
</el-empty>
```
:::
### Empty Attributes
| Attribute | Description | Type | Acceptable Value | Default Value |
|------------- |---------------- |---------------- |---------------------- |-------- |
| image | image URL | string | — | — |
| image-size | image size (width) | number | — | — |
| description | description | string | — | — |
### Empty Slots
| Name | Description |
|------|--------|
| default | Custom bottom content |
| image | Custom image |
| description | Custom description |

View File

@ -392,7 +392,7 @@ Este ejemplo muestra cómo personalizar sus propias reglas de validación para f
Se debe llamar a la función de validación de llamada de retorno personalizada. Ver uso más avanzado en [async-validator](https://github.com/yiminghe/async-validator).
:::
### Eliminar o agregar validaciones dinamicamente
### Eliminar o agregar validaciones dinámicamente
:::demo Además de pasar todas las reglas de validación al mismo tiempo en el componente `form`, también puede pasar las reglas de validación o borrar reglas en un único campo de formulario de forma dinámica.
@ -471,7 +471,7 @@ Se debe llamar a la función de validación de llamada de retorno personalizada.
:::
### Validación numerica
### Validación numérica
:::demo La validación numérica necesita un modificador `.number` añadido en el enlace `v-model` de entrada, sirve para transformar el valor de la cadena al número proporcionado por Vuejs.
@ -617,9 +617,9 @@ Todos los componentes de un formulario heredan su atributo `size`. De manera sim
| size | el tamaño de los componentes en este form | string | medium / small / mini | — |
| disabled | si se desactivan todos los componentes del formulario. Si esta en `true` no puede ser cambiado por el prop `disabled` individual de los componentes. | boolean | — | false |
### Form Metodos
### Form Métodos
| Metodo | Descripción | Parametros |
| Método | Descripción | Parámetros |
| ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| validate | el método para validar todo el formulario. Recibe una llamada como parámetro. Después de la validación, la llamada de retorno se ejecutará con dos parámetros: un booleano que indica si la validación ha pasado, y un objeto que contiene todos los campos que fallaron en la validación. Devuelve una promesa si se omite el return | Function(callback: Function(boolean, object)) |
| validateField | validar uno o varios elementos de formulario | Function(props: string \| array, callback: Function(errorMessage: string)) |
@ -627,9 +627,9 @@ Todos los componentes de un formulario heredan su atributo `size`. De manera sim
| clearValidate | borra el mensaje de validación para determinados campos. El parámetro es un prop name o un array de props names de los items del formulario cuyos mensajes de validación se eliminarán. Si se omiten, se borrarán todos los mensajes de validación de los campos. | Function(props: string \| array) |
### Form Events
### Eventos Form
| Nombre | Descripción | Parametros |
| Nombre | Descripción | Parámetros |
| -------- | ---------------------------------------------------- | ------------------------------------------------------------ |
| validate | se dispara después de validar un ítem del formulario | la propiedad (`prop name`) nombre del ítem del form que se esta validando, si la validación paso o no, y el mensaje de error si existe. |
@ -660,9 +660,9 @@ Todos los componentes de un formulario heredan su atributo `size`. De manera sim
| ----- | ------------------------------------------------------------ |
| error | Contenido personalizado para mostrar el mensaje de validación. El parámetro del scope es { error } |
### Form-Item Metodo
### Form-Item Método
| Metodo | Descripción | Parametros |
| Método | Descripción | Parámetros |
| ------------- | ----------------------------------------------------------- | ---------- |
| resetField | restablecer campo actual y eliminar resultado de validación | — |
| clearValidate | elimina el estado de la validación de un campo | - |

View File

@ -83,6 +83,6 @@ Añada `v-infinite-scroll` a la lista para ejecutar automáticamente el método
| Atributos | Descripción | Tipo | Valores aceptados | Por defecto |
| -------------- | ------------------------------ | --------- | ------------------------------------ | ------- |
| infinite-scroll-disabled | si esta disabled | boolean | - |false |
| infinite-scroll-delay | retraso en milisegundos | number | - |200 |
| infinite-scroll-delay | retraso en mili segundos | number | - |200 |
| infinite-scroll-distance| distancia de activación (px) | number |- |0 |
| infinite-scroll-immediate |Si se debe ejecutar el método de carga inmediatamente, en caso de que el contenido no se pueda rellenar en el estado inicial. | boolean | - |true |

View File

@ -91,7 +91,7 @@ Le permite definir el nivel de incremento de los saltos.
### Precisión
:::demo El atributo `precision` aplica presicion al valor del value.
:::demo El atributo `precision` aplica presición al valor del value.
```html
<template>
@ -174,9 +174,9 @@ Utilice el atributo `size` para establecer tamaños adicionales con `medium`, `s
| ----------------- | ---------------------------------------- | ------- | ----------------- | ----------- |
| value / v-model | valor vinculado | number | — | 0 |
| min | el valor mínimo permitido | number | — | `-Infinity` |
| max | el valor maximo permitido | number | — | `Infinity` |
| max | el valor máximo permitido | number | — | `Infinity` |
| step | incremento (salto) | number | — | 1 |
| step-strictly | si el valor del input puede ser solo un multiplo de step | number | — | false |
| step-strictly | si el valor del input puede ser solo un múltiplo de step | boolean | — | false |
| precision | precisión del valor del input | number | — | — |
| size | tamaño del componente | string | large/small | — |
| disabled | si el componente esta deshabilitado | boolean | — | false |
@ -184,7 +184,7 @@ Utilice el atributo `size` para establecer tamaños adicionales con `medium`, `s
| controls-position | posición de los botones de control | string | right | - |
| name | lo mismo que `name` en un input nativo | string | — | — |
| label | texto de la etiqueta | string | — | — |
| placeholder | placeholder in input | string | - | - |
| placeholder | placeholder en el input | string | - | - |
### Eventos

View File

@ -155,7 +155,7 @@ export default {
### Textarea
Redimensiona para introducir varias líneas de información de texto. Agregue el atributo `type="textarea"` para cambiar el `input` al tipo nativo `textarea`.
Re dimensiona para introducir varias líneas de información de texto. Agregue el atributo `type="textarea"` para cambiar el `input` al tipo nativo `textarea`.
:::demo Controle la altura ajustando el prop `rows`.
@ -613,7 +613,7 @@ export default {
### Input eventos
| Nombre | Descripción | Parametros |
| Nombre | Descripción | Parámetros |
| ------ | ------------------------------------------------------------ | ------------------------- |
| blur | Se dispara cuando se pierde el foco | (event: Event) |
| focus | Se dispara cuando se obtiene el foco | (event: Event) |
@ -622,9 +622,9 @@ export default {
| input | se activa cuando cambia el valor de entrada | (value: string \| number) |
| clear | se dispara cuando la entrada es borrada por el botón generado por el atributo `clearable`. | — |
### Input Metodo
### Input Métodos
| Metodo | Descripción | Parametros |
| Método | Descripción | Parámetros |
| ------ | ----------------------------- | ---------- |
| focus | coloca el foco en el elemento | — |
| blur | quita el foco del elemento | — |
@ -665,18 +665,19 @@ export default {
### Autocomplete Scoped Slot
| Name | Description |
| ---- | ------------------------------------------------------------ |
| — | Contenido personalizado para el input de sugerencias. El parámetro del scope es { ítem } |
| Nombre | Descripción |
| ------ | ------------------------------------------------------------ |
| — | Contenido personalizado para el input de sugerencias. El parámetro del scope es { ítem } |
### Autocomplete Eventos
| Nombre | Descripción | Parametros |
| Nombre | Descripción | Parámetros |
| ------ | ----------------------------------------------- | ------------------------------------------ |
| select | se dispara cuando se hace clic a una sugerencia | sugerencia en la que se está haciendo clic |
| change | se activa cuando cambia el valor de entrada | (value: string \| number) |
### Autocomplete Metodo
### Autocomplete Método
| Metodo | Descripción | Parametros |
| Método | Descripción | Parámetros |
| ------ | ----------------------------- | ---------- |
| focus | coloca el foco en el elemento | — |

View File

@ -20,7 +20,7 @@ Obtenga la última versión desde [unpkg.com/element-ui](https://unpkg.com/eleme
```
##Tip
Recomendamos a nuestros usuarios congelar la versión de Elemet cuando usas un CDN. Por favor, refiérase a [unpkg.com](https://unpkg.com) para más información.
Recomendamos a nuestros usuarios congelar la versión de Element cuando usas un CDN. Por favor, refiérase a [unpkg.com](https://unpkg.com) para más información.
### Hello world

View File

@ -1,12 +1,12 @@
## Layout
Rápido y facilmente crea un layout básico con 24 columnas.
Rápido y fácilmente crea un layout básico con 24 columnas.
### Layout básico
Crea un layout básico usando columnas.
:::demo Con `row` y `col`, puede facilmente manipular el layout usando el atributo `span`.
:::demo Con `row` y `col`, puede fácilmente manipular el layout usando el atributo `span`.
```html
<el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark"></div></el-col>
@ -338,22 +338,22 @@ Las clases son:
| gutter | espaciado de la grilla | number | — | 0 |
| type | modo del layout , puedes usar flex, funciona en navegadores modernos | string | — | — |
| justify | alineación horizontal del layout flex | string | start/end/center/space-around/space-between | start |
| align | alineación vertical del layout flex | string | top/middle/bottom | top |
| align | alineación vertical del layout flex | string | top/middle/bottom | |
| tag | tag de elemento propio | string | * | div |
### Atributos Col
| Atributos | Descripción | Tipo | Valores aceptados | Valor por defecto |
| --------- | ---------------------------------------- | ---------------------------------------- | ----------------- | ----------------- |
| span | número de columnas que abarca la cuadrícula | number | — | 24 |
| offset | especific espacio en el lado izquierdo de la grill | number | — | 0 |
| push | número de columnas que la grilla se mueve hacia la derecha | number | — | 0 |
| pull | número de columnas que la grilla se mueve hacia la izquierda | number | — | 0 |
| Atributos | Descripción | Tipo | Valores aceptados | Valor por defecto |
| --------- | ------------------------------------------------------------ | ----------------------------------------- | ----------------- | ----------------- |
| span | número de columnas que abarca la cuadrícula | number | — | 24 |
| offset | especifica el espacio en el lado izquierdo del grill | number | — | 0 |
| push | número de columnas que la grilla se mueve hacia la derecha | number | — | 0 |
| pull | número de columnas que la grilla se mueve hacia la izquierda | number | — | 0 |
| xs | `<768px` Columnas responsive u objeto con propiedades de la columna | number/object (e.g. {span: 4, offset: 4}) | — | — |
| sm | `≥768px` Columnas responsive u objeto con propiedades de la columna | number/object (e.g. {span: 4, offset: 4}) | — | — |
| md | `≥992px` Columnas responsive u objeto con propiedades de la columna | number/object (e.g. {span: 4, offset: 4}) | — | — |
| lg | `≥1200px` Columnas responsive u objeto con propiedades de la columna | number/object (e.g. {span: 4, offset: 4}) | — | — |
| xl | `≥1920px` Columnas responsive u objeto con propiedades de la columna | number/object (e.g. {span: 4, offset: 4}) | — | — |
| tag | tag de elemento propio | string | * | div |
| tag | tag de elemento propio | string | * | div |

View File

@ -1,10 +1,10 @@
## Link
Texto con hipervinculo
Texto con hipervínculo
### Básico
Texto con hipervinculo básico
Texto con hipervínculo básico
:::demo
```html
@ -22,7 +22,7 @@ Texto con hipervinculo básico
### Deshabilitar
Deshabilita el hipervinculo
Deshabilita el hipervínculo
:::demo
```html
@ -40,7 +40,7 @@ Deshabilita el hipervinculo
### Subrayado
Subrayado del hipervinculo
Subrayado del hipervínculo
:::demo
```html
@ -54,7 +54,7 @@ Subrayado del hipervinculo
### Icono
Hipervinculo con icono
Hipervínculo con icono
:::demo
```html
@ -71,7 +71,7 @@ Hipervinculo con icono
| Atributo | Descripción | Tipo | Opciones | Por defecto |
| --------- | ---------------------------------------------------- | ------- | ------------------------------------------- | ----------- |
| type | tipo | string | primary / success / warning / danger / info | default |
| underline | si el hipervinculo estara subrayado | boolean | — | true |
| underline | si el hipervínculo estará subrayado | boolean | — | true |
| disabled | si el componente esta deshabilitado | boolean | — | false |
| href | lo mismo que el valor nativo del hipervinculo `href` | string | — | - |
| href | lo mismo que el valor nativo del hipervínculo `href` | string | — | - |
| icon | nombre de clase del icono | string | — | - |

View File

@ -196,7 +196,7 @@ Llamar al método `close` en cualquiera de estas puede cerrarlo.
Si Element es importado completamente, un método global `$loading` puede ser registrado a Vue.prototype. Puede invocarlo como esto: `this.$loading(options)`, y también devuelve una instancia del componente.
### Options
### Opciones
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
| ----------- | ---------------------------------------- | ------------- | ----------------- | ------------- |
| target | el nodo del DOM que el componente debe cubrir. Acepta un objecto DOM o una cadena. Si está es una cadena, este será pasado a `document.querySelector` para obtener el correspondiente nodo del DOM | object/string | — | document.body |

View File

@ -244,14 +244,14 @@ NavMenu vertical puede ser colapsado.
```
:::
### Atributos Menu
### Atributos Menú
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
| ----------------- | ---------------------------------------- | ------- | --------------------- | ----------- |
| mode | modo de presentación del menú | string | horizontal / vertical | vertical |
| collapse | si el menú está colapsado (solo en modo vertical) | boolean | — | false |
| background-color | color de fondo del menú (formato hexadecimal) | string | — | #ffffff |
| text-color | color de texto del menú (formato hexadecimal) | string | — | #303133 |
| active-text-color | color de text del menu-item activo (formato hexadecimal) | string | — | #409EFF |
| active-text-color | color del texto del menu-item activo (formato hexadecimal) | string | — | #409EFF |
| default-active | índice del menu-item activo | string | — | — |
| default-openeds | arreglo que contiene las llaves del sub-menus activo | Array | — | — |
| unique-opened | si solo un submenu puede ser activo | boolean | — | false |

View File

@ -305,7 +305,7 @@ Los métodos correspondientes: `MessageBox`, `MessageBox.alert`, `MessageBox.con
| message | contenido del componente MessageBox | string | — | — |
| dangerouslyUseHTMLString | utilizado para que `message` sea tratado como una cadena HTML | boolean | — | false |
| type | tipo de mensaje , utilizado para mostrar el icono | string | success / info / warning / error | — |
| iconClass | clase personalizada para el icono, sobreescribe `type` | string | — | — |
| iconClass | clase personalizada para el icono, sobrescribe `type` | string | — | — |
| customClass | nombre de la clase personalizada para el componente MessageBox | string | — | — |
| callback | MessageBox callback al cerrar si no desea utilizar Promise | function(action), donde la accion puede ser 'confirm', 'cancel' o 'close', e `instance` es la instancia del componente MessageBox. Puedes acceder a los metodos y atributos de esa instancia | — | — |
| beforeClose | callback llamado antes de cerrar el componente MessageBox, y previene que el componente MessageBox se cierre | function(action, instance, done), donde `action` pueden ser 'confirm', 'cancel' o 'close'; `instance` es la instancia del componente MessageBox, Puedes acceder a los metodos y atributos de esa instancia; `done` es para cerrar la instancia | — | — |

View File

@ -181,7 +181,7 @@ Utiliza el atributo `center` para centrar el texto.
:::
:::warning
Aunque la propiedad `message` soporta cadenas HTML, realizar arbitrariamente render dinámico de HTML en nuestro sitio web puede ser muy peligroso ya que puede conducir fácilmente a [XSS attacks](https://en.wikipedia.org/wiki/Cross-site_scripting). Entonces cuando `dangerouslyUseHTMLString` esta activada, asegurese que el contenido de `message` sea de confianza, y **nunca** asignar `message` a contenido generado por el usuario.
Aunque la propiedad `message` soporta cadenas HTML, realizar arbitrariamente render dinámico de HTML en nuestro sitio web puede ser muy peligroso ya que puede conducir fácilmente a [XSS attacks](https://en.wikipedia.org/wiki/Cross-site_scripting). Entonces cuando `dangerouslyUseHTMLString` esta activada, asegúrese que el contenido de `message` sea de confianza, y **nunca** asignar `message` a contenido generado por el usuario.
:::
### Métodos Globales
@ -198,15 +198,15 @@ import { Message } from 'element-ui';
En este caso debería llamar al método `Message(options)`. También se han registrado métodos para los diferentes tipos, e.g. `Message.success(options)`. Puede llamar al método `Message.closeAll()` para cerrar manualmente todas las instancias.
### Options
| Atributo | Descripcion | Tipo | Valores permitidos | Por defecto |
### Opciones
| Atributo | Descripción | Tipo | Valores permitidos | Por defecto |
| ------------------------ | ---------------------------------------- | -------------- | -------------------------- | ----------- |
| message | texto del mensaje | string / VNode | — | — |
| type | tipo del mensaje | string | success/warning/info/error | info |
| iconClass | clase personalizada para el icono, sobreescribe `type` | string | — | — |
| iconClass | clase personalizada para el icono, sobrescribe `type` | string | — | — |
| dangerouslyUseHTMLString | utilizado para que `message` sea tratado como cadena HTML | boolean | — | false |
| customClass | nombre de clase personalizado para el componente Message | string | — | — |
| duration | muestra la duración,en milisegundos. si se establece en 0, este no se apagara automáticamente | number | — | 3000 |
| duration | muestra la duración,en mili segundos. si se establece en 0, este no se apagara automáticamente | number | — | 3000 |
| showClose | utilizado para mostrar un botón para cerrar | boolean | — | false |
| center | utilizado para centrar el texto | boolean | — | false |
| onClose | función callback ejecutada cuando se cierra con una instancia de mensaje como parámetro | function | — | — |

View File

@ -4,7 +4,7 @@ Muestra un mensaje de notificación global en una esquina de la página.
### Uso básico
:::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.
:::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 mili segundos.
```html
<template>
@ -313,6 +313,6 @@ En este caso, debe llamar a `Notification(options)`. También se han registrado
### Métodos
`Notification` y `this.$notify` devuelven la instancia de la notificación actual. Para cerrar manualmente la instancia, se puede llamar `close` para ello.
| Metodo | Descripción |
| Método | Descripción |
| ------ | ---------------------- |
| close | cierra la notificación |

View File

@ -1,12 +1,12 @@
## Popconfirm
A simple confirmation dialog of an element click action.
Un dialogo de confirmación simple asociado al evento click de un elemento.
### Basic usage
### Uso básico
Popconfirm is similar to Popover. So for some duplicated attributes, please refer to the documentation of Popover.
Popconfirm es parecido a Popover. Para algunos atributos duplicados, por favor consulte la documentación de Popover.
:::demo Only `title` attribute is avaliable in Popconfirm, `content` will be ignored.
:::demo Solo el atributo `title` esta disponible en Popconfirm, `content` sera ignorado.
```html
<template>
<el-popconfirm
@ -18,16 +18,17 @@ Popconfirm is similar to Popover. So for some duplicated attributes, please refe
````
:::
### Customise
You can customise Popconfirm like:
### Personalización
Se puede personalizar Popconfirm así:
:::demo
```html
<template>
<el-popconfirm
confirmButtonText='OK'
cancelButtonText='No, Thanks'
confirm-button-text='OK'
cancel-button-text='No, Thanks'
icon="el-icon-info"
iconColor="red"
icon-color="red"
title="Are you sure to delete this?"
>
<el-button slot="reference">Delete</el-button>
@ -36,19 +37,25 @@ You can customise Popconfirm like:
```
:::
### Attributes
| Attribute | Description | Type | Accepted Values | Default |
### Atributos
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
|--------------------|----------------------------------------------------------|-------------------|-------------|--------|
| title | Title | String | — | — |
| confirmButtonText | Confirm button text | String | — | — |
| cancelButtonText | Cancel button text | String | — | — |
| confirmButtonType | Confirm button type | String | — | Primary |
| cancelButtonType | Cancel button type | String | — | Text |
| icon | Icon | String | — | el-icon-question |
| iconColor | Icon color | String | — | #f90 |
| hideIcon | is hide Icon | Boolean | — | false |
| title | Titulo | String | — | — |
| confirm-button-text | Texto del botón de confirmación | String | — | — |
| cancel-button-text | Texto del botón de cancelación | String | — | — |
| confirm-button-type | Tipo del botón de confirmación | String | — | Primary |
| cancel-button-type | Tipo del botón de cancelación | String | — | Text |
| icon | Icono | String | — | el-icon-question |
| icon-color | Color icono | String | — | #f90 |
| hide-icon | ¿Es un icono oculto? | Boolean | — | false |
### Slot
| Name | Description |
| Nombre | Descripción |
|--- | ---|
| reference | HTML element that triggers Popconfirm |
| reference | Elemento HTML que activa el Popconfirm |
### Eventos
| Nombre Evento | Descripción | Parámetros |
|---------|--------|---------|
| confirm | Se activa cuando se pulsa el botón de confirmación | — |
| cancel | Se activa cuando se pulsa el botón de cancelación | — |

View File

@ -150,8 +150,8 @@ Por supuesto, puedes anidar otras operaciones. Es más ligero que utilizar un `d
| visible-arrow | si una flecha del tooltip es mostrada o no. Para más información, por favor refiérase a [Vue-popper](https://github.com/element-component/vue-popper) | boolean | — | true |
| popper-options | parámetros para [popper.js](https://popper.js.org/documentation.html) | object | por favor, refiérase a [popper.js](https://popper.js.org/documentation.html) | `{ boundariesElement: 'body', gpuAcceleration: false }` |
| popper-class | clase propia para popover | string | — | — |
| open-delay | retraso de la aparición cuando `trigger` es hover, en milisegundos | number | — | — |
| close-delay | Retraso antes de desaparecer cuando el `trigger` es hover, en milisegundos. | number | — | 200 |
| open-delay | retraso de la aparición cuando `trigger` es hover, en mili segundos | number | — | — |
| close-delay | Retraso antes de desaparecer cuando el `trigger` es hover, en mili segundos. | number | — | 200 |
| tabindex | [tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) de Popover | number | — | 0 |
### Slot

View File

@ -165,7 +165,8 @@ Puede utilizar el atributo `color` para establecer el color de la barra de progr
| stroke-width | ancho de la barra de progreso | number | — | 6 |
| text-inside | mostrar el porcentaje dentro de la barra de progreso, solo funciona cuando `type` es 'line' | boolean | — | false |
| status | estado actual de la barra de progreso | string | success/exception/warning | — |
| color | color de fondo de la barra de progreso. Sobreescribe la propiedad `status` | string/function/array | — | '' |
| color | color de fondo de la barra de progreso. Sobrescribe la propiedad `status` | string/function/array | — | '' |
| width | ancho del canvas que contiene la barra de progreso circula | number | — | 126 |
| show-text | mostrar porcentaje | boolean | — | true |
| stroke-linecap | circle/dashboard type shape at the end path | string | butt/round/square | round |
| stroke-linecap | circle/dashboard tipo de diseño al final del camino | string | butt/round/square | round |
| format | personalizar el formato de texto estableciendo format | function(percentage) | — | — |

View File

@ -186,7 +186,7 @@ Puede limpiar un Select con un icono.
### Selección múltiple básica
Selección multiple utiliza tags para mostrar las opciones seleccionadas.
Selección múltiple utiliza tags para mostrar las opciones seleccionadas.
:::demo Configure el atributo `multiple` para `el-select` para habilitar el modo múltiple. En este caso, el valor del `v-model` será un array de opciones seleccionadas. De forma predeterminada, las opciones seleccionadas se mostrarán como tags. Se pueden contraer a un texto utilizando el atributo `collapse-tags`.
@ -562,7 +562,7 @@ Si el valor de encuadernación de Select es un objeto, asegúrese de asignar `va
| automatic-dropdown | para non-filterable Select, este `prop` decide si el menú de opciones aparece cuando la entrada está enfocada | boolean | - | false |
### Eventos Select
| Nombre | Descripción | Parametros |
| Nombre | Descripción | Parámetros |
| -------------- | ------------------------------------------------------------ | ----------------------------------------- |
| change | se dispara cuando el valor del select cambia | valor actual del select |
| visible-change | se dispara cuando el menú desplegable aparece o desaparece | true cuando aparece, y false en otro caso |
@ -571,8 +571,8 @@ Si el valor de encuadernación de Select es un objeto, asegúrese de asignar `va
| blur | se dispara cuando el input pierde el foco | (event: Event) |
| focus | se dispara cuando el input obtiene el foco | (event: Event) |
### Select Slots
| Name | Description |
### Slots Select
| Nombre | Descripción |
|---------|-------------|
| — | lista de los componentes Option |
| prefix | contenido prefix de un Select |
@ -591,8 +591,8 @@ Si el valor de encuadernación de Select es un objeto, asegúrese de asignar `va
| label | etiqueta de option, es igual a `value` si se omite | string/number | — | — |
| disabled | si option esta deshabilitado | boolean | — | false |
### Metodos
| Metodo | Descripción | Parametros |
### Métodos
| Método | Descripción | Parámetros |
| ------ | --------------------------- | ---------- |
| focus | Foco en el componente input | - |
| blur | Quita el focus del componente y oculta el dropdown | - |

View File

@ -0,0 +1,315 @@
## Skeleton
When loading data, and you need a rich experience for visual and interactions for your end users, you can choose `skeleton`.
### Basic usage
The basic skeleton.
:::demo
```html
<template>
<el-skeleton />
</template>
```
:::
### Configurable Rows
You can configure the row numbers yourself, we are rendering a title row with 33% width of the others.
:::demo
```html
<el-skeleton :rows="6" />
```
:::
### Animation
We have provided a switch flag indicating whether showing the loading animation, called `animated` when this is true, all children of `el-skeleton` will show animation
:::demo
```html
<el-skeleton :rows="6" animated />
```
:::
### Customized Template
ElementPlus only provides the most common template, sometimes that could be a problem, so you have a slot named `template` to do that work.
Also we have provided different types skeleton unit that you can choose, for more detailed info, please scroll down to the bottom of this page to see the API description. Also, when building your own customized skeleton structure, you should be structuring them as closer to the real DOM as possible, which avoiding the DOM bouncing caused by the height difference.
:::demo
```html
<template>
<el-skeleton style="width: 240px">
<template slot="template">
<el-skeleton-item variant="image" style="width: 240px; height: 240px;" />
<div style="padding: 14px;">
<el-skeleton-item variant="p" style="width: 50%" />
<div
style="display: flex; align-items: center; justify-items: space-between;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
</el-skeleton>
</template>
```
:::
### Loading state
When `Loading` ends, we always need to show the real UI with data to our end users. with the attribtue `loading` we can control whether showing the DOM. You can also use slot `default` to structure the real DOM element.
:::demo
```html
<template>
<div style="width: 240px">
<p>
<label style="margin-right: 16px;">Switch Loading</label>
<el-switch v-model="loading" />
</p>
<el-skeleton style="width: 240px" :loading="loading" animated>
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 240px; height: 240px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card :body-style="{ padding: '0px', marginBottom: '1px' }">
<img
src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"
class="image"
/>
<div style="padding: 14px;">
<span>Delicious hamberger</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">Operation button</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data () {
return {
loading: true,
currentDate: '2021-06-01'
}
},
}
</script>
```
:::
### Rendering a list of data
Most of the time, skeleton is used as indicators of rendering a list of data which haven't been fetched from server yet, then we need to create a list of skeleton out of no where to make it look like it is loading, with `count` attribute, you can control how many these templates you need to render to the browser.
:::tip
We do not recommend rendering lots of fake UI to the browser, it will still cause the performance issue, it also costs longer to destroy the skeleton. Keep `count` as small as it can be to make better user experience.
:::
:::demo
```html
<template>
<div style="width: 400px">
<p>
<el-button @click="setLoading">Click me to reload</el-button>
</p>
<el-skeleton style="width:400px" :loading="loading" animated :count="3">
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 400px; height: 267px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card
:body-style="{ padding: '0px', marginBottom: '1px' }"
v-for="item in lists"
:key="item.name"
>
<img :src="item.imgUrl" class="image multi-content" />
<div style="padding: 14px;">
<span>Delicious hamberger</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">Operation button</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data() {
return {
loading: true,
currentDate: '2021-06-01',
lists: [],
}
},
mounted() {
this.loading = false
this.lists = [
{
imgUrl:
'https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg',
name: 'Deer',
},
{
imgUrl:
'https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg',
name: 'Horse',
},
{
imgUrl:
'https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg',
name: 'Mountain Lion',
},
]
},
methods: {
setLoading() {
this.loading = true
setTimeout(() => (this.loading = false), 2000)
},
},
}
</script>
```
:::
### Avoiding rendering bouncing.
Sometimes API responds very quickly, when that happens, the skeleton just gets rendered to the DOM then it needs to switch back to real DOM, that causes the sudden flashy. To avoid such thing, you can use the `throttle` attribute.
:::demo
```html
<template>
<div style="width: 240px">
<p>
<label style="margin-right: 16px;">Switch Loading</label>
<el-switch v-model="loading" />
</p>
<el-skeleton
style="width: 240px"
:loading="loading"
animated
:throttle="500"
>
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 240px; height: 240px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card :body-style="{ padding: '0px', marginBottom: '1px'}">
<img
src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"
class="image"
/>
<div style="padding: 14px;">
<span>Delicious hamberger</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">operation button</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
currentDate: '2021-06-01'
}
},
}
</script>
```
:::
### Skeleton Attributes
| Attribute | Description | Type | Acceptable Value | Default |
| ------- | ---------------- | ------- | ------------ | ------ |
| animated | whether showing the animation | boolean | true / false | false |
| count | how many fake items to render to the DOM | number | integer | 1 |
| loading | whether showing the skeleton | boolean | true / false | true |
| rows | numbers of the row, only useful when no template slot were given | number | integer | 4 |
| throttle | Rendering delay in millseconds | number | integer | 0 |
### Skeleton Item Attributes
| Attribute | Description | Type | Acceptable Value | Default |
| ------- | ---------------- | ------- | ------------ | ------ |
| variant | The current rendering skeleton type | Enum(string) | p / text / h1 / h3 / text / caption / button / image / circle / rect | text |
### Skeleton Slots
| Name | Description |
| ---- | ----------- |
| default | Real rendering DOM |
| template | Custom rendering skeleton template |

View File

@ -231,13 +231,13 @@ Se soporta la selección de un rango de valores.
| vertical | modo vertical | boolean | — | false |
| height | alto del Slider, requerido en modo vertical | string | — | — |
| label | etiqueta para screen reader | string | — | — |
| debounce | retardo al escribir, en milisegundos, funciona cuando`show-input` es true. | number | — | 300 |
| debounce | retardo al escribir, en mili segundos, funciona cuando`show-input` es true. | number | — | 300 |
| tooltip-class | nombre personalizado de clase para el tooltip | string | — | — |
| marks | marcas, tipo de clave debe ser `number` y debe estar en intervalo cerrado [min, max], cada marca puede tener estilo personalizado | object | — | — |
## Eventos
| Nombre | Descripción | Parametros |
| Nombre | Descripción | Parámetros |
| ------ | ---------------------------------------- | ------------------------ |
| change | se dispara cuando el valor cambia (si el ratón está comenzando el arrastre este evento sólo se disparara cuando se suelte el ratón) | valor despues del cambio |
| input | triggers when the data changes (It'll be emitted in real time during sliding) | value after changing |
| change | se dispara cuando el valor cambia (si el ratón está comenzando el arrastre este evento sólo se disparara cuando se suelte el ratón) | valor después del cambio |
| input | Se dispara cuando los datos cambian (funciona en tiempo real) | valor después del cambio |

View File

@ -6,7 +6,7 @@ Guía al usuario para completar tareas de acuerdo con el proceso. Sus pasos pued
Barra de pasos simple.
:::demo Defina el atributo `active` con un valor de tipo `Number`, que indica el índice de pasos y comienza desde 0. Puede definir el atributo `space` cuando es necesario fijar el ancho del paso que acepta el tipo `Boolean`. La unidad del atributo `space` es px. Si no está configurado, es responsive. La configuración del atributo `finish-status` puede cambiar el estado de los pasos completados.
:::demo Defina el atributo `active` con un valor de tipo `Number`, que indica el índice de pasos y comienza desde 0. Puede definir el atributo `space` cuando es necesario fijar el ancho del paso que acepta el tipo `Number`. La unidad del atributo `space` es px. Si no está configurado, es responsive. La configuración del atributo `finish-status` puede cambiar el estado de los pasos completados.
```html
<el-steps :active="active" finish-status="success">
@ -50,7 +50,7 @@ Muestra el estado del step para cada paso.
```
:::
### Centrado
### Centrado
El título y la descripción pueden estar centrados.
@ -151,8 +151,8 @@ Step bar simple, donde se ignorará `align-center`, `description`, `direction` y
| icon | icono del paso | nombre de la clase del icono del paso. Los iconos también se pueden pasar a través del slot con nombre | string | — |
| status | estado actual. Se configurará automáticamente mediante Steps si no está configurado. | wait / process / finish / error / success | - | |
### Step Slot
| Name | Description |
### Slot Step
| Nombre | Descripción |
| ----------- | -------------------- |
| icon | Icono personalizado |
| title | Titulo del paso |

View File

@ -134,12 +134,12 @@ Switch es utilizado para realizar cambios entre dos estados opuestos.
### Eventos
| Nombre del evento | Descripción | Parametro |
| Nombre del evento | Descripción | Parámetro |
| ----------------- | --------------------------------- | --------- |
| change | se dispara cuando el valor cambia | valor |
después de cambiar
### Metodos
| Metodo | Descripción | Parametro |
### Métodos
| Método | Descripción | Parámetro |
| ------ | ------------------------- | --------- |
| focus | foco al componente Switch | — |

View File

@ -1815,7 +1815,7 @@ Puede personalizar el índice de la fila con la propiedad `type=index` de las co
| ---------------------- | ---------------------------------------- | ---------------------------------------- | ------------------------------ | ---------------------------------------- |
| data | Datos de la tabla | array | — | — |
| height | Altura de la tabla. Por defecto esta tiene un tamaño `auto`. Si este valor es un número, la altura es medido en pixeles; si este valor es una cadena, la altura es afectada por estilos externos. | string/number | — | — |
| max-height | Table's max-height. The legal value is a number or the height in px. | string/number | — | — |
| max-height | El max-height de la tabla. El valor puede ser un numero o el alto en px. | string/number | — | — |
| stripe | especifica si la tabla será en franjas | boolean | — | false |
| border | especifica si la tabla tiene bordes verticales | boolean | — | false |
| size | tamaño de la tabla | string | medium / small / mini | — |

View File

@ -293,7 +293,7 @@ Solo las pestañas de tipo tarjeta soportan adición y cierre.
| tab-click | se lanza cuando se hace clic a una pestaña | pestaña clickeada |
| tab-remove | se lanza cuando se hace clic al botón tab-remove | nombre de la pestaña removida |
| tab-add | se lanza cuando se hace clic al botón tab-add | — |
| edit | se lanza cuando los botones de tab-add y/o tab-remove son clickeados | (targetName, action) |
| edit | se lanza cuando los botones de tab-add y/o tab-remove son cliqueados | (targetName, action) |
### Atributos del Tab-pane
| Atributo | Descripción | Tipo | Valores Aceptados | Default |

View File

@ -141,9 +141,9 @@ Además del tamaño predeterminado, el componente Tag proporciona tres tamaños
### Theme
Tag provide three different themes: `dark`、`light` and `plain`
Tag tiene tres diferentes temas: `dark`、`light` y `plain`
:::demo Using `effect` to change, default is `light`
:::demo Use `effect` para cambiarlo, por defecto es `light`
```html
<div class="tag-group">
<span class="tag-group__title">Dark</span>

View File

@ -34,7 +34,7 @@ Provee una lista de tiempo fijo para que los usuarios escojan.
Un tiempo arbitrario puede ser escogido.
:::demo Al usar el tag `el-time-picker`, es posible limitar el rango de tiempo al especificar `selectableRange`. Por defecto, es posible hacer scroll con la rueda del mouse para escoger el tiempo, alternativamente se pueden utilizar las flechas de control cuando el atributo `arrow-control` esté establecido.
:::demo Al usar el tag `el-time-picker`, es posible limitar el rango de tiempo al especificar `selectableRange`. Por defecto, es posible hacer scroll con la rueda del ratón para escoger el tiempo, alternativamente se pueden utilizar las flechas de control cuando el atributo `arrow-control` esté establecido.
```html
<template>

View File

@ -147,7 +147,7 @@ Las marcas de tiempo ( timestamp ) puede colocarse encima del contenido cuando
| icon | nombre de la clase del icono | string | — | - |
### Timeline-Item Slot
| name | Description |
| Nombre | Descripción |
|------|--------|
| — | Contenido personalizado del ítem del timeline |
| dot | Definición personalizada del nodo |

View File

@ -6,7 +6,7 @@ Mostrar aviso de información con el hover del mouse.
Tooltip tiene 9 colocaciones.
:::demo Use el atributo `content` para establecer el contenido que se mostrará al hacer hover. El atributo `placement` determina la posición del tooltip. Su valor es `[orientation]-[alignment]` con cuatro orientaciones `top`, `left`, `right`, `bottom` y tres alineaciones `start`, `end`, `null`, la alineación default es null. Tome `placement="left-end"` como ejemplo, Tooltip será mostrado en la izquierda del elemento en que se esté haciendo hover y el fondo del tooltip se alineará con el fondo del elemento.
:::demo Use el atributo `content` para establecer el contenido que se mostrará al hacer hover. El atributo `placement` determina la posición del tooltip. Su valor es `[orientation]-[alignment]` con cuatro orientaciones `top`, `left`, `right`, `bottom` y tres alineaciones `start`, `end`, `null`, la alineación por defecto es null. Tome `placement="left-end"` como ejemplo, Tooltip será mostrado en la izquierda del elemento en que se esté haciendo hover y el fondo del tooltip se alineará con el fondo del elemento.
```html
<div class="box">
<div class="top">
@ -116,7 +116,7 @@ Tooltip tiene dos temas: `dark` y `light`.
Despliegue múltiples líneas de texto y establezca su formato.
:::demo Sobrecriba el atributo `content` del `el-tooltip` añadiendo un slot llamado `content`.
:::demo Sobrescriba el atributo `content` del `el-tooltip` añadiendo un slot llamado `content`.
```html
<el-tooltip placement="top">
<div slot="content">multiple lines<br/>second line</div>
@ -172,7 +172,7 @@ De hecho, Tooltip es una extensión basada en [Vue-popper](https://github.com/el
El componente `router-link` no es soportado por Tooltip, favor de usar `vm.$router.push`.
Elementos de forma deshabilitados no son soportados por Tooltip, más información puede ser encontrada en [MDN](https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter).
Es necesario envolver los elementos de forma deshabilitados en un elemento contenedor para que Tooltipo funcione.
Es necesario envolver los elementos de forma deshabilitados en un elemento contenedor para que Tooltip funcione.
:::
@ -188,9 +188,9 @@ Es necesario envolver los elementos de forma deshabilitados en un elemento conte
| transition | nombre de animación | string | — | el-fade-in-linear |
| visible-arrow | si una flecha es mostrada. Para mayor información, revisar la página de [Vue-popper](https://github.com/element-component/vue-popper) | boolean | — | true |
| popper-options | parámetros de [popper.js](https://popper.js.org/documentation.html) | Object | referirse a la documentación de [popper.js](https://popper.js.org/documentation.html) | `{ boundariesElement: 'body', gpuAcceleration: false }` |
| open-delay | retraso de la apariencia, en milisegundos | number | — | 0 |
| open-delay | retraso de la apariencia, en mili segundos | number | — | 0 |
| manual | si el Tooltipo será controlado de forma manual. `mouseenter` y `mouseleave` no tendrán efecto si fue establecido como `true` | boolean | — | false |
| popper-class | nombre de clase personalizada para el popper del Tooltip | string | — | — |
| enterable | si el mouse puede entrar al Tooltip | Boolean | — | true |
| hide-after | tiempo a esperar en milisegundos para esconder el Tooltip | number | — | 0 |
| tabindex | [tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of Tooltip | number | — | 0 |
| enterable | si el ratón puede entrar al Tooltip | Boolean | — | true |
| hide-after | tiempo a esperar en mili segundos para esconder el Tooltip | number | — | 0 |
| tabindex | [tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) de Tooltip | number | — | 0 |

View File

@ -38,7 +38,7 @@
Puede buscar y filtrar los items.
:::demo Ponga el atributo `filterable` a true para permitir el filtrado.Por defecto si el `label` del ítem contiene el término buscado será incluido en el resultado. También puede implementar su propio método de filtrado con el atributo `filter-method`, que recibe un método y le pasa la búsqueda y cada ítem. Los items para los que devuelva true serán incluidos en el resultado de la búsqueda.
:::demo Ponga el atributo `filterable` a true para permitir el filtrado. Por defecto si el `label` del ítem contiene el término buscado será incluido en el resultado. También puede implementar su propio método de filtrado con el atributo `filter-method`, que recibe un método y le pasa la búsqueda y cada ítem. Los items para los que devuelva true serán incluidos en el resultado de la búsqueda.
```html
<template>
<el-transfer
@ -213,7 +213,7 @@ Por defecto Transfer busca los atributos `key`, `label`, y `disabled` en cada el
:::
### Atributos
| Atriburo | Descripcion | Tipo | Valores aceptados | Por defecto |
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
| --------------------- | ---------------------------------------- | ------------------------------- | ----------------- | ---------------------------------------- |
| value / v-model | valor enlazado | array | — | — |
| data | Origen de datos | array[{ key, label, disabled }] | — | [ ] |
@ -230,23 +230,23 @@ Por defecto Transfer busca los atributos `key`, `label`, y `disabled` en cada el
| right-default-checked | Array de claves de los elementos marcados inicialmente en la lista de la derecha | array | — | [ ] |
### Slot
| Nombre | Descripcion |
| ------------ | ---------------------------------------- |
| Nombre | Descripción |
| ------------ | ------------------------------------------------ |
| left-footer | Contenido del footer de la lista de la izquierda |
| right-footer | Contenido del footer de la lista de la derecha |
| right-footer | Contenido del footer de la lista de la derecha |
### Scoped Slot
| Name | Description |
| Name | Descripción |
|------|--------|
| — | Contenido personalizado para los datos de los items. El parámetro del scope es { option } |
### Methods
| Method | Description | Parameters |
### Métodos
| Método | Descripción | Parámetros |
| ---- | ---- | ---- |
| clearQuery | borra la palabra clave del filtro de un determinado panel | 'left' / 'right' |
### Eventos
| Nombre | Descripcion | Parametros |
| Nombre | Descripción | Parámetros |
| ------ | ---------------------------------------- | ---------------------------------------- |
| change | se lanza cuando los elementos cambian en la lista de la derecha | array con las claves de los elementos de la lista de la derecha |
| left-check-change | se dispara cuando el usuario final cambia el estado verificado de cualquier elemento de datos en la lista izquierda | array clave de ítems actualmente verificados, array clave de ítems cuyo estado verificado ha cambiado |

View File

@ -150,9 +150,9 @@ Utilice la propiedad `list-type` para cambiar el estilo a un listado de archivos
```
:::
### Custom file thumbnail
### Personalizar el template thumbnail
Use `scoped-slot` to change default thumbnail template.
Use el `scoped-slot` para cambiar el template por defecto del thumbnail.
:::demo
```html
@ -359,20 +359,20 @@ Puede arrastrar el archivo dentro de un área en especifico para cargar el archi
| thumbnail-mode | especifica si se mostrará la miniatura | boolean | — | false |
| file-list | archivos cargados por defecto, por ejemplo, [{name: 'food.jpg', url: 'https://xxx.cdn.com/xxx.jpg'}] | array | — | [] |
| list-type | tipo de lista de archivos | string | text/picture/picture-card | text |
| auto-upload | se especifica si se autocargan archivos | boolean | — | true |
| auto-upload | se especifica si se auto cargan archivos | boolean | — | true |
| http-request | sobrescribe el comportamiento por defecto de xhr, permitiendo implementar tu propia petición de carga de archivos | function | — | — |
| disabled | especifica si se deshabilita la carga de archivos | boolean | — | false |
| limit | número máximo de cargas permitidas | number | — | — |
| on-exceed | _hook_ lanzado cuando el límite ha sido excedido | function(files, fileList) | — | - |
### Slot
| Nombre | Descripcion |
| Nombre | Descripción |
| ------------ | ---------------------------------------- |
| trigger | contenido que desencadena el diálogo de archivo |
| tip | contenido de los tips |
### Métodos
| Nombre del método | Descripción | Parametros |
| Nombre del método | Descripción | Parámetros |
| ----------------- | ---------------------------------------- | ------------------------- |
| clearFiles | limpia la lista de archivos cargados (este método no esta soportado en el _hook_ `before-upload`) | — |
| abort | cancela la petición de carga | file: fileList's item |

View File

@ -46,7 +46,7 @@ DateTimePicker est dérivé de DatePicker et TimePicker. Pour plus d'information
return {
pickerOptions: {
shortcuts: [{
text: 'Aujourdh\'ui',
text: 'Aujourd\'hui',
onClick(picker) {
picker.$emit('pick', new Date());
}

View File

@ -0,0 +1,61 @@
## Empty
Placeholder hints for empty states.
### Basic usage
:::demo
```html
<el-empty description="description"></el-empty>
```
:::
### Custom image
Use `image` prop to set image URL.
:::demo
```html
<el-empty image="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"></el-empty>
```
:::
### Image size
Use `image-size` prop to control image size.
:::demo
```html
<el-empty :image-size="200"></el-empty>
```
:::
### Bottom content
Use the default slot to insert content at the bottom.
:::demo
```html
<el-empty>
<el-button type="primary">Button</el-button>
</el-empty>
```
:::
### Empty Attributes
| Attribute | Description | Type | Acceptable Value | Default Value |
|------------- |---------------- |---------------- |---------------------- |-------- |
| image | image URL | string | — | — |
| image-size | image size (width) | number | — | — |
| description | description | string | — | — |
### Empty Slots
| Name | Description |
|------|--------|
| default | Custom bottom content |
| image | Custom image |
| description | Custom description |

View File

@ -174,7 +174,7 @@ Utilisez l'attribut `size` pour régler la taille avec `medium`, `small` ou `min
| min | La valeur minimale autorisée. | number | — | `-Infinity` |
| max | La valeur maximale autorisée. | number | — | `Infinity` |
| step | Le pas pour l'incrémentation. | number | — | 1 |
| step-strictly | Si la valeur ne peut être qu'un multiple du pas. | number | — | false |
| step-strictly | Si la valeur ne peut être qu'un multiple du pas. | boolean | — | false |
| precision | La précision de la valeur. | number | — | — |
| size | La taille du composant. | string | large/small| — |
| disabled| Si le composant est désactivé. | boolean | — | false |

View File

@ -660,6 +660,7 @@ export default {
| Nom | Description | Paramètres |
|----| ----| ----|
| select | Se déclenche quand une suggestion est cliquée. | La suggestion sélectionnée. |
| change | Se déclenche quand la valeur change. | (value: string \ number) |
### Méthodes de l'autocomplétion

View File

@ -338,7 +338,7 @@ Ces classes sont:
| gutter | Espacement de la grille. | number | — | 0 |
| type | Mode de mise en page. Vous pouvez utiliser flex, qui fonctionne sur les navigateurs modernes. | string | — | — |
| justify | Alignement horizontal pour le mise en page flex. | string | start/end/center/space-around/space-between | start |
| align | Alignement vertical pour la mise en page flex. | string | top/middle/bottom | top |
| align | Alignement vertical pour la mise en page flex. | string | top/middle/bottom | |
| tag | Élément de tag personnalisé. | string | * | div |
### Attributs des colonnes

View File

@ -24,10 +24,10 @@ You can customise Popconfirm like:
```html
<template>
<el-popconfirm
confirmButtonText='OK'
cancelButtonText='No, Thanks'
confirm-button-text='OK'
cancel-button-text='No, Thanks'
icon="el-icon-info"
iconColor="red"
icon-color="red"
title="Are you sure to delete this?"
>
<el-button slot="reference">Delete</el-button>
@ -40,15 +40,21 @@ You can customise Popconfirm like:
| Attribute | Description | Type | Accepted Values | Default |
|--------------------|----------------------------------------------------------|-------------------|-------------|--------|
| title | Title | String | — | — |
| confirmButtonText | Confirm button text | String | — | — |
| cancelButtonText | Cancel button text | String | — | — |
| confirmButtonType | Confirm button type | String | — | Primary |
| cancelButtonType | Cancel button type | String | — | Text |
| confirm-button-text | Confirm button text | String | — | — |
| cancel-button-text | Cancel button text | String | — | — |
| confirm-button-type | Confirm button type | String | — | Primary |
| cancel-button-type | Cancel button type | String | — | Text |
| icon | Icon | String | — | el-icon-question |
| iconColor | Icon color | String | — | #f90 |
| hideIcon | is hide Icon | Boolean | — | false |
| icon-color | Icon color | String | — | #f90 |
| hide-icon | is hide Icon | Boolean | — | false |
### Slot
| Name | Description |
|--- | ---|
| reference | HTML element that triggers Popconfirm |
### Events
| Event Name | Description | Parameters |
|---------|--------|---------|
| confirm | triggers when click confirm button | — |
| cancel | triggers when click cancel button | — |

View File

@ -4,7 +4,7 @@ Progress est utilisé pour afficher la progression d'une opération et informer
### Barre de progression linéaire
:::demo Utilisez l'attribut `percentage` pour indiquer le pourcentage. Cet attribut est **requis** et doit être compris entre 0 et 100. You can custom text format by setting `format`.
:::demo Utilisez l'attribut `percentage` pour indiquer le pourcentage. Cet attribut est **requis** et doit être compris entre 0 et 100. Vous pouvez personnaliser le format du texte en définissant le `format`.
```html
<el-progress :percentage="50"></el-progress>
<el-progress :percentage="100" :format="format"></el-progress>
@ -171,4 +171,5 @@ Vous pouvez également spécifier l'attribut `type` de `dashboard` pour utiliser
| color | La couleur de fon de la barre. Écrase `status`. | string/function/array | — | '' |
| width | La largeur du canvas dans le cas d'une barre circulaire. | number | — | 126 |
| show-text | Si le pourcentage doit être affiché. | boolean | — | true |
| stroke-linecap | circle/dashboard type shape at the end path | string | butt/round/square | round |
| stroke-linecap | circle/dashboard type shape at the end path | string | butt/round/square | round |
| format | Vous pouvez personnaliser le format du texte en définissant le format | function(percentage) | — | — |

View File

@ -0,0 +1,315 @@
## Skeleton
When loading data, and you need a rich experience for visual and interactions for your end users, you can choose `skeleton`.
### Basic usage
The basic skeleton.
:::demo
```html
<template>
<el-skeleton />
</template>
```
:::
### Configurable Rows
You can configure the row numbers yourself, we are rendering a title row with 33% width of the others.
:::demo
```html
<el-skeleton :rows="6" />
```
:::
### Animation
We have provided a switch flag indicating whether showing the loading animation, called `animated` when this is true, all children of `el-skeleton` will show animation
:::demo
```html
<el-skeleton :rows="6" animated />
```
:::
### Customized Template
ElementPlus only provides the most common template, sometimes that could be a problem, so you have a slot named `template` to do that work.
Also we have provided different types skeleton unit that you can choose, for more detailed info, please scroll down to the bottom of this page to see the API description. Also, when building your own customized skeleton structure, you should be structuring them as closer to the real DOM as possible, which avoiding the DOM bouncing caused by the height difference.
:::demo
```html
<template>
<el-skeleton style="width: 240px">
<template slot="template">
<el-skeleton-item variant="image" style="width: 240px; height: 240px;" />
<div style="padding: 14px;">
<el-skeleton-item variant="p" style="width: 50%" />
<div
style="display: flex; align-items: center; justify-items: space-between;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
</el-skeleton>
</template>
```
:::
### Loading state
When `Loading` ends, we always need to show the real UI with data to our end users. with the attribtue `loading` we can control whether showing the DOM. You can also use slot `default` to structure the real DOM element.
:::demo
```html
<template>
<div style="width: 240px">
<p>
<label style="margin-right: 16px;">Switch Loading</label>
<el-switch v-model="loading" />
</p>
<el-skeleton style="width: 240px" :loading="loading" animated>
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 240px; height: 240px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card :body-style="{ padding: '0px', marginBottom: '1px' }">
<img
src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"
class="image"
/>
<div style="padding: 14px;">
<span>Delicious hamberger</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">Operation button</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data () {
return {
loading: true,
currentDate: '2021-06-01'
}
},
}
</script>
```
:::
### Rendering a list of data
Most of the time, skeleton is used as indicators of rendering a list of data which haven't been fetched from server yet, then we need to create a list of skeleton out of no where to make it look like it is loading, with `count` attribute, you can control how many these templates you need to render to the browser.
:::tip
We do not recommend rendering lots of fake UI to the browser, it will still cause the performance issue, it also costs longer to destroy the skeleton. Keep `count` as small as it can be to make better user experience.
:::
:::demo
```html
<template>
<div style="width: 400px">
<p>
<el-button @click="setLoading">Click me to reload</el-button>
</p>
<el-skeleton style="width:400px" :loading="loading" animated :count="3">
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 400px; height: 267px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card
:body-style="{ padding: '0px', marginBottom: '1px' }"
v-for="item in lists"
:key="item.name"
>
<img :src="item.imgUrl" class="image multi-content" />
<div style="padding: 14px;">
<span>Delicious hamberger</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">Operation button</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data() {
return {
loading: true,
currentDate: '2021-06-01',
lists: [],
}
},
mounted() {
this.loading = false
this.lists = [
{
imgUrl:
'https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg',
name: 'Deer',
},
{
imgUrl:
'https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg',
name: 'Horse',
},
{
imgUrl:
'https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg',
name: 'Mountain Lion',
},
]
},
methods: {
setLoading() {
this.loading = true
setTimeout(() => (this.loading = false), 2000)
},
},
}
</script>
```
:::
### Avoiding rendering bouncing.
Sometimes API responds very quickly, when that happens, the skeleton just gets rendered to the DOM then it needs to switch back to real DOM, that causes the sudden flashy. To avoid such thing, you can use the `throttle` attribute.
:::demo
```html
<template>
<div style="width: 240px">
<p>
<label style="margin-right: 16px;">Switch Loading</label>
<el-switch v-model="loading" />
</p>
<el-skeleton
style="width: 240px"
:loading="loading"
animated
:throttle="500"
>
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 240px; height: 240px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card :body-style="{ padding: '0px', marginBottom: '1px'}">
<img
src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"
class="image"
/>
<div style="padding: 14px;">
<span>Delicious hamberger</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">operation button</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
currentDate: '2021-06-01'
}
},
}
</script>
```
:::
### Skeleton Attributes
| Attribute | Description | Type | Acceptable Value | Default |
| ------- | ---------------- | ------- | ------------ | ------ |
| animated | whether showing the animation | boolean | true / false | false |
| count | how many fake items to render to the DOM | number | integer | 1 |
| loading | whether showing the skeleton | boolean | true / false | true |
| rows | numbers of the row, only useful when no template slot were given | number | integer | 4 |
| throttle | Rendering delay in millseconds | number | integer | 0 |
### Skeleton Item Attributes
| Attribute | Description | Type | Acceptable Value | Default |
| ------- | ---------------- | ------- | ------------ | ------ |
| variant | The current rendering skeleton type | Enum(string) | p / text / h1 / h3 / text / caption / button / image / circle / rect | text |
### Skeleton Slots
| Name | Description |
| ---- | ----------- |
| default | Real rendering DOM |
| template | Custom rendering skeleton template |

View File

@ -6,7 +6,7 @@ Permet de guider l'utilisateur dans l'accomplissement de toutes les taches d'un
Voici une barre d'étapes basique.
:::demo Réglez l'attribut `active` avec une variable `Number`, qui indique l'index des étapes et commence à 0. L'attribut `space` permet de déterminer si l'espace entre les étapes doit être fixe à l'aide d'un `Boolean`. L'unité de `space` est `px`. Si cet attribut est absent, la barre sera responsive. L'attribut `finish-status` change le statut d'accomplissement des étapes.
:::demo Réglez l'attribut `active` avec une variable `Number`, qui indique l'index des étapes et commence à 0. L'attribut `space` permet de déterminer si l'espace entre les étapes doit être fixe à l'aide d'un `Number`. L'unité de `space` est `px`. Si cet attribut est absent, la barre sera responsive. L'attribut `finish-status` change le statut d'accomplissement des étapes.
```html
<el-steps :active="active" finish-status="success">

View File

@ -110,7 +110,7 @@
|---------- |-------- |---------- |------------- |-------- |
| value / v-model | 绑定值 | string | — | — |
| disabled | 是否禁用 | boolean | — | false |
| size | 尺寸 | string | — | medium / small / mini |
| size | 尺寸 | string | medium / small / mini | — |
| show-alpha | 是否支持透明度选择 | boolean | — | false |
| color-format | 写入 v-model 的颜色的格式 | string | hsl / hsv / hex / rgb | hexshow-alpha 为 false/ rgbshow-alpha 为 true |
| popper-class | ColorPicker 下拉框的类名 | string | — | — |
@ -120,4 +120,4 @@
| 事件名称 | 说明 | 回调参数 |
|---------- |-------- |---------- |
| change | 当绑定值变化时触发 | 当前值 |
| active-change | 面板中当前显示的颜色发生改变时触发 | 当前显示的颜色值 |
| active-change | 面板中当前显示的颜色发生改变时触发 | 当前显示的颜色值 |

View File

@ -0,0 +1,61 @@
## Empty 空状态
空状态时的占位提示。
### 基础用法
:::demo
```html
<el-empty description="描述文字"></el-empty>
```
:::
### 自定义图片
通过设置 `image` 属性传入图片 URL。
:::demo
```html
<el-empty image="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"></el-empty>
```
:::
### 图片尺寸
通过设置 `image-size` 属性来控制图片大小。
:::demo
```html
<el-empty :image-size="200"></el-empty>
```
:::
### 底部内容
使用默认插槽可在底部插入内容。
:::demo
```html
<el-empty>
<el-button type="primary">按钮</el-button>
</el-empty>
```
:::
### Empty Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|------------- |---------------- |---------------- |---------------------- |-------- |
| image | 图片地址 | string | — | — |
| image-size | 图片大小(宽度) | number | — | — |
| description | 文本描述 | string | — | — |
### Empty Slots
| Name | 说明 |
|------|--------|
| default | 自定义底部内容 |
| image | 自定义图片 |
| description | 自定义描述文字 |

View File

@ -590,7 +590,7 @@ W3C 标准中有如下[规定](https://www.w3.org/MarkUp/html-spec/html-spec_8.h
| label-position | 表单域标签的位置,如果值为 left 或者 right 时,则需要设置 `label-width` | string | right/left/top | right |
| label-width | 表单域标签的宽度,例如 '50px'。作为 Form 直接子元素的 form-item 会继承该值。支持 `auto`。 | string | — | — |
| label-suffix | 表单域标签的后缀 | string | — | — |
| hide-required-asterisk | 是否显示必填字段的标签旁边的红色星号 | boolean | — | false |
| hide-required-asterisk | 是否隐藏必填字段的标签旁边的红色星号 | boolean | — | false |
| show-message | 是否显示校验错误信息 | boolean | — | true |
| inline-message | 是否以行内形式展示校验信息 | boolean | — | false |
| status-icon | 是否在输入框中显示校验结果反馈图标 | boolean | — | false |

View File

@ -172,7 +172,7 @@
| min | 设置计数器允许的最小值 | number | — | -Infinity |
| max | 设置计数器允许的最大值 | number | — | Infinity |
| step | 计数器步长 | number | — | 1 |
| step-strictly | 是否只能输入 step 的倍数 | number | — | false |
| step-strictly | 是否只能输入 step 的倍数 | boolean | — | false |
| precision| 数值精度 | number | — | — |
| size | 计数器尺寸 | string | large, small | — |
| disabled | 是否禁用计数器 | boolean | — | false |

View File

@ -769,6 +769,7 @@ export default {
| 事件名称 | 说明 | 回调参数 |
|---------|--------|---------|
| select | 点击选中建议项时触发 | 选中建议项 |
| change | 在 Input 值改变时触发 | (value: string \| number) |
### Autocomplete Methods
| 方法名 | 说明 | 参数 |

View File

@ -336,7 +336,7 @@ import 'element-ui/lib/theme-chalk/display.css';
| gutter | 栅格间隔 | number | — | 0 |
| type | 布局模式,可选 flex现代浏览器下有效 | string | — | — |
| justify | flex 布局下的水平排列方式 | string | start/end/center/space-around/space-between | start |
| align | flex 布局下的垂直排列方式 | string | top/middle/bottom | top |
| align | flex 布局下的垂直排列方式 | string | top/middle/bottom | |
| tag | 自定义元素标签 | string | * | div |
### Col Attributes

View File

@ -24,10 +24,10 @@ Popconfirm 的属性与 Popover 很类似,因此对于重复属性,请参考
```html
<template>
<el-popconfirm
confirmButtonText='好的'
cancelButtonText='不用了'
confirm-button-text='好的'
cancel-button-text='不用了'
icon="el-icon-info"
iconColor="red"
icon-color="red"
title="这是一段内容确定删除吗?"
>
<el-button slot="reference">删除</el-button>
@ -40,15 +40,21 @@ Popconfirm 的属性与 Popover 很类似,因此对于重复属性,请参考
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|--------------------|----------------------------------------------------------|-------------------|-------------|--------|
| title | 标题 | String | — | — |
| confirmButtonText | 确认按钮文字 | String | — | — |
| cancelButtonText | 取消按钮文字 | String | — | — |
| confirmButtonType | 确认按钮类型 | String | — | Primary |
| cancelButtonType | 取消按钮类型 | String | — | Text |
| confirm-button-text | 确认按钮文字 | String | — | — |
| cancel-button-text | 取消按钮文字 | String | — | — |
| confirm-button-type | 确认按钮类型 | String | — | Primary |
| cancel-button-type | 取消按钮类型 | String | — | Text |
| icon | Icon | String | — | el-icon-question |
| iconColor | Icon 颜色 | String | — | #f90 |
| hideIcon | 是否隐藏 Icon | Boolean | — | false |
| icon-color | Icon 颜色 | String | — | #f90 |
| hide-icon | 是否隐藏 Icon | Boolean | — | false |
### Slot
| 参数 | 说明 |
|--- | ---|
| reference | 触发 Popconfirm 显示的 HTML 元素 |
### Events
| 事件名称 | 说明 | 回调参数 |
|---------|--------|---------|
| confirm | 点击确认按钮时触发 | — |
| cancel | 点击取消按钮时触发 | — |

View File

@ -174,4 +174,5 @@ Progress 组件可通过 `type` 属性来指定使用环形进度条,在环形
| color | 进度条背景色(会覆盖 status 状态颜色) | string/function/array | — | '' |
| width | 环形进度条画布宽度(只在 type 为 circle 或 dashboard 时可用) | number | | 126 |
| show-text | 是否显示进度条文字内容 | boolean | — | true |
| stroke-linecap | circle/dashboard 类型路径两端的形状 | string | butt/round/square | round |
| stroke-linecap | circle/dashboard 类型路径两端的形状 | string | butt/round/square | round |
| format | 指定进度条文字内容 | function(percentage) | — | — |

View File

@ -0,0 +1,316 @@
## Skeleton 骨架屏
在需要等待加载内容的位置设置一个骨架屏,某些场景下比 Loading 的视觉效果更好。
### 基础用法
基础的骨架效果。
:::demo
```html
<template>
<el-skeleton />
</template>
```
:::
### 更多参数
可以配置骨架屏段落数量,以便更接近真实渲染效果。首行会被渲染一个长度 33% 的段首。
:::demo
```html
<el-skeleton :rows="6" />
```
:::
### 动画效果
显示动画效果。
:::demo
```html
<el-skeleton :rows="6" animated />
```
:::
### 自定义样式
ElementPlus 提供的排版模式有时候并不满足要求,当您想要用自己定义的模板时,可以通过一个具名 Slot 来自己设定模板。
我们提供了不同的模板单元可供使用,具体可选值请看 API 详细描述。 建议在描述模板的时候,尽量靠近真实的 DOM 结构,这样可以避免 DOM 高度差距引起的抖动。
:::demo
```html
<template>
<el-skeleton style="width: 240px">
<template slot="template">
<el-skeleton-item variant="image" style="width: 240px; height: 240px;" />
<div style="padding: 14px;">
<el-skeleton-item variant="p" style="width: 50%" />
<div
style="display: flex; align-items: center; justify-items: space-between;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
</el-skeleton>
</template>
```
:::
### Loading 状态
当 Loading 结束之后,我们往往需要显示真实的 UI可以通过 `loading` 的值来控制是否显示真实的 DOM。然后通过
具名 Slot 来设置当 loading 结束之后需要展示的 UI。
:::demo
```html
<template>
<div style="width: 240px">
<p>
<label style="margin-right: 16px;">切换 Loading</label>
<el-switch v-model="loading" />
</p>
<el-skeleton style="width: 240px" :loading="loading" animated>
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 240px; height: 240px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card :body-style="{ padding: '0px', marginBottom: '1px' }">
<img
src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"
class="image"
/>
<div style="padding: 14px;">
<span>好吃的汉堡</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">操作按钮</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data () {
return {
loading: true,
currentDate: '2021-06-01'
}
},
}
</script>
```
:::
### 渲染多条数据
大多时候, 骨架屏都被用来渲染列表, 当我们需要在从服务器获取数据的时候来渲染一个假的 UI。利用 `count` 这个属性就能控制渲染多少条假的数据在页面上
:::tip
请注意, 请尽可能的将 `count` 的大小保持在最小状态, 即使是假的 UI, DOM 元素多了之后, 照样会引起性能问题, 并且在骨架屏销毁时所消耗的时间也会更长(相对的)。
:::
:::demo
```html
<template>
<div style="width: 400px">
<p>
<el-button @click="setLoading">点我重新加载</el-button>
</p>
<el-skeleton style="width:400px" :loading="loading" animated :count="3">
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 400px; height: 267px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card
:body-style="{ padding: '0px', marginBottom: '1px' }"
v-for="item in lists"
:key="item.name"
>
<img :src="item.imgUrl" class="image multi-content" />
<div style="padding: 14px;">
<span>{{ item.name }}</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">操作按钮</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data() {
return {
loading: true,
currentDate: '2021-06-01',
lists: [],
}
},
mounted() {
this.loading = false
this.lists = [
{
imgUrl:
'https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg',
name: '鹿',
},
{
imgUrl:
'https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg',
name: '马',
},
{
imgUrl:
'https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg',
name: '山狮',
},
]
},
methods: {
setLoading() {
this.loading = true
setTimeout(() => (this.loading = false), 2000)
},
},
}
</script>
```
:::
### 防止渲染抖动
有的时候API 的请求回来的特别快,往往骨架占位刚刚被渲染,真实的数据就已经回来了,用户的界面会突然一闪,此时为了避免这种情况,就需要通过 `throttle` 属性来避免这个问题。
:::demo
```html
<template>
<div style="width: 240px">
<p>
<label style="margin-right: 16px;">切换 Loading</label>
<el-switch v-model="loading" />
</p>
<el-skeleton
style="width: 240px"
:loading="loading"
animated
:throttle="500"
>
<template slot="template">
<el-skeleton-item
variant="image"
style="width: 240px; height: 240px;"
/>
<div style="padding: 14px;">
<el-skeleton-item variant="h3" style="width: 50%;" />
<div
style="display: flex; align-items: center; justify-items: space-between; margin-top: 16px; height: 16px;"
>
<el-skeleton-item variant="text" style="margin-right: 16px;" />
<el-skeleton-item variant="text" style="width: 30%;" />
</div>
</div>
</template>
<template>
<el-card :body-style="{ padding: '0px', marginBottom: '1px'}">
<img
src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png"
class="image"
/>
<div style="padding: 14px;">
<span>好吃的汉堡</span>
<div class="bottom card-header">
<span class="time">{{ currentDate }}</span>
<el-button type="text" class="button">操作按钮</el-button>
</div>
</div>
</el-card>
</template>
</el-skeleton>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
currentDate: '2021-06-01'
}
},
}
</script>
```
:::
### Skeleton Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
| -------- | ------------------------------------------- | ------- | ------------ | ------ |
| animated | 是否使用动画 | boolean | true / false | false |
| count | 渲染多少个 template, 建议使用尽可能小的数字 | number | integer | 1 |
| loading | 是否显示 skeleton 骨架屏 | boolean | true / false | true |
| rows | 骨架屏段落数量 | number | 正整数 | 4 |
| throttle | 延迟占位 DOM 渲染的时间, 单位是毫秒 | number | 正整数 | 0 |
### Skeleton Item Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
| ------- | ------------------------ | ------------ | -------------------------------------------------------------------- | ------ |
| variant | 当前显示的占位元素的样式 | Enum(string) | p / text / h1 / h3 / text / caption / button / image / circle / rect | text |
### Skeleton Slots
| name | description |
| -------- | -------------------- |
| default | 用来展示真实 UI |
| template | 用来展示自定义占位符 |

View File

@ -5,7 +5,7 @@
简单的步骤条。
:::demo 设置`active`属性,接受一个`Number`,表明步骤的 index从 0 开始。需要定宽的步骤条时,设置`space`属性即可,它接受`Boolean`,单位为`px`,如果不设置,则为自适应。设置`finish-status`属性可以改变已经完成的步骤的状态。
:::demo 设置`active`属性,接受一个`Number`,表明步骤的 index从 0 开始。需要定宽的步骤条时,设置`space`属性即可,它接受`Number`,单位为`px`,如果不设置,则为自适应。设置`finish-status`属性可以改变已经完成的步骤的状态。
```html
<el-steps :active="active" finish-status="success">
<el-step title="步骤 1"></el-step>

View File

@ -176,6 +176,14 @@
{
"path": "/avatar",
"title": "Avatar 头像"
},
{
"path": "/skeleton",
"title": "Skeleton 骨架屏"
},
{
"path": "/empty",
"title": "Empty 空状态"
}
]
},
@ -470,6 +478,14 @@
{
"path": "/badge",
"title": "Badge"
},
{
"path": "/skeleton",
"title": "Skeleton"
},
{
"path": "/empty",
"title": "Empty"
}
]
},
@ -768,6 +784,14 @@
{
"path": "/badge",
"title": "Badge"
},
{
"path": "/skeleton",
"title": "Skeleton"
},
{
"path": "/empty",
"title": "Empty"
}
]
},
@ -1066,6 +1090,14 @@
{
"path": "/badge",
"title": "Badge"
},
{
"path": "/skeleton",
"title": "Skeleton"
},
{
"path": "/empty",
"title": "Empty"
}
]
},

View File

@ -179,7 +179,7 @@
}
}
fragments = fragments.replace(/#(\d+)/g, '<a href="https://github.com/ElemeFE/element/issues/$1" target="_blank">#$1</a>');
fragments = fragments.replace(/@(\w+)/g, '<a href="https://github.com/$1" target="_blank">@$1</a>');
fragments = fragments.replace(/@([\w-]+)/g, '<a href="https://github.com/$1" target="_blank">@$1</a>');
this.$refs.timeline.innerHTML = `${fragments}</li>`;
changeLog.$el.remove();

View File

@ -3,7 +3,7 @@
text-align: center;
}
.banner-desc {
padding-top: 20px;
padding-top: 50px;
h1 {
font-size: <%= titleSize >px;
@ -298,22 +298,6 @@
<img src="~examples/assets/images/theme-index-red.png" alt="">
</div>
</div>
<div class="sponsors">
<a class="sponsor" href="https://tipe.io/?ref=element" target="_blank" v-show="lang !== 'zh-CN'">
<img width="35px" src="~examples/assets/images/tipe.svg" alt="tipe.io">
<div>
<p>Sponsored by Tipe.io</p>
<p>Next Generation API-first CMS</p>
</div>
</a>
<a class="sponsor" href="https://www.duohui.cn/?utm_source=element&utm_medium=web&utm_campaign=element-index" target="_blank">
<img width="45px" src="~examples/assets/images/duohui.svg" alt="duohui">
<div>
<p>Sponsored by 多会</p>
<p>炫酷的新一代活动票务系统</p>
</div>
</a>
</div>
<div class="cards">
<ul class="container">
<li>
@ -366,40 +350,10 @@
</li>
</ul>
</div>
<div class="theme-intro-a" v-if="showIntroA" @click="hideIntroA">
<div class="intro-banner">
<img src="~examples/assets/images/theme-intro.png" alt="">
<div class="intro-text">
<p><%= 12 ></p>
</div>
</div>
<div class="mask"></div>
</div>
<div
class="theme-intro-b"
@click="hideIntroB"
v-if="showIntroB"
>
<div class="intro-banner"
:style="{
left: introBX + 'px',
top: introBY + 'px'
}"
>
<img src="~examples/assets/images/intro-theme-b.png" alt="">
<div class="title">
<div>
<p><%= 13 ></p>
<p><%= 14 ></p>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import throttle from 'throttle-debounce/throttle';
import { addClass, removeClass } from 'element-ui/src/utils/dom';
export default {
created() {
@ -416,28 +370,12 @@
if (calHeight < 0) calHeight = 0;
if (calHeight > eleHeight) calHeight = eleHeight;
this.mainImgOffset = calHeight;
},
hideIntroB() {
removeClass(document.body, 'el-loading-parent--hidden');
localStorage.setItem('KNOW_THEME', 'true');
this.showIntroB = false;
},
hideIntroA() {
const themeTab = document.querySelector('.nav-item-theme');
this.introBX = themeTab.offsetLeft + (themeTab.clientWidth * 0.5) - (300 / 2);
this.introBY = themeTab.offsetTop + 40;
this.showIntroA = false;
this.showIntroB = true;
}
},
data() {
return {
lang: this.$route.meta.lang,
mainImgOffset: 0,
showIntroA: false,
showIntroB: false,
introBY: 0,
introBX: 0
mainImgOffset: 0
};
},
beforeDestroy() {
@ -445,9 +383,6 @@
},
mounted() {
window.addEventListener('scroll', this.throttledHandleScroll);
if (localStorage.getItem('KNOW_THEME')) return;
this.showIntroA = true;
addClass(document.body, 'el-loading-parent--hidden');
}
};
</script>

View File

@ -144,7 +144,7 @@
<p><%= 4 ></p>
<a
onclick="ga('send', 'event', 'ResourceDownload', 'Download', 'Axure');"
href="https://github.com/ElementUI/Resources/raw/master/Element_Components_v2.0.0.rplib"
href="https://github.com/ElementUI/Resources/raw/master/Element_Components_v2.1.0.rplib"
><%= 5 ></a>
</div>
</li>

View File

@ -1 +1 @@
{"1.4.13":"1.4","2.0.11":"2.0","2.1.0":"2.1","2.2.2":"2.2","2.3.9":"2.3","2.4.11":"2.4","2.5.4":"2.5","2.6.3":"2.6","2.7.2":"2.7","2.8.2":"2.8","2.9.2":"2.9","2.10.1":"2.10","2.11.1":"2.11","2.12.0":"2.12","2.13.0":"2.13"}
{"1.4.13":"1.4","2.0.11":"2.0","2.1.0":"2.1","2.2.2":"2.2","2.3.9":"2.3","2.4.11":"2.4","2.5.4":"2.5","2.6.3":"2.6","2.7.2":"2.7","2.8.2":"2.8","2.9.2":"2.9","2.10.1":"2.10","2.11.1":"2.11","2.12.0":"2.12","2.13.2":"2.13","2.14.1":"2.14","2.15.2":"2.15"}

View File

@ -1,6 +1,6 @@
{
"name": "element-ui",
"version": "2.13.0",
"version": "2.15.2",
"description": "A Component Library for Vue.js.",
"main": "lib/element-ui.common.js",
"files": [
@ -25,7 +25,7 @@
"dist": "npm run clean && npm run build:file && npm run lint && webpack --config build/webpack.conf.js && webpack --config build/webpack.common.js && webpack --config build/webpack.component.js && npm run build:utils && npm run build:umd && npm run build:theme",
"i18n": "node build/bin/i18n.js",
"lint": "eslint src/**/* test/**/* packages/**/* build/**/* --quiet",
"pub": "npm run bootstrap && sh build/git-release.sh && sh build/release.sh && node build/bin/gen-indices.js && sh build/deploy-faas.sh",
"pub": "npm run bootstrap && sh build/git-release.sh && sh build/release.sh && node build/bin/gen-indices.js",
"test": "npm run lint && npm run build:theme && cross-env CI_ENV=/dev/ BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"test:watch": "npm run build:theme && cross-env BABEL_ENV=test karma start test/unit/karma.conf.js"
},

View File

@ -60,7 +60,7 @@
mounted() {
this.$parent.popperElm = this.popperElm = this.$el;
this.referenceElm = this.$parent.$refs.input.$refs.input;
this.referenceElm = this.$parent.$refs.input.$refs.input || this.$parent.$refs.input.$refs.textarea;
this.referenceList = this.$el.querySelector('.el-autocomplete-suggestion__list');
this.referenceList.setAttribute('role', 'listbox');
this.referenceList.setAttribute('id', this.id);

View File

@ -10,7 +10,8 @@
<el-input
ref="input"
v-bind="[$props, $attrs]"
@input="handleChange"
@input="handleInput"
@change="handleChange"
@focus="handleFocus"
@blur="handleBlur"
@clear="handleClear"
@ -186,7 +187,7 @@
}
});
},
handleChange(value) {
handleInput(value) {
this.$emit('input', value);
this.suggestionDisabled = false;
if (!this.triggerOnFocus && !value) {
@ -196,6 +197,9 @@
}
this.debouncedGetData(value);
},
handleChange(value) {
this.$emit('change', value);
},
handleFocus(event) {
this.activated = true;
this.$emit('focus', event);

View File

@ -20,12 +20,6 @@ export default {
inject: ['elCalendar'],
data() {
return {
WEEK_DAYS: getI18nSettings().dayNames
};
},
methods: {
toNestedArr(days) {
return rangeArr(days.length / 7).map((_, index) => {
@ -83,6 +77,9 @@ export default {
},
computed: {
WEEK_DAYS() {
return getI18nSettings().dayNames;
},
prevMonthDatePrefix() {
const temp = new Date(this.date.getTime());
temp.setDate(0);
@ -127,7 +124,8 @@ export default {
let firstDay = getFirstDayOfMonth(date);
firstDay = firstDay === 0 ? 7 : firstDay;
const firstDayOfWeek = typeof this.firstDayOfWeek === 'number' ? this.firstDayOfWeek : 1;
const prevMonthDays = getPrevMonthLastDays(date, firstDay - firstDayOfWeek).map(day => ({
const offset = (7 + firstDay - firstDayOfWeek) % 7;
const prevMonthDays = getPrevMonthLastDays(date, offset).map(day => ({
text: day,
type: 'prev'
}));

View File

@ -88,7 +88,7 @@
}
if (parentType === 'card') {
if (parentDirection === 'vertical') {
console.warn('[Element Warn][Carousel]vertical directionis not supported in card mode');
console.warn('[Element Warn][Carousel]vertical direction is not supported in card mode');
}
this.inStage = Math.round(Math.abs(index - activeIndex)) <= 1;
this.active = index === activeIndex;
@ -98,6 +98,7 @@
this.active = index === activeIndex;
const isVertical = parentDirection === 'vertical';
this.translate = this.calcTranslate(index, activeIndex, isVertical);
this.scale = 1;
}
this.ready = true;
},

View File

@ -159,6 +159,11 @@ export default {
loop() {
this.setActiveItem(this.activeIndex);
},
interval() {
this.pauseTimer();
this.startTimer();
}
},

Some files were not shown because too many files have changed in this diff Show More