diff --git a/frontend/src/mock/mock-seed/data-cleansing.cjs b/frontend/src/mock/mock-seed/data-cleansing.cjs index 4161891..74d5c83 100644 --- a/frontend/src/mock/mock-seed/data-cleansing.cjs +++ b/frontend/src/mock/mock-seed/data-cleansing.cjs @@ -10,6 +10,7 @@ function operatorItem() { inputs: Mock.Random.integer(1, 5), outputs: Mock.Random.integer(1, 5), settings: JSON.stringify({ + host: { type: "input", name: "主机地址", defaultVal: "localhost" }, fileLength: { name: "文档字数", description: @@ -20,14 +21,28 @@ function operatorItem() { max: 10000000000000000, step: 1, }, - host: { type: "input", name: "主机地址", defaultVal: "localhost" }, - limit: { + range: { type: "range", name: "读取行数", - defaultVal: [1000, 2000], - min: 100, - max: 10000, - step: 100, + description: "某个词的统计数/文档总词数 > 设定值,该文档被去除。", + properties: [ + { + name: "起始行", + type: "inputNumber", + defaultVal: 1000, + min: 100, + max: 10000, + step: 1, + }, + { + name: "结束行", + type: "inputNumber", + defaultVal: 2000, + min: 100, + max: 10000, + step: 1, + }, + ], }, filepath: { type: "input", name: "文件路径", defaultVal: "/path" }, encoding: { @@ -428,7 +443,7 @@ module.exports = function (router) { const { id } = req.params; const operator = operatorList.find((op) => op.id === id); console.log("获取算子详情:", id, operator); - + if (operator) { // 增加浏览次数模拟 operator.viewCount = (operator.viewCount || 0) + 1; diff --git a/frontend/src/pages/DataCleansing/Create/components/ParamConfig.tsx b/frontend/src/pages/DataCleansing/Create/components/ParamConfig.tsx index 30f5c87..93a44d8 100644 --- a/frontend/src/pages/DataCleansing/Create/components/ParamConfig.tsx +++ b/frontend/src/pages/DataCleansing/Create/components/ParamConfig.tsx @@ -25,7 +25,17 @@ const ParamConfig: React.FC = ({ onParamChange, }) => { if (!param) return null; - const [value, setValue] = React.useState(param.value || param.defaultVal); + let defaultVal: any = param.defaultVal; + if (param.type === "range") { + + defaultVal = Array.isArray(param.defaultVal) + ? param.defaultVal + : [ + param?.properties?.[0]?.defaultVal, + param?.properties?.[1]?.defaultVal, + ]; + } + const [value, setValue] = React.useState(param.value || defaultVal); const updateValue = (newValue: any) => { setValue(newValue); return onParamChange && onParamChange(operator.id, paramKey, newValue); @@ -139,8 +149,9 @@ const ParamConfig: React.FC = ({ ); case "range": { - const min = param.min || 0; - const max = param.max || 100; + const min = param.min || param?.properties?.[0]?.min || 0; + const max = param.max || param?.properties?.[0]?.max || 1; + const step = param.step || param?.properties?.[0]?.step || 0.1; return ( = ({ } range min={min} - max={max} - step={param.step || 1} + max={max } + step={step} className="w-full" />