@ticatec/uniface-element 0.2.0 → 0.2.2

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 (209) hide show
  1. package/README.md +320 -1
  2. package/README_CN.md +392 -0
  3. package/dist/accordion/Accordion.svelte +1 -1
  4. package/dist/action-bar/ActionBar.svelte +7 -1
  5. package/dist/attachment-files/FileRender.svelte +1 -1
  6. package/dist/attachment-files/FileUploadBar.svelte +7 -6
  7. package/dist/attachment-files/FileUploadPanel.svelte +2 -2
  8. package/dist/base-calendar/DateContext.js +5 -4
  9. package/dist/base-calendar/YearPickupPanel.svelte +4 -4
  10. package/dist/card/Card.svelte +1 -1
  11. package/dist/card/Card.svelte.d.ts +1 -1
  12. package/dist/cascade-options-select/CascadeOptionSelect.svelte +2 -3
  13. package/dist/cascade-options-select/CascadeOptionSelect.svelte.d.ts +46 -1
  14. package/dist/cascade-options-select/CascadePanel.svelte +1 -1
  15. package/dist/checkbox/CheckBox.svelte +1 -1
  16. package/dist/color-picker/ColorPicker.svelte +9 -9
  17. package/dist/color-picker/ColorPicker.svelte.d.ts +0 -2
  18. package/dist/color-picker/ColorPickerPanel.svelte +11 -15
  19. package/dist/color-picker/ColorPickerPanel.svelte.d.ts +1 -1
  20. package/dist/common/CommonPicker.svelte +2 -2
  21. package/dist/common/CommonPicker.svelte.d.ts +1 -1
  22. package/dist/common/MouseClickHandler.d.ts +1 -1
  23. package/dist/common/Popover.svelte +28 -6
  24. package/dist/common/Popover.svelte.d.ts +9 -3
  25. package/dist/common/uniface-utils.js +6 -4
  26. package/dist/common-editor/CommonEditor.svelte +1 -1
  27. package/dist/common-editor/CommonEditor.svelte.d.ts +1 -1
  28. package/dist/common-editor/NumberInput.svelte +1 -1
  29. package/dist/common-editor/NumberInput.svelte.d.ts +1 -1
  30. package/dist/concise-data-table/ConciseListTable.svelte +7 -2
  31. package/dist/concise-data-table/ConciseListTable.svelte.d.ts +1 -0
  32. package/dist/concise-data-table/DataRow.svelte +1 -1
  33. package/dist/concise-data-table/TableOptions.d.ts +1 -1
  34. package/dist/data-table/DataTable.svelte +1 -1
  35. package/dist/data-table/parts/ActionsPanel.svelte +4 -3
  36. package/dist/data-table/parts/ActionsRow.svelte +3 -3
  37. package/dist/data-table/parts/ContentPanel.svelte +3 -2
  38. package/dist/data-table/parts/FixedColumnsPanel.svelte +0 -1
  39. package/dist/data-table/parts/FixedColumnsPanel.svelte.d.ts +1 -2
  40. package/dist/data-table/parts/FixedHeaderPanel.svelte +2 -2
  41. package/dist/data-table/parts/FixedRow.svelte +2 -1
  42. package/dist/data-table/parts/FixedRow.svelte.d.ts +1 -1
  43. package/dist/data-table/parts/HrefCell.svelte +23 -2
  44. package/dist/data-table/parts/PopupMenu.svelte +25 -2
  45. package/dist/data-table/parts/PopupMenu.svelte.d.ts +8 -1
  46. package/dist/date-picker/DatePicker.svelte +0 -1
  47. package/dist/date-picker/DateTimePicker.svelte +3 -3
  48. package/dist/date-picker/ScrollBar.svelte +4 -7
  49. package/dist/date-range/DateRangeEditor.svelte +1 -1
  50. package/dist/dialog/CommonDialog.svelte +8 -5
  51. package/dist/dialog/CommonDialog.svelte.d.ts +2 -1
  52. package/dist/dialog/Dialog.svelte +37 -12
  53. package/dist/dialog/Dialog.svelte.d.ts +4 -3
  54. package/dist/dialog/DialogBoard.svelte +11 -8
  55. package/dist/dialog/DialogWrapper.svelte +10 -0
  56. package/dist/{common-editor/DateInput.svelte.d.ts → dialog/DialogWrapper.svelte.d.ts} +6 -13
  57. package/dist/dialog/Dialogs.js +1 -1
  58. package/dist/dialog/ModalResult.d.ts +5 -0
  59. package/dist/dialog/ModalResult.js +5 -0
  60. package/dist/drawer/Drawer.svelte +1 -1
  61. package/dist/form-field/FormField.svelte +2 -1
  62. package/dist/form-field/FormField.svelte.d.ts +1 -0
  63. package/dist/form-panel/flex-row-form/FormContainer.svelte +1 -1
  64. package/dist/form-panel/grid-form/EmptyCell.svelte +8 -7
  65. package/dist/form-panel/grid-form/EmptyCell.svelte.d.ts +2 -2
  66. package/dist/form-panel/grid-form/GridField.svelte +1 -1
  67. package/dist/i18nRes/i18nRes.d.ts +2 -0
  68. package/dist/i18nRes/i18nRes.js +44 -0
  69. package/dist/i18nRes/index.d.ts +2 -0
  70. package/dist/i18nRes/index.js +2 -0
  71. package/dist/image-files/ImageFilesField.svelte +1 -1
  72. package/dist/indicator/IndicatorBoard.svelte +1 -1
  73. package/dist/inline-cell-editor/InvalidEditor.svelte +1 -0
  74. package/dist/input-options-select/InputOptionsSelect.svelte +6 -6
  75. package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +1 -1
  76. package/dist/layout/flex/FlexBlock.svelte +1 -1
  77. package/dist/lookup-editor/LookupEditor.svelte +1 -1
  78. package/dist/memo-editor/MemoEditor.svelte +2 -2
  79. package/dist/message-box/IMessageBox.d.ts +2 -4
  80. package/dist/message-box/IMessageBox.js +4 -6
  81. package/dist/message-box/MessageBoxBoard.svelte +1 -3
  82. package/dist/options-multi-select/OptionsMultiSelect.svelte +1 -1
  83. package/dist/prompts-text-editor/PromptsTextEditor.svelte +2 -2
  84. package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +1 -1
  85. package/dist/property-editor/PropertyEditor.svelte +3 -3
  86. package/dist/text-editor/PasswordEditor.svelte +1 -1
  87. package/dist/transfer/Transfer.svelte +17 -12
  88. package/dist/transfer/Transfer.svelte.d.ts +0 -1
  89. package/dist/unit-number-editor/UnitNumberEditor.svelte +2 -2
  90. package/docs/buttons/cn/ActionBar.md +459 -0
  91. package/docs/buttons/cn/Button.md +228 -0
  92. package/docs/buttons/cn/IconButton.md +294 -0
  93. package/docs/buttons/cn/README.md +600 -0
  94. package/docs/buttons/cn/TextButton.md +163 -0
  95. package/docs/buttons/en/ActionBar.md +459 -0
  96. package/docs/buttons/en/Button.md +228 -0
  97. package/docs/buttons/en/IconButton.md +294 -0
  98. package/docs/buttons/en/README.md +600 -0
  99. package/docs/buttons/en/TextButton.md +163 -0
  100. package/docs/containers/cn/accordion.md +622 -0
  101. package/docs/containers/cn/box.md +445 -0
  102. package/docs/containers/cn/card.md +404 -0
  103. package/docs/containers/cn/page.md +576 -0
  104. package/docs/containers/cn/tabs.md +686 -0
  105. package/docs/containers/en/accordion.md +622 -0
  106. package/docs/containers/en/box.md +445 -0
  107. package/docs/containers/en/card.md +404 -0
  108. package/docs/containers/en/page.md +576 -0
  109. package/docs/containers/en/tabs.md +686 -0
  110. package/docs/data-display/cn/concise-data-table.md +731 -0
  111. package/docs/data-display/cn/listbox.md +786 -0
  112. package/docs/data-display/cn/treeview.md +863 -0
  113. package/docs/data-display/en/concise-data-table.md +732 -0
  114. package/docs/data-display/en/listbox.md +786 -0
  115. package/docs/data-display/en/treeview.md +863 -0
  116. package/docs/data-table/cn/README.md +596 -0
  117. package/docs/data-table/en/README.md +596 -0
  118. package/docs/dialog/cn/README.md +767 -0
  119. package/docs/dialog/en/README.md +767 -0
  120. package/docs/form/cn/README.md +847 -0
  121. package/docs/form/en/README.md +847 -0
  122. package/docs/form-components/cn/README.md +495 -0
  123. package/docs/form-components/cn/attachmentfilesfield.md +757 -0
  124. package/docs/form-components/cn/cascade-options-select.md +374 -0
  125. package/docs/form-components/cn/checkbox.md +58 -0
  126. package/docs/form-components/cn/date-picker.md +138 -0
  127. package/docs/form-components/cn/datetime-picker.md +228 -0
  128. package/docs/form-components/cn/group-checkbox.md +405 -0
  129. package/docs/form-components/cn/group-radiobox.md +525 -0
  130. package/docs/form-components/cn/imagefilesfield.md +651 -0
  131. package/docs/form-components/cn/input-options-select.md +250 -0
  132. package/docs/form-components/cn/lookup-editor.md +406 -0
  133. package/docs/form-components/cn/memoeditor.md +409 -0
  134. package/docs/form-components/cn/number-editor.md +261 -0
  135. package/docs/form-components/cn/options-multi-select.md +177 -0
  136. package/docs/form-components/cn/options-select.md +83 -0
  137. package/docs/form-components/cn/passwordeditor.md +538 -0
  138. package/docs/form-components/cn/prompts-text-editor.md +241 -0
  139. package/docs/form-components/cn/radiobutton.md +84 -0
  140. package/docs/form-components/cn/switch.md +178 -0
  141. package/docs/form-components/cn/text-editor.md +142 -0
  142. package/docs/form-components/cn/time-editor.md +159 -0
  143. package/docs/form-components/cn/unit-number-editor.md +164 -0
  144. package/docs/form-components/en/README.md +463 -0
  145. package/docs/form-components/en/attachmentfilesfield.md +757 -0
  146. package/docs/form-components/en/cascade-options-select.md +358 -0
  147. package/docs/form-components/en/checkbox.md +59 -0
  148. package/docs/form-components/en/date-picker.md +138 -0
  149. package/docs/form-components/en/datetime-picker.md +228 -0
  150. package/docs/form-components/en/group-checkbox.md +395 -0
  151. package/docs/form-components/en/group-radiobox.md +498 -0
  152. package/docs/form-components/en/imagefilesfield.md +651 -0
  153. package/docs/form-components/en/input-options-select.md +239 -0
  154. package/docs/form-components/en/lookup-editor.md +389 -0
  155. package/docs/form-components/en/memoeditor.md +409 -0
  156. package/docs/form-components/en/number-editor.md +249 -0
  157. package/docs/form-components/en/options-multi-select.md +177 -0
  158. package/docs/form-components/en/options-select.md +83 -0
  159. package/docs/form-components/en/passwordeditor.md +538 -0
  160. package/docs/form-components/en/prompts-text-editor.md +241 -0
  161. package/docs/form-components/en/radiobutton.md +84 -0
  162. package/docs/form-components/en/switch.md +180 -0
  163. package/docs/form-components/en/text-editor.md +142 -0
  164. package/docs/form-components/en/time-editor.md +159 -0
  165. package/docs/form-components/en/unit-number-editor.md +164 -0
  166. package/docs/form-layout/cn/criteria-field.md +652 -0
  167. package/docs/form-layout/cn/flex-form.md +454 -0
  168. package/docs/form-layout/cn/flex-row-form.md +542 -0
  169. package/docs/form-layout/cn/form-field.md +923 -0
  170. package/docs/form-layout/cn/grid-form.md +676 -0
  171. package/docs/form-layout/en/criteria-field.md +652 -0
  172. package/docs/form-layout/en/flex-form.md +454 -0
  173. package/docs/form-layout/en/flex-row-form.md +542 -0
  174. package/docs/form-layout/en/form-field.md +923 -0
  175. package/docs/form-layout/en/grid-form.md +676 -0
  176. package/docs/global/cn/README.md +534 -0
  177. package/docs/global/en/README.md +534 -0
  178. package/docs/layout/cn/classiclayout.md +460 -0
  179. package/docs/layout/cn/headerlayout.md +524 -0
  180. package/docs/layout/cn/sidebarlayout.md +263 -0
  181. package/docs/layout/en/classiclayout.md +951 -0
  182. package/docs/layout/en/headerlayout.md +524 -0
  183. package/docs/layout/en/sidebarlayout.md +262 -0
  184. package/docs/misc/cn/README.md +1217 -0
  185. package/docs/misc/en/README.md +1217 -0
  186. package/docs/navigation/cn/breadcrumb.md +291 -0
  187. package/docs/navigation/cn/navigator.md +322 -0
  188. package/docs/navigation/cn/navigatormenu.md +512 -0
  189. package/docs/navigation/cn/progressbar.md +199 -0
  190. package/docs/navigation/cn/progressstepbar.md +299 -0
  191. package/docs/navigation/en/breadcrumb.md +291 -0
  192. package/docs/navigation/en/navigator.md +322 -0
  193. package/docs/navigation/en/navigatormenu.md +512 -0
  194. package/docs/navigation/en/progressbar.md +199 -0
  195. package/docs/navigation/en/progressstepbar.md +299 -0
  196. package/docs/search-filters/cn/daterange.md +1156 -0
  197. package/docs/search-filters/cn/numberrange.md +688 -0
  198. package/docs/search-filters/cn/searchbox.md +1582 -0
  199. package/docs/search-filters/en/daterange.md +1156 -0
  200. package/docs/search-filters/en/numberrange.md +688 -0
  201. package/docs/search-filters/en/searchbox.md +1582 -0
  202. package/package.json +53 -13
  203. package/dist/common-editor/DateInput.svelte +0 -27
  204. package/dist/i18n_resources/index.d.ts +0 -3
  205. package/dist/i18n_resources/index.js +0 -3
  206. /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.d.ts +0 -0
  207. /package/dist/{i18n_resources → i18nRes}/uniface_cn_resource.js +0 -0
  208. /package/dist/{i18n_resources → i18nRes}/uniface_en_resource.d.ts +0 -0
  209. /package/dist/{i18n_resources → i18nRes}/uniface_en_resource.js +0 -0
@@ -0,0 +1,404 @@
1
+ # Card 卡片组件
2
+
3
+ 一个灵活且多用途的卡片容器组件,用于显示带有可选标题、操作按钮和样式变体的内容。
4
+
5
+ ## 概述
6
+
7
+ Card 组件提供了一种结构化的方式来在容器中显示内容,可以包含标题、头部栏、操作按钮和各种视觉样式。它非常适合创建内容卡片、信息面板和交互式容器。
8
+
9
+ ## 安装
10
+
11
+ ```typescript
12
+ import Card from '@ticatec/uniface-element/Card';
13
+ import type { CardAction } from '@ticatec/uniface-element/Card';
14
+ ```
15
+
16
+ ## 基本用法
17
+
18
+ ```svelte
19
+ <script lang="ts">
20
+ import Card from '@ticatec/uniface-element/Card';
21
+
22
+ let title = "基础卡片";
23
+ </script>
24
+
25
+ <Card {title}>
26
+ <p>这是卡片内容区域,您可以在这里放置任何内容。</p>
27
+ </Card>
28
+ ```
29
+
30
+ ## 属性
31
+
32
+ | 属性 | 类型 | 默认值 | 描述 |
33
+ |------|------|--------|------|
34
+ | `style` | `string` | `""` | 卡片的自定义 CSS 样式 |
35
+ | `title` | `string` | `null` | 卡片标题(创建简单头部) |
36
+ | `actions` | `Array<CardAction>` | `[]` | 卡片的操作按钮 |
37
+ | `variant` | `'plain' \| '3d'` | `'plain'` | 视觉样式变体 |
38
+ | `iconColor` | `string \| null` | `null` | 操作图标的颜色 |
39
+ | `data` | `any` | - | 传递给操作回调的数据 |
40
+
41
+ ## 插槽
42
+
43
+ | 插槽 | 描述 |
44
+ |------|------|
45
+ | `default` | 卡片的主要内容区域 |
46
+ | `header-bar` | 自定义头部内容(覆盖标题) |
47
+ | `action-bar` | 自定义操作栏(未提供操作数组时使用) |
48
+
49
+ ## CardAction 接口
50
+
51
+ ```typescript
52
+ interface CardAction {
53
+ /**
54
+ * 使用icon字体
55
+ */
56
+ icon?: string;
57
+
58
+ /**
59
+ * 直接嵌入图标
60
+ */
61
+ img?: string;
62
+
63
+ /**
64
+ * 鼠标停留的提示
65
+ */
66
+ hint?: string;
67
+
68
+ /**
69
+ * 是否禁用
70
+ */
71
+ disabled?: boolean;
72
+
73
+ /**
74
+ * 操作回调函数
75
+ */
76
+ callback: ActionCallback;
77
+ }
78
+
79
+ type ActionCallback = (data: any) => void;
80
+ ```
81
+
82
+ ## 使用示例
83
+
84
+ ### 带标题的基础卡片
85
+
86
+ ```svelte
87
+ <script lang="ts">
88
+ import Card from '@ticatec/uniface-element/Card';
89
+ </script>
90
+
91
+ <Card title="用户信息">
92
+ <div class="user-info">
93
+ <p><strong>姓名:</strong> 张三</p>
94
+ <p><strong>邮箱:</strong> zhang@example.com</p>
95
+ <p><strong>角色:</strong> 开发者</p>
96
+ </div>
97
+ </Card>
98
+ ```
99
+
100
+ ### 带操作按钮的卡片
101
+
102
+ ```svelte
103
+ <script lang="ts">
104
+ import Card from '@ticatec/uniface-element/Card';
105
+ import type { CardAction } from '@ticatec/uniface-element/Card';
106
+
107
+ let userData = { id: 1, name: '张三' };
108
+
109
+ let actions: CardAction[] = [
110
+ {
111
+ icon: 'edit',
112
+ hint: '编辑用户',
113
+ callback: (data) => console.log('编辑', data)
114
+ },
115
+ {
116
+ icon: 'delete',
117
+ hint: '删除用户',
118
+ callback: (data) => console.log('删除', data)
119
+ },
120
+ {
121
+ icon: 'share',
122
+ hint: '分享用户资料',
123
+ disabled: false,
124
+ callback: (data) => console.log('分享', data)
125
+ }
126
+ ];
127
+ </script>
128
+
129
+ <Card title="用户卡片" {actions} data={userData}>
130
+ <div class="user-profile">
131
+ <p>用户资料内容在这里...</p>
132
+ </div>
133
+ </Card>
134
+ ```
135
+
136
+ ### 3D 样式卡片
137
+
138
+ ```svelte
139
+ <script lang="ts">
140
+ import Card from '@ticatec/uniface-element/Card';
141
+ </script>
142
+
143
+ <Card title="3D 卡片" variant="3d">
144
+ <p>这张卡片具有3D阴影效果,增强视觉吸引力。</p>
145
+ </Card>
146
+ ```
147
+
148
+ ### 带自定义头部的卡片
149
+
150
+ ```svelte
151
+ <script lang="ts">
152
+ import Card from '@ticatec/uniface-element/Card';
153
+ </script>
154
+
155
+ <Card>
156
+ <div slot="header-bar" class="custom-header">
157
+ <h3>自定义头部</h3>
158
+ <span class="status-badge">激活</span>
159
+ </div>
160
+
161
+ <div class="card-body">
162
+ <p>带有自定义头部样式的内容。</p>
163
+ </div>
164
+ </Card>
165
+ ```
166
+
167
+ ### 带自定义操作栏的卡片
168
+
169
+ ```svelte
170
+ <script lang="ts">
171
+ import Card from '@ticatec/uniface-element/Card';
172
+ </script>
173
+
174
+ <Card title="自定义操作">
175
+ <p>卡片内容在这里。</p>
176
+
177
+ <div slot="action-bar" class="custom-actions">
178
+ <button class="btn-primary">保存</button>
179
+ <button class="btn-secondary">取消</button>
180
+ </div>
181
+ </Card>
182
+ ```
183
+
184
+ ### 包含所有功能的高级卡片
185
+
186
+ ```svelte
187
+ <script lang="ts">
188
+ import Card from '@ticatec/uniface-element/Card';
189
+ import type { CardAction } from '@ticatec/uniface-element/Card';
190
+
191
+ let projectData = {
192
+ id: 'proj-123',
193
+ name: '网站重新设计',
194
+ status: '进行中'
195
+ };
196
+
197
+ let projectActions: CardAction[] = [
198
+ {
199
+ icon: 'visibility',
200
+ hint: '查看项目详情',
201
+ callback: (data) => viewProject(data)
202
+ },
203
+ {
204
+ icon: 'edit',
205
+ hint: '编辑项目',
206
+ callback: (data) => editProject(data)
207
+ },
208
+ {
209
+ icon: 'share',
210
+ hint: '分享项目',
211
+ callback: (data) => shareProject(data)
212
+ },
213
+ {
214
+ icon: 'archive',
215
+ hint: '归档项目',
216
+ disabled: projectData.status === '已归档',
217
+ callback: (data) => archiveProject(data)
218
+ }
219
+ ];
220
+
221
+ function viewProject(data: any) {
222
+ console.log('查看项目:', data);
223
+ }
224
+
225
+ function editProject(data: any) {
226
+ console.log('编辑项目:', data);
227
+ }
228
+
229
+ function shareProject(data: any) {
230
+ console.log('分享项目:', data);
231
+ }
232
+
233
+ function archiveProject(data: any) {
234
+ console.log('归档项目:', data);
235
+ }
236
+ </script>
237
+
238
+ <Card
239
+ title="项目: {projectData.name}"
240
+ variant="3d"
241
+ actions={projectActions}
242
+ data={projectData}
243
+ iconColor="#007bff"
244
+ style="max-width: 400px; margin: 20px;"
245
+ >
246
+ <div class="project-details">
247
+ <div class="status-row">
248
+ <span class="label">状态:</span>
249
+ <span class="status status-{projectData.status.toLowerCase().replace(' ', '-')}">
250
+ {projectData.status}
251
+ </span>
252
+ </div>
253
+ <div class="description">
254
+ <p>采用现代 UI/UX 原则对公司网站进行完整重新设计。</p>
255
+ </div>
256
+ <div class="progress">
257
+ <div class="progress-bar">
258
+ <div class="progress-fill" style="width: 65%"></div>
259
+ </div>
260
+ <span class="progress-text">65% 完成</span>
261
+ </div>
262
+ </div>
263
+ </Card>
264
+
265
+ <style>
266
+ .project-details {
267
+ padding: 16px 0;
268
+ }
269
+
270
+ .status-row {
271
+ display: flex;
272
+ align-items: center;
273
+ margin-bottom: 12px;
274
+ }
275
+
276
+ .label {
277
+ font-weight: 600;
278
+ margin-right: 8px;
279
+ }
280
+
281
+ .status {
282
+ padding: 4px 8px;
283
+ border-radius: 4px;
284
+ font-size: 0.875rem;
285
+ font-weight: 500;
286
+ }
287
+
288
+ .status-进行中 {
289
+ background-color: #fff3cd;
290
+ color: #856404;
291
+ }
292
+
293
+ .description {
294
+ margin-bottom: 16px;
295
+ }
296
+
297
+ .progress {
298
+ display: flex;
299
+ align-items: center;
300
+ gap: 12px;
301
+ }
302
+
303
+ .progress-bar {
304
+ flex: 1;
305
+ height: 8px;
306
+ background-color: #e9ecef;
307
+ border-radius: 4px;
308
+ overflow: hidden;
309
+ }
310
+
311
+ .progress-fill {
312
+ height: 100%;
313
+ background-color: #007bff;
314
+ transition: width 0.3s ease;
315
+ }
316
+
317
+ .progress-text {
318
+ font-size: 0.875rem;
319
+ color: #6c757d;
320
+ white-space: nowrap;
321
+ }
322
+ </style>
323
+ ```
324
+
325
+ ## 样式
326
+
327
+ Card 组件使用以下 CSS 类:
328
+
329
+ ```css
330
+ .uniface-card {
331
+ /* 基础卡片容器 */
332
+ }
333
+
334
+ .uniface-card.shadowBox {
335
+ /* 带阴影的3D变体 */
336
+ }
337
+
338
+ .card-header {
339
+ /* 头部容器 */
340
+ }
341
+
342
+ .card-header.simple {
343
+ /* 简单标题头部 */
344
+ }
345
+
346
+ .card-content {
347
+ /* 主要内容区域 */
348
+ }
349
+
350
+ .card-action-bar {
351
+ /* 操作栏容器 */
352
+ }
353
+ ```
354
+
355
+ ## API 参考
356
+
357
+ ### CardAction 接口
358
+
359
+ ```typescript
360
+ interface CardAction {
361
+ /**
362
+ * 使用icon字体(如 'edit'、'delete')
363
+ */
364
+ icon?: string;
365
+
366
+ /**
367
+ * 直接嵌入图标的URL
368
+ */
369
+ img?: string;
370
+
371
+ /**
372
+ * 鼠标停留时显示的提示文字
373
+ */
374
+ hint?: string;
375
+
376
+ /**
377
+ * 操作按钮是否被禁用
378
+ */
379
+ disabled?: boolean;
380
+
381
+ /**
382
+ * 点击操作时执行的回调函数
383
+ */
384
+ callback: ActionCallback;
385
+ }
386
+ ```
387
+
388
+ ### 类型定义
389
+
390
+ ```typescript
391
+ /**
392
+ * 操作回调函数
393
+ */
394
+ export type ActionCallback = (data: any) => void;
395
+ ```
396
+
397
+ ## 最佳实践
398
+
399
+ 1. **使用描述性标题** - 保持卡片标题简洁但信息丰富
400
+ 2. **限制操作数量** - 不要用太多操作按钮让用户感到困惑
401
+ 3. **提供提示** - 始终为操作包含有用的工具提示文本
402
+ 4. **处理禁用状态** - 当操作不适用时禁用它们
403
+ 5. **一致的样式** - 在类似的卡片中使用相同的变体
404
+ 6. **响应式设计** - 考虑卡片在不同屏幕尺寸上的显示效果