@a2simcode/ui 0.0.83 → 0.0.85
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/.cursor/skills/ui-component-helper/README.md +45 -2
- package/.cursor/skills/ui-component-helper/SKILL.md +49 -15
- package/dist/components/input/index.d.ts +6 -0
- package/dist/components/input/src/input.vue.d.ts +10 -0
- package/dist/components/input-layer/index.d.ts +1 -3
- package/dist/components/input-layer/src/input-layer.vue.d.ts +1 -3
- package/dist/components/tabs/index.d.ts +25 -25
- package/dist/components/tabs/src/tabs.vue.d.ts +10 -10
- package/dist/simcode-ui.es.js +12305 -12674
- package/dist/simcode-ui.umd.js +2 -2
- package/dist/stats.html +37 -36
- package/dist/ui.css +2 -1
- package/docs/components/meta/input.ts +20 -0
- package/docs/examples/form/basic.vue +28 -22
- package/package.json +34 -34
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# UI Component Helper Skill
|
|
2
2
|
|
|
3
|
-
这是一个 Cursor AI
|
|
3
|
+
这是一个 Cursor AI Skill,用于在使用 `@a2simcode/ui`(UI 组件)与 `@a2simcode/dui`(DUI 组件)的项目中,快速获取组件的:
|
|
4
|
+
|
|
5
|
+
- API(Props / Events / Slots / Methods / Types,来自自动生成的 Meta 文件)
|
|
6
|
+
- 文档说明(Markdown Guide)
|
|
7
|
+
- 示例代码(可选:`docs/examples` 与 `docs-dui/examples`,打包后可能不存在)
|
|
4
8
|
|
|
5
9
|
## 安装方式
|
|
6
10
|
|
|
@@ -27,7 +31,43 @@ ln -s ../../node_modules/@a2simcode/ui/.cursor/skills/ui-component-helper .curso
|
|
|
27
31
|
|
|
28
32
|
- 组件的 Props、Events、Slots 定义(从 Meta 数据文件)
|
|
29
33
|
- 组件的使用文档(从 Markdown 文档)
|
|
30
|
-
-
|
|
34
|
+
- 组件的代码示例(如果示例文件不存在,则基于 Meta + 文档描述生成最小示例)
|
|
35
|
+
|
|
36
|
+
### 面向第三方项目的目标
|
|
37
|
+
|
|
38
|
+
该 Skill 的目标是让 AI 在第三方项目里生成“可直接运行的 SimCode UI / DUI 用法”,而不是文档站点内部的 Demo 写法。
|
|
39
|
+
|
|
40
|
+
- 代码示例应使用真实组件标签(如 `j-button`, `d-drag`),不要输出 `<Demo>`、`<ApiTable>` 这类仅文档站点存在的组件
|
|
41
|
+
- 代码示例的 import 应来自 `@a2simcode/ui` / `@a2simcode/dui`,不要引用 `docs/**`、`packages/**` 这类仅组件库仓库存在的路径
|
|
42
|
+
|
|
43
|
+
### 查找路径(与最新 UI 库结构一致)
|
|
44
|
+
|
|
45
|
+
- UI:
|
|
46
|
+
- Meta:`docs/components/meta/*.ts`
|
|
47
|
+
- 文档:`docs/components/*.md`
|
|
48
|
+
- 示例(可选):`docs/examples/<component>/*.vue`
|
|
49
|
+
- DUI:
|
|
50
|
+
- Meta:`docs-dui/components/meta/*.ts`
|
|
51
|
+
- 文档:`docs-dui/components/*.md`
|
|
52
|
+
- 示例(可选):`docs-dui/examples/<component>/*.vue`
|
|
53
|
+
|
|
54
|
+
Skill 会优先从 `node_modules` 查找上述目录;找不到时,会回退到项目源码目录(适用于在组件库仓库内开发时)。
|
|
55
|
+
|
|
56
|
+
### 命名规则提示
|
|
57
|
+
|
|
58
|
+
- UI 组件在模板中通常使用 `j-` 前缀(例如 `j-button`, `j-table`),对应的文档/Meta 文件名通常为不带前缀的组件名(例如 `button`, `table`)。
|
|
59
|
+
- DUI 组件在模板中通常使用 `d-` 前缀(例如 `d-drag`),Meta 通常为 kebab-case(例如 `flow-design.ts`)。部分 DUI 文档/示例可能是 camelCase(例如 `flowDesign`),遇到查不到时需要尝试名称变体。
|
|
60
|
+
|
|
61
|
+
### 推荐的引入方式(第三方最常见)
|
|
62
|
+
|
|
63
|
+
- UI 全量引入后可直接使用 `j-` 组件标签:
|
|
64
|
+
- `import SimCodeUI from '@a2simcode/ui'`
|
|
65
|
+
- `app.use(SimCodeUI)`
|
|
66
|
+
- DUI 全量引入后可直接使用 `d-` 组件标签:
|
|
67
|
+
- `import Dui from '@a2simcode/dui'`
|
|
68
|
+
- `app.use(Dui)`
|
|
69
|
+
|
|
70
|
+
样式文件通常位于 `@a2simcode/ui/dist/style.css` 与 `@a2simcode/dui/dist/style.css`(若你的安装包导出为 `ui.css/dui.css`,以实际文件为准)。
|
|
31
71
|
|
|
32
72
|
## 示例问题
|
|
33
73
|
|
|
@@ -35,9 +75,12 @@ ln -s ../../node_modules/@a2simcode/ui/.cursor/skills/ui-component-helper .curso
|
|
|
35
75
|
- "怎么使用 j-table 组件?"
|
|
36
76
|
- "d-drag 组件的 API 是什么?"
|
|
37
77
|
- "给我一个 input 组件的示例"
|
|
78
|
+
- "flowDesign 的 meta 文件在哪?为什么文档叫 flowDesign 但 meta 是 flow-design?"
|
|
79
|
+
- "j-slider-captcha 支持哪些事件?给一个最小示例"
|
|
38
80
|
|
|
39
81
|
## 注意事项
|
|
40
82
|
|
|
41
83
|
- 此技能会自动从 `node_modules/@a2simcode/ui` 和 `node_modules/@a2simcode/dui` 中查找文档
|
|
42
84
|
- 如果文档不存在于 node_modules 中,会尝试从项目源码路径查找(适用于开发环境)
|
|
85
|
+
- 打包发布后的第三方环境中可能缺少 `docs/examples` / `docs-dui/examples`,此时以 Meta 与文档为准,并自动生成可运行的最小用法片段
|
|
43
86
|
- 确保已安装 `@a2simcode/ui` 或 `@a2simcode/dui` 包
|
|
@@ -5,11 +5,17 @@ description: '获取 @a2simcode/ui 和 @a2simcode/dui 组件的使用说明、Pr
|
|
|
5
5
|
|
|
6
6
|
# UI Component Helper
|
|
7
7
|
|
|
8
|
-
此 Skill 用于帮助用户查找和理解 `@a2simcode/ui
|
|
8
|
+
此 Skill 用于帮助用户查找和理解 `@a2simcode/ui`(UI 组件)与 `@a2simcode/dui`(DUI 组件)的使用方法。它会结合 **API 元数据(Meta)**、**文档说明(Guide)**、(可选的)**示例(Examples)** 与 **源码(Source)** 来输出可直接使用的答案(包含 Props / Events / Slots / Methods / Types 与代码示例)。
|
|
9
9
|
|
|
10
10
|
## 查找策略
|
|
11
11
|
|
|
12
|
-
**优先级:Meta
|
|
12
|
+
**优先级:Meta (API) > 文档说明 (Guide) > 示例 (Examples,可选) > 源码 (Source)**
|
|
13
|
+
|
|
14
|
+
### 组件命名与映射规则
|
|
15
|
+
|
|
16
|
+
1. UI 组件通常在模板里使用 `j-` 前缀(例如 `j-button`, `j-table`),对应源码组件名常为 `JButton`, `JTable`,文档与 Meta 的文件名通常不带前缀(例如 `button`, `table`)。
|
|
17
|
+
2. DUI 组件通常在模板里使用 `d-` 前缀(例如 `d-drag`, `d-draggable`),对应源码组件名常为 `DDrag`, `DDraggable`,Meta 文件名通常为 kebab-case(例如 `drag`, `flow-design`)。
|
|
18
|
+
3. DUI 的文档(`docs-dui/components/*.md`)与示例目录(`docs-dui/examples/*/`)在部分组件上可能使用 camelCase(例如 `flowDesign`),而 Meta 仍然是 kebab-case(例如 `flow-design.ts`)。当名称对不上时,务必尝试名称变体(见“定位组件和 API 定义”)。
|
|
13
19
|
|
|
14
20
|
### 路径查找策略
|
|
15
21
|
|
|
@@ -33,13 +39,31 @@ description: '获取 @a2simcode/ui 和 @a2simcode/dui 组件的使用说明、Pr
|
|
|
33
39
|
|
|
34
40
|
## 核心步骤
|
|
35
41
|
|
|
42
|
+
### 输出规则(面向第三方可运行代码)
|
|
43
|
+
|
|
44
|
+
1. 示例代码必须是“业务项目可直接使用”的写法:
|
|
45
|
+
- 使用真实组件标签(如 `j-button`, `j-table`, `d-drag`),不要输出文档站点专用的 `<Demo>`、`<ApiTable>` 等组件
|
|
46
|
+
- import 仅允许来自 `@a2simcode/ui` / `@a2simcode/dui`(或用户项目的既有代码),不要引用 `docs/**`、`docs-dui/**`、`packages/**`
|
|
47
|
+
2. 当用户未说明安装方式时,默认采用“全量引入 + 全局注册”的使用习惯:
|
|
48
|
+
- UI:`app.use(SimCodeUI)` 后,用 `<j-button />` 这种 kebab-case 标签
|
|
49
|
+
- DUI:`app.use(Dui)` 后,用 `<d-drag />` 这种 kebab-case 标签
|
|
50
|
+
3. 当用户明确“按需引入”或不想全局注册时:
|
|
51
|
+
- 提供 `import { JButton } from '@a2simcode/ui'` / `import { DDrag } from '@a2simcode/dui'` 的写法
|
|
52
|
+
- 模板中优先使用 PascalCase(如 `<JButton />` / `<DDrag />`),避免 Vue `<script setup>` 无法自动识别 kebab-case 的问题
|
|
53
|
+
|
|
36
54
|
### 第一步:定位组件和 API 定义
|
|
37
55
|
|
|
38
|
-
1.
|
|
39
|
-
|
|
56
|
+
1. **识别用户输入的组件标识**:
|
|
57
|
+
- 若输入是模板标签:去掉 `j-` / `d-` 前缀,得到基础名,例如 `j-button` → `button`,`d-drag` → `drag`。
|
|
58
|
+
- 若输入是源码组件名:`JButton` / `DDrag` 通常可转换为 `button` / `drag`。
|
|
59
|
+
- 对 DUI 组件,若名称不匹配(例如 `flowDesign`),需要额外尝试 kebab-case 变体(例如 `flow-design`)。
|
|
60
|
+
2. **查找 Meta 数据**(按优先级顺序,Meta 是回答 Props/Events/Slots/Methods/Types 的最权威来源):
|
|
40
61
|
- 首先尝试:`node_modules/@a2simcode/ui/docs/components/meta/<component>.ts` 或 `node_modules/@a2simcode/dui/docs-dui/components/meta/<component>.ts`
|
|
41
62
|
- 如果不存在,尝试:`docs/components/meta/<component>.ts` 或 `docs-dui/components/meta/<component>.ts`
|
|
42
|
-
-
|
|
63
|
+
- 若 DUI 查不到:
|
|
64
|
+
- 尝试将 `<component>` 替换为 kebab-case(例如 `flowDesign` → `flow-design`)
|
|
65
|
+
- 再尝试将 `<component>` 替换为原始输入(可能文档/示例使用 camelCase,而 Meta 使用 kebab-case)
|
|
66
|
+
- **关键**:读取 Meta 文件以获取结构化的 `props`, `events`, `slots`, `methods`, `types`。这是回答“有哪些属性/参数/类型”的最准确来源。
|
|
43
67
|
|
|
44
68
|
### 第二步:查找文档和示例
|
|
45
69
|
|
|
@@ -48,28 +72,38 @@ description: '获取 @a2simcode/ui 和 @a2simcode/dui 组件的使用说明、Pr
|
|
|
48
72
|
- 如果不存在,尝试:`docs/components/<component>.md` 或 `docs-dui/components/<component>.md`
|
|
49
73
|
- 获取组件的功能描述。
|
|
50
74
|
|
|
51
|
-
2.
|
|
75
|
+
2. **查找示例代码(可选)**(按优先级顺序):
|
|
52
76
|
- 首先尝试:`node_modules/@a2simcode/ui/docs/examples/<component>/basic.vue` 或 `node_modules/@a2simcode/dui/docs-dui/examples/<component>/basic.vue`
|
|
53
77
|
- 如果不存在,尝试:`docs/examples/<component>/basic.vue` 或 `docs-dui/examples/<component>/basic.vue`
|
|
54
|
-
-
|
|
78
|
+
- 若 DUI 示例目录找不到:
|
|
79
|
+
- 尝试 `<component>` 的 camelCase / kebab-case 变体(示例目录与文档命名可能不同)
|
|
80
|
+
- 优先查看 `basic.vue`(基础用法),再按需查看同目录下其它示例(例如 `disabled.vue`, `events.vue`, `methods.vue` 等)。
|
|
55
81
|
|
|
56
82
|
### 第三步:查阅源码 (备选)
|
|
57
83
|
|
|
58
84
|
- 仅当 Meta 数据和文档都缺失,或需要了解内部实现细节时,才去查看源码:
|
|
59
85
|
- UI: `node_modules/@a2simcode/ui/packages/components/` 或 `packages/components/`
|
|
60
86
|
- DUI: `node_modules/@a2simcode/dui/packages/components-dui/` 或 `packages/components-dui/`
|
|
87
|
+
- 若在开发仓库中仍无法定位 DUI 组件的真实源码路径,可参考映射配置:`scripts/dui-component-map.ts`(以组件名映射到源码路径与 Meta 输出路径)。
|
|
61
88
|
|
|
62
89
|
### 第四步:综合回答
|
|
63
90
|
|
|
64
|
-
1. **功能概述**:基于 Markdown
|
|
65
|
-
2. **API 详细说明**:基于 Meta (`.ts`)
|
|
66
|
-
3.
|
|
91
|
+
1. **功能概述**:基于 Markdown 文档,说明用途与关键点。
|
|
92
|
+
2. **API 详细说明**:基于 Meta (`.ts`) 列出 Props / Events / Slots / Methods / Types,并包含类型与默认值。
|
|
93
|
+
3. **代码示例**:
|
|
94
|
+
- 若存在 `examples/`:优先引用其中的用法
|
|
95
|
+
- 若不存在 `examples/`(第三方安装包中常见):基于 Meta 的 props / events 与组件命名规则生成“最小可运行示例”,避免依赖文档站点内部的 demo 组件
|
|
67
96
|
|
|
68
97
|
## 常用组件映射
|
|
69
98
|
|
|
70
|
-
-
|
|
71
|
-
- `j-
|
|
72
|
-
- `
|
|
99
|
+
- UI:
|
|
100
|
+
- `j-button` → `docs/components/button.md` + `docs/components/meta/button.ts`(`docs/examples/button/` 可选)
|
|
101
|
+
- `j-table` → `docs/components/table.md` + `docs/components/meta/table.ts`(`docs/examples/table/` 可选)
|
|
102
|
+
- `j-slider-captcha` → `docs/components/slider-captcha.md` + `docs/components/meta/slider-captcha.ts`(`docs/examples/slider-captcha/` 可选)
|
|
103
|
+
- DUI:
|
|
104
|
+
- `d-drag` → `docs-dui/components/drag.md` + `docs-dui/components/meta/drag.ts`(`docs-dui/examples/drag/` 可选)
|
|
105
|
+
- `d-draggable` → `docs-dui/components/draggable.md` + `docs-dui/components/meta/draggable.ts`(`docs-dui/examples/draggable/` 可选)
|
|
106
|
+
- `flowDesign`(文档/示例)→ `docs-dui/components/flowDesign.md`(可能存在)+(可选)`docs-dui/examples/flowDesign/`;对应 Meta 通常为 `docs-dui/components/meta/flow-design.ts`
|
|
73
107
|
|
|
74
108
|
## 行动指南
|
|
75
109
|
|
|
@@ -77,5 +111,5 @@ description: '获取 @a2simcode/ui 和 @a2simcode/dui 组件的使用说明、Pr
|
|
|
77
111
|
|
|
78
112
|
1. **首选**:读取 `node_modules/@a2simcode/ui/docs/components/meta/[组件名].ts` 或 `node_modules/@a2simcode/dui/docs-dui/components/meta/[组件名].ts` 获取 API 参数(如果不存在,尝试项目源码路径)。
|
|
79
113
|
2. **次选**:读取 `node_modules/@a2simcode/ui/docs/components/[组件名].md` 获取描述(如果不存在,尝试项目源码路径)。
|
|
80
|
-
3.
|
|
81
|
-
4.
|
|
114
|
+
3. **可选**:若存在示例目录,读取 `node_modules/@a2simcode/ui/docs/examples/[组件名]/basic.vue` 获取基础示例(如果不存在,尝试项目源码路径)。
|
|
115
|
+
4. **回答**:输出“功能概述 + API 清单 + 可运行示例”。当示例目录缺失时,示例由 Meta 与命名规则自动生成。
|
|
@@ -24,6 +24,8 @@ declare const JInput: {
|
|
|
24
24
|
placeholder: string;
|
|
25
25
|
clearable: boolean;
|
|
26
26
|
showPassword: boolean;
|
|
27
|
+
prependStyle: Record<string, string | number>;
|
|
28
|
+
appendStyle: Record<string, string | number>;
|
|
27
29
|
autosize: boolean | {
|
|
28
30
|
minRows?: number;
|
|
29
31
|
maxRows?: number;
|
|
@@ -60,6 +62,8 @@ declare const JInput: {
|
|
|
60
62
|
placeholder: string;
|
|
61
63
|
clearable: boolean;
|
|
62
64
|
showPassword: boolean;
|
|
65
|
+
prependStyle: Record<string, string | number>;
|
|
66
|
+
appendStyle: Record<string, string | number>;
|
|
63
67
|
autosize: boolean | {
|
|
64
68
|
minRows?: number;
|
|
65
69
|
maxRows?: number;
|
|
@@ -98,6 +102,8 @@ declare const JInput: {
|
|
|
98
102
|
placeholder: string;
|
|
99
103
|
clearable: boolean;
|
|
100
104
|
showPassword: boolean;
|
|
105
|
+
prependStyle: Record<string, string | number>;
|
|
106
|
+
appendStyle: Record<string, string | number>;
|
|
101
107
|
autosize: boolean | {
|
|
102
108
|
minRows?: number;
|
|
103
109
|
maxRows?: number;
|
|
@@ -34,6 +34,14 @@ export interface InputProps {
|
|
|
34
34
|
prefixIcon?: string;
|
|
35
35
|
/** 自定义后缀图标 */
|
|
36
36
|
suffixIcon?: string;
|
|
37
|
+
/**自定义前置内容 */
|
|
38
|
+
prepend?: string;
|
|
39
|
+
/** 前置内容的样式 */
|
|
40
|
+
prependStyle?: Record<string, string | number>;
|
|
41
|
+
/** 自定义后置内容 */
|
|
42
|
+
append?: string;
|
|
43
|
+
/** 后置内容的样式 */
|
|
44
|
+
appendStyle?: Record<string, string | number>;
|
|
37
45
|
/** 输入框行数,仅 type 为 'textarea' 时有效 */
|
|
38
46
|
rows?: number;
|
|
39
47
|
/** textarea 高度是否自适应,仅 type 为 'textarea' 时生效。 可以接受一个对象,比如: { minRows: 2, maxRows: 6 } */
|
|
@@ -99,6 +107,8 @@ declare const _default: import('vue').DefineComponent<InputProps, {}, {}, {}, {}
|
|
|
99
107
|
placeholder: string;
|
|
100
108
|
clearable: boolean;
|
|
101
109
|
showPassword: boolean;
|
|
110
|
+
prependStyle: Record<string, string | number>;
|
|
111
|
+
appendStyle: Record<string, string | number>;
|
|
102
112
|
autosize: boolean | {
|
|
103
113
|
minRows?: number;
|
|
104
114
|
maxRows?: number;
|
|
@@ -67,9 +67,7 @@ export declare const JInputLayer: {
|
|
|
67
67
|
readonly onClosed?: ((...args: any[]) => any) | undefined;
|
|
68
68
|
readonly onCancel?: ((...args: any[]) => any) | undefined;
|
|
69
69
|
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "height" | "width" | "isStep" | "validateSteps" | "beforeClose" | "steps" | "hasBtns" | "buttons" | "btnText" | "destroyOnClose" | "hasSaveBtn" | "hasHeader">;
|
|
70
|
-
$attrs:
|
|
71
|
-
[x: string]: unknown;
|
|
72
|
-
};
|
|
70
|
+
$attrs: import('vue').Attrs;
|
|
73
71
|
$refs: {
|
|
74
72
|
[x: string]: unknown;
|
|
75
73
|
} & {
|
|
@@ -126,9 +126,7 @@ declare const _default: import('vue').DefineComponent<InputLayerProps, {}, {}, {
|
|
|
126
126
|
readonly onClosed?: ((...args: any[]) => any) | undefined;
|
|
127
127
|
readonly onCancel?: ((...args: any[]) => any) | undefined;
|
|
128
128
|
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "height" | "width" | "isStep" | "validateSteps" | "beforeClose" | "steps" | "hasBtns" | "buttons" | "btnText" | "destroyOnClose" | "hasSaveBtn" | "hasHeader">;
|
|
129
|
-
$attrs:
|
|
130
|
-
[x: string]: unknown;
|
|
131
|
-
};
|
|
129
|
+
$attrs: import('vue').Attrs;
|
|
132
130
|
$refs: {
|
|
133
131
|
[x: string]: unknown;
|
|
134
132
|
} & {
|
|
@@ -6,11 +6,11 @@ declare const JTabs: {
|
|
|
6
6
|
getVnode: () => import('vue').VNode;
|
|
7
7
|
slots: import('vue').Slots;
|
|
8
8
|
props: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
label?: string | undefined;
|
|
10
|
+
name?: string | number | undefined;
|
|
11
|
+
closable?: boolean | undefined;
|
|
12
|
+
disabled?: boolean | undefined;
|
|
13
|
+
lazy?: boolean | undefined;
|
|
14
14
|
};
|
|
15
15
|
paneName: import('element-plus').TabPaneName | undefined;
|
|
16
16
|
active: boolean;
|
|
@@ -29,11 +29,11 @@ declare const JTabs: {
|
|
|
29
29
|
getVnode: () => import('vue').VNode;
|
|
30
30
|
slots: import('vue').Slots;
|
|
31
31
|
props: {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
label?: string | undefined;
|
|
33
|
+
name?: string | number | undefined;
|
|
34
|
+
closable?: boolean | undefined;
|
|
35
|
+
disabled?: boolean | undefined;
|
|
36
|
+
lazy?: boolean | undefined;
|
|
37
37
|
};
|
|
38
38
|
paneName: import('element-plus').TabPaneName | undefined;
|
|
39
39
|
active: boolean;
|
|
@@ -66,11 +66,11 @@ declare const JTabs: {
|
|
|
66
66
|
getVnode: () => import('vue').VNode;
|
|
67
67
|
slots: import('vue').Slots;
|
|
68
68
|
props: {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
label?: string | undefined;
|
|
70
|
+
name?: string | number | undefined;
|
|
71
|
+
closable?: boolean | undefined;
|
|
72
|
+
disabled?: boolean | undefined;
|
|
73
|
+
lazy?: boolean | undefined;
|
|
74
74
|
};
|
|
75
75
|
paneName: import('element-plus').TabPaneName | undefined;
|
|
76
76
|
active: boolean;
|
|
@@ -100,11 +100,11 @@ declare const JTabs: {
|
|
|
100
100
|
getVnode: () => import('vue').VNode;
|
|
101
101
|
slots: import('vue').Slots;
|
|
102
102
|
props: {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
label?: string | undefined;
|
|
104
|
+
name?: string | number | undefined;
|
|
105
|
+
closable?: boolean | undefined;
|
|
106
|
+
disabled?: boolean | undefined;
|
|
107
|
+
lazy?: boolean | undefined;
|
|
108
108
|
};
|
|
109
109
|
paneName: import('element-plus').TabPaneName | undefined;
|
|
110
110
|
active: boolean;
|
|
@@ -123,11 +123,11 @@ declare const JTabs: {
|
|
|
123
123
|
getVnode: () => import('vue').VNode;
|
|
124
124
|
slots: import('vue').Slots;
|
|
125
125
|
props: {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
label?: string | undefined;
|
|
127
|
+
name?: string | number | undefined;
|
|
128
|
+
closable?: boolean | undefined;
|
|
129
|
+
disabled?: boolean | undefined;
|
|
130
|
+
lazy?: boolean | undefined;
|
|
131
131
|
};
|
|
132
132
|
paneName: import('element-plus').TabPaneName | undefined;
|
|
133
133
|
active: boolean;
|
|
@@ -59,11 +59,11 @@ declare const __VLS_component: import('vue').DefineComponent<TabsProps, {}, {},
|
|
|
59
59
|
getVnode: () => import('vue').VNode;
|
|
60
60
|
slots: import('vue').Slots;
|
|
61
61
|
props: {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
label?: string | undefined;
|
|
63
|
+
name?: string | number | undefined;
|
|
64
|
+
closable?: boolean | undefined;
|
|
65
|
+
disabled?: boolean | undefined;
|
|
66
|
+
lazy?: boolean | undefined;
|
|
67
67
|
};
|
|
68
68
|
paneName: import('element-plus').TabPaneName | undefined;
|
|
69
69
|
active: boolean;
|
|
@@ -82,11 +82,11 @@ declare const __VLS_component: import('vue').DefineComponent<TabsProps, {}, {},
|
|
|
82
82
|
getVnode: () => import('vue').VNode;
|
|
83
83
|
slots: import('vue').Slots;
|
|
84
84
|
props: {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
label?: string | undefined;
|
|
86
|
+
name?: string | number | undefined;
|
|
87
|
+
closable?: boolean | undefined;
|
|
88
|
+
disabled?: boolean | undefined;
|
|
89
|
+
lazy?: boolean | undefined;
|
|
90
90
|
};
|
|
91
91
|
paneName: import('element-plus').TabPaneName | undefined;
|
|
92
92
|
active: boolean;
|