dataViewConfigForm.jsx 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import React from 'react'
  2. import { Form, Select, InputNumber, Button } from 'antd'
  3. import { connect } from 'dva'
  4. import DisplayColumnBox from './displayColumnBox'
  5. const FormItem = Form.Item
  6. const { Option } = Select
  7. class DataViewConfigForm extends React.Component {
  8. constructor(props) {
  9. super(props);
  10. this.state = {
  11. showBox: false,
  12. visibleDisplayColumnBox: false
  13. }
  14. }
  15. render() {
  16. const { autoRefresh, dispatch, chartDesigner, formItemLayout } = this.props;
  17. return (
  18. <Form layout='horizontal'>
  19. <FormItem label="展示列" {...formItemLayout}>
  20. {/* <Select
  21. mode='multiple'
  22. allowClear
  23. showArrow={true}
  24. value={chartDesigner.dataViewConfig.viewColumns}
  25. showSearch
  26. labelInValue={true}
  27. onChange={(value) => {
  28. dispatch({ type: 'chartDesigner/changeField', name: 'dataViewConfig', value: { ...chartDesigner.dataViewConfig, viewColumns: value }, autoRefresh });
  29. }}
  30. >
  31. {columns.map((c, i)=>{
  32. return <Option key={i} value={c.name}>{c.label}</Option>
  33. })}
  34. </Select> */}
  35. <Button onClick={() => {this.setState({visibleDisplayColumnBox:true})}}>设置展示列</Button>
  36. </FormItem>
  37. <FormItem label='排序列' {...formItemLayout}>
  38. <Select
  39. allowClear
  40. value={chartDesigner.dataViewConfig.sortColumn}
  41. labelInValue={true}
  42. showSearch
  43. filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
  44. onChange={(value) => {
  45. dispatch({ type: 'chartDesigner/changeField', name: 'dataViewConfig', value: { ...chartDesigner.dataViewConfig, sortColumn: value }, autoRefresh });
  46. }}
  47. >
  48. {chartDesigner.dataViewConfig.viewColumns.map((c, i)=>{
  49. return <Option key={i} name={c.name}>{c.label}</Option>
  50. })}
  51. </Select>
  52. </FormItem>
  53. <FormItem label='排序方式' {...formItemLayout}>
  54. <Select
  55. defaultValue='asc'
  56. value={chartDesigner.dataViewConfig.sortType}
  57. onChange={(value) => {
  58. dispatch({ type: 'chartDesigner/changeField', name: 'dataViewConfig', value: { ...chartDesigner.dataViewConfig, sortType: value }, autoRefresh });
  59. }}
  60. >
  61. <Option value="asc">升序</Option>
  62. <Option value="desc">降序</Option>
  63. </Select>
  64. </FormItem>
  65. <FormItem label='数据条数' {...formItemLayout}>
  66. <InputNumber
  67. min={0}
  68. defaultValue={chartDesigner.dataViewConfig.count}
  69. onChange={(value) => {
  70. dispatch({ type: 'chartDesigner/changeField', name: 'dataViewConfig', value: { ...chartDesigner.dataViewConfig, count: value }, autoRefresh });
  71. }}
  72. >
  73. </InputNumber>
  74. </FormItem>
  75. <DisplayColumnBox
  76. key={Math.random()}
  77. autoRefresh={autoRefresh}
  78. visibleDisplayColumnBox={this.state.visibleDisplayColumnBox}
  79. hideBox={() => this.setState({visibleDisplayColumnBox:false})}
  80. targetColumns={chartDesigner.dataViewConfig.viewColumns.map(c => c.key)}
  81. />
  82. </Form>
  83. );
  84. }
  85. }
  86. function mapStateToProps({ present: { chartDesigner } }) {
  87. return { chartDesigner: chartDesigner }
  88. }
  89. export default Form.create()(connect(mapStateToProps)(DataViewConfigForm));