| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import React, { useRef } from 'react'; |
| import { Modal, Form } from '@douyinfe/semi-ui'; |
|
|
| const SearchModal = ({ |
| searchModalVisible, |
| handleSearchConfirm, |
| handleCloseModal, |
| isMobile, |
| isAdminUser, |
| inputs, |
| dataExportDefaultTime, |
| timeOptions, |
| handleInputChange, |
| t, |
| }) => { |
| const formRef = useRef(); |
|
|
| const FORM_FIELD_PROPS = { |
| className: 'w-full mb-2 !rounded-lg', |
| }; |
|
|
| const createFormField = (Component, props) => ( |
| <Component {...FORM_FIELD_PROPS} {...props} /> |
| ); |
|
|
| const { start_timestamp, end_timestamp, username } = inputs; |
|
|
| return ( |
| <Modal |
| title={t('搜索条件')} |
| visible={searchModalVisible} |
| onOk={handleSearchConfirm} |
| onCancel={handleCloseModal} |
| closeOnEsc={true} |
| size={isMobile ? 'full-width' : 'small'} |
| centered |
| > |
| <Form ref={formRef} layout='vertical' className='w-full'> |
| {createFormField(Form.DatePicker, { |
| field: 'start_timestamp', |
| label: t('起始时间'), |
| initValue: start_timestamp, |
| value: start_timestamp, |
| type: 'dateTime', |
| name: 'start_timestamp', |
| onChange: (value) => handleInputChange(value, 'start_timestamp'), |
| })} |
| |
| {createFormField(Form.DatePicker, { |
| field: 'end_timestamp', |
| label: t('结束时间'), |
| initValue: end_timestamp, |
| value: end_timestamp, |
| type: 'dateTime', |
| name: 'end_timestamp', |
| onChange: (value) => handleInputChange(value, 'end_timestamp'), |
| })} |
| |
| {createFormField(Form.Select, { |
| field: 'data_export_default_time', |
| label: t('时间粒度'), |
| initValue: dataExportDefaultTime, |
| placeholder: t('时间粒度'), |
| name: 'data_export_default_time', |
| optionList: timeOptions, |
| onChange: (value) => |
| handleInputChange(value, 'data_export_default_time'), |
| })} |
| |
| {isAdminUser && |
| createFormField(Form.Input, { |
| field: 'username', |
| label: t('用户名称'), |
| value: username, |
| placeholder: t('可选值'), |
| name: 'username', |
| onChange: (value) => handleInputChange(value, 'username'), |
| })} |
| </Form> |
| </Modal> |
| ); |
| }; |
|
|
| export default SearchModal; |
|
|