feat: 弹框增加按钮管理配置 (#11269)

This commit is contained in:
qkiroc 2024-11-27 16:55:06 +08:00 committed by GitHub
parent e3ad9b9271
commit fa38e61b27
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 42 additions and 3 deletions

View File

@ -298,6 +298,8 @@ export class DialogPlugin extends BasePlugin {
name: 'title'
},
getSchemaTpl('button-manager'),
getSchemaTpl('switch', {
label: '展示关闭按钮',
name: 'showCloseButton',

View File

@ -171,6 +171,7 @@ export class DrawerPlugin extends BasePlugin {
label: '显示蒙层',
pipeIn: defaultValue(true)
}),
getSchemaTpl('button-manager'),
getSchemaTpl('switch', {
name: 'showCloseButton',
label: '展示关闭按钮',

View File

@ -6,7 +6,7 @@ import {
tipedLabel,
EditorManager
} from 'amis-editor-core';
import type {SchemaObject} from 'amis';
import {render, type SchemaObject} from 'amis';
import flatten from 'lodash/flatten';
import {InputComponentName} from '../component/InputComponentName';
import {FormulaDateType} from '../renderer/FormulaControl';
@ -1851,3 +1851,39 @@ setSchemaTpl('inputForbid', {
name: 'inputForbid',
inputClassName: 'is-inline'
});
setSchemaTpl('button-manager', () => {
return getSchemaTpl('combo-container', {
type: 'combo',
label: '按钮管理',
name: 'actions',
mode: 'normal',
multiple: true,
addable: true,
draggable: true,
editable: false,
items: [
{
component: (props: any) => {
return render({
...props.data,
onEvent: {},
actionType: '',
onClick: (e: any, props: any) => {
const editorStore = (window as any).editorStore;
const subEditorStore = editorStore.getSubEditorRef()?.store;
(subEditorStore || editorStore).setActiveIdByComponentId(
props.id
);
}
});
}
}
],
addButtonText: '新增按钮',
scaffold: {
type: 'button',
label: '按钮'
}
});
});

View File

@ -707,9 +707,7 @@ export class Action extends React.Component<ActionProps, ActionState> {
render() {
const {
type,
icon,
iconClassName,
rightIcon,
rightIconClassName,
loadingClassName,
primary,
@ -791,6 +789,8 @@ export class Action extends React.Component<ActionProps, ActionState> {
}) as string;
disabled = true;
}
const icon = filter(this.props.icon, data);
const rightIcon = filter(this.props.rightIcon, data);
const iconElement = (
<Icon