import React from 'react';
require('./index.css');
import ImgToolComponent from '../../components/CommonComponent/ImgToolComponent/CommonSmalContainer';
export default class EditProblemItem extends React.Component{
    constructor(props){
        super(props);
        this.state = {
            showCategoryElement:false,
            showDetailElement:false,
            currentFatherLiIndex:undefined,
            currentChildLiIndex:undefined,
            currentBigId:undefined,
            currentSmallId:undefined,
            problemList:{},
            currentDetailProblem:[],
            currentDetailTitle:"分类问题",
            currentDetailSonTitle:"具体问题",
            showRemark:""
        }
    }
    componentWillMount(){
        let props = this.props;
        // console.log(state)
        let Problems_format  = {};
        let {baseInfo,problemInfo} = props;
        props.problemInfo.map((item,index)=>{
            Problems_format[item.id] = {};
            Problems_format[item.id].message = item.message;
            Problems_format[item.id].type = item.type;
            Problems_format[item.id].dicDetails = item.dicDetails;
        });
        let currentRemarkLength = baseInfo.remark.length;
        let showRemark = baseInfo.remark;
        if(currentRemarkLength>200){
            showRemark = String(showRemark).substring(0,199)
            console.log(showRemark.length)
        }
        this.setState({
            problemList:Problems_format,
            currentDetailProblem:props.problemInfo[0].dicDetails,
            currentBigId:baseInfo.problemType,
            currentSmallId:baseInfo.detailProblemType,
            currentDetailTitle:baseInfo.message?baseInfo.message:"分类问题",
            currentDetailSonTitle:baseInfo.smallMessage?baseInfo.smallMessage:"具体问题",
            showRemark:showRemark
        });

    }
    componentWillReceiveProps(nextProps){
        let nextImgList = nextProps.imgList;
        let {editProblemItem,trouleId} = this.props
        let imgList = this.props.imgList;
        //修改值
        if(String(nextImgList.files)!=String(imgList.files) || String(imgList.errorId)!= String(nextImgList.errorId)){
            if(trouleId == Number(nextImgList.errorId)){
                let data={};
                data.type = "imgFiles";
                data.files = nextImgList.files;
                data.troubelId = trouleId;
                editProblemItem(data);
            }

        }

    }
    handleShowElement(value){
        let that = this;
        if(value == "showDetailElement"){
            //点击了 小分类  检查如果大分类未选择则进行提示
            if(!this.state.currentBigId){
                console.log("请先选择大分类")
                return;
            }
        }
        if(value == "showCategoryElement"){
            this.setState({"currentDetailTitle":"分类问题"})
        }
        if(value == "showDetailElement"){
            this.setState({"currentDetailSonTitle":"具体问题"})
        }
        this.setState(
                {
                    [value]:!this.state[value]
                },()=>{
                    if(value == "showCategoryElement" && !this.state.showCategoryElement){
                       that.setState({
                           "showDetailElement":false
                       })
                    }

            }
        )
    }
    handleDetailProblem_Father(event){
        let {editProblemItem,trouleId} = this.props;
        let data = {};
        //处理选中样式
        this.setState({
            currentFatherLiIndex: parseInt(event.currentTarget.getAttribute('date-index'))
        });
        //处理数据
        let bigProblemId = event.currentTarget.getAttribute('data-id');
        let title = event.currentTarget.getAttribute('data-value');
        let childProblem = this.state.problemList[String(bigProblemId)].dicDetails;
        this.setState({
            currentDetailProblem:childProblem,
            currentBigId:bigProblemId,
            currentDetailTitle:title,
            showCategoryElement:false,
            currentDetailSonTitle:"具体问题"
        });
        data.type = "problemType";
        data.message = title;
        data.problemId = bigProblemId;
        data.troubelId = trouleId;
        editProblemItem(data)
    }
    handleDetailProblem_Child(event){
        let {editProblemItem,trouleId} = this.props;
        let title = event.currentTarget.getAttribute('data-value');
        let data = {};
        //处理选中样式
        this.setState({
            currentChildLiIndex: parseInt(event.currentTarget.getAttribute('date-index'))
        });
        //处理数据
        let smallProblemId = event.currentTarget.getAttribute('date-id');
        this.setState({
            currentSmallId:smallProblemId,
            currentDetailSonTitle:title,
            showDetailElement:false
        })
        data.type = "detailProblemType";
        data.smallMessage = title;
        data.problemId = smallProblemId;
        data.troubelId = trouleId;
        editProblemItem(data)
    }
    handleClickEditRemark(){
        console.log("点击编辑跳转到文本框")
    }
    showImg(imgSrc){
        let {showPopup,hidePopup} = this.props;
        let showImgDom = <div onClick={()=>hidePopup()} className={"showBigImg"}>
            <img src={imgSrc} alt=""/>
        </div>;
        showPopup({
            popupChild : showImgDom
        });
    }
    render(){
        let props = this.props;
        let imgFiles = props.baseInfo.files?props.baseInfo.files:[];
        let troubleId = props.trouleId;
        let taskType = props.taskType;
        // 方法
        // 1. 删除问题
        let deleteProblem = props.deleteProblem;
        // 2. 刷新图片
        let getRefreshImg    = props.getRefreshImg;
        // 3. 添加图片
        let addImg        = props.addImg;
        // 4. 删除图片
        let deleteImg = props.deleteImg;
        //问题分类
        let categoryProblemUi = props.problemInfo.map((item,index)=>{
            return <li key={"bigProblem"+index}
                       date-index={index}
                       data-value={item.message}
                       data-id = {item.id}
                       className={this.state.currentBigId == item.id ? 'active_li':''}
                       onClick={(e)=>(this.handleDetailProblem_Father.bind(this,e))()}>{item.message}</li>
        });
        let detailCategoryProblemUi = this.state.currentDetailProblem.map((item,index)=>{
            return <li key={'detailProblem'+index}
                       date-index={index}
                       data-value={item.message}
                       date-id = {item.messageId}
                       className={this.state.currentSmallId == item.messageId ? 'active_li':''}
                       onClick={(e)=>(this.handleDetailProblem_Child.bind(this,e))()}>{item.message}</li>
        })
        //图片部分
        let imgListUi = imgFiles.map((item,index)=>{
            return <ImgToolComponent
                key={"troubelImg"+index}
                noCloseBtn={false}
                handleClikCloseFunc = {deleteImg(troubleId,taskType,item.id)}
                handleClikImgFunc = {()=>{this.showImg(item.filePath)}}
                type={"custom"}
                imgSrc = {item.filePath}
            ></ImgToolComponent>
        });
        //备注部分
        let remarkText = props.remarkText;
        return (
            <div className={"editUploadItem clearfix"}>
                <span className={"closeBtn"} onClick={deleteProblem()}>×</span>
                <div className={"newTroubleTitle"}>
                    新故障问题:故障 <span>{"OP0000"+troubleId}</span>
                </div>
                <div className={"newTroubleContent clearfix"}>
                    <span className={"startIcon"}>*</span>
                    <div className={"fakeSelect"}>
                        <div className={"problemCategoryTitle"} onClick={this.handleShowElement.bind(this,"showCategoryElement")} >{this.state.currentDetailTitle}</div>
                        {
                            this.state.showCategoryElement?(
                                <ul className={"problemCategory"}   name="" id="">
                                    {
                                        categoryProblemUi
                                    }
                                </ul>
                            ):""
                        }
                    </div>
                    <div className={"fakeSelect"}>
                        <div className={"problemCategoryTitle detailTitle "+(this.state.currentBigId?"":"noActive")} onClick={this.handleShowElement.bind(this,"showDetailElement")}>{this.state.currentDetailSonTitle}</div>
                        {
                            this.state.showDetailElement?(
                                <ul className={"DetailProblem"} name="" id="">
                                    {
                                        detailCategoryProblemUi
                                    }
                                </ul>
                            ):""
                        }
                    </div>
                </div>
                <div className={"newTroubleRemark clearfix"}>
                    <span className={"startIcon"}>*</span>
                    <div className={"remarkContent"}>
                       <div className={"btnContaienr"}>
                           <button
                               className={"editIcon"}
                               onClick={props.clickEdit}
                               disabled={!this.state.currentSmallId || !this.state.currentBigId?true:false}
                           >编辑
                           </button>
                       </div>
                        <div
                            className={"defalutRemarkText "+(this.state.showRemark?"remarkText":"")}>
                            {this.state.showRemark?this.state.showRemark:("编辑检查结果")}
                        </div>
                    </div>
                </div>
                <div className={"damageImgs clearfix"}>

                    <div className={"uploadImgRight"}>
                        {imgListUi}
                    </div>
                    <div className={"operationLeft"}>
                        <ImgToolComponent
                            disabled = {this.state.currentBigId || this.state.currentSmallId?false:true}
                            type={"add"}
                            handleClikImgFunc = {addImg()}
                            noCloseBtn = {true}
                        ></ImgToolComponent>
                        <ImgToolComponent
                            disabled = {this.state.currentBigId || this.state.currentSmallId?false:true}
                            handleClikImgFunc = {getRefreshImg()}
                            type={"refresh"}
                            noCloseBtn = {true}></ImgToolComponent>
                    </div>
                </div>
            </div>
        )
    }
}
/*
EditProblemItem.PropTypes = {
    productItemList : React.PropTypes.array
}
EditProblemItem.defaultProps = {
    productItemList : [
        {
            sku : {
                imagePath : ''
            }
        }
    ]
}*/