diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c2e49b783..1000fca05 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,4 +5,4 @@ * @liujuping @JackLian /modules/material-parser @akirakai -/modules/code-generator @leoyuan +/modules/code-generator @qingniaotonghua diff --git a/docs/docs/api/commonUI.md b/docs/docs/api/commonUI.md index ef7af7f41..82b57c389 100644 --- a/docs/docs/api/commonUI.md +++ b/docs/docs/api/commonUI.md @@ -40,99 +40,99 @@ CommonUI API 是一个专为低代码引擎设计的组件 UI 库,使用它开 | 参数 | 说明 | 类型 | 默认值 | |------------|--------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|----------------------------------------| -| name | 动作的唯一标识符
Unique identifier for the action | string | | -| title | 显示的标题,可以是字符串或国际化数据
Display title, can be a string or internationalized data | string \| IPublicTypeI18nData (optional) | | -| type | 菜单项类型
Menu item type | IPublicEnumContextMenuType (optional) | IPublicEnumPContextMenuType.MENU_ITEM | -| action | 点击时执行的动作,可选
Action to execute on click, optional | (nodes: IPublicModelNode[]) => void (optional) | | -| items | 子菜单项或生成子节点的函数,可选,仅支持两级
Sub-menu items or function to generate child node, optional | Omit[] \| ((nodes: IPublicModelNode[]) => Omit[]) (optional) | | -| condition | 显示条件函数
Function to determine display condition | (nodes: IPublicModelNode[]) => boolean (optional) | | -| disabled | 禁用条件函数,可选
Function to determine disabled condition, optional | (nodes: IPublicModelNode[]) => boolean (optional) | | +| name | 动作的唯一标识符
Unique identifier for the action | string | | +| title | 显示的标题,可以是字符串或国际化数据
Display title, can be a string or internationalized data | string \| IPublicTypeI18nData (optional) | | +| type | 菜单项类型
Menu item type | IPublicEnumContextMenuType (optional) | IPublicEnumPContextMenuType.MENU_ITEM | +| action | 点击时执行的动作,可选
Action to execute on click, optional | (nodes: IPublicModelNode[]) => void (optional) | | +| items | 子菜单项或生成子节点的函数,可选,仅支持两级
Sub-menu items or function to generate child node, optional | Omit[] \| ((nodes: IPublicModelNode[]) => Omit[]) (optional) | | +| condition | 显示条件函数
Function to determine display condition | (nodes: IPublicModelNode[]) => boolean (optional) | | +| disabled | 禁用条件函数,可选
Function to determine disabled condition, optional | (nodes: IPublicModelNode[]) => boolean (optional) | | ### Balloon -详细文档: [Balloon Documentation](https://fusion.design/pc/component/balloon) +详细文档: [Balloon Documentation](https://fusion.design/pc/component/balloon) ### Breadcrumb -详细文档: [Breadcrumb Documentation](https://fusion.design/pc/component/breadcrumb) +详细文档: [Breadcrumb Documentation](https://fusion.design/pc/component/breadcrumb) ### Button -详细文档: [Button Documentation](https://fusion.design/pc/component/button) +详细文档: [Button Documentation](https://fusion.design/pc/component/button) ### Card -详细文档: [Card Documentation](https://fusion.design/pc/component/card) +详细文档:[Card Documentation](https://fusion.design/pc/component/card) ### Checkbox -详细文档: [Checkbox Documentation](https://fusion.design/pc/component/checkbox) +详细文档:[Checkbox Documentation](https://fusion.design/pc/component/checkbox) ### DatePicker -详细文档: [DatePicker Documentation](https://fusion.design/pc/component/datepicker) +详细文档:[DatePicker Documentation](https://fusion.design/pc/component/datepicker) ### Dialog -详细文档: [Dialog Documentation](https://fusion.design/pc/component/dialog) +详细文档:[Dialog Documentation](https://fusion.design/pc/component/dialog) ### Dropdown -详细文档: [Dropdown Documentation](https://fusion.design/pc/component/dropdown) +详细文档:[Dropdown Documentation](https://fusion.design/pc/component/dropdown) ### Form -详细文档: [Form Documentation](https://fusion.design/pc/component/form) +详细文档:[Form Documentation](https://fusion.design/pc/component/form) ### Icon -详细文档: [Icon Documentation](https://fusion.design/pc/component/icon) +详细文档:[Icon Documentation](https://fusion.design/pc/component/icon) 引擎默认主题支持的 icon 列表:https://fusion.design/64063/component/icon?themeid=20133 ### Input -详细文档: [Input Documentation](https://fusion.design/pc/component/input) +详细文档:[Input Documentation](https://fusion.design/pc/component/input) ### Loading -详细文档: [Loading Documentation](https://fusion.design/pc/component/loading) +详细文档:[Loading Documentation](https://fusion.design/pc/component/loading) ### Message -详细文档: [Message Documentation](https://fusion.design/pc/component/message) +详细文档:[Message Documentation](https://fusion.design/pc/component/message) ### Overlay -详细文档: [Overlay Documentation](https://fusion.design/pc/component/overlay) +详细文档:[Overlay Documentation](https://fusion.design/pc/component/overlay) ### Pagination -详细文档: [Pagination Documentation](https://fusion.design/pc/component/pagination) +详细文档:[Pagination Documentation](https://fusion.design/pc/component/pagination) ### Radio -详细文档: [Radio Documentation](https://fusion.design/pc/component/radio) +详细文档:[Radio Documentation](https://fusion.design/pc/component/radio) ### Search -详细文档: [Search Documentation](https://fusion.design/pc/component/search) +详细文档:[Search Documentation](https://fusion.design/pc/component/search) ### Select -详细文档: [Select Documentation](https://fusion.design/pc/component/select) +详细文档:[Select Documentation](https://fusion.design/pc/component/select) ### SplitButton -详细文档: [SplitButton Documentation](https://fusion.design/pc/component/splitbutton) +详细文档:[SplitButton Documentation](https://fusion.design/pc/component/splitbutton) ### Step -详细文档: [Step Documentation](https://fusion.design/pc/component/step) +详细文档:[Step Documentation](https://fusion.design/pc/component/step) ### Switch -详细文档: [Switch Documentation](https://fusion.design/pc/component/switch) +详细文档:[Switch Documentation](https://fusion.design/pc/component/switch) ### Tab -详细文档: [Tab Documentation](https://fusion.design/pc/component/tab) +详细文档:[Tab Documentation](https://fusion.design/pc/component/tab) ### Table -详细文档: [Table Documentation](https://fusion.design/pc/component/table) +详细文档:[Table Documentation](https://fusion.design/pc/component/table) ### Tree -详细文档: [Tree Documentation](https://fusion.design/pc/component/tree) +详细文档:[Tree Documentation](https://fusion.design/pc/component/tree) ### TreeSelect -详细文档: [TreeSelect Documentation](https://fusion.design/pc/component/treeselect) +详细文档:[TreeSelect Documentation](https://fusion.design/pc/component/treeselect) ### Upload -详细文档: [Upload Documentation](https://fusion.design/pc/component/upload) +详细文档:[Upload Documentation](https://fusion.design/pc/component/upload) ### Divider -详细文档: [Divider Documentation](https://fusion.design/pc/component/divider) +详细文档:[Divider Documentation](https://fusion.design/pc/component/divider) ## 说明 -如果需要其他组件,可以提issue给我们 \ No newline at end of file +如果需要其他组件,可以提 issue 给我们。 diff --git a/docs/package.json b/docs/package.json index 6659eaf85..1f49ab624 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@alilc/lowcode-engine-docs", - "version": "1.2.19", + "version": "1.2.21", "description": "低代码引擎版本化文档", "license": "MIT", "files": [ diff --git a/packages/designer/src/context-menu-actions.ts b/packages/designer/src/context-menu-actions.ts index 053e4f031..55a83ef2f 100644 --- a/packages/designer/src/context-menu-actions.ts +++ b/packages/designer/src/context-menu-actions.ts @@ -17,6 +17,8 @@ export interface IContextMenuActions { adjustMenuLayout: IPublicApiMaterial['adjustContextMenuLayout']; } +let destroyFn: Function | undefined; + export class ContextMenuActions implements IContextMenuActions { actions: IPublicTypeContextMenuAction[] = []; @@ -55,7 +57,7 @@ export class ContextMenuActions implements IContextMenuActions { const { bounds } = designer.project.simulator?.viewport || { bounds: { left: 0, top: 0 } }; const { left: simulatorLeft, top: simulatorTop } = bounds; - let destroyFn: Function | undefined; + destroyFn?.(); const destroy = () => { destroyFn?.(); diff --git a/packages/engine/src/inner-plugins/default-context-menu.ts b/packages/engine/src/inner-plugins/default-context-menu.ts index 86feb17d9..50a86fcec 100644 --- a/packages/engine/src/inner-plugins/default-context-menu.ts +++ b/packages/engine/src/inner-plugins/default-context-menu.ts @@ -87,6 +87,9 @@ export const defaultContextMenu = (ctx: IPublicModelPluginContext) => { material.addContextMenuOption({ name: 'copy', title: intl('Copy.1'), + condition(nodes) { + return nodes.length > 0; + }, action(nodes) { if (!nodes || nodes.length < 1) { return; @@ -159,6 +162,9 @@ export const defaultContextMenu = (ctx: IPublicModelPluginContext) => { material.addContextMenuOption({ name: 'delete', title: intl('Delete'), + condition(nodes) { + return nodes.length > 0; + }, action(nodes) { nodes.forEach((node) => { node.remove(); diff --git a/packages/utils/src/context-menu.scss b/packages/utils/src/context-menu.scss index 744eede87..0bcf39d15 100644 --- a/packages/utils/src/context-menu.scss +++ b/packages/utils/src/context-menu.scss @@ -1,6 +1,6 @@ .context-menu-tree-wrap { position: relative; - padding: 4px 10px 4px 24px; + padding: 4px 10px 4px 32px; } .context-menu-tree-children { diff --git a/packages/utils/src/context-menu.tsx b/packages/utils/src/context-menu.tsx index 3c7bb5d13..f65bc312f 100644 --- a/packages/utils/src/context-menu.tsx +++ b/packages/utils/src/context-menu.tsx @@ -22,16 +22,8 @@ const Tree = (props: { const { node } = props; if (!node) { - return null; - } - - if (!node.parent) { return ( -
-
- {props.children} -
-
+
{ props.children }
); }