jky-component-lib 0.0.61 → 0.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/es/components.d.ts +1 -0
  2. package/dist/es/components.js +4 -1
  3. package/dist/es/form/Form.vue.d.ts +11 -7
  4. package/dist/es/form/Form.vue.js +144 -40
  5. package/dist/es/form/FormItem.vue.js +76 -14
  6. package/dist/es/form/SelectTable.vue.d.ts +38 -0
  7. package/dist/es/form/SelectTable.vue.js +217 -0
  8. package/dist/es/form/SelectTable.vue3.js +5 -0
  9. package/dist/es/form/style.css +56 -0
  10. package/dist/es/index.js +2 -0
  11. package/dist/es/package.json.js +1 -1
  12. package/dist/es/page-layout/PageLayout.vue.d.ts +36 -0
  13. package/dist/es/page-layout/PageLayout.vue.js +152 -0
  14. package/dist/es/page-layout/PageLayout.vue3.js +5 -0
  15. package/dist/es/page-layout/index.d.ts +4 -0
  16. package/dist/es/page-layout/index.js +8 -0
  17. package/dist/es/page-layout/style.css +10 -0
  18. package/dist/es/page-table/PageTable.vue.d.ts +61 -293
  19. package/dist/es/page-table/PageTable.vue.js +216 -116
  20. package/dist/es/page-table/Toolbar.vue.d.ts +1 -0
  21. package/dist/es/page-table/Toolbar.vue.js +40 -10
  22. package/dist/es/page-table/style.css +7 -1
  23. package/dist/es/style.css +350 -82
  24. package/dist/es/styles.css +1 -1
  25. package/dist/lib/components.d.ts +1 -0
  26. package/dist/lib/components.js +12 -9
  27. package/dist/lib/form/Form.vue.d.ts +11 -7
  28. package/dist/lib/form/Form.vue.js +142 -38
  29. package/dist/lib/form/FormItem.vue.js +75 -13
  30. package/dist/lib/form/SelectTable.vue.d.ts +38 -0
  31. package/dist/lib/form/SelectTable.vue.js +217 -0
  32. package/dist/lib/form/SelectTable.vue3.js +5 -0
  33. package/dist/lib/form/style.css +56 -0
  34. package/dist/lib/index.js +8 -6
  35. package/dist/lib/package.json.js +1 -1
  36. package/dist/lib/page-layout/PageLayout.vue.d.ts +36 -0
  37. package/dist/lib/page-layout/PageLayout.vue.js +152 -0
  38. package/dist/lib/page-layout/PageLayout.vue3.js +5 -0
  39. package/dist/lib/page-layout/index.d.ts +4 -0
  40. package/dist/lib/page-layout/index.js +8 -0
  41. package/dist/lib/page-layout/style.css +10 -0
  42. package/dist/lib/page-table/PageTable.vue.d.ts +61 -293
  43. package/dist/lib/page-table/PageTable.vue.js +214 -114
  44. package/dist/lib/page-table/Toolbar.vue.d.ts +1 -0
  45. package/dist/lib/page-table/Toolbar.vue.js +38 -8
  46. package/dist/lib/page-table/style.css +7 -1
  47. package/dist/lib/style.css +350 -82
  48. package/dist/lib/styles.css +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,217 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import { defineComponent, ref, computed, watch, openBlock, createElementBlock, createElementVNode, Fragment, renderList, createBlock, unref, withCtx, createTextVNode, toDisplayString, createCommentVNode, withDirectives, createVNode, mergeProps, vShow } from "vue";
41
+ import { ElTag, ElButton } from "element-plus";
42
+ import { JkyPageTable } from "../page-table/index.js";
43
+ const _hoisted_1 = { class: "jky-select-table" };
44
+ const _hoisted_2 = { class: "jky-select-table__tags" };
45
+ const _hoisted_3 = { class: "jky-select-table__dropdown" };
46
+ const __default__ = {
47
+ name: "JkySelectTable"
48
+ };
49
+ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues(__spreadValues({}, __default__), {
50
+ name: "JkySelectTable",
51
+ inheritAttrs: false
52
+ }), {
53
+ props: {
54
+ modelValue: {},
55
+ multiple: { type: Boolean, default: false },
56
+ labelField: { default: "label" },
57
+ idField: { default: "id" },
58
+ detailApi: {},
59
+ tableProps: {},
60
+ filterItems: {},
61
+ dataSource: {},
62
+ responseProps: {},
63
+ pagination: { type: Boolean },
64
+ readonly: { type: Boolean, default: false },
65
+ disabled: { type: Boolean, default: false }
66
+ },
67
+ emits: ["update:modelValue", "change"],
68
+ setup(__props, { emit: __emit }) {
69
+ const props = __props;
70
+ const emit = __emit;
71
+ const showTable = ref(false);
72
+ const selectedData = ref([]);
73
+ const selectedRows = ref([]);
74
+ const selectedValue = computed({
75
+ get: () => props.modelValue,
76
+ set: (val) => {
77
+ emit("update:modelValue", val);
78
+ }
79
+ });
80
+ function initSelectedData() {
81
+ return __async(this, null, function* () {
82
+ const ids = getIdsFromModelValue(props.modelValue);
83
+ if (!ids || ids.length === 0) {
84
+ selectedData.value = [];
85
+ selectedRows.value = [];
86
+ return;
87
+ }
88
+ if (props.detailApi) {
89
+ try {
90
+ const result = yield props.detailApi({ ids: ids.join(",") });
91
+ selectedData.value = Array.isArray(result) ? result : [result];
92
+ selectedRows.value = [...selectedData.value];
93
+ } catch (error) {
94
+ console.error("加载已选数据失败:", error);
95
+ selectedData.value = [];
96
+ selectedRows.value = [];
97
+ }
98
+ } else {
99
+ selectedData.value = ids.map((id) => ({
100
+ [props.idField]: id,
101
+ [props.labelField]: id
102
+ }));
103
+ selectedRows.value = [...selectedData.value];
104
+ }
105
+ });
106
+ }
107
+ function getIdsFromModelValue(modelValue) {
108
+ if (!modelValue)
109
+ return [];
110
+ if (Array.isArray(modelValue))
111
+ return modelValue;
112
+ return [modelValue];
113
+ }
114
+ function removeTag(item) {
115
+ if (props.disabled || props.readonly)
116
+ return;
117
+ const id = item[props.idField];
118
+ if (props.multiple) {
119
+ const currentIds = getIdsFromModelValue(props.modelValue);
120
+ const newIds = currentIds.filter((v) => v !== id);
121
+ selectedValue.value = newIds;
122
+ } else {
123
+ selectedValue.value = "";
124
+ }
125
+ selectedData.value = selectedData.value.filter((v) => v[props.idField] !== id);
126
+ selectedRows.value = selectedRows.value.filter((v) => v[props.idField] !== id);
127
+ emit("change", selectedValue.value, selectedData.value);
128
+ }
129
+ function handleSelectionChange(selection) {
130
+ selectedRows.value = selection;
131
+ if (props.multiple) {
132
+ const ids = selection.map((item) => item[props.idField]);
133
+ selectedValue.value = ids;
134
+ selectedData.value = selection;
135
+ } else {
136
+ if (selection.length > 0) {
137
+ const item = selection[0];
138
+ selectedValue.value = item[props.idField];
139
+ selectedData.value = [item];
140
+ } else {
141
+ selectedValue.value = "";
142
+ selectedData.value = [];
143
+ }
144
+ }
145
+ emit("change", selectedValue.value, selectedData.value);
146
+ }
147
+ watch(
148
+ () => props.modelValue,
149
+ (newVal) => {
150
+ if (newVal && (Array.isArray(newVal) ? newVal.length > 0 : newVal)) {
151
+ initSelectedData();
152
+ }
153
+ },
154
+ { immediate: true }
155
+ );
156
+ function toggleTable() {
157
+ if (props.disabled || props.readonly)
158
+ return;
159
+ showTable.value = !showTable.value;
160
+ }
161
+ const pageTableProps = computed(() => {
162
+ var _a, _b, _c;
163
+ const dataSource = ((_a = props.tableProps) == null ? void 0 : _a.dataSource) || props.dataSource;
164
+ const filterItems = ((_b = props.tableProps) == null ? void 0 : _b.filterItems) || props.filterItems;
165
+ const columns = ((_c = props.tableProps) == null ? void 0 : _c.columns) || [];
166
+ return __spreadProps(__spreadValues({}, props.tableProps), {
167
+ columns,
168
+ dataSource,
169
+ filterItems,
170
+ selection: true,
171
+ selectedRows: selectedRows.value
172
+ });
173
+ });
174
+ return (_ctx, _cache) => {
175
+ return openBlock(), createElementBlock("div", _hoisted_1, [
176
+ createElementVNode("div", _hoisted_2, [
177
+ (openBlock(true), createElementBlock(Fragment, null, renderList(selectedData.value, (item) => {
178
+ return openBlock(), createBlock(unref(ElTag), {
179
+ key: item[__props.idField],
180
+ closable: "",
181
+ "disable-transitions": false,
182
+ onClose: ($event) => removeTag(item)
183
+ }, {
184
+ default: withCtx(() => [
185
+ createTextVNode(toDisplayString(item[__props.labelField]), 1)
186
+ ]),
187
+ _: 2
188
+ }, 1032, ["onClose"]);
189
+ }), 128)),
190
+ !__props.readonly && !__props.disabled ? (openBlock(), createBlock(unref(ElButton), {
191
+ key: 0,
192
+ text: "",
193
+ type: "primary",
194
+ onClick: toggleTable
195
+ }, {
196
+ default: withCtx(() => [
197
+ createTextVNode(toDisplayString(selectedData.value.length > 0 ? "更换" : "选择"), 1)
198
+ ]),
199
+ _: 1
200
+ })) : createCommentVNode("", true)
201
+ ]),
202
+ withDirectives(createElementVNode("div", _hoisted_3, [
203
+ createVNode(unref(JkyPageTable), mergeProps(pageTableProps.value, {
204
+ selection: true,
205
+ "selected-rows": selectedRows.value,
206
+ onSelectionChange: handleSelectionChange
207
+ }), null, 16, ["selected-rows"])
208
+ ], 512), [
209
+ [vShow, showTable.value]
210
+ ])
211
+ ]);
212
+ };
213
+ }
214
+ }));
215
+ export {
216
+ _sfc_main as default
217
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./SelectTable.vue.js";
2
+ /* empty css */
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -4,6 +4,15 @@
4
4
  --jky-form-item-border-width: 4px;
5
5
  --jky-form-item-border-color: var(--el-color-primary);
6
6
  --jky-form-item-bg-color: rgba(var(--el-color-primary-rgb), 0.5);
7
+
8
+ /* Grid 布局默认列数(可通过响应式变量覆盖) */
9
+ --jky-form-grid-cols-xs: 1;
10
+ --jky-form-grid-cols-sm: 2;
11
+ --jky-form-grid-cols-md: 2;
12
+ --jky-form-grid-cols-lg: 3;
13
+ --jky-form-grid-cols-xl: 3;
14
+ --jky-form-grid-cols-2xl: 4;
15
+ --jky-form-grid-cols-3xl: 4;
7
16
  }
8
17
 
9
18
 
@@ -11,6 +20,53 @@
11
20
  .jky-form {
12
21
  /* 表单容器样式 */
13
22
  }
23
+
24
+
25
+ /* Grid 布局模式 */
26
+ .jky-form--grid {
27
+ display: grid;
28
+ grid-template-columns: repeat(var(--jky-form-grid-cols-xs), minmax(0, 1fr));
29
+ gap: var(--el-form-item-gutter, 16px);
30
+ }
31
+ .el-form--inline.jky-form--grid .el-form-item {
32
+ margin-right: 0;
33
+ .el-form-item__content {
34
+ align-items: flex-start;
35
+ }
36
+ }
37
+
38
+
39
+ /* 响应式断点 */
40
+ @media (min-width: 640px) {
41
+ .jky-form--grid {
42
+ grid-template-columns: repeat(var(--jky-form-grid-cols-sm, var(--jky-form-grid-cols-xs)), minmax(0, 1fr));
43
+ }
44
+ }
45
+ @media (min-width: 768px) {
46
+ .jky-form--grid {
47
+ grid-template-columns: repeat(var(--jky-form-grid-cols-md, var(--jky-form-grid-cols-sm)), minmax(0, 1fr));
48
+ }
49
+ }
50
+ @media (min-width: 1024px) {
51
+ .jky-form--grid {
52
+ grid-template-columns: repeat(var(--jky-form-grid-cols-lg, var(--jky-form-grid-cols-md)), minmax(0, 1fr));
53
+ }
54
+ }
55
+ @media (min-width: 1280px) {
56
+ .jky-form--grid {
57
+ grid-template-columns: repeat(var(--jky-form-grid-cols-xl, var(--jky-form-grid-cols-lg)), minmax(0, 1fr));
58
+ }
59
+ }
60
+ @media (min-width: 1536px) {
61
+ .jky-form--grid {
62
+ grid-template-columns: repeat(var(--jky-form-grid-cols-2xl, var(--jky-form-grid-cols-xl)), minmax(0, 1fr));
63
+ }
64
+ }
65
+ @media (min-width: 1920px) {
66
+ .jky-form--grid {
67
+ grid-template-columns: repeat(var(--jky-form-grid-cols-3xl, var(--jky-form-grid-cols-2xl)), minmax(0, 1fr));
68
+ }
69
+ }
14
70
  .jky-form__title {
15
71
  /* 表单标题样式 */
16
72
  }
package/dist/es/index.js CHANGED
@@ -9,6 +9,7 @@ import { JkyCodeMirrorEditor } from "./code-mirror-editor/index.js";
9
9
  import { JkyForm } from "./form/index.js";
10
10
  import { JkyMenu } from "./menu/index.js";
11
11
  import { JkyPageHeader } from "./page-header/index.js";
12
+ import { JkyPageLayout } from "./page-layout/index.js";
12
13
  import { JkyPageTable } from "./page-table/index.js";
13
14
  import { JkyRichEditor } from "./rich-editor/index.js";
14
15
  import { JkySayHello } from "./say-hello/index.js";
@@ -24,6 +25,7 @@ export {
24
25
  JkyForm,
25
26
  JkyMenu,
26
27
  JkyPageHeader,
28
+ JkyPageLayout,
27
29
  JkyPageTable,
28
30
  JkyRichEditor,
29
31
  JkySayHello,
@@ -1,4 +1,4 @@
1
- const version = "0.0.61";
1
+ const version = "0.0.65";
2
2
  export {
3
3
  version
4
4
  };
@@ -0,0 +1,36 @@
1
+ import { PageLayoutProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ menuHeader?(_: {}): any;
6
+ aside?(_: {}): any;
7
+ aside?(_: {}): any;
8
+ navigationHeader?(_: {}): any;
9
+ navigation?(_: {}): any;
10
+ navigation?(_: {}): any;
11
+ header?(_: {}): any;
12
+ tabs?(_: {}): any;
13
+ dashboard?(_: {}): any;
14
+ dashboard?(_: {}): any;
15
+ default?(_: {}): any;
16
+ default?(_: {
17
+ height: any;
18
+ }): any;
19
+ };
20
+ refs: {};
21
+ rootEl: HTMLDivElement;
22
+ };
23
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
24
+ declare const __VLS_component: import('vue').DefineComponent<PageLayoutProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<PageLayoutProps> & Readonly<{}>, {
25
+ asideWithScrollbar: boolean;
26
+ mainWithScrollbar: boolean;
27
+ navigationWithScrollbar: boolean;
28
+ showNavigation: boolean;
29
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
30
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
31
+ export default _default;
32
+ type __VLS_WithTemplateSlots<T, S> = T & {
33
+ new (): {
34
+ $slots: S;
35
+ };
36
+ };
@@ -0,0 +1,152 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { defineComponent, resolveComponent, openBlock, createElementBlock, createVNode, unref, normalizeClass, createSlots, withCtx, createBlock, renderSlot, createCommentVNode, createElementVNode, resolveDynamicComponent } from "vue";
21
+ import { ElCard, ElScrollbar } from "element-plus";
22
+ const _hoisted_1 = {
23
+ class: "jky-page-layout flex h-full w-full overflow-hidden",
24
+ style: { "--el-menu-border-color": "transparent" }
25
+ };
26
+ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
27
+ name: "JkyPageLayout"
28
+ }), {
29
+ __name: "PageLayout",
30
+ props: {
31
+ asideClass: {},
32
+ asideWithScrollbar: { type: Boolean, default: true },
33
+ mainClass: {},
34
+ mainWithCard: { type: Boolean },
35
+ mainWithScrollbar: { type: Boolean, default: false },
36
+ contentClass: {},
37
+ navigationClass: {},
38
+ navigationWithScrollbar: { type: Boolean, default: true },
39
+ showNavigation: { type: Boolean, default: true },
40
+ headerClass: {},
41
+ tabsClass: {},
42
+ showDashboard: { type: Boolean },
43
+ dashboardWithScrollbar: { type: Boolean },
44
+ dashboardClass: {},
45
+ className: {}
46
+ },
47
+ setup(__props) {
48
+ const props = __props;
49
+ return (_ctx, _cache) => {
50
+ const _component_ElAutoResizer = resolveComponent("ElAutoResizer");
51
+ return openBlock(), createElementBlock("div", _hoisted_1, [
52
+ createVNode(unref(ElCard), {
53
+ class: normalizeClass(["jky-page-layout__aside shrink-0 overflow-hidden p-0", props.asideClass]),
54
+ style: { "--el-card-padding": 0 }
55
+ }, createSlots({
56
+ default: withCtx(() => [
57
+ props.asideWithScrollbar ? (openBlock(), createBlock(unref(ElScrollbar), { key: 0 }, {
58
+ default: withCtx(() => [
59
+ renderSlot(_ctx.$slots, "aside")
60
+ ]),
61
+ _: 3
62
+ })) : renderSlot(_ctx.$slots, "aside", { key: 1 })
63
+ ]),
64
+ _: 2
65
+ }, [
66
+ _ctx.$slots.menuHeader ? {
67
+ name: "header",
68
+ fn: withCtx(() => [
69
+ renderSlot(_ctx.$slots, "menuHeader")
70
+ ]),
71
+ key: "0"
72
+ } : void 0
73
+ ]), 1032, ["class"]),
74
+ __props.showNavigation ? (openBlock(), createBlock(unref(ElCard), {
75
+ key: 0,
76
+ class: normalizeClass(["jky-page-layout__navigation shrink-0 overflow-hidden p-0", props.navigationClass]),
77
+ style: { "--el-card-padding": 0 }
78
+ }, createSlots({
79
+ default: withCtx(() => [
80
+ props.navigationWithScrollbar ? (openBlock(), createBlock(unref(ElScrollbar), { key: 0 }, {
81
+ default: withCtx(() => [
82
+ renderSlot(_ctx.$slots, "navigation")
83
+ ]),
84
+ _: 3
85
+ })) : renderSlot(_ctx.$slots, "navigation", { key: 1 })
86
+ ]),
87
+ _: 2
88
+ }, [
89
+ _ctx.$slots.navigationHeader ? {
90
+ name: "header",
91
+ fn: withCtx(() => [
92
+ renderSlot(_ctx.$slots, "navigationHeader")
93
+ ]),
94
+ key: "0"
95
+ } : void 0
96
+ ]), 1032, ["class"])) : createCommentVNode("", true),
97
+ createElementVNode("div", {
98
+ class: normalizeClass(["jky-page-layout__main flex-1 flex flex-col min-w-0 overflow-hidden p-0 gap-y-4", props.mainClass])
99
+ }, [
100
+ _ctx.$slots.header ? (openBlock(), createElementBlock("div", {
101
+ key: 0,
102
+ class: normalizeClass(["jky-page-layout__header shrink-0 flex items-center overflow-hidden px-4", props.headerClass])
103
+ }, [
104
+ renderSlot(_ctx.$slots, "header")
105
+ ], 2)) : createCommentVNode("", true),
106
+ _ctx.$slots.tabs ? (openBlock(), createElementBlock("div", {
107
+ key: 1,
108
+ class: normalizeClass(["jky-page-layout__tabs shrink-0 overflow-hidden", props.tabsClass])
109
+ }, [
110
+ renderSlot(_ctx.$slots, "tabs")
111
+ ], 2)) : createCommentVNode("", true),
112
+ _ctx.$slots.dashboard ? (openBlock(), createBlock(unref(ElCard), {
113
+ key: 2,
114
+ class: normalizeClass(["jky-page-layout__dashboard shrink-0 overflow-hidden", props.dashboardClass])
115
+ }, {
116
+ default: withCtx(() => [
117
+ props.dashboardWithScrollbar ? (openBlock(), createBlock(unref(ElScrollbar), { key: 0 }, {
118
+ default: withCtx(() => [
119
+ renderSlot(_ctx.$slots, "dashboard")
120
+ ]),
121
+ _: 3
122
+ })) : renderSlot(_ctx.$slots, "dashboard", { key: 1 })
123
+ ]),
124
+ _: 3
125
+ }, 8, ["class"])) : createCommentVNode("", true),
126
+ (openBlock(), createBlock(resolveDynamicComponent(props.mainWithCard ? unref(ElCard) : "div"), {
127
+ "body-class": props.mainWithScrollbar ? "" : "pb-0!",
128
+ class: normalizeClass(["jky-page-layout__content flex-1 min-h-0 overflow-hidden", props.contentClass])
129
+ }, {
130
+ default: withCtx(() => [
131
+ props.mainWithScrollbar ? (openBlock(), createBlock(unref(ElScrollbar), { key: 0 }, {
132
+ default: withCtx(() => [
133
+ renderSlot(_ctx.$slots, "default")
134
+ ]),
135
+ _: 3
136
+ })) : (openBlock(), createBlock(_component_ElAutoResizer, { key: 1 }, {
137
+ default: withCtx(({ height }) => [
138
+ renderSlot(_ctx.$slots, "default", { height })
139
+ ]),
140
+ _: 3
141
+ }))
142
+ ]),
143
+ _: 3
144
+ }, 8, ["body-class", "class"]))
145
+ ], 2)
146
+ ]);
147
+ };
148
+ }
149
+ }));
150
+ export {
151
+ _sfc_main as default
152
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./PageLayout.vue.js";
2
+ /* empty css */
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,4 @@
1
+ import { InstallWithSFC } from '../utils';
2
+ import { default as PageLayout } from './PageLayout.vue';
3
+ export declare const JkyPageLayout: InstallWithSFC<typeof PageLayout>;
4
+ export default JkyPageLayout;
@@ -0,0 +1,8 @@
1
+ import _sfc_main from "./PageLayout.vue.js";
2
+ /* empty css */
3
+ import { installWithSFC } from "../utils/with-install.js";
4
+ const JkyPageLayout = installWithSFC(_sfc_main);
5
+ export {
6
+ JkyPageLayout,
7
+ JkyPageLayout as default
8
+ };
@@ -0,0 +1,10 @@
1
+ :root {
2
+ /* PageLayout 布局组件 CSS 变量 */
3
+ --jky-page-layout-gap: 5;
4
+ }
5
+ .jky-page-layout {
6
+ column-gap: calc(var(--spacing) * var(--jky-page-layout-gap));
7
+ .el-menu {
8
+ border-right: none;
9
+ }
10
+ }