@antsoo-lib/core 2.0.5 → 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.
Files changed (43) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/core.css +1 -1
  3. package/dist/index.cjs +1 -1
  4. package/dist/index.js +6 -5
  5. package/dist/types/BaseSearch/index.d.ts +1 -1
  6. package/dist/types/BaseTable/index.d.ts +4 -480
  7. package/dist/types/Form/CoreForm.d.ts +82 -0
  8. package/dist/types/SSelectPage/index.d.ts +102 -0
  9. package/package.json +5 -5
  10. package/src/BaseSearch/index.vue +371 -371
  11. package/src/BaseTable/index.vue +910 -910
  12. package/src/Form/CoreForm.vue +782 -782
  13. package/src/Form/types.ts +86 -86
  14. package/src/SSelectPage/index.vue +607 -607
  15. package/src/index.ts +17 -17
  16. package/src/render/AreaCascader.tsx +64 -64
  17. package/src/render/AutoComplete.tsx +101 -101
  18. package/src/render/Button.tsx +62 -62
  19. package/src/render/Cascader.tsx +45 -45
  20. package/src/render/Checkbox.tsx +65 -65
  21. package/src/render/CheckboxGroup.tsx +57 -57
  22. package/src/render/Custom.tsx +19 -19
  23. package/src/render/DatePicker.tsx +83 -83
  24. package/src/render/Input.tsx +140 -140
  25. package/src/render/InputGroup.tsx +115 -115
  26. package/src/render/InputNumber.tsx +205 -205
  27. package/src/render/InputPassword.tsx +81 -81
  28. package/src/render/InputRange.tsx +154 -154
  29. package/src/render/RadioGroup.tsx +63 -63
  30. package/src/render/Select.tsx +96 -96
  31. package/src/render/SselectPage.tsx +107 -107
  32. package/src/render/Switch.tsx +60 -60
  33. package/src/render/Tree.tsx +136 -136
  34. package/src/render/TreeSelect.tsx +81 -81
  35. package/src/render/Upload.tsx +91 -91
  36. package/src/render/helper.tsx +221 -221
  37. package/src/render/index.ts +108 -108
  38. package/src/render/registry.ts +20 -20
  39. package/src/render/state.ts +37 -37
  40. package/src/render/types.ts +567 -567
  41. package/src/utils/attrMapping.ts +106 -106
  42. package/vite.config.ts +61 -61
  43. 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
+ }