import React, { Component } from "react"; import { render } from 'react-dom'; import './modal.less'; import { Button, Icon, Modal } from "antd"; function renderModal(modalInfo) { class ModalComponent extends Component { constructor(props, context) { super(props, context); this.state = { ...modalInfo }; } render() { return (
{(() => { let style = {fontSize: 26, marginRight: 15}; switch(modalInfo.icon) { case 'info': style = { ...style, color: '#1890ff', ...modalInfo.iconStyle } return ; case 'success': style = { ...style, color: '#52c41a', ...modalInfo.iconStyle } return ; case 'warning': style = { ...style, color: '#faad14', ...modalInfo.iconStyle } return ; case 'error': style = { ...style, color: '#f5222d', ...modalInfo.iconStyle } return ; default: // return ; return ''; } })()}

{modalInfo.title}

{modalInfo.message} {/* */}
{modalInfo.footer instanceof Array && modalInfo.footer.map((btn, index) => { return })}
); } } let div = document.createElement('div'); render(, div); } export default function modal ( title = '提示', message = '', footer, icon, maskClosable = false, iconStyle = {} ) { const modalInfo = { visible: true, maskClosable, title, message, footer: footer || [{ text: '确定', type: 'primary' }], icon: icon || 'warning', iconStyle }; renderModal(modalInfo); }