当前位置:   article > 正文

ElementUI学习笔记,已完结!!!_element ui笔记

element ui笔记

ElementUI

一.介绍ElementUI

ElementUI中文网 :https://element.eleme.cn/#/zh-CN

Element-Ul是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是Mint UI 。

1.设计原则

Consistency

  • 与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;

  • 在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。

反馈 Feedback

  • 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;

  • 页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。

效率 Efficiency

  • 简化流程:设计简洁直观的操作流程;

  • 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;

  • 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。

可控 Controllability

  • 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;

  • 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。

2.ElementUI的优缺点

优点:

(1).一致性 Consistency

  • 与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;

  • 在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。

(2).反馈 Feedback

  • 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;

  • 页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。

(3).效率 Efficiency

  • 简化流程:设计简洁直观的操作流程;

  • 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;

  • 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。

(4).可控 Controllability

  • 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;

  • 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。

缺点:

(1).<el-input>无法完全兼容<input> 场景:<el-input>和vuejs结合起来时,无法实现输入框中的动态更新 解决方法:v-model要和<input/>搭配起来才能实现实时更新 官方解释原因:For languages that require an IME (Chinese, Japanese, Korean etc.), you’ll notice that v-model doesn’t get updated during IME composition. If you want to cater for these updates as well, use input event instead.是说中文日语等需要IME这种跟语言解释方法相关的输入框,不能实现vuejs的v-model属性的实时更新(即它的值改变了,但不会马上呈现在页面上)

(2).<el-button>对disabled属性的不支持 应用场景:有一个输入框,在框内没有内容时禁用旁边的删除按钮 方法:disabled属性 js中写:document.getElementById("ididid").disabled = true/false 但是,如果是<el-button>的话,虽然触发了js中的代码,但是它的disabled属性不会显示在页面上,应该是它对disabled属性支持的不好。 所以只能使用<button>而不是<el-button>来使用disabled属性

二.入门

1.安装:

CDN

目前可以通过 unpkg.com/element-ui 获取到最新版本的资源,在页面上引入 js 和 css 文件即可开始使用。

  1. <!-- 引入样式 -->
  2. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  3. <!-- 引入组件库 -->
  4. <script src="https://unpkg.com/element-ui/lib/index.js"></script>

官方建议使用 CDN 引入 Element 的用户在链接地址上锁定版本,以免将来 Element 升级时受到非兼容性更新的影响。锁定版本的方法请查看 unpkg.com

2.HelloWorld程序

通过 CDN 的方式我们可以很容易地使用 Element 写出一个 Hello world 页面。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="UTF-8">
  5.    <!-- 导入 CSS 样式 -->
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <!-- 导入Vue -->
  8.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  9.    <!-- 引入组件库 -->
  10.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  11. </head>
  12. <body>
  13. <div id="app">
  14.    <el-button @click="visible = true">Button</el-button>
  15.    <el-dialog :visible.sync="visible" title="Hello world">
  16.      <p>Try Element</p>
  17.    </el-dialog>
  18. </div>
  19. </body>
  20. <script>
  21.    new Vue({
  22.        el: '#app',
  23.        data: function () {
  24.            return {visible: false}
  25.       }
  26.   })
  27. </script>
  28. </html>
  1. .sync 修饰符
  2.       在有些情况下,我们可能需要对一个 prop 进行“双向绑定”。不幸的是,真正的双向绑定会带来维护上的问题,因为子组件可以修改父组件,且在父组件和子组件都没有明显的改动来源。
  3. 这也是为什么我们推荐以 update:myPropName 的模式触发事件取而代之。举个例子,在一个包含 title prop 的假设的组件中,我们可以用以下方法表达对其赋新值的意图:
  4. this.$emit('update:title', newTitle)
  5. 然后父组件可以监听那个事件并根据需要更新一个本地的数据属性。例如:
  6. <text-document
  7.  v-bind:title="doc.title"
  8.  v-on:update:title="doc.title = $event"
  9. ></text-document>
  10. 为了方便起见,我们为这种模式提供一个缩写,即 .sync 修饰符:
  11. <text-document v-bind:title.sync="doc.title"></text-document>
  12. 注意带有 .sync 修饰符的 v-bind 不能和表达式一起使用 (例如 v-bind:title.sync=”doc.title + ‘!’” 是无效的)。取而代之的是,你只能提供你想要绑定的属性名,类似 v-model。
  13. 当我们用一个对象同时设置多个 prop 的时候,也可以将这个 .sync 修饰符和 v-bind 配合使用:
  14. <text-document v-bind.sync="doc"></text-document>
  15. 这样会把 doc 对象中的每一个属性 (如 title) 都作为一个独立的 prop 传进去,然后各自添加用于更新的 v-on 监听器。
  16. 将 v-bind.sync 用在一个字面量的对象上,例如 v-bind.sync=”{ title: doc.title }”,是无法正常工作的,因为在解析一个像这样的复杂表达式的时候,有很多边缘情况需要考虑。

三.组件

1.基本组件

(1).Layout 布局

通过基础的 24 分栏,迅速简便地创建布局。

基础布局

使用单一分栏创建基础的栅格布局。

通过 row 和 col 组件,并通过 col 组件的 span 属性我们就可以自由地组合布局。

  1. <el-row>
  2. <el-col :span="24"><div class="grid-content bg-purple-dark"></div></el-col>
  3. </el-row>
  4. <el-row>
  5. <el-col :span="12"><div class="grid-content bg-purple"></div></el-col>
  6. <el-col :span="12"><div class="grid-content bg-purple-light"></div></el-col>
  7. </el-row>
  8. <el-row>
  9. <el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
  10. <el-col :span="8"><div class="grid-content bg-purple-light"></div></el-col>
  11. <el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
  12. </el-row>
  13. <el-row>
  14. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  15. <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
  16. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  17. <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
  18. </el-row>
  19. <el-row>
  20. <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
  21. <el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
  22. <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
  23. <el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
  24. <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
  25. <el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
  26. </el-row>
  27. <style>
  28. .el-row {
  29.   margin-bottom: 20px;
  30.   &:last-child {
  31.     margin-bottom: 0;
  32.   }
  33. }
  34. .el-col {
  35.   border-radius: 4px;
  36. }
  37. .bg-purple-dark {
  38.   background: #99a9bf;
  39. }
  40. .bg-purple {
  41.   background: #d3dce6;
  42. }
  43. .bg-purple-light {
  44.   background: #e5e9f2;
  45. }
  46. .grid-content {
  47.   border-radius: 4px;
  48.   min-height: 36px;
  49. }
  50. .row-bg {
  51.   padding: 10px 0;
  52.   background-color: #f9fafc;
  53. }
  54. </style>

在线运行

分栏间隔

分栏之间存在间隔。

Row 组件 提供 gutter 属性来指定每一栏之间的间隔,默认间隔为 0。

  1. <el-row :gutter="20">
  2. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  3. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  4. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  5. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  6. </el-row>
  7. <style>
  8. .el-row {
  9.   margin-bottom: 20px;
  10.   &:last-child {
  11.     margin-bottom: 0;
  12.   }
  13. }
  14. .el-col {
  15.   border-radius: 4px;
  16. }
  17. .bg-purple-dark {
  18.   background: #99a9bf;
  19. }
  20. .bg-purple {
  21.   background: #d3dce6;
  22. }
  23. .bg-purple-light {
  24.   background: #e5e9f2;
  25. }
  26. .grid-content {
  27.   border-radius: 4px;
  28.   min-height: 36px;
  29. }
  30. .row-bg {
  31.   padding: 10px 0;
  32.   background-color: #f9fafc;
  33. }
  34. </style>

 

混合布局

通过基础的 1/24 分栏任意扩展组合形成较为复杂的混合布局。

  1. <el-row :gutter="20">
  2. <el-col :span="16"><div class="grid-content bg-purple"></div></el-col>
  3. <el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
  4. </el-row>
  5. <el-row :gutter="20">
  6. <el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
  7. <el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
  8. <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
  9. <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
  10. </el-row>
  11. <el-row :gutter="20">
  12. <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
  13. <el-col :span="16"><div class="grid-content bg-purple"></div></el-col>
  14. <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
  15. </el-row>
  16. <style>
  17. .el-row {
  18.   margin-bottom: 20px;
  19.   &:last-child {
  20.     margin-bottom: 0;
  21.   }
  22. }
  23. .el-col {
  24.   border-radius: 4px;
  25. }
  26. .bg-purple-dark {
  27.   background: #99a9bf;
  28. }
  29. .bg-purple {
  30.   background: #d3dce6;
  31. }
  32. .bg-purple-light {
  33.   background: #e5e9f2;
  34. }
  35. .grid-content {
  36.   border-radius: 4px;
  37.   min-height: 36px;
  38. }
  39. .row-bg {
  40.   padding: 10px 0;
  41.   background-color: #f9fafc;
  42. }
  43. </style>

 

分栏偏移

支持偏移指定的栏数。

通过制定 col 组件的 offset 属性可以指定分栏偏移的栏数。

  1. <el-row :gutter="20">
  2. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  3. <el-col :span="6" :offset="6"><div class="grid-content bg-purple"></div></el-col>
  4. </el-row>
  5. <el-row :gutter="20">
  6. <el-col :span="6" :offset="6"><div class="grid-content bg-purple"></div></el-col>
  7. <el-col :span="6" :offset="6"><div class="grid-content bg-purple"></div></el-col>
  8. </el-row>
  9. <el-row :gutter="20">
  10. <el-col :span="12" :offset="6"><div class="grid-content bg-purple"></div></el-col>
  11. </el-row>
  12. <style>
  13. .el-row {
  14.   margin-bottom: 20px;
  15.   &:last-child {
  16.     margin-bottom: 0;
  17.   }
  18. }
  19. .el-col {
  20.   border-radius: 4px;
  21. }
  22. .bg-purple-dark {
  23.   background: #99a9bf;
  24. }
  25. .bg-purple {
  26.   background: #d3dce6;
  27. }
  28. .bg-purple-light {
  29.   background: #e5e9f2;
  30. }
  31. .grid-content {
  32.   border-radius: 4px;
  33.   min-height: 36px;
  34. }
  35. .row-bg {
  36.   padding: 10px 0;
  37.   background-color: #f9fafc;
  38. }
  39. </style>

 

对齐方式

通过 flex 布局来对分栏进行灵活的对齐。

type 属性赋值为 'flex',可以启用 flex 布局,并可通过 justify 属性来指定 start, center, end, space-between, space-around 其中的值来定义子元素的排版方式。

  1. <el-row type="flex" class="row-bg">
  2. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  3. <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
  4. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  5. </el-row>
  6. <el-row type="flex" class="row-bg" justify="center">
  7. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  8. <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
  9. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  10. </el-row>
  11. <el-row type="flex" class="row-bg" justify="end">
  12. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  13. <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
  14. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  15. </el-row>
  16. <el-row type="flex" class="row-bg" justify="space-between">
  17. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  18. <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
  19. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  20. </el-row>
  21. <el-row type="flex" class="row-bg" justify="space-around">
  22. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  23. <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
  24. <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  25. </el-row>
  26. <style>
  27. .el-row {
  28.   margin-bottom: 20px;
  29.   &:last-child {
  30.     margin-bottom: 0;
  31.   }
  32. }
  33. .el-col {
  34.   border-radius: 4px;
  35. }
  36. .bg-purple-dark {
  37.   background: #99a9bf;
  38. }
  39. .bg-purple {
  40.   background: #d3dce6;
  41. }
  42. .bg-purple-light {
  43.   background: #e5e9f2;
  44. }
  45. .grid-content {
  46.   border-radius: 4px;
  47.   min-height: 36px;
  48. }
  49. .row-bg {
  50.   padding: 10px 0;
  51.   background-color: #f9fafc;
  52. }
  53. </style>

 

响应式布局

参照了 Bootstrap 的 响应式设计,预设了五个响应尺寸:xssmmdlgxl

  1. <el-row :gutter="10">
  2. <el-col :xs="8" :sm="6" :md="4" :lg="3" :xl="1"><div class="grid-content bg-purple"></div></el-col>
  3. <el-col :xs="4" :sm="6" :md="8" :lg="9" :xl="11"><div class="grid-content bg-purple-light"></div></el-col>
  4. <el-col :xs="4" :sm="6" :md="8" :lg="9" :xl="11"><div class="grid-content bg-purple"></div></el-col>
  5. <el-col :xs="8" :sm="6" :md="4" :lg="3" :xl="1"><div class="grid-content bg-purple-light"></div></el-col>
  6. </el-row>
  7. <style>
  8. .el-col {
  9. border-radius: 4px;
  10. }
  11. .bg-purple-dark {
  12. background: #99a9bf;
  13. }
  14. .bg-purple {
  15. background: #d3dce6;
  16. }
  17. .bg-purple-light {
  18. background: #e5e9f2;
  19. }
  20. .grid-content {
  21. border-radius: 4px;
  22. min-height: 36px;
  23. }
  24. </style>

 

基于断点的隐藏类

Element 额外提供了一系列类名,用于在某些条件下隐藏元素。这些类名可以添加在任何 DOM 元素或自定义组件上。如果需要,请自行引入以下文件:

import 'element-ui/lib/theme-chalk/display.css';

包含的类名及其含义为:

  • hidden-xs-only - 当视口在 xs 尺寸时隐藏

  • hidden-sm-only - 当视口在 sm 尺寸时隐藏

  • hidden-sm-and-down - 当视口在 sm 及以下尺寸时隐藏

  • hidden-sm-and-up - 当视口在 sm 及以上尺寸时隐藏

  • hidden-md-only - 当视口在 md 尺寸时隐藏

  • hidden-md-and-down - 当视口在 md 及以下尺寸时隐藏

  • hidden-md-and-up - 当视口在 md 及以上尺寸时隐藏

  • hidden-lg-only - 当视口在 lg 尺寸时隐藏

  • hidden-lg-and-down - 当视口在 lg 及以下尺寸时隐藏

  • hidden-lg-and-up - 当视口在 lg 及以上尺寸时隐藏

  • hidden-xl-only - 当视口在 xl 尺寸时隐藏

相关参数说明

(2).Container 布局容器

用于布局的容器组件,方便快速搭建页面的基本结构:

<el-container>:外层容器。当子元素中包含 <el-header><el-footer> 时,全部子元素会垂直上下排列,否则会水平左右排列。

<el-header>:顶栏容器。

<el-aside>:侧边栏容器。

<el-main>:主要区域容器。

<el-footer>:底栏容器。

以上组件采用了 flex 布局,使用前请确定目标浏览器是否兼容。此外,<el-container> 的子元素只能是后四者,后四者的父元素也只能是 <el-container>

常见页面布局

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <!-- 导入 CSS 样式 -->
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <!-- 导入Vue -->
  8. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  9. <!-- 引入组件库 -->
  10. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  11. <style>
  12. .el-header, .el-footer {
  13. background-color: #B3C0D1;
  14. color: #333;
  15. text-align: center;
  16. line-height: 60px;
  17. }
  18. .el-aside {
  19. background-color: #D3DCE6;
  20. color: #333;
  21. text-align: center;
  22. line-height: 200px;
  23. }
  24. .el-main {
  25. background-color: #E9EEF3;
  26. color: #333;
  27. text-align: center;
  28. line-height: 160px;
  29. }
  30. body > .el-container {
  31. margin-bottom: 40px;
  32. }
  33. .el-container:nth-child(5) .el-aside,
  34. .el-container:nth-child(6) .el-aside {
  35. line-height: 260px;
  36. }
  37. .el-container:nth-child(7) .el-aside {
  38. line-height: 320px;
  39. }
  40. </style>
  41. </head>
  42. <body>
  43. <div id="app">
  44. <el-container>
  45. <el-header>Header</el-header>
  46. <el-main>Main</el-main>
  47. </el-container>
  48. <el-container>
  49. <el-header>Header</el-header>
  50. <el-main>Main</el-main>
  51. <el-footer>Footer</el-footer>
  52. </el-container>
  53. <el-container>
  54. <el-aside width="200px">Aside</el-aside>
  55. <el-main>Main</el-main>
  56. </el-container>
  57. <el-container>
  58. <el-header>Header</el-header>
  59. <el-container>
  60. <el-aside width="200px">Aside</el-aside>
  61. <el-main>Main</el-main>
  62. </el-container>
  63. </el-container>
  64. <el-container>
  65. <el-header>Header</el-header>
  66. <el-container>
  67. <el-aside width="200px">Aside</el-aside>
  68. <el-container>
  69. <el-main>Main</el-main>
  70. <el-footer>Footer</el-footer>
  71. </el-container>
  72. </el-container>
  73. </el-container>
  74. <el-container>
  75. <el-aside width="200px">Aside</el-aside>
  76. <el-container>
  77. <el-header>Header</el-header>
  78. <el-main>Main</el-main>
  79. </el-container>
  80. </el-container>
  81. <el-container>
  82. <el-aside width="200px">Aside</el-aside>
  83. <el-container>
  84. <el-header>Header</el-header>
  85. <el-main>Main</el-main>
  86. <el-footer>Footer</el-footer>
  87. </el-container>
  88. </el-container>
  89. </div>
  90. </body>
  91. <script>
  92. new Vue({
  93. el: '#app',
  94. })
  95. </script>
  96. </html>

实例

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. <style type="text/css">
  13. .el-header {
  14. background-color: #B3C0D1;
  15. color: #333;
  16. line-height: 60px;
  17. }
  18. .el-aside {
  19. color: #333;
  20. }
  21. .menuHeader{
  22. text-align: center;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div id="app">
  28. <el-container style="height: 500px; border: 1px solid #eee">
  29. <el-aside width="200px">
  30. <br>
  31. <br>
  32. <br>
  33. <el-menu :default-openeds="['1', '3']">
  34. <el-menu-item-group class="menuHeader">
  35. <template slot="title">欢迎李造价</template>
  36. <el-menu-item index="1-1">进行中项目</el-menu-item>
  37. <el-menu-item index="1-2">历史项目</el-menu-item>
  38. <el-menu-item index="1-2">个人信息</el-menu-item>
  39. <el-menu-item index="1-2">成为造价师</el-menu-item>
  40. </el-menu-item-group>
  41. </el-menu>
  42. </el-aside>
  43. <el-container>
  44. <el-header style="text-align: right; font-size: 12px">
  45. <el-dropdown>
  46. <i class="el-icon-setting" style="margin-right: 15px"></i>
  47. <el-dropdown-menu slot="dropdown">
  48. <el-dropdown-item>查看</el-dropdown-item>
  49. <el-dropdown-item>新增</el-dropdown-item>
  50. <el-dropdown-item>删除</el-dropdown-item>
  51. </el-dropdown-menu>
  52. </el-dropdown>
  53. <span>李造价</span>
  54. </el-header>
  55. <el-main>
  56. <el-table :data="tableData">
  57. <el-table-column class="tableContent" prop="date" label="项目名称" width="140">
  58. </el-table-column>
  59. <el-table-column class="tableContent" prop="name" label="发布时间" width="120">
  60. </el-table-column>
  61. <el-table-column class="tableContent" prop="address" label="专业类型">
  62. </el-table-column>
  63. <el-table-column class="tableContent" prop="xmzt" label="项目状态" width="120">
  64. </el-table-column>
  65. <el-table-column class="tableContent" prop="shdate" label="审核通过时间" width="120">
  66. </el-table-column>
  67. <el-table-column class="tableContent" prop="jzdate" label="截止日期" width="120">
  68. </el-table-column>
  69. <el-table-column class="tableContent" label="查看详情" width="120">
  70. <a href="http://www.baidu.com" target="_blank">查看详情</a>
  71. </el-table-column>
  72. </el-table>
  73. </el-main>
  74. </el-container>
  75. </el-container>
  76. </div>
  77. </body>
  78. <script>
  79. new Vue({
  80. el: '#app',
  81. data() {
  82. const item = {
  83. date: '造价项目测试1',
  84. name: '2019-6-10',
  85. address: '写字楼、住宅、高层住宅、厂房、四星以上酒店、学校、影剧院、医院',
  86. xmzt:'进行中',
  87. shdate:'2019-6-20',
  88. jzdate:'2019-6-15'
  89. };
  90. return {
  91. tableData: Array(3).fill(item)
  92. }
  93. }
  94. })
  95. </script>
  96. </html>

(3).Color 色彩

Element 为了避免视觉传达差异,使用一套特定的调色板来规定颜色,为你所搭建的产品提供一致的外观视觉感受。

主色

Element 主要品牌颜色是鲜艳、友好的蓝色。

辅助色

除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。

中性色

中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。

(4).Typography 字体

官网:https://element.eleme.cn/#/zh-CN/component/typography

和常规一样

(5).Border 边框

官网:https://element.eleme.cn/#/zh-CN/component/border

和常规一样

(6).Icon 图标

提供了一套常用的图标集合。

更多图标见官网:https://element.eleme.cn/#/zh-CN/component/icon

举例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. #app{
  15. width: 500px;
  16. margin: 200px auto;
  17. }
  18. i{
  19. font-size: 40px;
  20. }
  21. </style>
  22. <body>
  23. <div id="app">
  24. <i class="el-icon-edit"></i>
  25. <i class="el-icon-share"></i>
  26. <i class="el-icon-delete"></i>
  27. <i class="el-icon-light-rain"></i>
  28. <i class="el-icon-date"></i>
  29. <i class="el-icon-loading"></i>
  30. <i class="el-icon-view"></i>
  31. <i class="el-icon-folder-add"></i>
  32. <br><br>
  33. <el-button type="primary" icon="el-icon-search">搜索</el-button>
  34. <el-button type="primary" icon="el-icon-delete-solid">删除</el-button>
  35. <el-button type="primary" icon="el-icon-scissors">裁剪</el-button>
  36. </div>
  37. </body>
  38. <script>
  39. new Vue({
  40. el: '#app'
  41. })
  42. </script>
  43. </html>

(7).Button 按钮

常用的操作按钮。

更多按钮见官网:https://element.eleme.cn/#/zh-CN/component/button

使用typeplainroundcircle属性来定义 Button 的样式。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. </style>
  15. <body>
  16. <div id="app">
  17. <el-row>
  18. <el-button>默认按钮</el-button>
  19. <el-button type="primary">主要按钮</el-button>
  20. <el-button type="success">成功按钮</el-button>
  21. <el-button type="info">信息按钮</el-button>
  22. <el-button type="warning">警告按钮</el-button>
  23. <el-button type="danger">危险按钮</el-button>
  24. </el-row>
  25. <el-row>
  26. <el-button plain>朴素按钮</el-button>
  27. <el-button type="primary" plain>主要按钮</el-button>
  28. <el-button type="success" plain>成功按钮</el-button>
  29. <el-button type="info" plain>信息按钮</el-button>
  30. <el-button type="warning" plain>警告按钮</el-button>
  31. <el-button type="danger" plain>危险按钮</el-button>
  32. </el-row>
  33. <el-row>
  34. <el-button round>圆角按钮</el-button>
  35. <el-button type="primary" round>主要按钮</el-button>
  36. <el-button type="success" round>成功按钮</el-button>
  37. <el-button type="info" round>信息按钮</el-button>
  38. <el-button type="warning" round>警告按钮</el-button>
  39. <el-button type="danger" round>危险按钮</el-button>
  40. </el-row>
  41. <el-row>
  42. <el-button icon="el-icon-search" circle></el-button>
  43. <el-button type="primary" icon="el-icon-edit" circle></el-button>
  44. <el-button type="success" icon="el-icon-check" circle></el-button>
  45. <el-button type="info" icon="el-icon-message" circle></el-button>
  46. <el-button type="warning" icon="el-icon-star-off" circle></el-button>
  47. <el-button type="danger" icon="el-icon-delete" circle></el-button>
  48. </el-row>
  49. </div>
  50. </body>
  51. <script>
  52. new Vue({
  53. el: '#app'
  54. })
  55. </script>
  56. </html>

相关参数:

(8).Link 文字链接

文字超链接

更多见官网:https://element.eleme.cn/#/zh-CN/component/link

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. </style>
  15. <body>
  16. <div id="app">
  17. <el-link href="https://element.eleme.io" target="_blank">默认链接</el-link>
  18. <el-link type="primary">主要链接</el-link>
  19. <el-link type="success">成功链接</el-link>
  20. <el-link type="warning">警告链接</el-link>
  21. <el-link type="danger">危险链接</el-link>
  22. <el-link type="info">信息链接</el-link>
  23. </div>
  24. </body>
  25. <script>
  26. new Vue({
  27. el: '#app'
  28. })
  29. </script>
  30. </html>

相关参数:

2.表单组件

(1).Radio 单选框

在一组备选项中进行单选

更多好看单选框见官网:https://element.eleme.cn/#/zh-CN/component/radio

基础用法

由于选项默认可见,不宜过多,若选项过多,建议使用 Select 选择器。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. </style>
  15. <body>
  16. <div id="app">
  17. <template>
  18. <el-radio v-model="radio" label="1">备选项</el-radio>
  19. <el-radio v-model="radio" label="2">备选项</el-radio>
  20. </template>
  21. </div>
  22. </body>
  23. <script>
  24. new Vue({
  25. el: '#app',
  26. data () {
  27. return {
  28. radio: '1'
  29. };
  30. }
  31. })
  32. </script>
  33. </html>

(2).Checkbox 多选框

一组备选项中进行多选

更多好看多选框见官网:https://element.eleme.cn/#/zh-CN/component/checkbox

基础用法

单独使用可以表示两种状态之间的切换,写在标签中的内容为 checkbox 按钮后的介绍。

checkbox-group元素能把多个 checkbox 管理为一组,只需要在 Group 中使用v-model绑定Array类型的变量即可。 el-checkboxlabel属性是该 checkbox 对应的值,若该标签中无内容,则该属性也充当 checkbox 按钮后的介绍。label与数组中的元素值相对应,如果存在指定的值则为选中状态,否则为不选中。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. </style>
  15. <body>
  16. <div id="app">
  17. <template>
  18. <el-checkbox-group v-model="checkList">
  19. <el-checkbox label="复选框 A"></el-checkbox>
  20. <el-checkbox label="复选框 B"></el-checkbox>
  21. <el-checkbox label="复选框 C"></el-checkbox>
  22. <el-checkbox label="禁用" disabled></el-checkbox>
  23. <el-checkbox label="选中且禁用" disabled></el-checkbox>
  24. </el-checkbox-group>
  25. </template>
  26. </div>
  27. </body>
  28. <script>
  29. new Vue({
  30. el: '#app',
  31. data () {
  32. return {
  33. checkList: ['选中且禁用','复选框 A']
  34. };
  35. }
  36. })
  37. </script>
  38. </html>

(3).Input输入框

更多可见官网:https://element.eleme.cn/#/zh-CN/component/input

使用clearable属性即可得到一个可清空的输入框

使用show-password属性即可得到一个可切换显示隐藏的密码框

可以通过 prefix-iconsuffix-icon 属性在 input 组件首部和尾部增加显示图标,也可以通过 slot 来放置图标。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. .el-input{
  15. width: 300px;
  16. }
  17. </style>
  18. <body>
  19. <div id="app">
  20. <label>账号</label>
  21. <el-input
  22. class="el-input"
  23. placeholder="请输入内容"
  24. v-model="input"
  25. clearable>
  26. </el-input>
  27. <br>
  28. <br>
  29. <label>密码</label>
  30. <el-input
  31. class="el-input"
  32. placeholder="请输入密码"
  33. v-model="input2"
  34. show-password>
  35. </el-input>
  36. <br>
  37. <br>
  38. <div class="demo-input-suffix">
  39. <el-input
  40. placeholder="请输入内容"
  41. prefix-icon="el-icon-search"
  42. v-model="input3">
  43. </el-input>
  44. </div>
  45. </div>
  46. </body>
  47. <script>
  48. new Vue({
  49. el: '#app',
  50. data () {
  51. return {
  52. input:'',
  53. input2:'',
  54. input3:'',
  55. };
  56. }
  57. })
  58. </script>
  59. </html>

(4).InputNumber 计数器

仅允许输入标准的数字值,可定义范围

见官网:https://element.eleme.cn/#/zh-CN/component/input-number

(5).Select 选择器

当选项过多时,使用下拉菜单展示并选择内容。

见官网:https://element.eleme.cn/#/zh-CN/component/select

(6).Cascader 级联选择器

当一个数据集合有清晰的层级结构时,可通过级联选择器逐级查看并选择。

(7).Switch 开关

表示两种相互对立的状态间的切换,多用于触发「开/关」。

见官网:https://element.eleme.cn/#/zh-CN/component/switch

(8).Slider 滑块

通过拖动滑块在一个固定区间内进行选择

见官网:https://element.eleme.cn/#/zh-CN/component/slider

(9).TimePicker 时间选择器

用于选择或输入日期

见官网:https://element.eleme.cn/#/zh-CN/component/time-picker

(10).DatePicker 日期选择器

用于选择或输入日期

更多见:https://element.eleme.cn/#/zh-CN/component/date-picker

选择日

以「日」为基本单位,基础的日期选择控件

基本单位由type属性指定。快捷选项需配置picker-options对象中的shortcuts,禁用日期通过 disabledDate 设置,传入函数

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. </style>
  15. <body>
  16. <div id="app">
  17. <template>
  18. <div class="block">
  19. <span class="demonstration">默认</span>
  20. <el-date-picker
  21. v-model="value1"
  22. type="date"
  23. placeholder="选择日期">
  24. </el-date-picker>
  25. </div>
  26. <br>
  27. <div class="block">
  28. <span class="demonstration">带快捷选项</span>
  29. <el-date-picker
  30. v-model="value2"
  31. align="right"
  32. type="date"
  33. placeholder="选择日期"
  34. :picker-options="pickerOptions">
  35. </el-date-picker>
  36. </div>
  37. </template>
  38. </div>
  39. </body>
  40. <script>
  41. new Vue({
  42. el: '#app',
  43. data() {
  44. return {
  45. pickerOptions: {
  46. disabledDate(time) {
  47. return time.getTime() > Date.now();
  48. },
  49. shortcuts: [{
  50. text: '今天',
  51. onClick(picker) {
  52. picker.$emit('pick', new Date());
  53. }
  54. }, {
  55. text: '昨天',
  56. onClick(picker) {
  57. const date = new Date();
  58. date.setTime(date.getTime() - 3600 * 1000 * 24);
  59. picker.$emit('pick', date);
  60. }
  61. }, {
  62. text: '一周前',
  63. onClick(picker) {
  64. const date = new Date();
  65. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
  66. picker.$emit('pick', date);
  67. }
  68. }]
  69. },
  70. value1: '',
  71. value2: '',
  72. };
  73. }
  74. })
  75. </script>
  76. </html>

(11).DateTimePicker 日期时间选择器

在同一个选择器里选择日期和时间

日期和时间点

通过设置type属性为datetime,即可在同一个选择器里同时进行日期和时间的选择。快捷选项的使用方法与 Date Picker 相同。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. </style>
  15. <body>
  16. <div id="app">
  17. <template>
  18. <div class="block">
  19. <span class="demonstration">默认</span>
  20. <el-date-picker
  21. v-model="value1"
  22. type="datetime"
  23. placeholder="选择日期时间">
  24. </el-date-picker>
  25. </div>
  26. <div class="block">
  27. <span class="demonstration">带快捷选项</span>
  28. <el-date-picker
  29. v-model="value2"
  30. type="datetime"
  31. placeholder="选择日期时间"
  32. align="right"
  33. :picker-options="pickerOptions">
  34. </el-date-picker>
  35. </div>
  36. <div class="block">
  37. <span class="demonstration">设置默认时间</span>
  38. <el-date-picker
  39. v-model="value3"
  40. type="datetime"
  41. placeholder="选择日期时间"
  42. default-time="12:00:00">
  43. </el-date-picker>
  44. </div>
  45. </template>
  46. </div>
  47. </body>
  48. <script>
  49. new Vue({
  50. el: '#app',
  51. data() {
  52. return {
  53. pickerOptions: {
  54. shortcuts: [{
  55. text: '今天',
  56. onClick(picker) {
  57. picker.$emit('pick', new Date());
  58. }
  59. }, {
  60. text: '昨天',
  61. onClick(picker) {
  62. const date = new Date();
  63. date.setTime(date.getTime() - 3600 * 1000 * 24);
  64. picker.$emit('pick', date);
  65. }
  66. }, {
  67. text: '一周前',
  68. onClick(picker) {
  69. const date = new Date();
  70. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
  71. picker.$emit('pick', date);
  72. }
  73. }]
  74. },
  75. value1: '',
  76. value2: '',
  77. value3: ''
  78. };
  79. }
  80. })
  81. </script>
  82. </html>

(12).Upload 上传

通过点击或者拖拽上传文件

更多样式见官网:https://element.eleme.cn/#/zh-CN/component/upload

(13).Rate 评分

评分组件

更多样式见官网:https://element.eleme.cn/#/zh-CN/component/rate

(14).ColorPicker 颜色选择器

用于颜色选择,支持多种格式。

更多样式见官网:https://element.eleme.cn/#/zh-CN/component/color-picker

(15).Transfer 穿梭框

更多样式见官网:https://element.eleme.cn/#/zh-CN/component/transfer

(16).Form 表单

由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据

W3C 标准中有如下规定:

When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form.

即:当一个 form 元素中只有一个输入框时,在该输入框中按下回车应提交该表单。如果希望阻止这一默认行为,可以在 <el-form>标签上添加 @submit.native.prevent

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Layout 布局-基础布局</title>
  6. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8. <!-- 导入Vue -->
  9. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10. <!-- 引入组件库 -->
  11. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. .el-form{
  15. width: 400px;
  16. }
  17. </style>
  18. <body>
  19. <div id="app">
  20. <el-form ref="form" :model="form" label-width="80px" class="el-form">
  21. <el-form-item label="活动名称">
  22. <el-input v-model="form.name"></el-input>
  23. </el-form-item>
  24. <el-form-item label="活动区域">
  25. <el-select v-model="form.region" placeholder="请选择活动区域">
  26. <el-option label="区域一" value="shanghai"></el-option>
  27. <el-option label="区域二" value="beijing"></el-option>
  28. </el-select>
  29. </el-form-item>
  30. <el-form-item label="活动时间">
  31. <el-col :span="11">
  32. <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
  33. </el-col>
  34. <el-col class="line" :span="2">-</el-col>
  35. <el-col :span="11">
  36. <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
  37. </el-col>
  38. </el-form-item>
  39. <el-form-item label="即时配送">
  40. <el-switch v-model="form.delivery"></el-switch>
  41. </el-form-item>
  42. <el-form-item label="活动性质">
  43. <el-checkbox-group v-model="form.type">
  44. <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
  45. <el-checkbox label="地推活动" name="type"></el-checkbox>
  46. <el-checkbox label="线下主题活动" name="type"></el-checkbox>
  47. <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
  48. </el-checkbox-group>
  49. </el-form-item>
  50. <el-form-item label="特殊资源">
  51. <el-radio-group v-model="form.resource">
  52. <el-radio label="线上品牌商赞助"></el-radio>
  53. <el-radio label="线下场地免费"></el-radio>
  54. </el-radio-group>
  55. </el-form-item>
  56. <el-form-item label="活动形式">
  57. <el-input type="textarea" v-model="form.desc"></el-input>
  58. </el-form-item>
  59. <el-form-item>
  60. <el-button type="primary" @click="onSubmit">立即创建</el-button>
  61. <el-button>取消</el-button>
  62. </el-form-item>
  63. </el-form>
  64. </div>
  65. </body>
  66. <script>
  67. new Vue({
  68. el: '#app',
  69. data() {
  70. return {
  71. form: {
  72. name: '',
  73. region: '',
  74. date1: '',
  75. date2: '',
  76. delivery: false,
  77. type: [],
  78. resource: '',
  79. desc: ''
  80. }
  81. }
  82. },
  83. methods: {
  84. onSubmit() {
  85. console.log('submit!');
  86. }
  87. }
  88. })
  89. </script>
  90. </html>

3.数据(data)组件

(1).Table 表格

用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。

更多样式表格见官网:https://element.eleme.cn/#/zh-CN/component/table

基础表格

基础的表格展示用法。

el-table元素中注入data对象数组后,在el-table-column中用prop属性来对应对象中的键名即可填入数据,用label属性来定义表格的列名。可以使用width属性来定义列宽。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title>Layout 布局-基础布局</title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .el-form{
  15.        width: 400px;
  16.   }
  17. </style>
  18. <body>
  19. <div id="app">
  20.    <template>
  21.        <el-table
  22.                :data="tableData"
  23.                style="width: 100%">
  24.            <el-table-column
  25.                    prop="date"
  26.                    label="日期"
  27.                    width="180">
  28.            </el-table-column>
  29.            <el-table-column
  30.                    prop="name"
  31.                    label="姓名"
  32.                    width="180">
  33.            </el-table-column>
  34.            <el-table-column
  35.                    prop="address"
  36.                    label="地址">
  37.            </el-table-column>
  38.        </el-table>
  39.    </template>
  40. </div>
  41. </body>
  42. <script>
  43.    new Vue({
  44.        el: '#app',
  45.        data() {
  46.            return {
  47.                tableData: [{
  48.                    date: '2016-05-02',
  49.                    name: '王小虎',
  50.                    address: '上海市普陀区金沙江路 1518 弄'
  51.               }, {
  52.                    date: '2016-05-04',
  53.                    name: '王小虎',
  54.                    address: '上海市普陀区金沙江路 1517 弄'
  55.               }, {
  56.                    date: '2016-05-01',
  57.                    name: '王小虎',
  58.                    address: '上海市普陀区金沙江路 1519 弄'
  59.               }, {
  60.                    date: '2016-05-03',
  61.                    name: '王小虎',
  62.                    address: '上海市普陀区金沙江路 1516 弄'
  63.               }]
  64.           }
  65.       }
  66.   })
  67. </script>
  68. </html>

(2).Tag 标签

用于标记和选择。

见官网:https://element.eleme.cn/#/zh-CN/component/tag

(3).Progress 进度条

用于展示操作进度,告知用户当前状态和预期。

见官网:https://element.eleme.cn/#/zh-CN/component/progress

(4).Tree 树形控件

用清晰的层级结构展示信息,可展开或折叠。

见官网:https://element.eleme.cn/#/zh-CN/component/tree

(5).Pagination 分页

当数据量过多时,使用分页分解数据。

见官网:https://element.eleme.cn/#/zh-CN/component/pagination

(6).Badge 标记

出现在按钮、图标旁的数字或状态标记。

见官网:https://element.eleme.cn/#/zh-CN/component/badge

4.Notice组件

(1).Alert 警告

用于页面中展示重要的提示信息。

更多样式见官网:https://element.eleme.cn/#/zh-CN/component/alert

基本用法

页面中的非浮层元素,不会自动消失。

Alert 组件提供四种主题,由type属性指定,默认值为info

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title>Layout 布局-基础布局</title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .el-form {
  15.        width: 400px;
  16.   }
  17. </style>
  18. <body>
  19. <div id="app">
  20.    <template>
  21.        <el-alert
  22.                title="成功提示的文案"
  23.                type="success">
  24.        </el-alert>
  25.        <el-alert
  26.                title="消息提示的文案"
  27.                type="info">
  28.        </el-alert>
  29.        <el-alert
  30.                title="警告提示的文案"
  31.                type="warning">
  32.        </el-alert>
  33.        <el-alert
  34.                title="错误提示的文案"
  35.                type="error">
  36.        </el-alert>
  37.    </template>
  38. </div>
  39. </body>
  40. <script>
  41.    new Vue({
  42.        el: '#app'
  43.   })
  44. </script>
  45. </html>

(2).Loading 加载

加载数据时显示动效。

更多见官网:https://element.eleme.cn/#/zh-CN/component/loading

(3).Message 消息提示

常用于主动操作后的反馈提示。与 Notification 的区别是后者更多用于系统级通知的被动提醒。

更多见官网:https://element.eleme.cn/#/zh-CN/component/message

(4).MessageBox 弹框

模拟系统的消息提示框而实现的一套模态对话框组件,用于消息提示、确认消息和提交内容。

更多见官网:https://element.eleme.cn/#/zh-CN/component/message-box

调用$alert方法即可打开消息提示,它模拟了系统的 alert,无法通过按下 ESC 或点击框外关闭。此例中接收了两个参数,messagetitle。值得一提的是,窗口被关闭后,它默认会返回一个Promise对象便于进行后续操作的处理。若不确定浏览器是否支持Promise,可自行引入第三方 polyfill 或像本例一样使用回调进行后续处理。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .el-form {
  15.        width: 400px;
  16.   }
  17. </style>
  18. <body>
  19. <div id="app">
  20.    <template>
  21.        <el-button type="text" @click="open">点击打开 Message Box</el-button>
  22.    </template>
  23. </div>
  24. </body>
  25. <script>
  26.    new Vue({
  27.        el: '#app',
  28.        methods: {
  29.            open() {
  30.                this.$alert('这是一段内容', '标题名称', {
  31.                    confirmButtonText: '确定',
  32.                    callback: action => {
  33.                        this.$message({
  34.                            type: 'info',
  35.                            message: `action: ${ action }`
  36.                       });
  37.                   }
  38.               });
  39.           }
  40.       }
  41.   })
  42. </script>
  43. </html>

(5).Notification 通知

悬浮出现在页面角落,显示全局的通知提醒消息。

更多见官网:https://element.eleme.cn/#/zh-CN/component/notification

5.Navigation组件

(1).NavMenu 导航菜单

为网站提供导航功能的菜单。

更多见官网:https://element.eleme.cn/#/zh-CN/component/menu

a.顶栏

适用广泛的基础用法。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .el-menu-demo{
  15.        width: 500px;
  16.   }
  17. </style>
  18. <body>
  19. <div id="app">
  20.    <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
  21.        <el-menu-item index="1">处理中心</el-menu-item>
  22.        <el-submenu index="2">
  23.            <template slot="title">我的工作台</template>
  24.            <el-menu-item index="2-1">选项1</el-menu-item>
  25.            <el-menu-item index="2-2">选项2</el-menu-item>
  26.            <el-menu-item index="2-3">选项3</el-menu-item>
  27.            <el-submenu index="2-4">
  28.                <template slot="title">选项4</template>
  29.                <el-menu-item index="2-4-1">选项1</el-menu-item>
  30.                <el-menu-item index="2-4-2">选项2</el-menu-item>
  31.                <el-menu-item index="2-4-3">选项3</el-menu-item>
  32.            </el-submenu>
  33.        </el-submenu>
  34.        <el-menu-item index="3" disabled>消息中心</el-menu-item>
  35.        <el-menu-item index="4"><a href="" target="_blank">订单管理</a></el-menu-item>
  36.    </el-menu>
  37.    <div class="line"></div>
  38.    <el-menu
  39.            :default-active="activeIndex2"
  40.            class="el-menu-demo"
  41.            mode="horizontal"
  42.            @select="handleSelect"
  43.            background-color="#545c64"
  44.            text-color="#fff"
  45.            active-text-color="#ffd04b">
  46.        <el-menu-item index="1">处理中心</el-menu-item>
  47.        <el-submenu index="2">
  48.            <template slot="title">我的工作台</template>
  49.            <el-menu-item index="2-1">选项1</el-menu-item>
  50.            <el-menu-item index="2-2">选项2</el-menu-item>
  51.            <el-menu-item index="2-3">选项3</el-menu-item>
  52.            <el-submenu index="2-4">
  53.                <template slot="title">选项4</template>
  54.                <el-menu-item index="2-4-1">选项1</el-menu-item>
  55.                <el-menu-item index="2-4-2">选项2</el-menu-item>
  56.                <el-menu-item index="2-4-3">选项3</el-menu-item>
  57.            </el-submenu>
  58.        </el-submenu>
  59.        <el-menu-item index="3" disabled>消息中心</el-menu-item>
  60.        <el-menu-item index="4"><a href="" target="_blank">订单管理</a></el-menu-item>
  61.    </el-menu>
  62. </div>
  63. </body>
  64. <script>
  65.    new Vue({
  66.        el: '#app',
  67.        data() {
  68.            return {
  69.                activeIndex: '1',
  70.                activeIndex2: '1'
  71.           };
  72.       },
  73.        methods: {
  74.            handleSelect(key, keyPath) {
  75.                console.log(key, keyPath);
  76.           }
  77.       }
  78.   })
  79. </script>
  80. </html>

b.侧栏

垂直菜单,可内嵌子菜单。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .tac{
  15.        width: 500px;
  16.   }
  17. </style>
  18. <body>
  19. <div id="app">
  20.    <el-row class="tac">
  21.        <el-col :span="12">
  22.            <h5>默认颜色</h5>
  23.            <el-menu
  24.                    default-active="2"
  25.                    class="el-menu-vertical-demo"
  26.                    @open="handleOpen"
  27.                    @close="handleClose">
  28.                <el-submenu index="1">
  29.                    <template slot="title">
  30.                        <i class="el-icon-location"></i>
  31.                        <span>导航一</span>
  32.                    </template>
  33.                    <el-menu-item-group>
  34.                        <template slot="title">分组一</template>
  35.                        <el-menu-item index="1-1">选项1</el-menu-item>
  36.                        <el-menu-item index="1-2">选项2</el-menu-item>
  37.                    </el-menu-item-group>
  38.                    <el-menu-item-group title="分组2">
  39.                        <el-menu-item index="1-3">选项3</el-menu-item>
  40.                    </el-menu-item-group>
  41.                    <el-submenu index="1-4">
  42.                        <template slot="title">选项4</template>
  43.                        <el-menu-item index="1-4-1">选项1</el-menu-item>
  44.                    </el-submenu>
  45.                </el-submenu>
  46.                <el-menu-item index="2">
  47.                    <i class="el-icon-menu"></i>
  48.                    <span slot="title">导航二</span>
  49.                </el-menu-item>
  50.                <el-menu-item index="3" disabled>
  51.                    <i class="el-icon-document"></i>
  52.                    <span slot="title">导航三</span>
  53.                </el-menu-item>
  54.                <el-menu-item index="4">
  55.                    <i class="el-icon-setting"></i>
  56.                    <span slot="title">导航四</span>
  57.                </el-menu-item>
  58.            </el-menu>
  59.        </el-col>
  60.        <el-col :span="12">
  61.            <h5>自定义颜色</h5>
  62.            <el-menu
  63.                    default-active="2"
  64.                    class="el-menu-vertical-demo"
  65.                    @open="handleOpen"
  66.                    @close="handleClose"
  67.                    background-color="#545c64"
  68.                    text-color="#fff"
  69.                    active-text-color="#ffd04b">
  70.                <el-submenu index="1">
  71.                    <template slot="title">
  72.                        <i class="el-icon-location"></i>
  73.                        <span>导航一</span>
  74.                    </template>
  75.                    <el-menu-item-group>
  76.                        <template slot="title">分组一</template>
  77.                        <el-menu-item index="1-1">选项1</el-menu-item>
  78.                        <el-menu-item index="1-2">选项2</el-menu-item>
  79.                    </el-menu-item-group>
  80.                    <el-menu-item-group title="分组2">
  81.                        <el-menu-item index="1-3">选项3</el-menu-item>
  82.                    </el-menu-item-group>
  83.                    <el-submenu index="1-4">
  84.                        <template slot="title">选项4</template>
  85.                        <el-menu-item index="1-4-1">选项1</el-menu-item>
  86.                    </el-submenu>
  87.                </el-submenu>
  88.                <el-menu-item index="2">
  89.                    <i class="el-icon-menu"></i>
  90.                    <span slot="title">导航二</span>
  91.                </el-menu-item>
  92.                <el-menu-item index="3" disabled>
  93.                    <i class="el-icon-document"></i>
  94.                    <span slot="title">导航三</span>
  95.                </el-menu-item>
  96.                <el-menu-item index="4">
  97.                    <i class="el-icon-setting"></i>
  98.                    <span slot="title">导航四</span>
  99.                </el-menu-item>
  100.            </el-menu>
  101.        </el-col>
  102.    </el-row>
  103. </div>
  104. </body>
  105. <script>
  106.    new Vue({
  107.        el: '#app',
  108.        methods: {
  109.            handleOpen(key, keyPath) {
  110.                console.log(key, keyPath);
  111.           },
  112.            handleClose(key, keyPath) {
  113.                console.log(key, keyPath);
  114.           }
  115.       }
  116.   })
  117. </script>
  118. </html>

(2).Tabs 标签页

分隔内容上有关联但属于不同类别的数据集合。

更多见官网:https://element.eleme.cn/#/zh-CN/component/tabs

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .tac{
  15.        width: 500px;
  16.   }
  17. </style>
  18. <body>
  19. <div id="app">
  20.    <template>
  21.        <el-tabs v-model="activeName" @tab-click="handleClick" class="tac">
  22.            <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
  23.            <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
  24.            <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
  25.            <el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane>
  26.        </el-tabs>
  27.    </template>
  28. </div>
  29. </body>
  30. <script>
  31.    new Vue({
  32.        el: '#app',
  33.        data() {
  34.            return {
  35.                activeName: 'second'
  36.           };
  37.       },
  38.        methods: {
  39.            handleClick(tab, event) {
  40.                console.log(tab, event);
  41.           }
  42.       }
  43.   })
  44. </script>
  45. </html>

(3).Breadcrumb 面包屑

显示当前页面的路径,快速返回之前的任意页面。

更多见官网:https://element.eleme.cn/#/zh-CN/component/breadcrumb

(4).PageHeader 页头

如果页面的路径比较简单,推荐使用页头组件而非面包屑组件。

更多见官网:https://element.eleme.cn/#/zh-CN/component/page-header

(5).Dropdown 下拉菜单

将动作或菜单折叠到下拉菜单中。

更多见官网:https://element.eleme.cn/#/zh-CN/component/dropdown

基础用法

移动到下拉菜单上,展开更多操作。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .el-dropdown-link {
  15.        cursor: pointer;
  16.        color: #409EFF;
  17.   }
  18.    .el-icon-arrow-down {
  19.        font-size: 12px;
  20.   }
  21. </style>
  22. <body>
  23. <div id="app">
  24.    <el-dropdown>
  25.      <span class="el-dropdown-link">
  26.       下拉菜单<i class="el-icon-arrow-down el-icon--right"></i>
  27.      </span>
  28.        <el-dropdown-menu slot="dropdown">
  29.            <el-dropdown-item>黄金糕</el-dropdown-item>
  30.            <el-dropdown-item>狮子头</el-dropdown-item>
  31.            <el-dropdown-item>螺蛳粉</el-dropdown-item>
  32.            <el-dropdown-item disabled>双皮奶</el-dropdown-item>
  33.            <el-dropdown-item divided>蚵仔煎</el-dropdown-item>
  34.        </el-dropdown-menu>
  35.    </el-dropdown>
  36. </div>
  37. </body>
  38. <script>
  39.    new Vue({
  40.        el: '#app'
  41.   })
  42. </script>
  43. </html>

(6).Steps 步骤条

引导用户按照流程完成任务的分步导航条,可根据实际应用场景设定步骤,步骤不得少于 2 步。

更多见官网:https://element.eleme.cn/#/zh-CN/component/steps

基础用法

简单的步骤条。

设置active属性,接受一个Number,表明步骤的 index,从 0 开始。需要定宽的步骤条时,设置space属性即可,它接受Boolean,单位为px,如果不设置,则为自适应。设置finish-status属性可以改变已经完成的步骤的状态。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .step{
  15.        width: 500px;
  16.   }
  17. </style>
  18. <body>
  19. <div id="app">
  20.    <el-steps :active="active" finish-status="success" class="step">
  21.        <el-step title="步骤 1"></el-step>
  22.        <el-step title="步骤 2"></el-step>
  23.        <el-step title="步骤 3"></el-step>
  24.    </el-steps>
  25.    <el-button style="margin-top: 12px;" @click="next">下一步</el-button>
  26. </div>
  27. </body>
  28. <script>
  29.    new Vue({
  30.        el: '#app',
  31.        data() {
  32.            return {
  33.                active: 0
  34.           };
  35.       },
  36.        methods: {
  37.            next() {
  38.                if (this.active++ > 2) this.active = 0;
  39.           }
  40.       }
  41.   })
  42. </script>
  43. </html>

6.其他组件

(1).Dialog 对话框

在保留当前页面状态的情况下,告知用户并承载相关操作。

更多可见官网:https://element.eleme.cn/#/zh-CN/component/dialog

基本用法

Dialog 弹出一个对话框,适合需要定制性更大的场景。

before-close 仅当用户通过点击关闭图标或遮罩关闭 Dialog 时起效。如果你在 footer 具名 slot 里添加了用于关闭 Dialog 的按钮,那么可以在按钮的点击回调函数里加入 before-close 的相关逻辑。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .step{
  15.        width: 500px;
  16.   }
  17. </style>
  18. <body>
  19. <div id="app">
  20.    <el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>
  21.    <el-dialog
  22.            title="提示"
  23.            :visible.sync="dialogVisible"
  24.            width="30%"
  25.            :before-close="handleClose">
  26.        <span>这是一段信息</span>
  27.        <span slot="footer" class="dialog-footer">
  28.    <el-button @click="dialogVisible = false">取 消</el-button>
  29.    <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
  30.  </span>
  31.    </el-dialog>
  32. </div>
  33. </body>
  34. <script>
  35.    new Vue({
  36.        el: '#app',
  37.        data() {
  38.            return {
  39.                dialogVisible: false
  40.           };
  41.       },
  42.        methods: {
  43.            handleClose(done) {
  44.                this.$confirm('确认关闭?')
  45.                   .then(_ => {
  46.                        done();
  47.                   })
  48.                   .catch(_ => {});
  49.           }
  50.       }
  51.   })
  52. </script>
  53. </html>

(2).Tooltip 文字提示

常用于展示鼠标 hover 时的提示信息。

更多可见官网:https://element.eleme.cn/#/zh-CN/component/tooltip

基础用法

在这里我们提供 9 种不同方向的展示方式,可以通过以下完整示例来理解,选择你要的效果。

使用content属性来决定hover时的提示信息。由placement属性决定展示效果:placement属性值为:方向-对齐位置;四个方向:topleftrightbottom;三种对齐位置:start, end,默认为空。如placement="left-end",则提示信息出现在目标元素的左侧,且提示信息的底部与目标元素的底部对齐。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .box {
  15.        width: 400px;
  16.    .top {
  17.        text-align: center;
  18.   }
  19.    .left {
  20.        float: left;
  21.        width: 60px;
  22.   }
  23.    .right {
  24.        float: right;
  25.        width: 60px;
  26.   }
  27.    .bottom {
  28.        clear: both;
  29.        text-align: center;
  30.   }
  31.    .item {
  32.        margin: 4px;
  33.   }
  34.    .left .el-tooltip__popper,
  35.    .right .el-tooltip__popper {
  36.        padding: 8px 10px;
  37.   }
  38.   }
  39. </style>
  40. <body>
  41. <div id="app">
  42.    <div class="box">
  43.        <br><br><br><br><br>
  44.        <div class="top">
  45.            <el-tooltip class="item" effect="dark" content="Top Left 提示文字" placement="top-start">
  46.                <el-button>上左</el-button>
  47.            </el-tooltip>
  48.            <el-tooltip class="item" effect="dark" content="Top Center 提示文字" placement="top">
  49.                <el-button>上边</el-button>
  50.            </el-tooltip>
  51.            <el-tooltip class="item" effect="dark" content="Top Right 提示文字" placement="top-end">
  52.                <el-button>上右</el-button>
  53.            </el-tooltip>
  54.        </div>
  55.        <br><br><br><br><br>
  56.        <div class="left">
  57.            <el-tooltip class="item" effect="dark" content="Left Top 提示文字" placement="left-start">
  58.                <el-button>左上</el-button>
  59.            </el-tooltip>
  60.            <el-tooltip class="item" effect="dark" content="Left Center 提示文字" placement="left">
  61.                <el-button>左边</el-button>
  62.            </el-tooltip>
  63.            <el-tooltip class="item" effect="dark" content="Left Bottom 提示文字" placement="left-end">
  64.                <el-button>左下</el-button>
  65.            </el-tooltip>
  66.        </div>
  67.        <br><br><br><br><br>
  68.        <div class="right">
  69.            <el-tooltip class="item" effect="dark" content="Right Top 提示文字" placement="right-start">
  70.                <el-button>右上</el-button>
  71.            </el-tooltip>
  72.            <el-tooltip class="item" effect="dark" content="Right Center 提示文字" placement="right">
  73.                <el-button>右边</el-button>
  74.            </el-tooltip>
  75.            <el-tooltip class="item" effect="dark" content="Right Bottom 提示文字" placement="right-end">
  76.                <el-button>右下</el-button>
  77.            </el-tooltip>
  78.        </div>
  79.        <br><br><br><br><br>
  80.        <div class="bottom">
  81.            <el-tooltip class="item" effect="dark" content="Bottom Left 提示文字" placement="bottom-start">
  82.                <el-button>下左</el-button>
  83.            </el-tooltip>
  84.            <el-tooltip class="item" effect="dark" content="Bottom Center 提示文字" placement="bottom">
  85.                <el-button>下边</el-button>
  86.            </el-tooltip>
  87.            <el-tooltip class="item" effect="dark" content="Bottom Right 提示文字" placement="bottom-end">
  88.                <el-button>下右</el-button>
  89.            </el-tooltip>
  90.        </div>
  91.    </div>
  92. </div>
  93. </body>
  94. <script>
  95.    new Vue({
  96.        el: '#app'
  97.   })
  98. </script>
  99. </html>

(3).Popover 弹出框

基础用法

Popover 的属性与 Tooltip 很类似,它们都是基于Vue-popper开发的,因此对于重复属性,请参考 Tooltip 的文档,在此文档中不做详尽解释。

更多可见官网:https://element.eleme.cn/#/zh-CN/component/popover

trigger属性用于设置何时触发 Popover,支持四种触发方式:hoverclickfocusmanual。对于触发 Popover 的元素,有两种写法:使用 slot="reference" 的具名插槽,或使用自定义指令v-popover指向 Popover 的索引ref

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.  
  15. </style>
  16. <body>
  17. <div id="app">
  18.    <template>
  19.        <el-popover
  20.                placement="top-start"
  21.                title="标题"
  22.                width="200"
  23.                trigger="hover"
  24.                content="这是一段内容,这是一段内容,这是一段内容,这是一段内容。">
  25.            <el-button slot="reference">hover 激活</el-button>
  26.        </el-popover>
  27.        <el-popover
  28.                placement="bottom"
  29.                title="标题"
  30.                width="200"
  31.                trigger="click"
  32.                content="这是一段内容,这是一段内容,这是一段内容,这是一段内容。">
  33.            <el-button slot="reference">click 激活</el-button>
  34.        </el-popover>
  35.        <el-popover
  36.                ref="popover"
  37.                placement="right"
  38.                title="标题"
  39.                width="200"
  40.                trigger="focus"
  41.                content="这是一段内容,这是一段内容,这是一段内容,这是一段内容。">
  42.        </el-popover>
  43.        <el-button v-popover:popover>focus 激活</el-button>
  44.        <el-popover
  45.                placement="bottom"
  46.                title="标题"
  47.                width="200"
  48.                trigger="manual"
  49.                content="这是一段内容,这是一段内容,这是一段内容,这是一段内容。"
  50.                v-model="visible">
  51.            <el-button slot="reference" @click="visible = !visible">手动激活</el-button>
  52.        </el-popover>
  53.    </template>
  54. </div>
  55. </body>
  56. <script>
  57.    new Vue({
  58.        el: '#app',
  59.        data() {
  60.            return {
  61.                visible: false
  62.           };
  63.       }
  64.   })
  65. </script>
  66. </html>

(4).Card 卡片

将信息聚合在卡片容器中展示。

更多可见官网:https://element.eleme.cn/#/zh-CN/component/card

(5).Carousel 走马灯(轮播图)

在有限空间内,循环播放同一类型的图片、文字等内容

更多可见官网:https://element.eleme.cn/#/zh-CN/component/carousel

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.    .el-carousel__item h3 {
  15.        color: #475669;
  16.        font-size: 14px;
  17.        opacity: 0.75;
  18.        line-height: 150px;
  19.        margin: 0;
  20.   }
  21.    .el-carousel__item:nth-child(2n) {
  22.        background-color: #99a9bf;
  23.   }
  24.    .el-carousel__item:nth-child(2n+1) {
  25.        background-color: #d3dce6;
  26.   }
  27. </style>
  28. <body>
  29. <div id="app">
  30.    <template>
  31.        <div class="block">
  32.            <span class="demonstration">默认 Hover 指示器触发</span>
  33.            <el-carousel height="150px">
  34.                <el-carousel-item v-for="item in 4" :key="item">
  35.                    <h3 class="small">{{ item }}</h3>
  36.                </el-carousel-item>
  37.            </el-carousel>
  38.        </div>
  39.        <div class="block">
  40.            <span class="demonstration">Click 指示器触发</span>
  41.            <el-carousel trigger="click" height="150px">
  42.                <el-carousel-item v-for="item in 4" :key="item">
  43.                    <h3 class="small">{{ item }}</h3>
  44.                </el-carousel-item>
  45.            </el-carousel>
  46.        </div>
  47.    </template>
  48. </div>
  49. </body>
  50. <script>
  51.    new Vue({
  52.        el: '#app'
  53.   })
  54. </script>
  55. </html>

(6).Collapse 折叠面板

通过折叠面板收纳内容区域

更多可见官网:https://element.eleme.cn/#/zh-CN/component/collapse

(7).Timeline 时间线

可视化地呈现时间流信息。

更多可见官网:https://element.eleme.cn/#/zh-CN/component/timeline

基础用法

Timeline 可拆分成多个按照时间戳正序或倒序排列的 activity,时间戳是其区分于其他控件的重要特征,使⽤时注意与 Steps 步骤条等区分。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14.  
  15. </style>
  16. <body>
  17. <div id="app">
  18.    <div class="block">
  19.        <div class="radio">
  20.           排序:
  21.            <el-radio-group v-model="reverse">
  22.                <el-radio :label="true">倒序</el-radio>
  23.                <el-radio :label="false">正序</el-radio>
  24.            </el-radio-group>
  25.        </div>
  26.        <el-timeline :reverse="reverse">
  27.            <el-timeline-item
  28.                    v-for="(activity, index) in activities"
  29.                    :key="index"
  30.                    :timestamp="activity.timestamp">
  31.               {{activity.content}}
  32.            </el-timeline-item>
  33.        </el-timeline>
  34.    </div>
  35. </div>
  36. </body>
  37. <script>
  38.    new Vue({
  39.        el: '#app',
  40.        data() {
  41.            return {
  42.                reverse: true,
  43.                activities: [{
  44.                    content: '活动按期开始',
  45.                    timestamp: '2018-04-15'
  46.               }, {
  47.                    content: '通过审核',
  48.                    timestamp: '2018-04-13'
  49.               }, {
  50.                    content: '创建成功',
  51.                    timestamp: '2018-04-11'
  52.               }]
  53.           };
  54.       }
  55.   })
  56. </script>
  57. </html>

(8).Divider 分割线

区隔内容的分割线。

更多可见官网:https://element.eleme.cn/#/zh-CN/component/divider

(9).Calendar calendar

显示日期

更多可见官网:https://element.eleme.cn/#/zh-CN/component/calendar

(10).Image 图片

图片容器,在保留原生img的特性下,支持懒加载,自定义占位、加载失败等

更多可见官网:https://element.eleme.cn/#/zh-CN/component/image

基础用法

可通过fit确定图片如何适应到容器框,同原生 object-fit。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.    <meta charset="utf-8">
  5.    <title></title>
  6.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  7.    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/display.css">
  8.    <!-- 导入Vue -->
  9.    <script src="https://unpkg.com/vue/dist/vue.js"></script>
  10.    <!-- 引入组件库 -->
  11.    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  12. </head>
  13. <style>
  14. </style>
  15. <body>
  16. <div id="app">
  17.    <div class="demo-image">
  18.        <div class="block" v-for="fit in fits" :key="fit">
  19.            <span class="demonstration">{{ fit }}</span>
  20.            <el-image
  21.                    style="width: 100px; height: 100px"
  22.                    :src="url"
  23.                    :fit="fit"></el-image>
  24.        </div>
  25.    </div>
  26. </div>
  27. </body>
  28. <script>
  29.    new Vue({
  30.        el: '#app',
  31.        data() {
  32.            return {
  33.                fits: ['fill', 'contain', 'cover', 'none', 'scale-down'],
  34.                url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'
  35.           }
  36.       }
  37.   })
  38. </script>
  39. </html>

(11).Backtop 回到顶部

返回页面顶部的操作按钮

更多可见官网:https://element.eleme.cn/#/zh-CN/component/backtop

(12).InfiniteScroll 无限滚动

滚动至底部时,加载更多数据。

更多可见官网:https://element.eleme.cn/#/zh-CN/component/infiniteScroll

=========================【完】=========================

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/97439
推荐阅读
相关标签
  

闽ICP备14008679号