UNPKG

@wocwin/t-ui-plus

Version:

Page level components developed based on Element Plus.

132 lines (127 loc) 4.53 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); const _hoisted_1 = { class: "t_form" }; const _hoisted_2 = { class: "collapse-item_title" }; const _hoisted_3 = { key: 0, class: "t_btn" }; var _sfc_main = /* @__PURE__ */ vue.defineComponent({ ...{ name: "ModuleForm" }, __name: "moduleForm", props: { // 表单配置项 formOpts: { type: Object, default: () => ({}) }, // 是否Title文字加粗 titleBold: { type: Boolean, default: false } }, emits: ["handleEvent"], setup(__props, { expose: __expose, emit: __emit }) { const props = __props; const dashboardRef = vue.ref({}); const slots = vue.useSlots(); const attrs = vue.useAttrs(); const getChildRef = (index) => { const childRef = dashboardRef.value[index]; return childRef; }; __expose({ getChildRef }); const defaultActiveKey = vue.computed({ get() { return Object.keys(props.formOpts); }, set(val) { return val; } }); const emits = __emit; const handleEvent = (val, type) => { emits("handleEvent", val, type); }; return (_ctx, _cache) => { const _component_t_form = vue.resolveComponent("t-form"); const _component_el_collapse_item = vue.resolveComponent("el-collapse-item"); const _component_el_collapse = vue.resolveComponent("el-collapse"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [ vue.createVNode(_component_el_collapse, { modelValue: defaultActiveKey.value, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => defaultActiveKey.value = $event) }, { default: vue.withCtx(() => [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList(__props.formOpts, (formOpt, formIndex) => { return vue.openBlock(), vue.createBlock(_component_el_collapse_item, { class: vue.normalizeClass([ formOpt.className, { noTitle: !formOpt.title, disabledStyle: formOpt.disabled, title_bold: __props.titleBold } ]), key: formIndex, name: formOpt.name, disabled: formOpt.disabled }, { title: vue.withCtx(() => [ vue.createElementVNode( "span", _hoisted_2, vue.toDisplayString(formOpt.title), 1 /* TEXT */ ), formOpt.btn ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [ vue.renderSlot(_ctx.$slots, formOpt.btn) ])) : vue.createCommentVNode("v-if", true) ]), default: vue.withCtx(() => [ formOpt.slotName ? vue.renderSlot(_ctx.$slots, formOpt.slotName, { key: 0 }) : vue.createCommentVNode("v-if", true), vue.createVNode(_component_t_form, vue.mergeProps({ ref_for: true, ref: (el) => { dashboardRef.value[formIndex] = el; }, formOpts: formOpt.opts, widthSize: formOpt.widthSize || 3 }, vue.unref(attrs), { onHandleEvent: handleEvent }), vue.createSlots({ _: 2 /* DYNAMIC */ }, [ vue.renderList(vue.unref(slots), (_index, name) => { return { name, fn: vue.withCtx((data) => [ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(data))) ]) }; }) ]), 1040, ["formOpts", "widthSize"]) ]), _: 2 /* DYNAMIC */ }, 1032, ["class", "name", "disabled"]); }), 128 /* KEYED_FRAGMENT */ )) ]), _: 3 /* FORWARDED */ }, 8, ["modelValue"]) ]); }; } }); exports.default = _sfc_main;