| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | import React, { Component } from "react";import { AutoComplete, Input, message, Select } from "antd";import $ from "jquery/src/ajax";class StaffSearch extends Component {  constructor(props) {    super(props);    this.state = {      superior: '',      customerArr: [],      loading: false,    }    this.httpChange = this.httpChange.bind(this);    this.supervisor = this.supervisor.bind(this);    this.selectAuto = this.selectAuto.bind(this);  }  httpChange(e) {    if (e.length >= 1) {      this.supervisor(e);    }    this.setState({      superior: e    })    this.props.onBlurText({ title: e });    if (!e) {      this.props.onBlurChange({ title: e, value: undefined });    }  }  supervisor(e) {    this.setState({      loading: true    });    $.ajax({      method: "post",      dataType: "json",      crossDomain: false,      url: globalConfig.context + "/api/admin/organization/selectName",      data: {        name: e      },      success: function (data) {        if (data.error.length === 0) {          this.setState({            customerArr: data.data,          });        } else {          message.error(data.error[0].message)        }      }.bind(this),    }).always(function () {      this.setState({        loading: false      });    }.bind(this));  }  selectAuto(value) {    let theType = '';    let contactLists = this.state.customerArr || [];    if (value) {      contactLists.map(function (item) {        if (item.name == value.toString()) {          theType = item.id;        }      });    }    this.setState({      superior: value    })    this.props.onBlurChange({ title: value, value: theType });  }  render() {    const options = this.state.customerArr.map((group, index) =>      <Select.Option key={index} value={group.name}>{group.name}</Select.Option>    )    return (      <AutoComplete        className="certain-category-search"        dropdownClassName="certain-category-search-dropdown"        dropdownMatchSelectWidth={false}        // size="large"        style={{ width: this.props.width || '200px' }}        dataSource={options}        placeholder={this.props.placeholder}        value={this.state.superior ? this.state.superior : this.props.valueName}        onChange={this.httpChange}        filterOption={true}        onSelect={this.selectAuto}      >        <Input />      </AutoComplete>    )  }}export default StaffSearch;
 |