@wyfex/ivue 0.19.1 → 0.19.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.
Files changed (39) hide show
  1. package/dist/index.es.js +12 -12
  2. package/dist/index.umd.cjs +12 -12
  3. package/dist/ivue.css +1 -1
  4. package/dist/types/UseCrudTable/components/ActionBar.vue.d.ts +20 -0
  5. package/dist/types/UseCrudTable/hook.d.ts +18 -0
  6. package/dist/types/UseCrudTable/index.vue.d.ts +1 -0
  7. package/dist/types/UseCrudTable/types.d.ts +16 -10
  8. package/dist/types/UseElCheckbox/index.vue.d.ts +1 -1
  9. package/dist/types/UseElCheckbox/types.d.ts +2 -2
  10. package/dist/types/UseElConfigProvider/index.vue.d.ts +0 -9
  11. package/dist/types/UseElConfigProvider/props.d.ts +0 -5
  12. package/dist/types/UseElConfigProvider/types.d.ts +2 -1
  13. package/dist/types/UseElDialog/index.vue.d.ts +1 -1
  14. package/dist/types/UseElDrawer/index.vue.d.ts +2 -2
  15. package/dist/types/UseElForm/components/QueryForm.vue.d.ts +0 -2
  16. package/dist/types/UseElForm/components/RowForm.vue.d.ts +0 -2
  17. package/dist/types/UseElForm/components/controls/Select.vue.d.ts +2 -4
  18. package/dist/types/UseElForm/types.d.ts +21 -21
  19. package/dist/types/UseElInput/index.vue.d.ts +1 -1
  20. package/dist/types/UseElSelect/hook.d.ts +1 -0
  21. package/dist/types/UseElSelect/index.vue.d.ts +1 -1
  22. package/dist/types/UseElTable/defaultExtConfig.d.ts +1 -0
  23. package/dist/types/UseElTable/index.vue.d.ts +18 -0
  24. package/dist/types/UseElTable/props.d.ts +8 -0
  25. package/dist/types/UseElTable/types.d.ts +1 -0
  26. package/dist/types/UseElUpload/index.vue.d.ts +3 -3
  27. package/dist/types/UseElUpload/props.d.ts +2 -1
  28. package/dist/types/UseRender/index.vue.d.ts +1 -1
  29. package/package.json +5 -5
  30. package/src/components/UseCrudTable/props.ts +3 -3
  31. package/src/components/UseCrudTable/types.ts +31 -11
  32. package/src/components/UseElCheckbox/types.ts +2 -2
  33. package/src/components/UseElConfigProvider/props.ts +1 -9
  34. package/src/components/UseElConfigProvider/types.ts +5 -1
  35. package/src/components/UseElForm/types.ts +166 -54
  36. package/src/components/UseElTable/defaultExtConfig.ts +1 -1
  37. package/src/components/UseElTable/props.ts +16 -2
  38. package/src/components/UseElTable/types.ts +8 -1
  39. package/src/components/UseElUpload/props.ts +2 -1
@@ -1,4 +1,4 @@
1
- import type { ExtractPropTypes } from 'vue'
1
+ import type { Component, ExtractPropTypes } from 'vue'
2
2
  import componentProps from './props'
3
3
  import type { FormColumn } from '../UseElForm/types'
4
4
  import type { TableColumn } from '../UseElTable/types'
@@ -9,10 +9,12 @@ import type { TableColumn } from '../UseElTable/types'
9
9
  export type Props = ExtractPropTypes<typeof componentProps>
10
10
 
11
11
  /**
12
- * emits接口
12
+ * emits类型
13
13
  */
14
- export interface Emits {
15
- // dictKeys事件
14
+ export type Emits = {
15
+ /**
16
+ * dictKeys事件
17
+ */
16
18
  (e: 'onDictKeys', value?: string[]): void
17
19
  }
18
20
 
@@ -34,18 +36,36 @@ export interface Configs extends BaseConfigs {
34
36
  * 分割线配置项接口
35
37
  */
36
38
  export interface Divider {
37
- show: boolean
38
- borderStyle: 'none' | 'solid' | 'hidden' | 'dashed'
39
+ show?: boolean
40
+ borderStyle?: 'none' | 'solid' | 'hidden' | 'dashed'
41
+ }
42
+
43
+ /**
44
+ * 操作栏配置
45
+ */
46
+ export interface ActionBar {
47
+ margin?: string
48
+ showControlFormDisplayBtn?: boolean
49
+ controlFormDisplayBtnWithOpenedIcon?: Component
50
+ controlFormDisplayBtnWithClosedIcon?: Component
51
+ reverse?: boolean
52
+ divider?: Divider
39
53
  }
40
54
 
41
55
  /**
42
56
  * extConfig接口
43
57
  */
44
58
  export interface ExtConfig {
45
- actionBar: {
46
- margin: string
47
- showControlFormDisplayBtn: boolean
48
- reverse: boolean
49
- divider: Divider
59
+ /**
60
+ * 操作栏配置项
61
+ */
62
+ actionBar?: ActionBar
63
+ /**
64
+ * 弹窗配置项
65
+ * type:弹窗类型 支持Drawer和Dialog
66
+ * 其他配置项由于组件内部已进行v-bind透传,不不在此重复声明接口,详见UseElDrawer和UseElDialog组件types
67
+ */
68
+ modal?: {
69
+ type?: 'Drawer' | 'Dialog'
50
70
  }
51
71
  }
@@ -7,9 +7,9 @@ import componentProps from './props'
7
7
  export type Props = ExtractPropTypes<typeof componentProps>
8
8
 
9
9
  /**
10
- * emits接口
10
+ * emits类型
11
11
  */
12
- export interface Emits {
12
+ export type Emits = {
13
13
  // 更新value值
14
14
  (e: 'update:modelValue', value: string | number | (string | number)[]): void
15
15
  }
@@ -1,5 +1,4 @@
1
1
  import type { PropType } from 'vue'
2
- import type { UploadConfig } from '@/types'
3
2
  import type { ExtConfig } from './types'
4
3
 
5
4
  /**
@@ -15,14 +14,7 @@ export default {
15
14
  validator: (val: string) => ['', 'zh', 'en'].includes(val)
16
15
  },
17
16
  /**
18
- * 上传配置 此处配置仅作用于UseElUpload组件
19
- */
20
- uploadConfig: {
21
- type: Object as PropType<UploadConfig>,
22
- default: () => ({})
23
- },
24
- /**
25
- * 扩展配置 如【字典属性、调试】等
17
+ * 扩展配置 如【字典属性、表格、上传】等
26
18
  */
27
19
  extConfig: {
28
20
  type: Object as PropType<ExtConfig>,
@@ -1,6 +1,6 @@
1
1
  import type { ExtractPropTypes } from 'vue'
2
2
  import componentProps from './props'
3
- import type { DictProps } from '@/types'
3
+ import type { DictProps, UploadConfig } from '@/types'
4
4
 
5
5
  /**
6
6
  * props类型
@@ -28,4 +28,8 @@ export interface ExtConfig {
28
28
  pageBottomOffset?: number
29
29
  modalBottomOffset?: number
30
30
  }
31
+ /**
32
+ * 上传配置项
33
+ */
34
+ upload?: UploadConfig
31
35
  }
@@ -8,13 +8,13 @@ import type { RenderConfig, UseDict } from '@/types'
8
8
  export type Props = ExtractPropTypes<typeof componentProps>
9
9
 
10
10
  /**
11
- * emits接口
11
+ * emits类型
12
12
  */
13
- export interface Emits {
14
- // dictKeys事件
13
+ export type Emits = {
14
+ /**
15
+ * dictKeys事件
16
+ */
15
17
  (e: 'onDictKeys', value?: string[]): void
16
- // 更新formModel
17
- (e: 'update:formModel', value: Record<string, any>): void
18
18
  }
19
19
 
20
20
  /**
@@ -55,7 +55,7 @@ export interface QueryConfig {
55
55
  * inputConfig接口
56
56
  */
57
57
  export interface InputConfig {
58
- useRender: boolean | RenderConfig
58
+ useRender?: boolean | RenderConfig
59
59
  type?:
60
60
  | 'text'
61
61
  | 'textarea'
@@ -76,77 +76,150 @@ export interface InputConfig {
76
76
  resize?: string
77
77
  showPassword?: boolean
78
78
  placeholder?: string
79
- width?: string // 默认el-input的width为100% 可设置width为''或具体宽度值,为''则使用默认的el-input宽度
80
- autoFocus?: boolean // true则对el-input使用v-focus聚焦指令
81
- prefixContent?: string | object // el-input头部插槽内容
82
- suffixContent?: string | object // el-input尾部插槽内容
83
- prependContent?: string | object // el-input前置插槽内容
84
- appendContent?: string | object // el-input后置插槽内容
85
- unit?: string | object // 在el-input右外部显示单位
86
- onClear?: (...args: any) => any // el-input的clear事件
87
- inputEvent?: Function // el-input的input事件
88
- onKeyupEnter?: (...args: any) => any // el-input的keyup.enter事件
79
+ /**
80
+ * 默认el-input的width为100% 可设置width''或具体宽度值,为''则使用默认的el-input宽度
81
+ */
82
+ width?: string
83
+ /**
84
+ * 为true则对el-input使用v-focus聚焦指令
85
+ */
86
+ autoFocus?: boolean
87
+ /**
88
+ * el-input头部插槽内容
89
+ */
90
+ prefixContent?: string | object
91
+ /**
92
+ * el-input尾部插槽内容
93
+ */
94
+ suffixContent?: string | object
95
+ /**
96
+ * el-input前置插槽内容
97
+ */
98
+ prependContent?: string | object
99
+ /**
100
+ * el-input后置插槽内容
101
+ */
102
+ appendContent?: string | object
103
+ /**
104
+ * 在el-input右外部显示单位
105
+ */
106
+ unit?: string | object
107
+ /**
108
+ * el-input的clear事件
109
+ */
110
+ onClear?: Function
111
+ /**
112
+ * el-input的input事件
113
+ */
114
+ inputEvent?: Function
115
+ /**
116
+ * el-input的keyup.enter事件
117
+ */
118
+ onKeyupEnter?: Function
89
119
  }
90
120
 
91
121
  /**
92
122
  * inputNumberConfig接口
93
123
  */
94
124
  export interface InputNumberConfig {
95
- useRender: boolean | RenderConfig
125
+ useRender?: boolean | RenderConfig
96
126
  min?: number
97
127
  max?: number
98
128
  step?: number
99
129
  precision?: number
100
130
  placeholder?: string
101
131
  disabledScientific?: boolean
102
- unit?: string | object // 在el-input-number右外部显示单位
132
+ /**
133
+ * 在el-input-number右外部显示单位
134
+ */
135
+ unit?: string | object
103
136
  }
104
137
 
105
138
  /**
106
139
  * radioConfig接口
107
140
  */
108
141
  export interface RadioConfig {
109
- useRender: boolean | RenderConfig
110
- options?: Array<{ label: string; value: string | number }> // el-radio的选项集
111
- props?: { value: string; label?: string } // el-radio的props配置项
112
- reverse?: boolean // 是否反转单选框和标签的位置
113
- onChange?: (...args: any) => any // el-radio的change事件
142
+ useRender?: boolean | RenderConfig
143
+ /**
144
+ * el-radio的选项集
145
+ */
146
+ options?: Array<{ label: string; value: string | number }>
147
+ /**
148
+ * el-radio的props配置项
149
+ */
150
+ props?: { value: string; label?: string }
151
+ /**
152
+ * 是否反转单选框和标签的位置
153
+ */
154
+ reverse?: boolean
155
+ /**
156
+ * el-radio的change事件
157
+ */
158
+ onChange?: Function
114
159
  }
115
160
 
116
161
  /**
117
162
  * selectConfig接口
118
163
  */
119
164
  export interface SelectConfig {
120
- useRender: boolean | RenderConfig
165
+ useRender?: boolean | RenderConfig
121
166
  multiple?: boolean
122
167
  clearable?: boolean
168
+ filterable?: boolean
123
169
  placeholder?: string
124
170
  options?: Array<{ label: string; value: string | number }>
125
171
  props?: { value: string; label?: string }
126
- useV2: boolean //是否使用v2版本
127
- reverse?: boolean // 是否反转
128
- toJoin?: boolean // 是否将值为数组转为以逗号分隔的字符串
129
- width?: string // 默认el-select的width为100% 可设置width为''或具体宽度值,为''则使用默认的el-select宽度
130
- onChange?: (...args: any) => any // el-select的change事件
172
+ /**
173
+ * 是否使用v2版本
174
+ */
175
+ useV2: boolean
176
+ /**
177
+ * 是否反转
178
+ */
179
+ reverse?: boolean
180
+ /**
181
+ * 是否将值为数组转为以逗号分隔的字符串
182
+ */
183
+ toJoin?: boolean
184
+ /**
185
+ * 默认el-select的width为100% 可设置width为''或具体宽度值,为''则使用默认的el-select宽度
186
+ */
187
+ width?: string
188
+ /**
189
+ * el-select的change事件
190
+ */
191
+ onChange?: Function
131
192
  }
132
193
 
133
194
  /**
134
195
  * cascaderConfig接口
135
196
  */
136
197
  export interface CascaderConfig {
137
- useRender: boolean | RenderConfig
198
+ useRender?: boolean | RenderConfig
138
199
  clearable?: boolean
139
- options?: Array<{ label: string; value: string | number }> //el-cascader的选项集
140
- props?: { value: string; label?: string } //el-cascader的props配置项
141
- width?: string //默认el-cascader的width为100% 可设置width为''或具体宽度值,为''则使用默认的el-cascader宽度
142
- onChange?: (...args: any) => any //el-select的change事件
200
+ /**
201
+ * el-cascader的选项集
202
+ */
203
+ options?: Array<{ label: string; value: string | number }>
204
+ /**
205
+ * el-cascader的props配置项
206
+ */
207
+ props?: { value: string; label?: string }
208
+ /**
209
+ * 默认el-cascader的width为100% 可设置width为''或具体宽度值,为''则使用默认的el-cascader宽度
210
+ */
211
+ width?: string
212
+ /**
213
+ * el-select的change事件
214
+ */
215
+ onChange?: Function
143
216
  }
144
217
 
145
218
  /**
146
219
  * datePickerConfig接口
147
220
  */
148
221
  export interface DatePickerConfig {
149
- useRender: boolean | RenderConfig
222
+ useRender?: boolean | RenderConfig
150
223
  type?:
151
224
  | 'year'
152
225
  | 'years'
@@ -168,17 +241,29 @@ export interface DatePickerConfig {
168
241
  startPlaceholder?: string
169
242
  endPlaceholder?: string
170
243
  rangeSeparator?: string
171
- width?: string // 默认el-date-picker的width为100% 可设置width为''或具体宽度值,为''则使用默认的el-date-picker宽度
172
- onCalendarChange?: Function // el-date-picker的calendar-change事件
173
- onClear?: Function // el-date-picker的clear事件
174
- onChange?: Function // el-date-picker的change事件
244
+ /**
245
+ * 默认el-date-picker的width为100% 可设置width为''或具体宽度值,为''则使用默认的el-date-picker宽度
246
+ */
247
+ width?: string
248
+ /**
249
+ * el-date-picker的calendar-change事件
250
+ */
251
+ onCalendarChange?: Function
252
+ /**
253
+ * el-date-picker的clear事件
254
+ */
255
+ onClear?: Function
256
+ /**
257
+ * el-date-picker的change事件
258
+ */
259
+ onChange?: Function
175
260
  }
176
261
 
177
262
  /**
178
263
  * timePickerConfig接口
179
264
  */
180
265
  export interface TimePickerConfig {
181
- useRender: boolean | RenderConfig
266
+ useRender?: boolean | RenderConfig
182
267
  startPlaceholder?: string
183
268
  endPlaceholder?: string
184
269
  rangeSeparator?: string
@@ -186,38 +271,56 @@ export interface TimePickerConfig {
186
271
  editable?: boolean
187
272
  format?: string
188
273
  valueFormat?: string
189
- onChange?: (...args: any) => any //el-date-picker的change事件
274
+ /**
275
+ * el-date-picker的change事件
276
+ */
277
+ onChange?: Function
190
278
  }
191
279
 
192
280
  /**
193
281
  * timeSelectConfig接口
194
282
  */
195
283
  export interface TimeSelectConfig {
196
- useRender: boolean | RenderConfig
197
- startProp: string // 时间选择范围开始时间在formModel中的属性名
198
- endProp: string // 时间选择范围结束时间在formModel中的属性名
284
+ useRender?: boolean | RenderConfig
285
+ /**
286
+ * 时间选择范围开始时间在formModel中的属性名
287
+ */
288
+ startProp: string
289
+ /**
290
+ * 时间选择范围结束时间在formModel中的属性名
291
+ */
292
+ endProp: string
199
293
  }
200
294
 
201
295
  /**
202
296
  * switchConfig接口
203
297
  */
204
298
  export interface SwitchConfig {
205
- useRender: boolean | RenderConfig
299
+ useRender?: boolean | RenderConfig
206
300
  activeValue?: string | number | boolean
207
301
  inactiveValue?: string | number | boolean
208
- onChange?: (...args: any) => any // el-switch的change事件
302
+ /**
303
+ * el-switch的change事件
304
+ */
305
+ onChange?: Function
209
306
  }
210
307
 
211
308
  /**
212
309
  * inputRangeConfig接口
213
310
  */
214
311
  export interface InputRangeConfig {
215
- startProp: string // 输入范围开始值在formModel中的属性名
216
- endProp: string // 输入范围结束值在formModel中的属性名
312
+ /**
313
+ * 输入范围开始值在formModel中的属性名
314
+ */
315
+ startProp: string
316
+ /**
317
+ * 输入范围结束值在formModel中的属性名
318
+ */
319
+ endProp: string
217
320
  startPlaceholder?: string
218
321
  endPlaceholder?: string
219
322
  rangeSeparator?: string
220
- onClear?: (...args: any) => any
323
+ onClear?: Function
221
324
  }
222
325
 
223
326
  /**
@@ -226,7 +329,10 @@ export interface InputRangeConfig {
226
329
  export interface TreeSelectConfig {
227
330
  useRender?: boolean | RenderConfig
228
331
  data: Record<string, unknown>[]
229
- reverse?: boolean // 是否反转
332
+ /**
333
+ * 是否反转
334
+ */
335
+ reverse?: boolean
230
336
  width?: string
231
337
  placeholder?: string
232
338
  props?: { value: string; label?: string }
@@ -237,11 +343,17 @@ export interface TreeSelectConfig {
237
343
  }
238
344
 
239
345
  export interface IRequired {
240
- // 是否必填
346
+ /**
347
+ * 是否必填
348
+ */
241
349
  isRequired?: boolean
242
- // 内置校验器
350
+ /**
351
+ * 内置校验器
352
+ */
243
353
  validator: 'mobile' | 'nonNegativeDecimal'
244
- // 参数
354
+ /**
355
+ * 参数
356
+ */
245
357
  parmas?: any
246
358
  }
247
359
 
@@ -272,7 +384,7 @@ export interface FormColumn {
272
384
  * 如为IRequired则使用内置必填校验
273
385
  * 可传对象数组进行自定义校验
274
386
  */
275
- required: boolean | IRequired
387
+ required?: boolean | IRequired
276
388
  /**
277
389
  * 必填项错误消息
278
390
  * 如不指定则默认为“请输入xxx”或“请选择xxx”
@@ -12,7 +12,7 @@ export default {
12
12
  },
13
13
  mode: { type: 'PAGE' },
14
14
  selection: { width: 40, enableRowClick: false, align: 'center', fixed: true },
15
- index: { width: 55, align: 'center', fixed: true },
15
+ index: { width: 55, align: 'center', fixed: true, isContinuous: true },
16
16
  expand: { show: false },
17
17
  operation: { width: 128, fixed: 'right' },
18
18
  pagination: {
@@ -8,8 +8,8 @@ import type { DictMap, DictProps } from '@/types'
8
8
  export default {
9
9
  /**
10
10
  * 表格列 必传
11
- * 注意:常规场景下列配置为静态值无需响应式;但本组件提供了 minWidth 自动计算功能并会修改列对象,
12
- * 因此 tableColumns 必须用 ref/reactive 包裹,否则视图无法同步更新宽度。
11
+ * 注意:常规场景下列配置为静态值无需响应式;但本组件提供了 minWidth 自动计算能力并会修改列对象,
12
+ * 因此 tableColumns 必须用 ref/reactive 包裹,否则视图无法同步更新最小宽度。
13
13
  */
14
14
  tableColumns: {
15
15
  type: Array as PropType<TableColumn[]>,
@@ -51,6 +51,20 @@ export default {
51
51
  type: Object as PropType<DictProps>,
52
52
  default: () => ({})
53
53
  },
54
+ /**
55
+ * 当前页数
56
+ */
57
+ currentPage: {
58
+ type: Number,
59
+ default: 1
60
+ },
61
+ /**
62
+ * 当前页码
63
+ */
64
+ pageSize: {
65
+ type: Number,
66
+ default: 10
67
+ },
54
68
  /**
55
69
  * 当内容过长被隐藏时是否显示tooltip 默认是
56
70
  */
@@ -256,9 +256,16 @@ export interface ExtConfig {
256
256
  /**
257
257
  * 序号列配置项
258
258
  * label:序号列表头文本 不显式设置则不显示序号列
259
+ * isContinuous:是否连续的,默认是,即第二页的序号根据第一条最后一个序号进行延续
259
260
  * width、align、fixed同选择器配置项
260
261
  */
261
- index?: { label?: string; width?: number; align?: string; fixed?: boolean }
262
+ index?: {
263
+ label?: string
264
+ isContinuous?: boolean
265
+ width?: number
266
+ align?: string
267
+ fixed?: boolean
268
+ }
262
269
  /**
263
270
  * 展开列配置项
264
271
  * show:是否显示展开列
@@ -1,4 +1,5 @@
1
1
  import type { PropType } from 'vue'
2
+ import type { UploadConfig } from '@/types'
2
3
 
3
4
  /**
4
5
  * 组件props
@@ -25,7 +26,7 @@ export default {
25
26
  * data:上传时附带的额外参数,eg:{ referer: window.location.href }
26
27
  */
27
28
  uploadConfig: {
28
- type: Object as PropType<Record<string, unknown>>,
29
+ type: Object as PropType<UploadConfig>,
29
30
  default: () => ({
30
31
  // action: '/api/file/upload',
31
32
  // headers: { Authorization: `Bearer ${token}` },