Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ src/
│ ├── Overview/ # 项目概览与监控
│ ├── Member/ # 成员与角色管理
│ ├── Settings/ # 系统设置
│ ├── Functions/ # 云函数管理(创建、编辑、部署)
│ ├── Functions/ # 边缘函数管理(创建、编辑、部署)
├── services/ # API 请求封装
├── store/ # Redux & Zustand 状态管理
├── hooks/ # 自定义 Hooks
Expand Down
61 changes: 33 additions & 28 deletions src/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
"output_script_switch": "Enable output script"
}
},
"api": "API",
"open_api": "OpenAPI",
"open_api_try_it_out": "Try It Out",
"api_log": "API Log",
Expand Down Expand Up @@ -139,16 +138,15 @@
"perm_group_data": "Data Query",
"perm_group_flow": "Service Orchestration",
"perm_group_scheduling": "Task Scheduling",
"perm_group_function": "Cloud Function",
"perm_group_storage": "Object Storage",
"perm_op_view": "View",
"perm_op_create": "Create",
"perm_op_update": "Update",
"perm_op_delete": "Delete",
"perm_op_execute": "Execute",
"script": "Script",
"function": "Cloud Function",
"function_tooltip": "Select a cloud function for authentication. The function returning HTTP 200 means auth success.",
"function": "Edge Function",
"function_tooltip": "Select a Edge Function for authentication. The function returning HTTP 200 means auth success.",
"function_required": "Please select an auth function",
"step_select_type": "Select Type",
"step_configure": "Configure",
Expand Down Expand Up @@ -216,14 +214,12 @@
"upload_hint": "Support single or batch upload. Do not upload company data or other sensitive information",
"download": "Download",
"download_file": "Downloading file: {{name}}",
"delete": "Delete",
"delete_confirm": "Confirm Delete",
"delete_file_confirm_desc": "Are you sure you want to delete file {{name}}?",
"delete_file_success": "File deleted successfully",
"delete_file_failed": "Failed to delete file",
"create_folder": "Create Folder",
"folder_name_placeholder": "Please enter folder name",
"folder_name_required": "Please enter folder name",
"create_folder_success": "Folder created successfully",
"create_folder_failed": "Failed to create folder",
"batch_delete": "Batch Delete",
Expand Down Expand Up @@ -289,7 +285,6 @@
"enter_fml_code": "Please enter FML code",
"model_created_success": "Model created successfully",
"model_creation_failed": "Failed to create model, please check FML syntax",
"name": "Name",
"fml": {
"model_definition": "Define a new model",
"enum_definition": "Define a new enum",
Expand Down Expand Up @@ -324,13 +319,9 @@
"identity_field": "Identity Field",
"index": "Index",
"record": "Record",
"type": "Type",
"unique": "Unique",
"nullable": "Nullable",
"comment": "Comment",
"operations": "Operations",
"yes": "Yes",
"no": "No",
"table_selection_delete_text": "Are you sure to delete this?",
"new_field": "New Field",
"search_fields": "Search Fields",
Expand Down Expand Up @@ -431,7 +422,6 @@
"query": "Query",
"mutation": "Mutation",
"subscription": "Subscription",
"datasource": "Data Source",
"today": "Today",
"week": "Week",
"month": "Month",
Expand Down Expand Up @@ -576,9 +566,9 @@
"create_model_failed": "Failed to create model",
"cleanup_graph_error": "Error cleaning up graph instance",
"cleanup_graph_error_unmount": "Error cleaning up graph instance on component unmount",
"chinese": "Chinese",
"chinese": "中文",
"english": "English",
"refresh_tab": "Refresh tab",
"refresh_tab": "Refresh Tab",
"project": {
"searchPlaceholder": "Search for a project...",
"create": "New project",
Expand Down Expand Up @@ -620,15 +610,6 @@
"cancel": "Cancel",
"create": "Create"
},
"get_datasource_list_failed_desc": "Please check network connection or contact administrator",
"get_model_list_failed": "Failed to get model list",
"get_model_list_failed_desc": "Please check datasource connection or contact administrator",
"create_model_failed": "Failed to create model",
"cleanup_graph_error": "Error cleaning up graph instance",
"cleanup_graph_error_unmount": "Error cleaning up graph instance on component unmount",
"chinese": "中文",
"english": "English",
"refresh_tab": "Refresh Tab",
"explore": {
"download": "Download",
"copy": "Copy",
Expand Down Expand Up @@ -718,7 +699,7 @@
"time_range": "Time Range",
"select_job_type": "Please select job type",
"select_job_name": "Please select job name",
"job_type_function": "Cloud Function",
"job_type_function": "Edge Function",
"execute_success": "Execute successfully",
"execute_failed": "Execute failed",
"execute": "Execute Now"
Expand All @@ -730,7 +711,6 @@
"update": "Update",
"update_success": "Update successful",
"update_failed": "Update failed",
"delete_confirm": "Confirm Delete",
"active": "Active",
"inactive": "Inactive",
"cpu_usage": "CPU Usage",
Expand Down Expand Up @@ -916,7 +896,7 @@
"mcp_modeling_tools_desc": "list_models · get_model · create_entity_model · create_enum_model · delete_model · execute_fml",
"mcp_data_tools": "Data Operation Tools (5)",
"mcp_data_tools_desc": "query_records · get_record · create_record · update_record · delete_record",
"mcp_function_tools": "Cloud Function Tools (6)",
"mcp_function_tools": "Edge Function Tools (6)",
"mcp_function_tools_desc": "list_function_templates · list_functions · get_function · deploy_function · invoke_function · delete_function",
"mcp_config_title": "Client Configuration Example",
"mcp_config_subtitle": "Claude Desktop / Cursor / Qoder",
Expand Down Expand Up @@ -1030,7 +1010,7 @@
"active": "Active",
"deleteConfirm": "Are you sure to delete branch {{name}}? This action cannot be undone."
},
"function.title": "Cloud Functions",
"function.title": "Edge Functions",
"function.create": "Create Function",
"function.edit": "Edit Function",
"function.detail": "Function Detail",
Expand Down Expand Up @@ -1088,5 +1068,30 @@
"function.templateApplied": "Template applied",
"function.templateApplyFailed": "Failed to apply template",
"function.renameFile": "Rename",
"function.settings": "Settings"
"function.settings": "Settings",
"pages.title": "Pages",
"pages.siteUrl": "Site URL",
"pages.currentDeployment": "Current Deployment",
"pages.status": "Status",
"pages.deploymentId": "Deployment ID",
"pages.fileCount": "Files",
"pages.sizeBytes": "Size",
"pages.errorMessage": "Error",
"pages.noDeployment": "No deployment yet",
"pages.deploy": "Deploy",
"pages.uploadZip": "Upload ZIP to Deploy",
"pages.uploadHint": "Upload a ZIP containing static files, will be deployed to production automatically",
"pages.deploying": "Deploying...",
"pages.deploySuccess": "Deployed successfully",
"pages.deployFailed": "Failed to deploy",
"pages.loadFailed": "Failed to load site info",
"pages.rollback": "Rollback",
"pages.rollbackHint": "Re-point to current production deployment (refresh symlink)",
"pages.rollbackConfirm": "Confirm refresh production deployment?",
"pages.refreshProduction": "Refresh production",
"pages.setProductionSuccess": "Switched to specified deployment",
"pages.setProductionFailed": "Failed to switch deployment",
"pages.preview": "Preview",
"pages.refreshPreview": "Refresh",
"pages.openInNewTab": "Open in new tab"
}
50 changes: 32 additions & 18 deletions src/locales/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
"output_script_switch": "启用输出脚本"
}
},
"api": "接口",
"open_api": "OpenAPI",
"open_api_try_it_out": "新窗口打开",
"api_log": "接口日志",
Expand Down Expand Up @@ -139,16 +138,15 @@
"perm_group_data": "数据查询",
"perm_group_flow": "服务编排",
"perm_group_scheduling": "任务调度",
"perm_group_function": "云函数",
"perm_group_storage": "对象存储",
"perm_op_view": "查看",
"perm_op_create": "创建",
"perm_op_update": "更新",
"perm_op_delete": "删除",
"perm_op_execute": "执行",
"script": "脚本",
"function": "云函数",
"function_tooltip": "选择用于认证的云函数,函数返回 HTTP 200 即认证成功",
"function": "边缘函数",
"function_tooltip": "选择用于认证的边缘函数,函数返回 HTTP 200 即认证成功",
"function_required": "请选择认证函数",
"step_select_type": "选择类型",
"step_configure": "配置",
Expand Down Expand Up @@ -178,7 +176,7 @@
"select_your_log_level": "请选择日志级别",
"date_range": "日期范围",
"load_more": "加载更多",
"datasource": "数据源管理",
"datasource": "数据源",
"storage": "对象存储",
"storage_provider": "存储后端",
"bucket": "Bucket",
Expand Down Expand Up @@ -216,14 +214,12 @@
"upload_hint": "支持单个或批量上传,严禁上传公司数据或其他敏感信息",
"download": "下载",
"download_file": "正在下载文件: {{name}}",
"delete": "删除",
"delete_confirm": "确认删除",
"delete_file_confirm_desc": "确定要删除文件 {{name}} 吗?",
"delete_file_success": "删除文件成功",
"delete_file_failed": "删除文件失败",
"create_folder": "新建文件夹",
"folder_name_placeholder": "请输入文件夹名称",
"folder_name_required": "请输入文件夹名称",
"create_folder_success": "创建文件夹成功",
"create_folder_failed": "创建文件夹失败",
"batch_delete": "批量删除",
Expand Down Expand Up @@ -289,7 +285,6 @@
"enter_fml_code": "请输入FML代码",
"model_created_success": "模型创建成功",
"model_creation_failed": "创建模型失败,请检查FML语法",
"name": "名称",
"fml": {
"model_definition": "定义一个新的模型",
"enum_definition": "定义一个新的枚举",
Expand Down Expand Up @@ -324,13 +319,9 @@
"identity_field": "主键字段",
"index": "索引",
"record": "记录",
"type": "类型",
"unique": "唯一值",
"nullable": "可为空",
"comment": "注释",
"operations": "操作项",
"yes": "是",
"no": "否",
"table_selection_delete_text": "确定删除此项?",
"new_field": "新建字段",
"search_fields": "搜索字段",
Expand Down Expand Up @@ -431,7 +422,6 @@
"query": "查询",
"mutation": "变更",
"subscription": "订阅",
"datasource": "数据源",
"today": "今日",
"week": "本周",
"month": "本月",
Expand Down Expand Up @@ -672,7 +662,7 @@
"time_range": "时间范围",
"select_job_type": "请选择任务类型",
"select_job_name": "请选择任务名称",
"job_type_function": "云函数",
"job_type_function": "边缘函数",
"execute_success": "执行成功",
"execute_failed": "执行失败",
"execute": "立即执行"
Expand All @@ -684,7 +674,6 @@
"update": "更新",
"update_success": "更新成功",
"update_failed": "更新失败",
"delete_confirm": "确认删除",
"active": "启用",
"inactive": "禁用",
"cpu_usage": "CPU使用率",
Expand Down Expand Up @@ -869,7 +858,7 @@
"mcp_modeling_tools_desc": "list_models · get_model · create_entity_model · create_enum_model · delete_model · execute_fml",
"mcp_data_tools": "数据操作工具(5 个)",
"mcp_data_tools_desc": "query_records · get_record · create_record · update_record · delete_record",
"mcp_function_tools": "云函数工具(6 个)",
"mcp_function_tools": "边缘函数工具(6 个)",
"mcp_function_tools_desc": "list_function_templates · list_functions · get_function · deploy_function · invoke_function · delete_function",
"mcp_config_title": "客户端配置示例",
"mcp_config_subtitle": "Claude Desktop / Cursor / Qoder",
Expand Down Expand Up @@ -1024,7 +1013,7 @@
"active": "活跃",
"deleteConfirm": "确定删除分支 {{name}} 吗?此操作不可恢复。"
},
"function.title": "云函数",
"function.title": "边缘函数",
"function.create": "创建函数",
"function.edit": "编辑函数",
"function.detail": "函数详情",
Expand Down Expand Up @@ -1082,5 +1071,30 @@
"function.templateApplied": "模板已应用",
"function.templateApplyFailed": "模板应用失败",
"function.renameFile": "重命名",
"function.settings": "设置"
"function.settings": "设置",
"pages.title": "页面",
"pages.siteUrl": "站点地址",
"pages.currentDeployment": "当前部署",
"pages.status": "状态",
"pages.deploymentId": "部署 ID",
"pages.fileCount": "文件数",
"pages.sizeBytes": "大小",
"pages.errorMessage": "错误信息",
"pages.noDeployment": "暂无部署",
"pages.deploy": "部署",
"pages.uploadZip": "上传 ZIP 部署",
"pages.uploadHint": "上传包含静态文件的 ZIP 包,将自动部署到 production",
"pages.deploying": "正在部署...",
"pages.deploySuccess": "部署成功",
"pages.deployFailed": "部署失败",
"pages.loadFailed": "加载站点信息失败",
"pages.rollback": "回滚",
"pages.rollbackHint": "重新指向当前 production 部署(刷新软链)",
"pages.rollbackConfirm": "确认刷新 production 部署?",
"pages.refreshProduction": "刷新 production",
"pages.setProductionSuccess": "已切换到指定部署",
"pages.setProductionFailed": "切换部署失败",
"pages.preview": "页面预览",
"pages.refreshPreview": "刷新",
"pages.openInNewTab": "新窗口打开"
}
1 change: 1 addition & 0 deletions src/main.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import {StrictMode} from "react";
import {createRoot} from "react-dom/client";
import App from "./App";
import "./utils/monaco-loader"; // 预加载 Monaco Editor(使用本地包替代 CDN)
import "./i18n";
import "./assets/css/fonts.css";
import "./theme/designSystem.css";
Expand Down
2 changes: 2 additions & 0 deletions src/pages/APILog/components/ApiLogChart.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from "react";
import ReactECharts from "echarts-for-react";
import echarts from '@/utils/echarts';

interface ApiLogChartProps {
chartData: {
Expand Down Expand Up @@ -109,6 +110,7 @@ const ApiLogChart: React.FC<ApiLogChartProps> = ({
return (
<div style={{ height, width }}>
<ReactECharts
echarts={echarts}
option={getChartOption()}
style={{ height: '100%', width: '100%' }}
/>
Expand Down
1 change: 0 additions & 1 deletion src/pages/Authentication/permissionScope.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ export const PERM_GROUPS: PermGroup[] = [
{key: "data", perModel: true, ops: ["view", "create", "update", "delete"]},
{key: "flow", perModel: false, ops: ["view", "execute"]},
{key: "scheduling", perModel: false, ops: ["view", "execute"]},
{key: "function", perModel: false, ops: ["view", "execute"]},
{key: "storage", perModel: false, ops: ["view", "create", "update", "delete"]},
];

Expand Down
Loading
Loading