Browse Source

fix: BasicTable columns变更本地存储的数据异常

lanjianrong 5 years atrás
parent
commit
4fbe08fc04
1 changed files with 10 additions and 3 deletions
  1. 10 3
      src/components/Table/src/BasicTable.tsx

+ 10 - 3
src/components/Table/src/BasicTable.tsx

@@ -50,6 +50,7 @@ const BasicTable: {
   Summary: typeof import('rc-table/lib/Footer/Summary').default
 } = ({
   // resizable = false,
+  rowKey,
   headerTitle,
   params,
   mainMenuType,
@@ -86,7 +87,6 @@ const BasicTable: {
       const column = state.columnsStateMap[columnsKey]
       if (!column.show) filterKey.push(columnsKey)
     })
-
     return originalColumns?.filter((_, i) => !filterKey.includes(i.toString()))
   }, [state.columnsStateMap])
 
@@ -133,7 +133,11 @@ const BasicTable: {
 
   const handleOnColumnsChange = (map: Record<string, ColumnsState>) => {
     setState({ ...state, columnsStateMap: map })
-    setAuthCache(TABLE_COLUMNS_MAP, { [ColumnStateEnum[columnStateType]]: map })
+    const authColumnsStateMap = getAuthCache(TABLE_COLUMNS_MAP)
+    setAuthCache(TABLE_COLUMNS_MAP, {
+      ...authColumnsStateMap,
+      [ColumnStateEnum[columnStateType]]: map
+    })
   }
 
   const handleOnSizeChange = (size: DensitySize) => {
@@ -192,12 +196,15 @@ const BasicTable: {
   //   return columns
   // }, [columns])
 
+  const computedParams = mainMenuType ? { ...params, ...state.params } : params
+
   return (
     <div ref={tableElRef} className={styles.BasicTable}>
       <ProTable
         {...resetProps}
+        rowKey={rowKey || 'id'}
         columns={originalColumns}
-        params={{ ...params, ...state.params }}
+        params={computedParams}
         columnsStateMap={state.columnsStateMap}
         onColumnsStateChange={handleOnColumnsChange}
         scroll={getScrollRef}