step2.jsx 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. import React from 'react';
  2. import { Spin, Form, Button, Select, message } from 'antd';
  3. import './step2.less';
  4. import ajax from 'jquery/src/ajax/xhr.js'
  5. import $ from 'jquery/src/ajax';
  6. const FormItem = Form.Item;
  7. const Option = Select.Option;
  8. const formItemLayout = {
  9. labelCol: { span: 6 },
  10. wrapperCol: { span: 10 }
  11. };
  12. const EvaluateStep2 = Form.create({})(React.createClass({
  13. getInitialState() {
  14. return {
  15. loading: false,
  16. initialData: {}
  17. };
  18. },
  19. componentWillMount() {
  20. this.state.initialData = this.props.data || {};
  21. },
  22. next() {
  23. if (this.state.loading) {
  24. return;
  25. }
  26. this.props.form.validateFields((err, values) => {
  27. if (!err) {
  28. this.setState({
  29. loading: true
  30. })
  31. values.id = this.props.id;
  32. $.ajax({
  33. url: globalConfig.context + '/api/user/evaluate/step2',
  34. method: 'post',
  35. data: values
  36. }).done(function (res) {
  37. if (res.error && res.error.length) {
  38. message.error(res.error[0].message)
  39. } else {
  40. if (this.props.next) {
  41. this.props.next(values);
  42. }
  43. }
  44. }.bind(this)).fail(function () {
  45. this.setState({
  46. loading: false
  47. })
  48. }.bind(this));
  49. }
  50. });
  51. },
  52. prev() {
  53. if (this.props.prev) {
  54. this.props.prev();
  55. }
  56. },
  57. stringify(val) {
  58. return val && String(val)
  59. },
  60. render() {
  61. let { loading, initialData } = this.state;
  62. const { getFieldDecorator } = this.props.form;
  63. return (
  64. <Spin spinning={loading}>
  65. <Form className="steps-form">
  66. <FormItem label="取得方式" {...formItemLayout}>
  67. {getFieldDecorator('accessMethod', {
  68. rules: [{ required: true, message: '请选择技术取得的方式!' }],
  69. initialValue: this.stringify(initialData.accessMethod)
  70. })(
  71. <Select placeholder="请选择技术取得的方式">
  72. <Option value="1">自主研发</Option>
  73. <Option value="2">外购取得</Option>
  74. <Option value="3">许可取得</Option>
  75. </Select>
  76. )}
  77. </FormItem>
  78. <FormItem label="法律状态" {...formItemLayout}>
  79. {getFieldDecorator('legalStatus', {
  80. rules: [{ required: true, message: '请选择法律保护状态!' }],
  81. initialValue: this.stringify(initialData.legalStatus)
  82. })(
  83. <Select placeholder="请选择法律保护状态">
  84. <Option value="1">已获专利证书-发明专利,受法律保护</Option>
  85. <Option value="2">已获专利证书-实用新型专利,受法律保护</Option>
  86. <Option value="3">已获专利证书-外观技术专利,受法律保护</Option>
  87. <Option value="4">已申请尚未获得证书,一定程度上受法律保护</Option>
  88. <Option value="5">专有技术,未申请法律保护</Option>
  89. </Select>
  90. )}
  91. </FormItem>
  92. <FormItem label="专利维护" {...formItemLayout}>
  93. {getFieldDecorator('patentMaintenance', {
  94. rules: [{ required: true, message: '请选择专利维护状态!' }],
  95. initialValue: this.stringify(initialData.patentMaintenance)
  96. })(
  97. <Select placeholder="请选择专利维护状态">
  98. <Option value="1">专利按时缴纳年费</Option>
  99. <Option value="2">专利已过期或未按时缴纳年费</Option>
  100. </Select>
  101. )}
  102. </FormItem>
  103. <FormItem label="保密性" {...formItemLayout}>
  104. {getFieldDecorator('confidentiality', {
  105. rules: [{ required: true, message: '请选择保密性!' }],
  106. initialValue: this.stringify(initialData.confidentiality)
  107. })(
  108. <Select placeholder="请选择保密性">
  109. <Option value="1">他人无法获知,保密性强</Option>
  110. <Option value="2">他人较少可能获知,保密性较强</Option>
  111. <Option value="3">他人可能获知,保密性一般</Option>
  112. <Option value="4">他人很有可能获知,保密性较差</Option>
  113. <Option value="5">无法保密</Option>
  114. </Select>
  115. )}
  116. </FormItem>
  117. <FormItem label="他人侵权的易判定性" {...formItemLayout}>
  118. {getFieldDecorator('decidability', {
  119. rules: [{ required: true, message: '请选择他人侵权的易判定性!' }],
  120. initialValue: this.stringify(initialData.decidability)
  121. })(
  122. <Select placeholder="请选择他人侵权的易判定性">
  123. <Option value="1">易发现且易判定</Option>
  124. <Option value="2">易发现但不易判定</Option>
  125. <Option value="3">难以发现他人是否侵权</Option>
  126. <Option value="4">非专利技术,无法判定他人侵权</Option>
  127. </Select>
  128. )}
  129. </FormItem>
  130. <FormItem label="是否涉及质押、担保、诉讼等权利限制" {...formItemLayout}>
  131. {getFieldDecorator('hasRightLimitation', {
  132. rules: [{ required: true, message: '请选择是否涉及质押、担保、诉讼等权利限制!' }],
  133. initialValue: this.stringify(initialData.hasRightLimitation)
  134. })(
  135. <Select placeholder="请选择是否涉及质押、担保、诉讼等权利限制">
  136. <Option value="1">否</Option>
  137. <Option value="2">是</Option>
  138. </Select>
  139. )}
  140. </FormItem>
  141. </Form>
  142. <div className="steps-action">
  143. <Button type="primary" onClick={this.next}>保存,下一步</Button>
  144. <Button style={{ marginLeft: 8 }} onClick={this.prev}>上一步</Button>
  145. </div>
  146. </Spin>
  147. )
  148. },
  149. }));
  150. export default EvaluateStep2;