UNPKG

@cainiaofe/cn-ui-m-lowcode

Version:
185 lines (183 loc) 4.52 kB
import React from 'react'; import { Bundle } from '@ali/visualengine'; import { DisplayPosition } from '@/type/display-position'; import Icon from './logo'; import { createFooterSetters, createFormDefaultValueSetters, createFormItemSetters, } from './form-item'; import { ButtonPosition } from '@/type/button-position'; import { createButtonListSetters } from '@/common/manager/button'; import { createDataSourceSetters, createFormStyleSetters, } from '@/common/manager/setter-snippet'; import { handleDesignFormConfig, removeDataSourceByNode, } from '@/common/util/util'; // 原型配置请参考:https://lark.alipay.com/vision/docs/prototype export default Bundle.createPrototype({ title: '表单', componentName: 'CnForm', category: '表单', icon: Icon, docUrl: '', onNodeRemoveByUser(node) { removeDataSourceByNode(node); }, configure: [ { name: 'isCnForm', title: 'cnForm', initialValue: true, display: 'none', }, { name: '_context', title: '上下文', initialValue: { type: 'JSExpression', value: 'this', }, display: 'none', }, { name: 'title', title: '表单名称', display: 'inline', initialValue: '表单1', tip: '当前表单的名称,方便检索使用', setter: 'StringSetter', }, { name: 'config', title: '表单项配置', display: 'accordion', initialValue: [ { label: '卡片', name: 'card', componentName: 'CnCard', options: { desc: '外标题说明', subTitle: '内标题', subDesc: '内标题说明', }, }, { label: '文本输入', name: 'input', componentName: 'CnInput', options: {}, }, ], mutator(value) { const nodeId = this?.getNode?.()?._id; setTimeout(() => { if (nodeId && Array.isArray(value)) { handleDesignFormConfig({ newFormConfig: value, nodeId, }); } }); }, setter: createFormItemSetters({ position: DisplayPosition.form }), // supportVariable: true, }, { name: 'buttons', title: '底部按钮栏', display: 'accordion', initialValue: [ { primaryKey: 'reset', children: '重置', optType: 'reset', }, { children: '提交', optType: 'submit', primaryKey: 'submit', type: 'primary', }, ], // supportVariable: true, setter: createButtonListSetters({ position: ButtonPosition.form }), }, { name: 'formStyle', display: 'accordion', title: '表单样式', collapsed: true, extraProps: { defaultCollapsed: true, }, setter: { componentName: 'ObjectSetter', props: { config: { items: [...createFormStyleSetters()], }, }, }, }, ...createFormDefaultValueSetters({ afterRequestSuccessPosition: ButtonPosition.formDefaultValueAfterRequestSuccess, position: DisplayPosition.form, }), { title: '高级配置', type: 'group', collapsed: true, display: 'accordion', items: [...createDataSourceSetters()], }, // { // name: 'hasFooterSubmit', // title: '是否存在底部提交', // display: 'accordion', // // collapsed:false, // initialValue: true, // supportVariable: true, // setter: <BoolSetter />, // }, // { // name: 'resetProps', // title: '重置按钮配置', // display: 'accordion', // initialValue: { // children: '重置', // type: 'normal', // }, // setter: { // componentName: 'ObjectSetter', // props: { // config: { // items: createFooterSetters(), // }, // }, // }, // }, // { // name: 'submitProps', // title: '提交按钮配置', // display: 'accordion', // initialValue: { // children: '提交', // type: 'primary', // }, // setter: { // componentName: 'ObjectSetter', // props: { // config: { // items: createFooterSetters(), // }, // }, // }, // }, ], });