@veltra/mobile 1.0.0 → 1.1.0
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/package.json +32 -6
- package/src/components/_internal/bottom-sheet/bottom-sheet.vue +81 -0
- package/src/components/_internal/bottom-sheet/index.ts +1 -0
- package/src/components/_internal/bottom-sheet/style.scss +116 -0
- package/src/components/_internal/bottom-sheet/style.ts +1 -0
- package/src/components/_internal/overlay-container.ts +34 -0
- package/src/components/avatar/avatar.vue +44 -0
- package/src/components/avatar/index.ts +1 -0
- package/src/components/avatar/style.scss +53 -0
- package/src/components/avatar/style.ts +1 -0
- package/src/components/badge/badge.vue +59 -0
- package/src/components/badge/index.ts +1 -0
- package/src/components/badge/style.scss +62 -0
- package/src/components/badge/style.ts +1 -0
- package/src/components/button/button.vue +76 -0
- package/src/components/button/index.ts +1 -0
- package/src/components/button/style.scss +207 -0
- package/src/components/button/style.ts +1 -0
- package/src/components/card/card.vue +24 -0
- package/src/components/card/index.ts +1 -0
- package/src/components/card/style.scss +35 -0
- package/src/components/card/style.ts +1 -0
- package/src/components/cascade/cascade.vue +595 -0
- package/src/components/cascade/index.ts +1 -0
- package/src/components/cascade/node.ts +29 -0
- package/src/components/cascade/style.scss +424 -0
- package/src/components/cascade/style.ts +2 -0
- package/src/components/check-tag/check-tag.vue +35 -0
- package/src/components/check-tag/index.ts +1 -0
- package/src/components/check-tag/style.scss +46 -0
- package/src/components/check-tag/style.ts +1 -0
- package/src/components/checkbox/checkbox.vue +67 -0
- package/src/components/checkbox/index.ts +1 -0
- package/src/components/checkbox/style.scss +132 -0
- package/src/components/checkbox/style.ts +2 -0
- package/src/components/checkbox-group/checkbox-group.vue +94 -0
- package/src/components/checkbox-group/index.ts +1 -0
- package/src/components/checkbox-group/style.scss +57 -0
- package/src/components/checkbox-group/style.ts +2 -0
- package/src/components/collapse/collapse-item.vue +134 -0
- package/src/components/collapse/collapse.vue +117 -0
- package/src/components/collapse/di.ts +18 -0
- package/src/components/collapse/index.ts +3 -0
- package/src/components/collapse/style.scss +157 -0
- package/src/components/collapse/style.ts +1 -0
- package/src/components/date-picker/date-picker.vue +326 -0
- package/src/components/date-picker/index.ts +1 -0
- package/src/components/date-picker/style.scss +236 -0
- package/src/components/date-picker/style.ts +2 -0
- package/src/components/descriptions/descriptions-item.vue +12 -0
- package/src/components/descriptions/descriptions.vue +50 -0
- package/src/components/descriptions/index.ts +2 -0
- package/src/components/descriptions/style.scss +120 -0
- package/src/components/descriptions/style.ts +1 -0
- package/src/components/dialog/dialog.vue +143 -0
- package/src/components/dialog/index.ts +1 -0
- package/src/components/dialog/style.scss +163 -0
- package/src/components/dialog/style.ts +4 -0
- package/src/components/divider/divider.vue +29 -0
- package/src/components/divider/index.ts +1 -0
- package/src/components/divider/style.scss +91 -0
- package/src/components/divider/style.ts +1 -0
- package/src/components/drawer/drawer.vue +168 -0
- package/src/components/drawer/index.ts +1 -0
- package/src/components/drawer/style.scss +240 -0
- package/src/components/drawer/style.ts +2 -0
- package/src/components/empty/empty.vue +22 -0
- package/src/components/empty/index.ts +1 -0
- package/src/components/empty/style.scss +36 -0
- package/src/components/empty/style.ts +1 -0
- package/src/components/form/form.vue +119 -0
- package/src/components/form/index.ts +1 -0
- package/src/components/form/is-field-modified.ts +16 -0
- package/src/components/form/style.scss +58 -0
- package/src/components/form/style.ts +2 -0
- package/src/components/form/use-form-fields.ts +115 -0
- package/src/components/form/use-node-interceptor.ts +101 -0
- package/src/components/form-item/form-item.vue +171 -0
- package/src/components/form-item/helper.ts +9 -0
- package/src/components/form-item/index.ts +1 -0
- package/src/components/form-item/style.scss +121 -0
- package/src/components/form-item/style.ts +1 -0
- package/src/components/form-item/validate.ts +131 -0
- package/src/components/icon/icon.vue +23 -0
- package/src/components/icon/index.ts +1 -0
- package/src/components/icon/style.scss +37 -0
- package/src/components/icon/style.ts +1 -0
- package/src/components/input/index.ts +1 -0
- package/src/components/input/input.vue +187 -0
- package/src/components/input/style.scss +121 -0
- package/src/components/input/style.ts +1 -0
- package/src/components/list/index.ts +3 -0
- package/src/components/list/list-item.vue +20 -0
- package/src/components/list/list.vue +20 -0
- package/src/components/list/style.scss +50 -0
- package/src/components/list/style.ts +1 -0
- package/src/components/loading/directive.ts +34 -0
- package/src/components/loading/index.ts +3 -0
- package/src/components/loading/loading.vue +25 -0
- package/src/components/loading/style.scss +179 -0
- package/src/components/loading/style.ts +2 -0
- package/src/components/message/helper.ts +28 -0
- package/src/components/message/index.ts +3 -0
- package/src/components/message/message-box.vue +31 -0
- package/src/components/message/message.ts +122 -0
- package/src/components/message/message.vue +54 -0
- package/src/components/message/style.scss +130 -0
- package/src/components/message/style.ts +1 -0
- package/src/components/message-confirm/index.ts +3 -0
- package/src/components/message-confirm/message-confirm-box.vue +36 -0
- package/src/components/message-confirm/message-confirm.ts +139 -0
- package/src/components/message-confirm/message-confirm.vue +53 -0
- package/src/components/message-confirm/style.scss +138 -0
- package/src/components/message-confirm/style.ts +1 -0
- package/src/components/multi-select/index.ts +1 -0
- package/src/components/multi-select/multi-select.vue +410 -0
- package/src/components/multi-select/style.scss +376 -0
- package/src/components/multi-select/style.ts +2 -0
- package/src/components/number-input/index.ts +1 -0
- package/src/components/number-input/number-input.vue +407 -0
- package/src/components/number-input/style.scss +118 -0
- package/src/components/number-input/style.ts +2 -0
- package/src/components/password-input/index.ts +1 -0
- package/src/components/password-input/password-input.vue +134 -0
- package/src/components/password-input/style.scss +40 -0
- package/src/components/password-input/style.ts +2 -0
- package/src/components/progress/index.ts +1 -0
- package/src/components/progress/progress.vue +90 -0
- package/src/components/progress/style.scss +73 -0
- package/src/components/progress/style.ts +1 -0
- package/src/components/radio/index.ts +1 -0
- package/src/components/radio/radio.vue +57 -0
- package/src/components/radio/style.scss +113 -0
- package/src/components/radio/style.ts +1 -0
- package/src/components/radio-group/index.ts +1 -0
- package/src/components/radio-group/radio-group.vue +60 -0
- package/src/components/radio-group/style.scss +29 -0
- package/src/components/radio-group/style.ts +2 -0
- package/src/components/segment/index.ts +1 -0
- package/src/components/segment/segment.vue +121 -0
- package/src/components/segment/style.scss +118 -0
- package/src/components/segment/style.ts +1 -0
- package/src/components/select/index.ts +1 -0
- package/src/components/select/select.vue +278 -0
- package/src/components/select/style.scss +237 -0
- package/src/components/select/style.ts +2 -0
- package/src/components/select/use-options.ts +195 -0
- package/src/components/skeleton/index.ts +1 -0
- package/src/components/skeleton/skeleton.vue +37 -0
- package/src/components/skeleton/style.scss +95 -0
- package/src/components/skeleton/style.ts +1 -0
- package/src/components/space/index.ts +1 -0
- package/src/components/space/space.vue +45 -0
- package/src/components/space/style.scss +41 -0
- package/src/components/space/style.ts +1 -0
- package/src/components/steps/index.ts +1 -0
- package/src/components/steps/steps.vue +114 -0
- package/src/components/steps/style.scss +231 -0
- package/src/components/steps/style.ts +1 -0
- package/src/components/switch/index.ts +1 -0
- package/src/components/switch/style.scss +137 -0
- package/src/components/switch/style.ts +1 -0
- package/src/components/switch/switch.vue +63 -0
- package/src/components/tabs/index.ts +1 -0
- package/src/components/tabs/style.scss +285 -0
- package/src/components/tabs/style.ts +1 -0
- package/src/components/tabs/tabs.vue +127 -0
- package/src/components/tag/index.ts +1 -0
- package/src/components/tag/style.scss +114 -0
- package/src/components/tag/style.ts +1 -0
- package/src/components/tag/tag.vue +49 -0
- package/src/components/text/index.ts +1 -0
- package/src/components/text/style.scss +63 -0
- package/src/components/text/style.ts +1 -0
- package/src/components/text/text.vue +63 -0
- package/src/components/textarea/index.ts +1 -0
- package/src/components/textarea/style.scss +124 -0
- package/src/components/textarea/style.ts +1 -0
- package/src/components/textarea/textarea.vue +121 -0
- package/src/components/textarea/utils.ts +11 -0
- package/src/components/time-picker/index.ts +1 -0
- package/src/components/time-picker/style.scss +216 -0
- package/src/components/time-picker/style.ts +2 -0
- package/src/components/time-picker/time-picker.vue +263 -0
- package/src/components/timeline/index.ts +2 -0
- package/src/components/timeline/style.scss +107 -0
- package/src/components/timeline/style.ts +1 -0
- package/src/components/timeline/timeline-item.vue +43 -0
- package/src/components/timeline/timeline.vue +16 -0
- package/src/components/uploader/index.ts +1 -0
- package/src/components/uploader/style.scss +220 -0
- package/src/components/uploader/style.ts +1 -0
- package/src/components/uploader/uploader.vue +306 -0
- package/src/env.d.ts +7 -0
- package/src/index.ts +99 -1
- package/src/shared/bem.ts +12 -0
- package/src/shared/use-scroll-lock.ts +111 -0
- package/src/shared/use-touch-gesture.ts +150 -0
- package/src/styles/_tokens.scss +129 -0
- package/src/types/avatar.ts +31 -0
- package/src/types/badge.ts +28 -0
- package/src/types/button.ts +48 -0
- package/src/types/card.ts +16 -0
- package/src/types/cascade.ts +87 -0
- package/src/types/check-tag.ts +24 -0
- package/src/types/checkbox-group.ts +20 -0
- package/src/types/checkbox.ts +15 -0
- package/src/types/collapse.ts +79 -0
- package/src/types/date-picker.ts +39 -0
- package/src/types/descriptions.ts +22 -0
- package/src/types/dialog.ts +54 -0
- package/src/types/divider.ts +14 -0
- package/src/types/drawer.ts +38 -0
- package/src/types/empty.ts +19 -0
- package/src/types/form-item.ts +22 -0
- package/src/types/form.ts +54 -0
- package/src/types/icon.ts +10 -0
- package/src/types/input.ts +51 -0
- package/src/types/list.ts +13 -0
- package/src/types/loading.ts +20 -0
- package/src/types/message-confirm.ts +72 -0
- package/src/types/message.ts +71 -0
- package/src/types/multi-select.ts +38 -0
- package/src/types/number-input.ts +32 -0
- package/src/types/password-input.ts +19 -0
- package/src/types/progress.ts +22 -0
- package/src/types/radio-group.ts +33 -0
- package/src/types/radio.ts +18 -0
- package/src/types/segment.ts +42 -0
- package/src/types/select.ts +63 -0
- package/src/types/skeleton.ts +29 -0
- package/src/types/space.ts +22 -0
- package/src/types/steps.ts +67 -0
- package/src/types/switch.ts +17 -0
- package/src/types/tabs.ts +63 -0
- package/src/types/tag.ts +19 -0
- package/src/types/text.ts +28 -0
- package/src/types/textarea.ts +76 -0
- package/src/types/time-picker.ts +40 -0
- package/src/types/timeline.ts +15 -0
- package/src/types/uploader.ts +50 -0
- package/.turbo/turbo-build.log +0 -2
- package/.turbo/turbo-check-types.log +0 -1
- package/tsconfig.json +0 -12
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DeconstructValue } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
import type { InputProps } from './input'
|
|
4
|
+
|
|
5
|
+
/** 密码输入组件属性(API 与 @veltra/desktop UPasswordInput 对齐;明文切换按钮 44px 触控热区为移动端形态) */
|
|
6
|
+
export interface PasswordInputProps extends InputProps {
|
|
7
|
+
modelValue?: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** 密码输入组件定义的事件 */
|
|
11
|
+
export interface PasswordInputEmits {
|
|
12
|
+
(e: 'update:modelValue', value: string): void
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** 密码输入暴露的属性和方法(组件内部使用) */
|
|
16
|
+
export interface _PasswordInputExposed {}
|
|
17
|
+
|
|
18
|
+
/** 密码输入暴露的属性和方法(组件外部使用, 引用的值会被自动解构) */
|
|
19
|
+
export type PasswordInputExposed = DeconstructValue<_PasswordInputExposed>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ColorType, DeconstructValue } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** progress组件属性 */
|
|
4
|
+
export interface ProgressProps {
|
|
5
|
+
/** 类型 */
|
|
6
|
+
type: ColorType | ((percentage: number) => ColorType)
|
|
7
|
+
/** 圆形进度条尺寸 */
|
|
8
|
+
size?: number | string
|
|
9
|
+
/** 进度百分比 */
|
|
10
|
+
percentage?: number
|
|
11
|
+
/** 是否圆形进度条 */
|
|
12
|
+
circle?: boolean
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** progress组件定义的事件 */
|
|
16
|
+
export interface ProgressEmits {}
|
|
17
|
+
|
|
18
|
+
/** progress组件暴露的属性和方法(组件内部使用) */
|
|
19
|
+
export interface _ProgressExposed {}
|
|
20
|
+
|
|
21
|
+
/** progress组件暴露的属性和方法(组件外部使用, 引用的值会被自动解构) */
|
|
22
|
+
export type ProgressExposed = DeconstructValue<_ProgressExposed>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { FormComponentProps } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 单选框组组件属性(移动端列表行式:选项纵向排列占满整行,选中标记在行右侧) */
|
|
4
|
+
export interface RadioGroupProps extends FormComponentProps {
|
|
5
|
+
/** 值 */
|
|
6
|
+
modelValue?: any
|
|
7
|
+
/** 单选框项 */
|
|
8
|
+
items: Record<string, any>[]
|
|
9
|
+
/**
|
|
10
|
+
* 选项值key
|
|
11
|
+
* @default 'value'
|
|
12
|
+
*/
|
|
13
|
+
valueKey?: string
|
|
14
|
+
/**
|
|
15
|
+
* 标签文本key
|
|
16
|
+
* @default 'label'
|
|
17
|
+
*/
|
|
18
|
+
labelKey?: string
|
|
19
|
+
/** 禁用 */
|
|
20
|
+
disabled?: boolean
|
|
21
|
+
/** 禁用的选项 */
|
|
22
|
+
disabledItem?: (item: Record<string, any>) => boolean
|
|
23
|
+
/** 选项行间细分隔线。默认 false */
|
|
24
|
+
divider?: boolean
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** 单选框组组件定义的事件 */
|
|
28
|
+
export interface RadioGroupEmits {
|
|
29
|
+
/** 值更新 */
|
|
30
|
+
(e: 'update:modelValue', modelValue: any): void
|
|
31
|
+
/** 选项更新事件 */
|
|
32
|
+
(e: 'change', item: Record<string, any>): void
|
|
33
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { FormComponentProps } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 单选框组件属性(与 @veltra/desktop URadio 同名;呈移动端列表行式选项形态,选中标记在行右侧) */
|
|
4
|
+
export interface RadioProps extends FormComponentProps {
|
|
5
|
+
/** 单选框值 */
|
|
6
|
+
value?: any
|
|
7
|
+
/** 文本 */
|
|
8
|
+
label?: string
|
|
9
|
+
/**全部禁用 */
|
|
10
|
+
disabled?: boolean
|
|
11
|
+
/** 绑定值 */
|
|
12
|
+
modelValue?: any
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** 单选框组件定义的事件 */
|
|
16
|
+
export interface RadioEmits {
|
|
17
|
+
(e: 'update:modelValue', value: any): void
|
|
18
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { DeconstructValue, FormComponentProps } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 分段单选选项 */
|
|
4
|
+
export type SegmentItem = Record<string, any>
|
|
5
|
+
|
|
6
|
+
/** 分段单选组件属性 */
|
|
7
|
+
export interface SegmentProps extends FormComponentProps {
|
|
8
|
+
/** 绑定值 */
|
|
9
|
+
modelValue?: any
|
|
10
|
+
/** 选项列表 */
|
|
11
|
+
items: SegmentItem[]
|
|
12
|
+
/**
|
|
13
|
+
* 选项值 key
|
|
14
|
+
* @default 'value'
|
|
15
|
+
*/
|
|
16
|
+
valueKey?: string
|
|
17
|
+
/**
|
|
18
|
+
* 选项标签 key
|
|
19
|
+
* @default 'label'
|
|
20
|
+
*/
|
|
21
|
+
labelKey?: string
|
|
22
|
+
/** 是否禁用整组 */
|
|
23
|
+
disabled?: boolean
|
|
24
|
+
/** 禁用的选项判断函数 */
|
|
25
|
+
disabledItem?: (item: SegmentItem) => boolean
|
|
26
|
+
/** 是否撑满容器宽度 */
|
|
27
|
+
block?: boolean
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** 分段单选组件事件 */
|
|
31
|
+
export interface SegmentEmits {
|
|
32
|
+
/** 绑定值更新 */
|
|
33
|
+
(e: 'update:modelValue', modelValue: any): void
|
|
34
|
+
/** 选中项切换事件 */
|
|
35
|
+
(e: 'change', item: SegmentItem): void
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** 分段单选组件暴露的属性和方法(组件内部使用) */
|
|
39
|
+
export interface _SegmentExposed {}
|
|
40
|
+
|
|
41
|
+
/** 分段单选组件暴露的属性和方法(组件外部使用, 引用的值会被自动解构) */
|
|
42
|
+
export type SegmentExposed = DeconstructValue<_SegmentExposed>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { FormComponentProps } from '@veltra/utils'
|
|
2
|
+
import type { CSSProperties } from 'vue'
|
|
3
|
+
|
|
4
|
+
/** 选择器组件属性(移动端形态:面板走 BottomSheet) */
|
|
5
|
+
export interface SelectProps extends FormComponentProps {
|
|
6
|
+
/** 绑定值 */
|
|
7
|
+
modelValue?: any
|
|
8
|
+
/**
|
|
9
|
+
* 列表选项
|
|
10
|
+
* @description 如果传入一个函数,那么filterable会被强制启用
|
|
11
|
+
*/
|
|
12
|
+
options?:
|
|
13
|
+
| Record<string, any>[]
|
|
14
|
+
| ((qs: string) => Promise<Record<string, any>[]> | Record<string, any>[])
|
|
15
|
+
/** 值字段 */
|
|
16
|
+
valueKey?: string
|
|
17
|
+
/** 标签字段 */
|
|
18
|
+
labelKey?: string
|
|
19
|
+
/**
|
|
20
|
+
* 兜底展示文案
|
|
21
|
+
* @description modelValue 未命中选项时展示 text(如回显数据已不在选项中),命中时展示选项 label
|
|
22
|
+
*/
|
|
23
|
+
text?: string
|
|
24
|
+
/** 是否可清除 */
|
|
25
|
+
clearable?: boolean
|
|
26
|
+
/** 占位符 */
|
|
27
|
+
placeholder?: string
|
|
28
|
+
/** 是否启用搜索功能 */
|
|
29
|
+
filterable?: boolean
|
|
30
|
+
/** 底部面板内容容器样式 */
|
|
31
|
+
contentStyle?: CSSProperties | string
|
|
32
|
+
/** 底部面板内容容器类名 */
|
|
33
|
+
contentClass?: unknown
|
|
34
|
+
/** 是否允许创建新的选项 */
|
|
35
|
+
creatable?: boolean
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* 配置网格布局
|
|
39
|
+
*
|
|
40
|
+
* - 开启网格布局将会导致虚拟滚动失效,因此网格布局不适合大量数据
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* const grid = true
|
|
44
|
+
* // 或者
|
|
45
|
+
* const grid = {
|
|
46
|
+
* cols: 12,
|
|
47
|
+
* gap: 10
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
grid?: { cols: number; gap?: number }
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface SelectEmits {
|
|
55
|
+
/**
|
|
56
|
+
* 选中项文案变化(用于同步父级冗余字段)
|
|
57
|
+
* @description 命中选项时发出 label,清空时发出 undefined;未命中选项时,
|
|
58
|
+
* 传了 text 兜底则不发出(父级文案已是事实来源),未传 text 时发出 undefined;readonly 下不发出
|
|
59
|
+
*/
|
|
60
|
+
(e: 'update:text', text?: string): void
|
|
61
|
+
(e: 'update:modelValue', modelValue?: any): void
|
|
62
|
+
(e: 'change', option?: Record<string, any>): void
|
|
63
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** 骨架屏组件属性 */
|
|
2
|
+
export interface SkeletonProps {
|
|
3
|
+
/** 是否处于加载态;false 时渲染默认插槽的实际内容,默认 true */
|
|
4
|
+
loading?: boolean
|
|
5
|
+
|
|
6
|
+
/** 是否显示头像占位块,默认 false */
|
|
7
|
+
avatar?: boolean
|
|
8
|
+
|
|
9
|
+
/** 是否显示标题占位块,默认 true */
|
|
10
|
+
title?: boolean
|
|
11
|
+
|
|
12
|
+
/** 是否显示段落占位块,默认 true */
|
|
13
|
+
paragraph?: boolean
|
|
14
|
+
|
|
15
|
+
/** 段落占位块行数,默认 3 */
|
|
16
|
+
rows?: number
|
|
17
|
+
|
|
18
|
+
/** 是否显示按钮形态占位块,默认 false */
|
|
19
|
+
button?: boolean
|
|
20
|
+
|
|
21
|
+
/** 是否使用胶囊圆角,作用于标题 / 段落 / 按钮占位块,默认 false */
|
|
22
|
+
round?: boolean
|
|
23
|
+
|
|
24
|
+
/** 是否开启呼吸动画,默认 false */
|
|
25
|
+
animated?: boolean
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** 骨架屏组件定义的事件 */
|
|
29
|
+
export interface SkeletonEmits {}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ComponentSize } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 间距容器组件属性 */
|
|
4
|
+
export interface SpaceProps {
|
|
5
|
+
/**
|
|
6
|
+
* 间距:档位走 `--um-*` 间距刻度 token(small 8px / default 12px / large 16px);
|
|
7
|
+
* 数字为固定间距(px);二元组为 [水平间距, 垂直间距](px)。默认 'default'
|
|
8
|
+
*/
|
|
9
|
+
size?: ComponentSize | number | [number, number]
|
|
10
|
+
|
|
11
|
+
/** 排列方向,默认 'horizontal' */
|
|
12
|
+
direction?: 'horizontal' | 'vertical'
|
|
13
|
+
|
|
14
|
+
/** 交叉轴对齐方式,默认 'center' */
|
|
15
|
+
align?: 'start' | 'center' | 'end' | 'baseline'
|
|
16
|
+
|
|
17
|
+
/** 是否自动换行,仅水平方向生效,默认 false */
|
|
18
|
+
wrap?: boolean
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** 间距容器组件定义的事件 */
|
|
22
|
+
export interface SpaceEmits {}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ColorType, ComponentSize, DeconstructValue } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 步骤组件组件属性 */
|
|
4
|
+
export interface StepsProps {
|
|
5
|
+
/**
|
|
6
|
+
* 当前步骤项,默认为步骤的索引
|
|
7
|
+
*/
|
|
8
|
+
current?: string | number
|
|
9
|
+
/**
|
|
10
|
+
* 尺寸
|
|
11
|
+
*/
|
|
12
|
+
size?: ComponentSize
|
|
13
|
+
/**
|
|
14
|
+
* 步骤项
|
|
15
|
+
*/
|
|
16
|
+
items: Record<string, any>[]
|
|
17
|
+
/** 步骤项标签键 */
|
|
18
|
+
labelKey?: string
|
|
19
|
+
/**
|
|
20
|
+
* 当前步骤项键
|
|
21
|
+
* @description
|
|
22
|
+
* 如果指定,则current的值会作为items中的键值来获取当前步骤项
|
|
23
|
+
*/
|
|
24
|
+
currentKey?: string
|
|
25
|
+
/**
|
|
26
|
+
* 方向
|
|
27
|
+
* @default 'horizontal'
|
|
28
|
+
*/
|
|
29
|
+
direction?: 'horizontal' | 'vertical'
|
|
30
|
+
|
|
31
|
+
/** 居中对齐 */
|
|
32
|
+
alignCenter?: boolean
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* 当前步骤项颜色类型
|
|
36
|
+
*/
|
|
37
|
+
currentStepType?: ColorType
|
|
38
|
+
/**
|
|
39
|
+
* 已完成项步骤颜色类型
|
|
40
|
+
* @default 'success'
|
|
41
|
+
*/
|
|
42
|
+
finishedStepType?: ColorType
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** 步骤项插槽作用域 */
|
|
46
|
+
export interface StepsSlotScope {
|
|
47
|
+
item: Record<string, any>
|
|
48
|
+
index: number
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** 步骤组件组件定义的事件 */
|
|
52
|
+
export interface StepsEmits {
|
|
53
|
+
/**
|
|
54
|
+
* 当前步骤项变更
|
|
55
|
+
*/
|
|
56
|
+
(e: 'update:current', value?: string | number): void
|
|
57
|
+
/**
|
|
58
|
+
* 步骤项点击事件
|
|
59
|
+
*/
|
|
60
|
+
(e: 'item-click', item: Record<string, any>, index: number): void
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** 步骤组件组件暴露的属性和方法(组件内部使用) */
|
|
64
|
+
export interface _StepsExposed {}
|
|
65
|
+
|
|
66
|
+
/** 步骤组件组件暴露的属性和方法(组件外部使用, 引用的值会被自动解构) */
|
|
67
|
+
export type StepsExposed = DeconstructValue<_StepsExposed>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FormComponentProps } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 开关组件属性(与 @veltra/desktop USwitch 同名;轨道/手柄尺寸走 `--um-*` 移动档) */
|
|
4
|
+
export interface SwitchProps extends FormComponentProps {
|
|
5
|
+
/** 开关状态 */
|
|
6
|
+
modelValue?: boolean
|
|
7
|
+
/** 打开时显示的文字 */
|
|
8
|
+
activeText?: string
|
|
9
|
+
/** 关闭时显示的文字 */
|
|
10
|
+
inactiveText?: string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** 开关组件定义的事件 */
|
|
14
|
+
export interface SwitchEmits {
|
|
15
|
+
(e: 'update:modelValue', value: boolean): void
|
|
16
|
+
(e: 'change', value: boolean): void
|
|
17
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { ComponentProps } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
export type TabItem = {
|
|
4
|
+
/**
|
|
5
|
+
* 标题名称
|
|
6
|
+
* @description 如果不传则以 key 为名称
|
|
7
|
+
*/
|
|
8
|
+
name?: string
|
|
9
|
+
/** 标签页唯一标识 */
|
|
10
|
+
key: string
|
|
11
|
+
/** 是否禁用 */
|
|
12
|
+
disabled?: boolean
|
|
13
|
+
/**
|
|
14
|
+
* 单个标签是否可关闭
|
|
15
|
+
* @description 未显式设置时,沿用组件级 `closable` 属性
|
|
16
|
+
*/
|
|
17
|
+
closable?: boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** 标签页组件属性 */
|
|
21
|
+
export interface TabsProps extends ComponentProps {
|
|
22
|
+
/** 当前激活的标签 key */
|
|
23
|
+
modelValue?: string
|
|
24
|
+
/** 标签项 */
|
|
25
|
+
items: TabItem[]
|
|
26
|
+
/**
|
|
27
|
+
* 是否可关闭
|
|
28
|
+
* @description 作为所有 TabItem 未显式 `closable` 时的默认值;禁用项不显示关闭按钮
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
closable?: boolean
|
|
32
|
+
/**
|
|
33
|
+
* 是否填充父容器宽度(仅在 position=top/bottom 时生效)
|
|
34
|
+
* @description 开启时 header 容器占满父容器宽度,背景完整铺开;tab-item 自身宽度保持不变
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
block?: boolean
|
|
38
|
+
/**
|
|
39
|
+
* 是否开启圆角胶囊风格
|
|
40
|
+
* @default false
|
|
41
|
+
*/
|
|
42
|
+
rounded?: boolean
|
|
43
|
+
/** 显示位置 */
|
|
44
|
+
position?: 'left' | 'right' | 'top' | 'bottom'
|
|
45
|
+
/**
|
|
46
|
+
* 是否保活
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
keepAlive?: boolean
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** 标签页组件定义的事件 */
|
|
53
|
+
export interface TabsEmits {
|
|
54
|
+
(e: 'update:modelValue', value: string): void
|
|
55
|
+
(e: 'click', item: TabItem, index: number): void
|
|
56
|
+
(e: 'close', item: TabItem, index: number): void
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** 标签页组件暴露的属性和方法(组件内部使用) */
|
|
60
|
+
export interface _TabsExposed {}
|
|
61
|
+
|
|
62
|
+
/** 标签页组件暴露的属性和方法(组件外部使用,引用的值会被自动解构) */
|
|
63
|
+
export interface TabsExposed {}
|
package/src/types/tag.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ColorType, ComponentSize } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 标签组件属性 */
|
|
4
|
+
export interface TagProps {
|
|
5
|
+
type?: ColorType
|
|
6
|
+
/** 是否可移除 */
|
|
7
|
+
closable?: boolean
|
|
8
|
+
/** 尺寸大小 */
|
|
9
|
+
size?: ComponentSize
|
|
10
|
+
/** 是否为圆角 */
|
|
11
|
+
round?: boolean
|
|
12
|
+
/** 深色 */
|
|
13
|
+
dark?: boolean
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface TagEmits {
|
|
17
|
+
(e: 'close'): void
|
|
18
|
+
}
|
|
19
|
+
export interface TagExposed {}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** 文本组件属性 */
|
|
2
|
+
export interface TextProps {
|
|
3
|
+
/** 使用预设文本类型, 默认content正文 */
|
|
4
|
+
as?: 'main-title' | 'title' | 'sub-title' | 'content' | 'additional'
|
|
5
|
+
/** 文本大小, 与as同时指定时会覆盖as */
|
|
6
|
+
fontSize?: string | number
|
|
7
|
+
/** 是否删除 */
|
|
8
|
+
deleted?: boolean
|
|
9
|
+
/** 下划线 */
|
|
10
|
+
underline?: boolean
|
|
11
|
+
/** 粗体, 与as同时指定时会覆盖as中的字体粗细 */
|
|
12
|
+
bold?: boolean
|
|
13
|
+
/** 斜体 */
|
|
14
|
+
italic?: boolean
|
|
15
|
+
/** 高亮 */
|
|
16
|
+
highlight?: string | string[]
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** 文本组件定义的事件 */
|
|
20
|
+
export interface TextEmits {
|
|
21
|
+
(e: 'update:modelValue', value: string): void
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** 文本组件暴露的属性和方法(组件内部使用) */
|
|
25
|
+
export interface _TextExposed {}
|
|
26
|
+
|
|
27
|
+
/** 文本组件暴露的属性和方法(组件外部使用) */
|
|
28
|
+
export type TextExposed = {}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { DeconstructValue, FormComponentProps } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 文本域组件属性(API 与 @veltra/desktop UTextarea 对齐;字号 16px、行高与内边距走移动端 token) */
|
|
4
|
+
export interface TextareaProps extends FormComponentProps {
|
|
5
|
+
/**
|
|
6
|
+
* 文本域的值
|
|
7
|
+
*/
|
|
8
|
+
modelValue?: string
|
|
9
|
+
/**
|
|
10
|
+
* 文本域的高度
|
|
11
|
+
*/
|
|
12
|
+
height?: string
|
|
13
|
+
/**
|
|
14
|
+
* 文本域的占位符
|
|
15
|
+
*/
|
|
16
|
+
placeholder?: string
|
|
17
|
+
/**
|
|
18
|
+
* 文本域是否禁用
|
|
19
|
+
*/
|
|
20
|
+
disabled?: boolean
|
|
21
|
+
/**
|
|
22
|
+
* 文本域是否只读
|
|
23
|
+
*/
|
|
24
|
+
readonly?: boolean
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 是否能被缩放
|
|
28
|
+
*/
|
|
29
|
+
resize?: boolean
|
|
30
|
+
/**
|
|
31
|
+
* 文本域的行数
|
|
32
|
+
*/
|
|
33
|
+
rows?: number
|
|
34
|
+
/**
|
|
35
|
+
* 文本域的列数
|
|
36
|
+
*/
|
|
37
|
+
cols?: number
|
|
38
|
+
/**
|
|
39
|
+
* 文本域的最大字数
|
|
40
|
+
*/
|
|
41
|
+
maxlength?: number
|
|
42
|
+
/**
|
|
43
|
+
* 是否显示字符数统计(当前字数/最大字数,展示在文本域右下角)
|
|
44
|
+
*/
|
|
45
|
+
showCount?: boolean
|
|
46
|
+
/**
|
|
47
|
+
* 清空
|
|
48
|
+
*/
|
|
49
|
+
clearable?: boolean
|
|
50
|
+
|
|
51
|
+
/** 原生只读 */
|
|
52
|
+
nativeReadonly?: boolean
|
|
53
|
+
|
|
54
|
+
/** 是否自适应大小 */
|
|
55
|
+
autosize?: boolean
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** 文本域组件定义的事件 */
|
|
59
|
+
export interface TextareaEmits {
|
|
60
|
+
/** modelValue值改变时触发 */
|
|
61
|
+
(e: 'update:modelValue', value: string): void
|
|
62
|
+
/** 当 modelValue 改变时,并且文本框失去焦点或用户按Enter时触发 */
|
|
63
|
+
(e: 'change', value: string): void
|
|
64
|
+
/** 文本框获取焦点时触发 */
|
|
65
|
+
(e: 'focus'): void
|
|
66
|
+
/** 文本框失去焦点时触发 */
|
|
67
|
+
(e: 'blur'): void
|
|
68
|
+
/** 清空按钮时触发 */
|
|
69
|
+
(e: 'clear'): void
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** 文本域暴露的属性和方法(组件内部使用) */
|
|
73
|
+
export interface _TextareaExposed {}
|
|
74
|
+
|
|
75
|
+
/** 文本域暴露的属性和方法(组件外部使用, 引用的值会被自动解构) */
|
|
76
|
+
export type TextareaExposed = DeconstructValue<_TextareaExposed>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { DeconstructValue, FormComponentProps } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 绑定值类型 */
|
|
4
|
+
export type TimePickerDataType = 'date' | 'timestamp' | 'string'
|
|
5
|
+
|
|
6
|
+
/** time-picker组件属性(与 @veltra/desktop UTimePicker 对齐) */
|
|
7
|
+
export interface TimePickerProps extends FormComponentProps {
|
|
8
|
+
modelValue?: string | number | Date
|
|
9
|
+
/** 占位 */
|
|
10
|
+
placeholder?: string
|
|
11
|
+
/** 时间格式化 */
|
|
12
|
+
format?: string
|
|
13
|
+
/** 时间值格式化, 当没有指定时默认使用format属性,仅当值和显示的内容不一致时才需要使用到该属性 */
|
|
14
|
+
valueFormat?: string
|
|
15
|
+
/**
|
|
16
|
+
* 绑定值的类型,默认为字符串。
|
|
17
|
+
* 当 dataType 没有指定为字符串时,valueFormat 属性不生效
|
|
18
|
+
*/
|
|
19
|
+
dataType?: TimePickerDataType
|
|
20
|
+
/** 禁用的小时 */
|
|
21
|
+
disabledHours?: () => number[]
|
|
22
|
+
/** 禁用的分钟 */
|
|
23
|
+
disabledMinutes?: (hour: number) => number[]
|
|
24
|
+
/** 禁用的秒 */
|
|
25
|
+
disabledSeconds?: (hour: number, minute: number) => number[]
|
|
26
|
+
/** 是否显示清除按钮 */
|
|
27
|
+
clearable?: boolean
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** time-picker组件定义的事件 */
|
|
31
|
+
export interface TimePickerEmits {
|
|
32
|
+
(e: 'update:modelValue', value?: string | number | Date): void
|
|
33
|
+
(e: 'change', time?: Date): void
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** time-picker组件暴露的属性和方法(组件内部使用) */
|
|
37
|
+
export interface _TimePickerExposed {}
|
|
38
|
+
|
|
39
|
+
/** time-picker组件暴露的属性和方法(组件外部使用, 引用的值会被自动解构) */
|
|
40
|
+
export type TimePickerExposed = DeconstructValue<_TimePickerExposed>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** 时间线节点圆点颜色语义 */
|
|
2
|
+
export type TimelineItemColor = 'default' | 'primary' | 'success' | 'warning' | 'danger'
|
|
3
|
+
|
|
4
|
+
/** 时间线容器组件属性 */
|
|
5
|
+
export interface TimelineProps {}
|
|
6
|
+
|
|
7
|
+
/** 时间线节点属性 */
|
|
8
|
+
export interface TimelineItemProps {
|
|
9
|
+
/** 节点圆点颜色语义,默认 'default'(中性色圆点) */
|
|
10
|
+
color?: TimelineItemColor
|
|
11
|
+
/** 节点时间戳文本 */
|
|
12
|
+
timestamp?: string
|
|
13
|
+
/** 时间戳位置:top 内容上方 / bottom 内容下方,默认 'bottom' */
|
|
14
|
+
timestampPlacement?: 'top' | 'bottom'
|
|
15
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { FormComponentProps } from '@veltra/utils'
|
|
2
|
+
|
|
3
|
+
/** 上传文件项(url 可为本地 blob 地址或已上传地址) */
|
|
4
|
+
export interface UploaderFileItem {
|
|
5
|
+
/** 文件访问地址(本地预览为 blob: 地址;上传失败时为空) */
|
|
6
|
+
url: string
|
|
7
|
+
/** 文件名(用于类型识别与展示,回显历史数据时建议必传) */
|
|
8
|
+
name?: string
|
|
9
|
+
/** 文件大小(字节) */
|
|
10
|
+
size?: number
|
|
11
|
+
/** 上传状态:传入 upload 时未完成前为 uploading,失败为 failed */
|
|
12
|
+
status?: 'uploading' | 'done' | 'failed'
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** 上传组件属性(报销填报场景:图片 / word / excel / pdf) */
|
|
16
|
+
export interface UploaderProps extends FormComponentProps {
|
|
17
|
+
/** 文件列表(v-model) */
|
|
18
|
+
modelValue?: UploaderFileItem[]
|
|
19
|
+
/** 接受的文件类型,透传原生 input accept */
|
|
20
|
+
accept?: string
|
|
21
|
+
/** 是否多选 */
|
|
22
|
+
multiple?: boolean
|
|
23
|
+
/** 最大文件数量,超出后隐藏上传入口 */
|
|
24
|
+
maxCount?: number
|
|
25
|
+
/** 单文件大小上限(字节),超出触发 oversize 并丢弃 */
|
|
26
|
+
maxSize?: number
|
|
27
|
+
/**
|
|
28
|
+
* 是否显示删除按钮;传函数可按文件控制(返回 false 隐藏该文件的删除按钮,如补传模式仅允许删补传附件)。
|
|
29
|
+
* 注意联合类型须函数成员在前,否则 defineProps 宏推导运行时类型时会丢失 Function
|
|
30
|
+
*/
|
|
31
|
+
deletable?: ((file: UploaderFileItem, index: number) => boolean) | boolean
|
|
32
|
+
/** 点击图片是否打开内置大图预览;文档类型始终只派发 click-file */
|
|
33
|
+
preview?: boolean
|
|
34
|
+
/** 自定义上传,返回文件地址;不传则本地 blob 地址直显 */
|
|
35
|
+
upload?: (file: File) => Promise<string>
|
|
36
|
+
/** 读取文件前校验,返回 false(或 resolve false)阻止添加 */
|
|
37
|
+
beforeRead?: (file: File) => boolean | Promise<boolean>
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** 上传组件定义的事件 */
|
|
41
|
+
export interface UploaderEmits {
|
|
42
|
+
(e: 'update:modelValue', files: UploaderFileItem[]): void
|
|
43
|
+
(e: 'change', files: UploaderFileItem[]): void
|
|
44
|
+
(e: 'oversize', files: File[]): void
|
|
45
|
+
(e: 'delete', file: UploaderFileItem, index: number): void
|
|
46
|
+
(e: 'click-file', file: UploaderFileItem, index: number): void
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** 上传组件暴露的对象 */
|
|
50
|
+
export interface UploaderExposed {}
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
$ tsc -p tsconfig.json --noEmit
|
package/tsconfig.json
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "@cat-kit/tsconfig/tsconfig.web.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"composite": true,
|
|
5
|
-
"declaration": true,
|
|
6
|
-
"rootDir": "./src",
|
|
7
|
-
"outDir": "./dist",
|
|
8
|
-
"skipDefaultLibCheck": true
|
|
9
|
-
},
|
|
10
|
-
"include": ["src/**/*.ts"],
|
|
11
|
-
"exclude": ["node_modules"]
|
|
12
|
-
}
|