import React from 'react'; import ImageComponent from '../../CommonComponent/ImgToolComponent/CommonSmalContainer'; import Button from '../../CommonComponent/ButtonComponent/ButtonComponent' require('./index.css') export default class TroubleItemComponent extends React.Component{ constructor(props){ super(props) this.state = { text: '', imgStyle:{ 'height':'100%', } } this.reRreshImg = this.reRreshImg.bind(this) this.deleteImgById = this.deleteImgById.bind(this) this.confirmDeleteImg = this.confirmDeleteImg.bind(this) this.addImg = this.addImg.bind(this) this.showImg = this.showImg.bind(this) } getDes(item){ let des = ""; switch (item.type){ case 'KN': des = item.description || ''; break; case 'OP': des = `${item.parentProblemName || ''} ${item.subProblemName || ''}`; break; } return des; } reRreshImg(){ let props = this.props; let item = props.item; props.getRefreshImg(item.id,item.type) } addImg(){ let props = this.props; let item = props.item; props.showQrcode(item.errorCode) } deleteImgById(fileId){ console.log("deleteImgById :",fileId); let props = this.props; let {deleteImg,hidePopup} = props; let item = props.item; let errorId = item.id; let type = item.type; hidePopup(); deleteImg(errorId,type,fileId) } confirmDeleteImg(fileId){ let {showPopup,hidePopup} = this.props; let btnWidth = UTILPATH.getRemByPx(260); let btnMarginLeft = UTILPATH.getRemByPx(30); let btnDom1 = <Button key={"confirmDeleteTroubleImg1"} style={{'width':btnWidth}} text={"取消"} option={hidePopup}/> let btnDom2 = <Button key={"confirmDeleteTroubleImg2"} style={{'width':btnWidth,'marginLeft':btnMarginLeft}} text={"确定"} option={()=>this.deleteImgById(fileId)}/> showPopup({ popupText:'确定删除此照片吗', popupButtons:[btnDom1,btnDom2] }) } showImg(imgSrc){ let {showPopup,hidePopup} = this.props; let showImgDom = <div onClick={()=>hidePopup()} className={"showBigImg"}> <img src={imgSrc} alt=""/> </div>; console.log("showimg") showPopup({ popupChild : showImgDom, showPopup : true }); } render(){ let props = this.props; let item = props.item ? props.item : {}; let description = this.getDes(item); let imgFiles = Array.isArray(item.files) ? item.files.map((f,k)=>{ return <ImageComponent key={"troubleItemImg"+k} noCloseBtn={false} handleClikCloseFunc = {()=>this.confirmDeleteImg(f.id)} handleClikImgFunc = {()=>{this.showImg(f.filePath)}} type={"custom"} imgSrc = {f.filePath}/> }) : []; let imgLength = imgFiles.length; if(imgLength < 9){ imgFiles.push(<ImageComponent showSrc={true} key={"troubleItemImgadd"+imgLength} disabled={!(item.isExistProblem && parseInt(item.isExistProblem) === 1)} type={"add"} handleClikImgFunc = {this.addImg} noCloseBtn = {true} />); imgLength++; } imgFiles.push(<ImageComponent key={"troubleItemImgrefresh"+imgLength} handleClikImgFunc = {this.reRreshImg} type={"refresh"} noCloseBtn = {true} />); let swiperOptions = { width : 90, spaceBetween: 20, // freeMode:true, // pagination: '.pagination', // loop:false, mode: 'horizontal', touchRatio:0.5, longSwipesRatio:0.1, threshold:50, lazyLoadingInPrevNext:true, lazyLoading : true, followFinger:false, observer: true,//修改swiper自己或子元素时,自动初始化swiper observeParents: true,//修改swiper的父元素时,自动初始化swiper lazyLoadingInPrevNextAmount: 11, }; let swiperContainer = CONFIG.swiperContainers.troubleSwiperImgContainer + item.errorCode; let swiperCount = imgLength+1; let text = item.explanation.length > 200 ? item.explanation.substring(0,200) + '...' : item.explanation return ( <div className={"troubleItemComponent "+((item.isExistProblem === 1 && item.explanation) || item.isExistProblem === 2 ? 'finish':'')}> <div className={"finishBox"}> <div className={"finishText colfff font24"}>已处理</div> </div> <div className={"itemText font32"}>故障问题{props.num || 0}:故障ID-{item.errorCode || ''}</div> <div className={"itemWrongInfo font24 col999"}> <p>{description}</p> </div> <div className={"jugdeQuestion font32 rel"}> <span className={"colff7860 font32 star"}>*</span> <span>是否有此问题</span> <div className={"questionBox border_e5 "+(item.isExistProblem && parseInt(item.isExistProblem) === 1 ? 'active':'')} onClick={()=>props.setItem(item.errorCode,"isExistProblem",1)} >是</div> <div className={"questionBox border_e5 "+(item.isExistProblem && parseInt(item.isExistProblem) === 2 ? 'active':'')} onClick={()=>props.setItem(item.errorCode,"isExistProblem",2)} >否</div> </div> <div className={"itemTextArea rel font24"}> <div className={"itemTextEdit font24 colff7860"} onClick={()=>props.showText(item.errorCode)}> <span className={"iconfont font24 icon icon-editor-line colff7860"} /> <span> 编辑</span> </div> <span className={"colff7860 font32 star"}>*</span> <div className={"itemTextAreaBox col999 border_e5"} onClick={()=>props.showText(item.errorCode)}> { item.explanation ? <textarea maxLength="200" readOnly className={"itemTextAreaBoxs col999"} value={text} /> : <span className={"itemPlayceHolder"}>编辑检查结果</span> } </div> </div> <div className={"itemControl rel"}> {imgFiles} </div> </div> ) } }