mirror of
https://gitee.com/xuliangzhan_admin/vxe-table.git
synced 2026-01-21 05:27:57 +08:00
123 lines
4.4 KiB
JavaScript
123 lines
4.4 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
|
|
var _xeUtils = _interopRequireDefault(require("xe-utils/methods/xe-utils"));
|
|
|
|
var _conf = _interopRequireDefault(require("../../conf"));
|
|
|
|
var _tools = require("../../tools");
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
|
|
var _default = {
|
|
name: 'VxeButton',
|
|
props: {
|
|
type: String,
|
|
size: String,
|
|
name: [String, Number],
|
|
disabled: Boolean,
|
|
loading: Boolean
|
|
},
|
|
computed: {
|
|
vSize: function vSize() {
|
|
return this.size || this.$parent.size || this.$parent.vSize;
|
|
}
|
|
},
|
|
render: function render(h) {
|
|
var _ref2,
|
|
_this = this,
|
|
_ref3;
|
|
|
|
var $scopedSlots = this.$scopedSlots,
|
|
$listeners = this.$listeners,
|
|
type = this.type,
|
|
vSize = this.vSize,
|
|
name = this.name,
|
|
disabled = this.disabled,
|
|
loading = this.loading;
|
|
var isText = type === 'text';
|
|
return $scopedSlots.dropdowns ? h('div', {
|
|
class: ['vxe-button--dropdown', _defineProperty({}, "size--".concat(vSize), vSize)]
|
|
}, [h('button', {
|
|
class: ['vxe-button', "type--".concat(isText ? type : 'button'), (_ref2 = {}, _defineProperty(_ref2, "size--".concat(vSize), vSize), _defineProperty(_ref2, "theme--".concat(type), type && !isText), _defineProperty(_ref2, 'is--disabled', disabled || loading), _defineProperty(_ref2, 'is--loading', loading), _ref2)],
|
|
attrs: {
|
|
name: name,
|
|
disabled: disabled || loading
|
|
},
|
|
on: Object.assign({
|
|
mouseenter: this.mouseenterEvent,
|
|
mouseleave: this.mouseleaveEvent
|
|
}, _xeUtils.default.objectMap($listeners, function (cb, type) {
|
|
return function (evnt) {
|
|
return _this.$emit(type, evnt);
|
|
};
|
|
}))
|
|
}, [h('span', $scopedSlots.default.call(this)), h('i', {
|
|
class: "vxe-button--dropdown-arrow ".concat(_conf.default.icon.dropdownBottom)
|
|
})]), h('div', {
|
|
class: 'vxe-button--dropdown-wrapper',
|
|
on: {
|
|
click: this.clickDropdownEvent,
|
|
mouseenter: this.mouseenterEvent,
|
|
mouseleave: this.mouseleaveEvent
|
|
}
|
|
}, $scopedSlots.dropdowns.call(this))]) : h('button', {
|
|
class: ['vxe-button', "type--".concat(isText ? type : 'button'), (_ref3 = {}, _defineProperty(_ref3, "size--".concat(vSize), vSize), _defineProperty(_ref3, "theme--".concat(type), type && !isText), _defineProperty(_ref3, 'is--disabled', disabled || loading), _defineProperty(_ref3, 'is--loading', loading), _ref3)],
|
|
attrs: {
|
|
name: name,
|
|
disabled: disabled || loading
|
|
},
|
|
on: _xeUtils.default.objectMap($listeners, function (cb, type) {
|
|
return function (evnt) {
|
|
return _this.$emit(type, evnt);
|
|
};
|
|
})
|
|
}, (loading ? [h('i', {
|
|
class: ['vxe-button--loading-icon', _conf.default.icon.btnLoading]
|
|
})] : []).concat($scopedSlots.default.call(this)));
|
|
},
|
|
methods: {
|
|
clickDropdownEvent: function clickDropdownEvent(evnt) {
|
|
var dropdownElem = evnt.currentTarget;
|
|
var wrapperElem = dropdownElem.parentNode;
|
|
|
|
var _DomTools$getEventTar = _tools.DomTools.getEventTargetNode(evnt, dropdownElem, 'vxe-button'),
|
|
flag = _DomTools$getEventTar.flag,
|
|
targetElem = _DomTools$getEventTar.targetElem;
|
|
|
|
if (flag) {
|
|
wrapperElem.dataset.active = 'N';
|
|
|
|
_tools.DomTools.removeClass(wrapperElem, 'is--active');
|
|
|
|
_tools.UtilTools.emitEvent(this, 'dropdown-click', [{
|
|
name: targetElem.getAttribute('name')
|
|
}, evnt]);
|
|
}
|
|
},
|
|
mouseenterEvent: function mouseenterEvent(evnt) {
|
|
var dropdownElem = evnt.currentTarget;
|
|
var wrapperElem = dropdownElem.parentNode;
|
|
wrapperElem.dataset.active = 'Y';
|
|
|
|
_tools.DomTools.addClass(wrapperElem, 'is--active');
|
|
},
|
|
mouseleaveEvent: function mouseleaveEvent(evnt) {
|
|
var dropdownElem = evnt.currentTarget;
|
|
var wrapperElem = dropdownElem.parentNode;
|
|
wrapperElem.dataset.active = 'N';
|
|
setTimeout(function () {
|
|
if (wrapperElem.dataset.active !== 'Y') {
|
|
_tools.DomTools.removeClass(wrapperElem, 'is--active');
|
|
}
|
|
}, 300);
|
|
}
|
|
}
|
|
};
|
|
exports.default = _default; |