@antsoo-lib/core 3.0.0 → 3.0.1
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 +6 -0
- package/dist/core.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +6 -5
- package/dist/types/BaseSearch/index.d.ts +1 -1
- package/dist/types/BaseTable/index.d.ts +5 -475
- package/dist/types/Form/CoreForm.d.ts +82 -0
- package/dist/types/SSelectPage/index.d.ts +102 -0
- package/package.json +3 -3
- package/src/BaseSearch/index.vue +371 -371
- package/src/BaseTable/index.vue +910 -910
- package/src/Form/CoreForm.vue +782 -782
- package/src/Form/types.ts +86 -86
- package/src/SSelectPage/index.vue +607 -607
- package/src/index.ts +17 -17
- package/src/render/AreaCascader.tsx +64 -64
- package/src/render/AutoComplete.tsx +101 -101
- package/src/render/Button.tsx +62 -62
- package/src/render/Cascader.tsx +45 -45
- package/src/render/Checkbox.tsx +65 -65
- package/src/render/CheckboxGroup.tsx +57 -57
- package/src/render/Custom.tsx +19 -19
- package/src/render/DatePicker.tsx +83 -83
- package/src/render/Input.tsx +140 -140
- package/src/render/InputGroup.tsx +115 -115
- package/src/render/InputNumber.tsx +205 -205
- package/src/render/InputPassword.tsx +81 -81
- package/src/render/InputRange.tsx +154 -154
- package/src/render/RadioGroup.tsx +63 -63
- package/src/render/Select.tsx +96 -96
- package/src/render/SselectPage.tsx +107 -107
- package/src/render/Switch.tsx +60 -60
- package/src/render/Tree.tsx +136 -136
- package/src/render/TreeSelect.tsx +81 -81
- package/src/render/Upload.tsx +91 -91
- package/src/render/helper.tsx +221 -221
- package/src/render/index.ts +108 -108
- package/src/render/registry.ts +20 -20
- package/src/render/state.ts +37 -37
- package/src/render/types.ts +567 -567
- package/src/utils/attrMapping.ts +106 -106
- package/vite.config.ts +61 -61
- package/.turbo/turbo-build.log +0 -40
package/src/Form/types.ts
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
import type { AnyObject } from '@antsoo-lib/shared'
|
|
2
|
-
|
|
3
|
-
import type { InjectionKey } from 'vue'
|
|
4
|
-
|
|
5
|
-
// 通用代码服务接口
|
|
6
|
-
export interface CommonCodeItem {
|
|
7
|
-
name: string
|
|
8
|
-
code: string | number
|
|
9
|
-
[key: string]: any
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface CommonCodeService {
|
|
13
|
-
getCodesByType: (type: string) => CommonCodeItem[]
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export const COMMON_CODE_SERVICE_KEY: InjectionKey<CommonCodeService> = Symbol('CommonCodeService')
|
|
17
|
-
|
|
18
|
-
// 校验规则类型定义
|
|
19
|
-
export interface ValidationRule {
|
|
20
|
-
required?: boolean
|
|
21
|
-
message?: string
|
|
22
|
-
pattern?: RegExp
|
|
23
|
-
min?: number
|
|
24
|
-
max?: number
|
|
25
|
-
len?: number
|
|
26
|
-
type?:
|
|
27
|
-
| 'string'
|
|
28
|
-
| 'number'
|
|
29
|
-
| 'boolean'
|
|
30
|
-
| 'method'
|
|
31
|
-
| 'regexp'
|
|
32
|
-
| 'integer'
|
|
33
|
-
| 'float'
|
|
34
|
-
| 'array'
|
|
35
|
-
| 'object'
|
|
36
|
-
| 'enum'
|
|
37
|
-
| 'date'
|
|
38
|
-
| 'url'
|
|
39
|
-
| 'hex'
|
|
40
|
-
| 'email'
|
|
41
|
-
validator?: (rule: any, value: any) => Promise<void> | void
|
|
42
|
-
trigger?: 'change' | 'blur' | ['change', 'blur']
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// 字段接口定义
|
|
46
|
-
export interface FormField {
|
|
47
|
-
key?: string // 字段唯一标识(可选)
|
|
48
|
-
// 拆分/映射字段:
|
|
49
|
-
// 1) 通用:当组件返回值为数组时,提供 string[],按下标对应需要写入的字段
|
|
50
|
-
// 2) 地区选择器(areaCascader):支持 { ids: string[]; names: string[] } 形式,分别映射地区 id 与名称
|
|
51
|
-
attr?:
|
|
52
|
-
| string[]
|
|
53
|
-
| {
|
|
54
|
-
ids?: string[]
|
|
55
|
-
names?: string[]
|
|
56
|
-
[key: string]: any
|
|
57
|
-
}
|
|
58
|
-
type?: string // 组件类型
|
|
59
|
-
name?: string // 显示标签
|
|
60
|
-
span?: number // 栅格占位
|
|
61
|
-
hidden?: boolean // 是否隐藏
|
|
62
|
-
disabled?: boolean | ((formValues: AnyObject, toolbarState: any, field: FormField) => boolean) // 是否禁用
|
|
63
|
-
labelWidth?: number // 标签宽度
|
|
64
|
-
labelAlign?: 'left' | 'right' // 标签对齐方式
|
|
65
|
-
props?: AnyObject // 组件属性
|
|
66
|
-
events?: Record<string, (...args: any[]) => any> // 事件处理
|
|
67
|
-
beforeCreate?: boolean | ((field: FormField) => boolean)
|
|
68
|
-
required?: boolean // 是否必填
|
|
69
|
-
rules?: ValidationRule[] // 校验规则
|
|
70
|
-
textarea?: boolean // 是否为文本域
|
|
71
|
-
commonCode?: string // 数据字典类型
|
|
72
|
-
helpText?: string | false // 帮助提示
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface BaseFormProps {
|
|
76
|
-
value: AnyObject
|
|
77
|
-
fields?: FormField[]
|
|
78
|
-
disabled?: boolean
|
|
79
|
-
labelWidth?: number
|
|
80
|
-
labelPosition?: 'horizontal' | 'vertical'
|
|
81
|
-
labelAlign?: 'left' | 'right'
|
|
82
|
-
inlineActions?: boolean
|
|
83
|
-
actionsSpan?: number
|
|
84
|
-
colon?: boolean
|
|
85
|
-
gutter?: number | [number, number]
|
|
86
|
-
}
|
|
1
|
+
import type { AnyObject } from '@antsoo-lib/shared'
|
|
2
|
+
|
|
3
|
+
import type { InjectionKey } from 'vue'
|
|
4
|
+
|
|
5
|
+
// 通用代码服务接口
|
|
6
|
+
export interface CommonCodeItem {
|
|
7
|
+
name: string
|
|
8
|
+
code: string | number
|
|
9
|
+
[key: string]: any
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface CommonCodeService {
|
|
13
|
+
getCodesByType: (type: string) => CommonCodeItem[]
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const COMMON_CODE_SERVICE_KEY: InjectionKey<CommonCodeService> = Symbol('CommonCodeService')
|
|
17
|
+
|
|
18
|
+
// 校验规则类型定义
|
|
19
|
+
export interface ValidationRule {
|
|
20
|
+
required?: boolean
|
|
21
|
+
message?: string
|
|
22
|
+
pattern?: RegExp
|
|
23
|
+
min?: number
|
|
24
|
+
max?: number
|
|
25
|
+
len?: number
|
|
26
|
+
type?:
|
|
27
|
+
| 'string'
|
|
28
|
+
| 'number'
|
|
29
|
+
| 'boolean'
|
|
30
|
+
| 'method'
|
|
31
|
+
| 'regexp'
|
|
32
|
+
| 'integer'
|
|
33
|
+
| 'float'
|
|
34
|
+
| 'array'
|
|
35
|
+
| 'object'
|
|
36
|
+
| 'enum'
|
|
37
|
+
| 'date'
|
|
38
|
+
| 'url'
|
|
39
|
+
| 'hex'
|
|
40
|
+
| 'email'
|
|
41
|
+
validator?: (rule: any, value: any) => Promise<void> | void
|
|
42
|
+
trigger?: 'change' | 'blur' | ['change', 'blur']
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// 字段接口定义
|
|
46
|
+
export interface FormField {
|
|
47
|
+
key?: string // 字段唯一标识(可选)
|
|
48
|
+
// 拆分/映射字段:
|
|
49
|
+
// 1) 通用:当组件返回值为数组时,提供 string[],按下标对应需要写入的字段
|
|
50
|
+
// 2) 地区选择器(areaCascader):支持 { ids: string[]; names: string[] } 形式,分别映射地区 id 与名称
|
|
51
|
+
attr?:
|
|
52
|
+
| string[]
|
|
53
|
+
| {
|
|
54
|
+
ids?: string[]
|
|
55
|
+
names?: string[]
|
|
56
|
+
[key: string]: any
|
|
57
|
+
}
|
|
58
|
+
type?: string // 组件类型
|
|
59
|
+
name?: string // 显示标签
|
|
60
|
+
span?: number // 栅格占位
|
|
61
|
+
hidden?: boolean // 是否隐藏
|
|
62
|
+
disabled?: boolean | ((formValues: AnyObject, toolbarState: any, field: FormField) => boolean) // 是否禁用
|
|
63
|
+
labelWidth?: number // 标签宽度
|
|
64
|
+
labelAlign?: 'left' | 'right' // 标签对齐方式
|
|
65
|
+
props?: AnyObject // 组件属性
|
|
66
|
+
events?: Record<string, (...args: any[]) => any> // 事件处理
|
|
67
|
+
beforeCreate?: boolean | ((field: FormField) => boolean)
|
|
68
|
+
required?: boolean // 是否必填
|
|
69
|
+
rules?: ValidationRule[] // 校验规则
|
|
70
|
+
textarea?: boolean // 是否为文本域
|
|
71
|
+
commonCode?: string // 数据字典类型
|
|
72
|
+
helpText?: string | false // 帮助提示
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface BaseFormProps {
|
|
76
|
+
value: AnyObject
|
|
77
|
+
fields?: FormField[]
|
|
78
|
+
disabled?: boolean
|
|
79
|
+
labelWidth?: number
|
|
80
|
+
labelPosition?: 'horizontal' | 'vertical'
|
|
81
|
+
labelAlign?: 'left' | 'right'
|
|
82
|
+
inlineActions?: boolean
|
|
83
|
+
actionsSpan?: number
|
|
84
|
+
colon?: boolean
|
|
85
|
+
gutter?: number | [number, number]
|
|
86
|
+
}
|