From 2eaada6f6f71abfc90ccaeb6e3c471e42ae427da Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 21 十二月 2021 18:09:29 +0800
Subject: [PATCH] 2021-12-21

---
 src/components/tabview/index.jsx                                       |    7 
 src/components/tabview/index.scss                                      |   34 ----
 src/menu/components/card/cardsimplecomponent/node-wrap/menus/index.jsx |    4 
 src/menu/components/card/cardsimplecomponent/node-wrap/index.jsx       |    6 
 src/components/header/index.jsx                                        |    9 
 src/menu/components/card/table-card/index.jsx                          |   17 +-
 src/menu/components/card/cardcellcomponent/dragaction/action.jsx       |   20 +-
 src/menu/components/card/cardcellcomponent/elementform/index.jsx       |    4 
 src/menu/components/chart/chart-custom/index.jsx                       |   11 
 src/menu/components/card/cardcellcomponent/dragaction/card.jsx         |   15 +
 src/menu/components/chart/antv-bar/index.jsx                           |   13 +
 src/menu/components/chart/antv-scatter/index.jsx                       |   13 +
 src/menu/components/code/sandbox/index.jsx                             |   13 +
 src/menu/components/chart/chart-custom/chartcompile/index.jsx          |    5 
 src/tabviews/iframe/index.jsx                                          |   26 ---
 src/components/breadview/index.scss                                    |   26 ---
 src/components/header/loginform.jsx                                    |    8 
 src/components/paste/index.jsx                                         |    5 
 src/menu/components/carousel/data-card/index.jsx                       |   11 
 src/components/header/index.scss                                       |    2 
 src/menu/components/card/balcony/index.jsx                             |   17 +-
 src/menu/components/card/data-card/node-wrap/index.jsx                 |    5 
 src/menu/components/carousel/prop-card/index.jsx                       |   15 +-
 src/menu/components/card/cardcomponent/index.jsx                       |   21 +-
 src/menu/components/card/data-card/index.jsx                           |   17 +-
 src/menu/components/card/cardsimplecomponent/index.jsx                 |   21 +-
 src/menu/components/chart/antv-pie/index.jsx                           |   11 
 src/components/breadview/index.jsx                                     |   11 
 src/menu/components/card/cardcomponent/menus-wrap/index.jsx            |    5 
 src/menu/components/chart/antv-dashboard/index.jsx                     |    9 
 src/components/sidemenu/index.jsx                                      |    5 
 src/menu/components/card/prop-card/index.jsx                           |   15 +-
 32 files changed, 179 insertions(+), 222 deletions(-)

diff --git a/src/components/breadview/index.jsx b/src/components/breadview/index.jsx
index 81c67b9..9f1a97d 100644
--- a/src/components/breadview/index.jsx
+++ b/src/components/breadview/index.jsx
@@ -1,6 +1,7 @@
 import React, {Component} from 'react'
 import {connect} from 'react-redux'
-import { BackTop, Breadcrumb, Icon, notification} from 'antd'
+import { BackTop, Breadcrumb, notification} from 'antd'
+import { HomeOutlined, RightOutlined, RedoOutlined } from '@ant-design/icons'
 import moment from 'moment'
 import 'moment/locale/zh-cn'
 
@@ -168,17 +169,17 @@
       <section id="mk-breadview-wrap" className="mk-breadview-wrap">
         {hasNavBar && tabview ? <Breadcrumb separator="">
           <Breadcrumb.Item>
-            <Icon type="home" onClick={this.gotoHome} />
+            <HomeOutlined onClick={this.gotoHome} />
           </Breadcrumb.Item>
           {tabview.ParentNames && tabview.ParentNames[0] ?
             <Breadcrumb.Item>{tabview.ParentNames[0]}</Breadcrumb.Item> : null}
           {tabview.ParentNames && tabview.ParentNames[0] ?
-              <Breadcrumb.Separator children={<Icon type="right" />} /> : null}
+              <Breadcrumb.Separator children={<RightOutlined />} /> : null}
           {tabview.ParentNames && tabview.ParentNames[1] ?
             <Breadcrumb.Item>{tabview.ParentNames[1]}</Breadcrumb.Item> : null}
           {tabview.ParentNames && tabview.ParentNames[1] ?
-              <Breadcrumb.Separator children={<Icon type="right" />} /> : null}
-          <Breadcrumb.Item><Icon type="redo" onClick={this.refreshTabview}/>{tabview.MenuName}</Breadcrumb.Item>
+              <Breadcrumb.Separator children={<RightOutlined />} /> : null}
+          <Breadcrumb.Item><RedoOutlined onClick={this.refreshTabview}/>{tabview.MenuName}</Breadcrumb.Item>
         </Breadcrumb> : null}
         {tabview ? this.selectcomponent(tabview) : null}
         <BackTop>
diff --git a/src/components/breadview/index.scss b/src/components/breadview/index.scss
index 6abee24..52d908d 100644
--- a/src/components/breadview/index.scss
+++ b/src/components/breadview/index.scss
@@ -35,32 +35,6 @@
     border: 0;
     margin-top: 16px;
   }
-  .main-copy {
-    position: fixed;
-    z-index: 20;
-    bottom: 65px;
-    right: 30px;
-    width: 40px;
-    height: 40px;
-    i {
-      font-size: 18px;
-    }
-  }
-  .main-copy.ifr-copy {
-    bottom: 65px;
-    right: 40px;
-    width: 30px;
-    height: 32px;
-    border: 2px solid #687991;
-    opacity: 0.6;
-    i {
-      font-size: 14px;
-      color: #687991;
-    }
-  }
-  .main-copy.ifr-copy:hover {
-    opacity: 1;
-  }
   .ant-back-top {
     bottom: 10px;
     right: 20px;
diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx
index c086846..dca77b8 100644
--- a/src/components/header/index.jsx
+++ b/src/components/header/index.jsx
@@ -4,7 +4,8 @@
 import {connect} from 'react-redux'
 import { is, fromJS } from 'immutable'
 import moment from 'moment'
-import { Dropdown, Menu, Icon, Modal, Form, notification, Switch, Input } from 'antd'
+import { Dropdown, Menu, Modal, Form, notification, Switch, Input } from 'antd'
+import { SearchOutlined, DownOutlined, MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'
 
 import {
   toggleCollapse,
@@ -701,7 +702,7 @@
       <header className="header-container ant-menu-dark" id="main-header-container">
         <div className={'header-logo ' + (collapse && navBar !== 'topmenu' ? 'collapse' : '')}><img src={this.state.logourl} alt=""/></div>
         <div className={'header-collapse ' + (collapse && navBar !== 'topmenu' ? 'collapse' : '')}>
-          {navBar !== 'topmenu' ? <Icon type={collapse ? 'menu-unfold' : 'menu-fold'} onClick={this.handleCollapse}/> : null}
+          {navBar !== 'topmenu' ? (collapse ? <MenuUnfoldOutlined onClick={this.handleCollapse}/> : <MenuFoldOutlined onClick={this.handleCollapse}/>) : null}
         </div>
         {/* 姝e父鑿滃崟 */}
         {navBar !== 'topmenu' && menulist ?
@@ -801,7 +802,7 @@
           <div>
             <img src={this.state.avatar || avatar} alt=""/>
             <span>
-              <span className="username">{this.state.userName}</span> <Icon type="down" />
+              <span className="username">{this.state.userName}</span> <DownOutlined />
             </span>
           </div>
         </Dropdown>
@@ -838,7 +839,7 @@
               </div>
             </div>
           } trigger={['click']} className="search-menu" placement="bottomRight" onVisibleChange={this.dropdownMenuChange}>
-            <Icon className="search-menu" type="search" />
+            <SearchOutlined className="search-menu" />
           </Dropdown> : null
         }
         {/* 淇敼瀵嗙爜 */}
diff --git a/src/components/header/index.scss b/src/components/header/index.scss
index 6ddedb5..78fb275 100644
--- a/src/components/header/index.scss
+++ b/src/components/header/index.scss
@@ -35,7 +35,7 @@
     padding-left: 10px;
     margin: 0 10px;
     transition: padding-left 0.15s;
-    i {
+    .anticon {
       cursor: pointer;
       position: relative;
       top: 3px;
diff --git a/src/components/header/loginform.jsx b/src/components/header/loginform.jsx
index 78b4e82..be94096 100644
--- a/src/components/header/loginform.jsx
+++ b/src/components/header/loginform.jsx
@@ -1,6 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Form, Icon, Input, Checkbox } from 'antd'
+import { Form, Input, Checkbox } from 'antd'
+import { UserOutlined, LockOutlined } from '@ant-design/icons'
+
 import zhCN from '@/locales/zh-CN/login.js'
 import enUS from '@/locales/en-US/login.js'
 import './index.scss'
@@ -95,7 +97,7 @@
             initialValue: username,
           })(
             <Input
-              prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />}
+              prefix={<UserOutlined style={{ color: 'rgba(0,0,0,.25)' }}/>}
               placeholder={this.state.dict['login.username']}
               autoComplete="off"
               onPressEnter={(e) => {this.handleSubmit(e, 'password')}}
@@ -111,7 +113,7 @@
                 message: this.state.dict['login.password.empty'],
               }
             ]
-          })(<Input.Password onPressEnter={(e) => {this.handleSubmit(e, 'username')}} placeholder={this.state.dict['login.password']} prefix={<Icon type="lock" style={{ color: 'rgba(0,0,0,.25)' }} />} />)}
+          })(<Input.Password onPressEnter={(e) => {this.handleSubmit(e, 'username')}} placeholder={this.state.dict['login.password']} prefix={<LockOutlined style={{ color: 'rgba(0,0,0,.25)' }} />} />)}
         </Form.Item>
         <Form.Item style={{marginBottom: '10px'}}>
           {getFieldDecorator('remember', {
diff --git a/src/components/paste/index.jsx b/src/components/paste/index.jsx
index 5efc6b6..7fc8904 100644
--- a/src/components/paste/index.jsx
+++ b/src/components/paste/index.jsx
@@ -1,6 +1,7 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Icon, Modal, notification } from 'antd'
+import { Modal, notification } from 'antd'
+import { SnippetsOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 
@@ -51,7 +52,7 @@
 
     return (
       <div style={{display: 'inline-block'}}>
-        <Icon type="snippets" style={{color: 'purple'}} onClick={() => {this.setState({visible: true})}} />
+        <SnippetsOutlined style={{color: 'purple'}} onClick={() => {this.setState({visible: true})}} />
         <Modal
           title="绮樿创"
           visible={visible}
diff --git a/src/components/sidemenu/index.jsx b/src/components/sidemenu/index.jsx
index 779ba7c..4df598a 100644
--- a/src/components/sidemenu/index.jsx
+++ b/src/components/sidemenu/index.jsx
@@ -2,9 +2,10 @@
 import PropTypes from 'prop-types'
 import { connect } from 'react-redux'
 import { is, fromJS } from 'immutable'
-import { Menu, Icon } from 'antd'
+import { Menu } from 'antd'
 
 import MKEmitter from '@/utils/events.js'
+import MkIcon from '@/components/mk-icon'
 import './index.scss'
 
 const { SubMenu } = Menu
@@ -102,7 +103,7 @@
                 key={item.MenuID}
                 title={
                   <span>
-                    <Icon type={item.PageParam.Icon} />
+                    <MkIcon type={item.PageParam.Icon} />
                     <span>{item.MenuName}</span>
                   </span>
                 }
diff --git a/src/components/tabview/index.jsx b/src/components/tabview/index.jsx
index 58f4ffa..d5320f5 100644
--- a/src/components/tabview/index.jsx
+++ b/src/components/tabview/index.jsx
@@ -2,7 +2,8 @@
 import PropTypes from 'prop-types'
 import {connect} from 'react-redux'
 import { fromJS } from 'immutable'
-import {Tabs, Icon, BackTop, notification} from 'antd'
+import {Tabs, BackTop, notification} from 'antd'
+import { RedoOutlined, CloseOutlined } from '@ant-design/icons'
 import moment from 'moment'
 import 'moment/locale/zh-cn'
 
@@ -278,12 +279,12 @@
                   <Tabs.TabPane
                     tab={
                       <span className="tab-control">
-                        <Icon type="redo" onClick={(e) => {this.refreshTabview(e, view)}}/>
+                        <RedoOutlined onClick={(e) => {this.refreshTabview(e, view)}}/>
                         <span className="tab-name" onClick={(e) => {this.changeTab(e, view)}}>
                           {view.MenuName}
                         </span>
                         {view.type !== 'Home' ?
-                          <Icon type="close" onClick={(e) => {e.stopPropagation();this.closeTabView(view.MenuID)}}/> : null
+                          <CloseOutlined onClick={(e) => {e.stopPropagation();this.closeTabView(view.MenuID)}}/> : null
                         }
                       </span>
                     }
diff --git a/src/components/tabview/index.scss b/src/components/tabview/index.scss
index 332f6ad..6f2fee2 100644
--- a/src/components/tabview/index.scss
+++ b/src/components/tabview/index.scss
@@ -16,7 +16,7 @@
           padding: 18px 16px 6px 6px;
           margin-right: 20px;
           cursor: default;
-          span.tab-control i.anticon-close {
+          span.tab-control .anticon-close {
             position: absolute;
             right: -7px;
             top: 10px;
@@ -26,7 +26,7 @@
             cursor: pointer;
             display: none;
           }
-          span.tab-control i.anticon-redo {
+          span.tab-control .anticon-redo {
             position: absolute;
             left: -2px;
             top: 18px;
@@ -47,12 +47,12 @@
           }
         }
         .ant-tabs-tab:hover {
-          span.tab-control i.anticon-close {
+          span.tab-control .anticon-close {
             display: inline-block;
           }
         }
         .ant-tabs-tab-active.ant-tabs-tab:hover {
-          span.tab-control i.anticon-redo {
+          span.tab-control .anticon-redo {
             display: inline-block;
           }
         }
@@ -73,32 +73,6 @@
       border: 0;
       margin-top: 16px;
     }
-  }
-  .main-copy {
-    position: fixed;
-    z-index: 20;
-    bottom: 65px;
-    right: 30px;
-    width: 40px;
-    height: 40px;
-    i {
-      font-size: 18px;
-    }
-  }
-  .main-copy.ifr-copy {
-    bottom: 65px;
-    right: 40px;
-    width: 30px;
-    height: 32px;
-    border: 2px solid #687991;
-    opacity: 0.6;
-    i {
-      font-size: 14px;
-      color: #687991;
-    }
-  }
-  .main-copy.ifr-copy:hover {
-    opacity: 1;
   }
   .ant-back-top {
     bottom: 10px;
diff --git a/src/menu/components/card/balcony/index.jsx b/src/menu/components/card/balcony/index.jsx
index a0d1ae6..cd956c7 100644
--- a/src/menu/components/card/balcony/index.jsx
+++ b/src/menu/components/card/balcony/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover, Checkbox } from 'antd'
+import { Popover, Checkbox } from 'antd'
+import { PlusOutlined, PlusSquareOutlined, EditOutlined, FontColorsOutlined, DeleteOutlined, SettingOutlined, ToolOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
@@ -211,22 +212,22 @@
       <div className="menu-balcony-edit-box" style={_style} id={card.uuid}>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            <Icon className="plus" title="娣诲姞鍏冪礌" onClick={this.addElement} type="plus" />
-            <Icon className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} type="plus-square" />
+            <PlusOutlined className="plus" title="娣诲姞鍏冪礌" onClick={this.addElement} />
+            <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} />
             <NormalForm title="娴姩鍗¤缃�" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
-              <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/>
+              <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="balcony" card={card}/>
             <PasteComponent options={['action', 'customCardElement']} updateConfig={this.pasteComponent} />
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} />
             <ClockComponent config={card} updateConfig={this.updateComponent}/>
             <UserComponent config={card}/>
-            <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} />
             {card.wrap.datatype !== 'static' ? <SettingComponent config={card} updateConfig={this.updateComponent} /> : null}
-            {card.wrap.datatype === 'static' ? <Icon style={{color: '#eeeeee', cursor: 'not-allowed'}} type="setting"/> : null}
+            {card.wrap.datatype === 'static' ? <SettingOutlined style={{color: '#eeeeee', cursor: 'not-allowed'}}/> : null}
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined />
         </Popover>
         {card.wrap.checkAll === 'show' ? <div className="check-all"><Checkbox>鍏ㄩ��</Checkbox></div> : null}
         <CardCellComponent cards={card} cardCell={card} elements={card.elements} updateElement={this.updateCard}/>
diff --git a/src/menu/components/card/cardcellcomponent/dragaction/action.jsx b/src/menu/components/card/cardcellcomponent/dragaction/action.jsx
index 60cf952..7b28f71 100644
--- a/src/menu/components/card/cardcellcomponent/dragaction/action.jsx
+++ b/src/menu/components/card/cardcellcomponent/dragaction/action.jsx
@@ -1,8 +1,10 @@
 import React from 'react'
 import { useDrag, useDrop } from 'react-dnd'
-import { Icon, Popover, Button } from 'antd'
+import { Popover, Button } from 'antd'
+import { EditOutlined, CopyOutlined, CloseOutlined, FontColorsOutlined, ProfileOutlined } from '@ant-design/icons'
 
 import { resetStyle } from '@/utils/utils-custom.js'
+import MkIcon from '@/components/mk-icon'
 import './index.scss'
 
 const Card = ({ id, card, moveCard, findCard, editCard, copyCard, delCard, profileCard, changeStyle, doubleClickCard }) => {
@@ -39,21 +41,21 @@
   let btnElement = null
   let _style = resetStyle(card.style)
   if (card.show === 'icon') {
-    btnElement = (<Button style={_style} type="link"><Icon type={card.icon}/></Button>)
+    btnElement = (<Button style={_style} type="link"><MkIcon type={card.icon}/></Button>)
   } else if (card.show === 'link') {
-    btnElement = (<Button style={_style} type="link">{card.label}{card.icon ? <Icon type={card.icon}/> : null}</Button>)
+    btnElement = (<Button style={_style} type="link">{card.label}{card.icon ? <MkIcon type={card.icon}/> : null}</Button>)
   } else {
-    btnElement = (<Button style={_style}> {card.icon ? <Icon type={card.icon}/> : null}{card.label} </Button>)
+    btnElement = (<Button style={_style}> {card.icon ? <MkIcon type={card.icon}/> : null}{card.label} </Button>)
   }
 
   return (
     <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
       <div className="mk-popover-control" onDoubleClick={(e) => e.stopPropagation()}>
-        <Icon className="edit" title="缂栬緫" type="edit" onClick={() => editCard(id)} />
-        <Icon className="copy" title="澶嶅埗" type="copy" onClick={() => copyCard(id)} />
-        <Icon className="close" title="鍒犻櫎" type="close" onClick={() => delCard(id)} />
-        <Icon className="style" title="璋冩暣鏍峰紡" onClick={() => changeStyle(id)} type="font-colors" />
-        {hasProfile ? <Icon className="profile" title="setting" type="profile" onClick={() => profileCard(id)} /> : null}
+        <EditOutlined className="edit" title="缂栬緫" onClick={() => editCard(id)} />
+        <CopyOutlined className="copy" title="澶嶅埗" onClick={() => copyCard(id)} />
+        <CloseOutlined className="close" title="鍒犻櫎" onClick={() => delCard(id)} />
+        <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={() => changeStyle(id)} />
+        {hasProfile ? <ProfileOutlined className="profile" title="setting" onClick={() => profileCard(id)} /> : null}
       </div>
     } trigger="hover">
       <div ref={node => drag(drop(node))} className={'ant-col card-button-cell ant-col-' + card.width} onDoubleClick={(e) => {e.stopPropagation(); doubleClickCard(id)}}>
diff --git a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx
index a4147f1..9b75923 100644
--- a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx
+++ b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx
@@ -1,6 +1,9 @@
 import React from 'react'
 import { useDrag, useDrop } from 'react-dnd'
-import { Icon, Popover } from 'antd'
+import { Popover } from 'antd'
+import { EditOutlined, CopyOutlined, CloseOutlined, FontColorsOutlined } from '@ant-design/icons'
+
+import MkIcon from '@/components/mk-icon'
 import moment from 'moment'
 
 import demo1 from '@/assets/img/demo1.jpg'
@@ -75,7 +78,7 @@
         <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight || 'auto'}}>{val}</div>
       )
     } else if (card.eleType === 'icon') {
-      return (<Icon type={card.icon}/>)
+      return (<MkIcon type={card.icon}/>)
     } else if (card.eleType === 'slider') {
       let val = card.value ? (card.value / card.maxValue) * 100 : 30
       return <MkProgress value={val} config={card}/>
@@ -162,10 +165,10 @@
   return (
     <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
       <div className="mk-popover-control" onDoubleClick={(e) => e.stopPropagation()}>
-        <Icon className="edit" title="缂栬緫" type="edit" onClick={() => editCard(id)} />
-        <Icon className="copy" title="澶嶅埗" type="copy" onClick={() => copyCard(id)} />
-        <Icon className="close" title="鍒犻櫎" type="close" onClick={() => delCard(id)} />
-        <Icon className="style" title="璋冩暣鏍峰紡" onClick={() => changeStyle(id)} type="font-colors" />
+        <EditOutlined className="edit" title="缂栬緫" onClick={() => editCard(id)} />
+        <CopyOutlined className="copy" title="澶嶅埗" onClick={() => copyCard(id)} />
+        <CloseOutlined className="close" title="鍒犻櫎" onClick={() => delCard(id)} />
+        <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={() => changeStyle(id)}/>
         {['text', 'number', 'slider', 'sequence', 'formula'].includes(card.eleType) ? <MarkColumn columns={fields} type={card.eleType} marks={card.marks} onSubmit={(vals) => updateMarks({...card, marks: vals})} /> : null }
       </div>
     } trigger="hover">
diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx
index a11144e..d547367 100644
--- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx
+++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx
@@ -1,7 +1,7 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { fromJS } from 'immutable'
-import { Form, Row, Col, Input, Select, Icon, Radio, Tooltip, InputNumber } from 'antd'
+import { Form, Row, Col, Input, Select, Radio, Tooltip, InputNumber } from 'antd'
 import { QuestionCircleOutlined } from '@ant-design/icons'
 
 import { formRule } from '@/utils/option.js'
@@ -383,7 +383,7 @@
                 >
                   {item.options.map((option, index) =>
                     <Select.Option id={`${index}`} title={option.text} key={`${index}`} value={option.value}>
-                      {item.key === 'icon' && option.value && <Icon type={option.value} />} {option.text}
+                      {option.text}
                     </Select.Option>
                   )}
                 </Select>
diff --git a/src/menu/components/card/cardcomponent/index.jsx b/src/menu/components/card/cardcomponent/index.jsx
index 4b43fef..0fba068 100644
--- a/src/menu/components/card/cardcomponent/index.jsx
+++ b/src/menu/components/card/cardcomponent/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Popover, Icon, Switch, Col, Modal, Button } from 'antd'
+import { Popover, Switch, Col, Modal, Button } from 'antd'
+import { PlusOutlined, PlusSquareOutlined, EditOutlined, ArrowLeftOutlined, ArrowRightOutlined, SwapOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
@@ -312,29 +313,29 @@
           <div className="card-control" onDoubleClick={(e) => e.stopPropagation()}>
             <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
               <div className="mk-popover-control">
-                <Icon className="plus" title="娣诲姞鍏冪礌" onClick={this.addElement} type="plus" />
-                <Icon className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} type="plus-square" />
+                <PlusOutlined className="plus" title="娣诲姞鍏冪礌" onClick={this.addElement} />
+                <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} />
                 <NormalForm title="鍗$墖璁剧疆" width={800} update={this.updateSetting} getForms={this.getSettingForms}>
-                  <Icon type="edit" className="edit" title="缂栬緫"/>
+                  <EditOutlined className="edit" title="缂栬緫"/>
                 </NormalForm>
                 {cards.subtype === 'datacard' && card.$cardType !== 'extendCard' && card.setting.click === 'menus' ?
                   <CardMenus card={card} updateMenus={this.updateMenus}/> : null}
                 <CopyComponent type="cardcell" card={card}/>
                 <PasteController options={['action', 'customCardElement']} updateConfig={this.paste} />
-                <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+                <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} />
                 <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
                   <div className="mk-popover-control">
-                    <Icon className="plus" title="鍓嶇Щ" type="arrow-left" onClick={() => this.props.move(card, 'left')} />
-                    <Icon className="close" title="鍚庣Щ" type="arrow-right" onClick={() => this.props.move(card, 'right')} />
+                    <ArrowLeftOutlined className="plus" title="鍓嶇Щ" onClick={() => this.props.move(card, 'left')} />
+                    <ArrowRightOutlined className="close" title="鍚庣Щ" onClick={() => this.props.move(card, 'right')} />
                   </div>
                 } trigger="hover" getPopupContainer={() => document.getElementById(card.uuid + 'swap')}>
-                  <Icon type="swap" id={card.uuid + 'swap'}/>
+                  <SwapOutlined id={card.uuid + 'swap'}/>
                 </Popover>
-                {cards.subtype === 'propcard' || card.$cardType === 'extendCard' ? <Icon className="close" title="鍒犻櫎鍗$墖" type="delete" onClick={() => this.props.deleteElement(card)} /> : null}
+                {cards.subtype === 'propcard' || card.$cardType === 'extendCard' ? <DeleteOutlined className="close" title="鍒犻櫎鍗$墖" onClick={() => this.props.deleteElement(card)} /> : null}
                 {card.setting.type === 'multi' ? <Switch size="small" onClick={this.changeSide} defaultChecked /> : null}
               </div>
             } trigger="hover">
-              <Icon type="tool" />
+              <ToolOutlined />
             </Popover>
           </div>
         </div>
diff --git a/src/menu/components/card/cardcomponent/menus-wrap/index.jsx b/src/menu/components/card/cardcomponent/menus-wrap/index.jsx
index bbd6530..47dc40a 100644
--- a/src/menu/components/card/cardcomponent/menus-wrap/index.jsx
+++ b/src/menu/components/card/cardcomponent/menus-wrap/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Modal, Icon } from 'antd'
+import { Modal } from 'antd'
+import { MenuOutlined } from '@ant-design/icons'
 
 import MenusForm from './menus'
 import './index.scss'
@@ -74,7 +75,7 @@
 
     return (
       <>
-        <Icon type="menu" title="鑿滃崟缁�" onClick={this.trigger}/>
+        <MenuOutlined title="鑿滃崟缁�" onClick={this.trigger}/>
         <Modal
           title="鑿滃崟缁�"
           wrapClassName="menus-field-modal"
diff --git a/src/menu/components/card/cardsimplecomponent/index.jsx b/src/menu/components/card/cardsimplecomponent/index.jsx
index f77a254..07f6588 100644
--- a/src/menu/components/card/cardsimplecomponent/index.jsx
+++ b/src/menu/components/card/cardsimplecomponent/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Popover, Icon } from 'antd'
+import { Popover } from 'antd'
+import { PlusOutlined, PlusSquareOutlined, EditOutlined, ArrowLeftOutlined, ArrowRightOutlined, SwapOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
@@ -219,25 +220,25 @@
           <div className="card-control">
             <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
               <div className="mk-popover-control">
-                <Icon className="plus" title="娣诲姞鍏冪礌" onClick={this.addElement} type="plus" />
-                <Icon className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} type="plus-square" />
+                <PlusOutlined className="plus" title="娣诲姞鍏冪礌" onClick={this.addElement}/>
+                <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton}/>
                 {cards.type !== 'timeline' ? <NormalForm title="鍗$墖璁剧疆" width={800} update={this.updateSetting} getForms={this.getSettingForms}>
-                  <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/>
+                  <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
                 </NormalForm> : <NodesWrap card={card} updateMenus={this.updateNodes}/>}
                 {cards.type !== 'timeline' ? <CopyComponent type="cardcell" card={card}/> : null}
-                <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+                <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
                 {control ? <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
                   <div className="mk-popover-control">
-                    <Icon className="plus" title="鍓嶇Щ" type="arrow-left" onClick={() => this.props.move(card, 'left')} />
-                    <Icon className="close" title="鍚庣Щ" type="arrow-right" onClick={() => this.props.move(card, 'right')} />
+                    <ArrowLeftOutlined className="plus" title="鍓嶇Щ" onClick={() => this.props.move(card, 'left')} />
+                    <ArrowRightOutlined className="close" title="鍚庣Щ" onClick={() => this.props.move(card, 'right')} />
                   </div>
                 } trigger="hover" getPopupContainer={() => document.getElementById(card.uuid + 'swap')}>
-                  <Icon type="swap" id={card.uuid + 'swap'}/>
+                  <SwapOutlined id={card.uuid + 'swap'}/>
                 </Popover> : null}
-                {control ? <Icon className="close" title="鍒犻櫎鍗$墖" type="delete" onClick={() => this.props.deleteElement(card)} /> : null}
+                {control ? <DeleteOutlined className="close" title="鍒犻櫎鍗$墖" onClick={() => this.props.deleteElement(card)} /> : null}
               </div>
             } trigger="hover">
-              <Icon type="tool" />
+              <ToolOutlined/>
             </Popover>
           </div>
         </div>
diff --git a/src/menu/components/card/cardsimplecomponent/node-wrap/index.jsx b/src/menu/components/card/cardsimplecomponent/node-wrap/index.jsx
index 3c11bc4..e39387d 100644
--- a/src/menu/components/card/cardsimplecomponent/node-wrap/index.jsx
+++ b/src/menu/components/card/cardsimplecomponent/node-wrap/index.jsx
@@ -1,7 +1,9 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Modal, Icon } from 'antd'
+import { Modal } from 'antd'
+import { MoreOutlined } from '@ant-design/icons'
+
 
 import MenusForm from './menus'
 import './index.scss'
@@ -46,7 +48,7 @@
 
     return (
       <>
-        <Icon type="more" style={{color: '#1890ff'}} title="鑺傜偣缁�" onClick={this.trigger}/>
+        <MoreOutlined style={{color: '#1890ff'}} title="鑺傜偣缁�" onClick={this.trigger}/>
         <Modal
           title="鑺傜偣缁�"
           wrapClassName="nodes-field-modal"
diff --git a/src/menu/components/card/cardsimplecomponent/node-wrap/menus/index.jsx b/src/menu/components/card/cardsimplecomponent/node-wrap/menus/index.jsx
index 13259aa..13230b0 100644
--- a/src/menu/components/card/cardsimplecomponent/node-wrap/menus/index.jsx
+++ b/src/menu/components/card/cardsimplecomponent/node-wrap/menus/index.jsx
@@ -1,8 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { fromJS } from 'immutable'
-import { Icon } from 'antd'
 
+import MkIcon from '@/components/mk-icon'
 import Utils from '@/utils/utils.js'
 import ColumnForm from './columnform'
 import asyncComponent from '@/utils/asyncComponent'
@@ -44,7 +44,7 @@
         editable: true,
         required: false,
         width: '35%',
-        render: (text, record) => record.icon ? <Icon type={record.icon}/> : ''
+        render: (text, record) => record.icon ? <MkIcon type={record.icon}/> : ''
       }
     ]
   }
diff --git a/src/menu/components/card/data-card/index.jsx b/src/menu/components/card/data-card/index.jsx
index 7538195..c544ede 100644
--- a/src/menu/components/card/data-card/index.jsx
+++ b/src/menu/components/card/data-card/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover, Modal, Pagination, notification } from 'antd'
+import { Popover, Modal, Pagination, notification } from 'antd'
+import { PlusOutlined, PlusCircleOutlined, PlusSquareOutlined, EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
@@ -655,23 +656,23 @@
         <NormalHeader config={card} updateComponent={this.updateComponent}/>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            <Icon className="plus" title="娣诲姞鍗$墖" onClick={() => this.addCard()} type="plus" />
-            {appType !== 'mob' ? <Icon className="plus" title="娣诲姞鎼滅储" onClick={() => this.addSearch()} type="plus-circle" /> : null}
-            <Icon className="plus" title="娣诲姞鎸夐挳" onClick={() => this.addButton()} type="plus-square" />
+            <PlusOutlined className="plus" title="娣诲姞鍗$墖" onClick={() => this.addCard()}/>
+            {appType !== 'mob' ? <PlusCircleOutlined className="plus" title="娣诲姞鎼滅储" onClick={() => this.addSearch()}/> : null}
+            <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={() => this.addButton()}/>
             <NormalForm title="鏁版嵁鍗¤缃�" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
-              <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/>
+              <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             {card.wrap.supType === 'multi' && appType !== 'mob' ? <Nodes card={card} updateMenus={this.updateSupNodes}/> : null}
             <CopyComponent type="datacard" card={card}/>
             <PasteComponent options={['action', 'search', 'form', 'cardcell']} updateConfig={this.pasteComponent} />
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <LogComponent btnlog={card.btnlog || []} handlelog={this.handleLog} />
             <UserComponent config={card}/>
-            <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} />
             <SettingComponent config={card} updateConfig={this.updateComponent} />
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined />
         </Popover>
         <ActionComponent config={card} type="datacard" setSubConfig={this.setSubConfig} updateaction={this.updateComponent}/>
         {card.subcards.map((subcard, index) => (<CardComponent key={subcard.uuid} offset={!index ? offset : 0} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))}
diff --git a/src/menu/components/card/data-card/node-wrap/index.jsx b/src/menu/components/card/data-card/node-wrap/index.jsx
index aa87f47..9282ca6 100644
--- a/src/menu/components/card/data-card/node-wrap/index.jsx
+++ b/src/menu/components/card/data-card/node-wrap/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Modal, Icon } from 'antd'
+import { Modal } from 'antd'
+import { ForkOutlined } from '@ant-design/icons'
 
 import MenusForm from './menus'
 import './index.scss'
@@ -47,7 +48,7 @@
 
     return (
       <>
-        <Icon type="fork" title="涓婄骇缁勪欢" style={{color: 'orange'}} onClick={this.trigger}/>
+        <ForkOutlined title="涓婄骇缁勪欢" style={{color: 'orange'}} onClick={this.trigger}/>
         <Modal
           title="涓婄骇缁勪欢"
           wrapClassName="menus-field-modal"
diff --git a/src/menu/components/card/prop-card/index.jsx b/src/menu/components/card/prop-card/index.jsx
index 64399a8..96e0fd7 100644
--- a/src/menu/components/card/prop-card/index.jsx
+++ b/src/menu/components/card/prop-card/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover, Modal, notification } from 'antd'
+import { Popover, Modal, notification } from 'antd'
+import { PlusOutlined, SettingOutlined, EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
@@ -482,22 +483,22 @@
         <NormalHeader config={card} updateComponent={this.updateComponent}/>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            <Icon className="plus" title="娣诲姞鍗$墖" onClick={() => this.addCard()} type="plus" />
+            <PlusOutlined className="plus" title="娣诲姞鍗$墖" onClick={() => this.addCard()} />
             <NormalForm title="灞炴�у崱璁剧疆" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
-              <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/>
+              <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="propcard" card={card}/>
             <PasteComponent options={['cardcell']} updateConfig={this.pasteComponent} />
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <LogComponent btnlog={card.btnlog || []} handlelog={this.handleLog} />
             <ClockComponent config={card} updateConfig={this.updateComponent}/>
             <UserComponent config={card}/>
-            <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} />
             {card.wrap.datatype !== 'static' ? <SettingComponent config={card} updateConfig={this.updateComponent} /> : null}
-            {card.wrap.datatype === 'static' ? <Icon style={{color: '#eeeeee', cursor: 'not-allowed'}} type="setting"/> : null}
+            {card.wrap.datatype === 'static' ? <SettingOutlined style={{color: '#eeeeee', cursor: 'not-allowed'}}/> : null}
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined />
         </Popover>
         {card.subcards.map((subcard, index) => (<CardComponent key={subcard.uuid} offset={!index ? offset : 0} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))}
       </div>
diff --git a/src/menu/components/card/table-card/index.jsx b/src/menu/components/card/table-card/index.jsx
index 03e607a..1b396b1 100644
--- a/src/menu/components/card/table-card/index.jsx
+++ b/src/menu/components/card/table-card/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover, Modal, Pagination, notification } from 'antd'
+import { Popover, Modal, Pagination, notification } from 'antd'
+import { PlusOutlined, PlusCircleOutlined, PlusSquareOutlined, EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
@@ -542,22 +543,22 @@
         <NormalHeader config={card} updateComponent={this.updateComponent}/>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            <Icon className="plus" title="娣诲姞鍗$墖" onClick={() => this.addCard()} type="plus" />
-            {appType !== 'mob' ? <Icon className="plus" title="娣诲姞鎼滅储" onClick={() => this.addSearch()} type="plus-circle" /> : null}
-            <Icon className="plus" title="娣诲姞鎸夐挳" onClick={() => this.addButton()} type="plus-square" />
+            <PlusOutlined className="plus" title="娣诲姞鍗$墖" onClick={() => this.addCard()}/>
+            {appType !== 'mob' ? <PlusCircleOutlined className="plus" title="娣诲姞鎼滅储" onClick={() => this.addSearch()}/> : null}
+            <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={() => this.addButton()} />
             <NormalForm title="琛ㄦ牸璁剧疆" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
-              <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/>
+              <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="tablecard" card={card}/>
             <PasteComponent options={['cardcell', 'search', 'form']} updateConfig={this.pasteComponent} />
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <LogComponent btnlog={card.btnlog || []} handlelog={this.handleLog} />
             <UserComponent config={card}/>
-            <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} />
             {card.wrap.datatype !== 'static' ? <SettingComponent config={card} updateConfig={this.updateComponent} /> : null}
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined />
         </Popover>
         <ActionComponent config={card} type="datacard" setSubConfig={this.setSubConfig} updateaction={this.updateComponent}/>
         <div style={{minHeight: 'calc(100% - 90px)'}}>
diff --git a/src/menu/components/carousel/data-card/index.jsx b/src/menu/components/carousel/data-card/index.jsx
index 1146a10..61806d1 100644
--- a/src/menu/components/carousel/data-card/index.jsx
+++ b/src/menu/components/carousel/data-card/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover, Modal, notification } from 'antd'
+import { Popover, Modal, notification } from 'antd'
+import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
@@ -278,17 +279,17 @@
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
             <NormalForm title="杞挱-鍔ㄦ�佹暟鎹�" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
-              <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/>
+              <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="datacard" card={card}/>
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors"/>
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <LogComponent btnlog={card.btnlog || []} handlelog={this.handleLog}/>
             <UserComponent config={card}/>
-            <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)}/>
+            <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)}/>
             <SettingComponent config={card} updateConfig={this.updateComponent}/>
           </div>
         } trigger="hover">
-          <Icon type="tool"/>
+          <ToolOutlined/>
         </Popover>
         <CardSimpleComponent cards={card} card={card.subcards[0]} updateElement={this.updateCard} deleteElement={this.deleteCard}/>
       </div>
diff --git a/src/menu/components/carousel/prop-card/index.jsx b/src/menu/components/carousel/prop-card/index.jsx
index 5132c65..b9d3a01 100644
--- a/src/menu/components/carousel/prop-card/index.jsx
+++ b/src/menu/components/carousel/prop-card/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover, Modal, notification, Carousel } from 'antd'
+import { Popover, Modal, notification, Carousel } from 'antd'
+import { PlusOutlined, SettingOutlined, EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
@@ -354,21 +355,21 @@
       <div className="menu-prop-carousel-edit-box" style={_style} onClick={this.clickComponent} id={card.uuid}>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            <Icon className="plus" title="娣诲姞鍗$墖" onClick={this.addCard} type="plus" />
+            <PlusOutlined className="plus" title="娣诲姞鍗$墖" onClick={this.addCard}/>
             <NormalForm title="杞挱-闈欐�佹暟鎹�" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
-              <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/>
+              <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="propcard" card={card}/>
             <PasteComponent config={card} options={['cardcell']} updateConfig={this.updateComponent} />
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <LogComponent btnlog={card.btnlog || []} handlelog={this.handleLog} />
             <UserComponent config={card}/>
-            <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} />
             {card.wrap.datatype !== 'static' ? <SettingComponent config={card} updateConfig={this.updateComponent} /> : null}
-            {card.wrap.datatype === 'static' ? <Icon style={{color: '#eeeeee', cursor: 'not-allowed'}} type="setting"/> : null}
+            {card.wrap.datatype === 'static' ? <SettingOutlined style={{color: '#eeeeee', cursor: 'not-allowed'}}/> : null}
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined/>
         </Popover>
         {card.subcards.length > 0 ? <Carousel dotPosition={card.wrap.dotPosition || 'bottom'} effect={card.wrap.effect || 'scrollx'}>
           {card.subcards.map((subcard) => (<CardSimpleComponent key={subcard.uuid} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))}
diff --git a/src/menu/components/chart/antv-bar/index.jsx b/src/menu/components/chart/antv-bar/index.jsx
index 2a99edd..c31b3c2 100644
--- a/src/menu/components/chart/antv-bar/index.jsx
+++ b/src/menu/components/chart/antv-bar/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover, notification } from 'antd'
+import { Popover, notification } from 'antd'
+import { PlusCircleOutlined, PlusSquareOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 import { Chart } from '@antv/g2'
 import DataSet from '@antv/data-set'
 
@@ -1336,20 +1337,20 @@
       <div className="menu-line-chart-edit-box" style={{..._style, height: card.plot.height || 400}} onClick={this.clickComponent} id={card.uuid}>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            {appType !== 'mob' ? <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle" /> : null}
-            {appType !== 'mob' ? <Icon className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} type="plus-square" /> : null}
+            {appType !== 'mob' ? <PlusCircleOutlined className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch}/> : null}
+            {appType !== 'mob' ? <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton}/> : null}
             <ChartCompileForm config={card} dict={this.state.dict} plotchange={this.updateComponent}/>
             <CopyComponent type="line" card={card}/>
             <PasteComponent config={card} options={['action']} updateConfig={this.updateComponent} />
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <LogComponent btnlog={card.btnlog || []} handlelog={this.handleLog} />
             <ClockComponent config={card} updateConfig={this.updateComponent}/>
             <UserComponent config={card}/>
-            <Icon className="close" title="delete" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
             <SettingComponent config={card} updateConfig={this.updateComponent}/>
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined/>
         </Popover>
         <NormalHeader config={card} updateComponent={this.updateComponent}/>
         <div className="canvas" id={card.uuid + 'canvas'} ref={ref => this.wrap = ref}></div>
diff --git a/src/menu/components/chart/antv-dashboard/index.jsx b/src/menu/components/chart/antv-dashboard/index.jsx
index 5e115fc..f26312a 100644
--- a/src/menu/components/chart/antv-dashboard/index.jsx
+++ b/src/menu/components/chart/antv-dashboard/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover } from 'antd'
+import { Popover } from 'antd'
+import { ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 import { Chart, registerShape } from '@antv/g2'
 
 import MKEmitter from '@/utils/events.js'
@@ -523,14 +524,14 @@
           <div className="mk-popover-control">
             <ChartCompileForm config={card} dict={this.state.dict} plotchange={this.updateComponent}/>
             <CopyComponent type="dashboard" card={card}/>
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <ClockComponent config={card} updateConfig={this.updateComponent}/>
             <UserComponent config={card}/>
-            <Icon className="close" title="delete" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
             <SettingComponent config={card} updateConfig={this.updateComponent}/>
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined/>
         </Popover>
         <NormalHeader hideSearch="true" config={card} updateComponent={this.updateComponent}/>
         <div className="canvas" id={card.uuid + 'dashboard'} ref={ref => this.wrap = ref}></div>
diff --git a/src/menu/components/chart/antv-pie/index.jsx b/src/menu/components/chart/antv-pie/index.jsx
index 8f73b72..a308338 100644
--- a/src/menu/components/chart/antv-pie/index.jsx
+++ b/src/menu/components/chart/antv-pie/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover } from 'antd'
+import { Popover } from 'antd'
+import { ToolOutlined, DeleteOutlined, FontColorsOutlined, PlusCircleOutlined } from '@ant-design/icons'
 import { Chart } from '@antv/g2'
 import DataSet, { DataView } from '@antv/data-set'
 
@@ -673,17 +674,17 @@
       <div className="menu-pie-chart-edit-box" style={{..._style, height: card.plot.height || 400}} onClick={this.clickComponent} id={card.uuid}>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            {!ismob ? <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle" /> : null}
+            {!ismob ? <PlusCircleOutlined className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch}/> : null}
             <ChartCompileForm config={card} dict={this.state.dict} plotchange={this.updateComponent}/>
             <CopyComponent type="pie" card={card}/>
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <ClockComponent config={card} updateConfig={this.updateComponent}/>
             <UserComponent config={card}/>
-            <Icon className="close" title="delete" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
             <SettingComponent config={card} updateConfig={this.updateComponent}/>
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined />
         </Popover>
         <NormalHeader config={card} updateComponent={this.updateComponent}/>
         <div className="canvas" id={card.uuid + 'canvas'} ref={ref => this.wrap = ref}></div>
diff --git a/src/menu/components/chart/antv-scatter/index.jsx b/src/menu/components/chart/antv-scatter/index.jsx
index 284fada..47a58d9 100644
--- a/src/menu/components/chart/antv-scatter/index.jsx
+++ b/src/menu/components/chart/antv-scatter/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover, notification } from 'antd'
+import { Popover, notification } from 'antd'
+import { ToolOutlined, DeleteOutlined, FontColorsOutlined, PlusCircleOutlined, PlusSquareOutlined } from '@ant-design/icons'
 import { Chart } from '@antv/g2'
 
 import MKEmitter from '@/utils/events.js'
@@ -375,20 +376,20 @@
       <div className="menu-scatter-chart-edit-box" style={{..._style, height: card.plot.height || 400}} onClick={this.clickComponent} id={card.uuid}>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            {appType !== 'mob' ? <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle"/> : null}
-            {appType !== 'mob' ? <Icon className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} type="plus-square" /> : null}
+            {appType !== 'mob' ? <PlusCircleOutlined className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch}/> : null}
+            {appType !== 'mob' ? <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton}/> : null}
             <ChartCompileForm config={card} dict={this.state.dict} plotchange={this.updateComponent}/>
             <CopyComponent type="line" card={card}/>
             <PasteComponent config={card} options={['action']} updateConfig={this.updateComponent}/>
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors"/>
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <LogComponent btnlog={card.btnlog || []} handlelog={this.handleLog}/>
             <ClockComponent config={card} updateConfig={this.updateComponent}/>
             <UserComponent config={card}/>
-            <Icon className="close" title="delete" type="delete" onClick={() => this.props.deletecomponent(card.uuid)}/>
+            <DeleteOutlined className="close" title="delete" onClick={() => this.props.deletecomponent(card.uuid)}/>
             <SettingComponent config={card} updateConfig={this.updateComponent}/>
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined/>
         </Popover>
         <NormalHeader config={card} updateComponent={this.updateComponent}/>
         <div className="canvas" id={card.uuid + 'canvas'} ref={ref => this.wrap = ref}></div>
diff --git a/src/menu/components/chart/chart-custom/chartcompile/index.jsx b/src/menu/components/chart/chart-custom/chartcompile/index.jsx
index 5596191..1ac9de4 100644
--- a/src/menu/components/chart/chart-custom/chartcompile/index.jsx
+++ b/src/menu/components/chart/chart-custom/chartcompile/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { fromJS } from 'immutable'
-import { Modal, Form, Icon, Tabs } from 'antd'
+import { Modal, Form, Tabs } from 'antd'
+import { EditOutlined } from '@ant-design/icons'
 
 import { getBaseForm } from './formconfig'
 import asyncComponent from '@/utils/asyncComponent'
@@ -90,7 +91,7 @@
 
     return (
       <>
-        <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫" onClick={this.showDrawer} />
+        <EditOutlined style={{color: '#1890ff'}} title="缂栬緫" onClick={this.showDrawer} />
         <Modal
           wrapClassName="popview-modal custom-chart-edit-modal"
           title="鑷畾涔夊浘琛ㄧ紪杈�"
diff --git a/src/menu/components/chart/chart-custom/index.jsx b/src/menu/components/chart/chart-custom/index.jsx
index c622750..0142b95 100644
--- a/src/menu/components/chart/chart-custom/index.jsx
+++ b/src/menu/components/chart/chart-custom/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover, notification } from 'antd'
+import { Popover, notification } from 'antd'
+import { ToolOutlined, DeleteOutlined, FontColorsOutlined, PlusCircleOutlined } from '@ant-design/icons'
 import { Chart } from '@antv/g2'
 import DataSet from '@antv/data-set'
 import * as echarts from 'echarts'
@@ -251,16 +252,16 @@
       <div className="menu-custom-chart-edit-box" style={{..._style, height: card.plot.height || 400}} onClick={this.clickComponent} id={card.uuid}>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            {appType !== 'mob' ? <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle" /> : null}
+            {appType !== 'mob' ? <PlusCircleOutlined className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch}/> : null}
             <ChartCompileForm config={card} dict={this.state.dict} plotchange={this.updateComponent}/>
             <CopyComponent type="line" card={card}/>
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <ClockComponent config={card} updateConfig={this.updateComponent}/>
-            <Icon className="close" title="delete" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
             <SettingComponent config={card} updateConfig={this.updateComponent}/>
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined />
         </Popover>
         <NormalHeader config={card} updateComponent={this.updateComponent}/>
         <div className="canvas" id={card.uuid + 'canvas'} ref={ref => this.wrap = ref}></div>
diff --git a/src/menu/components/code/sandbox/index.jsx b/src/menu/components/code/sandbox/index.jsx
index 7cda5a2..ba13288 100644
--- a/src/menu/components/code/sandbox/index.jsx
+++ b/src/menu/components/code/sandbox/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Popover } from 'antd'
+import { Popover } from 'antd'
+import { SettingOutlined, EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
 import asyncIconComponent from '@/utils/asyncIconComponent'
@@ -174,18 +175,18 @@
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
             <NormalForm title="鑷畾涔夌粍浠惰缃�" width={700} update={this.updateWrap} getForms={this.getWrapForms}>
-              <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/>
+              <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="normaltable" card={card}/>
-            <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
+            <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/>
             <UserComponent config={card}/>
-            <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
+            <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} />
             <EditorCode config={card} updateConfig={this.updateComponent}/>
             {card.wrap.datatype !== 'static' ? <SettingComponent config={card} updateConfig={this.updateComponent} /> : null}
-            {card.wrap.datatype === 'static' ? <Icon style={{color: '#eeeeee', cursor: 'not-allowed'}} type="setting"/> : null}
+            {card.wrap.datatype === 'static' ? <SettingOutlined style={{color: '#eeeeee', cursor: 'not-allowed'}}/> : null}
           </div>
         } trigger="hover">
-          <Icon type="tool" />
+          <ToolOutlined />
         </Popover>
         <CodeContent name={card.name} html={card.html} css={card.css} js={card.js}/>
       </div>
diff --git a/src/tabviews/iframe/index.jsx b/src/tabviews/iframe/index.jsx
index fddf2a7..c1186d4 100644
--- a/src/tabviews/iframe/index.jsx
+++ b/src/tabviews/iframe/index.jsx
@@ -1,6 +1,5 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Button, message } from 'antd'
 import MKEmitter from '@/utils/events.js'
 
 class Iframe extends Component {
@@ -12,8 +11,7 @@
   }
 
   state = {
-    visible: true,
-    debug: sessionStorage.getItem('debug') === 'true'
+    visible: true
   }
 
   componentDidMount () {
@@ -40,31 +38,11 @@
     })
   }
 
-  copyMenuNo = (e) => {
-    const { MenuNo } = this.props
-
-    e.stopPropagation()
-    let oInput = document.createElement('input')
-    oInput.value = MenuNo || ''
-    document.body.appendChild(oInput)
-    oInput.select()
-    document.execCommand('Copy')
-    oInput.className = 'oInput'
-    oInput.style.display = 'none'
-    message.success('澶嶅埗鎴愬姛')
-  }
-
   render () {
-    const { visible, debug } = this.state
+    const { visible } = this.state
     
     return (<div>
       {visible ? <iframe title={this.props.title} src={this.props.url} /> : null}
-      {debug ? <Button
-        icon="copy"
-        shape="circle"
-        className={'main-copy ifr-copy'}
-        onClick={this.copyMenuNo}
-      /> : null}
     </div>)
   }
 }

--
Gitblit v1.8.0