signCustomer.jsx 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828
  1. import React from 'react';
  2. import {
  3. Checkbox,
  4. Button,
  5. AutoComplete,
  6. Cascader,
  7. Input,
  8. Select,
  9. Tabs,
  10. Spin,
  11. Table,
  12. message,
  13. DatePicker,
  14. Form,
  15. Modal,
  16. Tooltip
  17. } from 'antd';
  18. import ajax from 'jquery/src/ajax/xhr.js';
  19. import $ from 'jquery/src/ajax';
  20. import moment from 'moment';
  21. import { citySelect, provinceList } from '@/NewDicProvinceList';
  22. import { socialAttribute, industry, auditStatusL, lvl, currentMember } from '@/dataDic.js';
  23. import { getSocialAttribute, beforeUploadFile, ShowModal } from "@/tools.js";
  24. import FollowDetail from './followDetail.jsx'
  25. import ShowModalDiv from "@/showModal.jsx";
  26. import ZhuanjiaoDetail from "@/zhuanjiaoDetail.jsx";
  27. import IntentionDetail from './intentionDetail/intentionDetail'
  28. import './customer.less';
  29. import { ChooseList } from "../../../order/orderNew/chooseList";
  30. import EnterpriseNameChange from "../../../../common/enterpriseNameChange";
  31. const { TabPane } = Tabs
  32. const confirm = Modal.confirm;
  33. const IntentionCustomer = Form.create()(React.createClass({
  34. loadData(pageNo, apiUrl) {
  35. this.setState({
  36. visitModul: false,
  37. loading: true,
  38. ispage: pageNo,
  39. modalVisible: false
  40. });
  41. let api = apiUrl ? apiUrl : this.props.ApiUrl;
  42. $.ajax({
  43. method: "post",
  44. dataType: "json",
  45. crossDomain: false,
  46. url: globalConfig.context + api,
  47. data: {
  48. pageNo: pageNo || 1,
  49. pageSize: this.state.pagination.pageSize,
  50. name: this.state.nameSearch,
  51. channel: this.state.channelSearch,
  52. province: !(this.state.addressSearch).length ? this.state.provinceSearch : this.state.addressSearch[0],
  53. city: !(this.state.addressSearch).length ? '' : this.state.addressSearch[1],
  54. startDate: this.state.releaseDate[0],
  55. endDate: this.state.releaseDate[1],
  56. },
  57. success: function (data) {
  58. ShowModal(this);
  59. let theArr = [];
  60. if (data.error.length || data.data.list == "") {
  61. if (data.error && data.error.length) {
  62. message.warning(data.error[0].message);
  63. };
  64. } else {
  65. for (let i = 0; i < data.data.list.length; i++) {
  66. let thisdata = data.data.list[i];
  67. let diqu = (thisdata.province == null ? "" : thisdata.province) + (thisdata.city == null ? "" : "-" + thisdata.city) + (thisdata.area == null ? "" : "-" + thisdata.area);
  68. thisdata.key = i;
  69. thisdata.id = thisdata.uid;
  70. thisdata.transferTime = thisdata.transferTime && thisdata.transferTime.split(" ")[0];
  71. thisdata.lastSignTime = thisdata.lastSignTime && thisdata.lastSignTime.split(" ")[0];
  72. thisdata.lastFollowTime = thisdata.lastFollowTime && thisdata.lastFollowTime.split(" ")[0];
  73. thisdata.locationProvince = diqu
  74. theArr.push(thisdata);
  75. };
  76. this.state.pagination.current = data.data.pageNo;
  77. this.state.pagination.total = data.data.totalCount;
  78. };
  79. if (data.data && data.data.list && !data.data.list.length) {
  80. this.state.pagination.current = 0
  81. this.state.pagination.total = 0
  82. };
  83. this.setState({
  84. dataSource: theArr,
  85. pagination: this.state.pagination,
  86. selectedRowKeys: []
  87. });
  88. }.bind(this),
  89. }).always(function () {
  90. this.setState({
  91. loading: false
  92. });
  93. }.bind(this));
  94. },
  95. getInitialState() {
  96. return {
  97. addressSearch: [],
  98. orgCodeUrl: [],
  99. companyLogoUrl: [],
  100. visible: false,
  101. searchMore: true,
  102. releaseDate: [],
  103. visitModul: false,
  104. keys: false,
  105. detailApi: "",
  106. followData: {},
  107. selectedRowKeys: [],
  108. selectedRowKey: [],
  109. selectedRows: [],
  110. loading: false,
  111. defaultActiveKey: '',
  112. modalVisible: false,
  113. pagination: {
  114. defaultCurrent: 1,
  115. defaultPageSize: 10,
  116. showQuickJumper: true,
  117. pageSize: 10,
  118. onChange: function (page) {
  119. this.loadData(page);
  120. }.bind(this),
  121. showTotal: function (total) {
  122. return "共" + total + "条数据";
  123. },
  124. },
  125. columns: [
  126. {
  127. title: "客户名称",
  128. dataIndex: "name",
  129. key: "name",
  130. width: 200,
  131. render: (text, record) => {
  132. return (
  133. <span>
  134. {record.channel === 1 ? <div style={{
  135. background: '#ef7207',
  136. color: '#FFF',
  137. padding: '1px 7px',
  138. borderRadius: '5px',
  139. fontSize: '12px',
  140. display: 'inline-block',
  141. marginRight: '10px'
  142. }}>
  143. 外联
  144. </div> : null}
  145. <Tooltip title={text}>
  146. <div
  147. // style={{
  148. // maxWidth: '120px',
  149. // overflow: 'hidden',
  150. // textOverflow: "ellipsis",
  151. // whiteSpace: 'nowrap',
  152. // }}
  153. >{text}</div>
  154. </Tooltip>
  155. </span>
  156. )
  157. },
  158. },
  159. {
  160. title: "统一社会信用代码",
  161. dataIndex: "orgCode",
  162. key: "orgCode",
  163. render: (text) => {
  164. return <div style={{ color: !text ? "red" : "#000000A6" }}>
  165. {!text ? "待补充" : text}
  166. </div>;
  167. },
  168. },
  169. {
  170. title: "地区",
  171. dataIndex: "locationProvince",
  172. key: "locationProvince",
  173. },
  174. {
  175. title: "最新签单日期",
  176. dataIndex: "transferTime",
  177. key: "transferTime",
  178. },
  179. // {
  180. // title: "最新跟进日期",
  181. // dataIndex: "lastFollowTime",
  182. // key: "lastFollowTime",
  183. // },
  184. // {
  185. // title: "剩余私有天数",
  186. // dataIndex: "surplusFollowTime",
  187. // key: "surplusFollowTime",
  188. // },
  189. // {
  190. // title: "剩余签单天数",
  191. // dataIndex: "surplusSignTime",
  192. // key: "surplusSignTime",
  193. // },
  194. // {
  195. // title: "联系人",
  196. // dataIndex: "contacts",
  197. // key: "contacts",
  198. // },
  199. // {
  200. // title: "联系电话",
  201. // dataIndex: "contactMobile",
  202. // key: "contactMobile",
  203. // },
  204. {
  205. title: "社会属性",
  206. dataIndex: "societyTag",
  207. key: "societyTag",
  208. render: (text) => {
  209. return getSocialAttribute(text);
  210. },
  211. },
  212. {
  213. title: "操作",
  214. dataIndex: "abc",
  215. key: "abc",
  216. render: (text, record, index) => {
  217. return (
  218. <div>
  219. <Button
  220. onClick={(e) => {
  221. const _this = this
  222. e.stopPropagation()
  223. if (!record.orgCode) {
  224. confirm({
  225. title: '您暂时不可以跟进客户',
  226. content: `请先完善"企业统一社会信用代码"`,
  227. cancelText: '取消',
  228. okText: '去完善',
  229. onOk() {
  230. _this.tableRowClick(record)
  231. },
  232. onCancel() { },
  233. });
  234. } else {
  235. this.visit(record);
  236. }
  237. }}
  238. type="primary"
  239. >
  240. 客户跟进
  241. </Button>
  242. <Button
  243. style={{ marginLeft: 10 }}
  244. onClick={(e) => {
  245. e.stopPropagation(), this.zhuanjiaoDetail(record);
  246. }}
  247. type="primary"
  248. >
  249. 转交记录
  250. </Button>
  251. <Button
  252. style={{ marginLeft: 10 }}
  253. type="primary"
  254. onClick={(e) => {
  255. e.stopPropagation();
  256. this.setState({
  257. defaultActiveKey: '6'
  258. }, () => {
  259. this.tableRowClick(record);
  260. })
  261. }}
  262. >
  263. 转交项目
  264. </Button>
  265. </div>
  266. );
  267. },
  268. },
  269. ],
  270. data: [],
  271. dataSource: [],
  272. selList: [],
  273. };
  274. },
  275. zhuanjiaoDetail(record) {
  276. this.setState({
  277. zhuanjiaoVisible: true,
  278. zhuanjiaoId: record.id
  279. })
  280. },
  281. zhuanjiaoDetailCancel() {
  282. this.setState({
  283. zhuanjiaoVisible: false
  284. })
  285. },
  286. //进入新增拜访记录
  287. visit(e) {
  288. this.setState({
  289. followData: e,
  290. visitModul: true,
  291. modalVisible: false
  292. })
  293. },
  294. //列表删除功能
  295. delectRow() {
  296. let deletedIds;
  297. for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
  298. let rowItem = this.state.selectedRows[idx];
  299. if (rowItem.id) {
  300. deletedIds = rowItem.id;
  301. };
  302. };
  303. this.setState({
  304. loading: true,
  305. selectedRowKeys: [],
  306. });
  307. $.ajax({
  308. method: "get",
  309. dataType: "json",
  310. crossDomain: false,
  311. url: globalConfig.context + "/api/admin/customer/deleteCustomer",
  312. data: {
  313. uid: deletedIds, //删除的ID
  314. }
  315. }).done(function (data) {
  316. if (!data.error.length) {
  317. message.success('删除成功!');
  318. this.setState({
  319. loading: false,
  320. });
  321. } else {
  322. message.warning(data.error[0].message);
  323. };
  324. this.loadData(this.state.ispage);
  325. }.bind(this));
  326. },
  327. componentWillMount() {
  328. //城市
  329. let Province = [];
  330. provinceList.map(function (item) {
  331. var id = String(item.id)
  332. Province.push(
  333. <Select.Option value={id} key={item.name}>{item.name}</Select.Option>
  334. )
  335. });
  336. //行业
  337. let intentionalArr = [];
  338. industry.map(function (item) {
  339. intentionalArr.push(
  340. <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option>
  341. )
  342. });
  343. this.state.Provinces = Province;
  344. this.state.intentionalOption = intentionalArr;
  345. this.loadData();
  346. },
  347. closeDesc(e, s) {
  348. this.state.basicState = e
  349. this.state.visitModul = e;
  350. this.state.modalVisible = e;
  351. this.state.showDesc = e;
  352. this.setState({
  353. defaultActiveKey: ''
  354. })
  355. if (s) {
  356. this.loadData(this.state.ispage);
  357. };
  358. },
  359. search() {
  360. this.loadData();
  361. },
  362. reset() {
  363. this.state.nameSearch = '';
  364. this.state.addressSearch = [];
  365. this.state.provinceSearch = undefined;
  366. this.state.channelSearch = undefined;
  367. this.state.citySearch = undefined;
  368. this.state.releaseDate[0] = undefined;
  369. this.state.releaseDate[1] = undefined;
  370. this.loadData();
  371. },
  372. searchSwitch() {
  373. this.setState({
  374. visitModul: false,
  375. searchMore: !this.state.searchMore
  376. });
  377. },
  378. //整行点击
  379. tableRowClick(record) {
  380. this.state.visitModul = false;
  381. this.state.RowData = record;
  382. this.setState({
  383. // selectedRowKeys: [],
  384. modalVisible: true,
  385. basicState: true,
  386. contactState: true,
  387. modalName: record.name
  388. })
  389. },
  390. //指定转交人自动补全
  391. supervisor(e) {
  392. $.ajax({
  393. method: "get",
  394. dataType: "json",
  395. crossDomain: false,
  396. url: globalConfig.context + "/api/admin/customer/listAdminByName",
  397. data: {
  398. adminName: e
  399. },
  400. success: function (data) {
  401. let thedata = data.data;
  402. if (!thedata) {
  403. if (data.error && data.error.length) {
  404. message.warning(data.error[0].message);
  405. };
  406. thedata = {};
  407. };
  408. this.setState({
  409. customerArr: thedata,
  410. });
  411. }.bind(this),
  412. }).always(function () {
  413. this.setState({
  414. loading: false
  415. });
  416. }.bind(this));
  417. },
  418. componentWillReceiveProps(nextProps) {
  419. if (nextProps.ApiUrl != this.props.ApiUrl) {
  420. if (!this.state.searchMore) {
  421. this.state.searchMore = true
  422. }
  423. this.state.nameSearch = '';
  424. this.state.addressSearch = [];
  425. this.state.provinceSearch = undefined;
  426. this.state.channelSearch = undefined
  427. this.state.citySearch = undefined;
  428. this.state.releaseDate[0] = undefined;
  429. this.state.releaseDate[1] = undefined;
  430. this.loadData(null, nextProps.ApiUrl);
  431. };
  432. },
  433. changeList(arr) {
  434. const newArr = [];
  435. this.state.columns.forEach(item => {
  436. arr.forEach(val => {
  437. if (val === item.title) {
  438. newArr.push(item);
  439. }
  440. });
  441. });
  442. this.setState({
  443. changeList: newArr
  444. });
  445. },
  446. //上级主管输入框失去焦点是判断客户是否存在
  447. selectAuto(value, options) {
  448. this.setState({
  449. auto: value,
  450. });
  451. },
  452. //值改变时请求客户名称
  453. httpChange(e) {
  454. if (e.length >= 1) {
  455. this.supervisor(e);
  456. }
  457. this.setState({
  458. auto: e,
  459. });
  460. },
  461. showConfirm() {
  462. if (this.state.confirmLoading) {
  463. return false;
  464. }
  465. let _this = this;
  466. Modal.confirm({
  467. title: "提示",
  468. content: (
  469. <span style={{ color: "red" }}>
  470. 确定要转交以下客户吗?
  471. {
  472. this.state.selectedRows.map((value, index) => (
  473. <div key={index} style={{ marginTop: '5px', color: "#000" }}>
  474. {value.name}
  475. </div>
  476. ))
  477. }
  478. </span>
  479. ),
  480. onOk() {
  481. _this.setState({
  482. informationTransferVisible: true
  483. })
  484. },
  485. onCancel() { },
  486. });
  487. },
  488. //转交
  489. changeAssigner(infor) {
  490. let type = infor
  491. if (infor == 1) {
  492. if (this.state.selList.length == 0) {
  493. message.warn("请勾选您需要转交的信息!")
  494. return
  495. } else if (this.state.selList.length == 2) {
  496. type = 3
  497. } else {
  498. type = this.state.selList[0]
  499. }
  500. }
  501. if (this.state.theTypes) {
  502. this.setState({
  503. confirmLoading: true,
  504. informationTransferVisible: false
  505. })
  506. const hide = message.loading('转交中...', 0);
  507. let changeIds = '';
  508. let oldAid = '';
  509. for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
  510. let rowItem = this.state.selectedRows[idx];
  511. if (rowItem.id) {
  512. oldAid = rowItem.aid;
  513. changeIds = this.state.selectedRows.length - 1 === idx ? changeIds + rowItem.id : changeIds + rowItem.id + ',';
  514. }
  515. }
  516. $.ajax({
  517. method: "get",
  518. dataType: "json",
  519. crossDomain: false,
  520. url: globalConfig.context + "/api/admin/customer/transferToOther",
  521. data: {
  522. uid: changeIds, //这一行数据的ID
  523. aid: this.state.theTypes, //指定转交人的ID
  524. oldAid: window.adminData.uid,
  525. operatorType: 4,
  526. data: type,
  527. },
  528. }).done(
  529. function (data) {
  530. hide();
  531. this.setState({
  532. selList: [],
  533. })
  534. if (!data.error.length) {
  535. this.setState({
  536. auto: "",
  537. loading: false,
  538. selectedRowKeys: [],
  539. });
  540. if (data.data.length == 0) {
  541. message.success("转交成功!");
  542. } else {
  543. data.data.forEach(function (e) { message.warning(e) })
  544. }
  545. } else {
  546. message.warning(data.error[0].message);
  547. }
  548. this.loadData(
  549. Math.min(
  550. this.state.ispage == undefined ? 1 : this.state.ispage,
  551. Math.ceil((this.state.pagination.total - 1) / 10)
  552. )
  553. );
  554. this.setState({
  555. confirmLoading: false
  556. })
  557. }.bind(this)
  558. );
  559. } else {
  560. message.warning("请输入转交人姓名");
  561. }
  562. },
  563. blurChange(e) {
  564. let theType = "";
  565. let contactLists = this.state.customerArr || [];
  566. if (e) {
  567. contactLists.map(function (item) {
  568. if (item.name == e.toString()) {
  569. theType = item.id;
  570. }
  571. });
  572. }
  573. this.setState({
  574. theTypes: theType,
  575. });
  576. },
  577. render() {
  578. const rowSelection = {
  579. selectedRowKeys: this.state.selectedRowKeys,
  580. onChange: (selectedRowKeys, selectedRows) => {
  581. this.setState({
  582. modalVisible: false,
  583. selectedRows: selectedRows,
  584. selectedRowKeys: selectedRowKeys
  585. });
  586. },
  587. onSelect: (recordt, selected, selectedRows) => {
  588. this.setState({
  589. modalVisible: false,
  590. recordt: recordt.id
  591. })
  592. },
  593. };
  594. const hasSelected = this.state.selectedRowKeys.length > 0;
  595. const { RangePicker } = DatePicker;
  596. const dataSources = this.state.customerArr || [];
  597. const options = dataSources.map((group) =>
  598. <Select.Option key={group.id} value={group.name}>{group.name}</Select.Option>
  599. )
  600. const intentionState = this.props.intentionState || '';
  601. return (
  602. <div className="user-content">
  603. <ShowModalDiv ShowModal={this.state.showModal} />
  604. {this.state.zhuanjiaoVisible ? (
  605. <ZhuanjiaoDetail
  606. cancel={this.zhuanjiaoDetailCancel}
  607. visible={this.state.zhuanjiaoVisible}
  608. type={1}
  609. id={this.state.zhuanjiaoId}
  610. />
  611. ) : (
  612. ""
  613. )}
  614. <div className="content-title" style={{ marginBottom: 10 }}>
  615. <span style={{ fontWeight: 900, fontSize: 16 }}>{!intentionState ? "签单客户" : "签单客户"}</span>
  616. </div>
  617. <Tabs defaultActiveKey="1" className="test">
  618. <TabPane tab="搜索" key="1">
  619. <div className="user-search">
  620. <Input
  621. placeholder="客户名称"
  622. value={this.state.nameSearch}
  623. onChange={(e) => {
  624. this.setState({ nameSearch: e.target.value });
  625. }}
  626. />
  627. <Select
  628. placeholder="是否为外联"
  629. style={{ width: 110 }}
  630. value={this.state.channelSearch}
  631. onChange={(e) => {
  632. this.setState({ channelSearch: e });
  633. }}
  634. >
  635. <Select.Option value={0}>
  636. 非外联
  637. </Select.Option>
  638. <Select.Option value={1}>
  639. 外联
  640. </Select.Option>
  641. </Select>
  642. <Select
  643. placeholder="省"
  644. style={{ width: 80 }}
  645. value={this.state.provinceSearch}
  646. onChange={(e) => {
  647. this.setState({ provinceSearch: e });
  648. }}
  649. >
  650. {this.state.Provinces}
  651. </Select>
  652. <span style={{ marginRight: "10px" }}>
  653. <Cascader
  654. options={citySelect()}
  655. value={this.state.addressSearch}
  656. placeholder="选择城市"
  657. onChange={(e, pre) => {
  658. this.setState({ addressSearch: e });
  659. }}
  660. />
  661. </span>
  662. {/* <div className="clearfix" style={{ marginTop: "5px" }}>
  663. <div
  664. className="search-more"
  665. style={this.state.searchMore ? { display: "none" } : {}}
  666. > */}
  667. <span>签单时间:</span>
  668. <RangePicker
  669. value={[
  670. this.state.releaseDate[0]
  671. ? moment(this.state.releaseDate[0])
  672. : null,
  673. this.state.releaseDate[1]
  674. ? moment(this.state.releaseDate[1])
  675. : null,
  676. ]}
  677. onChange={(data, dataString) => {
  678. this.setState({ releaseDate: dataString });
  679. }}
  680. />
  681. {/* </div>
  682. </div> */}
  683. <Button
  684. type="primary"
  685. onClick={this.search}
  686. style={{ marginLeft: 10 }}
  687. >
  688. 搜索
  689. </Button>
  690. <Button onClick={this.reset}>重置</Button>
  691. {/* {adminData.isSuperAdmin?<Popconfirm title="是否删除?" onConfirm={this.delectRow} okText="是" cancelText="否">
  692. <Button type="danger" style={{marginLeft:'10px'}}
  693. disabled={!hasSelected}
  694. >删除<Icon type="minus" />
  695. </Button>
  696. </Popconfirm>:''
  697. }*/}
  698. {/* <span style={{ marginLeft: "10px", marginRight: "20px" }}>
  699. 更多搜索
  700. <Switch
  701. checked={!this.state.searchMore}
  702. onChange={this.searchSwitch}
  703. />
  704. </span> */}
  705. </div>
  706. </TabPane>
  707. <TabPane tab="操作" key="2">
  708. <div className="user-search">
  709. <AutoComplete
  710. className="certain-category-search"
  711. dropdownClassName="certain-category-search-dropdown"
  712. dropdownMatchSelectWidth={false}
  713. style={{ width: "120px" }}
  714. dataSource={options}
  715. placeholder="输入转交人姓名"
  716. value={this.state.auto}
  717. onChange={this.httpChange}
  718. filterOption={true}
  719. onBlur={this.blurChange}
  720. onSelect={this.selectAuto}
  721. disabled={!hasSelected}
  722. >
  723. <Input />
  724. </AutoComplete>
  725. <Button
  726. type="primary"
  727. onClick={(e) => {
  728. e.stopPropagation();
  729. this.showConfirm();
  730. }}
  731. disabled={!hasSelected}
  732. style={{ marginRight: 10 }}
  733. >
  734. 转交客户
  735. </Button>
  736. <EnterpriseNameChange
  737. type='journal'
  738. disabled={!(hasSelected && this.state.selectedRows.length === 1)}
  739. style={{ marginLeft: 10 }}
  740. enterpriseId={this.state.selectedRows[0] && this.state.selectedRows[0].id} />
  741. </div>
  742. </TabPane>
  743. <TabPane tab="更改表格显示数据" key="3">
  744. <div style={{ marginLeft: 10 }}>
  745. <ChooseList
  746. columns={this.state.columns}
  747. changeFn={this.changeList}
  748. changeList={this.state.changeList}
  749. top={55}
  750. margin={11}
  751. />
  752. </div>
  753. </TabPane>
  754. </Tabs>
  755. <div className="patent-table">
  756. <Spin spinning={this.state.loading}>
  757. <Table
  758. size="middle"
  759. columns={
  760. this.state.changeList
  761. ? this.state.changeList
  762. : this.state.columns
  763. }
  764. dataSource={this.state.dataSource}
  765. rowSelection={rowSelection}
  766. pagination={this.state.pagination}
  767. onRowClick={this.tableRowClick}
  768. />
  769. </Spin>
  770. </div>
  771. <FollowDetail
  772. followData={this.state.followData}
  773. visitModul={this.state.visitModul}
  774. closeDesc={this.closeDesc}
  775. loadData={this.loadData}
  776. />
  777. <IntentionDetail
  778. detailApi={this.props.detailApi}
  779. IntentionData={this.state.RowData}
  780. loadData={() => { this.loadData(this.state.pagination.current) }}
  781. modalVisible={this.state.modalVisible}
  782. defaultActiveKey={this.state.defaultActiveKey}
  783. name={this.state.modalName}
  784. closeDesc={this.closeDesc}
  785. basicState={this.state.basicState}
  786. contactState={this.state.contactState}
  787. />
  788. {this.state.informationTransferVisible && <Modal
  789. visible={this.state.informationTransferVisible}
  790. width="420px"
  791. title="提醒"
  792. onCancel={() => {
  793. this.setState({
  794. informationTransferVisible: false,
  795. selList: [],
  796. })
  797. }}
  798. footer={[
  799. <Button key="1" size="large" type={"primary"} onClick={() => {
  800. this.changeAssigner(1);
  801. }}>需要</Button>,
  802. <Button key="2" size="large" type={"danger"} onClick={() => {
  803. this.changeAssigner(0);
  804. }}>不需要</Button>,
  805. ]}
  806. >
  807. <div style={{ padding: "0px 40px 20px" }}>
  808. 请确定,是否一并转交以下信息,如单个资料无法转交成功,则去掉对应“勾选”项,转交单一信息!
  809. </div>
  810. <div style={{ width: "50%", margin: "0 auto" }}>
  811. <Checkbox.Group onChange={e => { this.setState({ selList: e }); }}>
  812. <Checkbox value={1}>1.需要转交该客户资料</Checkbox>
  813. <br />
  814. <Checkbox value={2}>2.需要转交该客户名下的订单</Checkbox>
  815. </Checkbox.Group>
  816. </div>
  817. </Modal>}
  818. </div>
  819. );
  820. }
  821. }));
  822. export default IntentionCustomer;