identityAuditsOne.jsx 103 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612
  1. import React from 'react';
  2. import { Radio, Icon, Button, Cascader, Input, Select, Tabs, Spin, Popconfirm, Table, Switch, message, DatePicker, Modal, Upload, Form, Row, Col } from 'antd';
  3. import ajax from 'jquery/src/ajax/xhr.js';
  4. import $ from 'jquery/src/ajax';
  5. import moment from 'moment';
  6. import { citySelect, provinceList, areaSelect } from '../../../areaList';
  7. import {getProvinceList} from '../../../addressList';
  8. const { Column, ColumnGroup } = Table;
  9. const TabPane = Tabs.TabPane;
  10. const monthFormat = 'YYYY/MM';
  11. import CustomerDetail from './myClientDesc.jsx';
  12. import { socialAttribute, industry, auditStatusL, newFollow, lvl, currentMember, statuslist, customerStatus, intentionalService } from '../../../dataDic.js';
  13. import { getSocialAttribute, splitUrl,getAuditStatus, getCompanyIntention, getStatuslist, getContactType, getIndustryType, getfllowSituation, beforeUploadFile, getWhether, getcustomerStatue, getfllowSituationOn, getCertification, getcustomerTyp, getLvl, getCurrentMember, getprovince } from '../../../tools.js';
  14. //图片组件
  15. const PicturesWall = React.createClass({
  16. getInitialState() {
  17. return {
  18. previewVisible: false,
  19. previewImage: '',
  20. fileList: [],
  21. }
  22. },
  23. handleCancel() {
  24. this.setState({ previewVisible: false })
  25. },
  26. handlePreview(file) {
  27. this.setState({
  28. previewImage: file.url || file.thumbUrl,
  29. previewVisible: true,
  30. });
  31. },
  32. handleChange(info) {
  33. let fileList = info.fileList;
  34. this.setState({ fileList });
  35. this.props.fileList(fileList);
  36. },
  37. componentWillReceiveProps(nextProps) {
  38. this.state.fileList = nextProps.pictureUrl;
  39. },
  40. render() {
  41. const { previewVisible, previewImage, fileList } = this.state;
  42. const uploadButton = (
  43. <div>
  44. <Icon type="plus" />
  45. <div className="ant-upload-text">点击上传</div>
  46. </div>
  47. );
  48. return(
  49. <div style={{display:"inline-block"}}>
  50. <Upload
  51. action={globalConfig.context + "/api/admin/customer/uploadCustomerImg"}
  52. data={{ 'sign': '' }}
  53. listType="picture-card"
  54. fileList={fileList}
  55. onPreview={this.handlePreview}
  56. onChange={this.handleChange} >
  57. {fileList.length >= 1 ? null : uploadButton}
  58. </Upload>
  59. <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>
  60. <img alt="example" style={{ width: '100%' }} src={previewImage} />
  61. </Modal>
  62. </div>
  63. );
  64. }
  65. });
  66. const QueryCustomer = Form.create()(React.createClass({
  67. loadData(pageNo, apiUrl) {
  68. this.state.data = [];
  69. this.setState({
  70. loading: true,
  71. ispage:pageNo,
  72. });
  73. $.ajax({
  74. method: "post",
  75. dataType: "json",
  76. crossDomain: false,
  77. url: globalConfig.context + '/api/admin/customer/listAllPersonalCustomer',
  78. data: {
  79. pageNo: pageNo || 1,
  80. pageSize: this.state.pagination.pageSize,
  81. auditStatus: 1,
  82. type: this.state.typeSearch, //名称1
  83. name: this.state.nameSearch,
  84. province: !(this.state.addressSearch).length ? this.state.provinceSearch : this.state.addressSearch[0],
  85. city: !(this.state.addressSearch).length ? '' : this.state.addressSearch[1],
  86. status: this.state.statusSearch,
  87. industry: this.state.industrySearch,
  88. businessAudit: this.state.serviceCertificationSearch,
  89. currentMemberStatus: this.state.currentMemberStatusSearch,
  90. lvl: this.state.lvlSearch,
  91. listed: this.state.listedSearch, //是否上市
  92. highTechZone: this.state.highTechZoneSearch, //是否高新
  93. startDate: this.state.releaseDate[0],
  94. endDate: this.state.releaseDate[1],
  95. isMember: this.state.isMemberSearch,
  96. international: this.state.internationalSearch,
  97. celebrity: this.state.celebritySearch,
  98. expert: this.state.expertSearch,
  99. industry: this.state.industrySearch,
  100. shareType: this.state.shareTypeSearch,
  101. },
  102. success: function(data) {
  103. let theArr = [];
  104. if(data.error.length || data.data.list == "") {
  105. if(data.error && data.error.length) {
  106. message.warning(data.error[0].message);
  107. };
  108. } else {
  109. for(let i = 0; i < data.data.list.length; i++) {
  110. let thisdata = data.data.list[i];
  111. theArr.push({
  112. key: i,
  113. id: thisdata.uid,
  114. type: thisdata.type,
  115. name: thisdata.name,
  116. status: thisdata.status,
  117. contacts: thisdata.contacts,
  118. contactMobile: thisdata.contactMobile,
  119. industry: thisdata.industry,
  120. createTime: thisdata.createTime,
  121. businessAudit: thisdata.businessAudit,
  122. auditStatus: thisdata.auditStatus,
  123. lvl: thisdata.lvl,
  124. shareType: thisdata.shareType,
  125. isMember: thisdata.isMember,
  126. consultant: thisdata.consultant,
  127. societyTag: thisdata.societyTag,
  128. currentMemberStatus: thisdata.currentMemberStatus,
  129. international: thisdata.international,
  130. listed: thisdata.listed,
  131. international: thisdata.international,
  132. expert: thisdata.expert,
  133. expertAudit: thisdata.expertAudit,
  134. celebrity: thisdata.celebrity,
  135. adminName: thisdata.adminName,
  136. highTechZone: thisdata.highTechZone,
  137. locationProvince: thisdata.province ? thisdata.province + '-' + thisdata.city || '' + '-' + thisdata.area : '--'
  138. });
  139. };
  140. this.state.pagination.current = data.data.pageNo ;
  141. this.state.pagination.total = data.data.totalCount ;
  142. };
  143. if(data.data&&data.data.list&&!data.data.list.length){
  144. this.state.pagination.current=0
  145. this.state.pagination.total=0
  146. }
  147. this.setState({
  148. dataSource: theArr,
  149. pagination: this.state.pagination,
  150. selectedRowKeys:[]
  151. });
  152. }.bind(this),
  153. }).always(function() {
  154. this.setState({
  155. loading: false
  156. });
  157. }.bind(this));
  158. },
  159. handleCancel(e) {
  160. this.setState({
  161. visible: false,
  162. });
  163. },
  164. getInitialState() {
  165. return {
  166. addressSearch: [],
  167. positiveIdUrl: [],
  168. oppositeIdUrl: [],
  169. headPortraitUrl: [],
  170. visible: false,
  171. callnubs:"1",
  172. searchMore: true,
  173. releaseDate: [],
  174. releaseDate: [],
  175. selectedRowKeys: [],
  176. selectedRowKey: [],
  177. selectedRows: [],
  178. loading: false,
  179. pagination: {
  180. defaultCurrent: 1,
  181. defaultPageSize: 10,
  182. showQuickJumper: true,
  183. pageSize: 10,
  184. onChange: function(page) {
  185. this.loadData(page);
  186. }.bind(this),
  187. showTotal: function(total) {
  188. return '共' + total + '条数据';
  189. }
  190. },
  191. paginations: {
  192. defaultCurrent: 1,
  193. defaultPageSize: 10,
  194. showQuickJumper: true,
  195. pageSize: 10,
  196. onChange: function(page) {
  197. this.loadVisit(page);
  198. }.bind(this),
  199. showTotal: function(total) {
  200. return '共' + total + '条数据';
  201. }
  202. },
  203. paginationsy: {
  204. defaultCurrent: 1,
  205. defaultPageSize: 10,
  206. showQuickJumper: true,
  207. pageSize: 10,
  208. onChange: function(page) {
  209. this.loadBfVisit(page, false);
  210. }.bind(this),
  211. showTotal: function(total) {
  212. return '共' + total + '条数据';
  213. }
  214. },
  215. paginationt: {
  216. defaultCurrent: 1,
  217. defaultPageSize: 10,
  218. showQuickJumper: true,
  219. pageSize: 10,
  220. onChange: function(page) {
  221. this.BusinessList(page, false);
  222. }.bind(this),
  223. showTotal: function(total) {
  224. return '共' + total + '条数据';
  225. }
  226. },
  227. //业务意向列表
  228. intentionList: [{
  229. title: '业务名称',
  230. dataIndex: 'businessGlossoryId',
  231. key: 'businessGlossoryId',
  232. render: (text, record, index) => {
  233. return adminData.isSuperAdmin ? <Select placeholder="选择业务名称" disabled={record.id?true:false} value={record.businessGlossoryId} onChange={(e) => { record.businessGlossoryId = e; this.setState({ data: this.state.data }); }}>
  234. {
  235. intentionalService.map(function (item) {
  236. return <Select.Option key={item.value} >{item.key}</Select.Option>
  237. })
  238. }
  239. </Select> : <span>{getCompanyIntention(text)}</span>
  240. }
  241. },
  242. {
  243. title: '最新进度',
  244. dataIndex: 'followSituation',
  245. key: 'followSituation',
  246. render: (text, record, index) => {
  247. return adminData.isSuperAdmin ? <Select placeholder="选择最新进度" value={record.followSituation} onChange={(e) => { record.followSituation = e; this.setState({ data: this.state.data }); }}>
  248. {
  249. newFollow.map(function (item) {
  250. return <Select.Option key={item.value} >{item.key}</Select.Option>
  251. })
  252. }
  253. </Select> : <span>{getfllowSituation(text)}</span>
  254. }
  255. }, {
  256. title: '最新状态',
  257. dataIndex: 'customerStatus',
  258. key: 'customerStatus',
  259. render: (text, record, index) => {
  260. return adminData.isSuperAdmin ? <Select value={record.customerStatus} placeholder="选择最新状态" onChange={(e) => { record.customerStatus = e; this.setState({ data: this.state.data }); }}>
  261. {
  262. customerStatus.map(function (item) {
  263. return <Select.Option key={item.value} >{item.key}</Select.Option>
  264. })
  265. }
  266. </Select> : <span>{getcustomerStatue(text)}</span>
  267. }
  268. }, {
  269. title: '跟进说明',
  270. dataIndex: 'remarks',
  271. key: 'remarks',
  272. render: (text, record, index) => {
  273. return adminData.isSuperAdmin ? <Input value={record.remarks} placeholder="跟进说明"
  274. onChange={(e) => { record.remarks = e.target.value; this.setState({ data: this.state.data }); }}
  275. style={{width:'120px'}}/> : <span>{text}</span>
  276. }
  277. }
  278. ],
  279. businessIntentionList: [{
  280. title: '意向时间',
  281. dataIndex: 'createTime',
  282. key: 'createTime'
  283. }, {
  284. title: '客户姓名',
  285. dataIndex: 'identifyName',
  286. key: 'identifyName'
  287. }, {
  288. title: '业务名',
  289. dataIndex: 'businessName',
  290. key: 'businessName'
  291. }, {
  292. title: '营销员',
  293. dataIndex: 'adminName',
  294. key: 'adminName'
  295. }, {
  296. title: '业务意向进度',
  297. dataIndex: 'followSituation',
  298. key: 'followSituation',
  299. render: text => { return getfllowSituation(text) }
  300. }, {
  301. title: '客户状态',
  302. dataIndex: 'customerStatus',
  303. key: 'customerStatus',
  304. render: text => { return getcustomerStatue(text) }
  305. }, {
  306. title: '操作',
  307. dataIndex: 'ooo',
  308. key: 'ooo',
  309. render: (text, record) => { return(<Button onClick={(e)=>{this.businessIntentionDetails(record)}}>查看</Button>) }
  310. }],
  311. businessFollowList: [{
  312. title: '跟进时间',
  313. dataIndex: 'followTime',
  314. key: 'followTime',
  315. }, {
  316. title: '营销员',
  317. dataIndex: 'adminName',
  318. key: 'adminName',
  319. }, {
  320. title: '业务意向进度',
  321. dataIndex: 'followSituation',
  322. key: 'followSituation',
  323. render: text => { return getfllowSituation(text) }
  324. }, {
  325. title: '客户状态',
  326. dataIndex: 'customerStatus',
  327. key: 'customerStatus',
  328. render: text => { return getcustomerStatue(text) }
  329. },
  330. {
  331. title: '拜访方式',
  332. dataIndex: 'contactType',
  333. key: 'contactType',
  334. render: text => { return getContactType(text) }
  335. }, {
  336. title: '联系人',
  337. dataIndex: 'contacts',
  338. key: 'contacts',
  339. },
  340. {
  341. title: '联系电话',
  342. dataIndex: 'contactMobile',
  343. key: 'contactMobile',
  344. }, {
  345. title: '操作',
  346. dataIndex: 'ooo',
  347. key: 'ooo',
  348. render: (text, record) => { return(<Button onClick={(e)=>{this.businessFollowDetails(record)}}>查看</Button>) }
  349. }
  350. ],
  351. visitsList: [{
  352. title: '拜访时间',
  353. dataIndex: 'followTime',
  354. key: 'followTime'
  355. }, {
  356. title: '客户姓名',
  357. dataIndex: 'identifyName',
  358. key: 'identifyName'
  359. }, {
  360. title: '拜访方式',
  361. dataIndex: 'contactType',
  362. key: 'contactType',
  363. render: text => { return getContactType(text) }
  364. }, {
  365. title: '联系人',
  366. dataIndex: 'contacts',
  367. key: 'contacts'
  368. }, {
  369. title: '联系电话',
  370. dataIndex: 'contactMobile',
  371. key: 'contactMobile'
  372. }, {
  373. title: '拜访人',
  374. dataIndex: 'adminName',
  375. key: 'adminName'
  376. }, {
  377. title: '拜访说明',
  378. dataIndex: 'result',
  379. key: 'result',
  380. render: text => {
  381. return <span style={{width:'150px',display:'inline-block',overflow:'hidden'}}>{text}</span>
  382. }
  383. }],
  384. ContactsLists: [{
  385. title: '姓名',
  386. dataIndex: 'name',
  387. key: 'name',
  388. render: (text, record, index) => {
  389. return adminData.isSuperAdmin ? <Input value={record.name} placeholder="姓名" key={record.id}
  390. onChange={(e) => { record.name = e.target.value;
  391. this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> : <span>{text}</span>
  392. }
  393. }, {
  394. title: '联系人部门',
  395. dataIndex: 'depatrment',
  396. key: 'depatrment',
  397. render: (text, record, index) => {
  398. return adminData.isSuperAdmin ? <Input value={record.depatrment} placeholder="联系人部门" key={record.id}
  399. onChange={(e) => { record.depatrment = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> : <span>{text}</span>
  400. }
  401. }, {
  402. title: '联系人职务',
  403. dataIndex: 'position',
  404. key: 'position',
  405. render: (text, record, index) => {
  406. return adminData.isSuperAdmin ? <Input value={record.position} placeholder="联系人职务" key={record.id}
  407. onChange={(e) => { record.position = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> : <span>{text}</span>
  408. }
  409. }, {
  410. title: '手机号码',
  411. dataIndex: 'mobile',
  412. key: 'mobile',
  413. render: (text, record, index) => {
  414. return adminData.isSuperAdmin ? <Input value={record.mobile} placeholder="手机号码" key={record.id}
  415. onChange={(e) => { record.mobile = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> : <span>{text}</span>
  416. }
  417. }, {
  418. title: '微信',
  419. dataIndex: 'wechat',
  420. key: 'wechat',
  421. render: (text, record, index) => {
  422. return adminData.isSuperAdmin ? <Input value={record.wechat} placeholder="微信" key={record.id}
  423. onChange={(e) => { record.wechat = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> : <span>{text}</span>
  424. }
  425. }, {
  426. title: '联系人QQ',
  427. dataIndex: 'qq',
  428. key: 'qq',
  429. render: (text, record, index) => {
  430. return adminData.isSuperAdmin ? <Input value={record.qq} placeholder="联系人QQ" key={record.id}
  431. onChange={(e) => { record.qq = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> : <span>{text}</span>
  432. }
  433. }, {
  434. title: '电子邮箱',
  435. dataIndex: 'email',
  436. key: 'email',
  437. render: (text, record, index) => {
  438. return adminData.isSuperAdmin ? <Input value={record.email} placeholder="电子邮箱" key={record.id}
  439. onChange={(e) => { record.email = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> : <span>{text}</span>
  440. }
  441. }
  442. ],
  443. columnsman: [{
  444. title: '姓名',
  445. dataIndex: 'name',
  446. key: 'name'
  447. }, {
  448. title: '手机号码',
  449. dataIndex: 'mobile',
  450. key: 'mobile'
  451. }],
  452. columns: [{
  453. title: '客户姓名',
  454. dataIndex: 'name',
  455. key: 'name',
  456. }, {
  457. title: '地区',
  458. dataIndex: 'locationProvince',
  459. key: 'locationProvince',
  460. },
  461. {
  462. title: '公共客户',
  463. dataIndex: 'shareType',
  464. key: 'shareType',
  465. render: (text, record) => { return record.shareType == '1' ? <span>公共客户</span> : <span>个人客户</span> }
  466. },
  467. {
  468. title: '行业',
  469. dataIndex: 'industry',
  470. key: 'industry',
  471. },
  472. {
  473. title: '社会性质',
  474. dataIndex: 'societyTag',
  475. key: 'societyTag',
  476. render: text => { return getSocialAttribute(text) }
  477. },
  478. {
  479. title: '创建时间',
  480. dataIndex: 'createTime',
  481. key: 'createTime',
  482. },{
  483. title: '所属人',
  484. dataIndex: 'adminName',
  485. key: 'adminName',
  486. },
  487. {
  488. title: '业务认证',
  489. dataIndex: 'businessAudit',
  490. key: 'businessAudit',
  491. render: text => { return getCertification(text) }
  492. },
  493. {
  494. title: '实名认证',
  495. dataIndex: 'auditStatus',
  496. key: 'auditStatus',
  497. render: text => { return getAuditStatus(text) }
  498. },
  499. {
  500. title: '是否专家',
  501. dataIndex: 'expert',
  502. key: 'expert',
  503. render: text => { return getWhether(text) }
  504. },
  505. {
  506. title: '是否会员',
  507. dataIndex: 'isMember',
  508. key: 'isMember',
  509. render: text => { return getWhether(text) }
  510. },
  511. {
  512. title: '是否国际',
  513. dataIndex: 'international',
  514. key: 'international',
  515. render: text => { return getWhether(text) }
  516. },
  517. {
  518. title: '会员等级',
  519. dataIndex: 'lvl',
  520. key: 'lvl',
  521. render: text => { return getLvl(text) }
  522. },
  523. {
  524. title: '会员状态',
  525. dataIndex: 'currentMemberStatus',
  526. key: 'currentMemberStatus',
  527. render: text => { return getCurrentMember(text) }
  528. },
  529. {
  530. title: '状态',
  531. dataIndex: 'status',
  532. key: 'status',
  533. render: text => { return getStatuslist(text) }
  534. }
  535. ],
  536. data: [],
  537. dataman: [],
  538. dataSource: [],
  539. visitArrList: [],
  540. searchTime: [, ]
  541. };
  542. },
  543. //tab2获取联系人详情
  544. contactLists(ids) {
  545. this.setState({
  546. loading: true
  547. });
  548. $.ajax({
  549. method: "get",
  550. dataType: "json",
  551. crossDomain: false,
  552. url: globalConfig.context + '/api/admin/customer/findCustomerContacts',
  553. data: {
  554. uid: ids, //名称1
  555. },
  556. success: function(data) {
  557. let theArr = [];
  558. if(data.error.length || data.data.list == "") {
  559. if(data.error && data.error.length) {
  560. message.warning(data.error[0].message);
  561. };
  562. } else {
  563. for(let i = 0; i < data.data.length; i++) {
  564. let thisdata = data.data[i];
  565. theArr.push({
  566. id: thisdata.id,
  567. name: thisdata.name,
  568. mobile: thisdata.mobile,
  569. email: thisdata.email,
  570. qq: thisdata.qq,
  571. wechat: thisdata.wechat,
  572. depatrment: thisdata.depatrment,
  573. position: thisdata.position,
  574. });
  575. };
  576. };
  577. this.setState({
  578. contactList: theArr,
  579. });
  580. }.bind(this),
  581. }).always(function() {
  582. this.setState({
  583. loading: false
  584. });
  585. }.bind(this));
  586. },
  587. componentWillMount() {
  588. let areaArr= getProvinceList();
  589. let Citys=citySelect(areaArr);
  590. let Areas=areaSelect(areaArr);
  591. this.setState({
  592. City: Citys,
  593. Area: Areas
  594. });
  595. //城市
  596. let Province = [];
  597. areaArr.map(function(item) {
  598. var id = String(item.id)
  599. Province.push(
  600. <Select.Option value={id} key={item.name}>{item.name}</Select.Option>
  601. )
  602. });
  603. //行业
  604. let intentionalArr = [];
  605. industry.map(function(item) {
  606. intentionalArr.push(
  607. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  608. )
  609. });
  610. //会员等级
  611. let lvlArr = [];
  612. lvl.map(function(item) {
  613. lvlArr.push(
  614. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  615. )
  616. });
  617. //会员状态customerStatus
  618. let currentMemberArr = [];
  619. currentMember.map(function(item) {
  620. currentMemberArr.push(
  621. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  622. )
  623. });
  624. this.state.Provinces = Province;
  625. this.state.intentionalOption = intentionalArr;
  626. this.state.lvlArrOption = lvlArr;
  627. this.state.currentMemberArrOption = currentMemberArr;
  628. this.loadData();
  629. },
  630. //审核专家通过功能
  631. delectRow() {
  632. let deletedIds;
  633. let rowItem;
  634. for(let idx = 0; idx < this.state.selectedRows.length; idx++) {
  635. rowItem = this.state.selectedRows[idx];
  636. if(rowItem.id) {
  637. deletedIds = rowItem.id;
  638. };
  639. };
  640. this.setState({
  641. selectedRowKeys: [],
  642. });
  643. $.ajax({
  644. method: "get",
  645. dataType: "json",
  646. crossDomain: false,
  647. url: globalConfig.context + '/api/admin/customer/findPersonalCustomerDetail',
  648. data: {
  649. uid: deletedIds,
  650. },
  651. success: function(data) {
  652. let thisData = data.data;
  653. $.ajax({
  654. method: "post",
  655. dataType: "json",
  656. crossDomain: false,
  657. url: globalConfig.context + "/api/admin/customer/updatePersonalCustomer",
  658. data: {
  659. uid: deletedIds, //审核通过的ID
  660. id:thisData.id,
  661. auditStatus:5,
  662. expert:rowItem.expert,
  663. expertAudit:rowItem.expertAudit,
  664. }
  665. }).done(function(data) {
  666. if(!data.error.length) {
  667. message.success('已成功通过实名认证申请!');
  668. this.setState({
  669. loading: false,
  670. });
  671. } else {
  672. message.warning(data.error[0].message);
  673. };
  674. this.loadData(this.state.ispage);
  675. }.bind(this));
  676. }.bind(this),
  677. })
  678. },
  679. //审核专家不通过功能
  680. delectRows() {
  681. let deletedIds;
  682. for(let idx = 0; idx < this.state.selectedRows.length; idx++) {
  683. let rowItem = this.state.selectedRows[idx];
  684. if(rowItem.id) {
  685. deletedIds = rowItem.id;
  686. };
  687. };
  688. this.setState({
  689. selectedRowKeys: [],
  690. });
  691. $.ajax({
  692. method: "get",
  693. dataType: "json",
  694. crossDomain: false,
  695. url: globalConfig.context + '/api/admin/customer/findPersonalCustomerDetail',
  696. data: {
  697. uid: deletedIds,
  698. },
  699. success: function(data) {
  700. let thisData = data.data;
  701. $.ajax({
  702. method: "post",
  703. dataType: "json",
  704. crossDomain: false,
  705. url: globalConfig.context + "/api/admin/customer/updatePersonalCustomer",
  706. data: {
  707. uid: deletedIds, //审核通过的ID
  708. id:thisData.id,
  709. auditStatus:4,
  710. }
  711. }).done(function(data) {
  712. if(!data.error.length) {
  713. message.success('已成功驳回实名认证申请!');
  714. this.setState({
  715. loading: false,
  716. });
  717. } else {
  718. message.warning(data.error[0].message);
  719. };
  720. this.loadData(this.state.ispage);
  721. }.bind(this));
  722. }.bind(this),
  723. })
  724. },
  725. getHeadPortraitUrl(e) {
  726. this.setState({ headPortraitUrl: e });
  727. },
  728. getPositiveIdUrl(e) {
  729. this.setState({ positiveIdUrl: e });
  730. },
  731. getOppositeIdUrl(e) {
  732. this.setState({ oppositeIdUrl: e });
  733. },
  734. search() {
  735. this.loadData();
  736. },
  737. reset() {
  738. this.state.expertSearch = undefined;
  739. this.state.celebritySearch = undefined;
  740. this.state.shareTypeSearch = undefined;
  741. this.state.typeSearch = undefined; //名称1
  742. this.state.nameSearch = '';
  743. this.state.addressSearch = [];
  744. this.state.provinceSearch = undefined;
  745. this.state.citySearch = undefined;
  746. this.state.statusSearch = undefined;
  747. this.state.contactsSearch = undefined;
  748. this.state.contactMobileSearch = undefined;
  749. this.state.industrySearch = undefined;
  750. this.state.serviceCertificationSearch = undefined;
  751. this.state.userCertificationSearch = undefined;
  752. this.state.currentMemberStatusSearch = undefined;
  753. this.state.lvlSearch = undefined;
  754. this.state.listedSearch = undefined;
  755. this.state.highTechZoneSearch = undefined;
  756. this.state.releaseDate[0] = undefined;
  757. this.state.releaseDate[1] = undefined;
  758. this.loadData();
  759. },
  760. searchSwitch() {
  761. this.setState({
  762. searchMore: !this.state.searchMore
  763. });
  764. },
  765. //整行点击
  766. tableRowClick(record, index) {
  767. this.state.RowData = record;
  768. this.detailsModalOk(record);
  769. this.loadInformation(record.id)
  770. this.httpAccount(record.id);
  771. this.loadBfVisit(1, record.id);
  772. this.BusinessList(1, record.id);
  773. this.contactLists(record.id);
  774. this.setState({
  775. callnub:'1',
  776. selectedRowKeys: [],
  777. rowId: record.id,
  778. })
  779. },
  780. VisitRowClick(record, index) {
  781. this.state.keys = false;
  782. this.state.RowData = record;
  783. this.setState({
  784. selectedRowKeys: [],
  785. delectId: record.followId,
  786. })
  787. },
  788. //点击整行查看详情
  789. //查看基本详情基本信息
  790. loadInformation(record) {
  791. this.RowClick;
  792. $.ajax({
  793. method: "get",
  794. dataType: "json",
  795. crossDomain: false,
  796. url: globalConfig.context + '/api/admin/customer/findPersonalCustomerDetail',
  797. data: {
  798. uid: record
  799. },
  800. success: function(data) {
  801. let thisData = data.data;
  802. if(!thisData) {
  803. if(data.error && data.error.length) {
  804. message.warning(data.error[0].message);
  805. };
  806. thisData = {};
  807. };
  808. let ProvinceCityArr = [];
  809. let ProvinceS = thisData.province; //getprovince
  810. let citys = thisData.city;
  811. let Areas = thisData.area;
  812. ProvinceCityArr.push(ProvinceS, citys, Areas);
  813. let cityArea = getprovince(ProvinceS) + '/' + getprovince(citys) + '/' + getprovince(Areas)
  814. let month = thisData.dateOfBirthYear ? thisData.dateOfBirthYear + '/' + thisData.dateOfBirthMonth : false;
  815. this.setState({
  816. proviceCityArea: ProvinceS ? cityArea : '',
  817. InformationId: thisData.id,
  818. InformationUid: thisData.uid,
  819. identifyName: thisData.identifyName,
  820. listed: thisData.listed,
  821. highTechZone: thisData.highTechZone,
  822. consultant: thisData.consultant,
  823. headPortraitUrl: thisData.headPortraitUrl ? splitUrl(thisData.headPortraitUrl, ',', globalConfig.avatarHost + '/upload') : [],
  824. positiveIdUrl: thisData.positiveIdUrl ? splitUrl(thisData.positiveIdUrl, ',', globalConfig.avatarHost + '/upload') : [],
  825. oppositeIdUrl: thisData.oppositeIdUrl ? splitUrl(thisData.oppositeIdUrl, ',', globalConfig.avatarHost + '/upload') : [],
  826. dataInformation: thisData,
  827. idNumber: thisData.idNumber,
  828. ProvinceCity: ProvinceCityArr,
  829. industry: String(thisData.industry),
  830. societyTag: thisData.societyTag,
  831. sex: thisData.sex,
  832. contacts: thisData.contacts,
  833. contactMobile: thisData.contactMobile,
  834. yearMonth: month,
  835. postalAddress: thisData.postalAddress,
  836. fixedTel: thisData.fixedTel,
  837. consultationPrice: thisData.consultationPrice,
  838. email: thisData.email,
  839. qq: thisData.qq,
  840. introduction: thisData.introduction,
  841. expert: thisData.expert,
  842. celebrity: thisData.celebrity,
  843. international: thisData.international,
  844. investment: thisData.investment,
  845. professionalTitle: thisData.professionalTitle,
  846. workUnit: thisData.workUnit,
  847. education: thisData.education,
  848. graduateSchool: thisData.graduateSchool,
  849. majorCategory: thisData.majorCategory,
  850. qualification: thisData.qualification,
  851. businessAudit:thisData.businessAudit,
  852. auditStatus:thisData.auditStatus?String(thisData.auditStatus):undefined,
  853. });
  854. }.bind(this),
  855. }).always(function() {
  856. this.setState({
  857. loading: false
  858. });
  859. }.bind(this));
  860. },
  861. //tab3账户信息请求数据
  862. httpAccount(record) {
  863. this.RowClick;
  864. $.ajax({
  865. method: "get",
  866. dataType: "json",
  867. crossDomain: false,
  868. url: globalConfig.context + '/api/admin/customer/findUserAccountDetail',
  869. data: {
  870. uid: record
  871. },
  872. success: function(data) {
  873. let thisData = data.data;
  874. if(!thisData) {
  875. if(data.error && data.error.length) {
  876. message.warning(data.error[0].message);
  877. };
  878. thisData = {};
  879. };
  880. let sourcecustomer = ''
  881. switch(String(thisData.source)) {
  882. case '0':
  883. sourcecustomer = '注册客户'
  884. break;
  885. case '1':
  886. sourcecustomer = '录入客户'
  887. break;
  888. }
  889. this.setState({
  890. Accountuid: thisData.id,
  891. mobile: thisData.mobile,
  892. nickname: thisData.nickname,
  893. email: thisData.email,
  894. type: getcustomerTyp(String(thisData.type)),
  895. source: sourcecustomer,
  896. isMember: thisData.isMember,
  897. currentMemberStatus: String(thisData.currentMemberStatus),
  898. lvl: String(thisData.lvl),
  899. status: String(thisData.status),
  900. createTimes: thisData.createTimes,
  901. });
  902. }.bind(this),
  903. }).always(function() {
  904. this.setState({
  905. loading: false
  906. });
  907. }.bind(this));
  908. },
  909. detailsModalOk(e) {
  910. this.setState({ modal5Visible: true }); //需要一个请求数据
  911. },
  912. //点击消失函数
  913. detailsModal(e) {
  914. this.setState({
  915. modal5Visible: false
  916. });
  917. },
  918. //拜访modul函数
  919. visitOk(e) {
  920. this.setState({
  921. visitModul: false
  922. });
  923. this.loadVisit()
  924. },
  925. visitCancel(e) {
  926. this.setState({
  927. visitModul: false
  928. });
  929. },
  930. //当选择联系人的列表变化时,则执行
  931. hundleName(e) {
  932. let changNub = this.state.telNum[e];
  933. this.setState({
  934. nub: this.state.telNum[e],
  935. lastName: e,
  936. });
  937. },
  938. //添加新业务及单位客户详情新增
  939. addNew() {
  940. this.state.data.push({
  941. customerStatus: undefined,
  942. businessGlossoryId: undefined,
  943. followSituation: undefined,
  944. remarks: '',
  945. });
  946. this.setState({
  947. data: this.state.data
  948. })
  949. },
  950. //tab2新增联系人
  951. addcontact() {
  952. this.state.contactList.push({
  953. id: null,
  954. name: '',
  955. mobile: '',
  956. email: '',
  957. qq: '',
  958. wechat: '',
  959. depatrment: '',
  960. position: '',
  961. });
  962. this.setState({
  963. contactList: this.state.contactList
  964. })
  965. },
  966. //tab5进入修改时
  967. //进入修改时
  968. listFollowUp(e) {
  969. $.ajax({
  970. method: "get",
  971. dataType: "json",
  972. crossDomain: false,
  973. url: globalConfig.context + "/api/admin/customer/toUpdateFollowOneBusiness",
  974. data: {
  975. ufbId: e
  976. },
  977. success: function(data) {
  978. let thedata = data.data;
  979. if(!thedata) {
  980. if(data.error && data.error.length) {
  981. message.warning(data.error[0].message);
  982. };
  983. thedata = {};
  984. };
  985. this.setState({
  986. businessGlossoryIds: thedata.businessGlossoryId,
  987. followSituations: thedata.followSituation,
  988. customerStatuss: thedata.customerStatus,
  989. followTimes: thedata.followTime,
  990. createTimes: thedata.createTime,
  991. identifyNames: thedata.identifyName,
  992. contactTypes: parseInt(thedata.contactType),
  993. results: thedata.result,
  994. remarkss: thedata.remarks,
  995. adminNames: thedata.adminName,
  996. contactss: thedata.contacts,
  997. contactMobiles: thedata.contactMobile,
  998. ufbId: thedata.ufbId,
  999. followIds: thedata.followId,
  1000. });
  1001. }.bind(this),
  1002. }).always(function() {
  1003. this.setState({
  1004. loading: false
  1005. });
  1006. }.bind(this));
  1007. },
  1008. //修改密码Modul
  1009. modifyPassworld() {
  1010. this.setState({
  1011. passworldModul: true
  1012. });
  1013. },
  1014. passworldOk(e) {
  1015. this.setState({
  1016. passworldModul: false
  1017. });
  1018. },
  1019. passworldCancel(e) {
  1020. this.setState({
  1021. passworldModul: false
  1022. });
  1023. },
  1024. //修改密码保存
  1025. passworldSubmit(e) {
  1026. e.preventDefault();
  1027. this.passworldCancel()
  1028. },
  1029. //新增联系人
  1030. addcontactModulOK() {
  1031. this.setState({
  1032. addcontactModul: false
  1033. });
  1034. },
  1035. addcontactModulcancel() {
  1036. this.setState({
  1037. addcontactModul: false
  1038. });
  1039. },
  1040. //点击新增详情
  1041. newContacts() {
  1042. this.state.newsex =undefined;
  1043. this.state.newname ='';
  1044. this.state.newmobile='';
  1045. this.state.newwechat='';
  1046. this.state.newqq='';
  1047. this.state.newdepatrment='';
  1048. this.state.newposition='';
  1049. this.state.newemail='';
  1050. this.setState({
  1051. uids: this.state.uid,
  1052. addcontactModul: true
  1053. });
  1054. },
  1055. //tab5意向业务
  1056. //意向业务查看列表单个详情
  1057. businessIntentionDetails(e) {
  1058. $.ajax({
  1059. method: "get",
  1060. dataType: "json",
  1061. crossDomain: false,
  1062. url: globalConfig.context + '/api/admin/customer/toUpdateBusiness',
  1063. data: {
  1064. businessId: e.businessId
  1065. },
  1066. success: function(data) {
  1067. let thisData = data.data;
  1068. if(!thisData) {
  1069. if(data.error && data.error.length) {
  1070. message.warning(data.error[0].message);
  1071. };
  1072. thisData = {};
  1073. };
  1074. this.setState({
  1075. businessGlossoryId: thisData.businessGlossoryId,
  1076. identifyName: thisData.identifyName,
  1077. uid: thisData.uid,
  1078. businessId: thisData.businessId,
  1079. followSituation: thisData.followSituation,
  1080. customerStatus: thisData.customerStatus,
  1081. createTime: thisData.createTime,
  1082. followTime: thisData.followTime,
  1083. adminName: thisData.adminName,
  1084. remarks: thisData.remarks,
  1085. result: thisData.result,
  1086. });
  1087. }.bind(this),
  1088. }).always(function() {
  1089. this.loadVisit();
  1090. this.setState({
  1091. loading: false
  1092. });
  1093. }.bind(this));
  1094. this.setState({
  1095. businessModul: true
  1096. })
  1097. },
  1098. //查看跟进记录列表
  1099. loadVisit(pageNo) {
  1100. this.setState({
  1101. loading: true
  1102. });
  1103. $.ajax({
  1104. method: "get",
  1105. dataType: "json",
  1106. crossDomain: false,
  1107. url: globalConfig.context + '/api/admin/customer/listFollowHistory',
  1108. data: {
  1109. pageNo: pageNo || 1,
  1110. pageSize: this.state.paginations.pageSize,
  1111. uid: this.state.rowId, //名称1
  1112. businessGlossoryId: this.state.businessGlossoryId,
  1113. },
  1114. success: function(data) {
  1115. let theArr = [];
  1116. if(data.error.length || data.data.list == "") {
  1117. if(data.error && data.error.length) {
  1118. message.warning(data.error[0].message);
  1119. };
  1120. } else {
  1121. for(let i = 0; i < data.data.list.length; i++) {
  1122. let thisdata = data.data.list[i];
  1123. theArr.push({
  1124. followId: thisdata.followId,
  1125. followTime: thisdata.followTime,
  1126. identifyName: thisdata.identifyName,
  1127. contacts: thisdata.contacts,
  1128. contactMobile: thisdata.contactMobile,
  1129. result: thisdata.result,
  1130. ufbId: thisdata.ufbId,
  1131. adminName: thisdata.adminName,
  1132. followSituation: thisdata.followSituation,
  1133. customerStatus: thisdata.customerStatus,
  1134. contactType: thisdata.contactType
  1135. });
  1136. };
  1137. this.state.paginations.current = data.data.pageNo;
  1138. this.state.paginations.total = data.data.totalCount;
  1139. };
  1140. this.setState({
  1141. visitArrList: theArr,
  1142. paginations: this.state.paginations
  1143. });
  1144. }.bind(this),
  1145. }).always(function() {
  1146. this.setState({
  1147. loading: false
  1148. });
  1149. }.bind(this));
  1150. },
  1151. //tab3拜访记录
  1152. loadBfVisit(pageNo, ids) {
  1153. this.setState({
  1154. loading: true
  1155. });
  1156. $.ajax({
  1157. method: "get",
  1158. dataType: "json",
  1159. crossDomain: false,
  1160. url: globalConfig.context + '/api/admin/customer/listFollowHistory',
  1161. data: {
  1162. pageNo: pageNo || 1,
  1163. pageSize: this.state.paginationsy.pageSize,
  1164. uid: ids ? ids : this.state.rowId, //名称1
  1165. },
  1166. success: function(data) {
  1167. let theArr = [];
  1168. if(data.error.length || data.data.list == "") {
  1169. if(data.error && data.error.length) {
  1170. message.warning(data.error[0].message);
  1171. };
  1172. } else {
  1173. for(let i = 0; i < data.data.list.length; i++) {
  1174. let thisdata = data.data.list[i];
  1175. theArr.push({
  1176. followId: thisdata.followId,
  1177. followTime: thisdata.followTime,
  1178. identifyName: thisdata.identifyName,
  1179. contacts: thisdata.contacts,
  1180. contactMobile: thisdata.contactMobile,
  1181. result: thisdata.result,
  1182. ufbId: thisdata.ufbId,
  1183. adminName: thisdata.adminName,
  1184. followSituation: thisdata.followSituation,
  1185. customerStatus: thisdata.customerStatus,
  1186. contactType: thisdata.contactType
  1187. });
  1188. };
  1189. this.state.paginationsy.current = data.data.pageNo;
  1190. this.state.paginationsy.total = data.data.totalCount;
  1191. };
  1192. this.setState({
  1193. visitArrList: theArr,
  1194. paginationsy: this.state.paginationsy
  1195. });
  1196. }.bind(this),
  1197. }).always(function() {
  1198. this.setState({
  1199. loading: false
  1200. });
  1201. }.bind(this));
  1202. },
  1203. businessIntentionOk() {
  1204. this.setState({
  1205. businessGlossoryId: '',
  1206. businessModul: false
  1207. })
  1208. },
  1209. businessIntentionCancel() {
  1210. this.setState({
  1211. businessGlossoryId: '',
  1212. businessModul: false
  1213. })
  1214. },
  1215. //业务跟进查看跟多
  1216. businessFollowDetails(e) {
  1217. this.listFollowUp(e.ufbId)
  1218. this.setState({
  1219. businessFollowModul: true
  1220. })
  1221. },
  1222. businessFollowOk(e) {
  1223. this.setState({
  1224. businessFollowModul: false
  1225. })
  1226. },
  1227. businessFollowCancel(e) {
  1228. this.setState({
  1229. businessFollowModul: false
  1230. })
  1231. },
  1232. //详情tab切换数据处理
  1233. callback(e) {
  1234. this.setState({
  1235. callnub: e,
  1236. })
  1237. if(e == '1') {
  1238. this.loadInformation(this.state.rowId)
  1239. }
  1240. if(e == '2') {
  1241. this.contactLists(this.state.rowId)
  1242. }
  1243. if(e == '3') {
  1244. this.httpAccount(this.state.rowId)
  1245. }
  1246. if(e == '4') {
  1247. this.loadBfVisit(1, this.state.rowId);
  1248. }
  1249. if(e == '5') {
  1250. this.BusinessList(1, this.state.rowId);
  1251. }
  1252. if(e == '6') {
  1253. }
  1254. if(e == '7') {
  1255. }
  1256. if(e == '8') {
  1257. }
  1258. if(e == '9') {
  1259. }
  1260. },
  1261. //详情tab切换数据处理
  1262. callbacks(e) {
  1263. this.setState({
  1264. callnubs: e,
  1265. })
  1266. if(e == '1') {
  1267. console.log(this.state.callnubs);
  1268. }
  1269. if(e == '2') {
  1270. console.log(this.state.callnubs);
  1271. }
  1272. },
  1273. //tab5业务意向
  1274. BusinessList(pageNo, uids) {
  1275. this.setState({
  1276. loading: true
  1277. });
  1278. $.ajax({
  1279. method: "post",
  1280. dataType: "json",
  1281. crossDomain: false,
  1282. url: globalConfig.context + '/api/admin/customer/listBusiness',
  1283. data: {
  1284. pageNo: pageNo || 1,
  1285. pageSize: this.state.paginationt.pageSize,
  1286. uid: uids ? uids : this.state.rowId
  1287. },
  1288. success: function(data) {
  1289. let theArr = [];
  1290. if(data.error.length || data.data.list == "") {
  1291. if(data.error && data.error.length) {
  1292. message.warning(data.error[0].message);
  1293. };
  1294. } else {
  1295. for(let i = 0; i < data.data.list.length; i++) {
  1296. let thisdata = data.data.list[i];
  1297. theArr.push({
  1298. key: i,
  1299. businessId: thisdata.businessId,
  1300. businessName: thisdata.businessName,
  1301. identifyName: thisdata.identifyName,
  1302. followSituation: thisdata.followSituation,
  1303. customerStatus: thisdata.customerStatus,
  1304. adminName: thisdata.adminName,
  1305. createTime: thisdata.createTime
  1306. });
  1307. };
  1308. this.state.paginationt.current = data.data.pageNo;
  1309. this.state.paginationt.total = data.data.totalCount;
  1310. };
  1311. this.setState({
  1312. dataBusiness: theArr,
  1313. paginationt: this.state.paginationt
  1314. });
  1315. }.bind(this),
  1316. }).always(function() {
  1317. this.setState({
  1318. loading: false
  1319. });
  1320. }.bind(this));
  1321. },
  1322. componentWillReceiveProps(nextProps) {
  1323. if(!this.props.visible && nextProps.visible) {
  1324. if(nextProps.data && nextProps.data.id) {
  1325. this.loadData(nextProps.data.id, nextProps.detailApiUrl);
  1326. };
  1327. this.state.data = {};
  1328. this.state.companyLogoUrl = [];
  1329. this.state.orgCodeUrl = [];
  1330. };
  1331. },
  1332. render() {
  1333. const FormItem = Form.Item
  1334. const rowSelection = {
  1335. selectedRowKeys: this.state.selectedRowKeys,
  1336. onChange: (selectedRowKeys, selectedRows) => {
  1337. this.setState({
  1338. selectedRows: selectedRows.slice(-1),
  1339. selectedRowKeys: selectedRowKeys.slice(-1)
  1340. });
  1341. },
  1342. onSelect: (recordt, selected, selectedRows) => {
  1343. this.setState({
  1344. recordt: recordt.id
  1345. })
  1346. },
  1347. };
  1348. const rowSelections = {
  1349. selectedRowKeys: this.state.selectedRowKey,
  1350. onChange: (selectedRowKey, selectedRow) => {
  1351. this.setState({
  1352. selectedRow: selectedRow.slice(-1),
  1353. selectedRowKey: selectedRowKey.slice(-1)
  1354. });
  1355. },
  1356. onSelect: (records, selected, selectedRow) => {
  1357. this.setState({
  1358. selectedRow: selectedRow.slice(-1),
  1359. records: records.id,
  1360. })
  1361. },
  1362. };
  1363. const hasSelected = this.state.selectedRowKeys.length > 0;
  1364. const { RangePicker, MonthPicker } = DatePicker;
  1365. const { getFieldDecorator } = this.props.form;
  1366. const formItemLayout = {
  1367. labelCol: { span: 8 },
  1368. wrapperCol: { span: 14 },
  1369. };
  1370. const theInformation = this.state.dataInformation || {}
  1371. const contactsOption = "";
  1372. const formItemLayput = {
  1373. labelCol: { span: 10 },
  1374. wrapperCol: { span: 14 },
  1375. };
  1376. const contacts = this.state.contacts || '';
  1377. return(
  1378. <div className="user-content" >
  1379. <div className="content-title" style={this.state.callnubs=="2"?{"display":"none"}:{}}>
  1380. <span>个人客户实名认证</span>
  1381. </div>
  1382. <div className="user-search" style={this.state.callnubs=="2"?{"display":"none"}:{}}>
  1383. <Input placeholder="客户姓名"
  1384. value={this.state.nameSearch}
  1385. onChange={(e) => { this.setState({ nameSearch: e.target.value }); }} />
  1386. <Select placeholder="省"
  1387. style={{ width: 80 }}
  1388. value={this.state.provinceSearch}
  1389. onChange={(e) => {this.setState({ provinceSearch: e});}}>
  1390. {this.state.Provinces}
  1391. </Select>
  1392. <span style={{marginRight:'10px'}}>
  1393. <Cascader options={this.state.City} value={this.state.addressSearch} placeholder="选择城市"
  1394. onChange={(e,pre) => { this.setState({ addressSearch: e }) }} />
  1395. </span>
  1396. <span style={{marginRight:'10px'}}>客户类型:</span>
  1397. <Select placeholder="选择客户类型"
  1398. style={{ width: 100 }}
  1399. value={this.state.shareTypeSearch}
  1400. onChange={(e) => { this.setState({ shareTypeSearch: e }) }}>
  1401. <Select.Option value="" >所有客户</Select.Option>
  1402. <Select.Option value="1" >公共客户</Select.Option>
  1403. </Select>
  1404. <Button type="primary" onClick={this.search}>搜索</Button>
  1405. <Button onClick={this.reset}>重置</Button>
  1406. {adminData.isSuperAdmin?<Button type='primary' style={{marginRight:'10px' ,marginLeft:'10px',display:adminData.isSuperAdmin?'inline-block':'none'}}
  1407. disabled={!hasSelected}
  1408. onClick={this.delectRow}>审核通过</Button>:''}
  1409. {adminData.isSuperAdmin?<Button type='primary' style={{marginRight:'10px' ,marginLeft:'10px',display:adminData.isSuperAdmin?'inline-block':'none'}}
  1410. disabled={!hasSelected}
  1411. onClick={this.delectRows}>审核不通过</Button>:''}
  1412. <span style={{marginLeft:'10px',marginRight:'20px'}}>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
  1413. <div className='clearfix' style={{marginTop:'5px'}}>
  1414. <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>
  1415. <RangePicker
  1416. value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,
  1417. this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}
  1418. onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} />
  1419. <Select placeholder="客户状态"
  1420. style={{ width: 100 }}
  1421. value={this.state.statusSearch}
  1422. onChange={(e) => { this.setState({ statusSearch: e }) }}>
  1423. <Select.Option value="0" >正常</Select.Option>
  1424. <Select.Option value="2" >锁定</Select.Option>
  1425. </Select>
  1426. <Select placeholder="行业"
  1427. style={{ width: 100 }}
  1428. value={this.state.industrySearch}
  1429. onChange={(e) => { this.setState({ industrySearch: e }) }}>
  1430. {this.state.intentionalOption}
  1431. </Select>
  1432. <span>认证:</span>
  1433. <Select placeholder="业务认证"
  1434. style={{ width: 100 }}
  1435. value={this.state.serviceCertificationSearch}
  1436. onChange={(e) => { this.setState({ serviceCertificationSearch: e }) }}>
  1437. <Select.Option value="0" >未认证</Select.Option>
  1438. <Select.Option value="1" >已认证</Select.Option>
  1439. </Select>
  1440. <span>专家:</span>
  1441. <Select placeholder="专家"
  1442. style={{ width: 60 }}
  1443. value={this.state.expertSearch}
  1444. onChange={(e) => { this.setState({ expertSearch: e }) }}>
  1445. <Select.Option value="0" >否</Select.Option>
  1446. <Select.Option value="1" >是</Select.Option>
  1447. </Select>
  1448. <span>明星:</span>
  1449. <Select placeholder="明星"
  1450. style={{ width: 60 }}
  1451. value={this.state.celebritySearch}
  1452. onChange={(e) => { this.setState({ celebritySearch: e }) }}>
  1453. <Select.Option value="0" >否</Select.Option>
  1454. <Select.Option value="1" >是</Select.Option>
  1455. </Select>
  1456. <span>国际:</span>
  1457. <Select placeholder="国际"
  1458. style={{ width: 60 }}
  1459. value={this.state.internationalSearch}
  1460. onChange={(e) => { this.setState({ internationalSearch: e }) }}>
  1461. <Select.Option value="0" >否</Select.Option>
  1462. <Select.Option value="1" >是</Select.Option>
  1463. </Select>
  1464. <span>会员:</span>
  1465. <Select placeholder="会员等级"
  1466. style={{ width: 100 }}
  1467. value={this.state.lvlSearch}
  1468. onChange={(e) => { this.setState({ lvlSearch: e }) }}>
  1469. {this.state.lvlArrOption}
  1470. </Select>
  1471. <Select placeholder="会员状态"
  1472. style={{ width: 100 }}
  1473. value={this.state.currentMemberStatusSearch}
  1474. onChange={(e) => { this.setState({ currentMemberStatusSearch: e }) }}>
  1475. {this.state.currentMemberArrOption}
  1476. </Select>
  1477. </div>
  1478. </div>
  1479. </div>
  1480. <div className="patent-table" style={this.state.callnubs=="2"?{"display":"none"}:{}}>
  1481. <Spin spinning={this.state.loading}>
  1482. <Table columns={this.state.columns}
  1483. dataSource={this.state.dataSource}
  1484. rowSelection={rowSelection}
  1485. pagination={this.state.pagination}
  1486. onRowClick={this.tableRowClick}
  1487. />
  1488. </Spin>
  1489. </div>
  1490. <Modal
  1491. className="customeDetails"
  1492. title="个人客户详情"
  1493. width='1200px'
  1494. visible={this.state.modal5Visible}
  1495. onOk={this.detailsModal}
  1496. onCancel={this.detailsModal}
  1497. footer=''
  1498. >
  1499. <Tabs onChange={this.callback} activeKey={this.state.callnub}>
  1500. <TabPane tab="基本信息" key="1">
  1501. {adminData.isSuperAdmin?<Form horizontal id="demand-form">
  1502. <Spin spinning={this.state.loading}>
  1503. <div className="clearfix" >
  1504. <FormItem className="half-item"
  1505. {...formItemLayout}
  1506. label="客户姓名"
  1507. >
  1508. <span>{theInformation.identifyName}</span>
  1509. </FormItem>
  1510. </div>
  1511. <div className="clearfix" >
  1512. <FormItem className="half-item"
  1513. {...formItemLayout}
  1514. label="行业">
  1515. <Select placeholder="选择行业" value={this.state.industry} style={{width:'300px'}}
  1516. onChange={(e)=>{this.setState({industry:e})}}>
  1517. {
  1518. industry.map(function (item) {
  1519. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1520. })
  1521. }
  1522. </Select>
  1523. <span style={{color:'red',marginLeft:'15px'}}>*</span>
  1524. </FormItem>
  1525. <FormItem className="half-item"
  1526. {...formItemLayout}
  1527. label="社会属性"
  1528. >
  1529. <Select placeholder="客户社会属性" value={this.state.societyTag} style={{width:'300px'}}
  1530. onChange={(e)=>{this.setState({societyTag:e})}}>
  1531. {
  1532. socialAttribute.map(function (item) {
  1533. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1534. })
  1535. }
  1536. </Select>
  1537. <span style={{color:'red',marginLeft:'15px'}}>*</span>
  1538. </FormItem>
  1539. <FormItem className="half-item"
  1540. {...formItemLayout}
  1541. label="省-市-区"
  1542. >
  1543. <Cascader options={this.state.Area} value={this.state.ProvinceCity} placeholder="选择城市" style={{width:'300px'}}
  1544. onChange={(e,pre) => { this.setState({ ProvinceCity: e }) }} />
  1545. <span style={{color:'red',marginLeft:'15px'}}>*</span>
  1546. </FormItem>
  1547. <FormItem className="half-item"
  1548. {...formItemLayout}
  1549. label="出生日期"
  1550. >
  1551. {!this.state.yearMonth?<MonthPicker placeholder="选择出生年月" value={this.state.yearMonth||null} onChange={(time) => {this.setState({yearMonth: time});}}/>
  1552. :<MonthPicker value={moment(this.state.yearMonth, monthFormat)} format={monthFormat} onChange={(time) => {this.setState({yearMonth: time});}}/>
  1553. }
  1554. </FormItem>
  1555. <FormItem className="half-item"
  1556. {...formItemLayout}
  1557. label="身份证号码"
  1558. >
  1559. <Input placeholder="身份证号码" value={this.state.idNumber} onChange={(e) => {
  1560. this.setState({ idNumber: e.target.value })}}/>
  1561. </FormItem>
  1562. <FormItem className="half-item"
  1563. {...formItemLayout}
  1564. label="主要联系人"
  1565. >
  1566. <Input placeholder="主要联系人" value={this.state.contacts} onChange={(e) => {
  1567. this.setState({ contacts: e.target.value })}}/>
  1568. </FormItem>
  1569. <FormItem className="half-item"
  1570. {...formItemLayout}
  1571. label="主要联系人号码"
  1572. >
  1573. <Input placeholder="主要联系人号码" value={this.state.contactMobile} onChange={(e) => {
  1574. this.setState({ contactMobile: e.target.value })}}/>
  1575. </FormItem>
  1576. <FormItem className="half-item"
  1577. {...formItemLayout}
  1578. label="职称名字"
  1579. >
  1580. <Input placeholder="职称名字" value={this.state.professionalTitle} onChange={(e) => {
  1581. this.setState({ professionalTitle: e.target.value })}}/>
  1582. </FormItem>
  1583. <FormItem className="half-item"
  1584. {...formItemLayout}
  1585. label="就业单位"
  1586. >
  1587. <Input placeholder="就业单位" value={this.state.workUnit} onChange={(e) => {
  1588. this.setState({ workUnit: e.target.value })}}/>
  1589. </FormItem>
  1590. <FormItem className="half-item"
  1591. {...formItemLayout}
  1592. label="学历"
  1593. >
  1594. <Input placeholder="学历" value={this.state.education} onChange={(e) => {
  1595. this.setState({ education: e.target.value })}}/>
  1596. </FormItem>
  1597. <FormItem className="half-item"
  1598. {...formItemLayout}
  1599. label="毕业院校"
  1600. >
  1601. <Input placeholder="学历" value={this.state.graduateSchool} onChange={(e) => {
  1602. this.setState({ graduateSchool: e.target.value })}}/>
  1603. </FormItem>
  1604. <FormItem className="half-item"
  1605. {...formItemLayout}
  1606. label="专业类别"
  1607. >
  1608. <Input placeholder="专业类别" value={this.state.majorCategory} onChange={(e) => {
  1609. this.setState({ majorCategory: e.target.value })}}/>
  1610. </FormItem>
  1611. <FormItem className="half-item"
  1612. {...formItemLayout}
  1613. label="职业资格"
  1614. >
  1615. <Input placeholder="职业资格" value={this.state.qualification} onChange={(e) => {
  1616. this.setState({ qualification: e.target.value })}}/>
  1617. </FormItem>
  1618. <FormItem className="half-item"
  1619. {...formItemLayout}
  1620. label="通信地址"
  1621. >
  1622. <Input placeholder="客户通信地址" value={this.state.postalAddress}
  1623. onChange={(e,pre) => { this.setState({ postalAddress: e.target.value }) }}/>
  1624. </FormItem>
  1625. <FormItem className="half-item"
  1626. {...formItemLayout}
  1627. label="固定电话"
  1628. >
  1629. <Input placeholder="客户固定电话" value={this.state.fixedTel}
  1630. onChange={(e) => { this.setState({ fixedTel: e.target.value }) }}/>
  1631. </FormItem>
  1632. <FormItem className="half-item"
  1633. {...formItemLayout}
  1634. label="客户QQ"
  1635. >
  1636. <Input placeholder="客户QQ" value={this.state.qq}
  1637. onChange={(e) => { this.setState({ qq: e.target.value })}}/>
  1638. </FormItem>
  1639. <FormItem className="half-item"
  1640. {...formItemLayout}
  1641. label="电子邮箱"
  1642. >
  1643. <Input placeholder="客户电子邮箱" value={this.state.email}
  1644. onChange={(e) => {this.setState({email: e.target.value })}}/>
  1645. </FormItem>
  1646. <FormItem className="half-item"
  1647. {...formItemLayout}
  1648. label="咨询费用"
  1649. >
  1650. <Input ref='consul' placeholder="输入数字且不超过6位" value={this.state.consultationPrice}
  1651. onChange={(e) => {this.setState({consultationPrice: e.target.value })}}/>
  1652. </FormItem>
  1653. <FormItem className="half-item"
  1654. {...formItemLayout}
  1655. label="实名认证"
  1656. >
  1657. <Select placeholder="实名认证"
  1658. value={this.state.auditStatus}
  1659. onChange={(e) => { this.setState({ auditStatus: e }) }}>
  1660. {
  1661. auditStatusL.map(function (item) {
  1662. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1663. })
  1664. }
  1665. </Select>
  1666. </FormItem>
  1667. <div className='clearfix'>
  1668. <FormItem
  1669. labelCol={{ span: 4 }}
  1670. wrapperCol={{ span: 18 }}
  1671. label="客户简介" >
  1672. <Input type="textarea" rows={4} value={this.state.introduction}
  1673. onChange={(e,pre) => { this.setState({ introduction: e.target.value })}}/>
  1674. </FormItem>
  1675. </div>
  1676. <div className="clearfix">
  1677. <FormItem className="half-item"
  1678. {...formItemLayout}
  1679. label="业务认证"
  1680. >
  1681. <Radio.Group value={this.state.businessAudit} onChange={(e) => {
  1682. this.setState({ businessAudit: e.target.value })
  1683. }}>
  1684. <Radio value={0}>未认证</Radio>
  1685. <Radio value={1}>已认证</Radio>
  1686. </Radio.Group>
  1687. </FormItem>
  1688. <FormItem className="half-item"
  1689. {...formItemLayout}
  1690. label="专家"
  1691. >
  1692. <Radio.Group value={this.state.expert} onChange={(e) => {
  1693. this.setState({ expert: e.target.value })
  1694. }}>
  1695. <Radio value={0}>否</Radio>
  1696. <Radio value={1}>是</Radio>
  1697. </Radio.Group>
  1698. </FormItem>
  1699. <FormItem className="half-item"
  1700. {...formItemLayout}
  1701. label="明星"
  1702. >
  1703. <Radio.Group value={this.state.expert} onChange={(e) => {
  1704. this.setState({ expert: e.target.value })
  1705. }}>
  1706. <Radio value={2}>是</Radio>
  1707. </Radio.Group>
  1708. </FormItem>
  1709. <FormItem className="half-item"
  1710. {...formItemLayout}
  1711. label="国际化"
  1712. >
  1713. <Radio.Group value={this.state.international} onChange={(e) => {
  1714. this.setState({ international: e.target.value })
  1715. }}>
  1716. <Radio value={0}>否</Radio>
  1717. <Radio value={1}>是</Radio>
  1718. </Radio.Group>
  1719. </FormItem>
  1720. <FormItem className="half-item"
  1721. {...formItemLayout}
  1722. label="性别"
  1723. >
  1724. <Radio.Group value={this.state.sex} onChange={(e) => {
  1725. this.setState({sex:e.target.value})
  1726. }}>
  1727. <Radio value={'男'}>男</Radio>
  1728. <Radio value={'女'}>女</Radio>
  1729. </Radio.Group>
  1730. </FormItem>
  1731. </div>
  1732. <div className="clearfix pictures">
  1733. <FormItem style={{display:'inline-block',width:'350px',marginTop:'20px',marginLeft:'60px'}}
  1734. labelCol={{ span: 8 }}
  1735. wrapperCol={{ span: 10 }}
  1736. label="身份证正面" >
  1737. <PicturesWall
  1738. pictureSign="ID"
  1739. fileList={this.getPositiveIdUrl}
  1740. pictureUrl={this.state.positiveIdUrl} />
  1741. <p>建议:图片要清晰。</p>
  1742. </FormItem>
  1743. <FormItem style={{display:'inline-block',width:'350px',marginTop:'20px'}}
  1744. labelCol={{ span: 8 }}
  1745. wrapperCol={{ span: 10 }}
  1746. label="身份证反面" >
  1747. <PicturesWall
  1748. pictureSign="ID"
  1749. fileList={this.getOppositeIdUrl}
  1750. pictureUrl={this.state.oppositeIdUrl} />
  1751. <p>建议:图片要清晰。</p>
  1752. </FormItem>
  1753. <FormItem style={{display:'inline-block' ,width:'350px',marginTop:'20px'}}
  1754. labelCol={{ span: 8 }}
  1755. wrapperCol={{ span: 10 }}
  1756. label="客户照片" >
  1757. <PicturesWall
  1758. pictureSign="portrait"
  1759. fileList={this.getHeadPortraitUrl}
  1760. pictureUrl={this.state.headPortraitUrl} />
  1761. <p>建议:图片要清晰。</p>
  1762. </FormItem>
  1763. </div>
  1764. </div>
  1765. </Spin>
  1766. </Form>:
  1767. <Form horizontal id="demand-form">
  1768. <Spin spinning={this.state.loading}>
  1769. <div className="clearfix" >
  1770. <FormItem className="half-item"
  1771. {...formItemLayout}
  1772. label="客户姓名"
  1773. >
  1774. <span>{theInformation.identifyName}</span>
  1775. </FormItem>
  1776. </div>
  1777. <div className="clearfix" >
  1778. <FormItem className="half-item"
  1779. {...formItemLayout}
  1780. label="行业"
  1781. >
  1782. <span>{getIndustryType(this.state.industry)}</span>
  1783. </FormItem>
  1784. <FormItem className="half-item"
  1785. {...formItemLayout}
  1786. label="社会属性"
  1787. >
  1788. <span>{getSocialAttribute(theInformation.societyTag)}</span>
  1789. </FormItem>
  1790. <FormItem className="half-item"
  1791. {...formItemLayout}
  1792. label="业务认证"
  1793. >
  1794. <span>{parseInt(this.state.businessAudit)?'已认证':'未认证'}</span>
  1795. </FormItem>
  1796. <FormItem className="half-item"
  1797. {...formItemLayout}
  1798. label="实名认证"
  1799. >
  1800. <span>{getAuditStatus(this.state.auditStatus)}</span>
  1801. </FormItem>
  1802. <FormItem className="half-item"
  1803. {...formItemLayout}
  1804. label="专家"
  1805. >
  1806. <span>{parseInt(this.state.expert)?'是':'否'}</span>
  1807. </FormItem>
  1808. <FormItem className="half-item"
  1809. {...formItemLayout}
  1810. label="明星"
  1811. >
  1812. <span>{parseInt(this.state.celebrity)?'是':'否'}</span>
  1813. </FormItem>
  1814. <FormItem className="half-item"
  1815. {...formItemLayout}
  1816. label="会员"
  1817. >
  1818. <span>{parseInt(this.state.isMember)?'是':'否'}</span>
  1819. </FormItem>
  1820. <FormItem className="half-item"
  1821. {...formItemLayout}
  1822. label="咨询师"
  1823. >
  1824. <span>{parseInt(this.state.consultant)?'是':'否'}</span>
  1825. </FormItem>
  1826. <FormItem className="half-item"
  1827. {...formItemLayout}
  1828. label="国际化"
  1829. >
  1830. <span>{parseInt(this.state.international)?'是':'否'}</span>
  1831. </FormItem>
  1832. <FormItem className="half-item"
  1833. {...formItemLayout}
  1834. label="性别"
  1835. >
  1836. <span>{this.state.sex}</span>
  1837. </FormItem>
  1838. <FormItem className="half-item"
  1839. {...formItemLayout}
  1840. label="出生日期"
  1841. >
  1842. <span>{this.state.yearMonth}</span>
  1843. </FormItem>
  1844. <FormItem className="half-item"
  1845. {...formItemLayout}
  1846. label="身份证号码"
  1847. >
  1848. <span>{theInformation.legalPersonIdCard}</span>
  1849. </FormItem>
  1850. <FormItem className="half-item"
  1851. {...formItemLayout}
  1852. label="主要联系人"
  1853. >
  1854. <span>{theInformation.contacts}</span>
  1855. </FormItem>
  1856. <FormItem className="half-item"
  1857. {...formItemLayout}
  1858. label="主要联系人号码"
  1859. >
  1860. <span>{theInformation.contactMobile}</span>
  1861. </FormItem>
  1862. <FormItem className="half-item"
  1863. {...formItemLayout}
  1864. label="省-市-区"
  1865. >
  1866. <span>{this.state.proviceCityArea}</span>
  1867. </FormItem>
  1868. <FormItem className="half-item"
  1869. {...formItemLayout}
  1870. label="投资机构"
  1871. >
  1872. <span>{this.state.investment?'是':'否'}</span>
  1873. </FormItem>
  1874. <FormItem className="half-item"
  1875. {...formItemLayout}
  1876. label="职称名字"
  1877. >
  1878. <span>{this.state.professionalTitle}</span>
  1879. </FormItem>
  1880. <FormItem className="half-item"
  1881. {...formItemLayout}
  1882. label="就业单位"
  1883. >
  1884. <span>{this.state.workUnit}</span>
  1885. </FormItem>
  1886. <FormItem className="half-item"
  1887. {...formItemLayout}
  1888. label="学历"
  1889. >
  1890. <span>{this.state.education}</span>
  1891. </FormItem>
  1892. <FormItem className="half-item"
  1893. {...formItemLayout}
  1894. label="毕业院校"
  1895. >
  1896. <span>{this.state.graduateSchool}</span>
  1897. </FormItem>
  1898. <FormItem className="half-item"
  1899. {...formItemLayout}
  1900. label="专业类别"
  1901. >
  1902. <span>{this.state.majorCategory}</span>
  1903. </FormItem>
  1904. <FormItem className="half-item"
  1905. {...formItemLayout}
  1906. label="职业资格"
  1907. >
  1908. <span>{this.state.qualification}</span>
  1909. </FormItem>
  1910. <FormItem className="half-item"
  1911. {...formItemLayout}
  1912. label="通信地址"
  1913. >
  1914. <span>{theInformation.postalAddress}</span>
  1915. </FormItem>
  1916. <FormItem className="half-item"
  1917. {...formItemLayout}
  1918. label="手机号码"
  1919. >
  1920. <span>{theInformation.modile}</span>
  1921. </FormItem>
  1922. <FormItem className="half-item"
  1923. {...formItemLayout}
  1924. label="客户传真"
  1925. >
  1926. <span>{theInformation.contactsFax}</span>
  1927. </FormItem>
  1928. <FormItem className="half-item"
  1929. {...formItemLayout}
  1930. label="固定电话"
  1931. >
  1932. <span>{theInformation.contactsFixedTel}</span>
  1933. </FormItem>
  1934. <FormItem className="half-item"
  1935. {...formItemLayout}
  1936. label="客户QQ"
  1937. >
  1938. <span>{theInformation.qq}</span>
  1939. </FormItem>
  1940. <FormItem className="half-item"
  1941. {...formItemLayout}
  1942. label="电子邮箱"
  1943. >
  1944. <span>{theInformation.email}</span>
  1945. </FormItem>
  1946. <FormItem className="half-item"
  1947. {...formItemLayout}
  1948. label="咨询费用"
  1949. >
  1950. <span>{theInformation.consultationPrice}</span>
  1951. </FormItem>
  1952. <div className='clearfix'>
  1953. <FormItem
  1954. labelCol={{ span: 4 }}
  1955. wrapperCol={{ span: 18 }}
  1956. label="客户简介" >
  1957. <span>{theInformation.introduction}</span>
  1958. </FormItem>
  1959. </div>
  1960. <div className="clearfix pictures">
  1961. <FormItem style={{display:'inline-block',width:'350px',marginTop:'20px',marginLeft:'60px'}}
  1962. labelCol={{ span: 8 }}
  1963. wrapperCol={{ span: 10 }}
  1964. label="身份证正面" >
  1965. <div className="clearfix">
  1966. <Upload className="demandDetailShow-upload"
  1967. listType="picture-card"
  1968. fileList={this.state.orgCodeUrl}
  1969. onPreview={(file) => {
  1970. this.setState({
  1971. previewImage: file.url || file.thumbUrl,
  1972. previewVisible: true,
  1973. });
  1974. }} >
  1975. </Upload>
  1976. <Modal maskClosable={false} footer={null}
  1977. visible={this.state.previewVisible}
  1978. onCancel={() => { this.setState({ previewVisible: false }) }}>
  1979. <img alt="" style={{ width: '100%' }} src={this.state.orgCodeUrl || ''} />
  1980. </Modal>
  1981. </div>
  1982. </FormItem>
  1983. <FormItem style={{display:'inline-block',width:'350px',marginTop:'20px'}}
  1984. labelCol={{ span: 8 }}
  1985. wrapperCol={{ span: 10 }}
  1986. label="身份证反面" >
  1987. <div className="clearfix">
  1988. <Upload className="demandDetailShow-upload"
  1989. listType="picture-card"
  1990. fileList={this.state.companyLogoUrl}
  1991. onPreview={(file) => {
  1992. this.setState({
  1993. previewImage: file.url || file.thumbUrl,
  1994. previewVisible: true,
  1995. });
  1996. }} >
  1997. </Upload>
  1998. <Modal maskClosable={false} footer={null}
  1999. visible={this.state.previewVisible}
  2000. onCancel={() => { this.setState({ previewVisible: false }) }}>
  2001. <img alt="" style={{ width: '100%' }} src={this.state.companyLogoUrl || ''} />
  2002. </Modal>
  2003. </div>
  2004. </FormItem>
  2005. <FormItem style={{display:'inline-block' ,width:'350px',marginTop:'20px'}}
  2006. labelCol={{ span: 8 }}
  2007. wrapperCol={{ span: 10 }}
  2008. label="客户照片" >
  2009. <div className="clearfix">
  2010. <Upload className="demandDetailShow-upload"
  2011. listType="picture-card"
  2012. fileList={this.state.companyLogoUrls}
  2013. onPreview={(file) => {
  2014. this.setState({
  2015. previewImage: file.url || file.thumbUrl,
  2016. previewVisible: true,
  2017. });
  2018. }} >
  2019. </Upload>
  2020. <Modal maskClosable={false} footer={null}
  2021. visible={this.state.previewVisible}
  2022. onCancel={() => { this.setState({ previewVisible: false }) }}>
  2023. <img alt="" style={{ width: '100%' }} src={this.state.companyLogoUrls || ''} />
  2024. </Modal>
  2025. </div>
  2026. </FormItem>
  2027. </div>
  2028. </div>
  2029. </Spin>
  2030. </Form>
  2031. }
  2032. </TabPane>
  2033. <TabPane tab="联系人信息" key="2">
  2034. <div className="clearfix">
  2035. <Spin spinning={this.state.loading}>
  2036. <Form horizontal id="demand-form" >
  2037. <Table
  2038. pagination={false}
  2039. columns={this.state.ContactsLists}
  2040. dataSource={this.state.contactList}
  2041. />
  2042. <div className="clearfix" style={{display:adminData.isSuperAdmin?'inline-block':'none'}}>
  2043. </div>
  2044. </Form>
  2045. </Spin>
  2046. </div>
  2047. </TabPane>
  2048. <TabPane tab="账户信息" key="3">
  2049. <div className="clearfix">
  2050. {adminData.isSuperAdmin?<Form horizontal id="demand-form" >
  2051. <Spin spinning={this.state.loading} >
  2052. <FormItem className="half-item"
  2053. {...formItemLayout}
  2054. label="注册手机号" >
  2055. <Input value={this.state.mobile} disabled
  2056. onChange={(e) => { this.setState({ mobile: e.target.value }); }} style={{width:'200px',marginRight:'50px'}}/>
  2057. </FormItem>
  2058. <FormItem className="half-item"
  2059. {...formItemLayout}
  2060. label="注册用户名" >
  2061. <Input value={this.state.nickname} onChange={(e) => { this.setState({ nickname: e.target.value }); }} />
  2062. </FormItem>
  2063. <FormItem className="half-item"
  2064. {...formItemLayout}
  2065. label="注册邮箱" >
  2066. <Input value={this.state.email} onChange={(e) => { this.setState({ email: e.target.value }); }} />
  2067. </FormItem>
  2068. <div className="clearfix">
  2069. <FormItem className="half-item"
  2070. {...formItemLayout}
  2071. label="客户来源" >
  2072. <span>{this.state.source}</span>
  2073. </FormItem>
  2074. <FormItem className="half-item"
  2075. {...formItemLayout}
  2076. label="客户类型" >
  2077. <span>{this.state.type}</span>
  2078. </FormItem>
  2079. <FormItem className="half-item"
  2080. {...formItemLayout}
  2081. label="创建时间" >
  2082. <span>{this.state.createTimes}</span>
  2083. </FormItem>
  2084. <FormItem className="half-item"
  2085. {...formItemLayout}
  2086. label="账户状态"
  2087. >
  2088. <Select placeholder="账户状态" value={this.state.status} onChange={(e) => { this.setState({ status: e }); }} >
  2089. {
  2090. statuslist.map(function (item) {
  2091. return <Select.Option key={item.value} >{item.key}</Select.Option>
  2092. })
  2093. }
  2094. </Select>
  2095. </FormItem>
  2096. </div>
  2097. <div className="clearfix">
  2098. <FormItem className="half-item"
  2099. {...formItemLayout}
  2100. label="会员"
  2101. >
  2102. <Radio.Group value={this.state.isMember} onChange={(e) => {
  2103. this.setState({ isMember: e.target.value })
  2104. }}>
  2105. <Radio value={0}>否</Radio>
  2106. <Radio value={1}>是</Radio>
  2107. </Radio.Group>
  2108. </FormItem>
  2109. <FormItem className="half-item"
  2110. {...formItemLayout}
  2111. label="会员等级"
  2112. >
  2113. <Select placeholder="客户状态" value={this.state.lvl} onChange={(e) => { this.setState({ lvl: e }); }} >
  2114. {
  2115. lvl.map(function (item) {
  2116. return <Select.Option key={item.value} >{item.key}</Select.Option>
  2117. })
  2118. }
  2119. </Select>
  2120. </FormItem>
  2121. <FormItem className="half-item"
  2122. {...formItemLayout}
  2123. label="会员状态"
  2124. >
  2125. <Select placeholder="会员状态" value={this.state.currentMemberStatus} onChange={(e) => { this.setState({ currentMemberStatus: e }); }} >
  2126. {
  2127. currentMember.map(function (item) {
  2128. return <Select.Option key={item.value} >{item.key}</Select.Option>
  2129. })
  2130. }
  2131. </Select>
  2132. </FormItem>
  2133. </div>
  2134. </Spin>
  2135. </Form> :
  2136. <Form horizontal id="demand-form" >
  2137. <Spin spinning={this.state.loading} >
  2138. <FormItem className="half-item"
  2139. {...formItemLayout}
  2140. label="注册手机号" >
  2141. <span>{this.state.mobile}</span>
  2142. </FormItem>
  2143. <FormItem className="half-item"
  2144. {...formItemLayout}
  2145. label="注册用户名" >
  2146. <span>{this.state.nickname}</span>
  2147. </FormItem>
  2148. <FormItem className="half-item"
  2149. {...formItemLayout}
  2150. label="注册邮箱" >
  2151. <span>{this.state.email}</span>
  2152. </FormItem>
  2153. <div className="clearfix">
  2154. <FormItem className="half-item"
  2155. {...formItemLayout}
  2156. label="客户来源" >
  2157. <span>{this.state.source}</span>
  2158. </FormItem>
  2159. <FormItem className="half-item"
  2160. {...formItemLayout}
  2161. label="客户类型" >
  2162. <span>{this.state.type}</span>
  2163. </FormItem>
  2164. <FormItem className="half-item"
  2165. {...formItemLayout}
  2166. label="创建时间" >
  2167. <span>{this.state.createTimes}</span>
  2168. </FormItem>
  2169. <FormItem className="half-item"
  2170. {...formItemLayout}
  2171. label="账户状态"
  2172. >
  2173. <span>{getStatuslist(this.state.status)}</span>
  2174. </FormItem>
  2175. </div>
  2176. <div className="clearfix">
  2177. <FormItem className="half-item"
  2178. {...formItemLayout}
  2179. label="专家"
  2180. >
  2181. <span>{this.state.isMembers?'是':'否'}</span>
  2182. </FormItem>
  2183. <FormItem className="half-item"
  2184. {...formItemLayout}
  2185. label="明星"
  2186. >
  2187. <span>{this.state.star?'是':'否'}</span>
  2188. </FormItem>
  2189. <FormItem className="half-item"
  2190. {...formItemLayout}
  2191. label="会员"
  2192. >
  2193. <span>{this.state.isMember?'是':'否'}</span>
  2194. </FormItem>
  2195. <FormItem className="half-item"
  2196. {...formItemLayout}
  2197. label="会员等级"
  2198. >
  2199. <span>{getLvl(this.state.lvl)}</span>
  2200. </FormItem>
  2201. <FormItem className="half-item"
  2202. {...formItemLayout}
  2203. label="会员状态"
  2204. >
  2205. <span>{getCurrentMember(this.state.currentMemberStatus)}</span>
  2206. </FormItem>
  2207. </div>
  2208. <FormItem className="half-item"
  2209. {...formItemLayout}
  2210. label="业务认证"
  2211. >
  2212. <span>{this.state.serviceCertification?'已认证':'未认证'}</span>
  2213. </FormItem>
  2214. <FormItem className="half-item"
  2215. {...formItemLayout}
  2216. label="实名认证"
  2217. >
  2218. <span>{getAuditStatus(this.state.userCertification)}</span>
  2219. </FormItem>
  2220. </Spin>
  2221. </Form>
  2222. }
  2223. </div>
  2224. </TabPane>
  2225. <TabPane tab="客户拜访" key="4">
  2226. <div className="clearfix">
  2227. <Spin spinning={this.state.loading}>
  2228. <Table
  2229. pagination={false}
  2230. columns={this.state.visitsList}
  2231. dataSource={this.state.visitArrList}
  2232. onRowClick={this.VisitRowClick}
  2233. />
  2234. </Spin>
  2235. </div>
  2236. </TabPane>
  2237. <TabPane tab="业务意向" key="5">
  2238. <div className="clearfix">
  2239. <Spin spinning={this.state.loading}>
  2240. <Table
  2241. pagination={this.state.paginationt}
  2242. columns={this.state.businessIntentionList}
  2243. dataSource={this.state.dataBusiness}
  2244. />
  2245. </Spin>
  2246. </div>
  2247. </TabPane>
  2248. <TabPane tab="业务订单" key="6">
  2249. </TabPane>
  2250. <TabPane tab="技术需求" key="7">
  2251. </TabPane>
  2252. <TabPane tab="技术成果" key="8">
  2253. </TabPane>
  2254. <TabPane tab="技术专家" key="9">
  2255. </TabPane>
  2256. </Tabs>
  2257. </Modal>
  2258. <Modal
  2259. className="customeDetails"
  2260. footer=''
  2261. title="拜访详情"
  2262. width='1000px'
  2263. visible={this.state.visitModul}
  2264. onOk={this.visitOk}
  2265. onCancel={this.visitCancel}
  2266. >
  2267. <Form horizontal id="demand-form" >
  2268. {adminData.isSuperAdmin?<Spin spinning={this.state.loading}>
  2269. <div className="clearfix">
  2270. <FormItem className="half-item"
  2271. {...formItemLayout}
  2272. label="拜访方式" >
  2273. <Radio.Group value={this.state.contactType} onChange={(e) => {
  2274. this.setState({ contactType: e.target.value })
  2275. }}>
  2276. <Radio value={0}>外出</Radio>
  2277. <Radio value={1}>电话</Radio>
  2278. <Radio value={2}>QQ</Radio>
  2279. <Radio value={3}>微信</Radio>
  2280. <Radio value={4}>邮箱</Radio>
  2281. </Radio.Group>
  2282. </FormItem>
  2283. <FormItem className="half-item"
  2284. {...formItemLayout}
  2285. >
  2286. <Button type="primary" onClick={this.newContacts} style={{marginLeft:'100px',display:this.state.keys?'inline-block':'none'}}>添加新联系人</Button>
  2287. </FormItem>
  2288. <div className="clearfix">
  2289. <FormItem className="half-item"
  2290. {...formItemLayout}
  2291. label="客户姓名"
  2292. >
  2293. <span>{this.state.identifyName}</span>
  2294. </FormItem>
  2295. <FormItem className="half-item"
  2296. {...formItemLayout}
  2297. label="拜访人"
  2298. >
  2299. <span>{this.state.adminName}</span>
  2300. </FormItem>
  2301. <FormItem className="half-item"
  2302. {...formItemLayout}
  2303. label="当前联系人"
  2304. >
  2305. <span>{this.state.contacts}</span>
  2306. </FormItem>
  2307. {this.state.contacts?<span></span>:
  2308. <FormItem className="half-item"
  2309. {...formItemLayout}
  2310. label="联系人"
  2311. >
  2312. <Select placeholder="选择联系人" style={{ width: 140 }}
  2313. value={this.state.lastName}
  2314. onChange={this.hundleName}>
  2315. {this.state.orderStatusOption}
  2316. </Select>
  2317. </FormItem>
  2318. }
  2319. <FormItem className="half-item"
  2320. {...formItemLayout}
  2321. label="拜访时间"
  2322. >
  2323. <span>{this.state.followTime}</span>
  2324. </FormItem>
  2325. <FormItem className="half-item"
  2326. {...formItemLayout}
  2327. label="联系电话"
  2328. >
  2329. <span>{this.state.nub}</span>
  2330. </FormItem>
  2331. </div>
  2332. <div className="clearfix">
  2333. <FormItem
  2334. labelCol={{ span: 4 }}
  2335. wrapperCol={{ span: 16 }}
  2336. label="拜访备注" >
  2337. <Input type="textarea" rows={4} value={this.state.result}
  2338. onChange={(e)=>{this.setState({result:e.target.value})}}/>
  2339. </FormItem>
  2340. </div>
  2341. <div className="clearfix">
  2342. <div style={{fontSize:'18px',marginLeft:'100px',marginTop:'15px',marginBottom:'10px'}}>业务意向<Button onClick={this.addNew} style={{marginLeft:'420px',background:'green',color:'#ffffff'}}>添加新业务</Button></div>
  2343. <div className="clearfix" style={{paddingLeft:'50px',paddingRight:'50px'}}>
  2344. <Spin spinning={this.state.loading}>
  2345. <Table
  2346. rowKey={record => record.id}
  2347. pagination={false}
  2348. columns={this.state.intentionList}
  2349. dataSource={this.state.data}
  2350. />
  2351. </Spin>
  2352. </div>
  2353. </div>
  2354. </div>
  2355. </Spin>:<Spin spinning={this.state.loading}>
  2356. <div className="clearfix">
  2357. <FormItem className="half-item"
  2358. {...formItemLayout}
  2359. label="拜访方式" >
  2360. <span>{getContactType(String(this.state.contactType))}</span>
  2361. </FormItem>
  2362. <div className="clearfix">
  2363. <FormItem className="half-item"
  2364. {...formItemLayout}
  2365. label="客户姓名"
  2366. >
  2367. <span>{this.state.identifyName}</span>
  2368. </FormItem>
  2369. <FormItem className="half-item"
  2370. {...formItemLayout}
  2371. label="拜访人"
  2372. >
  2373. <span>{this.state.adminName}</span>
  2374. </FormItem>
  2375. <FormItem className="half-item"
  2376. {...formItemLayout}
  2377. label="当前联系人"
  2378. >
  2379. <span>{this.state.contacts}</span>
  2380. </FormItem>
  2381. <FormItem className="half-item"
  2382. {...formItemLayout}
  2383. label="拜访时间"
  2384. >
  2385. <span>{this.state.followTime}</span>
  2386. </FormItem>
  2387. <FormItem className="half-item"
  2388. {...formItemLayout}
  2389. label="联系电话"
  2390. >
  2391. <span>{this.state.nub}</span>
  2392. </FormItem>
  2393. </div>
  2394. <div className="clearfix">
  2395. <FormItem
  2396. labelCol={{ span: 4 }}
  2397. wrapperCol={{ span: 16 }}
  2398. label="拜访备注" >
  2399. <span>{this.state.result}</span>
  2400. </FormItem>
  2401. </div>
  2402. <div className="clearfix">
  2403. <div className="clearfix" style={{paddingLeft:'50px',paddingRight:'50px'}}>
  2404. <Spin spinning={this.state.loading}>
  2405. <Table
  2406. rowKey={record => record.id}
  2407. pagination={false}
  2408. columns={this.state.intentionList}
  2409. dataSource={this.state.data}
  2410. />
  2411. </Spin>
  2412. </div>
  2413. </div>
  2414. </div>
  2415. </Spin>}
  2416. </Form>
  2417. </Modal>
  2418. <Modal
  2419. footer=''
  2420. title="业务意向详情"
  2421. width='1000px'
  2422. visible={this.state.businessModul}
  2423. onOk={this.businessIntentionOk}
  2424. onCancel={this.businessIntentionCancel}
  2425. >
  2426. <div className="clearfix">
  2427. <Form horizontal id="demand-form" onSubmit={this.passworldSubmit}>
  2428. <Spin spinning={this.state.loading}>
  2429. <div className="clearfix">
  2430. <FormItem className="half-item"
  2431. {...formItemLayout}
  2432. label="意向业务名称" >
  2433. <span>{getCompanyIntention(this.state.businessGlossoryId)}</span>
  2434. </FormItem>
  2435. <FormItem className="half-item"
  2436. {...formItemLayout}
  2437. label="意向时间" >
  2438. <span>{this.state.createTime}</span>
  2439. </FormItem>
  2440. <FormItem className="half-item"
  2441. {...formItemLayout}
  2442. label="客户姓名" >
  2443. <span>{this.state.identifyName}</span>
  2444. </FormItem>
  2445. <FormItem className="half-item"
  2446. {...formItemLayout}
  2447. label="营销员" >
  2448. <span>{this.state.adminName}</span>
  2449. </FormItem>
  2450. <FormItem className="half-item"
  2451. {...formItemLayout}
  2452. label="意向业务进度" >
  2453. <span>{getfllowSituation(this.state.followSituation)}</span>
  2454. </FormItem>
  2455. <FormItem className="half-item"
  2456. {...formItemLayout}
  2457. label="业务客户状态" >
  2458. <span>{getcustomerStatue(this.state.customerStatus)}</span>
  2459. </FormItem>
  2460. </div>
  2461. <div className="clearfix">
  2462. <FormItem className="half-item"
  2463. {...formItemLayout}
  2464. label="业务意向说明" >
  2465. <span>{this.state.remarks}</span>
  2466. </FormItem>
  2467. </div>
  2468. <div className="clearfix">
  2469. <div style={{fontSize:'18px',lineHeight:'24px',marginBottom:'10px'}}>业务跟进</div>
  2470. <div className="clearfix">
  2471. <Spin spinning={this.state.loading}>
  2472. <Table
  2473. pagination={this.state.paginations}
  2474. columns={this.state.businessFollowList}
  2475. dataSource={this.state.visitArrList}
  2476. />
  2477. </Spin>
  2478. </div>
  2479. </div>
  2480. </Spin>
  2481. </Form>
  2482. </div>
  2483. </Modal>
  2484. <Modal
  2485. footer=''
  2486. title="业务跟进详情"
  2487. width='600px'
  2488. visible={this.state.businessFollowModul}
  2489. onOk={this.businessFollowOk}
  2490. onCancel={this.businessFollowCancel}
  2491. >
  2492. <div className="clearfix">
  2493. <Form horizontal id="demand-form" onSubmit={this.passworldSubmit}>
  2494. <Spin spinning={this.state.loading}>
  2495. <div className="clearfix">
  2496. <FormItem className="half-item"
  2497. {...formItemLayout}
  2498. label="意向业务名称" >
  2499. <span>{getCompanyIntention(this.state.businessGlossoryIds)}</span>
  2500. </FormItem>
  2501. <FormItem className="half-item"
  2502. {...formItemLayout}
  2503. label="意向时间" >
  2504. <span>{this.state.createTimes}</span>
  2505. </FormItem>
  2506. <FormItem className="half-item"
  2507. {...formItemLayout}
  2508. label="客户姓名" >
  2509. <span>{this.state.identifyNames}</span>
  2510. </FormItem>
  2511. <FormItem className="half-item"
  2512. {...formItemLayout}
  2513. label="营销员" >
  2514. <span>{this.state.adminNames}</span>
  2515. </FormItem>
  2516. <FormItem className="half-item"
  2517. {...formItemLayout}
  2518. label="意向业务进度" >
  2519. <span>{getfllowSituation(this.state.followSituations)}</span>
  2520. </FormItem>
  2521. <FormItem className="half-item"
  2522. {...formItemLayout}
  2523. label="业务客户状态" >
  2524. <span>{getcustomerStatue(this.state.customerStatuss)}</span>
  2525. </FormItem>
  2526. </div>
  2527. <div className="clearfix">
  2528. <FormItem className="half-item"
  2529. {...formItemLayout}
  2530. label="业务意向说明" >
  2531. <span>{this.state.remarkss}</span>
  2532. </FormItem>
  2533. </div>
  2534. <div className="clearfix">
  2535. <div style={{fontSize:'18px',lineHeight:'30px'}}>拜访情况</div>
  2536. <FormItem className="half-item"
  2537. {...formItemLayout}
  2538. label="拜访方式" >
  2539. <span>{getContactType(this.state.contactTypes)}</span>
  2540. </FormItem>
  2541. <FormItem className="half-item"
  2542. {...formItemLayout}
  2543. label="联系人" >
  2544. <span>{this.state.contactss}</span>
  2545. </FormItem>
  2546. <FormItem className="half-item"
  2547. {...formItemLayout}
  2548. label="联系电话" >
  2549. <span>{this.state.contactMobiles}</span>
  2550. </FormItem>
  2551. <FormItem className="half-item"
  2552. {...formItemLayout}
  2553. label="拜访时间" >
  2554. <span>{this.state.followTimes}</span>
  2555. </FormItem>
  2556. <FormItem className="half-item"
  2557. {...formItemLayout}
  2558. label="拜访人" >
  2559. <span>{this.state.adminNames}</span>
  2560. </FormItem>
  2561. <div className="clearfix">
  2562. <FormItem className="half-item"
  2563. {...formItemLayout}
  2564. label="拜访备注" >
  2565. <span>{this.state.results}</span>
  2566. </FormItem>
  2567. </div>
  2568. </div>
  2569. </Spin>
  2570. </Form>
  2571. </div>
  2572. </Modal>
  2573. </div >
  2574. );
  2575. }
  2576. }));
  2577. export default QueryCustomer;