identityAudits.jsx 86 KB

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