import React from "react";
import $ from "jquery/src/ajax";
import "@/manageCenter/financialManage/distribute/public.less";
import {
  Button,
  Form,
  Input,
  Select,
  Spin,
  Table,
  message,
  Modal,
  Tabs,
  Tag,
} from "antd";
import Assign from "@/manageCenter/publicComponent/assign";
import ResolutionDetail from "@/resolutionDetail";
import OrderRiZi from "@/orderRiZi.jsx";
import {
  getProcessStatus,
  getLiquidationStatus,
  getApprovedState,
  splitUrl,
  getProjectStatus,
  getboutique,
  ShowModal,
} from "@/tools";
import ShowModalDiv from "@/showModal.jsx";
// import ResolutionPro from "../task/resolutionPro";
const FormItem = Form.Item;
const { TabPane } = Tabs;
const PersonnelAll = React.createClass({
  loadData(pageNo) {
    this.state.data = [];
    this.setState({
      page: pageNo,
      loading: true,
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/orderProject/orderTaskList",
      data: {
        pageNo: pageNo || 1,
        pageSize: this.state.pagination.pageSize,
        specially: 1, //经理
        name: this.state.nameSearch, //客户名称
        orderNo: this.state.orderNoSearch, //订单编号
        taskId: this.state.taskNoSearch, //任务编号
        depId: this.state.departmenttSearch, //订单部门
        taskStatus: this.state.taskStatus, //任务状态
        adminName: this.state.adminName, //任务受理人
        outsource: 1,
      },
      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];
            if (thisdata.splitList) {
              thisdata.splitList.forEach((item) => {
                item.key = item.id;
              });
            }
            theArr.push({
              key: thisdata.id,
              orderNo: thisdata.orderNo, //订单编号
              id: thisdata.id, //任务ID
              taskName: thisdata.taskName, //名称
              cname: thisdata.cname, //项目品类
              receiverName: thisdata.receiverName, //受理人
              projectStatus: thisdata.projectStatus, //项目状态
              taskStatus: thisdata.taskStatus, //任务状态
              taskDate: thisdata.taskDate, //分配时间
              commodityQuantity: thisdata.commodityQuantity, //数量
              userName: thisdata.userName, //用户名
              depName: thisdata.depName, //部门名称
              splitStatus: thisdata.splitStatus, //拆分状态
              splitList: thisdata.splitList,
            });
          }
        }
        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({
          dataSource: theArr,
          pagination: this.state.pagination,
        });
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },
  getInitialState() {
    return {
      searchMore: true,
      assignVisible: false,
      releaseDate: [],
      roleName: "",
      boHuivisible: false,
      departmentArr: [],
      selectedRowKeys: [],
      selectedRows: [],
      paginations: false,
      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: "id",
          key: "id",
        },
        {
          title: "任务名称",
          dataIndex: "taskName",
          key: "taskName",
        },
        {
          title: "订单编号",
          dataIndex: "orderNo",
          key: "orderNo",
        },
        {
          title: "业务类别",
          dataIndex: "cname",
          key: "cname",
        },
        {
          title: "客户名称",
          dataIndex: "userName",
          key: "userName",
        },
        {
          title: "项目状态",
          dataIndex: "projectStatus",
          key: "projectStatus",
          render: (text) => {
            return getProjectStatus(text);
          },
        },
        {
          title: "分配时间",
          dataIndex: "taskDate",
          key: "taskDate",
        },
        {
          title: "任务数量",
          dataIndex: "commodityQuantity",
          key: "commodityQuantity",
          render: (text, record) => {
            if (record.splitStatus == 1) {
              return (
                <span>
                  {text}{" "}
                  <Tag color="#108ee9" style={{ float: "right" }}>
                    已拆
                  </Tag>
                </span>
              );
            } else {
              return text;
            }
          },
        },
        {
          title: "订单部门",
          dataIndex: "depName",
          key: "depName",
        },
        {
          title: "操作",
          dataIndex: "caozuo",
          key: "caouzo",
          render: (text, record) => {
            return (
              <div>
                <Button
                  type="primary"
                  style={{ margin: "0 10px" }}
                  disabled={record.splitStatus == 1 ? true : false}
                  onClick={(e) => {
                    e.stopPropagation(), this.evaluate(record, "咨询师经理");
                  }}
                >
                  转交
                </Button>
                <Button
                  type="primary"
                  style={{ margin: "0 10px" }}
                  disabled={record.splitStatus == 1 ? true : false}
                  onClick={(e) => {
                    e.stopPropagation(), this.evaluate(record, "咨询师");
                  }}
                >
                  分配任务
                </Button>
                {record.splitStatus == 0 ? (
                  <Button
                    type="primary"
                    style={{ margin: "0 10px" }}
                    onClick={(e) => {
                      e.stopPropagation();
                      this.setState({
                        resolutionVisible: true,
                        resolutionName: record.taskName,
                        resolutionNumber: record.commodityQuantity,
                        resolutionId: record.id,
                      });
                    }}
                  >
                    拆分项目
                  </Button>
                ) : (
                  ""
                )}
              </div>
            );
          },
        },
      ],
      dataSource: [],
      searchTime: [],
      columnsX: [
        {
          title: "业务项目名称",
          dataIndex: "commodityName",
          key: "commodityName",
        },
        {
          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: "contacts",
          key: "contacts",
        },
        {
          title: "负责人电话",
          dataIndex: "contactsMobile",
          key: "contactsMobile",
        },
        {
          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;
          },
        },
      ],
      dataSourceX: [],
      resVisible: false,
    };
  },
  /* 分派 */
  evaluate(record, nub) {
    this.state.assignData = record;
    this.setState(
      {
        nub,
      },
      () => {
        this.setState({
          assignVisible: true,
        });
      }
    );
  },

  componentWillMount() {
    this.departmentList();
    this.loadData();
  },
  tableRowClick(record) {
    this.state.RowData = record;
    this.setState({
      visible: true,
    });
    this.xiangqing(record.orderNo);
    this.xiangmu(record.orderNo);
  },
  // 拆分详细
  showRes(record) {
    this.setState({
      resVisible: true,
      resRecord: record,
    });
  },
  resCancel() {
    this.setState({
      resVisible: false,
    });
  },
  //订单详情
  xiangqing(orderNos) {
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
      data: {
        orderNo: orderNos,
      },
      success: function (data) {
        if (data.error.length || data.data.list == "") {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          let thisdata = data.data;
          this.setState({
            orderNo: thisdata.orderNo, //订单编号
            contractNo: thisdata.contractNo, //合同编号
            userName: thisdata.userName, //客户名称
            signDate: thisdata.signDate, //签单时间
            processStatus: thisdata.processStatus, //流程状态
            liquidationStatus: thisdata.liquidationStatus, //结算状态
            contacts: thisdata.contacts, //企业联系人
            contactMobile: thisdata.contactMobile, //联系人电话
            legalPerson: thisdata.legalPerson, //法人
            legalPersonTel: thisdata.legalPersonTel, //法人电话
            firstAmount: thisdata.firstAmount, //签单金额
            totalAmount: thisdata.totalAmount, //首付金额
            approval: thisdata.approval, //特批状态
            settlementAmount: thisdata.settlementAmount, //已收款项
            orderRemarks: thisdata.orderRemarks, //订单留言
            orgCodeUrl: thisdata.contractPictureUrl
              ? splitUrl(
                  thisdata.contractPictureUrl,
                  ",",
                  globalConfig.avatarHost + "/upload"
                )
              : [], //图片地址
            replenishUrl: thisdata.agreementUrl
              ? splitUrl(
                  thisdata.agreementUrl,
                  ",",
                  globalConfig.avatarHost + "/upload"
                )
              : [],
            salesmanName: thisdata.salesmanName, //营销员名称
            salesmanMobile: thisdata.salesmanMobile, //营销员电话
            financeName: thisdata.financeName, //财务名称
            financeMobile: thisdata.financeMobile, //财务电话
            oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
            oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
            nowFinance: thisdata.nowFinance, //财务名称
            nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
            depName: thisdata.depName, //订单部门
          });
        }
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },
  //项目列表
  xiangmu(orderNos) {
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
      data: {
        orderNo: orderNos,
      },
      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];
            theArr.push({
              key: i,
              id: thisdata.id,
              orderNo: thisdata.orderNo, //订单编号
              commodityId: thisdata.commodityId, //项目ID
              commodityName: thisdata.commodityName, //项目名称
              cname: thisdata.cname, //项目类别
              commodityPrice: thisdata.commodityPrice, //项目价格
              commodityQuantity: thisdata.commodityQuantity, //项目数量
              main: thisdata.main, //是否为主要任务
              taskComment: thisdata.taskComment, //任务说明
              contacts: thisdata.contacts, //联系人
              contactsMobile: thisdata.contactsMobile, //联系人电话
              taskStatus: thisdata.taskStatus, //是否分配
              splitStatus: thisdata.splitStatus,
            });
          }
        }
        this.setState({
          dataSourceX: theArr,
        });
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  },
  //关闭详情
  visitCancel() {
    this.setState({
      visible: false,
    });
    this.loadData();
  },
  visitOk() {
    this.setState({
      visible: false,
    });
    this.reset();
  },
  closeDesc(e, s) {
    this.state.showDesc = e;
    if (s) {
      this.loadData(this.state.page);
    }
  },
  closeAssign(e, s) {
    this.state.roleName = "";
    this.state.assignVisible = e;
    if (s) {
      this.loadData(this.state.page);
    }
  },
  nextCancel() {
    this.setState({
      addnextVisible: false,
    });
  },
  //点击打卡项目详情
  tableRowClickX(record) {
    this.setState({
      jid: record.id, //项目ID
      kid: record.commodityId, //商品ID
      commodityName: record.commodityName, //金额
      commodityPrice: record.commodityPrice, //金额
      commodityQuantity: record.commodityQuantity, //数量
      taskComment: record.taskComment, //备注
      main: record.main.toString(), //是否为主要
      addnextVisible: true,
      addState: 0,
    });
  },
  search() {
    this.loadData();
  },
  reset() {
    this.state.nameSearch = "";
    this.state.releaseDate = [];
    this.state.orderNoSearch = "";
    this.state.taskNoSearch = "";
    this.state.departmenttSearch = undefined;
    this.state.distribution = undefined;
    this.loadData(this.state.page);
  },
  searchSwitch() {
    this.setState({
      searchMore: !this.state.searchMore,
    });
  },
  //部门
  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);
          }
          thedata = {};
        } 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)
    );
  },
  resolutionCancel() {
    this.setState({
      resolutionVisible: false,
    });
  },
  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();
  },
  render() {
    const expandedRowRender = (e) => {
      const data = e.splitList;
      let columns = [];
      if (e.splitList instanceof Array && e.splitList.length) {
        columns = [
          {
            title: "任务编号",
            dataIndex: "splitSuper",
            key: "splitSuper",
            render: (text, record) => {
              return text + "-" + record.splitId;
            },
          },
          {
            title: "任务名称",
            dataIndex: "taskName",
            key: "taskName",
          },
          {
            title: "订单编号",
            dataIndex: "orderNo",
            key: "orderNo",
          },
          {
            title: "业务类别",
            dataIndex: "cname",
            key: "cname",
          },
          {
            title: "客户名称",
            dataIndex: "userName",
            key: "userName",
          },
          {
            title: "项目状态",
            dataIndex: "projectStatus",
            key: "projectStatus",
            render: (text) => {
              return getProjectStatus(text);
            },
          },
          {
            title: "分配时间",
            dataIndex: "taskDate",
            key: "taskDate",
          },
          {
            title: "任务数量",
            dataIndex: "commodityQuantity",
            key: "commodityQuantity",
          },
          {
            title: "订单部门",
            dataIndex: "depName",
            key: "depName",
          },
          {
            title: "拆分操作人",
            dataIndex: "splitAname",
            key: "splitAname",
          },
          {
            title: "项目负责人",
            dataIndex: "receiverName",
            key: "receiverName",
          },
          {
            title: "拆分时间",
            dataIndex: "splitTimes",
            key: "splitTimes",
          },
          {
            title: "操作",
            dataIndex: "caozuo",
            key: "caouzo",
            render: (text, record) => {
              return (
                <div>
                  <Button
                    type="primary"
                    style={{ margin: "0 10px" }}
                    disabled={record.distributeSign == 1 ? true : false}
                    onClick={(e) => {
                      e.stopPropagation(), this.evaluate(record, "咨询师经理");
                    }}
                  >
                    转交
                  </Button>
                  <Button
                    type="primary"
                    style={{ margin: "0 10px" }}
                    disabled={record.distributeSign == 1 ? true : false}
                    onClick={(e) => {
                      e.stopPropagation(), this.evaluate(record, "咨询师");
                    }}
                  >
                    分配任务
                  </Button>
                </div>
              );
            },
          },
        ];
        return (
          <Table
            columns={columns}
            dataSource={data}
            pagination={false}
            onRowClick={this.tableRowClick.bind(this)}
          />
        );
      } else {
        columns = [];
        return (
          <p style={{ fontWeight: "bold", color: "red", textAlign: "center" }}>
            此项目暂未拆分
          </p>
        );
      }
    };
    const rowSelection = {
      selectedRowKeys: this.state.selectedRowKeys,
      onChange: (selectedRowKeys, selectedRows) => {
        this.setState({
          selectedRows: selectedRows.slice(-1),
          selectedRowKeys: selectedRowKeys.slice(-1),
        });
      },
    };
    const formItemLayout = {
      labelCol: { span: 8 },
      wrapperCol: { span: 14 },
    };
    let departmentArr = this.state.departmentArr || [];
    return (
      <div className="user-content">
        123
      </div>
    );
  },
});

export default PersonnelAll;
