@hbdlzy/ui-core 0.1.2 → 0.1.3
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/components.manifest.json +5 -0
- package/dist/components/BaseCard/BaseCard.types.d.ts +36 -0
- package/dist/components/BaseCard/BaseCard.vue.d.ts +122 -0
- package/dist/components/BaseCard/index.d.ts +3 -0
- package/dist/components/BaseEChart/BaseEChart.types.d.ts +26 -0
- package/dist/components/BaseEChart/BaseEChart.vue.d.ts +66 -0
- package/dist/components/BaseEChart/index.d.ts +3 -0
- package/dist/components/BaseExportButton/BaseExportButton.types.d.ts +21 -0
- package/dist/components/BaseExportButton/BaseExportButton.utils.d.ts +4 -0
- package/dist/components/BaseExportButton/BaseExportButton.vue.d.ts +128 -0
- package/dist/components/BaseExportButton/index.d.ts +5 -0
- package/dist/components/BaseTable/BaseTable.types.d.ts +163 -0
- package/dist/components/BaseTable/BaseTable.vue.d.ts +157 -0
- package/dist/components/BaseTable/index.d.ts +3 -0
- package/dist/components/OutlinedCascader/OutlinedCascader.types.d.ts +25 -0
- package/dist/components/OutlinedCascader/OutlinedCascader.vue.d.ts +85 -0
- package/dist/components/OutlinedCascader/index.d.ts +3 -0
- package/dist/components/OutlinedDatePicker/OutlinedDatePicker.types.d.ts +27 -0
- package/dist/components/OutlinedDatePicker/OutlinedDatePicker.vue.d.ts +88 -0
- package/dist/components/OutlinedDatePicker/index.d.ts +3 -0
- package/dist/components/OutlinedDateTimePicker/OutlinedDateTimePicker.types.d.ts +26 -0
- package/dist/components/OutlinedDateTimePicker/OutlinedDateTimePicker.vue.d.ts +97 -0
- package/dist/components/OutlinedDateTimePicker/index.d.ts +3 -0
- package/dist/components/OutlinedInput/OutlinedInput.types.d.ts +29 -0
- package/dist/components/OutlinedInput/OutlinedInput.vue.d.ts +97 -0
- package/dist/components/OutlinedInput/index.d.ts +3 -0
- package/dist/components/OutlinedSelect/OutlinedSelect.types.d.ts +38 -0
- package/dist/components/OutlinedSelect/OutlinedSelect.vue.d.ts +116 -0
- package/dist/components/OutlinedSelect/index.d.ts +3 -0
- package/dist/components/OutlinedTimePicker/OutlinedTimePicker.types.d.ts +28 -0
- package/dist/components/OutlinedTimePicker/OutlinedTimePicker.vue.d.ts +94 -0
- package/dist/components/OutlinedTimePicker/index.d.ts +3 -0
- package/dist/components/OutlinedTreeSelect/OutlinedTreeSelect.types.d.ts +46 -0
- package/dist/components/OutlinedTreeSelect/OutlinedTreeSelect.vue.d.ts +137 -0
- package/dist/components/OutlinedTreeSelect/index.d.ts +3 -0
- package/dist/echarts/index.d.ts +9 -0
- package/dist/excel/exportExcel.d.ts +18 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +26 -0
- package/dist/index.js +306 -30
- package/dist/style.css +1 -1
- package/package.json +5 -4
- package/src/components/BaseCard/BaseCard.types.d.ts +36 -0
- package/src/components/BaseCard/BaseCard.vue.d.ts +122 -0
- package/src/components/BaseCard/index.d.ts +3 -0
- package/src/components/BaseEChart/BaseEChart.types.d.ts +26 -0
- package/src/components/BaseEChart/BaseEChart.vue.d.ts +66 -0
- package/src/components/BaseEChart/index.d.ts +3 -0
- package/src/components/BaseExportButton/BaseExportButton.types.d.ts +21 -0
- package/src/components/BaseExportButton/BaseExportButton.utils.d.ts +4 -0
- package/src/components/BaseExportButton/BaseExportButton.vue.d.ts +128 -0
- package/src/components/BaseExportButton/index.d.ts +5 -0
- package/src/components/BaseTable/BaseTable.types.d.ts +163 -0
- package/src/components/BaseTable/BaseTable.types.ts +12 -0
- package/src/components/BaseTable/BaseTable.vue +412 -13
- package/src/components/BaseTable/BaseTable.vue.d.ts +157 -0
- package/src/components/BaseTable/README.md +106 -120
- package/src/components/BaseTable/index.d.ts +3 -0
- package/src/components/OutlinedCascader/OutlinedCascader.types.d.ts +25 -0
- package/src/components/OutlinedCascader/OutlinedCascader.vue.d.ts +85 -0
- package/src/components/OutlinedCascader/index.d.ts +3 -0
- package/src/components/OutlinedDatePicker/OutlinedDatePicker.types.d.ts +27 -0
- package/src/components/OutlinedDatePicker/OutlinedDatePicker.vue.d.ts +88 -0
- package/src/components/OutlinedDatePicker/index.d.ts +3 -0
- package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.types.d.ts +26 -0
- package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.vue.d.ts +97 -0
- package/src/components/OutlinedDateTimePicker/index.d.ts +3 -0
- package/src/components/OutlinedInput/OutlinedInput.types.d.ts +29 -0
- package/src/components/OutlinedInput/OutlinedInput.vue.d.ts +97 -0
- package/src/components/OutlinedInput/index.d.ts +3 -0
- package/src/components/OutlinedSelect/OutlinedSelect.types.d.ts +38 -0
- package/src/components/OutlinedSelect/OutlinedSelect.vue.d.ts +116 -0
- package/src/components/OutlinedSelect/index.d.ts +3 -0
- package/src/components/OutlinedTimePicker/OutlinedTimePicker.types.d.ts +28 -0
- package/src/components/OutlinedTimePicker/OutlinedTimePicker.vue.d.ts +94 -0
- package/src/components/OutlinedTimePicker/index.d.ts +3 -0
- package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.types.d.ts +46 -0
- package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.vue.d.ts +137 -0
- package/src/components/OutlinedTreeSelect/index.d.ts +3 -0
- package/src/echarts/index.d.ts +9 -0
- package/src/echarts/index.ts +13 -8
- package/src/excel/exportExcel.d.ts +18 -0
- package/src/index.d.ts +26 -0
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
# BaseTable
|
|
2
2
|
|
|
3
|
-
`BaseTable`
|
|
3
|
+
`BaseTable` 用来统一封装项目里高频出现的表格壳子、分页栏、远程请求、排序参数映射、结果适配、表头列搜索和常见列渲染能力,避免页面层重复写同一套 `el-table + el-pagination` 基础代码。
|
|
4
4
|
|
|
5
5
|
## 解决的问题
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- 页面层不再重复封装表格容器、分页和加载逻辑
|
|
8
8
|
- 同时支持本地数据模式和远程请求模式
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
- 提供 `load`、`refresh`、`setData`、`
|
|
9
|
+
- 统一收敛勾选列、序号列、操作列、图片列、标签列、输入列
|
|
10
|
+
- 支持列配置驱动和命名插槽扩展
|
|
11
|
+
- 提供 `load`、`refresh`、`setData`、`resetPage` 等常用方法
|
|
12
|
+
- 支持旧 `TableComponent.vue` 里常见的表头列搜索能力
|
|
12
13
|
|
|
13
14
|
## 适用场景
|
|
14
15
|
|
|
15
16
|
- 列表页、管理页、日志页、明细页
|
|
16
17
|
- 需要统一分页和表格风格的页面
|
|
17
18
|
- 同一项目里会重复出现的通用管理表格
|
|
18
|
-
-
|
|
19
|
+
- 希望把请求逻辑和列配置拆开维护的页面
|
|
19
20
|
|
|
20
21
|
## 不适用场景
|
|
21
22
|
|
|
22
23
|
- 高度强业务定制的复杂表格编辑器
|
|
23
|
-
-
|
|
24
|
+
- 需要虚拟滚动或超大数据量专门优化的场景
|
|
24
25
|
- 完全脱离 Element Plus Table 行为的表格交互
|
|
25
26
|
|
|
26
27
|
## 基础用法
|
|
@@ -158,118 +159,98 @@ const handleRowAction = ({ row, action }: { row: RowItem; action: { type: string
|
|
|
158
159
|
</script>
|
|
159
160
|
```
|
|
160
161
|
|
|
161
|
-
|
|
162
|
+
## 请求结果适配
|
|
162
163
|
|
|
163
|
-
如果接口返回结构不是常见的 `records/list/items + total`,可以直接传 `resultAdapter`
|
|
164
|
-
|
|
165
|
-
```vue
|
|
166
|
-
<script setup lang="ts">
|
|
167
|
-
import { BaseTable } from '@hbdlzy/ui-core'
|
|
164
|
+
如果接口返回结构不是常见的 `records/list/items + total`,可以直接传 `resultAdapter` 做归一化。
|
|
168
165
|
|
|
166
|
+
```ts
|
|
169
167
|
const resultAdapter = (result: any) => {
|
|
170
168
|
return {
|
|
171
169
|
rows: result?.payload?.rows || [],
|
|
172
170
|
total: Number(result?.payload?.count || 0)
|
|
173
171
|
}
|
|
174
172
|
}
|
|
175
|
-
</script>
|
|
176
|
-
|
|
177
|
-
<template>
|
|
178
|
-
<BaseTable
|
|
179
|
-
:columns="columns"
|
|
180
|
-
:request="requestTableData"
|
|
181
|
-
:result-adapter="resultAdapter"
|
|
182
|
-
/>
|
|
183
|
-
</template>
|
|
184
173
|
```
|
|
185
174
|
|
|
186
|
-
|
|
175
|
+
## 远程排序和参数映射
|
|
187
176
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
177
|
+
如果接口需要排序字段和排序方向,可以直接使用内置映射能力。
|
|
178
|
+
|
|
179
|
+
```vue
|
|
180
|
+
<BaseTable
|
|
181
|
+
:columns="columns"
|
|
182
|
+
:request="requestTableData"
|
|
183
|
+
:default-sort="{ prop: 'createdAt', order: 'descending' }"
|
|
184
|
+
sort-field-key="orderBy"
|
|
185
|
+
sort-order-key="orderDirection"
|
|
186
|
+
/>
|
|
195
187
|
```
|
|
196
188
|
|
|
197
|
-
|
|
189
|
+
请求参数会自动映射成:
|
|
198
190
|
|
|
199
191
|
```ts
|
|
200
192
|
{
|
|
201
|
-
|
|
202
|
-
|
|
193
|
+
pageNum: 1,
|
|
194
|
+
pageSize: 20,
|
|
195
|
+
orderBy: 'created_time',
|
|
196
|
+
orderDirection: 'desc'
|
|
203
197
|
}
|
|
204
198
|
```
|
|
205
199
|
|
|
206
|
-
|
|
200
|
+
如果接口参数结构更特殊,可以改用 `sortMapper`。
|
|
207
201
|
|
|
208
|
-
|
|
202
|
+
## 表头列搜索
|
|
209
203
|
|
|
210
|
-
|
|
211
|
-
<script setup lang="ts">
|
|
212
|
-
import { BaseTable, type BaseTableColumn } from '@hbdlzy/ui-core'
|
|
204
|
+
`BaseTable` 现在支持列头搜索能力,用法和旧 `TableComponent.vue` 里的 `isSearch` 很接近,但配置方式更收敛。
|
|
213
205
|
|
|
214
|
-
|
|
215
|
-
id: number
|
|
216
|
-
name: string
|
|
217
|
-
createdAt: string
|
|
218
|
-
}
|
|
206
|
+
### 基础写法
|
|
219
207
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
label: '名称',
|
|
223
|
-
prop: 'name',
|
|
224
|
-
sortable: true
|
|
225
|
-
},
|
|
208
|
+
```ts
|
|
209
|
+
const columns = [
|
|
226
210
|
{
|
|
227
|
-
label: '
|
|
228
|
-
prop: '
|
|
229
|
-
|
|
230
|
-
sortable: true
|
|
211
|
+
label: '联系人',
|
|
212
|
+
prop: 'owner',
|
|
213
|
+
headerSearch: true
|
|
231
214
|
}
|
|
232
215
|
]
|
|
233
|
-
</script>
|
|
234
|
-
|
|
235
|
-
<template>
|
|
236
|
-
<BaseTable
|
|
237
|
-
:columns="columns"
|
|
238
|
-
:request="requestTableData"
|
|
239
|
-
:default-sort="{ prop: 'createdAt', order: 'descending' }"
|
|
240
|
-
sort-field-key="orderBy"
|
|
241
|
-
sort-order-key="orderDirection"
|
|
242
|
-
/>
|
|
243
|
-
</template>
|
|
244
216
|
```
|
|
245
217
|
|
|
246
|
-
|
|
218
|
+
开启后,这一列的表头会出现搜索图标,点击后会弹出输入框,并提供“搜索 / 重置”操作。
|
|
219
|
+
|
|
220
|
+
### 高级写法
|
|
247
221
|
|
|
248
222
|
```ts
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
223
|
+
const columns = [
|
|
224
|
+
{
|
|
225
|
+
label: '联系人',
|
|
226
|
+
prop: 'owner',
|
|
227
|
+
headerSearch: {
|
|
228
|
+
paramKey: 'contactName',
|
|
229
|
+
placeholder: '请输入搜索内容',
|
|
230
|
+
width: 280,
|
|
231
|
+
searchText: '搜索',
|
|
232
|
+
resetText: '重置'
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
]
|
|
255
236
|
```
|
|
256
237
|
|
|
257
|
-
|
|
238
|
+
### 行为说明
|
|
258
239
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
240
|
+
- 远程模式下,列头搜索值会自动合并到 `request(params)` 的参数里
|
|
241
|
+
- 触发搜索或重置时,会自动把页码重置到第一页
|
|
242
|
+
- 如果配置了 `paramKey`,请求参数会优先使用它
|
|
243
|
+
- 如果没有配置 `paramKey`,默认使用当前列的 `prop`
|
|
244
|
+
- 本地数据模式下,列头搜索会对当前 `data` 做简单文本包含过滤
|
|
245
|
+
- 多个开启搜索的列会按“同时满足”处理
|
|
264
246
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
}
|
|
247
|
+
示例请求参数:
|
|
248
|
+
|
|
249
|
+
```ts
|
|
250
|
+
{
|
|
251
|
+
currentPage: 1,
|
|
252
|
+
pageSize: 20,
|
|
253
|
+
owner: '张三'
|
|
273
254
|
}
|
|
274
255
|
```
|
|
275
256
|
|
|
@@ -296,9 +277,10 @@ const sortMapper = (payload: { field?: string; direction: string | null }) => {
|
|
|
296
277
|
- `data`: 本地数据源
|
|
297
278
|
- `request`: 远程请求回调
|
|
298
279
|
- `requestParams`: 请求附加参数
|
|
299
|
-
- `resultAdapter`:
|
|
280
|
+
- `resultAdapter`: 请求结果适配器,用于把原始结果映射成 `{ rows, total }`
|
|
300
281
|
- `autoLoad`: 有 `request` 时是否挂载后自动请求
|
|
301
282
|
- `reloadOnParamsChange`: `requestParams` 改变时是否自动重载
|
|
283
|
+
- `reloadOnSortChange`: 排序变化时是否自动重载远程数据
|
|
302
284
|
- `rowKey`: 行主键,默认 `id`
|
|
303
285
|
- `height`: 表格高度
|
|
304
286
|
- `border`: 是否显示边框
|
|
@@ -311,7 +293,6 @@ const sortMapper = (payload: { field?: string; direction: string | null }) => {
|
|
|
311
293
|
- `currentPageKey`: 远程请求时页码字段名,默认 `pageNum`
|
|
312
294
|
- `pageSizeKey`: 远程请求时每页条数字段名,默认 `pageSize`
|
|
313
295
|
- `defaultSort`: 默认排序状态
|
|
314
|
-
- `reloadOnSortChange`: 排序变化时是否自动重载远程数据
|
|
315
296
|
- `sortFieldKey`: 排序字段请求参数名,默认 `sortField`
|
|
316
297
|
- `sortOrderKey`: 排序方向请求参数名,默认 `sortOrder`
|
|
317
298
|
- `sortOrderMap`: 排序方向值映射,默认 `{ ascending: 'asc', descending: 'desc' }`
|
|
@@ -320,21 +301,15 @@ const sortMapper = (payload: { field?: string; direction: string | null }) => {
|
|
|
320
301
|
|
|
321
302
|
## Column 能力
|
|
322
303
|
|
|
323
|
-
|
|
304
|
+
列配置当前支持这些高频模式:
|
|
324
305
|
|
|
325
306
|
- 默认文本列
|
|
326
307
|
- `kind: 'link'`
|
|
327
|
-
点击型文本列
|
|
328
308
|
- `kind: 'actions'`
|
|
329
|
-
操作列,配合 `actions`
|
|
330
309
|
- `kind: 'image'`
|
|
331
|
-
图片列
|
|
332
310
|
- `kind: 'tag'`
|
|
333
|
-
标签映射列,配合 `options`
|
|
334
311
|
- `kind: 'html'`
|
|
335
|
-
HTML 内容列
|
|
336
312
|
- `kind: 'input'`
|
|
337
|
-
行内输入列
|
|
338
313
|
|
|
339
314
|
常用字段:
|
|
340
315
|
|
|
@@ -346,6 +321,7 @@ const sortMapper = (payload: { field?: string; direction: string | null }) => {
|
|
|
346
321
|
- `fixed`
|
|
347
322
|
- `sortable`
|
|
348
323
|
- `sortField`
|
|
324
|
+
- `headerSearch`
|
|
349
325
|
- `showOverflowTooltip`
|
|
350
326
|
- `actions`
|
|
351
327
|
- `options`
|
|
@@ -357,42 +333,52 @@ const sortMapper = (payload: { field?: string; direction: string | null }) => {
|
|
|
357
333
|
|
|
358
334
|
## Events
|
|
359
335
|
|
|
360
|
-
- `selection-change
|
|
361
|
-
- `sort-change
|
|
362
|
-
|
|
363
|
-
- `
|
|
364
|
-
- `cell-
|
|
365
|
-
- `
|
|
366
|
-
- `
|
|
367
|
-
- `
|
|
368
|
-
- `
|
|
369
|
-
- `
|
|
370
|
-
- `request-error`: 远程请求失败
|
|
336
|
+
- `selection-change`
|
|
337
|
+
- `sort-change`
|
|
338
|
+
- `row-action`
|
|
339
|
+
- `cell-click`
|
|
340
|
+
- `cell-input`
|
|
341
|
+
- `page-change`
|
|
342
|
+
- `size-change`
|
|
343
|
+
- `update:pagination`
|
|
344
|
+
- `loaded`
|
|
345
|
+
- `request-error`
|
|
371
346
|
|
|
372
347
|
## Expose
|
|
373
348
|
|
|
374
|
-
- `load(data?)
|
|
375
|
-
- `refresh()
|
|
376
|
-
- `setData(data)
|
|
377
|
-
- `resetPage()
|
|
378
|
-
- `
|
|
379
|
-
- `
|
|
380
|
-
- `
|
|
381
|
-
- `
|
|
349
|
+
- `load(data?)`
|
|
350
|
+
- `refresh()`
|
|
351
|
+
- `setData(data)`
|
|
352
|
+
- `resetPage()`
|
|
353
|
+
- `setHeaderSearchValue(key, value, shouldReload?)`
|
|
354
|
+
- `resetHeaderSearch(key?)`
|
|
355
|
+
- `getHeaderSearchValues()`
|
|
356
|
+
- `clearSelection()`
|
|
357
|
+
- `toggleRowSelection(row, selected?)`
|
|
358
|
+
- `getSelectionRows()`
|
|
359
|
+
- `getRows()`
|
|
360
|
+
|
|
361
|
+
示例:
|
|
362
|
+
|
|
363
|
+
```ts
|
|
364
|
+
tableRef.value?.setHeaderSearchValue('owner', '张三')
|
|
365
|
+
tableRef.value?.resetHeaderSearch()
|
|
366
|
+
```
|
|
382
367
|
|
|
383
368
|
## 从旧 TableComponent 迁移的建议
|
|
384
369
|
|
|
385
370
|
- 把旧的 `listUrl`、`paramsData` 改成 `request + requestParams`
|
|
386
|
-
- 如果旧接口返回结构不统一,优先通过 `resultAdapter`
|
|
371
|
+
- 如果旧接口返回结构不统一,优先通过 `resultAdapter` 适配
|
|
387
372
|
- 把旧的 `sortKey`、`sortList` 映射逻辑改成 `sortField`、`sortFieldKey`、`sortOrderKey` 或 `sortMapper`
|
|
388
373
|
- 把旧的 `@handleAction` 改成 `@row-action`
|
|
389
|
-
-
|
|
390
|
-
-
|
|
391
|
-
-
|
|
374
|
+
- 把旧的顶部筛选表单迁移到 `toolbar` 插槽
|
|
375
|
+
- 把旧的 `isSearch` 迁移成 `headerSearch`
|
|
376
|
+
- 业务字典渲染优先使用 `kind: 'tag' + options`
|
|
377
|
+
- 列渲染逻辑过于特殊时,优先使用 `cell-${prop}` 插槽
|
|
392
378
|
|
|
393
379
|
## 推荐约定
|
|
394
380
|
|
|
395
381
|
- 页面层负责请求参数和接口编排,`BaseTable` 只负责通用表格能力
|
|
396
|
-
-
|
|
397
|
-
-
|
|
398
|
-
- 复杂筛选表单不要内置到表格组件里,统一通过 `toolbar`
|
|
382
|
+
- 默认优先使用列配置驱动,只有复杂单元格才使用插槽
|
|
383
|
+
- 通用操作列尽量统一收敛到 `row-action`
|
|
384
|
+
- 复杂筛选表单不要内置到表格组件里,统一通过 `toolbar` 扩展
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import BaseTable from './BaseTable.vue';
|
|
2
|
+
export default BaseTable;
|
|
3
|
+
export type { BaseTableAction, BaseTableAlign, BaseTableCellPayload, BaseTableColumn, BaseTableColumnKind, BaseTableCssValue, BaseTableExpose, BaseTableLoadedPayload, BaseTableNormalizedResult, BaseTableOption, BaseTablePagination, BaseTableProps, BaseTableResultAdapter, BaseTableRequestHandler, BaseTableRequestParams, BaseTableRequestResult, BaseTableRowActionPayload, BaseTableSortOrder, BaseTableSortPayload } from './BaseTable.types';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type OutlinedCascaderCssValue = string | number;
|
|
2
|
+
export type OutlinedCascaderValue = Array<string | number>;
|
|
3
|
+
export interface OutlinedCascaderProps {
|
|
4
|
+
value?: OutlinedCascaderValue;
|
|
5
|
+
options?: Record<string, unknown>[];
|
|
6
|
+
clearable?: boolean;
|
|
7
|
+
propsValue?: Record<string, unknown>;
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
popperClass?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
inputHeight?: number;
|
|
13
|
+
isBorder?: boolean;
|
|
14
|
+
filterable?: boolean;
|
|
15
|
+
levels?: boolean;
|
|
16
|
+
marginBottom?: OutlinedCascaderCssValue;
|
|
17
|
+
paddingTop?: OutlinedCascaderCssValue;
|
|
18
|
+
}
|
|
19
|
+
export interface OutlinedCascaderExpose {
|
|
20
|
+
focus: () => void;
|
|
21
|
+
blur: () => void;
|
|
22
|
+
togglePopperVisible: () => void;
|
|
23
|
+
clear: () => void;
|
|
24
|
+
getCascaderRef: () => unknown | null;
|
|
25
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { OutlinedCascaderCssValue, OutlinedCascaderProps, OutlinedCascaderValue } from './OutlinedCascader.types';
|
|
2
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<OutlinedCascaderProps>, {
|
|
3
|
+
value: () => never[];
|
|
4
|
+
options: () => never[];
|
|
5
|
+
clearable: boolean;
|
|
6
|
+
propsValue: undefined;
|
|
7
|
+
placeholder: string;
|
|
8
|
+
label: string;
|
|
9
|
+
popperClass: string;
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
inputHeight: number;
|
|
12
|
+
isBorder: boolean;
|
|
13
|
+
filterable: boolean;
|
|
14
|
+
levels: boolean;
|
|
15
|
+
marginBottom: number;
|
|
16
|
+
paddingTop: number;
|
|
17
|
+
}>>, {
|
|
18
|
+
focus: () => void;
|
|
19
|
+
blur: () => void;
|
|
20
|
+
togglePopperVisible: () => void;
|
|
21
|
+
clear: () => void;
|
|
22
|
+
getCascaderRef: () => unknown;
|
|
23
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
24
|
+
input: (value: OutlinedCascaderValue) => void;
|
|
25
|
+
"update:value": (value: OutlinedCascaderValue) => void;
|
|
26
|
+
change: (value: OutlinedCascaderValue) => void;
|
|
27
|
+
focus: (value: FocusEvent) => void;
|
|
28
|
+
blur: (value: FocusEvent) => void;
|
|
29
|
+
"visible-change": (value: boolean) => void;
|
|
30
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<OutlinedCascaderProps>, {
|
|
31
|
+
value: () => never[];
|
|
32
|
+
options: () => never[];
|
|
33
|
+
clearable: boolean;
|
|
34
|
+
propsValue: undefined;
|
|
35
|
+
placeholder: string;
|
|
36
|
+
label: string;
|
|
37
|
+
popperClass: string;
|
|
38
|
+
disabled: boolean;
|
|
39
|
+
inputHeight: number;
|
|
40
|
+
isBorder: boolean;
|
|
41
|
+
filterable: boolean;
|
|
42
|
+
levels: boolean;
|
|
43
|
+
marginBottom: number;
|
|
44
|
+
paddingTop: number;
|
|
45
|
+
}>>> & Readonly<{
|
|
46
|
+
onBlur?: ((value: FocusEvent) => any) | undefined;
|
|
47
|
+
onChange?: ((value: OutlinedCascaderValue) => any) | undefined;
|
|
48
|
+
onFocus?: ((value: FocusEvent) => any) | undefined;
|
|
49
|
+
onInput?: ((value: OutlinedCascaderValue) => any) | undefined;
|
|
50
|
+
"onUpdate:value"?: ((value: OutlinedCascaderValue) => any) | undefined;
|
|
51
|
+
"onVisible-change"?: ((value: boolean) => any) | undefined;
|
|
52
|
+
}>, {
|
|
53
|
+
label: string;
|
|
54
|
+
disabled: boolean;
|
|
55
|
+
popperClass: string;
|
|
56
|
+
value: OutlinedCascaderValue;
|
|
57
|
+
placeholder: string;
|
|
58
|
+
clearable: boolean;
|
|
59
|
+
options: Record<string, unknown>[];
|
|
60
|
+
inputHeight: number;
|
|
61
|
+
isBorder: boolean;
|
|
62
|
+
marginBottom: OutlinedCascaderCssValue;
|
|
63
|
+
paddingTop: OutlinedCascaderCssValue;
|
|
64
|
+
filterable: boolean;
|
|
65
|
+
propsValue: Record<string, unknown>;
|
|
66
|
+
levels: boolean;
|
|
67
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
68
|
+
export default _default;
|
|
69
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
70
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
71
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
72
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
73
|
+
} : {
|
|
74
|
+
type: import('vue').PropType<T[K]>;
|
|
75
|
+
required: true;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
type __VLS_WithDefaults<P, D> = {
|
|
79
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
80
|
+
default: D[K];
|
|
81
|
+
}> : P[K];
|
|
82
|
+
};
|
|
83
|
+
type __VLS_Prettify<T> = {
|
|
84
|
+
[K in keyof T]: T[K];
|
|
85
|
+
} & {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type OutlinedDatePickerCssValue = string | number;
|
|
2
|
+
export type OutlinedDatePickerValue = string | number | Date | Array<string | number | Date> | null;
|
|
3
|
+
export type OutlinedDatePickerDisabledDate = string | number | Date | ((date: Date) => boolean);
|
|
4
|
+
export interface OutlinedDatePickerProps {
|
|
5
|
+
value?: OutlinedDatePickerValue;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
label?: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
timeValue?: boolean;
|
|
10
|
+
typeDate?: string;
|
|
11
|
+
format?: string;
|
|
12
|
+
valueFormat?: string;
|
|
13
|
+
showPassword?: boolean;
|
|
14
|
+
multiple?: boolean;
|
|
15
|
+
inputHeight?: number;
|
|
16
|
+
isBorder?: boolean;
|
|
17
|
+
disabledDate?: OutlinedDatePickerDisabledDate;
|
|
18
|
+
marginBottom?: OutlinedDatePickerCssValue;
|
|
19
|
+
paddingTop?: OutlinedDatePickerCssValue;
|
|
20
|
+
}
|
|
21
|
+
export interface OutlinedDatePickerExpose {
|
|
22
|
+
focus: () => void;
|
|
23
|
+
blur: () => void;
|
|
24
|
+
handleOpen: () => void;
|
|
25
|
+
handleClose: () => void;
|
|
26
|
+
getPickerRef: () => unknown | null;
|
|
27
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { OutlinedDatePickerCssValue, OutlinedDatePickerDisabledDate, OutlinedDatePickerProps, OutlinedDatePickerValue } from './OutlinedDatePicker.types';
|
|
2
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<OutlinedDatePickerProps>, {
|
|
3
|
+
value: string;
|
|
4
|
+
placeholder: string;
|
|
5
|
+
label: string;
|
|
6
|
+
disabled: boolean;
|
|
7
|
+
timeValue: boolean;
|
|
8
|
+
typeDate: string;
|
|
9
|
+
format: string;
|
|
10
|
+
valueFormat: string;
|
|
11
|
+
showPassword: boolean;
|
|
12
|
+
multiple: boolean;
|
|
13
|
+
inputHeight: number;
|
|
14
|
+
isBorder: boolean;
|
|
15
|
+
disabledDate: undefined;
|
|
16
|
+
marginBottom: number;
|
|
17
|
+
paddingTop: number;
|
|
18
|
+
}>>, {
|
|
19
|
+
focus: () => void;
|
|
20
|
+
blur: () => void;
|
|
21
|
+
handleOpen: () => void;
|
|
22
|
+
handleClose: () => void;
|
|
23
|
+
getPickerRef: () => unknown;
|
|
24
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
25
|
+
input: (value: OutlinedDatePickerValue) => void;
|
|
26
|
+
"update:value": (value: OutlinedDatePickerValue) => void;
|
|
27
|
+
change: (value: OutlinedDatePickerValue) => void;
|
|
28
|
+
focus: (value: FocusEvent) => void;
|
|
29
|
+
blur: (value: FocusEvent) => void;
|
|
30
|
+
"visible-change": (value: boolean) => void;
|
|
31
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<OutlinedDatePickerProps>, {
|
|
32
|
+
value: string;
|
|
33
|
+
placeholder: string;
|
|
34
|
+
label: string;
|
|
35
|
+
disabled: boolean;
|
|
36
|
+
timeValue: boolean;
|
|
37
|
+
typeDate: string;
|
|
38
|
+
format: string;
|
|
39
|
+
valueFormat: string;
|
|
40
|
+
showPassword: boolean;
|
|
41
|
+
multiple: boolean;
|
|
42
|
+
inputHeight: number;
|
|
43
|
+
isBorder: boolean;
|
|
44
|
+
disabledDate: undefined;
|
|
45
|
+
marginBottom: number;
|
|
46
|
+
paddingTop: number;
|
|
47
|
+
}>>> & Readonly<{
|
|
48
|
+
onBlur?: ((value: FocusEvent) => any) | undefined;
|
|
49
|
+
onChange?: ((value: OutlinedDatePickerValue) => any) | undefined;
|
|
50
|
+
onFocus?: ((value: FocusEvent) => any) | undefined;
|
|
51
|
+
onInput?: ((value: OutlinedDatePickerValue) => any) | undefined;
|
|
52
|
+
"onUpdate:value"?: ((value: OutlinedDatePickerValue) => any) | undefined;
|
|
53
|
+
"onVisible-change"?: ((value: boolean) => any) | undefined;
|
|
54
|
+
}>, {
|
|
55
|
+
label: string;
|
|
56
|
+
disabled: boolean;
|
|
57
|
+
value: OutlinedDatePickerValue;
|
|
58
|
+
placeholder: string;
|
|
59
|
+
showPassword: boolean;
|
|
60
|
+
inputHeight: number;
|
|
61
|
+
isBorder: boolean;
|
|
62
|
+
marginBottom: OutlinedDatePickerCssValue;
|
|
63
|
+
paddingTop: OutlinedDatePickerCssValue;
|
|
64
|
+
multiple: boolean;
|
|
65
|
+
timeValue: boolean;
|
|
66
|
+
typeDate: string;
|
|
67
|
+
format: string;
|
|
68
|
+
valueFormat: string;
|
|
69
|
+
disabledDate: OutlinedDatePickerDisabledDate;
|
|
70
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
71
|
+
export default _default;
|
|
72
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
73
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
74
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
75
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
76
|
+
} : {
|
|
77
|
+
type: import('vue').PropType<T[K]>;
|
|
78
|
+
required: true;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
type __VLS_WithDefaults<P, D> = {
|
|
82
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
83
|
+
default: D[K];
|
|
84
|
+
}> : P[K];
|
|
85
|
+
};
|
|
86
|
+
type __VLS_Prettify<T> = {
|
|
87
|
+
[K in keyof T]: T[K];
|
|
88
|
+
} & {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import OutlinedDatePicker from './OutlinedDatePicker.vue';
|
|
2
|
+
export default OutlinedDatePicker;
|
|
3
|
+
export type { OutlinedDatePickerCssValue, OutlinedDatePickerDisabledDate, OutlinedDatePickerExpose, OutlinedDatePickerProps, OutlinedDatePickerValue } from './OutlinedDatePicker.types';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type OutlinedDateTimePickerCssValue = string | number;
|
|
2
|
+
export type OutlinedDateTimePickerValue = string;
|
|
3
|
+
export type OutlinedDateTimePickerDisabledDate = string | number | Date | ((date: Date) => boolean);
|
|
4
|
+
export interface OutlinedDateTimePickerProps {
|
|
5
|
+
value?: OutlinedDateTimePickerValue;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
label?: string;
|
|
8
|
+
inputHeight?: number;
|
|
9
|
+
isBorder?: boolean;
|
|
10
|
+
disabledDate?: OutlinedDateTimePickerDisabledDate;
|
|
11
|
+
separatorText?: string;
|
|
12
|
+
timePlaceholder?: string;
|
|
13
|
+
clearable?: boolean;
|
|
14
|
+
marginBottom?: OutlinedDateTimePickerCssValue;
|
|
15
|
+
paddingTop?: OutlinedDateTimePickerCssValue;
|
|
16
|
+
}
|
|
17
|
+
export interface OutlinedDateTimePickerExpose {
|
|
18
|
+
focusDate: () => void;
|
|
19
|
+
focusTime: () => void;
|
|
20
|
+
blurDate: () => void;
|
|
21
|
+
blurTime: () => void;
|
|
22
|
+
openDatePanel: () => void;
|
|
23
|
+
openTimePanel: () => void;
|
|
24
|
+
getDatePickerRef: () => unknown | null;
|
|
25
|
+
getTimePickerRef: () => unknown | null;
|
|
26
|
+
}
|