amis 1.10.1-beta.0 → 1.10.2
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/Schema.d.ts +1 -1
- package/lib/Schema.js.map +1 -1
- package/lib/components/Avatar.d.ts +10 -10
- package/lib/components/ListGroup.d.ts +10 -10
- package/lib/components/Range.js +8 -2
- package/lib/components/Range.js.map +2 -2
- package/lib/components/ResultBox.d.ts +41 -40
- package/lib/components/ResultBox.js +23 -19
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/Select.js +5 -3
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Steps.d.ts +1 -0
- package/lib/components/Steps.js +8 -6
- package/lib/components/Steps.js.map +2 -2
- package/lib/components/condition-builder/index.d.ts +12 -2
- package/lib/components/condition-builder/index.js +40 -4
- package/lib/components/condition-builder/index.js.map +2 -2
- package/lib/components/formula/Editor.js +1 -1
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/VariableList.js +2 -2
- package/lib/components/formula/VariableList.js.map +2 -2
- package/lib/components/table/index.d.ts +9 -7
- package/lib/components/table/index.js +102 -102
- package/lib/components/table/index.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/renderers/Action.js +18 -11
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/CRUD.js +2 -2
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/CRUD2.d.ts +213 -0
- package/lib/renderers/CRUD2.js +724 -0
- package/lib/renderers/CRUD2.js.map +13 -0
- package/lib/renderers/Card2.d.ts +1 -1
- package/lib/renderers/Card2.js +1 -2
- package/lib/renderers/Card2.js.map +2 -2
- package/lib/renderers/Cards.d.ts +3 -0
- package/lib/renderers/Cards.js +52 -5
- package/lib/renderers/Cards.js.map +2 -2
- package/lib/renderers/Form/ConditionBuilder.d.ts +10 -0
- package/lib/renderers/Form/ConditionBuilder.js +6 -2
- package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +66 -20
- package/lib/renderers/Form/Editor.d.ts +66 -20
- package/lib/renderers/Form/Item.d.ts +4 -0
- package/lib/renderers/Form/Item.js +1 -1
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +0 -1
- package/lib/renderers/Form/TreeSelect.js +1 -9
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.js +8 -4
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Icon.d.ts +1 -1
- package/lib/renderers/Icon.js +13 -8
- package/lib/renderers/Icon.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +1 -0
- package/lib/renderers/Table/index.js +19 -5
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Table-v2/index.d.ts +8 -5
- package/lib/renderers/Table-v2/index.js +83 -54
- package/lib/renderers/Table-v2/index.js.map +2 -2
- package/lib/store/combo.d.ts +72 -22
- package/lib/store/crud.d.ts +2 -0
- package/lib/store/crud.js +21 -1
- package/lib/store/crud.js.map +2 -2
- package/lib/store/form.d.ts +30 -9
- package/lib/store/form.js +28 -10
- package/lib/store/form.js.map +2 -2
- package/lib/store/formItem.d.ts +3 -1
- package/lib/store/formItem.js +3 -5
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/list.d.ts +2 -0
- package/lib/store/list.js +8 -0
- package/lib/store/list.js.map +2 -2
- package/lib/store/table.d.ts +60 -18
- package/lib/themes/ang-ie11.css +166 -19
- package/lib/themes/ang.css +166 -19
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +166 -19
- package/lib/themes/antd.css +166 -19
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +166 -19
- package/lib/themes/cxd.css +166 -19
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +166 -19
- package/lib/themes/dark.css +166 -19
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +166 -19
- package/lib/themes/default.css +166 -19
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/icon.js +7 -0
- package/lib/utils/icon.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +28 -25
- package/scss/_mixins.scss +1 -1
- package/scss/components/_condition-builder.scss +11 -0
- package/scss/components/_crud.scss +8 -3
- package/scss/components/_crud2.scss +148 -0
- package/scss/components/_result-box.scss +27 -8
- package/scss/components/_steps.scss +21 -26
- package/scss/components/_table-v2.scss +1 -3
- package/scss/components/form/_select.scss +4 -0
- package/scss/themes/_common.scss +1 -0
- package/sdk/ang-ie11.css +203 -20
- package/sdk/ang.css +203 -20
- package/sdk/antd-ie11.css +203 -20
- package/sdk/antd.css +203 -20
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +203 -20
- package/sdk/cxd.css +203 -20
- package/sdk/dark-ie11.css +203 -20
- package/sdk/dark.css +203 -20
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +203 -20
- package/sdk/sdk.css +203 -20
- package/sdk/sdk.js +1344 -1340
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +1 -0
- package/src/components/Range.tsx +14 -7
- package/src/components/ResultBox.tsx +65 -54
- package/src/components/Select.tsx +6 -5
- package/src/components/Steps.tsx +60 -18
- package/src/components/condition-builder/index.tsx +107 -8
- package/src/components/formula/Editor.tsx +1 -1
- package/src/components/formula/VariableList.tsx +2 -2
- package/src/components/table/index.tsx +190 -193
- package/src/index.tsx +1 -0
- package/src/renderers/Action.tsx +22 -11
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/CRUD.tsx +2 -1
- package/src/renderers/CRUD2.tsx +1213 -0
- package/src/renderers/Card2.tsx +2 -3
- package/src/renderers/Cards.tsx +55 -10
- package/src/renderers/Form/ConditionBuilder.tsx +19 -2
- package/src/renderers/Form/Item.tsx +11 -1
- package/src/renderers/Form/TreeSelect.tsx +14 -16
- package/src/renderers/Form/index.tsx +11 -2
- package/src/renderers/Icon.tsx +8 -1
- package/src/renderers/Table/index.tsx +21 -5
- package/src/renderers/Table-v2/index.tsx +92 -72
- package/src/store/crud.ts +23 -1
- package/src/store/form.ts +31 -24
- package/src/store/formItem.ts +65 -52
- package/src/store/list.ts +10 -0
- package/src/types.ts +2 -1
- package/src/utils/icon.tsx +9 -0
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/table/index.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Table\n * @author fex\n */\n\nimport React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport findLastIndex from 'lodash/findLastIndex';\nimport find from 'lodash/find';\nimport isEqual from 'lodash/isEqual';\nimport filter from 'lodash/filter';\nimport intersection from 'lodash/intersection';\nimport Sortable from 'sortablejs';\n\nimport {themeable, ClassNamesFn, ThemeProps} from '../../theme';\nimport {localeable, LocaleProps} from '../../locale';\nimport {isObject, isBreakpoint, guid} from '../../utils/helper';\nimport {Icon} from '../icons';\nimport CheckBox from '../Checkbox';\nimport Spinner from '../Spinner';\n\nimport HeadCellSort from './HeadCellSort';\nimport HeadCellFilter from './HeadCellFilter';\nimport HeadCellSelect from './HeadCellSelect';\nimport ItemActionsWrapper from './ItemActionsWrapper';\nimport Cell from './Cell';\n\nexport interface ColumnProps {\n title: string | React.ReactNode | Function;\n key: string;\n className?: Function;\n children?: Array<ColumnProps>;\n render: Function;\n fixed?: boolean | string;\n width?: number | string;\n sorter?: (a: any, b: any) => number | boolean; // 设置为true时,执行onSort,否则执行前端排序\n sortOrder?: string; // 升序ascend、降序descend\n filters?: Array<any>; // 筛选数据源,配置了数据源才展示\n filterMode?: string; // menu/tree 默认menu 先只支持menu\n filterMultiple?: boolean; // 是否支持多选\n filteredValue?: Array<string>;\n filtered?: boolean;\n filterDropdown?: Function | React.ReactNode; // 列筛选 filterDropdown的优先级更高 和filters两者不能并存\n align?: string; // left/right/center\n breakpoint?: '*' | 'xs' | 'sm' | 'md' | 'lg';\n}\n\nexport interface ThProps extends ColumnProps {\n rowSpan: number;\n colSpan: number;\n groupId: string; // 随机生成表头分组的id\n depth: number; // 表头分组层级\n}\n\nexport interface TdProps extends ColumnProps {\n rowSpan: number;\n colSpan: number;\n groupId: string; // 随机生成表头分组的id\n}\n\nexport interface RowSelectionOptionProps {\n key: string;\n text: string;\n onSelect: Function;\n}\n\nexport interface RowSelectionProps {\n type: string;\n rowClick: boolean; // 点击复选框选中还是点击整行选中\n fixed: boolean; // 只能固定在左边\n selectedRowKeys: Array<string | number>;\n keyField?: string; // 默认是key,可自定义\n columnWidth?: number;\n selections?: Array<RowSelectionOptionProps>;\n onChange?: Function;\n getCheckboxProps: Function;\n}\n\nexport interface ExpandableProps {\n expandedRowKeys?: Array<string | number>;\n keyField: string; // 默认是key,可自定义\n columnWidth?: number;\n rowExpandable: Function;\n defaultExpandedRowKeys?: Array<string | number>;\n onExpand?: Function;\n onExpandedRowsChange?: Function;\n expandedRowRender?: Function;\n expandedRowClassName?: Function;\n expandIcon?: Function;\n fixed?: boolean;\n}\n\nexport interface SummaryProps {\n colSpan: number; // 手动控制列合并 先不支持列合并\n fixed: string | boolean; // 手动设置左固定还是右固定\n render: Function | React.ReactNode;\n}\n\nexport interface OnRowProps {\n onRowMouseEnter?: Function;\n onRowMouseLeave?: Function;\n onRowClick?: Function;\n}\n\nexport interface SortProps {\n orderBy: string;\n order: string;\n}\n\nexport interface TableProps extends ThemeProps, LocaleProps {\n title: string | React.ReactNode | Function;\n footer: string | React.ReactNode | Function;\n className?: string;\n dataSource: Array<any>;\n classnames: ClassNamesFn;\n columns: Array<ColumnProps>;\n scroll?: ScrollProps;\n rowSelection?: RowSelectionProps;\n onSort?: Function;\n expandable?: ExpandableProps;\n bordered?: boolean;\n size?: string; // large | default | small\n headSummary?:\n | Function\n | React.ReactNode\n | Array<SummaryProps | Array<SummaryProps>>;\n footSummary?:\n | Function\n | React.ReactNode\n | Array<SummaryProps | Array<SummaryProps>>;\n draggable?: boolean;\n onDrag?: Function;\n resizable?: boolean; // 列宽调整\n placeholder?: string | React.ReactNode | Function; // 数据为空展示\n loading?: boolean | string | React.ReactNode; // 数据加载中\n sticky?: boolean; // 粘性头部\n onFilter?: Function; // 筛选/过滤函数\n childrenColumnName?: string; // 控制数据源哪一列作为嵌套数据,不想支持,就随便设置一个不存在的值,默认是children\n keyField?: string; // 展开嵌套数据的时候,用哪个字段做唯一标识\n indentSize: number; // 树形展示时 设置缩进值\n onRow?: OnRowProps; // 行操作事件\n rowClassName?: Function;\n lineHeight?: string; // 可设置large、middle固定高度,不设置则跟随内容\n showHeader?: boolean; // 是否展示表头\n onSelect?: Function;\n onSelectAll?: Function;\n itemActions?: Function;\n}\n\nexport interface ScrollProps {\n x: number | string | true;\n y: number | string;\n}\n\nexport interface TableState {\n selectedRowKeys: Array<string | number>;\n dataSource: Array<any>;\n expandedRowKeys: Array<string | number>;\n colWidths: Array<number>;\n hoverRow: {\n rowIndex?: number,\n record: any,\n target: HTMLTableRowElement\n } | null;\n}\n\nfunction getMaxLevelThRowSpan(columns: Array<ColumnProps>) {\n let maxLevel = 0;\n\n Array.isArray(columns) &&\n columns.forEach(c => {\n const level = getThRowSpan(c);\n if (maxLevel < level) {\n maxLevel = level;\n }\n });\n\n return maxLevel;\n}\n\nfunction getThRowSpan(column: ColumnProps) {\n if (!column.children || (column.children && !column.children.length)) {\n return 1;\n }\n\n return 1 + getMaxLevelThRowSpan(column.children);\n}\n\nfunction getThColSpan(column: ColumnProps) {\n if (!column.children || (column.children && !column.children.length)) {\n return 1;\n }\n\n let childrenLength = 0;\n column.children.forEach(item => (childrenLength += getThColSpan(item)));\n\n return childrenLength;\n}\n\nfunction buildColumns(\n columns: Array<ColumnProps> = [],\n thColumns: Array<Array<any>>,\n tdColumns: Array<ColumnProps> = [],\n depth: number = 0,\n id?: string,\n fixed?: boolean | string\n) {\n const maxLevel = getMaxLevelThRowSpan(columns);\n // 在处理表头时,如果父级column设置了fixed属性,那么所有children保持一致\n Array.isArray(columns) &&\n columns.forEach(column => {\n const groupId = id || guid();\n let childMaxLevel = 0;\n if (column.children) {\n childMaxLevel = getMaxLevelThRowSpan(column.children);\n }\n const newColumn = {\n ...column,\n rowSpan: childMaxLevel ? 1 : maxLevel - childMaxLevel + depth,\n colSpan: getThColSpan(column),\n groupId,\n depth\n };\n const tdColumn = {\n ...column,\n groupId\n };\n if (fixed) {\n newColumn.fixed = fixed;\n tdColumn.fixed = fixed;\n }\n\n if (!thColumns[depth]) {\n thColumns[depth] = [];\n }\n thColumns[depth].push(newColumn);\n if (column.children && column.children.length > 0) {\n buildColumns(\n column.children,\n thColumns,\n tdColumns,\n depth + 1,\n groupId,\n column.fixed\n );\n } else {\n const {children, ...rest} = tdColumn;\n tdColumns.push(rest);\n }\n });\n}\n\nfunction isFixedLeftColumn(fixed: boolean | string | undefined) {\n return fixed === true || fixed === 'left';\n}\n\nfunction isFixedRightColumn(fixed: boolean | string | undefined) {\n return fixed === 'right';\n}\n\nfunction getPreviousLeftWidth(\n doms: HTMLCollection,\n index: number,\n columns: Array<ColumnProps>\n) {\n let width = 0;\n for (let i = 0; i < index; i++) {\n if (columns && columns[i] && isFixedLeftColumn(columns[i].fixed)) {\n const dom = doms[i] as HTMLElement;\n width += dom.offsetWidth;\n }\n }\n return width;\n}\n\nfunction getAfterRightWidth(\n doms: HTMLCollection,\n index: number,\n columns: Array<ColumnProps>\n) {\n let width = 0;\n for (let i = doms.length - 0; i > index; i--) {\n if (columns && columns[i] && isFixedRightColumn(columns[i].fixed)) {\n const dom = doms[i] as HTMLElement;\n width += dom.offsetWidth;\n }\n }\n return width;\n}\n\nfunction hasFixedColumn(columns: Array<ColumnProps>) {\n return find(columns, column => column.fixed);\n}\n\nfunction getSummaryColumns(summary: Array<SummaryProps>) {\n if (!summary) {\n return [];\n }\n const last: Array<SummaryProps> = [];\n const first: Array<SummaryProps> = [];\n summary.forEach(item => {\n if (isObject(item)) {\n first.push(item);\n } else if (Array.isArray(item)) {\n last.push(item);\n }\n });\n return [first, ...last];\n}\n\nconst DefaultCellWidth = 40;\n\nexport class Table extends React.PureComponent<TableProps, TableState> {\n static defaultProps = {\n title: '',\n className: '',\n dataSource: [],\n columns: [],\n indentSize: 15,\n placeholder: '暂无数据',\n showHeader: true\n };\n\n constructor(props: TableProps) {\n super(props);\n\n if (props.rowSelection) {\n const selectedResult = this.getSelectedRows(\n props.dataSource,\n props.rowSelection?.selectedRowKeys\n );\n\n this.selectedRows = selectedResult.selectedRows;\n this.unSelectedRows = selectedResult.unSelectedRows;\n }\n\n this.state = {\n selectedRowKeys: props.rowSelection\n ? props.rowSelection.selectedRowKeys.map(key => key) || []\n : [],\n dataSource: props.dataSource || [], // 为了支持前端搜索\n expandedRowKeys: [\n ...(props.expandable ? props.expandable.expandedRowKeys || [] : []),\n ...(props.expandable\n ? props.expandable.defaultExpandedRowKeys || []\n : [])\n ],\n colWidths: [],\n hoverRow: null\n };\n\n this.onTableContentScroll = this.onTableContentScroll.bind(this);\n this.getPopOverContainer = this.getPopOverContainer.bind(this);\n }\n\n getPopOverContainer() {\n return findDOMNode(this);\n }\n\n // 表头配置\n thColumns: Array<Array<ThProps>>;\n // 表格配置\n tdColumns: Array<TdProps>;\n // 表格当前选中行\n selectedRows: Array<any>;\n // 表格当前未选中行\n unSelectedRows: Array<any>;\n // 拖拽排序\n sortable: Sortable;\n // 记录点击起始横坐标\n resizeStart: number;\n resizeKey: string;\n\n tableDom: React.RefObject<HTMLDivElement> = React.createRef();\n theadDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n tbodyDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n contentDom: React.RefObject<HTMLDivElement> = React.createRef();\n headerDom: React.RefObject<HTMLDivElement> = React.createRef();\n bodyDom: React.RefObject<HTMLDivElement> = React.createRef();\n tfootDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n footDom: React.RefObject<HTMLDivElement> = React.createRef();\n\n getColWidths() {\n const childrens = this.tbodyDom.current?.children[0]?.children || [];\n const colWidths: Array<any> = new Array(childrens ? childrens.length : 0);\n\n for (let i = 0; i < childrens.length; i++) {\n const child: any = childrens[i];\n colWidths[i] = child ? child.offsetWidth : null;\n }\n\n return colWidths;\n }\n\n getSelectedRows(\n dataSource: Array<any>,\n selectedRowKeys: Array<string | number>\n ) {\n const selectedRows: Array<any> = [];\n const unSelectedRows: Array<any> = [];\n dataSource.forEach(data => {\n if (\n find(\n selectedRowKeys,\n key => key === data[this.getRowSelectionKeyField()]\n )\n ) {\n selectedRows.push(data);\n } else {\n unSelectedRows.push(data);\n }\n });\n\n return {selectedRows, unSelectedRows};\n }\n\n updateTableBodyFixed() {\n const tbodyDom = this.tbodyDom && (this.tbodyDom.current as HTMLElement);\n const tdColumns = [...this.tdColumns];\n this.updateTbodyFixedRow(tbodyDom, tdColumns);\n this.updateHeadSummaryFixedRow(tbodyDom);\n }\n\n updateColWidths() {\n this.setState({colWidths: this.getColWidths()}, () => {\n if (hasFixedColumn(this.props.columns)) {\n const theadDom =\n this.theadDom && (this.theadDom.current as HTMLElement);\n const thColumns = this.thColumns;\n this.updateTheadFixedRow(theadDom, thColumns);\n this.updateTableBodyFixed();\n }\n });\n }\n\n componentDidMount() {\n if (this.props.loading) {\n return;\n }\n\n if (hasFixedColumn(this.props.columns)) {\n const headerDom =\n this.headerDom && (this.headerDom.current as HTMLElement);\n if (headerDom) {\n const headerBody = headerDom.getElementsByTagName('tbody');\n headerBody &&\n headerBody[0] &&\n this.updateHeadSummaryFixedRow(headerBody[0]);\n }\n\n const tfootDom = this.tfootDom && (this.tfootDom.current as HTMLElement);\n tfootDom && this.updateFootSummaryFixedRow(tfootDom);\n }\n\n let current = null;\n if (this.contentDom && this.contentDom.current) {\n current = this.contentDom.current;\n current.addEventListener('scroll', this.onTableContentScroll.bind(this));\n } else {\n current = this.headerDom?.current;\n\n // overflow设置为hidden的情况\n const hiddenDomRefs = [this.headerDom, this.footDom];\n hiddenDomRefs.forEach(\n ref =>\n ref &&\n ref.current &&\n ref.current.addEventListener('wheel', this.onWheel.bind(this))\n );\n // 横向同步滚动\n const scrollDomRefs = [this.bodyDom];\n scrollDomRefs.forEach(\n ref =>\n ref &&\n ref.current &&\n ref.current.addEventListener('scroll', this.onTableScroll.bind(this))\n );\n }\n current && this.updateTableDom(current);\n\n if (this.props.draggable) {\n this.initDragging();\n }\n\n if (this.props.resizable) {\n this.theadDom.current?.addEventListener(\n 'mouseup',\n this.onResizeMouseUp.bind(this)\n );\n }\n\n this.updateStickyHeader();\n\n this.updateColWidths();\n }\n\n componentDidUpdate(prevProps: TableProps, prevState: TableState) {\n // 数据源发生了变化\n if (!isEqual(prevProps.dataSource, this.props.dataSource)) {\n this.setState({dataSource: [...this.props.dataSource]}, () =>\n this.updateColWidths()\n ); // 异步加载数据需求再更新一次\n }\n\n // 选择项发生了变化触发\n if (!isEqual(prevState.selectedRowKeys, this.state.selectedRowKeys)) {\n // 更新保存的已选择行数据\n const selectedResult = this.getSelectedRows(\n this.state.dataSource,\n this.state.selectedRowKeys\n );\n this.selectedRows = selectedResult.selectedRows;\n this.unSelectedRows = selectedResult.unSelectedRows;\n\n const {rowSelection} = this.props;\n rowSelection &&\n rowSelection.onChange &&\n rowSelection.onChange(this.state.selectedRowKeys, this.selectedRows);\n\n this.setState({\n selectedRowKeys: this.state.selectedRowKeys.filter(\n (key, i, a) => a.indexOf(key) === i\n )\n });\n }\n\n // 外部传入的选择项发生了变化\n if (\n !isEqual(\n prevProps.rowSelection?.selectedRowKeys,\n this.props.rowSelection?.selectedRowKeys\n )\n ) {\n if (this.props.rowSelection) {\n this.setState({\n selectedRowKeys: this.props.rowSelection.selectedRowKeys\n });\n const selectedResult = this.getSelectedRows(\n this.state.dataSource,\n this.state.selectedRowKeys\n );\n this.selectedRows = selectedResult.selectedRows;\n this.unSelectedRows = selectedResult.unSelectedRows;\n }\n }\n\n // 外部传入的展开项发生了变化\n if (\n !isEqual(\n prevProps?.expandable?.expandedRowKeys,\n this.props.expandable?.expandedRowKeys\n )\n ) {\n if (this.props.expandable) {\n this.setState({\n expandedRowKeys: this.props.expandable.expandedRowKeys || []\n });\n }\n }\n\n // 展开行变化时触发\n if (!isEqual(prevState.expandedRowKeys, this.state.expandedRowKeys)) {\n if (this.props.expandable) {\n const {onExpandedRowsChange, keyField} = this.props.expandable;\n const expandedRows: Array<any> = [];\n this.state.dataSource.forEach(item => {\n if (\n find(\n this.state.expandedRowKeys,\n key => key == item[keyField || 'key']\n )\n ) {\n expandedRows.push(item);\n }\n });\n onExpandedRowsChange && onExpandedRowsChange(expandedRows);\n }\n }\n\n // sticky属性发生了变化\n if (prevProps.sticky !== this.props.sticky) {\n this.updateStickyHeader();\n }\n }\n\n componentWillUnmount() {\n this.contentDom &&\n this.contentDom.current &&\n this.contentDom.current.removeEventListener(\n 'scroll',\n this.onTableContentScroll.bind(this)\n );\n\n const hiddenDomRefs = [this.headerDom, this.footDom];\n hiddenDomRefs.forEach(\n ref =>\n ref &&\n ref.current &&\n ref.current.removeEventListener('wheel', this.onWheel.bind(this))\n );\n\n const scrollDomRefs = [this.bodyDom];\n scrollDomRefs.forEach(\n ref =>\n ref &&\n ref.current &&\n ref.current.removeEventListener('scroll', this.onTableScroll.bind(this))\n );\n\n this.destroyDragging();\n }\n\n initDragging() {\n const {classnames: cx, onDrag} = this.props;\n\n this.sortable = new Sortable(this.tbodyDom.current as HTMLElement, {\n group: 'table',\n animation: 150,\n handle: `.${cx('Table-dragCell')}`,\n ghostClass: 'is-dragging',\n onMove: (e: any) => {\n const dragged = e.dragged;\n const related = e.related;\n\n if (\n related &&\n related.classList.contains(`${cx('Table-summary-row')}`)\n ) {\n return false;\n }\n\n const draggedLevels = dragged.getAttribute('row-levels');\n const relatedLevels = related.getAttribute('row-levels');\n\n // 嵌套展示 不属于同一层的 不允许拖动\n // 否则涉及到试图的更新,比如子元素都被拖完了\n if (draggedLevels !== relatedLevels) {\n return false;\n }\n\n return true;\n },\n onEnd: async (e: any) => {\n // 没有移动\n if (e.newIndex === e.oldIndex) {\n return;\n }\n\n const rowLevels = e.item.getAttribute('row-levels');\n\n onDrag && onDrag(e.oldIndex, e.newIndex, rowLevels ? rowLevels.split(',') : []);\n }\n });\n }\n\n destroyDragging() {\n this.sortable && this.sortable.destroy();\n }\n\n updateStickyHeader() {\n if (this.props.sticky) {\n // 如果设置了sticky 如果父元素设置了overflow: auto top值还需要考虑padding值\n let parent = this.headerDom?.current?.parentElement;\n setTimeout(() => {\n while (\n parent &&\n window.getComputedStyle(parent, null).getPropertyValue('overflow') !==\n 'auto'\n ) {\n parent = parent.parentElement;\n }\n if (\n parent &&\n window.getComputedStyle(parent, null).getPropertyValue('overflow') ===\n 'auto'\n ) {\n const paddingTop = window\n .getComputedStyle(parent, null)\n .getPropertyValue('padding-top');\n if (paddingTop && this.headerDom && this.headerDom.current) {\n this.headerDom.current.style.top = '-' + paddingTop;\n }\n }\n });\n }\n }\n\n // 更新一个tr下的td的left和class\n updateFixedRow(row: HTMLElement, columns: Array<ColumnProps>) {\n const {classnames: cx} = this.props;\n\n const children = row.children;\n for (let i = 0; i < children.length; i++) {\n const dom = children[i] as HTMLElement;\n const fixed = columns[i] ? columns[i].fixed || '' : '';\n if (isFixedLeftColumn(fixed)) {\n dom.style.left =\n i > 0 ? getPreviousLeftWidth(children, i, columns) + 'px' : '0';\n } else if (isFixedRightColumn(fixed)) {\n dom.style.right =\n i < children.length - 1\n ? getAfterRightWidth(children, i, columns) + 'px'\n : '0';\n }\n }\n // 最后一个左fixed的添加样式\n let leftIndex = findLastIndex(columns, column =>\n isFixedLeftColumn(column.fixed)\n );\n if (leftIndex > -1) {\n children[leftIndex]?.classList.add(cx('Table-cell-fix-left-last'));\n }\n // 第一个右fixed的添加样式\n let rightIndex = columns.findIndex(column =>\n isFixedRightColumn(column.fixed)\n );\n if (rightIndex > -1) {\n children[rightIndex]?.classList.add(cx('Table-cell-fix-right-first'));\n if (rightIndex > 0) {\n children[rightIndex - 1]?.classList.add(\n cx('Table-cell-fix-right-first-prev')\n );\n }\n }\n }\n\n // 在可选、可展开、可拖拽的情况下,补充column,方便fix处理\n prependColumns(columns: Array<any>) {\n const {rowSelection, expandable, draggable} = this.props;\n if (draggable) {\n columns.unshift({});\n } else {\n if (expandable) {\n columns.unshift(expandable);\n }\n if (rowSelection) {\n columns.unshift(rowSelection);\n }\n }\n }\n\n updateTheadFixedRow(thead: HTMLElement, columns: Array<any>) {\n const children = thead.children;\n for (let i = 0; i < children.length; i++) {\n const cols = [...columns[i]];\n if (i === 0) {\n this.prependColumns(cols);\n }\n\n this.updateFixedRow(children[i] as HTMLElement, cols);\n }\n }\n\n updateTbodyFixedRow(tbody: HTMLElement, columns: Array<any>) {\n const {classnames: cx} = this.props;\n const children = filter(\n tbody.children,\n child =>\n !child.classList.contains(cx('Table-summary-row')) &&\n !child.classList.contains(cx('Table-empty-row'))\n );\n this.prependColumns(columns);\n for (let i = 0; i < children.length; i++) {\n this.updateFixedRow(children[i] as HTMLElement, columns);\n }\n }\n\n updateSummaryFixedRow(\n children: HTMLCollection | Array<Element>,\n columns: Array<any>\n ) {\n for (let i = 0; i < children.length; i++) {\n this.updateFixedRow(children[i] as HTMLElement, columns[i]);\n }\n }\n\n updateFootSummaryFixedRow(tfoot: HTMLElement) {\n const {footSummary} = this.props;\n if (Array.isArray(footSummary)) {\n const columns = getSummaryColumns(footSummary as Array<SummaryProps>);\n this.updateSummaryFixedRow(tfoot.children, columns);\n }\n }\n\n updateHeadSummaryFixedRow(tbody: HTMLElement) {\n const {headSummary, classnames: cx} = this.props;\n if (Array.isArray(headSummary)) {\n const columns = getSummaryColumns(headSummary as Array<SummaryProps>);\n const children = filter(tbody.children, child =>\n child.classList.contains(cx('Table-summary-row'))\n );\n this.updateSummaryFixedRow(children, columns);\n }\n }\n\n renderColGroup(colWidths?: Array<number>) {\n const {rowSelection, classnames: cx, expandable, draggable} = this.props;\n\n const tdColumns = this.tdColumns;\n const isExpandable = this.isExpandableTable();\n const extraCount = this.getExtraColumnCount();\n\n return (\n <colgroup>\n {draggable ? (\n <col\n className={cx('Table-drag-col')}\n style={{width: DefaultCellWidth + 'px'}}\n ></col>\n ) : null}\n {!draggable && rowSelection ? (\n <col\n className={cx('Table-selection-col')}\n style={{\n width: (rowSelection.columnWidth || DefaultCellWidth) + 'px'\n }}\n ></col>\n ) : null}\n {!draggable && isExpandable ? (\n <col\n className={cx('Table-expand-col')}\n style={{\n width: (expandable?.columnWidth || DefaultCellWidth) + 'px'\n }}\n ></col>\n ) : null}\n {tdColumns.map((data, index) => {\n const width = colWidths ? colWidths[index + extraCount] : data.width;\n return (\n <col\n key={index}\n style={{width: typeof width === 'number' ? width + 'px' : width}}\n className={\n data.className ? cx(`Table-colgroup-${data.className}`) : ''\n }\n ></col>\n );\n })}\n </colgroup>\n );\n }\n\n onResizeMouseDown(event: React.MouseEvent<any>, key: string) {\n // 点击记录起始坐标\n this.resizeStart = event.clientX;\n // 记录点击的列名\n this.resizeKey = key;\n event && event.stopPropagation();\n }\n\n onResizeMouseUp(event: React.MouseEvent<any>) {\n // 点击了调整列宽\n if (this.resizeStart && this.resizeKey) {\n // 计算横向移动距离\n const distance = event.clientX - this.resizeStart;\n const tdColumns = [...this.tdColumns];\n let index =\n tdColumns.findIndex(c => c.key === this.resizeKey) +\n this.getExtraColumnCount();\n\n const colGroup =\n this.tableDom.current?.getElementsByTagName('colgroup')[0];\n let currentWidth = 0;\n if (colGroup && colGroup.children[index]) {\n const child = colGroup.children[index] as HTMLElement;\n currentWidth = child.offsetWidth;\n }\n\n let newWidth = 0;\n if (colGroup) {\n let maxDistance = 0; // 最多可以移动的距离\n // 调宽列\n if (distance > 0) {\n for (let i = 0; i < colGroup.children.length; i++) {\n const child = colGroup.children[i] as HTMLElement;\n // 自适应列 保证有一个最小宽度\n // 如果都设置了固定宽度 那一个都拖不动\n if (!this.tdColumns[i].width) {\n maxDistance += child.offsetWidth - DefaultCellWidth;\n }\n }\n if (colGroup.children[index]) {\n const child = colGroup.children[index] as HTMLElement;\n newWidth = currentWidth + Math.min(distance, maxDistance);\n child.style.width = newWidth + 'px';\n }\n } else {\n // 缩短列\n const autoColumns = [];\n for (let i = 0; i < colGroup.children.length; i++) {\n const child = colGroup.children[i] as HTMLElement;\n // 自适应列 保证有一个最小宽度\n // 如果都设置了固定宽度 那一个都拖不动\n if (!this.tdColumns[i].width) {\n autoColumns.push(child);\n }\n }\n maxDistance = DefaultCellWidth - currentWidth;\n if (colGroup.children[index]) {\n const child = colGroup.children[index] as HTMLElement;\n newWidth = currentWidth + Math.max(distance, maxDistance);\n child.style.width = newWidth + 'px';\n }\n const gap =\n Math.abs(Math.max(distance, maxDistance)) / autoColumns.length;\n autoColumns.forEach(c => {\n c.style.width = c.offsetWidth + gap + 'px';\n });\n }\n }\n\n const column = find(tdColumns, c => c.key === this.resizeKey);\n // 只有通过配置设置过的宽度保存到tdColumns\n // 自动分配的不保存\n // 这样可以一直调整了\n if (column && column.width && newWidth) {\n column.width = newWidth;\n }\n\n this.tdColumns = tdColumns;\n\n this.resizeStart = 0;\n this.resizeKey = '';\n }\n event && event.stopPropagation();\n }\n\n renderTHead() {\n const {\n rowSelection,\n dataSource,\n classnames: cx,\n onSort,\n expandable,\n draggable,\n resizable,\n onSelectAll,\n onFilter\n } = this.props;\n\n const thColumns = this.thColumns;\n // 获取一行最多th个数\n let maxCount = 0;\n thColumns.forEach(columns => {\n if (columns.length > maxCount) {\n maxCount = columns.length;\n }\n });\n const keyField = this.getRowSelectionKeyField();\n const dataList =\n rowSelection && rowSelection.getCheckboxProps\n ? this.state.dataSource.filter((data, index) => {\n const props = rowSelection.getCheckboxProps(data, index);\n return !props.disabled;\n })\n : this.state.dataSource;\n\n const isExpandable = this.isExpandableTable();\n\n let allRowKeys: Array<string> = [];\n let allRows: Array<any> = [];\n dataList.forEach(data => {\n allRowKeys.push(data[keyField]);\n allRows.push(data);\n if (!expandable && this.hasChildrenRow(data)) {\n allRowKeys = [...allRowKeys, ...this.getDataChildrenKeys(data)];\n data[this.getChildrenColumnName()].forEach((item: any) =>\n allRows.push(item)\n );\n }\n });\n\n return (\n <thead ref={this.theadDom} className={cx('Table-thead')}>\n {thColumns.map((data, index) => {\n return (\n <tr key={'th-cell-' + index}>\n {draggable && index === 0 ? (\n <Cell\n wrapperComponent=\"th\"\n rowSpan={thColumns.length}\n className={cx('Table-dragCell')}\n ></Cell>\n ) : null}\n {!draggable && rowSelection && index === 0 ? (\n <Cell\n wrapperComponent=\"th\"\n rowSpan={thColumns.length}\n fixed={rowSelection.fixed ? 'left' : ''}\n className={cx('Table-checkCell')}\n >\n {rowSelection.type !== 'radio'\n ? [\n <CheckBox\n key=\"checkAll\"\n partial={\n this.state.selectedRowKeys.length > 0 &&\n this.state.selectedRowKeys.length <\n allRowKeys.length\n }\n checked={this.state.selectedRowKeys.length > 0}\n onChange={async value => {\n let changeRows;\n if (value) {\n changeRows = dataList.filter(\n data => !this.hasCheckedRows(data)\n );\n } else {\n changeRows = this.selectedRows;\n }\n const selectedRows = value ? allRows : [];\n const selectedRowKeys = value ? allRowKeys : [];\n if (onSelectAll) {\n const prevented = await onSelectAll(\n selectedRows,\n value ? [] : selectedRows,\n changeRows\n );\n if (prevented) {\n return;\n }\n }\n\n this.setState({selectedRowKeys});\n }}\n ></CheckBox>,\n rowSelection.selections &&\n rowSelection.selections.length > 0 ? (\n <HeadCellSelect\n key=\"checkSelection\"\n keys={allRowKeys}\n selections={rowSelection.selections}\n popOverContainer={this.getPopOverContainer}\n ></HeadCellSelect>\n ) : null\n ]\n : null}\n </Cell>\n ) : null}\n {!draggable && isExpandable && index === 0 ? (\n <Cell\n wrapperComponent=\"th\"\n rowSpan={thColumns.length}\n fixed={expandable && expandable.fixed ? 'left' : ''}\n className={cx('Table-row-expand-icon-cell')}\n ></Cell>\n ) : null}\n {data.map((item, i) => {\n let sort = null;\n if (item.sorter) {\n sort = (\n <HeadCellSort\n column={item}\n onSort={\n onSort\n ? onSort\n : (payload: SortProps) => {\n if (typeof item.sorter === 'function') {\n if (payload.orderBy) {\n const sortList = [...this.state.dataSource];\n this.setState({\n dataSource: sortList.sort(\n item.sorter as (a: any, b: any) => number\n )\n });\n } else {\n this.setState({dataSource: [...dataSource]});\n }\n }\n }\n }\n ></HeadCellSort>\n );\n }\n\n let filter = null;\n if (item.filterDropdown) {\n filter = item.filterDropdown;\n } else if (item.filters && item.filters.length > 0) {\n filter = (\n <HeadCellFilter\n column={item}\n popOverContainer={this.getPopOverContainer}\n onFilter={onFilter}\n ></HeadCellFilter>\n );\n }\n\n const children = (\n <span>\n {sort}\n {filter}\n {resizable ? (\n <i\n className={cx('Table-thead-resizable')}\n onMouseDown={e => this.onResizeMouseDown(e, item.key)}\n ></i>\n ) : null}\n </span>\n );\n\n return (\n <Cell\n wrapperComponent=\"th\"\n rowSpan={item.rowSpan}\n colSpan={item.colSpan}\n key={`cell-${i}`}\n fixed={item.fixed === true ? 'left' : item.fixed}\n className={cx({\n 'Table-cell-last':\n i === maxCount - 1 && i === data.length - 1\n })}\n groupId={item.groupId}\n depth={item.depth}\n >\n {typeof item.title === 'function'\n ? item.title(children)\n : item.title}\n </Cell>\n );\n })}\n </tr>\n );\n })}\n </thead>\n );\n }\n\n async onRowClick(event: React.ChangeEvent<any>, record?: any, rowIndex?: number) {\n const {rowSelection, onRow} = this.props;\n\n if (onRow && onRow.onRowClick) {\n const prevented = await onRow.onRowClick(event, record, rowIndex);\n if (prevented) {\n return;\n }\n }\n\n if (rowSelection && rowSelection.type && rowSelection.rowClick) {\n const defaultKey = this.getRowSelectionKeyField();\n\n const isSelected = !!find(\n this.state.selectedRowKeys,\n key => key === record[defaultKey]\n );\n\n this.selectedSingleRow(!isSelected, record);\n }\n }\n\n onRowMouseEnter(\n event: React.ChangeEvent<any>,\n record?: any,\n rowIndex?: number\n ) {\n const {classnames: cx, onRow} = this.props;\n\n let parent = event.target;\n while (parent && parent.tagName !== 'TR') {\n parent = parent.parentElement;\n }\n\n if (parent && !parent.classList.contains(cx('Table-row-disabled'))) {\n for (let i = 0; i < parent.children.length; i++) {\n const td = parent.children[i];\n td.classList.add(cx('Table-cell-row-hover')); // 保证有列fixed的时候样式一致\n }\n }\n\n if (record) {\n let target = event.target;\n if (target.tagName !== 'TR') {\n target = target.closest('tr');\n }\n\n this.setState({hoverRow: {target, rowIndex, record}}, () => {\n if (onRow) {\n onRow.onRowMouseEnter && onRow.onRowMouseEnter(event, record, rowIndex);\n }\n });\n }\n }\n\n onRowMouseLeave(\n event: React.ChangeEvent<any>,\n record?: any,\n rowIndex?: number\n ) {\n const {classnames: cx, onRow} = this.props;\n\n let parent = event.target;\n while (parent && parent.tagName !== 'TR') {\n parent = parent.parentElement;\n }\n\n if (parent) {\n for (let i = 0; i < parent.children.length; i++) {\n const td = parent.children[i];\n td.classList.remove(cx('Table-cell-row-hover'));\n }\n }\n\n if (record) {\n if (onRow) {\n onRow.onRowMouseLeave && onRow.onRowMouseLeave(event, record, rowIndex);\n }\n }\n }\n\n onMouseLeave(event: React.ChangeEvent<any>) {\n this.setState({hoverRow: null});\n }\n\n onExpandRow(data: any) {\n const {expandedRowKeys} = this.state;\n const {expandable} = this.props;\n const key = data[this.getExpandableKeyField()];\n this.setState({expandedRowKeys: [...expandedRowKeys, key]});\n expandable?.onExpand && expandable?.onExpand(true, data);\n }\n\n onCollapseRow(data: any) {\n const {expandedRowKeys} = this.state;\n const {expandable} = this.props;\n const key = data[this.getExpandableKeyField()];\n // 还是得模糊匹配 否则'3'、3匹配不上\n this.setState({expandedRowKeys: expandedRowKeys.filter(k => k != key)});\n expandable?.onExpand && expandable?.onExpand(false, data);\n }\n\n getChildrenColumnName() {\n const {childrenColumnName} = this.props;\n\n return childrenColumnName || 'children';\n }\n\n getRowSelectionKeyField() {\n const {rowSelection} = this.props;\n\n return rowSelection ? rowSelection.keyField || 'key' : '';\n }\n\n getExpandableKeyField() {\n const {expandable, keyField} = this.props;\n\n return expandable?.keyField || keyField || 'key';\n }\n\n hasChildrenRow(data: any) {\n const key = this.getChildrenColumnName();\n return data[key] && Array.isArray(data[key]) && data[key].length > 0;\n }\n\n // 展开和嵌套不能共存\n isExpandableRow(data: any, rowIndex: number) {\n const {expandable} = this.props;\n\n return (\n expandable &&\n expandable.rowExpandable &&\n expandable.rowExpandable(data, rowIndex)\n );\n }\n\n // 获取当前行数据所有子行的key值\n getDataChildrenKeys(data: any) {\n let keys: Array<string> = [];\n\n if (this.hasChildrenRow(data)) {\n const key = this.getChildrenColumnName();\n data[key].forEach(\n (item: any) =>\n (keys = [\n ...keys,\n ...this.getDataChildrenKeys(item),\n item[this.getRowSelectionKeyField()]\n ])\n );\n }\n\n return keys;\n }\n\n hasCheckedRows(data: any) {\n const selectedRowKeys = this.state.selectedRowKeys;\n const childrenKeys = this.getDataChildrenKeys(data);\n\n return (\n intersection(selectedRowKeys, [\n ...childrenKeys,\n data[this.getRowSelectionKeyField()]\n ]).length > 0\n );\n }\n\n hasCheckedChildrenRows(data: any) {\n const selectedRowKeys = this.state.selectedRowKeys;\n const childrenKeys = this.getDataChildrenKeys(data);\n const length = intersection(selectedRowKeys, childrenKeys).length;\n\n return length > 0;\n }\n\n getExpandedIcons(isExpanded: boolean, record: any) {\n const {classnames: cx} = this.props;\n\n return isExpanded ? (\n <i\n className={cx('Table-expandBtn', 'is-active')}\n onClick={this.onCollapseRow.bind(this, record)}\n >\n <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n </i>\n ) : (\n <i\n className={cx('Table-expandBtn')}\n onClick={this.onExpandRow.bind(this, record)}\n >\n <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n </i>\n );\n }\n\n async selectedSingleRow(value: boolean, data: any) {\n const {rowSelection, onSelect} = this.props;\n\n const defaultKey = this.getRowSelectionKeyField();\n const isRadio = rowSelection && rowSelection.type === 'radio';\n\n let selectedRowKeys = [];\n if (value) {\n if (isRadio) {\n selectedRowKeys = [data[defaultKey]];\n } else {\n selectedRowKeys = [\n ...this.state.selectedRowKeys,\n data[defaultKey],\n ...this.getDataChildrenKeys(data)\n ].filter((key, i, a) => a.indexOf(key) === i)\n }\n } else {\n if (!isRadio) {\n selectedRowKeys = this.state.selectedRowKeys.filter(\n key =>\n ![data[defaultKey], ...this.getDataChildrenKeys(data)].includes(\n key\n )\n )\n }\n }\n\n if (onSelect) {\n const selectedResult = this.getSelectedRows(this.state.dataSource, selectedRowKeys);\n const prevented = await onSelect(\n selectedResult.selectedRows,\n selectedRowKeys,\n selectedResult.unSelectedRows\n );\n if (prevented) {\n return;\n }\n }\n\n this.setState({selectedRowKeys});\n }\n\n renderRow(data: any, rowIndex: number, levels: Array<number>) {\n const {\n classnames: cx,\n rowSelection,\n expandable,\n draggable,\n indentSize,\n rowClassName,\n keyField,\n lineHeight // 是否设置了固定行高\n } = this.props;\n\n const tdColumns = this.tdColumns;\n const isExpandable = this.isExpandableTable();\n const defaultKey = this.getRowSelectionKeyField();\n const colCount = this.getExtraColumnCount();\n\n // 当前行是否可展开\n const isExpandableRow = this.isExpandableRow(data, rowIndex);\n // 当前行是否有children\n const hasChildrenRow = this.hasChildrenRow(data);\n\n const isExpanded = !!find(\n this.state.expandedRowKeys,\n key => key == data[this.getExpandableKeyField()]\n ); // == 匹配 否则'3'、3匹配不上\n\n // 设置缩进效果\n const indentDom =\n levels.length > 0 ? (\n <span\n className={cx('Table-row-indent', `indent-level-${levels.length}`)}\n style={levels.length > 0\n ? {paddingLeft: (indentSize * levels.length) + 'px'} : {}}\n ></span>\n ) : null;\n\n const cells = tdColumns.map((item, i) => {\n const render =\n item.render && typeof item.render === 'function'\n ? item.render(data[item.key], data, rowIndex, i)\n : null;\n let props = {rowSpan: 1, colSpan: 1};\n let children = render;\n if (render && isObject(render)) {\n props = render.props;\n children = render.children;\n // 如果合并行 且有展开行,那么合并行不生效\n if (props.rowSpan > 1 && isExpandableRow && hasChildrenRow) {\n props.rowSpan === 1;\n }\n }\n\n const className = typeof item.className === 'function'\n ? item.className(data, rowIndex) : ''\n return props.rowSpan === 0 || props.colSpan === 0 ? null : (\n <Cell\n key={i}\n {...props}\n fixed={item.fixed === true ? 'left' : item.fixed}\n column={item}\n groupId={item.groupId}\n className={cx({\n [`${className}`]: !!className\n })}\n >\n <div className={cx('Table-cell-wrapper', {\n [cx('Table-cell-wrapper-prefix')]:\n i === 0 &&\n (!!indentDom || levels.length === 0 && hasChildrenRow),\n [cx(`Table-cell-height-${lineHeight}`)]: !!lineHeight\n })}>\n {i === 0 && levels.length > 0 ? indentDom : null}\n {i === 0 && hasChildrenRow\n ? this.getExpandedIcons(isExpanded, data)\n : null}\n {render ? children : data[item.key]}\n </div>\n </Cell>\n );\n });\n\n const rowClassNameClass =\n rowClassName && typeof rowClassName === 'function'\n ? rowClassName(data, rowIndex)\n : '';\n\n // 可展开和嵌套不能同时支持\n // 设置了expandable 数据源里有children也就不生效了\n // 拖拽排序 可选、可展开都先不支持了,可以支持嵌套展示\n const checkboxProps =\n rowSelection && rowSelection.getCheckboxProps\n ? rowSelection.getCheckboxProps(data, rowIndex)\n : {};\n\n const expandedRowClassName =\n expandable &&\n expandable.expandedRowClassName &&\n typeof expandable.expandedRowClassName === 'function'\n ? expandable.expandedRowClassName(data, rowIndex)\n : '';\n const dataKey = this.getChildrenColumnName();\n\n const children =\n !draggable && isExpandableRow && isExpanded ? (\n <tr\n key=\"expanded\"\n className={cx('Table-expanded-row', expandedRowClassName)}\n >\n <Cell colSpan={tdColumns.length + colCount}>\n {expandable &&\n expandable.expandedRowRender &&\n typeof expandable.expandedRowRender === 'function'\n ? expandable.expandedRowRender(data, rowIndex)\n : null}\n </Cell>\n </tr>\n ) : this.hasChildrenRow(data) && isExpanded ? (\n data[dataKey].map((item: any, index: number) => {\n return this.renderRow(item, index, [...levels, rowIndex]);\n })\n ) : null;\n\n const isChecked = !!find(\n this.state.selectedRowKeys,\n key => key === data[defaultKey]\n );\n const hasChildrenChecked = this.hasCheckedChildrenRows(data);\n const isRadio = rowSelection && rowSelection.type === 'radio';\n\n return [\n <tr\n key={`${data[keyField || 'key'] || rowIndex}`} // 可能会拖拽排序,就不能用rowIndex作为key了,否则显示会有问题\n row-index={rowIndex}\n row-levels={levels.join(',')}\n className={cx(\n 'Table-row',\n `Table-row-level-${levels.length}`,\n rowClassNameClass,\n {\n 'Table-row-disabled': !!checkboxProps.disabled\n }\n )}\n onMouseEnter={e => this.onRowMouseEnter(e, data, rowIndex)}\n onMouseLeave={e => this.onRowMouseLeave(e, data, rowIndex)}\n onClick={e => this.onRowClick(e, data, rowIndex)}\n >\n {draggable ? (\n <Cell className={cx('Table-dragCell')}>\n <Icon icon=\"drag-bar\" className=\"icon\"></Icon>\n </Cell>\n ) : null}\n {!draggable && rowSelection ? (\n <Cell\n fixed={rowSelection.fixed ? 'left' : ''}\n className={cx('Table-checkCell')}\n >\n <CheckBox\n name={'Table-checkbox'}\n type={rowSelection.type || 'checkbox'}\n partial={!isRadio && hasChildrenChecked && !isChecked}\n checked={isRadio ? isChecked : (hasChildrenChecked || isChecked)}\n onChange={(value, shift) => {\n if (!(rowSelection && rowSelection.rowClick)) {\n this.selectedSingleRow(value, data);\n }\n\n event && event.stopPropagation();\n }}\n {...checkboxProps}\n ></CheckBox>\n </Cell>\n ) : null}\n {!draggable && isExpandable ? (\n <Cell\n fixed={expandable && expandable.fixed ? 'left' : ''}\n className={cx('Table-cell-expand-icon-cell')}\n >\n {isExpandableRow || hasChildrenRow\n ? this.getExpandedIcons(isExpanded, data)\n : null}\n </Cell>\n ) : null}\n {cells}\n </tr>,\n children\n ];\n }\n\n renderTBody() {\n const {\n classnames: cx,\n headSummary,\n scroll,\n placeholder,\n sticky\n } = this.props;\n\n const tdColumns = this.tdColumns;\n const hasScrollY = scroll && scroll.y;\n const colCount = this.getExtraColumnCount();\n return (\n <tbody ref={this.tbodyDom} className={cx('Table-tbody')}>\n {!hasScrollY && !sticky && headSummary\n ? this.renderSummaryRow(headSummary)\n : null}\n {!this.state.dataSource.length ? (\n <tr className={cx('Table-row', 'Table-empty-row')}>\n <Cell colSpan={tdColumns.length + colCount}>\n <div className={cx('Table-empty')}>\n {typeof placeholder === 'function'\n ? placeholder()\n : placeholder}\n </div>\n </Cell>\n </tr>\n ) : (\n this.state.dataSource.map((data, index) => this.renderRow(data, index, []))\n )}\n </tbody>\n );\n }\n\n isExpandableTable() {\n const {expandable} = this.props;\n\n // 设置了expandable 优先级更高\n // 就不支持默认嵌套了\n return !!expandable;\n }\n\n isNestedTable() {\n const {dataSource} = this.props;\n return !!find(dataSource, item => this.hasChildrenRow(item));\n }\n\n getExtraColumnCount() {\n const {draggable, rowSelection} = this.props;\n\n let count = 0;\n if (draggable) {\n count++;\n } else {\n if (this.isExpandableTable()) {\n count++;\n }\n if (rowSelection) {\n count++;\n }\n }\n\n return count;\n }\n\n renderSummaryRow(summary: any) {\n const {classnames: cx, dataSource} = this.props;\n const cells: Array<React.ReactNode> = [];\n const trs: Array<React.ReactNode> = [];\n let colCount = this.getExtraColumnCount();\n\n Array.isArray(summary)\n ? summary.forEach((s, index) => {\n Array.isArray(s)\n ? trs.push(\n <tr\n onMouseEnter={e => this.onRowMouseEnter(e)}\n onMouseLeave={e => this.onRowMouseLeave(e)}\n key={'summary-tr-' + index}\n className={cx('Table-summary-row')}\n >\n {s.map((d, i) => {\n // 将操作列自动添加到第一列,用户的colSpan只需要关心实际的列数\n const colSpan =\n i === 0 ? (d.colSpan || 1) + colCount : d.colSpan;\n return (\n <Cell\n key={'summary-tr-cell-' + i}\n fixed={d.fixed}\n colSpan={colSpan}\n >\n {typeof d.render === 'function'\n ? d.render(dataSource)\n : d.render}\n </Cell>\n );\n })}\n </tr>\n )\n : cells.push(\n <Cell\n key={'summary-cell-' + index}\n fixed={s.fixed}\n colSpan={\n cells.length === 0 ? (s.colSpan || 1) + colCount : s.colSpan\n }\n >\n {typeof s.render === 'function'\n ? s.render(dataSource)\n : s.render}\n </Cell>\n );\n })\n : null;\n\n return summary\n ? typeof summary === 'function'\n ? summary(dataSource)\n : [\n cells.length > 0 ? (\n <tr\n onMouseEnter={e => this.onRowMouseEnter(e)}\n onMouseLeave={e => this.onRowMouseLeave(e)}\n key=\"summary-row\"\n className={cx('Table-summary-row')}\n >\n {cells}\n </tr>\n ) : null,\n ...trs\n ]\n : null;\n }\n\n renderTFoot() {\n const {classnames: cx, footSummary} = this.props;\n return (\n <tfoot ref={this.tfootDom} className={cx('Table-summary')}>\n {this.renderSummaryRow(footSummary)}\n </tfoot>\n );\n }\n\n updateTableDom(dom: HTMLElement) {\n const {classnames: cx} = this.props;\n const {scrollLeft, scrollWidth, offsetWidth} = dom;\n const table = this.tableDom.current;\n\n const leftCalss = cx('Table-ping-left');\n if (scrollLeft > 0) {\n table?.classList.add(leftCalss);\n } else {\n table?.classList.remove(leftCalss);\n }\n\n const rightClass = cx('Table-ping-right');\n if (scrollLeft + offsetWidth < scrollWidth) {\n table?.classList.add(rightClass);\n } else {\n table?.classList.remove(rightClass);\n }\n }\n\n onTableContentScroll(event: React.ChangeEvent<any>) {\n this.updateTableDom(event.target);\n }\n\n onWheel(event: WheelEvent) {\n const {currentTarget, deltaX} =\n event as unknown as React.WheelEvent<HTMLDivElement>;\n if (deltaX) {\n this.onTableScroll({\n target: currentTarget,\n scrollLeft: currentTarget.scrollLeft + deltaX\n });\n\n event.preventDefault();\n }\n }\n\n onTableScroll(event: {target: HTMLDivElement; scrollLeft?: number}) {\n const scrollDomRefs = [this.headerDom, this.bodyDom, this.footDom];\n\n const {target, scrollLeft} = event;\n\n scrollDomRefs.forEach(ref => {\n const current = ref && ref.current;\n if (current && current !== target) {\n current.scrollLeft = scrollLeft || target.scrollLeft;\n }\n });\n\n this.updateTableDom(target);\n }\n\n renderLoading() {\n const {classnames: cx, loading} = this.props;\n return (\n <div className={cx('Table-loading')}>\n {typeof loading === 'boolean' ? <Spinner></Spinner> : loading}\n </div>\n );\n }\n\n renderTable() {\n const {\n scroll,\n footSummary,\n loading,\n showHeader,\n itemActions,\n classnames: cx\n } = this.props;\n\n // 设置了横向滚动轴 则table的table-layout为fixed\n const hasScrollX = scroll && scroll.x;\n const hoverRow = this.state.hoverRow;\n\n return (\n <div\n ref={this.contentDom}\n className={cx('Table-content')}\n style={hasScrollX ? {overflow: 'auto hidden'} : {}}\n onMouseLeave={this.onMouseLeave.bind(this)}\n >\n {itemActions && hoverRow\n ? <ItemActionsWrapper\n dom={hoverRow.target}\n classnames={cx}>\n {typeof itemActions === 'function'\n ? itemActions(hoverRow.record, hoverRow.rowIndex) : null}\n </ItemActionsWrapper> : null}\n <table\n style={\n hasScrollX\n ? {width: scroll.x + 'px', tableLayout: 'fixed'}\n : {tableLayout: 'auto'}\n }\n className={cx('Table-table')}\n >\n {this.renderColGroup()}\n {showHeader ? this.renderTHead() : null}\n {!loading ? this.renderTBody() : null}\n {!loading && footSummary ? this.renderTFoot() : null}\n </table>\n {loading ? this.renderLoading() : null}\n </div>\n );\n }\n\n renderScrollTableHeader() {\n const {\n scroll,\n headSummary,\n sticky,\n showHeader,\n classnames: cx\n } = this.props;\n\n const style = {overflow: 'hidden'};\n if (!!sticky) {\n Object.assign(style, {top: 0});\n }\n\n const tableStyle = {};\n if (scroll && (scroll.y || scroll.x)) {\n Object.assign(tableStyle, {\n width: scroll && scroll.x ? scroll.x + 'px' : '100%',\n tableLayout: 'fixed'\n });\n }\n\n return (\n <div\n ref={this.headerDom}\n className={cx('Table-header', {\n [cx('Table-sticky-holder')]: !!sticky\n })}\n style={style}\n >\n <table className={cx('Table-table')} style={tableStyle}>\n {this.renderColGroup(this.state.colWidths)}\n {showHeader ? this.renderTHead() : null}\n {headSummary ? (\n <tbody>{this.renderSummaryRow(headSummary)}</tbody>\n ) : null}\n </table>\n </div>\n );\n }\n\n renderScrollTableBody() {\n const {\n scroll,\n itemActions,\n classnames: cx\n } = this.props;\n\n const style = {};\n const tableStyle = {};\n if (scroll && (scroll.y || scroll.x)) {\n Object.assign(style, {\n overflow: 'auto scroll',\n maxHeight: scroll.y\n });\n\n Object.assign(tableStyle, {\n width: scroll && scroll.x ? scroll.x + 'px' : '100%',\n tableLayout: 'fixed'\n });\n }\n\n const hoverRow = this.state.hoverRow;\n\n return (\n <div\n ref={this.bodyDom}\n className={cx('Table-body')}\n style={style}\n onMouseLeave={this.onMouseLeave.bind(this)}>\n {itemActions && hoverRow\n ? <ItemActionsWrapper\n dom={hoverRow.target}\n classnames={cx}>\n {typeof itemActions === 'function'\n ? itemActions(hoverRow.record, hoverRow.rowIndex) : null}\n </ItemActionsWrapper> : null}\n <table\n className={cx('Table-table')}\n style={tableStyle}>\n {this.renderColGroup()}\n {this.renderTBody()}\n </table>\n </div>\n );\n }\n\n renderScrollTableFoot() {\n const {scroll, classnames: cx} = this.props;\n\n return (\n <div\n ref={this.footDom}\n className={cx('Table-summary')}\n style={{overflow: 'hidden'}}\n >\n <table\n className={cx('Table-table')}\n style={{width: scroll?.x + 'px' || '100%', tableLayout: 'fixed'}}\n >\n {this.renderTFoot()}\n </table>\n </div>\n );\n }\n\n renderScrollTable() {\n const {footSummary, loading, classnames: cx} = this.props;\n\n return (\n <div className={cx('Table-container')}>\n {this.renderScrollTableHeader()}\n {!loading ? this.renderScrollTableBody() : null}\n {!loading && footSummary ? this.renderScrollTableFoot() : null}\n {loading ? this.renderLoading() : null}\n </div>\n );\n }\n\n render() {\n const {\n title,\n footer,\n className,\n scroll,\n size,\n bordered,\n resizable,\n columns,\n sticky,\n classnames: cx\n } = this.props;\n\n // 过滤掉设置了breakpoint属性的列\n const filterColumns = columns.filter(\n item => !item.breakpoint || !isBreakpoint(item.breakpoint)\n );\n\n this.thColumns = [];\n this.tdColumns = [];\n buildColumns(filterColumns, this.thColumns, this.tdColumns);\n\n // 是否设置了纵向滚动\n const hasScrollY = scroll && scroll.y;\n // 是否设置了横向滚动\n const hasScrollX = scroll && scroll.x;\n\n return (\n <div\n ref={this.tableDom}\n className={cx('Table-v2', className, {\n [cx('Table-scroll-horizontal')]: hasScrollX,\n [cx(`Table-${size}`)]: size,\n [cx('Table-bordered')]: bordered,\n [cx('Table-resizable')]: resizable\n })}\n >\n {title ? (\n <div className={cx('Table-title')}>\n {typeof title === 'function' ? title() : title}\n </div>\n ) : null}\n\n {hasScrollY || sticky ? (\n this.renderScrollTable()\n ) : (\n <div className={cx('Table-container')}>{this.renderTable()}</div>\n )}\n\n {footer ? (\n <div className={cx('Table-footer')}>\n {typeof footer === 'function' ? footer() : footer}\n </div>\n ) : null}\n </div>\n );\n }\n}\n\nexport default themeable(localeable(Table));\n"
|
11
|
+
"/**\n * @file Table\n * @author fex\n */\n\nimport React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport findLastIndex from 'lodash/findLastIndex';\nimport find from 'lodash/find';\nimport isEqual from 'lodash/isEqual';\nimport filter from 'lodash/filter';\nimport intersection from 'lodash/intersection';\nimport Sortable from 'sortablejs';\n\nimport {themeable, ClassNamesFn, ThemeProps} from '../../theme';\nimport {localeable, LocaleProps} from '../../locale';\nimport {isObject, isBreakpoint, guid, autobind} from '../../utils/helper';\nimport {Icon} from '../icons';\nimport CheckBox from '../Checkbox';\nimport Spinner from '../Spinner';\n\nimport HeadCellSort from './HeadCellSort';\nimport HeadCellFilter from './HeadCellFilter';\nimport HeadCellSelect from './HeadCellSelect';\nimport ItemActionsWrapper from './ItemActionsWrapper';\nimport Cell from './Cell';\n\nexport interface ColumnProps {\n title: string | React.ReactNode | Function;\n key: string;\n className?: Function;\n children?: Array<ColumnProps>;\n render: Function;\n fixed?: boolean | string;\n width?: number | string;\n sorter?: (a: any, b: any) => number | boolean; // 设置为true时,执行onSort,否则执行前端排序\n sortOrder?: string; // 升序ascend、降序descend\n filters?: Array<any>; // 筛选数据源,配置了数据源才展示\n filterMode?: string; // menu/tree 默认menu 先只支持menu\n filterMultiple?: boolean; // 是否支持多选\n filteredValue?: Array<string>;\n filtered?: boolean;\n filterDropdown?: Function | React.ReactNode; // 列筛选 filterDropdown的优先级更高 和filters两者不能并存\n align?: string; // left/right/center\n breakpoint?: '*' | 'xs' | 'sm' | 'md' | 'lg';\n}\n\nexport interface ThProps extends ColumnProps {\n rowSpan: number;\n colSpan: number;\n groupId: string; // 随机生成表头分组的id\n depth: number; // 表头分组层级\n}\n\nexport interface TdProps extends ColumnProps {\n rowSpan: number;\n colSpan: number;\n groupId: string; // 随机生成表头分组的id\n}\n\nexport interface RowSelectionOptionProps {\n key: string;\n text: string;\n onSelect: Function;\n}\n\nexport interface RowSelectionProps {\n type: string;\n rowClick: boolean; // 点击复选框选中还是点击整行选中\n fixed: boolean; // 只能固定在左边\n selectedRowKeys: Array<string | number>;\n keyField?: string; // 默认是key,可自定义\n columnWidth?: number;\n selections?: Array<RowSelectionOptionProps>;\n onChange?: Function;\n getCheckboxProps: Function;\n}\n\nexport interface ExpandableProps {\n expandedRowKeys?: Array<string | number>;\n keyField: string; // 默认是key,可自定义\n columnWidth?: number;\n rowExpandable: Function;\n defaultExpandedRowKeys?: Array<string | number>;\n onExpand?: Function;\n onExpandedRowsChange?: Function;\n expandedRowRender?: Function;\n expandedRowClassName?: Function;\n expandIcon?: Function;\n fixed?: boolean;\n}\n\nexport interface SummaryProps {\n colSpan: number; // 手动控制列合并 先不支持列合并\n fixed: string | boolean; // 手动设置左固定还是右固定\n render: Function | React.ReactNode;\n}\n\nexport interface OnRowProps {\n onRowMouseEnter?: Function;\n onRowMouseLeave?: Function;\n onRowClick?: Function;\n}\n\nexport interface SortProps {\n orderBy: string;\n order: string;\n}\n\nexport interface TableProps extends ThemeProps, LocaleProps {\n title: string | React.ReactNode | Function;\n footer: string | React.ReactNode | Function;\n className?: string;\n dataSource: Array<any>;\n classnames: ClassNamesFn;\n columns: Array<ColumnProps>;\n scroll?: ScrollProps;\n rowSelection?: RowSelectionProps;\n onSort?: Function;\n expandable?: ExpandableProps;\n bordered?: boolean;\n size?: string; // large | default | small\n headSummary?:\n | Function\n | React.ReactNode\n | Array<SummaryProps | Array<SummaryProps>>;\n footSummary?:\n | Function\n | React.ReactNode\n | Array<SummaryProps | Array<SummaryProps>>;\n draggable?: boolean;\n onDrag?: Function;\n resizable?: boolean; // 列宽调整\n placeholder?: string | React.ReactNode | Function; // 数据为空展示\n loading?: boolean | string | React.ReactNode; // 数据加载中\n sticky?: boolean; // 粘性头部\n onFilter?: Function; // 筛选/过滤函数\n childrenColumnName?: string; // 控制数据源哪一列作为嵌套数据,不想支持,就随便设置一个不存在的值,默认是children\n keyField?: string; // 展开嵌套数据的时候,用哪个字段做唯一标识\n indentSize: number; // 树形展示时 设置缩进值\n onRow?: OnRowProps; // 行操作事件\n rowClassName?: Function;\n lineHeight?: string; // 可设置large、middle固定高度,不设置则跟随内容\n showHeader?: boolean; // 是否展示表头\n onSelect?: Function;\n onSelectAll?: Function;\n itemActions?: Function;\n}\n\nexport interface ScrollProps {\n x: number | string | true;\n y: number | string;\n}\n\nexport interface TableState {\n selectedRowKeys: Array<string | number>;\n dataSource: Array<any>;\n expandedRowKeys: Array<string | number>;\n colWidths: Array<number>;\n hoverRow: {\n rowIndex?: number;\n record: any;\n target: HTMLTableRowElement;\n } | null;\n}\n\nfunction getMaxLevelThRowSpan(columns: Array<ColumnProps>) {\n let maxLevel = 0;\n\n Array.isArray(columns) &&\n columns.forEach(c => {\n const level = getThRowSpan(c);\n if (maxLevel < level) {\n maxLevel = level;\n }\n });\n\n return maxLevel;\n}\n\nfunction getThRowSpan(column: ColumnProps) {\n if (!column.children || (column.children && !column.children.length)) {\n return 1;\n }\n\n return 1 + getMaxLevelThRowSpan(column.children);\n}\n\nfunction getThColSpan(column: ColumnProps) {\n if (!column.children || (column.children && !column.children.length)) {\n return 1;\n }\n\n let childrenLength = 0;\n column.children.forEach(item => (childrenLength += getThColSpan(item)));\n\n return childrenLength;\n}\n\nfunction buildColumns(\n columns: Array<ColumnProps> = [],\n thColumns: Array<Array<any>>,\n tdColumns: Array<ColumnProps> = [],\n depth: number = 0,\n id?: string,\n fixed?: boolean | string\n) {\n const maxLevel = getMaxLevelThRowSpan(columns);\n // 在处理表头时,如果父级column设置了fixed属性,那么所有children保持一致\n Array.isArray(columns) &&\n columns.forEach(column => {\n const groupId = id || guid();\n let childMaxLevel = 0;\n if (column.children) {\n childMaxLevel = getMaxLevelThRowSpan(column.children);\n }\n const newColumn = {\n ...column,\n rowSpan: childMaxLevel ? 1 : maxLevel - childMaxLevel + depth,\n colSpan: getThColSpan(column),\n groupId,\n depth\n };\n const tdColumn = {\n ...column,\n groupId\n };\n if (fixed) {\n newColumn.fixed = fixed;\n tdColumn.fixed = fixed;\n }\n\n if (!thColumns[depth]) {\n thColumns[depth] = [];\n }\n thColumns[depth].push(newColumn);\n if (column.children && column.children.length > 0) {\n buildColumns(\n column.children,\n thColumns,\n tdColumns,\n depth + 1,\n groupId,\n column.fixed\n );\n } else {\n const {children, ...rest} = tdColumn;\n tdColumns.push(rest);\n }\n });\n}\n\nfunction isFixedLeftColumn(fixed: boolean | string | undefined) {\n return fixed === true || fixed === 'left';\n}\n\nfunction isFixedRightColumn(fixed: boolean | string | undefined) {\n return fixed === 'right';\n}\n\nfunction getPreviousLeftWidth(\n doms: HTMLCollection,\n index: number,\n columns: Array<ColumnProps>\n) {\n let width = 0;\n for (let i = 0; i < index; i++) {\n if (columns && columns[i] && isFixedLeftColumn(columns[i].fixed)) {\n const dom = doms[i] as HTMLElement;\n width += dom.offsetWidth;\n }\n }\n return width;\n}\n\nfunction getAfterRightWidth(\n doms: HTMLCollection,\n index: number,\n columns: Array<ColumnProps>\n) {\n let width = 0;\n for (let i = doms.length - 0; i > index; i--) {\n if (columns && columns[i] && isFixedRightColumn(columns[i].fixed)) {\n const dom = doms[i] as HTMLElement;\n width += dom.offsetWidth;\n }\n }\n return width;\n}\n\nfunction hasFixedColumn(columns: Array<ColumnProps>) {\n return find(columns, column => column.fixed);\n}\n\nfunction getSummaryColumns(summary: Array<SummaryProps>) {\n if (!summary) {\n return [];\n }\n const last: Array<SummaryProps> = [];\n const first: Array<SummaryProps> = [];\n summary.forEach(item => {\n if (isObject(item)) {\n first.push(item);\n } else if (Array.isArray(item)) {\n last.push(item);\n }\n });\n return [first, ...last];\n}\n\nconst DefaultCellWidth = 40;\n\nexport class Table extends React.PureComponent<TableProps, TableState> {\n static defaultProps = {\n title: '',\n className: '',\n dataSource: [],\n columns: [],\n indentSize: 15,\n placeholder: '暂无数据',\n showHeader: true\n };\n\n constructor(props: TableProps) {\n super(props);\n\n if (props.rowSelection) {\n const selectedResult = this.getSelectedRows(\n props.dataSource,\n props.rowSelection?.selectedRowKeys\n );\n\n this.selectedRows = selectedResult.selectedRows;\n this.unSelectedRows = selectedResult.unSelectedRows;\n }\n\n this.state = {\n selectedRowKeys: props.rowSelection\n ? props.rowSelection.selectedRowKeys.map(key => key) || []\n : [],\n dataSource: props.dataSource || [], // 为了支持前端搜索\n expandedRowKeys: [\n ...(props.expandable ? props.expandable.expandedRowKeys || [] : []),\n ...(props.expandable\n ? props.expandable.defaultExpandedRowKeys || []\n : [])\n ],\n colWidths: [],\n hoverRow: null\n };\n\n this.getPopOverContainer = this.getPopOverContainer.bind(this);\n }\n\n getPopOverContainer() {\n return findDOMNode(this);\n }\n\n // 表头配置\n thColumns: Array<Array<ThProps>>;\n // 表格配置\n tdColumns: Array<TdProps>;\n // 表格当前选中行\n selectedRows: Array<any>;\n // 表格当前未选中行\n unSelectedRows: Array<any>;\n // 拖拽排序\n sortable: Sortable | null;\n // 记录点击起始横坐标\n resizeStart: number;\n resizeKey: string;\n resizeTarget: HTMLElement | null;\n resizeWidth: number;\n // 可以拖拽的最长距离\n resizeMaxDistance: number;\n\n tableDom: React.RefObject<HTMLDivElement> = React.createRef();\n theadDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n tbodyDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n contentDom: React.RefObject<HTMLDivElement> = React.createRef();\n headerDom: React.RefObject<HTMLDivElement> = React.createRef();\n bodyDom: React.RefObject<HTMLDivElement> = React.createRef();\n tfootDom: React.RefObject<HTMLTableSectionElement> = React.createRef();\n footDom: React.RefObject<HTMLDivElement> = React.createRef();\n\n getColWidths() {\n const childrens = this.tbodyDom.current?.children[0]?.children || [];\n const colWidths: Array<any> = new Array(childrens ? childrens.length : 0);\n\n for (let i = 0; i < childrens.length; i++) {\n const child: any = childrens[i];\n colWidths[i] = child ? child.offsetWidth : null;\n }\n\n return colWidths;\n }\n\n getSelectedRows(\n dataSource: Array<any>,\n selectedRowKeys: Array<string | number>\n ) {\n const selectedRows: Array<any> = [];\n const unSelectedRows: Array<any> = [];\n dataSource.forEach(data => {\n if (\n find(\n selectedRowKeys,\n key => key === data[this.getRowSelectionKeyField()]\n )\n ) {\n selectedRows.push(data);\n } else {\n unSelectedRows.push(data);\n }\n });\n\n return {selectedRows, unSelectedRows};\n }\n\n updateTableBodyFixed() {\n const tbodyDom = this.tbodyDom && (this.tbodyDom.current as HTMLElement);\n const tdColumns = [...this.tdColumns];\n if (!tbodyDom) {\n return;\n }\n this.updateTbodyFixedRow(tbodyDom, tdColumns);\n this.updateHeadSummaryFixedRow(tbodyDom);\n }\n\n updateColWidths() {\n this.setState({colWidths: this.getColWidths()}, () => {\n if (hasFixedColumn(this.props.columns)) {\n const theadDom =\n this.theadDom && (this.theadDom.current as HTMLElement);\n const thColumns = this.thColumns;\n this.updateTheadFixedRow(theadDom, thColumns);\n this.updateTableBodyFixed();\n }\n });\n }\n\n updateTableFixedRows() {\n if (hasFixedColumn(this.props.columns)) {\n const headerDom =\n this.headerDom && (this.headerDom.current as HTMLElement);\n if (headerDom) {\n const headerBody = headerDom.getElementsByTagName('tbody');\n headerBody &&\n headerBody[0] &&\n this.updateHeadSummaryFixedRow(headerBody[0]);\n }\n\n const tfootDom = this.tfootDom && (this.tfootDom.current as HTMLElement);\n tfootDom && this.updateFootSummaryFixedRow(tfootDom);\n }\n }\n\n componentDidMount() {\n if (this.props.loading) {\n return;\n }\n\n this.updateTableFixedRows();\n\n let current = this.contentDom?.current;\n if (this.headerDom?.current) {\n // overflow设置为hidden的情况\n const hiddenDomRefs = [this.headerDom, this.footDom];\n hiddenDomRefs.forEach(\n ref =>\n ref &&\n ref.current &&\n ref.current.addEventListener('wheel', this.onWheel.bind(this))\n );\n }\n current && this.updateTableDom(current);\n\n if (this.props.draggable) {\n this.initDragging();\n }\n\n this.updateStickyHeader();\n\n this.updateColWidths();\n }\n\n componentDidUpdate(prevProps: TableProps, prevState: TableState) {\n // 数据源发生了变化\n if (!isEqual(prevProps.dataSource, this.props.dataSource)) {\n this.setState({dataSource: [...this.props.dataSource]}, () => {\n if (this.props.draggable) {\n if (this.sortable) {\n this.destroyDragging();\n }\n\n this.initDragging();\n }\n\n this.updateTableFixedRows();\n\n this.updateColWidths();\n }); // 异步加载数据需求再更新一次\n }\n\n // 选择项发生了变化触发\n if (!isEqual(prevState.selectedRowKeys, this.state.selectedRowKeys)) {\n // 更新保存的已选择行数据\n const selectedResult = this.getSelectedRows(\n this.state.dataSource,\n this.state.selectedRowKeys\n );\n this.selectedRows = selectedResult.selectedRows;\n this.unSelectedRows = selectedResult.unSelectedRows;\n\n const {rowSelection} = this.props;\n rowSelection &&\n rowSelection.onChange &&\n rowSelection.onChange(this.state.selectedRowKeys, this.selectedRows);\n\n this.setState({\n selectedRowKeys: this.state.selectedRowKeys.filter(\n (key, i, a) => a.indexOf(key) === i\n )\n });\n }\n\n // 外部传入的选择项发生了变化\n if (\n !isEqual(\n prevProps.rowSelection?.selectedRowKeys,\n this.props.rowSelection?.selectedRowKeys\n )\n ) {\n if (this.props.rowSelection) {\n this.setState({\n selectedRowKeys: this.props.rowSelection.selectedRowKeys\n });\n const selectedResult = this.getSelectedRows(\n this.state.dataSource,\n this.state.selectedRowKeys\n );\n this.selectedRows = selectedResult.selectedRows;\n this.unSelectedRows = selectedResult.unSelectedRows;\n }\n }\n\n // 外部传入的展开项发生了变化\n if (\n !isEqual(\n prevProps?.expandable?.expandedRowKeys,\n this.props.expandable?.expandedRowKeys\n )\n ) {\n if (this.props.expandable) {\n this.setState({\n expandedRowKeys: this.props.expandable.expandedRowKeys || []\n });\n }\n }\n\n // 展开行变化时触发\n if (!isEqual(prevState.expandedRowKeys, this.state.expandedRowKeys)) {\n if (this.props.expandable) {\n const {onExpandedRowsChange, keyField} = this.props.expandable;\n const expandedRows: Array<any> = [];\n this.state.dataSource.forEach(item => {\n if (\n find(\n this.state.expandedRowKeys,\n key => key == item[keyField || 'key']\n )\n ) {\n expandedRows.push(item);\n }\n });\n onExpandedRowsChange && onExpandedRowsChange(expandedRows);\n }\n }\n\n // sticky属性发生了变化\n if (prevProps.sticky !== this.props.sticky) {\n this.updateStickyHeader();\n }\n }\n\n componentWillUnmount() {\n const hiddenDomRefs = [this.headerDom, this.footDom];\n hiddenDomRefs.forEach(\n ref =>\n ref &&\n ref.current &&\n ref.current.removeEventListener('wheel', this.onWheel.bind(this))\n );\n\n this.destroyDragging();\n }\n\n initDragging() {\n const {classnames: cx, onDrag} = this.props;\n\n this.sortable = new Sortable(this.tbodyDom.current as HTMLElement, {\n group: 'table',\n animation: 150,\n handle: `.${cx('Table-dragCell')}`,\n ghostClass: 'is-dragging',\n onMove: (e: any) => {\n const dragged = e.dragged;\n const related = e.related;\n\n if (\n related &&\n related.classList.contains(`${cx('Table-summary-row')}`)\n ) {\n return false;\n }\n\n const draggedLevels = dragged.getAttribute('row-levels');\n const relatedLevels = related.getAttribute('row-levels');\n\n // 嵌套展示 不属于同一层的 不允许拖动\n // 否则涉及到试图的更新,比如子元素都被拖完了\n if (draggedLevels !== relatedLevels) {\n return false;\n }\n\n return true;\n },\n onEnd: async (e: any) => {\n // 没有移动\n if (e.newIndex === e.oldIndex) {\n return;\n }\n\n const rowLevels = e.item.getAttribute('row-levels');\n\n onDrag &&\n onDrag(e.oldIndex, e.newIndex, rowLevels ? rowLevels.split(',') : []);\n }\n });\n }\n\n destroyDragging() {\n this.sortable && this.sortable.destroy();\n this.sortable = null;\n }\n\n updateStickyHeader() {\n if (this.props.sticky) {\n // 如果设置了sticky 如果父元素设置了overflow: auto top值还需要考虑padding值\n let parent = this.headerDom?.current?.parentElement;\n setTimeout(() => {\n while (\n parent &&\n window.getComputedStyle(parent, null).getPropertyValue('overflow') !==\n 'auto'\n ) {\n parent = parent.parentElement;\n }\n if (\n parent &&\n window.getComputedStyle(parent, null).getPropertyValue('overflow') ===\n 'auto'\n ) {\n const paddingTop = window\n .getComputedStyle(parent, null)\n .getPropertyValue('padding-top');\n if (paddingTop && this.headerDom && this.headerDom.current) {\n this.headerDom.current.style.top = '-' + paddingTop;\n }\n }\n });\n }\n }\n\n // 更新一个tr下的td的left和class\n updateFixedRow(row: HTMLElement, columns: Array<ColumnProps>) {\n const {classnames: cx} = this.props;\n\n const children = row.children;\n for (let i = 0; i < children.length; i++) {\n const dom = children[i] as HTMLElement;\n const fixed = columns[i] ? columns[i].fixed || '' : '';\n if (isFixedLeftColumn(fixed)) {\n dom.style.left =\n i > 0 ? getPreviousLeftWidth(children, i, columns) + 'px' : '0';\n } else if (isFixedRightColumn(fixed)) {\n dom.style.right =\n i < children.length - 1\n ? getAfterRightWidth(children, i, columns) + 'px'\n : '0';\n }\n }\n // 最后一个左fixed的添加样式\n let leftIndex = findLastIndex(columns, column =>\n isFixedLeftColumn(column.fixed)\n );\n if (leftIndex > -1) {\n children[leftIndex]?.classList.add(cx('Table-cell-fix-left-last'));\n }\n // 第一个右fixed的添加样式\n let rightIndex = columns.findIndex(column =>\n isFixedRightColumn(column.fixed)\n );\n if (rightIndex > -1) {\n children[rightIndex]?.classList.add(cx('Table-cell-fix-right-first'));\n if (rightIndex > 0) {\n children[rightIndex - 1]?.classList.add(\n cx('Table-cell-fix-right-first-prev')\n );\n }\n }\n }\n\n // 在可选、可展开、可拖拽的情况下,补充column,方便fix处理\n prependColumns(columns: Array<any>) {\n const {rowSelection, expandable, draggable} = this.props;\n if (draggable) {\n columns.unshift({});\n } else {\n if (expandable) {\n columns.unshift(expandable);\n }\n if (rowSelection) {\n columns.unshift(rowSelection);\n }\n }\n }\n\n updateTheadFixedRow(thead: HTMLElement, columns: Array<any>) {\n const children = thead.children;\n for (let i = 0; i < children.length; i++) {\n const cols = [...columns[i]];\n if (i === 0) {\n this.prependColumns(cols);\n }\n\n this.updateFixedRow(children[i] as HTMLElement, cols);\n }\n }\n\n updateTbodyFixedRow(tbody: HTMLElement, columns: Array<any>) {\n const {classnames: cx} = this.props;\n const children = filter(\n tbody.children,\n child =>\n !child.classList.contains(cx('Table-summary-row')) &&\n !child.classList.contains(cx('Table-empty-row'))\n );\n this.prependColumns(columns);\n for (let i = 0; i < children.length; i++) {\n this.updateFixedRow(children[i] as HTMLElement, columns);\n }\n }\n\n updateSummaryFixedRow(\n children: HTMLCollection | Array<Element>,\n columns: Array<any>\n ) {\n for (let i = 0; i < children.length; i++) {\n this.updateFixedRow(children[i] as HTMLElement, columns[i]);\n }\n }\n\n updateFootSummaryFixedRow(tfoot: HTMLElement) {\n const {footSummary} = this.props;\n if (Array.isArray(footSummary)) {\n const columns = getSummaryColumns(footSummary as Array<SummaryProps>);\n this.updateSummaryFixedRow(tfoot.children, columns);\n }\n }\n\n updateHeadSummaryFixedRow(tbody: HTMLElement) {\n const {headSummary, classnames: cx} = this.props;\n if (Array.isArray(headSummary)) {\n const columns = getSummaryColumns(headSummary as Array<SummaryProps>);\n const children = filter(tbody.children, child =>\n child.classList.contains(cx('Table-summary-row'))\n );\n this.updateSummaryFixedRow(children, columns);\n }\n }\n\n renderColGroup(colWidths?: Array<number>) {\n const {rowSelection, classnames: cx, expandable, draggable} = this.props;\n\n const tdColumns = this.tdColumns;\n const isExpandable = this.isExpandableTable();\n const extraCount = this.getExtraColumnCount();\n\n return (\n <colgroup>\n {draggable ? (\n <col\n className={cx('Table-drag-col')}\n style={{width: DefaultCellWidth + 'px'}}\n ></col>\n ) : null}\n {!draggable && rowSelection ? (\n <col\n className={cx('Table-selection-col')}\n style={{\n width: (rowSelection.columnWidth || DefaultCellWidth) + 'px'\n }}\n ></col>\n ) : null}\n {!draggable && isExpandable ? (\n <col\n className={cx('Table-expand-col')}\n style={{\n width: (expandable?.columnWidth || DefaultCellWidth) + 'px'\n }}\n ></col>\n ) : null}\n {tdColumns.map((data, index) => {\n const width = colWidths ? colWidths[index + extraCount] : data.width;\n return (\n <col\n key={index}\n style={{width: typeof width === 'number' ? width + 'px' : width}}\n className={\n data.className ? cx(`Table-colgroup-${data.className}`) : ''\n }\n ></col>\n );\n })}\n </colgroup>\n );\n }\n\n onResizeMouseDown(event: any, key: string) {\n // 点击记录起始坐标\n this.resizeStart = event.clientX;\n this.resizeKey = key;\n\n let index =\n this.tdColumns.findIndex(c => c.key === key) + this.getExtraColumnCount();\n\n const colGroup = this.tableDom.current?.getElementsByTagName('colgroup')[0];\n let currentWidth = 0;\n let child = null;\n if (colGroup && colGroup.children[index]) {\n child = colGroup.children[index] as HTMLElement;\n currentWidth = child.offsetWidth;\n }\n this.resizeWidth = currentWidth;\n this.resizeTarget = child;\n\n if (colGroup) {\n let maxDistance = 0;\n for (let i = 0; i < colGroup.children.length; i++) {\n const child = colGroup.children[i] as HTMLElement;\n // 自适应列 保证有一个最小宽度\n // 如果都设置了固定宽度 那一个都拖不动\n if (!this.tdColumns[i].width) {\n maxDistance += child.offsetWidth - DefaultCellWidth;\n }\n }\n this.resizeMaxDistance = maxDistance;\n }\n\n document.addEventListener('mousemove', this.onResizeMouseMove);\n document.addEventListener('mouseup', this.onResizeMouseUp);\n\n event && event.stopPropagation();\n }\n\n @autobind\n onResizeMouseMove(event: any) {\n // 点击了调整列宽\n if (this.resizeStart && this.resizeTarget) {\n // 计算横向移动距离\n const distance = event.clientX - this.resizeStart;\n const tdColumns = [...this.tdColumns];\n\n let newWidth = 0;\n // 调宽列\n if (distance > 0) {\n newWidth =\n this.resizeWidth + Math.min(distance, this.resizeMaxDistance);\n this.resizeTarget.style.width = newWidth + 'px';\n } else {\n // 缩短列\n newWidth = Math.max(this.resizeWidth + distance, DefaultCellWidth);\n this.resizeTarget.style.width = newWidth + 'px';\n }\n\n const column = find(tdColumns, c => c.key === this.resizeKey);\n // 只有通过配置设置过的宽度保存到tdColumns\n // 自动分配的不保存\n // 这样可以一直调整了\n if (column && column.width && newWidth) {\n column.width = newWidth;\n }\n\n this.tdColumns = tdColumns;\n }\n event && event.stopPropagation();\n }\n\n @autobind\n onResizeMouseUp(event: MouseEvent) {\n document.removeEventListener('mousemove', this.onResizeMouseMove);\n document.removeEventListener('mouseup', this.onResizeMouseUp);\n\n this.resizeStart = 0;\n this.resizeKey = '';\n this.resizeWidth = 0;\n this.resizeTarget = null;\n this.resizeMaxDistance = 0;\n }\n\n renderTHead() {\n const {\n rowSelection,\n dataSource,\n classnames: cx,\n onSort,\n expandable,\n draggable,\n resizable,\n onSelectAll,\n onFilter\n } = this.props;\n\n const thColumns = this.thColumns;\n // 获取一行最多th个数\n let maxCount = 0;\n thColumns.forEach(columns => {\n if (columns.length > maxCount) {\n maxCount = columns.length;\n }\n });\n const keyField = this.getRowSelectionKeyField();\n const dataList =\n rowSelection && rowSelection.getCheckboxProps\n ? this.state.dataSource.filter((data, index) => {\n const props = rowSelection.getCheckboxProps(data, index);\n return !props.disabled;\n })\n : this.state.dataSource;\n\n const isExpandable = this.isExpandableTable();\n\n let allRowKeys: Array<string> = [];\n let allRows: Array<any> = [];\n dataList.forEach(data => {\n allRowKeys.push(data[keyField]);\n allRows.push(data);\n if (!expandable && this.hasChildrenRow(data)) {\n allRowKeys = [...allRowKeys, ...this.getDataChildrenKeys(data)];\n data[this.getChildrenColumnName()].forEach((item: any) =>\n allRows.push(item)\n );\n }\n });\n\n return (\n <thead ref={this.theadDom} className={cx('Table-thead')}>\n {thColumns.map((data, index) => {\n return (\n <tr key={'th-cell-' + index}>\n {draggable && index === 0 ? (\n <Cell\n wrapperComponent=\"th\"\n rowSpan={thColumns.length}\n className={cx('Table-dragCell')}\n ></Cell>\n ) : null}\n {!draggable && rowSelection && index === 0 ? (\n <Cell\n wrapperComponent=\"th\"\n rowSpan={thColumns.length}\n fixed={rowSelection.fixed ? 'left' : ''}\n className={cx('Table-checkCell')}\n >\n {rowSelection.type !== 'radio'\n ? [\n <CheckBox\n key=\"checkAll\"\n partial={\n this.state.selectedRowKeys.length > 0 &&\n this.state.selectedRowKeys.length <\n allRowKeys.length\n }\n checked={this.state.selectedRowKeys.length > 0}\n onChange={async value => {\n let changeRows;\n if (value) {\n changeRows = dataList.filter(\n data => !this.hasCheckedRows(data)\n );\n } else {\n changeRows = this.selectedRows;\n }\n const selectedRows = value ? allRows : [];\n const selectedRowKeys = value ? allRowKeys : [];\n if (onSelectAll) {\n const prevented = await onSelectAll(\n selectedRows,\n value ? [] : selectedRows,\n changeRows\n );\n if (prevented) {\n return;\n }\n }\n\n this.setState({selectedRowKeys});\n }}\n ></CheckBox>,\n rowSelection.selections &&\n rowSelection.selections.length > 0 ? (\n <HeadCellSelect\n key=\"checkSelection\"\n keys={allRowKeys}\n selections={rowSelection.selections}\n popOverContainer={this.getPopOverContainer}\n ></HeadCellSelect>\n ) : null\n ]\n : null}\n </Cell>\n ) : null}\n {!draggable && isExpandable && index === 0 ? (\n <Cell\n wrapperComponent=\"th\"\n rowSpan={thColumns.length}\n fixed={expandable && expandable.fixed ? 'left' : ''}\n className={cx('Table-row-expand-icon-cell')}\n ></Cell>\n ) : null}\n {data.map((item, i) => {\n let sort = null;\n if (item.sorter) {\n sort = (\n <HeadCellSort\n column={item}\n onSort={\n onSort\n ? onSort\n : (payload: SortProps) => {\n if (typeof item.sorter === 'function') {\n if (payload.orderBy) {\n const sortList = [...this.state.dataSource];\n this.setState({\n dataSource: sortList.sort(\n item.sorter as (a: any, b: any) => number\n )\n });\n } else {\n this.setState({dataSource: [...dataSource]});\n }\n }\n }\n }\n ></HeadCellSort>\n );\n }\n\n let filter = null;\n if (item.filterDropdown) {\n filter = item.filterDropdown;\n } else if (item.filters && item.filters.length > 0) {\n filter = (\n <HeadCellFilter\n column={item}\n popOverContainer={this.getPopOverContainer}\n onFilter={onFilter}\n ></HeadCellFilter>\n );\n }\n\n const children = (\n <span>\n {sort}\n {filter}\n {resizable ? (\n <i\n className={cx('Table-thead-resizable')}\n onMouseDown={e => this.onResizeMouseDown(e, item.key)}\n ></i>\n ) : null}\n </span>\n );\n\n return (\n <Cell\n wrapperComponent=\"th\"\n rowSpan={item.rowSpan}\n colSpan={item.colSpan}\n key={`cell-${i}`}\n fixed={item.fixed === true ? 'left' : item.fixed}\n className={cx({\n 'Table-cell-last':\n i === maxCount - 1 && i === data.length - 1\n })}\n groupId={item.groupId}\n depth={item.depth}\n >\n {typeof item.title === 'function'\n ? item.title(children)\n : item.title}\n </Cell>\n );\n })}\n </tr>\n );\n })}\n </thead>\n );\n }\n\n async onRowClick(\n event: React.ChangeEvent<any>,\n record?: any,\n rowIndex?: number\n ) {\n const {rowSelection, onRow} = this.props;\n\n if (onRow && onRow.onRowClick) {\n const prevented = await onRow.onRowClick(event, record, rowIndex);\n if (prevented) {\n return;\n }\n }\n\n if (rowSelection && rowSelection.type && rowSelection.rowClick) {\n const defaultKey = this.getRowSelectionKeyField();\n\n const isSelected = !!find(\n this.state.selectedRowKeys,\n key => key === record[defaultKey]\n );\n\n this.selectedSingleRow(!isSelected, record);\n }\n }\n\n onRowMouseEnter(\n event: React.ChangeEvent<any>,\n record?: any,\n rowIndex?: number\n ) {\n const {classnames: cx, onRow} = this.props;\n\n let parent = event.target;\n while (parent && parent.tagName !== 'TR') {\n parent = parent.parentElement;\n }\n\n if (parent && !parent.classList.contains(cx('Table-row-disabled'))) {\n for (let i = 0; i < parent.children.length; i++) {\n const td = parent.children[i];\n td.classList.add(cx('Table-cell-row-hover')); // 保证有列fixed的时候样式一致\n }\n }\n\n if (record) {\n let target = event.target;\n if (target.tagName !== 'TR') {\n target = target.closest('tr');\n }\n\n this.setState({hoverRow: {target, rowIndex, record}}, () => {\n if (onRow) {\n onRow.onRowMouseEnter &&\n onRow.onRowMouseEnter(event, record, rowIndex);\n }\n });\n }\n }\n\n onRowMouseLeave(\n event: React.ChangeEvent<any>,\n record?: any,\n rowIndex?: number\n ) {\n const {classnames: cx, onRow} = this.props;\n\n let parent = event.target;\n while (parent && parent.tagName !== 'TR') {\n parent = parent.parentElement;\n }\n\n if (parent) {\n for (let i = 0; i < parent.children.length; i++) {\n const td = parent.children[i];\n td.classList.remove(cx('Table-cell-row-hover'));\n }\n }\n\n if (record) {\n if (onRow) {\n onRow.onRowMouseLeave && onRow.onRowMouseLeave(event, record, rowIndex);\n }\n }\n }\n\n onMouseLeave(event: React.ChangeEvent<any>) {\n this.setState({hoverRow: null});\n }\n\n onExpandRow(data: any) {\n const {expandedRowKeys} = this.state;\n const {expandable} = this.props;\n const key = data[this.getExpandableKeyField()];\n this.setState({expandedRowKeys: [...expandedRowKeys, key]});\n expandable?.onExpand && expandable?.onExpand(true, data);\n }\n\n onCollapseRow(data: any) {\n const {expandedRowKeys} = this.state;\n const {expandable} = this.props;\n const key = data[this.getExpandableKeyField()];\n // 还是得模糊匹配 否则'3'、3匹配不上\n this.setState({expandedRowKeys: expandedRowKeys.filter(k => k != key)});\n expandable?.onExpand && expandable?.onExpand(false, data);\n }\n\n getChildrenColumnName() {\n const {childrenColumnName} = this.props;\n\n return childrenColumnName || 'children';\n }\n\n getRowSelectionKeyField() {\n const {rowSelection} = this.props;\n\n return rowSelection ? rowSelection.keyField || 'key' : '';\n }\n\n getExpandableKeyField() {\n const {expandable, keyField} = this.props;\n\n return expandable?.keyField || keyField || 'key';\n }\n\n hasChildrenRow(data: any) {\n const key = this.getChildrenColumnName();\n return data[key] && Array.isArray(data[key]) && data[key].length > 0;\n }\n\n // 展开和嵌套不能共存\n isExpandableRow(data: any, rowIndex: number) {\n const {expandable} = this.props;\n\n return (\n expandable &&\n expandable.rowExpandable &&\n expandable.rowExpandable(data, rowIndex)\n );\n }\n\n // 获取当前行数据所有子行的key值\n getDataChildrenKeys(data: any) {\n let keys: Array<string> = [];\n\n if (this.hasChildrenRow(data)) {\n const key = this.getChildrenColumnName();\n data[key].forEach(\n (item: any) =>\n (keys = [\n ...keys,\n ...this.getDataChildrenKeys(item),\n item[this.getRowSelectionKeyField()]\n ])\n );\n }\n\n return keys;\n }\n\n hasCheckedRows(data: any) {\n const selectedRowKeys = this.state.selectedRowKeys;\n const childrenKeys = this.getDataChildrenKeys(data);\n\n return (\n intersection(selectedRowKeys, [\n ...childrenKeys,\n data[this.getRowSelectionKeyField()]\n ]).length > 0\n );\n }\n\n hasCheckedChildrenRows(data: any) {\n const selectedRowKeys = this.state.selectedRowKeys;\n const childrenKeys = this.getDataChildrenKeys(data);\n const length = intersection(selectedRowKeys, childrenKeys).length;\n\n return length > 0;\n }\n\n getExpandedIcons(isExpanded: boolean, record: any) {\n const {classnames: cx} = this.props;\n\n return isExpanded ? (\n <i\n className={cx('Table-expandBtn', 'is-active')}\n onClick={this.onCollapseRow.bind(this, record)}\n >\n <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n </i>\n ) : (\n <i\n className={cx('Table-expandBtn')}\n onClick={this.onExpandRow.bind(this, record)}\n >\n <Icon icon=\"right-arrow-bold\" className=\"icon\" />\n </i>\n );\n }\n\n async selectedSingleRow(value: boolean, data: any) {\n const {rowSelection, onSelect} = this.props;\n\n const defaultKey = this.getRowSelectionKeyField();\n const isRadio = rowSelection && rowSelection.type === 'radio';\n\n let selectedRowKeys = [];\n if (value) {\n if (isRadio) {\n selectedRowKeys = [data[defaultKey]];\n } else {\n selectedRowKeys = [\n ...this.state.selectedRowKeys,\n data[defaultKey],\n ...this.getDataChildrenKeys(data)\n ].filter((key, i, a) => a.indexOf(key) === i);\n }\n } else {\n if (!isRadio) {\n selectedRowKeys = this.state.selectedRowKeys.filter(\n key =>\n ![data[defaultKey], ...this.getDataChildrenKeys(data)].includes(key)\n );\n }\n }\n\n if (onSelect) {\n const selectedResult = this.getSelectedRows(\n this.state.dataSource,\n selectedRowKeys\n );\n const prevented = await onSelect(\n selectedResult.selectedRows,\n selectedRowKeys,\n selectedResult.unSelectedRows\n );\n if (prevented) {\n return;\n }\n }\n\n this.setState({selectedRowKeys});\n }\n\n renderRow(data: any, rowIndex: number, levels: Array<number>) {\n const {\n classnames: cx,\n rowSelection,\n expandable,\n draggable,\n indentSize,\n rowClassName,\n keyField,\n lineHeight // 是否设置了固定行高\n } = this.props;\n\n const tdColumns = this.tdColumns;\n const isExpandable = this.isExpandableTable();\n const defaultKey = this.getRowSelectionKeyField();\n const colCount = this.getExtraColumnCount();\n\n // 当前行是否可展开\n const isExpandableRow = this.isExpandableRow(data, rowIndex);\n // 当前行是否有children\n const hasChildrenRow = this.hasChildrenRow(data);\n\n const isExpanded = !!find(\n this.state.expandedRowKeys,\n key => key == data[this.getExpandableKeyField()]\n ); // == 匹配 否则'3'、3匹配不上\n\n // 设置缩进效果\n const indentDom =\n levels.length > 0 ? (\n <span\n className={cx('Table-row-indent', `indent-level-${levels.length}`)}\n style={\n levels.length > 0\n ? {paddingLeft: indentSize * levels.length + 'px'}\n : {}\n }\n ></span>\n ) : null;\n\n const cells = tdColumns.map((item, i) => {\n const render =\n item.render && typeof item.render === 'function'\n ? item.render(data[item.key], data, rowIndex, i)\n : null;\n let props = {rowSpan: 1, colSpan: 1};\n let children = render;\n if (render && isObject(render)) {\n props = render.props;\n children = render.children;\n // 如果合并行 且有展开行,那么合并行不生效\n if (props.rowSpan > 1 && isExpandableRow && hasChildrenRow) {\n props.rowSpan === 1;\n }\n }\n\n const className =\n typeof item.className === 'function'\n ? item.className(data, rowIndex)\n : '';\n return props.rowSpan === 0 || props.colSpan === 0 ? null : (\n <Cell\n key={i}\n {...props}\n fixed={item.fixed === true ? 'left' : item.fixed}\n column={item}\n groupId={item.groupId}\n className={cx({\n [`${className}`]: !!className\n })}\n >\n <div\n className={cx('Table-cell-wrapper', {\n [cx('Table-cell-wrapper-prefix')]:\n i === 0 &&\n (!!indentDom || (levels.length === 0 && hasChildrenRow)),\n [cx(`Table-cell-height-${lineHeight}`)]: !!lineHeight\n })}\n >\n {i === 0 && levels.length > 0 ? indentDom : null}\n {i === 0 && hasChildrenRow\n ? this.getExpandedIcons(isExpanded, data)\n : null}\n {render ? children : data[item.key]}\n </div>\n </Cell>\n );\n });\n\n const rowClassNameClass =\n rowClassName && typeof rowClassName === 'function'\n ? rowClassName(data, rowIndex)\n : '';\n\n // 可展开和嵌套不能同时支持\n // 设置了expandable 数据源里有children也就不生效了\n // 拖拽排序 可选、可展开都先不支持了,可以支持嵌套展示\n const checkboxProps =\n rowSelection && rowSelection.getCheckboxProps\n ? rowSelection.getCheckboxProps(data, rowIndex)\n : {};\n\n const expandedRowClassName =\n expandable &&\n expandable.expandedRowClassName &&\n typeof expandable.expandedRowClassName === 'function'\n ? expandable.expandedRowClassName(data, rowIndex)\n : '';\n const dataKey = this.getChildrenColumnName();\n\n const children =\n !draggable && isExpandableRow && isExpanded ? (\n <tr\n key=\"expanded\"\n className={cx('Table-expanded-row', expandedRowClassName)}\n >\n <Cell colSpan={tdColumns.length + colCount}>\n {expandable &&\n expandable.expandedRowRender &&\n typeof expandable.expandedRowRender === 'function'\n ? expandable.expandedRowRender(data, rowIndex)\n : null}\n </Cell>\n </tr>\n ) : this.hasChildrenRow(data) && isExpanded ? (\n data[dataKey].map((item: any, index: number) => {\n return this.renderRow(item, index, [...levels, rowIndex]);\n })\n ) : null;\n\n const isChecked = !!find(\n this.state.selectedRowKeys,\n key => key === data[defaultKey]\n );\n const hasChildrenChecked = this.hasCheckedChildrenRows(data);\n const isRadio = rowSelection && rowSelection.type === 'radio';\n\n return [\n <tr\n key={`${data[keyField || 'key'] || rowIndex}`} // 可能会拖拽排序,就不能用rowIndex作为key了,否则显示会有问题\n row-index={rowIndex}\n row-levels={levels.join(',')}\n className={cx(\n 'Table-row',\n `Table-row-level-${levels.length}`,\n rowClassNameClass,\n {\n 'Table-row-disabled': !!checkboxProps.disabled\n }\n )}\n onMouseEnter={e => this.onRowMouseEnter(e, data, rowIndex)}\n onMouseLeave={e => this.onRowMouseLeave(e, data, rowIndex)}\n onClick={e => this.onRowClick(e, data, rowIndex)}\n >\n {draggable ? (\n <Cell className={cx('Table-dragCell')}>\n <Icon icon=\"drag-bar\" className=\"icon\"></Icon>\n </Cell>\n ) : null}\n {!draggable && rowSelection ? (\n <Cell\n fixed={rowSelection.fixed ? 'left' : ''}\n className={cx('Table-checkCell')}\n >\n <CheckBox\n name={'Table-checkbox'}\n type={rowSelection.type || 'checkbox'}\n partial={!isRadio && hasChildrenChecked && !isChecked}\n checked={isRadio ? isChecked : hasChildrenChecked || isChecked}\n onChange={(value, shift) => {\n if (!(rowSelection && rowSelection.rowClick)) {\n this.selectedSingleRow(value, data);\n }\n\n event && event.stopPropagation();\n }}\n {...checkboxProps}\n ></CheckBox>\n </Cell>\n ) : null}\n {!draggable && isExpandable ? (\n <Cell\n fixed={expandable && expandable.fixed ? 'left' : ''}\n className={cx('Table-cell-expand-icon-cell')}\n >\n {isExpandableRow || hasChildrenRow\n ? this.getExpandedIcons(isExpanded, data)\n : null}\n </Cell>\n ) : null}\n {cells}\n </tr>,\n children\n ];\n }\n\n renderTBody() {\n const {\n classnames: cx,\n headSummary,\n scroll,\n placeholder,\n sticky\n } = this.props;\n\n const tdColumns = this.tdColumns;\n const hasScrollY = scroll && scroll.y;\n const colCount = this.getExtraColumnCount();\n return (\n <tbody ref={this.tbodyDom} className={cx('Table-tbody')}>\n {!hasScrollY && !sticky && headSummary\n ? this.renderSummaryRow(headSummary)\n : null}\n {!this.state.dataSource.length ? (\n <tr className={cx('Table-row', 'Table-empty-row')}>\n <Cell colSpan={tdColumns.length + colCount}>\n <div className={cx('Table-empty')}>\n {typeof placeholder === 'function'\n ? placeholder()\n : placeholder}\n </div>\n </Cell>\n </tr>\n ) : (\n this.state.dataSource.map((data, index) =>\n this.renderRow(data, index, [])\n )\n )}\n </tbody>\n );\n }\n\n isExpandableTable() {\n const {expandable} = this.props;\n\n // 设置了expandable 优先级更高\n // 就不支持默认嵌套了\n return !!expandable;\n }\n\n isNestedTable() {\n const {dataSource} = this.props;\n return !!find(dataSource, item => this.hasChildrenRow(item));\n }\n\n getExtraColumnCount() {\n const {draggable, rowSelection} = this.props;\n\n let count = 0;\n if (draggable) {\n count++;\n } else {\n if (this.isExpandableTable()) {\n count++;\n }\n if (rowSelection) {\n count++;\n }\n }\n\n return count;\n }\n\n renderSummaryRow(summary: any) {\n const {classnames: cx, dataSource} = this.props;\n const cells: Array<React.ReactNode> = [];\n const trs: Array<React.ReactNode> = [];\n let colCount = this.getExtraColumnCount();\n\n Array.isArray(summary)\n ? summary.forEach((s, index) => {\n Array.isArray(s)\n ? trs.push(\n <tr\n onMouseEnter={e => this.onRowMouseEnter(e)}\n onMouseLeave={e => this.onRowMouseLeave(e)}\n key={'summary-tr-' + index}\n className={cx('Table-summary-row')}\n >\n {s.map((d, i) => {\n // 将操作列自动添加到第一列,用户的colSpan只需要关心实际的列数\n const colSpan =\n i === 0 ? (d.colSpan || 1) + colCount : d.colSpan;\n return (\n <Cell\n key={'summary-tr-cell-' + i}\n fixed={d.fixed}\n colSpan={colSpan}\n >\n {typeof d.render === 'function'\n ? d.render(dataSource)\n : d.render}\n </Cell>\n );\n })}\n </tr>\n )\n : cells.push(\n <Cell\n key={'summary-cell-' + index}\n fixed={s.fixed}\n colSpan={\n cells.length === 0 ? (s.colSpan || 1) + colCount : s.colSpan\n }\n >\n {typeof s.render === 'function'\n ? s.render(dataSource)\n : s.render}\n </Cell>\n );\n })\n : null;\n\n return summary\n ? typeof summary === 'function'\n ? summary(dataSource)\n : [\n cells.length > 0 ? (\n <tr\n onMouseEnter={e => this.onRowMouseEnter(e)}\n onMouseLeave={e => this.onRowMouseLeave(e)}\n key=\"summary-row\"\n className={cx('Table-summary-row')}\n >\n {cells}\n </tr>\n ) : null,\n ...trs\n ]\n : null;\n }\n\n renderTFoot() {\n const {classnames: cx, footSummary} = this.props;\n return (\n <tfoot ref={this.tfootDom} className={cx('Table-summary')}>\n {this.renderSummaryRow(footSummary)}\n </tfoot>\n );\n }\n\n updateTableDom(dom: HTMLElement) {\n const {classnames: cx} = this.props;\n const {scrollLeft, scrollWidth, offsetWidth} = dom;\n const table = this.tableDom.current;\n\n const leftCalss = cx('Table-ping-left');\n if (scrollLeft > 0) {\n table?.classList.add(leftCalss);\n } else {\n table?.classList.remove(leftCalss);\n }\n\n const rightClass = cx('Table-ping-right');\n if (scrollLeft + offsetWidth < scrollWidth) {\n table?.classList.add(rightClass);\n } else {\n table?.classList.remove(rightClass);\n }\n }\n\n onTableContentScroll(event: React.ChangeEvent<any>) {\n this.updateTableDom(event.target);\n }\n\n onWheel(event: WheelEvent) {\n const {currentTarget, deltaX} =\n event as unknown as React.WheelEvent<HTMLDivElement>;\n\n if (deltaX) {\n this.onTableScroll({\n target: currentTarget,\n scrollLeft: currentTarget.scrollLeft + deltaX\n });\n\n event.preventDefault();\n }\n }\n\n onTableScroll(event: any) {\n const scrollDomRefs = [this.headerDom, this.bodyDom, this.footDom];\n\n const {target, scrollLeft} = event;\n\n scrollDomRefs.forEach(ref => {\n const current = ref && ref.current;\n if (current && current !== target) {\n current.scrollLeft = scrollLeft || target.scrollLeft;\n }\n });\n\n this.updateTableDom(target);\n }\n\n renderLoading() {\n const {classnames: cx, loading} = this.props;\n return (\n <div className={cx('Table-loading')}>\n {typeof loading === 'boolean' ? <Spinner></Spinner> : loading}\n </div>\n );\n }\n\n renderTable() {\n const {\n scroll,\n footSummary,\n loading,\n showHeader,\n itemActions,\n classnames: cx\n } = this.props;\n\n // 设置了横向滚动轴 则table的table-layout为fixed\n const hasScrollX = scroll && scroll.x;\n const hoverRow = this.state.hoverRow;\n\n return (\n <div\n ref={this.contentDom}\n className={cx('Table-content')}\n style={hasScrollX ? {overflow: 'auto hidden'} : {}}\n onMouseLeave={this.onMouseLeave.bind(this)}\n onScroll={this.onTableContentScroll.bind(this)}\n >\n {itemActions && hoverRow ? (\n <ItemActionsWrapper dom={hoverRow.target} classnames={cx}>\n {typeof itemActions === 'function'\n ? itemActions(hoverRow.record, hoverRow.rowIndex)\n : null}\n </ItemActionsWrapper>\n ) : null}\n <table\n style={\n hasScrollX\n ? {width: scroll.x + 'px', tableLayout: 'fixed'}\n : {tableLayout: 'auto'}\n }\n className={cx('Table-table')}\n >\n {this.renderColGroup()}\n {showHeader ? this.renderTHead() : null}\n {!loading ? this.renderTBody() : null}\n {!loading && footSummary ? this.renderTFoot() : null}\n </table>\n {loading ? this.renderLoading() : null}\n </div>\n );\n }\n\n renderScrollTableHeader() {\n const {\n scroll,\n headSummary,\n sticky,\n showHeader,\n classnames: cx\n } = this.props;\n\n const style = {overflow: 'hidden'};\n if (!!sticky) {\n Object.assign(style, {top: 0});\n }\n\n const tableStyle = {};\n if (scroll && (scroll.y || scroll.x)) {\n Object.assign(tableStyle, {\n width: scroll && scroll.x ? scroll.x + 'px' : '100%',\n tableLayout: 'fixed'\n });\n }\n\n return (\n <div\n ref={this.headerDom}\n className={cx('Table-header', {\n [cx('Table-sticky-holder')]: !!sticky\n })}\n style={style}\n >\n <table className={cx('Table-table')} style={tableStyle}>\n {this.renderColGroup(this.state.colWidths)}\n {showHeader ? this.renderTHead() : null}\n {headSummary ? (\n <tbody>{this.renderSummaryRow(headSummary)}</tbody>\n ) : null}\n </table>\n </div>\n );\n }\n\n renderScrollTableBody() {\n const {scroll, itemActions, classnames: cx} = this.props;\n\n const style = {};\n const tableStyle = {};\n if (scroll && (scroll.y || scroll.x)) {\n Object.assign(style, {\n overflow: 'auto scroll',\n maxHeight: scroll.y\n });\n\n Object.assign(tableStyle, {\n width: scroll && scroll.x ? scroll.x + 'px' : '100%',\n tableLayout: 'fixed'\n });\n }\n\n const hoverRow = this.state.hoverRow;\n\n return (\n <div\n ref={this.bodyDom}\n className={cx('Table-body')}\n style={style}\n onMouseLeave={this.onMouseLeave.bind(this)}\n onScroll={this.onTableScroll.bind(this)}\n >\n {itemActions && hoverRow ? (\n <ItemActionsWrapper dom={hoverRow.target} classnames={cx}>\n {typeof itemActions === 'function'\n ? itemActions(hoverRow.record, hoverRow.rowIndex)\n : null}\n </ItemActionsWrapper>\n ) : null}\n <table className={cx('Table-table')} style={tableStyle}>\n {this.renderColGroup()}\n {this.renderTBody()}\n </table>\n </div>\n );\n }\n\n renderScrollTableFoot() {\n const {scroll, classnames: cx} = this.props;\n\n return (\n <div\n ref={this.footDom}\n className={cx('Table-summary')}\n style={{overflow: 'hidden'}}\n >\n <table\n className={cx('Table-table')}\n style={{width: scroll?.x + 'px' || '100%', tableLayout: 'fixed'}}\n >\n {this.renderTFoot()}\n </table>\n </div>\n );\n }\n\n renderScrollTable() {\n const {footSummary, loading, classnames: cx} = this.props;\n\n return (\n <div className={cx('Table-container')}>\n {this.renderScrollTableHeader()}\n {!loading ? this.renderScrollTableBody() : null}\n {!loading && footSummary ? this.renderScrollTableFoot() : null}\n {loading ? this.renderLoading() : null}\n </div>\n );\n }\n\n render() {\n const {\n title,\n footer,\n className,\n scroll,\n size,\n bordered,\n resizable,\n columns,\n sticky,\n classnames: cx\n } = this.props;\n\n // 过滤掉设置了breakpoint属性的列\n const filterColumns = columns.filter(\n item => !item.breakpoint || !isBreakpoint(item.breakpoint)\n );\n\n this.thColumns = [];\n this.tdColumns = [];\n buildColumns(filterColumns, this.thColumns, this.tdColumns);\n\n // 是否设置了纵向滚动\n const hasScrollY = scroll && scroll.y;\n // 是否设置了横向滚动\n const hasScrollX = scroll && scroll.x;\n\n return (\n <div\n ref={this.tableDom}\n className={cx('Table-v2', className, {\n [cx('Table-scroll-horizontal')]: hasScrollX,\n [cx(`Table-${size}`)]: size,\n [cx('Table-bordered')]: bordered,\n [cx('Table-resizable')]: resizable\n })}\n >\n {title ? (\n <div className={cx('Table-title')}>\n {typeof title === 'function' ? title() : title}\n </div>\n ) : null}\n\n {hasScrollY || sticky ? (\n this.renderScrollTable()\n ) : (\n <div className={cx('Table-container')}>{this.renderTable()}</div>\n )}\n\n {footer ? (\n <div className={cx('Table-footer')}>\n {typeof footer === 'function' ? footer() : footer}\n </div>\n ) : null}\n </div>\n );\n }\n}\n\nexport default themeable(localeable(Table));\n"
|
12
12
|
]
|
13
13
|
}
|