import React, { Component } from "react";
import {
  Button,
  DatePicker,
  Input,
  message,
  Select,
  Spin,
  Table,
  Tabs,
  Cascader,
  AutoComplete,
} from "antd";
import { ShowModal } from "@/tools";
import { ChooseList } from "../../order/orderNew/chooseList";
import $ from "jquery/src/ajax";
import moment from "moment";
import {
  member,
  highTechColumns,
  doubleSoft,
  softWriting,
  patent,
  audit,
  currency,
} from "./highTechConfig";
import { projectStatusList } from "@/dataDic";
import ProjectDetails from "./projectDetails";
import Cascaders from "../../../common/cascaders";
const { TabPane } = Tabs;
const { RangePicker } = DatePicker;
const { Option } = Select;
class HighTech extends Component {
  constructor(props) {
    super(props);
    this.state = {
      tbaindex: 1,
      loading: false,
      changeList: undefined,
      columns: currency,
      status: 0,
      page: 1,
      pagination: {
        defaultCurrent: 1,
        defaultPageSize: 10,
        showQuickJumper: true,
        pageSize: 10,
        onChange: function (page) {
          this.loadData(page);
        }.bind(this),
        showTotal: function (total) {
          return "共" + total + "条数据";
        },
      },
      dataSource: [],
      releaseDate: [],
      searchOrderNo: "",
      searchContractNo: "",
      searchEnterpriseName: "",
      declarationBatch: "",
      projectSituation: "",
      projectAmount: "",
      deps: "",
      thchDeps: "",
      projectType: "",
      projectStatus: "",
      departmentArr: [],
      contactsOption: [],
      contactsOptionData: [],
      visible: false,
    };
    this.resetAll = this.resetAll.bind(this);
    this.changeList = this.changeList.bind(this);
    this.loadData = this.loadData.bind(this);
    this.selectSuperId = this.selectSuperId.bind(this);
    this.supervisor = this.supervisor.bind(this);
    this.httpChange = this.httpChange.bind(this);
    this.selectAuto = this.selectAuto.bind(this);
    this.blurChange = this.blurChange.bind(this);
  }
  changeList(arr) {
    const newArr = [];
    this.state.columns.forEach((item) => {
      arr.forEach((val) => {
        if (val === item.title) {
          newArr.push(item);
        }
      });
    });
    this.setState({
      changeList: newArr,
    });
  }
  loadData(pageNo = "") {
    this.setState({
      loading: true,
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/statistis/selectTaskList",
      data: this.props.searchData
        ? Object.assign(
          {
            pageNo: pageNo || 1,
            pageSize: this.state.pagination.pageSize || 10,
          },
          this.props.searchData
        )
        :
        {
          pageNo: pageNo || 1,
          pageSize: this.state.pagination.pageSize || 10,
          startDate:
            this.state.releaseDate.length > 0
              ? this.state.releaseDate[0]
              : undefined, //开始时间
          endDate:
            this.state.releaseDate.length > 0
              ? this.state.releaseDate[1]
              : undefined, //结束时间
          deps: this.state.deps || undefined, //部门ID
          thchDeps: this.state.thchDeps || undefined, //责任部门ID
          projectStatus: this.state.projectStatus || undefined, //项目类别
          projectType: !this.state.projectType ? undefined : this.state.projectType, //项目分类
          orderNo: this.state.searchOrderNo || undefined, //订单编号
          contractNo: this.state.searchContractNo || undefined, //合同编号
          userName: this.state.searchEnterpriseName || undefined, //企业名称
          declarationBatch: this.state.declarationBatch || undefined, //申报批次
          projectSituation:
            typeof this.state.projectSituation === "number"
              ? this.state.projectSituation
              : undefined, //项目分类
          projectAmount: this.state.projectAmount || undefined, //项目金额
          status: this.state.status,
          thchId: this.state.thchId || undefined, //咨询师/咨询经理id
          taskProjectStatus: this.state.taskProjectStatus || undefined,//项目状态
          sdStatus: this.state.sdStatus,//满意度
        },
      success: function (data) {
        ShowModal(this);
        let theArr = [];
        if (!data.data || !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];
            thisdata.key = (data.data.pageNo - 1) * data.data.pageSize + i + 1;
            theArr.push(thisdata);
          }
          this.state.pagination.current = data.data.pageNo;
          this.state.pagination.total = data.data.totalCount;
          if (data.data && data.data.list && !data.data.list.length) {
            this.state.pagination.current = 0;
            this.state.pagination.total = 0;
          }
          this.setState({
            pagination: this.state.pagination,
            page: pageNo,
            dataSource: theArr,
          });
        }
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  }
  resetAll() {
    this.setState(
      {
        newArray: [],
        releaseDate: [],
        searchOrderNo: "",
        searchContractNo: "",
        searchEnterpriseName: "",
        declarationBatch: "",
        projectSituation: "",
        projectAmount: "",
        projectType: "",
        deps: "",
        thchDeps: "",
        projectStatus: "",
        columns: currency,
        status: 0,
        thchId: "",
        auto: "",
        taskProjectStatus: "",
        sdStatus: undefined,
      },
      () => {
        this.Cascaders1.empty();
        this.Cascaders2.empty();
        this.defaultcolumns();
        this.loadData();
      }
    );
  }
  //项目类别
  selectSuperId() {
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/ProjectSize/getAllCname",
      data: {
        flag: 0,
      },
      success: function (data) {
        let theArr = [];
        let newTheArr = []
        let thedata = data.data;
        if (!thedata) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        }
        for (let i = 0; i < data.data.length; i++) {
          let theData = data.data[i];
          theArr.push(