| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245 | import React from "react";import {  Icon,  Button,  AutoComplete,  Cascader,  Input,  Select,  Spin,  Table,  message,  DatePicker,  Tooltip,  Form,  Tabs,  Modal,  Tag,  Checkbox,} from "antd";import $ from "jquery/src/ajax";import moment from "moment";import { citySelect, provinceList } from "@/NewDicProvinceList";import AddIntention from "./addIntention.jsx";import { industry, lvl, currentMember } from "@/dataDic.js";import ZhuanjiaoDetail from "@/zhuanjiaoDetail.jsx";import { getSocialAttribute, ShowModal } from "@/tools.js";import FollowDetail from "./followDetail.jsx";import IntentionDetail from "./intentionDetail/intentionDetail";import ShowModalDiv from "@/showModal.jsx";import "./customer.less";import { ChooseList } from "../../../order/orderNew/chooseList";import EnterpriseNameChange from "../../../../common/enterpriseNameChange";const { TabPane } = Tabs;const confirm = Modal.confirm;const IntentionCustomer = Form.create()(  React.createClass({    loadData(pageNo, apiUrl) {      this.setState({        visitModul: false,        loading: true,        modalVisible: false,      });      let api = apiUrl ? apiUrl : this.props.ApiUrl;      $.ajax({        method: "post",        dataType: "json",        crossDomain: false,        url: globalConfig.context + api,        data: {          pageNo: pageNo || 1,          pageSize: this.state.pagination.pageSize,          level: this.state.level ? this.state.level : undefined,          name: this.state.nameSearch,          province: !this.state.addressSearch.length            ? this.state.provinceSearch            : this.state.addressSearch[0],          city: !this.state.addressSearch.length            ? undefined            : this.state.addressSearch[1],          startDate: this.state.releaseDate[0],          endDate: this.state.releaseDate[1],        },        success: function (data) {          ShowModal(this);          let theArr = [];          if (data.error.length || data.data.list == "") {            if (data.error && data.error.length) {              message.warning(data.error[0].message);            }          } else {            for (let i = 0; i < data.data.list.length; i++) {              let thisdata = data.data.list[i];              let diqu =                (thisdata.province == null ? "" : thisdata.province) +                (thisdata.city == null ? "" : "-" + thisdata.city) +                (thisdata.area == null ? "" : "-" + thisdata.area);              thisdata.key = i;              thisdata.id = thisdata.uid;              thisdata.lastFollowTime =                thisdata.lastFollowTime &&                thisdata.lastFollowTime.split(" ")[0];              thisdata.transferTime =                thisdata.transferTime && thisdata.transferTime.split(" ")[0];              thisdata.surplusFollowTime =                thisdata.surplusFollowTime &&                thisdata.surplusFollowTime.split(" ")[0];              thisdata.surplusSignTime =                thisdata.surplusSignTime &&                thisdata.surplusSignTime.split(" ")[0];              thisdata.locationProvince = diqu;              theArr.push(thisdata);            }            this.state.pagination.current = data.data.pageNo;            this.state.pagination.total = data.data.totalCount;            this.setState({              ispage: data.data.pageNo,            });          }          if (data.data && data.data.list && !data.data.list.length) {            this.state.pagination.current = 0;            this.state.pagination.total = 0;          }          if (            JSON.stringify(theArr) !== JSON.stringify(this.state.dataSource)          ) {            this.setState({              selectedRowKeys: [],            });          }          this.setState({            dataSource: theArr,            pagination: this.state.pagination,          });        }.bind(this),      }).always(        function () {          this.setState({            loading: false,          });        }.bind(this)      );    },    //品类数据获取    category() {      $.ajax({        method: "get",        dataType: "json",        crossDomain: false,        url: globalConfig.context + "/api/admin/Varieties/getSuperList",        data: {},        success: function (data) {          let thedata = data.data;          let theArr = [];          if (!thedata) {            if (data.error && data.error.length) {              message.warning(data.error[0].message);            }            thedata = {};          } else {            thedata.map(function (item, index) {              theArr.push({                value: item.id,                key: item.cname,              });            });          }          this.setState({            categoryArr: theArr,          });        }.bind(this),      });    },    getInitialState() {      return {        addressSearch: [],        orgCodeUrl: [],        companyLogoUrl: [],        visible: false,        zhuanjiaoVisible: false,        searchMore: true,        releaseDate: [],        categoryArr: [],        visitModul: false,        keys: false,        detailApi: "",        followData: {},        selectedRowKeys: [],        selectedRowKey: [],        selectedRows: [],        loading: false,        modalVisible: false,        pagination: {          defaultCurrent: 1,          defaultPageSize: 10,          showQuickJumper: true,          pageSize: 10,          onChange: function (page) {            this.loadData(page);          }.bind(this),          showTotal: function (total) {            return "共" + total + "条数据";          },        },        columns: [          {            title: "客户名称",            dataIndex: "name",            key: "name",            width: 150,            render: (text) => {              return (                <Tooltip title={text}>                  <div                    onClick={(e) => {                      e.stopPropagation();                      let input = document.getElementById("copyText");                      input.value = text;                      input.select();                      document.execCommand("copy");                      message.success("复制成功");                    }}                  // style={{                  //   maxWidth: "150px",                  //   overflow: "hidden",                  //   textOverflow: "ellipsis",                  //   whiteSpace: "nowrap",                  //   cursor: "pointer",                  // }}                  >                    {text}                  </div>                </Tooltip>              );            },          },          {            title: "统一社会信用代码",            dataIndex: "orgCode",            key: "orgCode",            render: (text) => {              return <div style={{ color: !text ? "red" : "#000000A6" }}>                {!text ? "待补充" : text}              </div>;            },          },          {            title: "地区",            dataIndex: "locationProvince",            key: "locationProvince",          },          // {          //   title: "联系人",          //   dataIndex: "contacts",          //   key: "contacts",          // },          // {          //   title: "联系电话",          //   dataIndex: "contactMobile",          //   key: "contactMobile",          // },          {            title: "社会性质",            dataIndex: "societyTag",            key: "societyTag",            render: (text) => {              return getSocialAttribute(text);            },          },          {            title: "客户初始时间",            dataIndex: "transferTime",            key: "transferTime",          },          {            title: "剩余私有天数",            dataIndex: "surplusFollowTime",            key: "surplusFollowTime",          },          {            title: "剩余签单天数",            dataIndex: "surplusSignTime",            key: "surplusSignTime",          },          {            title: "最新跟进时间",            dataIndex: "lastFollowTime",            key: "lastFollowTime",          },          {            title: "客户等级",            dataIndex: "level",            key: "level",            render: (text) => {              if (text == 0) {                return <Tag color="#87d068">一般客户</Tag>;              } else if (text == 1) {                return <Tag color="#D2691E">意向客户</Tag>;              } else if (text == 2) {                return <Tag color="#FF0000">重点客户</Tag>;              } else {                return "";              }            },          },          {            title: "跟进操作",            dataIndex: "abc",            key: "abc",            render: (text, record, index) => {              return (                <div                  style={{                    display: "flex",                    flexFlow: "row",                    alignItems: "center",                  }}                >                  <Button                    onClick={(e) => {                      const _this = this                      e.stopPropagation()                      if (!record.orgCode) {                        confirm({                          title: '您暂时不可以跟进客户',                          content: `请先完善"企业统一社会信用代码"`,                          cancelText: '取消',                          okText: '去完善',                          onOk() {                            _this.tableRowClick(record)                          },                          onCancel() { },                        });                      } else {                        this.visit(record);                      }                    }}                    type="primary"                  >                    客户跟进                  </Button>                </div>              );            },          },          {            title: "指导意见",            dataIndex: "guidance",            key: "guidance",            render: (text, record, index) => {              return (                <div                  style={{                    display: "flex",                    flexFlow: "row",                    alignItems: "center",                  }}                >                  {/*指导 0无 1未读 2已读*/}                  {text === 1 || text === 2 ? (                    <Button                      style={                        text === 1                          ? {                            background: "#F00000",                            borderColor: "#F00000",                          }                          : {}                      }                      onClick={(e) => {                        e.stopPropagation();                        this.guidanceRead(record.uid).then(() => {                          this.setState(                            {                              tabsKey: "4",                            },                            () => {                              this.tableRowClick(record);                            }                          );                        });                      }}                      type="primary"                    >                      {text === 1 ? "未读" : "查看"}                    </Button>                  ) : (                    <div>暂无指导</div>                  )}                </div>              );            },          },        ],        tabsKey: "",        data: [],        dataman: [],        dataSource: [],        visitArrList: [],        searchTime: [,],        selList: [],      };    },    //已读指导记录    guidanceRead(id) {      return new Promise((resolve, reject) => {        $.ajax({          method: "post",          dataType: "json",          crossDomain: false,          url: globalConfig.context + "/api/admin/customer/pushGuidance",          data: {            uid: id,          },        }).done(          function (data) {            if (!data.error.length) {              resolve();            } else {              message.warning(data.error[0].message);              reject();            }          }.bind(this)        );      });    },    rankO(rank) {      let deletedIds = "";      for (let idx = 0; idx < this.state.selectedRows.length; idx++) {        let rowItem = this.state.selectedRows[idx];        if (rowItem.id) {          deletedIds =            this.state.selectedRows.length - 1 === idx              ? deletedIds + rowItem.id              : deletedIds + rowItem.id + ",";        }      }      $.ajax({        method: "get",        dataType: "json",        crossDomain: false,        url: globalConfig.context + "/api/admin/customer/updateUserLevel",        data: {          id: deletedIds, //客户的ID          level: rank,        },      }).done(        function (data) {          if (!data.error.length && data.data !== 0) {            message.success("操作成功!");            this.setState({              loading: false,            });            this.loadData(this.state.ispage);          } else {            message.warning(              data.data === 0 ? "操作失败,请联系管理员!" : data.error[0].message            );          }        }.bind(this)      );    },    //进入新增拜访记录    visit(e) {      this.setState({        followData: e,        visitModul: true,        modalVisible: false,      });    },    //列表删除功能    delectRow() {      let deletedIds = "";      for (let idx = 0; idx < this.state.selectedRows.length; idx++) {        let rowItem = this.state.selectedRows[idx];        if (rowItem.id) {          deletedIds =            this.state.selectedRows.length - 1 === idx              ? deletedIds + rowItem.id              : deletedIds + rowItem.id + ",";        }      }      this.setState({        loading: true,        selectedRowKeys: [],      });      $.ajax({        method: "get",        dataType: "json",        crossDomain: false,        url: globalConfig.context + "/api/admin/customer/deleteCustomer",        data: {          uid: deletedIds, //删除的ID        },      }).done(        function (data) {          if (!data.error.length) {            message.success("删除成功!");            this.setState({              loading: false,            });          } else {            message.warning(data.error[0].message);          }          this.loadData(this.state.ispage);        }.bind(this)      );    },    componentWillMount() {      //城市      let Province = [];      provinceList.map(function (item) {        var id = String(item.id);        Province.push(          <Select.Option value={id} key={item.name}>            {item.name}          </Select.Option>        );      });      //行业      let intentionalArr = [];      industry.map(function (item) {        intentionalArr.push(          <Select.Option value={item.value} key={item.key}>            {item.key}          </Select.Option>        );      });      //会员等级      let lvlArr = [];      lvl.map(function (item) {        lvlArr.push(          <Select.Option value={item.value} key={item.key}>            {item.key}          </Select.Option>        );      });      //会员状态customerStatus      let currentMemberArr = [];      currentMember.map(function (item) {        currentMemberArr.push(          <Select.Option value={item.value} key={item.key}>            {item.key}          </Select.Option>        );      });      this.state.Provinces = Province;      this.state.intentionalOption = intentionalArr;      this.state.lvlArrOption = lvlArr;      this.state.currentMemberArrOption = currentMemberArr;      this.loadData();      this.category();    },    addClick() {      this.state.RowData = {};      this.setState({        detailApi: this.props.detailApi,        showDesc: true,        modalVisible: false,        visitModul: false,      });    },    closeDesc(e, s) {      this.state.basicState = e;      this.state.visitModul = e;      this.state.modalVisible = e;      this.state.showDesc = e;      this.setState({        tabsKey: "",      });      if (s) {        this.loadData(this.state.ispage);      }    },    search() {      this.loadData();    },    reset() {      this.state.nameSearch = "";      this.state.level = undefined;      this.state.addressSearch = [];      this.state.provinceSearch = undefined;      this.state.citySearch = undefined;      this.state.releaseDate[0] = undefined;      this.state.releaseDate[1] = undefined;      this.loadData();    },    searchSwitch() {      this.setState({        visitModul: false,        searchMore: !this.state.searchMore,      });    },    //整行点击    tableRowClick(record, index) {      this.state.visitModul = false;      this.setState({        // selectedRowKeys: [],        modalVisible: true,        basicState: true,        contactState: true,        modalName: record.name,        RowData: record,      });    },    //指定转交人自动补全    supervisor(e) {      $.ajax({        method: "get",        dataType: "json",        crossDomain: false,        url: globalConfig.context + "/api/admin/customer/listAdminByName",        data: {          adminName: e,        },        success: function (data) {          let thedata = data.data;          if (!thedata) {            if (data.error && data.error.length) {              message.warning(data.error[0].message);            }            thedata = {};          }          this.setState({            customerArr: thedata,          });        }.bind(this),      }).always(        function () {          this.setState({            loading: false,          });        }.bind(this)      );    },    //上级主管输入框失去焦点是判断客户是否存在    selectAuto(value, options) {      this.setState({        auto: value,      });    },    blurChange(e) {      let theType = "";      let contactLists = this.state.customerArr || [];      if (e) {        contactLists.map(function (item) {          if (item.name == e.toString()) {            theType = item.id;          }        });      }      this.setState({        theTypes: theType,      });    },    //值改变时请求客户名称    httpChange(e) {      if (e.length >= 1) {        this.supervisor(e);      }      this.setState({        auto: e,      });    },    //转交    changeAssigner(infor) {      let type = infor      if (infor == 1) {        if (this.state.selList.length == 0) {          message.warn("请勾选您需要转交的信息!")          return        } else if (this.state.selList.length == 2) {          type = 3        } else {          type = this.state.selList[0]        }      }      if (this.state.theTypes) {        this.setState({          informationTransferVisible: false,        });        let changeIds = "";        let oldAid = "";        for (let idx = 0; idx < this.state.selectedRows.length; idx++) {          let rowItem = this.state.selectedRows[idx];          if (rowItem.id) {            oldAid = rowItem.aid;            changeIds =              this.state.selectedRows.length - 1 === idx                ? changeIds + rowItem.id                : changeIds + rowItem.id + ",";          }        }        let loading = message.loading("加载中...");        $.ajax({          method: "get",          dataType: "json",          crossDomain: false,          url: globalConfig.context + "/api/admin/customer/transferToOther",          data: {            uid: changeIds, //这一行数据的ID            aid: this.state.theTypes, //指定转交人的ID            oldAid: oldAid,            operatorType: 3,            data: type,          },        }).done(          function (data) {            loading();            this.setState({              selList: [],            })            if (!data.error.length) {              this.setState({                auto: "",                loading: false,                selectedRowKeys: [],              });              if (data.data.length == 0) {                message.success("转交成功!");              } else {                data.data.forEach(function (e) { message.warning(e) })              }            } else {              message.warning(data.error[0].message);            }            this.loadData(              Math.min(                this.state.ispage == undefined ? 1 : this.state.ispage,                Math.ceil((this.state.pagination.total - 1) / 10)              )            );          }.bind(this)        );      } else {        message.warning("请输入转交人姓名");      }    },    //导出    exportExec() {      let departmentName = "",        depart = this.state.departmentArr || [];      depart.map((item) => {        if (this.state.departmentId == item.id) {          departmentName = item.name;          return;        }      });      let data = {        name: this.state.nameSearch,        province: this.state.provinceSearch,        city: this.state.addressSearch,        level: this.state.level,        startDate: this.state.releaseDate[0],        endDate: this.state.releaseDate[1],      };      window.location.href =        globalConfig.context +        "/api/admin/customer/privateUnitCustomerOutXls?" +        $.param(data);    },    componentWillReceiveProps(nextProps) {      if (nextProps.ApiUrl != this.props.ApiUrl) {        if (!this.state.searchMore) {          this.state.searchMore = true;        }        this.state.nameSearch = "";        this.state.addressSearch = [];        this.state.provinceSearch = undefined;        this.state.citySearch = undefined;        this.state.releaseDate[0] = undefined;        this.state.releaseDate[1] = undefined;        this.loadData(null, nextProps.ApiUrl);      }    },    zhuanjiaoDetail(record) {      this.setState({        zhuanjiaoVisible: true,        zhuanjiaoId: record.id,      });    },    zhuanjiaoDetailCancel() {      this.setState({        zhuanjiaoVisible: false,      });    },    showConfirm() {      let _this = this;      Modal.confirm({        title: "提示",        content: (          <span style={{ color: "red" }}>            确定要转交以下客户吗?            {this.state.selectedRows.map((value, index) => (              <div key={index} style={{ marginTop: "5px", color: "#000" }}>                {value.name}              </div>            ))}          </span>        ),        onOk() {          _this.setState({            informationTransferVisible: true,          });        },        onCancel() { },      });    },    changeList(arr) {      const newArr = [];      this.state.columns.forEach((item) => {        arr.forEach((val) => {          if (val === item.title) {            newArr.push(item);          }        });      });      this.setState({        changeList: newArr,      });    },    showConfirms(fn, record) {      Modal.confirm({        title: "您确定将以下客户移至公共客户吗?",        content: (          <span style={{ color: "red" }}>            移除后,以下客户将被别人领取!            {this.state.selectedRows.map((value, index) => (              <div key={index} style={{ marginTop: "5px", color: "#000" }}>                {value.name}              </div>            ))}          </span>        ),        onOk() {          fn(record);        },        onCancel() { },      });    },    release() {      this.setState({        loading: true,      });      let deletedIds = "";      for (let idx = 0; idx < this.state.selectedRows.length; idx++) {        let rowItem = this.state.selectedRows[idx];        if (rowItem.id) {          deletedIds =            this.state.selectedRows.length - 1 === idx              ? deletedIds + rowItem.id              : deletedIds + rowItem.id + ",";        }      }      $.ajax({        method: "get",        dataType: "json",        crossDomain: false,        url: globalConfig.context + "/api/admin/customer/pushReleaseUser",        data: {          id: deletedIds,        },        success: function (data) {          let thedata = data.data;          if (!thedata) {            if (data.error && data.error.length) {              message.warning(data.error[0].message);            }            thedata = {};          } else {            message.success("移除成功");            this.loadData(              this.state.dataSource.length === 1                ? this.state.ispage === 1                  ? 1                  : this.state.ispage - 1                : this.state.ispage            );          }        }.bind(this),      }).always(        function () {          this.setState({            loading: false,          });        }.bind(this)      );    },    render() {      const FormItem = Form.Item;      const rowSelection = {        hideDefaultSelections: true,        selectedRowKeys: this.state.selectedRowKeys,        onChange: (selectedRowKeys, selectedRows) => {          this.setState({            modalVisible: false,            selectedRows: selectedRows,            selectedRowKeys: selectedRowKeys,          });        },        onSelect: (recordt, selected, selectedRows) => {          this.setState({            modalVisible: false,            recordt: recordt.id,          });        },      };      const hasSelected = this.state.selectedRowKeys.length > 0;      const { RangePicker } = DatePicker;      const dataSources = this.state.customerArr || [];      const options = dataSources.map((group) => (        <Select.Option key={group.id} value={group.name}>          {group.name}        </Select.Option>      ));      const intentionState = this.props.intentionState || "";      return (        <div className="user-content">          <ShowModalDiv ShowModal={this.state.showModal} />          <div className="content-title" style={{ marginBottom: 10 }}>            <span style={{ fontWeight: 900, fontSize: 16 }}>{!intentionState ? "私有单位客户" : "私有专家客户"}</span>          </div>          <div className="user-search">            <Tabs              defaultActiveKey="1"              onChange={this.callback}              className="test"            >              <TabPane tab="搜索" key="1">                <Button                  type="primary"                  style={{                    float: "right",                    marginTop: 10,                    marginLeft: 10,                    marginRight: 10,                  }}                  onClick={this.addClick}                >                  新增客户                  <Icon type="plus" />                </Button>                <Input                  placeholder="客户名称"                  value={this.state.nameSearch}                  style={{ width: 150, marginRight: 10, marginLeft: 10 }}                  onChange={(e) => {                    this.setState({ nameSearch: e.target.value });                  }}                />                <Select                  placeholder="省"                  style={{ width: 80 }}                  value={this.state.provinceSearch}                  onChange={(e) => {                    this.setState({ provinceSearch: e });                  }}                >                  {this.state.Provinces}                </Select>                <span style={{ marginRight: "10px" }}>                  <Cascader                    options={citySelect()}                    value={this.state.addressSearch}                    placeholder="选择城市"                    onChange={(e, pre) => {                      this.setState({ addressSearch: e });                    }}                  />                </span>                <Select                  style={{ width: 120 }}                  value={this.state.level}                  onChange={(e) => {                    this.setState({ level: e });                  }}                  placeholder="请选择客户等级"                >                  <Select.Option value="0">一般客户</Select.Option>                  <Select.Option value="1">意向客户</Select.Option>                  <Select.Option value="2">重点客户</Select.Option>                </Select>                <RangePicker                  value={[                    this.state.releaseDate[0]                      ? moment(this.state.releaseDate[0])                      : null,                    this.state.releaseDate[1]                      ? moment(this.state.releaseDate[1])                      : null,                  ]}                  onChange={(data, dataString) => {                    this.setState({ releaseDate: dataString });                  }}                />                <Button                  type="primary"                  style={{ marginLeft: "10px", marginRight: 10 }}                  onClick={this.search}                >                  搜索                </Button>                <Button onClick={this.reset}>重置</Button>              </TabPane>              {/*<Button onClick={() => { window.open(globalConfig.context + '/api/admin/customer/downloadTemplate?type=1') }}>下载批量导入模板</Button>               		<Upload               		    name="file"                        action={globalConfig.context + "/api/admin/customer/uploadExcel"}                        beforeUpload={beforeUploadFile}                        showUploadList={false}                        onChange={(info) => {                            if (info.file.status !== 'uploading') {                                console.log(info.file, info.fileList);                            }                            if (info.file.status === 'done') {                                if (!info.file.response.error.length) {                                    message.success(`${info.file.name} 文件上传成功!`);                                    this.loadData();                                } else {                                    message.warning(info.file.response.error[0].message);                                    return;                                };                            } else if (info.file.status === 'error') {                                message.error(`${info.file.name} 文件上传失败。`);                            };                        }} >                        <Button>上传批量内容</Button>                    </Upload>	               {adminData.isSuperAdmin?<Popconfirm title="是否删除?" onConfirm={this.delectRow} okText="是" cancelText="否">							     <Button type="danger" style={{marginLeft:'10px'}}	                       			 disabled={!hasSelected}	                       		 >删除<Icon type="minus" />	                        </Button>	                </Popconfirm>:''	                }*/}              <TabPane tab="操作" key="2">                <AutoComplete                  className="certain-category-search"                  dropdownClassName="certain-category-search-dropdown"                  dropdownMatchSelectWidth={false}                  style={{ width: "120px" }}                  dataSource={options}                  placeholder="输入转交人姓名"                  value={this.state.auto}                  onChange={this.httpChange}                  filterOption={true}                  onBlur={this.blurChange}                  onSelect={this.selectAuto}                  disabled={!hasSelected}                >                  <Input />                </AutoComplete>                <Button                  type="primary"                  // onClick={this.changeAssigner}                  onClick={(e) => {                    e.stopPropagation();                    this.showConfirm();                  }}                  disabled={!hasSelected}                  style={{ marginRight: 10 }}                >                  转交                </Button>                <Button                  type="primary"                  style={{                    float: "right",                    marginTop: 10,                    marginLeft: 10,                    marginRight: 10,                  }}                  onClick={this.addClick}                >                  新增客户                  <Icon type="plus" />                </Button>                {/*<Button type="default" className="addButton" onClick={this.exportExec}>导出excel<Icon type="plus" /></Button>*/}                {/* <div className="clearfix" style={{ marginTop: "5px" }}> */}                <Button                  onClick={(e) => {                    e.stopPropagation(), this.rankO(0);                  }}                  type="primary"                  style={{ marginRight: "10px" }}                  disabled={!hasSelected}                >                  一般客户                </Button>                <Button                  onClick={(e) => {                    e.stopPropagation(), this.rankO(1);                  }}                  type="primary"                  style={{ marginRight: "10px" }}                  disabled={!hasSelected}                >                  意向客户                </Button>                <Button                  onClick={(e) => {                    e.stopPropagation(), this.rankO(2);                  }}                  type="primary"                  disabled={!hasSelected}                >                  重点客户                </Button>                <Button                  style={{ marginLeft: 10 }}                  onClick={(e) => {                    e.stopPropagation(),                      this.zhuanjiaoDetail(this.state.selectedRows[0]);                  }}                  type="primary"                  disabled={!hasSelected || this.state.selectedRows.length > 1}                >                  客户日志                </Button>                <Button                  style={{ marginLeft: 10 }}                  onClick={(e) => {                    e.stopPropagation(), this.showConfirms(this.release);                  }}                  type="primary"                  disabled={!hasSelected}                >                  移除客户                </Button>                <EnterpriseNameChange                  type="journal"                  disabled={                    !(hasSelected && this.state.selectedRows.length === 1)                  }                  style={{ marginLeft: 10 }}                  enterpriseId={                    this.state.selectedRows[0] && this.state.selectedRows[0].id                  }                />              </TabPane>              <TabPane tab="更改表格显示数据" key="3">                <div style={{ marginLeft: 10 }}>                  <ChooseList                    columns={this.state.columns}                    changeFn={this.changeList}                    changeList={this.state.changeList}                    top={55}                    margin={11}                  />                </div>              </TabPane>            </Tabs>          </div>          <div className="patent-table">            <Spin spinning={this.state.loading}>              <Table                size="middle"                className={"intentionCustomerTable"}                columns={                  this.state.changeList                    ? this.state.changeList                    : this.state.columns                }                dataSource={this.state.dataSource}                rowSelection={rowSelection}                pagination={this.state.pagination}                onRowDoubleClick={this.tableRowClick}              />            </Spin>          </div>          <AddIntention            api={this.state.detailApi}            showDesc={this.state.showDesc}            closeDesc={this.closeDesc}          />          <FollowDetail            categoryArr={this.state.categoryArr}            followData={this.state.followData}            visitModul={this.state.visitModul}            closeDesc={this.closeDesc}          />          <IntentionDetail            tabsKey={this.state.tabsKey}            categoryArr={this.state.categoryArr}            detailApi={this.props.detailApi}            IntentionData={this.state.RowData}            modalVisible={this.state.modalVisible}            name={this.state.modalName}            closeDesc={this.closeDesc}            basicState={this.state.basicState}            contactState={this.state.contactState}          />          {this.state.zhuanjiaoVisible ? (            <ZhuanjiaoDetail              cancel={this.zhuanjiaoDetailCancel}              visible={this.state.zhuanjiaoVisible}              id={this.state.zhuanjiaoId}            />          ) : (            ""          )}          {this.state.informationTransferVisible && (            <Modal              visible={this.state.informationTransferVisible}              title="提醒"              onCancel={() => {                this.setState({                  informationTransferVisible: false,                  selList: [],                });              }}              footer={[                <Button                  key="1"                  size="large"                  type={"primary"}                  onClick={() => {                    this.changeAssigner(1);                  }}                >                  需要                </Button>,                <Button                  key="2"                  size="large"                  type={"danger"}                  onClick={() => {                    this.changeAssigner(0);                  }}                >                  不需要                </Button>,              ]}            >              <div style={{ padding: "0px 40px 20px" }}>                请确定,是否一并转交以下信息,如单个资料无法转交成功,则去掉对应“勾选”项,转交单一信息!              </div>              <div style={{ width: "50%", margin: "0 auto" }}>                <Checkbox.Group onChange={e => { this.setState({ selList: e }); }}>                  <Checkbox value={1}>1.需要转交该客户资料</Checkbox>                  <br />                  <Checkbox value={2}>2.需要转交该客户名下的订单</Checkbox>                </Checkbox.Group>              </div>            </Modal>          )}          <textarea id="copyText" style={{ opacity: 0 }} />        </div>      );    },  }));export default IntentionCustomer;
 |