| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | import React from 'react';
|
| | import { Modal, Button, Checkbox } from '@douyinfe/semi-ui';
|
| | import { getTaskLogsColumns } from '../TaskLogsColumnDefs';
|
| |
|
| | const ColumnSelectorModal = ({
|
| | showColumnSelector,
|
| | setShowColumnSelector,
|
| | visibleColumns,
|
| | handleColumnVisibilityChange,
|
| | handleSelectAll,
|
| | initDefaultColumns,
|
| | COLUMN_KEYS,
|
| | isAdminUser,
|
| | copyText,
|
| | openContentModal,
|
| | t,
|
| | }) => {
|
| |
|
| | const allColumns = getTaskLogsColumns({
|
| | t,
|
| | COLUMN_KEYS,
|
| | copyText,
|
| | openContentModal,
|
| | isAdminUser,
|
| | });
|
| |
|
| | return (
|
| | <Modal
|
| | title={t('列设置')}
|
| | visible={showColumnSelector}
|
| | onCancel={() => setShowColumnSelector(false)}
|
| | footer={
|
| | <div className='flex justify-end'>
|
| | <Button onClick={() => initDefaultColumns()}>{t('重置')}</Button>
|
| | <Button onClick={() => setShowColumnSelector(false)}>
|
| | {t('取消')}
|
| | </Button>
|
| | <Button onClick={() => setShowColumnSelector(false)}>
|
| | {t('确定')}
|
| | </Button>
|
| | </div>
|
| | }
|
| | >
|
| | <div style={{ marginBottom: 20 }}>
|
| | <Checkbox
|
| | checked={Object.values(visibleColumns).every((v) => v === true)}
|
| | indeterminate={
|
| | Object.values(visibleColumns).some((v) => v === true) &&
|
| | !Object.values(visibleColumns).every((v) => v === true)
|
| | }
|
| | onChange={(e) => handleSelectAll(e.target.checked)}
|
| | >
|
| | {t('全选')}
|
| | </Checkbox>
|
| | </div>
|
| | <div
|
| | className='flex flex-wrap max-h-96 overflow-y-auto rounded-lg p-4'
|
| | style={{ border: '1px solid var(--semi-color-border)' }}
|
| | >
|
| | {allColumns.map((column) => {
|
| | // Skip admin-only columns for non-admin users
|
| | if (!isAdminUser && column.key === COLUMN_KEYS.CHANNEL) {
|
| | return null;
|
| | }
|
| |
|
| | return (
|
| | <div key={column.key} className='w-1/2 mb-4 pr-2'>
|
| | <Checkbox
|
| | checked={!!visibleColumns[column.key]}
|
| | onChange={(e) =>
|
| | handleColumnVisibilityChange(column.key, e.target.checked)
|
| | }
|
| | >
|
| | {column.title}
|
| | </Checkbox>
|
| | </div>
|
| | );
|
| | })}
|
| | </div>
|
| | </Modal>
|
| | );
|
| | };
|
| |
|
| | export default ColumnSelectorModal;
|
| |
|