@gmfe/table-x 2.14.20 → 2.14.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -13
- package/package.json +4 -4
- package/src/base/index.js +142 -142
- package/src/base/td.js +56 -56
- package/src/base/th.js +48 -48
- package/src/base/thead.js +26 -26
- package/src/base/tr.js +53 -53
- package/src/base/virtualized.js +219 -219
- package/src/hoc/diy_table_x/components/diy_table_x_modal.js +135 -135
- package/src/hoc/diy_table_x/components/modal_list.js +78 -78
- package/src/hoc/diy_table_x/components/modal_selector.js +56 -56
- package/src/hoc/diy_table_x/index.js +196 -196
- package/src/hoc/edit_table_x.js +20 -20
- package/src/hoc/expand_table_x/index.js +140 -140
- package/src/hoc/expand_table_x/util.js +27 -27
- package/src/hoc/fixed_columns_table_x.js +29 -29
- package/src/hoc/select_table_x/cell.js +51 -51
- package/src/hoc/select_table_x/header.js +28 -28
- package/src/hoc/select_table_x/index.js +139 -139
- package/src/hoc/select_table_x/util.js +10 -10
- package/src/hoc/sortable_table_x.js +52 -52
- package/src/hoc/sub_table_x.js +44 -44
- package/src/index.js +53 -53
- package/src/index.less +515 -515
- package/src/stories/table_x.stories.js +324 -324
- package/src/stories/table_x_hoc.stories.js +427 -427
- package/src/stories/table_x_hoc_select_expand.stories.js +256 -256
- package/src/util/batch_action_bar.js +124 -124
- package/src/util/edit.js +83 -83
- package/src/util/index.js +191 -191
- package/src/util/operation.js +249 -249
- package/src/util/sort_header.js +49 -49
- package/src/variables.less +28 -28
- package/svg/business.svg +20 -20
- package/svg/check-detail.svg +18 -18
- package/svg/closeup.svg +20 -20
- package/svg/delete.svg +10 -10
- package/svg/edit-pen.svg +17 -17
- package/svg/empty.svg +27 -27
- package/svg/expand.svg +21 -21
- package/svg/pen.svg +12 -12
- package/svg/recover.svg +33 -33
- package/svg/remove.svg +1 -1
- package/svg/setting.svg +17 -17
|
@@ -1,139 +1,139 @@
|
|
|
1
|
-
import React, { useMemo } from 'react'
|
|
2
|
-
import PropTypes from 'prop-types'
|
|
3
|
-
import TableX from '../../base'
|
|
4
|
-
import { TABLE_X, TABLE_X_SELECT_ID } from '../../util'
|
|
5
|
-
import { Flex } from '@gmfe/react'
|
|
6
|
-
import { devWarn } from '@gm-common/tool'
|
|
7
|
-
import { SelectContext } from './util'
|
|
8
|
-
import SelectHeader from './header'
|
|
9
|
-
import SelectCell from './cell'
|
|
10
|
-
import _ from 'lodash'
|
|
11
|
-
|
|
12
|
-
// 利用 Context 做到按需更新
|
|
13
|
-
|
|
14
|
-
function getNewColumns(
|
|
15
|
-
columns,
|
|
16
|
-
fixedSelect,
|
|
17
|
-
selectType,
|
|
18
|
-
keyField,
|
|
19
|
-
isSelectorDisable
|
|
20
|
-
) {
|
|
21
|
-
return [
|
|
22
|
-
{
|
|
23
|
-
id: TABLE_X_SELECT_ID,
|
|
24
|
-
width: TABLE_X.WIDTH_FUN,
|
|
25
|
-
maxWidth: TABLE_X.WIDTH_FUN,
|
|
26
|
-
thClassName: 'gm-table-x-icon',
|
|
27
|
-
tdClassName: 'gm-table-x-icon',
|
|
28
|
-
fixed: fixedSelect ? 'left' : null,
|
|
29
|
-
Header: () => <SelectHeader selectType={selectType} />,
|
|
30
|
-
// eslint-disable-next-line
|
|
31
|
-
Cell: ({ row }) => (
|
|
32
|
-
<SelectCell
|
|
33
|
-
selectType={selectType}
|
|
34
|
-
keyField={keyField}
|
|
35
|
-
row={row}
|
|
36
|
-
isSelectorDisable={isSelectorDisable}
|
|
37
|
-
/>
|
|
38
|
-
)
|
|
39
|
-
}
|
|
40
|
-
].concat(columns)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function selectTableXHOC(Component) {
|
|
44
|
-
const SelectTableX = props => {
|
|
45
|
-
const {
|
|
46
|
-
selected,
|
|
47
|
-
onSelect,
|
|
48
|
-
batchActionBar,
|
|
49
|
-
isSelectorDisable,
|
|
50
|
-
selectType,
|
|
51
|
-
keyField,
|
|
52
|
-
fixedSelect,
|
|
53
|
-
columns,
|
|
54
|
-
data,
|
|
55
|
-
...rest
|
|
56
|
-
} = props
|
|
57
|
-
|
|
58
|
-
devWarn(() => {
|
|
59
|
-
if (props.onSelectAll) {
|
|
60
|
-
throw Error('onSelectAll已经废弃,使用onSelect即可!')
|
|
61
|
-
}
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
const canSelectData = data.filter(row => !isSelectorDisable(row))
|
|
65
|
-
|
|
66
|
-
let isSelectAll = false
|
|
67
|
-
if (selected.length > 0) {
|
|
68
|
-
isSelectAll = selected.length === canSelectData.length
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const handleSelect = selected => {
|
|
72
|
-
onSelect(selected)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const handleSelectAll = () => {
|
|
76
|
-
onSelect(!isSelectAll ? _.map(canSelectData, v => v[keyField]) : [])
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// columns 即可,其他都是死的。 isSelectorDisable 呢?
|
|
80
|
-
const newColumns = useMemo(() => {
|
|
81
|
-
return getNewColumns(
|
|
82
|
-
columns,
|
|
83
|
-
fixedSelect,
|
|
84
|
-
selectType,
|
|
85
|
-
keyField,
|
|
86
|
-
isSelectorDisable
|
|
87
|
-
)
|
|
88
|
-
}, [columns])
|
|
89
|
-
|
|
90
|
-
return (
|
|
91
|
-
<SelectContext.Provider
|
|
92
|
-
value={{
|
|
93
|
-
selected,
|
|
94
|
-
onSelect: handleSelect,
|
|
95
|
-
isSelectAll,
|
|
96
|
-
onSelectAll: handleSelectAll
|
|
97
|
-
}}
|
|
98
|
-
>
|
|
99
|
-
<div className='gm-table-x-select-container'>
|
|
100
|
-
{batchActionBar && (
|
|
101
|
-
<div className='gm-table-x-select-batch-action-bar-container'>
|
|
102
|
-
<Flex
|
|
103
|
-
column
|
|
104
|
-
justifyCenter
|
|
105
|
-
className='gm-table-x-select-batch-action-bar'
|
|
106
|
-
>
|
|
107
|
-
{batchActionBar}
|
|
108
|
-
</Flex>
|
|
109
|
-
</div>
|
|
110
|
-
)}
|
|
111
|
-
<Component {...rest} columns={newColumns} data={data} />
|
|
112
|
-
</div>
|
|
113
|
-
</SelectContext.Provider>
|
|
114
|
-
)
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
SelectTableX.propTypes = {
|
|
118
|
-
...TableX.propTypes,
|
|
119
|
-
|
|
120
|
-
// select 专有
|
|
121
|
-
selected: PropTypes.array.isRequired,
|
|
122
|
-
onSelect: PropTypes.func.isRequired,
|
|
123
|
-
batchActionBar: PropTypes.element,
|
|
124
|
-
isSelectorDisable: PropTypes.func,
|
|
125
|
-
selectType: PropTypes.oneOf(['checkbox', 'radio']),
|
|
126
|
-
keyField: PropTypes.string,
|
|
127
|
-
fixedSelect: PropTypes.bool
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
SelectTableX.defaultProps = {
|
|
131
|
-
selectType: 'checkbox',
|
|
132
|
-
keyField: 'value',
|
|
133
|
-
isSelectorDisable: () => false
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return SelectTableX
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
export default selectTableXHOC
|
|
1
|
+
import React, { useMemo } from 'react'
|
|
2
|
+
import PropTypes from 'prop-types'
|
|
3
|
+
import TableX from '../../base'
|
|
4
|
+
import { TABLE_X, TABLE_X_SELECT_ID } from '../../util'
|
|
5
|
+
import { Flex } from '@gmfe/react'
|
|
6
|
+
import { devWarn } from '@gm-common/tool'
|
|
7
|
+
import { SelectContext } from './util'
|
|
8
|
+
import SelectHeader from './header'
|
|
9
|
+
import SelectCell from './cell'
|
|
10
|
+
import _ from 'lodash'
|
|
11
|
+
|
|
12
|
+
// 利用 Context 做到按需更新
|
|
13
|
+
|
|
14
|
+
function getNewColumns(
|
|
15
|
+
columns,
|
|
16
|
+
fixedSelect,
|
|
17
|
+
selectType,
|
|
18
|
+
keyField,
|
|
19
|
+
isSelectorDisable
|
|
20
|
+
) {
|
|
21
|
+
return [
|
|
22
|
+
{
|
|
23
|
+
id: TABLE_X_SELECT_ID,
|
|
24
|
+
width: TABLE_X.WIDTH_FUN,
|
|
25
|
+
maxWidth: TABLE_X.WIDTH_FUN,
|
|
26
|
+
thClassName: 'gm-table-x-icon',
|
|
27
|
+
tdClassName: 'gm-table-x-icon',
|
|
28
|
+
fixed: fixedSelect ? 'left' : null,
|
|
29
|
+
Header: () => <SelectHeader selectType={selectType} />,
|
|
30
|
+
// eslint-disable-next-line
|
|
31
|
+
Cell: ({ row }) => (
|
|
32
|
+
<SelectCell
|
|
33
|
+
selectType={selectType}
|
|
34
|
+
keyField={keyField}
|
|
35
|
+
row={row}
|
|
36
|
+
isSelectorDisable={isSelectorDisable}
|
|
37
|
+
/>
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
].concat(columns)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function selectTableXHOC(Component) {
|
|
44
|
+
const SelectTableX = props => {
|
|
45
|
+
const {
|
|
46
|
+
selected,
|
|
47
|
+
onSelect,
|
|
48
|
+
batchActionBar,
|
|
49
|
+
isSelectorDisable,
|
|
50
|
+
selectType,
|
|
51
|
+
keyField,
|
|
52
|
+
fixedSelect,
|
|
53
|
+
columns,
|
|
54
|
+
data,
|
|
55
|
+
...rest
|
|
56
|
+
} = props
|
|
57
|
+
|
|
58
|
+
devWarn(() => {
|
|
59
|
+
if (props.onSelectAll) {
|
|
60
|
+
throw Error('onSelectAll已经废弃,使用onSelect即可!')
|
|
61
|
+
}
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
const canSelectData = data.filter(row => !isSelectorDisable(row))
|
|
65
|
+
|
|
66
|
+
let isSelectAll = false
|
|
67
|
+
if (selected.length > 0) {
|
|
68
|
+
isSelectAll = selected.length === canSelectData.length
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const handleSelect = selected => {
|
|
72
|
+
onSelect(selected)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const handleSelectAll = () => {
|
|
76
|
+
onSelect(!isSelectAll ? _.map(canSelectData, v => v[keyField]) : [])
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// columns 即可,其他都是死的。 isSelectorDisable 呢?
|
|
80
|
+
const newColumns = useMemo(() => {
|
|
81
|
+
return getNewColumns(
|
|
82
|
+
columns,
|
|
83
|
+
fixedSelect,
|
|
84
|
+
selectType,
|
|
85
|
+
keyField,
|
|
86
|
+
isSelectorDisable
|
|
87
|
+
)
|
|
88
|
+
}, [columns])
|
|
89
|
+
|
|
90
|
+
return (
|
|
91
|
+
<SelectContext.Provider
|
|
92
|
+
value={{
|
|
93
|
+
selected,
|
|
94
|
+
onSelect: handleSelect,
|
|
95
|
+
isSelectAll,
|
|
96
|
+
onSelectAll: handleSelectAll
|
|
97
|
+
}}
|
|
98
|
+
>
|
|
99
|
+
<div className='gm-table-x-select-container'>
|
|
100
|
+
{batchActionBar && (
|
|
101
|
+
<div className='gm-table-x-select-batch-action-bar-container'>
|
|
102
|
+
<Flex
|
|
103
|
+
column
|
|
104
|
+
justifyCenter
|
|
105
|
+
className='gm-table-x-select-batch-action-bar'
|
|
106
|
+
>
|
|
107
|
+
{batchActionBar}
|
|
108
|
+
</Flex>
|
|
109
|
+
</div>
|
|
110
|
+
)}
|
|
111
|
+
<Component {...rest} columns={newColumns} data={data} />
|
|
112
|
+
</div>
|
|
113
|
+
</SelectContext.Provider>
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
SelectTableX.propTypes = {
|
|
118
|
+
...TableX.propTypes,
|
|
119
|
+
|
|
120
|
+
// select 专有
|
|
121
|
+
selected: PropTypes.array.isRequired,
|
|
122
|
+
onSelect: PropTypes.func.isRequired,
|
|
123
|
+
batchActionBar: PropTypes.element,
|
|
124
|
+
isSelectorDisable: PropTypes.func,
|
|
125
|
+
selectType: PropTypes.oneOf(['checkbox', 'radio']),
|
|
126
|
+
keyField: PropTypes.string,
|
|
127
|
+
fixedSelect: PropTypes.bool
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
SelectTableX.defaultProps = {
|
|
131
|
+
selectType: 'checkbox',
|
|
132
|
+
keyField: 'value',
|
|
133
|
+
isSelectorDisable: () => false
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return SelectTableX
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export default selectTableXHOC
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { createContext } from 'react'
|
|
2
|
-
|
|
3
|
-
const SelectContext = createContext({
|
|
4
|
-
selected: [],
|
|
5
|
-
isSelectAll: false,
|
|
6
|
-
onSelect: () => {},
|
|
7
|
-
onSelectAll: () => {}
|
|
8
|
-
})
|
|
9
|
-
|
|
10
|
-
export { SelectContext }
|
|
1
|
+
import { createContext } from 'react'
|
|
2
|
+
|
|
3
|
+
const SelectContext = createContext({
|
|
4
|
+
selected: [],
|
|
5
|
+
isSelectAll: false,
|
|
6
|
+
onSelect: () => {},
|
|
7
|
+
onSelectAll: () => {}
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
export { SelectContext }
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import React, { useEffect } from 'react'
|
|
2
|
-
import PropTypes from 'prop-types'
|
|
3
|
-
import TableX from '../base'
|
|
4
|
-
import SortableJS from 'sortablejs'
|
|
5
|
-
import _ from 'lodash'
|
|
6
|
-
|
|
7
|
-
function sortableTableX(Component) {
|
|
8
|
-
const SortableTableX = ({ id, data, onSortChange, keyField, ...rest }) => {
|
|
9
|
-
id = id || 'id' + +new Date() + '' + String(Math.random()).slice(2)
|
|
10
|
-
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
const target = document.querySelector(`#${id} .gm-table-x-tbody`)
|
|
13
|
-
|
|
14
|
-
const sortable = new SortableJS(target, {
|
|
15
|
-
animation: 150,
|
|
16
|
-
onStart: () => {
|
|
17
|
-
target.classList.add('gm-table-x-sortable-active')
|
|
18
|
-
},
|
|
19
|
-
onEnd: () => {
|
|
20
|
-
target.classList.remove('gm-table-x-sortable-active')
|
|
21
|
-
},
|
|
22
|
-
onUpdate: evt => {
|
|
23
|
-
const newIds = sortable.toArray()
|
|
24
|
-
const newData = _.sortBy(data.slice(), v =>
|
|
25
|
-
newIds.indexOf(v[keyField])
|
|
26
|
-
)
|
|
27
|
-
onSortChange(newData)
|
|
28
|
-
}
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
return () => {
|
|
32
|
-
sortable.destroy()
|
|
33
|
-
}
|
|
34
|
-
}, [data])
|
|
35
|
-
return <Component {...rest} id={id} data={data} keyField={keyField} />
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
SortableTableX.propTypes = {
|
|
39
|
-
...TableX.propTypes,
|
|
40
|
-
|
|
41
|
-
keyField: PropTypes.string,
|
|
42
|
-
onSortChange: PropTypes.func.isRequired
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
SortableTableX.defaultProps = {
|
|
46
|
-
keyField: 'value'
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return SortableTableX
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export default sortableTableX
|
|
1
|
+
import React, { useEffect } from 'react'
|
|
2
|
+
import PropTypes from 'prop-types'
|
|
3
|
+
import TableX from '../base'
|
|
4
|
+
import SortableJS from 'sortablejs'
|
|
5
|
+
import _ from 'lodash'
|
|
6
|
+
|
|
7
|
+
function sortableTableX(Component) {
|
|
8
|
+
const SortableTableX = ({ id, data, onSortChange, keyField, ...rest }) => {
|
|
9
|
+
id = id || 'id' + +new Date() + '' + String(Math.random()).slice(2)
|
|
10
|
+
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
const target = document.querySelector(`#${id} .gm-table-x-tbody`)
|
|
13
|
+
|
|
14
|
+
const sortable = new SortableJS(target, {
|
|
15
|
+
animation: 150,
|
|
16
|
+
onStart: () => {
|
|
17
|
+
target.classList.add('gm-table-x-sortable-active')
|
|
18
|
+
},
|
|
19
|
+
onEnd: () => {
|
|
20
|
+
target.classList.remove('gm-table-x-sortable-active')
|
|
21
|
+
},
|
|
22
|
+
onUpdate: evt => {
|
|
23
|
+
const newIds = sortable.toArray()
|
|
24
|
+
const newData = _.sortBy(data.slice(), v =>
|
|
25
|
+
newIds.indexOf(v[keyField])
|
|
26
|
+
)
|
|
27
|
+
onSortChange(newData)
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
return () => {
|
|
32
|
+
sortable.destroy()
|
|
33
|
+
}
|
|
34
|
+
}, [data])
|
|
35
|
+
return <Component {...rest} id={id} data={data} keyField={keyField} />
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
SortableTableX.propTypes = {
|
|
39
|
+
...TableX.propTypes,
|
|
40
|
+
|
|
41
|
+
keyField: PropTypes.string,
|
|
42
|
+
onSortChange: PropTypes.func.isRequired
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
SortableTableX.defaultProps = {
|
|
46
|
+
keyField: 'value'
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return SortableTableX
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export default sortableTableX
|
package/src/hoc/sub_table_x.js
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
import PropTypes from 'prop-types'
|
|
4
|
-
import TableX from '../base'
|
|
5
|
-
import { TABLE_X, TABLE_X_SUB_TABLE_ID } from '../util'
|
|
6
|
-
|
|
7
|
-
const subTableXHOC = Component => {
|
|
8
|
-
const SubTable = ({ subTableIndent, columns, className, ...rest }) => {
|
|
9
|
-
const _columns = React.useMemo(
|
|
10
|
-
() =>
|
|
11
|
-
[
|
|
12
|
-
{
|
|
13
|
-
id: TABLE_X_SUB_TABLE_ID,
|
|
14
|
-
width: subTableIndent,
|
|
15
|
-
maxWidth: subTableIndent,
|
|
16
|
-
Header: ''
|
|
17
|
-
}
|
|
18
|
-
].concat(columns),
|
|
19
|
-
[columns, subTableIndent]
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<Component
|
|
24
|
-
{...rest}
|
|
25
|
-
columns={_columns}
|
|
26
|
-
className={classNames('gm-table-x-sub-table', className)}
|
|
27
|
-
/>
|
|
28
|
-
)
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
SubTable.propTypes = {
|
|
32
|
-
...TableX.propTypes,
|
|
33
|
-
/** 默认功能区的宽度 */
|
|
34
|
-
subTableIndent: PropTypes.number
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
SubTable.defaultProps = {
|
|
38
|
-
subTableIndent: TABLE_X.WIDTH_FUN
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return SubTable
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export default subTableXHOC
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import classNames from 'classnames'
|
|
3
|
+
import PropTypes from 'prop-types'
|
|
4
|
+
import TableX from '../base'
|
|
5
|
+
import { TABLE_X, TABLE_X_SUB_TABLE_ID } from '../util'
|
|
6
|
+
|
|
7
|
+
const subTableXHOC = Component => {
|
|
8
|
+
const SubTable = ({ subTableIndent, columns, className, ...rest }) => {
|
|
9
|
+
const _columns = React.useMemo(
|
|
10
|
+
() =>
|
|
11
|
+
[
|
|
12
|
+
{
|
|
13
|
+
id: TABLE_X_SUB_TABLE_ID,
|
|
14
|
+
width: subTableIndent,
|
|
15
|
+
maxWidth: subTableIndent,
|
|
16
|
+
Header: ''
|
|
17
|
+
}
|
|
18
|
+
].concat(columns),
|
|
19
|
+
[columns, subTableIndent]
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<Component
|
|
24
|
+
{...rest}
|
|
25
|
+
columns={_columns}
|
|
26
|
+
className={classNames('gm-table-x-sub-table', className)}
|
|
27
|
+
/>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
SubTable.propTypes = {
|
|
32
|
+
...TableX.propTypes,
|
|
33
|
+
/** 默认功能区的宽度 */
|
|
34
|
+
subTableIndent: PropTypes.number
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
SubTable.defaultProps = {
|
|
38
|
+
subTableIndent: TABLE_X.WIDTH_FUN
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return SubTable
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export default subTableXHOC
|
package/src/index.js
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import TableX from './base'
|
|
2
|
-
import TableXVirtualized from './base/virtualized'
|
|
3
|
-
import selectTableXHOC from './hoc/select_table_x'
|
|
4
|
-
import expandTableXHOC from './hoc/expand_table_x'
|
|
5
|
-
import fixedColumnsTableXHOC from './hoc/fixed_columns_table_x'
|
|
6
|
-
import sortableTableXHOC from './hoc/sortable_table_x'
|
|
7
|
-
import subTableXHOC from './hoc/sub_table_x'
|
|
8
|
-
import editTableXHOC from './hoc/edit_table_x'
|
|
9
|
-
import diyTableXHOC from './hoc/diy_table_x'
|
|
10
|
-
|
|
11
|
-
import {
|
|
12
|
-
TABLE_X,
|
|
13
|
-
BatchActionBar,
|
|
14
|
-
OperationHeader,
|
|
15
|
-
OperationDelete,
|
|
16
|
-
OperationRecover,
|
|
17
|
-
OperationDetail,
|
|
18
|
-
OperationCell,
|
|
19
|
-
OperationRowEdit,
|
|
20
|
-
OperationIconTip,
|
|
21
|
-
EditButton,
|
|
22
|
-
EditOperation,
|
|
23
|
-
SortHeader
|
|
24
|
-
} from './util'
|
|
25
|
-
|
|
26
|
-
const TableXUtil = {
|
|
27
|
-
TABLE_X,
|
|
28
|
-
|
|
29
|
-
BatchActionBar,
|
|
30
|
-
SortHeader,
|
|
31
|
-
OperationRecover,
|
|
32
|
-
OperationHeader,
|
|
33
|
-
OperationDelete,
|
|
34
|
-
OperationDetail,
|
|
35
|
-
OperationCell,
|
|
36
|
-
OperationRowEdit,
|
|
37
|
-
OperationIconTip,
|
|
38
|
-
EditButton,
|
|
39
|
-
EditOperation
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export {
|
|
43
|
-
TableXUtil,
|
|
44
|
-
TableX,
|
|
45
|
-
TableXVirtualized,
|
|
46
|
-
selectTableXHOC,
|
|
47
|
-
expandTableXHOC,
|
|
48
|
-
fixedColumnsTableXHOC,
|
|
49
|
-
subTableXHOC,
|
|
50
|
-
editTableXHOC,
|
|
51
|
-
diyTableXHOC,
|
|
52
|
-
sortableTableXHOC
|
|
53
|
-
}
|
|
1
|
+
import TableX from './base'
|
|
2
|
+
import TableXVirtualized from './base/virtualized'
|
|
3
|
+
import selectTableXHOC from './hoc/select_table_x'
|
|
4
|
+
import expandTableXHOC from './hoc/expand_table_x'
|
|
5
|
+
import fixedColumnsTableXHOC from './hoc/fixed_columns_table_x'
|
|
6
|
+
import sortableTableXHOC from './hoc/sortable_table_x'
|
|
7
|
+
import subTableXHOC from './hoc/sub_table_x'
|
|
8
|
+
import editTableXHOC from './hoc/edit_table_x'
|
|
9
|
+
import diyTableXHOC from './hoc/diy_table_x'
|
|
10
|
+
|
|
11
|
+
import {
|
|
12
|
+
TABLE_X,
|
|
13
|
+
BatchActionBar,
|
|
14
|
+
OperationHeader,
|
|
15
|
+
OperationDelete,
|
|
16
|
+
OperationRecover,
|
|
17
|
+
OperationDetail,
|
|
18
|
+
OperationCell,
|
|
19
|
+
OperationRowEdit,
|
|
20
|
+
OperationIconTip,
|
|
21
|
+
EditButton,
|
|
22
|
+
EditOperation,
|
|
23
|
+
SortHeader
|
|
24
|
+
} from './util'
|
|
25
|
+
|
|
26
|
+
const TableXUtil = {
|
|
27
|
+
TABLE_X,
|
|
28
|
+
|
|
29
|
+
BatchActionBar,
|
|
30
|
+
SortHeader,
|
|
31
|
+
OperationRecover,
|
|
32
|
+
OperationHeader,
|
|
33
|
+
OperationDelete,
|
|
34
|
+
OperationDetail,
|
|
35
|
+
OperationCell,
|
|
36
|
+
OperationRowEdit,
|
|
37
|
+
OperationIconTip,
|
|
38
|
+
EditButton,
|
|
39
|
+
EditOperation
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export {
|
|
43
|
+
TableXUtil,
|
|
44
|
+
TableX,
|
|
45
|
+
TableXVirtualized,
|
|
46
|
+
selectTableXHOC,
|
|
47
|
+
expandTableXHOC,
|
|
48
|
+
fixedColumnsTableXHOC,
|
|
49
|
+
subTableXHOC,
|
|
50
|
+
editTableXHOC,
|
|
51
|
+
diyTableXHOC,
|
|
52
|
+
sortableTableXHOC
|
|
53
|
+
}
|