@vtx/components 3.1.49 → 3.1.50
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/index.js +12 -9
- package/lib/vtx-datagrid/index.js.map +1 -1
- package/lib/vtx-datagrid/renderColumnButtons.js +2 -1
- package/lib/vtx-datagrid/renderColumnButtons.js.map +1 -1
- package/lib/vtx-export/index.js +8 -5
- package/lib/vtx-export/index.js.map +1 -1
- package/lib/vtx-import2/Content.js +4 -3
- package/lib/vtx-import2/Content.js.map +1 -1
- package/lib/vtx-import2/ImportResult.js +6 -5
- package/lib/vtx-import2/ImportResult.js.map +1 -1
- package/lib/vtx-import2/index.js +38 -9
- package/lib/vtx-import2/index.js.map +1 -1
- package/lib/vtx-search/index.js +6 -3
- package/lib/vtx-search/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -41,7 +41,7 @@ var _useSet3 = _interopRequireDefault(require("../_util/useSet"));
|
|
|
41
41
|
|
|
42
42
|
var _isFunction = _interopRequireDefault(require("../_util/isFunction"));
|
|
43
43
|
|
|
44
|
-
var _excluded = ["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", "searchCollapseEvent$", "disabledColumnKeys", "onColumnsSave"];
|
|
44
|
+
var _excluded = ["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", "searchCollapseEvent$", "disabledColumnKeys", "onColumnsSave", "customEnumText"];
|
|
45
45
|
|
|
46
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
47
47
|
|
|
@@ -153,6 +153,8 @@ function VtxDatagrid(props) {
|
|
|
153
153
|
searchCollapseEvent$ = props.searchCollapseEvent$,
|
|
154
154
|
disabledColumnKeys = props.disabledColumnKeys,
|
|
155
155
|
onColumnsSave = props.onColumnsSave,
|
|
156
|
+
_props$customEnumText = props.customEnumText,
|
|
157
|
+
customEnumText = _props$customEnumText === void 0 ? {} : _props$customEnumText,
|
|
156
158
|
rest = _objectWithoutProperties(props, _excluded);
|
|
157
159
|
|
|
158
160
|
(0, _react.useEffect)(function () {
|
|
@@ -282,7 +284,7 @@ function VtxDatagrid(props) {
|
|
|
282
284
|
onRefresh && onRefresh();
|
|
283
285
|
}
|
|
284
286
|
}, /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
285
|
-
title: "
|
|
287
|
+
title: (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.refreshText) || "刷新"
|
|
286
288
|
}, /*#__PURE__*/_react["default"].createElement(_RedoOutlined["default"], null))), !hideColumnHeight && /*#__PURE__*/_react["default"].createElement("div", {
|
|
287
289
|
className: "".concat(prefixCls, "-toolbar-setting-item")
|
|
288
290
|
}, /*#__PURE__*/_react["default"].createElement(_dropdown["default"], {
|
|
@@ -296,14 +298,14 @@ function VtxDatagrid(props) {
|
|
|
296
298
|
selectedKeys: [size]
|
|
297
299
|
}, /*#__PURE__*/_react["default"].createElement(_menu["default"].Item, {
|
|
298
300
|
key: "default"
|
|
299
|
-
}, "
|
|
301
|
+
}, (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.densityDefaultText) || "默认"), /*#__PURE__*/_react["default"].createElement(_menu["default"].Item, {
|
|
300
302
|
key: "middle"
|
|
301
|
-
}, "
|
|
303
|
+
}, (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.densityMiddleText) || "中等"), /*#__PURE__*/_react["default"].createElement(_menu["default"].Item, {
|
|
302
304
|
key: "small"
|
|
303
|
-
}, "
|
|
305
|
+
}, (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.densitySmallText) || "紧凑")),
|
|
304
306
|
trigger: ['click']
|
|
305
307
|
}, /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
306
|
-
title: "
|
|
308
|
+
title: (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.columnDensityText) || "列密度"
|
|
307
309
|
}, /*#__PURE__*/_react["default"].createElement(_ColumnHeightOutlined["default"], null)))), !hideColumnSetting && /*#__PURE__*/_react["default"].createElement("div", {
|
|
308
310
|
className: "".concat(prefixCls, "-toolbar-setting-item")
|
|
309
311
|
}, /*#__PURE__*/_react["default"].createElement(_ColumnSetting["default"], {
|
|
@@ -317,7 +319,7 @@ function VtxDatagrid(props) {
|
|
|
317
319
|
disabledColumnKeys: disabledColumnKeys,
|
|
318
320
|
onColumnsSave: onColumnsSave
|
|
319
321
|
}, /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
320
|
-
title: "
|
|
322
|
+
title: (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.columnSettingText) || "列设置"
|
|
321
323
|
}, /*#__PURE__*/_react["default"].createElement(_SettingOutlined["default"], null)))))));
|
|
322
324
|
} // 分页
|
|
323
325
|
|
|
@@ -351,7 +353,7 @@ function VtxDatagrid(props) {
|
|
|
351
353
|
|
|
352
354
|
return _objectSpread(_objectSpread({}, newColumn), {}, {
|
|
353
355
|
render: (0, _isFunction["default"])(column.renderButtons) ? function (text, record, index) {
|
|
354
|
-
return (0, _renderColumnButtons["default"])(column.renderButtons, column.renderButtonsVisibleNum, text, record, index);
|
|
356
|
+
return (0, _renderColumnButtons["default"])(column.renderButtons, column.renderButtonsVisibleNum, text, record, index, customEnumText);
|
|
355
357
|
} : 'render' in column ? column.render : function (text) {
|
|
356
358
|
return ['', null, undefined].includes(text) ? '-' : text;
|
|
357
359
|
}
|
|
@@ -480,6 +482,7 @@ VtxDatagrid.propTypes = {
|
|
|
480
482
|
style: _propTypes["default"].object,
|
|
481
483
|
disabledColumnKeys: _propTypes["default"].array,
|
|
482
484
|
onColumnsSave: _propTypes["default"].func,
|
|
483
|
-
components: _propTypes["default"].object
|
|
485
|
+
components: _propTypes["default"].object,
|
|
486
|
+
customEnumText: _propTypes["default"].object
|
|
484
487
|
};
|
|
485
488
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isMac","navigator","userAgent","indexOf","VtxDatagrid","props","useSet","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","state","setState","datagridRef","useRef","alertHeight","toolbarHeight","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","searchCollapseEvent$","disabledColumnKeys","onColumnsSave","rest","useEffect","window","addEventListener","calculateHeight","removeEventListener","useLayoutEffect","dataSource","length","rowSelection","selectedRowKeys","join","useSubscription","timer","setTimeout","clearTimeout","parseColumns","columns","map","col","key","dataIndex","type","columnKeys","filter","item","includes","hasAlert","current","bodyHeight","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","toolbarRender","classnames","getPagination","pagination","pageSizeOptions","showSizeChanger","showQuickJumper","showTotal","total","column","newColumn","renderButtons","renderButtonsVisibleNum","render","isFunction","text","record","index","renderColumnButtons","undefined","onHeaderCell","width","onResize","handleResize","e","nextColumns","title","fixed","i","_serialNum","scroll","y","height","locale","header","cell","ResizeableTitle","propTypes","PropTypes","string","bool","array","func","oneOfType","node","number","object"],"sources":["vtx-datagrid/index.jsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react';\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\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 });\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 {\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 searchCollapseEvent$,\r\n disabledColumnKeys,\r\n onColumnsSave,\r\n ...rest\r\n } = props;\r\n\r\n useEffect(() => {\r\n // componentDidMount\r\n if (autoFit) {\r\n window.addEventListener('resize', calculateHeight, false);\r\n }\r\n return () => {\r\n // componentWillUnmount\r\n if (autoFit) {\r\n window.removeEventListener('resize', calculateHeight, false);\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 // 只有被TableLayout.Page包裹时才会存在searchCollapseEvent$这个参数\r\n if (searchCollapseEvent$) {\r\n // eslint-disable-next-line react/prop-types\r\n searchCollapseEvent$.useSubscription(() => {\r\n // 350ms 是为了等待css动画时间\r\n let timer = setTimeout(() => {\r\n calculateHeight();\r\n timer = '';\r\n clearTimeout(timer);\r\n }, 350);\r\n });\r\n }\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) {\r\n const columnKeys =\r\n type === 'reset'\r\n ? defaultVisibleColumnKeys\r\n : visibleColumnKeys || 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\r\n const hasAlert = (rest.rowSelection?.selectedRowKeys || []).length > 0;\r\n alertHeight.current = hasAlert ? 49 : 0;\r\n toolbarHeight.current = toolbar ? 56 : 0;\r\n // 高度计算\r\n const calculateHeight = () => {\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}px`;\r\n setState({\r\n scrollY: bodyHeight,\r\n });\r\n };\r\n\r\n // 列设置回调\r\n const handleChangeColumns = keys => {\r\n setState({\r\n checkedColumnKeys: keys,\r\n visibleColumns: columnSettingOptions?.filter(item => keys.includes(item.key)),\r\n });\r\n onVisibleColumnsChange && onVisibleColumnsChange(keys);\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 <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=\"刷新\">\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 }) => setState({ size: key })}\r\n selectedKeys={[size]}\r\n >\r\n <Menu.Item key=\"default\">默认</Menu.Item>\r\n <Menu.Item key=\"middle\">中等</Menu.Item>\r\n <Menu.Item key=\"small\">紧凑</Menu.Item>\r\n </Menu>\r\n }\r\n trigger={['click']}\r\n >\r\n <Tooltip title=\"列密度\">\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 >\r\n <Tooltip title=\"列设置\">\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 `共 ${total} 条`;\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 );\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;\r\n if (autoFit) {\r\n scroll = {\r\n ...(rest.scroll || {}),\r\n y: scrollY,\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 {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 />\r\n </div>\r\n )}\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 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};\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","state","setState","datagridRef","useRef","alertHeight","toolbarHeight","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","searchCollapseEvent$","disabledColumnKeys","onColumnsSave","customEnumText","rest","useEffect","window","addEventListener","calculateHeight","removeEventListener","useLayoutEffect","dataSource","length","rowSelection","selectedRowKeys","join","useSubscription","timer","setTimeout","clearTimeout","parseColumns","columns","map","col","key","dataIndex","type","columnKeys","filter","item","includes","hasAlert","current","bodyHeight","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","toolbarRender","classnames","refreshText","densityDefaultText","densityMiddleText","densitySmallText","columnDensityText","columnSettingText","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","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\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 });\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 {\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 searchCollapseEvent$,\r\n disabledColumnKeys,\r\n onColumnsSave,\r\n customEnumText = {},\r\n ...rest\r\n } = props;\r\n\r\n useEffect(() => {\r\n // componentDidMount\r\n if (autoFit) {\r\n window.addEventListener('resize', calculateHeight, false);\r\n }\r\n return () => {\r\n // componentWillUnmount\r\n if (autoFit) {\r\n window.removeEventListener('resize', calculateHeight, false);\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 // 只有被TableLayout.Page包裹时才会存在searchCollapseEvent$这个参数\r\n if (searchCollapseEvent$) {\r\n // eslint-disable-next-line react/prop-types\r\n searchCollapseEvent$.useSubscription(() => {\r\n // 350ms 是为了等待css动画时间\r\n let timer = setTimeout(() => {\r\n calculateHeight();\r\n timer = '';\r\n clearTimeout(timer);\r\n }, 350);\r\n });\r\n }\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) {\r\n const columnKeys =\r\n type === 'reset'\r\n ? defaultVisibleColumnKeys\r\n : visibleColumnKeys || 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\r\n const hasAlert = (rest.rowSelection?.selectedRowKeys || []).length > 0;\r\n alertHeight.current = hasAlert ? 49 : 0;\r\n toolbarHeight.current = toolbar ? 56 : 0;\r\n // 高度计算\r\n const calculateHeight = () => {\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}px`;\r\n setState({\r\n scrollY: bodyHeight,\r\n });\r\n };\r\n\r\n // 列设置回调\r\n const handleChangeColumns = keys => {\r\n setState({\r\n checkedColumnKeys: keys,\r\n visibleColumns: columnSettingOptions?.filter(item => keys.includes(item.key)),\r\n });\r\n onVisibleColumnsChange && onVisibleColumnsChange(keys);\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 <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={customEnumText?.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 }) => setState({ size: key })}\r\n selectedKeys={[size]}\r\n >\r\n <Menu.Item key=\"default\">{customEnumText?.densityDefaultText ||\"默认\"}</Menu.Item>\r\n <Menu.Item key=\"middle\">{customEnumText?.densityMiddleText || \"中等\"}</Menu.Item>\r\n <Menu.Item key=\"small\">{customEnumText?.densitySmallText ||\"紧凑\"}</Menu.Item>\r\n </Menu>\r\n }\r\n trigger={['click']}\r\n >\r\n <Tooltip title={customEnumText?.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 >\r\n <Tooltip title={customEnumText?.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 `共 ${total} 条`;\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 customEnumText\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;\r\n if (autoFit) {\r\n scroll = {\r\n ...(rest.scroll || {}),\r\n y: scrollY,\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 {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 />\r\n </div>\r\n )}\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 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};\r\n"],"mappings":"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"}
|
|
@@ -46,6 +46,7 @@ var renderColumnButtons = function renderColumnButtons(renderButtons) {
|
|
|
46
46
|
var text = arguments.length > 2 ? arguments[2] : undefined;
|
|
47
47
|
var record = arguments.length > 3 ? arguments[3] : undefined;
|
|
48
48
|
var index = arguments.length > 4 ? arguments[4] : undefined;
|
|
49
|
+
var customEnumText = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
|
|
49
50
|
var actions = (_renderButtons = renderButtons(text, record, index)) === null || _renderButtons === void 0 ? void 0 : _renderButtons.filter(function (item) {
|
|
50
51
|
var _item$visible;
|
|
51
52
|
|
|
@@ -77,7 +78,7 @@ var renderColumnButtons = function renderColumnButtons(renderButtons) {
|
|
|
77
78
|
key: i
|
|
78
79
|
}, item.name);
|
|
79
80
|
}))
|
|
80
|
-
}, /*#__PURE__*/_react["default"].createElement("a", null, "
|
|
81
|
+
}, /*#__PURE__*/_react["default"].createElement("a", null, (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.actionMoreText) || "更多", /*#__PURE__*/_react["default"].createElement(_DownOutlined["default"], null)));
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
return [].concat(_toConsumableArray(actions.slice(0, realVisible).map(function (item, i) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderColumnButtons.js","names":["renderColumnButtons","renderButtons","visible","text","record","index","actions","filter","item","Array","isArray","actionsLen","length","moreRender","realVisible","moreActions","slice","e","key","onClick","map","i","name","popconfirm","btnNode","undefined","confirm","rest"],"sources":["vtx-datagrid/renderColumnButtons.jsx"],"sourcesContent":["import React from 'react';\nimport Popconfirm from 'antd/lib/popconfirm';\nimport Dropdown from 'antd/lib/dropdown';\nimport Menu from 'antd/lib/menu';\nimport Divider from 'antd/lib/divider';\nimport DownOutlined from '@ant-design/icons/DownOutlined';\n\nconst renderColumnButtons = (renderButtons, visible = 4, text, record, index) => {\n const actions = renderButtons(text, record, index)?.filter(\n item => item && (item.visible ?? true),\n );\n if (!Array.isArray(actions)) {\n return;\n }\n const actionsLen = actions.length;\n // 更多\n let moreRender;\n let realVisible = visible;\n if (actionsLen > visible) {\n realVisible = realVisible - 1;\n const moreActions = actions.slice(realVisible);\n /* eslint-disable */\n moreRender = (\n <Dropdown\n key=\"more\"\n overlay={\n <Menu onClick={e => moreActions[e.key].onClick(record, index)}>\n {moreActions.map((item, i) => (\n <Menu.Item key={i}>{item.name}</Menu.Item>\n ))}\n </Menu>\n }\n >\n <a>\n 更多\n <DownOutlined />\n </a>\n </Dropdown>\n );\n }\n\n return [\n ...actions.slice(0, realVisible).map((item, i) => {\n const { name, onClick, popconfirm } = item;\n let btnNode = (\n <a\n key={name}\n onClick={onClick && !popconfirm ? () => onClick(record, index) : undefined}\n >\n {name}\n </a>\n );\n\n if (popconfirm) {\n const { confirm, ...rest } = popconfirm;\n btnNode = (\n <Popconfirm\n {...rest}\n onConfirm={confirm ? () => confirm(record, index) : undefined}\n key={name}\n >\n {btnNode}\n </Popconfirm>\n );\n }\n\n return [btnNode, i != actionsLen - 1 && <Divider key={i} type=\"vertical\" />];\n }),\n moreRender,\n ];\n};\n\nexport default renderColumnButtons;\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,aAAD,
|
|
1
|
+
{"version":3,"file":"renderColumnButtons.js","names":["renderColumnButtons","renderButtons","visible","text","record","index","customEnumText","actions","filter","item","Array","isArray","actionsLen","length","moreRender","realVisible","moreActions","slice","e","key","onClick","map","i","name","actionMoreText","popconfirm","btnNode","undefined","confirm","rest"],"sources":["vtx-datagrid/renderColumnButtons.jsx"],"sourcesContent":["import React from 'react';\nimport Popconfirm from 'antd/lib/popconfirm';\nimport Dropdown from 'antd/lib/dropdown';\nimport Menu from 'antd/lib/menu';\nimport Divider from 'antd/lib/divider';\nimport DownOutlined from '@ant-design/icons/DownOutlined';\n\nconst renderColumnButtons = (renderButtons, visible = 4, text, record, index, customEnumText={}) => {\n const actions = renderButtons(text, record, index)?.filter(\n item => item && (item.visible ?? true),\n );\n if (!Array.isArray(actions)) {\n return;\n }\n const actionsLen = actions.length;\n // 更多\n let moreRender;\n let realVisible = visible;\n if (actionsLen > visible) {\n realVisible = realVisible - 1;\n const moreActions = actions.slice(realVisible);\n /* eslint-disable */\n moreRender = (\n <Dropdown\n key=\"more\"\n overlay={\n <Menu onClick={e => moreActions[e.key].onClick(record, index)}>\n {moreActions.map((item, i) => (\n <Menu.Item key={i}>{item.name}</Menu.Item>\n ))}\n </Menu>\n }\n >\n <a>\n {customEnumText?.actionMoreText || \"更多\"}\n <DownOutlined />\n </a>\n </Dropdown>\n );\n }\n\n return [\n ...actions.slice(0, realVisible).map((item, i) => {\n const { name, onClick, popconfirm } = item;\n let btnNode = (\n <a\n key={name}\n onClick={onClick && !popconfirm ? () => onClick(record, index) : undefined}\n >\n {name}\n </a>\n );\n\n if (popconfirm) {\n const { confirm, ...rest } = popconfirm;\n btnNode = (\n <Popconfirm\n {...rest}\n onConfirm={confirm ? () => confirm(record, index) : undefined}\n key={name}\n >\n {btnNode}\n </Popconfirm>\n );\n }\n\n return [btnNode, i != actionsLen - 1 && <Divider key={i} type=\"vertical\" />];\n }),\n moreRender,\n ];\n};\n\nexport default renderColumnButtons;\n"],"mappings":"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"}
|
package/lib/vtx-export/index.js
CHANGED
|
@@ -51,7 +51,9 @@ var VtxExport = function VtxExport(props) {
|
|
|
51
51
|
allButton = _props$allButton === void 0 ? true : _props$allButton,
|
|
52
52
|
downloadURL = props.downloadURL,
|
|
53
53
|
_props$timeout = props.timeout,
|
|
54
|
-
timeout = _props$timeout === void 0 ? SECOND : _props$timeout
|
|
54
|
+
timeout = _props$timeout === void 0 ? SECOND : _props$timeout,
|
|
55
|
+
_props$customEnumText = props.customEnumText,
|
|
56
|
+
customEnumText = _props$customEnumText === void 0 ? {} : _props$customEnumText;
|
|
55
57
|
var getExportParams = props.getExportParams,
|
|
56
58
|
afterExport = props.afterExport;
|
|
57
59
|
/* 菜单点击 */
|
|
@@ -172,11 +174,11 @@ var VtxExport = function VtxExport(props) {
|
|
|
172
174
|
onClick: exportButtonClick
|
|
173
175
|
}, rowButton === false ? null : /*#__PURE__*/_react["default"].createElement(_menu["default"].Item, {
|
|
174
176
|
key: "rows"
|
|
175
|
-
}, "
|
|
177
|
+
}, (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.selectRowText) || "导出选中行"), pageButton === false ? null : /*#__PURE__*/_react["default"].createElement(_menu["default"].Item, {
|
|
176
178
|
key: "page"
|
|
177
|
-
}, "
|
|
179
|
+
}, (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.selectPageText) || "导出当前页"), allButton === false ? null : /*#__PURE__*/_react["default"].createElement(_menu["default"].Item, {
|
|
178
180
|
key: "all"
|
|
179
|
-
}, "
|
|
181
|
+
}, (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.selectAllText) || "导出全部"));
|
|
180
182
|
|
|
181
183
|
return /*#__PURE__*/_react["default"].createElement(_dropdown["default"], {
|
|
182
184
|
overlay: exportMenu,
|
|
@@ -194,7 +196,8 @@ VtxExport.propTypes = {
|
|
|
194
196
|
downloadURL: _propTypes["default"].string,
|
|
195
197
|
getExportParams: _propTypes["default"].func,
|
|
196
198
|
afterExport: _propTypes["default"].func,
|
|
197
|
-
timeout: _propTypes["default"].number
|
|
199
|
+
timeout: _propTypes["default"].number,
|
|
200
|
+
customEnumText: _propTypes["default"].object
|
|
198
201
|
};
|
|
199
202
|
var _default = VtxExport;
|
|
200
203
|
exports["default"] = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getUrlParam","token","SECOND","MILL_SECOND","VtxExport","props","exportText","rowButton","pageButton","allButton","downloadURL","timeout","getExportParams","afterExport","exportButtonClick","param","passVal","key","downLoadFile","requestToResponse","postData","params","url","method","responseType","headers","Authorization","data","qs","stringify","Promise","resolve","reject","axios","then","res","err","div","document","createElement","ReactDOM","render","body","appendChild","status","contentDisposition","filename","indexOf","decodeURI","split","replace","download","message","warn","removeChild","content","blob","Blob","window","navigator","msSaveOrOpenBlob","downloadByATag","URL","createObjectURL","href","a","style","display","click","remove","revokeObjectURL","exportMenu","propTypes","PropTypes","string","bool","func","number"],"sources":["vtx-export/index.jsx"],"sourcesContent":["import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport axios from 'axios';\r\nimport qs from 'querystring';\r\nimport Button from 'antd/lib/button';\r\nimport Menu from 'antd/lib/menu';\r\nimport Dropdown from 'antd/lib/dropdown';\r\nimport message from 'antd/lib/message';\r\nimport Spin from 'antd/lib/spin';\r\nimport getUrlParam from '@vtx/utils/lib/getUrlParam';\r\nimport DownOutlined from '@ant-design/icons/DownOutlined';\r\nimport ExportOutlined from '@ant-design/icons/ExportOutlined';\r\n\r\nconst { token } = getUrlParam();\r\n// 默认60秒超时\r\nconst SECOND = 60;\r\nconst MILL_SECOND = 1000;\r\n\r\nconst VtxExport = props => {\r\n const {\r\n exportText = '导出',\r\n rowButton = true,\r\n pageButton = true,\r\n allButton = true,\r\n downloadURL,\r\n timeout = SECOND,\r\n } = props;\r\n\r\n const { getExportParams, afterExport } = props;\r\n\r\n /* 菜单点击 */\r\n function exportButtonClick(param) {\r\n const passVal = typeof getExportParams == 'function' ? getExportParams(param.key) : null;\r\n if (!downloadURL) {\r\n return;\r\n }\r\n if (!passVal) {\r\n return;\r\n }\r\n downLoadFile(passVal);\r\n }\r\n\r\n // eslint-disable-next-line valid-jsdoc\r\n /**\r\n * 发送http请求\r\n * @param {Object} postData api参数\r\n * @return reponse\r\n */\r\n function requestToResponse(postData) {\r\n const params = {\r\n url: downloadURL,\r\n method: 'post',\r\n timeout: timeout * MILL_SECOND,\r\n responseType: 'blob',\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n Authorization: token ? `Bearer ${token}` : '',\r\n },\r\n data: qs.stringify(postData),\r\n };\r\n return new Promise((resolve, reject) => {\r\n axios(params)\r\n .then(res => {\r\n resolve(res);\r\n })\r\n .catch(err => {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n /* 下载文件 */\r\n function downLoadFile(postData) {\r\n const div = document.createElement('div');\r\n ReactDOM.render(<Spin spinning className=\"vtx-spin\" />, div);\r\n document.body.appendChild(div);\r\n\r\n requestToResponse(postData).then(res => {\r\n let status = false;\r\n // 文件存在\r\n if (res.headers['content-disposition']) {\r\n const contentDisposition = res.headers['content-disposition'];\r\n let filename;\r\n if (contentDisposition.indexOf('filename*=') > -1) {\r\n filename = decodeURI(\r\n contentDisposition.split('filename*=')[1].replace(\"utf-8'zh_cn'\", ''),\r\n );\r\n } else {\r\n filename = decodeURI(contentDisposition.split('filename=')[1]);\r\n }\r\n if ('download' in document.createElement('a')) {\r\n download(res.data, filename);\r\n status = true;\r\n } else {\r\n message.warn('浏览器不支持');\r\n }\r\n }\r\n // 关闭loading,执行回调\r\n document.body.removeChild(div);\r\n if (afterExport && typeof afterExport === 'function') {\r\n afterExport(status);\r\n }\r\n });\r\n }\r\n\r\n /* 下载并 兼容IE */\r\n function download(content, filename) {\r\n const blob = new Blob([content]);\r\n // IE\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, filename);\r\n } else {\r\n downloadByATag(window.URL.createObjectURL(blob), filename);\r\n }\r\n }\r\n\r\n /**\r\n * 通过a标签模拟下载\r\n * @param {String} href\r\n * @param {String} filename\r\n */\r\n function downloadByATag(href, filename) {\r\n const a = document.createElement('a');\r\n a.download = filename;\r\n a.style.display = 'none';\r\n a.href = href;\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n window.URL.revokeObjectURL(href);\r\n }\r\n\r\n const exportMenu = (\r\n <Menu onClick={exportButtonClick}>\r\n {rowButton === false ? null : <Menu.Item key=\"rows\">导出选中行</Menu.Item>}\r\n {pageButton === false ? null : <Menu.Item key=\"page\">导出当前页</Menu.Item>}\r\n {allButton === false ? null : <Menu.Item key=\"all\">导出全部</Menu.Item>}\r\n </Menu>\r\n );\r\n return (\r\n <Dropdown overlay={exportMenu} trigger={['click']}>\r\n <Button icon={<ExportOutlined />}>\r\n {exportText} <DownOutlined />\r\n </Button>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nVtxExport.propTypes = {\r\n exportText: PropTypes.string,\r\n rowButton: PropTypes.bool,\r\n pageButton: PropTypes.bool,\r\n allButton: PropTypes.bool,\r\n downloadURL: PropTypes.string,\r\n getExportParams: PropTypes.func,\r\n afterExport: PropTypes.func,\r\n timeout: PropTypes.number,\r\n};\r\nexport default VtxExport;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getUrlParam","token","SECOND","MILL_SECOND","VtxExport","props","exportText","rowButton","pageButton","allButton","downloadURL","timeout","customEnumText","getExportParams","afterExport","exportButtonClick","param","passVal","key","downLoadFile","requestToResponse","postData","params","url","method","responseType","headers","Authorization","data","qs","stringify","Promise","resolve","reject","axios","then","res","err","div","document","createElement","ReactDOM","render","body","appendChild","status","contentDisposition","filename","indexOf","decodeURI","split","replace","download","message","warn","removeChild","content","blob","Blob","window","navigator","msSaveOrOpenBlob","downloadByATag","URL","createObjectURL","href","a","style","display","click","remove","revokeObjectURL","exportMenu","selectRowText","selectPageText","selectAllText","propTypes","PropTypes","string","bool","func","number","object"],"sources":["vtx-export/index.jsx"],"sourcesContent":["import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport axios from 'axios';\r\nimport qs from 'querystring';\r\nimport Button from 'antd/lib/button';\r\nimport Menu from 'antd/lib/menu';\r\nimport Dropdown from 'antd/lib/dropdown';\r\nimport message from 'antd/lib/message';\r\nimport Spin from 'antd/lib/spin';\r\nimport getUrlParam from '@vtx/utils/lib/getUrlParam';\r\nimport DownOutlined from '@ant-design/icons/DownOutlined';\r\nimport ExportOutlined from '@ant-design/icons/ExportOutlined';\r\n\r\nconst { token } = getUrlParam();\r\n// 默认60秒超时\r\nconst SECOND = 60;\r\nconst MILL_SECOND = 1000;\r\n\r\nconst VtxExport = props => {\r\n const {\r\n exportText = '导出',\r\n rowButton = true,\r\n pageButton = true,\r\n allButton = true,\r\n downloadURL,\r\n timeout = SECOND,\r\n customEnumText = {}\r\n } = props;\r\n\r\n const { getExportParams, afterExport } = props;\r\n\r\n /* 菜单点击 */\r\n function exportButtonClick(param) {\r\n const passVal = typeof getExportParams == 'function' ? getExportParams(param.key) : null;\r\n if (!downloadURL) {\r\n return;\r\n }\r\n if (!passVal) {\r\n return;\r\n }\r\n downLoadFile(passVal);\r\n }\r\n\r\n // eslint-disable-next-line valid-jsdoc\r\n /**\r\n * 发送http请求\r\n * @param {Object} postData api参数\r\n * @return reponse\r\n */\r\n function requestToResponse(postData) {\r\n const params = {\r\n url: downloadURL,\r\n method: 'post',\r\n timeout: timeout * MILL_SECOND,\r\n responseType: 'blob',\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n Authorization: token ? `Bearer ${token}` : '',\r\n },\r\n data: qs.stringify(postData),\r\n };\r\n return new Promise((resolve, reject) => {\r\n axios(params)\r\n .then(res => {\r\n resolve(res);\r\n })\r\n .catch(err => {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n /* 下载文件 */\r\n function downLoadFile(postData) {\r\n const div = document.createElement('div');\r\n ReactDOM.render(<Spin spinning className=\"vtx-spin\" />, div);\r\n document.body.appendChild(div);\r\n\r\n requestToResponse(postData).then(res => {\r\n let status = false;\r\n // 文件存在\r\n if (res.headers['content-disposition']) {\r\n const contentDisposition = res.headers['content-disposition'];\r\n let filename;\r\n if (contentDisposition.indexOf('filename*=') > -1) {\r\n filename = decodeURI(\r\n contentDisposition.split('filename*=')[1].replace(\"utf-8'zh_cn'\", ''),\r\n );\r\n } else {\r\n filename = decodeURI(contentDisposition.split('filename=')[1]);\r\n }\r\n if ('download' in document.createElement('a')) {\r\n download(res.data, filename);\r\n status = true;\r\n } else {\r\n message.warn('浏览器不支持');\r\n }\r\n }\r\n // 关闭loading,执行回调\r\n document.body.removeChild(div);\r\n if (afterExport && typeof afterExport === 'function') {\r\n afterExport(status);\r\n }\r\n });\r\n }\r\n\r\n /* 下载并 兼容IE */\r\n function download(content, filename) {\r\n const blob = new Blob([content]);\r\n // IE\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, filename);\r\n } else {\r\n downloadByATag(window.URL.createObjectURL(blob), filename);\r\n }\r\n }\r\n\r\n /**\r\n * 通过a标签模拟下载\r\n * @param {String} href\r\n * @param {String} filename\r\n */\r\n function downloadByATag(href, filename) {\r\n const a = document.createElement('a');\r\n a.download = filename;\r\n a.style.display = 'none';\r\n a.href = href;\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n window.URL.revokeObjectURL(href);\r\n }\r\n\r\n const exportMenu = (\r\n <Menu onClick={exportButtonClick}>\r\n {rowButton === false ? null : <Menu.Item key=\"rows\">{customEnumText?.selectRowText || \"导出选中行\"}</Menu.Item>}\r\n {pageButton === false ? null : <Menu.Item key=\"page\">{customEnumText?.selectPageText || \"导出当前页\"}</Menu.Item>}\r\n {allButton === false ? null : <Menu.Item key=\"all\">{customEnumText?.selectAllText || \"导出全部\"}</Menu.Item>}\r\n </Menu>\r\n );\r\n return (\r\n <Dropdown overlay={exportMenu} trigger={['click']}>\r\n <Button icon={<ExportOutlined />}>\r\n {exportText} <DownOutlined />\r\n </Button>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nVtxExport.propTypes = {\r\n exportText: PropTypes.string,\r\n rowButton: PropTypes.bool,\r\n pageButton: PropTypes.bool,\r\n allButton: PropTypes.bool,\r\n downloadURL: PropTypes.string,\r\n getExportParams: PropTypes.func,\r\n afterExport: PropTypes.func,\r\n timeout: PropTypes.number,\r\n customEnumText: PropTypes.object\r\n};\r\nexport default VtxExport;\r\n"],"mappings":"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"}
|
|
@@ -41,7 +41,8 @@ var Content = function Content(_ref) {
|
|
|
41
41
|
setFileList = _ref.setFileList,
|
|
42
42
|
fileList = _ref.fileList,
|
|
43
43
|
templateURL = _ref.templateURL,
|
|
44
|
-
customText = _ref.customText
|
|
44
|
+
customText = _ref.customText,
|
|
45
|
+
TextEnum = _ref.TextEnum;
|
|
45
46
|
var fileInputRef = (0, _react.useRef)();
|
|
46
47
|
|
|
47
48
|
var onClick = function onClick() {
|
|
@@ -63,7 +64,7 @@ var Content = function Content(_ref) {
|
|
|
63
64
|
}, "1"), /*#__PURE__*/_react["default"].createElement(_DownloadSvg["default"], null), /*#__PURE__*/_react["default"].createElement("a", {
|
|
64
65
|
className: "vtx-import2-download",
|
|
65
66
|
href: templateURL
|
|
66
|
-
},
|
|
67
|
+
}, TextEnum.normalTemplateInfoText)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
67
68
|
className: "vtx-import2-content-box"
|
|
68
69
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
69
70
|
className: "vtx-import2-content-mark"
|
|
@@ -72,7 +73,7 @@ var Content = function Content(_ref) {
|
|
|
72
73
|
}, /*#__PURE__*/_react["default"].createElement("a", {
|
|
73
74
|
onClick: onClick,
|
|
74
75
|
className: "vtx-import2-text"
|
|
75
|
-
}, fileList.length === 0 ? customText ||
|
|
76
|
+
}, fileList.length === 0 ? customText || TextEnum.normalSelectFileInfoText : TextEnum.normalReChooseFileText), _toConsumableArray(fileList).map(function (file) {
|
|
76
77
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
77
78
|
key: file.name,
|
|
78
79
|
className: "vtx-import2-file-item"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.js","names":["Content","accept","fileKey","setFileList","fileList","templateURL","customText","fileInputRef","useRef","onClick","current","click","onFileChange","files","onDeleteFileList","length","map","file","name","color","cursor","display","fileName","propTypes","PropTypes","string","any","func"],"sources":["vtx-import2/Content.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRef } from 'react';\nimport CloseCircleFilled from '@ant-design/icons/CloseCircleFilled';\nimport UploadSvg from './UploadSvg';\nimport DownloadSvg from './DownloadSvg';\nconst Content = ({ accept, fileKey, setFileList, fileList, templateURL, customText }) => {\n const fileInputRef = useRef();\n const onClick = () => {\n fileInputRef.current && fileInputRef.current.click();\n };\n\n const onFileChange = () => {\n setFileList(fileInputRef.current.files);\n };\n\n const onDeleteFileList = () => {\n setFileList([]);\n };\n\n return (\n <div>\n <div className=\"vtx-import2-content-box\">\n <span className=\"vtx-import2-content-mark\">1</span>\n <DownloadSvg />\n <a className=\"vtx-import2-download\" href={templateURL}>\n
|
|
1
|
+
{"version":3,"file":"Content.js","names":["Content","accept","fileKey","setFileList","fileList","templateURL","customText","TextEnum","fileInputRef","useRef","onClick","current","click","onFileChange","files","onDeleteFileList","normalTemplateInfoText","length","normalSelectFileInfoText","normalReChooseFileText","map","file","name","color","cursor","display","fileName","propTypes","PropTypes","string","any","func"],"sources":["vtx-import2/Content.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRef } from 'react';\nimport CloseCircleFilled from '@ant-design/icons/CloseCircleFilled';\nimport UploadSvg from './UploadSvg';\nimport DownloadSvg from './DownloadSvg';\nconst Content = ({ accept, fileKey, setFileList, fileList, templateURL, customText, TextEnum }) => {\n const fileInputRef = useRef();\n const onClick = () => {\n fileInputRef.current && fileInputRef.current.click();\n };\n\n const onFileChange = () => {\n setFileList(fileInputRef.current.files);\n };\n\n const onDeleteFileList = () => {\n setFileList([]);\n };\n\n return (\n <div>\n <div className=\"vtx-import2-content-box\">\n <span className=\"vtx-import2-content-mark\">1</span>\n <DownloadSvg />\n <a className=\"vtx-import2-download\" href={templateURL}>\n {TextEnum.normalTemplateInfoText}\n </a>\n </div>\n <div className=\"vtx-import2-content-box\">\n <span className=\"vtx-import2-content-mark\">2</span>\n <UploadSvg />\n <div className=\"vtx-import2-file-list\">\n <a onClick={onClick} className=\"vtx-import2-text\">\n {fileList.length === 0 ? (customText||TextEnum.normalSelectFileInfoText) : TextEnum.normalReChooseFileText}\n </a>\n {[...fileList].map(file => (\n <div key={file.name} className=\"vtx-import2-file-item\">\n <span className=\"vtx-import2-file-name\">{file.name}</span>\n <CloseCircleFilled\n fill=\"#c0c0c0\"\n onClick={onDeleteFileList}\n style={{ color: '#c0c0c0', cursor: 'pointer' }}\n />\n </div>\n ))}\n </div>\n <input\n type=\"file\"\n name={fileKey}\n accept={accept}\n ref={fileInputRef}\n style={{ display: 'none' }}\n onChange={onFileChange}\n value={fileList.length === 0 ? '' : fileList[0].fileName}\n />\n </div>\n </div>\n );\n};\n\nContent.propTypes = {\n accept: PropTypes.string,\n fileKey: PropTypes.string,\n templateURL: PropTypes.string,\n fileList: PropTypes.any,\n setFileList: PropTypes.func,\n customText: PropTypes.string,\n};\n\nexport default Content;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAG,SAAVA,OAAU,OAAmF;EAAA,IAAhFC,MAAgF,QAAhFA,MAAgF;EAAA,IAAxEC,OAAwE,QAAxEA,OAAwE;EAAA,IAA/DC,WAA+D,QAA/DA,WAA+D;EAAA,IAAlDC,QAAkD,QAAlDA,QAAkD;EAAA,IAAxCC,WAAwC,QAAxCA,WAAwC;EAAA,IAA3BC,UAA2B,QAA3BA,UAA2B;EAAA,IAAfC,QAAe,QAAfA,QAAe;EAC/F,IAAMC,YAAY,GAAG,IAAAC,aAAA,GAArB;;EACA,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;IAClBF,YAAY,CAACG,OAAb,IAAwBH,YAAY,CAACG,OAAb,CAAqBC,KAArB,EAAxB;EACH,CAFD;;EAIA,IAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM;IACvBV,WAAW,CAACK,YAAY,CAACG,OAAb,CAAqBG,KAAtB,CAAX;EACH,CAFD;;EAIA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;IAC3BZ,WAAW,CAAC,EAAD,CAAX;EACH,CAFD;;EAIA,oBACI,0DACI;IAAK,SAAS,EAAC;EAAf,gBACI;IAAM,SAAS,EAAC;EAAhB,OADJ,eAEI,gCAAC,uBAAD,OAFJ,eAGI;IAAG,SAAS,EAAC,sBAAb;IAAoC,IAAI,EAAEE;EAA1C,GACKE,QAAQ,CAACS,sBADd,CAHJ,CADJ,eAQI;IAAK,SAAS,EAAC;EAAf,gBACI;IAAM,SAAS,EAAC;EAAhB,OADJ,eAEI,gCAAC,qBAAD,OAFJ,eAGI;IAAK,SAAS,EAAC;EAAf,gBACI;IAAG,OAAO,EAAEN,OAAZ;IAAqB,SAAS,EAAC;EAA/B,GACKN,QAAQ,CAACa,MAAT,KAAoB,CAApB,GAAyBX,UAAU,IAAEC,QAAQ,CAACW,wBAA9C,GAA0EX,QAAQ,CAACY,sBADxF,CADJ,EAIK,mBAAIf,QAAJ,EAAcgB,GAAd,CAAkB,UAAAC,IAAI;IAAA,oBACnB;MAAK,GAAG,EAAEA,IAAI,CAACC,IAAf;MAAqB,SAAS,EAAC;IAA/B,gBACI;MAAM,SAAS,EAAC;IAAhB,GAAyCD,IAAI,CAACC,IAA9C,CADJ,eAEI,gCAAC,6BAAD;MACI,IAAI,EAAC,SADT;MAEI,OAAO,EAAEP,gBAFb;MAGI,KAAK,EAAE;QAAEQ,KAAK,EAAE,SAAT;QAAoBC,MAAM,EAAE;MAA5B;IAHX,EAFJ,CADmB;EAAA,CAAtB,CAJL,CAHJ,eAkBI;IACI,IAAI,EAAC,MADT;IAEI,IAAI,EAAEtB,OAFV;IAGI,MAAM,EAAED,MAHZ;IAII,GAAG,EAAEO,YAJT;IAKI,KAAK,EAAE;MAAEiB,OAAO,EAAE;IAAX,CALX;IAMI,QAAQ,EAAEZ,YANd;IAOI,KAAK,EAAET,QAAQ,CAACa,MAAT,KAAoB,CAApB,GAAwB,EAAxB,GAA6Bb,QAAQ,CAAC,CAAD,CAAR,CAAYsB;EAPpD,EAlBJ,CARJ,CADJ;AAuCH,CArDD;;AAuDA1B,OAAO,CAAC2B,SAAR,GAAoB;EAChB1B,MAAM,EAAE2B,qBAAA,CAAUC,MADF;EAEhB3B,OAAO,EAAE0B,qBAAA,CAAUC,MAFH;EAGhBxB,WAAW,EAAEuB,qBAAA,CAAUC,MAHP;EAIhBzB,QAAQ,EAAEwB,qBAAA,CAAUE,GAJJ;EAKhB3B,WAAW,EAAEyB,qBAAA,CAAUG,IALP;EAMhBzB,UAAU,EAAEsB,qBAAA,CAAUC;AANN,CAApB;eASe7B,O"}
|
|
@@ -19,7 +19,8 @@ var ImportResult = function ImportResult(_ref) {
|
|
|
19
19
|
errorURL = _ref.errorURL,
|
|
20
20
|
errorDownloadName = _ref.errorDownloadName,
|
|
21
21
|
count = _ref.count,
|
|
22
|
-
token = _ref.token
|
|
22
|
+
token = _ref.token,
|
|
23
|
+
TextEnum = _ref.TextEnum;
|
|
23
24
|
var url = errorURL && errorFile && "".concat(errorURL, "?fileName=").concat(errorFile, "&downloadName=").concat(errorDownloadName || '', "&token=").concat(token);
|
|
24
25
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
25
26
|
className: "vtx-import2-result-warp"
|
|
@@ -30,19 +31,19 @@ var ImportResult = function ImportResult(_ref) {
|
|
|
30
31
|
}
|
|
31
32
|
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
32
33
|
className: "vtx-import2-result"
|
|
33
|
-
},
|
|
34
|
+
}, TextEnum.resultSuccessText), count !== null && /*#__PURE__*/_react["default"].createElement("span", {
|
|
34
35
|
className: "vtx-import2-result-success-tips"
|
|
35
|
-
},
|
|
36
|
+
}, TextEnum.resultInfoTotalText, count, TextEnum.resultInfoDataText)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_icons.CloseCircleFilled, {
|
|
36
37
|
style: {
|
|
37
38
|
color: '#ff4d4f',
|
|
38
39
|
fontSize: '80px'
|
|
39
40
|
}
|
|
40
41
|
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
41
42
|
className: "vtx-import2-result"
|
|
42
|
-
},
|
|
43
|
+
}, TextEnum.resultFailText), url && /*#__PURE__*/_react["default"].createElement("a", {
|
|
43
44
|
className: "vtx-import2-result-error-tips",
|
|
44
45
|
href: url
|
|
45
|
-
},
|
|
46
|
+
}, TextEnum.resultFailReasonDownText)));
|
|
46
47
|
};
|
|
47
48
|
|
|
48
49
|
ImportResult.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImportResult.js","names":["ImportResult","result","errorFile","errorURL","errorDownloadName","count","token","url","color","fontSize","propTypes","PropTypes","bool","string","any"],"sources":["vtx-import2/ImportResult.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CheckCircleFilled, CloseCircleFilled } from '@ant-design/icons';\n\nconst ImportResult = ({ result, errorFile, errorURL, errorDownloadName, count, token }) => {\n const url =\n errorURL &&\n errorFile &&\n `${errorURL}?fileName=${errorFile}&downloadName=${errorDownloadName || ''}&token=${token}`;\n return (\n <div className=\"vtx-import2-result-warp\">\n {result ? (\n <>\n <CheckCircleFilled style={{ color: '#52C41A', fontSize: '80px' }} />\n <span className=\"vtx-import2-result\"
|
|
1
|
+
{"version":3,"file":"ImportResult.js","names":["ImportResult","result","errorFile","errorURL","errorDownloadName","count","token","TextEnum","url","color","fontSize","resultSuccessText","resultInfoTotalText","resultInfoDataText","resultFailText","resultFailReasonDownText","propTypes","PropTypes","bool","string","any"],"sources":["vtx-import2/ImportResult.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CheckCircleFilled, CloseCircleFilled } from '@ant-design/icons';\n\nconst ImportResult = ({ result, errorFile, errorURL, errorDownloadName, count, token, TextEnum }) => {\n const url =\n errorURL &&\n errorFile &&\n `${errorURL}?fileName=${errorFile}&downloadName=${errorDownloadName || ''}&token=${token}`;\n return (\n <div className=\"vtx-import2-result-warp\">\n {result ? (\n <>\n <CheckCircleFilled style={{ color: '#52C41A', fontSize: '80px' }} />\n <span className=\"vtx-import2-result\">{TextEnum.resultSuccessText}</span>\n {count !== null && (\n <span className=\"vtx-import2-result-success-tips\">\n {TextEnum.resultInfoTotalText}{count}{TextEnum.resultInfoDataText}\n </span>\n )}\n </>\n ) : (\n <>\n <CloseCircleFilled style={{ color: '#ff4d4f', fontSize: '80px' }} />\n <span className=\"vtx-import2-result\">{TextEnum.resultFailText}</span>\n {url && (\n <a className=\"vtx-import2-result-error-tips\" href={url}>\n {TextEnum.resultFailReasonDownText}\n </a>\n )}\n </>\n )}\n </div>\n );\n};\n\nImportResult.propTypes = {\n result: PropTypes.bool,\n errorURL: PropTypes.string,\n token: PropTypes.string,\n errorFile: PropTypes.string,\n errorDownloadName: PropTypes.string,\n count: PropTypes.any,\n};\n\nexport default ImportResult;\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAAgF;EAAA,IAA7EC,MAA6E,QAA7EA,MAA6E;EAAA,IAArEC,SAAqE,QAArEA,SAAqE;EAAA,IAA1DC,QAA0D,QAA1DA,QAA0D;EAAA,IAAhDC,iBAAgD,QAAhDA,iBAAgD;EAAA,IAA7BC,KAA6B,QAA7BA,KAA6B;EAAA,IAAtBC,KAAsB,QAAtBA,KAAsB;EAAA,IAAfC,QAAe,QAAfA,QAAe;EACjG,IAAMC,GAAG,GACLL,QAAQ,IACRD,SADA,cAEGC,QAFH,uBAEwBD,SAFxB,2BAEkDE,iBAAiB,IAAI,EAFvE,oBAEmFE,KAFnF,CADJ;EAIA,oBACI;IAAK,SAAS,EAAC;EAAf,GACKL,MAAM,gBACH,+EACI,gCAAC,wBAAD;IAAmB,KAAK,EAAE;MAAEQ,KAAK,EAAE,SAAT;MAAoBC,QAAQ,EAAE;IAA9B;EAA1B,EADJ,eAEI;IAAM,SAAS,EAAC;EAAhB,GAAsCH,QAAQ,CAACI,iBAA/C,CAFJ,EAGKN,KAAK,KAAK,IAAV,iBACG;IAAM,SAAS,EAAC;EAAhB,GACKE,QAAQ,CAACK,mBADd,EACmCP,KADnC,EAC0CE,QAAQ,CAACM,kBADnD,CAJR,CADG,gBAWH,+EACI,gCAAC,wBAAD;IAAmB,KAAK,EAAE;MAAEJ,KAAK,EAAE,SAAT;MAAoBC,QAAQ,EAAE;IAA9B;EAA1B,EADJ,eAEI;IAAM,SAAS,EAAC;EAAhB,GAAsCH,QAAQ,CAACO,cAA/C,CAFJ,EAGKN,GAAG,iBACA;IAAG,SAAS,EAAC,+BAAb;IAA6C,IAAI,EAAEA;EAAnD,GACKD,QAAQ,CAACQ,wBADd,CAJR,CAZR,CADJ;AAyBH,CA9BD;;AAgCAf,YAAY,CAACgB,SAAb,GAAyB;EACrBf,MAAM,EAAEgB,qBAAA,CAAUC,IADG;EAErBf,QAAQ,EAAEc,qBAAA,CAAUE,MAFC;EAGrBb,KAAK,EAAEW,qBAAA,CAAUE,MAHI;EAIrBjB,SAAS,EAAEe,qBAAA,CAAUE,MAJA;EAKrBf,iBAAiB,EAAEa,qBAAA,CAAUE,MALR;EAMrBd,KAAK,EAAEY,qBAAA,CAAUG;AANI,CAAzB;eASepB,Y"}
|
package/lib/vtx-import2/index.js
CHANGED
|
@@ -47,6 +47,12 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
47
47
|
|
|
48
48
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
49
49
|
|
|
50
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
51
|
+
|
|
52
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
53
|
+
|
|
54
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
55
|
+
|
|
50
56
|
function getFileName() {
|
|
51
57
|
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
52
58
|
var index = name.lastIndexOf('.');
|
|
@@ -66,7 +72,27 @@ var VtxImport2 = function VtxImport2(props) {
|
|
|
66
72
|
templateURL = props.templateURL,
|
|
67
73
|
afterUpload = props.afterUpload,
|
|
68
74
|
errorDownloadName = props.errorDownloadName,
|
|
69
|
-
customText = props.customText
|
|
75
|
+
customText = props.customText,
|
|
76
|
+
_props$customEnumText = props.customEnumText,
|
|
77
|
+
customEnumText = _props$customEnumText === void 0 ? {} : _props$customEnumText;
|
|
78
|
+
|
|
79
|
+
var TextEnum = _objectSpread({
|
|
80
|
+
headSubTitleText: '导入',
|
|
81
|
+
btnCloseText: '关闭',
|
|
82
|
+
btnUploadText: '上传',
|
|
83
|
+
btnReUploadText: '再次上传',
|
|
84
|
+
btnImportText: '导入',
|
|
85
|
+
msgUploadWarningText: '请选择需要上传的文件',
|
|
86
|
+
normalTemplateInfoText: '没有模板?点击此处下载',
|
|
87
|
+
normalSelectFileInfoText: '点击选择文件(支持excel格式)',
|
|
88
|
+
normalReChooseFileText: '重新选择文件',
|
|
89
|
+
resultSuccessText: '导入成功',
|
|
90
|
+
resultFailText: '导入失败',
|
|
91
|
+
resultFailReasonDownText: '下载文件,查看导入失败原因',
|
|
92
|
+
resultInfoTotalText: '本次共计',
|
|
93
|
+
resultInfoDataText: '条数据',
|
|
94
|
+
resultNetworkErrorText: '服务器异常'
|
|
95
|
+
}, customEnumText);
|
|
70
96
|
|
|
71
97
|
var _useState = (0, _react.useState)(0),
|
|
72
98
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -172,7 +198,7 @@ var VtxImport2 = function VtxImport2(props) {
|
|
|
172
198
|
if (parseData.data) {
|
|
173
199
|
setErrorFile(parseData.data);
|
|
174
200
|
} else {
|
|
175
|
-
_antd.message.error((parseData === null || parseData === void 0 ? void 0 : parseData.msg) ||
|
|
201
|
+
_antd.message.error((parseData === null || parseData === void 0 ? void 0 : parseData.msg) || TextEnum.resultNetworkErrorText);
|
|
176
202
|
}
|
|
177
203
|
}
|
|
178
204
|
};
|
|
@@ -182,7 +208,7 @@ var VtxImport2 = function VtxImport2(props) {
|
|
|
182
208
|
files = _ref$files === void 0 ? fileList : _ref$files;
|
|
183
209
|
|
|
184
210
|
if (files.length === 0) {
|
|
185
|
-
return _antd.message.info(
|
|
211
|
+
return _antd.message.info(TextEnum.msgUploadWarningText);
|
|
186
212
|
}
|
|
187
213
|
|
|
188
214
|
setUploading(true);
|
|
@@ -225,12 +251,12 @@ var VtxImport2 = function VtxImport2(props) {
|
|
|
225
251
|
footer: [/*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
226
252
|
key: "closeWindow",
|
|
227
253
|
onClick: close
|
|
228
|
-
}, "
|
|
254
|
+
}, "".concat(TextEnum.btnCloseText).concat(status === 1 && result ? '(' + countdown + ')' : '')), (status === 0 || status === 1 && !result) && /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
229
255
|
key: "uploadSubmit",
|
|
230
256
|
type: "primary",
|
|
231
257
|
loading: uploading,
|
|
232
258
|
onClick: status === 0 ? onUpload : againUpload
|
|
233
|
-
}, status === 0 ?
|
|
259
|
+
}, status === 0 ? TextEnum.btnUploadText : result ? "".concat(TextEnum.btnImportText, "(").concat(countdown, ")") : TextEnum.btnReUploadText)],
|
|
234
260
|
onCancel: close,
|
|
235
261
|
title: /*#__PURE__*/_react["default"].createElement("div", {
|
|
236
262
|
className: "vtx-import2-modal-header-title"
|
|
@@ -238,7 +264,7 @@ var VtxImport2 = function VtxImport2(props) {
|
|
|
238
264
|
className: "vtx-import2-modal-header-text"
|
|
239
265
|
}, title), /*#__PURE__*/_react["default"].createElement("span", {
|
|
240
266
|
className: "vtx-import2-modal-header-subtitle"
|
|
241
|
-
},
|
|
267
|
+
}, TextEnum.headSubTitleText))
|
|
242
268
|
};
|
|
243
269
|
return /*#__PURE__*/_react["default"].createElement(_antd.Modal, modelProps, status === 0 ? /*#__PURE__*/_react["default"].createElement(_Content["default"], {
|
|
244
270
|
fileList: fileList,
|
|
@@ -246,14 +272,16 @@ var VtxImport2 = function VtxImport2(props) {
|
|
|
246
272
|
accept: accept,
|
|
247
273
|
fileKey: fileKey,
|
|
248
274
|
templateURL: templateURL,
|
|
249
|
-
customText: customText
|
|
275
|
+
customText: customText,
|
|
276
|
+
TextEnum: TextEnum
|
|
250
277
|
}) : /*#__PURE__*/_react["default"].createElement(_ImportResult["default"], {
|
|
251
278
|
result: result,
|
|
252
279
|
count: count,
|
|
253
280
|
errorFile: errorFile,
|
|
254
281
|
errorURL: errorURL,
|
|
255
282
|
token: token,
|
|
256
|
-
errorDownloadName: newErrorDownloadName
|
|
283
|
+
errorDownloadName: newErrorDownloadName,
|
|
284
|
+
TextEnum: TextEnum
|
|
257
285
|
}), /*#__PURE__*/_react["default"].createElement("input", {
|
|
258
286
|
type: "file",
|
|
259
287
|
name: fileKey,
|
|
@@ -285,7 +313,8 @@ VtxImport2.propTypes = {
|
|
|
285
313
|
errorDownloadName: _propTypes["default"].string,
|
|
286
314
|
afterUpload: _propTypes["default"].func,
|
|
287
315
|
token: _propTypes["default"].string,
|
|
288
|
-
customText: _propTypes["default"].string
|
|
316
|
+
customText: _propTypes["default"].string,
|
|
317
|
+
customEnumText: _propTypes["default"].object
|
|
289
318
|
};
|
|
290
319
|
var _default = VtxImport2;
|
|
291
320
|
exports["default"] = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getFileName","name","index","lastIndexOf","suffix","substring","VtxImport2","props","visible","close","title","accept","fileKey","uploadURL","postData","errorURL","templateURL","afterUpload","errorDownloadName","customText","useState","status","setStatus","result","setResult","countdown","setCountdown","fileList","setFileList","undefined","interval","setInterval","errorFile","setErrorFile","uploading","setUploading","count","setCount","fileInputRef","useRef","fileName","getUrlParam","token","newErrorDownloadName","current","useInterval","useEffect","length","getPostURL","postUrl","postArray","k","push","encodeURIComponent","join","dealResult","response","parseData","JSON","parse","data","message","error","msg","onUpload","files","info","fmd","FormData","append","request","XMLHttpRequest","open","setRequestHeader","onreadystatechange","e","target","readyState","send","againUpload","click","onFileChange","modelProps","width","maskClosable","footer","onCancel","display","defaultProps","propTypes","PropTypes","bool","string","object","func"],"sources":["vtx-import2/index.jsx"],"sourcesContent":["import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, message, Modal } from 'antd';\r\nimport Content from './Content';\r\nimport { useState } from 'react';\r\nimport ImportResult from './ImportResult';\r\nimport { useInterval } from 'ahooks';\r\nimport { getUrlParam } from '@vtx/utils';\r\nimport { useEffect } from 'react';\r\n\r\nfunction getFileName(name = '') {\r\n const index = name.lastIndexOf('.');\r\n const suffix = name.substring(index);\r\n return name.substring(0, index) + '(错误文件)' + suffix;\r\n}\r\n\r\nconst VtxImport2 = props => {\r\n const {\r\n visible,\r\n close,\r\n title,\r\n accept,\r\n fileKey,\r\n uploadURL,\r\n postData,\r\n errorURL,\r\n templateURL,\r\n afterUpload,\r\n errorDownloadName,\r\n customText,\r\n } = props;\r\n const [status, setStatus] = useState(0); // 0:首页,1:结果页\r\n const [result, setResult] = useState(false);\r\n const [countdown, setCountdown] = useState(5);\r\n const [fileList, setFileList] = useState([]);\r\n const [interval, setInterval] = useState(undefined);\r\n const [errorFile, setErrorFile] = useState('');\r\n const [uploading, setUploading] = useState(false);\r\n const [count, setCount] = useState(0);\r\n const fileInputRef = useRef();\r\n const fileName = useRef('');\r\n let { token } = getUrlParam();\r\n if (!token) {\r\n token = props.token;\r\n }\r\n let newErrorDownloadName = errorDownloadName;\r\n if (!errorDownloadName) {\r\n newErrorDownloadName = fileName.current;\r\n }\r\n useInterval(() => {\r\n if (countdown === 0) {\r\n return close();\r\n }\r\n setCountdown(countdown - 1);\r\n }, interval);\r\n\r\n useEffect(() => {\r\n if (fileList.length !== 0) {\r\n fileName.current = getFileName(fileList[0].name);\r\n }\r\n }, [fileList]);\r\n\r\n // 获取上传地址(拼接参数)\r\n const getPostURL = () => {\r\n const postUrl = uploadURL;\r\n const postArray = [];\r\n for (const k in postData) {\r\n if (postData[k] !== undefined && postData[k] !== null && postData[k] !== '') {\r\n postArray.push(`${k}=${encodeURIComponent(postData[k])}`);\r\n }\r\n }\r\n return postArray.length > 0 ? `${postUrl}?${postArray.join('&')}` : postUrl;\r\n };\r\n\r\n const dealResult = response => {\r\n setUploading(false);\r\n const parseData = JSON.parse(response);\r\n setStatus(1);\r\n if (typeof props.afterUpload === 'function') {\r\n afterUpload(parseData);\r\n }\r\n if (parseData.result === 0) {\r\n setResult(true);\r\n setCountdown(5);\r\n setInterval(1000);\r\n setCount(parseData.data);\r\n } else if (parseData.result === 1) {\r\n setResult(false);\r\n setFileList([]);\r\n if (parseData.data) {\r\n setErrorFile(parseData.data);\r\n } else {\r\n message.error(parseData?.msg || '服务器异常');\r\n }\r\n }\r\n };\r\n\r\n const onUpload = ({ files = fileList }) => {\r\n if (files.length === 0) {\r\n return message.info('请选择需要上传的文件');\r\n }\r\n setUploading(true);\r\n const postUrl = getPostURL();\r\n const fmd = new FormData();\r\n fmd.append(fileKey, files[0]);\r\n const request = new XMLHttpRequest();\r\n request.open('POST', postUrl);\r\n\r\n request.setRequestHeader('Authorization', token ? `Bearer ${token}` : '');\r\n request.setRequestHeader('access_token', token ? `${token}` : '');\r\n request.onreadystatechange = e => {\r\n if (e.target.readyState == 4) {\r\n dealResult(e.target.response);\r\n }\r\n };\r\n\r\n request.send(fmd);\r\n };\r\n\r\n const againUpload = () => {\r\n setInterval(undefined);\r\n setFileList([]);\r\n fileInputRef.current && fileInputRef.current.click();\r\n };\r\n\r\n const onFileChange = () => {\r\n const fileList = [...fileInputRef.current.files];\r\n setFileList(fileList);\r\n onUpload({ files: fileList });\r\n };\r\n\r\n const modelProps = {\r\n visible,\r\n width: 392,\r\n maskClosable: false,\r\n footer: [\r\n <Button key=\"closeWindow\" onClick={close}>\r\n {`关闭${status === 1 && result ? '(' + countdown + ')' : ''}`}\r\n </Button>,\r\n (status === 0 || (status === 1 && !result)) && (\r\n <Button\r\n key=\"uploadSubmit\"\r\n type=\"primary\"\r\n loading={uploading}\r\n onClick={status === 0 ? onUpload : againUpload}\r\n >\r\n {status === 0 ? '上传' : result ? `导入(${countdown})` : '再次上传'}\r\n </Button>\r\n ),\r\n ],\r\n onCancel: close,\r\n title: (\r\n <div className=\"vtx-import2-modal-header-title\">\r\n <span className=\"vtx-import2-modal-header-text\">{title}</span>\r\n <span className=\"vtx-import2-modal-header-subtitle\">导入</span>\r\n </div>\r\n ),\r\n };\r\n return (\r\n <Modal {...modelProps}>\r\n {status === 0 ? (\r\n <Content\r\n fileList={fileList}\r\n setFileList={setFileList}\r\n accept={accept}\r\n fileKey={fileKey}\r\n templateURL={templateURL}\r\n customText={customText}\r\n />\r\n ) : (\r\n <ImportResult\r\n result={result}\r\n count={count}\r\n errorFile={errorFile}\r\n errorURL={errorURL}\r\n token={token}\r\n errorDownloadName={newErrorDownloadName}\r\n />\r\n )}\r\n <input\r\n type=\"file\"\r\n name={fileKey}\r\n accept={accept}\r\n ref={fileInputRef}\r\n style={{ display: 'none' }}\r\n onChange={onFileChange}\r\n value={fileList.length === 0 ? '' : fileList[0].fileName}\r\n />\r\n </Modal>\r\n );\r\n};\r\n\r\nVtxImport2.defaultProps = {\r\n fileKey: 'file',\r\n accept:\r\n 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/csv',\r\n postData: {},\r\n};\r\n\r\nVtxImport2.propTypes = {\r\n visible: PropTypes.bool,\r\n templateURL: PropTypes.string,\r\n uploadURL: PropTypes.string,\r\n title: PropTypes.string,\r\n postData: PropTypes.object,\r\n fileKey: PropTypes.string,\r\n accept: PropTypes.string,\r\n close: PropTypes.func,\r\n errorURL: PropTypes.string,\r\n errorDownloadName: PropTypes.string,\r\n afterUpload: PropTypes.func,\r\n token: PropTypes.string,\r\n customText: PropTypes.string,\r\n};\r\n\r\nexport default VtxImport2;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getFileName","name","index","lastIndexOf","suffix","substring","VtxImport2","props","visible","close","title","accept","fileKey","uploadURL","postData","errorURL","templateURL","afterUpload","errorDownloadName","customText","customEnumText","TextEnum","headSubTitleText","btnCloseText","btnUploadText","btnReUploadText","btnImportText","msgUploadWarningText","normalTemplateInfoText","normalSelectFileInfoText","normalReChooseFileText","resultSuccessText","resultFailText","resultFailReasonDownText","resultInfoTotalText","resultInfoDataText","resultNetworkErrorText","useState","status","setStatus","result","setResult","countdown","setCountdown","fileList","setFileList","undefined","interval","setInterval","errorFile","setErrorFile","uploading","setUploading","count","setCount","fileInputRef","useRef","fileName","getUrlParam","token","newErrorDownloadName","current","useInterval","useEffect","length","getPostURL","postUrl","postArray","k","push","encodeURIComponent","join","dealResult","response","parseData","JSON","parse","data","message","error","msg","onUpload","files","info","fmd","FormData","append","request","XMLHttpRequest","open","setRequestHeader","onreadystatechange","e","target","readyState","send","againUpload","click","onFileChange","modelProps","width","maskClosable","footer","onCancel","display","defaultProps","propTypes","PropTypes","bool","string","object","func"],"sources":["vtx-import2/index.jsx"],"sourcesContent":["import React, { useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, message, Modal } from 'antd';\r\nimport Content from './Content';\r\nimport { useState } from 'react';\r\nimport ImportResult from './ImportResult';\r\nimport { useInterval } from 'ahooks';\r\nimport { getUrlParam } from '@vtx/utils';\r\nimport { useEffect } from 'react';\r\n\r\nfunction getFileName(name = '') {\r\n const index = name.lastIndexOf('.');\r\n const suffix = name.substring(index);\r\n return name.substring(0, index) + '(错误文件)' + suffix;\r\n}\r\n\r\nconst VtxImport2 = props => {\r\n const {\r\n visible,\r\n close,\r\n title,\r\n accept,\r\n fileKey,\r\n uploadURL,\r\n postData,\r\n errorURL,\r\n templateURL,\r\n afterUpload,\r\n errorDownloadName,\r\n customText,\r\n customEnumText={}\r\n } = props;\r\n const TextEnum = {\r\n headSubTitleText: '导入',\r\n\r\n btnCloseText: '关闭',\r\n btnUploadText: '上传',\r\n btnReUploadText: '再次上传',\r\n btnImportText: '导入',\r\n\r\n msgUploadWarningText: '请选择需要上传的文件',\r\n\r\n normalTemplateInfoText: '没有模板?点击此处下载',\r\n normalSelectFileInfoText: '点击选择文件(支持excel格式)',\r\n normalReChooseFileText: '重新选择文件',\r\n\r\n resultSuccessText: '导入成功',\r\n resultFailText: '导入失败',\r\n resultFailReasonDownText: '下载文件,查看导入失败原因',\r\n resultInfoTotalText: '本次共计',\r\n resultInfoDataText: '条数据',\r\n resultNetworkErrorText: '服务器异常',\r\n\r\n ...customEnumText\r\n }\r\n const [status, setStatus] = useState(0); // 0:首页,1:结果页\r\n const [result, setResult] = useState(false);\r\n const [countdown, setCountdown] = useState(5);\r\n const [fileList, setFileList] = useState([]);\r\n const [interval, setInterval] = useState(undefined);\r\n const [errorFile, setErrorFile] = useState('');\r\n const [uploading, setUploading] = useState(false);\r\n const [count, setCount] = useState(0);\r\n const fileInputRef = useRef();\r\n const fileName = useRef('');\r\n let { token } = getUrlParam();\r\n if (!token) {\r\n token = props.token;\r\n }\r\n let newErrorDownloadName = errorDownloadName;\r\n if (!errorDownloadName) {\r\n newErrorDownloadName = fileName.current;\r\n }\r\n useInterval(() => {\r\n if (countdown === 0) {\r\n return close();\r\n }\r\n setCountdown(countdown - 1);\r\n }, interval);\r\n\r\n useEffect(() => {\r\n if (fileList.length !== 0) {\r\n fileName.current = getFileName(fileList[0].name);\r\n }\r\n }, [fileList]);\r\n\r\n // 获取上传地址(拼接参数)\r\n const getPostURL = () => {\r\n const postUrl = uploadURL;\r\n const postArray = [];\r\n for (const k in postData) {\r\n if (postData[k] !== undefined && postData[k] !== null && postData[k] !== '') {\r\n postArray.push(`${k}=${encodeURIComponent(postData[k])}`);\r\n }\r\n }\r\n return postArray.length > 0 ? `${postUrl}?${postArray.join('&')}` : postUrl;\r\n };\r\n\r\n const dealResult = response => {\r\n setUploading(false);\r\n const parseData = JSON.parse(response);\r\n setStatus(1);\r\n if (typeof props.afterUpload === 'function') {\r\n afterUpload(parseData);\r\n }\r\n if (parseData.result === 0) {\r\n setResult(true);\r\n setCountdown(5);\r\n setInterval(1000);\r\n setCount(parseData.data);\r\n } else if (parseData.result === 1) {\r\n setResult(false);\r\n setFileList([]);\r\n if (parseData.data) {\r\n setErrorFile(parseData.data);\r\n } else {\r\n message.error(parseData?.msg || TextEnum.resultNetworkErrorText);\r\n }\r\n }\r\n };\r\n\r\n const onUpload = ({ files = fileList }) => {\r\n if (files.length === 0) {\r\n return message.info(TextEnum.msgUploadWarningText);\r\n }\r\n setUploading(true);\r\n const postUrl = getPostURL();\r\n const fmd = new FormData();\r\n fmd.append(fileKey, files[0]);\r\n const request = new XMLHttpRequest();\r\n request.open('POST', postUrl);\r\n\r\n request.setRequestHeader('Authorization', token ? `Bearer ${token}` : '');\r\n request.setRequestHeader('access_token', token ? `${token}` : '');\r\n request.onreadystatechange = e => {\r\n if (e.target.readyState == 4) {\r\n dealResult(e.target.response);\r\n }\r\n };\r\n\r\n request.send(fmd);\r\n };\r\n\r\n const againUpload = () => {\r\n setInterval(undefined);\r\n setFileList([]);\r\n fileInputRef.current && fileInputRef.current.click();\r\n };\r\n\r\n const onFileChange = () => {\r\n const fileList = [...fileInputRef.current.files];\r\n setFileList(fileList);\r\n onUpload({ files: fileList });\r\n };\r\n\r\n const modelProps = {\r\n visible,\r\n width: 392,\r\n maskClosable: false,\r\n footer: [\r\n <Button key=\"closeWindow\" onClick={close}>\r\n {`${TextEnum.btnCloseText}${status === 1 && result ? '(' + countdown + ')' : ''}`}\r\n </Button>,\r\n (status === 0 || (status === 1 && !result)) && (\r\n <Button\r\n key=\"uploadSubmit\"\r\n type=\"primary\"\r\n loading={uploading}\r\n onClick={status === 0 ? onUpload : againUpload}\r\n >\r\n {status === 0 ? TextEnum.btnUploadText : result ? `${TextEnum.btnImportText}(${countdown})` : TextEnum.btnReUploadText}\r\n </Button>\r\n ),\r\n ],\r\n onCancel: close,\r\n title: (\r\n <div className=\"vtx-import2-modal-header-title\">\r\n <span className=\"vtx-import2-modal-header-text\">{title}</span>\r\n <span className=\"vtx-import2-modal-header-subtitle\">{TextEnum.headSubTitleText}</span>\r\n </div>\r\n ),\r\n };\r\n return (\r\n <Modal {...modelProps}>\r\n {status === 0 ? (\r\n <Content\r\n fileList={fileList}\r\n setFileList={setFileList}\r\n accept={accept}\r\n fileKey={fileKey}\r\n templateURL={templateURL}\r\n customText={customText}\r\n TextEnum={TextEnum}\r\n />\r\n ) : (\r\n <ImportResult\r\n result={result}\r\n count={count}\r\n errorFile={errorFile}\r\n errorURL={errorURL}\r\n token={token}\r\n errorDownloadName={newErrorDownloadName}\r\n TextEnum={TextEnum}\r\n />\r\n )}\r\n <input\r\n type=\"file\"\r\n name={fileKey}\r\n accept={accept}\r\n ref={fileInputRef}\r\n style={{ display: 'none' }}\r\n onChange={onFileChange}\r\n value={fileList.length === 0 ? '' : fileList[0].fileName}\r\n />\r\n </Modal>\r\n );\r\n};\r\n\r\nVtxImport2.defaultProps = {\r\n fileKey: 'file',\r\n accept:\r\n 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/csv',\r\n postData: {},\r\n};\r\n\r\nVtxImport2.propTypes = {\r\n visible: PropTypes.bool,\r\n templateURL: PropTypes.string,\r\n uploadURL: PropTypes.string,\r\n title: PropTypes.string,\r\n postData: PropTypes.object,\r\n fileKey: PropTypes.string,\r\n accept: PropTypes.string,\r\n close: PropTypes.func,\r\n errorURL: PropTypes.string,\r\n errorDownloadName: PropTypes.string,\r\n afterUpload: PropTypes.func,\r\n token: PropTypes.string,\r\n customText: PropTypes.string,\r\n customEnumText: PropTypes.object\r\n};\r\n\r\nexport default VtxImport2;\r\n"],"mappings":"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"}
|
package/lib/vtx-search/index.js
CHANGED
|
@@ -95,7 +95,9 @@ function VtxSearch(props) {
|
|
|
95
95
|
renderButtons = props.renderButtons,
|
|
96
96
|
_props$showAll = props.showAll,
|
|
97
97
|
showAll = _props$showAll === void 0 ? false : _props$showAll,
|
|
98
|
-
onToggleShow = props.onToggleShow
|
|
98
|
+
onToggleShow = props.onToggleShow,
|
|
99
|
+
_props$customEnumText = props.customEnumText,
|
|
100
|
+
customEnumText = _props$customEnumText === void 0 ? {} : _props$customEnumText;
|
|
99
101
|
var vtxSearchRef = (0, _react.useRef)();
|
|
100
102
|
var size = (0, _useColSize["default"])(vtxSearchRef);
|
|
101
103
|
var realColumn = column[size];
|
|
@@ -306,7 +308,7 @@ function VtxSearch(props) {
|
|
|
306
308
|
return isShowMore();
|
|
307
309
|
},
|
|
308
310
|
className: "vtx-search-more"
|
|
309
|
-
}, height > rowHeight ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "
|
|
311
|
+
}, height > rowHeight ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.collapseText) || "收起", /*#__PURE__*/_react["default"].createElement(_UpOutlined["default"], null)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.expandText) || "展开", /*#__PURE__*/_react["default"].createElement(_DownOutlined["default"], null)))))));
|
|
310
312
|
}
|
|
311
313
|
|
|
312
314
|
VtxSearch.propTypes = {
|
|
@@ -326,7 +328,8 @@ VtxSearch.propTypes = {
|
|
|
326
328
|
clearText: _propTypes["default"].string,
|
|
327
329
|
renderButtons: _propTypes["default"].node,
|
|
328
330
|
showAll: _propTypes["default"].bool,
|
|
329
|
-
onToggleShow: _propTypes["default"].func
|
|
331
|
+
onToggleShow: _propTypes["default"].func,
|
|
332
|
+
customEnumText: _propTypes["default"].object
|
|
330
333
|
};
|
|
331
334
|
var _default = VtxSearch;
|
|
332
335
|
exports["default"] = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["VtxSearch","props","layout","column","lg","md","sm","gridWeight","titles","labelWidth","wrapClassName","isConfirmButton","isClearButton","isMoreButton","confirmText","clearText","onConfirm","onClear","renderButtons","showAll","onToggleShow","vtxSearchRef","useRef","size","useColSize","realColumn","useContext","StoreCtx","onCollapse","initStyle","height","useState","weightiness","setWeightiness","useSetState","style","setStyle","boxStyle","ref","newGridWeight","filter","item","newTitles","newChildren","Array","isArray","children","rowHeight","useLayoutEffect","map","padding","current","clientHeight","isShowMore","analyzeChildren","data","cData","length","render","chData","forEach","ite","push","index","layout_h","d","i","textAlign","width","layout_v","gwt","classnames","paddingTop","propTypes","PropTypes","oneOf","objectOf","number","array","string","node","bool","func"],"sources":["vtx-search/index.jsx"],"sourcesContent":["/*\n * @Author: chenxinyu\n * @Date: 2021-03-24 21:47:52\n * @LastEditors: your name\n * @LastEditTime: 2022-03-22 16:19:00\n * @Description: 查询布局组件\n * @FilePath: \\react-components\\components\\vtx-search\\index.jsx\n */\nimport React, { useState, useLayoutEffect, useRef, useContext } from 'react';\nimport useSetState from 'ahooks/es/useSetState';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Button from 'antd/lib/button';\nimport Tooltip from 'antd/lib/tooltip';\nimport UpOutlined from '@ant-design/icons/UpOutlined';\nimport DownOutlined from '@ant-design/icons/DownOutlined';\nimport VtxRow from './VtxRow';\nimport VtxCol from './VtxCol';\nimport { StoreCtx } from '../vtx-page-layout/TableLayout';\nimport useColSize from '../_util/useColSize';\n\nfunction VtxSearch(props) {\n //参数列表\n const {\n layout = 'horizontal',\n column = { lg: 4, md: 3, sm: 2 },\n gridWeight = [],\n titles = [],\n labelWidth = 84, //搜索条件名宽度\n wrapClassName,\n isConfirmButton = true, //是否显示确认按钮\n isClearButton = true, //是否显示清空按钮\n isMoreButton = true, //是否显示更多按钮\n confirmText = '查询', //确认按钮文本\n clearText = '重置', //情况按钮文本\n onConfirm, //确认按钮回调\n onClear, //清空按钮回调\n renderButtons, //自定义按钮块\n showAll = false, //是否展示所有查询条件\n onToggleShow,\n } = props;\n\n const vtxSearchRef = useRef();\n const size = useColSize(vtxSearchRef);\n const realColumn = column[size];\n\n const { onCollapse } = useContext(StoreCtx);\n\n const initStyle = {\n height: layout === 'horizontal' ? 48 : 68,\n };\n //初始化\n const [weightiness, setWeightiness] = useState(0);\n const [style, setStyle] = useSetState(initStyle);\n const { height, boxStyle } = style;\n const ref = useRef();\n\n const newGridWeight = gridWeight.filter(item => !!item);\n const newTitles = titles.filter(item => !!item);\n const newChildren = Array.isArray(props?.children)\n ? props?.children.filter(item => !!item)\n : props?.children;\n\n const rowHeight = layout === 'horizontal' ? 48 : 68;\n\n useLayoutEffect(() => {\n let weightiness = 0;\n newGridWeight.map(item => {\n weightiness += item;\n });\n const padding = 16;\n setWeightiness(weightiness);\n\n if (showAll) {\n setStyle(\n weightiness > realColumn\n ? {\n height: ref.current.clientHeight,\n }\n : initStyle,\n );\n onCollapse && onCollapse(ref.current.clientHeight + padding);\n }\n }, [gridWeight, realColumn]);\n\n const isShowMore = () => {\n const padding = 16;\n if (height > rowHeight) {\n setStyle(initStyle);\n if (onToggleShow && typeof onToggleShow === 'function') {\n onToggleShow(rowHeight + padding);\n }\n onCollapse && onCollapse(rowHeight + padding);\n } else {\n setStyle({\n height: ref.current.clientHeight,\n });\n if (onToggleShow && typeof onToggleShow === 'function') {\n onToggleShow(ref.current.clientHeight + padding);\n }\n onCollapse && onCollapse(ref.current.clientHeight + padding);\n }\n };\n\n const analyzeChildren = data => {\n let cData = data;\n if (!cData) return null;\n if (typeof data == 'function') {\n cData = data();\n }\n if (!cData.length) {\n return render(cData, 0);\n } else {\n let chData = [];\n cData.forEach(item => {\n if (typeof item == 'function') {\n let ite = item();\n if (Array.isArray(ite)) {\n chData.push(...ite);\n }\n chData.push(ite);\n return;\n }\n if (Array.isArray(item)) {\n chData.push(...item);\n return;\n }\n chData.push(item);\n });\n return chData.map((item, index) => {\n return render(item, index);\n });\n }\n };\n\n const layout_h = (d, i) => (\n <VtxRow gutter={2} attr=\"row\">\n <div className=\"vtx-search-label_h\" style={{ textAlign: 'right', width: labelWidth }}>\n <Tooltip title={newTitles[i]} placement=\"topRight\">\n {newTitles[i]}\n </Tooltip>\n </div>\n <div className=\"vtx-search-lists_h\" style={{ width: `calc(100% - ${labelWidth}px)` }}>\n <span className=\"vtx-search-list\">{d}</span>\n </div>\n </VtxRow>\n );\n\n const layout_v = (d, i) => (\n <VtxRow gutter={2} attr=\"row\" className=\"vtx-search-item__v\">\n <div className=\"vtx-search-label_v\">\n <Tooltip title={newTitles[i]} placement=\"topLeft\">\n {newTitles[i]}\n </Tooltip>\n </div>\n <div className=\"vtx-search-lists_v\">\n <span className=\"vtx-search-list\">{d}</span>\n </div>\n </VtxRow>\n );\n\n let render = (d, i) => {\n let gwt = newGridWeight[i];\n return (\n <VtxCol key={i} span={(24 / realColumn) * gwt} className=\"a\">\n {layout === 'horizontal' && layout_h(d, i)}\n {layout === 'vertical' && layout_v(d, i)}\n </VtxCol>\n );\n };\n\n return (\n <div\n className={classnames('vtx-search', wrapClassName)}\n style={{ height: `${height + 16}px`, ...boxStyle }}\n ref={vtxSearchRef}\n >\n <div className=\"vtx-search-element\" ref={ref}>\n <VtxRow gutter={24} attr=\"row\">\n {analyzeChildren(newChildren)}\n </VtxRow>\n </div>\n\n <div\n className=\"vtx-search-buttons\"\n style={{ paddingTop: layout === 'vertical' ? 28 : 0 }}\n >\n {renderButtons ? (\n <VtxRow gutter={8} attr=\"row\">\n {renderButtons}\n </VtxRow>\n ) : (\n <VtxRow gutter={8} attr=\"row\">\n {isConfirmButton && (\n <VtxCol span={9}>\n <span data-type={'bt'}>\n <Button\n style={{ width: '100%' }}\n type=\"primary\"\n onClick={onConfirm}\n >\n {confirmText}\n </Button>\n </span>\n </VtxCol>\n )}\n {isClearButton && (\n <VtxCol span={9}>\n <span data-type={'bt'}>\n <Button style={{ width: '100%' }} onClick={onClear}>\n {clearText}\n </Button>\n </span>\n </VtxCol>\n )}\n {weightiness > realColumn && isMoreButton && (\n <VtxCol span={6}>\n <div\n data-type={'bt'}\n onClick={() => isShowMore()}\n className=\"vtx-search-more\"\n >\n {height > rowHeight ? (\n <>\n 收起\n <UpOutlined />\n </>\n ) : (\n <>\n 展开\n <DownOutlined />\n </>\n )}\n </div>\n </VtxCol>\n )}\n </VtxRow>\n )}\n </div>\n </div>\n );\n}\n\nVtxSearch.propTypes = {\n layout: PropTypes.oneOf(['vertical', 'horizontal']),\n column: PropTypes.objectOf(PropTypes.number),\n gridWeight: PropTypes.array,\n titles: PropTypes.array,\n labelWidth: PropTypes.number,\n wrapClassName: PropTypes.string,\n children: PropTypes.node,\n isConfirmButton: PropTypes.bool,\n isClearButton: PropTypes.bool,\n isMoreButton: PropTypes.bool,\n onConfirm: PropTypes.func,\n confirmText: PropTypes.string,\n onClear: PropTypes.func,\n clearText: PropTypes.string,\n renderButtons: PropTypes.node,\n showAll: PropTypes.bool,\n onToggleShow: PropTypes.func,\n};\nexport default VtxSearch;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["VtxSearch","props","layout","column","lg","md","sm","gridWeight","titles","labelWidth","wrapClassName","isConfirmButton","isClearButton","isMoreButton","confirmText","clearText","onConfirm","onClear","renderButtons","showAll","onToggleShow","customEnumText","vtxSearchRef","useRef","size","useColSize","realColumn","useContext","StoreCtx","onCollapse","initStyle","height","useState","weightiness","setWeightiness","useSetState","style","setStyle","boxStyle","ref","newGridWeight","filter","item","newTitles","newChildren","Array","isArray","children","rowHeight","useLayoutEffect","map","padding","current","clientHeight","isShowMore","analyzeChildren","data","cData","length","render","chData","forEach","ite","push","index","layout_h","d","i","textAlign","width","layout_v","gwt","classnames","paddingTop","collapseText","expandText","propTypes","PropTypes","oneOf","objectOf","number","array","string","node","bool","func","object"],"sources":["vtx-search/index.jsx"],"sourcesContent":["/*\n * @Author: chenxinyu\n * @Date: 2021-03-24 21:47:52\n * @LastEditors: your name\n * @LastEditTime: 2022-03-22 16:19:00\n * @Description: 查询布局组件\n * @FilePath: \\react-components\\components\\vtx-search\\index.jsx\n */\nimport React, { useState, useLayoutEffect, useRef, useContext } from 'react';\nimport useSetState from 'ahooks/es/useSetState';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Button from 'antd/lib/button';\nimport Tooltip from 'antd/lib/tooltip';\nimport UpOutlined from '@ant-design/icons/UpOutlined';\nimport DownOutlined from '@ant-design/icons/DownOutlined';\nimport VtxRow from './VtxRow';\nimport VtxCol from './VtxCol';\nimport { StoreCtx } from '../vtx-page-layout/TableLayout';\nimport useColSize from '../_util/useColSize';\n\nfunction VtxSearch(props) {\n //参数列表\n const {\n layout = 'horizontal',\n column = { lg: 4, md: 3, sm: 2 },\n gridWeight = [],\n titles = [],\n labelWidth = 84, //搜索条件名宽度\n wrapClassName,\n isConfirmButton = true, //是否显示确认按钮\n isClearButton = true, //是否显示清空按钮\n isMoreButton = true, //是否显示更多按钮\n confirmText = '查询', //确认按钮文本\n clearText = '重置', //情况按钮文本\n onConfirm, //确认按钮回调\n onClear, //清空按钮回调\n renderButtons, //自定义按钮块\n showAll = false, //是否展示所有查询条件\n onToggleShow,\n customEnumText = {}\n } = props;\n\n const vtxSearchRef = useRef();\n const size = useColSize(vtxSearchRef);\n const realColumn = column[size];\n\n const { onCollapse } = useContext(StoreCtx);\n\n const initStyle = {\n height: layout === 'horizontal' ? 48 : 68,\n };\n //初始化\n const [weightiness, setWeightiness] = useState(0);\n const [style, setStyle] = useSetState(initStyle);\n const { height, boxStyle } = style;\n const ref = useRef();\n\n const newGridWeight = gridWeight.filter(item => !!item);\n const newTitles = titles.filter(item => !!item);\n const newChildren = Array.isArray(props?.children)\n ? props?.children.filter(item => !!item)\n : props?.children;\n\n const rowHeight = layout === 'horizontal' ? 48 : 68;\n\n useLayoutEffect(() => {\n let weightiness = 0;\n newGridWeight.map(item => {\n weightiness += item;\n });\n const padding = 16;\n setWeightiness(weightiness);\n\n if (showAll) {\n setStyle(\n weightiness > realColumn\n ? {\n height: ref.current.clientHeight,\n }\n : initStyle,\n );\n onCollapse && onCollapse(ref.current.clientHeight + padding);\n }\n }, [gridWeight, realColumn]);\n\n const isShowMore = () => {\n const padding = 16;\n if (height > rowHeight) {\n setStyle(initStyle);\n if (onToggleShow && typeof onToggleShow === 'function') {\n onToggleShow(rowHeight + padding);\n }\n onCollapse && onCollapse(rowHeight + padding);\n } else {\n setStyle({\n height: ref.current.clientHeight,\n });\n if (onToggleShow && typeof onToggleShow === 'function') {\n onToggleShow(ref.current.clientHeight + padding);\n }\n onCollapse && onCollapse(ref.current.clientHeight + padding);\n }\n };\n\n const analyzeChildren = data => {\n let cData = data;\n if (!cData) return null;\n if (typeof data == 'function') {\n cData = data();\n }\n if (!cData.length) {\n return render(cData, 0);\n } else {\n let chData = [];\n cData.forEach(item => {\n if (typeof item == 'function') {\n let ite = item();\n if (Array.isArray(ite)) {\n chData.push(...ite);\n }\n chData.push(ite);\n return;\n }\n if (Array.isArray(item)) {\n chData.push(...item);\n return;\n }\n chData.push(item);\n });\n return chData.map((item, index) => {\n return render(item, index);\n });\n }\n };\n\n const layout_h = (d, i) => (\n <VtxRow gutter={2} attr=\"row\">\n <div className=\"vtx-search-label_h\" style={{ textAlign: 'right', width: labelWidth }}>\n <Tooltip title={newTitles[i]} placement=\"topRight\">\n {newTitles[i]}\n </Tooltip>\n </div>\n <div className=\"vtx-search-lists_h\" style={{ width: `calc(100% - ${labelWidth}px)` }}>\n <span className=\"vtx-search-list\">{d}</span>\n </div>\n </VtxRow>\n );\n\n const layout_v = (d, i) => (\n <VtxRow gutter={2} attr=\"row\" className=\"vtx-search-item__v\">\n <div className=\"vtx-search-label_v\">\n <Tooltip title={newTitles[i]} placement=\"topLeft\">\n {newTitles[i]}\n </Tooltip>\n </div>\n <div className=\"vtx-search-lists_v\">\n <span className=\"vtx-search-list\">{d}</span>\n </div>\n </VtxRow>\n );\n\n let render = (d, i) => {\n let gwt = newGridWeight[i];\n return (\n <VtxCol key={i} span={(24 / realColumn) * gwt} className=\"a\">\n {layout === 'horizontal' && layout_h(d, i)}\n {layout === 'vertical' && layout_v(d, i)}\n </VtxCol>\n );\n };\n\n return (\n <div\n className={classnames('vtx-search', wrapClassName)}\n style={{ height: `${height + 16}px`, ...boxStyle }}\n ref={vtxSearchRef}\n >\n <div className=\"vtx-search-element\" ref={ref}>\n <VtxRow gutter={24} attr=\"row\">\n {analyzeChildren(newChildren)}\n </VtxRow>\n </div>\n\n <div\n className=\"vtx-search-buttons\"\n style={{ paddingTop: layout === 'vertical' ? 28 : 0 }}\n >\n {renderButtons ? (\n <VtxRow gutter={8} attr=\"row\">\n {renderButtons}\n </VtxRow>\n ) : (\n <VtxRow gutter={8} attr=\"row\">\n {isConfirmButton && (\n <VtxCol span={9}>\n <span data-type={'bt'}>\n <Button\n style={{ width: '100%' }}\n type=\"primary\"\n onClick={onConfirm}\n >\n {confirmText}\n </Button>\n </span>\n </VtxCol>\n )}\n {isClearButton && (\n <VtxCol span={9}>\n <span data-type={'bt'}>\n <Button style={{ width: '100%' }} onClick={onClear}>\n {clearText}\n </Button>\n </span>\n </VtxCol>\n )}\n {weightiness > realColumn && isMoreButton && (\n <VtxCol span={6}>\n <div\n data-type={'bt'}\n onClick={() => isShowMore()}\n className=\"vtx-search-more\"\n >\n {height > rowHeight ? (\n <>\n {customEnumText?.collapseText || \"收起\"}\n <UpOutlined />\n </>\n ) : (\n <>\n {customEnumText?.expandText || \"展开\"}\n <DownOutlined />\n </>\n )}\n </div>\n </VtxCol>\n )}\n </VtxRow>\n )}\n </div>\n </div>\n );\n}\n\nVtxSearch.propTypes = {\n layout: PropTypes.oneOf(['vertical', 'horizontal']),\n column: PropTypes.objectOf(PropTypes.number),\n gridWeight: PropTypes.array,\n titles: PropTypes.array,\n labelWidth: PropTypes.number,\n wrapClassName: PropTypes.string,\n children: PropTypes.node,\n isConfirmButton: PropTypes.bool,\n isClearButton: PropTypes.bool,\n isMoreButton: PropTypes.bool,\n onConfirm: PropTypes.func,\n confirmText: PropTypes.string,\n onClear: PropTypes.func,\n clearText: PropTypes.string,\n renderButtons: PropTypes.node,\n showAll: PropTypes.bool,\n onToggleShow: PropTypes.func,\n customEnumText: PropTypes.object\n};\nexport default VtxSearch;\n"],"mappings":";;;;;;;;;AAQA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAASA,SAAT,CAAmBC,KAAnB,EAA0B;EACtB;EACA,oBAkBIA,KAlBJ,CACIC,MADJ;EAAA,IACIA,MADJ,8BACa,YADb;EAAA,oBAkBID,KAlBJ,CAEIE,MAFJ;EAAA,IAEIA,MAFJ,8BAEa;IAAEC,EAAE,EAAE,CAAN;IAASC,EAAE,EAAE,CAAb;IAAgBC,EAAE,EAAE;EAApB,CAFb;EAAA,wBAkBIL,KAlBJ,CAGIM,UAHJ;EAAA,IAGIA,UAHJ,kCAGiB,EAHjB;EAAA,oBAkBIN,KAlBJ,CAIIO,MAJJ;EAAA,IAIIA,MAJJ,8BAIa,EAJb;EAAA,wBAkBIP,KAlBJ,CAKIQ,UALJ;EAAA,IAKIA,UALJ,kCAKiB,EALjB;EAAA,IAMIC,aANJ,GAkBIT,KAlBJ,CAMIS,aANJ;EAAA,4BAkBIT,KAlBJ,CAOIU,eAPJ;EAAA,IAOIA,eAPJ,sCAOsB,IAPtB;EAAA,2BAkBIV,KAlBJ,CAQIW,aARJ;EAAA,IAQIA,aARJ,qCAQoB,IARpB;EAAA,0BAkBIX,KAlBJ,CASIY,YATJ;EAAA,IASIA,YATJ,oCASmB,IATnB;EAAA,yBAkBIZ,KAlBJ,CAUIa,WAVJ;EAAA,IAUIA,WAVJ,mCAUkB,IAVlB;EAAA,uBAkBIb,KAlBJ,CAWIc,SAXJ;EAAA,IAWIA,SAXJ,iCAWgB,IAXhB;EAAA,IAYIC,SAZJ,GAkBIf,KAlBJ,CAYIe,SAZJ;EAAA,IAaIC,OAbJ,GAkBIhB,KAlBJ,CAaIgB,OAbJ;EAAA,IAcIC,aAdJ,GAkBIjB,KAlBJ,CAcIiB,aAdJ;EAAA,qBAkBIjB,KAlBJ,CAeIkB,OAfJ;EAAA,IAeIA,OAfJ,+BAec,KAfd;EAAA,IAgBIC,YAhBJ,GAkBInB,KAlBJ,CAgBImB,YAhBJ;EAAA,4BAkBInB,KAlBJ,CAiBIoB,cAjBJ;EAAA,IAiBIA,cAjBJ,sCAiBqB,EAjBrB;EAoBA,IAAMC,YAAY,GAAG,IAAAC,aAAA,GAArB;EACA,IAAMC,IAAI,GAAG,IAAAC,sBAAA,EAAWH,YAAX,CAAb;EACA,IAAMI,UAAU,GAAGvB,MAAM,CAACqB,IAAD,CAAzB;;EAEA,kBAAuB,IAAAG,iBAAA,EAAWC,qBAAX,CAAvB;EAAA,IAAQC,UAAR,eAAQA,UAAR;;EAEA,IAAMC,SAAS,GAAG;IACdC,MAAM,EAAE7B,MAAM,KAAK,YAAX,GAA0B,EAA1B,GAA+B;EADzB,CAAlB,CA5BsB,CA+BtB;;EACA,gBAAsC,IAAA8B,eAAA,EAAS,CAAT,CAAtC;EAAA;EAAA,IAAOC,WAAP;EAAA,IAAoBC,cAApB;;EACA,mBAA0B,IAAAC,wBAAA,EAAYL,SAAZ,CAA1B;EAAA;EAAA,IAAOM,KAAP;EAAA,IAAcC,QAAd;;EACA,IAAQN,MAAR,GAA6BK,KAA7B,CAAQL,MAAR;EAAA,IAAgBO,QAAhB,GAA6BF,KAA7B,CAAgBE,QAAhB;EACA,IAAMC,GAAG,GAAG,IAAAhB,aAAA,GAAZ;EAEA,IAAMiB,aAAa,GAAGjC,UAAU,CAACkC,MAAX,CAAkB,UAAAC,IAAI;IAAA,OAAI,CAAC,CAACA,IAAN;EAAA,CAAtB,CAAtB;EACA,IAAMC,SAAS,GAAGnC,MAAM,CAACiC,MAAP,CAAc,UAAAC,IAAI;IAAA,OAAI,CAAC,CAACA,IAAN;EAAA,CAAlB,CAAlB;EACA,IAAME,WAAW,GAAGC,KAAK,CAACC,OAAN,CAAc7C,KAAd,aAAcA,KAAd,uBAAcA,KAAK,CAAE8C,QAArB,IACd9C,KADc,aACdA,KADc,uBACdA,KAAK,CAAE8C,QAAP,CAAgBN,MAAhB,CAAuB,UAAAC,IAAI;IAAA,OAAI,CAAC,CAACA,IAAN;EAAA,CAA3B,CADc,GAEdzC,KAFc,aAEdA,KAFc,uBAEdA,KAAK,CAAE8C,QAFb;EAIA,IAAMC,SAAS,GAAG9C,MAAM,KAAK,YAAX,GAA0B,EAA1B,GAA+B,EAAjD;EAEA,IAAA+C,sBAAA,EAAgB,YAAM;IAClB,IAAIhB,WAAW,GAAG,CAAlB;IACAO,aAAa,CAACU,GAAd,CAAkB,UAAAR,IAAI,EAAI;MACtBT,WAAW,IAAIS,IAAf;IACH,CAFD;IAGA,IAAMS,OAAO,GAAG,EAAhB;IACAjB,cAAc,CAACD,WAAD,CAAd;;IAEA,IAAId,OAAJ,EAAa;MACTkB,QAAQ,CACJJ,WAAW,GAAGP,UAAd,GACM;QACIK,MAAM,EAAEQ,GAAG,CAACa,OAAJ,CAAYC;MADxB,CADN,GAIMvB,SALF,CAAR;MAOAD,UAAU,IAAIA,UAAU,CAACU,GAAG,CAACa,OAAJ,CAAYC,YAAZ,GAA2BF,OAA5B,CAAxB;IACH;EACJ,CAlBD,EAkBG,CAAC5C,UAAD,EAAamB,UAAb,CAlBH;;EAoBA,IAAM4B,UAAU,GAAG,SAAbA,UAAa,GAAM;IACrB,IAAMH,OAAO,GAAG,EAAhB;;IACA,IAAIpB,MAAM,GAAGiB,SAAb,EAAwB;MACpBX,QAAQ,CAACP,SAAD,CAAR;;MACA,IAAIV,YAAY,IAAI,OAAOA,YAAP,KAAwB,UAA5C,EAAwD;QACpDA,YAAY,CAAC4B,SAAS,GAAGG,OAAb,CAAZ;MACH;;MACDtB,UAAU,IAAIA,UAAU,CAACmB,SAAS,GAAGG,OAAb,CAAxB;IACH,CAND,MAMO;MACHd,QAAQ,CAAC;QACLN,MAAM,EAAEQ,GAAG,CAACa,OAAJ,CAAYC;MADf,CAAD,CAAR;;MAGA,IAAIjC,YAAY,IAAI,OAAOA,YAAP,KAAwB,UAA5C,EAAwD;QACpDA,YAAY,CAACmB,GAAG,CAACa,OAAJ,CAAYC,YAAZ,GAA2BF,OAA5B,CAAZ;MACH;;MACDtB,UAAU,IAAIA,UAAU,CAACU,GAAG,CAACa,OAAJ,CAAYC,YAAZ,GAA2BF,OAA5B,CAAxB;IACH;EACJ,CAjBD;;EAmBA,IAAMI,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,IAAI,EAAI;IAC5B,IAAIC,KAAK,GAAGD,IAAZ;IACA,IAAI,CAACC,KAAL,EAAY,OAAO,IAAP;;IACZ,IAAI,OAAOD,IAAP,IAAe,UAAnB,EAA+B;MAC3BC,KAAK,GAAGD,IAAI,EAAZ;IACH;;IACD,IAAI,CAACC,KAAK,CAACC,MAAX,EAAmB;MACf,OAAOC,MAAM,CAACF,KAAD,EAAQ,CAAR,CAAb;IACH,CAFD,MAEO;MACH,IAAIG,MAAM,GAAG,EAAb;MACAH,KAAK,CAACI,OAAN,CAAc,UAAAnB,IAAI,EAAI;QAClB,IAAI,OAAOA,IAAP,IAAe,UAAnB,EAA+B;UAC3B,IAAIoB,GAAG,GAAGpB,IAAI,EAAd;;UACA,IAAIG,KAAK,CAACC,OAAN,CAAcgB,GAAd,CAAJ,EAAwB;YACpBF,MAAM,CAACG,IAAP,OAAAH,MAAM,qBAASE,GAAT,EAAN;UACH;;UACDF,MAAM,CAACG,IAAP,CAAYD,GAAZ;UACA;QACH;;QACD,IAAIjB,KAAK,CAACC,OAAN,CAAcJ,IAAd,CAAJ,EAAyB;UACrBkB,MAAM,CAACG,IAAP,OAAAH,MAAM,qBAASlB,IAAT,EAAN;UACA;QACH;;QACDkB,MAAM,CAACG,IAAP,CAAYrB,IAAZ;MACH,CAdD;MAeA,OAAOkB,MAAM,CAACV,GAAP,CAAW,UAACR,IAAD,EAAOsB,KAAP,EAAiB;QAC/B,OAAOL,MAAM,CAACjB,IAAD,EAAOsB,KAAP,CAAb;MACH,CAFM,CAAP;IAGH;EACJ,CA7BD;;EA+BA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,CAAD,EAAIC,CAAJ;IAAA,oBACb,gCAAC,kBAAD;MAAQ,MAAM,EAAE,CAAhB;MAAmB,IAAI,EAAC;IAAxB,gBACI;MAAK,SAAS,EAAC,oBAAf;MAAoC,KAAK,EAAE;QAAEC,SAAS,EAAE,OAAb;QAAsBC,KAAK,EAAE5D;MAA7B;IAA3C,gBACI,gCAAC,mBAAD;MAAS,KAAK,EAAEkC,SAAS,CAACwB,CAAD,CAAzB;MAA8B,SAAS,EAAC;IAAxC,GACKxB,SAAS,CAACwB,CAAD,CADd,CADJ,CADJ,eAMI;MAAK,SAAS,EAAC,oBAAf;MAAoC,KAAK,EAAE;QAAEE,KAAK,wBAAiB5D,UAAjB;MAAP;IAA3C,gBACI;MAAM,SAAS,EAAC;IAAhB,GAAmCyD,CAAnC,CADJ,CANJ,CADa;EAAA,CAAjB;;EAaA,IAAMI,QAAQ,GAAG,SAAXA,QAAW,CAACJ,CAAD,EAAIC,CAAJ;IAAA,oBACb,gCAAC,kBAAD;MAAQ,MAAM,EAAE,CAAhB;MAAmB,IAAI,EAAC,KAAxB;MAA8B,SAAS,EAAC;IAAxC,gBACI;MAAK,SAAS,EAAC;IAAf,gBACI,gCAAC,mBAAD;MAAS,KAAK,EAAExB,SAAS,CAACwB,CAAD,CAAzB;MAA8B,SAAS,EAAC;IAAxC,GACKxB,SAAS,CAACwB,CAAD,CADd,CADJ,CADJ,eAMI;MAAK,SAAS,EAAC;IAAf,gBACI;MAAM,SAAS,EAAC;IAAhB,GAAmCD,CAAnC,CADJ,CANJ,CADa;EAAA,CAAjB;;EAaA,IAAIP,MAAM,GAAG,SAATA,MAAS,CAACO,CAAD,EAAIC,CAAJ,EAAU;IACnB,IAAII,GAAG,GAAG/B,aAAa,CAAC2B,CAAD,CAAvB;IACA,oBACI,gCAAC,kBAAD;MAAQ,GAAG,EAAEA,CAAb;MAAgB,IAAI,EAAG,KAAKzC,UAAN,GAAoB6C,GAA1C;MAA+C,SAAS,EAAC;IAAzD,GACKrE,MAAM,KAAK,YAAX,IAA2B+D,QAAQ,CAACC,CAAD,EAAIC,CAAJ,CADxC,EAEKjE,MAAM,KAAK,UAAX,IAAyBoE,QAAQ,CAACJ,CAAD,EAAIC,CAAJ,CAFtC,CADJ;EAMH,CARD;;EAUA,oBACI;IACI,SAAS,EAAE,IAAAK,sBAAA,EAAW,YAAX,EAAyB9D,aAAzB,CADf;IAEI,KAAK;MAAIqB,MAAM,YAAKA,MAAM,GAAG,EAAd;IAAV,GAAmCO,QAAnC,CAFT;IAGI,GAAG,EAAEhB;EAHT,gBAKI;IAAK,SAAS,EAAC,oBAAf;IAAoC,GAAG,EAAEiB;EAAzC,gBACI,gCAAC,kBAAD;IAAQ,MAAM,EAAE,EAAhB;IAAoB,IAAI,EAAC;EAAzB,GACKgB,eAAe,CAACX,WAAD,CADpB,CADJ,CALJ,eAWI;IACI,SAAS,EAAC,oBADd;IAEI,KAAK,EAAE;MAAE6B,UAAU,EAAEvE,MAAM,KAAK,UAAX,GAAwB,EAAxB,GAA6B;IAA3C;EAFX,GAIKgB,aAAa,gBACV,gCAAC,kBAAD;IAAQ,MAAM,EAAE,CAAhB;IAAmB,IAAI,EAAC;EAAxB,GACKA,aADL,CADU,gBAKV,gCAAC,kBAAD;IAAQ,MAAM,EAAE,CAAhB;IAAmB,IAAI,EAAC;EAAxB,GACKP,eAAe,iBACZ,gCAAC,kBAAD;IAAQ,IAAI,EAAE;EAAd,gBACI;IAAM,aAAW;EAAjB,gBACI,gCAAC,kBAAD;IACI,KAAK,EAAE;MAAE0D,KAAK,EAAE;IAAT,CADX;IAEI,IAAI,EAAC,SAFT;IAGI,OAAO,EAAErD;EAHb,GAKKF,WALL,CADJ,CADJ,CAFR,EAcKF,aAAa,iBACV,gCAAC,kBAAD;IAAQ,IAAI,EAAE;EAAd,gBACI;IAAM,aAAW;EAAjB,gBACI,gCAAC,kBAAD;IAAQ,KAAK,EAAE;MAAEyD,KAAK,EAAE;IAAT,CAAf;IAAkC,OAAO,EAAEpD;EAA3C,GACKF,SADL,CADJ,CADJ,CAfR,EAuBKkB,WAAW,GAAGP,UAAd,IAA4Bb,YAA5B,iBACG,gCAAC,kBAAD;IAAQ,IAAI,EAAE;EAAd,gBACI;IACI,aAAW,IADf;IAEI,OAAO,EAAE;MAAA,OAAMyC,UAAU,EAAhB;IAAA,CAFb;IAGI,SAAS,EAAC;EAHd,GAKKvB,MAAM,GAAGiB,SAAT,gBACG,kEACK,CAAA3B,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEqD,YAAhB,KAAgC,IADrC,eAEI,gCAAC,sBAAD,OAFJ,CADH,gBAMG,kEACK,CAAArD,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEsD,UAAhB,KAA8B,IADnC,eAEI,gCAAC,wBAAD,OAFJ,CAXR,CADJ,CAxBR,CATR,CAXJ,CADJ;AAsEH;;AAED3E,SAAS,CAAC4E,SAAV,GAAsB;EAClB1E,MAAM,EAAE2E,qBAAA,CAAUC,KAAV,CAAgB,CAAC,UAAD,EAAa,YAAb,CAAhB,CADU;EAElB3E,MAAM,EAAE0E,qBAAA,CAAUE,QAAV,CAAmBF,qBAAA,CAAUG,MAA7B,CAFU;EAGlBzE,UAAU,EAAEsE,qBAAA,CAAUI,KAHJ;EAIlBzE,MAAM,EAAEqE,qBAAA,CAAUI,KAJA;EAKlBxE,UAAU,EAAEoE,qBAAA,CAAUG,MALJ;EAMlBtE,aAAa,EAAEmE,qBAAA,CAAUK,MANP;EAOlBnC,QAAQ,EAAE8B,qBAAA,CAAUM,IAPF;EAQlBxE,eAAe,EAAEkE,qBAAA,CAAUO,IART;EASlBxE,aAAa,EAAEiE,qBAAA,CAAUO,IATP;EAUlBvE,YAAY,EAAEgE,qBAAA,CAAUO,IAVN;EAWlBpE,SAAS,EAAE6D,qBAAA,CAAUQ,IAXH;EAYlBvE,WAAW,EAAE+D,qBAAA,CAAUK,MAZL;EAalBjE,OAAO,EAAE4D,qBAAA,CAAUQ,IAbD;EAclBtE,SAAS,EAAE8D,qBAAA,CAAUK,MAdH;EAelBhE,aAAa,EAAE2D,qBAAA,CAAUM,IAfP;EAgBlBhE,OAAO,EAAE0D,qBAAA,CAAUO,IAhBD;EAiBlBhE,YAAY,EAAEyD,qBAAA,CAAUQ,IAjBN;EAkBlBhE,cAAc,EAAEwD,qBAAA,CAAUS;AAlBR,CAAtB;eAoBetF,S"}
|