vhb-table
Version:
一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...
132 lines (119 loc) • 3.66 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _utils = require("../../tools/utils");
var _conf = _interopRequireDefault(require("../../v-h-b-table/src/conf"));
var _size = _interopRequireDefault(require("../../mixins/size"));
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 _default2 = {
name: 'VhbRadio',
mixins: [_size.default],
props: {
value: [String, Number, Boolean],
label: [String, Number, Boolean],
title: [String, Number],
content: [String, Number],
disabled: Boolean,
name: String,
strict: {
type: Boolean,
default: function _default() {
return _conf.default.radio.strict;
}
},
size: {
type: String,
default: function _default() {
return _conf.default.radio.size || _conf.default.size;
}
}
},
inject: {
$xeradiogroup: {
default: null
}
},
computed: {
isDisabled: function isDisabled() {
var $xeradiogroup = this.$xeradiogroup;
return this.disabled || $xeradiogroup && $xeradiogroup.disabled;
},
isStrict: function isStrict() {
var $xeradiogroup = this.$xeradiogroup;
return $xeradiogroup ? $xeradiogroup.strict : this.strict;
}
},
render: function render(h) {
var _ref;
var $scopedSlots = this.$scopedSlots,
$xeradiogroup = this.$xeradiogroup,
isDisabled = this.isDisabled,
title = this.title,
vSize = this.vSize,
value = this.value,
label = this.label,
name = this.name,
content = this.content;
var attrs = {};
if (title) {
attrs.title = title;
}
return h('label', {
class: ['vhb-radio', (_ref = {}, _defineProperty(_ref, "size--".concat(vSize), vSize), _defineProperty(_ref, 'is--disabled', isDisabled), _ref)],
attrs: attrs
}, [h('input', {
class: 'vhb-radio--input',
attrs: {
type: 'radio',
name: $xeradiogroup ? $xeradiogroup.name : name,
disabled: isDisabled
},
domProps: {
checked: $xeradiogroup ? $xeradiogroup.value === label : value === label
},
on: {
change: this.changeEvent,
click: this.clickEvent
}
}), h('span', {
class: 'vhb-radio--icon'
}), h('span', {
class: 'vhb-radio--label'
}, $scopedSlots.default ? $scopedSlots.default.call(this, {}) : [(0, _utils.getFuncText)(content)])]);
},
methods: {
handleValue: function handleValue(label, evnt) {
var $xeradiogroup = this.$xeradiogroup;
var params = {
label: label,
$event: evnt
};
if ($xeradiogroup) {
$xeradiogroup.handleChecked(params);
} else {
this.$emit('input', label);
this.$emit('change', params);
}
},
changeEvent: function changeEvent(evnt) {
var isDisabled = this.isDisabled;
if (!isDisabled) {
this.handleValue(this.label, evnt);
}
},
clickEvent: function clickEvent(evnt) {
var $xeradiogroup = this.$xeradiogroup,
isDisabled = this.isDisabled,
isStrict = this.isStrict;
if (!isDisabled && !isStrict) {
if (this.label === ($xeradiogroup ? $xeradiogroup.value : this.value)) {
this.handleValue(null, evnt);
}
}
}
}
};
exports.default = _default2;