@cainiaofe/cn-ui-lowcode
Version:
94 lines (91 loc) • 2.63 kB
JavaScript
import { Bundle } from '@ali/visualengine';
import React from 'react';
// import { createSlot } from '@ali/vu-slot-property';
import Icon from './logo.tsx';
import { createButtonListSetters } from '@/common/manager/button';
import { getDialogBasePrototype } from '@/common/util/dialog';
import { ButtonPosition } from '@/common/manager/position/button-position';
import { createFormDataSourceSetters } from '../cn-form-alc/prototype/form-item';
import { removeDataSourceByNode } from '@/common/util/util';
import { DisplayPosition } from '@/common/manager/position/display-position';
import { getJSExpressionPrototype } from '@/common/manager/common-style';
import { createEventSetters } from '@/common/manager/event';
const CnDialogBundle = Bundle.createPrototype({
title: '弹窗(Dialog)',
componentName: 'CnDialog',
category: '布局',
icon: Icon,
docUrl:
'https://cone.cainiao-inc.com/market/awesome?business=internationality&id=3313',
hasSlot: true,
isInline: false,
isContainer: true,
isModal: true,
enableCopy: true,
rectSelector: 'div.cn-dialog-alc',
snippets: [
{
screenshot:
'https://img.alicdn.com/tfs/TB1gaZrr.T1gK0jSZFhXXaAtVXa-1048-366.png',
label: 'CnDialog',
schema: {
componentName: 'CnDialog',
props: {},
},
},
],
onNodeRemoveByUser(node) {
removeDataSourceByNode(node);
},
configure: [
...getDialogBasePrototype({ position: DisplayPosition.dialog }),
{
name: '_context',
title: '上下文',
initialValue: {
type: 'JSExpression',
value: 'this',
},
display: 'none',
},
{
name: 'buttons',
title: '底部按钮栏',
display: 'accordion',
// collapsed:false,
initialValue: [
{
children: '取消',
optType: 'cancel',
primaryKey: 'cancel',
},
{
children: '确定',
optType: 'cancel',
primaryKey: 'ok',
type: 'primary',
},
],
// supportVariable: true,
setter: createButtonListSetters({ position: ButtonPosition.dialog }),
},
...createEventSetters({
position: ButtonPosition.dialogEvent,
initialValue: {},
title: '配置弹窗的回调',
}),
...createFormDataSourceSetters({
extraConfigure: [
{
name: 'handleProps',
title: '手动设置组件props',
display: 'inline',
setter: getJSExpressionPrototype({
type: 'props',
}),
},
],
}),
],
});
export default CnDialogBundle;