myBusiness.jsx 60 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512
  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. businessGlossoryId: 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)=>{e.stopPropagation(),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.addModify(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. //新建
  391. addClick() {
  392. this.state.businessGlossoryId=undefined;
  393. this.state.followSituation='0';
  394. this.state.customerStatus='0';
  395. this.state.contactType=undefined;
  396. this.state.remarks='';
  397. this.state.result='';
  398. this.state.keys=false;
  399. this.addTime();
  400. this.setState({
  401. showDesc: true,
  402. });
  403. },
  404. addClickOk(){
  405. this.setState({
  406. businessId:'',
  407. showDesc: false,
  408. });
  409. },
  410. addClickCancel(){
  411. this.setState({
  412. businessId:'',
  413. showDesc: false,
  414. });
  415. },
  416. search() {
  417. this.loadData();
  418. },
  419. reset() {
  420. this.state.businessIdS=undefined; //名称1
  421. this.state.identifyNameS='';
  422. this.state.followSituationS=undefined;
  423. this.state.customerStatusS=undefined;
  424. this.state.adminNameS='';
  425. this.state.releaseDate[0]=undefined;
  426. this.state.releaseDate[1]=undefined;
  427. this.loadData();
  428. },
  429. searchSwitch() {
  430. this.setState({
  431. searchMore: !this.state.searchMore
  432. });
  433. },
  434. //详情保存函数
  435. detailsSubmint(){
  436. this.setState({
  437. modal5Visible:false,
  438. })
  439. },
  440. //基本信息提交
  441. newSubmit(e){
  442. e.preventDefault();
  443. this.setState({
  444. selectedRowKeys: [],
  445. });
  446. this.props.form.validateFields((err, values) => {
  447. if (!err) {
  448. this.setState({
  449. loading: true
  450. });
  451. $.ajax({
  452. method: "get",
  453. dataType: "json",
  454. url:globalConfig.context + '/api/admin/customer/updateBusiness',
  455. data: {
  456. businessId:this.state.rowId,
  457. followSituation:this.state.followSituation,
  458. customerStatus:this.state.customerStatus,
  459. result:this.state.result,
  460. }
  461. }).done(function (data) {
  462. this.setState({
  463. loading: false
  464. });
  465. if (!data.error.length) {
  466. message.success('保存成功!');
  467. this.detailsModal() ;
  468. this.loadData();
  469. } else {
  470. message.warning(data.error[0].message);
  471. }
  472. ;
  473. }.bind(this));
  474. }
  475. })
  476. },
  477. //查看基本详情基本信息
  478. loadInformation(record){
  479. $.ajax({
  480. method: "get",
  481. dataType: "json",
  482. crossDomain: false,
  483. url: globalConfig.context + '/api/admin/customer/toUpdateBusiness',
  484. data: {
  485. uid: record
  486. },
  487. success: function (data) {
  488. let thisData = data.data;
  489. if (!thisData) {
  490. if (data.error && data.error.length) {
  491. message.warning(data.error[0].message);
  492. };
  493. thisData = {};
  494. };
  495. this.setState({
  496. dataInformation:thisData,
  497. });
  498. }.bind(this),
  499. }).always(function () {
  500. this.setState({
  501. loading: false
  502. });
  503. }.bind(this));
  504. },
  505. detailsModalOk(e) {
  506. this.setState({ modal5Visible:true });//需要一个请求数据
  507. this.loadInformation(e.businessId)
  508. },
  509. //点击消失函数
  510. detailsModal(e) {
  511. this.setState({
  512. modal5Visible:false
  513. });
  514. },
  515. //拜访保存函数
  516. visitSubmit(){
  517. this.setState({
  518. visitModul:false,
  519. })
  520. },
  521. //新增联系人
  522. addcontactModulOK(){
  523. this.setState({
  524. addcontactModul:false
  525. });
  526. },
  527. addcontactModulcancel(){
  528. this.setState({
  529. addcontactModul:false
  530. });
  531. },
  532. businessFollowOk(){
  533. this.setState({
  534. businessFollowModul:false
  535. });
  536. },
  537. businessFollowCancel(){
  538. this.setState({
  539. businessFollowModul:false
  540. });
  541. },
  542. //点击新增详情
  543. newContacts(){
  544. this.setState({
  545. addcontactModul:true
  546. });
  547. },
  548. //新增联系人保存函数
  549. submitcontactman(e){
  550. e.preventDafault();
  551. this.props.form.validateFields((err, values) => {
  552. if (!err) {
  553. this.setState({
  554. loading: true
  555. });
  556. $.ajax({
  557. method: "POST",
  558. dataType: "json",
  559. crossDomain: false,
  560. url: globalConfig.context + '/api/admin/customer/addContacter',
  561. data: {
  562. cid: deletedIds,//编号id
  563. sex:this.state.hott,//性别
  564. primaryFlg:this.state.hotst,//是否是主要联系人
  565. name:this.state.paymentIdt,//联系人姓名
  566. mobile:this.state.paymt,//座机
  567. telNum:this.state.payt,//电话
  568. qq:this.state.entIdt,//qq
  569. wechat:this.state.payIdt,//微信
  570. customerPosition:this.state.paentIdt,//职位
  571. depatrment:this.state.paytIdtt,//部门
  572. email:this.state.emailst,//邮箱
  573. }
  574. }).done(function (data) {
  575. this.setState({
  576. loading: false
  577. });
  578. if (!data.error.length) {
  579. message.success('保存成功!');
  580. this.setModal2Visiblecancel()
  581. } else {
  582. message.warning(data.error[0].message);
  583. }
  584. this.getNewWoman(this.state.khId);
  585. }.bind(this));
  586. }
  587. });
  588. },
  589. //跟进
  590. addModify(e) {
  591. this.addTime();
  592. this.HttpFollowUp(e.businessId);
  593. this.state.keys=true;
  594. this.setState({
  595. showDesc: true,
  596. });
  597. },
  598. //当选择联系人的列表变化时,则执行
  599. hundleName(e){
  600. let changNub=this.state.telNum[e];
  601. this.setState({
  602. nub:this.state.telNum[e],
  603. lastName: e,
  604. });
  605. },
  606. //新建保存
  607. addSubmit(e){
  608. e.preventDefault();
  609. if(this.state.contactType==undefined){
  610. message.warning('请选择联系方式')
  611. return false;
  612. }
  613. if(this.state.lastName==undefined){
  614. message.warning('请选择联系人')
  615. return false;
  616. }
  617. this.props.form.validateFields((err, values) => {
  618. if (!err) {
  619. this.setState({
  620. loading: true
  621. });
  622. let conts=this.state.lastName;
  623. let contactsId= this.state.contactsIdArr[conts].id;
  624. $.ajax({
  625. method: "post",
  626. dataType: "json",
  627. crossDomain: false,
  628. url:!this.state.keys?globalConfig.context + '/api/admin/customer/addBusinessAndFollow':globalConfig.context + '/api/admin/customer/addFollowOneBusiness ',
  629. data:{
  630. businessId:this.state.businessId,
  631. businessGlossoryId: this.state.businessGlossoryId,
  632. followSituation:this.state.followSituation,
  633. customerStatus: this.state.customerStatus,
  634. contactType: this.state.contactType,
  635. ocbId: this.state.kid,
  636. createTime:this.state.createTime,
  637. remarks: this.state.remarks,
  638. result: this.state.result,
  639. }
  640. }).done(function (data) {
  641. this.setState({
  642. loading: false
  643. });
  644. if (!data.error.length) {
  645. message.success('保存成功!');
  646. this.addClickCancel();
  647. this.loadData();
  648. this.state.businessId='';
  649. } else {
  650. message.warning(data.error[0].message);
  651. }
  652. }.bind(this));
  653. }
  654. });
  655. },
  656. //新建HTTP获取数据
  657. addTime(){
  658. $.ajax({
  659. method: "get",
  660. dataType: "json",
  661. crossDomain: false,
  662. url: globalConfig.context + "/api/admin/customer/toAddBusinessAndFollow",
  663. data:{
  664. },
  665. success: function (data) {
  666. let theArr = [];
  667. let thedata=data.data;
  668. if (!thedata) {
  669. if (data.error && data.error.length) {
  670. message.warning(data.error[0].message);
  671. };
  672. thedata = {};
  673. };
  674. let creatMent=thedata.createTime.substr(10,9);
  675. let createYear=thedata.createTime.substr(0,10);
  676. this.setState({
  677. creatMent:creatMent,
  678. createYear:createYear,
  679. followTime:thedata.followTime,
  680. adminName: thedata.adminName,
  681. });
  682. }.bind(this),
  683. }).always(function () {
  684. this.setState({
  685. loading: false
  686. });
  687. }.bind(this));
  688. },
  689. //客户名称初始加载
  690. customerList(e){
  691. $.ajax({
  692. method: "get",
  693. dataType: "json",
  694. crossDomain: false,
  695. url: globalConfig.context + "/api/admin/customer/findCustomerByName",
  696. data:{
  697. name:e
  698. },
  699. success: function (data) {
  700. let thedata=data.data;
  701. if (!thedata) {
  702. if (data.error && data.error.length) {
  703. message.warning(data.error[0].message);
  704. };
  705. thedata = {};
  706. };
  707. this.setState({
  708. customerArr:thedata,
  709. });
  710. }.bind(this),
  711. }).always(function () {
  712. this.setState({
  713. loading: false
  714. });
  715. }.bind(this));
  716. },
  717. //值改变时请求客户名称
  718. httpChange(e){
  719. if(e.length>=2){
  720. this.customerList(e);
  721. }
  722. },
  723. //选择值时值匹配及联系人函数加载
  724. autoChange(e){
  725. let theType='';
  726. let contactLists=this.state.customerArr||[];
  727. //let contactLists=dataSource;
  728. if (e) {
  729. contactLists.map(function (item) {
  730. if (item.name == e.toString()) {
  731. theType = item.id;
  732. }
  733. });
  734. }
  735. this.setState({
  736. khId:theType
  737. })
  738. this.getNewWoman(theType)
  739. },
  740. //客户输入框失去焦点是判断客户是否存在
  741. blurChange(e){
  742. let theType='';
  743. let contactLists=this.state.customerArr||[];
  744. if (e) {
  745. contactLists.map(function (item) {
  746. if (item.name == e.toString()) {
  747. theType = item.id;
  748. }
  749. });
  750. }
  751. if(!theType){
  752. return message.warning('当前客户名不存在')
  753. };
  754. },
  755. //点击跟进时数据处理
  756. HttpFollowUp(e){
  757. $.ajax({
  758. method: "get",
  759. dataType: "json",
  760. crossDomain: false,
  761. url: globalConfig.context + "/api/admin/customer/toAddFollowOneBusiness",
  762. data:{
  763. businessId:e
  764. },
  765. success: function (data) {
  766. let thedata=data.data;
  767. if (!thedata) {
  768. if (data.error && data.error.length) {
  769. message.warning(data.error[0].message);
  770. };
  771. thedata = {};
  772. };
  773. this.setState({
  774. uids:thedata.uid,
  775. businessId:thedata.businessId,
  776. businessGlossoryId:thedata.businessGlossoryId,
  777. followSituation:thedata.followSituation,
  778. customerStatus:thedata.customerStatus,
  779. createTime:thedata.createTime,
  780. identifyName:thedata.identifyName,
  781. remarks:thedata.remarks,
  782. });
  783. }.bind(this),
  784. }).always(function () {
  785. this.getNewWoman(this.state.uids)
  786. this.setState({
  787. loading: false
  788. });
  789. }.bind(this));
  790. },
  791. //获取联系人下拉框
  792. getNewWoman(ids) {
  793. this.state.data = []
  794. $.ajax({
  795. method: "get",
  796. dataType: "json",
  797. crossDomain: false,
  798. url: globalConfig.context + "/api/admin/customer/findCustomerContacts",
  799. data:{
  800. uid:ids,
  801. },
  802. success: function (data) {
  803. let theArr = [];
  804. let thedata=data.data;
  805. if (!thedata) {
  806. if (data.error && data.error.length) {
  807. message.warning(data.error[0].message);
  808. };
  809. thedata = {};
  810. };
  811. var telNum=[];
  812. var contactIds=[];
  813. thedata.map(function (item,index) {
  814. telNum.push(thedata[index].mobile);
  815. });
  816. for (let item in data.data) {
  817. let theData = data.data[item];
  818. theArr.push(
  819. <Select.Option value={item} key={theData.name}>{theData.name}</Select.Option>
  820. );
  821. };
  822. this.setState({
  823. contactsIdArr:thedata,
  824. telNum:telNum,
  825. orderStatusOption: theArr,
  826. });
  827. }.bind(this),
  828. }).always(function () {
  829. this.setState({
  830. loading: false
  831. });
  832. }.bind(this));
  833. },
  834. //获取拜访详情ajax
  835. loadVisit(pageNo) {
  836. this.state.data = [];
  837. this.setState({
  838. loading: true
  839. });
  840. $.ajax({
  841. method: "get",
  842. dataType: "json",
  843. crossDomain: false,
  844. url:globalConfig.context + '/api/admin/customer/listFollowHistory',
  845. data: {
  846. pageNo: pageNo || 1,
  847. pageSize: this.state.pagination.pageSize,
  848. uid: this.state.rowId, //名称1
  849. businessGlossoryId:'',
  850. },
  851. success: function (data) {
  852. let theArr = [];
  853. if (data.error.length || data.data.list=="") {
  854. if (data.error && data.error.length) {
  855. message.warning(data.error[0].message);
  856. };
  857. } else {
  858. for (let i = 0; i < data.data.list.length; i++) {
  859. let thisdata = data.data.list[i];
  860. theArr.push({
  861. followId:thisdata.followId,
  862. followTime:thisdata.followTime,
  863. identityName:thisdata.identityName,
  864. contacts:thisdata.contacts,
  865. contactMobile:thisdata.contactMobile,
  866. result:thisdata.result,
  867. adminName:thisdata.adminName,
  868. contactType:thisdata.contactType
  869. });
  870. };
  871. this.state.pagination.current = data.data.pageNo;
  872. this.state.pagination.total = data.data.totalCount;
  873. };
  874. this.setState({
  875. visitArrList: theArr,
  876. pagination: this.state.pagination
  877. });
  878. }.bind(this),
  879. }).always(function () {
  880. this.setState({
  881. loading: false
  882. });
  883. }.bind(this));
  884. },
  885. componentWillReceiveProps(nextProps) {
  886. if (!this.props.visible && nextProps.visible) {
  887. if (nextProps.data && nextProps.data.id) {
  888. this.loadData(nextProps.data.id, nextProps.detailApiUrl);
  889. };
  890. this.state.data = {};
  891. this.state.companyLogoUrl = [];
  892. this.state.orgCodeUrl = [];
  893. };
  894. },
  895. tableRowClick(record, index) {
  896. this.state.RowData = record;
  897. this.detailsModalOk(record);
  898. this.loadVisit();
  899. this.setState({
  900. selectedRowKeys:[],
  901. rowId:record.businessId,
  902. })
  903. },
  904. followRowClick(record, index) {
  905. console.log(record)
  906. this.state.RowData = record;
  907. this.addTime();
  908. this.getNewWoman(record.khId)
  909. this.customerList();
  910. this.setState({
  911. businessFollowModul: true,
  912. selectedRowKeys:[],
  913. rowId:record.businessId,
  914. });
  915. },
  916. render() {
  917. const FormItem = Form.Item
  918. const rowSelection = {
  919. selectedRowKeys: this.state.selectedRowKeys,
  920. onChange: (selectedRowKeys, selectedRows) => {
  921. this.setState({
  922. selectedRows: selectedRows.slice(-1),
  923. selectedRowKeys: selectedRowKeys.slice(-1)
  924. });
  925. },
  926. onSelect: (recordt, selected, selectedRows) => {
  927. this.setState({
  928. recordt:recordt.id
  929. })
  930. },
  931. };
  932. const rowSelections = {
  933. selectedRowKeys: this.state.selectedRowKey,
  934. onChange: (selectedRowKey, selectedRow) => {
  935. this.setState({
  936. selectedRow: selectedRow.slice(-1),
  937. selectedRowKey: selectedRowKey.slice(-1)
  938. });
  939. },
  940. onSelect: (records, selected, selectedRow) => {
  941. this.setState({
  942. selectedRow: selectedRow.slice(-1),
  943. records:records.id,
  944. })
  945. },
  946. };
  947. const hasSelected = this.state.selectedRowKeys.length > 0;
  948. const { RangePicker } = DatePicker;
  949. const { getFieldDecorator } = this.props.form;
  950. const formItemLayout = {
  951. labelCol: { span: 8 },
  952. wrapperCol: { span: 14 },
  953. };
  954. const theInformation=this.state.dataInformation || {}
  955. const contactsOption="";
  956. const formItemLayput = {
  957. labelCol: { span: 10 },
  958. wrapperCol: { span: 14 },
  959. };
  960. const businessIds=this.state.businessId||'';
  961. const dataSources=this.state.customerArr || [];
  962. const options = dataSources.map((group) =>
  963. <Option key={group.id} value={group.name}>{group.name}</Option>
  964. )
  965. return (
  966. <div className="user-content" >
  967. <div className="content-title">
  968. <span>我的业务</span>
  969. </div>
  970. <div className="user-search">
  971. <Input placeholder="客户名称"
  972. value={this.state.identifyNameS}
  973. onChange={(e) => { this.setState({ identifyNameS: e.target.value }); }} />
  974. <Select placeholder="服务意向" value={this.state.businessIdS} onChange={(e) => {
  975. this.setState({businessIdS:e})}} style={{width:'150px'}}>
  976. {
  977. intentionalService.map(function (item) {
  978. return <Select.Option key={item.value} >{item.key}</Select.Option>
  979. })
  980. }
  981. </Select>
  982. <Button type="primary" onClick={this.search}>搜索</Button>
  983. <Button onClick={this.reset}>重置</Button>
  984. <Button style={{ background: "#ea0862", border: "none", color: "#fff",marginRight:'10px' ,marginLeft:'10px'}}
  985. disabled={!hasSelected}
  986. onClick={this.delectRow}>删除<Icon type="minus" />
  987. </Button>
  988. <span style={{marginLeft:'10px',marginRight:'20px'}}>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
  989. <Button type="primary" className="addButton" onClick={this.addClick}>新增业务<Icon type="plus" /></Button>
  990. <div className='clearfix' style={{marginTop:'5px'}}>
  991. <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>
  992. <RangePicker
  993. value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,
  994. this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}
  995. onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} />
  996. <Select placeholder="客户状态"
  997. style={{ width: 150 }}
  998. value={this.state.customerStatusS}
  999. onChange={(e) => { this.setState({ customerStatusS: e }) }}>
  1000. {this.state.customerStatusArrOption}
  1001. </Select>
  1002. <Select placeholder="业务进度"
  1003. style={{ width: 150 }}
  1004. value={this.state.followSituationS}
  1005. onChange={(e) => { this.setState({ followSituationS: e }) }}>
  1006. {this.state.intentionalOption}
  1007. </Select>
  1008. <Input placeholder="营销员" style={{width:'150px'}}
  1009. value={this.state.adminNameS}
  1010. onChange={(e) => { this.setState({ adminNameS: e.target.value }); }} />
  1011. </div>
  1012. </div>
  1013. </div>
  1014. <div className="patent-table">
  1015. <Spin spinning={this.state.loading}>
  1016. <Table columns={this.state.columns}
  1017. dataSource={this.state.dataSource}
  1018. rowSelection={rowSelection}
  1019. pagination={this.state.pagination}
  1020. onRowClick={this.tableRowClick}
  1021. />
  1022. </Spin>
  1023. </div>
  1024. <Modal
  1025. footer=''
  1026. title="我的业务"
  1027. width='1000px'
  1028. visible={this.state.showDesc}
  1029. onOk={this.addClickOk}
  1030. onCancel={this.addClickCancel}
  1031. >
  1032. <Form horizontal id="demand-form" onSubmit={this.addSubmit}>
  1033. <Spin spinning={this.state.loading}>
  1034. <div className="clearfix">
  1035. {businessIds!=''?<div><FormItem className="half-item"
  1036. {...formItemLayout}
  1037. label="业务意向名称"
  1038. >
  1039. <span>{getCompanyIntention(this.state.businessGlossoryId)}</span>
  1040. </FormItem>
  1041. <FormItem className="half-item"
  1042. {...formItemLayout}
  1043. >
  1044. <Button type="primary" onClick={this.newContacts} style={{marginLeft:'160px'}}>添加新联系人</Button>
  1045. </FormItem>
  1046. <FormItem className="half-item"
  1047. {...formItemLayout}
  1048. label="意向时间"
  1049. >
  1050. <span>{this.state.createTime}</span>
  1051. </FormItem>
  1052. <FormItem className="half-item"
  1053. {...formItemLayout}
  1054. label="客户名称"
  1055. >
  1056. <span>{this.state.identifyName}</span>
  1057. </FormItem></div>
  1058. :<div><FormItem className="half-item"
  1059. {...formItemLayout}
  1060. label="业务意向名称"
  1061. >
  1062. <Select placeholder="服务意向名称" value={this.state.businessGlossoryId} onChange={(e) => {
  1063. this.setState({businessGlossoryId:e})}} style={{width:'150px'}}>
  1064. {
  1065. intentionalService.map(function (item) {
  1066. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1067. })
  1068. }
  1069. </Select>
  1070. </FormItem>
  1071. <FormItem className="half-item"
  1072. {...formItemLayout}
  1073. >
  1074. <Button type="primary" onClick={this.newContacts} style={{marginLeft:'160px'}}>添加新联系人</Button>
  1075. </FormItem>
  1076. <FormItem className="half-item"
  1077. {...formItemLayout}
  1078. label="意向时间" >
  1079. <DatePicker placeholder="更新日期" value={moment(this.state.createYear,'YYYY-MM-DD')} onChange={(time) => {this.setState({createYear: time});}}/>
  1080. <TimePicker placeholder="更新时间" value={moment(this.state.creatMent, 'HH:mm:ss')} onChange={(time) => { this.setState({creatMent: time}); }}/>
  1081. </FormItem>
  1082. <FormItem className="half-item"
  1083. {...formItemLayout}
  1084. label="客户名称"
  1085. >
  1086. <AutoComplete
  1087. className="certain-category-search"
  1088. dropdownClassName="certain-category-search-dropdown"
  1089. dropdownMatchSelectWidth={false}
  1090. dropdownStyle={{ width: 300 }}
  1091. size="large"
  1092. style={{ width: '100%' }}
  1093. dataSource={options}
  1094. placeholder="输入名称"
  1095. optionLabelProp="value"
  1096. onChange={this.httpChange}
  1097. onSelect={this.autoChange}
  1098. filterOption={true}
  1099. onBlur={this.blurChange}
  1100. >
  1101. <Input />
  1102. </AutoComplete>
  1103. </FormItem></div>
  1104. }
  1105. <FormItem className="half-item"
  1106. {...formItemLayout}
  1107. label="营销员"
  1108. >
  1109. <span>{this.state.adminName}</span>
  1110. </FormItem>
  1111. <FormItem className="half-item"
  1112. {...formItemLayout}
  1113. label="业务意向进度"
  1114. >
  1115. <Select placeholder="业务意向进度" value={this.state.followSituation}
  1116. onChange={(e) => { this.setState({ followSituation: e }) }}>
  1117. {
  1118. intentionalService.map(function (item) {
  1119. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1120. })
  1121. }
  1122. </Select>
  1123. </FormItem>
  1124. <FormItem className="half-item"
  1125. {...formItemLayout}
  1126. label="业务客户状态"
  1127. >
  1128. <Select placeholder="业务客户状态" value={this.state.customerStatus}
  1129. onChange={(e) => { this.setState({ customerStatus: e }) }}>
  1130. {
  1131. customerStatus.map(function (item) {
  1132. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1133. })
  1134. }
  1135. </Select>
  1136. </FormItem>
  1137. <div className="clearfix">
  1138. <FormItem
  1139. labelCol={{ span: 4 }}
  1140. wrapperCol={{ span: 16 }}
  1141. label="业务意向说明" >
  1142. <Input type="textarea" rows={4} placeholder="业务意向说明" value={this.state.remarks}
  1143. onChange={(e) => { this.setState({ remarks: e.target.value }) }}/>
  1144. </FormItem>
  1145. </div>
  1146. <div style={{fontSize:'18px',marginLeft:'30px'}}>拜访情况</div>
  1147. <div className="clearfix">
  1148. <FormItem className="half-item"
  1149. labelCol={{ span: 8 }}
  1150. wrapperCol={{ span: 16 }}
  1151. label="拜访方式" >
  1152. <Radio.Group value={this.state.contactType} onChange={(e) => {
  1153. this.setState({ contactType: e.target.value })
  1154. }}>
  1155. <Radio value={0}>外出</Radio>
  1156. <Radio value={1}>电话</Radio>
  1157. <Radio value={2}>QQ</Radio>
  1158. <Radio value={3}>微信</Radio>
  1159. <Radio value={4}>邮箱</Radio>
  1160. </Radio.Group>
  1161. </FormItem>
  1162. </div>
  1163. <FormItem className="half-item"
  1164. {...formItemLayout}
  1165. label="联系人"
  1166. >
  1167. <Select placeholder="联系人姓名" style={{ width: 140 }}
  1168. value={this.state.lastName}
  1169. onChange={this.hundleName}>
  1170. {this.state.orderStatusOption}
  1171. </Select>
  1172. </FormItem>
  1173. <FormItem className="half-item"
  1174. {...formItemLayout}
  1175. label="联系电话"
  1176. >
  1177. <span>{this.state.nub}</span>
  1178. </FormItem>
  1179. <div className="clearfix">
  1180. <FormItem className="half-item"
  1181. {...formItemLayout}
  1182. label="拜访人"
  1183. >
  1184. <span>{this.state.adminName}</span>
  1185. </FormItem>
  1186. <FormItem className="half-item"
  1187. {...formItemLayout}
  1188. label="拜访时间" >
  1189. <span>{this.state.followTime}</span>
  1190. </FormItem>
  1191. </div>
  1192. <div className="clearfix">
  1193. <FormItem
  1194. labelCol={{ span: 4 }}
  1195. wrapperCol={{ span: 16 }}
  1196. label="拜访备注" >
  1197. <Input type="textarea" rows={4} value={this.state.result} placeholder="来电备注"
  1198. onChange={(e) => { this.setState({ result: e.target.value }); }}/>
  1199. </FormItem>
  1200. </div>
  1201. </div>
  1202. <Button type="primary" size="large" htmlType="submit" style={{margin:'15px 15px 20px 160px'}}>保存</Button>
  1203. <Button size="large" onClick={this.addClickCancel}>取消</Button>
  1204. </Spin>
  1205. </Form>
  1206. </Modal>
  1207. <Modal
  1208. className="customeDetails"
  1209. title="我的业务意向详情"
  1210. width='1000px'
  1211. visible={this.state.modal5Visible}
  1212. onOk={this.detailsModal}
  1213. onCancel={this.detailsModal}
  1214. footer=''
  1215. >
  1216. <Form horizontal onSubmit={this.newSubmit} id="demand-form">
  1217. <Spin spinning={this.state.loading}>
  1218. <div className="clearfix">
  1219. <FormItem className="half-item"
  1220. {...formItemLayout}
  1221. label="业务意向名称"
  1222. >
  1223. <span>{getCompanyIntention(theInformation.businessGlossoryId)}</span>
  1224. </FormItem>
  1225. <FormItem className="half-item"
  1226. {...formItemLayout}
  1227. label="意向时间"
  1228. >
  1229. <span>{theInformation.createTime}</span>
  1230. </FormItem>
  1231. <FormItem className="half-item"
  1232. {...formItemLayout}
  1233. label="客户名称"
  1234. >
  1235. <span>{theInformation.identifyName}</span>
  1236. </FormItem>
  1237. <FormItem className="half-item"
  1238. {...formItemLayout}
  1239. label="营销员"
  1240. >
  1241. <span>{theInformation.adminName}</span>
  1242. </FormItem>
  1243. <FormItem className="half-item"
  1244. {...formItemLayout}
  1245. label="业务意向进度"
  1246. >
  1247. <Select placeholder="业务意向进度" value={this.state.followSituation}
  1248. onChange={(e) => { this.setState({ followSituation: e }) }}>
  1249. {
  1250. newFollow.map(function (item) {
  1251. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1252. })
  1253. }
  1254. </Select>
  1255. </FormItem>
  1256. <FormItem className="half-item"
  1257. {...formItemLayout}
  1258. label="业务客户状态"
  1259. >
  1260. <Select placeholder="业务客户状态" value={this.state.customerStatus}
  1261. onChange={(e) => { this.setState({ customerStatus: e }) }}>
  1262. {
  1263. intentionalService.map(function (item) {
  1264. return <Select.Option key={item.value} >{item.key}</Select.Option>
  1265. })
  1266. }
  1267. </Select>
  1268. </FormItem>
  1269. <div className="clearfix">
  1270. <FormItem
  1271. labelCol={{ span: 4 }}
  1272. wrapperCol={{ span: 16 }}
  1273. label="业务意向说明" >
  1274. <Input type="textarea" rows={4} placeholder="业务意向说明" value={this.state.remarks}
  1275. onChange={(e) => { this.setState({ remarks: e.target.value }) }}/>
  1276. </FormItem>
  1277. </div>
  1278. <Button className="set-submit" type="primary" htmlType="submit" style={{marginLeft:'160px',marginBottom:'30px'}}>保存</Button>
  1279. <Button className="set-submit" type="ghost" onClick={this.detailsModal}>取消</Button>
  1280. </div>
  1281. <div className="clearfix">
  1282. <div style={{fontSize:'18px',marginLeft:'40px',marginBottom:'20px'}}>业务跟进</div>
  1283. <div className="clearfix" style={{paddingLeft:'40px',paddingRight:'40px'}}>
  1284. <Spin spinning={this.state.loading}>
  1285. <Table
  1286. pagination={this.state.paginations}
  1287. columns={this.state.businessFollowList}
  1288. dataSource={this.state.visitArrList}
  1289. onRowClick={this.followRowClick}
  1290. />
  1291. </Spin>
  1292. </div>
  1293. </div>
  1294. </Spin>
  1295. </Form>
  1296. </Modal>
  1297. <Modal
  1298. footer=''
  1299. width='800px'
  1300. title="新增联系人"
  1301. visible={this.state.addcontactModul}
  1302. onOk={this.addcontactModulOK}
  1303. onCancel={this.addcontactModulcancel}
  1304. >
  1305. <Form horizontal onSubmit={this.submitcontactman} id="demand-form">
  1306. <Spin spinning={this.state.loading}>
  1307. <Row>
  1308. <FormItem
  1309. labelCol={{ span: 4 }}
  1310. wrapperCol={{ span: 14 }}
  1311. label="是否是主要联系人:" style={{marginRight:'10px'}}>
  1312. <Radio.Group value={this.state.hotst} onChange={(e) => {
  1313. this.setState({ hotst: e.target.value })
  1314. }}>
  1315. <Radio value={0}>是</Radio>
  1316. <Radio value={1}>否</Radio>
  1317. </Radio.Group>
  1318. </FormItem>
  1319. <FormItem
  1320. labelCol={{ span: 4 }}
  1321. wrapperCol={{ span: 14 }}
  1322. label="性别:" style={{marginRight:'10px',marginTop: '-15px'}}>
  1323. <Radio.Group value={this.state.hott} onChange={(e) => {
  1324. this.setState({ hott: e.target.value })
  1325. }}>
  1326. <Radio value={0}>男</Radio>
  1327. <Radio value={1}>女</Radio>
  1328. </Radio.Group>
  1329. </FormItem>
  1330. </Row>
  1331. <Row style={{ paddingLeft:'50px' }}>
  1332. <Col span={2}>姓名:</Col>
  1333. <Col span={8}>
  1334. <Input value={this.state.paymentIdt} required="required"
  1335. onChange={(e) => { this.setState({ paymentIdt: e.target.value }) }} />
  1336. </Col>
  1337. <Col span={2} style={{ marginLeft: '50px' }}>QQ号:</Col>
  1338. <Col span={8}>
  1339. <Input value={this.state.entIdt}
  1340. onChange={(e) => { this.setState({ entIdt: e.target.value }) }} />
  1341. </Col>
  1342. </Row>
  1343. <Row style={{ marginTop: '20px',paddingLeft:'50px' }}>
  1344. <Col span={2}>手机号:</Col>
  1345. <Col span={8}>
  1346. <Input value={this.state.payt} required="required"
  1347. onChange={(e) => { this.setState({ payt: e.target.value }) }} />
  1348. </Col>
  1349. <Col span={2} style={{ marginLeft: '50px' }}>座机号:</Col>
  1350. <Col span={8}>
  1351. <Input value={this.state.paymt}
  1352. onChange={(e) => { this.setState({ paymt: e.target.value }) }} />
  1353. </Col>
  1354. </Row>
  1355. <Row style={{ marginTop: '20px' ,paddingLeft:'50px'}}>
  1356. <Col span={2}>部门:</Col>
  1357. <Col span={8}>
  1358. <Input value={this.state.paytIdtt}
  1359. onChange={(e) => { this.setState({ paytIdtt: e.target.value }) }} />
  1360. </Col>
  1361. <Col span={2} style={{ marginLeft: '50px' }}>职位:</Col>
  1362. <Col span={8}>
  1363. <Input value={this.state.paentIdt}
  1364. onChange={(e) => { this.setState({ paentIdt: e.target.value }) }} />
  1365. </Col>
  1366. </Row>
  1367. <Row style={{ marginTop: '20px',paddingLeft:'50px' }}>
  1368. <Col span={2}>微信号:</Col>
  1369. <Col span={8}>
  1370. <Input value={this.state.payIdt}
  1371. onChange={(e) => { this.setState({ payIdt: e.target.value }) }} />
  1372. </Col>
  1373. <Col span={2} style={{ marginLeft: '50px' }}>邮箱:</Col>
  1374. <Col span={8}>
  1375. <Input value={this.state.emailst}
  1376. onChange={(e) => { this.setState({ emailst: e.target.value }) }} />
  1377. </Col>
  1378. </Row>
  1379. <Row style={{ marginTop: '20px',paddingLeft:'50px' ,marginBottom:'50px'}}>
  1380. <Button className="set-submit" type="primary" htmlType="submit" id="change_keep" style={{marginLeft:'60px'}}>保存</Button>
  1381. <Button className="set-submit" type="ghost" onClick={this.addcontactModulcancel} id='change_rem'>取消</Button>
  1382. </Row>
  1383. </Spin>
  1384. </Form>
  1385. </Modal>
  1386. <Modal
  1387. footer=''
  1388. title="业务跟进详情"
  1389. width='600px'
  1390. visible={this.state.businessFollowModul}
  1391. onOk={this.businessFollowOk}
  1392. onCancel={this.businessFollowCancel}
  1393. >
  1394. <div className="clearfix">
  1395. <Form horizontal id="demand-form" onSubmit={this.passworldSubmit} style={{paddingLeft:'30px'}}>
  1396. <Spin spinning={this.state.loading}>
  1397. <div className="clearfix" >
  1398. <FormItem className="half-item"
  1399. {...formItemLayout}
  1400. label="意向业务名称" >
  1401. <span>{this.state.a}</span>
  1402. </FormItem>
  1403. <FormItem className="half-item"
  1404. {...formItemLayout}
  1405. label="意向时间" >
  1406. <span>{this.state.a1}</span>
  1407. </FormItem>
  1408. <FormItem className="half-item"
  1409. {...formItemLayout}
  1410. label="客户名称" >
  1411. <span>{this.state.a}</span>
  1412. </FormItem>
  1413. <FormItem className="half-item"
  1414. {...formItemLayout}
  1415. label="营销员" >
  1416. <span>{this.state.a}</span>
  1417. </FormItem>
  1418. <FormItem className="half-item"
  1419. {...formItemLayout}
  1420. label="意向业务进度" >
  1421. <span>{this.state.a}</span>
  1422. </FormItem>
  1423. <FormItem className="half-item"
  1424. {...formItemLayout}
  1425. label="业务客户状态" >
  1426. <span>{this.state.a}</span>
  1427. </FormItem>
  1428. </div>
  1429. <div className="clearfix">
  1430. <FormItem className="half-item"
  1431. {...formItemLayout}
  1432. label="业务意向说明" >
  1433. <span>{this.state.a}</span>
  1434. </FormItem>
  1435. </div>
  1436. <div className="clearfix">
  1437. <div style={{fontSize:'18px'}}>拜访情况</div>
  1438. <div className="clearfix">
  1439. <FormItem className="half-item"
  1440. {...formItemLayout}
  1441. label="拜访方式" >
  1442. <span>{this.state.a}</span>
  1443. </FormItem>
  1444. </div>
  1445. <FormItem className="half-item"
  1446. {...formItemLayout}
  1447. label="联系人" >
  1448. <span>{this.state.a}</span>
  1449. </FormItem>
  1450. <FormItem className="half-item"
  1451. {...formItemLayout}
  1452. label="联系电话" >
  1453. <span>{this.state.a}</span>
  1454. </FormItem>
  1455. <FormItem className="half-item"
  1456. {...formItemLayout}
  1457. label="拜访时间" >
  1458. <span>{this.state.a}</span>
  1459. </FormItem>
  1460. <FormItem className="half-item"
  1461. {...formItemLayout}
  1462. label="拜访人" >
  1463. <span>{this.state.a}</span>
  1464. </FormItem>
  1465. <div className="clearfix">
  1466. <FormItem className="half-item"
  1467. {...formItemLayout}
  1468. label="拜访备注" >
  1469. <span>{this.state.a}</span>
  1470. </FormItem>
  1471. </div>
  1472. </div>
  1473. </Spin>
  1474. </Form>
  1475. </div>
  1476. </Modal>
  1477. </div >
  1478. );
  1479. }
  1480. }));
  1481. export default MyBusiness;