normal.jsx 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. authentication:data.data.authentication, //0-专家 1--顾问
  41. nickname: data.data.nickname,
  42. number: data.data.number,
  43. patentNum: data.data.patentNum,
  44. personPortraitUrl: data.data.personPortraitUrl,
  45. techProjectNum: data.data.techProjectNum,
  46. type: data.data.type,
  47. uid: data.data.uid,
  48. visible: (data.data.authentication||data.data.authentication=='0')&&data.data.type=='0'? false : true
  49. })
  50. }
  51. }.bind(this)).always(function () {
  52. this.setState({
  53. loading: false
  54. });
  55. }.bind(this));
  56. },
  57. componentWillMount () {
  58. this.getData();
  59. },
  60. render () {
  61. return (
  62. <Spin spinning={this.state.loading} className='spin-box'>
  63. <div className="index-content">
  64. <div className="index-userdata clearfix">
  65. <p className="acc-title">
  66. 欢迎,
  67. <span>{this.state.nickname || ('No.' + this.state.number)}</span>
  68. {(() => {
  69. if ( this.state.level ) {
  70. return <img src={globalConfig.avatarUploadHost + '/rank/level_' + this.state.level + '.png'} alt="" />
  71. } else {
  72. return ''
  73. }
  74. })()}
  75. {(() => {
  76. if (this.state.level > 1 && this.state.level < 2) {
  77. return <span style={{ fontSize: '14px', color: '#333' }}>
  78. <a href={globalConfig.context + '/portal/membership.html'}>升级高级会员</a> ,获取更多会员权益
  79. </span>;
  80. }
  81. })()}
  82. </p>
  83. <div className="userdata-img">
  84. {this.state.personPortraitUrl || this.state.logoUrl ?
  85. <img src={globalConfig.avatarHost + "/upload" + (this.state.type == 0 ? this.state.personPortraitUrl : this.state.logoUrl)} alt="" />
  86. : <img src={defaultAvatar} alt="" />}
  87. </div>
  88. <div className="userdata-content">
  89. {(() => {
  90. if (this.state.type == '0') {
  91. return <div>
  92. {this.state.authentication=='0'?<p className="userdata-lvl">已专家认证</p>:this.state.authentication=='1'?<p className="userdata-lvl">已顾问认证</p>:<p className="userdata-lvl">已个人认证</p>}
  93. </div>;
  94. } else if(this.state.type == '1'){
  95. return <p className="userdata-lvl"><span>已企业认证</span></p>
  96. }
  97. })()}
  98. <div>
  99. {
  100. (()=>{
  101. if (this.state.type=='0'||this.state.type=='1') {
  102. if(this.state.type=='0'){
  103. return <p><Link to="/personal">填写完整资料</Link>,有助于提高您的资信</p>
  104. }
  105. if(this.state.type=='1'){
  106. return <p><Link to="/unit">填写完整资料</Link>,有助于提高您的资信</p>
  107. }
  108. }else {
  109. return <div>
  110. <p>未认证,请填写相应资料进行认证</p>
  111. <p>
  112. <Link to='/personal' style={{marginRight:20}}>个人认证</Link>
  113. <Link to='/unit'>企业认证</Link>
  114. </p>
  115. </div>
  116. }
  117. })()
  118. }
  119. </div>
  120. </div>
  121. </div>
  122. <div className="index-activity">
  123. <Collection nub={1}/>
  124. </div>
  125. </div>
  126. <Modal maskClosable={false}
  127. title="认证提示"
  128. visible={this.state.visible}
  129. onCancel={() => {
  130. this.setState({
  131. visible: false,
  132. });
  133. }}
  134. width='400px'
  135. footer={[]} >
  136. <p style={{ textAlign: 'center' }}>
  137. <span>您还未进行 ( 专家 / 顾问 ) 认证,请完成认证,为您提供更多服务</span>
  138. </p>
  139. <div style={{ marginTop: '20px', textAlign: 'center' }}>
  140. <Button type="primary" style={{marginRight:15}}><Link to="/personal">专家认证</Link></Button>
  141. <Button type="primary"><Link to="/personal">顾问认证</Link></Button>
  142. </div>
  143. </Modal>
  144. </Spin>
  145. )
  146. }
  147. });
  148. export default Content;