| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /*
- Copyright (C) 2025 QuantumNous
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
- For commercial licensing, please contact support@quantumnous.com
- */
- 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;
|