import React from 'react';
import $ from 'jquery/src/ajax';
import {
  Form,
  Radio,
  Icon,
  Button,
  Input,
  Spin,
  Table,
  message,
  DatePicker,
  Modal,
  Upload,
  Popconfirm,
  Cascader,
  Tabs,
  Select,
  Tooltip
} from 'antd';
import NewService from "./addService.jsx";
import moment from 'moment';
import '../userMangagement.less';
import { areaSelect } from '@/NewDicProvinceList';
import {
  getApprovedState,
  getprovince,
  getProcessStatus,
  getLiquidationStatus,
  getNewOrderStatus,
  beforeUploadFile,
  getProvinceA,
  getInvoiceStatus,
  splitUrl,
  ShowModal,
  getProjectStatus, getProjectName
} from "../../../tools.js";
import ShowModalDiv from "@/showModal.jsx";
import { ChooseList } from "../orderNew/chooseList";
import ReactToPrint from "react-to-print";
import Project from "../../../../component/project";
import ImgList from "../../../common/imgList";
import OrderItemStatus from "../../../common/orderItemStatus";
const { Option } = Select;
const { TabPane } = Tabs;
const PicturesWall = React.createClass({
  getInitialState() {
    return {
      previewVisible: false,
      previewImage: '',
      fileList: this.props.pictureUrl,
    }
  },
  getDefaultProps() {
    return {
      changeClick: this.modifyChange
    }
  },
  handleCancel() {
    this.setState({ previewVisible: false })
  },
  handlePreview(file) {
    this.setState({
      previewImage: file.url || file.thumbUrl,
      previewVisible: true,
    });
  },
  handleChange(info) {
    let fileList = info.fileList;
    this.setState({ fileList });
    this.props.fileList(fileList);
  },
  componentWillReceiveProps(nextProps) {
    this.state.fileList = nextProps.pictureUrl;
  },
  render() {
    const { previewVisible, previewImage, fileList } = this.state;
    const uploadButton = (
      
    );
    return (
      
        {
              this.handleChange(infor)
            }}
            fileList={fileList}
        />
       
    );
  }
});
const MyService = Form.create()(
  React.createClass({
    loadData(pageNo) {
      this.state.data = [];
      this.setState({
        loading: true
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/orderNewList",
        data: {
          pageNo: pageNo || 1,
          pageSize: this.state.pagination.pageSize,
          specially: 0,
          name: this.state.customerName,
          orderNo: this.state.searchOrderNo,
          depId: this.state.departmenttSearch,
          starTime: this.state.releaseDate[0],
          endTime: this.state.releaseDate[1],
          liquidationStatus: this.state.liquidationStatusSearch,
          contractNo: this.state.contractNoSearch,
          depId: this.state.departmenttList,
          approval: this.state.approvalSearch,
          amountStatus: this.state.amountStatus
        },
        success: function (data) {
          ShowModal(this);
          let theArr = [];
          if (!data.data) {
            if (data.error && data.error.length) {
              message.warning(data.error[0].message);
            }
          } else {
            for (let i = 0; i < data.data.list.length; i++) {
              let thisdata = data.data.list[i];
              theArr.push({
                key: thisdata.orderNo,
                id: thisdata.id,
                orderNo: thisdata.orderNo, //订单编号
                totalAmount: thisdata.totalAmount, //签单金额
                processStatus: thisdata.processStatus, //流程状态
                liquidationStatus: thisdata.liquidationStatus, //结算状态
                approval: thisdata.approval, //特批状态
                signDate: thisdata.signDate, //签单时间
                userName: thisdata.userName, //客户名称
                salesmanName: thisdata.salesmanName, //营销员名称
                financeName: thisdata.financeName, //财务名称
                createDate: thisdata.createDate, //下单时间
                orderStatus: thisdata.orderStatus, //订单状态
                depName: thisdata.depName, //部门名称
                contractNo: thisdata.contractNo, //合同编号
                invoiceAmount: thisdata.invoiceAmount, //开票金额
                settlementAmount: thisdata.settlementAmount, //已收款
                deleteSign: thisdata.deleteSign,
              });
            }
            this.state.pagination.current = data.data.pageNo;
            this.state.pagination.total = data.data.totalCount;
          }
          if (!data.data.list.length) {
            this.state.pagination.current = 0;
            this.state.pagination.total = 0;
          }
          this.setState({
            pageNo: pageNo,
            dataSource: theArr,
            pagination: this.state.pagination,
            selectedRowKeys: []
          });
        }.bind(this)
      }).always(
        function () {
          this.setState({
            loading: false
          });
        }.bind(this)
      );
    },
    getInitialState() {
      return {
        kaiData: {
          remarks: "",
          type: undefined,
          orgCodeUrl: "",
          invoiceType: undefined,
          unitName: "",
          taxNumber: "",
          amount: "",
          banks: "",
          content: "",
          unitAddress: "",
          invoiceRemarks: "",
          unitMobile: "",
          post: undefined,
          addressee: "",
          addresseeMobile: "",
          addresseeProvince: "",
          addresseeCity: "",
          addresseeArea: "",
          recipientAddress: "",
          ordapproval: undefined,
          alreadyAmount: "0",
          ProvinceCity: []
        },
        changeList: undefined,
        datauser: {},
        orgCodeUrl: [],
        selectedRowKeys: [],
        releaseDate: [],
        departmentArr: [],
        signBillState: false,
        signBillVisible: false,
        selectedRows: [],
        recordData: [],
        flag: false,
        searchMore: true,
        loading: false,
        alreadyAmount: 0,
        intentOrder: true,
        formalOrder: true,
        pagination: {
          defaultCurrent: 1,
          defaultPageSize: 10,
          showQuickJumper: true,
          pageSize: 10,
          onChange: function (page) {
            this.loadData(page);
          }.bind(this),
          showTotal: function (total) {
            return "共" + total + "条数据";
          }
        },
        cuiColumns: [
          {
            title: "序号",
            dataIndex: "key",
            key: "key"
          },
          {
            title: "合同编号",
            dataIndex: "contractNo",
            key: "contractNo"
          },
          {
            title: "订单编号",
            dataIndex: "orderNo",
            key: "orderNo"
          },
          {
            title: "客户名称",
            dataIndex: "userName",
            key: "userName",
            width: 150,
            render: (text) => {
              return (
                  
                    {text}
                  
              )
            },
          },
          {
            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 getProjectName(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"
          }
        ],
        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",
            width: 150,
            render: (text) => {
              return (
                  
                    {text}
                  
              )
            },
          },
          {
            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"
          },
          {
            title: "服务市价",
            dataIndex: "commodityPrice",
            key: "commodityPrice",
            render: text => {
              return "****";
            }
          },
          {
            title: "证书编号",
            dataIndex: "certificateNumber",
            key: "certificateNumber"
          },
          {
            title: "项目状态",
            dataIndex: "projectStatus",
            key: "projectStatus",
            render: text => {
              return getProjectName(text);
            }
          },
          {
            title: "项目说明",
            dataIndex: "taskComment",
            key: "taskComment"
          },
          // {
          //   title: "外包(内部)公司",
          //   dataIndex: "outsourceName",
          //   key: "outsourceName"
          // },
          // {
          //   title: "外包(内部)价格",
          //   dataIndex: "outsourcePrice",
          //   key: "outsourcePrice",
          //   render: text => {
          //     return "****";
          //   }
          // }
        ],
        columns: [
          {
            title: "合同编号",
            dataIndex: "contractNo",
            key: "contractNo",
            render: (text) => {
              return (
                    {
                        e.stopPropagation();
                        let input = document.getElementById("copyText");
                        input.value = text;
                        input.select();
                        document.execCommand("copy");
                        message.success('复制成功')
                      }}>
                        复制
                      
                    }>
                      {text}
                    
              )
            }
          },
          {
            title: "订单编号",
            dataIndex: "orderNo",
            key: "orderNo",
            render: (text) => {
              return (
                  {
                      e.stopPropagation();
                      let input = document.getElementById("copyText");
                      input.value = text;
                      input.select();
                      document.execCommand("copy");
                      message.success('复制成功')
                    }}>
                      复制
                    
                  }>
                    {text}
                  
              )
            }
          },
          {
            title: "客户名称",
            dataIndex: "userName",
            key: "userName",
            render: (text,record) => {
              return (
                  
                    
                        {text}
                        
                      
                    }>
                      
                        {
                          record.totalAmount >= 10 ?
                              
                                大客户
                              
 : null
                        }
                        {text}
                      
                  {
                    
                  }
                  {/* 
 */}
                  {record.liquidationStatus == 2 ? (
                    
 {
                        this.delectRow(record);
                      }}
                      okText="是"
                      cancelText="否"
                    >
                      
                    
                  ) : (
                      ""
                    )}
                
                  {record.status === 3 ? (
                    
                  ) : (
                      getInvoiceStatus(text, record)
                    )}
                  {record.status == 3 ? (
                    
                  ) : (
                      ""
                    )}
                
              );
            }
          }
        ],
        dataSource: []
      };
    },
    invoiceData(record) {
      if (this.state.flagA) return;
      this.setState({
        flagA: true
      });
      let theorgCodeUrl = [];
      if (this.state.orgCodeUrl.length) {
        let picArr = [];
        this.state.orgCodeUrl.map(function (item) {
          if (
            item.response &&
            item.response.data &&
            item.response.data.length
          ) {
            picArr.push(item.response.data);
          }
        });
        theorgCodeUrl = picArr.join(",");
      }
      let api = "",
        api1 = "",
        method = "",
        fdata = {
          orderNo: this.state.orderNo3,
          type: this.state.type,
          status: this.state.status,
          approval: this.state.ordapproval,
          remarks: this.state.remarks,
          invoiceType: this.state.invoiceType,
          unitName: this.state.unitName,
          taxNumber: this.state.taxNumber,
          amount: parseFloat(this.state.amount),
          banks: this.state.banks,
          content: this.state.content,
          unitAddress: this.state.unitAddress,
          invoiceRemarks: this.state.invoiceRemarks,
          unitMobile: this.state.unitMobile,
          voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "",
          post: this.state.post,
          addressee: this.state.addressee,
          addresseeMobile: this.state.addresseeMobile,
          addresseeProvince:
            this.state.post === 0 ? this.state.ProvinceCity[0] || [] : "",
          addresseeCity:
            this.state.post === 0 ? this.state.ProvinceCity[1] || [] : "",
          addresseeArea:
            this.state.post === 0 ? this.state.ProvinceCity[2] || [] : "",
          recipientAddress: this.state.recipientAddress,
          alreadyAmount: parseFloat(this.state.alreadyAmount)
        },
        sumData = {},
        sumData1 = {};
      switch (this.state.status) {
        case 0:
          api = "/api/admin/orderInvoice/createOrderInvoice";
          sumData = fdata;
          method = "post";
          break;
        case 1:
          api = "/api/admin/orderInvoice/createOrderInvoice";
          api1 = "/api/admin/orderInvoice/updateOrderInvoice";
          sumData = fdata;
          sumData1 = {
            orderNo: this.state.orderNo3,
            type: this.state.type,
            status: this.state.status,
            approval: this.state.ordapproval,
            remarks: this.state.remarks,
            invoiceType: this.state.invoiceType,
            unitName: this.state.unitName,
            taxNumber: this.state.taxNumber,
            amount: parseFloat(this.state.amount),
            banks: this.state.banks,
            content: this.state.content,
            unitAddress: this.state.unitAddress,
            invoiceRemarks: this.state.invoiceRemarks,
            unitMobile: this.state.unitMobile,
            voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "",
            post: this.state.post,
            addressee: this.state.addressee,
            addresseeMobile: this.state.addresseeMobile,
            addresseeProvince:
              this.state.post === 0 ? this.state.ProvinceCity[0] || [] : "",
            addresseeCity:
              this.state.post === 0 ? this.state.ProvinceCity[1] || [] : "",
            addresseeArea:
              this.state.post === 0 ? this.state.ProvinceCity[2] || [] : "",
            recipientAddress: this.state.recipientAddress,
            alreadyAmount: parseFloat(this.state.alreadyAmount)
          };
          sumData1.id = this.state.id;
          method = "post";
          break;
        case 3:
          api = "/api/admin/orderInvoice/selectByIdOrderInvoice";
          sumData.id = record.id;
          method = "get";
          break;
        default:
          api = "";
          break;
      }
      if (this.state.status === 1 || this.state.status === 0) {
        if (typeof this.state.type !== "number") {
          message.warning("省内/外不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
        if (typeof this.state.invoiceType !== "number") {
          message.warning("发票类型不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
        if (typeof theorgCodeUrl !== "string") {
          message.warning("未上传图片");
          this.setState({
            flagA: false
          });
          return;
        }
        if (!this.state.unitName) {
          message.warning("单位名称不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
        if (!this.state.taxNumber) {
          message.warning("税号不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
        if (!this.state.amount) {
          message.warning("金额不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
        if (isNaN(this.state.amount)) {
          message.warning("开票金额包含非法字符,请重新输入");
          this.setState({
            flagA: false
          });
          return;
        }
        if (isNaN(this.state.alreadyAmount)) {
          message.warning("开票金额总计包含非法字符,请重新输入");
          this.setState({
            flagA: false
          });
          return;
        }
        if (parseFloat(this.state.alreadyAmount) < 0) {
          message.warning("开票金额总计不能小于0,请重新输入");
          this.setState({
            flagA: false
          });
          return;
        }
        if (!this.state.banks) {
          message.warning("开户行不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
        if (!this.state.content) {
          message.warning("开票内容及说明不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
        if (!this.state.unitAddress) {
          message.warning("单位地址不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
        if (!this.state.unitMobile) {
          message.warning("单位电话不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
        if (this.state.alreadyAmount === "") {
          message.warning("开票金额总计不能为空");
          this.setState({
            flagA: false
          });
          return;
        }
      }
      // console.log(this.state.flag,this.state.status)
      this.setState({
        loading: true
      });
      $.ajax({
        method: method,
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + (this.state.flag ? api1 : api),
        data: this.state.flag ? sumData1 : sumData,
        success: function (data) {
          if (this.state.status === 3 && typeof data.data === "object") {
            let thisdata = data.data;
            let ProvinceCityArr = [];
            let ProvinceS = thisdata.addresseeProvince; //省
            let citys = thisdata.addresseeCity; //市
            let Areas = thisdata.addresseeArea; //区
            ProvinceCityArr.push(ProvinceS, citys, Areas);
            this.setState({
              orderNo: thisdata.orderNo,
              type: thisdata.type,
              status: thisdata.status,
              ordapproval: thisdata.approval,
              remarks: thisdata.remarks,
              invoiceType: thisdata.invoiceType,
              unitName: thisdata.unitName,
              taxNumber: thisdata.taxNumber,
              amount: thisdata.amount + "",
              banks: thisdata.banks,
              content: thisdata.content,
              unitAddress: thisdata.unitAddress,
              invoiceRemarks: thisdata.invoiceRemarks,
              unitMobile: thisdata.unitMobile,
              post: thisdata.post,
              addressee: thisdata.addressee,
              addresseeMobile: thisdata.addresseeMobile,
              addresseeProvince: thisdata.addresseeProvince,
              addresseeCity: thisdata.addresseeCity,
              addresseeArea: thisdata.addresseeArea,
              alreadyAmount: thisdata.alreadyAmount + "",
              ProvinceCity:
                ProvinceCityArr[0] != null ? ProvinceCityArr : undefined, //省市区
              recipientAddress: thisdata.recipientAddress,
              orgCodeUrl: thisdata.voucherUrl
                ? splitUrl(
                  thisdata.voucherUrl,
                  ",",
                  globalConfig.avatarHost + "/upload"
                )
                : []
            });
          }
        }.bind(this)
      }).done(
        function (data) {
          this.setState({
            loading: false
          });
          this.loadData(this.state.pageNo);
          if (!data.error.length) {
            if (this.state.status === 1) {
              message.success("提交成功!");
              this.visitCancels();
              if (this.state.flag) {
                this.inRecordData();
              }
              this.setState({
                flagA: false
              });
            } else if (this.state.status === 0) {
              message.success("保存成功!");
              this.visitCancels();
              this.setState({
                flagA: false
              });
            } else if (this.state.status === 3) {
              this.setState({
                flag: true,
                flagA: false
              });
            }
          } else {
            message.warning(data.error[0].message);
            this.setState({
              flagA: false
            });
          }
        }.bind(this)
      );
    },
    areset() {
      this.setState({
        remarks: "",
        type: undefined,
        orgCodeUrl: [],
        invoiceType: undefined,
        taxNumber: "",
        unitName: "",
        amount: "",
        banks: "",
        content: "",
        unitAddress: "",
        invoiceRemarks: "",
        unitMobile: "",
        post: undefined,
        addressee: "",
        addresseeMobile: "",
        addresseeProvince: "",
        addresseeCity: "",
        addresseeArea: "",
        recipientAddress: "",
        ordapproval: 0,
        alreadyAmount: "",
        ProvinceCity: []
      });
    },
    recompose(record) {
      // console.log(record)
      this.setState({
        avisible: true,
        orderNo3: record.orderno,
        id: record.id
      });
      this.setState(
        {
          status: 3,
          cvisible: true,
          flag: false
        },
        () => {
          this.invoiceData(record);
        }
      );
    },
    submitApp() {
      if (this.state.status === 3) {
        this.setState({
          flag: true
        });
      }
      this.setState(
        {
          status: 1
        },
        () => {
          this.invoiceData();
        }
      );
    },
    saveApp() {
      this.setState(
        {
          status: 0
        },
        () => {
          this.invoiceData();
        }
      );
    },
    reject(record) {
      this.setState({
        visibleR: true,
        reason: record.rejectReason
      });
    },
    rejectCancels() {
      this.setState({
        visibleR: false
      });
    },
    //开票
    visit(record, index) {
      this.areset();
      this.setState({
        contractNo: this.state.dataSource[index].contractNo,
        orderNo3: record.orderNo,
        avisible: true,
        flag: false,
        invoiceType: 0,
        alreadyAmount: 0,
        unitName: this.state.dataSource[index].userName,
        post: 1
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/orderInvoice/getInvoiceDetails",
        data: {
          orderNo: record.orderNo
        },
        success: data => {
          if (data.error.length) {
            message.warning(data.error[0].message)
          } else if (data.data) {
            const thisdata = data.data;
            this.setState({
              id:thisdata.id,
              contractNo: thisdata.contractNo,
              orderNo: thisdata.orderNo,
              ordapproval: thisdata.approval,
              type: thisdata.type,
              status: thisdata.status,
              remarks: thisdata.remarks,
              invoiceType: thisdata.invoiceType,
              unitName: thisdata.unitName,
              taxNumber: thisdata.taxNumber,
              amount: thisdata.amount,
              banks: thisdata.banks,
              content: thisdata.content,
              unitAddress: thisdata.unitAddress,
              invoiceRemarks: thisdata.invoiceRemarks,
              unitMobile: thisdata.unitMobile,
              post: thisdata.post,
              addressee: thisdata.addressee,
              addresseeMobile: thisdata.addresseeMobile,
              addresseeProvince: thisdata.addresseeProvince,
              addresseeCity: thisdata.addresseeCity,
              addresseeArea: thisdata.addresseeArea,
              alreadyAmount: thisdata.alreadyAmount,
              recipientAddress: thisdata.recipientAddress,
              orgCodeUrl: thisdata.voucherUrl
                ? splitUrl(
                  thisdata.voucherUrl,
                  ",",
                  globalConfig.avatarHost + "/upload"
                )
                : []
            });
          }
        }
      });
    },
    visitCancels() {
      this.setState({
        id:'',
        avisible: false,
        cvisible: false
      });
    },
    //查看开票历史记录详情
    dtableRowClick(record) {
      this.setState({
        dvisible: true
      });
      this.setState({
        loading: true
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url:
          globalConfig.context +
          "/api/admin/orderInvoice/selectByIdOrderInvoice",
        data: {
          id: record.id
        },
        success: function (data) {
          let thisdata = data.data;
          this.setState({
            contractNo: thisdata.contractNo,
            orderNo: thisdata.orderNo,
            ordapproval: thisdata.approval,
            type: thisdata.type,
            status: thisdata.status,
            remarks: thisdata.remarks,
            invoiceType: thisdata.invoiceType,
            unitName: thisdata.unitName,
            taxNumber: thisdata.taxNumber,
            amount: thisdata.amount,
            banks: thisdata.banks,
            content: thisdata.content,
            unitAddress: thisdata.unitAddress,
            invoiceRemarks: thisdata.invoiceRemarks,
            unitMobile: thisdata.unitMobile,
            post: thisdata.post,
            addressee: thisdata.addressee,
            addresseeMobile: thisdata.addresseeMobile,
            addresseeProvince: thisdata.addresseeProvince,
            addresseeCity: thisdata.addresseeCity,
            addresseeArea: thisdata.addresseeArea,
            alreadyAmount: thisdata.alreadyAmount,
            recipientAddress: thisdata.recipientAddress,
            orgCodeUrl: thisdata.voucherUrl
              ? splitUrl(
                thisdata.voucherUrl,
                ",",
                globalConfig.avatarHost + "/upload"
              )
              : []
          });
        }.bind(this)
      }).done(
        function () {
          this.setState({
            loading: false
          });
        }.bind(this)
      );
    },
    //关闭开票历史记录详情
    dvisitCancels() {
      this.setState({
        dvisible: false
      });
    },
    inRecordData() {
      if(!this.state.orderNo2){return;}
      this.setState({
        loading: true
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url:
          globalConfig.context +
          "/api/admin/orderInvoice/salesmanOrderInvoiceList",
        data: {
          orderNo: this.state.orderNo2
        },
        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,
                approval: thisdata.approval
              });
            }
          }
          this.setState({
            recordData: theArr,
            sum: sum.toFixed(6)
          });
        }.bind(this)
      }).done(
        function () {
          this.setState({
            loading: false
          });
        }.bind(this)
      );
    },
    inRecord(record) {
      this.setState(
        {
          bvisible: true,
          orderNo2: this.state.selectedRowKeys[0]
        },
        () => {
          this.inRecordData();
        }
      );
    },
    inRecordCanl() {
      this.setState({
        bvisible: false
      });
    },
    //结项
    delectRow(record) {
      this.setState({
        loading: true
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/OrderOver",
        data: {
          orderNo: record.orderNo
        }
      }).done(
        function (data) {
          if (!data.error.length) {
            message.success("该项目已成功结项!");
            this.loadData();
          } else {
            message.warning(data.error[0].message);
          }
          this.setState({
            loading: false
          });
        }.bind(this)
      );
    },
    //是否退款
    refundCancel(record) {
      this.refund(record, 0);
    },
    refundOk(record) {
      this.refund(record, 1);
    },
    refund(record, index) {
      this.setState({
        signBillVisible: false,
        selectedRowKeys: [],
        loading: true,
        userDetaile: false
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/order/confirmRefund",
        data: {
          orderNo: record.orderNo,
          confirm: index
        }
      }).done(
        function (data) {
          if (!data.error.length) {
            message.success("操作成功!");
            this.setState({
              loading: false,
              showDesc: false
            });
          }
          this.loadData(this.state.pageNo);
        }.bind(this)
      );
    },
    //受理订单
    admissibleOrderOk(e) {
      this.admissibleOrder(e, true);
    },
    admissibleOrderCancel(e) {
      this.admissibleOrder(e, false);
    },
    admissibleOrder(record, index) {
      this.setState({
        signBillVisible: false,
        selectedRowKeys: [],
        loading: true,
        userDetaile: false
      });
      $.ajax({
        method: "POST",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/order/confirmIntention",
        data: {
          orderNo: record.orderNo,
          confirm: index
        }
      }).done(
        function (data) {
          if (!data.error.length) {
            message.success("操作成功!");
            this.setState({
              loading: false,
              showDesc: false
            });
          } else {
            message.warning(data.error[0].message);
            this.setState({
              showDesc: true
            });
          }
          this.loadData(this.state.pageNo);
        }.bind(this)
      );
    },
    //取消订单
    cancelOrder(e) {
      this.operation(e, 3);
    },
    //作废订单
    scrapOrder(e) {
      this.operation(e, 2);
    },
    //锁定订单
    lockOrder(e) {
      this.operation(e, 0);
    },
    //解锁订单
    unlockOrder(e) {
      this.operation(e, 1);
    },
    //签单
    signBill(ids) {
      this.setState({
        uid: ids,
        signBillVisible: true
      });
    },
    componentWillMount() {
      this.departmentList();
      this.loadData();
      let data = localStorage.getItem("newData");
      if (data != "{}" && data && data.toString() !== '[object Object]') {
        var newData = JSON.parse(data);
        this.tableRowClick(newData);
      }
    },
    tableRowClick(record) {
      this.state.userDetaile = true;
      this.state.datauser = record;
      this.setState({
        signBillVisible: false,
        signBillState: true,
        showDesc: true
      });
      localStorage.setItem("newData", "{}");
    },
    //列表各种骚操作
    operation(record, index) {
      this.setState({
        selectedRowKeys: [],
        loading: true,
        showDesc: false
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/order/lockOrRevokeOrder",
        data: {
          orderNo: record.orderNo,
          operatorType: index
        }
      }).done(
        function (data) {
          if (!data.error.length) {
            message.success("操作成功!");
            this.setState({
              loading: false
            });
          } else {
            message.warning(data.error[0].message);
          }
          this.loadData(this.state.pageNo);
        }.bind(this)
      );
    },
    addClick() {
      this.state.userDetaile = false;
      this.setState({
        signBillVisible: false,
        showDesc: true
      });
    },
    closeDesc(e, s) {
      this.state.userDetaile = false;
      this.state.signBillVisible = false;
      this.state.showDesc = e;
      if (s) {
        this.loadData(this.state.pageNo);
      }
    },
    searchSwitch() {
      this.setState({
        signBillVisible: false,
        searchMore: !this.state.searchMore
      });
    },
    getOrgCodeUrl(e) {
      this.setState({ orgCodeUrl: e });
    },
    search() {
      this.setState({
        signBillVisible: false
      });
      this.loadData();
    },
    reset() {
      this.setState({
        signBillVisible: false
      });
      this.state.searchOrderNo = undefined;
      this.state.orderNo = "";
      this.state.customerName = "";
      this.state.departmenttSearch = undefined;
      this.state.releaseDate[0] = undefined;
      this.state.releaseDate[1] = undefined;
      this.state.projectProgress = undefined;
      this.state.approval = undefined;
      this.state.formalOrder = true;
      this.state.intentOrder = true;
      (this.state.liquidationStatusSearch = []),
        (this.state.contractNoSearch = "");
      this.state.departmenttList = [];
      this.state.approvalSearch = undefined
      this.state.amountStatus = undefined
      this.loadData();
    },
    //部门
    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)
      );
    },
    changeList(arr) {
      const newArr = [];
      this.state.columns.forEach(item => {
        arr.forEach(val => {
          if (val === item.title) {
            newArr.push(item);
          }
        });
      });
      this.setState({
        changeList: newArr
      });
    },
    onSelectChange(selectedRowKeys) {
      this.setState({ selectedRowKeys:selectedRowKeys.slice(-1) });
    },
    // 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)
    //   );
    // },
    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: 9999999
        },
        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)
      );
    },
    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: 9999999
        },
        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;
              thisdata.key = i + 1;
              theArr.push(thisdata);
            }
          }
          totalWaibao = (Math.round(totalWaibao * 1000000) / 1000000).toFixed(6);
          this.setState({
            proDataList: theArr,
            totalWaibao
          });
        }.bind(this)
      }).always(
        function () {
          this.setState({
            loading: false
          });
        }.bind(this)
      );
    },
    tableRowClickPro(record) {
      this.setState({
        pvisible: true,
        record
      });
    },
    render() {
      const FormItem = Form.Item;
      const formItemLayout = {
        labelCol: { span: 8 },
        wrapperCol: { span: 14 }
      };
      const RadioGroup = Radio.Group;
      var departmentArr = this.state.departmentArr || [];
      const { RangePicker } = DatePicker;
      const { loading, selectedRowKeys, visible } = this.state;
      const rowSelection = {
        selectedRowKeys,
        onChange: this.onSelectChange,
        hideDefaultSelections: true,
        // type: "radio"
      };
      return (
        
      );
    }
  })
);
export default MyService;