| 
					
				 | 
			
			
				@@ -1,14 +1,20 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <!-- @author zhengjie --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   <div class="icon-body"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    <el-input v-model="name" style="position: relative;" clearable placeholder="请输入图标名称" @clear="filterIcons" @input="filterIcons"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-input v-model="name" class="icon-search" 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> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-scrollbar> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="list-container"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div v-for="(item, index) in iconList" class="icon-item-wrapper" :key="index" @click="selectedIcon(item)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div :class="['icon-item', { active: activeIcon === item }]"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <svg-icon :icon-class="item" class-name="icon" style="height: 30px;width: 16px;" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <span :title="item">{{ item }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-scrollbar> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17,6 +23,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import icons from './requireIcons' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   name: 'IconSelect', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  props: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    activeIcon: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: String 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       name: '', 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -46,22 +57,55 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   .icon-body { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     padding: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .icon-search { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      margin-bottom: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     .icon-list { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       height: 200px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      overflow-y: scroll; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      div { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        height: 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        line-height: 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        margin-bottom: -5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        width: 33%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        float: left; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ::v-deep .el-scrollbar { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        height: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .el-scrollbar__wrap { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          overflow-x: hidden; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      span { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        display: inline-block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        vertical-align: -0.15em; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        fill: currentColor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        overflow: hidden; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .list-container { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        flex-wrap: wrap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        .icon-item-wrapper { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          width: calc(100% / 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          height: 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          line-height: 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          margin-bottom: -5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          .icon-item { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            max-width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            height: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            padding: 0 2px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            &:hover { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              background: #ececec; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              border-radius: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            .icon { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              flex-shrink: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            span { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              display: inline-block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              vertical-align: -0.15em; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              fill: currentColor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              padding-left: 2px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              overflow: hidden; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              text-overflow: ellipsis; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              white-space: nowrap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          .icon-item.active { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            background: #ececec; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            border-radius: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 |