myBusiness.jsx 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441
  1. import React from 'react';
  2. import { Radio,Icon, Popconfirm,Button, AutoComplete ,Cascader,Input, Tabs,Select,Spin,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. const Option = AutoComplete.Option;
  7. const OptGroup = AutoComplete.OptGroup;
  8. import './myClient.less';
  9. import { areaSelect} from '../../../NewDicProvinceList';
  10. const { Column, ColumnGroup } = Table;
  11. const TabPane = Tabs.TabPane;
  12. import {socialAttribute,newFollow,lvl, customerStatus,intentionalService} from '../../../dataDic.js';
  13. import {getcustomerStatue,getprovince,getCompanyIntention,getfllowSituation} from '../../../tools.js';
  14. const dataSource = [{
  15. name: 'AntDesign',
  16. id: '10000',
  17. }, {
  18. name: 'AntDesign UI',
  19. id: '10600',
  20. }, {
  21. name: 'AntDesign UI 有多好',
  22. id: '60100',
  23. }, {
  24. name: 'AntDesign 是啥',
  25. id: '30010',
  26. }, {
  27. name: 'AntDesign 是一个设计语言',
  28. id: '100000',
  29. }];
  30. const data = [{
  31. id: '1',
  32. name: '长沙科技1',
  33. contacts: '午安行',
  34. contactMobile: '321312311',
  35. expert:'0',
  36. serviceCertification:'0',
  37. userCertification:'0',
  38. locationProvince:'广州',
  39. }, {
  40. id: '2',
  41. name: '上海科技',
  42. contacts: '老王',
  43. contactMobile: '231321311',
  44. expert:'1',
  45. serviceCertification:'1',
  46. userCertification:'0',
  47. locationProvince:'湖南-湘潭',
  48. Province:'1',
  49. city:'38',
  50. eare:'500',
  51. }, {
  52. id: '3',
  53. name: '广州科技',
  54. contacts: '老李',
  55. contactMobile: '1123213123',
  56. expert:'1',
  57. serviceCertification:'0',
  58. userCertification:'1',
  59. locationProvince:'北京',
  60. Province:'6',
  61. city:'24',
  62. eare:'12',
  63. }
  64. ];
  65. //图片组件
  66. const PicturesWall = React.createClass({
  67. getInitialState() {
  68. return {
  69. previewVisible: false,
  70. previewImage: '',
  71. fileList: [],
  72. }
  73. },
  74. handleCancel() {
  75. this.setState({ previewVisible: false })
  76. },
  77. handlePreview(file) {
  78. this.setState({
  79. previewImage: file.url || file.thumbUrl,
  80. previewVisible: true,
  81. });
  82. },
  83. handleChange(info) {
  84. let fileList = info.fileList;
  85. this.setState({ fileList });
  86. this.props.fileList(fileList);
  87. },
  88. componentWillReceiveProps(nextProps) {
  89. this.state.fileList = nextProps.pictureUrl;
  90. },
  91. render() {
  92. const { previewVisible, previewImage, fileList } = this.state;
  93. const uploadButton = (
  94. <div>
  95. <Icon type="plus" />
  96. <div className="ant-upload-text">点击上传</div>
  97. </div>
  98. );
  99. return (
  100. <div style={{display:"inline-block"}}>
  101. <Upload
  102. action={globalConfig.context + "/api/admin/customer/attachmentUpload"}
  103. data={{ 'sign': this.props.pictureSign }}
  104. listType="picture-card"
  105. fileList={fileList}
  106. onPreview={this.handlePreview}
  107. onChange={this.handleChange} >
  108. {fileList.length >= 1 ? null : uploadButton}
  109. </Upload>
  110. <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>
  111. <img alt="example" style={{ width: '100%' }} src={previewImage} />
  112. </Modal>
  113. </div>
  114. );
  115. }
  116. });
  117. const MyBusiness = Form.create()(React.createClass({
  118. loadData(pageNo, apiUrl) {
  119. this.state.data = [];
  120. this.setState({
  121. loading: true
  122. });
  123. $.ajax({
  124. method: "post",
  125. dataType: "json",
  126. crossDomain: false,
  127. url:globalConfig.context + '/api/admin/customer/listBusiness',
  128. data: {
  129. pageNo: pageNo || 1,
  130. pageSize: this.state.pagination.pageSize,
  131. businessId: this.state.businessIdS, //业务意向
  132. identifyName:this.state.identifyNameS,
  133. followSituation:this.state.followSituationS,
  134. customerStatus:this.state.customerStatusS,
  135. adminName: this.state.adminNameS,
  136. startDate: this.state.releaseDate[0],
  137. endDate: this.state.releaseDate[1],
  138. },
  139. success: function (data) {
  140. let theArr = [];
  141. if (data.error.length || data.data.list=="") {
  142. if (data.error && data.error.length) {
  143. message.warning(data.error[0].message);
  144. };
  145. } else {
  146. for (let i = 0; i < data.data.list.length; i++) {
  147. let thisdata = data.data.list[i];
  148. theArr.push({
  149. key: i,
  150. id: thisdata.id,
  151. businessId:thisdata.businessId,
  152. businessName:thisdata.businessName,
  153. identifyName:thisdata.identifyName,
  154. followSituation:thisdata.followSituation,
  155. customerStatus:thisdata.customerStatus,
  156. adminName:thisdata.adminName,
  157. createTime:thisdata.createTime
  158. });
  159. };
  160. this.state.pagination.current = data.data.pageNo;
  161. this.state.pagination.total = data.data.totalCount;
  162. };
  163. this.setState({
  164. dataSource: theArr,
  165. pagination: this.state.pagination
  166. });
  167. }.bind(this),
  168. }).always(function () {
  169. this.setState({
  170. loading: false
  171. });
  172. }.bind(this));
  173. },
  174. //点击出现函数
  175. setModal2VisibleOk(e) {
  176. this.setState({
  177. modal2Visible:true
  178. });
  179. },
  180. //点击消失函数
  181. setModal2Visiblecancel(e) {
  182. this.setState({
  183. modal2Visible:false
  184. });
  185. },
  186. getPictureUrl(e) {
  187. this.setState({pictureUrl: e });
  188. },
  189. handleOk(e){
  190. this.setState({
  191. visible: false,
  192. });
  193. },
  194. handleCancel(e){
  195. this.setState({
  196. visible: false,
  197. });
  198. },
  199. getInitialState() {
  200. return {
  201. dataSources:[],
  202. customerName:[],
  203. orgCodeUrl:[],
  204. companyLogoUrl:[],
  205. visible: false ,
  206. searchMore: true,
  207. releaseDate: [],
  208. releaseDate: [],
  209. selectedRowKeys: [],
  210. selectedRowKey: [],
  211. selectedRows: [],
  212. loading: false,
  213. pagination: {
  214. defaultCurrent: 1,
  215. defaultPageSize: 10,
  216. showQuickJumper: true,
  217. pageSize: 10,
  218. onChange: function (page) {
  219. this.loadData(page);
  220. }.bind(this),
  221. showTotal: function (total) {
  222. return '共' + total + '条数据';
  223. }
  224. },
  225. businessFollowList: [
  226. {
  227. title: '跟进时间',
  228. dataIndex: 'name',
  229. key: 'name',
  230. }, {
  231. title: '营销员',
  232. dataIndex: 'type',
  233. key: 'type',
  234. }, {
  235. title: '业务意向进度',
  236. dataIndex: 'locationProvince',
  237. key: 'locationProvince',
  238. }, {
  239. title: '客户状态',
  240. dataIndex: 'contacts',
  241. key: 'contacts',
  242. },
  243. {
  244. title: '拜访方式',
  245. dataIndex: 'contactMobile',
  246. key:'contactMobile',
  247. }, {
  248. title: '联系人',
  249. dataIndex: 'contacts22',
  250. key: 'contacts22',
  251. },
  252. {
  253. title: '联系电话',
  254. dataIndex: 'contactMobile22',
  255. key:'contactMobile22',
  256. },
  257. {
  258. title: '操作',
  259. dataIndex: 'ccc',
  260. key:'ccc',
  261. render: (text, record, index) => {
  262. return <div>
  263. <Popconfirm title="是否删除?" onConfirm={(e)=>{this.intentionDelet(record)}} okText="删除" cancelText="不删除">
  264. <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}}>删除</Button>
  265. </Popconfirm>
  266. </div>
  267. }
  268. }
  269. ],
  270. columns: [
  271. {
  272. title: '业务名称',
  273. dataIndex: 'businessName',
  274. key: 'businessName',
  275. }, {
  276. title: '意向时间',
  277. dataIndex: 'createTime',
  278. key: 'createTime',
  279. }, {
  280. title: '客户名称',
  281. dataIndex: 'identifyName',
  282. key: 'identifyName',
  283. }, {
  284. title: '营销员',
  285. dataIndex: 'adminName',
  286. key: 'adminName',
  287. },
  288. {
  289. title: '业务意向进度',
  290. dataIndex: 'followSituation',
  291. key:'followSituation',
  292. render: text => { return getfllowSituation(text) }
  293. },
  294. {
  295. title: '客户状态',
  296. dataIndex: 'customerStatus',
  297. key: 'customerStatus',
  298. render: text => { return getcustomerStatue(text) }
  299. },
  300. {
  301. title: '操作',
  302. dataIndex: 'abc',
  303. key: 'abc',
  304. render: (text, record, index) => {
  305. return <div>
  306. <Button onClick={(e) =>{ e.stopPropagation(), this.addClick(record); }} type="primary" style={{marginRight:'10px'}}>跟进</Button>
  307. <Button onClick={(e) =>{ e.stopPropagation(), this.followStop(record) }} type="primary">停止</Button>
  308. </div>
  309. }
  310. }
  311. ],
  312. dataSource: [],
  313. searchTime: [,]
  314. };
  315. },
  316. //删除跟进记录
  317. intentionDelet(e){
  318. console.log(e)
  319. },
  320. //更多操作
  321. ModalOperation(){
  322. this.setState({
  323. visible: true,
  324. });
  325. },
  326. //拜访
  327. visit(e){
  328. this.setState({
  329. visitModul:true
  330. })
  331. console.log(e)
  332. },
  333. //列表删除功能
  334. delectRow() {
  335. let deletedIds;
  336. for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
  337. let rowItem = this.state.selectedRows[idx];
  338. if (rowItem.id) {
  339. deletedIds=rowItem.id;
  340. };
  341. };
  342. this.setState({
  343. selectedRowKeys: [],
  344. });
  345. $.ajax({
  346. method: "get",
  347. dataType: "json",
  348. crossDomain: false,
  349. url: globalConfig.context + "/api/admin/customer/deleteCustomer",
  350. data: {
  351. id: deletedIds,//删除的ID
  352. }
  353. }).done(function (data) {
  354. if (!data.error.length) {
  355. message.success('删除成功!');
  356. this.setState({
  357. loading: false,
  358. });
  359. } else {
  360. message.warning(data.error[0].message);
  361. };
  362. this.loadData();
  363. }.bind(this));
  364. },
  365. getOrgCodeUrl(e) {
  366. this.setState({ orgCodeUrl: e });
  367. },
  368. getCompanyLogoUrl(e) {
  369. this.setState({ companyLogoUrl: e });
  370. },
  371. componentWillMount() {
  372. //意向服务
  373. let intentionalArr = [];
  374. newFollow.map(function (item) {
  375. intentionalArr.push(
  376. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  377. )
  378. });
  379. //客户状态
  380. let customerStatusArr = [];
  381. customerStatus.map(function (item) {
  382. customerStatusArr.push(
  383. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  384. )
  385. });
  386. this.state.intentionalOption = intentionalArr;
  387. this.state.customerStatusArrOption = customerStatusArr;
  388. this.loadData();
  389. },
  390. addClick() {
  391. this.state.followSituation=undefined;
  392. this.state.customerStatus=undefined;
  393. this.state.contactType=undefined;
  394. this.state.remarks='';
  395. this.state.result='';
  396. this.addTime();
  397. this.setState({
  398. showDesc: true,
  399. });
  400. },
  401. addClickOk(){
  402. this.setState({
  403. showDesc: false,
  404. });
  405. },
  406. addClickCancel(){
  407. this.setState({
  408. showDesc: false,
  409. });
  410. },
  411. search() {
  412. this.loadData();
  413. },
  414. reset() {
  415. this.state.businessIdS=undefined; //名称1
  416. this.state.identifyNameS='';
  417. this.state.followSituationS=undefined;
  418. this.state.customerStatusS=undefined;
  419. this.state.adminNameS='';
  420. this.state.releaseDate[0]=undefined;
  421. this.state.releaseDate[1]=undefined;
  422. this.loadData();
  423. },
  424. searchSwitch() {
  425. this.setState({
  426. searchMore: !this.state.searchMore
  427. });
  428. },
  429. //详情保存函数
  430. detailsSubmint(){
  431. this.setState({
  432. modal5Visible:false,
  433. })
  434. },
  435. //基本信息提交
  436. newSubmit(e){
  437. e.preventDefault();
  438. this.state.data=[];
  439. this.setState({
  440. selectedRowKeys: [],
  441. });
  442. this.props.form.validateFields((err, values) => {
  443. let theorgCodeUrl = [];
  444. if (this.state.orgCodeUrl.length) {
  445. let picArr = [];
  446. this.state.orgCodeUrl.map(function (item) {
  447. picArr.push(item.response.data);
  448. });
  449. theorgCodeUrl = picArr.join(",");
  450. };
  451. let thecompanyLogoUrl = [];
  452. if (this.state.companyLogoUrl.length) {
  453. let picArr = [];
  454. this.state.companyLogoUrl.map(function (item) {
  455. picArr.push(item.response.data);
  456. });
  457. thecompanyLogoUrl = picArr.join(",");
  458. };
  459. if (!err) {
  460. this.setState({
  461. loading: true
  462. });
  463. $.ajax({
  464. method: "post",
  465. dataType: "json",
  466. url:globalConfig.context + '/api/admin/customer/updateOrganizationCustomer',
  467. data: {
  468. id:this.state.InformationId,
  469. uid: this.state.InformationUid,
  470. societyTag:values.societyTag,
  471. introduction:values.introduction,
  472. unitName:this.state.unitName,
  473. industry:this.state.industry,
  474. locationProvince:values.ProvinceCity?values.ProvinceCity[0]:'',//省-
  475. locationCity:values.ProvinceCity?values.ProvinceCity[1]:'',//市
  476. locationArea:values.ProvinceCity?values.ProvinceCity[2]:'',//区
  477. postalAddress:values.postalAddress,
  478. contactsFixedTel:values.contactsFixedTel,
  479. contactsFax:values.contactsFax,
  480. registeredCapital:values.registeredCapital,
  481. enterpriseScale:values.enterpriseScale,
  482. legalPerson:values.legalPerson,
  483. legalPersonIdCard:values.legalPersonIdCard,
  484. legalPersonTel:values.legalPersonTel,
  485. legalPersonEmail:values.legalPersonEmail,
  486. highTechZone:this.state.highTechZone,
  487. listed:this.state.listed,
  488. orgCode:values.orgCode,
  489. businessScope:values.businessScope,
  490. introduction:values.introduction,
  491. companyLogoUrl:thecompanyLogoUrl,
  492. orgCodeUrl:theorgCodeUrl,
  493. }
  494. }).done(function (data) {
  495. this.setState({
  496. loading: false
  497. });
  498. if (!data.error.length) {
  499. message.success('保存成功!');
  500. this.detailsModal()
  501. } else {
  502. message.warning(data.error[0].message);
  503. }
  504. }.bind(this));
  505. }
  506. })
  507. },
  508. //查看基本详情基本信息
  509. loadInformation(record){
  510. this.RowClick;
  511. $.ajax({
  512. method: "get",
  513. dataType: "json",
  514. crossDomain: false,
  515. url: globalConfig.context + '/api/admin/customer/findOrganizationCustomerDetail',
  516. data: {
  517. uid: record
  518. },
  519. success: function (data) {
  520. let thisData = data.data;
  521. if (!thisData) {
  522. if (data.error && data.error.length) {
  523. message.warning(data.error[0].message);
  524. };
  525. thisData = {};
  526. };
  527. let ProvinceCityArr=[];
  528. let ProvinceS=getprovince(thisData.locationProvince);
  529. let citys=getprovince(thisData.locationCity);
  530. let Areas=getprovince(thisData.locationArea);
  531. console.log(getprovince(800))
  532. ProvinceCityArr.push(ProvinceS,citys,Areas)
  533. console.log(ProvinceCityArr)
  534. this.setState({
  535. InformationId:thisData.id,
  536. InformationUid:thisData.uid,
  537. unitName:thisData.unitName,
  538. listed:thisData.listed,
  539. highTechZone:thisData.highTechZone,
  540. orgCodeUrl: thisData.orgCodeUrl ? splitUrl(thisData.orgCodeUrl, ',', globalConfig.avatarHost + '/upload') : [],
  541. companyLogoUrl: thisData.companyLogoUrl ? splitUrl(thisData.companyLogoUrl, ',', globalConfig.avatarHost + '/upload') : [],
  542. dataInformation:thisData,
  543. ProvinceCity:ProvinceCityArr,
  544. industry:(thisData.industry).toString(),
  545. });
  546. }.bind(this),
  547. }).always(function () {
  548. this.setState({
  549. loading: false
  550. });
  551. }.bind(this));
  552. },
  553. detailsModalOk(e) {
  554. this.setState({ modal5Visible:true });//需要一个请求数据
  555. this.loadInformation(e.id)
  556. },
  557. //点击消失函数
  558. detailsModal(e) {
  559. this.setState({
  560. modal5Visible:false
  561. });
  562. },
  563. //拜访保存函数
  564. visitSubmit(){
  565. this.setState({
  566. visitModul:false,
  567. })
  568. },
  569. //新增联系人
  570. addcontactModulOK(){
  571. this.setState({
  572. addcontactModul:false
  573. });
  574. },
  575. addcontactModulcancel(){
  576. this.setState({
  577. addcontactModul:false
  578. });
  579. },
  580. businessFollowOk(){
  581. this.setState({
  582. businessFollowModul:false
  583. });
  584. },
  585. businessFollowCancel(){
  586. this.setState({
  587. businessFollowModul:false
  588. });
  589. },
  590. //点击新增详情
  591. newContacts(){
  592. this.setState({
  593. addcontactModul:true
  594. });
  595. },
  596. //新增联系人保存函数
  597. submitcontactman(e){
  598. e.preventDafault();
  599. this.props.form.validateFields((err, values) => {
  600. if (!err) {
  601. this.setState({
  602. loading: true
  603. });
  604. $.ajax({
  605. method: "POST",
  606. dataType: "json",
  607. crossDomain: false,
  608. url: globalConfig.context + '/api/admin/customer/addContacter',
  609. data: {
  610. cid: deletedIds,//编号id
  611. sex:this.state.hott,//性别
  612. primaryFlg:this.state.hotst,//是否是主要联系人
  613. name:this.state.paymentIdt,//联系人姓名
  614. mobile:this.state.paymt,//座机
  615. telNum:this.state.payt,//电话
  616. qq:this.state.entIdt,//qq
  617. wechat:this.state.payIdt,//微信
  618. customerPosition:this.state.paentIdt,//职位
  619. depatrment:this.state.paytIdtt,//部门
  620. email:this.state.emailst,//邮箱
  621. }
  622. }).done(function (data) {
  623. this.setState({
  624. loading: false
  625. });
  626. if (!data.error.length) {
  627. message.success('保存成功!');
  628. this.setModal2Visiblecancel()
  629. } else {
  630. message.warning(data.error[0].message);
  631. }
  632. this.getNewWoman(this.state.khId);
  633. }.bind(this));
  634. }
  635. });
  636. },
  637. //获取联系人下拉框
  638. getNewWoman(ids) {
  639. console.log(ids);
  640. $.ajax({
  641. method: "get",
  642. dataType: "json",
  643. crossDomain: false,
  644. url: globalConfig.context + "/api/admin/customer/findCustomerContacts",
  645. data:{
  646. uid:ids,
  647. },
  648. success: function (data) {
  649. let theArr = [];
  650. let thedata=data.data;
  651. if (!thedata) {
  652. if (data.error && data.error.length) {
  653. message.warning(data.error[0].message);
  654. };
  655. thedata = {};
  656. };
  657. thedata.map(function (item,index) {
  658. theArr.push(<Select.Option value={index}>{item.name}</Select.Option>)
  659. });
  660. let telNum=thedata.telNum;
  661. this.setState({
  662. lastname:thedata[0].name,
  663. telNumArr:thedata,
  664. nub:thedata[0].mobile,
  665. orderStatusOption: theArr,
  666. });
  667. }.bind(this),
  668. }).always(function () {
  669. this.setState({
  670. loading: false
  671. });
  672. }.bind(this));
  673. },
  674. //根据获取的联系人获取到电话号码函数
  675. hundleName(e){
  676. let changNub=this.state.telNumArr[e];
  677. this.setState({
  678. lastname:e,
  679. nub:changNub.mobile
  680. })
  681. },
  682. //新建保存
  683. addSubmit(e){
  684. e.preventDefault();
  685. this.props.form.validateFields((err, values) => {
  686. if (!err) {
  687. this.setState({
  688. loading: true
  689. });
  690. let thed='';
  691. let conts=this.state.lastname;
  692. this.state.orderStatusOption.map(function(itam){
  693. if(itam.name==conts){
  694. thed=itam.ocbId
  695. }
  696. return thed;
  697. })
  698. $.ajax({
  699. method: "post",
  700. dataType: "json",
  701. crossDomain: false,
  702. url: globalConfig.context + '/api/admin/customer/addBusinessAndFollow',
  703. data: {
  704. uid:this.state.khId,
  705. businessGlossoryId: this.state.businessGlossoryId,
  706. followSituation:this.state.followSituation,
  707. customerStatus: this.state.customerStatus,
  708. createTime:this.state.createYear+''+this.state.creatMent,
  709. contactType: this.state.contactType,
  710. ocbId: thed,
  711. followTime:'2017-10-11'+' '+'00:00:00',
  712. remarks: this.state.remarks,
  713. result: this.state.result,
  714. }
  715. }).done(function (data) {
  716. this.setState({
  717. loading: false
  718. });
  719. if (!data.error.length) {
  720. message.success('保存成功!');
  721. this.addClickCancel();
  722. this.loadData();
  723. } else {
  724. message.warning(data.error[0].message);
  725. }
  726. }.bind(this));
  727. }
  728. });
  729. },
  730. //新建HTTP获取数据
  731. addTime(){
  732. $.ajax({
  733. method: "get",
  734. dataType: "json",
  735. crossDomain: false,
  736. url: globalConfig.context + "/api/admin/customer/toAddBusinessAndFollow",
  737. data:{
  738. },
  739. success: function (data) {
  740. let theArr = [];
  741. let thedata=data.data;
  742. if (!thedata) {
  743. if (data.error && data.error.length) {
  744. message.warning(data.error[0].message);
  745. };
  746. thedata = {};
  747. };
  748. // thedata.adminName.map(function (item,index) {
  749. // theArr.push(<Select.Option value={index}>{item.name}</Select.Option>)
  750. // });
  751. let creatMent=thedata.createTime.substr(10,9);
  752. let createYear=thedata.createTime.substr(0,10);
  753. this.setState({
  754. creatMent:creatMent,
  755. createYear:createYear,
  756. creatMents:thedata.creatMent,
  757. createYears:thedata.createYear,
  758. adminName: thedata.adminName,
  759. });
  760. }.bind(this),
  761. }).always(function () {
  762. this.setState({
  763. loading: false
  764. });
  765. }.bind(this));
  766. },
  767. //客户名称初始加载
  768. customerList(e){
  769. $.ajax({
  770. method: "get",
  771. dataType: "json",
  772. crossDomain: false,
  773. url: globalConfig.context + "/api/admin/customer/findCustomerByName",
  774. data:{
  775. name:e
  776. },
  777. success: function (data) {
  778. let thedata=data.data;
  779. if (!thedata) {
  780. if (data.error && data.error.length) {
  781. message.warning(data.error[0].message);
  782. };
  783. thedata = {};
  784. };
  785. console.log(thedata)
  786. this.setState({
  787. customerArr:thedata,
  788. });
  789. }.bind(this),
  790. }).always(function () {
  791. this.setState({
  792. loading: false
  793. });
  794. }.bind(this));
  795. },
  796. //值改变时请求客户名称
  797. httpChange(e){
  798. if(e.length>=2){
  799. this.customerList(e);
  800. }
  801. },
  802. //选择值时值匹配及联系人函数加载
  803. autoChange(e){
  804. let theType='';
  805. let contactLists=this.state.customerArr||[];
  806. //let contactLists=dataSource;
  807. if (e) {
  808. contactLists.map(function (item) {
  809. if (item.name == e.toString()) {
  810. theType = item.id;
  811. }
  812. });
  813. }
  814. this.setState({
  815. khId:theType
  816. })
  817. this.getNewWoman(theType)
  818. },
  819. //客户输入框失去焦点是判断客户是否存在
  820. blurChange(e){
  821. let theType='';
  822. let contactLists=this.state.customerArr||[];
  823. //let contactLists=dataSource;
  824. if (e) {
  825. contactLists.map(function (item) {
  826. if (item.name == e.toString()) {
  827. theType = item.id;
  828. }
  829. });
  830. }
  831. if(!theType){
  832. return message.warning('当前客户名不存在')
  833. };
  834. },
  835. componentWillReceiveProps(nextProps) {
  836. if (!this.props.visible && nextProps.visible) {
  837. if (nextProps.data && nextProps.data.id) {
  838. this.loadData(nextProps.data.id, nextProps.detailApiUrl);
  839. };
  840. this.state.data = {};
  841. this.state.companyLogoUrl = [];
  842. this.state.orgCodeUrl = [];
  843. };
  844. },
  845. tableRowClick(record, index) {
  846. this.state.RowData = record;
  847. console.log(record)
  848. this.detailsModalOk(record);
  849. this.setState({
  850. selectedRowKeys:[],
  851. rowId:record.id,
  852. })
  853. },
  854. followRowClick(record, index) {
  855. this.state.RowData = record;
  856. this.addTime();
  857. this.customerList();
  858. this.setState({
  859. businessFollowModul: true,
  860. selectedRowKeys:[],
  861. rowId:record.id,
  862. });
  863. },
  864. render() {
  865. const FormItem = Form.Item
  866. const rowSelection = {
  867. selectedRowKeys: this.state.selectedRowKeys,
  868. onChange: (selectedRowKeys, selectedRows) => {
  869. this.setState({
  870. selectedRows: selectedRows.slice(-1),
  871. selectedRowKeys: selectedRowKeys.slice(-1)
  872. });
  873. },
  874. onSelect: (recordt, selected, selectedRows) => {
  875. this.setState({
  876. recordt:recordt.id
  877. })
  878. },
  879. };
  880. const rowSelections = {
  881. selectedRowKeys: this.state.selectedRowKey,
  882. onChange: (selectedRowKey, selectedRow) => {
  883. this.setState({
  884. selectedRow: selectedRow.slice(-1),
  885. selectedRowKey: selectedRowKey.slice(-1)
  886. });
  887. },
  888. onSelect: (records, selected, selectedRow) => {
  889. this.setState({
  890. selectedRow: selectedRow.slice(-1),
  891. records:records.id,
  892. })
  893. },
  894. };
  895. const hasSelected = this.state.selectedRowKeys.length > 0;
  896. const { RangePicker } = DatePicker;
  897. const { getFieldDecorator } = this.props.form;
  898. const formItemLayout = {
  899. labelCol: { span: 8 },
  900. wrapperCol: { span: 14 },
  901. };
  902. //const theDatak = this.state.datak || {};
  903. const theInformation=this.state.dataInformation || {}
  904. const contactsOption="";
  905. const formItemLayput = {
  906. labelCol: { span: 10 },
  907. wrapperCol: { span: 14 },
  908. };
  909. const dataSources=this.state.customerArr || []
  910. const options = dataSources.map((group) =>
  911. <Option key={group.id} value={group.name}>{group.name}</Option>
  912. )
  913. return (
  914. <div className="user-content" >
  915. <div className="content-title">
  916. <span>我的业务</span>
  917. </div>
  918. <div className="user-search">
  919. <Input placeholder="客户名称"
  920. value={this.state.identifyNameS}
  921. onChange={(e) => { this.setState({ identifyNameS: e.target.value }); }} />
  922. <Select placeholder="服务意向" value={this.state.businessIdS} onChange={(e) => {
  923. this.setState({businessIdS:e})}} style={{width:'150px'}}>
  924. {
  925. intentionalService.map(function (item) {
  926. return <Select.Option key={item.value} >{item.key}</Select.Option>
  927. })
  928. }
  929. </Select>
  930. <Button type="primary" onClick={this.search}>搜索</Button>
  931. <Button onClick={this.reset}>重置</Button>
  932. <Button style={{ background: "#ea0862", border: "none", color: "#fff",marginRight:'10px' ,marginLeft:'10px'}}
  933. disabled={!hasSelected}
  934. onClick={this.delectRow}>删除<Icon type="minus" />
  935. </Button>
  936. <span style={{marginLeft:'10px',marginRight:'20px'}}>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
  937. <Button type="primary" className="addButton" onClick={this.addClick}>新增业务<Icon type="plus" /></Button>
  938. <div className='clearfix' style={{marginTop:'5px'}}>
  939. <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>
  940. <RangePicker
  941. value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,
  942. this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}
  943. onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} />
  944. <Select placeholder="客户状态"
  945. style={{ width: 150 }}
  946. value={this.state.customerStatusS}
  947. onChange={(e) => { this.setState({ customerStatusS: e }) }}>
  948. {this.state.customerStatusArrOption}
  949. </Select>
  950. <Select placeholder="业务进度"
  951. style={{ width: 150 }}
  952. value={this.state.followSituationS}
  953. onChange={(e) => { this.setState({ followSituationS: e }) }}>
  954. {this.state.intentionalOption}
  955. </Select>
  956. <Input placeholder="营销员" style={{width:'150px'}}
  957. value={this.state.adminNameS}
  958. onChange={(e) => { this.setState({ adminNameS: e.target.value }); }} />
  959. </div>
  960. </div>
  961. </div>
  962. <div className="patent-table">
  963. <Spin spinning={this.state.loading}>
  964. <Table columns={this.state.columns}
  965. dataSource={this.state.dataSource}
  966. rowSelection={rowSelection}
  967. pagination={this.state.pagination}
  968. onRowClick={this.tableRowClick}
  969. />
  970. </Spin>
  971. </div>
  972. <Modal
  973. footer=''
  974. title="我的业务"
  975. width='1000px'
  976. visible={this.state.showDesc}
  977. onOk={this.addClickOk}
  978. onCancel={this.addClickCancel}
  979. >
  980. <Form horizontal id="demand-form" onSubmit={this.addSubmit}>
  981. <Spin spinning={this.state.loading}>
  982. <div className="clearfix">
  983. <FormItem className="half-item"
  984. {...formItemLayout}
  985. label="业务意向名称"
  986. >
  987. <Select placeholder="服务意向名称" value={this.state.businessGlossoryId} onChange={(e) => {
  988. this.setState({businessGlossoryId:e})}} style={{width:'150px'}}>
  989. {
  990. intentionalService.map(function (item) {
  991. return <Select.Option key={item.value} >{item.key}</Select.Option>
  992. })
  993. }
  994. </Select>
  995. </FormItem>
  996. <FormItem className="half-item"
  997. {...formItemLayout}
  998. >
  999. <Button type="primary" onClick={this.newContacts} style={{marginLeft:'160px'}}>添加新联系人</Button>
  1000. </FormItem>
  1001. <FormItem className="half-item"
  1002. {...formItemLayout}
  1003. label="意向时间" >
  1004. { /*{getFieldDecorator('createYear', {
  1005. initialValue: this.state.createYear
  1006. })(
  1007. <DatePicker />
  1008. )}
  1009. {getFieldDecorator('creatMent', {
  1010. initialValue: this.state.creatMent
  1011. })(
  1012. <TimePicker />
  1013. )}*/}
  1014. <DatePicker placeholder="更新日期" value={moment(this.state.createYear,'YYYY-MM-DD')} onChange={(time) => {this.setState({createYear: time});}}/>
  1015. <TimePicker placeholder="更新时间" value={moment(this.state.creatMent, 'HH:mm:ss')} onChange={(time) => { this.setState({creatMent: time}); }}/>
  1016. </FormItem>
  1017. <FormItem className="half-item"
  1018. {...formItemLayout}
  1019. label="客户名称"
  1020. >
  1021. <AutoComplete
  1022. className="certain-category-search"
  1023. dropdownClassName="certain-category-search-dropdown"
  1024. dropdownMatchSelectWidth={false}
  1025. dropdownStyle={{ width: 300 }}
  1026. size="large"
  1027. style={{ width: '100%' }}
  1028. dataSource={options}
  1029. placeholder="输入名称"
  1030. optionLabelProp="value"
  1031. onChange={this.httpChange}
  1032. onSelect={this.autoChange}
  1033. filterOption={true}
  1034. onBlur={this.blurChange}
  1035. >
  1036. <Input />
  1037. </AutoComplete>
  1038. </FormItem>
  1039. <FormItem className="half-item"
  1040. {...formItemLayout}
  1041. label="营销员"
  1042. >
  1043. <span>{this.state.adminName}</span>
  1044. </FormItem>
  1045. <FormItem className="half-item"
  1046. {...formItemLayout}
  1047. label="业务意向进度"
  1048. >
  1049. <Select placeholder="业务意向进度" value={this.state.followSituation}
  1050. onChange={(e) => { this.setState({ followSituation: e }) }}>
  1051. {
  1052. intentionalService.map(function (item) {
  1053. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1054. })
  1055. }
  1056. </Select>
  1057. </FormItem>
  1058. <FormItem className="half-item"
  1059. {...formItemLayout}
  1060. label="业务客户状态"
  1061. >
  1062. <Select placeholder="业务客户状态" value={this.state.customerStatus}
  1063. onChange={(e) => { this.setState({ customerStatus: e }) }}>
  1064. {
  1065. intentionalService.map(function (item) {
  1066. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1067. })
  1068. }
  1069. </Select>
  1070. </FormItem>
  1071. <div className="clearfix">
  1072. <FormItem
  1073. labelCol={{ span: 4 }}
  1074. wrapperCol={{ span: 16 }}
  1075. label="业务意向说明" >
  1076. <Input type="textarea" rows={4} placeholder="业务意向说明" value={this.state.remarks}
  1077. onChange={(e) => { this.setState({ remarks: e.target.value }) }}/>
  1078. </FormItem>
  1079. </div>
  1080. <div style={{fontSize:'18px',marginLeft:'30px'}}>拜访情况</div>
  1081. <div className="clearfix">
  1082. <FormItem className="half-item"
  1083. labelCol={{ span: 8 }}
  1084. wrapperCol={{ span: 16 }}
  1085. label="拜访方式" >
  1086. <Radio.Group value={this.state.contactType} onChange={(e) => {
  1087. this.setState({ contactType: e.target.value })
  1088. }}>
  1089. <Radio value={0}>外出</Radio>
  1090. <Radio value={1}>电话</Radio>
  1091. <Radio value={2}>QQ</Radio>
  1092. <Radio value={3}>微信</Radio>
  1093. <Radio value={4}>邮箱</Radio>
  1094. </Radio.Group>
  1095. </FormItem>
  1096. </div>
  1097. <div className="clearfix">
  1098. <FormItem className="half-item"
  1099. {...formItemLayout}
  1100. label="联系人"
  1101. >
  1102. <Select placeholder="联系人姓名" style={{ width: 140 }}
  1103. value={this.state.lastname}
  1104. onChange={this.hundleName}>
  1105. {this.state.orderStatusOption}
  1106. </Select>
  1107. </FormItem>
  1108. <FormItem className="half-item"
  1109. {...formItemLayout}
  1110. label="联系电话"
  1111. >
  1112. <span>{this.state.nub}</span>
  1113. </FormItem>
  1114. <FormItem className="half-item"
  1115. {...formItemLayout}
  1116. label="拜访时间" >
  1117. <DatePicker placeholder="更新日期" value={moment(this.state.createYears,'YYYY-MM-DD')} onChange={(time) => {this.setState({createYears: time});}}/>
  1118. <TimePicker placeholder="更新时间" value={moment(this.state.creatMents, 'HH:mm:ss')} onChange={(time) => { this.setState({creatMents: time}); }}/>
  1119. </FormItem>
  1120. <FormItem className="half-item"
  1121. {...formItemLayout}
  1122. label="拜访人"
  1123. >
  1124. <span>{this.state.adminName}</span>
  1125. </FormItem>
  1126. </div>
  1127. <div className="clearfix">
  1128. <FormItem
  1129. labelCol={{ span: 4 }}
  1130. wrapperCol={{ span: 16 }}
  1131. label="拜访备注" >
  1132. <Input type="textarea" rows={4} value={this.state.result} placeholder="来电备注"
  1133. onChange={(e) => { this.setState({ result: e.target.value }); }}/>
  1134. </FormItem>
  1135. </div>
  1136. </div>
  1137. <Button type="primary" size="large" htmlType="submit" style={{margin:'15px 15px 20px 160px'}}>保存</Button>
  1138. <Button size="large" onClick={this.addClickCancel}>取消</Button>
  1139. </Spin>
  1140. </Form>
  1141. </Modal>
  1142. <Modal
  1143. className="customeDetails"
  1144. title="我的业务详情"
  1145. width='1000px'
  1146. visible={this.state.modal5Visible}
  1147. onOk={this.detailsModal}
  1148. onCancel={this.detailsModal}
  1149. footer=''
  1150. >
  1151. <Form horizontal onSubmit={this.newSubmit} id="demand-form">
  1152. <Spin spinning={this.state.loading}>
  1153. <div className="clearfix">
  1154. <FormItem className="half-item"
  1155. {...formItemLayout}
  1156. label="业务意向名称"
  1157. >
  1158. <span>{theInformation.unitName}</span>
  1159. </FormItem>
  1160. <FormItem className="half-item"
  1161. {...formItemLayout}
  1162. label="意向时间"
  1163. >
  1164. <span>{theInformation.unitName}</span>
  1165. </FormItem>
  1166. <FormItem className="half-item"
  1167. {...formItemLayout}
  1168. label="客户名称"
  1169. >
  1170. <span>{theInformation.unitName}</span>
  1171. </FormItem>
  1172. <FormItem className="half-item"
  1173. {...formItemLayout}
  1174. label="营销员"
  1175. >
  1176. <span>{theInformation.unitName}</span>
  1177. </FormItem>
  1178. <FormItem className="half-item"
  1179. {...formItemLayout}
  1180. label="业务意向进度"
  1181. >
  1182. <Select placeholder="业务意向进度" value={this.state.followSituation}
  1183. onChange={(e) => { this.setState({ followSituation: e }) }}>
  1184. {
  1185. intentionalService.map(function (item) {
  1186. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1187. })
  1188. }
  1189. </Select>
  1190. </FormItem>
  1191. <FormItem className="half-item"
  1192. {...formItemLayout}
  1193. label="业务客户状态"
  1194. >
  1195. <Select placeholder="业务客户状态" value={this.state.customerStatus}
  1196. onChange={(e) => { this.setState({ customerStatus: e }) }}>
  1197. {
  1198. intentionalService.map(function (item) {
  1199. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1200. })
  1201. }
  1202. </Select>
  1203. </FormItem>
  1204. <div className="clearfix">
  1205. <FormItem
  1206. labelCol={{ span: 4 }}
  1207. wrapperCol={{ span: 16 }}
  1208. label="业务意向说明" >
  1209. <Input type="textarea" rows={4} placeholder="业务意向说明" value={this.state.remarks}
  1210. onChange={(e) => { this.setState({ remarks: e.target.value }) }}/>
  1211. </FormItem>
  1212. </div>
  1213. <Button className="set-submit" type="primary" htmlType="submit" style={{marginLeft:'160px',marginBottom:'30px'}}>保存</Button>
  1214. <Button className="set-submit" type="ghost" onClick={this.detailsModal}>取消</Button>
  1215. </div>
  1216. <div className="clearfix">
  1217. <div style={{fontSize:'18px',marginLeft:'40px',marginBottom:'20px'}}>业务跟进</div>
  1218. <div className="clearfix" style={{paddingLeft:'40px',paddingRight:'40px'}}>
  1219. <Spin spinning={this.state.loading}>
  1220. <Table
  1221. pagination={this.state.paginations}
  1222. columns={this.state.businessFollowList}
  1223. dataSource={data}
  1224. onRowClick={this.followRowClick}
  1225. />
  1226. </Spin>
  1227. </div>
  1228. </div>
  1229. </Spin>
  1230. </Form>
  1231. </Modal>
  1232. <Modal
  1233. footer=''
  1234. width='800px'
  1235. title="新增联系人"
  1236. visible={this.state.addcontactModul}
  1237. onOk={this.addcontactModulOK}
  1238. onCancel={this.addcontactModulcancel}
  1239. >
  1240. <Form horizontal onSubmit={this.submitcontactman} id="demand-form">
  1241. <Spin spinning={this.state.loading}>
  1242. <Row>
  1243. <FormItem
  1244. labelCol={{ span: 4 }}
  1245. wrapperCol={{ span: 14 }}
  1246. label="是否是主要联系人:" style={{marginRight:'10px'}}>
  1247. <Radio.Group value={this.state.hotst} onChange={(e) => {
  1248. this.setState({ hotst: e.target.value })
  1249. }}>
  1250. <Radio value={0}>是</Radio>
  1251. <Radio value={1}>否</Radio>
  1252. </Radio.Group>
  1253. </FormItem>
  1254. <FormItem
  1255. labelCol={{ span: 4 }}
  1256. wrapperCol={{ span: 14 }}
  1257. label="性别:" style={{marginRight:'10px',marginTop: '-15px'}}>
  1258. <Radio.Group value={this.state.hott} onChange={(e) => {
  1259. this.setState({ hott: e.target.value })
  1260. }}>
  1261. <Radio value={0}>男</Radio>
  1262. <Radio value={1}>女</Radio>
  1263. </Radio.Group>
  1264. </FormItem>
  1265. </Row>
  1266. <Row style={{ paddingLeft:'50px' }}>
  1267. <Col span={2}>姓名:</Col>
  1268. <Col span={8}>
  1269. <Input value={this.state.paymentIdt} required="required"
  1270. onChange={(e) => { this.setState({ paymentIdt: e.target.value }) }} />
  1271. </Col>
  1272. <Col span={2} style={{ marginLeft: '50px' }}>QQ号:</Col>
  1273. <Col span={8}>
  1274. <Input value={this.state.entIdt}
  1275. onChange={(e) => { this.setState({ entIdt: e.target.value }) }} />
  1276. </Col>
  1277. </Row>
  1278. <Row style={{ marginTop: '20px',paddingLeft:'50px' }}>
  1279. <Col span={2}>手机号:</Col>
  1280. <Col span={8}>
  1281. <Input value={this.state.payt} required="required"
  1282. onChange={(e) => { this.setState({ payt: e.target.value }) }} />
  1283. </Col>
  1284. <Col span={2} style={{ marginLeft: '50px' }}>座机号:</Col>
  1285. <Col span={8}>
  1286. <Input value={this.state.paymt}
  1287. onChange={(e) => { this.setState({ paymt: e.target.value }) }} />
  1288. </Col>
  1289. </Row>
  1290. <Row style={{ marginTop: '20px' ,paddingLeft:'50px'}}>
  1291. <Col span={2}>部门:</Col>
  1292. <Col span={8}>
  1293. <Input value={this.state.paytIdtt}
  1294. onChange={(e) => { this.setState({ paytIdtt: e.target.value }) }} />
  1295. </Col>
  1296. <Col span={2} style={{ marginLeft: '50px' }}>职位:</Col>
  1297. <Col span={8}>
  1298. <Input value={this.state.paentIdt}
  1299. onChange={(e) => { this.setState({ paentIdt: e.target.value }) }} />
  1300. </Col>
  1301. </Row>
  1302. <Row style={{ marginTop: '20px',paddingLeft:'50px' }}>
  1303. <Col span={2}>微信号:</Col>
  1304. <Col span={8}>
  1305. <Input value={this.state.payIdt}
  1306. onChange={(e) => { this.setState({ payIdt: e.target.value }) }} />
  1307. </Col>
  1308. <Col span={2} style={{ marginLeft: '50px' }}>邮箱:</Col>
  1309. <Col span={8}>
  1310. <Input value={this.state.emailst}
  1311. onChange={(e) => { this.setState({ emailst: e.target.value }) }} />
  1312. </Col>
  1313. </Row>
  1314. <Row style={{ marginTop: '20px',paddingLeft:'50px' ,marginBottom:'50px'}}>
  1315. <Button className="set-submit" type="primary" htmlType="submit" id="change_keep" style={{marginLeft:'60px'}}>保存</Button>
  1316. <Button className="set-submit" type="ghost" onClick={this.addcontactModulcancel} id='change_rem'>取消</Button>
  1317. </Row>
  1318. </Spin>
  1319. </Form>
  1320. </Modal>
  1321. <Modal
  1322. footer=''
  1323. title="业务跟进详情"
  1324. width='600px'
  1325. visible={this.state.businessFollowModul}
  1326. onOk={this.businessFollowOk}
  1327. onCancel={this.businessFollowCancel}
  1328. >
  1329. <div className="clearfix">
  1330. <Form horizontal id="demand-form" onSubmit={this.passworldSubmit} style={{paddingLeft:'30px'}}>
  1331. <Spin spinning={this.state.loading}>
  1332. <div className="clearfix" >
  1333. <FormItem className="half-item"
  1334. {...formItemLayout}
  1335. label="意向业务名称" >
  1336. <span>{this.state.a}</span>
  1337. </FormItem>
  1338. <FormItem className="half-item"
  1339. {...formItemLayout}
  1340. label="意向时间" >
  1341. <span>{this.state.a1}</span>
  1342. </FormItem>
  1343. <FormItem className="half-item"
  1344. {...formItemLayout}
  1345. label="客户名称" >
  1346. <span>{this.state.a}</span>
  1347. </FormItem>
  1348. <FormItem className="half-item"
  1349. {...formItemLayout}
  1350. label="营销员" >
  1351. <span>{this.state.a}</span>
  1352. </FormItem>
  1353. <FormItem className="half-item"
  1354. {...formItemLayout}
  1355. label="意向业务进度" >
  1356. <span>{this.state.a}</span>
  1357. </FormItem>
  1358. <FormItem className="half-item"
  1359. {...formItemLayout}
  1360. label="业务客户状态" >
  1361. <span>{this.state.a}</span>
  1362. </FormItem>
  1363. </div>
  1364. <div className="clearfix">
  1365. <FormItem className="half-item"
  1366. {...formItemLayout}
  1367. label="业务意向说明" >
  1368. <span>{this.state.a}</span>
  1369. </FormItem>
  1370. </div>
  1371. <div className="clearfix">
  1372. <div style={{fontSize:'18px'}}>拜访情况</div>
  1373. <div className="clearfix">
  1374. <FormItem className="half-item"
  1375. {...formItemLayout}
  1376. label="拜访方式" >
  1377. <span>{this.state.a}</span>
  1378. </FormItem>
  1379. </div>
  1380. <FormItem className="half-item"
  1381. {...formItemLayout}
  1382. label="联系人" >
  1383. <span>{this.state.a}</span>
  1384. </FormItem>
  1385. <FormItem className="half-item"
  1386. {...formItemLayout}
  1387. label="联系电话" >
  1388. <span>{this.state.a}</span>
  1389. </FormItem>
  1390. <FormItem className="half-item"
  1391. {...formItemLayout}
  1392. label="拜访时间" >
  1393. <span>{this.state.a}</span>
  1394. </FormItem>
  1395. <FormItem className="half-item"
  1396. {...formItemLayout}
  1397. label="拜访人" >
  1398. <span>{this.state.a}</span>
  1399. </FormItem>
  1400. <div className="clearfix">
  1401. <FormItem className="half-item"
  1402. {...formItemLayout}
  1403. label="拜访备注" >
  1404. <span>{this.state.a}</span>
  1405. </FormItem>
  1406. </div>
  1407. </div>
  1408. </Spin>
  1409. </Form>
  1410. </div>
  1411. </Modal>
  1412. </div >
  1413. );
  1414. }
  1415. }));
  1416. export default MyBusiness;