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
} from "@/tools";
import ImgList from "../../../common/imgList";
import {ChooseList} from "../../order/orderNew/chooseList";
import {getProjectName} from "../../../tools";
import OrderItemStatus from "../../../common/orderItemStatus";
import EnterpriseNameChange from "../../../common/enterpriseNameChange";
import ContentUrl from "../../order/orderNew/contentUrl";
const FormItem = Form.Item;
const outsourcingPaiDan = React.createClass({
  loadData(pageNo) {
    this.state.data = [];
    this.setState({
      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.processStatus,
        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,
            });
          }
        }
        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,
      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 
{this.judgeFenpai(recard)}
;
          },
        },
      ],
      columnsX: [
        {
          title: "业务项目名称",
          dataIndex: "commodityName",
          key: "commodityName",
          render: (text) => {
            return text && text.length > 6 ? (
              {text.substr(0, 8)}...
            ) : (
              text
            );
          },
        },
        {
          title: "项目类别",
          dataIndex: "cname",
          key: "cname",
        },
        {
          title: "项目数量",
          dataIndex: "commodityQuantity",
          key: "commodityQuantity",
          render: (text, record) => {
            if (record.splitStatus == 1) {
              return (
                
                  {text}{" "}
                   {
                      e.stopPropagation();
                      this.showRes(record);
                    }}
                  >
                    已拆
                  
                
              );
            } else {
              return text;
            }
          },
        },
        {
          title: "服务市价(万元)",
          dataIndex: "commodityPrice",
          key: "commodityPrice",
        },
        {
          title: "项目状态",
          dataIndex: "projectStatus",
          key: "projectStatus",
          render: (text) => {
            return getProjectName(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 ? (
              {text.substr(0, 8)}...
            ) : (
              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 getProjectName(text);
          },
        },
      ],
      dataSource: [],
      searchTime: [,],
    };
  },
  /* 判断是否有分派按钮 */
  judgeFenpai(recard) {
    if (recard.approval === 2) {
      if (recard.financeId === null || "") {
        return (
          
        );
      } else {
        return undefined;
      }
    } else if (recard.processStatus <= 2) {
      return (
        
      );
    } 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.loadData();
  },
  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",
      });
    }
  },
  // 拆分详细
  showRes(record) {
    this.setState({
      resVisible: true,
      resRecord: record,
    });
  },
  resCancel() {
    this.setState({
      resVisible: false,
    });
  },
  //外包详情
  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,
              sort: thisdata.cSort,
            });
          }
        }
        this.setState({
          dataSourceX: theArr,
          pagination: false,
        });
      }.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({
          orderUid: thisData.uid,
          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"
              )
            : [],
            contentUrl:thisData.serviceContent
            ? splitUrl(
                thisData.serviceContent,
                ",",
                globalConfig.avatarHost + "/upload"
              )
            : [], //图片地址
          orderNo: thisData.orderNo, //订单编号
          buyerId: thisData.buyerId,
          depName: thisData.depName,
          deleteSign:thisData.deleteSign,
        });
      }.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,
    });
  },
  getOrderLog() {
    this.setState({
      avisible: true,
    });
    this.rizhi();
  },
  closeModal() {
    this.setState({
      visible: false,
      modKey: "1",
      width: "800px",
    });
  },
  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.processStatus = [];
    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;
    const theData = this.state.orderList || {};
    const formItemLayout = {
      labelCol: { span: 10 },
      wrapperCol: { span: 12 },
    };
    const jsDate = this.state.jsDate || [];
    return (
      
        {this.state.resVisible ? (
          
        ) : (
          ""
        )}
        
          外省外包列表
        
        
          
            
               {
                    this.setState({ nameSearch: e.target.value });
                  }}
              />
               {
                    this.setState({ orderNoSearch: e.target.value });
                  }}
              />
              
              下单时间 :
               {
                    this.setState({ releaseDate: dataString });
                  }}
              />
              
              
            
          
          
            
              
            
          
        
        
        
          {this.state.visible ? 
            
                  
                
              }
            >
              
                {this.state.modKey === "1" ?  : }
              
              
                
                  
                    提示:查看备注请点击表格左侧加号按钮~
                  
                  
                    
                       (
                          {record.remarks}
                        )}
                        scroll={{ x: 300, y: 0 }}
                      />
                    
                  
                
              
            
           : }
        
        
        
          
        
      
    );
  },
});
export default outsourcingPaiDan;