144 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import React, { Component } from 'react';
 | 
						||
import { connect } from 'dva';
 | 
						||
import { withRouter } from 'dva/router';
 | 
						||
import { initFilter, extendRule, extendInclude, setDataFieldValue, guid, initQueryFilter } from "../../utils/common";
 | 
						||
import { Modal, Upload, Form, Button, Descriptions, Icon, message } from 'antd';
 | 
						||
import config from "../../config.js";
 | 
						||
import storage from '../../utils/storage'
 | 
						||
 | 
						||
 | 
						||
class FoUserInfoShow extends React.Component {
 | 
						||
    constructor(props) {
 | 
						||
        super(props)
 | 
						||
        this.state = {
 | 
						||
            data: null,
 | 
						||
            userPhone: "",
 | 
						||
            Department: "",
 | 
						||
            teamName: "",
 | 
						||
            postName: "",
 | 
						||
            SignPhoto: 0,
 | 
						||
            SignaturePhoto: "",
 | 
						||
            visible: false
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
    handleOk = e => {
 | 
						||
        this.setState({
 | 
						||
            visible: false,
 | 
						||
        });
 | 
						||
    };
 | 
						||
 | 
						||
    handleCancel = e => {
 | 
						||
        this.setState({
 | 
						||
            visible: false,
 | 
						||
        });
 | 
						||
    };
 | 
						||
    showModal = () => {
 | 
						||
        this.setState({
 | 
						||
            visible: true,
 | 
						||
        });
 | 
						||
        var orgId = this.props.login ? this.props.login.OrgId : '';   //登录后有存储登录信息
 | 
						||
        var userId = this.props.login ? this.props.login.userId : '';   //登录后有存储登录信息   
 | 
						||
        let json = initFilter(orgId);
 | 
						||
        extendRule(json, 'ID', 1, userId);    //ID=‘’,字段,等于,条件值, 1代表=,2代表不等于,3小于,4小于等于,5大于,6大于等于,7以开始的Like,8以结束的Like,9包含 
 | 
						||
        extendInclude(json, 'Nav_Department');
 | 
						||
        extendInclude(json, 'Nav_Person.Nav_Post');
 | 
						||
        extendInclude(json, 'Nav_Person.Nav_TeamPersons.Nav_Team');
 | 
						||
        extendInclude(json, 'Nav_UserSignFiles.Nav_ImgFile.Nav_File');
 | 
						||
        this.props.dispatch({
 | 
						||
            type: 'app/getDataByPost',
 | 
						||
            payload: json,
 | 
						||
            url: 'FM/User/OrderPaged',
 | 
						||
            onComplete: (ret) => {    //返回查询结果ret
 | 
						||
                if (ret) {    //判断是否有记录
 | 
						||
                    let teamName = "";
 | 
						||
                    let postName = "";
 | 
						||
                    if (ret[0]?.Nav_Person?.Nav_TeamPersons && ret[0]?.Nav_Person?.Nav_TeamPersons.length > 0) {
 | 
						||
                        teamName = ret[0].Nav_Person.Nav_TeamPersons[0].Nav_Team?.NAME
 | 
						||
                    }
 | 
						||
                    postName = ret[0]?.Nav_Person.Nav_Post?.NAME
 | 
						||
                    this.setState({   //设置setState全局变量                        
 | 
						||
                        userPhone: ret[0]?.PHONE,
 | 
						||
                        Department: ret[0]?.Nav_Department?.NAME,
 | 
						||
                        teamName: teamName,
 | 
						||
                        postName: postName,
 | 
						||
                    })
 | 
						||
                    if (ret[0]?.Nav_UserSignFiles.length > 0) {
 | 
						||
                        if ((ret[0].Nav_UserSignFiles[0].Nav_ImgFile.Nav_File.FILE_PATH).length > 0) {
 | 
						||
                            this.setState({
 | 
						||
                                SignPhoto: 1,
 | 
						||
                                SignaturePhoto: config.picServerHost + ret[0].Nav_UserSignFiles[0].Nav_ImgFile.Nav_File.FILE_PATH,
 | 
						||
                            })
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
 | 
						||
                }
 | 
						||
            }
 | 
						||
        });
 | 
						||
    };
 | 
						||
 | 
						||
    render() {
 | 
						||
        const Tenant = storage('lacal').getItem('Tenant').val;
 | 
						||
        const that = this;
 | 
						||
        const uploadprops = {
 | 
						||
            name: 'file',
 | 
						||
            action: config.serviceHost('api/PF/File/UploadFileEditSign'),
 | 
						||
            data: { OrgId: this.props.login.OrgId, userID: this.props.login.userId },
 | 
						||
            headers: {
 | 
						||
                Tenant: Tenant,
 | 
						||
            },
 | 
						||
            showUploadList:false,
 | 
						||
            beforeUpload(file) {
 | 
						||
                const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
 | 
						||
                if (!isJpgOrPng) {
 | 
						||
                    message.error('只能上传jpg或者png格式图片!');
 | 
						||
                }
 | 
						||
                const isLt2M = file.size / 1024 / 1024 < 0.5;
 | 
						||
                if (!isLt2M) {
 | 
						||
                    message.error('只能上传小于500k图片!');
 | 
						||
                }
 | 
						||
                return isJpgOrPng && isLt2M;
 | 
						||
 | 
						||
            },
 | 
						||
            onChange(info) {
 | 
						||
                if (info.file.status === 'done') {
 | 
						||
                    that.setState({
 | 
						||
                        SignPhoto: 1,
 | 
						||
                        SignaturePhoto: config.picServerHost + info.file.response.Data.imgFilePath,
 | 
						||
                    })
 | 
						||
                    message.success(`${info.file.name} 上传成功!`);
 | 
						||
                } else if (info.file.status === 'error') {
 | 
						||
                    message.error(`${info.file.name} 上传失败!`);
 | 
						||
                }
 | 
						||
            },
 | 
						||
        };
 | 
						||
        return (
 | 
						||
            <div>
 | 
						||
                <span onClick={this.showModal}>我的资料</span>
 | 
						||
                <Modal title="我的资料" width={'800px'} visible={this.state.visible}
 | 
						||
                    onOk={this.handleOk}
 | 
						||
                    onCancel={this.handleCancel}>
 | 
						||
                    <Descriptions bordered>
 | 
						||
                        <Descriptions.Item label="编码">{this.props.login.user.CODE}</Descriptions.Item>
 | 
						||
                        <Descriptions.Item label="姓名">{this.props.login.user.NAME}</Descriptions.Item>
 | 
						||
                        <Descriptions.Item label="手机">{this.state.userPhone}</Descriptions.Item>
 | 
						||
                        <Descriptions.Item label="部门">{this.state.Department}</Descriptions.Item>
 | 
						||
                        <Descriptions.Item label="班组">{this.state.teamName}</Descriptions.Item>
 | 
						||
                        <Descriptions.Item label="岗位">{this.state.postName}</Descriptions.Item>
 | 
						||
                        <Descriptions.Item label="签名" span={3}>{this.state.SignPhoto === 1 ? <img width='30%' src={this.state.SignaturePhoto} /> : ""}</Descriptions.Item>
 | 
						||
                        <Descriptions.Item label="">
 | 
						||
                            {this.state.SignPhoto === 1 ?
 | 
						||
                                <Upload {...uploadprops}><Button><Icon type="upload" /> 重新上传签名照</Button></Upload> :
 | 
						||
                                <Upload {...uploadprops}><Button><Icon type="upload" /> 上传签名照</Button></Upload>
 | 
						||
                            }
 | 
						||
                        </Descriptions.Item>
 | 
						||
                    </Descriptions>
 | 
						||
                </Modal>
 | 
						||
            </div>
 | 
						||
 | 
						||
        );
 | 
						||
    }
 | 
						||
}
 | 
						||
 | 
						||
export default withRouter(connect(({ login }) => ({ login }))(FoUserInfoShow))
 |