UNPKG

@cainiaofe/cn-ui-lowcode

Version:
52 lines (45 loc) 1.31 kB
import React from 'react'; import { CnFormat as UICnFormat } from '@cainiaofe/cn-ui'; import { executeFunction, isArrayNotEmpty, isDesignMode, mergeHandleProps, } from '@/common/util/util'; import './view.scss'; import cloneDeep from 'lodash/cloneDeep'; import isPlainObject from 'lodash/isPlainObject'; const CnFormat = (props) => { const { _context, formatSchema, __record__, __index__, __state__, } = props; const isDesign = isDesignMode(props) const transformFormatSchema = () => { const newFormatSchema = cloneDeep(formatSchema); if (isArrayNotEmpty(formatSchema)) { newFormatSchema.forEach(item=>{ if(isPlainObject(item)){ const { value, format, mock } = item || {} if(typeof value === 'function') { item.value = executeFunction(value, { item: __record__,index:__index__,state:__state__ }) } if(!item.value && isDesign) { item.value = mock; } if(format === 'text') { item.text = item.value; } } }) } return newFormatSchema; } return <UICnFormat format={'CnFormatArrayView'} value={transformFormatSchema(formatSchema)} /> }; CnFormat.displayName = 'CnFormat'; export default CnFormat; export { CnFormat };