import React from "react";
import $ from "jquery/src/ajax";
import moment from "moment";
import "./public.less";
import "./shouKuan.less";
import {
  Button,
  Form,
  Input,
  Spin,
  Table,
  Select,
  message,
  DatePicker,
  Modal,
  Tabs,
  Col,
  Tag,
  Popconfirm
} from "antd";
import OrderDesc from "../orderDetail/orderDesc";
import ResolutionDetail from "@/resolutionDetail";
import Receivable from "./receivable";
import Assign from "@/manageCenter/publicComponent/assign";
import ReactToPrint from "react-to-print";
import {
  getLiquidationStatus,
  getProcessStatus,
  getApproval,
  getInvoiceStatus,
  getTransactionProject,
  getTaskStatus,
  getNewOrderStatus,
  getProjectStatus,
  getjiedian
} from "@/tools";
import { ChooseList } from "../../order/orderNew/chooseList"
import Project from "../../../../component/project"
import { throws } from "assert";
const FormItem = Form.Item;
const { TabPane } = Tabs;
const { TextArea } = Input;

const ShouKuang = 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, pageSize) {
    this.state.data = [];
    this.state.pagination.pageSize = 10;
    this.setState({
      // selectedRowKeys: [],
      // selectedRowKey: [],
      page: pageNo || this.state.pageNo,
      loadingA: true,
      pagination: this.state.pagination
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/financial/financeList",
      data: {
        pageNo: pageNo || 1,
        pageSize: pageSize || this.state.pagination.pageSize,
        buyerName: this.state.nameSearch, //客户名称
        orderNo: this.state.orderNoSearch,
        startTime: this.state.releaseDate[0],
        endTime: this.state.releaseDate[1],
        startFinalReceivablesTime: this.state.shouKuanDate[0],
        endFinalReceivablesTime: this.state.shouKuanDate[1],
        departmentId: this.state.departmenttList,
        processStatus: this.state.processStatusSearch,
        contractNo: this.state.contractNoSearch,
        liquidationStatus: this.state.liquidationStatus,
        amountStatus: this.state.amountStatus
      },
      success: function(data) {
        let theArr = [];
        if (!data.data || !data.data.pagination.list) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          for (let i = 0; i < data.data.pagination.list.length; i++) {
            let thisdata = data.data.pagination.list[i];
            theArr.push({
              key: thisdata.orderNo,
              orderNo: thisdata.orderNo,
              orderType: thisdata.orderType,
              orderStatus: thisdata.orderStatus,
              sellerName: thisdata.sellerName,
              processStatus: thisdata.processStatus,
              liquidationStatus: thisdata.liquidationStatus,
              approval: thisdata.approval,
              buyerName: thisdata.buyerName,
              actuallyTotalAmount: thisdata.actuallyTotalAmount,
              signTime: thisdata.signTime,
              companyId: thisdata.companyId,
              companyName: thisdata.companyName,
              buyerId: thisdata.buyerId,
              buyerName: thisdata.buyerName,
              contractNo: thisdata.contractNo,
              createTime: thisdata.createTime,
              departmentName: thisdata.departmentName,
              invoiceAmount: thisdata.invoiceAmount,
              finalReceivables: thisdata.finalReceivables,
              finalReceivablesTime: thisdata.finalReceivablesTime,
              signTotalAmount: thisdata.signTotalAmount,
              financeName: thisdata.financeName,
              backStatus: thisdata.backStatus,
              orderReceivables: thisdata.orderReceivables,
              orderArrears: thisdata.orderArrears,
            });
          }
        }
        this.state.pagination.current = data.data.pagination.pageNo;
        this.state.pagination.total = data.data.pagination.totalCount;
        if (
          data.data &&
          data.data.pagination.list &&
          !data.data.pagination.list.length
        ) {
          this.state.pagination.current = 0;
          this.state.pagination.total = 0;
        }
        this.setState({
          totalPage: data.data.pagination.totalPage,
          dataSource: theArr,
          pagination: this.state.pagination,
          totalHui: data.data.count ? data.data.count.signTotalAmount : 0,
          hui: data.data.count ? data.data.count.actuallyTotalAmount : 0
        });
      }.bind(this)
    }).always(
      function() {
        // window.setTimeout(() => {
        this.setState({
          loadingA: false
        });
        // },5000)
      }.bind(this)
    );
  },
  getInitialState() {
    return {
      cuiTabKey: "1",
      //默认搜索无流程状态
      processStatusSearch: [],
      searchMore: true,
      dvisible: false,
      pageNo: 1,
      assignVisibleX: false,
      assignVisibleY: false,
      releaseDate: [],
      shouKuanDate: [],
      assignDataX: [],
      assignDataY: [],
      totalPage: 0,
      // processStatusSearch: "3",
      boHuivisible: false,
      selectedRowKeys: [],
      selectedRows: [],
      loading: false,
      loadingA: false,
      pagination: {
        defaultCurrent: 1,
        defaultPageSize: 10,
        showQuickJumper: true,
        pageSize: 10,
        onChange: function (page) {
          // console.log(page);

          this.setState({
            pageNo: page,
          });
          this.loadData(page);
        }.bind(this),
        showTotal: function (total) {
          return "共" + total + "条数据";
        },
      },
      // 子组件改变的表格title数组
      changeList: undefined,
      proColumns: [
        {
          title: "序号",
          dataIndex: "key",
          key: "key",
        },
        {
          title: "合同编号",
          dataIndex: "contractNo",
          key: "contractNo",
        },
        {
          title: "订单编号",
          dataIndex: "orderNo",
          key: "orderNo",
        },
        // {
        //   title: "项目编号",
        //   dataIndex: "id",
        //   key: "id"
        // },
        {
          title: "客户名称",
          dataIndex: "userName",
          key: "userName",
        },
        {
          title: "订单负责人",
          dataIndex: "salesmanName",
          key: "salesmanName",
        },
        {
          title: "是否主项目",
          dataIndex: "main",
          key: "main",
          render: (text) => {
            return text == 0 ? "否" : "是";
          },
        },
        {
          title: "项目类别",
          dataIndex: "cname",
          key: "cname",
        },
        {
          title: "项目名称",
          dataIndex: "commodityName",
          key: "commodityName",
        },
        {
          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: "certificateNumber",
          key: "certificateNumber",
        },
        {
          title: "项目状态",
          dataIndex: "projectStatus",
          key: "projectStatus",
          render: (text) => {
            return getProjectStatus(text);
          },
        },
        {
          title: "项目说明",
          dataIndex: "taskComment",
          key: "taskComment",
        },
        {
          title: "是否外包",
          dataIndex: "outsource",
          key: "outsource",
          render: (text) => {
            if (text == 0) {
              return "否";
            } else if (text == 1) {
              return "是";
            }
          },
        },
        {
          title: "外包（内部）公司",
          dataIndex: "outsourceName",
          key: "outsourceName",
        },
        {
          title: "外包（内部）价格",
          dataIndex: "outsourcePrice",
          key: "outsourcePrice",
        },
      ],
      qianColumns: [
        {
          title: "序号",
          dataIndex: "key",
          key: "key",
        },
        {
          title: "合同编号",
          dataIndex: "contractNo",
          key: "contractNo",
        },
        {
          title: "订单编号",
          dataIndex: "orderNo",
          key: "orderNo",
        },
        {
          title: "客户名称",
          dataIndex: "userName",
          key: "userName",
        },
        {
          title: "订单负责人",
          dataIndex: "salesmanName",
          key: "salesmanName",
        },
        {
          title: "订单部门",
          dataIndex: "depName",
          key: "depName",
        },
        {
          title: "订单状态",
          dataIndex: "orderStatus",
          key: "orderStatus",
          render: (text) => {
            return getNewOrderStatus(text);
          },
        },
        {
          title: "项目状态",
          dataIndex: "projectStatus",
          key: "projectStatus",
          render: (text) => {
            return getProjectStatus(text);
          },
        },
        {
          title: "签单金额",
          dataIndex: "totalAmount",
          key: "totalAmount",
        },
        {
          title: "结算状态",
          dataIndex: "liquidationStatus",
          key: "liquidationStatus",
          render: (text) => {
            return getLiquidationStatus(text);
          },
        },
        {
          title: "已收款",
          dataIndex: "settlementAmount",
          key: "settlementAmount",
        },
        {
          title: "欠款",
          dataIndex: "orderArrears",
          key: "orderArrears",
        },
        {
          title: "催收科目",
          dataIndex: "type",
          key: "type",
          render: text => {
            return "按时触发应收欠款"
          }
        },
        {
          title: "催款状态",
          dataIndex: "dunStatus",
          key: "dunStatus",
          render: (text) => {
            if (text == 0) {
              return "未启动";
            } else if (text == 1) {
              return "催款中";
            } else if (text == 2) {
              return "已完成";
            } else if (text == 3) {
              return "已停止";
            }
          },
        },
        {
          title: "催收启动时间",
          dataIndex: "startDate",
          key: "startDate",
        },
      ],
      cuiColumns: [
        {
          title: "序号",
          dataIndex: "key",
          key: "key",
        },
        {
          title: "合同编号",
          dataIndex: "contractNo",
          key: "contractNo",
        },
        {
          title: "订单编号",
          dataIndex: "orderNo",
          key: "orderNo",
        },
        {
          title: "客户名称",
          dataIndex: "userName",
          key: "userName",
        },
        {
          title: "订单负责人",
          dataIndex: "salesmanName",
          key: "salesmanName",
        },
        {
          title: "订单部门",
          dataIndex: "depName",
          key: "depName",
        },
        {
          title: "订单状态",
          dataIndex: "orderStatus",
          key: "orderStatus",
          render: (text) => {
            return getNewOrderStatus(text);
          },
        },
        {
          title: "项目状态",
          dataIndex: "projectStatus",
          key: "projectStatus",
          render: (text) => {
            return getProjectStatus(text);
          },
        },
        {
          title: "签单金额",
          dataIndex: "totalAmount",
          key: "totalAmount",
        },
        {
          title: "结算状态",
          dataIndex: "liquidationStatus",
          key: "liquidationStatus",
          render: (text) => {
            return getLiquidationStatus(text);
          },
        },
        {
          title: "已收款",
          dataIndex: "settlementAmount",
          key: "settlementAmount",
        },
        {
          title: "应收款",
          dataIndex: "accountsReceivable",
          key: "accountsReceivable",
        },
        {
          title: "催收科目",
          dataIndex: "dunSubject",
          key: "dunSubject",
          // render: text => {
          //   return getjiedian(text);
          // }
        },
        {
          title: "催款状态",
          dataIndex: "dunStatus",
          key: "dunStatus",
        },
        {
          title: "催收启动时间",
          dataIndex: "startDate",
          key: "startDate",
        },
      ],
      timeColumns: [
        {
          title: "合同编号",
          dataIndex: "contractNo",
          key: "contractNo",
        },
        {
          title: "订单编号",
          dataIndex: "orderNo",
          key: "orderNo",
        },
        {
          title: "项目编号",
          dataIndex: "id",
          key: "id",
          render: (text, record) => {
            if (record.splitStatus == 2) {
              return <span>{record.splitSuper + "-" + record.splitId}</span>;
            } else {
              return text;
            }
          },
        },

        {
          title: "客户名称",
          dataIndex: "userName",
          key: "userName",
          render: (text) => {
            return text && text.length > 9 ? text.substr(0, 9) + "..." : text;
          },
        },

        {
          title: "订单部门",
          dataIndex: "depName",
          key: "depName",
        },
        {
          title: "订单负责人",
          dataIndex: "salesmanName",
          key: "salesmanName",
        },
        {
          title: "项目类别",
          dataIndex: "cname",
          key: "cname",
        },

        {
          title: "项目名称",
          dataIndex: "taskName",
          key: "taskName",
        },
        {
          title: "项目负责人",
          dataIndex: "receiverName",
          key: "receiverName",
        },
        {
          title: "项目价格(万元)",
          dataIndex: "commodityPrice",
          key: "commodityPrice",
        },
        {
          title: "数量(个)",
          dataIndex: "commodityQuantity",
          key: "commodityQuantity",
        },
        {
          title: "任务状态",
          dataIndex: "taskStatus",
          key: "taskStatus",
          render: (text) => {
            return getTaskStatus(text);
          },
        },
        {
          title: "项目状态",
          dataIndex: "projectStatus",
          key: "projectStatus",
          render: (text) => {
            return getProjectStatus(text);
          },
        },
        {
          title: "工时",
          dataIndex: "hours",
          key: "hours",
        },
        {
          title: "是否外包",
          dataIndex: "outsource",
          key: "outsource",
          render: (text) => {
            if (text == 0) {
              return "否";
            } else if (text == 1) {
              return "是";
            }
          },
        },
        {
          title: "签单日期",
          dataIndex: "signTime",
          key: "signTime",
        },
        {
          title: "派单日期",
          dataIndex: "creteTime",
          key: "creteTime",
        },
        {
          title: "分配时间",
          dataIndex: "taskDistributionTime",
          key: "taskDistributionTime",
        },
        {
          title: "完成时间",
          dataIndex: "taskEndTime",
          key: "taskEndTime",
        },
      ],
      printColumns: [
        {
          title: "合同编号",
          dataIndex: "contractNo",
          key: "contractNo",
        },
        {
          title: "订单编号",
          dataIndex: "orderNo",
          key: "orderNo",
          // fixed: "left"
        },
        {
          title: "客户名称",
          dataIndex: "buyerName",
          key: "buyerName",
        },
        {
          title: "订单部门",
          dataIndex: "departmentName",
          key: "departmentName",
        },
        {
          title: "订单负责人",
          dataIndex: "sellerName",
          key: "sellerName",
        },
        {
          title: "签单日期",
          dataIndex: "signTime",
          key: "signTime",
        },
        {
          title: "下单日期",
          dataIndex: "createTime",
          key: "createTime",
        },
        {
          title: "签单金额(万元)",
          dataIndex: "signTotalAmount",
          key: "signTotalAmount",
        },
        {
          title: "开票金额(万元)",
          dataIndex: "invoiceAmount",
          key: "invoiceAmount",
        },
        {
          title: "已收款(万元)",
          dataIndex: "actuallyTotalAmount",
          key: "actuallyTotalAmount",
        },
        {
          title: "最近收款(万元)",
          dataIndex: "finalReceivables",
          key: "finalReceivables",
        },
        {
          title: "最近收款时间",
          dataIndex: "finalReceivablesTime",
          key: "finalReceivablesTime",
        },
        {
          title: "结算状态",
          dataIndex: "liquidationStatus",
          key: "liquidationStatus",
          render: (text) => {
            return getLiquidationStatus(text);
          },
        },
        {
          title: "流程状态",
          dataIndex: "processStatus",
          key: "processStatus",
          render: (text) => {
            return getProcessStatus(text);
          },
        },
        {
          title: "特批状态",
          dataIndex: "approval",
          key: "approval",
          render: (text) => {
            return getApproval(text);
          },
        },
      ],
      columns: [
        {
          title: "合同编号",
          dataIndex: "contractNo",
          key: "contractNo",
          className: "title-table",
          fixed: "left",
        },
        {
          title: "客户名称",
          dataIndex: "buyerName",
          key: "buyerName",
          className: "title-table",
          fixed: "left",
        },
        {
          title: "订单编号",
          dataIndex: "orderNo",
          key: "orderNo",
          className: "title-table",
          // fixed: "left"
        },
        {
          title: "特批状态",
          dataIndex: "approval",
          key: "approval",
          className: "title-table",
          render: (text) => {
            if (text == 1 || text == 2) {
              return <Tag color="#f50">{getApproval(text)}</Tag>;
            }
            return getApproval(text);
          },
        },

        {
          title: "订单部门",
          dataIndex: "departmentName",
          key: "departmentName",
          className: "title-table",
        },
        {
          title: "订单负责人",
          dataIndex: "sellerName",
          key: "sellerName",
          className: "title-table",
        },
        {
          title: "财务负责人",
          dataIndex: "financeName",
          key: "financeName",
          className: "title-table",
        },
        {
          title: "签单日期",
          dataIndex: "signTime",
          key: "signTime",
          className: "title-table",
        },
        {
          title: "下单日期",
          dataIndex: "createTime",
          key: "createTime",
          className: "title-table",
        },
        {
          title: "签单金额(万元)",
          dataIndex: "signTotalAmount",
          key: "signTotalAmount",
          className: "title-table",
        },
        {
          title: "开票金额(万元)",
          dataIndex: "invoiceAmount",
          key: "invoiceAmount",
          className: "title-table",
        },
        {
          title: "已收款(万元)",
          dataIndex: "actuallyTotalAmount",
          key: "actuallyTotalAmount",
          className: "title-table",
        },
        {
          title: "应收款(万元)",
          dataIndex: "orderReceivables",
          key: "orderReceivables",
          className: "title-table",
        },
        {
          title: "欠款(万元)",
          dataIndex: "orderArrears",
          key: "orderArrears",
          className: "title-table",
        },
        {
          title: "最近收款(万元)",
          dataIndex: "finalReceivables",
          key: "finalReceivables",
          className: "title-table",
        },
        {
          title: "最近收款时间",
          dataIndex: "finalReceivablesTime",
          key: "finalReceivablesTime",
          className: "title-table",
        },
        {
          title: "结算状态",
          dataIndex: "liquidationStatus",
          key: "liquidationStatus",
          className: "title-table",
          render: (text) => {
            return getLiquidationStatus(text);
          },
        },
        {
          title: "流程状态",
          dataIndex: "processStatus",
          key: "processStatus",
          className: "title-table",
          render: (text) => {
            return getProcessStatus(text);
          },
        },

        //                 {
        //                     title: '订单状态',
        //                     dataIndex: 'orderStatus',
        //                     key: 'orderStatus',
        //                     render: text => { return getNewOrderStatus(text)}
        //                 },

        {
          title: "操作",
          dataIndex: "caozuo",
          key: "caouzo",
          className: "title-table",
          render: (text, recard) => {
            return (
              <div>
                {/* {recard.liquidationStatus < 2 &&
                (recard.approval === 1 || recard.approval === 2) ? (
                  <Button
                    style={{ background: "rgb(192,192,192)" }}
                    onClick={e => {
                      e.stopPropagation(), this.evaluateX(recard);
                    }}
                  >
                    收款
                  </Button>
                ) : (
                  <Button
                    type="primary"
                    onClick={e => {
                      e.stopPropagation(), this.evaluateX(recard);
                    }}
                  >
                    收款
                  </Button>
                )} */}
                {recard.backStatus == 3 ? <Tag>已驳回</Tag> : ""}
                {recard.processStatus == 3 ? (
                  <Button
                    type="primary"
                    onClick={(e) => {
                      // e.stopPropagation(), this.evaluateZ(recard);
                      e.stopPropagation(), this.checkRemark(recard);
                    }}
                    style={{ marginLeft: "5px" }}
                  >
                    通过
                  </Button>
                ) : (
                  ""
                )}
                {!(
                  recard.actuallyTotalAmount &&
                  Number(recard.actuallyTotalAmount) > 0
                ) && (
                  <Button
                    type="danger"
                    style={{
                      marginLeft: "5px",
                      display:
                        recard.processStatus == 3 ? "inline-block" : "none",
                    }}
                    onClick={(e) => {
                      e.stopPropagation(), this.reject(recard);
                    }}
                  >
                    驳回
                  </Button>
                )}
                {
                  // <Button
                  //   type="primary"
                  //   style={{ marginLeft: "5px" }}
                  //   onClick={e => {
                  //     e.stopPropagation(), this.evaluateY(recard, "财务专员");
                  //     console.log(recard);
                  //   }}
                  // >
                  //   转交
                  // </Button>
                }
              </div>
            );
          },
        },
      ],
      dataSource: [],
      searchTime: [],
      columnsDate: [
        {
          title: "编号",
          dataIndex: "id",
          key: "id",
        },
        {
          title: "订单编号",
          dataIndex: "orderno",
          key: "orderno",
        },
        {
          title: "开票金额(万元)",
          dataIndex: "amount",
          key: "amount",
        },
        {
          title: "申请时间",
          dataIndex: "createTime",
          key: "createTime",
        },
        {
          title: "开票状态",
          dataIndex: "status",
          key: "status",
          render: (text) => {
            return getInvoiceStatus(text);
          },
        },
      ],
      waterlistDate: [
        {
          title: "订单编号",
          dataIndex: "orderNo",
          key: "orderNo",
        },
        {
          title: "平台流水号",
          dataIndex: "billNo",
          key: "billNo",
          //   fixed: "left"
        },
        {
          title: "收款金额(万元)",
          dataIndex: "transactionAmount",
          key: "transactionAmount",
        },
        {
          title: "收款方",
          dataIndex: "payeeName",
          key: "payeeName",
        },
        {
          title: "付款方",
          dataIndex: "payerName",
          key: "payerName",
        },
        {
          title: "流水科目",
          dataIndex: "transactionSubject",
          key: "transactionSubject",
          render: (text) => {
            return getTransactionProject(text);
          },
        },
        {
          title: "收款类型",
          dataIndex: "type",
          key: "type",
        },
        {
          title: "财务流水时间",
          dataIndex: "financialPayTimes",
          key: "financialPayTimes",
        },
        {
          title: "财务流水号",
          dataIndex: "financialPayNo",
          key: "financialPayNo",
        },
        {
          title: "订单负责人",
          dataIndex: "saleName",
          key: "saleName",
        },
        {
          title: "创建时间",
          dataIndex: "createTimes",
          key: "createTimes",
        },
        {
          title: "退款时间",
          dataIndex: "refundTimes",
          key: "refundTimes",
        },
        {
          title: "删除时间",
          dataIndex: "deleteTimes",
          key: "deleteTimes",
        },
        {
          title: "备注",
          dataIndex: "remarks",
          key: "remarks",
        },
        {
          title: "流水状态",
          dataIndex: "deleteSign",
          key: "deleteSign",
          render: (text, record) => {
            if (!text) {
              return (
                <Popconfirm
                  title="是否删除?"
                  onConfirm={() => {
                    this.changeWater(record.billNo);
                  }}
                  okText="删除"
                  cancelText="不删除"
                >
                  <Button>删除</Button>
                </Popconfirm>
              );
            } else {
              return <Tag>已删除</Tag>;
            }
          },
        },
      ],
      waterData: [],
    };
  },

  changeWater(billNo) {
    this.setState({
      loading: true
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/financial/deleteMyBill",
      data: {
        billNo
      },
      success: function(data) {
        let theArr = [];
        if (data.error && data.error.length) {
          message.warning(data.error[0].message);
        } else {
          message.warning("删除流水成功！");
          this.waterData();
          this.loadData();
        }
      }.bind(this)
    }).always(
      function() {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  },
  // 特批通过
  evaluateZ(record) {
    $.ajax({
      method: "POST",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/financial/financeApproval",
      data: {
        orderNo: record.orderNo
      }
    }).done(
      function(data) {
        if (!data.error.length) {
          message.success("通过成功！");
          this.setState({
            loading: false
          });
          this.loadData();
        } else {
          message.warning(data.error[0].message);
        }
      }.bind(this)
    );
  },
  /* 收款 */
  evaluateX(recard) {
    this.state.assignDataX = recard;
    this.setState({
      assignVisibleX: true
    });
  },
  /* 转交 */
  evaluateY(recard, nub) {
    this.state.assignDataY = recard;
    this.setState({
      nub,
      assignVisibleY: 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();
    this.departmentList();
  },
  tableRowClick(record) {
    this.state.RowData = record;
    this.setState({
      showDesc: true
    });
  },
  closeDesc(e, s) {
    this.state.showDesc = e;
    if (s) {
      this.loadData(this.state.page);
    }
  },
  closeAssignX(e, s) {
    this.state.assignDataX = {};
    this.state.assignVisibleX = e;
    if (s) {
      this.loadData(this.state.page);
    }
  },
  closeAssignY(e, s) {
    this.state.assignDataY = {};
    this.state.assignVisibleY = e;
    if (s) {
      this.loadData(this.state.page);
    }
  },
  search() {
    this.loadData();
  },

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

  reset() {
    this.state.nameSearch = "";
    this.state.releaseDate = [];
    this.state.shouKuanDate = [];
    this.state.orderNoSearch = "";
    this.state.departmenttList = undefined;
    this.state.amountStatus = undefined;
    this.state.processStatus = [];
    this.state.contractNoSearch = "";
    this.state.liquidationStatus = [];
    this.state.processStatusSearch = [];
    this.state.contractNo = "";
    this.loadData();
  },
  //驳回
  boHuiSubmit(e) {
    e.preventDefault();
    if (!this.state.content) {
      message.warning("请填写驳回原因");
      return false;
    }
    this.setState({
      loading: true
    });
    $.ajax({
      method: "POST",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/financial/reject",
      data: {
        orderNo: this.state.bohuiData.orderNo,
        reason: this.state.content
      }
    }).done(
      function(data) {
        if (!data.error.length) {
          message.success("驳回成功！");
          this.setState({
            loading: false
          });
          this.boHuiOk();
        } else {
          message.warning(data.error[0].message);
        }
      }.bind(this)
    );
  },
  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
    });
  },
  callback(key) {
    // console.log(key);
  },
  onSelectChange(selectedRowKeys) {
    // for(var i=0; i<selectedRowKeys.length; i++){
    //   for(var j=i+1; j<selectedRowKeys.length; j++){
    //     if(selectedRowKeys[i]==selectedRowKeys[j]){
    //     selectedRowKeys.splice(j,1);
    //     j--;
    //     }
    //   }
    // }

    this.setState({ selectedRowKeys });
  },
  inRecordCanl() {
    this.setState({
      bvisible: false
    });
  },
  inRecordData() {
    this.setState({
      loading: true
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url:
        globalConfig.context +
        "/api/admin/orderInvoice/salesmanOrderInvoiceList",
      data: {
        orderNo: this.state.selectedRowKeys[0],
        pageSize: 9999
      },
      success: function(data) {
        let theArr = [];
        let sum = 0;
        if (!data.data) {
          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];
            sum += parseFloat(thisdata.amount);
            theArr.push({
              id: thisdata.id,
              orderno: thisdata.orderno, //订单编号
              amount: thisdata.amount, //签单金额
              createTime: thisdata.createTime, //流程状态
              status: thisdata.status, //结算状态
              rejectReason: thisdata.rejectReason
            });
          }
        }
        this.setState({
          recordData: theArr,
          sum: sum.toFixed(4)
        });
      }.bind(this)
    }).done(
      function() {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  },
  waterData() {
    this.state.data = [];
    this.setState({
      loading: true
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/financial/myBillList",
      data: {
        orderNo: this.state.selectedRowKeys[0],
        pageSize: 9999,
        whoType: 1
      },
      success: function(data) {
        let theArr = [];
        let waterSum = 0;
        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.deleteSign == 0) {
              waterSum += parseFloat(thisdata.transactionAmount);
            }
            theArr.push({
              key: i,
              orderNo: thisdata.orderNo,
              billNo: thisdata.billNo,
              transactionAmount: thisdata.transactionAmount,
              payeeName: thisdata.payeeName,
              payerName: thisdata.payerName,
              transactionSubject: thisdata.transactionSubject,
              transactionChannel: thisdata.transactionChannel,
              financialPayTimes: thisdata.financialPayTimes,
              financialPayNo: thisdata.financialPayNo,
              createrName: thisdata.createrName,
              saleName: thisdata.saleName,
              createTimes: thisdata.createTimes,
              type:
                thisdata.type == 0
                  ? "手工"
                  : thisdata.type == 1
                  ? "批量"
                  : "合同变更退款",
              deleteSign: thisdata.deleteSign,
              deleteTimes: thisdata.deleteTimes,
              refundTimes: thisdata.refundTimes,
              remarks: thisdata.remarks
            });
          }
        }
        this.setState({
          waterData: theArr,
          waterSum: (Math.round(waterSum * 10000) / 10000).toFixed(4)
        });
      }.bind(this)
    }).always(
      function() {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  },
  waterCanl() {
    this.setState({
      cvisible: false
    });
  },
  exportKaip() {
    window.location.href =
      globalConfig.context +
      "/api/admin/receivables/exportInvoice?" +
      `orderNo=${this.state.selectedRowKeys}`;
  },
  exportAll() {
    window.location.href =
      globalConfig.context +
      "/api/admin/receivables/exportReceivables?" +
      `orderNo=${
        this.state.orderNoSearch ? this.state.orderNoSearch : ""
      }&buyerName=${
        this.state.nameSearch ? this.state.nameSearch : ""
      }&departmentId=${
        this.state.departmenttList ? this.state.departmenttList : ""
      }&contractNo=${
        this.state.contractNoSearch ? this.state.contractNoSearch : ""
      }&processStatus=${this.state.processStatusSearch}`;
  },
  exportWater() {
    window.location.href =
      globalConfig.context +
      "/api/admin/receivables/exportMyBill?" +
      `orderNo=${this.state.selectedRowKeys}&whoType=1`;
  },
  printAll() {
    this.setState({
      dvisible: true
    });
    this.loadData(1, 9999);
  },
  timeData() {
    this.setState({
      loading: true
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/orderProject/taskHoursList",
      data: {
        orderNo: this.state.selectedRowKeys[0],
        pageSize: 9999
      },
      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 + 1,
              id: thisdata.id, //ID
              orderNo: thisdata.orderNo, //订单编号
              taskName: thisdata.taskName, //任务名称
              userName: thisdata.userName, //客户名称
              cname: thisdata.cname, //项目品类
              taskStatus: thisdata.taskStatus, //任务状态
              receiverName: thisdata.receiverName, //负责人
              hours: thisdata.hours, //任务工时
              depName: thisdata.depName, //派单公司
              contractNo: thisdata.contractNo,
              signTime: thisdata.signTime,
              creteTime: thisdata.creteTime,
              projectStatus: thisdata.projectStatus,
              commodityPrice: thisdata.commodityPrice, //价格
              commodityQuantity: thisdata.commodityQuantity, //数量
              salesmanName: thisdata.salesmanName, //订单负责人
              taskDistributionTime: thisdata.taskDistributionTime,
              taskEndTime: thisdata.taskEndTime,
              outsource: thisdata.outsource,
              splitStatus: thisdata.splitStatus,
              splitSuper: thisdata.splitSuper,
              splitId: thisdata.splitId
            });
          }
        }
        this.setState({
          timeDataList: theArr
        });
      }.bind(this)
    }).always(
      function() {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  },
  exportTime() {
    const data = {
      orderNo: this.state.selectedRowKeys[0],
      pageSize: 9999
    };
    window.location.href =
      globalConfig.context +
      "/api/admin/orderProject/exportMyTaskList?" +
      $.param(data);
  },
  exportPro() {
    const data = {
      orderNo: this.state.selectedRowKeys[0]
    };
    window.location.href =
      globalConfig.context +
      "/api/admin/newOrder/exportOrderTaskData?" +
      $.param(data);
  },
  exportCui() {
    var data = {
      orderNo: this.state.selectedRowKeys[0]
        ? this.state.selectedRowKeys[0]
        : undefined, //订单编号
      // specially: 1,
      pageSize: 9999
    };
    window.location.href =
      globalConfig.context +
      "/api/admin/newOrder/exportOrderDunData?" +
      $.param(data);
  },
  cuiData() {
    this.setState({
      loading: true
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/newOrder/dunOrderNewList",
      data: {
        orderNo: this.state.selectedRowKeys[0],
        pageSize: 9999
      },
      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 + 1,
              orderNo: thisdata.orderNo,
              contractNo: thisdata.contractNo,
              userName: thisdata.userName,
              buyerName: thisdata.buyerName,
              departmentName: thisdata.departmentName,
              salesmanName: thisdata.salesmanName,
              depName: thisdata.depName,
              orderStatus: thisdata.orderStatus,
              projectStatus: thisdata.projectStatus,
              totalAmount: thisdata.totalAmount,
              liquidationStatus: thisdata.liquidationStatus,
              settlementAmount: thisdata.settlementAmount,
              accountsReceivable: thisdata.accountsReceivable,
              dunSubject: thisdata.dunSubject,
              startDate: thisdata.startDate,
              taskStatus: thisdata.taskStatus,
              cname: thisdata.cname,
              id: thisdata.id,
              taskName: thisdata.taskName,
              hours: thisdata.hours,
              taskDistributionTime: thisdata.taskDistributionTime,
              taskEndTime: thisdata.taskEndTime,
              dunStatus: thisdata.dunStatus == 0 ? "未触发" : "已触发"
            });
          }
        }
        this.setState({
          cuiDataList: theArr
        });
      }.bind(this)
    }).always(
      function() {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  },
  cuiTabChange(index) {
    this.setState({
      cuiTabKey: index
    });
    if(index == 2) {
      this.setState({
        loading: true
      })
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/arrearsDunList",
        data: {
          orderNo: this.state.selectedRowKeys[0],
          pageSize: 9999,
        },
        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.list.length; i++) {
              let thisdata = data.data.list[i];
              let obj = thisdata;
              obj.key = i;
              theArr.push(obj);
            }
          }
          this.setState({
            qianDataList: theArr,
          });
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    }
  },
  proData() {
    this.setState({
      loading: true
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
      data: {
        orderNo: this.state.selectedRowKeys[0],
        pageSize: 9999
      },
      success: function(data) {
        let theArr = [];
        let totalWaibao = 0;
        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];
            totalWaibao += thisdata.outsourcePrice;
            theArr.push({
              key: i + 1,
              id: thisdata.id,
              orderNo: thisdata.orderNo,
              contractNo: thisdata.contractNo,
              userName: thisdata.userName,
              buyerName: thisdata.buyerName,
              departmentName: thisdata.departmentName,
              salesmanName: thisdata.salesmanName,
              depName: thisdata.depName,
              orderStatus: thisdata.orderStatus,
              projectStatus: thisdata.projectStatus,
              commodityName: thisdata.commodityName,
              totalAmount: thisdata.totalAmount,
              liquidationStatus: thisdata.liquidationStatus,
              settlementAmount: thisdata.settlementAmount,
              accountsReceivable: thisdata.accountsReceivable,
              dunSubject: thisdata.dunSubject,
              startDate: thisdata.startDate,
              taskStatus: thisdata.taskStatus,
              cname: thisdata.cname,
              id: thisdata.id,
              taskName: thisdata.taskName,
              hours: thisdata.hours,
              taskDistributionTime: thisdata.taskDistributionTime,
              taskEndTime: thisdata.taskEndTime,
              commodityQuantity: thisdata.commodityQuantity,
              commodityPrice: thisdata.commodityPrice,
              certificateNumber: thisdata.certificateNumber,
              taskComment: thisdata.taskComment,
              outsourceName: thisdata.outsourceName,
              outsourcePrice: thisdata.outsourcePrice,
              outsource: thisdata.outsource,
              splitStatus: thisdata.splitStatus
            });
          }
        }
        totalWaibao = (Math.round(totalWaibao * 10000) / 10000).toFixed(4);
        this.setState({
          proDataList: theArr,
          totalWaibao
        });
      }.bind(this)
    }).always(
      function() {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  },
  checkRemark(record) {
    this.setState({
      checkVisible: true,
      checkOrderNo: record.orderNo
    });
  },
  checkOk() {
    if (this.state.checkData == "" || this.state.checkData == undefined) {
      message.warning("请填写审核内容");
      return;
    }
    this.setState({
      loading: true
    });
    $.ajax({
      method: "post",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/financial/financeApproval",
      data: {
        orderNo: this.state.checkOrderNo,
        remarks: this.state.checkData
      },
      success: function(data) {
        let theArr = [];
        if (!data.data) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          message.success("通过成功!");
          this.loadData();
          this.setState({
            checkVisible: false,
            checkData: ""
          });
        }
      }.bind(this)
    }).always(
      function() {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  },
  tableRowClickPro(record) {
    this.setState({
      pvisible: true,
      record
    });
  },
  render() {
    const formItemLayout = {
      labelCol: { span: 8 },
      wrapperCol: { span: 14 }
    };
    const { RangePicker } = DatePicker;
    var departmentArr = this.state.departmentArr || [];
    const { loading, selectedRowKeys, visible } = this.state;
    const rowSelection = {
      selectedRowKeys,
      onChange: this.onSelectChange,
      hideDefaultSelections: true,
      type: "radio"
    };
    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" style={{ marginBottom: 10 }}>
          <span style={{ fontWeight: 900, fontSize: 16 }}>收款结算</span>
        </div>

        <Tabs defaultActiveKey="2" onChange={this.callback} className="test">
          <TabPane tab="更改表格显示数据" key="1">
            <div style={{ marginLeft: 10 }}>
              <ChooseList
                columns={this.state.columns}
                changeFn={this.changeList}
                changeList={this.state.changeList}
                top={55}
                margin={11}
              />
            </div>
          </TabPane>
          <TabPane tab="搜索" key="2">
            <div className="user-search" style={{ marginLeft: 10 }}>
              <Input
                placeholder="订单编号"
                value={this.state.orderNoSearch}
                onChange={(e) => {
                  this.setState({ orderNoSearch: e.target.value });
                }}
              />
              <Input
                placeholder="客户名称"
                value={this.state.nameSearch}
                onChange={(e) => {
                  this.setState({ nameSearch: e.target.value });
                }}
              />
              <Select
                placeholder="订单部门"
                style={{ width: 120, 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>
              <Input
                placeholder="合同编号"
                value={this.state.contractNoSearch}
                onChange={(e) => {
                  this.setState({
                    contractNoSearch: e.target.value,
                  });
                }}
              />
              <Select
                placeholder="流程状态"
                onChange={(e) => {
                  this.setState({ processStatusSearch: e });
                }}
                style={{ width: 120, marginRight: 5 }}
                value={this.state.processStatusSearch}
              >
                <Option value="3">未分配</Option>
                <Option value="4">已分配</Option>
                <Option value="9">已驳回</Option>
              </Select>
              <Select
                placeholder="结算状态"
                onChange={(e) => {
                  this.setState({ liquidationStatus: e });
                }}
                style={{ width: 120, marginRight: 5 }}
                value={this.state.liquidationStatus}
              >
                <Option value="0">首付待付清</Option>
                <Option value="1">尾款待付清</Option>
                <Option value="2">已付清</Option>
              </Select>
              <Select
                style={{ width: 120 }}
                placeholder="签单金额"
                value={this.state.amountStatus}
                onChange={(e) => {
                  this.setState({
                    amountStatus: e,
                  });
                }}
              >
                <Option value="0">10万元以下</Option>
                <Option value="1">10~20万元</Option>
                <Option value="2">20~30万元</Option>
                <Option value="3">30~40万元</Option>
                <Option value="4">40万元以上</Option>
              </Select>
              <span style={{}}>下单日期:</span>
              <RangePicker
                style={{ width: 170 }}
                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 });
                }}
              />
              <span style={{}}>最近收款:</span>
              <RangePicker
                style={{ width: 170 }}
                value={[
                  this.state.shouKuanDate[0]
                    ? moment(this.state.shouKuanDate[0])
                    : null,
                  this.state.shouKuanDate[1]
                    ? moment(this.state.shouKuanDate[1])
                    : null,
                ]}
                onChange={(data, dataString) => {
                  this.setState({ shouKuanDate: dataString });
                }}
              />
              <Button
                type="primary"
                onClick={this.search}
                style={{ marginLeft: 10 }}
                disabled={this.state.loadingA ? true : false}
              >
                搜索
              </Button>
              <Button onClick={this.reset}>重置</Button>
            </div>
          </TabPane>
          <TabPane tab="打印" key="3">
            <Button
              type="primary"
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={this.printAll}
              disabled={!this.state.dataSource.length}
            >
              打印所有列表信息
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.inRecordData();
                this.setState({
                  bvisible: true,
                });
              }}
            >
              打印开票详情
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.waterData();
                this.setState({
                  cvisible: true,
                });
              }}
            >
              打印收款流水
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.timeData();
                this.setState({
                  timeVisible: true,
                });
              }}
            >
              打印工时信息
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.cuiData();
                this.setState({
                  cuiVisible: true,
                });
              }}
            >
              打印催款信息
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.proData();
                this.setState({
                  proVisible: true,
                });
              }}
            >
              打印项目进度
            </Button>
          </TabPane>
          <TabPane tab="导出Excel" key="4">
            <Button
              type="primary"
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={this.exportAll}
            >
              导出当前列表
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={this.exportKaip}
            >
              导出所选开票详情
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={this.exportWater}
            >
              导出所选收款详情流水
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={this.exportTime}
            >
              导出所选工时信息
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={this.exportCui}
            >
              导出催款信息
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={this.exportPro}
            >
              导出项目进度
            </Button>
          </TabPane>
          <TabPane tab="查看" key="5">
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.inRecordData();
                this.setState({
                  bvisible: true,
                });
              }}
            >
              查看开票详情
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.waterData();
                this.setState({
                  cvisible: true,
                });
              }}
            >
              详情收款流水
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.timeData();
                this.setState({
                  timeVisible: true,
                });
              }}
            >
              工时信息
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.cuiData();
                this.setState({
                  cuiVisible: true,
                });
              }}
            >
              催款信息
            </Button>
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length != 1}
              style={{ margin: "11px 0px 10px 10px" }}
              onClick={() => {
                this.proData();
                this.setState({
                  proVisible: true,
                });
              }}
            >
              项目进度
            </Button>
          </TabPane>
          {/* <TabPane tab="批量操作" key="6">
            <Button
              type="primary"
              disabled={this.state.selectedRowKeys.length == 0}
              style={{ margin: "0px 0px 10px 10px" }}
              onClick={e => {
                e.stopPropagation(),
                  this.evaluateY(this.state.selectedRowKeys, "财务专员");
              }}
            >
              转交
            </Button>
          </TabPane> */}
        </Tabs>

        <div className="patent-table">
          <Spin spinning={this.state.loadingA}>
            <Table
              bordered
              columns={
                this.state.changeList == undefined
                  ? this.state.columns
                  : this.state.changeList
              }
              dataSource={this.state.dataSource}
              rowSelection={rowSelection}
              scroll={{ x: "max-content", y: 0 }}
              pagination={this.state.pagination}
              onRowDoubleClick={this.tableRowClick.bind(this)}
              size="small"
            />
          </Spin>
          <p
            style={{ display: "inline-block", fontSize: "14px", color: "red" }}
          >
            {
              <span style={{ marginRight: 10 }}>
                {`收款金额总计(万元):${this.state.hui ? this.state.hui : "0"}`}
              </span>
            }
            {
              <span>
                {`合同额总计(万元):${
                  this.state.totalHui ? this.state.totalHui : "0"
                }`}
              </span>
            }
          </p>
        </div>
        <Assign
          title="任务"
          selApi={"/api/admin/newOrder/updateFinance"}
          data={this.state.assignDataY}
          showDesc={this.state.assignVisibleY}
          closeDesc={this.closeAssignY.bind(this)}
          // fenpaiData={8}
          specially={0}
          roleName={this.state.nub}
          requestMethod={"get"}
        />
        <OrderDesc
          data={this.state.RowData}
          showDesc={this.state.showDesc}
          closeDesc={this.closeDesc.bind(this)}
        />
        <Receivable
          title="收款记录"
          api="/api/admin/financial/addReceiptsFlow"
          data={this.state.assignDataX}
          showDesc={this.state.assignVisibleX}
          closeDesc={this.closeAssignX.bind(this)}
        />
        <Modal
          visible={this.state.boHuiVisible}
          width="400px"
          title="驳回备注"
          footer=""
          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>

        <Modal
          visible={this.state.bvisible}
          footer=""
          title="开票历史记录"
          className="admin-desc-content"
          width="900px"
          onCancel={this.inRecordCanl}
        >
          <Spin spinning={this.state.loading}>
            <div
              className="patent-table"
              ref={(e) => {
                this.refs.kaiPiao = e;
              }}
            >
              <Table
                columns={this.state.columnsDate}
                dataSource={this.state.recordData}
                pagination={false}
                bordered
                size="small"
              />
              <div className="clearfix" style={{ marginTop: "20px" }}>
                <FormItem
                  className="half-item"
                  {...formItemLayout}
                  label={<span style={{ fontSize: "14px" }}>开票总计</span>}
                >
                  <span>{this.state.sum + "(万元)"}</span>
                </FormItem>
              </div>
              <ReactToPrint
                trigger={() => (
                  <Button
                    type="primary"
                    style={{
                      float: "right",
                      // marginTop: 10,
                      position: "absolute",
                      top: -54,
                      right: 30,
                    }}
                  >
                    打印
                  </Button>
                )}
                content={() => this.refs.kaiPiao}
              />
            </div>
          </Spin>
        </Modal>
        <Modal
          visible={this.state.cvisible}
          footer=""
          title="详细收款流水"
          className="admin-desc-content"
          width="1300px"
          onCancel={this.waterCanl}
        >
          <Spin spinning={this.state.loading}>
            <div
              className="patent-table"
              ref={(e) => {
                this.refs.shouKuan = e;
              }}
            >
              <Table
                columns={this.state.waterlistDate}
                dataSource={this.state.waterData}
                pagination={false}
                scroll={{ x: "max-content", y: 0 }}
                bordered
                size="small"
              />
              <div className="clearfix" style={{ marginTop: "20px" }}>
                <FormItem
                  className="half-item"
                  {...formItemLayout}
                  label={<span style={{ fontSize: "14px" }}>总计金额</span>}
                >
                  <span>{this.state.waterSum + "(万元)"}</span>
                </FormItem>
              </div>
              <ReactToPrint
                trigger={() => (
                  <Button
                    type="primary"
                    style={{
                      float: "right",
                      position: "absolute",
                      top: -54,
                      right: 30,
                    }}
                  >
                    打印
                  </Button>
                )}
                content={() => this.refs.shouKuan}
              />
            </div>
          </Spin>
        </Modal>

        <Modal
          visible={this.state.dvisible}
          footer=""
          title="所有列表信息"
          className="admin-desc-content"
          width="1300px"
          onCancel={() => {
            this.loadData();
            this.setState({
              dvisible: false,
            });
          }}
        >
          <Spin spinning={this.state.loading}>
            <div
              className="patent-table"
              style={{
                // width: 900,
                // position: "relative",
                // left: "50%",
                // transform: "translate(-50%)",
                padding: "25px 0 30px 30px",
              }}
              ref={(e) => {
                this.refs.all = e;
              }}
            >
              <Table
                columns={this.state.printColumns}
                dataSource={this.state.dataSource}
                pagination={false}
                bordered
                size="small"
              />
            </div>
          </Spin>

          <ReactToPrint
            trigger={() => (
              <Button
                type="primary"
                style={{
                  float: "right",
                  marginTop: 10,
                  position: "absolute",
                  top: 0,
                  right: 30,
                }}
              >
                打印
              </Button>
            )}
            content={() => this.refs.all}
          />
        </Modal>
        <Modal
          visible={this.state.timeVisible}
          footer=""
          title="工时详情"
          className="admin-desc-content"
          width="1300px"
          pagination={false}
          onCancel={() => {
            this.loadData();
            this.setState({
              timeVisible: false,
            });
          }}
        >
          <Spin spinning={this.state.loading}>
            <Project
              record={this.state.record}
              visible={this.state.pvisible}
              cancel={() => {
                this.setState({ pvisible: false });
              }}
            />
            <div
              className="patent-table"
              style={
                {
                  // width: 900,
                  // position: "relative",
                  // left: "50%",
                  // transform: "translate(-50%)",
                  // padding: "25px 0 30px 30px"
                }
              }
              ref={(e) => {
                this.refs.all = e;
              }}
            >
              <Table
                columns={this.state.timeColumns}
                dataSource={this.state.timeDataList}
                onRowClick={this.tableRowClickPro}
                scroll={{ x: "max-content", y: 0 }}
                pagination={false}
                bordered
                size="small"
              />
            </div>
          </Spin>

          <ReactToPrint
            trigger={() => (
              <Button
                type="primary"
                style={{
                  float: "right",
                  marginTop: 10,
                  position: "absolute",
                  top: 0,
                  right: 30,
                }}
              >
                打印
              </Button>
            )}
            content={() => this.refs.all}
          />
        </Modal>
        <Modal
          visible={this.state.cuiVisible}
          footer=""
          title="催款详情"
          className="admin-desc-content"
          width="1300px"
          pagination={false}
          onCancel={() => {
            this.loadData();
            this.setState({
              cuiVisible: false,
              cuiTabKey: "1",
            });
          }}
        >
          <Tabs activeKey={this.state.cuiTabKey} onChange={this.cuiTabChange}>
            <TabPane tab="催款节点" key="1">
              <Spin spinning={this.state.loading}>
                <div
                  className="patent-table"
                  ref={(e) => {
                    this.refs.all = e;
                  }}
                >
                  <Table
                    columns={this.state.cuiColumns}
                    dataSource={this.state.cuiDataList}
                    scroll={{ x: "max-content", y: 0 }}
                    pagination={false}
                    bordered
                    size="small"
                  />
                </div>

                <ReactToPrint
                  trigger={() => (
                    <Button
                      type="primary"
                      style={{
                        float: "right",
                        marginTop: 10,
                        position: "absolute",
                        top: "-60px",
                        right: 30,
                      }}
                    >
                      打印
                    </Button>
                  )}
                  content={() => this.refs.all}
                />
              </Spin>
            </TabPane>
            <TabPane tab="欠款催收记录" key="2">
              <Spin spinning={this.state.loading}>
                <div
                  className="patent-table"
                  ref={(e) => {
                    this.refs.all = e;
                  }}
                >
                  <Table
                    columns={this.state.qianColumns}
                    dataSource={this.state.qianDataList}
                    scroll={{ x: "max-content", y: 0 }}
                    pagination={false}
                    bordered
                    size="small"
                  />
                </div>

                <ReactToPrint
                  trigger={() => (
                    <Button
                      type="primary"
                      style={{
                        float: "right",
                        marginTop: 10,
                        position: "absolute",
                        top: "-60px",
                        right: 30,
                      }}
                    >
                      打印
                    </Button>
                  )}
                  content={() => this.refs.all}
                />
              </Spin>
            </TabPane>
          </Tabs>
        </Modal>
        <Modal
          visible={this.state.proVisible}
          footer=""
          title="项目进度"
          className="admin-desc-content"
          width="1300px"
          pagination={false}
          onCancel={() => {
            this.loadData();
            this.setState({
              proVisible: false,
            });
          }}
        >
          <Spin spinning={this.state.loading}>
            <Project
              record={this.state.record}
              visible={this.state.pvisible}
              cancel={() => {
                this.setState({ pvisible: false });
              }}
            />
            <div
              className="patent-table"
              style={
                {
                  // width: 900,
                  // position: "relative",
                  // left: "50%",
                  // transform: "translate(-50%)",
                  // padding: "25px 0 30px 30px"
                }
              }
              ref={(e) => {
                this.refs.all = e;
              }}
            >
              <Table
                columns={this.state.proColumns}
                dataSource={this.state.proDataList}
                scroll={{ x: "max-content", y: 0 }}
                onRowClick={this.tableRowClickPro}
                pagination={false}
                bordered
                size="small"
              />
            </div>
            <span style={{ display: "block", marginTop: 10, color: "red" }}>
              外包（内部）价格总计（万元）：{this.state.totalWaibao}
            </span>
          </Spin>

          <ReactToPrint
            trigger={() => (
              <Button
                type="primary"
                style={{
                  float: "right",
                  marginTop: 10,
                  position: "absolute",
                  top: 0,
                  right: 30,
                }}
              >
                打印
              </Button>
            )}
            content={() => this.refs.all}
          />
        </Modal>
        <Spin spinning={this.state.loading}>
          <Modal
            title="审核订单"
            visible={this.state.checkVisible}
            onOk={this.checkOk}
            okText={"通过"}
            onCancel={() => {
              this.loadData();
              this.setState({
                checkVisible: false,
                checkData: "",
              });
            }}
          >
            <TextArea
              value={this.state.checkData}
              onChange={(e, recard) => {
                this.setState({
                  checkData: e.target.value,
                });
              }}
              placeholder="请填写审核内容"
            />
          </Modal>
        </Spin>
      </div>
    );
  }
});

export default ShouKuang;
