@ticatec/uniface-element 0.3.17 → 0.3.19
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 +43 -0
- package/COMPONENT_GUIDE.md +441 -0
- package/COMPONENT_GUIDE_CN.md +465 -0
- package/COMPONENT_SELECTION_PROMPTS.md +568 -0
- package/CONTRIBUTING.md +217 -0
- package/README.md +19 -9
- package/dist/attachment-files/README.md +169 -0
- package/dist/attachment-files/README_CN.md +169 -0
- package/dist/color-picker/README.md +184 -0
- package/dist/color-picker/README_CN.md +185 -0
- package/dist/form-field/README.md +193 -0
- package/dist/form-field/README_CN.md +193 -0
- package/dist/form-panel/flex-form/FlexForm.svelte +1 -1
- package/dist/inline-cell-editor/README.md +116 -0
- package/dist/inline-cell-editor/README_CN.md +116 -0
- package/dist/lib/TreeNode_README.md +32 -57
- package/dist/lib/TreeNode_README_CN.md +25 -43
- package/dist/lib/TreeNodes.d.ts +49 -98
- package/dist/lib/TreeNodes.js +97 -86
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.js +2 -0
- package/dist/nav-menu/MenuItem.d.ts +2 -2
- package/dist/navigator/README.md +377 -0
- package/dist/navigator/README_CN.md +377 -0
- package/dist/separator/README.md +105 -0
- package/dist/separator/README_CN.md +105 -0
- package/dist/split/README.md +240 -0
- package/dist/split/README_CN.md +240 -0
- package/dist/tree-view/README.md +48 -36
- package/dist/tree-view/README_CN.md +45 -9
- package/dist/tree-view/TreeNodeView.svelte +3 -9
- package/dist/tree-view/TreeView.svelte +4 -6
- package/dist/tree-view/Types.d.ts +2 -2
- package/package.json +16 -9
|
@@ -0,0 +1,568 @@
|
|
|
1
|
+
# Uniface Element 组件选择提示词系统
|
|
2
|
+
|
|
3
|
+
本文档提供了一套结构化的提示词,帮助用户或 AI 助手根据具体使用场景快速选择合适的组件。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🤖 如何使用此系统
|
|
8
|
+
|
|
9
|
+
### 作为用户:
|
|
10
|
+
1. 找到符合你需求的场景描述
|
|
11
|
+
2. 查看推荐的组件
|
|
12
|
+
3. 参考示例代码
|
|
13
|
+
|
|
14
|
+
### 作为 AI 助手:
|
|
15
|
+
当用户描述需求时,使用以下决策逻辑来推荐组件:
|
|
16
|
+
1. 识别用户需求的类别(布局、表单、数据展示等)
|
|
17
|
+
2. 匹配对应的场景描述
|
|
18
|
+
3. 推荐最合适的组件
|
|
19
|
+
4. 提供示例代码
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 📦 按需求场景分类
|
|
24
|
+
|
|
25
|
+
### 🏗️ 需求:创建应用布局
|
|
26
|
+
|
|
27
|
+
**场景描述:**
|
|
28
|
+
- "我需要创建一个应用的整体布局"
|
|
29
|
+
- "需要一个带侧边栏的页面"
|
|
30
|
+
- "想要一个经典的顶部导航+侧边栏+内容的布局"
|
|
31
|
+
- "需要响应式的多列布局"
|
|
32
|
+
|
|
33
|
+
**关键问题:**
|
|
34
|
+
```
|
|
35
|
+
1. 需要侧边栏吗?
|
|
36
|
+
└─ 是 → SidebarLayout
|
|
37
|
+
└─ 否 → 继续问 2
|
|
38
|
+
|
|
39
|
+
2. 需要顶部导航栏吗?
|
|
40
|
+
└─ 是 → HeaderLayout
|
|
41
|
+
└─ 否 → 继续问 3
|
|
42
|
+
|
|
43
|
+
3. 需要完整的经典布局(头+侧边+内容+底)吗?
|
|
44
|
+
└─ 是 → ClassicLayout
|
|
45
|
+
└─ 否 → 继续问 4
|
|
46
|
+
|
|
47
|
+
4. 需要多列还是多行?
|
|
48
|
+
└─ 多列 → ColumnsLayout
|
|
49
|
+
└─ 多行 → RowsLayout
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**推荐组件:**
|
|
53
|
+
```typescript
|
|
54
|
+
// 侧边栏布局
|
|
55
|
+
import SidebarLayout from '@ticatec/uniface-element/app-layout/SidebarLayout';
|
|
56
|
+
|
|
57
|
+
// 顶部栏布局
|
|
58
|
+
import HeaderLayout from '@ticatec/uniface-element/app-layout/HeaderLayout';
|
|
59
|
+
|
|
60
|
+
// 经典布局
|
|
61
|
+
import ClassicLayout from '@ticatec/uniface-element/app-layout/ClassicLayout';
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
### 📝 需求:创建表单
|
|
67
|
+
|
|
68
|
+
**场景描述:**
|
|
69
|
+
- "我需要创建一个用户注册表单"
|
|
70
|
+
- "需要一个输入框来收集用户信息"
|
|
71
|
+
- "需要数字输入"
|
|
72
|
+
- "需要下拉选择"
|
|
73
|
+
- "需要日期选择"
|
|
74
|
+
- "需要文件上传"
|
|
75
|
+
|
|
76
|
+
**决策树:**
|
|
77
|
+
```
|
|
78
|
+
1. 输入什么类型的数据?
|
|
79
|
+
|
|
80
|
+
文本类型:
|
|
81
|
+
├── 单行文本 → TextEditor
|
|
82
|
+
├── 多行文本/备注 → MemoEditor
|
|
83
|
+
├── 需要提示/自动完成 → PromptsTextEditor
|
|
84
|
+
└── 单元格内编辑 → InlineCellEditor
|
|
85
|
+
|
|
86
|
+
数字类型:
|
|
87
|
+
├── 普通数字 → NumberEditor
|
|
88
|
+
├── 带单位(如 $100)→ UnitNumberEditor
|
|
89
|
+
└── 数字范围(如价格区间)→ NumberRange
|
|
90
|
+
|
|
91
|
+
选择类型:
|
|
92
|
+
├── 是/否开关 → Switch
|
|
93
|
+
├── 勾选 → CheckBox
|
|
94
|
+
├── 单选(多选一)→ RadioButton
|
|
95
|
+
├── 下拉单选 → OptionsSelect
|
|
96
|
+
├── 下拉多选 → OptionsMultiSelect
|
|
97
|
+
├── 级联选择(省市区)→ CascadeOptionsSelect
|
|
98
|
+
├── 可输入也可选择 → InputOptionsSelect
|
|
99
|
+
└── 查找选择 → LookupEditor
|
|
100
|
+
|
|
101
|
+
日期时间:
|
|
102
|
+
├── 日期选择 → DatePicker
|
|
103
|
+
├── 日期时间选择 → DateTimePicker
|
|
104
|
+
├── 日期范围 → DateRange
|
|
105
|
+
└── 时间选择 → TimeEditor
|
|
106
|
+
|
|
107
|
+
文件:
|
|
108
|
+
├── 普通文件上传 → AttachmentFiles
|
|
109
|
+
├── 图片上传 → ImageFiles
|
|
110
|
+
└── 穿梭选择(左右移动)→ Transfer
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**最佳实践:**
|
|
114
|
+
```svelte
|
|
115
|
+
<script>
|
|
116
|
+
import FormField from '@ticatec/uniface-element/FormField';
|
|
117
|
+
import TextEditor from '@ticatec/uniface-element/TextEditor';
|
|
118
|
+
import NumberEditor from '@ticatec/uniface-element/NumberEditor';
|
|
119
|
+
import OptionsSelect from '@ticatec/uniface-element/OptionsSelect';
|
|
120
|
+
import Button from '@ticatec/uniface-element/Button';
|
|
121
|
+
</script>
|
|
122
|
+
|
|
123
|
+
<form>
|
|
124
|
+
<FormField label="用户名" required>
|
|
125
|
+
<TextEditor placeholder="请输入用户名" />
|
|
126
|
+
</FormField>
|
|
127
|
+
|
|
128
|
+
<FormField label="年龄">
|
|
129
|
+
<NumberEditor placeholder="请输入年龄" />
|
|
130
|
+
</FormField>
|
|
131
|
+
|
|
132
|
+
<FormField label="国家">
|
|
133
|
+
<OptionsSelect options={countries} />
|
|
134
|
+
</FormField>
|
|
135
|
+
|
|
136
|
+
<Button type="primary">提交</Button>
|
|
137
|
+
</form>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### 📊 需求:展示数据
|
|
143
|
+
|
|
144
|
+
**场景描述:**
|
|
145
|
+
- "我需要展示一个数据表格"
|
|
146
|
+
- "需要分页展示数据"
|
|
147
|
+
- "需要显示树形结构的数据"
|
|
148
|
+
- "需要显示进度条"
|
|
149
|
+
- "需要显示状态标签"
|
|
150
|
+
|
|
151
|
+
**决策树:**
|
|
152
|
+
```
|
|
153
|
+
1. 数据展示形式?
|
|
154
|
+
|
|
155
|
+
表格数据:
|
|
156
|
+
├── 复杂表格(需要分页、排序、选择)→ DataTable
|
|
157
|
+
└── 简单表格 → ConciseDataTable
|
|
158
|
+
|
|
159
|
+
列表数据:
|
|
160
|
+
├── 平面列表 → ListBox
|
|
161
|
+
└── 树形结构 → TreeView
|
|
162
|
+
|
|
163
|
+
进度/状态:
|
|
164
|
+
├── 进度百分比 → ProgressBar
|
|
165
|
+
├── 步骤进度 → ProgressStepBar
|
|
166
|
+
├── 向导导航 → Navigator
|
|
167
|
+
└── 状态标签 → Tag
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**示例代码:**
|
|
171
|
+
```svelte
|
|
172
|
+
<script>
|
|
173
|
+
import DataTable from '@ticatec/uniface-element/DataTable';
|
|
174
|
+
import type { DataColumn } from '@ticatec/uniface-element/DataTable';
|
|
175
|
+
|
|
176
|
+
let columns: DataColumn[] = [
|
|
177
|
+
{ field: 'name', title: '姓名', width: 150 },
|
|
178
|
+
{ field: 'email', title: '邮箱', width: 200 },
|
|
179
|
+
{ field: 'status', title: '状态', width: 120 }
|
|
180
|
+
];
|
|
181
|
+
|
|
182
|
+
let data = [
|
|
183
|
+
{ name: '张三', email: 'zhangsan@example.com', status: 'Active' },
|
|
184
|
+
{ name: '李四', email: 'lisi@example.com', status: 'Inactive' }
|
|
185
|
+
];
|
|
186
|
+
</script>
|
|
187
|
+
|
|
188
|
+
<DataTable {columns} list={data} />
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### 💬 需求:用户反馈和通知
|
|
194
|
+
|
|
195
|
+
**场景描述:**
|
|
196
|
+
- "需要弹出一个对话框确认操作"
|
|
197
|
+
- "需要显示成功/失败消息"
|
|
198
|
+
- "需要显示一个侧边面板"
|
|
199
|
+
- "需要一个提示框"
|
|
200
|
+
|
|
201
|
+
**决策树:**
|
|
202
|
+
```
|
|
203
|
+
1. 反馈类型?
|
|
204
|
+
|
|
205
|
+
弹窗类型:
|
|
206
|
+
├── 完整自定义对话框 → Dialog
|
|
207
|
+
├── 标准确认框(确定/取消)→ CommonDialog
|
|
208
|
+
└── 消息提示框 → MessageBox
|
|
209
|
+
|
|
210
|
+
侧边类型:
|
|
211
|
+
└── 从侧边滑出 → Drawer
|
|
212
|
+
|
|
213
|
+
轻量提示:
|
|
214
|
+
├── 消息提示(自动消失)→ Toast
|
|
215
|
+
└── 悬浮提示 → PopupHint
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**使用场景示例:**
|
|
219
|
+
```svelte
|
|
220
|
+
<!-- 确认删除对话框 -->
|
|
221
|
+
<script>
|
|
222
|
+
import Dialog from '@ticatec/uniface-element/Dialog';
|
|
223
|
+
import Button from '@ticatec/uniface-element/Button';
|
|
224
|
+
|
|
225
|
+
let showDialog = false;
|
|
226
|
+
|
|
227
|
+
function handleDelete() {
|
|
228
|
+
showDialog = true;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function confirmDelete() {
|
|
232
|
+
console.log('已删除');
|
|
233
|
+
showDialog = false;
|
|
234
|
+
}
|
|
235
|
+
</script>
|
|
236
|
+
|
|
237
|
+
<Button onclick={handleDelete}>删除</Button>
|
|
238
|
+
|
|
239
|
+
<Dialog bind:visible={showDialog} title="确认删除">
|
|
240
|
+
<p>确定要删除此项吗?</p>
|
|
241
|
+
<svelte:fragment slot="actions">
|
|
242
|
+
<Button onclick={() => showDialog = false}>取消</Button>
|
|
243
|
+
<Button type="primary" onclick={confirmDelete}>确定</Button>
|
|
244
|
+
</svelte:fragment>
|
|
245
|
+
</Dialog>
|
|
246
|
+
|
|
247
|
+
<!-- 成功消息提示 -->
|
|
248
|
+
<script>
|
|
249
|
+
import Toast from '@ticatec/uniface-element/Toast';
|
|
250
|
+
|
|
251
|
+
function showSuccess() {
|
|
252
|
+
Toast.success('操作成功!');
|
|
253
|
+
}
|
|
254
|
+
</script>
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
### 🧭 需求:页面导航
|
|
260
|
+
|
|
261
|
+
**场景描述:**
|
|
262
|
+
- "需要显示面包屑导航"
|
|
263
|
+
- "需要标签页来分组内容"
|
|
264
|
+
- "需要创建向导流程"
|
|
265
|
+
- "需要导航菜单"
|
|
266
|
+
|
|
267
|
+
**决策树:**
|
|
268
|
+
```
|
|
269
|
+
1. 导航类型?
|
|
270
|
+
|
|
271
|
+
层级导航:
|
|
272
|
+
└── 面包屑 → Breadcrumbs
|
|
273
|
+
|
|
274
|
+
内容分组:
|
|
275
|
+
└── 标签页 → Tabs
|
|
276
|
+
|
|
277
|
+
流程导航:
|
|
278
|
+
└── 向导步骤 → Navigator
|
|
279
|
+
|
|
280
|
+
菜单导航:
|
|
281
|
+
├── 顶部菜单 → NavigatorMenu
|
|
282
|
+
├── 工具栏 → ActionBar
|
|
283
|
+
└── 右键菜单 → ContextMenu
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
### 🎨 需求:按钮和操作
|
|
289
|
+
|
|
290
|
+
**场景描述:**
|
|
291
|
+
- "需要一个提交按钮"
|
|
292
|
+
- "需要一个图标按钮"
|
|
293
|
+
- "需要一个工具栏"
|
|
294
|
+
|
|
295
|
+
**决策树:**
|
|
296
|
+
```
|
|
297
|
+
1. 按钮重要性?
|
|
298
|
+
|
|
299
|
+
主要操作:
|
|
300
|
+
└── type="primary"
|
|
301
|
+
|
|
302
|
+
次要操作:
|
|
303
|
+
└── type="secondary"
|
|
304
|
+
|
|
305
|
+
危险操作:
|
|
306
|
+
└── 自定义红色样式
|
|
307
|
+
|
|
308
|
+
2. 按钮样式?
|
|
309
|
+
|
|
310
|
+
标准按钮:
|
|
311
|
+
└── Button
|
|
312
|
+
|
|
313
|
+
图标按钮:
|
|
314
|
+
└── IconButton
|
|
315
|
+
|
|
316
|
+
文本按钮:
|
|
317
|
+
└── TextButton
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
### 🔍 需求:搜索和筛选
|
|
323
|
+
|
|
324
|
+
**场景描述:**
|
|
325
|
+
- "需要一个搜索框"
|
|
326
|
+
- "需要多条件筛选"
|
|
327
|
+
- "需要数字范围筛选"
|
|
328
|
+
- "需要日期范围筛选"
|
|
329
|
+
|
|
330
|
+
**推荐组件:**
|
|
331
|
+
```
|
|
332
|
+
搜索:
|
|
333
|
+
└── SearchBox - 带搜索图标的输入框
|
|
334
|
+
|
|
335
|
+
多条件筛选:
|
|
336
|
+
└── CriteriaField - 组合多个筛选条件
|
|
337
|
+
|
|
338
|
+
范围筛选:
|
|
339
|
+
├── 数字范围 → NumberRange
|
|
340
|
+
└── 日期范围 → DateRange
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**示例:**
|
|
344
|
+
```svelte
|
|
345
|
+
<script>
|
|
346
|
+
import SearchBox from '@ticatec/uniface-element/SearchBox';
|
|
347
|
+
import CriteriaField from '@ticatec/uniface-element/CriteriaField';
|
|
348
|
+
import NumberRange from '@ticatec/uniface-element/NumberRange';
|
|
349
|
+
import DateRange from '@ticatec/uniface-element/DateRange';
|
|
350
|
+
</script>
|
|
351
|
+
|
|
352
|
+
<!-- 搜索框 -->
|
|
353
|
+
<SearchBox placeholder="搜索..." />
|
|
354
|
+
|
|
355
|
+
<!-- 多条件筛选 -->
|
|
356
|
+
<CriteriaField>
|
|
357
|
+
<NumberRange label="价格区间" />
|
|
358
|
+
<DateRange label="发布日期" />
|
|
359
|
+
</CriteriaField>
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## 🎯 常见场景速查
|
|
365
|
+
|
|
366
|
+
### 场景 1:用户注册页面
|
|
367
|
+
```
|
|
368
|
+
需求:收集用户基本信息
|
|
369
|
+
|
|
370
|
+
推荐组件:
|
|
371
|
+
├── Page - 页面容器
|
|
372
|
+
├── FormField - 表单字段包装(提供标签和错误提示)
|
|
373
|
+
├── TextEditor - 用户名、邮箱
|
|
374
|
+
├── PasswordEditor - 密码
|
|
375
|
+
├── OptionsSelect - 国家/地区选择
|
|
376
|
+
├── CheckBox - 同意条款
|
|
377
|
+
└── Button - 提交按钮(type="primary")
|
|
378
|
+
|
|
379
|
+
完整示例代码:
|
|
380
|
+
见 COMPONENT_GUIDE.md 场景 1
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### 场景 2:数据管理后台
|
|
384
|
+
```
|
|
385
|
+
需求:展示和管理数据列表
|
|
386
|
+
|
|
387
|
+
推荐组件:
|
|
388
|
+
├── SidebarLayout - 应用布局(侧边栏+主内容)
|
|
389
|
+
├── DataTable - 数据表格(支持分页、排序、选择)
|
|
390
|
+
├── SearchBox - 搜索框
|
|
391
|
+
├── CriteriaField - 筛选区域
|
|
392
|
+
├── Button - 新增、删除、编辑按钮
|
|
393
|
+
├── Pagination - 分页组件
|
|
394
|
+
├── Dialog - 编辑对话框
|
|
395
|
+
└── Toast - 操作反馈
|
|
396
|
+
|
|
397
|
+
完整示例代码:
|
|
398
|
+
见 COMPONENT_GUIDE.md 场景 2
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### 场景 3:设置页面
|
|
402
|
+
```
|
|
403
|
+
需求:用户配置设置
|
|
404
|
+
|
|
405
|
+
推荐组件:
|
|
406
|
+
├── Page - 页面容器
|
|
407
|
+
├── Tabs - 分组不同设置类别
|
|
408
|
+
├── FormField - 表单字段包装
|
|
409
|
+
├── TextEditor - 文本类设置
|
|
410
|
+
├── NumberEditor - 数字类设置
|
|
411
|
+
├── Switch - 开关类设置
|
|
412
|
+
├── OptionsSelect - 选项类设置
|
|
413
|
+
└── Button - 保存按钮
|
|
414
|
+
|
|
415
|
+
完整示例代码:
|
|
416
|
+
见 COMPONENT_GUIDE.md 场景 3
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
### 场景 4:多步骤向导
|
|
420
|
+
```
|
|
421
|
+
需求:引导用户完成多步骤流程
|
|
422
|
+
|
|
423
|
+
推荐组件:
|
|
424
|
+
├── Page - 页面容器
|
|
425
|
+
├── Navigator - 步骤导航器(显示进度)
|
|
426
|
+
├── FormField - 表单字段
|
|
427
|
+
├── 各类表单组件 - 根据每步需求
|
|
428
|
+
└── Button - 上一步/下一步按钮
|
|
429
|
+
|
|
430
|
+
完整示例代码:
|
|
431
|
+
见 COMPONENT_GUIDE.md 场景 4
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### 场景 5:文件管理系统
|
|
435
|
+
```
|
|
436
|
+
需求:上传和管理文件
|
|
437
|
+
|
|
438
|
+
推荐组件:
|
|
439
|
+
├── DataTable - 文件列表
|
|
440
|
+
├── AttachmentFiles - 文件上传(带进度)
|
|
441
|
+
├── Button - 操作按钮(上传、删除、下载)
|
|
442
|
+
├── SearchBox - 文件搜索
|
|
443
|
+
├── CriteriaField - 文件类型筛选
|
|
444
|
+
├── Dialog - 文件详情/预览
|
|
445
|
+
└── Tag - 文件类型标签
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
## 💡 AI 助手决策逻辑
|
|
451
|
+
|
|
452
|
+
当用户描述需求时,按以下逻辑思考:
|
|
453
|
+
|
|
454
|
+
### 第一步:识别需求类别
|
|
455
|
+
```
|
|
456
|
+
需求关键词识别:
|
|
457
|
+
|
|
458
|
+
布局相关:
|
|
459
|
+
├─ "布局"、"页面结构"、"侧边栏"、"顶部栏"
|
|
460
|
+
└─ → 转到 [布局组件决策](#需求创建应用布局)
|
|
461
|
+
|
|
462
|
+
表单相关:
|
|
463
|
+
├─ "输入"、"表单"、"填写"、"收集信息"
|
|
464
|
+
├─ "文本"、"数字"、"日期"、"选择"、"上传"
|
|
465
|
+
└─ → 转到 [表单组件决策](#需求创建表单)
|
|
466
|
+
|
|
467
|
+
数据展示:
|
|
468
|
+
├─ "表格"、"列表"、"数据"、"展示"
|
|
469
|
+
├─ "分页"、"进度"、"状态"
|
|
470
|
+
└─ → 转到 [数据展示决策](#需求展示数据)
|
|
471
|
+
|
|
472
|
+
反馈通知:
|
|
473
|
+
├─ "对话框"、"弹窗"、"提示"、"消息"
|
|
474
|
+
├─ "确认"、"通知"
|
|
475
|
+
└─ → 转到 [反馈组件决策](#需求用户反馈和通知)
|
|
476
|
+
|
|
477
|
+
导航相关:
|
|
478
|
+
├─ "导航"、"菜单"、"面包屑"、"标签页"
|
|
479
|
+
├─ "步骤"、"向导"
|
|
480
|
+
└─ → 转到 [导航组件决策](#需求页面导航)
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### 第二步:细化需求
|
|
484
|
+
```
|
|
485
|
+
对于表单需求,问自己:
|
|
486
|
+
1. 输入什么类型的数据?
|
|
487
|
+
- 文本 → TextEditor / MemoEditor
|
|
488
|
+
- 数字 → NumberEditor
|
|
489
|
+
- 日期 → DatePicker
|
|
490
|
+
- 选择 → OptionsSelect / CheckBox / RadioButton
|
|
491
|
+
- 文件 → AttachmentFiles
|
|
492
|
+
|
|
493
|
+
2. 需要验证吗?
|
|
494
|
+
- 是 → 使用 FormField 的 error 属性
|
|
495
|
+
|
|
496
|
+
3. 需要标签和提示吗?
|
|
497
|
+
- 是 → 使用 FormField 包装
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
### 第三步:推荐并生成代码
|
|
501
|
+
```
|
|
502
|
+
1. 列出需要的组件
|
|
503
|
+
2. 提供完整的导入语句
|
|
504
|
+
3. 提供基础示例代码
|
|
505
|
+
4. 说明重要属性
|
|
506
|
+
5. 提供最佳实践建议
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## 🔧 高级场景组合
|
|
512
|
+
|
|
513
|
+
### 复杂表单 + 数据表格
|
|
514
|
+
```
|
|
515
|
+
场景:数据管理系统的编辑页面
|
|
516
|
+
|
|
517
|
+
组件组合:
|
|
518
|
+
├── Dialog - 弹窗编辑
|
|
519
|
+
├── FormField - 表单字段
|
|
520
|
+
├── TextEditor - 文本输入
|
|
521
|
+
├── OptionsSelect - 下拉选择
|
|
522
|
+
├── DataTable - 主数据表格
|
|
523
|
+
├── Button - 操作按钮
|
|
524
|
+
└── Toast - 操作反馈
|
|
525
|
+
|
|
526
|
+
代码结构:
|
|
527
|
+
<Split>
|
|
528
|
+
└── 创建 DataTable 展示列表
|
|
529
|
+
└── 点击"编辑"按钮打开 Dialog
|
|
530
|
+
└── Dialog 内包含 FormField + 各种输入组件
|
|
531
|
+
└── 保存后刷新 DataTable
|
|
532
|
+
</Split>
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
### 文件上传 + 预览
|
|
536
|
+
```
|
|
537
|
+
场景:图片上传和预览
|
|
538
|
+
|
|
539
|
+
组件组合:
|
|
540
|
+
├── AttachmentFiles / ImageFiles - 文件上传
|
|
541
|
+
├── DataTable - 已上传文件列表
|
|
542
|
+
├── Dialog - 图片预览
|
|
543
|
+
└── Tag - 文件类型标签
|
|
544
|
+
|
|
545
|
+
代码结构:
|
|
546
|
+
<Split>
|
|
547
|
+
└── 上传区:AttachmentFiles 组件
|
|
548
|
+
└── 文件列表:DataTable 显示已上传文件
|
|
549
|
+
└── 点击文件:Dialog 显示大图预览
|
|
550
|
+
</Split>
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
---
|
|
554
|
+
|
|
555
|
+
## 📚 相关文档
|
|
556
|
+
|
|
557
|
+
- [组件使用指南](./COMPONENT_GUIDE.md)
|
|
558
|
+
- [组件 API 文档](./src/lib)
|
|
559
|
+
- [示例代码](./src/routes/demo)
|
|
560
|
+
|
|
561
|
+
---
|
|
562
|
+
|
|
563
|
+
## 🎓 使用技巧
|
|
564
|
+
|
|
565
|
+
1. **从需求到组件**:使用本文档的决策树快速定位组件
|
|
566
|
+
2. **查看示例**:每个组件的 README 都有丰富的示例
|
|
567
|
+
3. **组合使用**:参考"高级场景组合"了解组件搭配
|
|
568
|
+
4. **最佳实践**:遵循组件使用指南的最佳实践部分
|