add 颜色选择

This commit is contained in:
2021-06-29 13:26:09 +08:00
parent 3d5c776362
commit 31bc69939c
8 changed files with 149 additions and 4 deletions

View 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>
)
}
}

View File

@@ -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'