vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
228 lines (227 loc) • 8.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _xeUtils = _interopRequireDefault(require("xe-utils"));
var _conf = _interopRequireDefault(require("../../v-x-e-table/src/conf"));
var _vXETable = _interopRequireDefault(require("../../v-x-e-table"));
var _utils = require("../../tools/utils");
var _util = require("./util");
var _render = require("./render");
var _vn = require("../../tools/vn");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var props = {
title: String,
field: String,
size: String,
span: [String, Number],
align: String,
titleAlign: {
type: String,
"default": null
},
titleWidth: {
type: [String, Number],
"default": null
},
titleColon: {
type: Boolean,
"default": null
},
titleAsterisk: {
type: Boolean,
"default": null
},
showTitle: {
type: Boolean,
"default": true
},
className: [String, Function],
contentClassName: [String, Function],
contentStyle: [Object, Function],
titleClassName: [String, Function],
titleStyle: [Object, Function],
titleOverflow: {
type: [Boolean, String],
"default": null
},
titlePrefix: Object,
titleSuffix: Object,
resetValue: {
"default": null
},
visible: {
type: Boolean,
"default": null
},
visibleMethod: Function,
folding: Boolean,
collapseNode: Boolean,
itemRender: Object
};
var watch = {};
Object.keys(props).forEach(function (name) {
watch[name] = function (value) {
this.itemConfig.update(name, value);
};
});
var renderItem = function renderItem(h, _vm, item, slots) {
var _e = _vm._e,
rules = _vm.rules,
data = _vm.data,
collapseAll = _vm.collapseAll,
validOpts = _vm.validOpts,
allTitleAlign = _vm.titleAlign,
allTitleWidth = _vm.titleWidth,
allTitleColon = _vm.titleColon,
allTitleAsterisk = _vm.titleAsterisk,
allTitleOverflow = _vm.titleOverflow;
var title = item.title,
folding = item.folding,
visible = item.visible,
field = item.field,
collapseNode = item.collapseNode,
itemRender = item.itemRender,
showError = item.showError,
errRule = item.errRule,
className = item.className,
titleOverflow = item.titleOverflow,
showTitle = item.showTitle,
contentClassName = item.contentClassName,
contentStyle = item.contentStyle,
titleClassName = item.titleClassName,
titleStyle = item.titleStyle;
var compConf = (0, _utils.isEnableConf)(itemRender) ? _vXETable["default"].renderer.get(itemRender.name) : null;
var itemClassName = compConf ? compConf.itemClassName : '';
var itemStyle = compConf ? compConf.itemStyle : null;
var itemContentClassName = compConf ? compConf.itemContentClassName : '';
var itemContentStyle = compConf ? compConf.itemContentStyle : null;
var itemTitleClassName = compConf ? compConf.itemTitleClassName : '';
var itemTitleStyle = compConf ? compConf.itemTitleStyle : null;
var span = item.span || _vm.span;
var align = item.align || _vm.align;
var titleAlign = _xeUtils["default"].eqNull(item.titleAlign) ? allTitleAlign : item.titleAlign;
var titleWidth = _xeUtils["default"].eqNull(item.titleWidth) ? allTitleWidth : item.titleWidth;
var titleColon = _xeUtils["default"].eqNull(item.titleColon) ? allTitleColon : item.titleColon;
var titleAsterisk = _xeUtils["default"].eqNull(item.titleAsterisk) ? allTitleAsterisk : item.titleAsterisk;
var itemOverflow = _xeUtils["default"].isUndefined(titleOverflow) || _xeUtils["default"].isNull(titleOverflow) ? allTitleOverflow : titleOverflow;
var ovEllipsis = itemOverflow === 'ellipsis';
var ovTitle = itemOverflow === 'title';
var ovTooltip = itemOverflow === true || itemOverflow === 'tooltip';
var hasEllipsis = ovTitle || ovTooltip || ovEllipsis;
var params = {
data: data,
field: field,
property: field,
item: item,
$form: _vm,
$grid: _vm.xegrid
};
var isRequired;
if (visible === false) {
return _e();
}
if (rules) {
var itemRules = rules[field];
if (itemRules) {
isRequired = itemRules.some(function (rule) {
return rule.required;
});
}
}
var contentVNs = [];
if (slots && slots["default"]) {
contentVNs = _vm.callSlot(slots["default"], params, h);
} else if (compConf && compConf.renderItemContent) {
contentVNs = (0, _vn.getSlotVNs)(compConf.renderItemContent.call(_vm, h, itemRender, params));
} else if (compConf && compConf.renderItem) {
contentVNs = (0, _vn.getSlotVNs)(compConf.renderItem.call(_vm, h, itemRender, params));
} else if (field) {
contentVNs = ["".concat(_xeUtils["default"].get(data, field))];
}
var ons = ovTooltip ? {
mouseenter: function mouseenter(evnt) {
_vm.triggerTitleTipEvent(evnt, params);
},
mouseleave: _vm.handleTitleTipLeaveEvent
} : {};
return h('div', {
"class": ['vxe-form--item', item.id, span ? "vxe-col--".concat(span, " is--span") : '', className ? _xeUtils["default"].isFunction(className) ? className(params) : className : '', itemClassName ? _xeUtils["default"].isFunction(itemClassName) ? itemClassName(params) : itemClassName : '', {
'is--title': title,
'is--colon': titleColon,
'is--asterisk': titleAsterisk,
'is--required': isRequired,
'is--hidden': folding && collapseAll,
'is--active': (0, _util.isActivetem)(_vm, item),
'is--error': showError
}],
style: _xeUtils["default"].isFunction(itemStyle) ? itemStyle(params) : itemStyle
}, [h('div', {
"class": 'vxe-form--item-inner'
}, [showTitle !== false && (title || slots && slots.title) ? h('div', {
"class": ['vxe-form--item-title', titleAlign ? "align--".concat(titleAlign) : '', hasEllipsis ? 'is--ellipsis' : '', itemTitleClassName ? _xeUtils["default"].isFunction(itemTitleClassName) ? itemTitleClassName(params) : itemTitleClassName : '', titleClassName ? _xeUtils["default"].isFunction(titleClassName) ? titleClassName(params) : titleClassName : ''],
style: Object.assign({}, _xeUtils["default"].isFunction(itemTitleStyle) ? itemTitleStyle(params) : itemTitleStyle, _xeUtils["default"].isFunction(titleStyle) ? titleStyle(params) : titleStyle, titleWidth ? {
width: isNaN(titleWidth) ? titleWidth : "".concat(titleWidth, "px")
} : null),
attrs: {
title: ovTitle ? (0, _utils.getFuncText)(title) : null
},
on: ons
}, (0, _render.renderTitle)(h, _vm, item)) : null, h('div', {
"class": ['vxe-form--item-content', align ? "align--".concat(align) : '', itemContentClassName ? _xeUtils["default"].isFunction(itemContentClassName) ? itemContentClassName(params) : itemContentClassName : '', contentClassName ? _xeUtils["default"].isFunction(contentClassName) ? contentClassName(params) : contentClassName : ''],
style: Object.assign({}, _xeUtils["default"].isFunction(itemContentStyle) ? itemContentStyle(params) : itemContentStyle, _xeUtils["default"].isFunction(contentStyle) ? contentStyle(params) : contentStyle)
}, contentVNs.concat([collapseNode ? h('div', {
"class": 'vxe-form--item-trigger-node',
on: {
click: _vm.toggleCollapseEvent
}
}, [h('span', {
"class": 'vxe-form--item-trigger-text'
}, collapseAll ? _conf["default"].i18n('vxe.form.unfolding') : _conf["default"].i18n('vxe.form.folding')), h('i', {
"class": ['vxe-form--item-trigger-icon', collapseAll ? _conf["default"].icon.FORM_FOLDING : _conf["default"].icon.FORM_UNFOLDING]
})]) : null, errRule && validOpts.showMessage ? h('div', {
"class": 'vxe-form--item-valid',
style: errRule.maxWidth ? {
width: "".concat(errRule.maxWidth, "px")
} : null
}, errRule.message) : null]))])]);
};
var _default = {
name: 'VxeFormItem',
props: props,
inject: {
$xeform: {
"default": null
},
$xeformgather: {
"default": null
}
},
provide: function provide() {
return {
$xeformitem: this,
$xeformiteminfo: this
};
},
data: function data() {
return {
itemConfig: null
};
},
watch: watch,
mounted: function mounted() {
(0, _util.assemItem)(this);
},
created: function created() {
this.itemConfig = (0, _util.createItem)(this.$xeform, this);
},
destroyed: function destroyed() {
(0, _util.destroyItem)(this);
},
render: function render(h) {
var $xeform = this.$xeform;
return $xeform && $xeform.customLayout ? renderItem(h, $xeform, this.itemConfig, this.$scopedSlots) : h('div');
}
};
exports["default"] = _default;