From 6477d7156272a6f1fe126c781958369bb10970c6 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期六, 21 三月 2026 11:15:50 +0800
Subject: [PATCH] #ai 思维链

---
 rsf-admin/src/i18n/en.js |  509 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 508 insertions(+), 1 deletions(-)

diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index 194a87e..78cc5cb 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -126,6 +126,7 @@
     },
     create: {
         title: 'Create',
+        init: 'Init',
         empty: {
             title: 'Data Empty',
             desc: 'Please Create Data First',
@@ -136,6 +137,7 @@
         title: 'Update'
     },
     menu: {
+        basStationArea: 'BasStationArea',
         dashboard: 'Dashboard',
         settings: 'Settings',
         basicInfo: 'BasicInfo',
@@ -148,6 +150,10 @@
         token: 'Token',
         operation: 'Operation',
         config: 'Config',
+        aiParam: 'AI Params',
+        aiPrompt: 'Prompts',
+        aiMcpMount: 'MCP Mounts',
+        aiCallLog: 'AI Observe',
         tenant: 'Tenant',
         userLogin: 'Token',
         customer: 'Customer',
@@ -157,6 +163,7 @@
         warehouse: 'Warehouse',
         warehouseAreas: 'WarehouseAreas',
         loc: 'Loc',
+        locItem: 'LocItem',
         locType: 'LocType',
         locArea: 'locArea',
         locAreaMat: 'Logic Areas',
@@ -216,10 +223,472 @@
         locDeadReport: 'Locs Dead Report',
         stockStatistic: 'Stock Statistic',
         statisticCount: 'Statistic Count',
-
+        preparation: "澶囨枡鍗�",
+        menuPda: 'MenuPda',
+        taskPathTemplate: 'TaskPathTemplate',
+        taskPathTemplateNode: 'TaskPathTemplateNode',
+        subsystemFlowTemplate: 'SubsystemFlowTemplate',
+        flowStepTemplate: 'FlowStepTemplate',
+        taskPathTemplateMerge: 'TaskPathTemplateMerge',
+        missionFlowStepInstance: 'Mission Flow Steps',
+    },
+    ai: {
+        common: {
+            cancel: "Cancel",
+            close: "Close",
+            save: "Save",
+            new: "New",
+            detail: "Details",
+            delete: "Delete",
+            enabled: "Enabled",
+            disabled: "Disabled",
+            saveSuccess: "Saved successfully",
+            updateSuccess: "Updated successfully",
+            deleteSuccess: "Deleted successfully",
+            deleteFailed: "Delete failed",
+            operationFailed: "Operation failed",
+            confirmDelete: "Delete \"%{name}\"?",
+            none: "None",
+            notValidated: "Not validated",
+            notTested: "Not tested",
+            lastUpdatedBy: "Last updated by",
+            lastUpdatedAt: "Last updated at",
+            target: "Target",
+            lastTest: "Last test",
+            prompt: "Prompt",
+            model: "Model",
+            error: "Error",
+            testing: "Testing...",
+        },
+        runtimeSummary: {
+            fetchFailed: "Failed to load runtime summary",
+            title: "Current Runtime",
+            description: "Shows the active model, prompt, and MCP mounts.",
+            currentModel: "Current Model",
+            validateStatus: "Validate %{status}",
+            currentPrompt: "Current Prompt",
+            lastUpdated: "Last updated: %{time} / %{user}",
+            enabledMcp: "Enabled MCP",
+            enabledMcpCount: "%{count} enabled",
+        },
+        param: {
+            fields: {
+                providerType: "Provider Type",
+                model: "Model",
+                baseUrl: "Base URL",
+                apiKey: "API Key",
+                temperature: "Temperature",
+                topP: "Top P",
+                maxTokens: "Max Tokens",
+                timeoutMs: "Timeout(ms)",
+                streamingEnabled: "Enable Streaming",
+                validateStatus: "Latest Validate Status",
+                lastValidateElapsedMs: "Latest Validate Elapsed(ms)",
+                lastValidateTime: "Latest Validate Time",
+                lastValidateMessage: "Latest Validate Result",
+            },
+            list: {
+                emptyTitle: "No AI parameter configs",
+                emptyDescription: "Create an OpenAI-compatible model card first.",
+                streaming: "Streaming",
+                nonStreaming: "Non-streaming",
+            },
+            dialog: {
+                create: "New AI Parameter",
+                edit: "Edit AI Parameter",
+                show: "View AI Parameter Details",
+            },
+            validate: {
+                success: "AI parameter validation succeeded",
+                failed: "AI parameter validation failed",
+                loading: "Validating...",
+                beforeSave: "Validate Before Save",
+                description: "Validates the current Base URL, API Key, and model directly.",
+            },
+            form: {
+                sections: {
+                    main: "Main Configuration",
+                    runtime: "Runtime and Audit",
+                },
+            },
+        },
+        prompt: {
+            fields: {
+                code: "Code",
+                scene: "Scene",
+                systemPrompt: "System Prompt",
+                userPromptTemplate: "User Prompt Template",
+            },
+            list: {
+                emptyTitle: "No prompt configs",
+                emptyDescription: "Once you create a prompt card, AI chat will load it dynamically.",
+                sceneValue: "Scene: %{value}",
+            },
+            dialog: {
+                create: "New Prompt",
+                edit: "Edit Prompt",
+                show: "View Prompt Details",
+            },
+            preview: {
+                defaultInput: "Please summarize what this page can do",
+                success: "Prompt preview generated",
+                failed: "Prompt preview failed",
+                title: "Prompt Preview",
+                input: "Sample Input",
+                metadata: "Sample Metadata JSON",
+                loading: "Rendering...",
+                render: "Render Preview",
+                description: "Render the System Prompt and User Prompt with the current form values.",
+                resolvedVariables: "Resolved variables: %{value}",
+                renderedSystemPrompt: "Rendered System Prompt",
+                renderedUserPrompt: "Rendered User Prompt",
+            },
+            form: {
+                sections: {
+                    main: "Prompt Configuration",
+                    runtime: "Runtime and Audit",
+                },
+            },
+        },
+        mcp: {
+            fields: {
+                transportType: "Transport Type",
+                builtinCode: "Built-in MCP",
+                serverUrl: "Server URL",
+                endpoint: "SSE Endpoint",
+                headersJson: "Headers JSON",
+                command: "Command",
+                argsJson: "Args JSON",
+                envJson: "Env JSON",
+                requestTimeoutMs: "Timeout(ms)",
+                sort: "Sort",
+                healthStatus: "Health Status",
+                lastInitElapsedMs: "Last Init Elapsed(ms)",
+                lastTestTime: "Last Test Time",
+                lastTestMessage: "Last Test Result",
+            },
+            groups: {
+                builtin: {
+                    title: "Built-in MCP",
+                    description: "Built-in tool mounts for exposing platform capabilities directly.",
+                },
+                sse: {
+                    title: "Remote SSE MCP",
+                    description: "Mount external tools through a remote MCP server.",
+                },
+                stdio: {
+                    title: "Local STDIO MCP",
+                    description: "Mount external MCP tools through a local command process.",
+                },
+            },
+            health: {
+                healthy: "Healthy",
+                unhealthy: "Failed",
+            },
+            list: {
+                emptyTitle: "No MCP mounts",
+                emptyDescription: "Create a built-in MCP, remote SSE mount, or local STDIO mount.",
+                sortValue: "Sort %{value}",
+                timeoutValue: "Timeout %{value} ms",
+                initValue: "Init %{value} ms",
+                noConnectivityTest: "No connectivity test has been run yet",
+                connectivityTest: "Connectivity Test",
+            },
+            dialog: {
+                create: "New MCP Mount",
+                edit: "Edit MCP Mount",
+                show: "View MCP Mount Details",
+            },
+            connectivity: {
+                success: "Connectivity test completed",
+                failed: "Connectivity test failed",
+            },
+            form: {
+                testBeforeSave: "Test Before Save",
+                testDescription: "Validate connectivity directly with the current draft without saving.",
+                sections: {
+                    main: "MCP Mount Configuration",
+                    runtime: "Runtime Info",
+                },
+            },
+            tools: {
+                schemaParseFailed: "Failed to parse input schema: %{message}",
+                loadFailed: "Failed to load tools",
+                inputRequired: "Please enter tool test JSON",
+                testSuccess: "Tool %{name} test completed",
+                testFailed: "Tool test failed",
+                saveBeforePreview: "Save the mount before previewing tools and running tests.",
+                title: "Tool Preview and Test",
+                description: "Supports connectivity checks, structured schema preview, and generated test forms from input parameters.",
+                refresh: "Refresh Tools",
+                noTools: "No tools were resolved for this mount.",
+                connectivityInit: "Init %{value} ms",
+                connectivityToolCount: "Tools %{count}",
+                purpose: "Purpose: %{value}",
+                fieldCount: "%{count} fields",
+                returnDirect: "Return Direct",
+                normal: "Normal",
+                queryBoundary: "Query boundary: %{value}",
+                exampleQuestions: "Example Questions",
+                formattedSchema: "Formatted Input Schema",
+                testInput: "Test Input JSON",
+                testInputPlaceholder: "Example: {\"code\":\"A01\"}",
+                executeTest: "Run Test",
+                testResult: "Test Result",
+            },
+        },
+        observe: {
+            fields: {
+                requestId: "Request ID",
+                promptCode: "Prompt Code",
+                userId: "User ID",
+                sessionId: "Session ID",
+                mountedMcp: "MCP Mounts",
+            },
+            summary: {
+                fetchFailed: "Failed to load AI observe stats",
+                title: "Observe Overview",
+                description: "Statistics for AI chats and MCP tool calls in the current tenant.",
+                callCount: "AI Calls",
+                successFailure: "Success %{success} / Failed %{failure}",
+                avgElapsed: "Average Elapsed",
+                firstToken: "First token %{value} ms",
+                tokenUsage: "Token Usage",
+                avgToken: "Average %{value}",
+                toolSuccessRate: "Tool Success Rate",
+                toolCallFailure: "Calls %{call} / Failed %{failure}",
+            },
+            status: {
+                completed: "Success",
+                failed: "Failed",
+                aborted: "Aborted",
+            },
+            detail: {
+                mcpLogsFailed: "Failed to load MCP call logs",
+                title: "AI Call Details",
+                mcpLogs: "MCP Tool Call Logs",
+                noMcpLogs: "No MCP tool logs were generated for this call.",
+                inputSummary: "Input Summary",
+                outputSummary: "Output Summary / Error",
+            },
+            list: {
+                emptyTitle: "No AI call logs",
+                emptyDescription: "After starting AI chats, statistics and audit records will appear here.",
+                userValue: "User %{value}",
+                elapsedValue: "Elapsed %{value} ms",
+                tokenValue: "Token %{value}",
+                mcpToolCalls: "MCP / Tool Calls",
+                mcpToolSummary: "%{mcp} mounts, %{success} tool successes, %{failure} failures",
+            },
+        },
+        drawer: {
+            title: "AI Chat",
+            runtimeFailed: "Failed to load AI runtime",
+            sessionListFailed: "Failed to load AI sessions",
+            sessionDeleted: "Session deleted",
+            deleteSessionFailed: "Failed to delete AI session",
+            pinned: "Session pinned",
+            unpinned: "Session unpinned",
+            pinFailed: "Failed to update session pin state",
+            renamed: "Session renamed",
+            renameFailed: "Failed to rename session",
+            memoryCleared: "Session memory cleared",
+            clearMemoryFailed: "Failed to clear session memory",
+            retainLatestRoundSuccess: "Only the latest round was kept",
+            retainLatestRoundFailed: "Failed to keep only the latest round",
+            stopSuccess: "Current output stopped",
+            chatFailed: "AI chat failed",
+            newSession: "New Session",
+            sessionList: "Sessions",
+            searchPlaceholder: "Search session titles",
+            noSessions: "No history sessions",
+            sessionTitle: "Session %{id}",
+            pinAction: "Pin session",
+            unpinAction: "Unpin session",
+            renameAction: "Rename session",
+            deleteAction: "Delete session",
+            toolTrace: "Tool Trace",
+            thinkingProcess: "Thinking Process",
+            thinkingExpand: "Show Thinking Process",
+            thinkingCollapse: "Hide Thinking Process",
+            thinkingEmpty: "Organizing the current stage information...",
+            thinkingStatusStarted: "Started",
+            thinkingStatusUpdated: "In Progress",
+            thinkingStatusCompleted: "Completed",
+            thinkingStatusFailed: "Failed",
+            thinkingStatusAborted: "Aborted",
+            noToolTrace: "No tool call was triggered in this round",
+            unknownTool: "Unknown tool",
+            toolStatusFailed: "Failed",
+            toolStatusCompleted: "Completed",
+            toolStatusRunning: "Running",
+            collapseDetail: "Hide Details",
+            viewDetail: "View Details",
+            toolInput: "Input: %{value}",
+            toolOutput: "Output summary: %{value}",
+            toolError: "Error: %{value}",
+            hasSummary: "Summary",
+            noSummary: "No Summary",
+            hasFacts: "Facts",
+            noFacts: "No Facts",
+            retainLatestRound: "Keep Latest Round",
+            clearMemory: "Clear Memory",
+            loadingRuntime: "Loading AI runtime info...",
+            emptyHint: "AI responses stream back through SSE here. You can also maintain parameters, prompts, and MCP mounts from the quick links above.",
+            userRole: "You",
+            assistantRole: "AI",
+            thinking: "Thinking...",
+            inputPlaceholder: "Type your question. Press Enter to send, Shift + Enter for a new line",
+            clearInput: "Clear Input",
+            stop: "Stop",
+            send: "Send",
+            renameDialogTitle: "Rename Session",
+            sessionTitleField: "Session Title",
+            requestMetric: "Req: %{value}",
+            sessionMetric: "Session: %{id}",
+            promptMetric: "Prompt: %{value}",
+            modelMetric: "Model: %{value}",
+            mcpMetric: "MCP: %{value}",
+            historyMetric: "History: %{value}",
+            recentMetric: "Recent: %{value}",
+            elapsedMetric: "Elapsed: %{value} ms",
+            firstTokenMetric: "First token: %{value} ms",
+            tokenMetric: "Tokens: prompt %{prompt} / completion %{completion} / total %{total}",
+        },
     },
     table: {
         field: {
+            basStationArea: {
+                type: "type",
+                stationAreaName: "stationAreaName",
+                inAble: "inAble",
+                outAble: "outAble",
+                useStatus: "useStatus",
+                area: "area",
+                isCrossZone: "isCrossZone",
+                crossZoneArea: "crossZoneArea",
+                isWcs: "isWcs",
+                wcsData: "wcsData",
+                containerType: "containerType",
+                barcode: "barcode",
+                autoTransfer: "autoTransfer",
+                stationAreaId: "stationAreaId",
+                stationAlias: "stationAlias",
+            },
+            taskPathTemplateMerge: {
+                templateCode: "templateCode",
+                templateName: "templateName",
+                sourceType: "sourceType",
+                targetType: "targetType",
+                conditionExpression: "conditionExpression",
+                conditionDesc: "conditionDesc",
+                version: "version",
+                isCurrent: "isCurrent",
+                effectiveTime: "effectiveTime",
+                expireTime: "expireTime",
+                priority: "priority",
+                timeoutMinutes: "timeoutMinutes",
+                maxRetryTimes: "maxRetryTimes",
+                retryIntervalSeconds: "retryIntervalSeconds",
+                remark: "remark",
+                stepSize: "stepSize",
+            },
+            flowStepTemplate: {
+                flowId: "flowId",
+                flowCode: "flowCode",
+                stepOrder: "stepOrder",
+                stepCode: "stepCode",
+                stepName: "stepName",
+                stepType: "stepType",
+                actionType: "actionType",
+                actionConfig: "actionConfig",
+                inputMapping: "inputMapping",
+                outputMapping: "outputMapping",
+                conditionExpression: "conditionExpression",
+                skipOnFail: "skipOnFail",
+                retryEnabled: "retryEnabled",
+                retryConfig: "retryConfig",
+                timeoutSeconds: "timeoutSeconds",
+            },
+            flowStepInstance: {
+                flowInstanceId: "Flow Instance ID",
+                flowInstanceNo: "Flow Instance No",
+                stepTemplateId: "Step Template ID",
+                errorCode: "Error Code",
+                errorMessage: "Error Message",
+                startTime: "Start Time",
+                endTime: "End Time",
+                durationSeconds: "Duration(s)",
+                inputData: "Input Data",
+                outputData: "Output Data",
+                retryTimes: "Retry Times",
+                id: "ID",
+                stepOrder: "Step Order",
+                stepCode: "Step Code",
+                stepName: "Step Name",
+                stepType: "Step Type",
+                status: "Status",
+                executeResult: "Execute Result",
+                taskNo: "Task No",
+                createTime: "Create Time",
+                wmsNextTaskStatus: "WMS Next Task Status",
+                wmsNowTaskStatus: "WMS Now Task Status",
+            },
+            subsystemFlowTemplate: {
+                flowCode: "flowCode",
+                flowName: "flowName",
+                systemCode: "systemCode",
+                systemName: "systemName",
+                nodeType: "nodeType",
+                version: "version",
+                isCurrent: "isCurrent",
+                effectiveTime: "effectiveTime",
+                timeoutStrategy: "timeoutStrategy",
+                timeoutSeconds: "timeoutSeconds",
+                maxRetryTimes: "maxRetryTimes",
+                needNotify: "needNotify",
+                notifyTemplate: "notifyTemplate",
+                remark: "remark",
+            },
+            taskPathTemplateNode: {
+                templateId: "templateId",
+                templateCode: "templateCode",
+                nodeOrder: "nodeOrder",
+                nodeCode: "nodeCode",
+                nodeName: "nodeName",
+                nodeType: "nodeType",
+                systemCode: "systemCode",
+                systemName: "systemName",
+                executeParams: "executeParams",
+                resultSchema: "resultSchema",
+                timeoutMinutes: "timeoutMinutes",
+                mandatory: "mandatory",
+                parallelExecutable: "parallelExecutable",
+                preCondition: "preCondition",
+                postCondition: "postCondition",
+                nextNodeRules: "nextNodeRules",
+            },
+            taskPathTemplate: {
+                templateCode: "templateCode",
+                templateName: "templateName",
+                sourceType: "sourceType",
+                targetType: "targetType",
+                conditionExpression: "conditionExpression",
+                conditionDesc: "conditionDesc",
+                version: "version",
+                isCurrent: "isCurrent",
+                effectiveTime: "effectiveTime",
+                expireTime: "expireTime",
+                priority: "priority",
+                timeoutMinutes: "timeoutMinutes",
+                maxRetryTimes: "maxRetryTimes",
+                retryIntervalSeconds: "retryIntervalSeconds",
+                remark: "remark",
+                createdBy: "createdBy",
+                updatedBy: "updatedBy",
+                createdTime: "createdTime",
+                updatedTime: "updatedTime",
+            },
             outBound: {
                 stockWithdrawal: 'StockWithdrawal',
                 withdrawal: 'Withdrawal'
@@ -227,10 +696,14 @@
             basContainer: {
                 containerType: 'containerType',
                 codeType: 'codeType',
+                startNo: 'Start No',
+                code: 'Barcode',
+                endNo: 'End No',
                 areas: 'areas',
             },
             basStation: {
                 stationName: 'stationName',
+                stationId: 'stationId',
                 inAble: 'inAble',
                 outAble: 'outAble',
                 type: 'Site Type',
@@ -287,6 +760,26 @@
                 sort: "sort",
             },
             menu: {
+                name: "name",
+                parentId: "parent id",
+                parentName: "higher",
+                path: "path",
+                pathName: "pathName",
+                route: "route",
+                component: "component",
+                brief: "brief",
+                code: "code",
+                type: "type",
+                authority: "authority",
+                icon: "icon",
+                sort: "sort",
+                meta: "meta",
+                enums: {
+                    menu: 'Menu',
+                    button: 'Button',
+                }
+            },
+            menuPda: {
                 name: "name",
                 parentId: "parent id",
                 parentName: "higher",
@@ -377,6 +870,7 @@
                 valid: "validity",
                 validWarn: "validityWarn",
                 flagCheck: "flagCheck",
+                tenantId: "tenantId",
             },
             matnrGroup: {
                 name: "name",
@@ -400,6 +894,7 @@
                 name: "name",
                 wareId: "ware",
                 code: "code",
+                sort: "Sort",
                 shipperId: "shipperId",
                 supplierId: "supplierId",
                 flagMinus: "flagMinus",
@@ -916,6 +1411,8 @@
                 deviceSite: "deviceSite",
                 flagInit: "flagInit",
                 channel: "channel",
+                areaIdStart: "areaIdStart",
+                areaIdEnd: "areaIdEnd",
             },
             waitPakin: {
                 code: "code",
@@ -942,6 +1439,8 @@
             },
             waitPakinItem: {
                 pakinId: "pakinId",
+                type: "type",
+                wkType: "wkType",
                 maktx: "maktx",
                 matnrId: "matnrId",
                 matnrCode: "matnrCode",
@@ -1310,13 +1809,16 @@
         detail: "Detail",
         unenable: 'unenable',
         locInit: 'loc init',
+        init: "Init",
         siteInit: 'site init',
+        pathInit: 'Path init',
         batch: 'batch',
         pick: 'Pick',
         check: 'Check',
         confirm: 'confirm',
         cancel: "cancel",
         delete: 'Delete',
+        copy: 'copy',
         query: "Query",
         bulkExport: "Bulk Export",
         continue: 'Continue Receipt',
@@ -1357,8 +1859,13 @@
         order: 'Orders',
         modiftySite: 'Modify SiteNo',
         selectWave: 'Select Wave Rule',
+        flowStep: "Flow Step",
+        jumpCurrent: "Jump To Current",
 
     },
+    placeholder: {
+        warehouseAreasCode: "use for warehouse areas code prefix",
+    },
     request: {
         error: {
             stock: "Insufficient inventory to deliver 锛侊紒",

--
Gitblit v1.9.1