index.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <template>
  2. <div>
  3. <el-dialog
  4. title="图标选择"
  5. :close-on-click-modal="false"
  6. v-dialogDrag
  7. :visible.sync="visible">
  8. <el-tabs value="first" type="card">
  9. <el-tab-pane label="Element图标" name="first">
  10. <ul class="icon-list">
  11. <li v-for="(item, index) in iconList"
  12. :key="index">
  13. <el-button
  14. @click="iconActiveHandle(item)"
  15. :class="{ 'is-active': item === icon }">
  16. <i :class="item"></i>
  17. </el-button>
  18. </li>
  19. </ul>
  20. </el-tab-pane>
  21. <el-tab-pane label="Font Awesome图标" name="second">
  22. <ul class="icon-list">
  23. <li v-for="(item, index) in iconList2"
  24. :key="index">
  25. <el-button
  26. @click="iconActiveHandle(item)"
  27. :class="{ 'is-active': item === icon }">
  28. <i :class="item"></i>
  29. </el-button>
  30. </li>
  31. </ul>
  32. </el-tab-pane>
  33. </el-tabs>
  34. <span slot="footer" class="dialog-footer">
  35. <el-button size="small" @click="visible = false" icon="el-icon-circle-close">关闭</el-button>
  36. <el-button size="small" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
  37. </span>
  38. </el-dialog>
  39. </div>
  40. </template>
  41. <script>
  42. import icons from '@/utils/icons'
  43. import icons2 from '@/utils/icons2'
  44. export default {
  45. name: 'Icon',
  46. data () {
  47. return {
  48. visible: false,
  49. iconList: icons,
  50. iconList2: icons2,
  51. icon: ''
  52. }
  53. },
  54. methods: {
  55. // 图标选中
  56. iconActiveHandle (iconName) {
  57. this.icon = iconName
  58. },
  59. doSubmit () {
  60. this.$emit('getValue', this.icon)
  61. this.visible = false
  62. }
  63. }
  64. }
  65. </script>
  66. <style scoped>
  67. ul{
  68. margin: 10px 0;
  69. padding: 0 0 0 20px;
  70. font-size: 14px;
  71. color: #5e6d82;
  72. line-height: 2em;
  73. }
  74. ul.icon-list {
  75. overflow: hidden;
  76. list-style: none;
  77. padding: 0!important;
  78. border: 1px solid #eaeefb;
  79. border-radius: 4px;
  80. }
  81. .icon-list li {
  82. float: left;
  83. width: 10%;
  84. text-align: center;
  85. height:50px;
  86. line-height: 50px;
  87. color: #666;
  88. font-size: 13px;
  89. border-right: 1px solid #eee;
  90. border-bottom: 1px solid #eee;
  91. margin-right: -1px;
  92. margin-bottom: -1px;
  93. }
  94. </style>