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
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;
|
|
}
|
|
}
|
|
|