forked from nsjcy/frontEnd/nsjcy

Mr Ke
2020-05-15 e36d04fc335547bc293078a77924c94a31e99cdc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import React from 'react';
import Button from '../../libs/Button';
import './index.less'
 
class Dialog extends React.PureComponent {
  state = {
    visible: this.props.visible,
  }
 
  componentWillReceiveProps(nextProps) {
    if (nextProps.visible !== this.props.visible) {
      this.setState({
        visible: nextProps.visible,
      });
    };
  }
 
  confirm = () => {
    const {
      onConfirm,
    } = this.props;
    if (onConfirm) {
      onConfirm();
    };
  }
 
  cancel = () => {
    const {
      onCancel,
    } = this.props;
    if (onCancel) {
      onCancel();
    };
  }
 
  render() {
    const {
      title,
      children,
      onCancel,
      onConfirm,
    } = this.props;
    const {
      visible,
    } = this.state;
    const fade = visible ? 'wowjoy-dialog__fadeIn' : '';
    return (
      <div className={`wowjoy-dialog ${fade}`}>
        <div className="wowjoy-dialog__inner">
          <div className="wowjoy-dialog__header">
            {title}
          </div>
          <div className="wowjoy-dialog__body">
            {children}
          </div>
          <div className="wowjoy-dialog__footer">
            <Button type="primary" onClick={this.confirm}>确定</Button>
            <Button type="cancel" onClick={this.cancel}>取消</Button>
          </div>
        </div>
      </div>
    );
  }
}
 
export default Dialog;