import React, {Component} from 'react'
|
|
class Documents extends Component {
|
state = {
|
folders: [],
|
docs: [],
|
selectKey: [],
|
actFolder: ''
|
}
|
|
UNSAFE_componentWillMount() {
|
const { documents } = this.props
|
|
let folders = []
|
let actFolder = documents[0].folder
|
let docs = []
|
documents.forEach(item => {
|
folders.push(item.folder)
|
if (item.folder === actFolder) {
|
docs.push(item)
|
}
|
})
|
|
this.setState({selectKey: [], folders: Array.from(new Set(folders)), actFolder: actFolder, docs})
|
}
|
|
submit = () => {
|
this.props.onChange()
|
}
|
|
checkfolder = (val) => {
|
const { documents } = this.props
|
const { actFolder } = this.state
|
|
if (actFolder === val) return
|
|
let docs = []
|
documents.forEach(item => {
|
if (item.folder === val) {
|
docs.push(item)
|
}
|
})
|
|
this.setState({actFolder: val, selectKey: [], docs})
|
}
|
|
render() {
|
const { folders, docs, selectKey, actFolder } = this.state
|
|
let checkAll = ''
|
if (selectKey.length > 0) {
|
checkAll = selectKey.length < docs.length ? ' half' : ' active'
|
}
|
|
return (
|
<div className="document-wrap">
|
<div className="document-title">
|
<div className="folder-box">文件夹</div>
|
<div className="folder">
|
<span className={'square-select' + checkAll}></span>
|
<span>文件</span>
|
</div>
|
</div>
|
<div className="document-body">
|
<div className="doc-name">
|
{folders.map(folder => (<div className={actFolder === folder ? 'active' : ''} onClick={() => this.checkfolder(folder)} key={folder}>{folder}</div>))}
|
</div>
|
<div className="file-wrap">
|
{docs.map(doc => {
|
return <div className="file-item" key={doc.id}>
|
<span className={'square-select' + (selectKey.indexOf(doc.id) > -1 ? ' active' : '')}></span>
|
<img src={doc.icon} alt=""/>
|
<span className="file-name">{doc.attachments_title}</span>
|
</div>
|
})}
|
</div>
|
</div>
|
</div>
|
)
|
}
|
}
|
|
export default Documents
|