confidenBreach.jsx 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. import React, { Component } from "react";
  2. import { Form, Radio } from "antd";
  3. import PicturesWall from "./changeComponent/picturesWall.js";
  4. import { splitUrl } from "@/tools.js";
  5. /**
  6. * 订单保密&违约说明
  7. */
  8. const FormItem = Form.Item;
  9. class ConfidenBreach extends Component {
  10. constructor(props) {
  11. super(props);
  12. }
  13. // 校验表单数据,对外部使用
  14. validFormData(data) {
  15. console.log(data)
  16. let flag = true;
  17. let msg = '';
  18. data.ndaUrl = data.ndaUrl || []
  19. data.breachClauseUrl = data.breachClauseUrl || []
  20. if (data.nda === undefined || data.nda === null || data.nda === '') {
  21. flag = false;
  22. msg = '请选择是否签订保密协议'
  23. } else if (data.nda == '1' && !data.ndaUrl.length) {
  24. flag = false;
  25. msg = '请上传保密协议图片'
  26. } else if (data.breachClause1 === undefined || data.breachClause1 === null || data.breachClause1 === '') {
  27. flag = false;
  28. msg = '请选择是否有违约条款'
  29. } else if (data.breachClause1 != '0' && !data.breachClause2) {
  30. flag = false;
  31. msg = '请选择与技术有关/无关'
  32. } else if (data.breachClause1 != '0' && !data.breachClauseUrl.length) {
  33. flag = false;
  34. msg = '请上传签约条款图片'
  35. }
  36. return { flag, msg }
  37. }
  38. // 转换表单数据,对外部使用
  39. transFormData(data) {
  40. let breachClause1, breachClause2 = ''
  41. if (data.breachClause == 0) {
  42. breachClause1 = '0'
  43. } else if (data.breachClause == 1) {
  44. breachClause1 = '1'
  45. breachClause2 = '1'
  46. } else if (data.breachClause == 2) {
  47. breachClause1 = '1'
  48. breachClause2 = '0'
  49. } else if (data.breachClause == 3) {
  50. breachClause1 = '2'
  51. breachClause2 = '1'
  52. } else if (data.breachClause == 4) {
  53. breachClause1 = '2'
  54. breachClause2 = '0'
  55. }
  56. return {
  57. nda: data.nda,
  58. ndaUrl: data.ndaUrl ? splitUrl(
  59. data.ndaUrl,
  60. ",",
  61. globalConfig.avatarHost + "/upload"
  62. ) : [],
  63. breachClause1,
  64. breachClause2,
  65. breachClauseUrl: data.breachClauseUrl ? splitUrl(
  66. data.breachClauseUrl,
  67. ",",
  68. globalConfig.avatarHost + "/upload"
  69. ) : []
  70. }
  71. }
  72. // 获取保密&违约说明数据,对外部使用
  73. getFormData(data) {
  74. const _data = Object.assign({}, data);
  75. _data.ndaUrl = _data.ndaUrl || [];
  76. _data.breachClauseUrl = _data.breachClauseUrl || [];
  77. if (_data.breachClause1 == '0') {
  78. _data.breachClause = '0'
  79. } else if (_data.breachClause1 == '1' && _data.breachClause2 == '1') {
  80. // 有限责任违约条款、与技术服务有关
  81. _data.breachClause = '1'
  82. } else if (_data.breachClause1 == '1' && _data.breachClause2 == '0') {
  83. // 有限责任违约条款、与技术服务无关
  84. _data.breachClause = '2'
  85. } else if (_data.breachClause1 == '2' && _data.breachClause2 == '1') {
  86. // 无限责任违约条款、与技术服务有关
  87. _data.breachClause = '3'
  88. } else if (_data.breachClause1 == '2' && _data.breachClause2 == '0') {
  89. // 无限责任违约条款、与技术服务无关
  90. _data.breachClause = '4'
  91. }
  92. _data.ndaUrl = _data.ndaUrl.map(item => item.response.data).join(',')
  93. _data.breachClauseUrl = _data.breachClauseUrl.map(item => item.response.data).join(',')
  94. delete _data.breachClause1
  95. delete _data.breachClause2
  96. return _data;
  97. }
  98. onChange(value, updateKey) {
  99. this.props.onChange(value, updateKey)
  100. }
  101. render() {
  102. const { orderNo } = this.props;
  103. const _data = this.props.data || {}
  104. const { nda, ndaUrl, breachClauseUrl, breachClause1, breachClause2 } = _data
  105. let ndaString = nda !== null && nda !== undefined ? nda.toString() : ''
  106. return (
  107. <div>
  108. <div style={{display: 'flex', alignItems: 'center' }}>
  109. <h3
  110. style={{
  111. marginLeft: 10,
  112. fontWeight: 800,
  113. marginBottom: 10,
  114. }}
  115. >
  116. 保密&违约说明 &nbsp; &nbsp; &nbsp;
  117. </h3>
  118. <div style={{ padding: '10px', backgroundColor: 'yellow', color: '#000' }}>
  119. <p>营销说明:未如实填报,责任由营销本人全部承担</p>
  120. <p>技术说明:请认真阅读保密/违约条款,并规避相关事项,含保密要求的企业,发送任何资料必须脱密</p>
  121. </div>
  122. </div>
  123. <FormItem
  124. labelCol={{ span: this.props.labelCol || 5 }}
  125. wrapperCol={{ span: this.props.wrapperCol || 19 }}
  126. label={<span><strong style={{ color: "#f00" }}>*</strong>是否签订保密协议</span>}
  127. >
  128. <Radio.Group
  129. onChange={(e) => { this.onChange(e.target.value, 'nda') }}
  130. value={ndaString}
  131. >
  132. <Radio value='0'>无</Radio>
  133. <Radio value='1'>有</Radio>
  134. </Radio.Group>
  135. {nda == 1 ? (
  136. <div>
  137. <PicturesWall
  138. domId={"ndaImg"}
  139. orderNo={orderNo}
  140. fileList={(e) => { this.onChange(e, 'ndaUrl') }}
  141. pictureUrl={ndaUrl}
  142. url="/api/admin/orderChange/uploadFile"
  143. sign="nda"
  144. />
  145. <p>图片建议:要清晰。</p>
  146. </div>
  147. ) : null}
  148. </FormItem>
  149. <FormItem
  150. labelCol={{ span: this.props.labelCol || 5 }}
  151. wrapperCol={{ span: this.props.wrapperCol || 19 }}
  152. label={<span><strong style={{ color: "#f00" }}>*</strong>是否有违约条款</span>}
  153. >
  154. <Radio.Group
  155. onChange={e => {this.onChange(e.target.value, 'breachClause1')}}
  156. value={breachClause1}
  157. >
  158. <Radio value='0'>无</Radio>
  159. <Radio value='1'>有,有限责任违约条款</Radio>
  160. <Radio value='2'>有,无限责任违约条款</Radio>
  161. </Radio.Group>
  162. {breachClause1 && '1,2'.indexOf(breachClause1) > -1 ? (
  163. <div>
  164. <Radio.Group
  165. onChange={(e) => { this.onChange(e.target.value, 'breachClause2') }}
  166. value={breachClause2}
  167. >
  168. <Radio value='1'>与技术服务有关</Radio>
  169. <Radio value='0'>与技术服务无关</Radio>
  170. </Radio.Group>
  171. <div>
  172. <PicturesWall
  173. domId={"breachClauseImg"}
  174. orderNo={orderNo}
  175. fileList={(e) => { this.onChange(e, 'breachClauseUrl') }}
  176. pictureUrl={breachClauseUrl}
  177. url="/api/admin/orderChange/uploadFile"
  178. sign="breach_clause"
  179. />
  180. <p>图片建议:要清晰。</p>
  181. </div>
  182. </div>
  183. ) : null}
  184. </FormItem>
  185. </div >
  186. );
  187. }
  188. }
  189. export default ConfidenBreach;