You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

74 lines
2.9 KiB

import { formats } from '../../ui';
import XEUtils from 'xe-utils';
import { errLog } from '../../ui/src/log';
export class ItemInfo {
constructor($xeForm, item) {
const { field, itemRender, formatter } = item;
if (formatter) {
if (XEUtils.isString(formatter)) {
const gFormatOpts = formats.get(formatter);
if (!gFormatOpts || !gFormatOpts.formItemFormatMethod) {
errLog('vxe.error.notFormats', [formatter]);
}
}
else if (XEUtils.isArray(formatter)) {
const gFormatOpts = formats.get(formatter[0]);
if (!gFormatOpts || !gFormatOpts.formItemFormatMethod) {
errLog('vxe.error.notFormats', [formatter[0]]);
}
}
}
if (field && itemRender) {
if (itemRender.startField && `${itemRender.startField}`.indexOf(field) >= 0) {
errLog('vxe.error.modelConflicts', [`field=${field}`, `item-render.startField=${itemRender.startField}`]);
}
if (itemRender.endField && `${itemRender.endField}`.indexOf(field) >= 0) {
errLog('vxe.error.modelConflicts', [`field=${field}`, `item-render.endField=${itemRender.endField}`]);
}
}
Object.assign(this, {
id: XEUtils.uniqueId('item_'),
title: item.title,
field: field,
span: item.span,
align: item.align,
verticalAlign: item.verticalAlign,
titleBackground: item.titleBackground,
titleBold: item.titleBold,
titleAlign: item.titleAlign,
titleWidth: item.titleWidth,
titleColon: item.titleColon,
vertical: item.vertical,
padding: item.padding,
titleAsterisk: item.titleAsterisk,
titlePrefix: item.titlePrefix,
titleSuffix: item.titleSuffix,
titleOverflow: item.titleOverflow,
showTitle: item.showTitle,
resetValue: item.resetValue,
visibleMethod: item.visibleMethod,
visible: item.visible,
showContent: item.showContent,
folding: item.folding,
collapseNode: item.collapseNode,
className: item.className,
contentClassName: item.contentClassName,
contentStyle: item.contentStyle,
titleClassName: item.titleClassName,
titleStyle: item.titleStyle,
itemRender: itemRender,
rules: item.rules,
formatter: item.formatter,
// 自定义参数
params: item.params,
// 渲染属性
showError: false,
errRule: null,
slots: item.slots,
children: []
});
}
update(name, value) {
this[name] = value;
}
}