// 变更--驳回
import React, { Component } from "react";
import {
  Form,
  Select,
  Input,
  Button,
  message,
  Spin,
  Tag,
  Table,
  Col,
  Popconfirm,
  Modal,
  AutoComplete,
  DatePicker,
  Radio,
} from "antd";
import $ from "jquery/src/ajax";
import moment from "moment";
import ResolutionDetail from "@/resolutionDetail";
import PicturesWall from "./picturesWall";
import Rizhi from "./rizhi";
import {
  cuiJieDian,
  orderTypes,
  customerType,
  jiedian,
  tepi,
  boutique
} from "@/dataDic.js";
import { moneyVerify } from "@/tools.js"
import EnterpriseNameChange from "../../../../common/enterpriseNameChange";
// F:\developmentFile\kede-client\js\component\common\projectOperation\index.jsx
import ProjectOperation from "../../../../common/projectOperation";
const FormItem = Form.Item;
const confirm = Modal.confirm;
const Option = AutoComplete.Option;
const formItemLayout = {
  labelCol: { span: 8 },
  wrapperCol: { span: 14 }
};
class ChangeApply extends Component {
  constructor(props) {
    super(props);
    this.state = {
      data: {},
      voucherUrl: [],
      dataSource: [],
      cuiDataSource: [],
      loading: false,
      changeCuiList: [
        {
          title: "变更状态",
          dataIndex: "type",
          key: "type",
          render: (text) => {
            let str = "";
            let color = "";
            if (text == 1) {
              str = "增";
              color = "#87d068";
            } else if (text == 2) {
              str = "改";
              color = "#108ee9";
            } else if (text == 3) {
              str = "删";
              color = "#f50";
            }
            return (
              
                {str}
              
            );
          },
        },
        {
          title: "项目名称",
          dataIndex: "commodityName",
          key: "commodityName",
          render: (text, record, index) => {
            let dataArr = this.state.proDataSource || [];
            if (text) {
              if (record.ctid) {
                return {text + "-" + record.ctid};
              } else {
                let tid = record.tid;
                let ctid = "";
                dataArr.forEach((item, index) => {
                  if (item.tid == tid) {
                    ctid = item.id;
                  }
                });
                return {text + "-" + ctid};
              }
            }
            return (
              
            );
          },
        },
        {
          title: "项目分类",
          dataIndex: "projectType",
          key: "projectType",
          render: (text, record) => {
            if (text) {
              let arr = this.state.proDataSource || [];
              let str = "";
              for (let i = 0; i < arr.length; i++) {
                if (this.state.proDataSource[i].cSort == text) {
                  str = this.state.proDataSource[i].cname;
                  return {str};
                }
              }
            }
            if (this.state.getLoad) {
              return (
                
              );
            } else {
              return (
                
              );
            }
          },
        },
        {
          title: "催款科目",
          dataIndex: "dunTypeName",
          key: "dunTypeName",
          render: (text, record) => {
            if (text) {
              return {text};
            }
            if (this.state.getLoad) {
              let arr = record.arr || [];
              return (
                
                  
                  {record.dunType == 0 ? (
                     {
                        record.customizeName = e.target.value;
                        this.setState({
                          contactList: this.state.contactList,
                        });
                      }}
                      style={{ width: "120px" }}
                    />
                  ) : (
                    ""
                  )}
                
              );
            } else {
              return (
                
              );
            }
          },
        },
        {
          title: "收款时间(特批需选择时间)",
          dataIndex: "waitDay",
          key: "waitDay",
          render: (text, record) => {
            if (record.dunTypeName) {
              if (record.customizeTimes) {
                return record.customizeTimes;
              }
              if (text == 0) {
                var str = "当天";
              } else if (!text) {
                var str = "";
              } else {
                var str = text + "天";
              }
              return {str};
            }
            return (
              
                {record.dunType == 0 ? (
                   {
                      let time = moment(e).valueOf();
                      let today = Date.parse(new Date());
                      if (time <= today) {
                        return true;
                      }
                    }}
                    onChange={(e, t) => {
                      record.customizeTimes = t;
                    }}
                  />
                ) : (
                  
                )}
              
            );
          },
        },
        {
          title: "金额(万元)",
          dataIndex: "money",
          key: "money",
          render: (text, record) => {
            if (record.dunTypeName) {
              if (record.appropriationRatio) {
                let percent = Number(record.appropriationRatio * 100);
                percent += "%";
                return {percent}(拨款比例);
              } else {
                return {text};
              }
            }
            return (
              
            );
            // if (this.state.boFlag) {
            //   return (
            //     
            //       
            //         
            //       
            //       
            //          {
            //             record.money = e.target.value;
            //             this.setState({
            //               contactList: this.state.contactList,
            //             });
            //           }}
            //           style={{ width: "120px" }}
            //         />
            //       
            //     
            //        {
            //           record.money = e.target.value;
            //           this.setState({ contactList: this.state.contactList });
            //         }}
            //         style={{ width: "120px" }}
            //       />
            //     
            //   );
            // }
          },
        },
        {
          title: "服务年限",
          dataIndex: "startDate",
          key: "startDate",
          render: (text, record) => {
            if (record.dunTypeName) {
              return {text};
            }
            return (
              
                {
                  record.dunType != 0 ?
                    
 : 
                }
              
                 {
                    this.changeDeleteCui(record);
                  }}
                  okText="删除"
                  cancelText="不删除"
                >
                  
                
                {record.isSave ? (
                  
                ) : (
                  ""
                )}
              
 
            );
          },
        },
      ],
      resVisible: false,
      proColumns: [
        {
          title: "变更状态",
          dataIndex: "type",
          key: "type",
          render: (text, record) => {
            let str = "";
            let color = "";
            if (text == 1) {
              str = "增";
              color = "#87d068";
            } else if (text == 2) {
              str = "改";
              color = "#108ee9";
            } else if (text == 3) {
              str = "删";
              color = "#f50";
            }
            return (
              
                
                  {str}
                
                {record.splitStatus == 1 ? (
                  
                    父项目
                  
                ) : (
                  ""
                )}
                {record.splitStatus == 2 ? (
                  
                    子项目
                  
                ) : (
                  ""
                )}
              
            );
          },
        },
        {
          title: "业务项目名称",
          dataIndex: "commodityName",
          key: "commodityName",
          render: (text, record) => {
            return {text}{record.patentTypeName}{"-" + record.id}
          }
        },
        {
          title: "项目类别",
          dataIndex: "cname",
          key: "cname",
        },
        {
          title: "项目数量",
          dataIndex: "commodityQuantity",
          key: "commodityQuantity",
        },
        {
          title: "金额(万元)",
          dataIndex: "commodityPrice",
          key: "commodityPrice",
          render: (text, record) => {
            if (record.splitStatus == 2) {
              return "/";
            } else {
              return text;
            }
          },
        },
        {
          title: "主要项目",
          dataIndex: "main",
          key: "main",
          render: (text) => {
            return text ? "是" : "否";
          },
        },
        {
          title: "项目负责人",
          dataIndex: "receiverName",
          key: "receiverName",
        },
        {
          title: "项目说明",
          dataIndex: "taskComment",
          key: "taskComment",
          render: (text) => {
            return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
          },
        },
        {
          title: "操作",
          dataIndex: "ABC",
          key: "ABC",
          render: (text, record) => {
            return (
              
                
              
            );
          },
        },
      ],
      patentTypeList: [],
      displayFees: "none",
    };
    this.departmentList = this.departmentList.bind(this);
    this.changeApply = this.changeApply.bind(this);
    this.getVoucherUrl = this.getVoucherUrl.bind(this);
    this.proList = this.proList.bind(this);
    this.cuiList = this.cuiList.bind(this);
    this.showConfirm = this.showConfirm.bind(this);
    this.showConfirmChange = this.showConfirmChange.bind(this);
    this.changeAddPro = this.changeAddPro.bind(this);
    this.changeProSubmit = this.changeProSubmit.bind(this);
    this.changeDeletePro = this.changeDeletePro.bind(this);
    this.changeAddCui = this.changeAddCui.bind(this);
    this.changeDeleteCui = this.changeDeleteCui.bind(this);
    this.changeSaveCui = this.changeSaveCui.bind(this);
    this.submitChange = this.submitChange.bind(this);
    this.editCui = this.editCui.bind(this);
    this.editPro = this.editPro.bind(this);
    this.submitEditCui = this.submitEditCui.bind(this);
    this.submitEditPro = this.submitEditPro.bind(this);
    this.nextCancel = this.nextCancel.bind(this);
    this.customerChange = this.customerChange.bind(this);
    this.selectAuto = this.selectAuto.bind(this);
    this.supervisor = this.supervisor.bind(this);
    this.httpChange = this.httpChange.bind(this);
    this.showRes = this.showRes.bind(this);
    this.resCancel = this.resCancel.bind(this);
    this.deleteChange = this.deleteChange.bind(this);
    this.not = this.not.bind(this);
  }
  componentDidMount() {
    this.getpatentTypeList()
  }
  nextCancel() {
    this.setState({
      addnextVisible: false,
      changeVisible: false
    });
  }
  showConfirm(fn, record) {
    confirm({
      title: "确定删除此项目吗?",
      content: (
        
          删除后会将该项目下的所有催款节点自动清除!!!
        
      ),
      onOk() {
        fn(record);
      },
      onCancel() { }
    });
  }
  showConfirmChange(fn, record) {
    confirm({
      title: "确定取消本次变更吗?",
      content: (
        
          取消后本次变更将作废!!!
        
      ),
      onOk() {
        fn();
      },
      onCancel() { }
    });
  }
  getpatentTypeList() {
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + '/api/admin/orderProject/getPatentType',
      success: function (data) {
        if (data.error.length === 0) {
          this.setState({
            patentTypeList: data.data
          })
        } else {
          message.warning(data.error[0].message);
        };
      }.bind(this)
    });
  }
  //服务值改变时请求客户名称
  httpChange(e) {
    this.state.gid = "";
    if (e.length >= 1) {
      this.supervisor(e, false);
    }
    this.setState({
      commodityName: e
    });
  }
  //客户名称自动补全
  customerChange(e) {
    if (this.state.customType) {
      this.state.autoId = "";
      if (e.length >= 2) {
        this.supervisor(e, true);
      }
      this.setState({
        customerName: e
      });
    } else {
      this.setState({
        customerName: ""
      });
      message.warning("客户所属类型必须指定");
    }
  }
  //上级主管输入框失去焦点是判断客户是否存在
  selectAuto(value) {
    let kid = [];
    let fwList = this.state.customerArr;
    fwList.map(function (item) {
      if (value == item.bname) {
        kid = item;
      }
    });
    if (kid.type == "1") {
      this.setState({
        displayFees: "block",
        patentTransfer: kid.patentTransfer,
      });
    } else {
      this.setState({
        displayFees: "none",
      });
    }
    this.setState({
      commodityName: value,
      gid: kid.id,
      addProjectType: kid.type,
      //commodityPrice:kid.price==0?kid.price.toString():kid.price,
      commodityFirstPayment: kid.firstPayment == 0 ? kid.firstPayment.toString() : kid.firstPayment,
      isIso: value.indexOf("贯标") !== -1,// 是否为贯标项目
    });
  }
  //加载(自动补全)
  supervisor(e, state) {
    //客户名称与服务名称自动补全
    let api = state
      ? "/api/admin/customer/getCustomerByName"
      : "/api/admin/order/getBusinessProjectByName";
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + api,
      data: state
        ? {
          name: e,
          type: this.state.customType
        }
        : {
          businessName: e
        },
      success: function (data) {
        let thedata = data.data;
        if (!thedata) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
          thedata = {};
        }
        this.setState({
          states: state,
          customerArr: thedata
        });
      }.bind(this)
    }).always(
      function () {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  }
  //变更申请
  changeApply() {
    if (moneyVerify(this.state.data.totalAmount)) {
      return false;
    }
    if (moneyVerify(this.state.data.changeAmount)) {
      return false;
    }
    if (
      this.state.data.type == 0 ||
      this.state.data.type == 1 ||
      this.state.data.type == 3
    ) {
      if (this.state.data.settlementAmount < this.state.data.changeAmount) {
        message.warning("退款金额大于已收款金额");
        return;
      }
    }
    this.setState({
      loading: true
    })
    let theorgCodeUrl = [];
    if (this.state.voucherUrl.length) {
      let picArr = [];
      this.state.voucherUrl.map(function (item) {
        if (item.response && item.response.data && item.response.data.length) {
          picArr.push(item.response.data);
        }
      });
      theorgCodeUrl = picArr.join(",");
    }
    Object.assign(this.state.data, {
      id: this.props.orderData.id, //订单编号
      changeType: 0,
      voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "",
      consultantExamine: [],
      managerExamine: []
    });
    $.ajax({
      method: "post",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/orderChange/updateOrderChange",
      data: this.state.data
    }).done(
      function (data) {
        if (!data.error.length) {
          message.success("变更成功!");
          this.props.onCancel();
          this.setState({
            loading: false
          });
        } else {
          message.warning(data.error[0].message);
          this.setState({
            loading: false
          });
        }
      }.bind(this)
    );
  }
  // componentDidMount() {
  //   window.setTimeout(() => {
  //     this.loadDataChange();
  //   }, 10);
  // }
  // loadDataChange() {
  //   console.log(this.props);
  //   $.ajax({
  //     method: "get",
  //     dataType: "json",
  //     crossDomain: false,
  //     url: globalConfig.context + "/api/admin/orderChange/orderChangeLogList",
  //     data: {
  //       changeId: this.props.data.id
  //     },
  //     success: function(data) {
  //       if (data.error.length || data.data.list == "") {
  //         if (data.error && data.error.length) {
  //           message.warning(data.error[0].message);
  //         }
  //       } else {
  //         this.setState({
  //           dataSource: data.data
  //         });
  //       }
  //     }.bind(this)
  //   });
  // }
  // 拆分详细
  showRes(record) {
    this.setState({
      resVisible: true,
      resRecord: record
    })
  }
  resCancel() {
    this.setState({
      resVisible: false
    })
  }
  cuiList(id) {
    this.setState({
      loading: true,
    });
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/orderChange/selectChangeDun",
      data: {
        id: id || this.state.data.id
      },
      success: function (data) {
        this.setState({
          cuiDataSource: data.data,
          loading: false,
        });
        if (data.data && data.data.length) {
          if (id) {
            this.setState({
              listCuiFlag: true,
            });
          }
          this.setState({
            cuiDataSource: data.data,
          });
          this.setState({
            loading: false,
          });
        } else if (data.error && data.error.length) {
          message.warning(data.error[0].message);
          this.setState({
            loading: false,
          });
        }
      }.bind(this)
    });
  }
  proList(id) {
    this.setState({
      loading: true
    })
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/orderChange/selectChangeTask",
      data: {
        id: id || this.state.data.id
      },
      success: function (data) {
        this.setState({
          loading: false
        })
        if (data.data && data.data.length) {
          if (id) {
            this.setState({
              listFlag: true
            });
          }
          data.data.forEach(item => {
            item.key = item.id
          })
          this.setState({
            proDataSource: data.data
          });
          this.setState({
            loading: false,
          });
        } else if (data.error && data.error.length) {
          message.warning(data.error[0].message)
          this.setState({
            loading: false,
          });
        }
      }.bind(this)
    });
  }
  departmentList() {
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/organization/selectSuperId",
      data: {},
      success: function (data) {
        let thedata = data.data;
        let theArr = [];
        if (!thedata) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          thedata.map(function (item, index) {
            theArr.push({
              key: index,
              name: item.name,
              id: item.id
            });
          });
        }
        this.setState({
          departmentArr: theArr
        });
      }.bind(this)
    });
  }
  getVoucherUrl(e) {
    this.setState({
      voucherUrl: e
    });
  }
  changeAddPro() {
    this.setState({
      changeVisible: true,
      gid: "",
      customerArr: [],
      commodityName: "",
      commodityQuantity: "",
      commodityId: "",
      taskComment: "",
      main: undefined,
      commodityPrice: ""
    });
  }
  changeProSubmit() {
    if (this.state.gid == undefined || !this.state.gid) {
      message.warning("服务名称不匹配!");
      return 
    }
    let reg = /^([0]|[1-9][0-9]*)$/;
    if (
      !this.state.commodityQuantity ||
      !reg.test(this.state.commodityQuantity)
    ) {
      message.warning("请输入正确商品数量!");
      return 
    }
    if (this.state.displayFees === 'block') {
      if (this.state.patentType === "" && !this.state.patentTransfer) {
        message.warning("请选择专利类型!");
        return 
      }
      if (this.state.officialCost === '') {
        message.warning("请选择官费!");
        return
      }
      if (this.state.costReduction === "" && (this.state.patentType === 0 || this.state.patentType === 2) && this.state.officialCost === 1) {
        message.warning("请选择费减!");
        return
      }
    }
    if (!this.state.commodityPrice) {
      message.warning("请输入金额!");
      return 
    }
    if (!this.state.main) {
      message.warning("请选择是否为主要项目!");
      return 
    }
    this.setState({
      loading: true
    });
    let type = 0;
    if (this.state.typeChange == 4 || this.state.typeChange == 5) {
      type = 1;
    }
    $.ajax({
      method: "post",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/orderChange/addChangeTask",
      data: {
        commodityId: this.state.gid, //商品ID
        orderNo: this.state.data.orderNo, //订单编号
        commodityName: this.state.commodityName, //商品名称
        commodityQuantity: this.state.commodityQuantity, //商品数量
        commodityPrice: this.state.commodityPrice, //签单总价
        taskComment: this.state.taskComment, //服务说明
        main: this.state.main, //是否为主要项目
        cid: this.state.data.id, //变更ID
        type
      },
      success: function (data) {
        let theArr = [];
        if (data.error && data.error.length) {
          message.warning(data.error[0].message);
        } else {
          message.success("保存成功");
          this.nextCancel();
          this.proList();
        }
      }.bind(this)
    }).always(
      function () {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  }
  changeDeletePro(record) {
    this.setState({
      loading: true
    });
    $.ajax({
      method: "post",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/orderChange/updateChangeTask",
      data: {
        id: record.id,
        type: 3,
        tid: record.tid,
        splitStatus: record.splitStatus
      },
      success: function (data) {
        let theArr = [];
        if (data.error && data.error.length) {
          message.warning(data.error[0].message);
        } else {
          message.success("删除成功");
          this.proList();
          this.cuiList();
        }
      }.bind(this)
    }).always(
      function () {
        this.setState({
          loading: false
        });
      }.bind(this)
    );
  }
  //点击新增变更催款节点
  changeAddCui() {
    this.state.cuiDataSource.push({
      key: this.state.cuiDataSource.length,
      money: "",
      dunSubject: undefined,
      orderNo: this.state.data.orderNo,
      dunTarget: this.state.kehuId
    });
    this.setState({
      cuiDataSource: this.state.cuiDataSource,
      cuiFlag: true
    });
  }
  //删除变更收款节点
  changeDeleteCui(index) {
    if (index.id) {
      this.state.cuiDataSource.splice(index.id, 1);
      this.setState({
        contactListNew: this.state.cuiDataSource,
        cuiFlag: false,
        addFlag: false,
        boFlag: false
      });
      $.ajax({
        url: globalConfig.context + "/api/admin/orderChange/updateChangeDun",
        method: "post",
        data: {
          id: index.id,
          type: 3,
          tid: index.tid,
          did: index.did
        }
      }).done(
        function (data) {
          this.setState({
            loading: false
          });
          if (!data.error.length) {
            message.success("删除成功!");
            this.setState({
              cuiFlag: false
            });
            this.cuiList();
          } else {
            message.warning(data.error[0].message);
          }
        }.bind(this)
      );
    } else {
      this.state.cuiDataSource.splice(index.key, 1);
      this.setState({
        cuiDataSource: this.state.cuiDataSource,
        cuiFlag: false,
        addFlag: false,
        boFlag: false
      });
    }
  }
  changeSaveCui(record) {
    if (record.boStatus == "false") {
      record.boStatus = false;
    } else if (record.boStatus == "true") {
      record.boStatus = true;
    }
    if (!this.state.yearFlag) {
      if (!record.effectiveCount && !record.dunTypeCustom) {
        message.warning("请选择服务年限");
        return;
      }
    } else {
      record.effectiveCount = "";
    }
    if (isNaN(parseInt(record.money)) && !record.boStatus) {
      message.warning("请填写金额");
      return;
    } else if ((isNaN(parseInt(record.money)) && record.boStatus)) {
      message.warning("请填写比例");
      return;
    }
    if (record.boStatus) {
      if (
        typeof +record.money == "number" &&
        +record.money >= 0 &&
        +record.money <= 1
      ) {
        record.appropriationRatio = record.money;
      } else {
        message.warning("金额比例填写错误,比例范围0~1");
        return;
      }
    }
    if (!record.dunType && record.dunType != 0) {
      message.warning("请选择对应科目");
      return;
    }
    if (record.dunType != 1) {
      record.waitDay = "";
    }
    this.setState({
      loading: true
    });
    if (record.boStatus) {
      $.ajax({
        url: globalConfig.context + "/api/admin/orderChange/addChangeDun",
        method: "post",
        data: {
          orderNo: record.orderNo,
          ctid: record.ctid,
          projectType: record.sort,
          dunType: record.dunType,
          appropriationRatio: record.appropriationRatio,
          waitDay: record.waitDay,
          effectiveCount: record.effectiveCount,
          cid: this.state.data.id, //变更ID
          ustomizeTimes:
            record.dunType == 0 ? record.customizeTimes : undefined,
          customizeName:
            record.dunType == 0 ? record.customizeName : undefined,
        }
      }).done(
        function (data) {
          this.setState({
            loading: false,
          });
          if (!data.error.length) {
            message.success("保存成功!");
            this.setState({
              cuiFlag: false,
              boFlag: false,
              addFlag: false,
            });
            this.cuiList();
          } else {
            message.warning(data.error[0].message);
          }
        }.bind(this)
      );
    } else {
      $.ajax({
        url: globalConfig.context + "/api/admin/orderChange/addChangeDun",
        method: "post",
        data: {
          orderNo: record.orderNo,
          ctid: record.ctid,
          projectType: record.sort,
          dunType: record.dunType,
          money: record.money,
          waitDay: record.waitDay,
          effectiveCount: record.effectiveCount,
          cid: this.state.data.id, //变更ID
          customizeTimes:
            record.dunType == 0 ? record.customizeTimes : undefined,
          customizeName:
            record.dunType == 0 ? record.customizeName : undefined,
        }
      }).done(
        function (data) {
          this.setState({
            loading: false,
          });
          if (!data.error.length) {
            message.success("保存成功!");
            this.setState({
              cuiFlag: false,
              boFlag: false,
              addFlag: false,
            });
            this.cuiList();
          } else {
            message.warning(data.error[0].message);
          }
        }.bind(this)
      );
    }
  }
  submitChange() {
    if (
      this.state.typeChange == undefined ||
      (this.state.typeChange == "" && this.state.typeChange != 0)
    ) {
      message.warning("请选择变更类型");
      return false;
    }
    if (
      this.state.typeChange == 0 ||
      this.state.typeChange == 1 ||
      this.state.typeChange == 3
    ) {
      if (this.state.settlementAmount < this.state.changeAmount) {
        message.warning("退款金额大于已收款金额");
        return;
      }
    }
    if (this.state.processStatus != 5 || this.state.processStatus != 6) {
      message.warning("当前订单流程不能发起变更!");
      return false;
    }
    if (this.state.changeAmount === "") {
      message.warning("申请退款金额不能为空!");
      return false;
    }
    if (this.state.remarksC.trim() == "") {
      message.warning("请正确填写变更原因");
      return false;
    }
    if (this.state.startRemarks.trim() == "") {
      message.warning("请正确填写备注信息");
      return false;
    }
    let theorgCodeUrl = [];
    if (this.state.voucherUrl.length) {
      let picArr = [];
      this.state.voucherUrl.map(function (item) {
        if (item.response && item.response.data && item.response.data.length) {
          picArr.push(item.response.data);
        }
      });
      theorgCodeUrl = picArr.join(",");
    }
    this.setState({
      loading: true
    });
    $.ajax({
      url: globalConfig.context + "/api/admin/orderChange/updateOrderChange",
      method: "post",
      data: {
        id: this.state.changeId,
        changeType: 0,
        orderNo: this.state.orderNo, //订单编号
        processState: 0,
        startRemarks: this.state.startRemarks,
        remarks: this.state.remarksC,
        voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "",
        totalAmount: this.state.totalAmount,
        settlementAmount: this.state.settlementAmount,
        changeAmount: this.state.changeAmount,
        applicant: this.state.salesmanName,
        depName: this.state.depName,
        type: this.state.typeChange
      }
    }).done(
      function (data) {
        if (!data.error.length) {
          this.setState({
            loading: false
          });
          message.success("发起变更成功");
          this.handleCancelclose();
        } else {
          message.warning(data.error[0].message);
          this.setState({
            loading: false
          });
        }
      }.bind(this)
    );
  }
  editCui(record) {
    this.setState({
      editCuiVisible: true,
      editCuiMoney: record.appropriationRatio ? record.appropriationRatio : record.money,
      appropriationRatio: record.appropriationRatio,
      editCuiTid: record.tid,
      editCuiId: record.id
    });
  }
  editPro(record) {
    this.setState({
      editProVisible: true,
      editSplitStatus: record.splitStatus,
      editProMoney: record.commodityPrice,
      editProCommodityQuantity: record.commodityQuantity,
      editProTid: record.tid,
      editProId: record.id
    });
  }
  submitEditCui(type) {
    if (isNaN(parseFloat(this.state.editCuiMoney))) {
      if (type === 1) {
        message.warn('请输入比例')
      } else {
        message.warn('请输入金额')
      }
      return;
    }
    this.setState({
      loading: true
    });
    let data = {
      id: this.state.editCuiId,
      type: this.state.editCuiTid ? 2 : 1,
      tid: this.state.editCuiTid,
    }
    if (type === 1) {
      data.appropriationRatio = this.state.editCuiMoney;
    } else {
      data.money = this.state.editCuiMoney;
    }
    $.ajax({
      url: globalConfig.context + "/api/admin/orderChange/updateChangeDun",
      method: "post",
      data
    }).done(
      function (data) {
        this.setState({
          loading: false
        });
        if (!data.error.length) {
          message.success("修改成功!");
          this.cuiList();
          this.proList()
          this.setState({
            editCuiVisible: false
          });
        } else {
          message.warning(data.error[0].message);
        }
      }.bind(this)
    );
  }
  submitEditPro() {
    this.setState({
      loading: true
    });
    $.ajax({
      url: globalConfig.context + "/api/admin/orderChange/updateChangeTask",
      method: "post",
      data: {
        id: this.state.editProId,
        type: this.state.editProTid ? 2 : 1,
        commodityPrice: this.state.editProMoney,
        commodityQuantity: this.state.editProCommodityQuantity,
        tid: this.state.editProTid
      }
    }).done(
      function (data) {
        this.setState({
          loading: false
        });
        if (!data.error.length) {
          message.success("修改成功!");
          this.proList();
          this.cuiList()
          this.setState({
            editProVisible: false
          });
        } else {
          message.warning(data.error[0].message);
        }
      }.bind(this)
    );
  }
  componentWillMount() {
    this.departmentList();
    this.state.data = this.props.orderData;
    this.state.data.oldPrice = this.props.orderData.totalAmount;
    this.setState({
      data: this.state.data,
      voucherUrl: this.props.voucherUrl
    });
    this.proList();
    this.cuiList();
    let e = this.props.orderData.type;
    if (e == 1) {
      this.setState({
        hetongFlag: false,
        listFlag: false,
        listCuiFlag: false,
        tuiKuanFlag: false,
        displayList: false
      });
    } else if (e == 2) {
      this.setState({
        hetongFlag: true,
        listFlag: false,
        listCuiFlag: false,
        tuiKuanFlag: true,
        displayList: false
      });
    } else if (e == 3) {
      this.setState({
        listFlag: false,
        hetongFlag: false,
        listCuiFlag: false,
        tuiKuanFlag: false,
        displayList: true
      });
    } else if (e == 4) {
      this.setState({
        listFlag: false,
        listCuiFlag: false,
        hetongFlag: false,
        tuiKuanFlag: true,
        displayList: false
      });
    } else if (e == 5) {
      this.setState({
        listFlag: false,
        listCuiFlag: false,
        hetongFlag: true,
        tuiKuanFlag: true,
        displayList: false
      });
    } else {
      this.setState({
        listFlag: true,
        hetongFlag: true,
        listCuiFlag: true,
        tuiKuanFlag: false,
        displayList: false
      });
    }
  }
  // componentWillReceiveProps(nextProps) {
  //   this.state.data = nextProps.orderData;
  //   this.state.data.oldPrice = nextProps.orderData.totalAmount;
  //   this.setState({
  //     data: this.state.data,
  //     voucherUrl: nextProps.voucherUrl
  //   });
  //   // this.proList();
  //   // this.cuiList();
  //   let e = nextProps.orderData.type;
  //   if (e == 1) {
  //     this.setState({
  //       hetongFlag: false,
  //       listFlag: false,
  //       listCuiFlag: false,
  //       tuiKuanFlag: false,
  //       displayList: false
  //     });
  //   } else if (e == 2) {
  //     this.setState({
  //       hetongFlag: true,
  //       listFlag: false,
  //       listCuiFlag: false,
  //       tuiKuanFlag: true,
  //       displayList: false
  //     });
  //   } else if (e == 3) {
  //     this.setState({
  //       listFlag: false,
  //       hetongFlag: false,
  //       listCuiFlag: false,
  //       tuiKuanFlag: false,
  //       displayList: true
  //     });
  //   } else if (e == 4) {
  //     this.setState({
  //       listFlag: false,
  //       listCuiFlag: false,
  //       hetongFlag: false,
  //       tuiKuanFlag: true,
  //       displayList: false
  //     });
  //   } else if (e == 5) {
  //     this.setState({
  //       listFlag: false,
  //       listCuiFlag: false,
  //       hetongFlag: true,
  //       tuiKuanFlag: true,
  //       displayList: false
  //     });
  //   } else {
  //     this.setState({
  //       listFlag: true,
  //       hetongFlag: true,
  //       listCuiFlag: true,
  //       tuiKuanFlag: false,
  //       displayList: false
  //     });
  //   }
  // }
  not() {
  }
  deleteChange() {
    this.setState({
      loading: true,
    });
    $.ajax({
      url: globalConfig.context + "/api/admin/orderChange/cancelOrderChange",
      method: "post",
      data: {
        id: this.state.data.id,
        status: this.state.data.status,
        processState: this.state.data.processState,
        orderNo: this.state.data.orderNo
      },
    }).done(
      function (data) {
        this.setState({
          loading: false,
        });
        if (!data.error.length) {
          message.success("取消成功!");
          this.props.onCancel()
        } else {
          message.warning(data.error[0].message);
        }
      }.bind(this)
    );
  }
  render() {
    const expandedRowRender = e => {
      const data = e.list;
      data.forEach((item) => {
        item.key = item.id
      })
      let columns = [];
      if (e.list instanceof Array && e.list.length) {
        columns = [
          {
            title: "变更状态",
            dataIndex: "type",
            key: "type",
            render: (text, record) => {
              let str = "";
              let color = "";
              if (text == 1) {
                str = "增";
                color = "#87d068";
              } else if (text == 2) {
                str = "改";
                color = "#108ee9";
              } else if (text == 3) {
                str = "删";
                color = "#f50";
              }
              return (
                
                  
                    {str}
                  
                  {record.splitStatus == 1 ? (
                     {
                    //   e.stopPropagation();
                    //   this.showRes(record);
                    // }}
                    >
                      父项目
                    
                  ) : (
                    ""
                  )}
                  {record.splitStatus == 2 ? (
                     {
                    //   e.stopPropagation();
                    //   this.showRes(record);
                    // }}
                    >
                      子项目
                    
                  ) : (
                    ""
                  )}
                
              );
            },
          },
          {
            title: "业务项目名称",
            dataIndex: "commodityName",
            key: "commodityName",
            render: (text, record) => {
              return {text}{record.patentTypeName}{"-" + record.id}
            }
          },
          {
            title: "项目类别",
            dataIndex: "cname",
            key: "cname",
          },
          {
            title: "项目数量",
            dataIndex: "commodityQuantity",
            key: "commodityQuantity",
          },
          {
            title: "金额(万元)",
            dataIndex: "commodityPrice",
            key: "commodityPrice",
            render: (text, record) => {
              if (record.splitStatus == 2) {
                return "/";
              } else {
                return text;
              }
            },
          },
          {
            title: "主要项目",
            dataIndex: "main",
            key: "main",
            render: (text) => {
              return text ? "是" : "否";
            },
          },
          {
            title: "项目负责人",
            dataIndex: "receiverName",
            key: "receiverName",
          },
          {
            title: "项目说明",
            dataIndex: "taskComment",
            key: "taskComment",
            render: (text) => {
              return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
            },
          },
          {
            title: "操作",
            dataIndex: "ABC",
            key: "ABC",
            render: (text, record) => {
              return (
                
                  
                
              );
            },
          },
        ];
        return (
          
        );
      } else {
        columns = [];
        return (
          
            此项目暂未拆分
          
        );
      }
    };
    const { TextArea } = Input;
    const data = this.state.data;
    // let departmentArr = this.state.departmentArr || [];
    const dataSources = this.state.customerArr || [];
    const cuiDataList = this.state.contactList || [];
    let departmentArr = this.state.departmentArr || [];
    const options = this.state.states
      ? dataSources.map(group => (
        
          {group.name}
        
      ))
      : dataSources.map((group, index) => (
        
          {group.bname}
        
      ));
    return (
      
        
          {this.state.resVisible ? (
            
          ) : (
            ""
          )}
          
            
              {data.userName}
              
            
          
          
            
              {data.contractNo}
            
          
          
            
              {this.state.data.depName}
            
            
              {/*  {
                let data = this.state.data;
                data.applicant = e.target.value;
                this.setState({ data });
              }}
              style={{ width: "240px" }}
            /> */}
              {data.applicant}
            
          
          
            
              
              
              {this.state.data.status == 3 ? (
                
              ) : (
                ""
              )}
            
          
          
            
               {
                  let data = this.state.data;
                  data.totalAmount = e.target.value;
                  this.setState({ data });
                }}
                style={{ width: "240px" }}
              />
            
            
              {/*  {
                let data = this.state.data;
                data.settlementAmount = e.target.value;
                this.setState({ data });
              }}
              style={{ width: "240px" }}
            /> */}
              
                {this.state.data.settlementAmount}    
                
                  (注:已收款与现实收款不符,请与财务专员联系)
                
              
            
            
               {
                  let data = this.state.data;
                  data.changeAmount = e.target.value;
                  this.setState({ data });
                }}
                style={{ width: "240px" }}
              />
            
          
          
            
              
                项目业务
              
              
                (注:项目删除后,此项目的全部节点、全部工时,全部被删除,请谨慎删除!双击可修改对应金额数量!)
              
              
            
            
            
              
                催款节点
              
              
                (注:节点删除后,无论节点是否触发,均会删除,请谨慎删除!双击可修改对应金额!)
              
              
            
            
           
          
            
              
          
          {/* 备注 */}
          
            
              
          
          
          {/* 
          {this.state.dataSource.map((item, index) => (
            - {`${item.aname}: ${item.remarks}`}))}
*/}
            
          
           {
              this.setState({
                editProVisible: false,
              });
            }}
          >
            
              
                 {
                    this.setState({ editProMoney: e.target.value });
                  }}
                />
              
              
                 {
                    this.setState({ editProCommodityQuantity: e.target.value });
                  }}
                />
              
            
          
           {
              this.submitEditCui(isNaN(parseFloat(this.state.appropriationRatio)) ? 0 : 1);
            }}
            okText={"保存"}
            width={300}
            onCancel={(e) => {
              this.setState({
                editCuiVisible: false,
                appropriationRatio: ''
              });
            }}
          >
            
              
                 {
                    this.setState({ editCuiMoney: e.target.value });
                  }}
                />
              
            
          
          {/* {
            this.state.changeVisible &&
            
          } */}
          
            
          
        
       
    );
  }
}
export default ChangeApply;