index.vue 2.2 KB
Newer Older
P
Pan 已提交
1 2
<template>
  <div class="icons-container">
P
Pan 已提交
3
    <p class="warn-content">
P
Pan 已提交
4
      <a href="https://panjiachen.github.io/vue-element-admin-site/guide/advanced/icon.html" target="_blank">Add and use
花裤衩 已提交
5
      </a>
P
Pan 已提交
6
    </p>
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
    <el-tabs type="border-card">
      <el-tab-pane label="Icons">
        <div v-for="item of iconsMap" :key="item" @click="handleClipboard(generateIconCode(item),$event)">
          <el-tooltip placement="top">
            <div slot="content">
              {{ generateIconCode(item) }}
            </div>
            <div class="icon-item">
              <svg-icon :icon-class="item" class-name="disabled" />
              <span>{{ item }}</span>
            </div>
          </el-tooltip>
        </div>
      </el-tab-pane>
      <el-tab-pane label="Element-UI Icons">
        <div v-for="item of elementIcons" :key="item" @click="handleClipboard(generateElementIconCode(item),$event)">
          <el-tooltip placement="top">
            <div slot="content">
              {{ generateElementIconCode(item) }}
            </div>
            <div class="icon-item">
              <i :class="'el-icon-' + item" />
              <span>{{ item }}</span>
            </div>
          </el-tooltip>
        </div>
      </el-tab-pane>
    </el-tabs>
P
Pan 已提交
35 36 37 38
  </div>
</template>

<script>
P
Pan 已提交
39
import clipboard from '@/utils/clipboard'
40 41
import icons from './requireIcons'
import elementIcons from './element-icon.json'
P
Pan 已提交
42 43

export default {
44
  name: 'Icons',
P
Pan 已提交
45 46
  data() {
    return {
47 48
      iconsMap: icons,
      elementIcons: elementIcons
P
Pan 已提交
49 50
    }
  },
P
Pan 已提交
51 52
  methods: {
    generateIconCode(symbol) {
P
Pan 已提交
53
      return `<svg-icon icon-class="${symbol}" />`
P
Pan 已提交
54
    },
55 56 57
    generateElementIconCode(symbol) {
      return `<i class="el-icon-${symbol}" />`
    },
P
Pan 已提交
58 59 60
    handleClipboard(text, event) {
      clipboard(text, event)
    }
P
Pan 已提交
61 62 63 64
  }
}
</script>

花裤衩 已提交
65
<style lang="scss" scoped>
P
Pan 已提交
66
.icons-container {
P
Pan 已提交
67
  margin: 10px 20px 0;
P
Pan 已提交
68
  overflow: hidden;
69

P
Pan 已提交
70 71
  .icon-item {
    margin: 20px;
72
    height: 85px;
P
Pan 已提交
73
    text-align: center;
74
    width: 100px;
P
Pan 已提交
75
    float: left;
P
Pan 已提交
76 77
    font-size: 30px;
    color: #24292e;
P
Pan 已提交
78
    cursor: pointer;
P
Pan 已提交
79
  }
80

P
Pan 已提交
81 82
  span {
    display: block;
83
    font-size: 16px;
P
Pan 已提交
84 85
    margin-top: 10px;
  }
86 87

  .disabled {
P
Pan 已提交
88 89
    pointer-events: none;
  }
P
Pan 已提交
90 91
}
</style>