UNPKG

devfty

Version:

Devfty is a library for developer building low code factory

129 lines (116 loc) 3.93 kB
import basic from './basic' import advanced from './advanced' import adapter from './adapter' import page from './page' const { RefAdapter, LabelAdapter, // ModelAdapter, BillAdapter, LoadMetaAdapter, PageModelAdapter, ExtendjsAdapter, BillListAdapter, DataSourceAdapter, DataSourceModelAdapter, FilterAdapter, } = adapter // 装饰器 // function decorator(adapter: any, o, args) { // if (args.beforeAdapter?.(o, o.adapterName) === false) { // return false // } // o.component = typeof adapter === 'function' ? adapter(o.component) : o.component // if (args.afterAdapter?.(o, o.adapterName) === false) { // return false // } // return true // } export function basicAdapter(args: any) { const openModel = args.openModel const noRefs = ['Form', 'Row', 'Col'] const labelControls = ['Checkbox', 'CheckboxGroup', 'ColorPicker', 'DatePicker', 'RangePicker', 'Input', 'InputNumber', 'Radio', 'Select', 'Switch', 'TimePicker', 'TreeSelect', 'Upload', 'Tag'] const coms: any = {} for (let name in basic) { const component: any = basic[name] const o = { name, component } if (args.beforeAdapter?.(o) === false) { continue } if (labelControls.includes(name)) { o.component = LabelAdapter(o.component) } if (noRefs.includes(name)) { coms[name] = o.component continue } o.component = RefAdapter(o.component) if (openModel) { o.component = ModelAdapter(o.component) } if (args.afterAdapter?.(o) === false) { continue } coms[name] = o.component } Object.assign(basic, coms) } export function advancedAdapter(args: any) { const openModel = args.openModel const dataSourceAdapters = ['Table'] const filterAdapters = ['Filter'] const coms: any = {} for (let name in advanced) { const component = (advanced as any)[name] as any const o = { name, component } if (args.beforeAdapter?.(o) === false) { continue } if (dataSourceAdapters.includes(name)) { o.component = DataSourceAdapter(o.component) if (openModel) { o.component = DataSourceModelAdapter(o.component) } } else if (openModel && filterAdapters.includes(name)) { o.component = FilterAdapter(o.component) } if (args.afterAdapter?.(o) === false) { continue } coms[name] = o.component } Object.assign(advanced, coms) } export function pageAdapter(args: any) { const openModel = args.openModel const openExtendjs = args.openExtendjs const pageAdapters = ['Bill', 'BillList'] const coms: any = {} for (let name in page) { const component = (page as any)[name] as any const o = { name, component } if (args.beforeAdapter?.(o) === false) { continue } if (pageAdapters.includes(name)) { if (name === 'BillList' && openModel) { o.component = BillListAdapter(o.component) } else if (name === 'Bill' && openModel) { o.component = BillAdapter(o.component) } if (openExtendjs) { o.component = ExtendjsAdapter(o.component) } if (openModel) { o.component = PageModelAdapter(o.component) } o.component = LoadMetaAdapter(o.component) } if (args.afterAdapter?.(o) === false) { continue } coms[name] = o.component } Object.assign(page, coms) } export default { basic, advanced, adapter, page }