patent.jsx 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. import React from 'react';
  2. import { Icon, Button, Input, Select, Spin, Table, message } from 'antd';
  3. import { patentTypeList, patentStateList } from '../../dataDic.js';
  4. import { getPatentType, getPatentState, getTime, setUserContactsList } from '../../tools.js';
  5. import ajax from 'jquery/src/ajax/xhr.js'
  6. import $ from 'jquery/src/ajax';
  7. import './patent.less';
  8. import PatentAdd from './patentAdd.jsx';
  9. import PatentDesc from './patentDesc.jsx';
  10. const Patent = React.createClass({
  11. loadData(pageNo) {
  12. this.state.data = [];
  13. this.setState({
  14. loading: true
  15. });
  16. let page = pageNo || 1,
  17. pageSize = this.state.pagination.pageSize,
  18. patentNumber = this.state.searchNum || '',
  19. patentName = this.state.searchName || '',
  20. patentCatagory = this.state.searchType || '',
  21. patentState = this.state.searchState || '';
  22. $.ajax({
  23. method: "get",
  24. dataType: "json",
  25. crossDomain: false,
  26. url: globalConfig.context + "/api/user/patent/clientApplyList?pageNo=" + page + "&pageSize=" + pageSize + "&patentNumber=" + patentNumber + "&patentName=" + patentName + "&patentCatagory=" + patentCatagory + "&patentState=" + patentState,
  27. success: function (data) {
  28. if (!data.data) {
  29. if (data.error && data.error.length) {
  30. message.warning(data.error[0].message);
  31. this.state.ButtonDisabled = true;
  32. }
  33. return;
  34. };
  35. for (let i = 0; i < data.data.list.length; i++) {
  36. let thisdata = data.data.list[i];
  37. this.state.data.push({
  38. key: i,
  39. pid: thisdata.id,
  40. number: thisdata.serialNumber,
  41. patentNum: thisdata.patentNumber,
  42. patentName: thisdata.patentName,
  43. patentType: getPatentType(thisdata.patentCatagory),
  44. patentState: getPatentState(thisdata.patentState),
  45. patentField: thisdata.patentField,
  46. patentDes: thisdata.patentDes,
  47. patentProryStatementUrl: thisdata.patentProryStatementUrl, //专利代理委托书
  48. patentWritingUrl: thisdata.patentWritingUrl, //专利稿件
  49. authorizationNoticeUrl: thisdata.authorizationNoticeUrl, //授权通知书
  50. patentCertificateUrl: thisdata.patentCertificateUrl, //专利证书
  51. confirmState: thisdata.confirmState, //稿件确认状态
  52. authorizedTime: getTime(thisdata.authorizedDate),
  53. startTime: getTime(thisdata.patentApplicationDate),
  54. endTime: getTime(thisdata.patentApplicationDate, 2),
  55. firstInventorName: thisdata.firstInventorName,
  56. firstInventorNationality: thisdata.firstInventorNationality, //国籍
  57. firstInventorIdNumber: thisdata.firstInventorIdNumber, //id
  58. firstInventorIsPublish: thisdata.firstInventorIsPublish, //是否公布
  59. secondInventorName: thisdata.secondInventorName,
  60. secondInventorNationality: thisdata.secondInventorNationality,
  61. secondInventorIsPublish: thisdata.secondInventorIsPublish,
  62. thirdInventorName: thisdata.thirdInventorName,
  63. thirdInventorNationality: thisdata.thirdInventorNationality,
  64. thirdInventorIsPublish: thisdata.thirdInventorIsPublish,
  65. createTime: thisdata.createTime, //派单日
  66. author: thisdata.author, //撰写人
  67. office: thisdata.office, //事务所
  68. principal: thisdata.principal //负责人
  69. });
  70. };
  71. this.state.pagination.current = data.data.pageNo;
  72. this.state.pagination.total = data.data.totalCount;
  73. this.setState({
  74. dataSource: this.state.data,
  75. pagination: this.state.pagination
  76. });
  77. }.bind(this),
  78. }).always(function () {
  79. this.setState({
  80. loading: false
  81. });
  82. }.bind(this));
  83. },
  84. getInitialState() {
  85. return {
  86. patentTypeOption: [],
  87. patentStateOption: [],
  88. data: [],
  89. //dataSource: [],
  90. loading: false,
  91. pagination: {
  92. defaultCurrent: 1,
  93. defaultPageSize: 10,
  94. showQuickJumper: true,
  95. pageSize: 10,
  96. onChange: function (page) {
  97. this.loadData(page);
  98. }.bind(this),
  99. showTotal: function (total) {
  100. return '共' + total + '条数据';
  101. }
  102. },
  103. columns: [
  104. {
  105. title: '编号',
  106. dataIndex: 'number',
  107. key: 'number',
  108. }, {
  109. title: '申请号/专利号',
  110. dataIndex: 'patentNum',
  111. key: 'patentNum',
  112. }, {
  113. title: '专利类型',
  114. dataIndex: 'patentType',
  115. key: 'patentType',
  116. }, {
  117. title: '专利名称',
  118. dataIndex: 'patentName',
  119. key: 'patentName',
  120. }, {
  121. title: '专利状态',
  122. dataIndex: 'patentState',
  123. key: 'patentState',
  124. }, {
  125. title: '申请日',
  126. dataIndex: 'startTime',
  127. key: 'startTime',
  128. }, {
  129. title: '授权缴费截止日',
  130. dataIndex: 'endTime',
  131. key: 'endTime',
  132. }
  133. ],
  134. dataSource: []
  135. };
  136. },
  137. componentWillMount() {
  138. let _me = this;
  139. patentTypeList.map(function (item) {
  140. _me.state.patentTypeOption.push(
  141. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  142. )
  143. });
  144. patentStateList.map(function (item) {
  145. _me.state.patentStateOption.push(
  146. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  147. )
  148. });
  149. this.loadData();
  150. this.state.contactsOption = setUserContactsList();
  151. },
  152. tableRowClick(record, index) {
  153. this.state.RowData = record;
  154. this.setState({
  155. showDesc: true
  156. });
  157. },
  158. closeDesc(e, s) {
  159. this.state.showDesc = e;
  160. if (s) {
  161. this.loadData();
  162. };
  163. },
  164. search() {
  165. this.state.searchNum;
  166. this.state.searchName;
  167. this.state.searchType;
  168. this.state.searchState;
  169. this.loadData();
  170. },
  171. reset() {
  172. this.state.searchNum = "";
  173. this.state.searchName = "";
  174. this.state.searchType = "";
  175. this.state.searchState = "";
  176. this.loadData();
  177. },
  178. render() {
  179. return (
  180. <div className="patent-content" >
  181. <div className="content-title">
  182. <span>专利申请管理</span>
  183. {userData.type == '0' ? <span></span> : <PatentAdd ButtonDisabled={this.state.ButtonDisabled} closeDesc={this.closeDesc} />}
  184. </div>
  185. <div className="patent-query">
  186. <Input placeholder="专利号" value={this.state.searchNum} onChange={(e) => { this.setState({ searchNum: e.target.value }); }} />
  187. <Input placeholder="专利名称" value={this.state.searchName} onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
  188. <Select placeholder="专利类型" value={this.state.searchType} style={{ width: 200 }} onChange={(e) => { this.setState({ searchType: e }); }}>{this.state.patentTypeOption}</Select>
  189. <Select placeholder="专利状态" value={this.state.searchState} style={{ width: 200 }} onChange={(e) => { this.setState({ searchState: e }); }}>{this.state.patentStateOption}</Select>
  190. <Button type="primary" onClick={this.search}>搜索</Button>
  191. <Button type="ghost" onClick={this.reset}>重置</Button>
  192. </div>
  193. <div className="patent-table">
  194. <Spin spinning={this.state.loading}>
  195. <Table columns={this.state.columns}
  196. dataSource={this.state.dataSource}
  197. pagination={this.state.pagination}
  198. onRowClick={this.tableRowClick} />
  199. </Spin>
  200. </div>
  201. <PatentDesc data={this.state.RowData} showDesc={this.state.showDesc} closeDesc={this.closeDesc} />
  202. </div >
  203. );
  204. }
  205. });
  206. export default Patent;