@vtx/components 3.1.57 → 3.1.59
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-combogrid/style/index.css +3 -0
- package/lib/vtx-combogrid/style/index.less +3 -0
- package/lib/vtx-datagrid/ColumnSetting.js +6 -2
- package/lib/vtx-datagrid/ColumnSetting.js.map +1 -1
- package/lib/vtx-datagrid/index.js +2 -1
- package/lib/vtx-datagrid/index.js.map +1 -1
- package/lib/vtx-form-layout/style/index.css +2 -2
- package/lib/vtx-form-layout/style/index.less +2 -2
- package/lib/vtx-modal/index.js +36 -35
- package/lib/vtx-modal/index.js.map +1 -1
- package/lib/vtx-modal/style/index.css +14 -1
- package/lib/vtx-modal/style/index.less +101 -95
- package/lib/vtx-search/style/index.css +5 -0
- package/lib/vtx-search/style/index.less +3 -0
- package/lib/vtx-ztree-select/index.js +11 -2
- package/lib/vtx-ztree-select/index.js.map +1 -1
- package/lib/vtx-ztree-select/style/index.css +12 -0
- package/lib/vtx-ztree-select/style/index.less +8 -0
- package/package.json +126 -126
|
@@ -79,7 +79,9 @@ function ColumnSetting(props) {
|
|
|
79
79
|
_props$disabledColumn = props.disabledColumnKeys,
|
|
80
80
|
disabledColumnKeys = _props$disabledColumn === void 0 ? [] : _props$disabledColumn,
|
|
81
81
|
onColumnsSave = props.onColumnsSave,
|
|
82
|
-
uniqueKey = props.uniqueKey
|
|
82
|
+
uniqueKey = props.uniqueKey,
|
|
83
|
+
_props$columns = props.columns,
|
|
84
|
+
columns = _props$columns === void 0 ? [] : _props$columns;
|
|
83
85
|
(0, _react.useEffect)(function () {
|
|
84
86
|
var chkLen = checkedColumnKeys === null || checkedColumnKeys === void 0 ? void 0 : checkedColumnKeys.length;
|
|
85
87
|
var optionLen = columnSettingOptions === null || columnSettingOptions === void 0 ? void 0 : columnSettingOptions.length;
|
|
@@ -179,7 +181,9 @@ function ColumnSetting(props) {
|
|
|
179
181
|
});
|
|
180
182
|
};
|
|
181
183
|
|
|
182
|
-
var isReady = columnSettingOptions.length > 0
|
|
184
|
+
var isReady = columnSettingOptions.length > 0 && columns.filter(function (item) {
|
|
185
|
+
return item.key !== 'action';
|
|
186
|
+
}).length > 0;
|
|
183
187
|
(0, _react.useEffect)(function () {
|
|
184
188
|
if (isReady && uniqueKey) {
|
|
185
189
|
getUmsColumns();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSetting.js","names":["ColumnSetting","props","getUrlParam","token","userId","tenantId","useSet","indeterminate","checkAll","columnSettingId","state","setState","prefixCls","checkedColumnKeys","columnSettingOptions","onChange","onReset","disabledColumnKeys","onColumnsSave","uniqueKey","useEffect","chkLen","length","optionLen","onCheckChange","e","key","newCheckedColumnKeys","target","checked","filter","item","onCheckAllChange","map","onSaveChange","getUmsColumns","axios","method","url","headers","Authorization","params","tableCode","then","data","result","total","record","rows","id","timer","setTimeout","showColumns","split","clearTimeout","saveColumns","message","warn","JSON","stringify","join","name","success","isReady","opt","dataIndex","includes","title","margin","children","propTypes","PropTypes","string","array","node","func"],"sources":["vtx-datagrid/ColumnSetting.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\r\nimport Popover from 'antd/lib/popover';\r\nimport Divider from 'antd/lib/divider';\r\nimport Button from 'antd/lib/button';\r\nimport Checkbox from 'antd/lib/checkbox';\r\nimport message from 'antd/lib/message';\r\nimport PropTypes from 'prop-types';\r\nimport useSet from '../_util/useSet';\r\nimport axios from 'axios';\r\nimport getUrlParam from '../_util/getUrlParam';\r\n\r\nexport default function ColumnSetting(props) {\r\n const { token='', userId='', tenantId='' } = getUrlParam();\r\n const [state, setState] = useSet({\r\n indeterminate: false,\r\n checkAll: false,\r\n columnSettingId: '',\r\n });\r\n const {\r\n prefixCls,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n onChange,\r\n onReset,\r\n disabledColumnKeys = [],\r\n onColumnsSave,\r\n uniqueKey\r\n } = props;\r\n\r\n useEffect(() => {\r\n const chkLen = checkedColumnKeys?.length;\r\n const optionLen = columnSettingOptions?.length;\r\n setState({\r\n checkAll: chkLen == optionLen,\r\n indeterminate: chkLen && chkLen < optionLen,\r\n });\r\n }, [checkedColumnKeys]);\r\n\r\n const { indeterminate, checkAll } = state;\r\n\r\n // 单选\r\n const onCheckChange = (e, key) => {\r\n if (onChange) {\r\n const newCheckedColumnKeys = e.target.checked\r\n ? [...checkedColumnKeys, key]\r\n : checkedColumnKeys?.filter(item => item != key);\r\n onChange(newCheckedColumnKeys);\r\n }\r\n };\r\n\r\n // 全选\r\n const onCheckAllChange = e => {\r\n if (onChange) {\r\n const newCheckedColumnKeys = e.target.checked\r\n ? columnSettingOptions?.map(item => item.key)\r\n : [];\r\n onChange(newCheckedColumnKeys);\r\n }\r\n };\r\n // 保存按钮\r\n const onSaveChange = () => {\r\n if (onChange) {\r\n onColumnsSave(checkedColumnKeys);\r\n }\r\n };\r\n function getUmsColumns (){\r\n if(!onColumnsSave && !!uniqueKey){\r\n axios({\r\n method: 'GET',\r\n url: '/cloud/management/api/v101/user/config/table/page',\r\n headers: {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n },\r\n params: {\r\n tableCode: uniqueKey,\r\n }\r\n }).then(({data})=>{\r\n if(data?.result == 0 && data?.data.total>0){\r\n let record = data.data.rows[0];\r\n record?.id && setState({columnSettingId: record.id});\r\n let timer = setTimeout(()=>{\r\n record?.showColumns && onChange(record.showColumns.split(\",\"));\r\n clearTimeout(timer)\r\n },500)\r\n }\r\n })\r\n }\r\n }\r\n // \r\n const saveColumns = ()=>{\r\n if((checkedColumnKeys||[]).length == 0){\r\n message.warn('至少勾选一列保存');\r\n return false;\r\n }\r\n axios({\r\n method: 'POST',\r\n url: '/cloud/management/api/v101/user/config/table/save',\r\n headers: {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n 'Content-Type': 'application/json',\r\n },\r\n data: JSON.stringify({\r\n showColumns: (checkedColumnKeys||[]).join(','),\r\n tableCode: uniqueKey,\r\n name: uniqueKey,\r\n userId,\r\n tenantId,\r\n id: state.columnSettingId\r\n })\r\n }).then(({data})=>{\r\n if(data?.result == 0){\r\n message.success('操作成功');\r\n getUmsColumns();\r\n }\r\n })\r\n }\r\n const isReady = columnSettingOptions.length>0;\r\n\r\n useEffect(()=>{\r\n if(isReady && uniqueKey){\r\n getUmsColumns();\r\n }\r\n },[isReady, uniqueKey])\r\n return (\r\n <Popover\r\n trigger=\"click\"\r\n placement=\"bottomRight\"\r\n arrowPointAtCenter\r\n title={\r\n <div className={`${prefixCls}-column-setting-title`} slot=\"title\">\r\n <Checkbox\r\n className={`${prefixCls}-column-setting-checkbox-wrapper`}\r\n indeterminate={indeterminate}\r\n checked={checkAll}\r\n onChange={onCheckAllChange}\r\n >\r\n 列展示\r\n </Checkbox>\r\n <a onClick={onReset}>重置</a>\r\n </div>\r\n }\r\n content={\r\n <div className={`${prefixCls}-column-setting-list`}>\r\n {columnSettingOptions?.map(opt => {\r\n const key = opt.key || opt.dataIndex;\r\n return (\r\n <div key={key}>\r\n <Checkbox\r\n checked={checkedColumnKeys?.includes(key)}\r\n onChange={e => onCheckChange(e, key)}\r\n disabled={disabledColumnKeys.includes(key)}\r\n >\r\n {opt.title}\r\n </Checkbox>\r\n </div>\r\n );\r\n })}\r\n {typeof onColumnsSave === 'function' ? (\r\n <>\r\n <Divider style={{ margin: '5px 0 10px 0' }} />\r\n <Button block={true} onClick={() => onSaveChange()}>\r\n 保存\r\n </Button>\r\n </>\r\n ) : null}\r\n {!onColumnsSave && uniqueKey ? (\r\n <>\r\n <Divider style={{ margin: '5px 0 10px 0' }} />\r\n <Button block={true} onClick={() => saveColumns()}>\r\n 保存\r\n </Button>\r\n </>\r\n ) : null}\r\n </div>\r\n }\r\n >\r\n {props.children}\r\n </Popover>\r\n );\r\n}\r\n\r\nColumnSetting.propTypes = {\r\n prefixCls: PropTypes.string,\r\n checkedColumnKeys: PropTypes.array,\r\n columnSettingOptions: PropTypes.array,\r\n children: PropTypes.node,\r\n onChange: PropTypes.func,\r\n onReset: PropTypes.func,\r\n disabledColumnKeys: PropTypes.array,\r\n onColumnsSave: PropTypes.func,\r\n uniqueKey: PropTypes.string,\r\n};\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSetting.js","names":["ColumnSetting","props","getUrlParam","token","userId","tenantId","useSet","indeterminate","checkAll","columnSettingId","state","setState","prefixCls","checkedColumnKeys","columnSettingOptions","onChange","onReset","disabledColumnKeys","onColumnsSave","uniqueKey","columns","useEffect","chkLen","length","optionLen","onCheckChange","e","key","newCheckedColumnKeys","target","checked","filter","item","onCheckAllChange","map","onSaveChange","getUmsColumns","axios","method","url","headers","Authorization","params","tableCode","then","data","result","total","record","rows","id","timer","setTimeout","showColumns","split","clearTimeout","saveColumns","message","warn","JSON","stringify","join","name","success","isReady","opt","dataIndex","includes","title","margin","children","propTypes","PropTypes","string","array","node","func"],"sources":["vtx-datagrid/ColumnSetting.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\r\nimport Popover from 'antd/lib/popover';\r\nimport Divider from 'antd/lib/divider';\r\nimport Button from 'antd/lib/button';\r\nimport Checkbox from 'antd/lib/checkbox';\r\nimport message from 'antd/lib/message';\r\nimport PropTypes from 'prop-types';\r\nimport useSet from '../_util/useSet';\r\nimport axios from 'axios';\r\nimport getUrlParam from '../_util/getUrlParam';\r\n\r\nexport default function ColumnSetting(props) {\r\n const { token='', userId='', tenantId='' } = getUrlParam();\r\n const [state, setState] = useSet({\r\n indeterminate: false,\r\n checkAll: false,\r\n columnSettingId: '',\r\n });\r\n const {\r\n prefixCls,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n onChange,\r\n onReset,\r\n disabledColumnKeys = [],\r\n onColumnsSave,\r\n uniqueKey,\r\n columns=[]\r\n } = props;\r\n\r\n useEffect(() => {\r\n const chkLen = checkedColumnKeys?.length;\r\n const optionLen = columnSettingOptions?.length;\r\n setState({\r\n checkAll: chkLen == optionLen,\r\n indeterminate: chkLen && chkLen < optionLen,\r\n });\r\n }, [checkedColumnKeys]);\r\n\r\n const { indeterminate, checkAll } = state;\r\n\r\n // 单选\r\n const onCheckChange = (e, key) => {\r\n if (onChange) {\r\n const newCheckedColumnKeys = e.target.checked\r\n ? [...checkedColumnKeys, key]\r\n : checkedColumnKeys?.filter(item => item != key);\r\n onChange(newCheckedColumnKeys);\r\n }\r\n };\r\n\r\n // 全选\r\n const onCheckAllChange = e => {\r\n if (onChange) {\r\n const newCheckedColumnKeys = e.target.checked\r\n ? columnSettingOptions?.map(item => item.key)\r\n : [];\r\n onChange(newCheckedColumnKeys);\r\n }\r\n };\r\n // 保存按钮\r\n const onSaveChange = () => {\r\n if (onChange) {\r\n onColumnsSave(checkedColumnKeys);\r\n }\r\n };\r\n function getUmsColumns (){\r\n if(!onColumnsSave && !!uniqueKey){\r\n axios({\r\n method: 'GET',\r\n url: '/cloud/management/api/v101/user/config/table/page',\r\n headers: {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n },\r\n params: {\r\n tableCode: uniqueKey,\r\n }\r\n }).then(({data})=>{\r\n if(data?.result == 0 && data?.data.total>0){\r\n let record = data.data.rows[0];\r\n record?.id && setState({columnSettingId: record.id});\r\n let timer = setTimeout(()=>{\r\n record?.showColumns && onChange(record.showColumns.split(\",\"));\r\n clearTimeout(timer)\r\n },500)\r\n }\r\n })\r\n }\r\n }\r\n // \r\n const saveColumns = ()=>{\r\n if((checkedColumnKeys||[]).length == 0){\r\n message.warn('至少勾选一列保存');\r\n return false;\r\n }\r\n axios({\r\n method: 'POST',\r\n url: '/cloud/management/api/v101/user/config/table/save',\r\n headers: {\r\n Authorization: token ? `Bearer ${token}` : '',\r\n 'Content-Type': 'application/json',\r\n },\r\n data: JSON.stringify({\r\n showColumns: (checkedColumnKeys||[]).join(','),\r\n tableCode: uniqueKey,\r\n name: uniqueKey,\r\n userId,\r\n tenantId,\r\n id: state.columnSettingId\r\n })\r\n }).then(({data})=>{\r\n if(data?.result == 0){\r\n message.success('操作成功');\r\n getUmsColumns();\r\n }\r\n })\r\n }\r\n \r\n const isReady = columnSettingOptions.length>0 && columns.filter(item=>item.key!=='action').length>0;\r\n\r\n useEffect(()=>{\r\n if(isReady && uniqueKey){\r\n getUmsColumns();\r\n }\r\n },[isReady, uniqueKey])\r\n return (\r\n <Popover\r\n trigger=\"click\"\r\n placement=\"bottomRight\"\r\n arrowPointAtCenter\r\n title={\r\n <div className={`${prefixCls}-column-setting-title`} slot=\"title\">\r\n <Checkbox\r\n className={`${prefixCls}-column-setting-checkbox-wrapper`}\r\n indeterminate={indeterminate}\r\n checked={checkAll}\r\n onChange={onCheckAllChange}\r\n >\r\n 列展示\r\n </Checkbox>\r\n <a onClick={onReset}>重置</a>\r\n </div>\r\n }\r\n content={\r\n <div className={`${prefixCls}-column-setting-list`}>\r\n {columnSettingOptions?.map(opt => {\r\n const key = opt.key || opt.dataIndex;\r\n return (\r\n <div key={key}>\r\n <Checkbox\r\n checked={checkedColumnKeys?.includes(key)}\r\n onChange={e => onCheckChange(e, key)}\r\n disabled={disabledColumnKeys.includes(key)}\r\n >\r\n {opt.title}\r\n </Checkbox>\r\n </div>\r\n );\r\n })}\r\n {typeof onColumnsSave === 'function' ? (\r\n <>\r\n <Divider style={{ margin: '5px 0 10px 0' }} />\r\n <Button block={true} onClick={() => onSaveChange()}>\r\n 保存\r\n </Button>\r\n </>\r\n ) : null}\r\n {!onColumnsSave && uniqueKey ? (\r\n <>\r\n <Divider style={{ margin: '5px 0 10px 0' }} />\r\n <Button block={true} onClick={() => saveColumns()}>\r\n 保存\r\n </Button>\r\n </>\r\n ) : null}\r\n </div>\r\n }\r\n >\r\n {props.children}\r\n </Popover>\r\n );\r\n}\r\n\r\nColumnSetting.propTypes = {\r\n prefixCls: PropTypes.string,\r\n checkedColumnKeys: PropTypes.array,\r\n columnSettingOptions: PropTypes.array,\r\n children: PropTypes.node,\r\n onChange: PropTypes.func,\r\n onReset: PropTypes.func,\r\n disabledColumnKeys: PropTypes.array,\r\n onColumnsSave: PropTypes.func,\r\n uniqueKey: PropTypes.string,\r\n};\r\n"],"mappings":"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"}
|
|
@@ -352,7 +352,8 @@ function VtxDatagrid(props) {
|
|
|
352
352
|
},
|
|
353
353
|
disabledColumnKeys: disabledColumnKeys,
|
|
354
354
|
onColumnsSave: onColumnsSave,
|
|
355
|
-
uniqueKey: uniqueKey || state.projectKey
|
|
355
|
+
uniqueKey: uniqueKey || state.projectKey,
|
|
356
|
+
columns: rest.columns
|
|
356
357
|
}, /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
|
|
357
358
|
title: (customEnumText === null || customEnumText === void 0 ? void 0 : customEnumText.columnSettingText) || "列设置"
|
|
358
359
|
}, /*#__PURE__*/_react["default"].createElement(_SettingOutlined["default"], null)))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isMac","navigator","userAgent","indexOf","VtxDatagrid","props","useSet","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","projectKey","state","setState","datagridRef","useRef","alertHeight","toolbarHeight","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","uniqueKey","customEnumText","rest","getUniqueKey","route","location","href","match","axios","method","url","pathname","then","res","status","data","key","useEffect","window","addEventListener","calculateHeight","removeEventListener","useLayoutEffect","dataSource","length","rowSelection","selectedRowKeys","join","useSubscription","timer","setTimeout","clearTimeout","parseColumns","columns","map","col","dataIndex","type","columnKeys","filter","item","includes","hasAlert","current","bodyHeight","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","console","log","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\nimport axios from 'axios';\r\n\r\nconst isMac = navigator.userAgent.indexOf('Mac OS') !== -1;\r\n\r\n\r\nexport default function VtxDatagrid(props) {\r\n const [state, setState] = useSet({\r\n // 显示列\r\n visibleColumns: [],\r\n // 列设置选中的列\r\n checkedColumnKeys: [],\r\n // 列设置选项\r\n columnSettingOptions: [],\r\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\r\n scrollY: 0,\r\n size: 'middle',\r\n projectKey: ''\r\n });\r\n const {\r\n visibleColumns,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n datagridId,\r\n scrollY,\r\n size,\r\n } = state;\r\n const datagridRef = useRef(null);\r\n // 列设置提示高度\r\n const alertHeight = useRef(0);\r\n // 工具栏高度\r\n const toolbarHeight = useRef(0);\r\n\r\n const {\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 uniqueKey,\r\n customEnumText = {},\r\n ...rest\r\n } = props;\r\n\r\n // 规则,菜单根目录_页面路由\r\n function getUniqueKey() {\r\n let route = location.href.match(/#\\/(\\S*)\\?/);\r\n if (route) {\r\n axios({\r\n method: 'GET',\r\n url: `${location.pathname}resources/json/menu.json`\r\n }).then(res => {\r\n if (res?.status == 200 && res.data?.key) {\r\n setState({ projectKey: `${res.data.key}_${route ? route[1] : 'test'}` })\r\n }\r\n })\r\n }\r\n }\r\n useEffect(() => {\r\n // 当没有传入唯一值而且没有自定义列保存的时候根据规则自动生成唯一值\r\n if (!uniqueKey && !onColumnsSave) {\r\n getUniqueKey();\r\n }\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 console.log(keys, columnSettingOptions?.filter(item => keys.includes(item.key)));\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 {buttonGroup &&\r\n <div className={`${prefixCls}-toolbar-line`} />\r\n }\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-setting`,\r\n\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 uniqueKey={uniqueKey || state.projectKey}\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 uniqueKey: PropTypes.string,\r\n};\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["isMac","navigator","userAgent","indexOf","VtxDatagrid","props","useSet","visibleColumns","checkedColumnKeys","columnSettingOptions","datagridId","Date","getTime","scrollY","size","projectKey","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","uniqueKey","customEnumText","rest","getUniqueKey","route","location","href","match","axios","method","url","pathname","then","res","status","data","key","useEffect","window","addEventListener","calculateHeight","removeEventListener","useLayoutEffect","dataSource","length","rowSelection","selectedRowKeys","join","useSubscription","timer","setTimeout","clearTimeout","parseColumns","columns","map","col","dataIndex","type","columnKeys","filter","item","includes","hasAlert","current","bodyHeight","clientHeight","divs","getElementsByTagName","bodyDiv","Array","prototype","call","dom","minHeight","handleChangeColumns","keys","console","log","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\nimport axios from 'axios';\r\n\r\nconst isMac = navigator.userAgent.indexOf('Mac OS') !== -1;\r\n\r\n\r\nexport default function VtxDatagrid(props) {\r\n const [state, setState] = useSet({\r\n // 显示列\r\n visibleColumns: [],\r\n // 列设置选中的列\r\n checkedColumnKeys: [],\r\n // 列设置选项\r\n columnSettingOptions: [],\r\n datagridId: `vtx-datagrid-${new Date().getTime()}`,\r\n scrollY: 0,\r\n size: 'middle',\r\n projectKey: ''\r\n });\r\n const {\r\n visibleColumns,\r\n checkedColumnKeys,\r\n columnSettingOptions,\r\n datagridId,\r\n scrollY,\r\n size,\r\n } = state;\r\n const datagridRef = useRef(null);\r\n // 列设置提示高度\r\n const alertHeight = useRef(0);\r\n // 工具栏高度\r\n const toolbarHeight = useRef(0);\r\n\r\n const {\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 uniqueKey,\r\n customEnumText = {},\r\n ...rest\r\n } = props;\r\n\r\n // 规则,菜单根目录_页面路由\r\n function getUniqueKey() {\r\n let route = location.href.match(/#\\/(\\S*)\\?/);\r\n if (route) {\r\n axios({\r\n method: 'GET',\r\n url: `${location.pathname}resources/json/menu.json`\r\n }).then(res => {\r\n if (res?.status == 200 && res.data?.key) {\r\n setState({ projectKey: `${res.data.key}_${route ? route[1] : 'test'}` })\r\n }\r\n })\r\n }\r\n }\r\n useEffect(() => {\r\n // 当没有传入唯一值而且没有自定义列保存的时候根据规则自动生成唯一值\r\n if (!uniqueKey && !onColumnsSave) {\r\n getUniqueKey();\r\n }\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 console.log(keys, columnSettingOptions?.filter(item => keys.includes(item.key)));\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 {buttonGroup &&\r\n <div className={`${prefixCls}-toolbar-line`} />\r\n }\r\n <div\r\n className={classnames(\r\n `${prefixCls}-space-item`,\r\n `${prefixCls}-toolbar-setting`,\r\n\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 uniqueKey={uniqueKey || state.projectKey}\r\n columns={rest.columns}\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 uniqueKey: PropTypes.string,\r\n};\r\n"],"mappings":"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"}
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
}
|
|
72
72
|
.vtx-form-layout .vtx-form-item--inline .ant-form-item-label > label {
|
|
73
73
|
height: auto;
|
|
74
|
-
color: rgba(0, 0, 0, 0.
|
|
74
|
+
color: rgba(0, 0, 0, 0.65);
|
|
75
75
|
}
|
|
76
76
|
.vtx-form-layout .vtx-form-item--inline .ant-form-item-label label::after {
|
|
77
77
|
content: ':';
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
}
|
|
83
83
|
.vtx-form-layout .vtx-form-item--view .ant-form-item-label > label {
|
|
84
84
|
height: auto;
|
|
85
|
-
color: rgba(0, 0, 0, 0.
|
|
85
|
+
color: rgba(0, 0, 0, 0.65);
|
|
86
86
|
}
|
|
87
87
|
.vtx-form-layout .vtx-form-item--view .ant-form-item-label label::after {
|
|
88
88
|
content: ':';
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
margin-bottom: 0;
|
|
55
55
|
& > label {
|
|
56
56
|
height: auto;
|
|
57
|
-
color: @text-color;
|
|
57
|
+
color: fade(@text-color, 65);
|
|
58
58
|
}
|
|
59
59
|
label::after {
|
|
60
60
|
content: ':';
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
.ant-form-item-label {
|
|
70
70
|
& > label {
|
|
71
71
|
height: auto;
|
|
72
|
-
color: @text-color;
|
|
72
|
+
color: fade(@text-color, 65);
|
|
73
73
|
}
|
|
74
74
|
label::after {
|
|
75
75
|
content: ':';
|
package/lib/vtx-modal/index.js
CHANGED
|
@@ -13,7 +13,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
13
13
|
|
|
14
14
|
var _useUpdateEffect = _interopRequireDefault(require("ahooks/es/useUpdateEffect"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _useSetState3 = _interopRequireDefault(require("ahooks/es/useSetState"));
|
|
17
17
|
|
|
18
18
|
var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons/CloseOutlined"));
|
|
19
19
|
|
|
@@ -59,24 +59,19 @@ var initDragArg = {
|
|
|
59
59
|
y_move: 0,
|
|
60
60
|
documentMouseMove: null,
|
|
61
61
|
documentMouseUp: null
|
|
62
|
-
}; // 全屏参数
|
|
63
|
-
|
|
64
|
-
var initFullScreen = {
|
|
65
|
-
isFull: false,
|
|
66
|
-
className: ''
|
|
67
62
|
};
|
|
68
63
|
|
|
69
64
|
function VtxModal(props) {
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
65
|
+
var _useState = (0, _react.useState)(!!props.defaultIsFull),
|
|
66
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
67
|
+
isFull = _useState2[0],
|
|
68
|
+
setIsFull = _useState2[1]; // 是否是全屏状态
|
|
74
69
|
|
|
75
70
|
|
|
76
|
-
var
|
|
77
|
-
|
|
78
|
-
dragArg =
|
|
79
|
-
setDragArg =
|
|
71
|
+
var _useSetState = (0, _useSetState3["default"])(initDragArg),
|
|
72
|
+
_useSetState2 = _slicedToArray(_useSetState, 2),
|
|
73
|
+
dragArg = _useSetState2[0],
|
|
74
|
+
setDragArg = _useSetState2[1]; // 拖动配置
|
|
80
75
|
|
|
81
76
|
|
|
82
77
|
var classId = (0, _react.useRef)(new Date().getTime() + Math.random());
|
|
@@ -98,7 +93,7 @@ function VtxModal(props) {
|
|
|
98
93
|
var el = document.getElementsByClassName('ant-modal-body')[0];
|
|
99
94
|
var option = {
|
|
100
95
|
height: window.getComputedStyle(el).height,
|
|
101
|
-
isFull:
|
|
96
|
+
isFull: isFull
|
|
102
97
|
};
|
|
103
98
|
onModalResize(option);
|
|
104
99
|
}
|
|
@@ -106,7 +101,7 @@ function VtxModal(props) {
|
|
|
106
101
|
return function () {
|
|
107
102
|
return clearTimeout(timer);
|
|
108
103
|
};
|
|
109
|
-
}, [
|
|
104
|
+
}, [isFull]); // 拖拽
|
|
110
105
|
|
|
111
106
|
(0, _react.useEffect)(function () {
|
|
112
107
|
if (props.visible && moveable) {
|
|
@@ -125,11 +120,16 @@ function VtxModal(props) {
|
|
|
125
120
|
};
|
|
126
121
|
}
|
|
127
122
|
});
|
|
123
|
+
(0, _react.useEffect)(function () {
|
|
124
|
+
if (props.visible) {
|
|
125
|
+
setIsFull(!!props.defaultIsFull);
|
|
126
|
+
}
|
|
127
|
+
}, [props.visible]);
|
|
128
128
|
|
|
129
129
|
var startDrag = function startDrag(e) {
|
|
130
130
|
e.preventDefault(); // 全屏模式下禁止拖拽
|
|
131
131
|
|
|
132
|
-
if (!
|
|
132
|
+
if (!isFull) {
|
|
133
133
|
setDragArg({
|
|
134
134
|
documentMouseUp: document.onmouseup,
|
|
135
135
|
documentMouseMove: document.onmousemove,
|
|
@@ -159,15 +159,24 @@ function VtxModal(props) {
|
|
|
159
159
|
props.onCancel(); // TODO 关闭弹框会闪一下,待解决
|
|
160
160
|
|
|
161
161
|
setDragArg(initDragArg);
|
|
162
|
-
|
|
162
|
+
setIsFull(false);
|
|
163
163
|
}
|
|
164
164
|
};
|
|
165
|
-
/*
|
|
166
|
-
*重写title,加入对话框全屏功能
|
|
165
|
+
/*
|
|
166
|
+
*重写title,加入对话框全屏功能
|
|
167
167
|
*/
|
|
168
168
|
|
|
169
169
|
|
|
170
170
|
title = function renderTitle() {
|
|
171
|
+
if (typeof title == 'string' && title.indexOf('>') > -1) {
|
|
172
|
+
var _titles = title.split('>');
|
|
173
|
+
|
|
174
|
+
title = /*#__PURE__*/_react["default"].createElement(_Title["default"], {
|
|
175
|
+
text: _titles[0].trim(),
|
|
176
|
+
subtitle: _titles[1].trim()
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
|
|
171
180
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
172
181
|
className: "vtx-modal-title",
|
|
173
182
|
style: {
|
|
@@ -179,18 +188,9 @@ function VtxModal(props) {
|
|
|
179
188
|
className: "vtx-modal-maximizeIcon"
|
|
180
189
|
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
181
190
|
onClick: function onClick() {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (!fullScreen.isFull) {
|
|
185
|
-
fullScreenClass = 'vtx-modal-maxClass';
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
setFullScreen({
|
|
189
|
-
isFull: !fullScreen.isFull,
|
|
190
|
-
className: fullScreenClass
|
|
191
|
-
});
|
|
191
|
+
setIsFull(!isFull);
|
|
192
192
|
}
|
|
193
|
-
},
|
|
193
|
+
}, isFull ? /*#__PURE__*/_react["default"].createElement(_FullscreenExitOutlined["default"], null) : /*#__PURE__*/_react["default"].createElement(_FullscreenOutlined["default"], null))) : null, closable ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
194
194
|
className: "vtx-modal-close"
|
|
195
195
|
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
196
196
|
onClick: onCancel
|
|
@@ -201,7 +201,7 @@ function VtxModal(props) {
|
|
|
201
201
|
/* 限制最大高度 */
|
|
202
202
|
|
|
203
203
|
|
|
204
|
-
if (!
|
|
204
|
+
if (!isFull) {
|
|
205
205
|
bodyStyle = _objectSpread({
|
|
206
206
|
maxHeight: "".concat(window.innerHeight * 0.7, "px")
|
|
207
207
|
}, bodyStyle);
|
|
@@ -218,10 +218,10 @@ function VtxModal(props) {
|
|
|
218
218
|
}, props), {}, {
|
|
219
219
|
closable: false,
|
|
220
220
|
title: title,
|
|
221
|
-
wrapClassName: (0, _classnames["default"])('vtx-modal', wrapClassName,
|
|
221
|
+
wrapClassName: (0, _classnames["default"])('vtx-modal', wrapClassName, isFull ? 'vtx-modal-maxClass' : '', classId.current),
|
|
222
222
|
bodyStyle: bodyStyle,
|
|
223
223
|
onCancel: onCancel,
|
|
224
|
-
style: _objectSpread(_objectSpread({}, props.style),
|
|
224
|
+
style: _objectSpread(_objectSpread({}, props.style), isFull ? {} : transformStyle)
|
|
225
225
|
});
|
|
226
226
|
|
|
227
227
|
return /*#__PURE__*/_react["default"].createElement(_modal["default"], newProps, props.children);
|
|
@@ -243,7 +243,8 @@ VtxModal.propTypes = {
|
|
|
243
243
|
onCancel: _propTypes["default"].func,
|
|
244
244
|
bodyStyle: _propTypes["default"].object,
|
|
245
245
|
style: _propTypes["default"].object,
|
|
246
|
-
children: _propTypes["default"].node
|
|
246
|
+
children: _propTypes["default"].node,
|
|
247
|
+
defaultIsFull: _propTypes["default"].bool
|
|
247
248
|
};
|
|
248
249
|
VtxModal.Title = _Title["default"];
|
|
249
250
|
var size = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["initDragArg","init_x","init_y","x_move","y_move","documentMouseMove","documentMouseUp","initFullScreen","isFull","className","VtxModal","props","useSetState","fullScreen","setFullScreen","dragArg","setDragArg","classId","useRef","Date","getTime","Math","random","wrapClassName","closable","title","maximize","onModalResize","moveable","useUpdateEffect","timer","setTimeout","el","document","getElementsByClassName","option","height","window","getComputedStyle","clearTimeout","useEffect","visible","modalHead","current","style","cursor","onmousedown","startDrag","e","preventDefault","onmouseup","onmousemove","clientX","clientY","prev","onCancel","renderTitle","paddingRight","fullScreenClass","bodyStyle","maxHeight","innerHeight","transformStyle","transform","newProps","maskClosable","destroyOnClose","width","classnames","children","info","Modal","success","error","warning","confirm","propTypes","PropTypes","bool","string","oneOfType","element","func","object","node","Title","size","xsmall","small","middle","large"],"sources":["vtx-modal/index.jsx"],"sourcesContent":["/*\r\n * @Author: chenxinyu\r\n * @Date: 2021-03-24 21:47:52\r\n * @LastEditors: your name\r\n * @LastEditTime: 2022-01-15 22:13:58\r\n * @Description: 对话框组件\r\n * @FilePath: \\react-components\\components\\vtx-modal\\index.jsx\r\n */\r\nimport React, { useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport useUpdateEffect from 'ahooks/es/useUpdateEffect';\r\nimport useSetState from 'ahooks/es/useSetState';\r\nimport CloseOutlined from '@ant-design/icons/CloseOutlined';\r\nimport FullscreenExitOutlined from '@ant-design/icons/FullscreenExitOutlined';\r\nimport FullscreenOutlined from '@ant-design/icons/FullscreenOutlined';\r\nimport classnames from 'classnames';\r\nimport Modal from 'antd/lib/modal';\r\nimport Title from './Title';\r\n\r\n// 对话框位置初始参数\r\nconst initDragArg = {\r\n init_x: 0,\r\n init_y: 0,\r\n x_move: 0,\r\n y_move: 0,\r\n documentMouseMove: null,\r\n documentMouseUp: null,\r\n};\r\n\r\n// 全屏参数\r\nconst initFullScreen = {\r\n isFull: false,\r\n className: '',\r\n};\r\n\r\nfunction VtxModal(props) {\r\n const [fullScreen, setFullScreen] = useSetState(initFullScreen); // 是否是全屏状态\r\n const [dragArg, setDragArg] = useSetState(initDragArg); // 拖动配置\r\n const classId = useRef(new Date().getTime() + Math.random());\r\n\r\n let {\r\n wrapClassName = '',\r\n closable = true, // 是否显示右上角关闭按钮\r\n title = '', // 对话框title\r\n maximize = false, // 是否显示对话框全屏按钮\r\n onModalResize, // 对话框全屏回调\r\n moveable = false, // 对话框是否允许拖动\r\n } = props;\r\n\r\n // 监听对话框大小变化回调(忽略首次执行)\r\n useUpdateEffect(() => {\r\n const timer = setTimeout(() => {\r\n if (onModalResize && typeof onModalResize === 'function') {\r\n const el = document.getElementsByClassName('ant-modal-body')[0];\r\n const option = {\r\n height: window.getComputedStyle(el).height,\r\n isFull: fullScreen.isFull,\r\n };\r\n onModalResize(option);\r\n }\r\n }, 100);\r\n return () => clearTimeout(timer);\r\n }, [fullScreen.isFull]);\r\n\r\n // 拖拽\r\n useEffect(() => {\r\n if (props.visible && moveable) {\r\n const timer = setTimeout(() => {\r\n const modalHead = document\r\n .getElementsByClassName(classId.current)?.[0]\r\n ?.getElementsByClassName('ant-modal-header')?.[0];\r\n if (modalHead) {\r\n modalHead.style.cursor = 'move';\r\n modalHead.onmousedown = startDrag;\r\n }\r\n }, 200);\r\n return () => clearTimeout(timer);\r\n }\r\n });\r\n\r\n const startDrag = e => {\r\n e.preventDefault();\r\n // 全屏模式下禁止拖拽\r\n if (!fullScreen.isFull) {\r\n setDragArg({\r\n documentMouseUp: document.onmouseup,\r\n documentMouseMove: document.onmousemove,\r\n init_x: e.clientX - dragArg.x_move,\r\n init_y: e.clientY - dragArg.y_move,\r\n });\r\n document.onmousemove = e => {\r\n setDragArg(prev => ({\r\n x_move: e.clientX - prev.init_x,\r\n y_move: e.clientY - prev.init_y,\r\n }));\r\n };\r\n document.onmouseup = () => {\r\n document.onmousemove = dragArg.documentMouseMove;\r\n document.onmouseup = dragArg.documentMouseUp;\r\n };\r\n }\r\n };\r\n\r\n // 关闭对话框,初始化位置\r\n const onCancel = () => {\r\n if (props.onCancel && typeof props.onCancel === 'function') {\r\n props.onCancel();\r\n // TODO 关闭弹框会闪一下,待解决\r\n setDragArg(initDragArg);\r\n setFullScreen(initFullScreen);\r\n }\r\n };\r\n\r\n /*\r\n *重写title,加入对话框全屏功能\r\n */\r\n title = (function renderTitle() {\r\n return (\r\n <div className=\"vtx-modal-title\" style={{ paddingRight: closable ? '32px' : '0px' }}>\r\n <div className=\"vtx-modal-title_name\">{title}</div>\r\n {maximize ? (\r\n <div className=\"vtx-modal-maximizeIcon\">\r\n <p\r\n onClick={() => {\r\n let fullScreenClass = '';\r\n if (!fullScreen.isFull) {\r\n fullScreenClass = 'vtx-modal-maxClass';\r\n }\r\n setFullScreen({\r\n isFull: !fullScreen.isFull,\r\n className: fullScreenClass,\r\n });\r\n }}\r\n >\r\n {fullScreen.isFull ? (\r\n <FullscreenExitOutlined />\r\n ) : (\r\n <FullscreenOutlined />\r\n )}\r\n </p>\r\n </div>\r\n ) : null}\r\n {closable ? (\r\n <div className=\"vtx-modal-close\">\r\n <p onClick={onCancel}>\r\n {/* <Icon type=\"close\" /> */}\r\n <CloseOutlined />\r\n </p>\r\n </div>\r\n ) : (\r\n ''\r\n )}\r\n </div>\r\n );\r\n })();\r\n\r\n let bodyStyle = {\r\n ...props.bodyStyle,\r\n };\r\n\r\n /* 限制最大高度 */\r\n if (!fullScreen.isFull) {\r\n bodyStyle = {\r\n maxHeight: `${window.innerHeight * 0.7}px`,\r\n ...bodyStyle,\r\n };\r\n }\r\n\r\n const transformStyle = {\r\n transform: `translate(${dragArg.x_move}px,${dragArg.y_move}px)`,\r\n };\r\n\r\n const newProps = {\r\n maskClosable: false,\r\n destroyOnClose: true,\r\n width: 700,\r\n ...props,\r\n closable: false,\r\n title,\r\n wrapClassName: classnames(\r\n 'vtx-modal',\r\n wrapClassName,\r\n fullScreen.className,\r\n classId.current,\r\n ),\r\n bodyStyle,\r\n onCancel,\r\n style: {\r\n ...props.style,\r\n ...(fullScreen.isFull ? {} : transformStyle),\r\n },\r\n };\r\n\r\n return <Modal {...newProps}>{props.children}</Modal>;\r\n}\r\n\r\nVtxModal.info = Modal.info;\r\nVtxModal.success = Modal.success;\r\nVtxModal.error = Modal.error;\r\nVtxModal.warning = Modal.warning;\r\nVtxModal.confirm = Modal.confirm;\r\n\r\nVtxModal.propTypes = {\r\n visible: PropTypes.bool,\r\n wrapClassName: PropTypes.string,\r\n closable: PropTypes.bool,\r\n title: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\r\n maximize: PropTypes.bool,\r\n onModalResize: PropTypes.func,\r\n moveable: PropTypes.bool,\r\n onCancel: PropTypes.func,\r\n bodyStyle: PropTypes.object,\r\n style: PropTypes.object,\r\n children: PropTypes.node,\r\n};\r\n\r\nVtxModal.Title = Title;\r\n\r\nconst size = {\r\n xsmall: 392,\r\n small: 500,\r\n middle: 744,\r\n large: 1096,\r\n};\r\n\r\nVtxModal.size = size;\r\n\r\nexport default VtxModal;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["initDragArg","init_x","init_y","x_move","y_move","documentMouseMove","documentMouseUp","VtxModal","props","useState","defaultIsFull","isFull","setIsFull","useSetState","dragArg","setDragArg","classId","useRef","Date","getTime","Math","random","wrapClassName","closable","title","maximize","onModalResize","moveable","useUpdateEffect","timer","setTimeout","el","document","getElementsByClassName","option","height","window","getComputedStyle","clearTimeout","useEffect","visible","modalHead","current","style","cursor","onmousedown","startDrag","e","preventDefault","onmouseup","onmousemove","clientX","clientY","prev","onCancel","renderTitle","indexOf","_titles","split","trim","paddingRight","bodyStyle","maxHeight","innerHeight","transformStyle","transform","newProps","maskClosable","destroyOnClose","width","classnames","children","info","Modal","success","error","warning","confirm","propTypes","PropTypes","bool","string","oneOfType","element","func","object","node","Title","size","xsmall","small","middle","large"],"sources":["vtx-modal/index.jsx"],"sourcesContent":["/*\n * @Author: chenxinyu\n * @Date: 2021-03-24 21:47:52\n * @LastEditors: your name\n * @LastEditTime: 2022-01-15 22:13:58\n * @Description: 对话框组件\n * @FilePath: \\react-components\\components\\vtx-modal\\index.jsx\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport useUpdateEffect from 'ahooks/es/useUpdateEffect';\nimport useSetState from 'ahooks/es/useSetState';\nimport CloseOutlined from '@ant-design/icons/CloseOutlined';\nimport FullscreenExitOutlined from '@ant-design/icons/FullscreenExitOutlined';\nimport FullscreenOutlined from '@ant-design/icons/FullscreenOutlined';\nimport classnames from 'classnames';\nimport Modal from 'antd/lib/modal';\nimport Title from './Title';\n\n// 对话框位置初始参数\nconst initDragArg = {\n init_x: 0,\n init_y: 0,\n x_move: 0,\n y_move: 0,\n documentMouseMove: null,\n documentMouseUp: null,\n};\n\nfunction VtxModal(props) {\n const [isFull, setIsFull] = useState(!!props.defaultIsFull); // 是否是全屏状态\n const [dragArg, setDragArg] = useSetState(initDragArg); // 拖动配置\n const classId = useRef(new Date().getTime() + Math.random());\n\n let {\n wrapClassName = '',\n closable = true, // 是否显示右上角关闭按钮\n title = '', // 对话框title\n maximize = false, // 是否显示对话框全屏按钮\n onModalResize, // 对话框全屏回调\n moveable = false, // 对话框是否允许拖动\n } = props;\n\n // 监听对话框大小变化回调(忽略首次执行)\n useUpdateEffect(() => {\n const timer = setTimeout(() => {\n if (onModalResize && typeof onModalResize === 'function') {\n const el = document.getElementsByClassName('ant-modal-body')[0];\n const option = {\n height: window.getComputedStyle(el).height,\n isFull,\n };\n onModalResize(option);\n }\n }, 100);\n return () => clearTimeout(timer);\n }, [isFull]);\n\n // 拖拽\n useEffect(() => {\n if (props.visible && moveable) {\n const timer = setTimeout(() => {\n const modalHead = document\n .getElementsByClassName(classId.current)?.[0]\n ?.getElementsByClassName('ant-modal-header')?.[0];\n if (modalHead) {\n modalHead.style.cursor = 'move';\n modalHead.onmousedown = startDrag;\n }\n }, 200);\n return () => clearTimeout(timer);\n }\n });\n\n useEffect(() => {\n if (props.visible) {\n setIsFull(!!props.defaultIsFull);\n }\n }, [props.visible]);\n\n const startDrag = e => {\n e.preventDefault();\n // 全屏模式下禁止拖拽\n if (!isFull) {\n setDragArg({\n documentMouseUp: document.onmouseup,\n documentMouseMove: document.onmousemove,\n init_x: e.clientX - dragArg.x_move,\n init_y: e.clientY - dragArg.y_move,\n });\n document.onmousemove = e => {\n setDragArg(prev => ({\n x_move: e.clientX - prev.init_x,\n y_move: e.clientY - prev.init_y,\n }));\n };\n document.onmouseup = () => {\n document.onmousemove = dragArg.documentMouseMove;\n document.onmouseup = dragArg.documentMouseUp;\n };\n }\n };\n\n // 关闭对话框,初始化位置\n const onCancel = () => {\n if (props.onCancel && typeof props.onCancel === 'function') {\n props.onCancel();\n // TODO 关闭弹框会闪一下,待解决\n setDragArg(initDragArg);\n setIsFull(false);\n }\n };\n\n /*\n *重写title,加入对话框全屏功能\n */\n title = (function renderTitle() {\n if (typeof title == 'string' && title.indexOf('>') > -1) {\n let _titles = title.split('>');\n title = <Title text={_titles[0].trim()} subtitle={_titles[1].trim()} />;\n }\n return (\n <div className=\"vtx-modal-title\" style={{ paddingRight: closable ? '32px' : '0px' }}>\n <div className=\"vtx-modal-title_name\">{title}</div>\n {maximize ? (\n <div className=\"vtx-modal-maximizeIcon\">\n <p\n onClick={() => {\n setIsFull(!isFull);\n }}\n >\n {isFull ? <FullscreenExitOutlined /> : <FullscreenOutlined />}\n </p>\n </div>\n ) : null}\n {closable ? (\n <div className=\"vtx-modal-close\">\n <p onClick={onCancel}>\n {/* <Icon type=\"close\" /> */}\n <CloseOutlined />\n </p>\n </div>\n ) : (\n ''\n )}\n </div>\n );\n })();\n\n let bodyStyle = {\n ...props.bodyStyle,\n };\n\n /* 限制最大高度 */\n if (!isFull) {\n bodyStyle = {\n maxHeight: `${window.innerHeight * 0.7}px`,\n ...bodyStyle,\n };\n }\n\n const transformStyle = {\n transform: `translate(${dragArg.x_move}px,${dragArg.y_move}px)`,\n };\n\n const newProps = {\n maskClosable: false,\n destroyOnClose: true,\n width: 700,\n ...props,\n closable: false,\n title,\n wrapClassName: classnames(\n 'vtx-modal',\n wrapClassName,\n isFull ? 'vtx-modal-maxClass' : '',\n classId.current,\n ),\n bodyStyle,\n onCancel,\n style: {\n ...props.style,\n ...(isFull ? {} : transformStyle),\n },\n };\n\n return <Modal {...newProps}>{props.children}</Modal>;\n}\n\nVtxModal.info = Modal.info;\nVtxModal.success = Modal.success;\nVtxModal.error = Modal.error;\nVtxModal.warning = Modal.warning;\nVtxModal.confirm = Modal.confirm;\n\nVtxModal.propTypes = {\n visible: PropTypes.bool,\n wrapClassName: PropTypes.string,\n closable: PropTypes.bool,\n title: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n maximize: PropTypes.bool,\n onModalResize: PropTypes.func,\n moveable: PropTypes.bool,\n onCancel: PropTypes.func,\n bodyStyle: PropTypes.object,\n style: PropTypes.object,\n children: PropTypes.node,\n defaultIsFull: PropTypes.bool,\n};\n\nVtxModal.Title = Title;\n\nconst size = {\n xsmall: 392,\n small: 500,\n middle: 744,\n large: 1096,\n};\n\nVtxModal.size = size;\n\nexport default VtxModal;\n"],"mappings":"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"}
|
|
@@ -6,8 +6,21 @@
|
|
|
6
6
|
padding-bottom: 0 !important;
|
|
7
7
|
overflow: hidden;
|
|
8
8
|
}
|
|
9
|
+
.vtx-modal-maxClass .ant-modal .ant-modal-content {
|
|
10
|
+
display: -webkit-box;
|
|
11
|
+
display: -ms-flexbox;
|
|
12
|
+
display: flex;
|
|
13
|
+
-webkit-box-orient: vertical;
|
|
14
|
+
-webkit-box-direction: normal;
|
|
15
|
+
-ms-flex-direction: column;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
}
|
|
9
18
|
.vtx-modal-maxClass .ant-modal-body {
|
|
10
|
-
|
|
19
|
+
-webkit-box-flex: 1;
|
|
20
|
+
-ms-flex: 1;
|
|
21
|
+
flex: 1;
|
|
22
|
+
min-height: 0;
|
|
23
|
+
max-height: initial !important;
|
|
11
24
|
}
|
|
12
25
|
.vtx-modal .ant-modal {
|
|
13
26
|
top: 10%;
|