diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/utils.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/utils.tsx
index 6fefffe4f..34e2faf54 100644
--- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/utils.tsx
+++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/utils.tsx
@@ -1,7 +1,7 @@
import type { API } from '@/services/API';
import { ISemantic } from './data';
import type { DataNode } from 'antd/lib/tree';
-import { Form, Input, InputNumber, Switch, Select } from 'antd';
+import { Form, Input, InputNumber, Switch, Select, Slider } from 'antd';
import FormItemTitle from '@/components/FormHelper/FormItemTitle';
import DisabledWheelNumberInput from '@/components/DisabledWheelNumberInput';
import { ConfigParametersItem } from '../System/types';
@@ -138,7 +138,8 @@ export const findLeafNodesFromDomainList = (
export const genneratorFormItemList = (itemList: ConfigParametersItem[], form) => {
const list = itemList.reduce((itemList: ReactNode[], item) => {
- const { dataType, name, comment, placeholder, description, require, visible } = item;
+ const { dataType, name, comment, placeholder, description, require, visible, sliderConfig } =
+ item;
if (visible === false) {
return itemList;
}
@@ -165,6 +166,23 @@ export const genneratorFormItemList = (itemList: ConfigParametersItem[], form) =
);
break;
+ case 'slider':
+ defaultItem = (
+
+ );
+ break;
case 'bool':
itemList.push(
{
const configMap = useRef>();
- const [configIocDepMap, setConfigIocDepMap] = useState({});
+ const configIocDepMap = useRef>();
+ // const [configIocDepMap, setConfigIocDepMap] = useState({});
useEffect(() => {
querySystemConfig();
@@ -30,6 +31,7 @@ const System: React.FC = () => {
const [form] = Form.useForm();
const querySystemConfig = async () => {
const { code, data, msg } = await getSystemConfig();
+
if (code === 200 && data) {
const { parameters = [], admins = [] } = data;
@@ -57,6 +59,7 @@ const System: React.FC = () => {
const initDepConfig = (parameters: ConfigParametersItem[], admins: Admin) => {
const iocMap = getDepIoc(parameters);
+ configIocDepMap.current = iocMap;
const initFormValues = setInitData(admins, parameters);
Object.keys(initFormValues).forEach((itemName) => {
const targetDep = iocMap[itemName] || {};
@@ -65,8 +68,6 @@ const System: React.FC = () => {
excuteDepConfig(itemName, initFormValues);
}
});
-
- setConfigIocDepMap(iocMap);
};
const groupConfigAndSet = (parameters: ConfigParametersItem[]) => {
@@ -145,16 +146,20 @@ const System: React.FC = () => {
};
const excuteDepConfig = (itemName: string, formValues: Record) => {
- const targetDep = configIocDepMap[itemName] || {};
+ const targetDep = configIocDepMap?.current?.[itemName];
+ if (!targetDep) {
+ return;
+ }
const excuteStack = Object.values(targetDep);
if (!Array.isArray(excuteStack)) {
return;
}
const tempConfigMap: any = { ...configMap.current };
const currentFormValues = formValues;
- const showStateList: boolean[] = [];
- const hasValueFieldsSetDefaultValueList: any[] = [];
+
excuteStack.forEach((configItem: any) => {
+ const showStateList: boolean[] = [];
+ const hasValueFieldsSetDefaultValueList: any[] = [];
const { dependencies, name: configItemName } = configItem;
dependencies.forEach((item: dependenciesItem) => {
const { name, setDefaultValue } = item;
@@ -170,20 +175,21 @@ const System: React.FC = () => {
});
}
});
+
const visible = showStateList.every((item) => item);
tempConfigMap[configItemName].visible = visible;
+ const lastSetDefaultValueItem =
+ hasValueFieldsSetDefaultValueList[hasValueFieldsSetDefaultValueList.length - 1];
+ const lastSetDefaultValue = lastSetDefaultValueItem?.setDefaultValue;
+
+ if (lastSetDefaultValue) {
+ const targetValue = lastSetDefaultValue[currentFormValues[lastSetDefaultValueItem.name]];
+ if (targetValue) {
+ form.setFieldValue(lastSetDefaultValueItem.excuteItem, targetValue);
+ }
+ }
});
- const lastSetDefaultValueItem =
- hasValueFieldsSetDefaultValueList[hasValueFieldsSetDefaultValueList.length - 1];
- const lastSetDefaultValue = lastSetDefaultValueItem?.setDefaultValue;
-
- if (lastSetDefaultValue) {
- const targetValue = lastSetDefaultValue[currentFormValues[lastSetDefaultValueItem.name]];
- if (targetValue) {
- form.setFieldValue(lastSetDefaultValueItem.excuteItem, targetValue);
- }
- }
groupConfigAndSet(Object.values(tempConfigMap));
};
diff --git a/webapp/packages/supersonic-fe/src/pages/System/types.ts b/webapp/packages/supersonic-fe/src/pages/System/types.ts
index 92d140a4f..9645f82f5 100644
--- a/webapp/packages/supersonic-fe/src/pages/System/types.ts
+++ b/webapp/packages/supersonic-fe/src/pages/System/types.ts
@@ -18,6 +18,17 @@ export type ConfigParametersItem = {
placeholder?: string;
visible?: boolean;
dependencies: dependenciesItem[];
+ sliderConfig?: {
+ start: {
+ text: string;
+ value: number;
+ };
+ end: {
+ text: string;
+ value: number;
+ };
+ unit: number;
+ };
};
export type SystemConfig = {