UNPKG

@ywfe/materials-design

Version:
138 lines (135 loc) 3.81 kB
import { IPublicTypeComponentMetadata, IPublicTypeSnippet } from '@alilc/lowcode-types'; import { TableBaseProps, YwButtonBaseProps, BaseFormItemProps, IPublicTypeSnippetMore, } from '../_base'; import { uuid, getRefConfig } from '../_utils'; const refConfig = getRefConfig('drawer_selector'); const YwDrawerSelectorMeta: IPublicTypeComponentMetadata = { componentName: 'YwDrawerSelector', title: 'YwDrawerSelector', docUrl: '', screenshot: '', devMode: 'proCode', group: '基础组件', category: '弹窗', npm: { package: '@ywfe/materials-design', version: '0.0.1-beta.6', exportName: 'YwDrawerSelector', main: 'src/index.tsx', destructuring: true, subName: '', }, configure: { props: [ refConfig, { name: 'title', title: { label: '弹窗标题', tip: 'title | 标题' }, setter: 'StringSetter', display: 'block', }, ...YwButtonBaseProps, { title: { label: '数据筛选', tip: 'items | 数据筛选', }, display: 'accordion', name: 'filterItems', description: '数据筛选', condition: (target) => { return target.parent.getPropValue('hasFilter'); }, setter: { componentName: 'ArraySetter', props: { itemSetter: { componentName: 'ObjectSetter', props: { descriptor: 'title', config: { items: BaseFormItemProps, }, }, initialValue: () => { const mockProps: any = {}; BaseFormItemProps.forEach((item) => { if (item.defaultValue) { if (typeof item.defaultValue === 'function') { mockProps[item.name] = item.defaultValue(); } else { mockProps[item.name] = item.defaultValue; } } }); return { component: 'Input', ...mockProps, }; }, }, }, }, }, { title: { label: '商品预览', tip: 'previewConfig | 商品预览', }, display: 'accordion', name: '_previewConfig', setter: { componentName: 'ObjectSetter', props: { config: { items: [ { name: 'imgUrl', title: { label: '商品图片', tip: 'imgUrl | 选择商品图片字段' }, setter: 'StringSetter', }, { name: 'tooltip', title: { label: '悬浮提示', tip: 'tooltip | 选择商品图片字段' }, setter: 'StringSetter', }, ], }, }, }, extraProps: { setValue: (target) => { // 获取商品名称字段和 商品图片链接字段 target.parent.setPropValue('formatPreviewItemValue', { type: 'JSFunction', value: '(item)=>{return {imgUrl:item.imgUrl,tooltip:{title:item.itemName,placement:"topLeft"}}}', }); }, }, }, ...TableBaseProps, ], }, }; const snippets: IPublicTypeSnippetMore[] = [ { title: '商品选择器', svgId: 'icon-shangpingxuanzeqi', screenshot: 'https://yw-fed-static.oss-cn-hangzhou.aliyuncs.com/lowcode/goods', schema: { componentName: 'YwDrawerSelector', props: { visible: true, }, }, }, ]; export default { ...YwDrawerSelectorMeta, snippets, };