@vtx/components 2.5.11 → 2.5.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -6,8 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = ColumnSetting;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
var _popover = _interopRequireDefault(require("antd/
|
|
10
|
-
var
|
|
9
|
+
var _popover = _interopRequireDefault(require("antd/lib/popover"));
|
|
10
|
+
var _divider = _interopRequireDefault(require("antd/lib/divider"));
|
|
11
|
+
var _button = _interopRequireDefault(require("antd/lib/button"));
|
|
12
|
+
var _checkbox = _interopRequireDefault(require("antd/lib/checkbox"));
|
|
11
13
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
14
|
var _useSet3 = _interopRequireDefault(require("../_util/useSet"));
|
|
13
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -35,7 +37,10 @@ function ColumnSetting(props) {
|
|
|
35
37
|
checkedColumnKeys = props.checkedColumnKeys,
|
|
36
38
|
columnSettingOptions = props.columnSettingOptions,
|
|
37
39
|
onChange = props.onChange,
|
|
38
|
-
onReset = props.onReset
|
|
40
|
+
onReset = props.onReset,
|
|
41
|
+
_props$disabledColumn = props.disabledColumnKeys,
|
|
42
|
+
disabledColumnKeys = _props$disabledColumn === void 0 ? [] : _props$disabledColumn,
|
|
43
|
+
onColumnsSave = props.onColumnsSave;
|
|
39
44
|
(0, _react.useEffect)(function () {
|
|
40
45
|
var chkLen = checkedColumnKeys === null || checkedColumnKeys === void 0 ? void 0 : checkedColumnKeys.length;
|
|
41
46
|
var optionLen = columnSettingOptions === null || columnSettingOptions === void 0 ? void 0 : columnSettingOptions.length;
|
|
@@ -66,6 +71,12 @@ function ColumnSetting(props) {
|
|
|
66
71
|
onChange(newCheckedColumnKeys);
|
|
67
72
|
}
|
|
68
73
|
};
|
|
74
|
+
// 保存按钮
|
|
75
|
+
var onSaveChange = function onSaveChange() {
|
|
76
|
+
if (onChange) {
|
|
77
|
+
onColumnsSave(checkedColumnKeys);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
69
80
|
return /*#__PURE__*/_react["default"].createElement(_popover["default"], {
|
|
70
81
|
trigger: "click",
|
|
71
82
|
placement: "bottomRight",
|
|
@@ -91,9 +102,19 @@ function ColumnSetting(props) {
|
|
|
91
102
|
checked: checkedColumnKeys === null || checkedColumnKeys === void 0 ? void 0 : checkedColumnKeys.includes(key),
|
|
92
103
|
onChange: function onChange(e) {
|
|
93
104
|
return onCheckChange(e, key);
|
|
94
|
-
}
|
|
105
|
+
},
|
|
106
|
+
disabled: disabledColumnKeys.includes(key)
|
|
95
107
|
}, opt.title));
|
|
96
|
-
})
|
|
108
|
+
}), typeof onColumnsSave === 'function' ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_divider["default"], {
|
|
109
|
+
style: {
|
|
110
|
+
margin: '5px 0 10px 0'
|
|
111
|
+
}
|
|
112
|
+
}), /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
113
|
+
block: true,
|
|
114
|
+
onClick: function onClick() {
|
|
115
|
+
return onSaveChange();
|
|
116
|
+
}
|
|
117
|
+
}, "\u4FDD\u5B58")) : null)
|
|
97
118
|
}, props.children);
|
|
98
119
|
}
|
|
99
120
|
ColumnSetting.propTypes = {
|
|
@@ -102,6 +123,8 @@ ColumnSetting.propTypes = {
|
|
|
102
123
|
columnSettingOptions: _propTypes["default"].array,
|
|
103
124
|
children: _propTypes["default"].node,
|
|
104
125
|
onChange: _propTypes["default"].func,
|
|
105
|
-
onReset: _propTypes["default"].func
|
|
126
|
+
onReset: _propTypes["default"].func,
|
|
127
|
+
disabledColumnKeys: _propTypes["default"].array,
|
|
128
|
+
onColumnsSave: _propTypes["default"].func
|
|
106
129
|
};
|
|
107
130
|
//# sourceMappingURL=ColumnSetting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSetting.js","names":["ColumnSetting","props","useSet","indeterminate","checkAll","state","setState","prefixCls","checkedColumnKeys","columnSettingOptions","onChange","onReset","useEffect","chkLen","length","optionLen","onCheckChange","e","key","newCheckedColumnKeys","target","checked","filter","item","onCheckAllChange","map","opt","dataIndex","includes","title","children","propTypes","PropTypes","string","array","node","func"],"sources":["vtx-datagrid/ColumnSetting.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport Popover from 'antd/
|
|
1
|
+
{"version":3,"file":"ColumnSetting.js","names":["ColumnSetting","props","useSet","indeterminate","checkAll","state","setState","prefixCls","checkedColumnKeys","columnSettingOptions","onChange","onReset","disabledColumnKeys","onColumnsSave","useEffect","chkLen","length","optionLen","onCheckChange","e","key","newCheckedColumnKeys","target","checked","filter","item","onCheckAllChange","map","onSaveChange","opt","dataIndex","includes","title","margin","children","propTypes","PropTypes","string","array","node","func"],"sources":["vtx-datagrid/ColumnSetting.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport Popover from 'antd/lib/popover';\nimport Divider from 'antd/lib/divider';\nimport Button from 'antd/lib/button';\nimport Checkbox from 'antd/lib/checkbox';\nimport PropTypes from 'prop-types';\n\nimport useSet from '../_util/useSet';\n\nexport default function ColumnSetting(props) {\n const [state, setState] = useSet({\n indeterminate: false,\n checkAll: false,\n });\n const {\n prefixCls,\n checkedColumnKeys,\n columnSettingOptions,\n onChange,\n onReset,\n disabledColumnKeys = [],\n onColumnsSave,\n } = props;\n\n useEffect(() => {\n const chkLen = checkedColumnKeys?.length;\n const optionLen = columnSettingOptions?.length;\n setState({\n checkAll: chkLen == optionLen,\n indeterminate: chkLen && chkLen < optionLen,\n });\n }, [checkedColumnKeys]);\n\n const { indeterminate, checkAll } = state;\n\n // 单选\n const onCheckChange = (e, key) => {\n if (onChange) {\n const newCheckedColumnKeys = e.target.checked\n ? [...checkedColumnKeys, key]\n : checkedColumnKeys?.filter(item => item != key);\n onChange(newCheckedColumnKeys);\n }\n };\n\n // 全选\n const onCheckAllChange = e => {\n if (onChange) {\n const newCheckedColumnKeys = e.target.checked\n ? columnSettingOptions?.map(item => item.key)\n : [];\n onChange(newCheckedColumnKeys);\n }\n };\n // 保存按钮\n const onSaveChange = () => {\n if (onChange) {\n onColumnsSave(checkedColumnKeys);\n }\n };\n return (\n <Popover\n trigger=\"click\"\n placement=\"bottomRight\"\n arrowPointAtCenter\n title={\n <div className={`${prefixCls}-column-setting-title`} slot=\"title\">\n <Checkbox\n className={`${prefixCls}-column-setting-checkbox-wrapper`}\n indeterminate={indeterminate}\n checked={checkAll}\n onChange={onCheckAllChange}\n >\n 列展示\n </Checkbox>\n <a onClick={onReset}>重置</a>\n </div>\n }\n content={\n <div className={`${prefixCls}-column-setting-list`}>\n {columnSettingOptions?.map(opt => {\n const key = opt.key || opt.dataIndex;\n return (\n <div key={key}>\n <Checkbox\n checked={checkedColumnKeys?.includes(key)}\n onChange={e => onCheckChange(e, key)}\n disabled={disabledColumnKeys.includes(key)}\n >\n {opt.title}\n </Checkbox>\n </div>\n );\n })}\n {typeof onColumnsSave === 'function' ? (\n <>\n <Divider style={{ margin: '5px 0 10px 0' }} />\n <Button block={true} onClick={() => onSaveChange()}>\n 保存\n </Button>\n </>\n ) : null}\n </div>\n }\n >\n {props.children}\n </Popover>\n );\n}\n\nColumnSetting.propTypes = {\n prefixCls: PropTypes.string,\n checkedColumnKeys: PropTypes.array,\n columnSettingOptions: PropTypes.array,\n children: PropTypes.node,\n onChange: PropTypes.func,\n onReset: PropTypes.func,\n disabledColumnKeys: PropTypes.array,\n onColumnsSave: PropTypes.func,\n};\n"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ var _ResizeableTitle = _interopRequireDefault(require("./ResizeableTitle"));
|
|
|
20
20
|
var _renderColumnButtons = _interopRequireDefault(require("./renderColumnButtons"));
|
|
21
21
|
var _useSet3 = _interopRequireDefault(require("../_util/useSet"));
|
|
22
22
|
var _isFunction = _interopRequireDefault(require("../_util/isFunction"));
|
|
23
|
-
var _excluded = ["prefixCls", "toolbar", "toolbarClassName", "toolbarTilte", "buttonGroup", "refreshIconVisible", "hideColumnSetting", "hideColumnHeight", "visibleColumnKeys", "defaultVisibleColumnKeys", "onVisibleColumnsChange", "onRefresh", "indexColumn", "indexFixed", "bordered", "indexTitle", "startIndex", "autoFit", "headFootHeight", "columnResizable", "className", "style", "emptyText", "claerRowSelection", "searchCollapseEvent$"];
|
|
23
|
+
var _excluded = ["prefixCls", "toolbar", "toolbarClassName", "toolbarTilte", "buttonGroup", "refreshIconVisible", "hideColumnSetting", "hideColumnHeight", "visibleColumnKeys", "defaultVisibleColumnKeys", "onVisibleColumnsChange", "onRefresh", "indexColumn", "indexFixed", "bordered", "indexTitle", "startIndex", "autoFit", "headFootHeight", "columnResizable", "className", "style", "emptyText", "claerRowSelection", "searchCollapseEvent$", "disabledColumnKeys", "onColumnsSave"];
|
|
24
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
25
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
26
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -104,6 +104,8 @@ function VtxDatagrid(props) {
|
|
|
104
104
|
emptyText = _props$emptyText === void 0 ? '暂无数据' : _props$emptyText,
|
|
105
105
|
claerRowSelection = props.claerRowSelection,
|
|
106
106
|
searchCollapseEvent$ = props.searchCollapseEvent$,
|
|
107
|
+
disabledColumnKeys = props.disabledColumnKeys,
|
|
108
|
+
onColumnsSave = props.onColumnsSave,
|
|
107
109
|
rest = _objectWithoutProperties(props, _excluded);
|
|
108
110
|
(0, _react.useEffect)(function () {
|
|
109
111
|
// componentDidMount
|
|
@@ -254,7 +256,9 @@ function VtxDatagrid(props) {
|
|
|
254
256
|
onChange: handleChangeColumns,
|
|
255
257
|
onReset: function onReset() {
|
|
256
258
|
return parseColumns('reset');
|
|
257
|
-
}
|
|
259
|
+
},
|
|
260
|
+
disabledColumnKeys: disabledColumnKeys,
|
|
261
|
+
onColumnsSave: onColumnsSave
|
|
258
262
|
}, /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
259
263
|
title: "\u5217\u8BBE\u7F6E"
|
|
260
264
|
}, /*#__PURE__*/_react["default"].createElement(_icon["default"], {
|
|
@@ -404,6 +408,8 @@ VtxDatagrid.propTypes = {
|
|
|
404
408
|
claerRowSelection: _propTypes["default"].func,
|
|
405
409
|
searchCollapseEvent$: _propTypes["default"].object,
|
|
406
410
|
className: _propTypes["default"].string,
|
|
407
|
-
style: _propTypes["default"].object
|
|
411
|
+
style: _propTypes["default"].object,
|
|
412
|
+
disabledColumnKeys: _propTypes["default"].array,
|
|
413
|
+
onColumnsSave: _propTypes["default"].func
|
|
408
414
|
};
|
|
409
415
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["VtxDatagrid","props","useSet","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","state","setState","alertHeight","useRef","toolbarHeight","prefixCls","toolbar","toolbarClassName","toolbarTilte","buttonGroup","refreshIconVisible","hideColumnSetting","hideColumnHeight","visibleColumnKeys","defaultVisibleColumnKeys","onVisibleColumnsChange","onRefresh","indexColumn","indexFixed","bordered","indexTitle","startIndex","autoFit","headFootHeight","columnResizable","className","style","emptyText","claerRowSelection","searchCollapseEvent$","rest","useEffect","window","addEventListener","calculateHeight","removeEventListener","useLayoutEffect","rowSelection","selectedRowKeys","join","useSubscription","timer","setTimeout","clearTimeout","parseColumns","columns","map","col","key","dataIndex","type","columnKeys","filter","item","includes","hasAlert","length","current","bodyHeight","document","getElementById","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","toolbarRender","classnames","getPagination","pagination","pageSizeOptions","showSizeChanger","showQuickJumper","showTotal","total","column","newColumn","renderButtons","renderButtonsVisibleNum","render","isFunction","text","record","index","renderColumnButtons","undefined","onHeaderCell","width","onResize","handleResize","e","nextColumns","dataSource","title","fixed","i","_serialNum","scroll","y","height","locale","header","cell","ResizeableTitle","propTypes","PropTypes","string","bool","array","func","oneOfType","node","number","object"],"sources":["vtx-datagrid/index.jsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react';\nimport Table from 'antd/es/table';\nimport Icon from 'antd/es/icon';\nimport Tooltip from 'antd/es/tooltip';\nimport Dropdown from 'antd/es/dropdown';\nimport Menu from 'antd/es/menu';\nimport Empty from 'antd/es/empty';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Alert from './Alert';\nimport ColumnSetting from './ColumnSetting';\nimport ResizeableTitle from './ResizeableTitle';\nimport renderColumnButtons from './renderColumnButtons';\nimport useSet from '../_util/useSet';\nimport isFunction from '../_util/isFunction';\n\nexport default function VtxDatagrid(props) {\n const [state, setState] = useSet({\n // 显示列\n visibleColumns: [],\n // 列设置选中的列\n checkedColumnKeys: [],\n // 列设置选项\n columnSettingOptions: [],\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\n scrollY: null,\n size: 'middle',\n });\n const {\n visibleColumns,\n checkedColumnKeys,\n columnSettingOptions,\n datagridId,\n scrollY,\n size,\n } = state;\n\n // 列设置提示高度\n const alertHeight = useRef(0);\n // 工具栏高度\n const toolbarHeight = useRef(0);\n\n const {\n prefixCls = 'vtx-datagrid',\n toolbar = true,\n toolbarClassName,\n toolbarTilte = '查询结果',\n buttonGroup,\n refreshIconVisible = true,\n hideColumnSetting,\n hideColumnHeight,\n visibleColumnKeys,\n defaultVisibleColumnKeys,\n onVisibleColumnsChange,\n onRefresh,\n indexColumn = true,\n indexFixed = false,\n bordered = true,\n indexTitle = '序号',\n startIndex = 1,\n autoFit = true,\n headFootHeight = 115,\n columnResizable,\n className,\n style,\n emptyText = '暂无数据',\n claerRowSelection,\n searchCollapseEvent$,\n ...rest\n } = props;\n\n useEffect(() => {\n // componentDidMount\n if (autoFit) {\n window.addEventListener('resize', calculateHeight, false);\n }\n return () => {\n // componentWillUnmount\n if (autoFit) {\n window.removeEventListener('resize', calculateHeight, false);\n }\n };\n }, []);\n\n useLayoutEffect(() => {\n if (autoFit) {\n calculateHeight();\n }\n }, [(rest.rowSelection?.selectedRowKeys || []).join(',')]);\n\n // 只有被TableLayout.Page包裹时才会存在searchCollapseEvent$这个参数\n if (searchCollapseEvent$) {\n // eslint-disable-next-line react/prop-types\n searchCollapseEvent$.useSubscription(() => {\n // 350ms 是为了等待css动画时间\n let timer = setTimeout(() => {\n calculateHeight();\n timer = '';\n clearTimeout(timer);\n }, 350);\n });\n }\n\n useEffect(() => {\n parseColumns();\n setState({\n columnSettingOptions: rest.columns?.map(col => ({\n ...col,\n key: col.dataIndex || col.key,\n })),\n });\n }, [rest.columns]);\n\n const parseColumns = type => {\n // 显示工具栏的同时并显示列设置\n if (toolbar && !hideColumnSetting) {\n if (defaultVisibleColumnKeys || visibleColumnKeys) {\n const columnKeys =\n type === 'reset'\n ? defaultVisibleColumnKeys\n : visibleColumnKeys || defaultVisibleColumnKeys;\n setState({\n checkedColumnKeys: columnKeys,\n visibleColumns: rest.columns?.filter(item =>\n columnKeys.includes(item.dataIndex || item.key),\n ),\n });\n } else {\n setState({\n checkedColumnKeys: rest.columns?.map(item => item.dataIndex || item.key),\n visibleColumns: rest.columns,\n });\n }\n } else {\n setState({\n visibleColumns: rest.columns,\n });\n }\n };\n\n const hasAlert = (rest.rowSelection?.selectedRowKeys || []).length > 0;\n alertHeight.current = hasAlert ? 49 : 0;\n toolbarHeight.current = toolbar ? 56 : 0;\n // 高度计算\n const calculateHeight = () => {\n const bodyHeight =\n document.getElementById(datagridId).clientHeight -\n headFootHeight -\n toolbarHeight.current -\n alertHeight.current;\n const divs = document.getElementById(datagridId).getElementsByTagName('div');\n const bodyDiv = Array.prototype.filter.call(\n divs,\n dom => dom.className == 'ant-table-body',\n )[0];\n bodyDiv.style.minHeight = `${bodyHeight}px`;\n setState({\n scrollY: bodyHeight,\n });\n };\n\n // 列设置回调\n const handleChangeColumns = keys => {\n setState({\n checkedColumnKeys: keys,\n visibleColumns: columnSettingOptions?.filter(item => keys.includes(item.key)),\n });\n onVisibleColumnsChange && onVisibleColumnsChange(keys);\n };\n\n // 工具栏\n let toolbarRender;\n if (toolbar) {\n toolbarRender = (\n <div className={classnames(`${prefixCls}-toolbar`, toolbarClassName)}>\n <div className={`${prefixCls}-toolbar-left`}>{toolbarTilte}</div>\n <div className={`${prefixCls}-toolbar-right`}>\n <div\n className={classnames(\n `${prefixCls}-space-item`,\n `${prefixCls}-toolbar-actions`,\n )}\n >\n {buttonGroup}\n </div>\n <div\n className={classnames(\n `${prefixCls}-space-item`,\n `${prefixCls}-toolbar-setting`,\n )}\n >\n {refreshIconVisible && (\n <div\n className={`${prefixCls}-toolbar-setting-item`}\n onClick={() => {\n onRefresh && onRefresh();\n }}\n >\n <Tooltip title=\"刷新\">\n <Icon type=\"redo\" />\n </Tooltip>\n </div>\n )}\n {!hideColumnHeight && (\n <div className={`${prefixCls}-toolbar-setting-item`}>\n <Dropdown\n overlay={\n <Menu\n onClick={({ key }) => setState({ size: key })}\n selectedKeys={[size]}\n >\n <Menu.Item key=\"default\">默认</Menu.Item>\n <Menu.Item key=\"middle\">中等</Menu.Item>\n <Menu.Item key=\"small\">紧凑</Menu.Item>\n </Menu>\n }\n trigger={['click']}\n >\n <Tooltip title=\"列密度\">\n <Icon type=\"column-height\" />\n </Tooltip>\n </Dropdown>\n </div>\n )}\n {!hideColumnSetting && (\n <div className={`${prefixCls}-toolbar-setting-item`}>\n <ColumnSetting\n prefixCls={prefixCls}\n checkedColumnKeys={checkedColumnKeys}\n columnSettingOptions={columnSettingOptions}\n onChange={handleChangeColumns}\n onReset={() => parseColumns('reset')}\n >\n <Tooltip title=\"列设置\">\n <Icon type=\"setting\" />\n </Tooltip>\n </ColumnSetting>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n }\n\n // 分页\n const getPagination = pagination => {\n if (typeof pagination === 'boolean' && !pagination) {\n return pagination;\n }\n return {\n pageSizeOptions: ['10', '20', '30', '40', '50'],\n showSizeChanger: true,\n showQuickJumper: true,\n showTotal(total) {\n return `共 ${total} 条`;\n },\n ...pagination,\n };\n };\n\n // 处理操作按钮\n let columns = (visibleColumns || []).map(column => {\n const newColumn = { ...column };\n if (newColumn.renderButtons) {\n delete newColumn.renderButtons;\n }\n if (newColumn.renderButtonsVisibleNum) {\n delete newColumn.renderButtonsVisibleNum;\n }\n return {\n ...newColumn,\n render: isFunction(column.renderButtons)\n ? function(text, record, index) {\n return renderColumnButtons(\n column.renderButtons,\n column.renderButtonsVisibleNum,\n text,\n record,\n index,\n );\n }\n : 'render' in column\n ? column.render\n : function(text) {\n return ['', null, undefined].includes(text) ? '-' : text;\n },\n };\n });\n // 配置了列可伸缩\n if (columnResizable) {\n columns = columns.map((col, index) => ({\n ...col,\n onHeaderCell: column => ({\n width: column.width,\n onResize: handleResize(index),\n }),\n }));\n const handleResize = index => (e, { size }) => {\n setState(({ visibleColumns }) => {\n const nextColumns = [...visibleColumns];\n nextColumns[index] = {\n ...nextColumns[index],\n width: size.width,\n };\n return { visibleColumns: nextColumns };\n });\n };\n }\n\n // 序号添加\n let dataSource = rest.dataSource;\n if (indexColumn) {\n columns = [\n {\n title: indexTitle,\n dataIndex: '_serialNum',\n key: '_serialNum',\n width: 70,\n fixed: indexFixed,\n },\n ...columns,\n ];\n dataSource = dataSource?.map((item, i) => {\n return {\n ...item,\n _serialNum: i + startIndex,\n };\n });\n }\n\n let scroll;\n if (autoFit) {\n scroll = {\n ...(rest.scroll || {}),\n y: scrollY,\n };\n }\n\n return (\n <div\n id={datagridId}\n className={classnames(prefixCls, className, {\n [`${prefixCls}-fit`]: autoFit,\n [`${prefixCls}-nodata`]: !dataSource?.length,\n })}\n style={style}\n >\n {toolbarRender}\n {hasAlert && (\n <div className={`${prefixCls}-alert`}>\n <Alert\n prefixCls={prefixCls}\n selectedRowKeys={rest.rowSelection?.selectedRowKeys}\n claerRowSelection={claerRowSelection}\n />\n </div>\n )}\n <Table\n size={size}\n bordered={bordered}\n {...rest}\n columns={columns}\n dataSource={dataSource}\n scroll={scroll}\n pagination={getPagination(rest.pagination)}\n style={{ height: `calc(100% - ${toolbarHeight.current + alertHeight.current}px)` }}\n locale={{\n emptyText: <Empty description={emptyText} />,\n ...rest.locale,\n }}\n components={\n columnResizable\n ? {\n header: {\n cell: ResizeableTitle,\n },\n }\n : undefined\n }\n />\n </div>\n );\n}\n\nVtxDatagrid.propTypes = {\n prefixCls: PropTypes.string,\n refreshIconVisible: PropTypes.bool,\n hideColumnSetting: PropTypes.bool,\n hideColumnHeight: PropTypes.bool,\n bordered: PropTypes.bool,\n visibleColumnKeys: PropTypes.array,\n defaultVisibleColumnKeys: PropTypes.array,\n onVisibleColumnsChange: PropTypes.func,\n toolbarClassName: PropTypes.string,\n toolbar: PropTypes.bool,\n toolbarTilte: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n onRefresh: PropTypes.func,\n indexColumn: PropTypes.bool,\n indexFixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n indexTitle: PropTypes.string,\n startIndex: PropTypes.number,\n buttonGroup: PropTypes.node,\n autoFit: PropTypes.bool,\n headFootHeight: PropTypes.number,\n columnResizable: PropTypes.bool,\n emptyText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n claerRowSelection: PropTypes.func,\n searchCollapseEvent$: PropTypes.object,\n className: PropTypes.string,\n style: PropTypes.object,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["VtxDatagrid","props","useSet","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","state","setState","alertHeight","useRef","toolbarHeight","prefixCls","toolbar","toolbarClassName","toolbarTilte","buttonGroup","refreshIconVisible","hideColumnSetting","hideColumnHeight","visibleColumnKeys","defaultVisibleColumnKeys","onVisibleColumnsChange","onRefresh","indexColumn","indexFixed","bordered","indexTitle","startIndex","autoFit","headFootHeight","columnResizable","className","style","emptyText","claerRowSelection","searchCollapseEvent$","disabledColumnKeys","onColumnsSave","rest","useEffect","window","addEventListener","calculateHeight","removeEventListener","useLayoutEffect","rowSelection","selectedRowKeys","join","useSubscription","timer","setTimeout","clearTimeout","parseColumns","columns","map","col","key","dataIndex","type","columnKeys","filter","item","includes","hasAlert","length","current","bodyHeight","document","getElementById","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","toolbarRender","classnames","getPagination","pagination","pageSizeOptions","showSizeChanger","showQuickJumper","showTotal","total","column","newColumn","renderButtons","renderButtonsVisibleNum","render","isFunction","text","record","index","renderColumnButtons","undefined","onHeaderCell","width","onResize","handleResize","e","nextColumns","dataSource","title","fixed","i","_serialNum","scroll","y","height","locale","header","cell","ResizeableTitle","propTypes","PropTypes","string","bool","array","func","oneOfType","node","number","object"],"sources":["vtx-datagrid/index.jsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react';\nimport Table from 'antd/es/table';\nimport Icon from 'antd/es/icon';\nimport Tooltip from 'antd/es/tooltip';\nimport Dropdown from 'antd/es/dropdown';\nimport Menu from 'antd/es/menu';\nimport Empty from 'antd/es/empty';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport Alert from './Alert';\nimport ColumnSetting from './ColumnSetting';\nimport ResizeableTitle from './ResizeableTitle';\nimport renderColumnButtons from './renderColumnButtons';\nimport useSet from '../_util/useSet';\nimport isFunction from '../_util/isFunction';\n\nexport default function VtxDatagrid(props) {\n const [state, setState] = useSet({\n // 显示列\n visibleColumns: [],\n // 列设置选中的列\n checkedColumnKeys: [],\n // 列设置选项\n columnSettingOptions: [],\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\n scrollY: null,\n size: 'middle',\n });\n const {\n visibleColumns,\n checkedColumnKeys,\n columnSettingOptions,\n datagridId,\n scrollY,\n size,\n } = state;\n\n // 列设置提示高度\n const alertHeight = useRef(0);\n // 工具栏高度\n const toolbarHeight = useRef(0);\n\n const {\n prefixCls = 'vtx-datagrid',\n toolbar = true,\n toolbarClassName,\n toolbarTilte = '查询结果',\n buttonGroup,\n refreshIconVisible = true,\n hideColumnSetting,\n hideColumnHeight,\n visibleColumnKeys,\n defaultVisibleColumnKeys,\n onVisibleColumnsChange,\n onRefresh,\n indexColumn = true,\n indexFixed = false,\n bordered = true,\n indexTitle = '序号',\n startIndex = 1,\n autoFit = true,\n headFootHeight = 115,\n columnResizable,\n className,\n style,\n emptyText = '暂无数据',\n claerRowSelection,\n searchCollapseEvent$,\n disabledColumnKeys,\n onColumnsSave,\n ...rest\n } = props;\n\n useEffect(() => {\n // componentDidMount\n if (autoFit) {\n window.addEventListener('resize', calculateHeight, false);\n }\n return () => {\n // componentWillUnmount\n if (autoFit) {\n window.removeEventListener('resize', calculateHeight, false);\n }\n };\n }, []);\n\n useLayoutEffect(() => {\n if (autoFit) {\n calculateHeight();\n }\n }, [(rest.rowSelection?.selectedRowKeys || []).join(',')]);\n\n // 只有被TableLayout.Page包裹时才会存在searchCollapseEvent$这个参数\n if (searchCollapseEvent$) {\n // eslint-disable-next-line react/prop-types\n searchCollapseEvent$.useSubscription(() => {\n // 350ms 是为了等待css动画时间\n let timer = setTimeout(() => {\n calculateHeight();\n timer = '';\n clearTimeout(timer);\n }, 350);\n });\n }\n\n useEffect(() => {\n parseColumns();\n setState({\n columnSettingOptions: rest.columns?.map(col => ({\n ...col,\n key: col.dataIndex || col.key,\n })),\n });\n }, [rest.columns]);\n\n const parseColumns = type => {\n // 显示工具栏的同时并显示列设置\n if (toolbar && !hideColumnSetting) {\n if (defaultVisibleColumnKeys || visibleColumnKeys) {\n const columnKeys =\n type === 'reset'\n ? defaultVisibleColumnKeys\n : visibleColumnKeys || defaultVisibleColumnKeys;\n setState({\n checkedColumnKeys: columnKeys,\n visibleColumns: rest.columns?.filter(item =>\n columnKeys.includes(item.dataIndex || item.key),\n ),\n });\n } else {\n setState({\n checkedColumnKeys: rest.columns?.map(item => item.dataIndex || item.key),\n visibleColumns: rest.columns,\n });\n }\n } else {\n setState({\n visibleColumns: rest.columns,\n });\n }\n };\n\n const hasAlert = (rest.rowSelection?.selectedRowKeys || []).length > 0;\n alertHeight.current = hasAlert ? 49 : 0;\n toolbarHeight.current = toolbar ? 56 : 0;\n // 高度计算\n const calculateHeight = () => {\n const bodyHeight =\n document.getElementById(datagridId).clientHeight -\n headFootHeight -\n toolbarHeight.current -\n alertHeight.current;\n const divs = document.getElementById(datagridId).getElementsByTagName('div');\n const bodyDiv = Array.prototype.filter.call(\n divs,\n dom => dom.className == 'ant-table-body',\n )[0];\n bodyDiv.style.minHeight = `${bodyHeight}px`;\n setState({\n scrollY: bodyHeight,\n });\n };\n\n // 列设置回调\n const handleChangeColumns = keys => {\n setState({\n checkedColumnKeys: keys,\n visibleColumns: columnSettingOptions?.filter(item => keys.includes(item.key)),\n });\n onVisibleColumnsChange && onVisibleColumnsChange(keys);\n };\n\n // 工具栏\n let toolbarRender;\n if (toolbar) {\n toolbarRender = (\n <div className={classnames(`${prefixCls}-toolbar`, toolbarClassName)}>\n <div className={`${prefixCls}-toolbar-left`}>{toolbarTilte}</div>\n <div className={`${prefixCls}-toolbar-right`}>\n <div\n className={classnames(\n `${prefixCls}-space-item`,\n `${prefixCls}-toolbar-actions`,\n )}\n >\n {buttonGroup}\n </div>\n <div\n className={classnames(\n `${prefixCls}-space-item`,\n `${prefixCls}-toolbar-setting`,\n )}\n >\n {refreshIconVisible && (\n <div\n className={`${prefixCls}-toolbar-setting-item`}\n onClick={() => {\n onRefresh && onRefresh();\n }}\n >\n <Tooltip title=\"刷新\">\n <Icon type=\"redo\" />\n </Tooltip>\n </div>\n )}\n {!hideColumnHeight && (\n <div className={`${prefixCls}-toolbar-setting-item`}>\n <Dropdown\n overlay={\n <Menu\n onClick={({ key }) => setState({ size: key })}\n selectedKeys={[size]}\n >\n <Menu.Item key=\"default\">默认</Menu.Item>\n <Menu.Item key=\"middle\">中等</Menu.Item>\n <Menu.Item key=\"small\">紧凑</Menu.Item>\n </Menu>\n }\n trigger={['click']}\n >\n <Tooltip title=\"列密度\">\n <Icon type=\"column-height\" />\n </Tooltip>\n </Dropdown>\n </div>\n )}\n {!hideColumnSetting && (\n <div className={`${prefixCls}-toolbar-setting-item`}>\n <ColumnSetting\n prefixCls={prefixCls}\n checkedColumnKeys={checkedColumnKeys}\n columnSettingOptions={columnSettingOptions}\n onChange={handleChangeColumns}\n onReset={() => parseColumns('reset')}\n disabledColumnKeys={disabledColumnKeys}\n onColumnsSave={onColumnsSave}\n >\n <Tooltip title=\"列设置\">\n <Icon type=\"setting\" />\n </Tooltip>\n </ColumnSetting>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n }\n\n // 分页\n const getPagination = pagination => {\n if (typeof pagination === 'boolean' && !pagination) {\n return pagination;\n }\n return {\n pageSizeOptions: ['10', '20', '30', '40', '50'],\n showSizeChanger: true,\n showQuickJumper: true,\n showTotal(total) {\n return `共 ${total} 条`;\n },\n ...pagination,\n };\n };\n\n // 处理操作按钮\n let columns = (visibleColumns || []).map(column => {\n const newColumn = { ...column };\n if (newColumn.renderButtons) {\n delete newColumn.renderButtons;\n }\n if (newColumn.renderButtonsVisibleNum) {\n delete newColumn.renderButtonsVisibleNum;\n }\n return {\n ...newColumn,\n render: isFunction(column.renderButtons)\n ? function (text, record, index) {\n return renderColumnButtons(\n column.renderButtons,\n column.renderButtonsVisibleNum,\n text,\n record,\n index,\n );\n }\n : 'render' in column\n ? column.render\n : function (text) {\n return ['', null, undefined].includes(text) ? '-' : text;\n },\n };\n });\n // 配置了列可伸缩\n if (columnResizable) {\n columns = columns.map((col, index) => ({\n ...col,\n onHeaderCell: column => ({\n width: column.width,\n onResize: handleResize(index),\n }),\n }));\n const handleResize = index => (e, { size }) => {\n setState(({ visibleColumns }) => {\n const nextColumns = [...visibleColumns];\n nextColumns[index] = {\n ...nextColumns[index],\n width: size.width,\n };\n return { visibleColumns: nextColumns };\n });\n };\n }\n\n // 序号添加\n let dataSource = rest.dataSource;\n if (indexColumn) {\n columns = [\n {\n title: indexTitle,\n dataIndex: '_serialNum',\n key: '_serialNum',\n width: 70,\n fixed: indexFixed,\n },\n ...columns,\n ];\n dataSource = dataSource?.map((item, i) => {\n return {\n ...item,\n _serialNum: i + startIndex,\n };\n });\n }\n\n let scroll;\n if (autoFit) {\n scroll = {\n ...(rest.scroll || {}),\n y: scrollY,\n };\n }\n\n return (\n <div\n id={datagridId}\n className={classnames(prefixCls, className, {\n [`${prefixCls}-fit`]: autoFit,\n [`${prefixCls}-nodata`]: !dataSource?.length,\n })}\n style={style}\n >\n {toolbarRender}\n {hasAlert && (\n <div className={`${prefixCls}-alert`}>\n <Alert\n prefixCls={prefixCls}\n selectedRowKeys={rest.rowSelection?.selectedRowKeys}\n claerRowSelection={claerRowSelection}\n />\n </div>\n )}\n <Table\n size={size}\n bordered={bordered}\n {...rest}\n columns={columns}\n dataSource={dataSource}\n scroll={scroll}\n pagination={getPagination(rest.pagination)}\n style={{ height: `calc(100% - ${toolbarHeight.current + alertHeight.current}px)` }}\n locale={{\n emptyText: <Empty description={emptyText} />,\n ...rest.locale,\n }}\n components={\n columnResizable\n ? {\n header: {\n cell: ResizeableTitle,\n },\n }\n : undefined\n }\n />\n </div>\n );\n}\n\nVtxDatagrid.propTypes = {\n prefixCls: PropTypes.string,\n refreshIconVisible: PropTypes.bool,\n hideColumnSetting: PropTypes.bool,\n hideColumnHeight: PropTypes.bool,\n bordered: PropTypes.bool,\n visibleColumnKeys: PropTypes.array,\n defaultVisibleColumnKeys: PropTypes.array,\n onVisibleColumnsChange: PropTypes.func,\n toolbarClassName: PropTypes.string,\n toolbar: PropTypes.bool,\n toolbarTilte: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n onRefresh: PropTypes.func,\n indexColumn: PropTypes.bool,\n indexFixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n indexTitle: PropTypes.string,\n startIndex: PropTypes.number,\n buttonGroup: PropTypes.node,\n autoFit: PropTypes.bool,\n headFootHeight: PropTypes.number,\n columnResizable: PropTypes.bool,\n emptyText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n claerRowSelection: PropTypes.func,\n searchCollapseEvent$: PropTypes.object,\n className: PropTypes.string,\n style: PropTypes.object,\n disabledColumnKeys: PropTypes.array,\n onColumnsSave: PropTypes.func,\n};\n"],"mappings":"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"}
|