@gyyxds/zy-ui 0.0.3 → 0.0.4

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.
package/CHANGELOG.md CHANGED
@@ -25,7 +25,7 @@
25
25
  - 移除 `ZyButton` 的 `effect="outline"`(描边展开)与 `hoverLabel` prop:悬停即把文案换成「已展开 / 已删除」,在点击发生前就宣告结果,对危险操作是错误的状态承诺;描边语义已由 `plain` / `dashed` 承担,按压与图标动效由 `press` / `sweep` 承担。`effect` 现为 `'press' | 'sweep' | 'fill'`。
26
26
  - 同步移除组件页「描边按钮」舞台、`button:outline` 片段、`solid` 主题里的 `.is-outline` 选择器与相关文档说明。
27
27
 
28
- ## 0.1.0
28
+ ## 0.0.1
29
29
 
30
30
  - 建立 Element Plus 二次封装组件库基础。
31
31
  - 新增 `basic` / `solid` 两套主题入口与 `data-zy-theme` 主题契约。
package/CONTRIBUTING.md CHANGED
@@ -6,7 +6,7 @@
6
6
  - 组件的用法与设计依据:文档页(`src/views/`、`src/mocks/`)与设计规范(`docs/theme/`)。
7
7
  - 动效片段体系已于 2026-10 下线;组件内的 `effect` 微动效属于组件 API,不单独建产物。
8
8
 
9
- 组件库改造规范见 [docs/ui-library-refactor-spec.md](docs/ui-library-refactor-spec.md),主题设计见 [docs/theme/README.md](docs/theme/README.md)。
9
+ 主题设计见 [docs/theme/README.md](docs/theme/README.md),2026-10 改造历史见 [docs/archive/ui-library-refactor-spec.md](docs/archive/ui-library-refactor-spec.md)。
10
10
 
11
11
  ## 本地开发
12
12
 
@@ -92,17 +92,29 @@ npm run release
92
92
 
93
93
  `npm run release` 先跑 `node scripts/check-release-env.mjs`(registry / 登录 / 版本是否已发 / 有无待发 changeset),体检不过直接退,不会再白跑一遍构建。
94
94
 
95
+ `npm run version` 只抬版本并消费 changeset(`.changeset/config.json` 关闭了自动 changelog);CHANGELOG 由人工维护,发布前把 `## Unreleased` 改成实际版本号,`check:release-env` 会拦截未收口或重复的版本段。
95
96
 
96
97
  发布前必须确认:
97
98
 
98
- - 包 scope 与私有 registry 已配置。
99
- - 当前账号不是唯一发布人。
99
+ - 包 scope 与 registry 已配置。
100
+ - 当前账号有发布权限,且至少一名非作者可执行发布演练。
101
+ - Changeset 覆盖本次变更,版本类型正确。
100
102
  - CHANGELOG 和迁移说明完整。
101
103
  - `npm pack` 产物可由非作者安装。
102
104
 
103
- ## 组件 RFC
105
+ 发布后:
104
106
 
105
- 大型组件或破坏性改动先提交 RFC。模板位于 `.gitlab/issue_templates/component-rfc.md`。
107
+ - 在空项目中安装新版本并运行构建。
108
+ - 验证 `style.css`、`theme/basic.css`、`theme/solid.css`。
109
+ - 验证 basic / solid × light / dark 四档组合,深色不丢材质。
110
+ - 检查包体积是否明显增长。
111
+ - 在团队公告中写明新组件、破坏性变更和迁移步骤。
112
+
113
+ ## 组件 RFC 与变更责任
114
+
115
+ - 大型组件或破坏性改动先提交 RFC,写清使用场景、API 草案、状态矩阵、主题与无障碍说明。
116
+ - 修改公共 API、主题默认值或组件 DOM 契约:通知 owner 与至少一个业务使用方。
117
+ - 删除或废弃组件:提供替代方案、迁移时间和版本说明。
106
118
 
107
119
  ## 浏览器支持
108
120
 
package/README.md CHANGED
@@ -58,7 +58,7 @@ dist/zy-ui/ # 组件库(npm run build:lib,进包)
58
58
  | --- | --- |
59
59
  | `ZyInput` | `effect`:`focus`(默认,描边转主色)/ `underline`(下划线扫过)/ `gradient`(渐变边)/ `brutalist`;另有 `label` 浮动标签、`raised` 键帽凸起形态 |
60
60
  | `ZyCodeInput` | 验证码输入。`length` / `status`(idle / error / success)/ `size` / `mask` / `caret` / `disabled`;`v-model` + `complete` 事件 |
61
- | `ZySelect` | `effect`:`focus` / `underline` / `gradient`;其余 API 照 Element |
61
+ | `ZySelect` | `effect`:`focus` / `underline` / `gradient`;`tree` + `data` 树形单选 / 多选(`multiple` 默认显示复选框);其余 API 照 Element |
62
62
  | `ZyCheckbox` / `ZyCheckboxGroup` | `effect`:`''` / `checkmark` / `tick`;Group 用 `v-model` 收集选中值 |
63
63
  | `ZySwitch` | 自研全息开关(不基于 Element):扫描线 / 粒子 / 三环自转;`v-model` + `activeText` / `inactiveText` / `label` / `disabled` |
64
64
  | `ZyRadio` / `ZyRadioGroup` / `ZyRadioButton` | 选中态辉光圆点 + 过冲弹跳;`effect`:`''` / `underline` |
@@ -91,7 +91,7 @@ dist/zy-ui/ # 组件库(npm run build:lib,进包)
91
91
  | `ZyDivider` | `contentPosition`:left / center / right |
92
92
  | `ZySpace` | 纯布局件,`direction` 等间距控制 |
93
93
  | `ZyPanel` | 通用容器:有 `title` 分标题栏 + 正文,无 `title` 通体白面 |
94
- | `ZyMegaMenu` | 数据驱动导航:`items`(有 `panel` = 下拉,无 `panel` + `href` = 普通链接)、`brand`;受控开合 `v-model:open`;`#panel-<key>` 接管面板内容 |
94
+ | `ZyMegaMenu` | 数据驱动导航:`items`(有 `panel` = 下拉,无 `panel` + `href` = 普通链接)、`brand`;受控开合 `v-model:open`;`#panel-<key>` 接管面板内容;grid 面板按子项数 1 / 2 / 3 列自适应 |
95
95
 
96
96
  ## 设计系统:两套语言 × 两档光照
97
97
 
@@ -381,6 +381,20 @@ docs/theme/ # 设计规范:两套语言、两档光照、四张
381
381
 
382
382
  现代浏览器。样式用到 `color-mix()`、`:has()`、嵌套与 CSS 自定义属性,旧 WebView / IE 需先评估降级方案,详见 [浏览器支持](docs/browser-support.md)。
383
383
 
384
+ ## Credits 致敬
385
+
386
+ 本项目站在以下优秀项目与工具的肩上,衷心感谢:
387
+
388
+ - [Element Plus](https://element-plus.org/)(含 `@element-plus/icons-vue`)—— 组件基座:大部分组件在其公开 API 上二次封装,`ZySwitch` / `ZyLoading` / `ZySlideVerify` / `ZyMegaMenu` 等为自研。
389
+ - [React Bits](https://reactbits.dev/) —— `ZyCodeInput` 的 CodeSlots、`ZySelect` 的 Glide Select 滑行高亮原型。
390
+ - [Uiverse · devsebastian44/orange-badger-71](https://uiverse.io/devsebastian44/orange-badger-71) —— `ZyButton` 的 `effect="fill"` 实色键帽。
391
+ - [vengenceui · mega-menu-navbar](https://www.vengenceui.com/components/mega-menu-navbar) —— `ZyMegaMenu` 的结构参考。
392
+ - **ui-ux-pro-max** —— 设计核对(Liquid Glass / Depth Layering / 对比度条目)。
393
+
394
+ 另有若干动效原型(`holo-toggle`、`glitch-radio` 等)在源码注释中标注出处,未逐一列链接。
395
+
396
+ > **声明**:Zy UI 为非官方社区项目,与 Element Plus、React Bits、Uiverse、vengenceui 等项目的维护方无隶属关系。组件库以 Element Plus 的公开 API 做二次封装,不包含、也不转售 Element Plus 源码或任何第三方项目的商业版内容。部分动效为公开片段的移植 / 改写,已在源码注释中标注来源;如果你是被引用的原作者并希望调整署名或许可,欢迎通过 issue 联系。各项目名称、商标与代码分别归其各自所有者,并遵循其各自许可。
397
+
384
398
  ## 许可
385
399
 
386
400
  MIT © 2026 @gyyxds/zy-ui contributors。可自由用于个人与商业项目,保留版权与许可声明即可分发;完整文本见 [LICENSE](LICENSE)。
@@ -391,7 +405,5 @@ MIT © 2026 @gyyxds/zy-ui contributors。可自由用于个人与商业项目,
391
405
  - [主题设计规范](docs/theme/README.md)
392
406
  - [两档光照推导](docs/theme/dark-mode-design.md)
393
407
  - [从 Element Plus 迁移](docs/migration-from-element.md)
394
- - [改造规范与进度](docs/ui-library-refactor-spec.md)
395
- - [发布检查清单](docs/release-checklist.md)
396
- - [组件 Owner 约定](docs/component-ownership.md)
408
+ - [改造历史(2026-10)](docs/archive/ui-library-refactor-spec.md)
397
409
  - [变更日志](CHANGELOG.md)
@@ -1,31 +1,6 @@
1
1
  /**
2
- * Zy UI 组件库入口:Element Plus 二次封装,注入本站 UI 风格与微动效交互。
3
- *
4
- * 用法与 Element Plus 一致 —— 全局、按需、单组件注册三种都行:
5
- *
6
- * ```ts
7
- * // 全局
8
- * import ZyUi from '@zy/zy-ui'
9
- * import '@zy/zy-ui/style.css'
10
- * app.use(ZyUi)
11
- *
12
- * // 按需(配合 tree-shaking,只打进来的组件会进包)
13
- * import { ZyButton } from '@zy/zy-ui'
14
- * import '@zy/zy-ui/style.css'
15
- *
16
- * // 单个组件自己注册(对齐 Element 的做法,组件自带 install)
17
- * import { ZyButton } from '@zy/zy-ui'
18
- * app.use(ZyButton)
19
- * ```
20
- *
21
- * 目录约定(同 Element):每个组件一个目录,入口 `index.ts` 负责导出与 install,
22
- * 实现是同目录的 `Zy*.vue`;成族的组件(checkbox / radio)共用一个目录,
23
- * 族内契约(如 radio-context)留在目录里,不进入公共 API。
24
- *
25
- * 依赖:组件内部直接使用 element-plus 的 `El*` 组件,所以 element-plus 是 peerDependency,
26
- * 消费方需要自己装好并引入它的样式(`import 'element-plus/dist/index.css'`)。
27
- * 组件层设计令牌(`--zy-brand` / `--zy-radius` / `--zy-ease-out` …)随本包发布,
28
- * 见 `./styles/tokens.css`,可用同名变量覆盖换肤。
2
+ * Zy UI 入口:Element Plus 二次封装。
3
+ * 接入方式、目录约定与依赖说明见 README / AGENTS.md,不在此重复维护。
29
4
  */
30
5
  import type { App } from 'vue';
31
6
  import { ZyAlert } from './alert';
@@ -54,6 +29,7 @@ import { ZyTag } from './tag';
54
29
  import { ZyTimePicker } from './time-picker';
55
30
  import { ZyTree } from './tree';
56
31
  export { ZyAlert, ZyBadge, ZyButton, ZyCard, ZyCheckbox, ZyCheckboxGroup, ZyCodeInput, ZyDatePicker, ZyDialog, ZyDivider, ZyIcon, ZyInput, ZyLoading, ZyMegaMenu, ZyPagination, ZyPanel, ZyProgress, ZyRadio, ZyRadioButton, ZyRadioGroup, ZySelect, ZySlideVerify, ZySpace, ZySwitch, ZyTable, ZyTag, ZyTimePicker, ZyTree, };
32
+ export type { ZyTreeNode, ZyTreeProps } from './select';
57
33
  /** 全部组件的具名集合(名称即注册名) */
58
34
  export declare const components: {
59
35
  ZyAlert: import("./utils/withInstall").SFCWithInstall<{
@@ -1034,6 +1010,14 @@ export declare const components: {
1034
1010
  placeholder?: string;
1035
1011
  clearable?: boolean;
1036
1012
  disabled?: boolean;
1013
+ tree?: boolean;
1014
+ data?: import("./select").ZyTreeNode[];
1015
+ treeProps?: import("./select").ZyTreeProps;
1016
+ nodeKey?: string;
1017
+ showCheckbox?: boolean;
1018
+ checkStrictly?: boolean;
1019
+ defaultExpandAll?: boolean;
1020
+ renderAfterExpand?: boolean;
1037
1021
  } & {
1038
1022
  modelValue?: string | number | undefined | Array<string | number>;
1039
1023
  }> & Readonly<{
@@ -1043,10 +1027,18 @@ export declare const components: {
1043
1027
  }, import("vue").PublicProps, {
1044
1028
  size: "large" | "default" | "small";
1045
1029
  effect: "focus" | "underline" | "gradient";
1030
+ data: import("./select").ZyTreeNode[];
1046
1031
  disabled: boolean;
1047
1032
  placeholder: string;
1048
1033
  clearable: boolean;
1049
1034
  raised: boolean;
1035
+ tree: boolean;
1036
+ treeProps: import("./select").ZyTreeProps;
1037
+ nodeKey: string;
1038
+ showCheckbox: boolean;
1039
+ checkStrictly: boolean;
1040
+ defaultExpandAll: boolean;
1041
+ renderAfterExpand: boolean;
1050
1042
  }, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
1051
1043
  P: {};
1052
1044
  B: {};
@@ -1061,6 +1053,14 @@ export declare const components: {
1061
1053
  placeholder?: string;
1062
1054
  clearable?: boolean;
1063
1055
  disabled?: boolean;
1056
+ tree?: boolean;
1057
+ data?: import("./select").ZyTreeNode[];
1058
+ treeProps?: import("./select").ZyTreeProps;
1059
+ nodeKey?: string;
1060
+ showCheckbox?: boolean;
1061
+ checkStrictly?: boolean;
1062
+ defaultExpandAll?: boolean;
1063
+ renderAfterExpand?: boolean;
1064
1064
  } & {
1065
1065
  modelValue?: string | number | undefined | Array<string | number>;
1066
1066
  }> & Readonly<{
@@ -1068,10 +1068,18 @@ export declare const components: {
1068
1068
  }>, {}, {}, {}, {}, {
1069
1069
  size: "large" | "default" | "small";
1070
1070
  effect: "focus" | "underline" | "gradient";
1071
+ data: import("./select").ZyTreeNode[];
1071
1072
  disabled: boolean;
1072
1073
  placeholder: string;
1073
1074
  clearable: boolean;
1074
1075
  raised: boolean;
1076
+ tree: boolean;
1077
+ treeProps: import("./select").ZyTreeProps;
1078
+ nodeKey: string;
1079
+ showCheckbox: boolean;
1080
+ checkStrictly: boolean;
1081
+ defaultExpandAll: boolean;
1082
+ renderAfterExpand: boolean;
1075
1083
  }>;
1076
1084
  __isFragment?: never;
1077
1085
  __isTeleport?: never;
@@ -1083,6 +1091,14 @@ export declare const components: {
1083
1091
  placeholder?: string;
1084
1092
  clearable?: boolean;
1085
1093
  disabled?: boolean;
1094
+ tree?: boolean;
1095
+ data?: import("./select").ZyTreeNode[];
1096
+ treeProps?: import("./select").ZyTreeProps;
1097
+ nodeKey?: string;
1098
+ showCheckbox?: boolean;
1099
+ checkStrictly?: boolean;
1100
+ defaultExpandAll?: boolean;
1101
+ renderAfterExpand?: boolean;
1086
1102
  } & {
1087
1103
  modelValue?: string | number | undefined | Array<string | number>;
1088
1104
  }> & Readonly<{
@@ -1092,13 +1108,23 @@ export declare const components: {
1092
1108
  }, string, {
1093
1109
  size: "large" | "default" | "small";
1094
1110
  effect: "focus" | "underline" | "gradient";
1111
+ data: import("./select").ZyTreeNode[];
1095
1112
  disabled: boolean;
1096
1113
  placeholder: string;
1097
1114
  clearable: boolean;
1098
1115
  raised: boolean;
1116
+ tree: boolean;
1117
+ treeProps: import("./select").ZyTreeProps;
1118
+ nodeKey: string;
1119
+ showCheckbox: boolean;
1120
+ checkStrictly: boolean;
1121
+ defaultExpandAll: boolean;
1122
+ renderAfterExpand: boolean;
1099
1123
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
1100
1124
  $slots: {
1101
1125
  [x: string]: ((props: any) => any) | undefined;
1126
+ } & {
1127
+ [x: string]: ((props: any) => any) | undefined;
1102
1128
  } & {
1103
1129
  default?: (props: {}) => any;
1104
1130
  };
@@ -1,7 +1,7 @@
1
1
  import type { Component } from 'vue';
2
2
  /** 图标:本库图标名(`src/assets/icons` 的文件名)或任意组件 */
3
3
  export type MegaMenuIcon = string | Component;
4
- /** 面板里的一个大块(两列网格 / 单列列表) */
4
+ /** 面板里的一个大块(自适应列网格 / 单列列表) */
5
5
  export interface MegaMenuLink {
6
6
  title: string;
7
7
  desc?: string;
@@ -33,8 +33,8 @@ export interface MegaMenuCard {
33
33
  /** 面板:三种布局覆盖常见的大菜单 */
34
34
  export interface MegaMenuPanel {
35
35
  /**
36
- * grid = 两列大块(组件目录那类)· list = 单列大块(场景那类)·
37
- * groups = 左引导卡 + 右分组(资源那类)
36
+ * grid = 按子项数量自动 1 / 2 / 3 列的图文网格(1–4 单列,5–12 双列,≥13 三列;无 links 的自定义插槽保留双列)·
37
+ * list = 单列大块(场景那类)· groups = 左引导卡 + 右分组(资源那类)
38
38
  */
39
39
  layout?: 'grid' | 'list' | 'groups';
40
40
  links?: MegaMenuLink[];
@@ -48,7 +48,7 @@ export interface MegaMenuPanel {
48
48
  href?: string;
49
49
  };
50
50
  };
51
- /** 面板宽度(px),缺省按布局 620 / 380 / 600 */
51
+ /** 面板宽度(px);缺省 grid 按列数 360 / 620 / 840,list 380,groups 600 */
52
52
  width?: number;
53
53
  /** 面板相对触发器的左偏移(px),缺省 groups 为 -150、其余 0 */
54
54
  offset?: number;
@@ -1,3 +1,4 @@
1
+ import type { ZyTreeNode, ZyTreeProps } from './types';
1
2
  type __VLS_Props = {
2
3
  /** 承载的聚焦动效:focus 聚焦光环 / underline 下划线扫过 / gradient 渐变光晕 */
3
4
  effect?: 'focus' | 'underline' | 'gradient';
@@ -7,16 +8,34 @@ type __VLS_Props = {
7
8
  placeholder?: string;
8
9
  clearable?: boolean;
9
10
  disabled?: boolean;
11
+ /** 树形选择:用 data / treeProps / nodeKey 渲染树,multiple 时默认显示复选框 */
12
+ tree?: boolean;
13
+ /** 树数据 */
14
+ data?: ZyTreeNode[];
15
+ /** 树节点字段映射,默认 { label: 'label', children: 'children' } */
16
+ treeProps?: ZyTreeProps;
17
+ /** 节点唯一键字段,缺省 value */
18
+ nodeKey?: string;
19
+ /** 多选时是否显示复选框;缺省 multiple 时为 true */
20
+ showCheckbox?: boolean;
21
+ /** 父子节点不联动 */
22
+ checkStrictly?: boolean;
23
+ /** 默认展开全部节点 */
24
+ defaultExpandAll?: boolean;
25
+ /** 展开后再渲染子节点 */
26
+ renderAfterExpand?: boolean;
10
27
  };
11
28
  type __VLS_ModelProps = {
12
29
  modelValue?: string | number | undefined | Array<string | number>;
13
30
  };
14
31
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
15
- declare var __VLS_12: string, __VLS_13: any, __VLS_15: {};
32
+ declare var __VLS_12: string, __VLS_13: any, __VLS_26: string, __VLS_27: any, __VLS_29: {};
16
33
  type __VLS_Slots = {} & {
17
34
  [K in NonNullable<typeof __VLS_12>]?: (props: typeof __VLS_13) => any;
18
35
  } & {
19
- default?: (props: typeof __VLS_15) => any;
36
+ [K in NonNullable<typeof __VLS_26>]?: (props: typeof __VLS_27) => any;
37
+ } & {
38
+ default?: (props: typeof __VLS_29) => any;
20
39
  };
21
40
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
41
  "update:modelValue": (value: string | number | (string | number)[] | undefined) => any;
@@ -25,10 +44,18 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
25
44
  }>, {
26
45
  size: "large" | "default" | "small";
27
46
  effect: "focus" | "underline" | "gradient";
47
+ data: ZyTreeNode[];
28
48
  disabled: boolean;
29
49
  placeholder: string;
30
50
  clearable: boolean;
31
51
  raised: boolean;
52
+ tree: boolean;
53
+ treeProps: ZyTreeProps;
54
+ nodeKey: string;
55
+ showCheckbox: boolean;
56
+ checkStrictly: boolean;
57
+ defaultExpandAll: boolean;
58
+ renderAfterExpand: boolean;
32
59
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
33
60
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
34
61
  declare const _default: typeof __VLS_export;
@@ -6,6 +6,14 @@ export declare const ZySelect: import("../utils/withInstall").SFCWithInstall<{
6
6
  placeholder?: string;
7
7
  clearable?: boolean;
8
8
  disabled?: boolean;
9
+ tree?: boolean;
10
+ data?: import("./types").ZyTreeNode[];
11
+ treeProps?: import("./types").ZyTreeProps;
12
+ nodeKey?: string;
13
+ showCheckbox?: boolean;
14
+ checkStrictly?: boolean;
15
+ defaultExpandAll?: boolean;
16
+ renderAfterExpand?: boolean;
9
17
  } & {
10
18
  modelValue?: string | number | undefined | Array<string | number>;
11
19
  }> & Readonly<{
@@ -15,10 +23,18 @@ export declare const ZySelect: import("../utils/withInstall").SFCWithInstall<{
15
23
  }, import("vue").PublicProps, {
16
24
  size: "large" | "default" | "small";
17
25
  effect: "focus" | "underline" | "gradient";
26
+ data: import("./types").ZyTreeNode[];
18
27
  disabled: boolean;
19
28
  placeholder: string;
20
29
  clearable: boolean;
21
30
  raised: boolean;
31
+ tree: boolean;
32
+ treeProps: import("./types").ZyTreeProps;
33
+ nodeKey: string;
34
+ showCheckbox: boolean;
35
+ checkStrictly: boolean;
36
+ defaultExpandAll: boolean;
37
+ renderAfterExpand: boolean;
22
38
  }, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
23
39
  P: {};
24
40
  B: {};
@@ -33,6 +49,14 @@ export declare const ZySelect: import("../utils/withInstall").SFCWithInstall<{
33
49
  placeholder?: string;
34
50
  clearable?: boolean;
35
51
  disabled?: boolean;
52
+ tree?: boolean;
53
+ data?: import("./types").ZyTreeNode[];
54
+ treeProps?: import("./types").ZyTreeProps;
55
+ nodeKey?: string;
56
+ showCheckbox?: boolean;
57
+ checkStrictly?: boolean;
58
+ defaultExpandAll?: boolean;
59
+ renderAfterExpand?: boolean;
36
60
  } & {
37
61
  modelValue?: string | number | undefined | Array<string | number>;
38
62
  }> & Readonly<{
@@ -40,10 +64,18 @@ export declare const ZySelect: import("../utils/withInstall").SFCWithInstall<{
40
64
  }>, {}, {}, {}, {}, {
41
65
  size: "large" | "default" | "small";
42
66
  effect: "focus" | "underline" | "gradient";
67
+ data: import("./types").ZyTreeNode[];
43
68
  disabled: boolean;
44
69
  placeholder: string;
45
70
  clearable: boolean;
46
71
  raised: boolean;
72
+ tree: boolean;
73
+ treeProps: import("./types").ZyTreeProps;
74
+ nodeKey: string;
75
+ showCheckbox: boolean;
76
+ checkStrictly: boolean;
77
+ defaultExpandAll: boolean;
78
+ renderAfterExpand: boolean;
47
79
  }>;
48
80
  __isFragment?: never;
49
81
  __isTeleport?: never;
@@ -55,6 +87,14 @@ export declare const ZySelect: import("../utils/withInstall").SFCWithInstall<{
55
87
  placeholder?: string;
56
88
  clearable?: boolean;
57
89
  disabled?: boolean;
90
+ tree?: boolean;
91
+ data?: import("./types").ZyTreeNode[];
92
+ treeProps?: import("./types").ZyTreeProps;
93
+ nodeKey?: string;
94
+ showCheckbox?: boolean;
95
+ checkStrictly?: boolean;
96
+ defaultExpandAll?: boolean;
97
+ renderAfterExpand?: boolean;
58
98
  } & {
59
99
  modelValue?: string | number | undefined | Array<string | number>;
60
100
  }> & Readonly<{
@@ -64,15 +104,26 @@ export declare const ZySelect: import("../utils/withInstall").SFCWithInstall<{
64
104
  }, string, {
65
105
  size: "large" | "default" | "small";
66
106
  effect: "focus" | "underline" | "gradient";
107
+ data: import("./types").ZyTreeNode[];
67
108
  disabled: boolean;
68
109
  placeholder: string;
69
110
  clearable: boolean;
70
111
  raised: boolean;
112
+ tree: boolean;
113
+ treeProps: import("./types").ZyTreeProps;
114
+ nodeKey: string;
115
+ showCheckbox: boolean;
116
+ checkStrictly: boolean;
117
+ defaultExpandAll: boolean;
118
+ renderAfterExpand: boolean;
71
119
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
72
120
  $slots: {
73
121
  [x: string]: ((props: any) => any) | undefined;
122
+ } & {
123
+ [x: string]: ((props: any) => any) | undefined;
74
124
  } & {
75
125
  default?: (props: {}) => any;
76
126
  };
77
127
  })>;
128
+ export type { ZyTreeNode, ZyTreeProps } from './types';
78
129
  export default ZySelect;
@@ -0,0 +1,9 @@
1
+ /** 树形选择节点:字段名由 `treeProps` 映射,默认 label / children */
2
+ export type ZyTreeNode = Record<string, any>;
3
+ /** 树节点的字段映射,对应 Element Tree 的 `props` */
4
+ export interface ZyTreeProps {
5
+ label?: string;
6
+ children?: string;
7
+ disabled?: string;
8
+ isLeaf?: string;
9
+ }