jky-component-lib 0.0.147 → 0.0.149

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.
@@ -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, useModel, ref, openBlock, createElementBlock, renderSlot, createVNode, unref, withCtx, createTextVNode, toDisplayString, createElementVNode, createBlock, createCommentVNode, mergeModels } from "vue";
20
+ import { defineComponent, useModel, ref, openBlock, createElementBlock, renderSlot, createVNode, unref, withCtx, createTextVNode, toDisplayString, createElementVNode, normalizeClass, createBlock, createCommentVNode, mergeModels } from "vue";
21
21
  import { ElButton } from "element-plus";
22
22
  import _sfc_main$1 from "../../modal/Modal.vue.js";
23
23
  /* empty css */
@@ -26,7 +26,7 @@ import _sfc_main$2 from "../AMap.vue.js";
26
26
  import _sfc_main$3 from "../AMarker.vue.js";
27
27
  /* empty css */
28
28
  const _hoisted_1 = { class: "inline-block jky-amap-picker" };
29
- const _hoisted_2 = { class: "relative overflow-hidden jky-amap-picker__map-wrapper" };
29
+ const _hoisted_2 = { class: "relative overflow-hidden w-full h-full jky-amap-picker__map-wrapper" };
30
30
  const _hoisted_3 = {
31
31
  key: 0,
32
32
  class: "absolute left-4 top-2 p-2 bg-white/90 shadow-blueGray flex items-center gap-x-2 jky-amap-picker__coordinate-info"
@@ -42,7 +42,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
42
42
  mode: { default: "dialog" },
43
43
  size: { default: "800px" },
44
44
  zoom: { default: 11 },
45
- center: { default: () => [116.397428, 39.90923] },
45
+ center: { default: () => [120.15507, 30.27408] },
46
46
  disabled: { type: Boolean, default: false }
47
47
  }, {
48
48
  "modelValue": {},
@@ -54,6 +54,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
54
54
  const emit = __emit;
55
55
  const modelValue = useModel(__props, "modelValue");
56
56
  const modalVisible = ref(false);
57
+ const fullscreen = ref(false);
57
58
  const selectedCoordinate = ref(null);
58
59
  function openModal() {
59
60
  if (props.disabled)
@@ -96,6 +97,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
96
97
  createVNode(_sfc_main$1, {
97
98
  modelValue: modalVisible.value,
98
99
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modalVisible.value = $event),
100
+ fullscreen: fullscreen.value,
101
+ "onUpdate:fullscreen": _cache[1] || (_cache[1] = ($event) => fullscreen.value = $event),
99
102
  title: __props.title,
100
103
  mode: __props.mode,
101
104
  size: __props.size,
@@ -108,7 +111,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
108
111
  token: __props.token,
109
112
  zoom: __props.zoom,
110
113
  center: __props.center,
111
- class: "w-full h-80",
114
+ class: normalizeClass(["w-full", [fullscreen.value ? "h-[calc(100vh-100px)]" : "h-80"]]),
112
115
  onClick: handleMapClick
113
116
  }, {
114
117
  default: withCtx(() => {
@@ -124,7 +127,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
124
127
  ];
125
128
  }),
126
129
  _: 1
127
- }, 8, ["token", "zoom", "center"]),
130
+ }, 8, ["token", "zoom", "center", "class"]),
128
131
  selectedCoordinate.value ? (openBlock(), createElementBlock("div", _hoisted_3, [
129
132
  createElementVNode("span", null, "经度: " + toDisplayString(selectedCoordinate.value.lng.toFixed(6)), 1),
130
133
  createElementVNode("span", null, "纬度: " + toDisplayString(selectedCoordinate.value.lat.toFixed(6)), 1)
@@ -132,7 +135,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
132
135
  ])
133
136
  ]),
134
137
  _: 1
135
- }, 8, ["modelValue", "title", "mode", "size"])
138
+ }, 8, ["modelValue", "fullscreen", "title", "mode", "size"])
136
139
  ]);
137
140
  };
138
141
  }
@@ -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.149";
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)
package/dist/es/style.css CHANGED
@@ -1843,6 +1843,10 @@
1843
1843
  height: calc(var(--spacing) * 80);
1844
1844
  }
1845
1845
 
1846
+ .h-\[calc\(100vh-100px\)\] {
1847
+ height: calc(100vh - 100px);
1848
+ }
1849
+
1846
1850
  .h-fit\! {
1847
1851
  height: fit-content !important;
1848
1852
  }
@@ -28,7 +28,7 @@ const AMap_vue_vue_type_script_setup_true_lang = require("../AMap.vue.js");
28
28
  const AMarker_vue_vue_type_script_setup_true_lang = require("../AMarker.vue.js");
29
29
  ;/* empty css */
30
30
  const _hoisted_1 = { class: "inline-block jky-amap-picker" };
31
- const _hoisted_2 = { class: "relative overflow-hidden jky-amap-picker__map-wrapper" };
31
+ const _hoisted_2 = { class: "relative overflow-hidden w-full h-full jky-amap-picker__map-wrapper" };
32
32
  const _hoisted_3 = {
33
33
  key: 0,
34
34
  class: "absolute left-4 top-2 p-2 bg-white/90 shadow-blueGray flex items-center gap-x-2 jky-amap-picker__coordinate-info"
@@ -44,7 +44,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
44
44
  mode: { default: "dialog" },
45
45
  size: { default: "800px" },
46
46
  zoom: { default: 11 },
47
- center: { default: () => [116.397428, 39.90923] },
47
+ center: { default: () => [120.15507, 30.27408] },
48
48
  disabled: { type: Boolean, default: false }
49
49
  }, {
50
50
  "modelValue": {},
@@ -56,6 +56,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
56
56
  const emit = __emit;
57
57
  const modelValue = vue.useModel(__props, "modelValue");
58
58
  const modalVisible = vue.ref(false);
59
+ const fullscreen = vue.ref(false);
59
60
  const selectedCoordinate = vue.ref(null);
60
61
  function openModal() {
61
62
  if (props.disabled)
@@ -98,6 +99,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
98
99
  vue.createVNode(Modal_vue_vue_type_script_setup_true_lang.default, {
99
100
  modelValue: modalVisible.value,
100
101
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modalVisible.value = $event),
102
+ fullscreen: fullscreen.value,
103
+ "onUpdate:fullscreen": _cache[1] || (_cache[1] = ($event) => fullscreen.value = $event),
101
104
  title: __props.title,
102
105
  mode: __props.mode,
103
106
  size: __props.size,
@@ -110,7 +113,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
110
113
  token: __props.token,
111
114
  zoom: __props.zoom,
112
115
  center: __props.center,
113
- class: "w-full h-80",
116
+ class: vue.normalizeClass(["w-full", [fullscreen.value ? "h-[calc(100vh-100px)]" : "h-80"]]),
114
117
  onClick: handleMapClick
115
118
  }, {
116
119
  default: vue.withCtx(() => {
@@ -126,7 +129,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
126
129
  ];
127
130
  }),
128
131
  _: 1
129
- }, 8, ["token", "zoom", "center"]),
132
+ }, 8, ["token", "zoom", "center", "class"]),
130
133
  selectedCoordinate.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
131
134
  vue.createElementVNode("span", null, "经度: " + vue.toDisplayString(selectedCoordinate.value.lng.toFixed(6)), 1),
132
135
  vue.createElementVNode("span", null, "纬度: " + vue.toDisplayString(selectedCoordinate.value.lat.toFixed(6)), 1)
@@ -134,7 +137,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
134
137
  ])
135
138
  ]),
136
139
  _: 1
137
- }, 8, ["modelValue", "title", "mode", "size"])
140
+ }, 8, ["modelValue", "fullscreen", "title", "mode", "size"])
138
141
  ]);
139
142
  };
140
143
  }
@@ -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.149";
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)
@@ -1843,6 +1843,10 @@
1843
1843
  height: calc(var(--spacing) * 80);
1844
1844
  }
1845
1845
 
1846
+ .h-\[calc\(100vh-100px\)\] {
1847
+ height: calc(100vh - 100px);
1848
+ }
1849
+
1846
1850
  .h-fit\! {
1847
1851
  height: fit-content !important;
1848
1852
  }
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.149",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },