@zl-ui-kit/components 0.26.1 → 0.27.0

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 (112) hide show
  1. package/README.md +22 -18
  2. package/dist/components/ZlAction/List.vue.mjs +46 -49
  3. package/dist/components/ZlAction/index.vue.d.ts +1 -7
  4. package/dist/components/ZlAction/index.vue.mjs +8 -12
  5. package/dist/components/ZlAction/types.d.ts +2 -5
  6. package/dist/components/ZlAppLayout/Horizontal.css +1 -1
  7. package/dist/components/ZlAppLayout/Vertical.css +1 -1
  8. package/dist/components/ZlAppLayout/Vertical2.vue.mjs +41 -39
  9. package/dist/components/ZlAppLayout/index.vue.d.ts +6 -6
  10. package/dist/components/ZlAppLayout/index.vue.mjs +8 -8
  11. package/dist/components/ZlAppMenu/AppMenu.css +1 -0
  12. package/dist/components/ZlAppMenu/AppMenu.vue.d.ts +27 -0
  13. package/dist/components/ZlAppMenu/AppMenu.vue.mjs +37 -0
  14. package/dist/components/ZlAppMenu/AppMenu3.vue.mjs +6 -0
  15. package/dist/components/ZlAppMenu/AppMenuItem.vue.d.ts +11 -0
  16. package/dist/components/ZlAppMenu/AppMenuItem.vue.mjs +58 -0
  17. package/dist/components/ZlAppMenu/AppMenuItem2.vue.mjs +5 -0
  18. package/dist/components/ZlAppSlogan/index.css +1 -1
  19. package/dist/components/ZlAppSlogan/index.vue.d.ts +1 -1
  20. package/dist/components/ZlAppSlogan/index.vue.mjs +12 -19
  21. package/dist/components/ZlCardPage/index.vue.d.ts +3 -41
  22. package/dist/components/ZlCardPage/index.vue.mjs +68 -68
  23. package/dist/components/ZlCheckboxTag/index.css +1 -1
  24. package/dist/components/ZlCheckboxTag/index.vue.d.ts +4 -4
  25. package/dist/components/ZlCheckboxTag/index.vue.mjs +30 -34
  26. package/dist/components/ZlCopy/copy.mjs +7 -17
  27. package/dist/components/ZlCopy/index.css +1 -1
  28. package/dist/components/ZlCopy/index.vue.mjs +2 -2
  29. package/dist/components/ZlCopy/index2.vue.mjs +36 -34
  30. package/dist/components/ZlDescription/index.css +1 -1
  31. package/dist/components/ZlDescription/index.vue.mjs +24 -28
  32. package/dist/components/ZlDialog/index.css +1 -1
  33. package/dist/components/ZlDialog/index.vue.d.ts +0 -3
  34. package/dist/components/ZlDialog/index.vue.mjs +35 -39
  35. package/dist/components/ZlDictTag/index.vue.d.ts +3 -12
  36. package/dist/components/ZlDictTag/index.vue.mjs +26 -31
  37. package/dist/components/ZlDrawer/index.css +1 -1
  38. package/dist/components/ZlDrawer/index.vue.d.ts +0 -3
  39. package/dist/components/ZlDrawer/index.vue.mjs +32 -36
  40. package/dist/components/ZlDynamicComponent/index.vue.d.ts +3 -5
  41. package/dist/components/ZlForm/index.css +1 -1
  42. package/dist/components/ZlForm/index.vue.d.ts +0 -7
  43. package/dist/components/ZlForm/index.vue.mjs +47 -50
  44. package/dist/components/ZlLayoutSwitch/index.css +1 -1
  45. package/dist/components/ZlLayoutSwitch/index.vue.d.ts +0 -10
  46. package/dist/components/ZlLayoutSwitch/index.vue.mjs +1 -1
  47. package/dist/components/ZlLayoutSwitch/index2.vue.mjs +19 -27
  48. package/dist/components/ZlLogin/components/LoginForm.css +1 -1
  49. package/dist/components/ZlLogin/components/LoginForm.vue.mjs +1 -1
  50. package/dist/components/ZlLogin/components/LoginForm2.vue.mjs +25 -26
  51. package/dist/components/ZlPageContainer/index.css +1 -1
  52. package/dist/components/ZlPageContainer/index.vue.mjs +1 -1
  53. package/dist/components/ZlPagination/index.css +1 -1
  54. package/dist/components/ZlPagination/index.vue.d.ts +1 -21
  55. package/dist/components/ZlPagination/index.vue.mjs +1 -1
  56. package/dist/components/ZlPagination/index2.vue.mjs +33 -59
  57. package/dist/components/ZlPagination/usePagination.d.ts +0 -1
  58. package/dist/components/ZlPagination/usePagination.mjs +34 -51
  59. package/dist/components/ZlPopconfirm/index.vue.mjs +24 -25
  60. package/dist/components/ZlSearch/index.vue.d.ts +0 -25
  61. package/dist/components/ZlSearch/index.vue.mjs +205 -202
  62. package/dist/components/ZlSearchTable/index.vue.d.ts +2 -40
  63. package/dist/components/ZlSearchTable/index.vue.mjs +55 -59
  64. package/dist/components/ZlTable/useTablePagination.d.ts +0 -1
  65. package/dist/components/ZlTable/useTablePagination.mjs +23 -37
  66. package/dist/components/ZlTabs/index.vue.d.ts +3 -16
  67. package/dist/components/ZlTag/ZlCornerTag.css +1 -1
  68. package/dist/components/ZlTag/ZlCornerTag.vue.d.ts +1 -14
  69. package/dist/components/ZlTag/ZlCornerTag.vue.mjs +14 -25
  70. package/dist/components/ZlTag/index.vue.mjs +4 -4
  71. package/dist/components/ZlUpload/index.css +1 -1
  72. package/dist/components/ZlUpload/index.vue.d.ts +3 -44
  73. package/dist/components/ZlUpload/index.vue.mjs +3 -3
  74. package/dist/components/ZlUpload/index2.vue.mjs +79 -119
  75. package/dist/index.d.ts +2 -8
  76. package/dist/index.mjs +169 -183
  77. package/dist/locales/en.mjs +2 -2
  78. package/dist/locales/zh-cn.mjs +3 -3
  79. package/package.json +6 -6
  80. package/dist/components/ZlAppLayout/HeaderAside.css +0 -1
  81. package/dist/components/ZlAppLayout/HeaderAside.vue.d.ts +0 -25
  82. package/dist/components/ZlAppLayout/HeaderAside.vue.mjs +0 -6
  83. package/dist/components/ZlAppLayout/HeaderAside2.vue.mjs +0 -65
  84. package/dist/components/ZlBreadcrumb/index.css +0 -1
  85. package/dist/components/ZlBreadcrumb/index.vue.d.ts +0 -32
  86. package/dist/components/ZlBreadcrumb/index.vue.mjs +0 -58
  87. package/dist/components/ZlBreadcrumb/index3.vue.mjs +0 -6
  88. package/dist/components/ZlBreadcrumb/types.d.ts +0 -16
  89. package/dist/components/ZlButton/index.vue.d.ts +0 -81
  90. package/dist/components/ZlButton/index.vue.mjs +0 -60
  91. package/dist/components/ZlButton/index2.vue.mjs +0 -5
  92. package/dist/components/ZlCardPage/resolvePagination.d.ts +0 -20
  93. package/dist/components/ZlCardPage/resolvePagination.mjs +0 -24
  94. package/dist/components/ZlDevMenu/index.css +0 -1
  95. package/dist/components/ZlDevMenu/index.vue.d.ts +0 -33
  96. package/dist/components/ZlDevMenu/index.vue.mjs +0 -110
  97. package/dist/components/ZlDevMenu/index3.vue.mjs +0 -6
  98. package/dist/components/ZlDevMenu/types.d.ts +0 -8
  99. package/dist/components/ZlLoading/index.css +0 -1
  100. package/dist/components/ZlLoading/index.vue.d.ts +0 -27
  101. package/dist/components/ZlLoading/index.vue.mjs +0 -8
  102. package/dist/components/ZlLoading/index2.vue.mjs +0 -30
  103. package/dist/components/ZlMenu/MenuIcon.d.ts +0 -17
  104. package/dist/components/ZlMenu/MenuIcon.mjs +0 -21
  105. package/dist/components/ZlMenu/ZlMenuItem.vue.d.ts +0 -7
  106. package/dist/components/ZlMenu/ZlMenuItem.vue.mjs +0 -53
  107. package/dist/components/ZlMenu/ZlMenuItem2.vue.mjs +0 -5
  108. package/dist/components/ZlMenu/index.css +0 -1
  109. package/dist/components/ZlMenu/index.vue.d.ts +0 -40
  110. package/dist/components/ZlMenu/index.vue.mjs +0 -60
  111. package/dist/components/ZlMenu/index3.vue.mjs +0 -6
  112. package/dist/components/ZlMenu/types.d.ts +0 -20
package/README.md CHANGED
@@ -4325,7 +4325,7 @@ import { ZlAddSub } from '@zl-ui-kit/components'
4325
4325
 
4326
4326
  <sub>入口 `@zl-ui-kit/components` · 源码 `packages/components/src/components/ZlAppLayout/index.vue`</sub>
4327
4327
 
4328
- **接口概览**:1 props · 8 插槽
4328
+ **接口概览**:5 props · 8 插槽
4329
4329
 
4330
4330
  **用法示例**
4331
4331
 
@@ -4358,9 +4358,13 @@ import { ZlAppLayout } from '@zl-ui-kit/components'
4358
4358
 
4359
4359
  **props**
4360
4360
 
4361
- | 属性 | 类型 | 默认值 | 必填 | 示例 | 说明 |
4362
- | -------- | ---------------------------------------------- | ---------------- | ---- | --------------------- | ---------------------------------------------------------------------------- |
4363
- | `layout` | `'horizontal' \| 'vertical' \| 'header-aside'` | `'header-aside'` | 否 | `layout="horizontal"` | 布局方向:横向用顶部菜单,纵向用侧边菜单,header-aside 用通栏顶栏 + 侧边菜单 |
4361
+ | 属性 | 类型 | 默认值 | 必填 | 示例 | 说明 |
4362
+ | -------------------- | ---------------------------------------------- | ---------------- | ---- | -------------------------------------------------- | ---------------------------------------------------------------------------- |
4363
+ | `layout` | `'horizontal' \| 'vertical' \| 'header-aside'` | `'header-aside'` | 否 | `layout="horizontal"` | 布局方向:横向用顶部菜单,纵向用侧边菜单,header-aside 用通栏顶栏 + 侧边菜单 |
4364
+ | `header-bg` | `string` | — | 否 | `header-bg="#fff"` | 顶栏背景:支持颜色/渐变/图片URL,图片路径自动包装 `url()` |
4365
+ | `aside-bg` | `string` | — | 否 | `aside-bg="linear-gradient(...)"` | 侧栏背景:支持颜色/渐变/图片URL |
4366
+ | `content-bg` | `string` | — | 否 | `content-bg="/bg.png"` | 内容区背景:支持颜色/渐变/图片URL |
4367
+ | `breadcrumb-border` | `string` | — | 否 | `breadcrumb-border="none"` | 面包屑底边框样式,如 `'1px solid #e3e9ef'`,传 `'none'` 隐藏 |
4364
4368
 
4365
4369
  > 选项式组件(`defineComponent`),props 定义在 `props: {}` 中
4366
4370
  > 把 `$attrs` 透传给内部组件,未列出的属性会继续下传
@@ -4379,27 +4383,27 @@ import { ZlAppLayout } from '@zl-ui-kit/components'
4379
4383
  | `menu` | — | `<template #menu>…</template>` | 顶栏中部菜单区(横向形态下占满剩余宽度) |
4380
4384
  | `logo` | `v-bind="{ collapsed }"` 展开 | `<template #logo="{ collapsed }">…</template>` | 侧栏顶部 logo 区(纵向形态下作用域带 `{ collapsed }`,可据此在折叠态隐去文字) |
4381
4385
 
4382
- **CSS 变量(背景配置)**
4386
+ **背景配置**
4383
4387
 
4384
- 各区域背景通过 CSS 变量配置,支持颜色、渐变色、图片:
4388
+ 推荐使用 props 方式(`header-bg` / `aside-bg` / `content-bg`),组件内部自动处理 `url()` 包装:
4389
+
4390
+ ```vue
4391
+ <ZlAppLayout
4392
+ header-bg="linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
4393
+ aside-bg="#1a1a2e"
4394
+ content-bg="/bg.png"
4395
+ breadcrumb-border="none"
4396
+ />
4397
+ ```
4398
+
4399
+ 也可通过 CSS 变量配置(向后兼容):
4385
4400
 
4386
4401
  | 变量 | 适用区域 | 默认值 | 说明 |
4387
4402
  | ------------------------- | -------- | ------------------------------------- | -------------------------------------- |
4388
4403
  | `--zl-layout-header-bg` | 顶栏 | `#fff` | 支持纯色、`linear-gradient`、`url()` |
4389
4404
  | `--zl-layout-aside-bg` | 侧边栏 | `var(--zl-fill-1, #f9fbfd)` | 支持纯色、`linear-gradient`、`url()` |
4390
4405
  | `--zl-layout-content-bg` | 内容区 | `transparent` | 支持纯色、`linear-gradient`、`url()` |
4391
-
4392
- ```css
4393
- /* 使用示例 */
4394
- .my-layout {
4395
- /* 顶栏:渐变色 */
4396
- --zl-layout-header-bg: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
4397
- /* 侧边栏:深色 */
4398
- --zl-layout-aside-bg: #1a1a2e;
4399
- /* 内容区:图片背景 */
4400
- --zl-layout-content-bg: url('/bg.png');
4401
- }
4402
- ```
4406
+ | `--zl-breadcrumb-border` | 面包屑 | `1px solid var(--zl-border-2, #e3e9ef)` | 传 `none` 隐藏 |
4403
4407
 
4404
4408
  #### `ZlAppSlogan`
4405
4409
 
@@ -1,13 +1,13 @@
1
- import { defineComponent as j, computed as g, resolveComponent as s, openBlock as n, createElementBlock as c, Fragment as m, renderList as w, createBlock as r, withCtx as i, createVNode as h, mergeProps as f, withModifiers as _, createCommentVNode as u, createElementVNode as E, toDisplayString as v, renderSlot as O, normalizeProps as S, createTextVNode as z, unref as T, normalizeClass as D } from "vue";
2
- import { useZlT as F } from "@zl-ui-kit/composables";
3
- import { isPlainObject as I } from "@zl-ui-kit/utils";
4
- import A from "../ZlIcon/index.vue.mjs";
5
- import P from "../ZlIconHover/index.vue.mjs";
6
- import { usePermission as q } from "../ZlPermission/usePermission.mjs";
7
- const G = { class: "zl-action-list" }, H = {
1
+ import { defineComponent as Z, computed as C, resolveComponent as s, openBlock as n, createElementBlock as c, Fragment as p, renderList as g, createBlock as r, withCtx as i, createVNode as h, mergeProps as f, withModifiers as _, createCommentVNode as a, createElementVNode as j, toDisplayString as v, renderSlot as E, normalizeProps as O, createTextVNode as z, unref as S, normalizeClass as T } from "vue";
2
+ import { useZlT as D } from "@zl-ui-kit/composables";
3
+ import { isPlainObject as F } from "@zl-ui-kit/utils";
4
+ import w from "../ZlIcon/index.vue.mjs";
5
+ import A from "../ZlIconHover/index.vue.mjs";
6
+ import { usePermission as I } from "../ZlPermission/usePermission.mjs";
7
+ const q = { class: "zl-action-list" }, G = {
8
8
  key: 2,
9
9
  class: "zl-action-list__separator"
10
- }, X = /* @__PURE__ */ j({
10
+ }, W = /* @__PURE__ */ Z({
11
11
  name: "ZlActionList",
12
12
  __name: "List",
13
13
  props: {
@@ -19,19 +19,19 @@ const G = { class: "zl-action-list" }, H = {
19
19
  separator: { type: Boolean }
20
20
  },
21
21
  emits: ["action"],
22
- setup(b, { emit: M }) {
23
- const { t: B } = F(), t = b, N = M, k = g(() => {
22
+ setup(b, { emit: P }) {
23
+ const { t: M } = D(), t = b, B = P, k = C(() => {
24
24
  if (t.iconMore === !0)
25
- return { icon: "zl:password-color" };
26
- if (I(t.iconMore))
27
- return { icon: "zl:password-color", ...t.iconMore };
25
+ return { icon: "zl:operate-color" };
26
+ if (F(t.iconMore))
27
+ return { icon: "zl:operate-color", ...t.iconMore };
28
28
  });
29
- function V(o) {
30
- return o.permission ? q(o.permission).value : !0;
29
+ function N(o) {
30
+ return o.permission ? I(o.permission).value : !0;
31
31
  }
32
- const a = g(() => {
32
+ const u = C(() => {
33
33
  const o = t.actions.filter((l) => {
34
- const d = V(l);
34
+ const d = N(l);
35
35
  return typeof l.visible == "function" ? l.visible(...t.visibleArgs, l) && d : (l.visible === void 0 || !!l.visible) && d;
36
36
  });
37
37
  return o.length <= t.listCount ? { list: o, more: [] } : {
@@ -39,72 +39,69 @@ const G = { class: "zl-action-list" }, H = {
39
39
  more: o.slice(t.listCount - 1)
40
40
  };
41
41
  });
42
- function p(o) {
43
- o.disabled || (N("action", o, ...t.actionArgs), typeof o.handler == "function" && o.handler(...t.actionArgs, o));
44
- }
45
- function y(o) {
46
- return typeof o.tooltip == "string" ? o.tooltip : o.label;
42
+ function m(o) {
43
+ o.disabled || (B("action", o, ...t.actionArgs), typeof o.handler == "function" && o.handler(...t.actionArgs, o));
47
44
  }
48
45
  return (o, l) => {
49
- const d = s("el-tooltip"), C = s("el-link"), $ = s("el-dropdown-item"), x = s("el-dropdown-menu"), L = s("el-dropdown");
50
- return n(), c("div", G, [
51
- (n(!0), c(m, null, w(a.value.list, (e) => (n(), c(m, {
46
+ const d = s("el-tooltip"), y = s("el-link"), V = s("el-dropdown-item"), $ = s("el-dropdown-menu"), x = s("el-dropdown");
47
+ return n(), c("div", q, [
48
+ (n(!0), c(p, null, g(u.value.list, (e) => (n(), c(p, {
52
49
  key: e.label
53
50
  }, [
54
- e.tooltip && e.icon && y(e) ? (n(), r(d, {
51
+ e.tooltip && e.icon ? (n(), r(d, {
55
52
  key: 0,
56
- content: y(e),
53
+ content: e.label,
57
54
  placement: "top"
58
55
  }, {
59
56
  default: i(() => [
60
- h(P, f({
57
+ h(A, f({
61
58
  icon: e.icon
62
59
  }, { ref_for: !0 }, e.iconProps, {
63
- onClick: _((Z) => p(e), ["stop"])
60
+ onClick: _((L) => m(e), ["stop"])
64
61
  }), null, 16, ["icon", "onClick"])
65
62
  ]),
66
63
  _: 2
67
- }, 1032, ["content"])) : (n(), r(C, {
64
+ }, 1032, ["content"])) : (n(), r(y, {
68
65
  key: 1,
69
66
  class: "zl-action-list__action",
70
67
  type: "primary",
71
- underline: "never",
68
+ underline: !1,
72
69
  disabled: e.disabled,
73
- onClick: _((Z) => p(e), ["stop"])
70
+ onClick: _((L) => m(e), ["stop"])
74
71
  }, {
75
72
  default: i(() => [
76
- e.icon ? (n(), r(A, f({
73
+ e.icon ? (n(), r(w, f({
77
74
  key: 0,
78
75
  icon: e.icon
79
- }, { ref_for: !0 }, e.iconProps), null, 16, ["icon"])) : u("", !0),
80
- E("span", null, v(e.label), 1)
76
+ }, { ref_for: !0 }, e.iconProps), null, 16, ["icon"])) : a("", !0),
77
+ j("span", null, v(e.label), 1)
81
78
  ]),
82
79
  _: 2
83
80
  }, 1032, ["disabled", "onClick"])),
84
- b.separator ? (n(), c("div", H)) : u("", !0)
81
+ b.separator ? (n(), c("div", G)) : a("", !0)
85
82
  ], 64))), 128)),
86
- a.value.more.length ? (n(), r(L, {
83
+ u.value.more.length ? (n(), r(x, {
87
84
  key: 0,
88
85
  trigger: "hover",
89
86
  placement: "bottom-end",
90
87
  class: "zl-action-list__more",
91
- onCommand: p
88
+ onCommand: m
92
89
  }, {
93
90
  dropdown: i(() => [
94
- h(x, null, {
91
+ h($, null, {
95
92
  default: i(() => [
96
- (n(!0), c(m, null, w(a.value.more, (e) => (n(), r($, {
93
+ (n(!0), c(p, null, g(u.value.more, (e) => (n(), r(V, {
97
94
  key: e.label,
98
95
  command: e,
99
96
  disabled: e.disabled,
100
97
  divided: e.divided
101
98
  }, {
102
99
  default: i(() => [
103
- e.icon ? (n(), r(A, {
100
+ e.icon ? (n(), r(w, {
104
101
  key: 0,
105
102
  icon: e.icon,
106
- class: D(e.iconClass)
107
- }, null, 8, ["icon", "class"])) : u("", !0),
103
+ class: T(e.iconClass)
104
+ }, null, 8, ["icon", "class"])) : a("", !0),
108
105
  z(" " + v(e.label), 1)
109
106
  ]),
110
107
  _: 2
@@ -114,29 +111,29 @@ const G = { class: "zl-action-list" }, H = {
114
111
  })
115
112
  ]),
116
113
  default: i(() => [
117
- O(o.$slots, "more", {}, () => [
118
- k.value ? (n(), r(P, S(f({ key: 0 }, k.value)), null, 16)) : (n(), r(C, {
114
+ E(o.$slots, "more", {}, () => [
115
+ k.value ? (n(), r(A, O(f({ key: 0 }, k.value)), null, 16)) : (n(), r(y, {
119
116
  key: 1,
120
117
  class: "zl-action-list__more-icon",
121
118
  type: "primary",
122
- underline: "never",
119
+ underline: !1,
123
120
  onClick: l[0] || (l[0] = _(() => {
124
121
  }, ["stop"]))
125
122
  }, {
126
123
  default: i(() => [
127
- z(v(T(B)("zl.action.more", "更多")), 1)
124
+ z(v(S(M)("zl.action.more", "更多")), 1)
128
125
  ]),
129
126
  _: 1
130
127
  }))
131
128
  ])
132
129
  ]),
133
130
  _: 3
134
- })) : u("", !0)
131
+ })) : a("", !0)
135
132
  ]);
136
133
  };
137
134
  }
138
135
  });
139
136
  export {
140
- X as default
137
+ W as default
141
138
  };
142
139
  //# sourceMappingURL=List.vue.mjs.map
@@ -1,9 +1,3 @@
1
- type __VLS_Props = {
2
- /** 直接展示的操作数,超出收入"更多"下拉,默认 2;透传给 ZlActionList */
3
- listCount?: number;
4
- };
5
- declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
6
- listCount: number;
7
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
8
2
  export default _default;
9
3
  //# sourceMappingURL=index.vue.d.ts.map
@@ -1,19 +1,15 @@
1
- import { defineComponent as r, resolveComponent as c, openBlock as s, createBlock as i, normalizeProps as p, guardReactiveProps as a, withCtx as l, createVNode as m } from "vue";
2
- import _ from "./List.vue.mjs";
1
+ import { defineComponent as r, resolveComponent as n, openBlock as t, createBlock as c, normalizeProps as i, guardReactiveProps as a, withCtx as m, createVNode as p } from "vue";
2
+ import s from "./List.vue.mjs";
3
3
  import './List.css';/* empty css */
4
4
  const h = /* @__PURE__ */ r({
5
5
  name: "ZlAction",
6
6
  __name: "index",
7
- props: {
8
- listCount: { default: 2 }
9
- },
10
- setup(o) {
11
- const e = o;
12
- return (t, u) => {
13
- const n = c("zl-icon-hover");
14
- return s(), i(_, p(a({ ...t.$attrs, listCount: e.listCount })), {
15
- more: l(() => [
16
- m(n, { icon: "zl:password-color" })
7
+ setup(_) {
8
+ return (o, l) => {
9
+ const e = n("zl-icon-hover");
10
+ return t(), c(s, i(a({ ...o.$attrs, listCount: 2 })), {
11
+ more: m(() => [
12
+ p(e, { icon: "zl:password-color" })
17
13
  ]),
18
14
  _: 1
19
15
  }, 16);
@@ -10,11 +10,8 @@ export interface ActionItem {
10
10
  iconProps?: Record<string, any>;
11
11
  /** 图标自定义类名 */
12
12
  iconClass?: string;
13
- /**
14
- * 提示词:`true` 用 `label` 作为提示;传字符串则直接作为提示词(无需同时配置 `label`)。
15
- * 仅对纯图标操作项生效(配置了 `icon`)。
16
- */
17
- tooltip?: boolean | string;
13
+ /** 是否用 tooltip 包住文案(文字过长时) */
14
+ tooltip?: boolean;
18
15
  /** 禁用(点击无响应) */
19
16
  disabled?: boolean;
20
17
  /** 与下一项之间显示分割线 */
@@ -1 +1 @@
1
- .zl-layout-horizontal{height:100%;display:flex;flex-direction:column}.zl-layout-horizontal__header{display:flex;align-items:center;background:var(--zl-layout-header-bg, var(--zl-layout-horizontal-header-bg, #fff));background-size:cover;background-position:center}.zl-layout-horizontal__logo{padding:10px 16px}.zl-layout-horizontal__menu{flex:1;width:1px}.zl-layout-horizontal__user{flex:0 0 auto;padding-right:16px}.zl-layout-horizontal__main{display:flex;flex-direction:column;flex:1;height:1px;padding:12px;border-radius:var(--zl-radius-medium, 4px);overflow:hidden;background:var(--zl-layout-content-bg, transparent);background-size:cover;background-position:center}.zl-layout-horizontal__tabs{padding:12px 16px;background-color:var(--zl-bg-1, #fff);border-radius:var(--zl-radius-medium, 4px) var(--zl-radius-medium, 4px) 0 0}
1
+ .zl-layout-horizontal{height:100%;display:flex;flex-direction:column}.zl-layout-horizontal__header{display:flex;align-items:center;background:var(--zl-layout-horizontal-header-bg, #fff)}.zl-layout-horizontal__logo{padding:10px 16px}.zl-layout-horizontal__menu{flex:1;width:1px}.zl-layout-horizontal__user{flex:0 0 auto;padding-right:16px}.zl-layout-horizontal__main{display:flex;flex-direction:column;flex:1;height:1px;padding:12px;border-radius:var(--zl-radius-medium, 4px);overflow:hidden}.zl-layout-horizontal__tabs{padding:12px 16px;background-color:var(--zl-bg-1, #fff);border-radius:var(--zl-radius-medium, 4px) var(--zl-radius-medium, 4px) 0 0}
@@ -1 +1 @@
1
- .zl-layout-vertical{height:100%;display:flex}.zl-layout-vertical.collapsed .zl-layout-vertical__aside{width:64px}.zl-layout-vertical.collapsed .zl-layout-vertical__aside__header{padding-inline:10px}.zl-layout-vertical.collapsed .zl-layout-vertical__aside__footer{padding-inline:8px}.zl-layout-vertical__aside{flex:0 0 auto;width:220px;background:var(--zl-layout-aside-bg, var(--zl-fill-1, #f9fbfd));background-size:cover;background-position:center;display:flex;flex-direction:column;overflow:hidden;transition:width .2s cubic-bezier(.34,.69,.1,1)}.zl-layout-vertical__aside__header{padding:12px 16px;overflow:hidden;border-bottom:1px solid var(--zl-border-1, #eff4f9);transition:padding .2s cubic-bezier(.34,.69,.1,1)}.zl-layout-vertical__aside__content{flex:1;overflow-y:auto;overflow-x:hidden}.zl-layout-vertical__aside__footer{padding:12px 16px;display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;gap:8px;transition:padding .2s cubic-bezier(.34,.69,.1,1)}.zl-layout-vertical__main{flex:1;width:1px;display:flex;flex-direction:column}.zl-layout-vertical__header{padding:10px 16px;border-bottom:1px solid var(--zl-border-2, #e3e9ef);line-height:24px;background:var(--zl-layout-header-bg, var(--zl-bg-1, #fff));background-size:cover;background-position:center;display:flex;justify-content:space-between}.zl-layout-vertical__content{flex:1;padding:12px;height:1px;background:var(--zl-layout-content-bg, transparent);background-size:cover;background-position:center}
1
+ .zl-layout-vertical{height:100%;display:flex}.zl-layout-vertical.collapsed .zl-layout-vertical__aside{width:44px}.zl-layout-vertical.collapsed .zl-layout-vertical__aside__header{padding-inline:10px}.zl-layout-vertical.collapsed .zl-layout-vertical__aside__footer{padding-inline:8px}.zl-layout-vertical__aside{flex:0 0 auto;width:220px;background-image:var(--zl-layout-vertical-aside-bg, none);background-color:var(--zl-fill-1, #f9fbfd);background-size:cover;display:flex;flex-direction:column;transition:width .2s cubic-bezier(.34,.69,.1,1)}.zl-layout-vertical__aside__header{padding:12px 16px;overflow:hidden;border-bottom:1px solid var(--zl-border-1, #eff4f9);transition:padding .2s cubic-bezier(.34,.69,.1,1)}.zl-layout-vertical__aside__content{flex:1;overflow-y:auto}.zl-layout-vertical__aside__footer{padding:12px 16px;display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;gap:8px;transition:padding .2s cubic-bezier(.34,.69,.1,1)}.zl-layout-vertical__main{flex:1;width:1px;display:flex;flex-direction:column}.zl-layout-vertical__header{padding:10px 16px;border-bottom:1px solid var(--zl-border-2, #e3e9ef);line-height:24px;background-color:var(--zl-bg-1, #fff);display:flex;justify-content:space-between}.zl-layout-vertical__content{flex:1;padding:12px;height:1px}
@@ -1,51 +1,53 @@
1
- import { defineComponent as _, openBlock as d, createElementBlock as n, normalizeClass as u, unref as t, createElementVNode as e, renderSlot as s, normalizeProps as i, guardReactiveProps as r, createVNode as c, withCtx as v } from "vue";
2
- import { useToggle as m } from "@vueuse/core";
3
- import p from "../ZlButton/index.vue.mjs";
1
+ import { defineComponent as _, resolveComponent as d, openBlock as u, createElementBlock as v, normalizeClass as m, unref as s, createElementVNode as e, renderSlot as t, normalizeProps as c, guardReactiveProps as i, createVNode as r, withCtx as p } from "vue";
2
+ import { useToggle as z } from "@vueuse/core";
4
3
  import f from "../ZlIcon/index.vue.mjs";
5
- const z = { class: "zl-layout-vertical__aside" }, h = { class: "zl-layout-vertical__aside__header" }, y = { class: "zl-layout-vertical__aside__content" }, $ = { class: "zl-layout-vertical__aside__footer" }, b = { class: "zl-layout-vertical__main" }, g = { class: "zl-layout-vertical__header" }, C = { class: "zl-layout-vertical__breadcrumb" }, V = { class: "zl-layout-vertical__app-header" }, k = { class: "zl-layout-vertical__content" }, I = /* @__PURE__ */ _({
4
+ const h = { class: "zl-layout-vertical__aside" }, y = { class: "zl-layout-vertical__aside__header" }, $ = { class: "zl-layout-vertical__aside__content" }, b = { class: "zl-layout-vertical__aside__footer" }, C = { class: "zl-layout-vertical__main" }, g = { class: "zl-layout-vertical__header" }, V = { class: "zl-layout-vertical__breadcrumb" }, k = { class: "zl-layout-vertical__app-header" }, B = { class: "zl-layout-vertical__content" }, I = /* @__PURE__ */ _({
6
5
  name: "ZlVerticalLayout",
7
6
  __name: "Vertical",
8
- setup(B) {
9
- const [o] = m(!1);
10
- return (l, a) => (d(), n("div", {
11
- class: u(["zl-layout-vertical", { collapsed: t(o) }])
12
- }, [
13
- e("div", z, [
7
+ setup(E) {
8
+ const [o] = z(!1);
9
+ return (l, a) => {
10
+ const n = d("el-button");
11
+ return u(), v("div", {
12
+ class: m(["zl-layout-vertical", { collapsed: s(o) }])
13
+ }, [
14
14
  e("div", h, [
15
- s(l.$slots, "logo", i(r({ collapsed: t(o) })))
16
- ]),
17
- e("div", y, [
18
- s(l.$slots, "menu", i(r({ collapsed: t(o) })))
15
+ e("div", y, [
16
+ t(l.$slots, "logo", c(i({ collapsed: s(o) })))
17
+ ]),
18
+ e("div", $, [
19
+ t(l.$slots, "menu", c(i({ collapsed: s(o) })))
20
+ ]),
21
+ e("div", b, [
22
+ r(n, {
23
+ circle: "",
24
+ onClick: a[0] || (a[0] = (N) => o.value = !s(o))
25
+ }, {
26
+ icon: p(() => [
27
+ r(f, {
28
+ icon: s(o) ? "zl:slider-on-color" : "zl:slider-off-color"
29
+ }, null, 8, ["icon"])
30
+ ]),
31
+ _: 1
32
+ }),
33
+ t(l.$slots, "footer")
34
+ ])
19
35
  ]),
20
- e("div", $, [
21
- c(p, {
22
- circle: "",
23
- onClick: a[0] || (a[0] = (E) => o.value = !t(o))
24
- }, {
25
- icon: v(() => [
26
- c(f, {
27
- icon: t(o) ? "zl:slider-on-color" : "zl:slider-off-color"
28
- }, null, 8, ["icon"])
36
+ e("div", C, [
37
+ e("div", g, [
38
+ e("div", V, [
39
+ t(l.$slots, "breadcrumb")
29
40
  ]),
30
- _: 1
31
- }),
32
- s(l.$slots, "footer")
33
- ])
34
- ]),
35
- e("div", b, [
36
- e("div", g, [
37
- e("div", C, [
38
- s(l.$slots, "breadcrumb")
41
+ e("div", k, [
42
+ t(l.$slots, "header")
43
+ ])
39
44
  ]),
40
- e("div", V, [
41
- s(l.$slots, "header")
45
+ e("div", B, [
46
+ t(l.$slots, "default")
42
47
  ])
43
- ]),
44
- e("div", k, [
45
- s(l.$slots, "default")
46
48
  ])
47
- ])
48
- ], 2));
49
+ ], 2);
50
+ };
49
51
  }
50
52
  });
51
53
  export {
@@ -1,23 +1,23 @@
1
1
  /**
2
- * 应用布局:header-aside(默认,通栏顶栏 + 侧边菜单)/ horizontal(顶部菜单)/ vertical(侧边菜单,可折叠)
2
+ * 应用布局:horizontal(默认,顶部菜单)/ vertical(侧边菜单,可折叠)
3
3
  * 插槽:logo/menu/breadcrumb/header/footer/default
4
4
  */
5
5
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
6
- /** 布局方向:横向用顶部菜单,纵向用侧边菜单,header-aside 用通栏顶栏 + 侧边菜单 */
6
+ /** 布局方向:横向用顶部菜单,纵向用侧边菜单 */
7
7
  layout: {
8
- type: () => "horizontal" | "vertical" | "header-aside";
8
+ type: () => "horizontal" | "vertical";
9
9
  default: string;
10
10
  };
11
11
  }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
12
12
  [key: string]: any;
13
13
  }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
14
- /** 布局方向:横向用顶部菜单,纵向用侧边菜单,header-aside 用通栏顶栏 + 侧边菜单 */
14
+ /** 布局方向:横向用顶部菜单,纵向用侧边菜单 */
15
15
  layout: {
16
- type: () => "horizontal" | "vertical" | "header-aside";
16
+ type: () => "horizontal" | "vertical";
17
17
  default: string;
18
18
  };
19
19
  }>> & Readonly<{}>, {
20
- layout: "horizontal" | "vertical" | "header-aside";
20
+ layout: "horizontal" | "vertical";
21
21
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
22
22
  export default _default;
23
23
  //# sourceMappingURL=index.vue.d.ts.map
@@ -1,18 +1,18 @@
1
- import { defineComponent as r, defineAsyncComponent as t, h as i } from "vue";
2
- const l = r({
1
+ import { defineComponent as r, defineAsyncComponent as o, h as a } from "vue";
2
+ const m = r({
3
3
  name: "ZlAppLayout",
4
4
  props: {
5
- /** 布局方向:横向用顶部菜单,纵向用侧边菜单,header-aside 用通栏顶栏 + 侧边菜单 */
6
- layout: { type: String, default: "header-aside" }
5
+ /** 布局方向:横向用顶部菜单,纵向用侧边菜单 */
6
+ layout: { type: String, default: "horizontal" }
7
7
  },
8
- setup(o, { slots: a, attrs: n }) {
8
+ setup(t, { slots: n, attrs: e }) {
9
9
  return () => {
10
- let e;
11
- return o.layout === "vertical" ? e = t(() => import("./Vertical.vue.mjs")) : o.layout === "header-aside" ? e = t(() => import("./HeaderAside.vue.mjs")) : e = t(() => import("./Horizontal.vue.mjs")), i(e, { ...n }, a);
10
+ const p = t.layout === "horizontal" ? o(() => import("./Horizontal.vue.mjs")) : o(() => import("./Vertical.vue.mjs"));
11
+ return a(p, { ...e }, n);
12
12
  };
13
13
  }
14
14
  });
15
15
  export {
16
- l as default
16
+ m as default
17
17
  };
18
18
  //# sourceMappingURL=index.vue.mjs.map
@@ -0,0 +1 @@
1
+ .zl-menu.el-menu{--el-menu-bg-color: transparent;--el-menu-text-color: var(--zl-menu-text-color, var(--zl-text-2));--el-menu-active-color: var(--zl-menu-text-color, var(--zl-text-2));--el-menu-hover-bg-color: var(--zl-menu-hover-bg, var(--zl-fill-2));border-right:none;background-color:transparent}.zl-menu.el-menu .el-menu-item.is-active{background-color:var(--zl-menu-hover-bg, var(--zl-fill-2))}.zl-menu.el-menu:not(.el-menu--horizontal){font-size:12px}.zl-menu.el-menu:not(.el-menu--horizontal) .el-menu-item,.zl-menu.el-menu:not(.el-menu--horizontal) .el-sub-menu__title{height:36px;line-height:36px}.zl-menu.el-menu.el-menu--horizontal .el-menu-item,.zl-menu.el-menu.el-menu--horizontal .el-sub-menu__title{height:44px;line-height:44px}
@@ -0,0 +1,27 @@
1
+ export interface MenuItem {
2
+ /** 唯一键 */
3
+ name: string;
4
+ title: string;
5
+ icon?: string;
6
+ children?: MenuItem[];
7
+ [key: string]: any;
8
+ }
9
+ type __VLS_Props = {
10
+ /** 菜单是否收起为图标,侧栏折叠时用 */
11
+ collapsed?: boolean;
12
+ /** el-menu 模式:vertical / horizontal */
13
+ layout?: 'vertical' | 'horizontal';
14
+ /** 菜单树数据,递归渲染为多级菜单项 */
15
+ menus?: MenuItem[];
16
+ };
17
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
18
+ "menu-item-click": (menu: MenuItem) => any;
19
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ "onMenu-item-click"?: ((menu: MenuItem) => any) | undefined;
21
+ }>, {
22
+ layout: "vertical" | "horizontal";
23
+ collapsed: boolean;
24
+ menus: MenuItem[];
25
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
26
+ export default _default;
27
+ //# sourceMappingURL=AppMenu.vue.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { defineComponent as u, resolveComponent as s, openBlock as n, createBlock as l, withCtx as i, createElementBlock as r, Fragment as p, renderList as f } from "vue";
2
+ import d from "./AppMenuItem.vue.mjs";
3
+ const B = /* @__PURE__ */ u({
4
+ name: "ZlAppMenu",
5
+ __name: "AppMenu",
6
+ props: {
7
+ collapsed: { type: Boolean, default: !1 },
8
+ layout: { default: "vertical" },
9
+ menus: { default: () => [] }
10
+ },
11
+ emits: ["menu-item-click"],
12
+ setup(e, { emit: o }) {
13
+ const m = o;
14
+ return (k, _) => {
15
+ const a = s("el-menu");
16
+ return n(), l(a, {
17
+ class: "zl-menu",
18
+ collapse: e.collapsed,
19
+ mode: e.layout,
20
+ "collapse-transition": !1
21
+ }, {
22
+ default: i(() => [
23
+ (n(!0), r(p, null, f(e.menus, (t) => (n(), l(d, {
24
+ key: t.name,
25
+ menu: t,
26
+ onMenuItemClick: (c) => m("menu-item-click", c)
27
+ }, null, 8, ["menu", "onMenuItemClick"]))), 128))
28
+ ]),
29
+ _: 1
30
+ }, 8, ["collapse", "mode"]);
31
+ };
32
+ }
33
+ });
34
+ export {
35
+ B as default
36
+ };
37
+ //# sourceMappingURL=AppMenu.vue.mjs.map
@@ -0,0 +1,6 @@
1
+ import o from "./AppMenu.vue.mjs";
2
+ import './AppMenu.css';/* empty css */
3
+ export {
4
+ o as default
5
+ };
6
+ //# sourceMappingURL=AppMenu3.vue.mjs.map
@@ -0,0 +1,11 @@
1
+ import { MenuItem } from './AppMenu.vue';
2
+ type __VLS_Props = {
3
+ menu: MenuItem;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
6
+ "menu-item-click": (menu: MenuItem) => any;
7
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ "onMenu-item-click"?: ((menu: MenuItem) => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
10
+ export default _default;
11
+ //# sourceMappingURL=AppMenuItem.vue.d.ts.map
@@ -0,0 +1,58 @@
1
+ import { defineComponent as I, resolveComponent as i, openBlock as n, createBlock as t, withCtx as m, createElementBlock as M, Fragment as p, renderList as A, createCommentVNode as r, createElementVNode as g, toDisplayString as a, createTextVNode as h } from "vue";
2
+ import d from "../ZlIcon/index.vue.mjs";
3
+ const V = /* @__PURE__ */ I({
4
+ name: "ZlAppMenuItem",
5
+ __name: "AppMenuItem",
6
+ props: {
7
+ menu: {}
8
+ },
9
+ emits: ["menu-item-click"],
10
+ setup(e, { emit: k }) {
11
+ const f = e, s = k;
12
+ function l(c = f.menu) {
13
+ s("menu-item-click", c);
14
+ }
15
+ return (c, o) => {
16
+ const x = i("AppMenuItem", !0), y = i("el-sub-menu"), C = i("el-menu-item");
17
+ return e.menu.children?.length ? (n(), t(y, {
18
+ key: 0,
19
+ index: e.menu.name
20
+ }, {
21
+ title: m(() => [
22
+ e.menu.icon ? (n(), t(d, {
23
+ key: 0,
24
+ icon: e.menu.icon
25
+ }, null, 8, ["icon"])) : r("", !0),
26
+ g("span", null, a(e.menu.title), 1)
27
+ ]),
28
+ default: m(() => [
29
+ (n(!0), M(p, null, A(e.menu.children, (u) => (n(), t(x, {
30
+ key: u.name,
31
+ menu: u,
32
+ onMenuItemClick: l
33
+ }, null, 8, ["menu"]))), 128))
34
+ ]),
35
+ _: 1
36
+ }, 8, ["index"])) : (n(), t(C, {
37
+ key: 1,
38
+ index: e.menu.name,
39
+ onClick: o[0] || (o[0] = (u) => l())
40
+ }, {
41
+ title: m(() => [
42
+ h(a(e.menu.title), 1)
43
+ ]),
44
+ default: m(() => [
45
+ e.menu.icon ? (n(), t(d, {
46
+ key: 0,
47
+ icon: e.menu.icon
48
+ }, null, 8, ["icon"])) : r("", !0)
49
+ ]),
50
+ _: 1
51
+ }, 8, ["index"]));
52
+ };
53
+ }
54
+ });
55
+ export {
56
+ V as default
57
+ };
58
+ //# sourceMappingURL=AppMenuItem.vue.mjs.map
@@ -0,0 +1,5 @@
1
+ import f from "./AppMenuItem.vue.mjs";
2
+ export {
3
+ f as default
4
+ };
5
+ //# sourceMappingURL=AppMenuItem2.vue.mjs.map