import React,{Component} from "react";
import {Button, Form, message, Modal, Spin, Table, Tag} from "antd";
import OrderItemStatus from "../../../../common/orderItemStatus";
import EnterpriseNameChange from "../../../../common/enterpriseNameChange";
import {
    getApprovedState,
    getCuikuan,
    getjiedian,
    getLiquidationStatus,
    getProcessStatus,
    splitUrl
} from "../../../../tools";
import ImgList from "../../../../common/imgList";
import $ from "jquery/src/ajax";
import ProjectDetailsReadOnly from "../../../../common/projectDetailsReadOnly";
import OrderRiZi from "@/orderRiZi.jsx";
import OrderCoor from "../../../order/orderNew/changeComponent/orderCoor";
import ContentUrl from "../../../order/orderNew/contentUrl";
const FormItem = Form.Item;

const formItemLayout = {
    labelCol: { span: 8 },
    wrapperCol: { span: 14 },
};

class Details extends Component{
    constructor(props) {
        super(props);
        this.state={
            loading:false,
            columnsX: [
                {
                    title: "业务项目名称",
                    dataIndex: "commodityName",
                    key: "commodityName",
                    render: (text, record) => {
                        return text + "-" + record.id
                    }
                },
                {
                    title: "项目类别",
                    dataIndex: "cname",
                    key: "cname",
                },
                {
                    title: "项目数量",
                    dataIndex: "commodityQuantity",
                    key: "commodityQuantity",
                    render: (text, record) => {
                        if (record.splitStatus == 1) {
                            return (
                                <span>
                    {text}{" "}
                                    <Tag
                                        color="#108ee9"
                                        onClick={(e) => {
                                            e.stopPropagation();
                                            this.showRes(record);
                                        }}
                                    >
                      已拆
                    </Tag>
                  </span>
                            );
                        } else {
                            return text;
                        }
                    },
                },
                {
                    title: "金额(万元)",
                    dataIndex: "commodityPrice",
                    key: "commodityPrice",
                },
                {
                    title: "负责人",
                    dataIndex: "contacts",
                    key: "contacts",
                },
                {
                    title: "负责人电话",
                    dataIndex: "contactsMobile",
                    key: "contactsMobile",
                },
                {
                    title: "主要项目",
                    dataIndex: "main",
                    key: "main",
                    render: (text) => {
                        return text ? "是" : "否";
                    },
                },
                {
                    title: "项目说明",
                    dataIndex: "taskComment",
                    key: "taskComment",
                    render: (text) => {
                        return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
                    },
                },
            ],
            ContactsListsNew: [
                {
                    title: "项目名称",
                    dataIndex: "commodityName",
                    key: "commodityName",
                    render: (text, record) => {
                        return <span>{text + "-" + record.tid}</span>;
                    },
                },
                {
                    title: "项目分类",
                    dataIndex: "projectType",
                    key: "projectType",
                    render: (text) => {
                        let arr = this.state.dataSourceX || [];
                        let str = "";
                        for (let i = 0; i < arr.length; i++) {
                            if (this.state.dataSourceX[i].sort == text) {
                                str = this.state.dataSourceX[i].cname;
                                return <span>{str}</span>;
                            }
                        }
                    },
                },
                {
                    title: "催款科目",
                    dataIndex: "dunTypeName",
                    key: "dunTypeName",
                    render: (text, record) => {
                        if (record.customizeName) {
                            return text + record.customizeName;
                        }
                        return <span>{text}</span>;
                    },
                },
                {
                    title: "时间（天）",
                    dataIndex: "waitDay",
                    key: "waitDay",
                    render: (text, record) => {
                        if (record.dunTypeName) {
                            if (record.customizeTimes) {
                                return record.customizeTimes;
                            }
                            return <span>{text}</span>;
                        }
                    },
                },
                {
                    title: "金额（万元）",
                    dataIndex: "money",
                    key: "money",
                    render: (text, record) => {
                        if (record.dunTypeName) {
                            if (record.appropriationRatio) {
                                return <span>{record.appropriationRatio}(拨款比例)</span>;
                            } else {
                                return <span>{text}</span>;
                            }
                        }
                    },
                },
                {
                    title: "服务年限",
                    dataIndex: "startDate",
                    key: "startDate",
                    render: (text, record) => {
                        if (record.dunTypeName) {
                            return <span>{text}</span>;
                        }
                    },
                },
                {
                    title: "催款状态",
                    dataIndex: "status",
                    key: "status",
                    render: (text) => {
                        return <span>{text == 1 ? "已启动" : "未启动"}</span>;
                    },
                },
            ],
            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);
                    },
                },
            ],
            dataSourceX:[],

            contactList:[],

            dataInfor:{},

            totalCui:'',

            dataSourcerizhi:[]
        }
        this.xiangqing = this.xiangqing.bind(this);
        this.xiangmu = this.xiangmu.bind(this);
        this.nextCancel = this.nextCancel.bind(this);
        this.jiedianNew = this.jiedianNew.bind(this);
        this.jiedian = this.jiedian.bind(this);
        this.tableRowClickX = this.tableRowClickX.bind(this);
        this.getOrderLog = this.getOrderLog.bind(this);
        this.closeOrderLog = this.closeOrderLog.bind(this);
        this.rizhi = this.rizhi.bind(this);
    }

    componentDidMount() {
        this.xiangqing();
        this.xiangmu();
        this.jiedian();
        this.jiedianNew();
    }

    //订单详情
    xiangqing() {
        this.setState({
            loading: true,
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
            data: {
                orderNo: this.props.orderNo,
            },
            success: function (data) {
                if(data.error.length){
                    message.warning(data.error[0].message);
                }else{
                    let thisdata = data.data;
                    this.setState({
                        orderUid: thisdata.uid,
                        orderNo: thisdata.orderNo, //订单编号
                        contractNo: thisdata.contractNo, //合同编号
                        userName: thisdata.userName, //客户名称
                        signDate: thisdata.signDate, //签单时间
                        processStatus: thisdata.processStatus, //流程状态
                        liquidationStatus: thisdata.liquidationStatus, //结算状态
                        contacts: thisdata.contacts, //企业联系人
                        contactMobile: thisdata.contactMobile, //联系人电话
                        legalPerson: thisdata.legalPerson, //法人
                        legalPersonTel: thisdata.legalPersonTel, //法人电话
                        firstAmount: thisdata.firstAmount, //签单金额
                        totalAmount: thisdata.totalAmount, //首付金额
                        approval: thisdata.approval, //特批状态
                        settlementAmount: thisdata.settlementAmount, //已收款项
                        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"
                              )
                            : [], //图片地址
                        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,
                        outsource: thisdata.outsource == 0 ? "否" : "是",
                        deleteSign:thisdata.deleteSign,
                    });
                }
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    loading: false,
                });
            }.bind(this)
        );
    }

    //项目列表
    xiangmu() {
        this.setState({
            xiangmuLoading: true,
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
            data: {
                orderNo: this.props.orderNo,
            },
            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;
                        thisdata.sort = thisdata.cSort;
                        theArr.push(thisdata);
                    }
                }
                this.setState({
                    dataSourceX: theArr,
                });
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    xiangmuLoading: false,
                });
            }.bind(this)
        );
    }

    //点击打卡项目详情
    tableRowClickX(record) {
        this.setState({
            addnextVisible: true,
            dataInfor:record,
        });
    }

    //项目详情关闭
    nextCancel() {
        this.setState({
            addnextVisible: false,
            dataInfor:{},
        });
    }

    //节点列表
    jiedian() {
        this.setState({
            jiedianLoading: true,
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
            data: {
                orderNo: this.props.orderNo,
            },
            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({
                        contactList: theArr,
                    });
                }
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    jiedianLoading: false,
                });
            }.bind(this)
        );
    }

    //查看催款节点
    jiedianNew() {
        this.setState({
            jiedianNewLoading: true,
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url:
                globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
            data: {
                orderNo: this.props.orderNo,
            },
            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({
                    jiedianNewLoading: false,
                });
            }.bind(this)
        );
    }

    //查看订单日志
    getOrderLog() {
        this.setState({
            rizhivisible: true,
        });
        this.rizhi();
    }

    closeOrderLog() {
        this.setState({
            rizhivisible: false,
            dataSourcerizhi:[]
        });
    }

    rizhi() {
        this.setState({
            rizhiLoading: 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({
                    dataSourcerizhi: theArr,
                });
            }.bind(this),
        }).always(
            function () {
                this.setState({
                    rizhiLoading: false,
                });
            }.bind(this)
        );
    }

    render() {
        return (
            <Modal
                className="customeDetails"
                footer=""
                title="订单详情"
                width="1000px"
                visible={this.props.visible}
                onOk={this.props.onCancel}
                onCancel={this.props.onCancel}
            >
                <Form layout="horizontal" id="demand-form" style={{ paddingBottom: "40px" }}>
                    <Spin spinning={this.state.loading}>
                        <div className="clearfix">
                            <div style={{position:"absolute",top:'-52px',left:'81px',zIndex:10000}}>
                                <OrderItemStatus deleteSign={this.state.deleteSign}/>
                            </div>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="订单编号"
                            >
                                <span>{this.state.orderNo}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="合同编号"
                            >
                                <span>{this.state.contractNo}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="客户名称"
                            >
                                <span>{this.state.userName}</span>
                                <EnterpriseNameChange
                                    type='journal'
                                    style={{ marginLeft: 10 }}
                                    enterpriseId={this.state.orderUid}/>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="合同签订时间"
                            >
                                <span>{this.state.signDate}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="流程状态"
                            >
                                <span>{getProcessStatus(this.state.processStatus)}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="结算状态"
                            >
                      <span>
                        {getLiquidationStatus(this.state.liquidationStatus)}
                      </span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="企业联系人"
                            >
                                <span>{this.state.contacts}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="联系人电话"
                            >
                                <span>{this.state.contactMobile}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="企业法人"
                            >
                                <span>{this.state.legalPerson}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="法人电话"
                            >
                                <span>{this.state.legalPersonTel}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="签单金额(万元)"
                            >
                                <span>{this.state.totalAmount}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="首付金额(万元)"
                            >
                                <span>{this.state.firstAmount}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="特批立项"
                            >
                                <span>{getApprovedState(this.state.approval)}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="已收款项(万元)"
                            >
                                <span>{this.state.settlementAmount}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="订单部门"
                            >
                                <span>{this.state.depName}</span>
                            </FormItem>
                            <FormItem
                                className="half-item"
                                {...formItemLayout}
                                label="是否外包"
                            >
                                {this.state.outsource}
                            </FormItem>
                            <div className="clearfix">
                                <FormItem
                                    labelCol={{ span: 4 }}
                                    wrapperCol={{ span: 16 }}
                                    label="订单留言"
                                >
                                    <span>{this.state.orderRemarks}</span>
                                </FormItem>
                            </div>
                            <div className="clearfix">
                                <FormItem
                                    labelCol={{ span: 4 }}
                                    wrapperCol={{ span: 18 }}
                                    label={"合同扫描件"}
                                >
                                    <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
                                        {this.props.visible && this.state.orgCodeUrl ? <ImgList fileList={this.state.orgCodeUrl} ItemWidth={'96px'}/> : <div/>}
                                    </div>
                                    <Button
                                        style={{
                                            float: "right",
                                            marginRight: "140px",
                                            marginTop: "20px",
                                        }}
                                        onClick={this.getOrderLog}
                                    >
                                        查看订单 日志
                                    </Button>
                                </FormItem>
                                <FormItem
                                    labelCol={{ span: 4 }}
                                    wrapperCol={{ span: 18 }}
                                    label="补充协议"
                                >
                                    <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
                                        {this.props.visible && this.state.replenishUrl ? <ImgList domId={'inquiry1'} fileList={this.state.replenishUrl} ItemWidth={'96px'}/> : <div/>}
                                    </div>
                                </FormItem>
                            </div>
                            <ContentUrl
                             processStatus={1}
                             domId = {"detailContent"}
                             contentUrl = {this.state.contentUrl}
                             imgId = {"detailContentImg"}
                            />
                            <div className="clearfix">
                                <FormItem
                                    className="half-item"
                                    {...formItemLayout}
                                    label="订单负责人"
                                >
                                    <span>{this.state.salesmanName}</span>
                                </FormItem>
                                <FormItem
                                    className="half-item"
                                    {...formItemLayout}
                                    label="订单负责人电话"
                                >
                                    <span>{this.state.salesmanMobile}</span>
                                </FormItem>
                            </div>
                            <div className="clearfix">
                                <FormItem
                                    className="half-item"
                                    {...formItemLayout}
                                    label="当前财务负责人"
                                >
                                    <span>{this.state.nowFinance}</span>
                                </FormItem>
                                <FormItem
                                    className="half-item"
                                    {...formItemLayout}
                                    label="当前财务负责人电话"
                                >
                                    <span>{this.state.nowFinanceMobile}</span>
                                </FormItem>
                            </div>
                            <div className="clearfix">
                                <FormItem
                                    className="half-item"
                                    {...formItemLayout}
                                    style={{ opacity: ".5" }}
                                    label="原订单负责人"
                                >
                                    <span>{this.state.oldSalesmanName}</span>
                                </FormItem>
                                <FormItem
                                    className="half-item"
                                    {...formItemLayout}
                                    style={{ opacity: ".5" }}
                                    label="原订单负责人电话"
                                >
                                    <span>{this.state.oldSalesmanMobile}</span>
                                </FormItem>
                            </div>
                            <div className="clearfix">
                                <FormItem
                                    className="half-item"
                                    style={{ opacity: ".5" }}
                                    {...formItemLayout}
                                    label="实际财务操作人"
                                >
                                    <span>{this.state.financeName}</span>
                                </FormItem>
                                <FormItem
                                    className="half-item"
                                    {...formItemLayout}
                                    style={{ opacity: ".5" }}
                                    label="实际财务操作人电话"
                                >
                                    <span>{this.state.financeMobile}</span>
                                </FormItem>
                            </div>
                            {/*  */}
                            <OrderCoor orderNo={this.props.orderNo}/>
                            <div>
                            <span style={{ marginLeft: "50px", fontSize: "20px" }}>
                              项目业务
                            </span>
                            </div>
                            <div className="patent-table">
                                <Spin spinning={this.state.xiangmuLoading}>
                                    <Table
                                        columns={this.state.columnsX}
                                        dataSource={this.state.dataSourceX}
                                        pagination={false}
                                        onRowClick={this.tableRowClickX}
                                        bordered
                                        size="small"
                                    />
                                </Spin>
                            </div>
                            <div>
                                <span style={{ marginLeft: "50px", fontSize: "20px" }}>
                                  催款节点
                                </span>
                                <span
                                    style={{
                                        display: this.state.contactList.length ? "none" : "inline-block",
                                        marginLeft: 10,
                                        color: "red",
                                    }}
                                >
                                 金额总计(万元): {this.state.totalCui}
                                </span>
                            </div>
                            <div className="clearfix">
                                <Spin spinning={
                                    this.state.contactList.length ?
                                        this.state.jiedianLoading :
                                        this.state.jiedianNewLoading
                                }>
                                    <Form layout="horizontal" id="demand-form">
                                        <Table
                                            pagination={false}
                                            bordered
                                            size="small"
                                            columns={
                                                this.state.contactList.length
                                                    ? this.state.ContactsLists
                                                    : this.state.ContactsListsNew
                                            }
                                            dataSource={
                                                this.state.contactList.length
                                                    ? this.state.contactList
                                                    : this.state.contactListNew
                                            }
                                        />
                                    </Form>
                                </Spin>
                            </div>
                        </div>
                    </Spin>
                </Form>
                <OrderRiZi
                    dataSourcerizhi={this.state.dataSourcerizhi}
                    closeOrderLog={this.closeOrderLog}
                    visible={this.state.rizhivisible}
                    loading={this.state.rizhiLoading}
                />
                {this.state.addnextVisible && <ProjectDetailsReadOnly
                    infor={this.state.dataInfor}
                    visible={this.state.addnextVisible}
                    onCancel={this.nextCancel}
                />}
            </Modal>
        )
    }
}

export default Details;