@vtx/components 3.1.109 → 3.1.111
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/vtx-datagrid/ColumnSetting.js +2 -4
- package/lib/vtx-datagrid/ColumnSetting.js.map +1 -1
- package/lib/vtx-datagrid/index.js +15 -6
- package/lib/vtx-datagrid/index.js.map +1 -1
- package/lib/vtx-export-async/History.js +2 -1
- package/lib/vtx-export-async/History.js.map +1 -1
- package/lib/vtx-export-async/index.js +2 -1
- package/lib/vtx-export-async/index.js.map +1 -1
- package/lib/vtx-tree/index.js +13 -0
- package/lib/vtx-tree/index.js.map +1 -1
- package/lib/vtx-tree/style/index.css +1 -0
- package/lib/vtx-tree/style/index.less +1 -0
- package/package.json +1 -1
|
@@ -27,8 +27,6 @@ var _axios = _interopRequireDefault(require("axios"));
|
|
|
27
27
|
|
|
28
28
|
var _getUrlParam2 = _interopRequireDefault(require("../_util/getUrlParam"));
|
|
29
29
|
|
|
30
|
-
var _ahooks = require("ahooks");
|
|
31
|
-
|
|
32
30
|
var _getToken = _interopRequireDefault(require("../_util/getToken"));
|
|
33
31
|
|
|
34
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -200,9 +198,9 @@ function ColumnSetting(props) {
|
|
|
200
198
|
getUmsColumns();
|
|
201
199
|
}
|
|
202
200
|
}, [uniqueKey]);
|
|
203
|
-
(0,
|
|
201
|
+
(0, _react.useEffect)(function () {
|
|
204
202
|
onChange && onChange(state.showColumns ? state.showColumns.split(',') : '');
|
|
205
|
-
}, [state.showColumns
|
|
203
|
+
}, [JSON.stringify(state.showColumns)]);
|
|
206
204
|
return /*#__PURE__*/_react["default"].createElement(_popover["default"], {
|
|
207
205
|
trigger: "click",
|
|
208
206
|
placement: "bottomRight",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSetting.js","names":["ColumnSetting","props","getUrlParam","userId","tenantId","token","getToken","useSet","indeterminate","checkAll","columnSettingId","showColumns","state","setState","prefixCls","checkedColumnKeys","columnSettingOptions","onChange","onReset","disabledColumnKeys","onColumnsSave","uniqueKey","settingRef","prefixUrl","TextEnum","useImperativeHandle","split","useEffect","chkLen","length","optionLen","onCheckChange","e","key","newCheckedColumnKeys","target","checked","filter","item","onCheckAllChange","map","onSaveChange","getUmsColumns","axios","method","url","headers","Authorization","params","tableCode","then","data","result","total","record","rows","id","saveColumns","message","warn","messageWarningOneText","JSON","stringify","join","name","success","messageSuccessText","useDeepCompareEffect","columnSettingTitleText","columnSettingResetText","opt","dataIndex","includes","title","margin","columnSettingSaveText","children","propTypes","PropTypes","string","array","node","func","object"],"sources":["vtx-datagrid/ColumnSetting.jsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle } from 'react';\r\nimport Popover from 'antd/lib/popover';\r\nimport Divider from 'antd/lib/divider';\r\nimport Button from 'antd/lib/button';\r\nimport Checkbox from 'antd/lib/checkbox';\r\nimport message from 'antd/lib/message';\r\nimport PropTypes from 'prop-types';\r\nimport useSet from '../_util/useSet';\r\nimport axios from 'axios';\r\nimport getUrlParam from '../_util/getUrlParam';\r\nimport { useDeepCompareEffect } from 'ahooks';\r\nimport getToken from '../_util/getToken';\r\n\r\nexport default function ColumnSetting(props) {\r\n const { userId = '', tenantId = '' } = getUrlParam();\r\n let token = getToken();\r\n const [state, setState] = useSet({\r\n indeterminate: false,\r\n checkAll: false,\r\n columnSettingId: '',\r\n showColumns: '',\r\n });\r\n const {\r\n prefixCls,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n onChange,\r\n onReset,\r\n disabledColumnKeys = [],\r\n onColumnsSave,\r\n uniqueKey,\r\n settingRef,\r\n prefixUrl='',\r\n TextEnum\r\n } = props;\r\n\r\n useImperativeHandle(settingRef, () => {\r\n return {\r\n showColumns: state.showColumns ? state.showColumns.split(',') : null,\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n const chkLen = checkedColumnKeys?.length;\r\n const optionLen = columnSettingOptions?.length;\r\n setState({\r\n checkAll: chkLen == optionLen,\r\n indeterminate: chkLen && chkLen < optionLen,\r\n });\r\n }, [checkedColumnKeys?.length, columnSettingOptions?.length]);\r\n\r\n const { indeterminate, checkAll } = state;\r\n\r\n // 单选\r\n const onCheckChange = (e, key) => {\r\n if (onChange) {\r\n const newCheckedColumnKeys = e.target.checked\r\n ? [...checkedColumnKeys, key]\r\n : checkedColumnKeys?.filter(item => item != key);\r\n onChange(newCheckedColumnKeys);\r\n }\r\n };\r\n\r\n // 全选\r\n const onCheckAllChange = e => {\r\n if (onChange) {\r\n const newCheckedColumnKeys = e.target.checked\r\n ? columnSettingOptions?.map(item => item.key)\r\n : [];\r\n onChange(newCheckedColumnKeys);\r\n }\r\n };\r\n // 保存按钮\r\n const onSaveChange = () => {\r\n if (onChange) {\r\n onColumnsSave(checkedColumnKeys);\r\n }\r\n };\r\n function getUmsColumns() {\r\n if (!onColumnsSave && !!uniqueKey) {\r\n axios({\r\n method: 'GET',\r\n url: `${prefixUrl}/cloud/management/api/v101/user/config/table/page`,\r\n headers: {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n },\r\n params: {\r\n tableCode: uniqueKey,\r\n },\r\n }).then(({ data }) => {\r\n if (data?.result == 0 && data?.data.total > 0) {\r\n let record = data.data.rows[0];\r\n record?.id &&\r\n setState({\r\n columnSettingId: record.id,\r\n showColumns: record.showColumns,\r\n });\r\n } else {\r\n setState({\r\n columnSettingId: '',\r\n showColumns: '',\r\n });\r\n }\r\n });\r\n }\r\n }\r\n //\r\n const saveColumns = () => {\r\n if ((checkedColumnKeys || []).length == 0) {\r\n message.warn(TextEnum.messageWarningOneText);\r\n return false;\r\n }\r\n axios({\r\n method: 'POST',\r\n url: `${prefixUrl}/cloud/management/api/v101/user/config/table/save`,\r\n headers: {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n 'Content-Type': 'application/json',\r\n },\r\n data: JSON.stringify({\r\n showColumns: (checkedColumnKeys || []).join(','),\r\n tableCode: uniqueKey,\r\n name: uniqueKey,\r\n userId,\r\n tenantId,\r\n id: state.columnSettingId,\r\n }),\r\n }).then(({ data }) => {\r\n if (data?.result == 0) {\r\n message.success(TextEnum.messageSuccessText);\r\n getUmsColumns();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (uniqueKey) {\r\n getUmsColumns();\r\n }\r\n }, [uniqueKey]);\r\n\r\n useDeepCompareEffect(() => {\r\n onChange && onChange(state.showColumns ? state.showColumns.split(',') : '');\r\n }, [state.showColumns, columnSettingOptions]);\r\n\r\n return (\r\n <Popover\r\n trigger=\"click\"\r\n placement=\"bottomRight\"\r\n arrowPointAtCenter\r\n title={\r\n <div className={`${prefixCls}-column-setting-title`} slot=\"title\">\r\n <Checkbox\r\n className={`${prefixCls}-column-setting-checkbox-wrapper`}\r\n indeterminate={indeterminate}\r\n checked={checkAll}\r\n onChange={onCheckAllChange}\r\n >\r\n {TextEnum.columnSettingTitleText}\r\n </Checkbox>\r\n <a onClick={onReset}>{TextEnum.columnSettingResetText}</a>\r\n </div>\r\n }\r\n content={\r\n <div className={`${prefixCls}-column-setting-list`}>\r\n {columnSettingOptions?.map(opt => {\r\n const key = opt.key || opt.dataIndex;\r\n return (\r\n <div key={key}>\r\n <Checkbox\r\n checked={checkedColumnKeys?.includes(key)}\r\n onChange={e => onCheckChange(e, key)}\r\n disabled={disabledColumnKeys.includes(key)}\r\n >\r\n {opt.title}\r\n </Checkbox>\r\n </div>\r\n );\r\n })}\r\n {typeof onColumnsSave === 'function' ? (\r\n <>\r\n <Divider style={{ margin: '5px 0 10px 0' }} />\r\n <Button block={true} onClick={() => onSaveChange()}>\r\n {TextEnum.columnSettingSaveText}\r\n </Button>\r\n </>\r\n ) : null}\r\n {!onColumnsSave && uniqueKey ? (\r\n <>\r\n <Divider style={{ margin: '5px 0 10px 0' }} />\r\n <Button block={true} onClick={() => saveColumns()}>\r\n {TextEnum.columnSettingSaveText}\r\n </Button>\r\n </>\r\n ) : null}\r\n </div>\r\n }\r\n >\r\n {props.children}\r\n </Popover>\r\n );\r\n}\r\n\r\nColumnSetting.propTypes = {\r\n prefixCls: PropTypes.string,\r\n checkedColumnKeys: PropTypes.array,\r\n columnSettingOptions: PropTypes.array,\r\n children: PropTypes.node,\r\n onChange: PropTypes.func,\r\n onReset: PropTypes.func,\r\n disabledColumnKeys: PropTypes.array,\r\n onColumnsSave: PropTypes.func,\r\n uniqueKey: PropTypes.string,\r\n prefixUrl: PropTypes.string,\r\n settingRef: PropTypes.object,\r\n TextEnum: PropTypes.object\r\n};\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSetting.js","names":["ColumnSetting","props","getUrlParam","userId","tenantId","token","getToken","useSet","indeterminate","checkAll","columnSettingId","showColumns","state","setState","prefixCls","checkedColumnKeys","columnSettingOptions","onChange","onReset","disabledColumnKeys","onColumnsSave","uniqueKey","settingRef","prefixUrl","TextEnum","useImperativeHandle","split","useEffect","chkLen","length","optionLen","onCheckChange","e","key","newCheckedColumnKeys","target","checked","filter","item","onCheckAllChange","map","onSaveChange","getUmsColumns","axios","method","url","headers","Authorization","params","tableCode","then","data","result","total","record","rows","id","saveColumns","message","warn","messageWarningOneText","JSON","stringify","join","name","success","messageSuccessText","columnSettingTitleText","columnSettingResetText","opt","dataIndex","includes","title","margin","columnSettingSaveText","children","propTypes","PropTypes","string","array","node","func","object"],"sources":["vtx-datagrid/ColumnSetting.jsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle } from 'react';\r\nimport Popover from 'antd/lib/popover';\r\nimport Divider from 'antd/lib/divider';\r\nimport Button from 'antd/lib/button';\r\nimport Checkbox from 'antd/lib/checkbox';\r\nimport message from 'antd/lib/message';\r\nimport PropTypes from 'prop-types';\r\nimport useSet from '../_util/useSet';\r\nimport axios from 'axios';\r\nimport getUrlParam from '../_util/getUrlParam';\r\nimport getToken from '../_util/getToken';\r\n\r\nexport default function ColumnSetting(props) {\r\n const { userId = '', tenantId = '' } = getUrlParam();\r\n let token = getToken();\r\n const [state, setState] = useSet({\r\n indeterminate: false,\r\n checkAll: false,\r\n columnSettingId: '',\r\n showColumns: '',\r\n });\r\n const {\r\n prefixCls,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n onChange,\r\n onReset,\r\n disabledColumnKeys = [],\r\n onColumnsSave,\r\n uniqueKey,\r\n settingRef,\r\n prefixUrl='',\r\n TextEnum\r\n } = props;\r\n\r\n useImperativeHandle(settingRef, () => {\r\n return {\r\n showColumns: state.showColumns ? state.showColumns.split(',') : null,\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n const chkLen = checkedColumnKeys?.length;\r\n const optionLen = columnSettingOptions?.length;\r\n setState({\r\n checkAll: chkLen == optionLen,\r\n indeterminate: chkLen && chkLen < optionLen,\r\n });\r\n }, [checkedColumnKeys?.length, columnSettingOptions?.length]);\r\n\r\n const { indeterminate, checkAll } = state;\r\n\r\n // 单选\r\n const onCheckChange = (e, key) => {\r\n if (onChange) {\r\n const newCheckedColumnKeys = e.target.checked\r\n ? [...checkedColumnKeys, key]\r\n : checkedColumnKeys?.filter(item => item != key);\r\n onChange(newCheckedColumnKeys);\r\n }\r\n };\r\n\r\n // 全选\r\n const onCheckAllChange = e => {\r\n if (onChange) {\r\n const newCheckedColumnKeys = e.target.checked\r\n ? columnSettingOptions?.map(item => item.key)\r\n : [];\r\n onChange(newCheckedColumnKeys);\r\n }\r\n };\r\n // 保存按钮\r\n const onSaveChange = () => {\r\n if (onChange) {\r\n onColumnsSave(checkedColumnKeys);\r\n }\r\n };\r\n function getUmsColumns() {\r\n if (!onColumnsSave && !!uniqueKey) {\r\n axios({\r\n method: 'GET',\r\n url: `${prefixUrl}/cloud/management/api/v101/user/config/table/page`,\r\n headers: {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n },\r\n params: {\r\n tableCode: uniqueKey,\r\n },\r\n }).then(({ data }) => {\r\n if (data?.result == 0 && data?.data.total > 0) {\r\n let record = data.data.rows[0];\r\n record?.id &&\r\n setState({\r\n columnSettingId: record.id,\r\n showColumns: record.showColumns,\r\n });\r\n } else {\r\n setState({\r\n columnSettingId: '',\r\n showColumns: '',\r\n });\r\n }\r\n });\r\n }\r\n }\r\n //\r\n const saveColumns = () => {\r\n if ((checkedColumnKeys || []).length == 0) {\r\n message.warn(TextEnum.messageWarningOneText);\r\n return false;\r\n }\r\n axios({\r\n method: 'POST',\r\n url: `${prefixUrl}/cloud/management/api/v101/user/config/table/save`,\r\n headers: {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n 'Content-Type': 'application/json',\r\n },\r\n data: JSON.stringify({\r\n showColumns: (checkedColumnKeys || []).join(','),\r\n tableCode: uniqueKey,\r\n name: uniqueKey,\r\n userId,\r\n tenantId,\r\n id: state.columnSettingId,\r\n }),\r\n }).then(({ data }) => {\r\n if (data?.result == 0) {\r\n message.success(TextEnum.messageSuccessText);\r\n getUmsColumns();\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (uniqueKey) {\r\n getUmsColumns();\r\n }\r\n }, [uniqueKey]);\r\n\r\n useEffect(() => {\r\n onChange && onChange(state.showColumns ? state.showColumns.split(',') : '');\r\n }, [JSON.stringify(state.showColumns)]);\r\n\r\n return (\r\n <Popover\r\n trigger=\"click\"\r\n placement=\"bottomRight\"\r\n arrowPointAtCenter\r\n title={\r\n <div className={`${prefixCls}-column-setting-title`} slot=\"title\">\r\n <Checkbox\r\n className={`${prefixCls}-column-setting-checkbox-wrapper`}\r\n indeterminate={indeterminate}\r\n checked={checkAll}\r\n onChange={onCheckAllChange}\r\n >\r\n {TextEnum.columnSettingTitleText}\r\n </Checkbox>\r\n <a onClick={onReset}>{TextEnum.columnSettingResetText}</a>\r\n </div>\r\n }\r\n content={\r\n <div className={`${prefixCls}-column-setting-list`}>\r\n {columnSettingOptions?.map(opt => {\r\n const key = opt.key || opt.dataIndex;\r\n return (\r\n <div key={key}>\r\n <Checkbox\r\n checked={checkedColumnKeys?.includes(key)}\r\n onChange={e => onCheckChange(e, key)}\r\n disabled={disabledColumnKeys.includes(key)}\r\n >\r\n {opt.title}\r\n </Checkbox>\r\n </div>\r\n );\r\n })}\r\n {typeof onColumnsSave === 'function' ? (\r\n <>\r\n <Divider style={{ margin: '5px 0 10px 0' }} />\r\n <Button block={true} onClick={() => onSaveChange()}>\r\n {TextEnum.columnSettingSaveText}\r\n </Button>\r\n </>\r\n ) : null}\r\n {!onColumnsSave && uniqueKey ? (\r\n <>\r\n <Divider style={{ margin: '5px 0 10px 0' }} />\r\n <Button block={true} onClick={() => saveColumns()}>\r\n {TextEnum.columnSettingSaveText}\r\n </Button>\r\n </>\r\n ) : null}\r\n </div>\r\n }\r\n >\r\n {props.children}\r\n </Popover>\r\n );\r\n}\r\n\r\nColumnSetting.propTypes = {\r\n prefixCls: PropTypes.string,\r\n checkedColumnKeys: PropTypes.array,\r\n columnSettingOptions: PropTypes.array,\r\n children: PropTypes.node,\r\n onChange: PropTypes.func,\r\n onReset: PropTypes.func,\r\n disabledColumnKeys: PropTypes.array,\r\n onColumnsSave: PropTypes.func,\r\n uniqueKey: PropTypes.string,\r\n prefixUrl: PropTypes.string,\r\n settingRef: PropTypes.object,\r\n TextEnum: PropTypes.object\r\n};\r\n"],"mappings":"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"}
|
|
@@ -100,7 +100,9 @@ function VtxDatagrid(props) {
|
|
|
100
100
|
datagridId: "vtx-datagrid-".concat(new Date().getTime()),
|
|
101
101
|
scrollY: 0,
|
|
102
102
|
size: 'middle',
|
|
103
|
-
projectKey: ''
|
|
103
|
+
projectKey: '',
|
|
104
|
+
// keys in rest.columns
|
|
105
|
+
keysInColumns: []
|
|
104
106
|
}),
|
|
105
107
|
_useSet2 = _slicedToArray(_useSet, 2),
|
|
106
108
|
state = _useSet2[0],
|
|
@@ -261,14 +263,21 @@ function VtxDatagrid(props) {
|
|
|
261
263
|
var _rest$columns;
|
|
262
264
|
|
|
263
265
|
parseColumns();
|
|
266
|
+
var keys = [];
|
|
267
|
+
var options = (_rest$columns = rest.columns) === null || _rest$columns === void 0 ? void 0 : _rest$columns.map(function (col) {
|
|
268
|
+
keys.push(col.dataIndex || col.key);
|
|
269
|
+
return _objectSpread(_objectSpread({}, col), {}, {
|
|
270
|
+
key: col.dataIndex || col.key
|
|
271
|
+
});
|
|
272
|
+
});
|
|
264
273
|
setState({
|
|
265
|
-
columnSettingOptions:
|
|
266
|
-
|
|
267
|
-
key: col.dataIndex || col.key
|
|
268
|
-
});
|
|
269
|
-
})
|
|
274
|
+
columnSettingOptions: options,
|
|
275
|
+
keysInColumns: keys
|
|
270
276
|
});
|
|
271
277
|
}, [rest.columns]);
|
|
278
|
+
(0, _react.useEffect)(function () {
|
|
279
|
+
handleChangeColumns(state.keysInColumns);
|
|
280
|
+
}, [JSON.stringify(state.keysInColumns)]);
|
|
272
281
|
|
|
273
282
|
var parseColumns = function parseColumns(type) {
|
|
274
283
|
// 显示工具栏的同时并显示列设置
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isMac","navigator","userAgent","indexOf","VtxDatagrid","props","useSet","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","projectKey","state","setState","datagridRef","useRef","alertHeight","toolbarHeight","settingRef","prefixCls","toolbar","toolbarClassName","toolbarTilte","buttonGroup","refreshIconVisible","hideColumnSetting","hideColumnHeight","visibleColumnKeys","defaultVisibleColumnKeys","onVisibleColumnsChange","onRefresh","indexColumn","indexFixed","bordered","indexTitle","startIndex","autoFit","headFootHeight","columnResizable","components","className","style","emptyText","onRowSelectionClear","disabledColumnKeys","onColumnsSave","uniqueKey","prefixUrl","customEnumText","hideSelectionClear","rest","TextEnum","refreshText","densityDefaultText","densityMiddleText","densitySmallText","columnDensityText","columnSettingText","actionMoreText","columnSettingTitleText","columnSettingResetText","columnSettingSaveText","alartEmptyBtnText","alartAlreadyChooseText","alartAlreadyChooseUnitText","messageSuccessText","messageWarningOneText","paginationTotalText","paginationItemText","getUniqueKey","route","location","href","match","axios","method","url","pathname","then","res","status","data","key","useThrottleFn","current","bodyHeight","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","filter","call","dom","includes","minHeight","wait","calculateHeight","run","useEffect","resizeObserver","ResizeObserver","observe","box","disconnect","useLayoutEffect","dataSource","length","rowSelection","selectedRowKeys","join","parseColumns","columns","map","col","dataIndex","type","showColumns","columnKeys","item","hasAlert","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","title","fixed","i","_serialNum","scroll","y","height","locale","header","cell","ResizeableTitle","propTypes","PropTypes","string","bool","array","func","oneOfType","node","number","searchCollapseEvent$","object"],"sources":["vtx-datagrid/index.jsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport Table from 'antd/lib/table';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport Dropdown from 'antd/lib/dropdown';\r\nimport Menu from 'antd/lib/menu';\r\nimport Empty from 'antd/lib/empty';\r\nimport RedoOutlined from '@ant-design/icons/RedoOutlined';\r\nimport ColumnHeightOutlined from '@ant-design/icons/ColumnHeightOutlined';\r\nimport SettingOutlined from '@ant-design/icons/SettingOutlined';\r\nimport Alert from './Alert';\r\nimport ColumnSetting from './ColumnSetting';\r\nimport ResizeableTitle from './ResizeableTitle';\r\nimport renderColumnButtons from './renderColumnButtons';\r\nimport useSet from '../_util/useSet';\r\nimport isFunction from '../_util/isFunction';\r\nimport axios from 'axios';\r\nimport { useThrottleFn } from 'ahooks';\r\n\r\nconst isMac = navigator.userAgent.indexOf('Mac OS') !== -1;\r\n\r\nexport default function VtxDatagrid(props) {\r\n const [state, setState] = useSet({\r\n // 显示列\r\n visibleColumns: [],\r\n // 列设置选中的列\r\n checkedColumnKeys: [],\r\n // 列设置选项\r\n columnSettingOptions: [],\r\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\r\n scrollY: 0,\r\n size: 'middle',\r\n projectKey: '',\r\n });\r\n const {\r\n visibleColumns,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n datagridId,\r\n scrollY,\r\n size,\r\n } = state;\r\n const datagridRef = useRef(null);\r\n // 列设置提示高度\r\n const alertHeight = useRef(0);\r\n // 工具栏高度\r\n const toolbarHeight = useRef(0);\r\n // 列接口显示字段\r\n const settingRef = useRef();\r\n\r\n const {\r\n prefixCls = 'vtx-datagrid',\r\n toolbar = true,\r\n toolbarClassName,\r\n toolbarTilte = '查询结果',\r\n buttonGroup,\r\n refreshIconVisible = true,\r\n hideColumnSetting,\r\n hideColumnHeight,\r\n visibleColumnKeys,\r\n defaultVisibleColumnKeys,\r\n onVisibleColumnsChange,\r\n onRefresh,\r\n indexColumn = true,\r\n indexFixed = false,\r\n bordered = true,\r\n indexTitle = '序号',\r\n startIndex = 1,\r\n autoFit = true,\r\n headFootHeight = 115,\r\n columnResizable,\r\n components,\r\n className,\r\n style,\r\n emptyText = '暂无数据',\r\n onRowSelectionClear,\r\n disabledColumnKeys,\r\n onColumnsSave,\r\n uniqueKey,\r\n prefixUrl,\r\n customEnumText = {},\r\n hideSelectionClear = false,\r\n ...rest\r\n } = props;\r\n\r\n const TextEnum = {\r\n refreshText: '刷新',\r\n densityDefaultText: '默认',\r\n densityMiddleText: '中等',\r\n densitySmallText: '紧凑',\r\n columnDensityText: '列密度',\r\n columnSettingText: '列设置',\r\n\r\n actionMoreText: '更多',\r\n\r\n columnSettingTitleText: '列展示',\r\n columnSettingResetText: '重置',\r\n columnSettingSaveText: '保存',\r\n\r\n alartEmptyBtnText: '清空选择',\r\n alartAlreadyChooseText: '已选择',\r\n alartAlreadyChooseUnitText: '项',\r\n\r\n messageSuccessText: '操作成功',\r\n messageWarningOneText: '至少勾选一列保存',\r\n\r\n paginationTotalText: '共',\r\n paginationItemText: '条',\r\n\r\n ...customEnumText,\r\n };\r\n\r\n // 规则,菜单根目录_页面路由\r\n function getUniqueKey() {\r\n let route = location.href.match(/#\\/(\\S*)\\?/);\r\n if (route) {\r\n axios({\r\n method: 'GET',\r\n url: `${location.pathname}resources/json/menu.json`,\r\n }).then(res => {\r\n if (res?.status == 200 && res.data?.key) {\r\n setState({\r\n projectKey: `${res.data.key}_${route ? route[1] : 'test'}`,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n // 高度计算\r\n const { run: calculateHeight } = useThrottleFn(\r\n () => {\r\n if (!datagridRef.current) {\r\n return null;\r\n }\r\n const bodyHeight =\r\n datagridRef.current?.clientHeight -\r\n headFootHeight -\r\n toolbarHeight.current -\r\n alertHeight.current;\r\n const divs = datagridRef.current.getElementsByTagName('div');\r\n const bodyDiv = Array.prototype.filter.call(\r\n divs,\r\n dom =>\r\n dom.className.includes('ant-table-body') ||\r\n dom.className.includes('ant-table-content'),\r\n )[0];\r\n bodyDiv.style.minHeight = `${bodyHeight - (rest.scrollY || 0)}px`;\r\n setState({\r\n scrollY: bodyHeight,\r\n });\r\n },\r\n {\r\n wait: 350,\r\n },\r\n );\r\n\r\n useEffect(() => {\r\n // 当没有传入唯一值而且没有自定义列保存的时候且根据规则自动生成唯一值\r\n if (!uniqueKey && !onColumnsSave && (toolbar && !hideColumnSetting)) {\r\n getUniqueKey();\r\n }\r\n const resizeObserver = new ResizeObserver(() => {\r\n calculateHeight();\r\n });\r\n // componentDidMount\r\n if (autoFit && datagridRef.current) {\r\n resizeObserver.observe(datagridRef.current, {\r\n box: 'border-box',\r\n });\r\n }\r\n\r\n return () => {\r\n // componentWillUnmount\r\n if (autoFit) {\r\n resizeObserver.disconnect();\r\n }\r\n };\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n if (autoFit) {\r\n calculateHeight();\r\n }\r\n }, [rest.dataSource?.length, (rest.rowSelection?.selectedRowKeys || []).join(',')]);\r\n\r\n useEffect(() => {\r\n parseColumns();\r\n setState({\r\n columnSettingOptions: rest.columns?.map(col => ({\r\n ...col,\r\n key: col.dataIndex || col.key,\r\n })),\r\n });\r\n }, [rest.columns]);\r\n\r\n const parseColumns = type => {\r\n // 显示工具栏的同时并显示列设置\r\n if (toolbar && !hideColumnSetting) {\r\n if (defaultVisibleColumnKeys || visibleColumnKeys || settingRef.current?.showColumns) {\r\n const columnKeys =\r\n type === 'reset'\r\n ? defaultVisibleColumnKeys\r\n : settingRef.current?.showColumns ||\r\n visibleColumnKeys ||\r\n defaultVisibleColumnKeys;\r\n setState({\r\n checkedColumnKeys: columnKeys,\r\n visibleColumns: rest.columns?.filter(item =>\r\n columnKeys.includes(item.dataIndex || item.key),\r\n ),\r\n });\r\n } else {\r\n setState({\r\n checkedColumnKeys: rest.columns?.map(item => item.dataIndex || item.key),\r\n visibleColumns: rest.columns,\r\n });\r\n }\r\n } else {\r\n setState({\r\n visibleColumns: rest.columns,\r\n });\r\n }\r\n };\r\n const hasAlert = (rest.rowSelection?.selectedRowKeys || []).length > 0;\r\n alertHeight.current = !hideSelectionClear && hasAlert ? 49 : 0;\r\n toolbarHeight.current = toolbar ? 56 : 0;\r\n\r\n // 列设置回调\r\n const handleChangeColumns = keys => {\r\n const columnKeys = keys || rest.columns?.map(item => item.dataIndex || item.key);\r\n setState({\r\n checkedColumnKeys: columnKeys,\r\n visibleColumns: columnSettingOptions?.filter(item => columnKeys.includes(item.key)),\r\n });\r\n onVisibleColumnsChange && onVisibleColumnsChange(columnKeys);\r\n };\r\n\r\n // 工具栏\r\n let toolbarRender;\r\n if (toolbar) {\r\n toolbarRender = (\r\n <div className={classnames(`${prefixCls}-toolbar`, toolbarClassName)}>\r\n <div className={`${prefixCls}-toolbar-left`}>{toolbarTilte}</div>\r\n <div className={`${prefixCls}-toolbar-right`}>\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-actions`,\r\n )}\r\n >\r\n {buttonGroup}\r\n </div>\r\n {buttonGroup && <div className={`${prefixCls}-toolbar-line`} />}\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-setting`,\r\n )}\r\n >\r\n {refreshIconVisible && (\r\n <div\r\n className={`${prefixCls}-toolbar-setting-item`}\r\n onClick={() => {\r\n onRefresh && onRefresh();\r\n }}\r\n >\r\n <Tooltip title={TextEnum.refreshText}>\r\n <RedoOutlined />\r\n </Tooltip>\r\n </div>\r\n )}\r\n {!hideColumnHeight && (\r\n <div className={`${prefixCls}-toolbar-setting-item`}>\r\n <Dropdown\r\n overlay={\r\n <Menu\r\n onClick={({ key }) =>\r\n setState({\r\n size: key,\r\n })\r\n }\r\n selectedKeys={[size]}\r\n >\r\n <Menu.Item key=\"default\">\r\n {TextEnum.densityDefaultText}\r\n </Menu.Item>\r\n <Menu.Item key=\"middle\">\r\n {TextEnum.densityMiddleText}\r\n </Menu.Item>\r\n <Menu.Item key=\"small\">\r\n {TextEnum.densitySmallText}\r\n </Menu.Item>\r\n </Menu>\r\n }\r\n trigger={['click']}\r\n >\r\n <Tooltip title={TextEnum.columnDensityText}>\r\n <ColumnHeightOutlined />\r\n </Tooltip>\r\n </Dropdown>\r\n </div>\r\n )}\r\n {!hideColumnSetting && (\r\n <div className={`${prefixCls}-toolbar-setting-item`}>\r\n <ColumnSetting\r\n prefixCls={prefixCls}\r\n checkedColumnKeys={checkedColumnKeys}\r\n columnSettingOptions={columnSettingOptions}\r\n onChange={handleChangeColumns}\r\n onReset={() => parseColumns('reset')}\r\n disabledColumnKeys={disabledColumnKeys}\r\n onColumnsSave={onColumnsSave}\r\n uniqueKey={uniqueKey || state.projectKey}\r\n prefixUrl={prefixUrl}\r\n columns={rest.columns}\r\n settingRef={settingRef}\r\n TextEnum={TextEnum}\r\n >\r\n <Tooltip title={TextEnum.columnSettingText}>\r\n <SettingOutlined />\r\n </Tooltip>\r\n </ColumnSetting>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // 分页\r\n const getPagination = pagination => {\r\n if (typeof pagination === 'boolean' && !pagination) {\r\n return pagination;\r\n }\r\n return {\r\n pageSizeOptions: ['10', '20', '30', '40', '50'],\r\n showSizeChanger: true,\r\n showQuickJumper: true,\r\n showTotal(total) {\r\n return `${TextEnum.paginationTotalText} ${total} ${TextEnum.paginationItemText}`;\r\n },\r\n ...pagination,\r\n };\r\n };\r\n\r\n // 处理操作按钮\r\n let columns = (visibleColumns || []).map(column => {\r\n const newColumn = { ...column };\r\n if (newColumn.renderButtons) {\r\n delete newColumn.renderButtons;\r\n }\r\n if (newColumn.renderButtonsVisibleNum) {\r\n delete newColumn.renderButtonsVisibleNum;\r\n }\r\n return {\r\n ...newColumn,\r\n render: isFunction(column.renderButtons)\r\n ? function(text, record, index) {\r\n return renderColumnButtons(\r\n column.renderButtons,\r\n column.renderButtonsVisibleNum,\r\n text,\r\n record,\r\n index,\r\n TextEnum,\r\n );\r\n }\r\n : 'render' in column\r\n ? column.render\r\n : function(text) {\r\n return ['', null, undefined].includes(text) ? '-' : text;\r\n },\r\n };\r\n });\r\n // 配置了列可伸缩\r\n if (columnResizable) {\r\n columns = columns.map((col, index) => ({\r\n ...col,\r\n onHeaderCell: column => ({\r\n width: column.width,\r\n onResize: handleResize(index),\r\n }),\r\n }));\r\n const handleResize = index => (e, { size }) => {\r\n setState(({ visibleColumns }) => {\r\n const nextColumns = [...visibleColumns];\r\n nextColumns[index] = {\r\n ...nextColumns[index],\r\n width: size.width,\r\n };\r\n return { visibleColumns: nextColumns };\r\n });\r\n };\r\n }\r\n\r\n // 序号添加\r\n let dataSource = rest.dataSource;\r\n if (indexColumn) {\r\n columns = [\r\n {\r\n title: indexTitle,\r\n dataIndex: '_serialNum',\r\n key: '_serialNum',\r\n width: 70,\r\n fixed: indexFixed,\r\n },\r\n ...columns,\r\n ];\r\n dataSource = dataSource?.map((item, i) => {\r\n return {\r\n ...item,\r\n _serialNum: i + startIndex,\r\n };\r\n });\r\n }\r\n\r\n let scroll = rest.scroll || {};\r\n if (autoFit) {\r\n scroll = {\r\n ...scroll,\r\n y: scrollY - (rest.scrollY || 0),\r\n };\r\n }\r\n\r\n return (\r\n <div\r\n id={datagridId}\r\n className={classnames(prefixCls, className, {\r\n [`${prefixCls}-fit`]: autoFit,\r\n [`${prefixCls}-noFit`]: !autoFit,\r\n [`${prefixCls}-nodata`]: !dataSource?.length,\r\n [`${prefixCls}-userAgent-mac`]: isMac,\r\n })}\r\n style={style}\r\n ref={datagridRef}\r\n >\r\n {toolbarRender}\r\n {!hideSelectionClear && hasAlert ? (\r\n <div className={`${prefixCls}-alert`}>\r\n <Alert\r\n prefixCls={prefixCls}\r\n selectedRowKeys={rest.rowSelection?.selectedRowKeys}\r\n onRowSelectionClear={onRowSelectionClear}\r\n TextEnum={TextEnum}\r\n />\r\n </div>\r\n ):null}\r\n <Table\r\n size={size}\r\n bordered={dataSource?.length > 0 ? bordered : false}\r\n {...rest}\r\n columns={columns}\r\n dataSource={dataSource}\r\n scroll={scroll}\r\n pagination={getPagination(rest.pagination)}\r\n style={{\r\n height: `calc(100% - ${toolbarHeight.current + alertHeight.current}px)`,\r\n }}\r\n locale={{\r\n emptyText: <Empty description={emptyText} />,\r\n ...rest.locale,\r\n }}\r\n components={\r\n columnResizable\r\n ? {\r\n ...(components || {}),\r\n header: {\r\n cell: ResizeableTitle,\r\n },\r\n }\r\n : components\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nVtxDatagrid.propTypes = {\r\n prefixCls: PropTypes.string,\r\n refreshIconVisible: PropTypes.bool,\r\n hideColumnSetting: PropTypes.bool,\r\n hideSelectionClear: PropTypes.bool,\r\n hideColumnHeight: PropTypes.bool,\r\n bordered: PropTypes.bool,\r\n visibleColumnKeys: PropTypes.array,\r\n defaultVisibleColumnKeys: PropTypes.array,\r\n onVisibleColumnsChange: PropTypes.func,\r\n toolbarClassName: PropTypes.string,\r\n toolbar: PropTypes.bool,\r\n toolbarTilte: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n onRefresh: PropTypes.func,\r\n indexColumn: PropTypes.bool,\r\n indexFixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\r\n indexTitle: PropTypes.string,\r\n startIndex: PropTypes.number,\r\n buttonGroup: PropTypes.node,\r\n autoFit: PropTypes.bool,\r\n headFootHeight: PropTypes.number,\r\n columnResizable: PropTypes.bool,\r\n emptyText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n onRowSelectionClear: PropTypes.func,\r\n searchCollapseEvent$: PropTypes.object,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n disabledColumnKeys: PropTypes.array,\r\n onColumnsSave: PropTypes.func,\r\n components: PropTypes.object,\r\n customEnumText: PropTypes.object,\r\n uniqueKey: PropTypes.string,\r\n prefixUrl: PropTypes.string,\r\n};\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["isMac","navigator","userAgent","indexOf","VtxDatagrid","props","useSet","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","projectKey","keysInColumns","state","setState","datagridRef","useRef","alertHeight","toolbarHeight","settingRef","prefixCls","toolbar","toolbarClassName","toolbarTilte","buttonGroup","refreshIconVisible","hideColumnSetting","hideColumnHeight","visibleColumnKeys","defaultVisibleColumnKeys","onVisibleColumnsChange","onRefresh","indexColumn","indexFixed","bordered","indexTitle","startIndex","autoFit","headFootHeight","columnResizable","components","className","style","emptyText","onRowSelectionClear","disabledColumnKeys","onColumnsSave","uniqueKey","prefixUrl","customEnumText","hideSelectionClear","rest","TextEnum","refreshText","densityDefaultText","densityMiddleText","densitySmallText","columnDensityText","columnSettingText","actionMoreText","columnSettingTitleText","columnSettingResetText","columnSettingSaveText","alartEmptyBtnText","alartAlreadyChooseText","alartAlreadyChooseUnitText","messageSuccessText","messageWarningOneText","paginationTotalText","paginationItemText","getUniqueKey","route","location","href","match","axios","method","url","pathname","then","res","status","data","key","useThrottleFn","current","bodyHeight","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","filter","call","dom","includes","minHeight","wait","calculateHeight","run","useEffect","resizeObserver","ResizeObserver","observe","box","disconnect","useLayoutEffect","dataSource","length","rowSelection","selectedRowKeys","join","parseColumns","keys","options","columns","map","col","push","dataIndex","handleChangeColumns","JSON","stringify","type","showColumns","columnKeys","item","hasAlert","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","title","fixed","i","_serialNum","scroll","y","height","locale","header","cell","ResizeableTitle","propTypes","PropTypes","string","bool","array","func","oneOfType","node","number","searchCollapseEvent$","object"],"sources":["vtx-datagrid/index.jsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport Table from 'antd/lib/table';\r\nimport Tooltip from 'antd/lib/tooltip';\r\nimport Dropdown from 'antd/lib/dropdown';\r\nimport Menu from 'antd/lib/menu';\r\nimport Empty from 'antd/lib/empty';\r\nimport RedoOutlined from '@ant-design/icons/RedoOutlined';\r\nimport ColumnHeightOutlined from '@ant-design/icons/ColumnHeightOutlined';\r\nimport SettingOutlined from '@ant-design/icons/SettingOutlined';\r\nimport Alert from './Alert';\r\nimport ColumnSetting from './ColumnSetting';\r\nimport ResizeableTitle from './ResizeableTitle';\r\nimport renderColumnButtons from './renderColumnButtons';\r\nimport useSet from '../_util/useSet';\r\nimport isFunction from '../_util/isFunction';\r\nimport axios from 'axios';\r\nimport { useThrottleFn } from 'ahooks';\r\n\r\nconst isMac = navigator.userAgent.indexOf('Mac OS') !== -1;\r\n\r\nexport default function VtxDatagrid(props) {\r\n const [state, setState] = useSet({\r\n // 显示列\r\n visibleColumns: [],\r\n // 列设置选中的列\r\n checkedColumnKeys: [],\r\n // 列设置选项\r\n columnSettingOptions: [],\r\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\r\n scrollY: 0,\r\n size: 'middle',\r\n projectKey: '',\r\n // keys in rest.columns\r\n keysInColumns: [],\r\n });\r\n const {\r\n visibleColumns,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n datagridId,\r\n scrollY,\r\n size,\r\n } = state;\r\n const datagridRef = useRef(null);\r\n // 列设置提示高度\r\n const alertHeight = useRef(0);\r\n // 工具栏高度\r\n const toolbarHeight = useRef(0);\r\n // 列接口显示字段\r\n const settingRef = useRef();\r\n\r\n const {\r\n prefixCls = 'vtx-datagrid',\r\n toolbar = true,\r\n toolbarClassName,\r\n toolbarTilte = '查询结果',\r\n buttonGroup,\r\n refreshIconVisible = true,\r\n hideColumnSetting,\r\n hideColumnHeight,\r\n visibleColumnKeys,\r\n defaultVisibleColumnKeys,\r\n onVisibleColumnsChange,\r\n onRefresh,\r\n indexColumn = true,\r\n indexFixed = false,\r\n bordered = true,\r\n indexTitle = '序号',\r\n startIndex = 1,\r\n autoFit = true,\r\n headFootHeight = 115,\r\n columnResizable,\r\n components,\r\n className,\r\n style,\r\n emptyText = '暂无数据',\r\n onRowSelectionClear,\r\n disabledColumnKeys,\r\n onColumnsSave,\r\n uniqueKey,\r\n prefixUrl,\r\n customEnumText = {},\r\n hideSelectionClear = false,\r\n ...rest\r\n } = props;\r\n\r\n const TextEnum = {\r\n refreshText: '刷新',\r\n densityDefaultText: '默认',\r\n densityMiddleText: '中等',\r\n densitySmallText: '紧凑',\r\n columnDensityText: '列密度',\r\n columnSettingText: '列设置',\r\n\r\n actionMoreText: '更多',\r\n\r\n columnSettingTitleText: '列展示',\r\n columnSettingResetText: '重置',\r\n columnSettingSaveText: '保存',\r\n\r\n alartEmptyBtnText: '清空选择',\r\n alartAlreadyChooseText: '已选择',\r\n alartAlreadyChooseUnitText: '项',\r\n\r\n messageSuccessText: '操作成功',\r\n messageWarningOneText: '至少勾选一列保存',\r\n\r\n paginationTotalText: '共',\r\n paginationItemText: '条',\r\n\r\n ...customEnumText,\r\n };\r\n\r\n // 规则,菜单根目录_页面路由\r\n function getUniqueKey() {\r\n let route = location.href.match(/#\\/(\\S*)\\?/);\r\n if (route) {\r\n axios({\r\n method: 'GET',\r\n url: `${location.pathname}resources/json/menu.json`,\r\n }).then(res => {\r\n if (res?.status == 200 && res.data?.key) {\r\n setState({\r\n projectKey: `${res.data.key}_${route ? route[1] : 'test'}`,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n // 高度计算\r\n const { run: calculateHeight } = useThrottleFn(\r\n () => {\r\n if (!datagridRef.current) {\r\n return null;\r\n }\r\n const bodyHeight =\r\n datagridRef.current?.clientHeight -\r\n headFootHeight -\r\n toolbarHeight.current -\r\n alertHeight.current;\r\n const divs = datagridRef.current.getElementsByTagName('div');\r\n const bodyDiv = Array.prototype.filter.call(\r\n divs,\r\n dom =>\r\n dom.className.includes('ant-table-body') ||\r\n dom.className.includes('ant-table-content'),\r\n )[0];\r\n bodyDiv.style.minHeight = `${bodyHeight - (rest.scrollY || 0)}px`;\r\n setState({\r\n scrollY: bodyHeight,\r\n });\r\n },\r\n {\r\n wait: 350,\r\n },\r\n );\r\n\r\n useEffect(() => {\r\n // 当没有传入唯一值而且没有自定义列保存的时候且根据规则自动生成唯一值\r\n if (!uniqueKey && !onColumnsSave && (toolbar && !hideColumnSetting)) {\r\n getUniqueKey();\r\n }\r\n const resizeObserver = new ResizeObserver(() => {\r\n calculateHeight();\r\n });\r\n // componentDidMount\r\n if (autoFit && datagridRef.current) {\r\n resizeObserver.observe(datagridRef.current, {\r\n box: 'border-box',\r\n });\r\n }\r\n\r\n return () => {\r\n // componentWillUnmount\r\n if (autoFit) {\r\n resizeObserver.disconnect();\r\n }\r\n };\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n if (autoFit) {\r\n calculateHeight();\r\n }\r\n }, [rest.dataSource?.length, (rest.rowSelection?.selectedRowKeys || []).join(',')]);\r\n\r\n useEffect(() => {\r\n parseColumns();\r\n let keys = [];\r\n let options = rest.columns?.map(col => {\r\n keys.push(col.dataIndex || col.key);\r\n return {\r\n ...col,\r\n key: col.dataIndex || col.key,\r\n }\r\n })\r\n setState({\r\n columnSettingOptions: options,\r\n keysInColumns: keys\r\n });\r\n }, [rest.columns]);\r\n\r\n useEffect(()=>{\r\n handleChangeColumns(state.keysInColumns);\r\n },[JSON.stringify(state.keysInColumns)])\r\n\r\n const parseColumns = type => {\r\n // 显示工具栏的同时并显示列设置\r\n if (toolbar && !hideColumnSetting) {\r\n if (defaultVisibleColumnKeys || visibleColumnKeys || settingRef.current?.showColumns) {\r\n const columnKeys =\r\n type === 'reset'\r\n ? defaultVisibleColumnKeys\r\n : settingRef.current?.showColumns ||\r\n visibleColumnKeys ||\r\n defaultVisibleColumnKeys;\r\n setState({\r\n checkedColumnKeys: columnKeys,\r\n visibleColumns: rest.columns?.filter(item =>\r\n columnKeys.includes(item.dataIndex || item.key),\r\n ),\r\n });\r\n } else {\r\n setState({\r\n checkedColumnKeys: rest.columns?.map(item => item.dataIndex || item.key),\r\n visibleColumns: rest.columns,\r\n });\r\n }\r\n } else {\r\n setState({\r\n visibleColumns: rest.columns,\r\n });\r\n }\r\n };\r\n const hasAlert = (rest.rowSelection?.selectedRowKeys || []).length > 0;\r\n alertHeight.current = !hideSelectionClear && hasAlert ? 49 : 0;\r\n toolbarHeight.current = toolbar ? 56 : 0;\r\n\r\n // 列设置回调\r\n const handleChangeColumns = keys => {\r\n const columnKeys = keys || rest.columns?.map(item => item.dataIndex || item.key);\r\n setState({\r\n checkedColumnKeys: columnKeys,\r\n visibleColumns: columnSettingOptions?.filter(item => columnKeys.includes(item.key)),\r\n });\r\n onVisibleColumnsChange && onVisibleColumnsChange(columnKeys);\r\n };\r\n\r\n // 工具栏\r\n let toolbarRender;\r\n if (toolbar) {\r\n toolbarRender = (\r\n <div className={classnames(`${prefixCls}-toolbar`, toolbarClassName)}>\r\n <div className={`${prefixCls}-toolbar-left`}>{toolbarTilte}</div>\r\n <div className={`${prefixCls}-toolbar-right`}>\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-actions`,\r\n )}\r\n >\r\n {buttonGroup}\r\n </div>\r\n {buttonGroup && <div className={`${prefixCls}-toolbar-line`} />}\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-setting`,\r\n )}\r\n >\r\n {refreshIconVisible && (\r\n <div\r\n className={`${prefixCls}-toolbar-setting-item`}\r\n onClick={() => {\r\n onRefresh && onRefresh();\r\n }}\r\n >\r\n <Tooltip title={TextEnum.refreshText}>\r\n <RedoOutlined />\r\n </Tooltip>\r\n </div>\r\n )}\r\n {!hideColumnHeight && (\r\n <div className={`${prefixCls}-toolbar-setting-item`}>\r\n <Dropdown\r\n overlay={\r\n <Menu\r\n onClick={({ key }) =>\r\n setState({\r\n size: key,\r\n })\r\n }\r\n selectedKeys={[size]}\r\n >\r\n <Menu.Item key=\"default\">\r\n {TextEnum.densityDefaultText}\r\n </Menu.Item>\r\n <Menu.Item key=\"middle\">\r\n {TextEnum.densityMiddleText}\r\n </Menu.Item>\r\n <Menu.Item key=\"small\">\r\n {TextEnum.densitySmallText}\r\n </Menu.Item>\r\n </Menu>\r\n }\r\n trigger={['click']}\r\n >\r\n <Tooltip title={TextEnum.columnDensityText}>\r\n <ColumnHeightOutlined />\r\n </Tooltip>\r\n </Dropdown>\r\n </div>\r\n )}\r\n {!hideColumnSetting && (\r\n <div className={`${prefixCls}-toolbar-setting-item`}>\r\n <ColumnSetting\r\n prefixCls={prefixCls}\r\n checkedColumnKeys={checkedColumnKeys}\r\n columnSettingOptions={columnSettingOptions}\r\n onChange={handleChangeColumns}\r\n onReset={() => parseColumns('reset')}\r\n disabledColumnKeys={disabledColumnKeys}\r\n onColumnsSave={onColumnsSave}\r\n uniqueKey={uniqueKey || state.projectKey}\r\n prefixUrl={prefixUrl}\r\n columns={rest.columns}\r\n settingRef={settingRef}\r\n TextEnum={TextEnum}\r\n >\r\n <Tooltip title={TextEnum.columnSettingText}>\r\n <SettingOutlined />\r\n </Tooltip>\r\n </ColumnSetting>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // 分页\r\n const getPagination = pagination => {\r\n if (typeof pagination === 'boolean' && !pagination) {\r\n return pagination;\r\n }\r\n return {\r\n pageSizeOptions: ['10', '20', '30', '40', '50'],\r\n showSizeChanger: true,\r\n showQuickJumper: true,\r\n showTotal(total) {\r\n return `${TextEnum.paginationTotalText} ${total} ${TextEnum.paginationItemText}`;\r\n },\r\n ...pagination,\r\n };\r\n };\r\n\r\n // 处理操作按钮\r\n let columns = (visibleColumns || []).map(column => {\r\n const newColumn = { ...column };\r\n if (newColumn.renderButtons) {\r\n delete newColumn.renderButtons;\r\n }\r\n if (newColumn.renderButtonsVisibleNum) {\r\n delete newColumn.renderButtonsVisibleNum;\r\n }\r\n return {\r\n ...newColumn,\r\n render: isFunction(column.renderButtons)\r\n ? function(text, record, index) {\r\n return renderColumnButtons(\r\n column.renderButtons,\r\n column.renderButtonsVisibleNum,\r\n text,\r\n record,\r\n index,\r\n TextEnum,\r\n );\r\n }\r\n : 'render' in column\r\n ? column.render\r\n : function(text) {\r\n return ['', null, undefined].includes(text) ? '-' : text;\r\n },\r\n };\r\n });\r\n // 配置了列可伸缩\r\n if (columnResizable) {\r\n columns = columns.map((col, index) => ({\r\n ...col,\r\n onHeaderCell: column => ({\r\n width: column.width,\r\n onResize: handleResize(index),\r\n }),\r\n }));\r\n const handleResize = index => (e, { size }) => {\r\n setState(({ visibleColumns }) => {\r\n const nextColumns = [...visibleColumns];\r\n nextColumns[index] = {\r\n ...nextColumns[index],\r\n width: size.width,\r\n };\r\n return { visibleColumns: nextColumns };\r\n });\r\n };\r\n }\r\n\r\n // 序号添加\r\n let dataSource = rest.dataSource;\r\n if (indexColumn) {\r\n columns = [\r\n {\r\n title: indexTitle,\r\n dataIndex: '_serialNum',\r\n key: '_serialNum',\r\n width: 70,\r\n fixed: indexFixed,\r\n },\r\n ...columns,\r\n ];\r\n dataSource = dataSource?.map((item, i) => {\r\n return {\r\n ...item,\r\n _serialNum: i + startIndex,\r\n };\r\n });\r\n }\r\n\r\n let scroll = rest.scroll || {};\r\n if (autoFit) {\r\n scroll = {\r\n ...scroll,\r\n y: scrollY - (rest.scrollY || 0),\r\n };\r\n }\r\n\r\n return (\r\n <div\r\n id={datagridId}\r\n className={classnames(prefixCls, className, {\r\n [`${prefixCls}-fit`]: autoFit,\r\n [`${prefixCls}-noFit`]: !autoFit,\r\n [`${prefixCls}-nodata`]: !dataSource?.length,\r\n [`${prefixCls}-userAgent-mac`]: isMac,\r\n })}\r\n style={style}\r\n ref={datagridRef}\r\n >\r\n {toolbarRender}\r\n {!hideSelectionClear && hasAlert ? (\r\n <div className={`${prefixCls}-alert`}>\r\n <Alert\r\n prefixCls={prefixCls}\r\n selectedRowKeys={rest.rowSelection?.selectedRowKeys}\r\n onRowSelectionClear={onRowSelectionClear}\r\n TextEnum={TextEnum}\r\n />\r\n </div>\r\n ):null}\r\n <Table\r\n size={size}\r\n bordered={dataSource?.length > 0 ? bordered : false}\r\n {...rest}\r\n columns={columns}\r\n dataSource={dataSource}\r\n scroll={scroll}\r\n pagination={getPagination(rest.pagination)}\r\n style={{\r\n height: `calc(100% - ${toolbarHeight.current + alertHeight.current}px)`,\r\n }}\r\n locale={{\r\n emptyText: <Empty description={emptyText} />,\r\n ...rest.locale,\r\n }}\r\n components={\r\n columnResizable\r\n ? {\r\n ...(components || {}),\r\n header: {\r\n cell: ResizeableTitle,\r\n },\r\n }\r\n : components\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nVtxDatagrid.propTypes = {\r\n prefixCls: PropTypes.string,\r\n refreshIconVisible: PropTypes.bool,\r\n hideColumnSetting: PropTypes.bool,\r\n hideSelectionClear: PropTypes.bool,\r\n hideColumnHeight: PropTypes.bool,\r\n bordered: PropTypes.bool,\r\n visibleColumnKeys: PropTypes.array,\r\n defaultVisibleColumnKeys: PropTypes.array,\r\n onVisibleColumnsChange: PropTypes.func,\r\n toolbarClassName: PropTypes.string,\r\n toolbar: PropTypes.bool,\r\n toolbarTilte: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n onRefresh: PropTypes.func,\r\n indexColumn: PropTypes.bool,\r\n indexFixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\r\n indexTitle: PropTypes.string,\r\n startIndex: PropTypes.number,\r\n buttonGroup: PropTypes.node,\r\n autoFit: PropTypes.bool,\r\n headFootHeight: PropTypes.number,\r\n columnResizable: PropTypes.bool,\r\n emptyText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n onRowSelectionClear: PropTypes.func,\r\n searchCollapseEvent$: PropTypes.object,\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n disabledColumnKeys: PropTypes.array,\r\n onColumnsSave: PropTypes.func,\r\n components: PropTypes.object,\r\n customEnumText: PropTypes.object,\r\n uniqueKey: PropTypes.string,\r\n prefixUrl: PropTypes.string,\r\n};\r\n"],"mappings":"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"}
|
|
@@ -216,7 +216,8 @@ function History(props) {
|
|
|
216
216
|
}, /*#__PURE__*/_react["default"].createElement(_components.VtxInput, {
|
|
217
217
|
style: {
|
|
218
218
|
width: 150
|
|
219
|
-
}
|
|
219
|
+
},
|
|
220
|
+
placeholder: TextEnum.searchInputPlaceholderText
|
|
220
221
|
}))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
221
222
|
type: "primary",
|
|
222
223
|
onClick: submit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"History.js","names":["History","props","params","onCancel","historyPageUrl","downFileUrl","TextEnum","customTableProps","Form","useForm","form","timer","useRef","getTable","formData","current","pageSize","getData","page","size","res","list","total","result","Array","isArray","data","rows","map","item","key","id","useAntdTable","defaultPageSize","tableProps","refresh","search","loading","pagination","useEffect","dataSource","ifAllFinish","every","finish","clearInterval","setInterval","JSON","stringify","submit","reset","columns","title","historyFieldFileNameText","dataIndex","historyFieldFinishText","width","render","text","color","statusDoneText","statusPendingText","historyFieldStartTimeText","historyFieldActionText","renderButtons","_","record","name","downloadBtnText","onClick","downloadFile","visible","historyTitleText","VtxModal","middle","display","justifyContent","marginBottom","searchFieldFileNameText","marginRight","searchBtnConfirmText","searchBtnClearText","height","propTypes","PropTypes","object","func","string"],"sources":["vtx-export-async/History.js"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\r\nimport { VtxDatagrid, VtxInput, VtxModal } from '@vtx/components';\r\nimport { downloadFile } from '@vtx/utils';\r\nimport { useAntdTable } from 'ahooks';\r\nimport { Button, Form } from 'antd';\r\nimport { getData } from './util';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction History(props) {\r\n const { params = {}, onCancel, historyPageUrl = '', downFileUrl = '', TextEnum = {}, customTableProps = {} } = props;\r\n const [form] = Form.useForm();\r\n const timer = useRef(null);\r\n const getTable = async ({ current, pageSize }, formData) => {\r\n const res = await getData(historyPageUrl, {\r\n ...(params || {}),\r\n ...formData,\r\n page: current - 1,\r\n size: pageSize,\r\n });\r\n let list = [],\r\n total = 0;\r\n if (res?.result === 0 && Array.isArray(res.data?.rows)) {\r\n list = res.data?.rows.map(item => ({ ...item, key: item.id }));\r\n total = res.data?.total || 0;\r\n }\r\n return { list, total };\r\n };\r\n\r\n const { tableProps, refresh, search, loading, pagination } = useAntdTable(getTable, {\r\n defaultPageSize: 10,\r\n form,\r\n // manual: true\r\n });\r\n\r\n // 如果查询数据中有还未导出成功的数据,则3秒刷新一次列表\r\n useEffect(() => {\r\n const { dataSource } = tableProps;\r\n const ifAllFinish = dataSource.every(item => item.finish);\r\n if (ifAllFinish) {\r\n timer.current && clearInterval(timer.current);\r\n timer.current = null;\r\n return;\r\n }\r\n timer.current = setInterval(() => {\r\n refresh();\r\n }, 3 * 1000);\r\n }, [JSON.stringify(tableProps.dataSource)]);\r\n\r\n const { pageSize, current } = pagination;\r\n const { submit, reset } = search;\r\n const columns = [\r\n {\r\n title: TextEnum.historyFieldFileNameText,\r\n dataIndex: 'fileName',\r\n },\r\n {\r\n title: TextEnum.historyFieldFinishText,\r\n dataIndex: 'finish',\r\n width: 80,\r\n render: text => {\r\n return (\r\n <span style={{ color: text ? '#70b603' : '#f59a23' }}>\r\n {text ? TextEnum.statusDoneText : TextEnum.statusPendingText}\r\n </span>\r\n );\r\n },\r\n },\r\n {\r\n title: TextEnum.historyFieldStartTimeText,\r\n dataIndex: 'startTime',\r\n width: 170,\r\n },\r\n {\r\n title: TextEnum.historyFieldActionText,\r\n dataIndex: 'action',\r\n width: 70,\r\n renderButtons: (_, record) => {\r\n return [\r\n {\r\n name: TextEnum.downloadBtnText,\r\n onClick() {\r\n downloadFile(\r\n downFileUrl,\r\n {\r\n data: {\r\n id: record.id,\r\n },\r\n },\r\n 'blob',\r\n );\r\n },\r\n visible: record.finish,\r\n },\r\n ];\r\n },\r\n },\r\n ];\r\n return (\r\n <VtxModal\r\n title={TextEnum.historyTitleText}\r\n visible\r\n onCancel={() => {\r\n if (timer.current) {\r\n clearInterval(timer.current);\r\n timer.current = null;\r\n }\r\n onCancel && onCancel();\r\n }}\r\n width={VtxModal.size.middle}\r\n footer={null}\r\n >\r\n <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 8 }}>\r\n <Form form={form} layout=\"inline\">\r\n <Form.Item name=\"fileName\" label={TextEnum.searchFieldFileNameText}>\r\n <VtxInput style={{ width: 150 }} />\r\n </Form.Item>\r\n </Form>\r\n <div>\r\n <Button type=\"primary\" onClick={submit} style={{ marginRight: 8 }}>\r\n {TextEnum.searchBtnConfirmText}\r\n </Button>\r\n <Button onClick={reset}>{TextEnum.searchBtnClearText}</Button>\r\n </div>\r\n </div>\r\n <div style={{ height: '400px' }}>\r\n <VtxDatagrid\r\n {...tableProps}\r\n columns={columns}\r\n {...customTableProps}\r\n startIndex={(current - 1) * pageSize + 1}\r\n loading={loading}\r\n toolbar={false}\r\n size=\"small\"\r\n />\r\n </div>\r\n </VtxModal>\r\n );\r\n}\r\n\r\nHistory.propTypes = {\r\n params: PropTypes.object,\r\n onCancel: PropTypes.func,\r\n historyPageUrl: PropTypes.string,\r\n downFileUrl: PropTypes.string,\r\n TextEnum: PropTypes.object,\r\n customTableProps: PropTypes.object,\r\n}\r\n\r\nexport default History;"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"History.js","names":["History","props","params","onCancel","historyPageUrl","downFileUrl","TextEnum","customTableProps","Form","useForm","form","timer","useRef","getTable","formData","current","pageSize","getData","page","size","res","list","total","result","Array","isArray","data","rows","map","item","key","id","useAntdTable","defaultPageSize","tableProps","refresh","search","loading","pagination","useEffect","dataSource","ifAllFinish","every","finish","clearInterval","setInterval","JSON","stringify","submit","reset","columns","title","historyFieldFileNameText","dataIndex","historyFieldFinishText","width","render","text","color","statusDoneText","statusPendingText","historyFieldStartTimeText","historyFieldActionText","renderButtons","_","record","name","downloadBtnText","onClick","downloadFile","visible","historyTitleText","VtxModal","middle","display","justifyContent","marginBottom","searchFieldFileNameText","searchInputPlaceholderText","marginRight","searchBtnConfirmText","searchBtnClearText","height","propTypes","PropTypes","object","func","string"],"sources":["vtx-export-async/History.js"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\r\nimport { VtxDatagrid, VtxInput, VtxModal } from '@vtx/components';\r\nimport { downloadFile } from '@vtx/utils';\r\nimport { useAntdTable } from 'ahooks';\r\nimport { Button, Form } from 'antd';\r\nimport { getData } from './util';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction History(props) {\r\n const { params = {}, onCancel, historyPageUrl = '', downFileUrl = '', TextEnum = {}, customTableProps = {} } = props;\r\n const [form] = Form.useForm();\r\n const timer = useRef(null);\r\n const getTable = async ({ current, pageSize }, formData) => {\r\n const res = await getData(historyPageUrl, {\r\n ...(params || {}),\r\n ...formData,\r\n page: current - 1,\r\n size: pageSize,\r\n });\r\n let list = [],\r\n total = 0;\r\n if (res?.result === 0 && Array.isArray(res.data?.rows)) {\r\n list = res.data?.rows.map(item => ({ ...item, key: item.id }));\r\n total = res.data?.total || 0;\r\n }\r\n return { list, total };\r\n };\r\n\r\n const { tableProps, refresh, search, loading, pagination } = useAntdTable(getTable, {\r\n defaultPageSize: 10,\r\n form,\r\n // manual: true\r\n });\r\n\r\n // 如果查询数据中有还未导出成功的数据,则3秒刷新一次列表\r\n useEffect(() => {\r\n const { dataSource } = tableProps;\r\n const ifAllFinish = dataSource.every(item => item.finish);\r\n if (ifAllFinish) {\r\n timer.current && clearInterval(timer.current);\r\n timer.current = null;\r\n return;\r\n }\r\n timer.current = setInterval(() => {\r\n refresh();\r\n }, 3 * 1000);\r\n }, [JSON.stringify(tableProps.dataSource)]);\r\n\r\n const { pageSize, current } = pagination;\r\n const { submit, reset } = search;\r\n const columns = [\r\n {\r\n title: TextEnum.historyFieldFileNameText,\r\n dataIndex: 'fileName',\r\n },\r\n {\r\n title: TextEnum.historyFieldFinishText,\r\n dataIndex: 'finish',\r\n width: 80,\r\n render: text => {\r\n return (\r\n <span style={{ color: text ? '#70b603' : '#f59a23' }}>\r\n {text ? TextEnum.statusDoneText : TextEnum.statusPendingText}\r\n </span>\r\n );\r\n },\r\n },\r\n {\r\n title: TextEnum.historyFieldStartTimeText,\r\n dataIndex: 'startTime',\r\n width: 170,\r\n },\r\n {\r\n title: TextEnum.historyFieldActionText,\r\n dataIndex: 'action',\r\n width: 70,\r\n renderButtons: (_, record) => {\r\n return [\r\n {\r\n name: TextEnum.downloadBtnText,\r\n onClick() {\r\n downloadFile(\r\n downFileUrl,\r\n {\r\n data: {\r\n id: record.id,\r\n },\r\n },\r\n 'blob',\r\n );\r\n },\r\n visible: record.finish,\r\n },\r\n ];\r\n },\r\n },\r\n ];\r\n return (\r\n <VtxModal\r\n title={TextEnum.historyTitleText}\r\n visible\r\n onCancel={() => {\r\n if (timer.current) {\r\n clearInterval(timer.current);\r\n timer.current = null;\r\n }\r\n onCancel && onCancel();\r\n }}\r\n width={VtxModal.size.middle}\r\n footer={null}\r\n >\r\n <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 8 }}>\r\n <Form form={form} layout=\"inline\">\r\n <Form.Item name=\"fileName\" label={TextEnum.searchFieldFileNameText}>\r\n <VtxInput style={{ width: 150 }} placeholder={TextEnum.searchInputPlaceholderText} />\r\n </Form.Item>\r\n </Form>\r\n <div>\r\n <Button type=\"primary\" onClick={submit} style={{ marginRight: 8 }}>\r\n {TextEnum.searchBtnConfirmText}\r\n </Button>\r\n <Button onClick={reset}>{TextEnum.searchBtnClearText}</Button>\r\n </div>\r\n </div>\r\n <div style={{ height: '400px' }}>\r\n <VtxDatagrid\r\n {...tableProps}\r\n columns={columns}\r\n {...customTableProps}\r\n startIndex={(current - 1) * pageSize + 1}\r\n loading={loading}\r\n toolbar={false}\r\n size=\"small\"\r\n />\r\n </div>\r\n </VtxModal>\r\n );\r\n}\r\n\r\nHistory.propTypes = {\r\n params: PropTypes.object,\r\n onCancel: PropTypes.func,\r\n historyPageUrl: PropTypes.string,\r\n downFileUrl: PropTypes.string,\r\n TextEnum: PropTypes.object,\r\n customTableProps: PropTypes.object,\r\n}\r\n\r\nexport default History;"],"mappings":"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"}
|
|
@@ -130,7 +130,8 @@ var VtxExportAsync = function VtxExportAsync(props) {
|
|
|
130
130
|
downloadBtnText: '下载',
|
|
131
131
|
searchFieldFileNameText: '名称',
|
|
132
132
|
searchBtnConfirmText: '查询',
|
|
133
|
-
searchBtnClearText: '重置'
|
|
133
|
+
searchBtnClearText: '重置',
|
|
134
|
+
searchInputPlaceholderText: '请输入'
|
|
134
135
|
}, customEnumText);
|
|
135
136
|
|
|
136
137
|
var Options = [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["timer","VtxExportAsync","props","prefixCls","uniqueKey","title","style","selectedRowKeys","tableData","columns","allColumns","params","getExportParams","requestExportUrl","checkResultUrl","downFileUrl","historyPageUrl","customEnumText","allContentButton","rowButton","pageButton","allButton","customTableProps","Form","useForm","form","useSetState","visible","loading","isRequest","isDone","fileId","timestamp","state","setState","TextEnum","btnText","modalTitleText","btnOperaCancelText","btnOperaHistoryText","btnOperaConfirmText","optionAllText","optionRowsText","optionPageText","contentTableText","contentAllText","messageNoDataText","messageRowsNoDataText","messagePageNoDataText","fieldContentText","fieldTypeText","fieldFileNameText","placeholderFileName","fileMiddleText","requireFieldMsgText","historyTitleText","historyFieldFileNameText","historyFieldFinishText","historyFieldStartTimeText","historyFieldActionText","statusDoneText","statusPendingText","downloadBtnText","searchFieldFileNameText","searchBtnConfirmText","searchBtnClearText","Options","key","show","Contents","useEffect","dayjs","format","close","clearInterval","resetFields","showHistory","showHistoryModal","submit","validateFields","then","values","ids","downloadAll","flag","columnJson","JSON","stringify","content","filter","item","map","field","type","length","message","warn","id","postData","join","fileName","res","result","data","error","msg","required","propTypes","PropTypes","string","object","array","bool","func"],"sources":["vtx-export-async/index.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\r\nimport ExportOutlined from '@ant-design/icons/ExportOutlined';\r\nimport PropTypes from 'prop-types';\r\nimport { useSetState } from 'ahooks';\r\nimport { Button, Form, Input, message, Modal, Radio } from 'antd';\r\nimport dayjs from 'dayjs';\r\nimport { getData, postData } from './util';\r\nimport History from './History';\r\n\r\nlet timer = null;\r\nconst VtxExportAsync = props => {\r\n const prefixCls = 'vtx-export-async';\r\n const {\r\n uniqueKey,\r\n title = '',\r\n style = {},\r\n selectedRowKeys = [],\r\n tableData = [],\r\n columns = [],\r\n allColumns = [],\r\n params = {},\r\n getExportParams,\r\n requestExportUrl,\r\n checkResultUrl,\r\n downFileUrl,\r\n historyPageUrl,\r\n customEnumText = {},\r\n allContentButton = true,\r\n rowButton = true,\r\n pageButton = true,\r\n allButton = true,\r\n customTableProps={}\r\n } = props;\r\n const [form] = Form.useForm();\r\n const [state, setState] = useSetState({\r\n visible: false,\r\n loading: false,\r\n isRequest: false,\r\n isDone: false,\r\n fileId: '',\r\n timestamp: '',\r\n });\r\n\r\n const TextEnum = {\r\n btnText: '导出',\r\n modalTitleText: '导出',\r\n btnOperaCancelText: '取消',\r\n btnOperaHistoryText: '导出任务',\r\n btnOperaConfirmText: '导出',\r\n\r\n optionAllText: '全部',\r\n optionRowsText: '选中行',\r\n optionPageText: '当前页',\r\n\r\n contentTableText: '列表字段',\r\n contentAllText: '全部字段',\r\n\r\n messageNoDataText: '当前无数据',\r\n messageRowsNoDataText: '当前无选中数据',\r\n messagePageNoDataText: '当前页无数据',\r\n\r\n fieldContentText: '导出内容',\r\n fieldTypeText: '导出范围',\r\n fieldFileNameText: '文件名',\r\n\r\n placeholderFileName: '请输入',\r\n\r\n fileMiddleText: '导出文件',\r\n requireFieldMsgText: '不能为空',\r\n\r\n historyTitleText: '导出任务',\r\n\r\n historyFieldFileNameText: '名称',\r\n historyFieldFinishText: '状态',\r\n historyFieldStartTimeText: '导出时间',\r\n historyFieldActionText: '操作',\r\n\r\n statusDoneText: '导出完成',\r\n statusPendingText: '导出中',\r\n\r\n downloadBtnText: '下载',\r\n\r\n searchFieldFileNameText: '名称',\r\n searchBtnConfirmText: '查询',\r\n searchBtnClearText: '重置',\r\n\r\n ...customEnumText,\r\n };\r\n\r\n const Options = [\r\n { title: TextEnum.optionAllText, key: 'all', show: allButton },\r\n { title: TextEnum.optionRowsText, key: 'rows', show: rowButton },\r\n { title: TextEnum.optionPageText, key: 'page', show: pageButton },\r\n ];\r\n const Contents = [\r\n { title: TextEnum.contentTableText, key: 'table', show: true },\r\n { title: TextEnum.contentAllText, key: 'all', show: allContentButton },\r\n ];\r\n\r\n useEffect(() => {\r\n setState({ timestamp: dayjs().format('YYYYMMDDHHmmss') });\r\n }, [state.visible]);\r\n\r\n function close() {\r\n if (timer) {\r\n clearInterval(timer);\r\n timer = null;\r\n }\r\n form.resetFields();\r\n setState({ visible: false, isRequest: false, isDone: false, timer: null });\r\n }\r\n function showHistory() {\r\n setState({ showHistoryModal: true });\r\n }\r\n function submit() {\r\n if (form) {\r\n form.validateFields().then(values => {\r\n let ids = [],\r\n downloadAll = false,\r\n flag = true,\r\n columnJson = JSON.stringify(\r\n (values.content == 'all' ? allColumns : columns)\r\n .filter(item => item.key !== 'action')\r\n .map(item => {\r\n return {\r\n ...item,\r\n title: item.title,\r\n field: item.key,\r\n };\r\n }),\r\n );\r\n switch (values.type) {\r\n case 'all':\r\n if (tableData.length == 0) {\r\n flag = false;\r\n message.warn(TextEnum.messageNoDataText);\r\n } else {\r\n downloadAll = true;\r\n }\r\n break;\r\n case 'rows':\r\n if (selectedRowKeys.length == 0) {\r\n flag = false;\r\n message.warn(TextEnum.messageRowsNoDataText);\r\n } else {\r\n ids = selectedRowKeys;\r\n }\r\n break;\r\n case 'page':\r\n if (tableData.length == 0) {\r\n flag = false;\r\n message.warn(TextEnum.messagePageNoDataText);\r\n } else {\r\n ids = tableData.map(item => item.id);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n if (flag && requestExportUrl) {\r\n postData(requestExportUrl, {\r\n downloadAll,\r\n columnJson,\r\n ids: ids.join(','),\r\n fileName: values.fileName,\r\n uniqueKey,\r\n ...(typeof getExportParams == 'function' ?getExportParams() : params),\r\n }).then(res => {\r\n if (res?.result == 0) {\r\n setState({ showHistoryModal: true, fileId: res.data });\r\n } else {\r\n message.error(res?.msg || '导出失败');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n // 监听单文件状态\r\n // useEffect(() => {\r\n // if (state.fileId) {\r\n // timer = setInterval(() => {\r\n // getData(checkResultUrl, { id: state.fileId }).then(data => {\r\n // if (data.finish) {\r\n // clearInterval(timer);\r\n // timer = null;\r\n // setState({\r\n // isDone: true,\r\n // });\r\n // }\r\n // });\r\n // }, 2000);\r\n // }\r\n // }, [state.fileId]);\r\n\r\n return (\r\n <div className={prefixCls} style={style}>\r\n <Button\r\n icon={<ExportOutlined />}\r\n onClick={() => {\r\n setState({ visible: true });\r\n }}\r\n >\r\n {TextEnum.btnText}\r\n </Button>\r\n {state.visible && (\r\n <Modal\r\n title={\r\n title ? `${title} > ${TextEnum.modalTitleText}` : TextEnum.modalTitleText\r\n }\r\n visible={state.visible}\r\n maskClosable={false}\r\n onCancel={close}\r\n footer={[\r\n <Button onClick={close} key=\"cancel\">\r\n {TextEnum.btnOperaCancelText}\r\n </Button>,\r\n <Button onClick={showHistory} key=\"history\">\r\n {TextEnum.btnOperaHistoryText}\r\n </Button>,\r\n <Button\r\n key=\"confirm\"\r\n type=\"primary\"\r\n loading={state.loading}\r\n onClick={submit}\r\n >\r\n {TextEnum.btnOperaConfirmText}\r\n </Button>,\r\n ]}\r\n >\r\n <Form\r\n form={form}\r\n layout=\"vertical\"\r\n initialValues={{\r\n content: 'table',\r\n type: 'all',\r\n fileName: `${title}${TextEnum.fileMiddleText}${state.timestamp}`,\r\n }}\r\n >\r\n <Form.Item\r\n label={TextEnum.fieldContentText}\r\n name=\"content\"\r\n rules={[{ required: true, message: TextEnum.requireFieldMsgText }]}\r\n >\r\n <Radio.Group>\r\n {Contents.map(item => {\r\n return (\r\n item.show && (\r\n <Radio key={item.key} value={item.key}>\r\n {item.title}\r\n </Radio>\r\n )\r\n );\r\n })}\r\n </Radio.Group>\r\n </Form.Item>\r\n <Form.Item\r\n label={TextEnum.fieldTypeText}\r\n name=\"type\"\r\n rules={[{ required: true, message: TextEnum.requireFieldMsgText }]}\r\n >\r\n <Radio.Group>\r\n {Options.map(item => {\r\n return (\r\n item.show && (\r\n <Radio key={item.key} value={item.key}>\r\n {item.title}\r\n </Radio>\r\n )\r\n );\r\n })}\r\n </Radio.Group>\r\n </Form.Item>\r\n <Form.Item\r\n label={TextEnum.fieldFileNameText}\r\n name=\"fileName\"\r\n rules={[{ required: true, message: TextEnum.requireFieldMsgText }]}\r\n >\r\n <Input placeholder={TextEnum.placeholderFileName} />\r\n </Form.Item>\r\n </Form>\r\n </Modal>\r\n )}\r\n {state.showHistoryModal && (\r\n <History\r\n onCancel={() => {\r\n setState({ showHistoryModal: false });\r\n }}\r\n params={{\r\n uniqueKey,\r\n }}\r\n historyPageUrl={historyPageUrl}\r\n downFileUrl={downFileUrl}\r\n TextEnum={TextEnum}\r\n customTableProps={customTableProps}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nVtxExportAsync.propTypes = {\r\n uniqueKey: PropTypes.string,\r\n title: PropTypes.string,\r\n style: PropTypes.object,\r\n selectedRowKeys: PropTypes.array,\r\n tableData: PropTypes.array,\r\n columns: PropTypes.array,\r\n allColumns: PropTypes.array,\r\n params: PropTypes.object,\r\n requestExportUrl: PropTypes.string,\r\n checkResultUrl: PropTypes.string,\r\n downFileUrl: PropTypes.string,\r\n historyPageUrl: PropTypes.string,\r\n customEnumText: PropTypes.object,\r\n allContentButton: PropTypes.bool,\r\n rowButton: PropTypes.bool,\r\n pageButton: PropTypes.bool,\r\n allButton: PropTypes.bool,\r\n getExportParams: PropTypes.func,\r\n customTableProps: PropTypes.object,\r\n};\r\n\r\nexport default VtxExportAsync;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["timer","VtxExportAsync","props","prefixCls","uniqueKey","title","style","selectedRowKeys","tableData","columns","allColumns","params","getExportParams","requestExportUrl","checkResultUrl","downFileUrl","historyPageUrl","customEnumText","allContentButton","rowButton","pageButton","allButton","customTableProps","Form","useForm","form","useSetState","visible","loading","isRequest","isDone","fileId","timestamp","state","setState","TextEnum","btnText","modalTitleText","btnOperaCancelText","btnOperaHistoryText","btnOperaConfirmText","optionAllText","optionRowsText","optionPageText","contentTableText","contentAllText","messageNoDataText","messageRowsNoDataText","messagePageNoDataText","fieldContentText","fieldTypeText","fieldFileNameText","placeholderFileName","fileMiddleText","requireFieldMsgText","historyTitleText","historyFieldFileNameText","historyFieldFinishText","historyFieldStartTimeText","historyFieldActionText","statusDoneText","statusPendingText","downloadBtnText","searchFieldFileNameText","searchBtnConfirmText","searchBtnClearText","searchInputPlaceholderText","Options","key","show","Contents","useEffect","dayjs","format","close","clearInterval","resetFields","showHistory","showHistoryModal","submit","validateFields","then","values","ids","downloadAll","flag","columnJson","JSON","stringify","content","filter","item","map","field","type","length","message","warn","id","postData","join","fileName","res","result","data","error","msg","required","propTypes","PropTypes","string","object","array","bool","func"],"sources":["vtx-export-async/index.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\r\nimport ExportOutlined from '@ant-design/icons/ExportOutlined';\r\nimport PropTypes from 'prop-types';\r\nimport { useSetState } from 'ahooks';\r\nimport { Button, Form, Input, message, Modal, Radio } from 'antd';\r\nimport dayjs from 'dayjs';\r\nimport { getData, postData } from './util';\r\nimport History from './History';\r\n\r\nlet timer = null;\r\nconst VtxExportAsync = props => {\r\n const prefixCls = 'vtx-export-async';\r\n const {\r\n uniqueKey,\r\n title = '',\r\n style = {},\r\n selectedRowKeys = [],\r\n tableData = [],\r\n columns = [],\r\n allColumns = [],\r\n params = {},\r\n getExportParams,\r\n requestExportUrl,\r\n checkResultUrl,\r\n downFileUrl,\r\n historyPageUrl,\r\n customEnumText = {},\r\n allContentButton = true,\r\n rowButton = true,\r\n pageButton = true,\r\n allButton = true,\r\n customTableProps={}\r\n } = props;\r\n const [form] = Form.useForm();\r\n const [state, setState] = useSetState({\r\n visible: false,\r\n loading: false,\r\n isRequest: false,\r\n isDone: false,\r\n fileId: '',\r\n timestamp: '',\r\n });\r\n\r\n const TextEnum = {\r\n btnText: '导出',\r\n modalTitleText: '导出',\r\n btnOperaCancelText: '取消',\r\n btnOperaHistoryText: '导出任务',\r\n btnOperaConfirmText: '导出',\r\n\r\n optionAllText: '全部',\r\n optionRowsText: '选中行',\r\n optionPageText: '当前页',\r\n\r\n contentTableText: '列表字段',\r\n contentAllText: '全部字段',\r\n\r\n messageNoDataText: '当前无数据',\r\n messageRowsNoDataText: '当前无选中数据',\r\n messagePageNoDataText: '当前页无数据',\r\n\r\n fieldContentText: '导出内容',\r\n fieldTypeText: '导出范围',\r\n fieldFileNameText: '文件名',\r\n\r\n placeholderFileName: '请输入',\r\n\r\n fileMiddleText: '导出文件',\r\n requireFieldMsgText: '不能为空',\r\n\r\n historyTitleText: '导出任务',\r\n\r\n historyFieldFileNameText: '名称',\r\n historyFieldFinishText: '状态',\r\n historyFieldStartTimeText: '导出时间',\r\n historyFieldActionText: '操作',\r\n\r\n statusDoneText: '导出完成',\r\n statusPendingText: '导出中',\r\n\r\n downloadBtnText: '下载',\r\n\r\n searchFieldFileNameText: '名称',\r\n searchBtnConfirmText: '查询',\r\n searchBtnClearText: '重置',\r\n searchInputPlaceholderText: '请输入',\r\n\r\n ...customEnumText,\r\n };\r\n\r\n const Options = [\r\n { title: TextEnum.optionAllText, key: 'all', show: allButton },\r\n { title: TextEnum.optionRowsText, key: 'rows', show: rowButton },\r\n { title: TextEnum.optionPageText, key: 'page', show: pageButton },\r\n ];\r\n const Contents = [\r\n { title: TextEnum.contentTableText, key: 'table', show: true },\r\n { title: TextEnum.contentAllText, key: 'all', show: allContentButton },\r\n ];\r\n\r\n useEffect(() => {\r\n setState({ timestamp: dayjs().format('YYYYMMDDHHmmss') });\r\n }, [state.visible]);\r\n\r\n function close() {\r\n if (timer) {\r\n clearInterval(timer);\r\n timer = null;\r\n }\r\n form.resetFields();\r\n setState({ visible: false, isRequest: false, isDone: false, timer: null });\r\n }\r\n function showHistory() {\r\n setState({ showHistoryModal: true });\r\n }\r\n function submit() {\r\n if (form) {\r\n form.validateFields().then(values => {\r\n let ids = [],\r\n downloadAll = false,\r\n flag = true,\r\n columnJson = JSON.stringify(\r\n (values.content == 'all' ? allColumns : columns)\r\n .filter(item => item.key !== 'action')\r\n .map(item => {\r\n return {\r\n ...item,\r\n title: item.title,\r\n field: item.key,\r\n };\r\n }),\r\n );\r\n switch (values.type) {\r\n case 'all':\r\n if (tableData.length == 0) {\r\n flag = false;\r\n message.warn(TextEnum.messageNoDataText);\r\n } else {\r\n downloadAll = true;\r\n }\r\n break;\r\n case 'rows':\r\n if (selectedRowKeys.length == 0) {\r\n flag = false;\r\n message.warn(TextEnum.messageRowsNoDataText);\r\n } else {\r\n ids = selectedRowKeys;\r\n }\r\n break;\r\n case 'page':\r\n if (tableData.length == 0) {\r\n flag = false;\r\n message.warn(TextEnum.messagePageNoDataText);\r\n } else {\r\n ids = tableData.map(item => item.id);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n if (flag && requestExportUrl) {\r\n postData(requestExportUrl, {\r\n downloadAll,\r\n columnJson,\r\n ids: ids.join(','),\r\n fileName: values.fileName,\r\n uniqueKey,\r\n ...(typeof getExportParams == 'function' ?getExportParams() : params),\r\n }).then(res => {\r\n if (res?.result == 0) {\r\n setState({ showHistoryModal: true, fileId: res.data });\r\n } else {\r\n message.error(res?.msg || '导出失败');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n // 监听单文件状态\r\n // useEffect(() => {\r\n // if (state.fileId) {\r\n // timer = setInterval(() => {\r\n // getData(checkResultUrl, { id: state.fileId }).then(data => {\r\n // if (data.finish) {\r\n // clearInterval(timer);\r\n // timer = null;\r\n // setState({\r\n // isDone: true,\r\n // });\r\n // }\r\n // });\r\n // }, 2000);\r\n // }\r\n // }, [state.fileId]);\r\n\r\n return (\r\n <div className={prefixCls} style={style}>\r\n <Button\r\n icon={<ExportOutlined />}\r\n onClick={() => {\r\n setState({ visible: true });\r\n }}\r\n >\r\n {TextEnum.btnText}\r\n </Button>\r\n {state.visible && (\r\n <Modal\r\n title={\r\n title ? `${title} > ${TextEnum.modalTitleText}` : TextEnum.modalTitleText\r\n }\r\n visible={state.visible}\r\n maskClosable={false}\r\n onCancel={close}\r\n footer={[\r\n <Button onClick={close} key=\"cancel\">\r\n {TextEnum.btnOperaCancelText}\r\n </Button>,\r\n <Button onClick={showHistory} key=\"history\">\r\n {TextEnum.btnOperaHistoryText}\r\n </Button>,\r\n <Button\r\n key=\"confirm\"\r\n type=\"primary\"\r\n loading={state.loading}\r\n onClick={submit}\r\n >\r\n {TextEnum.btnOperaConfirmText}\r\n </Button>,\r\n ]}\r\n >\r\n <Form\r\n form={form}\r\n layout=\"vertical\"\r\n initialValues={{\r\n content: 'table',\r\n type: 'all',\r\n fileName: `${title}${TextEnum.fileMiddleText}${state.timestamp}`,\r\n }}\r\n >\r\n <Form.Item\r\n label={TextEnum.fieldContentText}\r\n name=\"content\"\r\n rules={[{ required: true, message: TextEnum.requireFieldMsgText }]}\r\n >\r\n <Radio.Group>\r\n {Contents.map(item => {\r\n return (\r\n item.show && (\r\n <Radio key={item.key} value={item.key}>\r\n {item.title}\r\n </Radio>\r\n )\r\n );\r\n })}\r\n </Radio.Group>\r\n </Form.Item>\r\n <Form.Item\r\n label={TextEnum.fieldTypeText}\r\n name=\"type\"\r\n rules={[{ required: true, message: TextEnum.requireFieldMsgText }]}\r\n >\r\n <Radio.Group>\r\n {Options.map(item => {\r\n return (\r\n item.show && (\r\n <Radio key={item.key} value={item.key}>\r\n {item.title}\r\n </Radio>\r\n )\r\n );\r\n })}\r\n </Radio.Group>\r\n </Form.Item>\r\n <Form.Item\r\n label={TextEnum.fieldFileNameText}\r\n name=\"fileName\"\r\n rules={[{ required: true, message: TextEnum.requireFieldMsgText }]}\r\n >\r\n <Input placeholder={TextEnum.placeholderFileName} />\r\n </Form.Item>\r\n </Form>\r\n </Modal>\r\n )}\r\n {state.showHistoryModal && (\r\n <History\r\n onCancel={() => {\r\n setState({ showHistoryModal: false });\r\n }}\r\n params={{\r\n uniqueKey,\r\n }}\r\n historyPageUrl={historyPageUrl}\r\n downFileUrl={downFileUrl}\r\n TextEnum={TextEnum}\r\n customTableProps={customTableProps}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nVtxExportAsync.propTypes = {\r\n uniqueKey: PropTypes.string,\r\n title: PropTypes.string,\r\n style: PropTypes.object,\r\n selectedRowKeys: PropTypes.array,\r\n tableData: PropTypes.array,\r\n columns: PropTypes.array,\r\n allColumns: PropTypes.array,\r\n params: PropTypes.object,\r\n requestExportUrl: PropTypes.string,\r\n checkResultUrl: PropTypes.string,\r\n downFileUrl: PropTypes.string,\r\n historyPageUrl: PropTypes.string,\r\n customEnumText: PropTypes.object,\r\n allContentButton: PropTypes.bool,\r\n rowButton: PropTypes.bool,\r\n pageButton: PropTypes.bool,\r\n allButton: PropTypes.bool,\r\n getExportParams: PropTypes.func,\r\n customTableProps: PropTypes.object,\r\n};\r\n\r\nexport default VtxExportAsync;\r\n"],"mappings":"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"}
|
package/lib/vtx-tree/index.js
CHANGED
|
@@ -188,7 +188,20 @@ var VtxTree = function VtxTree(_ref) {
|
|
|
188
188
|
};
|
|
189
189
|
|
|
190
190
|
(0, _react.useEffect)(function () {
|
|
191
|
+
var resizeObserver = new ResizeObserver(function () {
|
|
192
|
+
setHeight(treeRef.current.offsetHeight);
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
if (treeRef.current) {
|
|
196
|
+
resizeObserver.observe(treeRef.current, {
|
|
197
|
+
box: 'border-box'
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
|
|
191
201
|
setHeight(treeRef.current.offsetHeight);
|
|
202
|
+
return function () {
|
|
203
|
+
resizeObserver.disconnect();
|
|
204
|
+
};
|
|
192
205
|
}, []);
|
|
193
206
|
|
|
194
207
|
var onSelect = function onSelect(keys, event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getParentKey","key","tree","parentKey","i","length","node","children","some","item","VtxTree","prefixCls","showSearch","treeData","searchPlaceholder","renderMenuList","fieldNames","props","treeRef","useRef","useState","height","setHeight","searchValue","setSearchValue","expandedKeys","setExpandedKeys","autoExpandParent","setAutoExpandParent","selectedKeys","defaultSelectedKeys","setSelectedKeys","lastSelectedKey","React","cachedSelectedKeys","dataList","useMemo","titleKey","title","generateList","data","push","useEffect","onExpand","newExpandedKeys","info","onChange","e","value","target","map","indexOf","filter","self","current","offsetHeight","onSelect","keys","event","multiple","nativeEvent","newEvent","selected","ctrlPick","ctrlKey","metaKey","shiftPick","shiftKey","newSelectedKeys","selectedNodes","convertDirectoryKeysToNodes","Array","from","Set","calcRangeKeys","startKey","endKey","newTreeData","loop","strTitle","index","beforeStr","substring","afterStr","slice","marginBottom","showLeafIcon","nodeData","menuList","visible","label","stopPropagation","onClick","icon","propTypes","PropTypes","bool","string","array","func"],"sources":["vtx-tree/index.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Input, Tooltip, Tree } from 'antd';\r\nimport { DownOutlined } from '@ant-design/icons';\r\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils';\r\n\r\nconst getParentKey = (key, tree) => {\r\n let parentKey;\r\n for (let i = 0; i < tree.length; i++) {\r\n const node = tree[i];\r\n if (node.children) {\r\n if (node.children.some(item => item.key === key)) {\r\n parentKey = node.key;\r\n } else if (getParentKey(key, node.children)) {\r\n parentKey = getParentKey(key, node.children);\r\n }\r\n }\r\n }\r\n return parentKey;\r\n};\r\n\r\nconst VtxTree = ({\r\n prefixCls = 'vtx-tree',\r\n showSearch = true,\r\n treeData = [],\r\n searchPlaceholder = '请输入要查询的关键字',\r\n renderMenuList,\r\n fieldNames,\r\n ...props\r\n}) => {\r\n const treeRef = useRef();\r\n const [height, setHeight] = useState(0);\r\n const [searchValue, setSearchValue] = useState('');\r\n const [expandedKeys, setExpandedKeys] = useState([]);\r\n const [autoExpandParent, setAutoExpandParent] = useState(props.autoExpandParent || false);\r\n const [selectedKeys, setSelectedKeys] = useState(\r\n props.selectedKeys || props.defaultSelectedKeys || [],\r\n );\r\n\r\n const lastSelectedKey = React.useRef();\r\n\r\n const cachedSelectedKeys = React.useRef();\r\n\r\n const dataList = useMemo(() => {\r\n let dataList = [];\r\n const titleKey = fieldNames?.title || 'title';\r\n const generateList = data => {\r\n for (let i = 0; i < data.length; i++) {\r\n const node = data[i];\r\n const { key } = node;\r\n dataList.push({ key, title: node[titleKey] });\r\n if (node.children) {\r\n generateList(node.children);\r\n }\r\n }\r\n };\r\n generateList(treeData);\r\n return dataList;\r\n }, [treeData]);\r\n\r\n useEffect(() => {\r\n if ('selectedKeys' in props) {\r\n setSelectedKeys(props.selectedKeys);\r\n }\r\n }, [props.selectedKeys]);\r\n\r\n useEffect(() => {\r\n if ('expandedKeys' in props) {\r\n setExpandedKeys(props.expandedKeys);\r\n }\r\n }, [props.expandedKeys]);\r\n\r\n const onExpand = (newExpandedKeys, info) => {\r\n setAutoExpandParent(false);\r\n props.onExpand?.(newExpandedKeys, info);\r\n if (!('expandedKeys' in props)) {\r\n setExpandedKeys(newExpandedKeys);\r\n }\r\n };\r\n\r\n const onChange = e => {\r\n const { value } = e.target;\r\n const newExpandedKeys = dataList\r\n .map(item => {\r\n if (item.title.indexOf(value) > -1) {\r\n return getParentKey(item.key, treeData);\r\n }\r\n return null;\r\n })\r\n .filter((item, i, self) => item && self.indexOf(item) === i);\r\n setSearchValue(value);\r\n setAutoExpandParent(true);\r\n props.onExpand?.(newExpandedKeys);\r\n if (!('expandedKeys' in props)) {\r\n setExpandedKeys(newExpandedKeys);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setHeight(treeRef.current.offsetHeight);\r\n }, []);\r\n\r\n const onSelect = (keys, event) => {\r\n const { multiple } = props;\r\n const { node, nativeEvent } = event;\r\n const { key = '' } = node;\r\n // const newState: DirectoryTreeState = {};\r\n\r\n // We need wrap this event since some value is not same\r\n const newEvent = {\r\n ...event,\r\n selected: true, // Directory selected always true\r\n };\r\n\r\n // Windows / Mac single pick\r\n const ctrlPick = nativeEvent?.ctrlKey || nativeEvent?.metaKey;\r\n const shiftPick = nativeEvent?.shiftKey;\r\n\r\n // Generate new selected keys\r\n let newSelectedKeys;\r\n if (multiple && ctrlPick) {\r\n // Control click\r\n newSelectedKeys = keys;\r\n lastSelectedKey.current = key;\r\n cachedSelectedKeys.current = newSelectedKeys;\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n } else if (multiple && shiftPick) {\r\n // Shift click\r\n newSelectedKeys = Array.from(\r\n new Set([\r\n ...(cachedSelectedKeys.current || []),\r\n ...calcRangeKeys({\r\n treeData,\r\n expandedKeys,\r\n startKey: key,\r\n endKey: lastSelectedKey.current,\r\n }),\r\n ]),\r\n );\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n } else {\r\n // Single click\r\n newSelectedKeys = [key];\r\n lastSelectedKey.current = key;\r\n cachedSelectedKeys.current = newSelectedKeys;\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n }\r\n\r\n props.onSelect?.(newSelectedKeys, newEvent);\r\n if (!('selectedKeys' in props)) {\r\n setSelectedKeys(newSelectedKeys);\r\n }\r\n };\r\n\r\n const newTreeData = useMemo(() => {\r\n const loop = data =>\r\n data.map(item => {\r\n const titleKey = fieldNames?.title || 'title';\r\n const strTitle = item[titleKey];\r\n const index = strTitle.indexOf(searchValue);\r\n const beforeStr = strTitle.substring(0, index);\r\n const afterStr = strTitle.slice(index + searchValue.length);\r\n const title =\r\n index > -1 ? (\r\n <span>\r\n {beforeStr}\r\n <span className={`${prefixCls}-search-value`}>{searchValue}</span>\r\n {afterStr}\r\n </span>\r\n ) : (\r\n <span>{strTitle}</span>\r\n );\r\n if (item.children) {\r\n return {\r\n ...item,\r\n [titleKey]: title,\r\n key: item.key,\r\n children: loop(item.children),\r\n };\r\n }\r\n\r\n return {\r\n ...item,\r\n [titleKey]: title,\r\n key: item.key,\r\n };\r\n });\r\n return loop(treeData);\r\n }, [treeData, searchValue]);\r\n return (\r\n <div className={`${prefixCls}-wraaper`}>\r\n {showSearch && (\r\n <Input\r\n style={{ marginBottom: 8 }}\r\n placeholder={searchPlaceholder}\r\n onChange={onChange}\r\n />\r\n )}\r\n <div className={prefixCls} ref={treeRef}>\r\n <Tree\r\n {...props}\r\n height={height}\r\n switcherIcon={<DownOutlined />}\r\n showLine={{ showLeafIcon: false }}\r\n blockNode\r\n treeData={newTreeData}\r\n onExpand={onExpand}\r\n expandedKeys={expandedKeys}\r\n autoExpandParent={autoExpandParent}\r\n selectedKeys={selectedKeys}\r\n onSelect={onSelect}\r\n expandAction=\"click\"\r\n titleRender={nodeData => {\r\n const titleKey = fieldNames?.title || 'title';\r\n const title = nodeData[titleKey];\r\n\r\n if (renderMenuList) {\r\n const menuList = renderMenuList(nodeData);\r\n return (\r\n <div className={`${prefixCls}-menu-wrap`}>\r\n <span>{title}</span>\r\n <div className={`${prefixCls}-menu-list`}>\r\n {menuList\r\n .filter(item => item.visible)\r\n .map(item => (\r\n <Tooltip key={item.label} title={item.label}>\r\n <span\r\n className={`${prefixCls}-menu-item-icon`}\r\n onClick={e => {\r\n e.stopPropagation();\r\n item.onClick && item.onClick(nodeData);\r\n }}\r\n >\r\n {item.icon}\r\n </span>\r\n </Tooltip>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n }\r\n return title;\r\n }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nVtxTree.propTypes = {\r\n showSearch: PropTypes.bool,\r\n prefixCls: PropTypes.string,\r\n treeData: PropTypes.array,\r\n selectedKeys: PropTypes.array,\r\n defaultSelectedKeys: PropTypes.array,\r\n expandedKeys: PropTypes.bool,\r\n onExpand: PropTypes.func,\r\n multiple: PropTypes.bool,\r\n autoExpandParent: PropTypes.bool,\r\n onSelect: PropTypes.func,\r\n searchPlaceholder: PropTypes.string,\r\n renderMenuList: PropTypes.func,\r\n fieldNames: PropTypes.array,\r\n};\r\n\r\nexport default VtxTree;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getParentKey","key","tree","parentKey","i","length","node","children","some","item","VtxTree","prefixCls","showSearch","treeData","searchPlaceholder","renderMenuList","fieldNames","props","treeRef","useRef","useState","height","setHeight","searchValue","setSearchValue","expandedKeys","setExpandedKeys","autoExpandParent","setAutoExpandParent","selectedKeys","defaultSelectedKeys","setSelectedKeys","lastSelectedKey","React","cachedSelectedKeys","dataList","useMemo","titleKey","title","generateList","data","push","useEffect","onExpand","newExpandedKeys","info","onChange","e","value","target","map","indexOf","filter","self","resizeObserver","ResizeObserver","current","offsetHeight","observe","box","disconnect","onSelect","keys","event","multiple","nativeEvent","newEvent","selected","ctrlPick","ctrlKey","metaKey","shiftPick","shiftKey","newSelectedKeys","selectedNodes","convertDirectoryKeysToNodes","Array","from","Set","calcRangeKeys","startKey","endKey","newTreeData","loop","strTitle","index","beforeStr","substring","afterStr","slice","marginBottom","showLeafIcon","nodeData","menuList","visible","label","stopPropagation","onClick","icon","propTypes","PropTypes","bool","string","array","func"],"sources":["vtx-tree/index.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Input, Tooltip, Tree } from 'antd';\r\nimport { DownOutlined } from '@ant-design/icons';\r\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils';\r\n\r\nconst getParentKey = (key, tree) => {\r\n let parentKey;\r\n for (let i = 0; i < tree.length; i++) {\r\n const node = tree[i];\r\n if (node.children) {\r\n if (node.children.some(item => item.key === key)) {\r\n parentKey = node.key;\r\n } else if (getParentKey(key, node.children)) {\r\n parentKey = getParentKey(key, node.children);\r\n }\r\n }\r\n }\r\n return parentKey;\r\n};\r\n\r\nconst VtxTree = ({\r\n prefixCls = 'vtx-tree',\r\n showSearch = true,\r\n treeData = [],\r\n searchPlaceholder = '请输入要查询的关键字',\r\n renderMenuList,\r\n fieldNames,\r\n ...props\r\n}) => {\r\n const treeRef = useRef();\r\n const [height, setHeight] = useState(0);\r\n const [searchValue, setSearchValue] = useState('');\r\n const [expandedKeys, setExpandedKeys] = useState([]);\r\n const [autoExpandParent, setAutoExpandParent] = useState(props.autoExpandParent || false);\r\n const [selectedKeys, setSelectedKeys] = useState(\r\n props.selectedKeys || props.defaultSelectedKeys || [],\r\n );\r\n\r\n const lastSelectedKey = React.useRef();\r\n\r\n const cachedSelectedKeys = React.useRef();\r\n\r\n const dataList = useMemo(() => {\r\n let dataList = [];\r\n const titleKey = fieldNames?.title || 'title';\r\n const generateList = data => {\r\n for (let i = 0; i < data.length; i++) {\r\n const node = data[i];\r\n const { key } = node;\r\n dataList.push({ key, title: node[titleKey] });\r\n if (node.children) {\r\n generateList(node.children);\r\n }\r\n }\r\n };\r\n generateList(treeData);\r\n return dataList;\r\n }, [treeData]);\r\n\r\n useEffect(() => {\r\n if ('selectedKeys' in props) {\r\n setSelectedKeys(props.selectedKeys);\r\n }\r\n }, [props.selectedKeys]);\r\n\r\n useEffect(() => {\r\n if ('expandedKeys' in props) {\r\n setExpandedKeys(props.expandedKeys);\r\n }\r\n }, [props.expandedKeys]);\r\n\r\n const onExpand = (newExpandedKeys, info) => {\r\n setAutoExpandParent(false);\r\n props.onExpand?.(newExpandedKeys, info);\r\n if (!('expandedKeys' in props)) {\r\n setExpandedKeys(newExpandedKeys);\r\n }\r\n };\r\n\r\n const onChange = e => {\r\n const { value } = e.target;\r\n const newExpandedKeys = dataList\r\n .map(item => {\r\n if (item.title.indexOf(value) > -1) {\r\n return getParentKey(item.key, treeData);\r\n }\r\n return null;\r\n })\r\n .filter((item, i, self) => item && self.indexOf(item) === i);\r\n setSearchValue(value);\r\n setAutoExpandParent(true);\r\n props.onExpand?.(newExpandedKeys);\r\n if (!('expandedKeys' in props)) {\r\n setExpandedKeys(newExpandedKeys);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(() => {\r\n setHeight(treeRef.current.offsetHeight);\r\n });\r\n if (treeRef.current) {\r\n resizeObserver.observe(treeRef.current, {\r\n box: 'border-box',\r\n });\r\n }\r\n setHeight(treeRef.current.offsetHeight);\r\n return () => {\r\n resizeObserver.disconnect();\r\n }\r\n }, []);\r\n\r\n const onSelect = (keys, event) => {\r\n const { multiple } = props;\r\n const { node, nativeEvent } = event;\r\n const { key = '' } = node;\r\n // const newState: DirectoryTreeState = {};\r\n\r\n // We need wrap this event since some value is not same\r\n const newEvent = {\r\n ...event,\r\n selected: true, // Directory selected always true\r\n };\r\n\r\n // Windows / Mac single pick\r\n const ctrlPick = nativeEvent?.ctrlKey || nativeEvent?.metaKey;\r\n const shiftPick = nativeEvent?.shiftKey;\r\n\r\n // Generate new selected keys\r\n let newSelectedKeys;\r\n if (multiple && ctrlPick) {\r\n // Control click\r\n newSelectedKeys = keys;\r\n lastSelectedKey.current = key;\r\n cachedSelectedKeys.current = newSelectedKeys;\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n } else if (multiple && shiftPick) {\r\n // Shift click\r\n newSelectedKeys = Array.from(\r\n new Set([\r\n ...(cachedSelectedKeys.current || []),\r\n ...calcRangeKeys({\r\n treeData,\r\n expandedKeys,\r\n startKey: key,\r\n endKey: lastSelectedKey.current,\r\n }),\r\n ]),\r\n );\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n } else {\r\n // Single click\r\n newSelectedKeys = [key];\r\n lastSelectedKey.current = key;\r\n cachedSelectedKeys.current = newSelectedKeys;\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n }\r\n\r\n props.onSelect?.(newSelectedKeys, newEvent);\r\n if (!('selectedKeys' in props)) {\r\n setSelectedKeys(newSelectedKeys);\r\n }\r\n };\r\n\r\n const newTreeData = useMemo(() => {\r\n const loop = data =>\r\n data.map(item => {\r\n const titleKey = fieldNames?.title || 'title';\r\n const strTitle = item[titleKey];\r\n const index = strTitle.indexOf(searchValue);\r\n const beforeStr = strTitle.substring(0, index);\r\n const afterStr = strTitle.slice(index + searchValue.length);\r\n const title =\r\n index > -1 ? (\r\n <span>\r\n {beforeStr}\r\n <span className={`${prefixCls}-search-value`}>{searchValue}</span>\r\n {afterStr}\r\n </span>\r\n ) : (\r\n <span>{strTitle}</span>\r\n );\r\n if (item.children) {\r\n return {\r\n ...item,\r\n [titleKey]: title,\r\n key: item.key,\r\n children: loop(item.children),\r\n };\r\n }\r\n\r\n return {\r\n ...item,\r\n [titleKey]: title,\r\n key: item.key,\r\n };\r\n });\r\n return loop(treeData);\r\n }, [treeData, searchValue]);\r\n return (\r\n <div className={`${prefixCls}-wraaper`}>\r\n {showSearch && (\r\n <Input\r\n style={{ marginBottom: 8 }}\r\n placeholder={searchPlaceholder}\r\n onChange={onChange}\r\n />\r\n )}\r\n <div className={prefixCls} ref={treeRef}>\r\n <Tree\r\n {...props}\r\n height={height}\r\n switcherIcon={<DownOutlined />}\r\n showLine={{ showLeafIcon: false }}\r\n blockNode\r\n treeData={newTreeData}\r\n onExpand={onExpand}\r\n expandedKeys={expandedKeys}\r\n autoExpandParent={autoExpandParent}\r\n selectedKeys={selectedKeys}\r\n onSelect={onSelect}\r\n expandAction=\"click\"\r\n titleRender={nodeData => {\r\n const titleKey = fieldNames?.title || 'title';\r\n const title = nodeData[titleKey];\r\n\r\n if (renderMenuList) {\r\n const menuList = renderMenuList(nodeData);\r\n return (\r\n <div className={`${prefixCls}-menu-wrap`}>\r\n <span>{title}</span>\r\n <div className={`${prefixCls}-menu-list`}>\r\n {menuList\r\n .filter(item => item.visible)\r\n .map(item => (\r\n <Tooltip key={item.label} title={item.label}>\r\n <span\r\n className={`${prefixCls}-menu-item-icon`}\r\n onClick={e => {\r\n e.stopPropagation();\r\n item.onClick && item.onClick(nodeData);\r\n }}\r\n >\r\n {item.icon}\r\n </span>\r\n </Tooltip>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n }\r\n return title;\r\n }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nVtxTree.propTypes = {\r\n showSearch: PropTypes.bool,\r\n prefixCls: PropTypes.string,\r\n treeData: PropTypes.array,\r\n selectedKeys: PropTypes.array,\r\n defaultSelectedKeys: PropTypes.array,\r\n expandedKeys: PropTypes.bool,\r\n onExpand: PropTypes.func,\r\n multiple: PropTypes.bool,\r\n autoExpandParent: PropTypes.bool,\r\n onSelect: PropTypes.func,\r\n searchPlaceholder: PropTypes.string,\r\n renderMenuList: PropTypes.func,\r\n fieldNames: PropTypes.array,\r\n};\r\n\r\nexport default VtxTree;\r\n"],"mappings":"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"}
|