import React from 'react';
import $ from 'jquery/src/ajax';
import {
  Modal,
  message,
  Spin,
  Upload,
  Button,
  Form,
  Table,
  Col,
  Tag,
  Tooltip
} from 'antd';
import {
  getjiedian,
  splitUrl,
  getNewOrderType,
  getProcessStatus,
  getApproval,
  getApprovedType,
  getLiquidationStatus,
  getboutique,
  getCuikuan,
} from "@/tools";
import OrderRiZi from "@/orderRiZi.jsx";
import ResolutionDetail from "@/resolutionDetail";
import ImgList from "../../../common/imgList";
import { getProjectName } from "../../../tools";
import ProjectDetailsReadOnly from "../../../common/projectDetailsReadOnly";
import OrderItemStatus from "../../../common/orderItemStatus";
import EnterpriseNameChange from "../../../common/enterpriseNameChange";
import OrderCoor from '../../order/orderNew/changeComponent/orderCoor';
import ContentUrl from '../../order/orderNew/contentUrl';
import { salesList } from "@/dataDic.js";
import NewEditProject from "../../../common/projectOperation/newEditProject";
import FlowChart from '../../../common/flowchart'; // 流程图
import Gxczx from '../../../common/orderDetail/gxczx' // 高新纯咨询合同说明详情
import Property from '../../../common/orderDetail/property' // 知识产权情况
const OrderDetail = Form.create()(
  React.createClass({
    loadXmu(record) {
      this.state.data = [];
      this.setState({
        loading: true,
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
        data: {
          orderNo: record ? record.orderNo : this.props.data.orderNo,
        },
        success: function (data) {
          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.length; i++) {
              let thisdata = data.data[i];
              thisdata.key = i;
              thisdata.sort = thisdata.cSort;
              theArr.push(thisdata);
            }
          }
          this.setState({
            dataSource: theArr,
            pagination: false,
          });
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    getInitialState() {
      return {
        rotateDeg: 0,
        orderNos: '',
        visible: false,
        avisible: false,
        loading: false,
        declarationBatch: 1,
        dataInfor: {},
        addnextVisible: false,
        jsDate: [],
        replenishUrl: [],
        auditStatus: 0,
        textFileList: [],
        videoFileList: [],
        previewVisibles: false,
        pictureUrl: [],
        pictureUrlMin: [],
        columns: [
          {
            title: "业务项目名称",
            dataIndex: "commodityName",
            key: "commodityName",
            render: (text, record) => {
              return {text}{record.patentTypeName}{"-" + record.id}
            }
          },
          {
            title: "项目类别",
            dataIndex: "cname",
            key: "cname",
          },
          {
            title: "项目数量",
            dataIndex: "commodityQuantity",
            key: "commodityQuantity",
            render: (text, record) => {
              if (record.splitStatus == 1) {
                return (
                  
                    {text}{" "}
                    {/* {
                      record.cSort != 6 &&
                       {
                          e.stopPropagation();
                          this.showRes(record);
                        }}
                      >
                        已拆
                      
                    } */}
                  
                );
              } else {
                return text;
              }
            },
          },
          {
            title: "金额(万元)",
            dataIndex: "commodityPrice",
            key: "commodityPrice",
          },
          {
            title: "负责人",
            dataIndex: "contacts",
            key: "contacts",
          },
          {
            title: "负责人电话",
            dataIndex: "contactsMobile",
            key: "contactsMobile",
          },
          {
            title: "项目状态",
            dataIndex: "projectStatus",
            key: "projectStatus",
            render: (text) => {
              return getProjectName(text);
            },
          },
          {
            title: "主要项目",
            dataIndex: "main",
            key: "main",
            width: 50,
            render: (text) => {
              return text ? "是" : "否";
            },
          },
          {
            title: "总年限",
            dataIndex: "yearSum",
            key: "yearSum",
            render: (text, record) => {
              return (
                
{["", "一年", "二年", "三年", "四年", "五年"][text]}
              );
            }
          },
          {
            title: "年限",
            dataIndex: "serviceLife",
            key: "serviceLife",
            render: (text, record) => {
              return (
                {!!text && JSON.parse(text).toString()}
              );
            }
          },
          {
            title: "本次派单",
            dataIndex: "serviceYear",
            key: "serviceYear",
            render: (text, record) => {
              return (
                {!text ? "" : text}
              );
            }
          },
          {
            title: "项目说明",
            dataIndex: "taskComment",
            key: "taskComment",
            render: (text) => {
              return (
                
                  {text}
                
              )
            },
          },
        ],
        columnsX: [
          {
            title: "流程",
            dataIndex: "processName",
            key: "processName",
          },
          {
            title: "操作人",
            dataIndex: "adminName",
            key: "adminName",
          },
          {
            title: "时间",
            dataIndex: "createDate",
            key: "createDate",
          },
        ],
        ContactsListsNew: [
          {
            title: "项目名称",
            dataIndex: "commodityName",
            key: "commodityName",
            render: (text, record) => {
              return {text + "-" + record.tid};
            },
          },
          {
            title: "项目分类",
            dataIndex: "projectType",
            key: "projectType",
            render: (text) => {
              let arr = this.state.dataSource || [];
              let str = "";
              for (let i = 0; i < arr.length; i++) {
                if (this.state.dataSource[i].sort == text) {
                  str = this.state.dataSource[i].cname;
                  return {str};
                }
              }
            },
          },
          {
            title: "催款科目",
            dataIndex: "dunTypeName",
            key: "dunTypeName",
            render: (text, record) => {
              if (record.customizeName) {
                return text + record.customizeName;
              }
              return {text};
            },
          },
          {
            title: "时间(天)",
            dataIndex: "waitDay",
            key: "waitDay",
            render: (text, record) => {
              if (record.dunTypeName) {
                if (record.customizeTimes) {
                  return record.customizeTimes;
                }
                return {text};
              }
            },
          },
          {
            title: "金额(万元)",
            dataIndex: "money",
            key: "money",
            render: (text, record) => {
              if (record.dunTypeName) {
                if (record.appropriationRatio) {
                  let percent = Number(record.appropriationRatio * 100).toFixed(2);
                  percent += "%";
                  return {percent}(拨款比例);
                } else {
                  return {text};
                }
              }
            },
          },
          {
            title: "服务年限",
            dataIndex: "startDate",
            key: "startDate",
            render: (text, record) => {
              if (record.dunTypeName) {
                return {text};
              }
            },
          },
          {
            title: "催款状态",
            dataIndex: "status",
            key: "status",
            render: (text) => {
              return {text == 1 ? "已启动" : "未启动"};
            },
          },
        ],
        ContactsLists: [
          {
            title: "催款科目",
            dataIndex: "dunSubject",
            key: "dunSubject",
            render: (text) => {
              return getjiedian(text);
            },
          },
          {
            title: "金额(万元)",
            dataIndex: "money",
            key: "money",
          },
          {
            title: "催款状态",
            dataIndex: "dunStatus",
            key: "dunStatus",
            render: (text) => {
              return getCuikuan(text);
            },
          },
        ],
      };
    },
    //点击打卡项目详情
    tableRowClick(record) {
      if (record.type == "1") {
        this.setState({
          displayFees: "block",
          costReduction: record.costReduction,
          officialCost: record.officialCost,
        });
      } else {
        this.setState({
          displayFees: "none",
        });
      }
      this.setState({
        jid: record.id, //项目ID
        kid: record.commodityId, //商品ID
        commodityName: record.commodityName, //金额
        commodityPrice: record.commodityPrice, //金额
        commodityQuantity: record.commodityQuantity, //数量
        taskComment: record.taskComment, //备注
        main: record.main.toString(), //是否为主要
        yearSum: record.yearSum,//会员总服务年限
        serviceLife: record.serviceLife,//会员服务年限
        serviceYear: record.serviceYear,//本次派单
        cSort: record.cSort,
        addnextVisible: true,
        dataInfor: record,
        addState: 0,
      });
    },
    //项目详情关闭
    nextCancel() {
      this.setState({
        addnextVisible: false,
        displayFees: "none",
        officialCost: "", //是否有官费
        costReduction: "", //是否有费减
      });
    },
    // 拆分详细
    showRes(record) {
      this.setState({
        resVisible: true,
        resRecord: record,
      });
    },
    resCancel() {
      this.setState({
        resVisible: false,
      });
    },
    loadData(record) {
      this.state.orderList = [];
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
        data: {
          orderNo: record ? record.orderNo : this.props.data.orderNo,
        },
        success: function (data) {
          let thisData = data.data;
          if (!thisData) {
            if (data.error && data.error.length) {
              message.warning(data.error[0].message);
            }
            thisData = {};
          }
          this.setState({
            id: thisData.id,
            orderUid: thisData.uid,
            orderList: thisData,
            approval:
              thisData.approval == 0
                ? thisData.approval.toString()
                : thisData.approval,
            orderRemarks: thisData.orderRemarks,
            orgCodeUrl: thisData.contractPictureUrl
              ? splitUrl(
                thisData.contractPictureUrl,
                ",",
                globalConfig.avatarHost + "/upload"
              )
              : [],
            replenishUrl: thisData.agreementUrl
              ? splitUrl(
                thisData.agreementUrl,
                ",",
                globalConfig.avatarHost + "/upload"
              )
              : [],
            contentUrl: thisData.serviceContent
              ? splitUrl(
                thisData.serviceContent,
                ",",
                globalConfig.avatarHost + "/upload"
              )
              : [], //图片地址
            orderNo: thisData.orderNo, //订单编号
            buyerId: thisData.buyerId,
            depName: thisData.depName,
            outsource: thisData.outsource == 0 ? "否" : "是",
            deleteSign: thisData.deleteSign,
            // 高新纯咨询合同说明
            knowledgeServices: thisData.knowledgeServices, //知识产权服务
            auditServices: thisData.auditServices, //审计服务
            addDeductionServices: thisData.addDeductionServices, //加计扣除服务
            knowledgeOther: thisData.knowledgeOther, //知识产权服务其他描述
            auditOther: thisData.auditOther, //审计服务其他描述
            addDeductionOther: thisData.addDeductionOther, //加计扣除服务其他描述
            patentStatus: thisData.patentStatus, //知识产权情况
            type: thisData.type,// 特批类型
            typeExplain: thisData.typeExplain, // 特批类型
          });
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    rizhi() {
      this.setState({
        loading: true,
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: "/api/admin/newOrder/selectOrderLog",
        data: {
          orderNo: this.props.data.orderNo,
        },
        success: function (data) {
          let theArr = [];
          let thisData = data.data;
          if (!thisData.length) {
            if (data.error && data.error.length) {
              message.warning(data.error[0].message);
            }
            thisData = {};
          } else {
            for (let i = 0; i < data.data.length; i++) {
              let thisdata = data.data[i];
              theArr.push({
                processName: thisdata.processName,
                adminName: thisdata.adminName,
                createDate: thisdata.createDate,
                remarks: thisdata.remarks,
              });
            }
          }
          this.setState({
            dataSourceX: theArr,
          });
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    getOrderLog() {
      this.setState({
        avisible: true,
      });
      this.rizhi();
    },
    closeOrderLog() {
      this.setState({
        avisible: false,
      });
    },
    getPictureUrl(e) {
      this.setState({ pictureUrl: e });
    },
    componentWillMount() {
      if (this.props.data.orderNo) {
        this.setState({
          orderNos: this.props.data.orderNo
        })
        this.loadData();
        this.loadXmu();
        this.jiedian(this.props.data.orderNo);
        this.jiedianNew(this.props.data.orderNo);
      } else {
        this.state.data = {};
      }
    },
    componentWillReceiveProps(nextProps) {
      if (!this.props.visible && nextProps.visible) {
        this.state.textFileList = [];
        this.state.videoFileList = [];
        if (nextProps.data.orderNo) {
          this.setState({
            orderNos: nextProps.data.orderNo
          })
          this.loadData(nextProps.data);
          this.loadXmu(nextProps.data);
          this.jiedian(nextProps.data.orderNo);
          this.jiedianNew(nextProps.data.orderNo);
        } else {
          this.state.data = {};
          this.state.pictureUrl = [];
          this.state.pictureUrlMin = [];
        }
        this.props.form.resetFields();
      }
    },
    downImg() {
      let num = 0;
      for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
        if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
          num = i;
        }
      }
      if (num == this.state.orgCodeUrl.length - 1) {
        return message.warning("已经是最后一张了哦");
      }
      this.state.previewImage = this.state.orgCodeUrl[num + 1].url;
      this.setState({
        previewImage: this.state.previewImage,
        rotateDeg: 0,
      });
    },
    upImg() {
      let num = 0;
      for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
        if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
          num = i;
        }
      }
      if (num == 0) {
        return message.warning("已经是第一张了哦");
      }
      this.state.previewImage = this.state.orgCodeUrl[num - 1].url;
      this.setState({
        previewImage: this.state.previewImage,
        rotateDeg: 0,
      });
    },
    rotate() {
      let rotateDeg = this.state.rotateDeg + 90;
      this.setState({
        rotateDeg,
      });
    },
    downImgs() {
      let num = 0;
      for (let i = 0; i < this.state.replenishUrl.length; i++) {
        if (this.state.replenishUrl[i].url == this.state.previewImage) {
          num = i;
        }
      }
      if (num == this.state.replenishUrl.length - 1) {
        return message.warning("已经是最后一张了哦");
      }
      this.state.previewImage = this.state.replenishUrl[num + 1].url;
      this.setState({
        previewImage: this.state.previewImage,
        rotateDeg: 0,
      });
    },
    upImgs() {
      let num = 0;
      for (let i = 0; i < this.state.replenishUrl.length; i++) {
        if (this.state.replenishUrl[i].url == this.state.previewImage) {
          num = i;
        }
      }
      if (num == 0) {
        return message.warning("已经是第一张了哦");
      }
      this.state.previewImage = this.state.replenishUrl[num - 1].url;
      this.setState({
        previewImage: this.state.previewImage,
        rotateDeg: 0,
      });
    },
    rotates() {
      let rotateDeg = this.state.rotateDeg + 90;
      this.setState({
        rotateDeg,
      });
    },
    //节点列表
    jiedian(orderNos) {
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
        data: {
          orderNo: orderNos,
        },
        success: function (data) {
          let theArr = [];
          let thisData = [];
          if (data.error.length || data.data.list == "") {
            if (data.error && data.error.length) {
              message.warning(data.error[0].message);
            }
          } else {
            for (let i = 0; i < data.data.length; i++) {
              thisData = data.data[i];
              theArr.push({
                key: i,
                dunSubject: thisData.dunSubject
                  ? thisData.dunSubject.toString()
                  : "", //催款科目
                id: thisData.id, //节点Id
                money: thisData.money, //催款金额
                dunStatus: thisData.dunStatus, //催款状态
                orderNo: thisData.orderNo,
              });
            }
            this.setState({
              contactList: theArr,
            });
          }
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    //查看催款节点
    jiedianNew(orderNos) {
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url:
          globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
        data: {
          orderNo: orderNos,
        },
        success: function (data) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          } else {
            let theArr = [];
            let thisData = [];
            let arr = data.data || [];
            let totalCui = 0;
            for (let i = 0; i < arr.length; i++) {
              thisData = arr[i];
              totalCui += +thisData.money;
              theArr.push({
                key: i,
                dunSubject: thisData.dunSubject
                  ? thisData.dunSubject.toString()
                  : "", //催款科目
                id: thisData.id, //节点Id
                money: thisData.money, //催款金额
                // orderNo: record ? record.orderNo : this.props.datauser.orderNo,
                commodityName: thisData.commodityName,
                projectType: thisData.projectType,
                dunTypeName: thisData.dunTypeName,
                status: thisData.status,
                waitDay: thisData.waitDay,
                effectiveCount: thisData.effectiveCount,
                startDate: thisData.startDate,
                dunType: thisData.dunType,
                appropriationRatio: thisData.appropriationRatio,
                customizeName: thisData.customizeName,
                customizeTimes: thisData.customizeTimes,
                tid: thisData.tid,
              });
            }
            if (!totalCui) {
              totalCui = 0;
            }
            totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
            this.setState({
              contactListNew: theArr,
              totalCui,
            });
          }
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    // 可展开颜色不同
    addRowColor(record) {
      if (!!record.splitList && record.splitList.length > 0) {
        return 'light'
      } else {
        return 'dark'
      }
    },
    render() {
      const expandedRowRenderVip = (e) => {
        const data = e.splitList;
        let columns = [];
        if (data instanceof Array && data.length) {
          if (e.cSort == 6) {
            columns = [
              {
                title: "负责人",
                dataIndex: "receiverName",
                key: "receiverName",
              },
              {
                title: "负责人电话",
                dataIndex: "receiverMobile",
                key: "receiverMobile",
              },
              {
                title: "项目状态",
                dataIndex: "projectStatus",
                key: "projectStatus",
                render: (text) => {
                  return getProjectName(text);
                },
              },
              {
                title: "本次派单",
                dataIndex: "serviceYear",
                key: "serviceYear",
              },
              {
                title: "项目说明",
                dataIndex: "taskComment",
                key: "taskComment",
                render: (text) => {
                  return (
                    
                      {text}
                    
                  )
                },
              },
            ];
          } else {
            columns = [
              {
                title: "子项目名称",
                dataIndex: "taskName",
                key: "taskName"
              },
              {
                title: "子项目数量",
                dataIndex: "commodityQuantity",
                key: "commodityQuantity"
              },
              {
                title: "拆分操作人",
                dataIndex: "splitAname",
                key: "splitAname"
              },
              {
                title: "项目负责人",
                dataIndex: "receiverName",
                key: "receiverName"
              },
              {
                title: "拆分时间",
                dataIndex: "splitTimes",
                key: "splitTimes"
              }
            ]
          }
          return (
            
          );
        } else {
          columns = [];
          return (
            
              {e.cSort == 6 ? "暂无派单" : "此项目暂未拆分"}
            
          );
        }
      };
      const theData = this.state.orderList || {};
      const FormItem = Form.Item;
      const formItemLayout = {
        labelCol: { span: 10 },
        wrapperCol: { span: 14 },
      };
      const cuiDataList = this.state.contactList || [];
      return (
        
          
            
          
          {this.state.resVisible &&
            
          }
          
          {
            // 项目业务详情
            this.state.addnextVisible &&
            
          }
          {/* {this.state.addnextVisible &&
            
            } */}
        
 
      );
    },
  })
);
export default OrderDetail;