Tag 标签

用于标记和选择。

基础用法

Tag 标签 - 图1

type属性来选择tag的类型,也可以通过color属性来自定义背景色。

  1. <el-tag>标签一</el-tag>
  2. <el-tag type="success">标签二</el-tag>
  3. <el-tag type="info">标签三</el-tag>
  4. <el-tag type="warning">标签四</el-tag>
  5. <el-tag type="danger">标签五</el-tag>

可移除标签

Tag 标签 - 图2

设置closable属性可以定义一个标签是否可移除。默认的标签移除时会附带渐变动画,如果不想使用,可以设置disable-transitions属性,它接受一个Boolean,true 为关闭。

  1. <el-tag
  2. v-for="tag in tags"
  3. :key="tag.name"
  4. closable
  5. :type="tag.type">
  6. {{tag.name}}
  7. </el-tag>
  8. <script>
  9. export default {
  10. data() {
  11. return {
  12. tags: [
  13. { name: '标签一', type: '' },
  14. { name: '标签二', type: 'success' },
  15. { name: '标签三', type: 'info' },
  16. { name: '标签四', type: 'warning' },
  17. { name: '标签五', type: 'danger' }
  18. ]
  19. };
  20. }
  21. }
  22. </script>

动态编辑标签

动态编辑标签可以通过点击标签关闭按钮后触发的 close 事件来实现

Tag 标签 - 图3

  1. <el-tag
  2. :key="tag"
  3. v-for="tag in dynamicTags"
  4. closable
  5. :disable-transitions="false"
  6. @close="handleClose(tag)">
  7. {{tag}}
  8. </el-tag>
  9. <el-input
  10. class="input-new-tag"
  11. v-if="inputVisible"
  12. v-model="inputValue"
  13. ref="saveTagInput"
  14. size="small"
  15. @keyup.enter.native="handleInputConfirm"
  16. @blur="handleInputConfirm"
  17. >
  18. </el-input>
  19. <el-button v-else class="button-new-tag" size="small" @click="showInput">+ New Tag</el-button>
  20. <style>
  21. .el-tag + .el-tag {
  22. margin-left: 10px;
  23. }
  24. .button-new-tag {
  25. margin-left: 10px;
  26. height: 32px;
  27. line-height: 30px;
  28. padding-top: 0;
  29. padding-bottom: 0;
  30. }
  31. .input-new-tag {
  32. width: 90px;
  33. margin-left: 10px;
  34. vertical-align: bottom;
  35. }
  36. </style>
  37. <script>
  38. export default {
  39. data() {
  40. return {
  41. dynamicTags: ['标签一', '标签二', '标签三'],
  42. inputVisible: false,
  43. inputValue: ''
  44. };
  45. },
  46. methods: {
  47. handleClose(tag) {
  48. this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
  49. },
  50. showInput() {
  51. this.inputVisible = true;
  52. this.$nextTick(_ => {
  53. this.$refs.saveTagInput.$refs.input.focus();
  54. });
  55. },
  56. handleInputConfirm() {
  57. let inputValue = this.inputValue;
  58. if (inputValue) {
  59. this.dynamicTags.push(inputValue);
  60. }
  61. this.inputVisible = false;
  62. this.inputValue = '';
  63. }
  64. }
  65. }
  66. </script>

不同尺寸

Tag 组件提供除了默认值以外的三种尺寸,可以在不同场景下选择合适的按钮尺寸。

Tag 标签 - 图4

额外的尺寸:mediumsmallmini,通过设置size属性来配置它们。

  1. <el-tag closable>默认标签</el-tag>
  2. <el-tag size="medium" closable>中等标签</el-tag>
  3. <el-tag size="small" closable>小型标签</el-tag>
  4. <el-tag size="mini" closable>超小标签</el-tag>

不同主题

Tag 组件提供了三个不同的主题:darklightplain

Tag 标签 - 图5

通过设置effect属性来改变主题,默认为 light

  1. <div class="tag-group">
  2. <span class="tag-group__title">Dark</span>
  3. <el-tag
  4. v-for="item in items"
  5. :key="item.label"
  6. :type="item.type"
  7. effect="dark">
  8. {{ item.label }}
  9. </el-tag>
  10. </div>
  11. <div class="tag-group">
  12. <span class="tag-group__title">Plain</span>
  13. <el-tag
  14. v-for="item in items"
  15. :key="item.label"
  16. :type="item.type"
  17. effect="plain">
  18. {{ item.label }}
  19. </el-tag>
  20. </div>
  21. <script>
  22. export default {
  23. data() {
  24. return {
  25. items: [
  26. { type: '', label: '标签一' },
  27. { type: 'success', label: '标签二' },
  28. { type: 'info', label: '标签三' },
  29. { type: 'danger', label: '标签四' },
  30. { type: 'warning', label: '标签五' }
  31. ]
  32. }
  33. }
  34. }
  35. </script>

Attributes

参数说明类型可选值默认值
type类型stringsuccess/info/warning/danger
closable是否可关闭booleanfalse
disable-transitions是否禁用渐变动画booleanfalse
hit是否有边框描边booleanfalse
color背景色string
size尺寸stringmedium / small / mini
effect主题stringdark / light / plainlight

Events

事件名称说明回调参数
click点击 Tag 时触发的事件
close关闭 Tag 时触发的事件