|
@@ -1,6 +1,6 @@
|
|
|
/* eslint-disable react-hooks/rules-of-hooks */
|
|
/* eslint-disable react-hooks/rules-of-hooks */
|
|
|
/* eslint-disable no-param-reassign */
|
|
/* eslint-disable no-param-reassign */
|
|
|
-import React, { useRef, useState, useMemo, useCallback } from 'react'
|
|
|
|
|
|
|
+import React, { useRef, useState, useMemo, useCallback, useLayoutEffect } from 'react'
|
|
|
import PermSelect from '@/pages/Customer/Company/components/PermSelect'
|
|
import PermSelect from '@/pages/Customer/Company/components/PermSelect'
|
|
|
import { TABLE_COLUMNS_MAP, ColumnStateEnum } from '@/utils/cache/cacheEnum'
|
|
import { TABLE_COLUMNS_MAP, ColumnStateEnum } from '@/utils/cache/cacheEnum'
|
|
|
import { isBoolean, isMobile, isNullOrUnDef, isObject, isUnDef } from '@/utils/is'
|
|
import { isBoolean, isMobile, isNullOrUnDef, isObject, isUnDef } from '@/utils/is'
|
|
@@ -36,6 +36,8 @@ const BasicTable: {
|
|
|
onSizeChange,
|
|
onSizeChange,
|
|
|
bordered,
|
|
bordered,
|
|
|
rowSelection,
|
|
rowSelection,
|
|
|
|
|
+ dataSource,
|
|
|
|
|
+ onLoad,
|
|
|
...resetProps
|
|
...resetProps
|
|
|
}) => {
|
|
}) => {
|
|
|
const {
|
|
const {
|
|
@@ -54,7 +56,7 @@ const BasicTable: {
|
|
|
sizeRef: 'middle',
|
|
sizeRef: 'middle',
|
|
|
columnsStateMap: columnsStateMap,
|
|
columnsStateMap: columnsStateMap,
|
|
|
params: { staffIds: defaultStaffIds, dataPermission: defaultPermAuthCache },
|
|
params: { staffIds: defaultStaffIds, dataPermission: defaultPermAuthCache },
|
|
|
- dataSource: null
|
|
|
|
|
|
|
+ dataSource
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
const columnsRef = useMemo(() => {
|
|
const columnsRef = useMemo(() => {
|
|
@@ -78,11 +80,11 @@ const BasicTable: {
|
|
|
paginationRef: !isBoolean(resetProps.pagination)
|
|
paginationRef: !isBoolean(resetProps.pagination)
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
- useUpdateLayoutEffect(() => {
|
|
|
|
|
- if (state.dataSource || !isUnDef(resetProps.dataSource)) {
|
|
|
|
|
- redoHeight(state.dataSource || resetProps.dataSource)
|
|
|
|
|
- }
|
|
|
|
|
- }, [state.dataSource, resetProps.dataSource])
|
|
|
|
|
|
|
+ useLayoutEffect(() => {
|
|
|
|
|
+ console.log('11')
|
|
|
|
|
+
|
|
|
|
|
+ state.dataSource && redoHeight(state.dataSource)
|
|
|
|
|
+ }, [state.dataSource])
|
|
|
|
|
|
|
|
/** 增加头部 */
|
|
/** 增加头部 */
|
|
|
if (mainMenuType) {
|
|
if (mainMenuType) {
|
|
@@ -148,6 +150,7 @@ const BasicTable: {
|
|
|
const computedParams = mainMenuType ? { ...params, ...state.params } : params
|
|
const computedParams = mainMenuType ? { ...params, ...state.params } : params
|
|
|
|
|
|
|
|
const _request = useCallback(async (_params, _sort, _filter) => {
|
|
const _request = useCallback(async (_params, _sort, _filter) => {
|
|
|
|
|
+ if (isUnDef(request)) return undefined
|
|
|
const result = await request(_params, _sort, _filter)
|
|
const result = await request(_params, _sort, _filter)
|
|
|
if (!isBoolean(result?.success)) {
|
|
if (!isBoolean(result?.success)) {
|
|
|
result.success = true
|
|
result.success = true
|
|
@@ -156,11 +159,20 @@ const BasicTable: {
|
|
|
return result
|
|
return result
|
|
|
}, [])
|
|
}, [])
|
|
|
|
|
|
|
|
|
|
+ const _onLoad = useCallback(_dataSource => {
|
|
|
|
|
+ onLoad?.(_dataSource)
|
|
|
|
|
+ // TODO: 使用[request]api才对dataSource进行赋值, 规避掉手动设置[dataSource] api 自适应高度失效
|
|
|
|
|
+ if (!isUnDef(request)) {
|
|
|
|
|
+ setState({ ...state, dataSource: _dataSource })
|
|
|
|
|
+ }
|
|
|
|
|
+ }, [])
|
|
|
|
|
+
|
|
|
return (
|
|
return (
|
|
|
<React.StrictMode>
|
|
<React.StrictMode>
|
|
|
<div ref={tableElRef} className={styles.BasicTable}>
|
|
<div ref={tableElRef} className={styles.BasicTable}>
|
|
|
<ProTable
|
|
<ProTable
|
|
|
{...resetProps}
|
|
{...resetProps}
|
|
|
|
|
+ dataSource={state.dataSource}
|
|
|
rowKey={rowKey || 'id'}
|
|
rowKey={rowKey || 'id'}
|
|
|
columns={originalColumns}
|
|
columns={originalColumns}
|
|
|
params={computedParams}
|
|
params={computedParams}
|
|
@@ -171,7 +183,7 @@ const BasicTable: {
|
|
|
onChange: handleOnColumnsChange
|
|
onChange: handleOnColumnsChange
|
|
|
}}
|
|
}}
|
|
|
bordered={isNullOrUnDef(bordered) ? bordered : true}
|
|
bordered={isNullOrUnDef(bordered) ? bordered : true}
|
|
|
- onLoad={dataSource => setState({ ...state, dataSource })}
|
|
|
|
|
|
|
+ onLoad={_onLoad}
|
|
|
onSizeChange={handleOnSizeChange}
|
|
onSizeChange={handleOnSizeChange}
|
|
|
rowSelection={rowSelectionOptions}
|
|
rowSelection={rowSelectionOptions}
|
|
|
/>
|
|
/>
|