@wocwin/t-ui-plus
Version:
Page level components developed based on Element Plus.
96 lines (91 loc) • 2.78 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
...{
name: "TRadio"
},
__name: "index",
props: {
type: {
type: String,
validator: (value) => ["radio", "button"].includes(value),
default: "radio"
},
options: {
type: Array,
default: () => []
},
size: {
type: String,
validator: (value) => ["large", "default", "small"].includes(value),
default: "default"
},
border: {
type: Boolean,
default: false
},
props: {
type: Object,
default: () => ({})
}
},
setup(__props) {
const radioProps = __props;
const radioType = vue.computed(() => {
var _a;
const obj = {
radio: "el-radio",
button: "el-radio-button"
};
return (_a = obj[radioProps.type]) != null ? _a : "el-radio";
});
const optionsProps = vue.ref({
...{
value: "value",
label: "label",
disabled: "disabled"
},
...radioProps.props
});
return (_ctx, _cache) => {
const _component_el_radio_group = vue.resolveComponent("el-radio-group");
return vue.openBlock(), vue.createBlock(_component_el_radio_group, vue.mergeProps(_ctx.$attrs, { size: __props.size }), {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "default", {}, () => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList(__props.options, (item, index) => {
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(radioType.value), vue.mergeProps(item, {
key: index,
value: item[optionsProps.value.value],
label: item[optionsProps.value.value],
border: __props.border,
disabled: item[optionsProps.value.disabled]
}), {
default: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, item.slot, vue.normalizeProps(vue.guardReactiveProps(item)), () => [
vue.createTextVNode(
vue.toDisplayString(item[optionsProps.value.label]),
1
/* TEXT */
)
])
]),
_: 2
/* DYNAMIC */
}, 1040, ["value", "label", "border", "disabled"]);
}),
128
/* KEYED_FRAGMENT */
))
])
]),
_: 3
/* FORWARDED */
}, 16, ["size"]);
};
}
});
exports.default = _sfc_main;