crmAll.jsx 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304
  1. import React from 'react';
  2. import { Radio, Icon, Button, AutoComplete,Cascader,Input, Select, Spin, Popconfirm, Table, Switch, message, DatePicker, Upload, Form ,Modal,Tabs} from 'antd';
  3. import ajax from 'jquery/src/ajax/xhr.js';
  4. import $ from 'jquery/src/ajax';
  5. import moment from 'moment';
  6. import TechAchievementDesc from '@/manageCenter/achievement/crmAchievement.jsx';
  7. import { citySelect, provinceList ,areaSelect} from '@/NewDicProvinceList';
  8. import { socialAttribute, industry, auditStatusL, lvl, currentMember ,slcRedit,dataGrade} from '@/dataDic.js';
  9. import { getSocialAttribute, beforeUploadFile,splitUrl ,getSlcRedit,getDataGrade,getAchievementCategory,getTechAuditStatus,getboutique,getXiangmoState} from '@/tools.js';
  10. import './customer.less';
  11. import ImgList from "../../../../common/imgList";
  12. import {ChooseList} from "../../../order/orderNew/chooseList";
  13. const TabPane = Tabs.TabPane;
  14. //图片组件
  15. const PicturesWall = React.createClass({
  16. getInitialState() {
  17. return {
  18. previewVisible: false,
  19. previewImage: '',
  20. fileList: [],
  21. }
  22. },
  23. handleCancel() {
  24. this.setState({
  25. previewVisible: false
  26. })
  27. },
  28. handlePreview(file) {
  29. this.setState({
  30. previewImage: file.url || file.thumbUrl,
  31. previewVisible: true,
  32. });
  33. },
  34. handleChange(info) {
  35. let fileList = info.fileList;
  36. this.setState({
  37. fileList
  38. });
  39. this.props.fileList(fileList);
  40. },
  41. componentWillReceiveProps(nextProps) {
  42. this.state.fileList = nextProps.pictureUrl;
  43. },
  44. render() {
  45. const {
  46. previewVisible,
  47. previewImage,
  48. fileList
  49. } = this.state;
  50. const uploadButton = (
  51. <div>
  52. <Icon type="plus" />
  53. <div className="ant-upload-text">点击上传</div>
  54. </div>
  55. );
  56. return(
  57. <div style={{display:"inline-block"}}>
  58. <ImgList
  59. domId={this.props.domId}
  60. uploadConfig={{
  61. action:globalConfig.context + "/api/admin/customer/uploadCustomerImg",
  62. data:{ 'sign': '' },
  63. multiple:true,
  64. listType:"picture-card",
  65. }}
  66. onChange={(infor)=>{
  67. this.handleChange(infor)
  68. }}
  69. fileList={fileList}
  70. />
  71. </div>
  72. );
  73. }
  74. });
  75. const IntentionCustomer = Form.create()(React.createClass({
  76. loadData(pageNo, apiUrl) {
  77. this.setState({
  78. visitModul:false,
  79. loading: true,
  80. ispage:pageNo,
  81. modalVisible:false
  82. });
  83. $.ajax({
  84. method: "post",
  85. dataType: "json",
  86. crossDomain: false,
  87. url: globalConfig.context +"/api/admin/customer/listDepCustomerInformation",
  88. data: {
  89. pageNo: pageNo || 1,
  90. pageSize: this.state.pagination.pageSize,
  91. name: this.state.nameSearch,
  92. dataGrade: this.state.dataGrade,
  93. province: !(this.state.addressSearch).length ? this.state.provinceSearch : this.state.addressSearch[0],
  94. city: !(this.state.addressSearch).length ? '' : this.state.addressSearch[1],
  95. startDate: this.state.releaseDate[0],
  96. endDate: this.state.releaseDate[1],
  97. },
  98. success: function(data) {
  99. let theArr = [];
  100. if(data.error.length || data.data.list == "") {
  101. if(data.error && data.error.length) {
  102. message.warning(data.error[0].message);
  103. };
  104. } else {
  105. for(let i = 0; i < data.data.list.length; i++) {
  106. let thisdata = data.data.list[i];
  107. let diqu=(thisdata.province==null?"":thisdata.province)+(thisdata.city==null?"":"-"+thisdata.city)+(thisdata.area==null?"":"-"+thisdata.area);
  108. theArr.push({
  109. key: i,
  110. id: thisdata.id,//用户ID
  111. type:thisdata.type,//类型
  112. name: thisdata.name,//用户名称
  113. diqu: diqu,//省市区
  114. industry: thisdata.industry,//行业
  115. contacts: thisdata.contacts,//联系人
  116. iname: thisdata.iname,//客户资料所属人
  117. dataGrade:thisdata.dataGrade?(thisdata.dataGrade*100).toFixed(2)+"%":"",//资料完整度
  118. contactMobile: thisdata.contactMobile,//联系人电话
  119. createTime: thisdata.createTime,//行业
  120. });
  121. };
  122. this.state.pagination.current = data.data.pageNo;
  123. this.state.pagination.total = data.data.totalCount;
  124. };
  125. if(data.data&&data.data.list&&!data.data.list.length){
  126. this.state.pagination.current=0
  127. this.state.pagination.total=0
  128. }
  129. this.setState({
  130. dataSource: theArr,
  131. pagination: this.state.pagination,
  132. selectedRowKeys:[]
  133. });
  134. }.bind(this),
  135. }).always(function() {
  136. this.setState({
  137. loading: false
  138. });
  139. }.bind(this));
  140. },
  141. loadDatas(pageNo) {
  142. this.setState({
  143. loading: true,
  144. });
  145. $.ajax({
  146. method: "get",
  147. dataType: "json",
  148. crossDomain: false,
  149. url: globalConfig.context + "/api/admin/achievement/listUserAchievement",
  150. data: {
  151. pageNo: pageNo || 1,
  152. pageSize: this.state.paginationDate.pageSize,
  153. uid:this.state.uid,
  154. },
  155. success: function (data) {
  156. let theArr = [];
  157. if (!data.data || !data.data.list) {
  158. if (data.error && data.error.length) {
  159. message.warning(data.error[0].message);
  160. };
  161. } else {
  162. for (let i = 0; i < data.data.list.length; i++) {
  163. let thisdata = data.data.list[i];
  164. theArr.push({
  165. key: i,
  166. id: thisdata.id,
  167. serialNumber: thisdata.serialNumber,
  168. dataCategory: thisdata.dataCategory,
  169. name: thisdata.name,
  170. keyword: thisdata.keyword,
  171. theName: thisdata.username || thisdata.ownerName,
  172. category: thisdata.category,
  173. ownerName: thisdata.username ? thisdata.username : thisdata.ownerName,
  174. ownerType: thisdata.ownerType,
  175. ownerMobile: thisdata.ownerMobile,
  176. status: thisdata.status,
  177. releaseDate: thisdata.releaseDate,
  178. releaseDateFormattedDate: thisdata.releaseDateFormattedDate,
  179. auditStatus: thisdata.auditStatus,
  180. boutique: thisdata.boutique,
  181. hot: thisdata.hot,
  182. techBrokerId:thisdata.techBrokerId,
  183. createTimeFormattedDate: thisdata.createTimeFormattedDate,
  184. remark:thisdata.remark
  185. });
  186. };
  187. this.state.paginationDate.current = data.data.pageNo;
  188. this.state.paginationDate.total = data.data.totalCount;
  189. };
  190. this.setState({
  191. dataSourceDate: theArr,
  192. paginationDate: this.state.paginationDate
  193. });
  194. }.bind(this),
  195. }).always(function () {
  196. this.setState({
  197. loading: false
  198. });
  199. }.bind(this));
  200. },
  201. loadDatac(pageNo, apiUrl) {
  202. this.setState({
  203. loading: true,
  204. });
  205. $.ajax({
  206. method: "get",
  207. dataType: "json",
  208. crossDomain: false,
  209. url: globalConfig.context +"/api/admin/customers/selectListOrgAnnual",
  210. data: {
  211. // pageNo: pageNo || 1,
  212. // pageSize: this.state.pagination.pageSize,
  213. uid:this.state.uid,
  214. },
  215. success: function(data) {
  216. let theArr = [];
  217. if(data.error.length || data.data.list == "") {
  218. if(data.error && data.error.length) {
  219. message.warning(data.error[0].message);
  220. };
  221. } else {
  222. for(let i = 0; i < data.data.list.length; i++) {
  223. let thisdata = data.data.list[i];
  224. let diqu=(thisdata.province==null?"":thisdata.province)+(thisdata.city==null?"":"-"+thisdata.city)+(thisdata.area==null?"":"-"+thisdata.area);
  225. theArr.push({
  226. key: i,
  227. id: thisdata.id,//年报ID
  228. year:thisdata.year,//年份
  229. salesAmount: thisdata.salesAmount,//营销额
  230. fixedAssets:thisdata.fixedAssets,//固定资产
  231. researchAmount: thisdata.researchAmount,//研发费用
  232. assets: thisdata.assets,//总资产
  233. aid: thisdata.aid,//录入人
  234. });
  235. };
  236. // this.state.pagination.current = data.data.pageNo;
  237. // this.state.pagination.total = data.data.totalCount;
  238. };
  239. if(data.data&&data.data.list&&!data.data.list.length){
  240. this.state.pagination.current=0
  241. this.state.pagination.total=0
  242. }
  243. this.setState({
  244. dataSourcec: theArr,
  245. // pageNo: pageNo,
  246. // pagination: this.state.pagination,
  247. // selectedRowKeys:[]
  248. });
  249. }.bind(this),
  250. }).always(function() {
  251. this.setState({
  252. loading: false
  253. });
  254. }.bind(this));
  255. },
  256. loadDatax(pageNo, apiUrl) {
  257. this.setState({
  258. loading: true,
  259. });
  260. $.ajax({
  261. method: "get",
  262. dataType: "json",
  263. crossDomain: false,
  264. url: globalConfig.context +"/api/admin/customers/selectListOrgYearProject",
  265. data: {
  266. uid:this.state.uid,
  267. },
  268. success: function(data) {
  269. let theArr = [];
  270. if(data.error.length || data.data.list == "") {
  271. if(data.error && data.error.length) {
  272. message.warning(data.error[0].message);
  273. };
  274. } else {
  275. for(let i = 0; i < data.data.list.length; i++) {
  276. let thisdata = data.data.list[i];
  277. let diqu=(thisdata.province==null?"":thisdata.province)+(thisdata.city==null?"":"-"+thisdata.city)+(thisdata.area==null?"":"-"+thisdata.area);
  278. theArr.push({
  279. key: i,
  280. id: thisdata.id,//用户ID
  281. projectName:thisdata.projectName,//项目名称
  282. year: thisdata.year,//年份
  283. status: thisdata.status?thisdata.status.toString():"",//项目状态
  284. remark: thisdata.remark,//备注
  285. aid: thisdata.aid,//录入人
  286. });
  287. };
  288. // this.state.pagination.current = data.data.pageNo;
  289. // this.state.pagination.total = data.data.totalCount;
  290. };
  291. if(data.data&&data.data.list&&!data.data.list.length){
  292. this.state.pagination.current=0
  293. this.state.pagination.total=0
  294. }
  295. this.setState({
  296. dataSourcex: theArr,
  297. });
  298. }.bind(this),
  299. }).always(function() {
  300. this.setState({
  301. loading: false
  302. });
  303. }.bind(this));
  304. },
  305. getInitialState() {
  306. return {
  307. addressSearch: [],
  308. orgCodeUrl: [],
  309. companyLogoUrl: [],
  310. visible: false,
  311. releaseDate: [],
  312. visitModul:false,
  313. detailApi:'',
  314. followData:{},
  315. selectedRowKeys: [],
  316. selectedRows: [],
  317. loading: false,
  318. callnub:"0",
  319. modalVisible:false,
  320. pagination: {
  321. defaultCurrent: 1,
  322. defaultPageSize: 10,
  323. showQuickJumper: true,
  324. pageSize: 10,
  325. onChange: function(page) {
  326. this.loadData(page);
  327. }.bind(this),
  328. showTotal: function(total) {
  329. return '共' + total + '条数据';
  330. }
  331. },
  332. paginationDate: {
  333. defaultCurrent: 1,
  334. defaultPageSize: 10,
  335. showQuickJumper: true,
  336. pageSize: 10,
  337. onChange: function(page) {
  338. this.loadDatas(page);
  339. }.bind(this),
  340. showTotal: function(total) {
  341. return '共' + total + '条数据';
  342. }
  343. },
  344. columns: [{
  345. title: '客户名称',
  346. dataIndex: 'name',
  347. key: 'name',
  348. }, {
  349. title: '地区',
  350. dataIndex: 'diqu',
  351. key: 'diqu',
  352. }, {
  353. title: '联系人',
  354. dataIndex: 'contacts',
  355. key: 'contacts',
  356. },{
  357. title: '联系电话',
  358. dataIndex: 'contactMobile',
  359. key: 'contactMobile',
  360. },
  361. {
  362. title: '资料完整度',
  363. dataIndex: 'dataGrade',
  364. key: 'dataGrade',
  365. }, {
  366. title: '客户资料所属人',
  367. dataIndex: 'iname',
  368. key: 'iname',
  369. },
  370. {
  371. title: '行业',
  372. dataIndex: 'industry',
  373. key: 'industry'
  374. },
  375. {
  376. title: '创建时间',
  377. dataIndex: 'createTime',
  378. key: 'createTime',
  379. }
  380. ],
  381. data: [],
  382. dataSource: [],
  383. columnsDate: [
  384. {
  385. title: '编号',
  386. dataIndex: 'serialNumber',
  387. key: 'serialNumber',
  388. }, {
  389. title: '名称',
  390. dataIndex: 'name',
  391. key: 'name',
  392. }, {
  393. title: '关键字',
  394. dataIndex: 'keyword',
  395. key: 'keyword',
  396. }, {
  397. title: '类型',
  398. dataIndex: 'category',
  399. key: 'category',
  400. render: text => { return getAchievementCategory(text); }
  401. },{
  402. title: '审核状态',
  403. dataIndex: 'auditStatus',
  404. key: 'auditStatus',
  405. render: text => { return getTechAuditStatus(text) }
  406. },
  407. {
  408. title: '是否精品',
  409. dataIndex: 'boutique',
  410. key: 'boutique',
  411. render: text => { return getboutique(text) }
  412. },
  413. {
  414. title: '发布时间',
  415. dataIndex: 'releaseDateFormattedDate',
  416. key: 'releaseDateFormattedDate',
  417. },{
  418. title: '录入时间',
  419. dataIndex: 'createTimeFormattedDate',
  420. key: 'createTimeFormattedDate',
  421. },
  422. ],
  423. dataSourceDate: [],
  424. columnsc: [{
  425. title: '年份',
  426. dataIndex: 'year',
  427. key: 'year',
  428. }, {
  429. title: '营销收入(万)',
  430. dataIndex: 'salesAmount',
  431. key: 'salesAmount',
  432. },
  433. {
  434. title: '总资产(万)',
  435. dataIndex: 'assets',
  436. key: 'assets'
  437. },
  438. {
  439. title: '固定资产(万)',
  440. dataIndex: 'fixedAssets',
  441. key: 'fixedAssets'
  442. }, {
  443. title: '研发费用(万)',
  444. dataIndex: 'researchAmount',
  445. key: 'researchAmount',
  446. }
  447. ],
  448. dataSourcec: [],
  449. columnsx: [{
  450. title: '项目名称',
  451. dataIndex: 'projectName',
  452. key: 'projectName',
  453. },{
  454. title: '年份',
  455. dataIndex: 'year',
  456. key: 'year',
  457. },
  458. {
  459. title: '项目状态',
  460. dataIndex: 'status',
  461. key: 'status',
  462. render: text => { return getXiangmoState(text); }
  463. }, {
  464. title: '备注',
  465. dataIndex: 'remark',
  466. key: 'remark',
  467. }
  468. ],
  469. dataSourcex: [],
  470. };
  471. },
  472. componentWillMount() {
  473. //城市
  474. let Province = [];
  475. provinceList.map(function(item) {
  476. var id = String(item.id)
  477. Province.push(
  478. <Select.Option value={id} key={item.name}>{item.name}</Select.Option>
  479. )
  480. });
  481. //行业
  482. let intentionalArr = [];
  483. industry.map(function(item) {
  484. intentionalArr.push(
  485. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  486. )
  487. });
  488. //会员等级
  489. let lvlArr = [];
  490. lvl.map(function(item) {
  491. lvlArr.push(
  492. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  493. )
  494. });
  495. //会员状态customerStatus
  496. let currentMemberArr = [];
  497. currentMember.map(function(item) {
  498. currentMemberArr.push(
  499. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  500. )
  501. });
  502. this.state.Provinces = Province;
  503. this.state.intentionalOption = intentionalArr;
  504. this.state.lvlArrOption = lvlArr;
  505. this.state.currentMemberArrOption = currentMemberArr;
  506. this.loadData();
  507. },
  508. search() {
  509. this.loadData();
  510. },
  511. reset() {
  512. this.state.nameSearch = '';
  513. this.state.addressSearch = [];
  514. this.state.dataGrade=undefined;
  515. this.state.follow=undefined;
  516. this.state.provinceSearch = undefined;
  517. this.state.citySearch = undefined;
  518. this.state.releaseDate[0] = undefined;
  519. this.state.releaseDate[1] = undefined;
  520. this.loadData();
  521. },
  522. //列表详情
  523. details(id) {
  524. $.ajax({
  525. method: "get",
  526. dataType: "json",
  527. crossDomain: false,
  528. url: globalConfig.context +"/api/admin/customer/findOrganizationCustomerDetail",
  529. data: {
  530. uid:id
  531. },
  532. success: function(data) {
  533. let thisDetail= data.data;
  534. if(data.error.length || data.data.list == "") {
  535. if(data.error && data.error.length) {
  536. message.warning(data.error[0].message);
  537. };
  538. } else {
  539. let ProvinceCityArr = [];
  540. let ProvinceS = thisDetail.locationProvince; //省
  541. let citys = thisDetail.locationCity;//市
  542. let Areas = thisDetail.locationArea;//区
  543. ProvinceCityArr.push(ProvinceS, citys, Areas);
  544. this.setState({
  545. detailId:thisDetail.id,//详情ID
  546. identifyName:thisDetail.identifyName,//客户名称
  547. uid:thisDetail.uid,//客户ID
  548. societyTag:thisDetail.societyTag,//社会标签
  549. companyLogoUrl:thisDetail.companyLogoUrl? splitUrl(thisDetail.companyLogoUrl, ',', globalConfig.avatarHost + '/upload') : [],//公司LOGO
  550. introduction:thisDetail.introduction,//介绍
  551. industry:thisDetail.industry?thisDetail.industry.toString():"",//行业
  552. locationProvince:thisDetail.locationProvince,//省
  553. locationCity:thisDetail.locationCity,//市
  554. locationArea:thisDetail.locationArea,//区
  555. ProvinceCity: ProvinceCityArr[0]!=null?ProvinceCityArr:undefined,//省市区
  556. postalAddress:thisDetail.postalAddress,//通讯地址
  557. contactsFixedTel:thisDetail.contactsFixedTel,//固定电话
  558. contactsFax:thisDetail.contactsFax,//传真地址
  559. registeredCapital:thisDetail.registeredCapital,//注册资金
  560. enterpriseScale:thisDetail.enterpriseScale,//企业规模
  561. legalPerson:thisDetail.legalPerson,//法人
  562. legalPersonIdCard:thisDetail.legalPersonIdCard,//法人身份证
  563. legalPersonTel:thisDetail.legalPersonTel,//法人联系电话
  564. legalPersonEmail:thisDetail.legalPersonEmail,//法人联系邮箱
  565. highTechZone:thisDetail.highTechZone,//是否高新
  566. listed:thisDetail.listed,//是否高新
  567. international:thisDetail.international,//是否国际化
  568. orgCode:thisDetail.orgCode,//社会统一机构
  569. orgCodeUrl:thisDetail.orgCodeUrl? splitUrl(thisDetail.orgCodeUrl, ',', globalConfig.avatarHost + '/upload') : [],//社会统一机构地址
  570. businessScope:thisDetail.businessScope,//业务范围
  571. contacts:thisDetail.contacts,//主要联系人姓名
  572. contactMobile:thisDetail.contactMobile,//主要联系人电话
  573. investment:thisDetail.investment,//投资机构
  574. businessAudit:thisDetail.businessAudit,//业务认证
  575. auditStatus:thisDetail.auditStatus,//实名认证
  576. intellectualProperty:thisDetail.intellectualProperty,//已有知识产权情况
  577. yearSalesAmount:thisDetail.yearSalesAmount,//年度销售额
  578. lastYearResearchAmount:thisDetail.lastYearResearchAmount,//上年度研发费用
  579. assets:thisDetail.assets,//总资产
  580. qualification:thisDetail.qualification,//企业资质情况
  581. cooperationSituation:thisDetail.cooperationSituation,//企业与高校院所
  582. informationMaintainer:thisDetail.informationMaintainer,//资料维护人
  583. informationMaintainerName:thisDetail.informationMaintainerName,//资料维护人
  584. coreTechnology:thisDetail.coreTechnology,//核心技术
  585. accomplishSituation:thisDetail.accomplishSituation,//客户已完成项目情况
  586. creditRating:thisDetail.creditRating?thisDetail.creditRating.toString():"",//信用等级
  587. });
  588. }}.bind(this),
  589. }).always(function() {
  590. this.setState({
  591. loading: false
  592. });
  593. }.bind(this));
  594. },
  595. //基本信息提交
  596. newSubmit(e) {
  597. e.preventDefault();
  598. if(!this.state.industry) {
  599. message.warning('请选择行业');
  600. return false;
  601. };
  602. if(!this.state.societyTag) {
  603. message.warning('请选择社会属性');
  604. return false;
  605. };
  606. if(!this.state.ProvinceCity[1]) {
  607. message.warning('请选择地区');
  608. return false;
  609. };
  610. if(!this.state.registeredCapital) {
  611. message.warning('请填写注册资本');
  612. return false;
  613. };
  614. if(!this.state.businessScope) {
  615. message.warning('请填写公司主营产品');
  616. return false;
  617. };
  618. if(!this.state.intellectualProperty) {
  619. message.warning('请填写已有知识产权情况');
  620. return false;
  621. };
  622. var reg = /^[1-9]\d*$|^0$/;
  623. if(this.state.consultationPrice) {
  624. if(this.state.consultationPrice.length > 6) {
  625. message.warning('咨询费用不超过6位数');
  626. this.refs.consul.focus();
  627. return false;
  628. };
  629. if(!reg.test(this.state.consultationPrice)) {
  630. message.warning('咨询费用只能输入数字');
  631. this.refs.consul.focus();
  632. return false;
  633. }
  634. }
  635. this.state.data = [];
  636. this.setState({
  637. selectedRowKeys: [],
  638. });
  639. let theorgCodeUrl = [];
  640. if(this.state.orgCodeUrl.length) {
  641. let picArr = [];
  642. this.state.orgCodeUrl.map(function(item) {
  643. if(item.response && item.response.data && item.response.data.length) {
  644. picArr.push(item.response.data);
  645. }
  646. });
  647. theorgCodeUrl = picArr.join(",");
  648. };
  649. let thecompanyLogoUrl = [];
  650. if(this.state.companyLogoUrl.length) {
  651. let picArr = [];
  652. this.state.companyLogoUrl.map(function(item) {
  653. if(item.response && item.response.data && item.response.data.length) {
  654. picArr.push(item.response.data);
  655. }
  656. });
  657. thecompanyLogoUrl = picArr.join(",");
  658. };
  659. let years = [];
  660. let yearMonth = this.state.yearMonth != undefined ? new Date(this.state.yearMonth).toLocaleDateString() : '';
  661. years = yearMonth.split('/');
  662. this.setState({
  663. loading: true
  664. });
  665. $.ajax({
  666. method: "post",
  667. dataType: "json",
  668. url: globalConfig.context + '/api/admin/customer/updateOrganizationCustomer',
  669. data: {
  670. id:this.state.detailId,//详情ID
  671. identifyName:this.state.identifyName,//客户名称
  672. uid:this.state.uid,//客户ID
  673. societyTag:this.state.societyTag,//社会标签
  674. companyLogoUrl:thecompanyLogoUrl.length != 0 ? thecompanyLogoUrl : '',//公司LOGO
  675. introduction:this.state.introduction,//介绍
  676. industry:this.state.industry,//行业
  677. locationProvince:(this.state.ProvinceCity)[0],//省
  678. locationCity:(this.state.ProvinceCity)[1],//市
  679. locationArea:(this.state.ProvinceCity)[2],//区
  680. postalAddress:this.state.postalAddress,//通讯地址
  681. contactsFixedTel:this.state.contactsFixedTel,//固定电话
  682. contactsFax:this.state.contactsFax,//传真地址
  683. registeredCapital:this.state.registeredCapital,//注册资金
  684. enterpriseScale:this.state.enterpriseScale,//企业规模
  685. legalPerson:this.state.legalPerson,//法人
  686. legalPersonIdCard:this.state.legalPersonIdCard,//法人身份证
  687. legalPersonTel:this.state.legalPersonTel,//法人联系电话
  688. legalPersonEmail:this.state.legalPersonEmail,//法人联系邮箱
  689. highTechZone:this.state.highTechZone,//是否高新
  690. listed:this.state.listed,//是否高新
  691. international:this.state.international,//是否国际化
  692. orgCode:this.state.orgCode,//社会统一机构
  693. orgCodeUrl: theorgCodeUrl.length != 0 ? theorgCodeUrl : '',//社会统一机构地址
  694. businessScope:this.state.businessScope,//业务范围
  695. contacts:this.state.contacts,//主要联系人姓名
  696. contactMobile:this.state.contactMobile,//主要联系人电话
  697. investment:this.state.investment,//投资机构
  698. businessAudit:this.state.businessAudit,//业务认证
  699. auditStatus:this.state.auditStatus,//实名认证
  700. intellectualProperty:this.state.intellectualProperty,//已有知识产权情况
  701. yearSalesAmount:this.state.yearSalesAmount,//年度销售额
  702. lastYearResearchAmount:this.state.lastYearResearchAmount,//上年度研发费用
  703. assets:this.state.assets,//总资产
  704. qualification:this.state.qualification,//企业资质情况
  705. cooperationSituation:this.state.cooperationSituation,//企业与高校院所
  706. informationMaintainer:this.state.informationMaintainer,//资料维护人
  707. informationMaintainerName:this.state.informationMaintainerName,//资料维护人
  708. coreTechnology:this.state.coreTechnology,//核心技术
  709. accomplishSituation:this.state.accomplishSituation,//客户已完成项目情况
  710. creditRating:this.state.creditRating,//信用等级
  711. }
  712. }).done(function(data) {
  713. this.setState({
  714. loading: false
  715. });
  716. if(!data.error.length) {
  717. message.success('保存成功!');
  718. this.visitCancel();
  719. this.loadData();
  720. } else {
  721. message.warning(data.error[0].message);
  722. }
  723. }.bind(this));
  724. },
  725. //整行点击
  726. tableRowClick(record, index) {
  727. this.state.visitModul=true;
  728. this.details(record.id);
  729. },
  730. //指定转交人自动补全
  731. supervisor(e){
  732. $.ajax({
  733. method: "get",
  734. dataType: "json",
  735. crossDomain: false,
  736. url: globalConfig.context + "/api/admin/customer/listAdminByName",
  737. data:{
  738. adminName:e
  739. },
  740. success: function (data) {
  741. let thedata=data.data;
  742. if (!thedata) {
  743. if (data.error && data.error.length) {
  744. message.warning(data.error[0].message);
  745. };
  746. thedata = {};
  747. };
  748. this.setState({
  749. customerArr:thedata,
  750. });
  751. }.bind(this),
  752. }).always(function () {
  753. this.setState({
  754. loading: false
  755. });
  756. }.bind(this));
  757. },
  758. //输入转交人输入框失去焦点是判断客户是否存在
  759. selectAuto(value,options){
  760. this.setState({
  761. auto:value
  762. })
  763. },
  764. blurChange(e){
  765. let theType='';
  766. let contactLists=this.state.customerArr||[];
  767. if (e) {
  768. contactLists.map(function (item) {
  769. if (item.name == e.toString()) {
  770. theType = item.id;
  771. }
  772. });
  773. }
  774. this.setState({
  775. theTypes:theType
  776. })
  777. },
  778. //值改变时请求客户名称
  779. httpChange(e){
  780. if(e.length>=1){
  781. this.supervisor(e);
  782. }
  783. this.setState({
  784. auto:e
  785. })
  786. },
  787. //转交
  788. changeAssigner() {
  789. if(this.state.theTypes){
  790. this.setState({
  791. selectedRowKeys: [],
  792. });
  793. let id;
  794. for(let idx = 0; idx < this.state.selectedRows.length; idx++) {
  795. let rowItem = this.state.selectedRows[idx];
  796. if(rowItem.id) {
  797. id=rowItem.id;
  798. };
  799. };
  800. $.ajax({
  801. method: "post",
  802. dataType: "json",
  803. crossDomain: false,
  804. url: globalConfig.context + "/api/admin/customer/updateInformationMaintainerr",
  805. data: {
  806. id: id, //客户ID
  807. aid: this.state.theTypes, //指定转交人的ID
  808. }
  809. }).done(function(data) {
  810. if(!data.error.length) {
  811. message.success('转交成功!');
  812. this.setState({
  813. auto:'',
  814. loading: false,
  815. });
  816. } else {
  817. message.warning(data.error[0].message);
  818. };
  819. this.loadData(this.state.ispage);
  820. }.bind(this));
  821. }else{
  822. message.warning('请输入转交人姓名')
  823. }
  824. },
  825. //详情打开
  826. visitOk(e) {
  827. this.setState({
  828. visitModul: false
  829. });
  830. },
  831. //详情关闭
  832. visitCancel(e) {
  833. this.setState({
  834. visitModul: false,
  835. callnub:"0"
  836. });
  837. },
  838. getOrgCodeUrl(e) {
  839. this.setState({ orgCodeUrl: e });
  840. },
  841. getCompanyLogoUrl(e) {
  842. this.setState({ companyLogoUrl: e });
  843. },
  844. componentWillReceiveProps(nextProps) {
  845. if(nextProps.ApiUrl!=this.props.ApiUrl) {
  846. this.state.nameSearch = '';
  847. this.state.addressSearch = [];
  848. this.state.provinceSearch = undefined;
  849. this.state.citySearch = undefined;
  850. this.state.releaseDate[0] = undefined;
  851. this.state.releaseDate[1] = undefined;
  852. this.loadData(null,nextProps.ApiUrl);
  853. };
  854. },
  855. callback(e) {
  856. if(e == '0') {
  857. this.setState({
  858. callnub: e,
  859. })
  860. }
  861. if(e == '1') {
  862. this.setState({
  863. callnub: e,
  864. })
  865. this.loadDatas();
  866. }
  867. if(e == '2') {
  868. this.setState({
  869. callnub: e,
  870. })
  871. this.loadDatac();
  872. }
  873. if(e == '3') {
  874. this.setState({
  875. callnub: e,
  876. })
  877. this.loadDatax();
  878. }
  879. },
  880. //发布成果
  881. addClick() {
  882. this.state.RowData = {};
  883. this.setState({
  884. showDesc: true,
  885. });
  886. },
  887. //关闭发布成果
  888. closeDesc(e, s) {
  889. this.state.showDesc = e;
  890. if (s) {
  891. this.loadDatas();
  892. };
  893. },
  894. tableRowClickDate(record, index) {
  895. this.state.RowData = record;
  896. if(index!=undefined){
  897. this.setState({
  898. showDesc: true
  899. });
  900. }
  901. },
  902. changeList(arr) {
  903. const newArr = [];
  904. this.state.columns.forEach(item => {
  905. arr.forEach(val => {
  906. if (val === item.title) {
  907. newArr.push(item);
  908. }
  909. });
  910. });
  911. this.setState({
  912. changeList: newArr
  913. });
  914. },
  915. render() {
  916. const {
  917. RangePicker,
  918. MonthPicker
  919. } = DatePicker;
  920. const formItemLayout = {
  921. labelCol: { span: 8 },
  922. wrapperCol: { span: 14 },
  923. };
  924. const FormItem = Form.Item;
  925. const rowSelection = {
  926. selectedRowKeys: this.state.selectedRowKeys,
  927. onChange: (selectedRowKeys, selectedRows) => {
  928. this.setState({
  929. modalVisible:false,
  930. selectedRows: selectedRows.slice(-1),
  931. selectedRowKeys: selectedRowKeys.slice(-1)
  932. });
  933. },
  934. onSelect: (recordt, selected, selectedRows) => {
  935. this.setState({
  936. modalVisible:false,
  937. recordt: recordt.id
  938. })
  939. },
  940. };
  941. const hasSelected = this.state.selectedRowKeys.length > 0;
  942. const dataSources=this.state.customerArr || [];
  943. const options = dataSources.map((group) =>
  944. <Select.Option key={group.id} value={group.name}>{group.name}</Select.Option>
  945. )
  946. const intentionState = this.props.intentionState ||'';
  947. return(
  948. <div className="user-content" >
  949. <div className="content-title">
  950. <span>客户资料管理</span>
  951. </div>
  952. <Tabs
  953. defaultActiveKey="1"
  954. className="test">
  955. <TabPane tab="搜索" key="1">
  956. <div className="user-search">
  957. <Input placeholder="客户名称"
  958. value={this.state.nameSearch}
  959. onChange={(e) => { this.setState({ nameSearch: e.target.value }); }} />
  960. <Select placeholder="省"
  961. style={{ width: 80 }}
  962. value={this.state.provinceSearch}
  963. onChange={(e) => {this.setState({ provinceSearch: e});}}>
  964. {this.state.Provinces}
  965. </Select>
  966. <span style={{marginRight:'10px'}}>
  967. <Cascader options={citySelect()} value={this.state.addressSearch} placeholder="选择城市"
  968. onChange={(e,pre) => { this.setState({ addressSearch: e }) }} />
  969. </span>
  970. <Select placeholder="资料是否完善" style={{ width: 120 }}
  971. value={this.state.dataGrade}
  972. onChange={(e) => { this.setState({ dataGrade: e }) }}>
  973. <Select.Option value="0" >未完善</Select.Option>
  974. <Select.Option value="1" >已完善</Select.Option>
  975. </Select>
  976. <RangePicker style={{marginRight:'10px'}}
  977. value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,
  978. this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}
  979. onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} />
  980. <Button type="primary" onClick={this.search}>搜索</Button>
  981. <Button onClick={this.reset}>重置</Button>
  982. </div>
  983. </TabPane>
  984. <TabPane tab="更改表格显示数据" key="2">
  985. <div style={{ marginLeft: 10 }}>
  986. <ChooseList
  987. columns={this.state.columns}
  988. changeFn={this.changeList}
  989. changeList={this.state.changeList}
  990. top={55}
  991. margin={11}
  992. />
  993. </div>
  994. </TabPane>
  995. </Tabs>
  996. <div className="patent-table">
  997. <Spin spinning={this.state.loading}>
  998. <Table columns={
  999. this.state.changeList
  1000. ? this.state.changeList
  1001. : this.state.columns
  1002. }
  1003. dataSource={this.state.dataSource}
  1004. rowSelection={rowSelection}
  1005. pagination={this.state.pagination}
  1006. onRowClick={this.tableRowClick}
  1007. bordered
  1008. size="small"
  1009. />
  1010. </Spin>
  1011. </div>
  1012. <Modal
  1013. className="customeDetails"
  1014. footer=''
  1015. title="客户资料"
  1016. width='1000px'
  1017. visible={this.state.visitModul}
  1018. onOk={this.visitOk}
  1019. onCancel={this.visitCancel}
  1020. >
  1021. <Tabs onChange={this.callback} activeKey={this.state.callnub}>
  1022. <TabPane tab="基本信息" key="0">
  1023. <div>
  1024. <Form layout="horizontal" onSubmit={this.newSubmit} id="demand-form">
  1025. <Spin spinning={this.state.loading}>
  1026. <div style={{fontSize:'18px',marginLeft:'50px',marginTop:'15px',marginBottom:'10px',color:"red",fontWeight:"bold"}}>基本信息</div>
  1027. <div className="clearfix" >
  1028. <FormItem className="half-item"
  1029. {...formItemLayout}
  1030. label="客户姓名"
  1031. >
  1032. <span>{this.state.identifyName}</span>
  1033. </FormItem>
  1034. <FormItem className="half-item"
  1035. {...formItemLayout}
  1036. label="资料所属人"
  1037. >
  1038. <span>{this.state.informationMaintainerName}</span>
  1039. </FormItem>
  1040. </div>
  1041. <div className="clearfix" >
  1042. <FormItem className="half-item"
  1043. {...formItemLayout}
  1044. label="企业行业">
  1045. <Select placeholder="选择行业" value={this.state.industry} style={{width:'95%'}}
  1046. onChange={(e)=>{this.setState({industry:e})}} disabled={true}>
  1047. {
  1048. industry.map(function (item) {
  1049. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1050. })
  1051. }
  1052. </Select>
  1053. <span style={{color:'red',marginLeft:'5px'}}>*</span>
  1054. </FormItem>
  1055. <FormItem className="half-item"
  1056. {...formItemLayout}
  1057. label="社会属性"
  1058. >
  1059. <Select placeholder="客户社会属性" value={this.state.societyTag} style={{width:'95%'}}
  1060. onChange={(e)=>{this.setState({societyTag:e})}} disabled={true}>
  1061. {
  1062. socialAttribute.map(function (item) {
  1063. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1064. })
  1065. }
  1066. </Select>
  1067. <span style={{color:'red',marginLeft:'5px'}}>*</span>
  1068. </FormItem>
  1069. <FormItem className="half-item"
  1070. {...formItemLayout}
  1071. label="省-市-区"
  1072. >
  1073. <Cascader options={areaSelect()} value={this.state.ProvinceCity} placeholder="选择城市" style={{width:'95%'}}
  1074. onChange={(e,pre) => { this.setState({ ProvinceCity: e }) }} disabled={true}/>
  1075. <span style={{color:'red',marginLeft:'5px'}}>*</span>
  1076. </FormItem>
  1077. <FormItem className="half-item"
  1078. {...formItemLayout}
  1079. label="注册资本"
  1080. >
  1081. <Input placeholder="注册资本" style={{width:'90%'}} value={this.state.registeredCapital} onChange={(e) => {
  1082. this.setState({ registeredCapital: e.target.value })}} disabled={true}/>万
  1083. <span style={{color:'red',marginLeft:'5px'}}>*</span>
  1084. </FormItem>
  1085. <div className='clearfix'>
  1086. <FormItem
  1087. labelCol={{ span:4 }}
  1088. wrapperCol={{ span: 20 }}
  1089. label="主营产品" >
  1090. <Input type="textarea" rows={2} value={this.state.businessScope} style={{width:'95%'}}
  1091. onChange={(e,pre) => { this.setState({ businessScope: e.target.value })}} disabled={true}/>
  1092. <span style={{color:'red',marginLeft:'5px'}}>*</span>
  1093. </FormItem>
  1094. </div>
  1095. <div style={{fontSize:'18px',marginLeft:'50px',marginTop:'15px',marginBottom:'10px',color:"red",fontWeight:"bold"}}>企业资料</div>
  1096. <FormItem className="half-item"
  1097. {...formItemLayout}
  1098. label="通信地址"
  1099. >
  1100. <Input placeholder="客户通信地址" value={this.state.postalAddress}
  1101. onChange={(e,pre) => { this.setState({ postalAddress: e.target.value }) }} disabled={true}/>
  1102. </FormItem>
  1103. <FormItem className="half-item"
  1104. {...formItemLayout}
  1105. label="固定电话"
  1106. >
  1107. <Input placeholder="客户固定电话" value={this.state.contactsFixedTel}
  1108. onChange={(e) => { this.setState({ contactsFixedTel: e.target.value }) }} disabled={true}/>
  1109. </FormItem>
  1110. <FormItem className="half-item"
  1111. {...formItemLayout}
  1112. label="客户传真"
  1113. >
  1114. <Input placeholder="客户传真" value={this.state.contactsFax}
  1115. onChange={(e) => { this.setState({ contactsFax: e.target.value })}} disabled={true}/>
  1116. </FormItem>
  1117. <FormItem className="half-item"
  1118. {...formItemLayout}
  1119. label="企业人数"
  1120. >
  1121. <Input placeholder="单位规模" value={this.state.enterpriseScale} onChange={(e) => {
  1122. this.setState({ enterpriseScale: e.target.value })}} disabled={true}/>
  1123. </FormItem>
  1124. <FormItem className="half-item"
  1125. {...formItemLayout}
  1126. label="法人名称"
  1127. >
  1128. <Input placeholder="法人名称" value={this.state.legalPerson} onChange={(e) => {
  1129. this.setState({ legalPerson: e.target.value })}} disabled={true}/>
  1130. </FormItem>
  1131. <FormItem className="half-item"
  1132. {...formItemLayout}
  1133. label="法人身份证"
  1134. >
  1135. <Input placeholder="法人身份证" value={this.state.legalPersonIdCard} onChange={(e) => {
  1136. this.setState({ legalPersonIdCard: e.target.value })}} disabled={true}/>
  1137. </FormItem>
  1138. <FormItem className="half-item"
  1139. {...formItemLayout}
  1140. label="联系人"
  1141. >
  1142. <Input placeholder="主要联系人" value={this.state.contacts} onChange={(e) => {
  1143. this.setState({ contacts: e.target.value })}} disabled={true}/>
  1144. </FormItem>
  1145. <FormItem className="half-item"
  1146. {...formItemLayout}
  1147. label="联系人号码"
  1148. >
  1149. <Input placeholder="主要联系人号码" value={this.state.contactMobile} onChange={(e) => {
  1150. this.setState({ contactMobile: e.target.value })}} disabled={true}/>
  1151. </FormItem>
  1152. <FormItem className="half-item"
  1153. {...formItemLayout}
  1154. label="法人电话"
  1155. >
  1156. <Input placeholder="法人电话" value={this.state.legalPersonTel} onChange={(e) => {
  1157. this.setState({ legalPersonTel: e.target.value })}} disabled={true}/>
  1158. </FormItem>
  1159. <FormItem className="half-item"
  1160. {...formItemLayout}
  1161. label="法人邮箱"
  1162. >
  1163. <Input placeholder="法人电子邮箱" value={this.state.legalPersonEmail}
  1164. onChange={(e) => {this.setState({legalPersonEmail: e.target.value })}} disabled={true}/>
  1165. </FormItem>
  1166. <FormItem className="half-item"
  1167. {...formItemLayout}
  1168. label="社会统一信用机构代码"
  1169. >
  1170. <Input placeholder="社会统一信用机构代码" value={this.state.orgCode} onChange={(e) => {
  1171. this.setState({ orgCode: e.target.value })}} disabled={true}/>
  1172. </FormItem>
  1173. <div className='clearfix'>
  1174. <FormItem
  1175. labelCol={{ span:4 }}
  1176. wrapperCol={{ span: 18 }}
  1177. label="客户简介" >
  1178. <Input type="textarea" rows={3} value={this.state.introduction}
  1179. onChange={(e,pre) => { this.setState({ introduction: e.target.value })}} disabled={true}/>
  1180. </FormItem>
  1181. </div>
  1182. <div className="clearfix pictures">
  1183. <FormItem style={{display:'inline-block',width:'350px',marginTop:'20px',marginLeft:'95px'}}
  1184. labelCol={{ span: 8 }}
  1185. wrapperCol={{ span: 10 }}
  1186. label="机构证书(PIC)" >
  1187. <PicturesWall
  1188. domId={'crmAll1'}
  1189. fileList={this.getOrgCodeUrl}
  1190. pictureUrl={this.state.orgCodeUrl} />
  1191. <p>建议:图片要清晰。</p>
  1192. </FormItem>
  1193. <FormItem style={{display:'inline-block',width:'350px',marginTop:'20px',marginTop:'20px'}}
  1194. labelCol={{ span: 8 }}
  1195. wrapperCol={{ span: 10 }}
  1196. label="单位LOGO" >
  1197. <PicturesWall
  1198. domId={'crmAll2'}
  1199. fileList={this.getCompanyLogoUrl}
  1200. pictureUrl={this.state.companyLogoUrl} />
  1201. <p>建议:图片要清晰。</p>
  1202. </FormItem>
  1203. </div>
  1204. <div style={{fontSize:'18px',marginLeft:'50px',marginTop:'15px',marginBottom:'10px',color:"red",fontWeight:"bold"}}>重要资料</div>
  1205. <div className='clearfix' >
  1206. <FormItem className="half-item"
  1207. {...formItemLayout}
  1208. label="客户信用等级"
  1209. >
  1210. <Select placeholder="客户信用等级" value={this.state.creditRating}
  1211. onChange={(e)=>{this.setState({creditRating:e})}} disabled={true}>
  1212. {
  1213. slcRedit.map(function (item) {
  1214. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1215. })
  1216. }
  1217. </Select>
  1218. </FormItem>
  1219. <div className='clearfix'>
  1220. <FormItem
  1221. labelCol={{ span:4 }}
  1222. wrapperCol={{ span: 19 }}
  1223. label="企业核心技术" >
  1224. <Input type="textarea" rows={3} value={this.state.coreTechnology}
  1225. onChange={(e,pre) => { this.setState({ coreTechnology: e.target.value })}} disabled={true}/>
  1226. </FormItem>
  1227. </div>
  1228. <div className='clearfix'>
  1229. <FormItem
  1230. labelCol={{ span:4 }}
  1231. wrapperCol={{ span: 19 }}
  1232. label="企业资质情况" >
  1233. <Input type="textarea" rows={3} value={this.state.qualification} placeholder="请按如下格式填写:资质名称+获得时间+拥有人+发证机构"
  1234. onChange={(e,pre) => { this.setState({ qualification: e.target.value })}} disabled={true}/>
  1235. </FormItem>
  1236. </div>
  1237. <div className='clearfix'>
  1238. <FormItem
  1239. labelCol={{ span:4 }}
  1240. wrapperCol={{ span: 19 }}
  1241. label="高企合作情况" >
  1242. <Input type="textarea" rows={3} value={this.state.cooperationSituation}
  1243. onChange={(e,pre) => { this.setState({ cooperationSituation: e.target.value })}} disabled={true}/>
  1244. </FormItem>
  1245. </div>
  1246. </div>
  1247. </div>
  1248. </Spin>
  1249. </Form>
  1250. </div>
  1251. </TabPane>
  1252. <TabPane tab="知识产权列表" key="1">
  1253. <Spin spinning={this.state.loading}>
  1254. <Table columns={this.state.columnsDate}
  1255. dataSource={this.state.dataSourceDate}
  1256. rowSelection={rowSelection}
  1257. pagination={this.state.paginationDate}
  1258. onRowClick={this.tableRowClickDate} />
  1259. </Spin>
  1260. </TabPane>
  1261. <TabPane tab="财务信息" key="2">
  1262. <Spin spinning={this.state.loading}>
  1263. <Table columns={this.state.columnsc}
  1264. dataSource={this.state.dataSourcec}
  1265. rowSelection={rowSelection}
  1266. onRowClick={this.tableRowClickDatec} />
  1267. </Spin>
  1268. </TabPane>
  1269. <TabPane tab="项目信息" key="3">
  1270. <Spin spinning={this.state.loading}>
  1271. <Table columns={this.state.columnsx}
  1272. dataSource={this.state.dataSourcex}
  1273. rowSelection={rowSelection}
  1274. onRowClick={this.tableRowClickDatex} />
  1275. </Spin>
  1276. </TabPane>
  1277. </Tabs>
  1278. </Modal>
  1279. <TechAchievementDesc
  1280. data={this.state.RowData}
  1281. detailApiUrl={this.props['data-detailApiUrl']}
  1282. achievementCategoryOption={this.state.achievementCategoryOption}
  1283. showDesc={this.state.showDesc}
  1284. uid={this.state.uid}
  1285. closeDesc={this.closeDesc}
  1286. loadDatas={this.loadDatas}
  1287. />
  1288. </div >
  1289. );
  1290. }
  1291. }));
  1292. export default IntentionCustomer;