@@ -6,6 +6,7 @@ export const CLIENT_APP = 'HQ_WEB';
|
||||
export type HqProfile = {
|
||||
id: string;
|
||||
phone: string;
|
||||
loginName?: string | null;
|
||||
name: string;
|
||||
adminRole: string;
|
||||
status: string;
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
/** 将列表可见列 key 追加到导出 query */
|
||||
export function appendExportColumns(qs: URLSearchParams, keys: string[]) {
|
||||
if (keys.length) qs.set('columns', keys.join(','));
|
||||
}
|
||||
|
||||
export function exportColumnsBody(keys: string[]): { columns?: string[] } {
|
||||
return keys.length ? { columns: keys } : {};
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import {
|
||||
applyColumnPrefs,
|
||||
columnKey,
|
||||
settingItems,
|
||||
visibleColumnKeys,
|
||||
type ListColumnSettingItem,
|
||||
} from './list-column-prefs';
|
||||
import { beginColumnResize, withResizeTitle } from './column-resize';
|
||||
@@ -48,6 +49,16 @@ export function useAdminListColumns<T>(
|
||||
);
|
||||
itemsRef.current = items;
|
||||
|
||||
const exportColumnKeys = useMemo(() => {
|
||||
const keyed = (allColumns as ColumnType<T>[]).map((col, i) => ({
|
||||
col,
|
||||
key: columnKey(col, i),
|
||||
actions: col.title === '操作' || col.key === ACTIONS_COLUMN_KEY || col.key === 'actions',
|
||||
}));
|
||||
const defaultKeys = keyed.filter((c) => !c.actions).map((c) => c.key);
|
||||
return visibleColumnKeys(defaultKeys, pref);
|
||||
}, [allColumns, pref]);
|
||||
|
||||
const serialCol: ColumnType<T> = useMemo(
|
||||
() => ({
|
||||
key: SERIAL_COLUMN_KEY,
|
||||
@@ -171,5 +182,5 @@ export function useAdminListColumns<T>(
|
||||
/>
|
||||
);
|
||||
|
||||
return { columns, settingsButton, settingsModal };
|
||||
return { columns, settingsButton, settingsModal, exportColumnKeys };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user