companyCustomer.jsx 89 KB

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