@cainiaofe/cn-ui-lowcode
Version:
52 lines (45 loc) • 1.31 kB
JavaScript
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 };