diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelFieldForm.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelFieldForm.tsx index 5cd615bdf..8859bb773 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelFieldForm.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelFieldForm.tsx @@ -139,13 +139,11 @@ const ModelFieldForm: React.FC = ({ if (type === EnumDataSourceType.PRIMARY) { return ( - {/* */} { - handleFieldChange(record, 'entityNames', value); - }} - maxTagCount={9} - /> - - - */} ); } @@ -182,6 +165,7 @@ const ModelFieldForm: React.FC = ({ onChange={(value) => { handleFieldChange(record, 'agg', value); }} + allowClear defaultValue={AGG_OPTIONS[0].value} style={{ width: '100%' }} > diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricAddClass.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricAddClass.tsx new file mode 100644 index 000000000..83c505c11 --- /dev/null +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricAddClass.tsx @@ -0,0 +1,109 @@ +import { Form, Button, Modal, Select, message } from 'antd'; +import { getMetricClassifications, batchUpdateClassifications } from '../../service'; +import React, { useRef, useState, useEffect } from 'react'; + +export type Props = { + onCancel: () => void; + onSuccess?: () => void; + createModalVisible: boolean; + ids: number[]; +}; + +const MetricAddClass: React.FC = ({ ids = [], createModalVisible, onCancel, onSuccess }) => { + const [formVals, setFormVals] = useState({ + type: 'ADD', // 类型 + }); + const [saveLoading, setSaveLoading] = useState(false); + const [form] = Form.useForm(); + + const [classList, setClassList] = useState([]); + + const getClassList = async () => { + const { code, data, msg } = await getMetricClassifications(); + if (code === 200 && Array.isArray(data)) { + setClassList(data); + return; + } + message.error(msg); + }; + + useEffect(() => { + getClassList(); + }, []); + + const handleSubmit = async (params = {}) => { + const fieldsValue = await form.validateFields(); + setFormVals({ ...formVals, ...fieldsValue }); + setSaveLoading(true); + const formValus = { + ...formVals, + ...fieldsValue, + ...params, + ids, + }; + const { code, msg } = await batchUpdateClassifications(formValus); + setSaveLoading(false); + if (code === 200) { + message.success('添加成功!'); + onSuccess?.(); + return; + } + message.error(msg); + }; + + const renderFooter = () => { + return ( + <> + + + + + ); + }; + + return ( + +
+ +