From d136bad38c12fdf1f693c5d4d133641f02258dc0 Mon Sep 17 00:00:00 2001 From: chenghh-9609 <55340429+chenghh-9609@users.noreply.github.com> Date: Fri, 7 Nov 2025 11:32:20 +0800 Subject: [PATCH] feat: Enhance parameter configuration for range inputs (#62) * feat: Update site name to DataMate and refine text for AI data processing * feat: Refactor settings page and implement model access functionality - Created a new ModelAccess component for managing model configurations. - Removed the old Settings component and replaced it with a new SettingsPage component that integrates ModelAccess, SystemConfig, and WebhookConfig. - Added SystemConfig component for managing system settings. - Implemented WebhookConfig component for managing webhook configurations. - Updated API functions for model management in settings.apis.ts. - Adjusted routing to point to the new SettingsPage component. * feat: Implement Data Collection Page with Task Management and Execution Log - Created DataCollectionPage component to manage data collection tasks. - Added TaskManagement and ExecutionLog components for task handling and logging. - Integrated task operations including start, stop, edit, and delete functionalities. - Implemented filtering and searching capabilities in task management. - Introduced SimpleCronScheduler for scheduling tasks with cron expressions. - Updated CreateTask component to utilize new scheduling and template features. - Enhanced BasicInformation component to conditionally render fields based on visibility settings. - Refactored ImportConfiguration component to remove NAS import section. * feat: Update task creation API endpoint and enhance task creation form with new fields and validation * Refactor file upload and operator management components - Removed unnecessary console logs from file download and export functions. - Added size property to TaskItem interface for better task management. - Simplified TaskUpload component by utilizing useFileSliceUpload hook for file upload logic. - Enhanced OperatorPluginCreate component to handle file uploads and parsing more efficiently. - Updated ConfigureStep component to use Ant Design Form for better data handling and validation. - Improved PreviewStep component to navigate back to the operator market. - Added support for additional file types in UploadStep component. - Implemented delete operator functionality in OperatorMarketPage with confirmation prompts. - Cleaned up unused API functions in operator.api.ts to streamline the codebase. - Fixed number formatting utility to handle zero values correctly. * Refactor Knowledge Generation to Knowledge Base - Created new API service for Knowledge Base operations including querying, creating, updating, and deleting knowledge bases and files. - Added constants for Knowledge Base status and type mappings. - Defined models for Knowledge Base and related files. - Removed obsolete Knowledge Base creation and home components, replacing them with new implementations under the Knowledge Base structure. - Updated routing to reflect the new Knowledge Base paths. - Adjusted menu items to align with the new Knowledge Base terminology. - Modified ModelAccess interface to include modelName and type properties. * feat: Implement Knowledge Base Page with CRUD operations and data management - Added KnowledgeBasePage component for displaying and managing knowledge bases. - Integrated search and filter functionalities with SearchControls component. - Implemented CreateKnowledgeBase component for creating and editing knowledge bases. - Enhanced AddDataDialog for file uploads and dataset selections. - Introduced TableTransfer component for managing data transfers between tables. - Updated API functions for knowledge base operations, including file management. - Refactored knowledge base model to include file status and metadata. - Adjusted routing to point to the new KnowledgeBasePage. * feat: enhance OperatorPluginCreate and ConfigureStep for better upload handling and UI updates * refactor: remove unused components and clean up API logging in KnowledgeBase * feat: update icons in various components and improve styling for better UI consistency * fix: adjust upload step handling and improve error display in configuration step * feat: Add RatioTransfer component for dataset selection and configuration - Implemented RatioTransfer component to manage dataset selection and ratio configuration. - Integrated dataset fetching with search and filter capabilities. - Added RatioConfig component for displaying and updating selected datasets' configurations. - Enhanced SelectDataset component with improved UI and functionality for dataset selection. - Updated RatioTasksPage to utilize new ratio task status mapping and improved error handling for task deletion. - Refactored ratio model and constants for better type safety and clarity. - Changed Vite configuration to use local backend service for development. * feat: Add .editorconfig and enhance SystemConfig with table for settings display * feat: Enhance parameter configuration for range inputs and update default values --- .../src/mock/mock-seed/data-cleansing.cjs | 29 ++++++++++++++----- .../Create/components/ParamConfig.tsx | 21 ++++++++++---- 2 files changed, 38 insertions(+), 12 deletions(-) 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" />