|
@@ -0,0 +1,86 @@
|
|
|
|
+import React from 'react';
|
|
|
|
+import { Row, Col, Select, Segmented } from 'antd';
|
|
|
|
+import { useSelector } from 'react-redux';
|
|
|
|
+import { RootState } from '@/states/store';
|
|
|
|
+
|
|
|
|
+interface Props {
|
|
|
|
+ selected: 'protocol' | 'view';
|
|
|
|
+ setSelected: (val: 'protocol' | 'view') => void;
|
|
|
|
+ bodyPart: string | undefined;
|
|
|
|
+ setBodyPart: (val: string | undefined) => void;
|
|
|
|
+ patientType: string | undefined;
|
|
|
|
+ setPatientType: (val: string | undefined) => void;
|
|
|
|
+ enabled: string | undefined;
|
|
|
|
+ setEnabled: (val: string | undefined) => void;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const RegisterAvailableFilterBar: React.FC<Props> = ({
|
|
|
|
+ selected,
|
|
|
|
+ setSelected,
|
|
|
|
+ bodyPart,
|
|
|
|
+ setBodyPart,
|
|
|
|
+ patientType,
|
|
|
|
+ setPatientType,
|
|
|
|
+ enabled,
|
|
|
|
+ setEnabled,
|
|
|
|
+}) => {
|
|
|
|
+ const bodyParts = useSelector((state: RootState) => state.bodyPart.items); // [{ label, value }]
|
|
|
|
+ const patientTypes = useSelector(
|
|
|
|
+ (state: RootState) => state.patientType.items
|
|
|
|
+ ); // [{ label, value }]
|
|
|
|
+ const enabledOptions = [
|
|
|
|
+ { label: '全部', value: undefined },
|
|
|
|
+ { label: '启用', value: 'enabled' },
|
|
|
|
+ { label: '停用', value: 'disabled' },
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ return (
|
|
|
|
+ <div style={{ padding: 16, borderBottom: '1px solid #f0f0f0' }}>
|
|
|
|
+ <Row gutter={[16, 16]}>
|
|
|
|
+ <Col xs={24} sm={12} md={6} lg={6} xl={4}>
|
|
|
|
+ <Segmented
|
|
|
|
+ options={[
|
|
|
|
+ { label: '协议', value: 'protocol' },
|
|
|
|
+ { label: '体位', value: 'view' },
|
|
|
|
+ ]}
|
|
|
|
+ value={selected}
|
|
|
|
+ onChange={(val) => setSelected(val as 'protocol' | 'view')}
|
|
|
|
+ block
|
|
|
|
+ />
|
|
|
|
+ </Col>
|
|
|
|
+ <Col xs={24} sm={12} md={6} lg={6} xl={6}>
|
|
|
|
+ <Select
|
|
|
|
+ allowClear
|
|
|
|
+ style={{ width: '100%' }}
|
|
|
|
+ placeholder="身体部位"
|
|
|
|
+ options={bodyParts}
|
|
|
|
+ value={bodyPart}
|
|
|
|
+ onChange={setBodyPart}
|
|
|
|
+ />
|
|
|
|
+ </Col>
|
|
|
|
+ <Col xs={24} sm={12} md={6} lg={6} xl={6}>
|
|
|
|
+ <Select
|
|
|
|
+ allowClear
|
|
|
|
+ style={{ width: '100%' }}
|
|
|
|
+ placeholder="患者类型"
|
|
|
|
+ options={patientTypes}
|
|
|
|
+ value={patientType}
|
|
|
|
+ onChange={setPatientType}
|
|
|
|
+ />
|
|
|
|
+ </Col>
|
|
|
|
+ <Col xs={24} sm={12} md={6} lg={6} xl={4}>
|
|
|
|
+ <Select
|
|
|
|
+ allowClear
|
|
|
|
+ style={{ width: '100%' }}
|
|
|
|
+ placeholder="是否启用"
|
|
|
|
+ options={enabledOptions}
|
|
|
|
+ value={enabled}
|
|
|
|
+ onChange={setEnabled}
|
|
|
|
+ />
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+ </div>
|
|
|
|
+ );
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+export default RegisterAvailableFilterBar;
|