From 46f79b491173d284a4900d19e7aecf7509481438 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 21 一月 2022 17:21:25 +0800
Subject: [PATCH] 2022-01-21

---
 src/components/mkIcon/index.jsx |   33 ++++++++++++++++++++++++---------
 1 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/src/components/mkIcon/index.jsx b/src/components/mkIcon/index.jsx
index c1c7c13..dcb0684 100644
--- a/src/components/mkIcon/index.jsx
+++ b/src/components/mkIcon/index.jsx
@@ -1,12 +1,16 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Modal, Icon, Row, Col, Button } from 'antd'
+import { Modal, Row, Col, Button } from 'antd'
+import { CloseCircleFilled } from '@ant-design/icons'
 
 import { minkeIconSystem } from '@/utils/option.js'
+import MkIcon from '@/components/mk-icon'
 import './index.scss'
 
-class MkIcon extends Component {
+// ['direction', 'edit', 'normal', 'data', 'hint']
+
+class MkEditIcon extends Component {
   static propTpyes = {
     onChange: PropTypes.func
   }
@@ -14,17 +18,28 @@
   state = {
     selectIcon: '',
     allowClear: false,
-    icons: [...minkeIconSystem.direction, ...minkeIconSystem.edit, ...minkeIconSystem.normal, ...minkeIconSystem.trademark, ...minkeIconSystem.data, ...minkeIconSystem.hint],
+    icons: [],
     visible: false
   }
 
   UNSAFE_componentWillMount () {
+    const { options } = this.props
     let val = ''
     if (this.props['data-__meta']) {
       val = this.props['data-__meta'].initialValue || ''
     }
 
-    this.setState({selectIcon: val, allowClear: this.props.allowClear === true})
+    let icons = []
+
+    if (options) {
+      options.forEach(item => {
+        icons.push(...minkeIconSystem[item])
+      })
+    } else {
+      icons = [...minkeIconSystem.direction, ...minkeIconSystem.edit, ...minkeIconSystem.normal, ...minkeIconSystem.data, ...minkeIconSystem.hint]
+    }
+
+    this.setState({selectIcon: val, allowClear: this.props.allowClear === true, icons})
   }
 
   shouldComponentUpdate (nextProps, nextState) {
@@ -41,9 +56,9 @@
 
     return (
       <div className="mk-icon-box">
-        {selectIcon ? <Icon type={selectIcon}/> : <Icon style={{opacity: 0}} type="plus"/>}
-        <Icon className="trigger" onClick={() => this.setState({visible: true})} type="swap"/>
-        {allowClear && selectIcon ? <Icon className="close" onClick={() => this.checkIcon('')} theme="filled" type="close-circle"/> : null}
+        {selectIcon ? <MkIcon type={selectIcon}/> : <span style={{color: '#bcbcbc'}}>璇烽�夋嫨</span>}
+        <MkIcon className="trigger" onClick={() => this.setState({visible: true})} type="swap"/>
+        {allowClear && selectIcon ? <CloseCircleFilled className="close" onClick={() => this.checkIcon('')}/> : null}
         <Modal
           wrapClassName="popview-modal mk-icon-wrap"
           title={'鍥炬爣閫夋嫨'}
@@ -58,7 +73,7 @@
         >
           <Row>
             {icons.map(icon => <Col className={icon === selectIcon ? 'active' : ''} key={icon} span={4}>
-              <Icon onClick={() => this.checkIcon(icon)} type={icon} />
+              <MkIcon onClick={() => this.checkIcon(icon)} type={icon} />
             </Col>)}
           </Row>
         </Modal>
@@ -67,4 +82,4 @@
   }
 }
 
-export default MkIcon
\ No newline at end of file
+export default MkEditIcon
\ No newline at end of file

--
Gitblit v1.8.0