import React, { Component } from 'react';
import { Button, Form, Input, message, Modal, Spin, Table, Tabs, Tag, Tooltip } from "antd";
import PatentSchedule from "../task/patentSchedule";
import ImgList from "../../../common/imgList";
import OrderDetail from "../../order/orderNew/changeComponent/orderDetail";
import {
    getProcessStatus,
    getApproval,
    getTaskStatus,
    getLiquidationStatus,
    splitUrl,
    getProjectStatus,
    getboutique,
    getprovince,
    ShowModal,
    getProjectName
} from "@/tools";
import OrderRiZi from "@/orderRiZi.jsx";
import $ from "jquery";
import DeclarationProgress from "../../../common/declarationProgress";
import OrderItemStatus from "../../../common/orderItemStatus";
import EnterpriseNameChange from "../../../common/enterpriseNameChange";
const FormItem = Form.Item;
const { TabPane } = Tabs;
const formItemLayout = {
    labelCol: { span: 8 },
    wrapperCol: { span: 14 },
};
const utils = {
    getSatisfaction: function (num) {
        switch (num) {
            case 0:
                return "未收回";
            case 1:
                return "已收回";
            default:
                return "其它";
        }
    },
    getChargeback: function (num) {
        switch (num) {
            case 0:
                return "已完成";
            case 1:
                return "未完成";
            default:
                return "其它";
        }
    },
};
class ProjectDetails extends Component {
    constructor(props) {
        super(props);
        this.state = {
            timeRecordparse: {},
            activeKey: '1',
            loading: false,
            orderData: [],
            orderNo: "",
            jiedian: [],
            jiedianNew: [],
            searchMore: true,
            assignVisible: false,
            releaseDate: [],
            roleName: "",
            testFlag: true,
            departmentArr: [],
            boHuivisible: false,
            selectedRowKeys: [],
            selectedRows: [],
            paginations: false,
            pagination: {
                defaultCurrent: 1,
                defaultPageSize: 10,
                showQuickJumper: true,
                pageSize: 10,
                onChange: function (page) {
                    this.loadData(page);
                }.bind(this),
                showTotal: function (total) {
                    return "共" + total + "条数据";
                },
            },
            columns: [
                {
                    title: "项目编号",
                    dataIndex: "id",
                    key: "id",
                    render: (text, record) => {
                        if (record.splitStatus == 2) {
                            return {record.splitSuper + "-" + record.splitId};
                        } else {
                            return text;
                        }
                    },
                },
                {
                    title: "任务名称",
                    dataIndex: "taskName",
                    key: "taskName",
                    className: "taskName",
                },
                {
                    title: "订单编号",
                    dataIndex: "orderNo",
                    key: "orderNo",
                },
                {
                    title: "业务类别",
                    dataIndex: "cname",
                    key: "cname",
                },
                {
                    title: "客户名称",
                    dataIndex: "userName",
                    key: "userName",
                    className: "userName",
                    width: 150,
                    render: (text) => {
                        return (
                            
                                {text}
                            
                        )
                    },
                },
                {
                    title: "任务状态",
                    dataIndex: "taskStatus",
                    key: "taskStatus",
                    render: (text) => {
                        return getTaskStatus(text);
                    },
                },
                {
                    title: "项目状态",
                    dataIndex: "projectStatus",
                    key: "projectStatus",
                    render: (text) => {
                        return getProjectStatus(text);
                    },
                },
                {
                    title: "分配时间",
                    dataIndex: "taskDate",
                    key: "taskDate",
                },
                {
                    title: "任务数量",
                    dataIndex: "commodityQuantity",
                    key: "commodityQuantity",
                },
                {
                    title: "任务责任人",
                    dataIndex: "receiverName",
                    key: "receiverName",
                },
                {
                    title: "订单部门",
                    dataIndex: "depName",
                    key: "depName",
                },
            ],
            dataSource: [],
            searchTime: [],
            columnsX: [
                {
                    title: "业务项目名称",
                    dataIndex: "commodityName",
                    key: "commodityName",
                    render: (text, record) => {
                        return (
                            {text}{record.patentTypeName}
                        )
                    }
                },
                {
                    title: "项目类别",
                    dataIndex: "cname",
                    key: "cname",
                },
                {
                    title: "项目数量",
                    dataIndex: "commodityQuantity",
                    key: "commodityQuantity",
                    render: (text, record) => {
                        if (record.splitStatus == 1) {
                            return (
                                
                                    {text}{" "}
                                    {/*  {
                                            e.stopPropagation();
                                            this.showRes(record);
                                        }}
                                    >
                                        已拆
                                     */}
                                
                            );
                        } else {
                            return text;
                        }
                    },
                },
                {
                    title: "金额(万元)",
                    dataIndex: "commodityPrice",
                    key: "commodityPrice",
                    render: (text, record) => {
                        return (
                            
                                {this.props.isZxs || text === -1 ? '***' : text}
                            
                        )
                    }
                },
                {
                    title: "负责人",
                    dataIndex: "contacts",
                    key: "contacts",
                },
                {
                    title: "负责人电话",
                    dataIndex: "contactsMobile",
                    key: "contactsMobile",
                },
                {
                    title: "主要项目",
                    dataIndex: "main",
                    key: "main",
                    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}
                            
                        )
                    },
                },
            ],
            columnsA: [
                {
                    title: "流程",
                    dataIndex: "content",
                    key: "content",
                    align: "center",
                },
                {
                    title: "操作人",
                    dataIndex: "aName",
                    key: "aName",
                    align: "center",
                },
                {
                    title: "时间",
                    dataIndex: "createTimes",
                    key: "createTimes",
                    align: "center",
                },
            ],
            dataSourceX: [],
            dataSourceA: [],
            ContactsLists: [
                {
                    title: "批次",
                    dataIndex: "num",
                    key: "num",
                },
                {
                    title: "下证时间",
                    dataIndex: "licenceTimes",
                    key: "licenceTimes",
                },
                {
                    title: "下证数量",
                    dataIndex: "alreadyNumber",
                    key: "alreadyNumber",
                },
                {
                    title: "未下证数量",
                    dataIndex: "notCount",
                    key: "notCount",
                },
            ],
            displayFees: "none",
            costReduction: '',
            officialCost: '',
            isSoftware: false,
        }
        this.orderChange = this.orderChange.bind(this);
        this.caozuorizhi = this.caozuorizhi.bind(this);
        this.getOrderLog = this.getOrderLog.bind(this);
        this.rizhi = this.rizhi.bind(this);
    }
    orderChange(key) {
        this.setState({
            activeKey: key,
        });
        if (key === '2') {
            this.orderDetailData(this.props.orderNo);
            this.xiangmu(this.props.orderNo);
            this.jiedian(this.props.orderNo);
            this.jiedianNew(this.props.orderNo);
        }
    }
    caozuorizhi() {
        this.setState({
            visibleA: true,
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/orderProject/TaskLogList",
            data: {
                id: this.props.id,
            },
            success: function (data) {
                let theArr = [];
                if (data.error.length || data.data.list == "") {
                    if (data.error && data.error.length) {
                        message.warning(data.error[0].message);
                    }
                } else {
                    for (let i = 0; i < data.data.length; i++) {
                        let thisdata = data.data[i];
                        theArr.push({
                            key: i,
                            id: thisdata.id, //日志ID
                            content: thisdata.content, //流程
                            taskId: thisdata.taskId, //任务ID
                            aName: thisdata.aName, //负责人
                            createTimes: thisdata.createTimes, //时间
                        });
                    }
                }
                this.setState({
                    dataSourceA: theArr,
                });
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    loading: false,
                });
            }.bind(this)
        );
    }
    //节点列表
    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, //催款状态
                        });
                    }
                    this.setState({
                        jiedian: theArr,
                    });
                }
            }.bind(this),
        });
    }
    //部门
    departmentList() {
        this.setState({
            loading: true,
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/organization/selectSuperId",
            data: {},
            success: function (data) {
                let thedata = data.data;
                let theArr = [];
                if (!thedata) {
                    if (data.error && data.error.length) {
                        message.warning(data.error[0].message);
                    }
                } else {
                    thedata.map(function (item, index) {
                        theArr.push({
                            key: index,
                            name: item.name,
                            id: item.id,
                        });
                    });
                }
                this.setState({
                    departmentArr: theArr,
                });
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    loading: false,
                });
            }.bind(this)
        );
    }
    //订单详情
    xiangqing(id) {
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/orderProject/orderTaskDetail",
            data: {
                id: id,
            },
            success: function (data) {
                if (data.error.length || data.data.list == "") {
                    if (data.error && data.error.length) {
                        message.warning(data.error[0].message);
                    }
                } else {
                    let thisdata = data.data;
                    this.setState({
                        certificationCorporate: thisdata.certificationCorporate,//认证费公司
                        certificationFee: thisdata.certificationFee,//认证费
                        ifCertificationFee: thisdata.ifCertificationFee,//是否包含认证费
                        id: thisdata.id, //ID
                        orderNo: thisdata.orderNo, //订单编号
                        userName: thisdata.userName, //客户名称
                        taskName: thisdata.taskName, //任务名称
                        cname: thisdata.cname, //项目品类
                        contractNo: thisdata.contractNo, //合同编号
                        projectStatus: thisdata.projectStatus, //项目状态
                        taskStatus: thisdata.taskStatus, //任务状态
                        taskDate: thisdata.taskDate, //分配时间
                        taskComment: thisdata.taskComment, //说明
                        attachmentUrl: thisdata.attachmentUrl
                            ? splitUrl(
                                thisdata.attachmentUrl,
                                ",",
                                globalConfig.avatarHost + "/upload"
                            )
                            : [], //图片地址
                        salesmanName: thisdata.salesmanName, //订单负责人
                        startDate: thisdata.startDate, //启动日期
                        endDate: thisdata.endDate, //结束日期
                        acceptDate: thisdata.acceptDate, //受理日期
                        reviewDate: thisdata.reviewDate, //评审日期
                        publicityDate: thisdata.publicityDate, //公示日期
                        licenceDate: thisdata.licenceDate, //发证日期
                        contacts: thisdata.contacts, //联系人
                        contactMobile: thisdata.contactMobile, //联系人电话
                        legalPerson: thisdata.legalPerson, //法人
                        legalPersonTel: thisdata.legalPersonTel, //法人电话
                        certificateNumber: thisdata.certificateNumber, //证书编号
                        status: thisdata.status, //状态
                        formRetrieve: thisdata.formRetrieve, //满意度表格
                        taskRefund: thisdata.taskRefund, //退单
                        refundContent: thisdata.refundContent, //退单信息
                        retrieveContent: thisdata.retrieveContent, //回收信息
                        arrivalMoney: thisdata.arrivalMoney, //是否到款
                        setUpAmount: thisdata.setUpAmount, //立项金额
                        declareUser: thisdata.declareUser, //账号
                        declarePwd: thisdata.declarePwd, //密码
                        depName: thisdata.depName, //订单部门
                        outsourceName: thisdata.outsourceName, //外包公司名称
                        outsourcePrice: thisdata.outsourcePrice, //外包价格
                        declarationBatch: thisdata.declarationBatch,
                        bpType: thisdata.bpType,//0 正常 1专利 2软著 3审计 4双软 5高新 6商标
                        cSort: thisdata.sort,
                        specialComment: thisdata.specialComment,
                        urgentDay: thisdata.urgentDay, //有无材料
                        ifMaterial: thisdata.ifMaterial, //加急情况
                        spotCheckStatus: thisdata.spotCheckStatus,
                        setUpStatus: thisdata.setUpStatus,
                        setUpTime: thisdata.setUpTime,
                        highTechStatus: thisdata.highTechStatus,
                        acceptCount: thisdata.acceptCount,       //受理数
                        certificatesCount: thisdata.certificatesCount, //授权数
                        rejectCount: thisdata.rejectCount,       //驳回数
                        commodityQuantity: thisdata.commodityQuantity, //派单项目数
                        timeRecordparse: thisdata.timeRecord ? JSON.parse(thisdata.timeRecord) : {},//项目状态JSON
                    });
                }
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    loading: false,
                });
            }.bind(this)
        );
    }
    //订单详情
    xiangqings(orderNos) {
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
            data: {
                orderNo: orderNos,
            },
            success: function (data) {
                let thisdata = data.data;
                let ProvinceCityArr = [];
                let ProvinceS = thisdata.locationProvince; //省
                let citys = thisdata.locationCity; //市
                let Areas = thisdata.locationArea; //区
                ProvinceCityArr.push(ProvinceS, citys, Areas);
                if (data.error.length || data.data.list == "") {
                    if (data.error && data.error.length) {
                        message.warning(data.error[0].message);
                    }
                } else {
                    this.setState({
                        orderUid: thisdata.uid,
                        examineName: thisdata.examineName,
                        processStatus: thisdata.processStatus, //流程状态
                        liquidationStatus: thisdata.liquidationStatus, //结算状态
                        approval: thisdata.approval, //特批状态
                        orderRemarks: thisdata.orderRemarks, //订单留言
                        salesmanName: thisdata.salesmanName, //营销员名称
                        salesmanMobile: thisdata.salesmanMobile, //营销员电话
                        oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
                        oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
                        financeName: thisdata.financeName, //财务名称
                        financeMobile: thisdata.financeMobile, //财务电话
                        nowFinance: thisdata.nowFinance, //财务名称
                        nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
                        depName: thisdata.depName, //订单部门
                        locationProvince: thisdata.locationProvince,
                        locationCity: thisdata.locationCity,
                        locationArea: thisdata.locationArea,
                        ProvinceCity: ProvinceCityArr,
                        postalAddress: thisdata.postalAddress, //详细地址
                        outsource: thisdata.outsource,
                        deleteSign: thisdata.deleteSign,
                    });
                }
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    loading: false,
                });
            }.bind(this)
        );
    }
    //查看下证信息
    loaduserss(id) {
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/orderProject/selectTaskProgress",
            data: {
                tid: id,
            },
            success: function (data) {
                let theArr = [];
                let thisData = [];
                if (!thisData) {
                    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({
                            num: i + 1,
                            key: i,
                            id: thisData.id, //编号
                            alreadyNumber: thisData.alreadyNumber, //下证数
                            licenceTimes: thisData.licenceTimes, //下证时间
                            notCount: thisData.notCount, //未下证数
                            flag: true,
                        });
                    }
                    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;
                        thisData.key = i;
                        thisData.dunSubject = thisData.dunSubject
                            ? thisData.dunSubject.toString()
                            : "", //催款科目
                            theArr.push(thisData);
                    }
                    if (!totalCui) {
                        totalCui = 0;
                    }
                    totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
                    this.setState({
                        jiedianNew: theArr,
                        totalCui,
                    });
                }
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    loading: false,
                });
            }.bind(this)
        );
    }
    orderDetailData(orderNos) {
        this.setState({
            loading: true,
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
            data: {
                orderNo: orderNos,
            },
            success: function (data) {
                if (data.error.length || data.data.list == "") {
                    if (data.error && data.error.length) {
                        message.warning(data.error[0].message);
                        this.setState({
                            loading: false,
                        });
                    }
                } else {
                    let thisdata = data.data;
                    this.setState({
                        loading: false,
                        orderUid: thisdata.uid,
                        userName: thisdata.userName,
                        primaryOrderNo: thisdata.primaryOrder,
                        additionalOrder: thisdata.additionalOrder,
                        contractNo: thisdata.contractNo,
                        orderData: thisdata,
                        isAddition: thisdata.additionalOrder ? true : false,
                        contractPictureUrl: thisdata.contractPictureUrl
                            ? splitUrl(
                                thisdata.contractPictureUrl,
                                ",",
                                globalConfig.avatarHost + "/upload"
                            )
                            : [],
                        deleteSign: thisdata.deleteSign,
                    });
                }
            }.bind(this),
        });
    }
    //项目列表
    xiangmu(orderNos) {
        this.setState({
            loading: true,
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
            data: {
                orderNo: orderNos,
            },
            success: function (data) {
                let theArr = [];
                if (data.error.length || data.data.list == "") {
                    if (data.error && data.error.length) {
                        message.warning(data.error[0].message);
                    }
                } else {
                    for (let i = 0; i < data.data.length; i++) {
                        let thisdata = data.data[i];
                        thisdata.key = i;
                        theArr.push(thisdata);
                    }
                }
                this.setState({
                    dataSourceX: theArr,
                });
            }.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.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);
                    }
                } 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({
                    dataSourceY: theArr,
                });
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    loading: false,
                });
            }.bind(this)
        );
    }
    getOrderLog() {
        this.setState({
            avisible: true,
        });
        this.rizhi();
    }
    componentDidMount() {
        if (this.props.taskName.substring(0, 5) === "软件著作权") {
            this.setState({
                isSoftware: true,
            })
        }
        this.setState({
            isIso: this.props.taskName.indexOf("贯标") !== -1,
        })
        this.departmentList();
        this.xiangqing(this.props.id);
        this.xiangqings(this.props.orderNo);
        this.xiangmu(this.props.orderNo);
        this.loaduserss(this.props.id);
    }
    // 可展开颜色不同
    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: "contacts",
                            key: "contacts",
                        },
                        {
                            title: "负责人电话",
                            dataIndex: "contactsMobile",
                            key: "contactsMobile",
                        },
                        {
                            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 ? "暂无派单" : "此项目暂未拆分"}
                    
                );
            }
        };
        return (
            this.props.visible ?  {
                    this.props.visitOk && this.props.visitOk()
                }}
                onCancel={() => {
                    this.props.visitCancel && this.props.visitCancel();
                }}
            >
                
                        
                    
                }>
                    
                        {this.state.activeKey === "1" ?  : null}
                    
                    {!this.props.isZxs || (this.state.isHuiyuan && this.props.isZxs) ? (
                        
                            {this.state.activeKey === "2" ? 
                                
                             : null}
                             {
                                    this.setState({
                                        avisible: false
                                    })
                                }}
                                visible={this.state.avisible}
                                loading={this.state.loading}
                            />
                        
                    ) : null}
                
             : null
        );
    }
}
export default ProjectDetails;