@wocwin/t-ui-plus
Version:
Page level components developed based on Element Plus.
105 lines (102 loc) • 3.71 kB
JavaScript
import { defineComponent, useSlots, useAttrs, computed, resolveComponent, createElementBlock, openBlock, createVNode, withCtx, Fragment, renderList, createBlock, normalizeClass, renderSlot, createCommentVNode, mergeProps, unref, createSlots, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString } from 'vue';
const _hoisted_1 = { class: "t_detail" };
const _hoisted_2 = {
key: 0,
class: "t_btn"
};
var _sfc_main = /* @__PURE__ */ defineComponent({
...{
name: "ModuleDetail"
},
__name: "moduleDetail",
props: {
descData: {
type: Object,
default: () => ({})
},
// 是否Title文字加粗
titleBold: {
type: Boolean,
default: false
}
},
setup(__props) {
const props = __props;
const slots = useSlots();
const attrs = useAttrs();
const defaultActiveKey = computed({
get() {
return Object.keys(props.descData);
},
set(val) {
return val;
}
});
return (_ctx, _cache) => {
const _component_t_detail = resolveComponent("t-detail");
const _component_el_collapse_item = resolveComponent("el-collapse-item");
const _component_el_collapse = resolveComponent("el-collapse");
return openBlock(), createElementBlock("div", _hoisted_1, [
createVNode(_component_el_collapse, {
modelValue: defaultActiveKey.value,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => defaultActiveKey.value = $event)
}, {
default: withCtx(() => [
(openBlock(true), createElementBlock(
Fragment,
null,
renderList(__props.descData, (val, index) => {
return openBlock(), createBlock(_component_el_collapse_item, {
class: normalizeClass({
noTitle: !val.title,
disabledStyle: val.disabled,
title_bold: __props.titleBold
}),
key: index,
name: val.name,
disabled: val.disabled
}, {
title: withCtx(() => [
createTextVNode(
toDisplayString(val.title) + " ",
1
/* TEXT */
),
val.btn ? (openBlock(), createElementBlock("div", _hoisted_2, [
renderSlot(_ctx.$slots, val.btn)
])) : createCommentVNode("v-if", true)
]),
default: withCtx(() => [
val.slotName ? renderSlot(_ctx.$slots, val.slotName, { key: 0 }) : createCommentVNode("v-if", true),
createVNode(_component_t_detail, mergeProps({
descData: val.data
}, unref(attrs)), createSlots({
_: 2
/* DYNAMIC */
}, [
renderList(unref(slots), (_index, name) => {
return {
name,
fn: withCtx((data) => [
renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))
])
};
})
]), 1040, ["descData"])
]),
_: 2
/* DYNAMIC */
}, 1032, ["class", "name", "disabled"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 3
/* FORWARDED */
}, 8, ["modelValue"])
]);
};
}
});
export { _sfc_main as default };