normal.jsx 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. import React from 'react';
  2. import { Spin, Button, Tabs, message, Modal } from 'antd';
  3. import $ from 'jquery/src/ajax';
  4. import { Link } from 'react-router';
  5. import '../content.less';
  6. import './content.less';
  7. import Collection from './collection';
  8. import weixin from '../../../../image/weixin-w.png';
  9. import qq from '../../../../image/qq-w.png';
  10. import weibo from '../../../../image/weibo-w.png';
  11. import defaultAvatar from '../../../../image/avatarImg.png'
  12. const Content = React.createClass({
  13. getInitialState () {
  14. return {
  15. loading: false,
  16. visible: false
  17. };
  18. },
  19. getData () {
  20. this.setState({
  21. loading: false
  22. });
  23. $.ajax({
  24. method: "get",
  25. dataType: "json",
  26. url: globalConfig.context + "/api/user/homePage"
  27. }).done(function (data) {
  28. if (data.error && data.error.length) {
  29. message.warning(data.error[0].message);
  30. } else {
  31. this.setState({
  32. achievementNum: data.data.achievementNum,
  33. copyrightNum: data.data.copyrightNum,
  34. demandNum: data.data.demandNum,
  35. gradeName: data.data.gradeName,
  36. email: data.data.email,
  37. intellectualPropertyNum: data.data.intellectualPropertyNum,
  38. logoUrl: data.data.logoUrl,
  39. level: data.data.lvl,
  40. nickname: data.data.nickname,
  41. number: data.data.number,
  42. patentNum: data.data.patentNum,
  43. personPortraitUrl: data.data.personPortraitUrl,
  44. techProjectNum: data.data.techProjectNum,
  45. type: data.data.type,
  46. uid: data.data.uid,
  47. visible: data.data.type == '0'||data.data.type=='1' ? false : true
  48. })
  49. }
  50. }.bind(this)).always(function () {
  51. this.setState({
  52. loading: false
  53. });
  54. }.bind(this));
  55. },
  56. componentWillMount () {
  57. this.getData();
  58. },
  59. render () {
  60. return (
  61. <Spin spinning={this.state.loading} className='spin-box'>
  62. <div className="index-content">
  63. <div className="index-userdata clearfix">
  64. <p className="acc-title">
  65. 欢迎,
  66. <span>{this.state.nickname || ('No.' + this.state.number)}</span>
  67. {(() => {
  68. if ( this.state.level ) {
  69. return <img src={globalConfig.avatarUploadHost + '/rank/level_' + this.state.level + '.png'} alt="" />
  70. } else {
  71. return ''
  72. }
  73. })()}
  74. {(() => {
  75. if (this.state.level > 1 && this.state.level < 2) {
  76. return <span style={{ fontSize: '14px', color: '#333' }}>
  77. <a href={globalConfig.context + '/portal/membership.html'}>升级高级会员</a> ,获取更多会员权益
  78. </span>;
  79. }
  80. })()}
  81. </p>
  82. <div className="userdata-img">
  83. {this.state.personPortraitUrl || this.state.logoUrl ?
  84. <img src={globalConfig.avatarHost + "/upload" + (this.state.type == 0 ? this.state.personPortraitUrl : this.state.logoUrl)} alt="" />
  85. : <img src={defaultAvatar} alt="" />}
  86. </div>
  87. <div className="userdata-content">
  88. {(() => {
  89. if (this.state.type == '0') {
  90. return <p className="userdata-lvl">已个人认证</p>;
  91. } else if(this.state.type == '1'){
  92. return <p className="userdata-lvl"><span>已企业认证</span></p>
  93. }
  94. })()}
  95. <div>
  96. {
  97. (()=>{
  98. if (this.state.type=='0'||this.state.type=='1') {
  99. if(this.state.type=='0'){
  100. return <p><Link to="/personal">填写完整资料</Link>,有助于提高您的资信</p>
  101. }
  102. if(this.state.type=='1'){
  103. return <p><Link to="/unit">填写完整资料</Link>,有助于提高您的资信</p>
  104. }
  105. }else {
  106. return <div>
  107. <p>未认证,请填写相应资料进行认证</p>
  108. <p>
  109. <Link to='/personal' style={{marginRight:20}}>个人认证</Link>
  110. <Link to='/unit'>企业认证</Link>
  111. </p>
  112. </div>
  113. }
  114. })()
  115. }
  116. </div>
  117. <p className="userdata-relate" style={{ 'display': 'none' }}>
  118. <Button className="relateqq"><img src={qq} alt="" /> QQ账号登录</Button>
  119. <Button className="relateweibo"><img src={weibo} alt="" />微博账号登录</Button>
  120. <Button className="relateweixin"><img src={weixin} alt="" />微信账号登录</Button>
  121. </p>
  122. </div>
  123. </div>
  124. {/* <div className="index-record">
  125. <p className="acc-title">我的轨迹</p>
  126. </div>*/}
  127. <div className="index-activity">
  128. <Collection nub={1}/>
  129. </div>
  130. </div>
  131. <Modal maskClosable={false}
  132. title="实名认证提示"
  133. visible={this.state.visible}
  134. onCancel={() => {
  135. this.setState({
  136. visible: false,
  137. });
  138. }}
  139. width='400px'
  140. footer={[]} >
  141. <p style={{ textAlign: 'center' }}>
  142. <span>您还未进行认证,请完成认证,为您提供更多服务</span>
  143. </p>
  144. <div style={{ marginTop: '20px', textAlign: 'center' }}>
  145. <Button type="primary" style={{marginRight:15}}><Link to="/personal">个人认证</Link></Button>
  146. <Button type="primary"><Link to="/unit">企业认证</Link></Button>
  147. </div>
  148. </Modal>
  149. </Spin>
  150. )
  151. }
  152. });
  153. export default Content;