diff --git a/webapp/packages/supersonic-fe/src/components/BatchCtrlDropDownButton/BatchSensitiveLevelModal.tsx b/webapp/packages/supersonic-fe/src/components/BatchCtrlDropDownButton/BatchSensitiveLevelModal.tsx new file mode 100644 index 000000000..efd155f74 --- /dev/null +++ b/webapp/packages/supersonic-fe/src/components/BatchCtrlDropDownButton/BatchSensitiveLevelModal.tsx @@ -0,0 +1,111 @@ +import React, { useState, useRef } from 'react'; +import { Button, Modal, Space, Form, Select } from 'antd'; +import { ISemantic } from '@/pages/SemanticModel/data'; +import { SENSITIVE_LEVEL_OPTIONS } from '@/pages/SemanticModel/constant'; +import { SemanticNodeType } from '@/pages/SemanticModel/enum'; + +import { formLayout } from '@/components/FormHelper/utils'; +import { + batchUpdateDimensionSensitiveLevel, + batchUpdateMetricSensitiveLevel, +} from '@/pages/SemanticModel/service'; + +export type Props = { + onCancel?: () => void; + ids: number[]; + type: SemanticNodeType; + open: boolean; + onSubmit?: (values?: any) => void; +}; + +const FormItem = Form.Item; + +const BatchSensitiveLevelModal: React.FC = ({ + ids, + onCancel, + type = SemanticNodeType.DIMENSION, + open, + onSubmit, +}) => { + const [loading, setLoading] = useState(false); + const [form] = Form.useForm(); + + const batchSettingSensitiveLevel = async () => { + const values = await form.validateFields(); + setLoading(true); + const { data, code } = await (type === SemanticNodeType.DIMENSION + ? batchUpdateDimensionSensitiveLevel + : batchUpdateMetricSensitiveLevel)({ + ids, + sensitiveLevel: values.sensitiveLevel, + }); + setLoading(false); + if (code === 200) { + onSubmit?.(); + } + }; + + const renderFooter = () => { + return ( + <> + + + + + + + ); + }; + + return ( + +
{}}> + +