import React, { Component } from 'react' import { Row, Col, Input, Button, Select, message } from 'antd' import axios from 'axios'; import {formatTime} from '../../common.js' import PropTypes from 'prop-types' class Profile extends Component { static propTypes = { match: PropTypes.object } constructor(props) { super(props) this.state = { usernameEdit: false, emailEdit: false, secureEdit: false, roleEdit: false, userinfo: { } } } componentDidMount(){ const uid = this.props.match.params.uid; this.getUserInfo(uid) } handleEdit = (key, val) => { var s = {}; s[key] = val; this.setState(s) } getUserInfo = (id) => { var _this = this; axios.get('/user/find?id=' + id).then((res) => { _this.setState({ userinfo: res.data.data, _userinfo: res.data.data }) }) } updateUserinfo = (name) =>{ var state = this.state; let value = this.state._userinfo[name]; let params = {uid: state.userinfo.uid} params[name] = value; axios.post('/user/update', params).then( (res)=>{ let data = res.data; if(data.errcode === 0){ let userinfo = this.state.userinfo; userinfo[name] = value; this.setState({ userinfo: userinfo }) this.handleEdit(name + 'Edit', false) message.success('更新用户信息成功'); }else{ message.error(data.errmsg) } }, (err) => { message.error(err.message) } ) } changeUserinfo = (e) =>{ let dom = e.target; let name = dom.getAttribute("name"); let value = dom.value; let userinfo = this.state._userinfo; userinfo[name] = value; this.setState({ _userinfo: userinfo }) } changeRole = (val) =>{ let userinfo = this.state.userinfo; userinfo.role = val; this.setState({ _userinfo: userinfo }) this.updateUserinfo('role'); } updatePassword = () =>{ let old_password = document.getElementById('old_password').value; let password = document.getElementById('password').value; let verify_pass = document.getElementById('verify_pass').value; if(password != verify_pass){ return message.error('两次输入的密码不一样'); } let params = { uid: this.state.userinfo.uid, password: password, old_password: old_password } axios.post('/user/change_password', params).then( (res)=>{ let data = res.data; if(data.errcode === 0){ this.handleEdit('secureEdit', false) message.success('修改密码成功'); }else{ message.error(data.errmsg) } }, (err) => { message.error(err.message) } ) } render() { let ButtonGroup = Button.Group; let userNameEditHtml, emailEditHtml, secureEditHtml, roleEditHtml; const Option = Select.Option; let userinfo = this.state.userinfo; let _userinfo = this.state._userinfo; let roles = { admin: '管理员', member: '会员' } if (this.state.usernameEdit === false) { userNameEditHtml =