content.jsx 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. import React from 'react';
  2. import { Icon, message, Row, Col, Spin, Tag } from 'antd';
  3. import './detail.less';
  4. import { getSearchUrl } from '../tools';
  5. import { getProvince } from '../NewDicProvinceList';
  6. import { getTechField } from '../DicTechFieldList';
  7. import ajax from 'jquery/src/ajax/xhr.js'
  8. import $ from 'jquery/src/ajax';
  9. import avatarImg from '../../../image/avatarImg.png';
  10. const Content = React.createClass({
  11. loadData() {
  12. this.setState({
  13. loading: true
  14. });
  15. $.ajax({
  16. method: "get",
  17. dataType: "json",
  18. url: globalConfig.context + "/api/user/partner/detail",
  19. data: {
  20. uid: this.state.uid,
  21. type: this.state.type
  22. }
  23. }).done(function (data) {
  24. if (data.error && data.error.length) {
  25. message.warning(data.error[0].message);
  26. } else {
  27. this.state.data = data.data || {};
  28. }
  29. this.setState({
  30. data: this.state.data,
  31. loading: false
  32. });
  33. }.bind(this));
  34. },
  35. getInitialState() {
  36. return {
  37. loading: false,
  38. data: {},
  39. pagination: {
  40. defaultCurrent: 1,
  41. defaultPageSize: 10,
  42. showQuickJumper: true,
  43. pageSize: 10,
  44. onChange: function (page) {
  45. this.loadData(page);
  46. }.bind(this),
  47. showTotal: function (total) {
  48. return '共' + total + '条数据';
  49. }
  50. },
  51. columns: [
  52. {
  53. title: '编号',
  54. dataIndex: 'serialNumber',
  55. key: 'serialNumber',
  56. }, {
  57. title: '名称',
  58. dataIndex: 'name',
  59. key: 'name',
  60. }, {
  61. title: '关键字',
  62. dataIndex: 'keyword',
  63. key: 'keyword',
  64. }, {
  65. title: '成果类型',
  66. dataIndex: 'dataCategory',
  67. key: 'dataCategory',
  68. render: text => {
  69. switch (text) {
  70. case "0":
  71. return <span>成果</span>;
  72. case "1":
  73. return <span>技术</span>;
  74. case "2":
  75. return <span>项目</span>;
  76. }
  77. }
  78. }, {
  79. title: '类型',
  80. dataIndex: 'category',
  81. key: 'category',
  82. render: text => { return getAchievementCategory(text); }
  83. }, {
  84. title: '行业分类',
  85. dataIndex: 'field',
  86. key: 'field',
  87. render: text => { return getIndustryCategory(text[0], text[1]) }
  88. }, {
  89. title: '所有人名称',
  90. dataIndex: 'ownerName',
  91. key: 'ownerName',
  92. }, {
  93. title: '所有人类型',
  94. dataIndex: 'ownerType',
  95. key: 'ownerType',
  96. render: text => {
  97. switch (text) {
  98. case "0":
  99. return <span>个人</span>;
  100. case "1":
  101. return <span>组织</span>
  102. }
  103. }
  104. }, {
  105. title: '发布时间',
  106. dataIndex: 'releaseDateFormattedDate',
  107. key: 'releaseDateFormattedDate',
  108. }
  109. ],
  110. dataSource: []
  111. };
  112. },
  113. componentWillMount() {
  114. if (window.location.search) {
  115. let theObj = getSearchUrl(window.location.search);
  116. if (theObj.rid && theObj.rid != 'null') {
  117. this.state.uid = theObj.rid;
  118. this.state.type = theObj.type;
  119. this.loadData();
  120. };
  121. };
  122. },
  123. render() {
  124. const theData = this.state.data;
  125. return (
  126. <Spin spinning={this.state.loading}>
  127. <div className="detail-content">
  128. <Row>
  129. <Col span={6}>
  130. <div className="avatar-box">
  131. <img src={(theData.personPortraitUrl || theData.logoUrl) ?
  132. (globalConfig.avatarHost + "/upload" + (this.state.type == 0 ? theData.personPortraitUrl : theData.logoUrl))
  133. : avatarImg} alt="头像" />
  134. </div>
  135. </Col>
  136. <Col span={18} className="avatar-right">
  137. <div>
  138. <div className="column-title">用户名称</div>
  139. <div className="column-text">{this.state.type == 0 ? theData.username : theData.unitName}</div>
  140. </div>
  141. <div>
  142. <div className="column-title">用户类型</div>
  143. <div className="column-text">{this.state.type == 0 ? '个人' : '组织'}</div>
  144. </div>
  145. <div>
  146. <div className="column-title">用户等级</div>
  147. <div className="column-text">Lv.{theData.level}</div>
  148. </div>
  149. <div>
  150. <div className="column-title">所在地</div>
  151. <div className="column-text">{getProvince(theData.province, theData.city, theData.area)}</div>
  152. </div>
  153. </Col>
  154. </Row>
  155. <Row>
  156. <Col span={12}>
  157. <div className="column-title">专业领域</div>
  158. <div className="column-text">{getTechField(this.state.type == 0 ? theData.engagedField.split(',') : theData.field.split(','))}</div>
  159. </Col>
  160. </Row>
  161. <Row>
  162. <Col span={12}>
  163. <div className="column-title">能力标签</div>
  164. <div className="column-text">
  165. {theData.abilityLabel ? theData.abilityLabel.join(',').map((item) => {
  166. return <Tag key={item}>{item}</Tag>
  167. }) : ''}
  168. </div>
  169. </Col>
  170. </Row>
  171. </div >
  172. </Spin>
  173. )
  174. }
  175. });
  176. export default Content;