|  | @@ -1,68 +1,68 @@
 | 
											
												
													
														|  | -<!-- @author zhengjie -->
 |  | 
 | 
											
												
													
														|  | -<template>
 |  | 
 | 
											
												
													
														|  | -  <div class="icon-body">
 |  | 
 | 
											
												
													
														|  | -    <el-input v-model="name" style="position: relative;" clearable placeholder="请输入图标名称" @clear="filterIcons" @input.native="filterIcons">
 |  | 
 | 
											
												
													
														|  | -      <i slot="suffix" class="el-icon-search el-input__icon" />
 |  | 
 | 
											
												
													
														|  | -    </el-input>
 |  | 
 | 
											
												
													
														|  | -    <div class="icon-list">
 |  | 
 | 
											
												
													
														|  | -      <div v-for="(item, index) in iconList" :key="index" @click="selectedIcon(item)">
 |  | 
 | 
											
												
													
														|  | -        <svg-icon :icon-class="item" style="height: 30px;width: 16px;" />
 |  | 
 | 
											
												
													
														|  | -        <span>{{ item }}</span>
 |  | 
 | 
											
												
													
														|  | -      </div>
 |  | 
 | 
											
												
													
														|  | -    </div>
 |  | 
 | 
											
												
													
														|  | -  </div>
 |  | 
 | 
											
												
													
														|  | -</template>
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -<script>
 |  | 
 | 
											
												
													
														|  | -import icons from './requireIcons'
 |  | 
 | 
											
												
													
														|  | -export default {
 |  | 
 | 
											
												
													
														|  | -  name: 'IconSelect',
 |  | 
 | 
											
												
													
														|  | -  data() {
 |  | 
 | 
											
												
													
														|  | -    return {
 |  | 
 | 
											
												
													
														|  | -      name: '',
 |  | 
 | 
											
												
													
														|  | -      iconList: icons
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | -  },
 |  | 
 | 
											
												
													
														|  | -  methods: {
 |  | 
 | 
											
												
													
														|  | -    filterIcons() {
 |  | 
 | 
											
												
													
														|  | -      this.iconList = icons
 |  | 
 | 
											
												
													
														|  | -      if (this.name) {
 |  | 
 | 
											
												
													
														|  | -        this.iconList = this.iconList.filter(item => item.includes(this.name))
 |  | 
 | 
											
												
													
														|  | -      }
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | -    selectedIcon(name) {
 |  | 
 | 
											
												
													
														|  | -      this.$emit('selected', name)
 |  | 
 | 
											
												
													
														|  | -      document.body.click()
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | -    reset() {
 |  | 
 | 
											
												
													
														|  | -      this.name = ''
 |  | 
 | 
											
												
													
														|  | -      this.iconList = icons
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | -  }
 |  | 
 | 
											
												
													
														|  | -}
 |  | 
 | 
											
												
													
														|  | -</script>
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -<style rel="stylesheet/scss" lang="scss" scoped>
 |  | 
 | 
											
												
													
														|  | -  .icon-body {
 |  | 
 | 
											
												
													
														|  | -    width: 100%;
 |  | 
 | 
											
												
													
														|  | -    padding: 10px;
 |  | 
 | 
											
												
													
														|  | -    .icon-list {
 |  | 
 | 
											
												
													
														|  | -      height: 200px;
 |  | 
 | 
											
												
													
														|  | -      overflow-y: scroll;
 |  | 
 | 
											
												
													
														|  | -      div {
 |  | 
 | 
											
												
													
														|  | -        height: 30px;
 |  | 
 | 
											
												
													
														|  | -        line-height: 30px;
 |  | 
 | 
											
												
													
														|  | -        margin-bottom: -5px;
 |  | 
 | 
											
												
													
														|  | -        cursor: pointer;
 |  | 
 | 
											
												
													
														|  | -        width: 33%;
 |  | 
 | 
											
												
													
														|  | -        float: left;
 |  | 
 | 
											
												
													
														|  | -      }
 |  | 
 | 
											
												
													
														|  | -      span {
 |  | 
 | 
											
												
													
														|  | -        display: inline-block;
 |  | 
 | 
											
												
													
														|  | -        vertical-align: -0.15em;
 |  | 
 | 
											
												
													
														|  | -        fill: currentColor;
 |  | 
 | 
											
												
													
														|  | -        overflow: hidden;
 |  | 
 | 
											
												
													
														|  | -      }
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | -  }
 |  | 
 | 
											
												
													
														|  | -</style>
 |  | 
 | 
											
												
													
														|  | 
 |  | +<!-- @author zhengjie -->
 | 
											
												
													
														|  | 
 |  | +<template>
 | 
											
												
													
														|  | 
 |  | +  <div class="icon-body">
 | 
											
												
													
														|  | 
 |  | +    <el-input v-model="name" style="position: relative;" clearable placeholder="请输入图标名称" @clear="filterIcons" @input="filterIcons">
 | 
											
												
													
														|  | 
 |  | +      <i slot="suffix" class="el-icon-search el-input__icon" />
 | 
											
												
													
														|  | 
 |  | +    </el-input>
 | 
											
												
													
														|  | 
 |  | +    <div class="icon-list">
 | 
											
												
													
														|  | 
 |  | +      <div v-for="(item, index) in iconList" :key="index" @click="selectedIcon(item)">
 | 
											
												
													
														|  | 
 |  | +        <svg-icon :icon-class="item" style="height: 30px;width: 16px;" />
 | 
											
												
													
														|  | 
 |  | +        <span>{{ item }}</span>
 | 
											
												
													
														|  | 
 |  | +      </div>
 | 
											
												
													
														|  | 
 |  | +    </div>
 | 
											
												
													
														|  | 
 |  | +  </div>
 | 
											
												
													
														|  | 
 |  | +</template>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +<script>
 | 
											
												
													
														|  | 
 |  | +import icons from './requireIcons'
 | 
											
												
													
														|  | 
 |  | +export default {
 | 
											
												
													
														|  | 
 |  | +  name: 'IconSelect',
 | 
											
												
													
														|  | 
 |  | +  data() {
 | 
											
												
													
														|  | 
 |  | +    return {
 | 
											
												
													
														|  | 
 |  | +      name: '',
 | 
											
												
													
														|  | 
 |  | +      iconList: icons
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  methods: {
 | 
											
												
													
														|  | 
 |  | +    filterIcons() {
 | 
											
												
													
														|  | 
 |  | +      this.iconList = icons
 | 
											
												
													
														|  | 
 |  | +      if (this.name) {
 | 
											
												
													
														|  | 
 |  | +        this.iconList = this.iconList.filter(item => item.includes(this.name))
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    selectedIcon(name) {
 | 
											
												
													
														|  | 
 |  | +      this.$emit('selected', name)
 | 
											
												
													
														|  | 
 |  | +      document.body.click()
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    reset() {
 | 
											
												
													
														|  | 
 |  | +      this.name = ''
 | 
											
												
													
														|  | 
 |  | +      this.iconList = icons
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +</script>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +<style rel="stylesheet/scss" lang="scss" scoped>
 | 
											
												
													
														|  | 
 |  | +  .icon-body {
 | 
											
												
													
														|  | 
 |  | +    width: 100%;
 | 
											
												
													
														|  | 
 |  | +    padding: 10px;
 | 
											
												
													
														|  | 
 |  | +    .icon-list {
 | 
											
												
													
														|  | 
 |  | +      height: 200px;
 | 
											
												
													
														|  | 
 |  | +      overflow-y: scroll;
 | 
											
												
													
														|  | 
 |  | +      div {
 | 
											
												
													
														|  | 
 |  | +        height: 30px;
 | 
											
												
													
														|  | 
 |  | +        line-height: 30px;
 | 
											
												
													
														|  | 
 |  | +        margin-bottom: -5px;
 | 
											
												
													
														|  | 
 |  | +        cursor: pointer;
 | 
											
												
													
														|  | 
 |  | +        width: 33%;
 | 
											
												
													
														|  | 
 |  | +        float: left;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +      span {
 | 
											
												
													
														|  | 
 |  | +        display: inline-block;
 | 
											
												
													
														|  | 
 |  | +        vertical-align: -0.15em;
 | 
											
												
													
														|  | 
 |  | +        fill: currentColor;
 | 
											
												
													
														|  | 
 |  | +        overflow: hidden;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +</style>
 |