feat(变量节点): 添加变量赋值类型定义并优化节点菜单

refactor: 简化json-schema类型导入
chore: 更新依赖并调整tsconfig配置
This commit is contained in:
2025-09-15 01:07:54 +08:00
parent b0963e5e37
commit 17de176609
6 changed files with 29 additions and 7 deletions

View File

@ -12,13 +12,13 @@
"@ant-design/icons": "^5.4.0",
"@douyinfe/semi-icons": "^2.80.0",
"@douyinfe/semi-ui": "^2.80.0",
"@flowgram.ai/form-materials": "^0.4.7",
"@flowgram.ai/free-container-plugin": "^0.4.7",
"@flowgram.ai/free-group-plugin": "^0.4.7",
"@flowgram.ai/free-layout-editor": "^0.4.7",
"@flowgram.ai/free-lines-plugin": "^0.4.7",
"@flowgram.ai/free-node-panel-plugin": "^0.4.7",
"@flowgram.ai/free-snap-plugin": "^0.4.7",
"@flowgram.ai/form-materials": "^0.4.7",
"@flowgram.ai/minimap-plugin": "^0.4.7",
"@flowgram.ai/runtime-interface": "^0.4.7",
"@flowgram.ai/runtime-js": "^0.4.7",
@ -36,12 +36,17 @@
"styled-components": "^5.3.11"
},
"devDependencies": {
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-decorators": "^7.28.0",
"@babel/plugin-proposal-private-methods": "^7.18.6",
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@types/js-yaml": "^4.0.9",
"@types/lodash-es": "^4.17.12",
"@types/react": "^18.3.24",
"@types/react-dom": "^18.3.7",
"@types/styled-components": "^5.1.34",
"@vitejs/plugin-react": "^4.2.0",
"babel-plugin-transform-typescript-metadata": "^0.3.2",
"less": "^4.2.0",
"typescript": "^5.4.0",
"vite": "^5.2.0"

View File

@ -23,7 +23,7 @@ import { CopyShortcut } from '../../shortcuts/copy';
interface NodeMenuProps {
node: WorkflowNodeEntity;
updateTitleEdit: (setEditing: boolean) => void;
updateTitleEdit?: (setEditing: boolean) => void;
deleteNode: () => void;
}
@ -84,7 +84,7 @@ export const NodeMenu: FC<NodeMenuProps> = ({ node, deleteNode, updateTitleEdit
[clientContext, node]
);
const handleEditTitle = useCallback(() => {
updateTitleEdit(true);
updateTitleEdit?.(true);
}, [updateTitleEdit]);
if (!visible) {
@ -97,7 +97,9 @@ export const NodeMenu: FC<NodeMenuProps> = ({ node, deleteNode, updateTitleEdit
position="bottomRight"
render={
<Dropdown.Menu>
<Dropdown.Item onClick={handleEditTitle}>{I18n.t('Edit Title')}</Dropdown.Item>
{updateTitleEdit && (
<Dropdown.Item onClick={handleEditTitle}>{I18n.t('Edit Title')}</Dropdown.Item>
)}
{canMoveOut && <Dropdown.Item onClick={handleMoveOut}>{I18n.t('Move out')}</Dropdown.Item>}
<Dropdown.Item onClick={handleCopy}>{I18n.t('Create Copy')}</Dropdown.Item>
<Dropdown.Item type="danger" onClick={handleDelete}>{I18n.t('Delete')}</Dropdown.Item>

View File

@ -6,6 +6,20 @@
import { FlowNodeJSON } from '@flowgram.ai/free-layout-editor';
import { IFlowValue, IJsonSchema } from '@flowgram.ai/form-materials';
// Minimal assign value type for variable node, inferred from initial data in registry
// 两类操作declare声明变量与 assign赋值已有变量
export type AssignValueType =
| {
operator: 'declare';
left: string; // variable name - 变量名
right: IFlowValue; // value - 值
}
| {
operator: 'assign';
left: string; // existing variable - 已有变量
right: IFlowValue; // value - 值
};
export interface VariableNodeJSON extends FlowNodeJSON {
data: {
title: string;

View File

@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
*/
import type { IJsonSchema, IBasicJsonSchema } from '@flowgram.ai/form-materials';
import type { IJsonSchema } from '@flowgram.ai/form-materials';
export type BasicType = IBasicJsonSchema;
export type BasicType = IJsonSchema;
export type JsonSchema = IJsonSchema;

View File

@ -13,6 +13,7 @@
"noEmit": true,
"jsx": "react-jsx",
"strict": true,
"strictPropertyInitialization": false,
"forceConsistentCasingInFileNames": true,
"baseUrl": "."
},

File diff suppressed because one or more lines are too long