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,
  Row,
  Col,
  Tag,
} 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,
  getApprovalTag,
} from "../../../tools.js";
import { salesList, processStatus } from "@/dataDic.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";
import LogPopup from "../../../common/logPopup";
import Cascaders from "../../../common/cascaders";
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,
          deps: JSON.stringify(this.state.departmenttList),
          approval: this.state.approvalSearch,
          amountStatus: this.state.amountStatus,
          projectType: this.state.projectType,
          processStatus: this.state.processStatus,
        },
        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, //签单金额
                projectType: thisdata.projectType, // 会员状态
                examineName: thisdata.examineName,
                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,
                salesType: thisdata.salesType,
                other: thisdata.other,
                stopProject: thisdata.stopProject, //暂停项目  0无 1有
              });
            }
            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",
          },
          {
            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: "salesType",
            key: "salesType",
            render: (text, record) => {
              return (
                
                  
                    {salesList[text]}
                  
                  {record.stopProject == 1 && 含暂停项目
}
                
              );
            },
          },
          {
            title: "合同编号",
            dataIndex: "contractNo",
            key: "contractNo",
            render: (text, record) => {
              return (
                 {
                        e.stopPropagation();
                        let input = document.getElementById("copyText");
                        input.value = text;
                        input.select();
                        document.execCommand("copy");
                        message.success("复制成功");
                      }}
                    >
                      复制
                    
                  }
                >
                  
                    {text}
                    
                      
                      {getApprovalTag(record.approval)}
                    
                   
                
              );
            },
          },
          {
            title: "订单编号",
            dataIndex: "orderNo",
            key: "orderNo",
            width: 140,
            render: (text, record) => {
              return (
                 {
                        e.stopPropagation();
                        let input = document.getElementById("copyText");
                        input.value = text;
                        input.select();
                        document.execCommand("copy");
                        message.success("复制成功");
                      }}
                    >
                      复制
                    
                  }
                >
                  
                    {text}
                    
                      {record.totalAmount >= 10 && 大客户}
                      {record.projectType == 1 && 会员}
                    
                   
                
              );
            },
          },
          {
            title: "客户名称",
            dataIndex: "userName",
            key: "userName",
            render: (text, record) => {
              return (
                
                  
                        {text}
                        
                      
                    }
                  >
                    
                      {text}
                    
                  
                
              );
            },
          },
          // {
          //   title: "状态",
          //   dataIndex: "deleteSign",
          //   key: "deleteSign",
          //   width: 80,
          //   render: (text) => {
          //     return ;
          //   },
          // },
          {
            title: "订单部门",
            dataIndex: "depName",
            key: "depName",
            width: 100,
          },
          {
            title: "下单时间",
            dataIndex: "createDate",
            key: "createTime",
            width: 80,
            render: (text) => {
              return {text}
            },
          },
          {
            title: "合同签订时间",
            dataIndex: "signDate",
            key: "signDate",
            width: 90,
            render: (text) => {
              return {text}
            },
          },
          {
            title: "流程状态",
            dataIndex: "processStatus",
            key: "processStatus",
            render: (text, record) => {
              return getProcessStatus(text, record.examineName, record.approval);
            },
          },
          {
            title: "签单金额(万元)",
            dataIndex: "totalAmount",
            key: "totalAmount",
            render: (text) => {
              return {text}
            },
          },
          {
            title: "开票金额(万元)",
            dataIndex: "invoiceAmount",
            key: "invoiceAmount",
            render: (text) => {
              return {text}
            },
          },
          {
            title: "已收款(万元)",
            dataIndex: "settlementAmount",
            key: "settlementAmount",
            render: (text) => {
              return {text}
            },
          },
          {
            title: "结算状态",
            dataIndex: "liquidationStatus",
            key: "liquidationStatus",
            render: (text) => {
              return getLiquidationStatus(text);
            },
          },
          // {
          //   title: "是否特批",
          //   dataIndex: "approval",
          //   key: "approval",
          //   render: (text) => {
          //     return getApprovedState(text);
          //   },
          // },
          {
            title: "订单状态",
            dataIndex: "orderStatus",
            key: "orderStatus",
            render: (text) => {
              return getNewOrderStatus(text);
            },
          },
          {
            title: "财务负责人",
            dataIndex: "financeName",
            key: "financeName",
          },
          {
            title: "操作",
            dataIndex: "abc",
            key: "abc",
            width: 85,
            render: (text, record, index) => {
              return (
                
                  {
                    
                  }
                  {/* 
 */}
                  {record.liquidationStatus == 2 ? (
                    
 {
                        this.delectRow(record);
                      }}
                      okText="是"
                      cancelText="否"
                    >
                      
                    
                  ) : (
                    ""
                  )}
                
 
              );
            },
          },
        ],
        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, record) => {
              return (
                
                  {record.status === 3 && getInvoiceStatus(text, record)}
                  {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 ? 0 : 1,
            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 (isNaN(this.state.amount)) {
          message.warning("开票金额包含非法字符,请重新输入");
          this.setState({
            flagA: false,
          });
          return;
        }
        if (!Number(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;
        }
      }
      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) {
      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, //签单金额
                examineName: thisdata.examineName,
                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,
        addPop: "edit"
      });
      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({
        addPop: "add",
        signBillVisible: false,
        showDesc: true,
      });
    },
    closeDesc(e, s) {
      this.state.userDetaile = false;
      this.state.signBillVisible = false;
      this.state.showDesc = e;
      this.state.addPop = ""
      this.loadData(this.state.pageNo);
      // 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 = undefined;
      this.state.customerName = undefined;
      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 = undefined);
      this.state.departmenttList = undefined;
      this.state.approvalSearch = undefined;
      this.state.amountStatus = undefined;
      this.state.projectType = undefined;
      this.state.processStatus = undefined;
      this.Cascaders.empty();
      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 (
        
          
          
            
              开单与签单
            
            
              
                
                  
                
              
              
                
                  
                     {
                        this.setState({ searchOrderNo: e.target.value });
                      }}
                    />
                     {
                        this.setState({
                          contractNoSearch: e.target.value,
                        });
                      }}
                    />
                     {
                        this.setState({ customerName: e.target.value });
                      }}
                    />
                     this.Cascaders = node}
                      placeholder="订单部门"
                      id="id"
                      name="name"
                      children="list"
                      height={28}
                      onSel={(e) => {
                        this.setState({
                          departmenttList: e
                        })
                      }}
                    />
                    {/*  */}
                    
                    
                    
                    
                    
                    
                    
                    
                  
                  
                    下单时间 :
                     {
                        this.setState({ releaseDate: dataString });
                      }}
                    />
                  
                
              
              
                
                
                
              
            
            
            
            {
              this.state.showDesc &&
              
            }
            {this.state.avisible ? (
              
                
              
            ) : (
              
            )}
            
 {
                this.setState({
                  bvisible: false,
                });
              }}
              style={{ zIndex: 5 }}
            >
              
                
                  
                  
                    开票总计}
                    >
                      {this.state.sum + "(万元)"}
                    
                  
                 
              
            
            
              
            
            
              
            
            
              
            
             {
                // this.loadData();
                this.setState({
                  cuiVisible: false,
                });
              }}
            >
              
                 {
                    this.refs.all = e;
                  }}
                >
                  
                 
              
               (
                  
                )}
                content={() => this.refs.all}
              />
            
             {
                // this.loadData();
                this.setState({
                  proVisible: false,
                });
              }}
            >
              
                 {
                    this.setState({ pvisible: false });
                  }}
                />
                 {
                    this.refs.all = e;
                  }}
                >
                  
                 
                {/* 
                  外包(内部)价格总计(万元):{this.state.totalWaibao}
                 */}
              
               (
                  
                )}
                content={() => this.refs.all}
              />
            
           
         
      );
    },
  })
);
export default MyService;