unit.jsx 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. /*
  2. @author:李霆
  3. @update:2018/05/29
  4. */
  5. import React from 'react';
  6. import {
  7. Radio,
  8. Icon,
  9. Button,
  10. Input,
  11. Select,
  12. Spin,
  13. message,
  14. DatePicker,
  15. Modal,
  16. Upload,
  17. Form,
  18. Row,
  19. Col,
  20. InputNumber
  21. } from 'antd';
  22. import $ from 'jquery/src/ajax';
  23. import './unit.less';
  24. import {
  25. socialAttribute,
  26. industry,
  27. } from '@/dataDic.js';
  28. import {
  29. splitUrl,
  30. } from '@/tools.js';
  31. const FormItem = Form.Item;
  32. import Crop from '@/crop/cropBlock';
  33. //图片组件
  34. const PicturesWall = React.createClass({
  35. getInitialState() {
  36. return {
  37. previewVisible: false,
  38. previewImage: '',
  39. fileList: []
  40. };
  41. },
  42. handleCancel() {
  43. this.setState({
  44. previewVisible: false
  45. });
  46. },
  47. handlePreview(file) {
  48. this.setState({
  49. previewImage: file.url || file.thumbUrl,
  50. previewVisible: true
  51. });
  52. },
  53. handleChange(info) {
  54. let fileList = info.fileList;
  55. this.setState({
  56. fileList
  57. });
  58. this.props.fileList(fileList);
  59. },
  60. componentWillReceiveProps(nextProps) {
  61. this.state.fileList = nextProps.pictureUrl;
  62. },
  63. render() {
  64. const { previewVisible, previewImage, fileList } = this.state;
  65. const uploadButton = (
  66. <div>
  67. <Icon type="plus" />
  68. <div className="ant-upload-text">点击上传</div>
  69. </div>
  70. );
  71. return (
  72. <div style={{ display: 'inline-block' }}>
  73. <Upload
  74. action={globalConfig.context + '/api/user/uploadPicture'}
  75. data={{ sign: 'user_picture' }}
  76. listType="picture-card"
  77. fileList={fileList}
  78. onPreview={this.handlePreview}
  79. onChange={this.handleChange}
  80. >
  81. {fileList.length >= 1 ? null : uploadButton}
  82. </Upload>
  83. <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>
  84. <img alt="example" style={{ width: '100%' }} src={previewImage} />
  85. </Modal>
  86. </div>
  87. );
  88. }
  89. });
  90. const PicturesWallMore = React.createClass({
  91. getInitialState() {
  92. return {
  93. previewVisible: false,
  94. previewImage: '',
  95. fileList: []
  96. };
  97. },
  98. handleCancel() {
  99. this.setState({
  100. previewVisible: false
  101. });
  102. },
  103. handlePreview(file) {
  104. this.setState({
  105. previewImage: file.url || file.thumbUrl,
  106. previewVisible: true
  107. });
  108. },
  109. handleChange(info) {
  110. let fileList = info.fileList;
  111. this.setState({
  112. fileList
  113. });
  114. this.props.fileList(fileList);
  115. },
  116. componentWillReceiveProps(nextProps) {
  117. this.state.fileList = nextProps.pictureUrl;
  118. },
  119. render() {
  120. const { previewVisible, previewImage, fileList } = this.state;
  121. const uploadButton = (
  122. <div>
  123. <Icon type="plus" />
  124. <div className="ant-upload-text">点击上传</div>
  125. </div>
  126. );
  127. return (
  128. <div style={{ display: 'inline-block' }}>
  129. <Upload
  130. action={globalConfig.context + '/api/user/uploadHonerPicture'}
  131. data={{ sign: 'honor_picture' }}
  132. listType="picture-card"
  133. fileList={fileList}
  134. onPreview={this.handlePreview}
  135. onChange={this.handleChange}
  136. >
  137. {fileList.length >= 8 ? null : uploadButton}
  138. </Upload>
  139. <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>
  140. <img alt="example" style={{ width: '100%' }} src={previewImage} />
  141. </Modal>
  142. </div>
  143. );
  144. }
  145. });
  146. const Unit = React.createClass({
  147. getInitialState() {
  148. return {
  149. loading: false,
  150. orgCodeUrl: [],
  151. companyLogoUrl: [],
  152. ProvinceCity:[],
  153. qualiUrl:[]
  154. };
  155. },
  156. loadInformation(record) {
  157. this.setState({
  158. loading:true
  159. })
  160. $.ajax({
  161. method: 'get',
  162. dataType: 'json',
  163. url: globalConfig.context + '/api/user/getOrganizationDetail',
  164. success: function(data) {
  165. let thisData = data.data;
  166. if (!thisData) {
  167. if (data.error && data.error.length) {
  168. message.warning(data.error[0].message);
  169. }
  170. thisData = {};
  171. }
  172. // thisData.companyLogoUrl='/user/33e04d30-d001-45c5-8e1e-33a1964d2498/1104216629777565_user_picture.jpg'
  173. // let ProvinceCityArr = [];
  174. // let ProvinceS = thisData.locationProvince; //getprovince
  175. // let citys = thisData.locationCity;
  176. // let Areas = thisData.locationArea;
  177. // ProvinceCityArr.push(ProvinceS, citys, Areas);
  178. this.setState({
  179. InformationId: thisData.id,
  180. InformationUid: thisData.uid,
  181. identifyName: thisData.identifyName,
  182. listed: thisData.listed,
  183. highTechZone: thisData.highTechZone,
  184. orgCodeUrl: thisData.orgCodeUrl
  185. ? splitUrl(thisData.orgCodeUrl, ',', globalConfig.avatarHost + '/upload')
  186. : [],
  187. // companyLogoUrl: thisData.companyLogoUrl
  188. // ? splitUrl(thisData.companyLogoUrl, ',', globalConfig.avatarHost + '/upload')
  189. // : [],
  190. companyLogoUrl:thisData.companyLogoUrl?thisData.companyLogoUrl.split(','):[],
  191. qualiUrl: thisData.honorPicture
  192. ? splitUrl(thisData.honorPicture, ',', globalConfig.avatarHost + '/upload')
  193. : [],
  194. dataInformation: thisData,
  195. //ProvinceCity: ProvinceCityArr[0] != null ? ProvinceCityArr : undefined,
  196. industry: String(thisData.industry) == 'null' ? undefined : String(thisData.industry),
  197. societyTag: thisData.societyTag || undefined,
  198. introduction: thisData.introduction,
  199. postalAddress: thisData.postalAddress,
  200. fixedTel: thisData.fixedTel,
  201. registeredCapital: thisData.registeredCapital,
  202. enterpriseScale: thisData.enterpriseScale,
  203. legalPerson: thisData.legalPerson,
  204. legalPersonIdCard: thisData.legalPersonIdCard,
  205. legalPersonTel: thisData.legalPersonTel,
  206. legalPersonEmail: thisData.legalPersonEmail,
  207. businessScope: thisData.businessScope,
  208. orgCode: thisData.orgCode,
  209. type:thisData.type,
  210. qq:thisData.qq,
  211. email:thisData.email,
  212. authentication:thisData.authentication
  213. });
  214. }.bind(this)
  215. }).always(
  216. function() {
  217. this.setState({
  218. loading: false
  219. });
  220. }.bind(this)
  221. );
  222. },
  223. //图片
  224. getOrgCodeUrl(e) {
  225. this.setState({
  226. orgCodeUrl: e
  227. });
  228. },
  229. getCompanyLogoUrl(e) {
  230. this.setState({
  231. companyLogoUrl: e
  232. });
  233. },
  234. getQualiUrl(e) {
  235. this.setState({
  236. qualiUrl: e
  237. });
  238. },
  239. //基本信息提交
  240. newSubmit(e) {
  241. this.setState({
  242. selectedRowKeys: []
  243. });
  244. let theorgCodeUrl = [];
  245. if (this.state.orgCodeUrl.length) {
  246. let picArr = [];
  247. this.state.orgCodeUrl.map(function(item) {
  248. if (item.response && item.response.data && item.response.data.length) {
  249. picArr.push(item.response.data);
  250. }
  251. });
  252. theorgCodeUrl = picArr.join(',');
  253. }
  254. //let thecompanyLogoUrl = [];
  255. // if (this.state.companyLogoUrl.length) {
  256. // let picArr = [];
  257. // this.state.companyLogoUrl.map(function(item) {
  258. // if (item.response && item.response.data && item.response.data.length) {
  259. // picArr.push(item.response.data);
  260. // }
  261. // });
  262. // thecompanyLogoUrl = picArr.join(',');
  263. // }
  264. let thequaliUrl = [];
  265. if (this.state.qualiUrl.length) {
  266. let picArr = [];
  267. this.state.qualiUrl.map(function(item) {
  268. if (item.response && item.response.data && item.response.data.length) {
  269. picArr.push(item.response.data);
  270. }
  271. });
  272. thequaliUrl = picArr.join(',');
  273. }
  274. this.setState({
  275. loading: true
  276. });
  277. $.ajax({
  278. method: 'post',
  279. dataType: 'json',
  280. url: globalConfig.context + '/api/user/updateOrganizationDetail',
  281. data: {
  282. id: this.state.InformationId,
  283. uid: this.state.InformationUid,
  284. societyTag: this.state.societyTag,
  285. identifyName: this.state.identifyName, //单位名称
  286. introduction: this.state.introduction,
  287. unitName: this.state.unitName,
  288. industry: this.state.industry,
  289. postalAddress: this.state.postalAddress,
  290. fixedTel: this.state.fixedTel,
  291. contactsFax: this.state.contactsFax,
  292. registeredCapital: this.state.registeredCapital ? this.state.registeredCapital : 0,
  293. enterpriseScale: this.state.enterpriseScale,
  294. legalPerson: this.state.legalPerson,
  295. legalPersonIdCard: this.state.legalPersonIdCard,
  296. legalPersonTel: this.state.legalPersonTel,
  297. legalPersonEmail: this.state.legalPersonEmail,
  298. highTechZone: this.state.highTechZone,
  299. listed: this.state.listed,
  300. contacts: this.state.contacts,
  301. orgCode: this.state.orgCode,
  302. businessScope: this.state.businessScope,
  303. introduction: this.state.introduction,
  304. // companyLogoUrl: thecompanyLogoUrl.length != 0 ? thecompanyLogoUrl : '',
  305. companyLogoUrl:this.state.companyLogoUrl.length>0?(this.state.companyLogoUrl).join(','):[],
  306. honorPicture: thequaliUrl.length != 0 ? thequaliUrl : '',
  307. orgCodeUrl: theorgCodeUrl.length != 0 ? theorgCodeUrl : '',
  308. auditStatus: this.state.auditStatus,
  309. authentication:this.state.authentication,
  310. type:this.state.type,
  311. qq:this.state.qq,
  312. email:this.state.email
  313. }
  314. }).done(
  315. function(data) {
  316. this.setState({
  317. loading: false
  318. });
  319. if (!data.error.length) {
  320. message.success('保存成功');
  321. this.loadInformation();
  322. } else {
  323. message.warning(data.error[0].message);
  324. }
  325. }.bind(this)
  326. );
  327. },
  328. subFun(){
  329. if(!this.state.identifyName){
  330. message.warning("请填写单位名称")
  331. return;
  332. }
  333. if (!this.state.industry) {
  334. message.warning('请选择行业!');
  335. return false;
  336. }
  337. if (!this.state.societyTag) {
  338. message.warning('请选择社会性质!');
  339. return false;
  340. }
  341. if (isNaN(this.state.registeredCapital)) {
  342. message.warning('注册资本只能输入数字!');
  343. return false;
  344. }
  345. if (!this.state.email) {
  346. message.warning('请填写企业邮箱!');
  347. return false;
  348. }
  349. if (!this.state.qq) {
  350. message.warning('请填写企业QQ!');
  351. return false;
  352. }
  353. if (this.state.companyLogoUrl&&(this.state.companyLogoUrl.length)<1) {
  354. message.warning('请上传企业LOGO.');
  355. return false;
  356. }
  357. if(!this.state.businessScope){
  358. message.warning('请填写业务范围!');
  359. return false;
  360. }
  361. if(!this.state.introduction){
  362. message.warning('请填写企业简介!');
  363. return false;
  364. }
  365. if (this.state.qualiUrl&&(this.state.qualiUrl.length)<1) {
  366. message.warning('请上传资质荣誉照片.');
  367. return false;
  368. }
  369. this.newSubmit()
  370. },
  371. handleOk(){
  372. this.newSubmit();
  373. this.setState({
  374. visible:false
  375. })
  376. },
  377. handleCancel(){
  378. this.setState({
  379. visible:false
  380. })
  381. },
  382. //logo图片获取
  383. getAllImg(imgArr){
  384. this.setState({
  385. companyLogoUrl:imgArr
  386. })
  387. },
  388. componentWillMount() {
  389. this.loadInformation();
  390. },
  391. componentWillReceiveProps(nextProps) {
  392. },
  393. render() {
  394. return (
  395. <div className="unit-wrap">
  396. <Form layout="horizontal" onSubmit={this.newSubmit} id="demand-form" style={{width:'80%'}}>
  397. <Spin spinning={this.state.loading}>
  398. <Row style={{ marginBottom: 20 }}>
  399. <Col offset={2} span={4}>
  400. <h4 style={{fontSize:20}}>企业资料</h4>
  401. </Col>
  402. </Row>
  403. <div className="clearfix" style={{ paddingLeft: '60px' }}>
  404. <FormItem
  405. className="half-item"
  406. labelCol={{ span: 4 }}
  407. wrapperCol={{ span: 18 }}
  408. label={<span><span className="color-red"> * </span>企业名称</span>}
  409. >
  410. <Input
  411. maxLength={128}
  412. value={this.state.identifyName}
  413. onChange={(e) => {
  414. this.setState({ identifyName: e.target.value });
  415. }}
  416. placeholder="请输入企业名称"
  417. />
  418. </FormItem>
  419. <FormItem
  420. className="half-item"
  421. labelCol={{ span: 4 }}
  422. wrapperCol={{ span: 18 }}
  423. label="企业规模"
  424. >
  425. <InputNumber
  426. placeholder="企业规模"
  427. value={this.state.enterpriseScale}
  428. InputNumber min={0} maxLength={16}
  429. style={{width:120,marginRight:10}}
  430. onChange={(e) => {
  431. this.setState({ enterpriseScale: e });
  432. }}
  433. />
  434. <span>人</span>
  435. </FormItem>
  436. </div>
  437. <div className="clearfix" style={{ paddingLeft: '60px' }}>
  438. <FormItem className="half-item" labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label={<span><span className="color-red"> * </span>行业</span>}>
  439. <Select
  440. placeholder="选择行业"
  441. value={this.state.industry}
  442. onChange={(e) => {
  443. this.setState({ industry: e });
  444. }}
  445. >
  446. {industry.map(function(item) {
  447. return <Select.Option key={item.value}>{item.key}</Select.Option>;
  448. })}
  449. </Select>
  450. </FormItem>
  451. <FormItem
  452. className="half-item"
  453. labelCol={{ span: 4 }}
  454. wrapperCol={{ span: 18 }}
  455. label={<span><span className="color-red"> * </span>社会属性</span>}
  456. >
  457. <Select
  458. placeholder="客户社会属性"
  459. value={this.state.societyTag}
  460. onChange={(e) => {
  461. this.setState({ societyTag: e });
  462. }}
  463. >
  464. {socialAttribute.map(function(item) {
  465. return <Select.Option key={item.value}>{item.key}</Select.Option>;
  466. })}
  467. </Select>
  468. </FormItem>
  469. <FormItem
  470. className="half-item"
  471. labelCol={{ span: 4 }}
  472. wrapperCol={{ span: 18 }}
  473. label="通信地址"
  474. >
  475. <Input
  476. maxLength={255}
  477. placeholder="客户通信地址"
  478. value={this.state.postalAddress}
  479. onChange={(e) => {
  480. this.setState({ postalAddress: e.target.value });
  481. }}
  482. />
  483. </FormItem>
  484. <FormItem
  485. className="half-item"
  486. labelCol={{ span: 4 }}
  487. wrapperCol={{ span: 18 }}
  488. label="固定电话"
  489. >
  490. <Input
  491. maxLength={16}
  492. placeholder="客户固定电话"
  493. value={this.state.fixedTel}
  494. onChange={(e) => {
  495. this.setState({ fixedTel: e.target.value });
  496. }}
  497. />
  498. </FormItem>
  499. <FormItem
  500. className="half-item"
  501. labelCol={{ span: 4 }}
  502. wrapperCol={{ span: 18 }}
  503. label="注册资本"
  504. >
  505. <Input
  506. placeholder="注册资本单位为万元"
  507. value={this.state.registeredCapital}
  508. maxLength={6}
  509. onChange={(e) => {
  510. this.setState({ registeredCapital: e.target.value });
  511. }}
  512. />
  513. </FormItem>
  514. <FormItem
  515. className="half-item"
  516. labelCol={{ span: 4 }}
  517. wrapperCol={{ span: 18 }}
  518. label="法人名称"
  519. >
  520. <Input
  521. maxLength={16}
  522. placeholder="法人名称"
  523. value={this.state.legalPerson}
  524. onChange={(e) => {
  525. this.setState({ legalPerson: e.target.value });
  526. }}
  527. />
  528. </FormItem>
  529. <FormItem
  530. className="half-item"
  531. labelCol={{ span: 4 }}
  532. wrapperCol={{ span: 18 }}
  533. label="法人身份证号码"
  534. >
  535. <Input
  536. maxLength={32}
  537. placeholder="法人身份证号码"
  538. value={this.state.legalPersonIdCard}
  539. onChange={(e) => {
  540. this.setState({ legalPersonIdCard: e.target.value });
  541. }}
  542. />
  543. </FormItem>
  544. <FormItem
  545. className="half-item"
  546. labelCol={{ span: 4 }}
  547. wrapperCol={{ span: 18 }}
  548. label="法人电话"
  549. >
  550. <Input
  551. maxLength={16}
  552. placeholder="法人电话"
  553. value={this.state.legalPersonTel}
  554. onChange={(e) => {
  555. this.setState({ legalPersonTel: e.target.value });
  556. }}
  557. />
  558. </FormItem>
  559. <FormItem
  560. className="half-item"
  561. labelCol={{ span: 4 }}
  562. wrapperCol={{ span: 18 }}
  563. label="法人电子邮箱"
  564. >
  565. <Input
  566. maxLength={32}
  567. placeholder="法人电子邮箱"
  568. value={this.state.legalPersonEmail}
  569. onChange={(e) => {
  570. this.setState({ legalPersonEmail: e.target.value });
  571. }}
  572. />
  573. </FormItem>
  574. <FormItem
  575. className="half-item"
  576. labelCol={{ span: 4 }}
  577. wrapperCol={{ span: 18 }}
  578. label="机构代码"
  579. >
  580. <Input
  581. maxLength={32}
  582. placeholder="社会同意机构代码"
  583. value={this.state.orgCode}
  584. onChange={(e) => {
  585. this.setState({ orgCode: e.target.value });
  586. }}
  587. />
  588. </FormItem>
  589. <FormItem
  590. className="half-item"
  591. labelCol={{ span: 4 }}
  592. wrapperCol={{ span: 18 }}
  593. label={<span><span className="color-red"> * </span>企业邮箱</span>}
  594. >
  595. <Input
  596. maxLength={32}
  597. placeholder="请填写企业邮箱"
  598. value={this.state.email}
  599. onChange={(e) => {
  600. this.setState({ email: e.target.value });
  601. }}
  602. />
  603. </FormItem>
  604. <FormItem
  605. className="half-item"
  606. labelCol={{ span: 4 }}
  607. wrapperCol={{ span: 18 }}
  608. label={<span><span className="color-red"> * </span>企业QQ</span>}
  609. >
  610. <Input
  611. maxLength={16}
  612. placeholder="填写企业QQ"
  613. value={this.state.qq}
  614. onChange={(e) => {
  615. this.setState({ qq: e.target.value });
  616. }}
  617. />
  618. </FormItem>
  619. <FormItem className="half-item" labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="高新">
  620. <Radio.Group
  621. value={this.state.highTechZone}
  622. onChange={(e) => {
  623. this.setState({ highTechZone: e.target.value });
  624. }}
  625. >
  626. <Radio value={0}>是</Radio>
  627. <Radio value={1}>否 </Radio>
  628. </Radio.Group>
  629. </FormItem>
  630. <FormItem className="half-item" labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="上市">
  631. <Radio.Group
  632. value={this.state.listed}
  633. onChange={(e) => {
  634. this.setState({ listed: e.target.value });
  635. }}
  636. >
  637. <Radio value={0}>是</Radio>
  638. <Radio value={1}>否 </Radio>
  639. </Radio.Group>
  640. </FormItem>
  641. <div className="clearfix pictures">
  642. <FormItem
  643. className="half-item"
  644. labelCol={{ span: 4 }}
  645. wrapperCol={{ span: 18 }}
  646. style={{ marginTop: 15 }}
  647. label="机构证(PIC)"
  648. >
  649. <PicturesWall
  650. pictureSign="PIC"
  651. fileList={this.getOrgCodeUrl}
  652. pictureUrl={this.state.orgCodeUrl}
  653. />
  654. <p>图片建议:图片要清晰。</p>
  655. </FormItem>
  656. <FormItem
  657. className="half-item"
  658. style={{paddingTop:15}}
  659. labelCol={{ span: 4 }}
  660. wrapperCol={{ span: 18 }}
  661. label={<span><span className="color-red"> * </span>企业logo</span>}
  662. >
  663. {/* <PicturesWall
  664. pictureSign="logo"
  665. fileList={this.getCompanyLogoUrl}
  666. pictureUrl={this.state.companyLogoUrl}
  667. />
  668. <p>图片建议:图片要清晰。</p> */}
  669. <Crop
  670. getAllImg={this.getAllImg}
  671. number = {1}
  672. aspectRatio = {1/1}
  673. url ={globalConfig.context + '/api/user/uploadPicture64'}
  674. uploadData = {{sign:'user_picture'}}
  675. urlArr = {this.state.companyLogoUrl}
  676. />
  677. <p>图片建议 : 图片要清晰。</p>
  678. </FormItem>
  679. </div>
  680. <div className="clearfix">
  681. <FormItem
  682. className="half-item"
  683. labelCol={{ span: 4 }}
  684. wrapperCol={{ span: 18 }}
  685. label={<span><span className="color-red"> * </span>业务范围</span>}
  686. >
  687. <Input
  688. type="textarea"
  689. rows={4}
  690. maxLength={400}
  691. value={this.state.businessScope}
  692. placeholder="请输入业务范围"
  693. onChange={(e) => {
  694. this.setState({ businessScope: e.target.value });
  695. }}
  696. />
  697. </FormItem>
  698. <FormItem
  699. className="half-item"
  700. labelCol={{ span: 4 }}
  701. wrapperCol={{ span: 18 }}
  702. label={<span><span className="color-red"> * </span>企业简介</span>}
  703. >
  704. <Input
  705. type="textarea"
  706. rows={4}
  707. maxLength={512}
  708. value={this.state.introduction}
  709. placeholder="请输入企业简介"
  710. onChange={(e) => {
  711. this.setState({ introduction: e.target.value });
  712. }}
  713. />
  714. </FormItem>
  715. </div>
  716. <div className="clearfix">
  717. <FormItem
  718. labelCol={{ span: 2 }}
  719. wrapperCol={{ span: 18 }}
  720. style={{ marginTop: 15 }}
  721. label={<span><span className="color-red"> * </span>荣誉资质</span>}
  722. >
  723. <PicturesWallMore
  724. pictureSign="PIC"
  725. fileList={this.getQualiUrl}
  726. pictureUrl={this.state.qualiUrl}
  727. />
  728. <p>图片建议:图片要清晰。</p>
  729. </FormItem>
  730. </div>
  731. <Row style={{ marginBottom: 20 ,marginTop:10}}>
  732. <Col offset={2} span={4}>
  733. <Button size="large" className="set-submit" type="primary" onClick={this.subFun} >
  734. 保存
  735. </Button>
  736. </Col>
  737. </Row>
  738. </div>
  739. </Spin>
  740. </Form>
  741. </div>
  742. );
  743. }
  744. });
  745. export default Unit;