twoTable.jsx 3.3 KB
Newer Older
徐立's avatar
徐立 committed
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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
/**
 * 徐立
 * 2019年9月30日
 * 三次封装用户通过,拒绝状态
 * affairOk 需要外部传入,进行请求相关
 */
import React, { Component } from 'react'
import Btn from '../pagesBtn';
import MyModal from '../Modal';
import styles from './styles.less';
import { Input,Row,Col,Modal } from 'antd';
const { TextArea } = Input;
export default class userButton extends Component {
    constructor(){
        super()
        this.state = {
            // 路由位置
            visibleOk: false, // 通过模态框状态 
            value:'', // 文本域输入
            user: '', // 用于保存用户点击了对应按钮
            returnText: '', //
        }
    }
    /**
     * 通过按钮点击事件
     */
    showModal = (str) => {
        switch (str) {
            case '通过':
                this.setState({
                    returnText: '已通过该申请!'
                })
                break
            case '驳回':
                this.setState({
                    returnText: '已驳回该申请!'
                })
                break
        }
        this.setState({
            user: str,
            visibleOk: true,
        })
    }
    /**
     * 审核状态,返回对应样式html
     */
    getUser = () => {
        let { user } = this.state
        switch (user) {
            case '通过':
                return (<span style={{color:'#31C93F'}}>{user}</span>)
            case '驳回':
                return (<span style={{color:'#FF9B00'}}>{user}</span>)
        }
    }
    /**
     * 通过按钮模态框取消状态
     */
    handleCancelOk = () => {
        this.setState({
            visibleOk : false
        })
    }
    /**
     * 文本域同步
     */
    onChange = ({ target: { value } }) => {
        this.setState({ value });
    };
    render() {
        let { btnList,visibleOk,value,user,returnText } = this.state
        let { affairOk } = this.props
        return (
            <>
                <Btn get='5' btnOne={()=>{this.showModal('驳回')}} btnTwo={()=>{this.showModal('通过')}} />
                <MyModal
                    visible={ visibleOk }
                    title = '通过审批'
                    width = {600}
                    handleCancel = { this.handleCancelOk }
                    >
                        <div className={styles.is_ok}>
                            <p className={styles.header}><span>审批结果</span>{this.getUser()}</p>
                            <div className={styles.body}>
                                <span>审批说明</span>
                                <span>
                                    <TextArea
                                        value={value}
                                        onChange={this.onChange}
                                        placeholder="请输入审批理由"
                                        style={{width:380,height:120,color:'#7F8B95'}}
                                        />
                                </span>
                            </div>
                            <div>
                                <Btn get='4' btnOne={this.handleCancelOk} btnTwo={ () => {affairOk(user,returnText,value)} }/>
                            </div>
                        </div>
                    </MyModal>
                </>
        )
    }
}