UNPKG

vxe-table-select-area

Version:

一个基于 vxe-table 的可区域选中复制、粘贴的组件

228 lines (227 loc) 8.59 kB
"use strict"; 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;