import React from "react";
import $ from "jquery/src/ajax";
import moment from "moment";
import "./public.less";
import {
  Button,
  Form,
  Input,
  Select,
  Spin,
  Table,
  message,
  DatePicker,
  Modal,
  Upload,
  Tabs,
  Tag
} from "antd";
import Assign from "@/manageCenter/publicComponent/assign";
import ResolutionDetail from "@/resolutionDetail";
import {
  getjiedian,
  getProcessStatus,
  getApproval,
  getNewOrderType,
  getLiquidationStatus,
  getProjectStatus,
  splitUrl,
  getprovince,
  getRefundStatus
} from "@/tools";
import ImgList from "../../../common/imgList";
import {ChooseList} from "../../order/orderNew/chooseList";
const FormItem = Form.Item;

const outsourcingPaiDan = React.createClass({
  departmentList() {
    this.setState({
      loading: true,
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/organization/selectSuperId",
      data: {},
      success: function (data) {
        let thedata = data.data;
        let theArr = [];
        if (!thedata) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          thedata.map(function (item, index) {
            theArr.push({
              key: index,
              name: item.name,
              id: item.id,
            });
          });
        }
        this.setState({
          departmentArr: theArr,
        });
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },
  loadData(pageNo) {
    this.state.data = [];
    this.setState({
      selectedRowKeys: [],
      selectedRowKey: [],
      page: pageNo,
      loading: true,
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/financial/allUnassignedOrder",
      data: {
        pageNo: pageNo || 1,
        pageSize: this.state.pagination.pageSize,
        buyerName: this.state.nameSearch, //客户名称
        orderNo: this.state.orderNoSearch,
        startTime: this.state.releaseDate[0],
        endTime: this.state.releaseDate[1],
        processStatus: this.state.processStatusSearch,
        contractNo: this.state.contractNoSearch,
        departmentId: this.state.departmenttList,
        outsource: 1,
      },
      success: function (data) {
        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];
            theArr.push({
              key: i,
              orderNo: thisdata.orderNo,
              approval: thisdata.approval,
              orderType: thisdata.orderType,
              processStatus: thisdata.processStatus,
              signTotalAmount: thisdata.signTotalAmount,
              buyerName: thisdata.buyerName,
              sellerName: thisdata.sellerName,
              createTime: thisdata.createTime
                ? new Date(thisdata.createTime).toLocaleString()
                : "",
              signTime: thisdata.signTime,
              contractNo: thisdata.contractNo,
              financeId: thisdata.financeId,
              departmentName: thisdata.departmentName,
              outsourceName: thisdata.outsourceName,
            });
          }
        }
        this.state.pagination.total = data.data.totalCount;
        this.state.pagination.current = data.data.pageNo;
        if (data.data && data.data.list && !data.data.list.length) {
          this.state.pagination.current = 0;
          this.state.pagination.total = 0;
        }
        this.setState({
          totalPage: data.data.totalPage,
          dataSource: theArr,
          pagination: this.state.pagination,
        });
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },
  getInitialState() {
    return {
      rotateDeg: 0,
      searchMore: true,
      assignVisible: false,
      releaseDate: [],
      totalPage: 0,
      attachmentUrl: [],
      pictureUrl: [],
      processStatusSearch: "2",
      boHuivisible: false,
      selectedRowKeys: [],
      selectedRows: [],
      modKey: "1",
      width: "800px",
      loading: 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: "orderNo",
          key: "orderNo",
        },
        {
          title: "合同编号",
          dataIndex: "contractNo",
          key: "contractNo",
        },
        {
          title: "下单时间",
          dataIndex: "createTime",
          key: "createTime",
        },
        {
          title: "签单时间",
          dataIndex: "signTime",
          key: "signTime",
        },
        {
          title: "签单客户",
          dataIndex: "buyerName",
          key: "buyerName",
          render: (text) => {
            return text && text.length > 8 ? text.substr(0, 8) + "..." : text;
          },
        },
        {
          title: "外包公司",
          dataIndex: "outsourceName",
          key: "outsourceName",
          render: (text) => {
            return text && text.length > 8 ? text.substr(0, 8) + "..." : text;
          },
        },
        {
          title: "流程状态",
          dataIndex: "processStatus",
          key: "processStatus",
          render: (text) => {
            return getProcessStatus(text);
          },
        },
        {
          title: "订单部门",
          dataIndex: "departmentName",
          key: "departmentName",
          render: (text) => {
            return text && text.length > 8 ? text.substr(0, 8) + "..." : text;
          },
        },
        {
          title: "订单总金额(万)",
          dataIndex: "signTotalAmount",
          key: "signTotalAmount",
        },
        {
          title: "是否特批",
          dataIndex: "approval",
          key: "approval",
          render: (text) => {
            return getApproval(text);
          },
        },
        {
          title: "订单负责人",
          dataIndex: "sellerName",
          key: "sellerName",
        },
        {
          title: "操作",
          dataIndex: "caozuo",
          key: "caouzo",
          render: (text, recard) => {
            return <div>{this.judgeFenpai(recard)}</div>;
          },
        },
      ],
      columnsX: [
        {
          title: "业务项目名称",
          dataIndex: "commodityName",
          key: "commodityName",
          render: (text) => {
            return text && text.length > 6 ? (
              <span title={text}>{text.substr(0, 8)}...</span>
            ) : (
              text
            );
          },
        },
        {
          title: "项目类别",
          dataIndex: "cname",
          key: "cname",
        },
        {
          title: "项目数量",
          dataIndex: "commodityQuantity",
          key: "commodityQuantity",
          render: (text, record) => {
            if (record.splitStatus == 1) {
              return (
                <span>
                  {text}{" "}
                  <Tag
                    color="#108ee9"
                    onClick={(e) => {
                      e.stopPropagation();
                      this.showRes(record);
                    }}
                  >
                    已拆
                  </Tag>
                </span>
              );
            } else {
              return text;
            }
          },
        },
        {
          title: "服务市价(万元)",
          dataIndex: "commodityPrice",
          key: "commodityPrice",
        },
        {
          title: "项目状态",
          dataIndex: "projectStatus",
          key: "projectStatus",
          render: (text) => {
            return getProjectStatus(text);
          },
        },
        {
          title: "证书编号",
          dataIndex: "certificateNumber",
          key: "certificateNumber",
        },
        {
          title: "是否主要项目",
          dataIndex: "main",
          key: "main",
          render: (text) => {
            return text ? "是" : "否";
          },
        },
        {
          title: "项目说明",
          dataIndex: "taskComment",
          key: "taskComment",
          render: (text) => {
            return text && text.length > 8 ? (
              <span title={text}>{text.substr(0, 8)}...</span>
            ) : (
              text
            );
          },
        },
      ],
      columnsY: [
        {
          title: "流程",
          dataIndex: "processName",
          key: "processName",
        },
        {
          title: "操作人",
          dataIndex: "adminName",
          key: "adminName",
        },
        {
          title: "时间",
          dataIndex: "createDate",
          key: "createDate",
        },
      ],
      columnsW: [
        {
          title: "外包名称",
          dataIndex: "name",
          key: "name",
        },
        {
          title: "联系人",
          dataIndex: "contacts",
          key: "contacts",
        },
        {
          title: "联系人电话",
          dataIndex: "contactsMobile",
          key: "contactsMobile",
        },
        {
          title: "地址",
          dataIndex: "ProvinceCity",
          key: "ProvinceCity",
          render: (test) => {
            return test[0] === null
              ? ""
              : getprovince(test[0]) +
                  "/" +
                  getprovince(test[1]) +
                  "/" +
                  getprovince(test[2]);
          },
        },
        {
          title: "地址详情",
          dataIndex: "address",
          key: "address",
          render: (text) => {
            return text && text.length > 8 ? text.substr(0, 8) + "..." : text;
          },
        },
        {
          title: "创建时间",
          dataIndex: "createTimes",
          key: "createTimes",
        },
        {
          title: "任务名称",
          dataIndex: "tname",
          key: "tname",
        },
        {
          title: "合同编号",
          dataIndex: "contractNo",
          key: "contractNo",
        },
        {
          title: "项目状态",
          dataIndex: "projectStatus",
          key: "projectStatus",
          render: (text) => {
            return getProjectStatus(text);
          },
        },
      ],
      dataSource: [],
      searchTime: [,],
    };
  },

  /* 判断是否有分派按钮 */
  judgeFenpai(recard) {
    if (recard.approval === 2) {
      if (recard.financeId === null || recard.financeId === "") {
        return (
          <Button
            type="primary"
            onClick={(e) => {
              e.stopPropagation(), this.evaluate(recard);
            }}
          >
            分派
          </Button>
        );
      } else {
        return undefined;
      }
    } else if (recard.processStatus <= 2) {
      return (
        <Button
          type="primary"
          onClick={(e) => {
            e.stopPropagation(), this.evaluate(recard);
          }}
        >
          分派
        </Button>
      );
    } else {
      return undefined;
    }
  },

  jdDate(orderNo) {
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
      data: {
        orderNo: orderNo,
      },
      success: function (data) {
        let thisData = data.data;
        if (!thisData.length) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
          thisData = {};
        } else {
          this.setState({
            jsDate: thisData,
          });
        }
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },

  /* 分派 */
  evaluate(recard) {
    this.state.assignData = recard;
    this.setState({
      assignVisible: true,
    });
  },
  /* 驳回 */
  reject(recard) {
    this.setState({
      bohuiData: recard,
      boHuiVisible: true,
      content: "",
    });
  },
  boHuiOk() {
    this.setState({
      boHuiVisible: false,
    });
    if (
      this.state.pagination.current == this.state.totalPage &&
      this.state.pagination.total % 10 == 1
    ) {
      this.loadData(this.state.page - 1);
    } else {
      this.loadData(this.state.page);
    }
  },
  boHuiCancel() {
    this.setState({
      boHuiVisible: false,
    });
  },
  componentWillMount() {
    this.departmentList();
    this.loadData();
  },

  // 拆分详细
  showRes(record) {
    this.setState({
      resVisible: true,
      resRecord: record,
    });
  },
  resCancel() {
    this.setState({
      resVisible: false,
    });
  },

  tableRowClick(record) {
    this.state.RowData = record;
    this.setState({
      showDesc: true,
      visible: true,
      orderNo: record.orderNo,
      modKey: "1",
    });
    this.jdDate(record.orderNo);
    this.loadXmu(record);
    this.loadModal(record);
  },
  //详情
  callBack(key) {
    if (key === "2") {
      this.setState({
        modKey: key,
        width: "1200px",
      });
      this.loadWaiBao();
    }
    if (key === "1") {
      this.setState({
        modKey: key,
        width: "800px",
      });
    }
    if (this.state.pictureUrl.length) {
      let picArr = [];
      this.state.pictureUrl.map(function (item) {
        if (item.response && item.response.data && item.response.data.length) {
          picArr.push(item.response.data);
        }
      });
    }
    if (key === "3") {
      this.setState({
        modKey: key,
        width: "800px",
      });
      this.setState({
        loading: true,
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url:
          globalConfig.context + "/api/admin/outsourceOrg/orderOutsourceDtails",
        data: {
          orderNo: this.state.orderNo,
        },
        success: function (data) {
          let thisdata = data.data;
          this.setState({
            id: thisdata.id,
            createTimes: thisdata.createTimes,
            auditTimes: thisdata.auditTimes,
            remarks: thisdata.remarks,
            attachmentUrl: thisdata.attachmentUrl
              ? splitUrl(
                  thisdata.attachmentUrl,
                  ",",
                  globalConfig.avatarHost + "/upload"
                )
              : [],
            pictureUrl: thisdata.pictureUrl
              ? splitUrl(
                  thisdata.pictureUrl,
                  ",",
                  globalConfig.avatarHost + "/upload"
                )
              : [], //图片地址
            amount: thisdata.amount,
            companyName: thisdata.companyName,
            refundStatus: thisdata.refundStatus,
            outsourceRemarks: thisdata.outsourceRemarks,
            unitNumber: thisdata.unitNumber,
            unitPrice: thisdata.unitPrice,
          });
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    }
  },
  //外包详情
  loadWaiBao() {
    $.ajax({
      method: "get",
      dataType: "json",
      rossDomain: false,
      url:
        globalConfig.context +
        "/api/admin/outsourceOrg/selectOrderOutsourceOrg",
      data: {
        orderNo: this.state.orderNo,
      },
      success: function (data) {
        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.length; i++) {
            let thisdata = data.data[i];
            let ProvinceCityArr = [];
            let ProvinceS = thisdata.province; //省
            let citys = thisdata.city; //市
            let Areas = thisdata.area; //区
            ProvinceCityArr.push(ProvinceS, citys, Areas);
            theArr.push({
              key: i,
              id: thisdata.id,
              name: thisdata.name,
              contacts: thisdata.contacts, //订单编号
              contactsMobile: thisdata.contactsMobile,
              ProvinceCity: ProvinceCityArr[0] === null ? [] : ProvinceCityArr,
              province: thisdata.province,
              city: thisdata.city,
              area: thisdata.area,
              address: thisdata.address,
              remarks: thisdata.remarks,
              tid: thisdata.tid,
              createTimes: thisdata.createTimes,
              tname: thisdata.tname,
              contractNo: thisdata.contractNo,
              projectStatus: thisdata.projectStatus,
            });
          }
        }
        this.setState(
          {
            dataSourceW: theArr,
          },
          () => {}
        );
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },
  loadXmu(record) {
    this.state.data = [];
    this.setState({
      loading: true,
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
      data: {
        orderNo: record.orderNo,
      },
      success: function (data) {
        let theArr = [];
        if (!data.data) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          for (let i = 0; i < data.data.length; i++) {
            let thisdata = data.data[i];
            theArr.push({
              key: i,
              id: thisdata.id,
              orderNo: thisdata.orderNo,
              commodityName: thisdata.commodityName,
              commodityPrice: thisdata.commodityPrice,
              commodityQuantity: thisdata.commodityQuantity,
              taskStatus: thisdata.taskStatus,
              taskComment: thisdata.taskComment,
              main: thisdata.main,
              contacts: thisdata.contacts,
              contactsMobile: thisdata.contactsMobile,
              cname: thisdata.cname,
              certificateNumber: thisdata.certificateNumber,
              projectStatus: thisdata.projectStatus,
              splitStatus: thisdata.splitStatus,
            });
          }
        }
        this.setState({
          dataSourceX: theArr,
        });
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },
  loadModal(record) {
    this.state.orderList = [];
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
      data: {
        orderNo: record.orderNo,
      },
      success: function (data) {
        let thisData = data.data;
        if (!thisData) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
          thisData = {};
        }
        this.setState({
          id: thisData.id,
          orderList: thisData,
          approval:
            thisData.approval == 0
              ? thisData.approval.toString()
              : thisData.approval,
          orderRemarks: thisData.orderRemarks,
          orgCodeUrl: thisData.contractPictureUrl
            ? splitUrl(
                thisData.contractPictureUrl,
                ",",
                globalConfig.avatarHost + "/upload"
              )
            : [],
          replenishUrl: thisData.agreementUrl
            ? splitUrl(
                thisData.agreementUrl,
                ",",
                globalConfig.avatarHost + "/upload"
              )
            : [],
          orderNo: thisData.orderNo, //订单编号
          buyerId: thisData.buyerId,
          depName: thisData.depName,
        });
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },
  rizhi() {
    this.setState({
      loading: true,
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: "/api/admin/newOrder/selectOrderLog",
      data: {
        orderNo: this.state.orderNo,
      },
      success: function (data) {
        let theArr = [];
        let thisData = data.data;
        if (!thisData.length) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
          thisData = {};
        } else {
          for (let i = 0; i < data.data.length; i++) {
            let thisdata = data.data[i];
            theArr.push({
              processName: thisdata.processName,
              adminName: thisdata.adminName,
              createDate: thisdata.createDate,
              remarks: thisdata.remarks,
            });
          }
        }
        this.setState({
          dataSourceY: theArr,
        });
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },
  closeOrderLog() {
    this.setState({
      avisible: false,
    });
  },
  load() {
    if (this.state.attachmentUrl) {
      let url = window.location.href.substring(7);
      this.state.attachmentUrl.forEach((e) => {
        window.location.href =
          "http://" +
          url.substring(0, url.indexOf("/")) +
          "/api/admin/outsourceOrg//downloadFile?path=" +
          e.response.data;
      });
    } else {
      message.error("此订单无上传文件");
    }
  },
  getOrderLog() {
    this.setState({
      avisible: true,
    });
    this.rizhi();
  },
  closeModal() {
    this.setState(
      {
        visible: false,
        width: "800px",
      },
      () => {
        this.setState({
          modKey: "1",
        });
      }
    );
  },
  closeDesc(e, s) {
    this.state.showDesc = e;
    if (s) {
      this.loadData(this.state.page);
    }
  },
  closeAssign(e, s) {
    this.state.assignVisible = e;
    if (s) {
      if (
        this.state.pagination.current == this.state.totalPage &&
        this.state.pagination.total % 10 == 1
      ) {
        this.loadData(this.state.page - 1);
      } else {
        this.loadData(this.state.page);
      }
    }
  },
  search() {
    this.loadData();
  },
  downImg() {
    let num = 0;
    for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
      if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
        num = i;
      }
    }
    if (num == this.state.orgCodeUrl.length - 1) {
      return message.warning("已经是最后一张了哦");
    }
    this.state.previewImage = this.state.orgCodeUrl[num + 1].url;
    this.setState({
      previewImage: this.state.previewImage,
      rotateDeg: 0,
    });
  },
  upImg() {
    let num = 0;
    for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
      if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
        num = i;
      }
    }
    if (num == 0) {
      return message.warning("已经是第一张了哦");
    }
    this.state.previewImage = this.state.orgCodeUrl[num - 1].url;
    this.setState({
      previewImage: this.state.previewImage,
      rotateDeg: 0,
    });
  },
  rotate() {
    let rotateDeg = this.state.rotateDeg + 90;
    this.setState({
      rotateDeg,
    });
  },
  downImgs() {
    let num = 0;
    for (let i = 0; i < this.state.replenishUrl.length; i++) {
      if (this.state.replenishUrl[i].url == this.state.previewImage) {
        num = i;
      }
    }
    if (num == this.state.replenishUrl.length - 1) {
      return message.warning("已经是最后一张了哦");
    }
    this.state.previewImage = this.state.replenishUrl[num + 1].url;
    this.setState({
      previewImage: this.state.previewImage,
      rotateDeg: 0,
    });
  },
  upImgs() {
    let num = 0;
    for (let i = 0; i < this.state.replenishUrl.length; i++) {
      if (this.state.replenishUrl[i].url == this.state.previewImage) {
        num = i;
      }
    }
    if (num == 0) {
      return message.warning("已经是第一张了哦");
    }
    this.state.previewImage = this.state.replenishUrl[num - 1].url;
    this.setState({
      previewImage: this.state.previewImage,
      rotateDeg: 0,
    });
  },
  rotates() {
    let rotateDeg = this.state.rotateDeg + 90;
    this.setState({
      rotateDeg,
    });
  },
  reset() {
    this.state.nameSearch = "";
    this.state.releaseDate = [];
    this.state.orderNoSearch = "";
    this.state.departmenttList = undefined;
    this.state.processStatus = [];
    this.state.contractNoSearch = "";
    this.loadData();
  },
  searchSwitch() {
    this.setState({
      searchMore: !this.state.searchMore,
    });
  },
  changeList(arr) {
    const newArr = [];
    this.state.columns.forEach(item => {
      arr.forEach(val => {
        if (val === item.title) {
          newArr.push(item);
        }
      });
    });
    this.setState({
      changeList: newArr
    });
  },
  render() {
    const { RangePicker } = DatePicker;
    const { TabPane } = Tabs;
    var departmentArr = this.state.departmentArr || [];
    const theData = this.state.orderList || {};
    const formItemLayout = {
      labelCol: { span: 8 },
      wrapperCol: { span: 12 },
    };
    const jsDate = this.state.jsDate || [];
    return (
      <div className="user-content">
        {this.state.resVisible ? (
          <ResolutionDetail
            cancel={this.resCancel}
            detail={this.state.resRecord}
            visible={this.state.resVisible}
            id={this.state.resRecord.orderNo}
          />
        ) : (
          ""
        )}
        <div className="content-title">
          <span>外包派单</span>
        </div>
        <Tabs defaultActiveKey="1" className="test">
          <TabPane tab="搜索" key="1">
            <div className="user-search">
              <Input
                  placeholder="客户名称"
                  value={this.state.nameSearch}
                  onChange={(e) => {
                    this.setState({ nameSearch: e.target.value });
                  }}
              />
              <Input
                  placeholder="订单编号"
                  value={this.state.orderNoSearch}
                  onChange={(e) => {
                    this.setState({ orderNoSearch: e.target.value });
                  }}
              />
              <Select
                  placeholder="订单部门"
                  style={{ width: 150, marginRight: 10 }}
                  value={this.state.departmenttList}
                  onChange={(e) => {
                    this.setState({ departmenttList: e });
                  }}
              >
                {departmentArr.map(function (item) {
                  return <Select.Option key={item.id}>{item.name}</Select.Option>;
                })}
              </Select>
              <Select
                  placeholder="流程状态"
                  onChange={(e) => {
                    this.setState({ processStatusSearch: e });
                  }}
                  style={{ width: 160, marginRight: 5 }}
                  value={this.state.processStatusSearch}
              >
                <Option value="2">未分配</Option>
                <Option value="3">已分配</Option>
              </Select>
              <Input
                  placeholder="合同编号"
                  value={this.state.contractNoSearch}
                  onChange={(e) => {
                    this.setState({
                      contractNoSearch: e.target.value,
                    });
                  }}
              />
              <span style={{ marginRight: 10 }}>下单时间 :</span>
              <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"
                  onClick={this.search}
                  style={{ marginLeft: 10 }}
              >
                搜索
              </Button>
              <Button onClick={this.reset}>重置</Button>
            </div>
          </TabPane>
          <TabPane tab="更改表格显示数据" key="2">
            <div style={{ marginLeft: 10 }}>
              <ChooseList
                  columns={this.state.columns}
                  changeFn={this.changeList}
                  changeList={this.state.changeList}
                  top={55}
                  margin={11}
              />
            </div>
          </TabPane>
        </Tabs>
        <div className="patent-table">
          <Spin spinning={this.state.loading}>
            <Table
                columns={
                  this.state.changeList
                      ? this.state.changeList
                      : this.state.columns
                }
              dataSource={this.state.dataSource}
              scroll={{ x: 1500, y: 0 }}
              rowSelection={false}
              size="small"
              bordered
              pagination={this.state.pagination}
              onRowClick={this.tableRowClick.bind(this)}
            />
          </Spin>
        </div>
        <div className="patent-desc">
          {this.state.visible ? <Modal
            maskClosable={false}
            visible={this.state.visible}
            onCancel={this.closeModal}
            width={this.state.width}
            footer=""
            className="admin-desc-content"
          >
            <Tabs
              onChange={this.callBack}
              type="card"
              activeKey={this.state.modKey}
            >
              <TabPane tab="项目概况" key="1">
                {this.state.modKey === "1" ? <Form layout="horizontal" id="demand-form">
                  <Spin spinning={this.state.loading}>
                    <div className="clearfix">
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="订单编号"
                      >
                        <span>{this.state.orderNo}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="签单时间"
                      >
                        <span>{theData.signDate}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="客户名称"
                      >
                        <span>{theData.userName}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="流转状态"
                      >
                        <span>{getProcessStatus(theData.processStatus)}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="订单类型"
                      >
                        <span>{getNewOrderType(theData.orderType)}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="结算状态"
                      >
                        <span>
                          {getLiquidationStatus(theData.liquidationStatus)}
                        </span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="签单总金额(万元)"
                      >
                        <span>{theData.totalAmount}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="首付款(万元)"
                      >
                        <span>{theData.firstAmount}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="已收款(万元)"
                      >
                        <span>{theData.settlementAmount}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="是否特批"
                      >
                        <span>{getApproval(theData.approval)}</span>
                      </FormItem>
                      {/*this.props.data.orderStatus=='6'&&<FormItem className="half-item" {...formItemLayout} label="已退(万元)">
										<span>{this.props.data.refundAmount}</span>
									</FormItem>*/}
                    </div>
                    <div className="clearfix">
                      <FormItem
                        labelCol={{ span: 5 }}
                        wrapperCol={{ span: 18 }}
                        label="合同扫描件"
                      >
                        {/*<Upload*/}
                        {/*  className="demandDetailShow-upload"*/}
                        {/*  listType="picture-card"*/}
                        {/*  fileList={this.state.orgCodeUrl}*/}
                        {/*  onPreview={(file) => {*/}
                        {/*    this.setState({*/}
                        {/*      previewImage: file.url || file.thumbUrl,*/}
                        {/*      previewVisible: true,*/}
                        {/*    });*/}
                        {/*  }}*/}
                        {/*/>*/}
                        {this.state.visible && this.state.modKey === "1" && this.state.orgCodeUrl ? <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
                          <ImgList fileList={this.state.orgCodeUrl} domId={'outsourcingPaiDan1'}/>
                        </div> : <div/>}
                        <Modal
                          maskClosable={false}
                          footer={null}
                          width={"50%"}
                          visible={this.state.previewVisible}
                          onCancel={() => {
                            this.setState({
                              previewVisible: false,
                              rotateDeg: 0,
                            });
                          }}
                        >
                          <img
                            alt=""
                            style={{
                              width: "100%",
                              transform: `rotate(${this.state.rotateDeg}deg)`,
                            }}
                            src={this.state.previewImage || ""}
                          />
                          <Button
                            onClick={this.rotate}
                            style={{
                              position: "relative",
                              left: "50%",
                              transform: "translateX(-50%)",
                            }}
                          >
                            旋转
                          </Button>
                          <Button
                            onClick={this.upImg}
                            style={{
                              position: "absolute",
                              left: -81,
                              top: "50%",
                              transform: "translateY(-50%)",
                            }}
                          >
                            上一张
                          </Button>
                          <Button
                            onClick={this.downImg}
                            style={{
                              position: "absolute",
                              right: -81,
                              top: "50%",
                              transform: "translateY(-50%)",
                            }}
                          >
                            下一张
                          </Button>
                        </Modal>
                        <Button
                          style={{
                            float: "right",
                            marginRight: "140px",
                            marginTop: "20px",
                          }}
                          onClick={this.getOrderLog}
                        >
                          查看订单日志
                        </Button>
                      </FormItem>
                      <FormItem
                        labelCol={{ span: 5 }}
                        wrapperCol={{ span: 18 }}
                        label="补充协议"
                      >
                        {/*<Upload*/}
                        {/*  className="demandDetailShow-upload"*/}
                        {/*  listType="picture-card"*/}
                        {/*  fileList={this.state.replenishUrl}*/}
                        {/*  onPreview={(file) => {*/}
                        {/*    this.setState({*/}
                        {/*      previewImage: file.url || file.thumbUrl,*/}
                        {/*      previewVisibles: true,*/}
                        {/*    });*/}
                        {/*  }}*/}
                        {/*/>*/}
                        {this.state.visible && this.state.modKey === "1" && this.state.replenishUrl ? <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
                          <ImgList fileList={this.state.replenishUrl} domId={'outsourcingPaiDan2'}/>
                        </div> : <div/>}
                        <Modal
                          maskClosable={false}
                          footer={null}
                          width={"50%"}
                          visible={this.state.previewVisibles}
                          onCancel={() => {
                            this.setState({
                              previewVisibles: false,
                              rotateDeg: 0,
                            });
                          }}
                        >
                          <img
                            alt=""
                            style={{
                              width: "100%",
                              transform: `rotate(${this.state.rotateDeg}deg)`,
                            }}
                            src={this.state.previewImage || ""}
                          />
                          <Button
                            onClick={this.rotates}
                            style={{
                              position: "relative",
                              left: "50%",
                              transform: "translateX(-50%)",
                            }}
                          >
                            旋转
                          </Button>
                          <Button
                            onClick={this.upImgs}
                            style={{
                              position: "absolute",
                              left: -81,
                              top: "50%",
                              transform: "translateY(-50%)",
                            }}
                          >
                            上一张
                          </Button>
                          <Button
                            onClick={this.downImgs}
                            style={{
                              position: "absolute",
                              right: -81,
                              top: "50%",
                              transform: "translateY(-50%)",
                            }}
                          >
                            下一张
                          </Button>
                        </Modal>
                      </FormItem>
                    </div>
                    <div className="clearfix">
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="合同编号"
                      >
                        <span>{theData.contractNo}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="订单部门"
                      >
                        <span>{theData.depName}</span>
                      </FormItem>
                    </div>
                    <div className="clearfix">
                      <FormItem
                        labelCol={{ span: 5 }}
                        wrapperCol={{ span: 18 }}
                        label="订单留言"
                      >
                        <p style={{ width: 500, wordWrap: "break-word" }}>
                          {this.state.orderRemarks}
                        </p>
                      </FormItem>
                    </div>
                    <div className="clearfix">
                      <FormItem
                        labelCol={{ span: 5 }}
                        wrapperCol={{ span: 18 }}
                        label="收款节点"
                      >
                        {jsDate.map((item) => {
                          return (
                            <p>
                              {getjiedian(item.dunSubject)} -- {item.money} 万元
                            </p>
                          );
                        })}
                      </FormItem>
                    </div>
                    <div className="clearfix">
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="订单负责人"
                      >
                        <span>{theData.salesmanName}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="订单负责人电话"
                      >
                        <span>{theData.salesmanMobile}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="财务负责人"
                      >
                        <span>{theData.financeName}</span>
                      </FormItem>
                      <FormItem
                        className="half-item"
                        {...formItemLayout}
                        label="财务负责人电话"
                      >
                        <span>{theData.financeMobile}</span>
                      </FormItem>
                    </div>
                    <Modal
                      visible={this.state.avisible}
                      className="admin-desc-content"
                      width="800px"
                      maskClosable={false}
                      title="订单日志"
                      footer={null}
                      onCancel={this.closeOrderLog}
                    >
                      <div className="patent-table">
                        <Spin spinning={this.state.loading}>
                          <Table
                            columns={this.state.columnsY}
                            size="small"
                            bordered
                            dataSource={this.state.dataSourceY}
                            pagination={false}
                          />
                        </Spin>
                      </div>
                    </Modal>
                    <div className="clearfix">
                      <p style={{ fontSize: 18, marginLeft: 20 }}>项目业务</p>
                      <div className="patent-table">
                        <Spin spinning={this.state.loading}>
                          <Table
                            columns={this.state.columnsX}
                            dataSource={this.state.dataSourceX}
                            pagination={false}
                            size="small"
                            bordered
                            onRowClick={this.tableRowClick}
                          />
                        </Spin>
                      </div>
                    </div>
                  </Spin>
                </Form>:<div/>}
              </TabPane>
              <TabPane tab="外包详情" key="2">
                <div className="clearfix">
                  <p style={{ color: "red" }}>
                    提示:查看备注请点击表格左侧加号按钮~
                  </p>
                  <div className="patent-table">
                    <Spin spinning={this.state.loading}>
                      <Table
                        columns={this.state.columnsW}
                        dataSource={this.state.dataSourceW}
                        pagination={false}
                        expandedRowRender={(record) => (
                          <p style={{ margin: 0 }}>{record.remarks}</p>
                        )}
                        scroll={{ x: 300, y: 0 }}
                      />
                    </Spin>
                  </div>
                </div>
              </TabPane>
              <TabPane tab="外包审核" key="3">
                <div className="clearfix">
                  <FormItem
                    className="half-item"
                    {...formItemLayout}
                    label="外包公司"
                  >
                    <span>{this.state.companyName}</span>
                  </FormItem>
                </div>
                <div className="clearfix">
                  <FormItem
                    className="half-item"
                    {...formItemLayout}
                    label="单价(万元)"
                  >
                    <span>{this.state.unitPrice}</span>
                  </FormItem>
                </div>
                <div className="clearfix">
                  <FormItem
                    className="half-item"
                    {...formItemLayout}
                    label="数量(个)"
                  >
                    <span>{this.state.unitNumber}</span>
                  </FormItem>
                </div>
                <div className="clearfix">
                  <FormItem
                    className="half-item"
                    {...formItemLayout}
                    label="总金额(万元)"
                  >
                    <span>{this.state.amount}</span>
                  </FormItem>
                </div>
                <div className="clearfix">
                  <FormItem
                    className="half-item"
                    {...formItemLayout}
                    label="备注"
                  >
                    <span>{this.state.outsourceRemarks}</span>
                  </FormItem>
                </div>
                {/*<div className="clearfix">
								<FormItem className="half-item"
								    {...formItemLayout}
								    label="上传协议文件" >
									<Upload header={{authorization: 'authorization-text'}} action={globalConfig.context + "/api/admin/outsourceOrg/uploadOutsourceFile"}
											data={(e)=>{
												return {
													'sign': e.name.substring(0,e.name.lastIndexOf("."))
												}
											}}
											fileList={this.state.attachmentUrl}
											showUploadList={{showRemoveIcon:false}}
											onPreview={(e)=>{
												let url = window.location.href.substring(7)
												window.location.href="http://"+url.substring(0,url.indexOf("/"))+"/api/admin/outsourceOrg//downloadFile?path="+e.response.data
											}}>
									</Upload>
								</FormItem>
							</div>*/}
                <div className="clearfix">
                  <FormItem
                    labelCol={{ span: 4 }}
                    wrapperCol={{ span: 18 }}
                    label="合同/协议扫描件"
                  >
                    {/*<Upload*/}
                    {/*  className="demandDetailShow-upload"*/}
                    {/*  listType="picture-card"*/}
                    {/*  fileList={this.state.pictureUrl}*/}
                    {/*  onPreview={(file) => {*/}
                    {/*    this.setState({*/}
                    {/*      previewImage: file.url || file.thumbUrl,*/}
                    {/*      previewVisible: true,*/}
                    {/*    });*/}
                    {/*  }}*/}
                    {/*/>*/}
                    {this.state.visible && this.state.modKey === "3" && this.state.pictureUrl ? <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
                      <ImgList fileList={this.state.pictureUrl} domId={'outsourcingPaiDan3'}/>
                    </div> : <div/>}
                    <Modal
                      maskClosable={false}
                      footer={null}
                      visible={this.state.previewVisible}
                      onCancel={() => {
                        this.setState({ previewVisible: false });
                      }}
                    >
                      <img
                        alt=""
                        style={{ width: "100%" }}
                        src={this.state.previewImage || ""}
                      />
                    </Modal>
                  </FormItem>
                </div>
                <div className="clearfix">
                  <hr className="division" />
                  <div className="clearfix">
                    <FormItem
                      className="half-item"
                      {...formItemLayout}
                      label="审核意见"
                    >
                      <span>{this.state.remarks}</span>
                    </FormItem>
                  </div>
                  <div className="clearfix">
                    <FormItem
                      className="half-item"
                      {...formItemLayout}
                      label="审核结果"
                    >
                      <span>{getRefundStatus(this.state.refundStatus)}</span>
                    </FormItem>
                  </div>
                  <div className="clearfix">
                    <FormItem
                      className="half-item"
                      {...formItemLayout}
                      label="审核时间"
                    >
                      <span>{this.state.auditTimes}</span>
                    </FormItem>
                  </div>
                </div>
              </TabPane>
            </Tabs>
          </Modal> : <div/>}
        </div>
        <Assign
          title="订单"
          selApi="/api/admin/financial/distributionFinance"
          data={this.state.assignData}
          fenpaiData={4}
          showDesc={this.state.assignVisible}
          closeDesc={this.closeAssign.bind(this)}
          roleName={"财务专员"}
          requestMethod={"post"}
        />
        <Modal
          visible={this.state.boHuiVisible}
          width="400px"
          title="驳回备注"
          footer=""
          maskClosable={false}
          onOk={this.boHuiOk}
          onCancel={this.boHuiCancel}
        >
          <Form layout="horizontal" onSubmit={this.boHuiSubmit}>
            <Spin spinning={this.state.loading}>
              <FormItem
                labelCol={{ span: 5 }}
                wrapperCol={{ span: 16 }}
                label={
                  <span>
                    <strong style={{ color: "#f00" }}>*</strong>驳回原因
                  </span>
                }
              >
                <Input
                  type="textarea"
                  rows={4}
                  placeholder="请输入驳回原因"
                  value={this.state.content}
                  onChange={(e) => {
                    this.setState({ content: e.target.value });
                  }}
                />
              </FormItem>
              <FormItem wrapperCol={{ span: 12, offset: 5 }}>
                <Button
                  type="primary"
                  htmlType="submit"
                  style={{ marginRight: 20 }}
                >
                  驳回
                </Button>
                <Button
                  type="default"
                  onClick={() => {
                    this.boHuiCancel();
                  }}
                >
                  取消
                </Button>
              </FormItem>
            </Spin>
          </Form>
        </Modal>
      </div>
    );
  },
});

export default outsourcingPaiDan;
