add 颜色选择
This commit is contained in:
55
web-react/src/components/color-selector/index.jsx
Normal file
55
web-react/src/components/color-selector/index.jsx
Normal file
@@ -0,0 +1,55 @@
|
||||
import React, { Component } from 'react'
|
||||
import { Col, Row, Select } from 'antd'
|
||||
import { ChromePicker } from 'react-color'
|
||||
|
||||
export default class index extends Component {
|
||||
select = React.createRef()
|
||||
|
||||
state = {
|
||||
color: null,
|
||||
}
|
||||
|
||||
onChange(color) {
|
||||
this.setState({ color: color.hex })
|
||||
}
|
||||
|
||||
onChangeComplete(color) {
|
||||
this.props.onChange && this.props.onChange(color.hex)
|
||||
}
|
||||
|
||||
render() {
|
||||
const { color } = this.state
|
||||
|
||||
const { value } = this.props
|
||||
|
||||
return (
|
||||
<Row gutter={8}>
|
||||
<Col flex="1">
|
||||
<Select
|
||||
ref={this.select}
|
||||
dropdownRender={() => (
|
||||
<ChromePicker
|
||||
color={color || value || '#000'}
|
||||
disableAlpha
|
||||
onChange={color => this.onChange(color)}
|
||||
onChangeComplete={color => this.onChangeComplete(color)}
|
||||
/>
|
||||
)}
|
||||
showArrow={false}
|
||||
{...this.props}
|
||||
value={value}
|
||||
/>
|
||||
</Col>
|
||||
<Col flex="32px">
|
||||
<div
|
||||
className="color-selector--palette"
|
||||
style={{ backgroundColor: color || value || '#000' }}
|
||||
onClick={() => {
|
||||
this.select.current.focus()
|
||||
}}
|
||||
></div>
|
||||
</Col>
|
||||
</Row>
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
export { default as AntIcon } from 'components/ant-icon'
|
||||
export { default as AuthorityView } from './authority-view'
|
||||
export { default as Auth } from './authorized'
|
||||
export { default as ColorSelector } from './color-selector'
|
||||
export { default as ComponentDynamic } from './component-dynamic'
|
||||
export { default as Container } from './container'
|
||||
export { default as IconSelector } from './icon-selector'
|
||||
|
||||
Reference in New Issue
Block a user