jky-component-lib 0.0.147 → 0.0.148

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.
@@ -1,14 +1,7 @@
1
- /* AMap 高德地图组件样式 */
2
- .jky-amap-container {
3
- /* 地图容器样式 */
4
- position: relative;
5
- overflow: hidden;
6
1
 
7
- /* 隐藏高德地图的 logo 和版权信息(注意:商业使用请遵守高德地图条款) */
8
- .amap-logo {
9
- display: none !important;
10
- }
11
- .amap-copyright {
12
- display: none !important;
13
- }
2
+ /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
+ .amap-icon img,
4
+ .amap-marker-content img {
5
+ width: 25px;
6
+ height: 34px;
14
7
  }
@@ -1,7 +1,14 @@
1
+ /* AMap 高德地图组件样式 */
2
+ .jky-amap-container {
3
+ /* 地图容器样式 */
4
+ position: relative;
5
+ overflow: hidden;
1
6
 
2
- /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
- .amap-icon img,
4
- .amap-marker-content img {
5
- width: 25px;
6
- height: 34px;
7
+ /* 隐藏高德地图的 logo 和版权信息(注意:商业使用请遵守高德地图条款) */
8
+ .amap-logo {
9
+ display: none !important;
10
+ }
11
+ .amap-copyright {
12
+ display: none !important;
13
+ }
7
14
  }
@@ -17,7 +17,7 @@ var __spreadValues = (a, b) => {
17
17
  return a;
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import { defineComponent, useAttrs, openBlock, createBlock, unref, mergeProps, withCtx, createElementBlock, Fragment, renderList, normalizeClass, createCommentVNode, toDisplayString, renderSlot } from "vue";
20
+ import { defineComponent, useAttrs, resolveComponent, openBlock, createBlock, unref, mergeProps, withCtx, createElementBlock, Fragment, renderList, normalizeClass, createCommentVNode, toDisplayString, renderSlot } from "vue";
21
21
  import { ElMenu, ElSubMenu, ElMenuItem } from "element-plus";
22
22
  import _sfc_main$1 from "./MenuItem.vue.js";
23
23
  const _hoisted_1 = {
@@ -62,6 +62,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
62
62
  const props = __props;
63
63
  const attrs = useAttrs();
64
64
  return (_ctx, _cache) => {
65
+ const _component_el_icon = resolveComponent("el-icon");
65
66
  return openBlock(), createBlock(unref(ElMenu), mergeProps({ class: "jky-menu" }, __spreadValues(__spreadValues({}, unref(attrs)), props)), {
66
67
  default: withCtx(() => [
67
68
  props.menuData && props.menuData.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(props.menuData, (item) => {
@@ -78,10 +79,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
78
79
  "popper-offset": item.popperOffset
79
80
  }, {
80
81
  title: withCtx(() => [
81
- item.icon ? (openBlock(), createElementBlock("span", {
82
- key: 0,
83
- class: normalizeClass([item.icon, "text-lg mr-1 jky-menu-item__icon"])
84
- }, null, 2)) : createCommentVNode("", true),
82
+ item.icon ? (openBlock(), createBlock(_component_el_icon, { key: 0 }, {
83
+ default: withCtx(() => [
84
+ item.icon ? (openBlock(), createElementBlock("span", {
85
+ key: 0,
86
+ class: normalizeClass([item.icon, "text-lg mr-1 jky-menu-item__icon"])
87
+ }, null, 2)) : createCommentVNode("", true)
88
+ ]),
89
+ _: 2
90
+ }, 1024)) : createCommentVNode("", true),
85
91
  item.title ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(item.title), 1)) : createCommentVNode("", true)
86
92
  ]),
87
93
  default: withCtx(() => [
@@ -102,10 +108,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
102
108
  route: item.route
103
109
  }, {
104
110
  default: withCtx(() => [
105
- item.icon ? (openBlock(), createElementBlock("span", {
106
- key: 0,
107
- class: normalizeClass([item.icon, "text-lg mr-1 jky-menu-item__icon"])
108
- }, null, 2)) : createCommentVNode("", true),
111
+ item.icon ? (openBlock(), createBlock(_component_el_icon, { key: 0 }, {
112
+ default: withCtx(() => [
113
+ item.icon ? (openBlock(), createElementBlock("span", {
114
+ key: 0,
115
+ class: normalizeClass([item.icon, "text-lg mr-1 jky-menu-item__icon"])
116
+ }, null, 2)) : createCommentVNode("", true)
117
+ ]),
118
+ _: 2
119
+ }, 1024)) : createCommentVNode("", true),
109
120
  item.title ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(item.title), 1)) : createCommentVNode("", true)
110
121
  ]),
111
122
  _: 2
@@ -18,6 +18,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
18
18
  const props = __props;
19
19
  return (_ctx, _cache) => {
20
20
  var _a, _b;
21
+ const _component_el_icon = resolveComponent("el-icon");
21
22
  const _component_MenuItem = resolveComponent("MenuItem", true);
22
23
  return !props.item.hideMenu ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
23
24
  props.item.children && props.item.children.length > 0 ? (openBlock(), createBlock(unref(ElSubMenu), {
@@ -28,10 +29,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
28
29
  "popper-offset": props.item.popperOffset
29
30
  }, {
30
31
  title: withCtx(() => [
31
- props.item.icon ? (openBlock(), createElementBlock("span", {
32
- key: 0,
33
- class: normalizeClass([props.item.icon, "text-lg mr-1 jky-menu-item__icon"])
34
- }, null, 2)) : createCommentVNode("", true),
32
+ __props.item.icon ? (openBlock(), createBlock(_component_el_icon, { key: 0 }, {
33
+ default: withCtx(() => [
34
+ __props.item.icon ? (openBlock(), createElementBlock("span", {
35
+ key: 0,
36
+ class: normalizeClass([__props.item.icon, "text-lg mr-1 jky-menu-item__icon"])
37
+ }, null, 2)) : createCommentVNode("", true)
38
+ ]),
39
+ _: 1
40
+ })) : createCommentVNode("", true),
35
41
  props.item.title ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(props.item.title), 1)) : createCommentVNode("", true)
36
42
  ]),
37
43
  default: withCtx(() => [
@@ -52,10 +58,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
52
58
  route: props.item.route
53
59
  }, {
54
60
  default: withCtx(() => [
55
- props.item.icon ? (openBlock(), createElementBlock("span", {
56
- key: 0,
57
- class: normalizeClass([props.item.icon, "text-lg mr-1 jky-menu-item__icon"])
58
- }, null, 2)) : createCommentVNode("", true),
61
+ __props.item.icon ? (openBlock(), createBlock(_component_el_icon, { key: 0 }, {
62
+ default: withCtx(() => [
63
+ __props.item.icon ? (openBlock(), createElementBlock("span", {
64
+ key: 0,
65
+ class: normalizeClass([__props.item.icon, "text-lg mr-1 jky-menu-item__icon"])
66
+ }, null, 2)) : createCommentVNode("", true)
67
+ ]),
68
+ _: 1
69
+ })) : createCommentVNode("", true),
59
70
  props.item.title ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(props.item.title), 1)) : createCommentVNode("", true)
60
71
  ]),
61
72
  _: 1
@@ -1,4 +1,4 @@
1
- const version = "0.0.147";
1
+ const version = "0.0.148";
2
2
  export {
3
3
  version
4
4
  };
@@ -1,5 +1,11 @@
1
1
  import { PageLayoutProps } from './types';
2
- declare const _default: import('vue').DefineComponent<PageLayoutProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<PageLayoutProps> & Readonly<{}>, {
2
+ declare const _default: import('vue').DefineComponent<PageLayoutProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
3
+ menuOpen: () => any;
4
+ menuClose: () => any;
5
+ }, string, import('vue').PublicProps, Readonly<PageLayoutProps> & Readonly<{
6
+ onMenuOpen?: (() => any) | undefined;
7
+ onMenuClose?: (() => any) | undefined;
8
+ }>, {
3
9
  cachable: boolean;
4
10
  roundTabs: boolean;
5
11
  showTopMenu: boolean;
@@ -29,7 +29,8 @@ var __objRest = (source, exclude) => {
29
29
  }
30
30
  return target;
31
31
  };
32
- import { defineComponent, useAttrs, ref, computed, watch, resolveComponent, openBlock, createElementBlock, normalizeClass, createBlock, unref, withCtx, createElementVNode, createVNode, createCommentVNode, normalizeStyle, resolveDynamicComponent, Transition, KeepAlive } from "vue";
32
+ import { defineComponent, useAttrs, computed, ref, watch, resolveComponent, openBlock, createElementBlock, normalizeClass, createBlock, unref, withCtx, createElementVNode, createVNode, createCommentVNode, normalizeStyle, resolveDynamicComponent, Transition, KeepAlive } from "vue";
33
+ import { useWindowSize } from "@vueuse/core";
33
34
  import { ElCard, ElAside, ElScrollbar } from "element-plus";
34
35
  import { cloneDeep } from "lodash-es";
35
36
  import { useRouter, useRoute, RouterView } from "vue-router";
@@ -67,9 +68,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
67
68
  topMenuSingleLevel: { type: Boolean, default: true },
68
69
  sideMenuWithParent: { type: Boolean, default: true }
69
70
  },
70
- setup(__props) {
71
+ emits: ["menuOpen", "menuClose"],
72
+ setup(__props, { emit: __emit }) {
71
73
  var _a, _b;
72
74
  const props = __props;
75
+ const emit = __emit;
73
76
  const router = useRouter();
74
77
  const route = useRoute();
75
78
  const attrs = useAttrs();
@@ -77,6 +80,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
77
80
  enableCache: (_b = (_a = props.cachable) != null ? _a : attrs.cachable) != null ? _b : true
78
81
  });
79
82
  const tabsStore = useTabsStore();
83
+ const { width: vw } = useWindowSize();
84
+ const isCollapse = computed(() => {
85
+ return vw.value < 768;
86
+ });
87
+ function handleOpenMenu() {
88
+ emit("menuOpen");
89
+ }
90
+ function handleCloseMenu() {
91
+ emit("menuClose");
92
+ }
80
93
  const activeTopMenu = ref("");
81
94
  const activeSideMenu = ref("");
82
95
  const routes = router.getRoutes();
@@ -169,6 +182,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
169
182
  });
170
183
  const computedAsideWidth = computed(() => {
171
184
  if (showSideMenu.value && displayedSideMenu.value.length > 0) {
185
+ if (isCollapse.value) {
186
+ return "64px";
187
+ }
172
188
  return props.asideWidth;
173
189
  }
174
190
  return "0";
@@ -227,7 +243,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
227
243
  })) : createCommentVNode("", true),
228
244
  createElementVNode("div", _hoisted_2, [
229
245
  createVNode(unref(ElAside), {
230
- class: "shrink-0 overflow-hidden h-full",
246
+ class: "shrink-0 overflow-hidden h-full transition-all",
231
247
  style: normalizeStyle({ "--el-aside-width": computedAsideWidth.value })
232
248
  }, {
233
249
  default: withCtx(() => [
@@ -244,8 +260,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
244
260
  "default-active": activeSideMenu.value,
245
261
  "menu-data": displayedSideMenu.value,
246
262
  class: "jky-page-layout__side-menu",
247
- onSelect: handleMenuSelect
248
- }, null, 8, ["default-active", "menu-data"])
263
+ collapse: isCollapse.value,
264
+ onSelect: handleMenuSelect,
265
+ onOpen: handleOpenMenu,
266
+ onClose: handleCloseMenu
267
+ }, null, 8, ["default-active", "menu-data", "collapse"])
249
268
  ]),
250
269
  _: 1
251
270
  })) : (openBlock(), createBlock(_sfc_main$1, {
@@ -254,8 +273,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
254
273
  "default-active": activeSideMenu.value,
255
274
  "menu-data": displayedSideMenu.value,
256
275
  class: "jky-page-layout__side-menu",
257
- onSelect: handleMenuSelect
258
- }, null, 8, ["default-active", "menu-data"]))
276
+ collapse: isCollapse.value,
277
+ onSelect: handleMenuSelect,
278
+ onOpen: handleOpenMenu,
279
+ onClose: handleCloseMenu
280
+ }, null, 8, ["default-active", "menu-data", "collapse"]))
259
281
  ]),
260
282
  _: 1
261
283
  }, 8, ["style"])) : createCommentVNode("", true)
@@ -1,14 +1,7 @@
1
- /* AMap 高德地图组件样式 */
2
- .jky-amap-container {
3
- /* 地图容器样式 */
4
- position: relative;
5
- overflow: hidden;
6
1
 
7
- /* 隐藏高德地图的 logo 和版权信息(注意:商业使用请遵守高德地图条款) */
8
- .amap-logo {
9
- display: none !important;
10
- }
11
- .amap-copyright {
12
- display: none !important;
13
- }
2
+ /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
+ .amap-icon img,
4
+ .amap-marker-content img {
5
+ width: 25px;
6
+ height: 34px;
14
7
  }
@@ -1,7 +1,14 @@
1
+ /* AMap 高德地图组件样式 */
2
+ .jky-amap-container {
3
+ /* 地图容器样式 */
4
+ position: relative;
5
+ overflow: hidden;
1
6
 
2
- /* JkyAMarker 组件样式 - 参考高德官方示例 */
3
- .amap-icon img,
4
- .amap-marker-content img {
5
- width: 25px;
6
- height: 34px;
7
+ /* 隐藏高德地图的 logo 和版权信息(注意:商业使用请遵守高德地图条款) */
8
+ .amap-logo {
9
+ display: none !important;
10
+ }
11
+ .amap-copyright {
12
+ display: none !important;
13
+ }
7
14
  }
@@ -64,6 +64,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
64
64
  const props = __props;
65
65
  const attrs = vue.useAttrs();
66
66
  return (_ctx, _cache) => {
67
+ const _component_el_icon = vue.resolveComponent("el-icon");
67
68
  return vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElMenu), vue.mergeProps({ class: "jky-menu" }, __spreadValues(__spreadValues({}, vue.unref(attrs)), props)), {
68
69
  default: vue.withCtx(() => [
69
70
  props.menuData && props.menuData.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(props.menuData, (item) => {
@@ -80,10 +81,15 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
80
81
  "popper-offset": item.popperOffset
81
82
  }, {
82
83
  title: vue.withCtx(() => [
83
- item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
84
- key: 0,
85
- class: vue.normalizeClass([item.icon, "text-lg mr-1 jky-menu-item__icon"])
86
- }, null, 2)) : vue.createCommentVNode("", true),
84
+ item.icon ? (vue.openBlock(), vue.createBlock(_component_el_icon, { key: 0 }, {
85
+ default: vue.withCtx(() => [
86
+ item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
87
+ key: 0,
88
+ class: vue.normalizeClass([item.icon, "text-lg mr-1 jky-menu-item__icon"])
89
+ }, null, 2)) : vue.createCommentVNode("", true)
90
+ ]),
91
+ _: 2
92
+ }, 1024)) : vue.createCommentVNode("", true),
87
93
  item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(item.title), 1)) : vue.createCommentVNode("", true)
88
94
  ]),
89
95
  default: vue.withCtx(() => [
@@ -104,10 +110,15 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
104
110
  route: item.route
105
111
  }, {
106
112
  default: vue.withCtx(() => [
107
- item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
108
- key: 0,
109
- class: vue.normalizeClass([item.icon, "text-lg mr-1 jky-menu-item__icon"])
110
- }, null, 2)) : vue.createCommentVNode("", true),
113
+ item.icon ? (vue.openBlock(), vue.createBlock(_component_el_icon, { key: 0 }, {
114
+ default: vue.withCtx(() => [
115
+ item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
116
+ key: 0,
117
+ class: vue.normalizeClass([item.icon, "text-lg mr-1 jky-menu-item__icon"])
118
+ }, null, 2)) : vue.createCommentVNode("", true)
119
+ ]),
120
+ _: 2
121
+ }, 1024)) : vue.createCommentVNode("", true),
111
122
  item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(item.title), 1)) : vue.createCommentVNode("", true)
112
123
  ]),
113
124
  _: 2
@@ -20,6 +20,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
20
20
  const props = __props;
21
21
  return (_ctx, _cache) => {
22
22
  var _a, _b;
23
+ const _component_el_icon = vue.resolveComponent("el-icon");
23
24
  const _component_MenuItem = vue.resolveComponent("MenuItem", true);
24
25
  return !props.item.hideMenu ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
25
26
  props.item.children && props.item.children.length > 0 ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElSubMenu), {
@@ -30,10 +31,15 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
30
31
  "popper-offset": props.item.popperOffset
31
32
  }, {
32
33
  title: vue.withCtx(() => [
33
- props.item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
34
- key: 0,
35
- class: vue.normalizeClass([props.item.icon, "text-lg mr-1 jky-menu-item__icon"])
36
- }, null, 2)) : vue.createCommentVNode("", true),
34
+ __props.item.icon ? (vue.openBlock(), vue.createBlock(_component_el_icon, { key: 0 }, {
35
+ default: vue.withCtx(() => [
36
+ __props.item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
37
+ key: 0,
38
+ class: vue.normalizeClass([__props.item.icon, "text-lg mr-1 jky-menu-item__icon"])
39
+ }, null, 2)) : vue.createCommentVNode("", true)
40
+ ]),
41
+ _: 1
42
+ })) : vue.createCommentVNode("", true),
37
43
  props.item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(props.item.title), 1)) : vue.createCommentVNode("", true)
38
44
  ]),
39
45
  default: vue.withCtx(() => [
@@ -54,10 +60,15 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
54
60
  route: props.item.route
55
61
  }, {
56
62
  default: vue.withCtx(() => [
57
- props.item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
58
- key: 0,
59
- class: vue.normalizeClass([props.item.icon, "text-lg mr-1 jky-menu-item__icon"])
60
- }, null, 2)) : vue.createCommentVNode("", true),
63
+ __props.item.icon ? (vue.openBlock(), vue.createBlock(_component_el_icon, { key: 0 }, {
64
+ default: vue.withCtx(() => [
65
+ __props.item.icon ? (vue.openBlock(), vue.createElementBlock("span", {
66
+ key: 0,
67
+ class: vue.normalizeClass([__props.item.icon, "text-lg mr-1 jky-menu-item__icon"])
68
+ }, null, 2)) : vue.createCommentVNode("", true)
69
+ ]),
70
+ _: 1
71
+ })) : vue.createCommentVNode("", true),
61
72
  props.item.title ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(props.item.title), 1)) : vue.createCommentVNode("", true)
62
73
  ]),
63
74
  _: 1
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const version = "0.0.147";
3
+ const version = "0.0.148";
4
4
  exports.version = version;
@@ -1,5 +1,11 @@
1
1
  import { PageLayoutProps } from './types';
2
- declare const _default: import('vue').DefineComponent<PageLayoutProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<PageLayoutProps> & Readonly<{}>, {
2
+ declare const _default: import('vue').DefineComponent<PageLayoutProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
3
+ menuOpen: () => any;
4
+ menuClose: () => any;
5
+ }, string, import('vue').PublicProps, Readonly<PageLayoutProps> & Readonly<{
6
+ onMenuOpen?: (() => any) | undefined;
7
+ onMenuClose?: (() => any) | undefined;
8
+ }>, {
3
9
  cachable: boolean;
4
10
  roundTabs: boolean;
5
11
  showTopMenu: boolean;
@@ -32,6 +32,7 @@ var __objRest = (source, exclude) => {
32
32
  };
33
33
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
34
34
  const vue = require("vue");
35
+ const core = require("@vueuse/core");
35
36
  const ElementPlus = require("element-plus");
36
37
  const lodashEs = require("lodash-es");
37
38
  const vueRouter = require("vue-router");
@@ -69,9 +70,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
69
70
  topMenuSingleLevel: { type: Boolean, default: true },
70
71
  sideMenuWithParent: { type: Boolean, default: true }
71
72
  },
72
- setup(__props) {
73
+ emits: ["menuOpen", "menuClose"],
74
+ setup(__props, { emit: __emit }) {
73
75
  var _a, _b;
74
76
  const props = __props;
77
+ const emit = __emit;
75
78
  const router = vueRouter.useRouter();
76
79
  const route = vueRouter.useRoute();
77
80
  const attrs = vue.useAttrs();
@@ -79,6 +82,16 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
79
82
  enableCache: (_b = (_a = props.cachable) != null ? _a : attrs.cachable) != null ? _b : true
80
83
  });
81
84
  const tabsStore = useTabsStore$1();
85
+ const { width: vw } = core.useWindowSize();
86
+ const isCollapse = vue.computed(() => {
87
+ return vw.value < 768;
88
+ });
89
+ function handleOpenMenu() {
90
+ emit("menuOpen");
91
+ }
92
+ function handleCloseMenu() {
93
+ emit("menuClose");
94
+ }
82
95
  const activeTopMenu = vue.ref("");
83
96
  const activeSideMenu = vue.ref("");
84
97
  const routes = router.getRoutes();
@@ -171,6 +184,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
171
184
  });
172
185
  const computedAsideWidth = vue.computed(() => {
173
186
  if (showSideMenu.value && displayedSideMenu.value.length > 0) {
187
+ if (isCollapse.value) {
188
+ return "64px";
189
+ }
174
190
  return props.asideWidth;
175
191
  }
176
192
  return "0";
@@ -229,7 +245,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
229
245
  })) : vue.createCommentVNode("", true),
230
246
  vue.createElementVNode("div", _hoisted_2, [
231
247
  vue.createVNode(vue.unref(ElementPlus.ElAside), {
232
- class: "shrink-0 overflow-hidden h-full",
248
+ class: "shrink-0 overflow-hidden h-full transition-all",
233
249
  style: vue.normalizeStyle({ "--el-aside-width": computedAsideWidth.value })
234
250
  }, {
235
251
  default: vue.withCtx(() => [
@@ -246,8 +262,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
246
262
  "default-active": activeSideMenu.value,
247
263
  "menu-data": displayedSideMenu.value,
248
264
  class: "jky-page-layout__side-menu",
249
- onSelect: handleMenuSelect
250
- }, null, 8, ["default-active", "menu-data"])
265
+ collapse: isCollapse.value,
266
+ onSelect: handleMenuSelect,
267
+ onOpen: handleOpenMenu,
268
+ onClose: handleCloseMenu
269
+ }, null, 8, ["default-active", "menu-data", "collapse"])
251
270
  ]),
252
271
  _: 1
253
272
  })) : (vue.openBlock(), vue.createBlock(Menu_vue_vue_type_script_setup_true_lang.default, {
@@ -256,8 +275,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
256
275
  "default-active": activeSideMenu.value,
257
276
  "menu-data": displayedSideMenu.value,
258
277
  class: "jky-page-layout__side-menu",
259
- onSelect: handleMenuSelect
260
- }, null, 8, ["default-active", "menu-data"]))
278
+ collapse: isCollapse.value,
279
+ onSelect: handleMenuSelect,
280
+ onOpen: handleOpenMenu,
281
+ onClose: handleCloseMenu
282
+ }, null, 8, ["default-active", "menu-data", "collapse"]))
261
283
  ]),
262
284
  _: 1
263
285
  }, 8, ["style"])) : vue.createCommentVNode("", true)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jky-component-lib",
3
3
  "type": "module",
4
- "version": "0.0.147",
4
+ "version": "0.0.148",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },