import React, { Component } from 'react'; import { SnackbarHOC } from 'educoder'; import {Link} from 'react-router-dom'; import {Tooltip,Menu} from 'antd'; import Loadable from 'react-loadable'; import Loading from '../../../Loading'; import {BrowserRouter as Router,Route,Switch} from 'react-router-dom'; import UpgradeModals from '../../modals/UpgradeModals'; import axios from 'axios'; import {getImageUrl} from 'educoder'; import { TPMIndexHOC } from '../../tpm/TPMIndexHOC'; import { CNotificationHOC } from '../../courses/common/CNotificationHOC' import "./usersInfo.css" import "../../courses/css/members.css" import "../../courses/css/Courses.css" import Trialapplication from '../../login/Trialapplication' const InfosPackage = Loadable({ loader: () => import('./InfosPackage'), loading:Loading, }) const InfosCourse = Loadable({ loader: () => import('./InfosCourse'), loading:Loading, }) const InfosShixun = Loadable({ loader: () => import('./InfosShixun'), loading:Loading, }) const InfosPath = Loadable({ loader: () => import('./InfosPath'), loading:Loading, }) const InfosProject = Loadable({ loader: () => import('./InfosProject'), loading:Loading, }) const $ = window.$; class Infos extends Component{ constructor(props){ super(props); this.state={ data:undefined, is_current:true, is_edit:false, sign:undefined, type:0, login:undefined, isRenders:false, moduleName:"courses", next_gold:undefined } } componentDidMount =()=>{ let upsystem=`/users/system_update.json`; axios.get(upsystem).then((response)=>{ let updata=response.data; this.setState({ updata:updata }) }).catch((error)=>{ console.log(error); }) this.getInfo(this.props.match.params.username); } //判断是否看的是当前用户的个人主页 componentDidUpdate =(prevProps)=> { if(this.props.current_user && prevProps.current_user != this.props.current_user){ if(this.props.current_user.login != this.props.match.params.username){ this.setState({ is_current:false, login:this.props.current_user.login }) } } else { if (prevProps.match.params.username != this.props.match.params.username) { this.getInfo(this.props.match.params.username); } } } //获取个人主页信息 getInfo = (user_login) =>{ let url =`/users/${user_login}/homepage_info.json`; axios.get(url).then((result)=>{ if(result){ this.setState({ data:result.data, followed:result.data.followed, sign:result.data.brief_introduction, id:result.data.id, next_gold:result.data.tomorrow_attendance_gold }) } }).catch((error)=>{ console.log(error); }) } // 编辑签名 editmysign=()=>{ this.setState({ is_edit:true },()=>{ $("#mysign").focus(); }) } // 输入签名 inputSign=(e)=>{ this.setState({ sign:e.target.value }) } //取消编辑签名 savemysign=()=>{ let { sign } =this.state; let url=`/users/brief_introduction.json`; axios.post((url),{ content:sign }).then((result)=>{ if(result){ this.setState({ is_edit:false }) } }).catch((error)=>{ console.log(error) }) } changeType=(e)=>{ this.setState({ type:e.key }) } turnTo=(url)=>{ this.props.history.push(url); } //签到 signFor=()=>{ let url=`/users/attendance.json` axios.post(url).then((result)=>{ if(result){ // this.setState( // (prevState) => ({ // data : update(prevState.data, {attendance_signed: {$set: true} }) // }) // ) // this.setState({ // next_gold:result.data.next_gold // }) this.getInfo(this.props.match.params.username); } }).catch((error)=>{ console.log(error); }) } // 关注 followPerson=()=>{ let{followed,id}=this.state; let url=`/users/${id}/watch.json`; // 取消关注 if(followed){ axios.delete(url).then((result)=>{ if(result){ this.setState({ followed:false }) } }).catch((error)=>{ console.log(error) }) }else{ // 关注 axios.post(url).then((result)=>{ if(result){ this.setState({ followed:true }) } }).catch((error)=>{ console.log(error); }) } } // 试用申请 trialapplications =()=>{ this.setState({ isRenders: true, showTrial:true }) } cancelModulationModels=()=>{ this.setState({ isRenders: false }) } ToBank=(url)=>{ window.location.href=url; } render(){ let { data , is_current, is_edit, sign, type, followed, id, login, isRenders, moduleName, next_gold }=this.state; let {username}= this.props.match.params; let {pathname}=this.props.location; moduleName=pathname.split("/")[3]; return(
{this.state.updata===undefined?"":} { isRenders && this.cancelModulationModels()}/> }
{is_current ? "我":"TA"}的经验值 {data && data.experience}
{is_current ? "我":"TA"}的金币 {data && data.grade}
头像
{is_current ? "我":"TA"}的粉丝 {data && data.fan_count}
{is_current ? "我":"TA"}的关注 {data && data.follow_count}
{data && data.name}
{ data && is_current == false && data.identity =="学生" ? "" : {data && data.identity} } {/* */} { data && data.college_identifier && }

{ is_edit && is_current ? : is_current ? {sign || "这家伙很懒,什么都没留下~"} : {sign || "这家伙很懒,什么都没留下~"} }

{ is_current ?
{ data && data.attendance_signed ? 已签到

明日签到 +{next_gold} 金币

: 签到 // 试用申请 }
: }
  • this.setState({moduleName: 'courses'})} to={`/users/${username}/courses`}>课堂
  • this.setState({moduleName: 'shixuns'})} to={`/users/${username}/shixuns`}>实训
  • this.setState({moduleName: 'paths'})} to={`/users/${username}/paths`}>实践课程
  • this.setState({moduleName: 'projects'})} to={`/users/${username}/projects`}>项目
  • this.setState({moduleName: 'package'})} to={`/users/${username}/package`}>众包
  • {/*{ data && data.identity!="学生" &&
  • 题库
  • }*/}
    {/* --------------------------------------------------------------------- */} {/* 众包 */} {/* http://localhost:3007/courses/1309/homework/9300/setting */} () } > {/* 课堂 */} {/* http://localhost:3007/courses/1309/homework/9300/setting */} () } > {/* 实训 */} () } > {/* 实训课程 */} () } > {/* 项目 */} () } > () } >
    ) } } export default CNotificationHOC() ( SnackbarHOC() ( TPMIndexHOC(Infos) ));