vxe-pc-ui 4.14.26 → 4.14.28
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/dist/all.esm.js +318 -200
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/date-panel/src/date-panel.js +11 -10
- package/es/date-panel/style.css +4 -0
- package/es/date-panel/style.min.css +1 -1
- package/es/date-range-picker/src/date-range-picker.js +15 -0
- package/es/form/src/form-config-item.js +10 -6
- package/es/form/src/form.js +55 -15
- package/es/form/style.css +2 -2
- package/es/form/style.min.css +1 -1
- package/es/radio/style.css +2 -2
- package/es/radio/style.min.css +1 -1
- package/es/select/src/select.js +4 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-select/src/table-select.js +4 -1
- package/es/tree-select/src/tree-select.js +4 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/upload/src/upload.js +56 -6
- package/es/vxe-date-panel/style.css +4 -0
- package/es/vxe-date-panel/style.min.css +1 -1
- package/es/vxe-form/style.css +2 -2
- package/es/vxe-form/style.min.css +1 -1
- package/es/vxe-radio/style.css +2 -2
- package/es/vxe-radio/style.min.css +1 -1
- package/lib/date-panel/src/date-panel.js +46 -10
- package/lib/date-panel/src/date-panel.min.js +1 -1
- package/lib/date-panel/style/style.css +4 -0
- package/lib/date-panel/style/style.min.css +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +17 -0
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/form/src/form-config-item.js +11 -4
- package/lib/form/src/form-config-item.min.js +1 -1
- package/lib/form/src/form.js +69 -17
- package/lib/form/src/form.min.js +1 -1
- package/lib/form/style/style.css +2 -2
- package/lib/form/style/style.min.css +1 -1
- package/lib/index.umd.js +403 -220
- package/lib/index.umd.min.js +1 -1
- package/lib/radio/style/style.css +2 -2
- package/lib/radio/style/style.min.css +1 -1
- package/lib/select/src/select.js +4 -1
- package/lib/select/src/select.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table-select/src/table-select.js +4 -1
- package/lib/table-select/src/table-select.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +4 -1
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/upload/src/upload.js +72 -10
- package/lib/upload/src/upload.min.js +1 -1
- package/lib/vxe-date-panel/style/style.css +4 -0
- package/lib/vxe-date-panel/style/style.min.css +1 -1
- package/lib/vxe-form/style/style.css +2 -2
- package/lib/vxe-form/style/style.min.css +1 -1
- package/lib/vxe-radio/style/style.css +2 -2
- package/lib/vxe-radio/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/date-panel/src/date-panel.ts +11 -10
- package/packages/date-range-picker/src/date-range-picker.ts +17 -1
- package/packages/form/src/form-config-item.ts +12 -4
- package/packages/form/src/form.ts +58 -15
- package/packages/form/src/util.ts +1 -1
- package/packages/select/src/select.ts +4 -1
- package/packages/table-select/src/table-select.ts +4 -1
- package/packages/tree-select/src/tree-select.ts +4 -1
- package/packages/upload/src/upload.ts +66 -6
- package/styles/components/date-panel.scss +4 -0
- package/styles/components/form.scss +2 -2
- package/styles/components/radio.scss +2 -2
- package/types/components/date-panel.d.ts +7 -0
- package/types/components/form.d.ts +22 -3
- package/types/components/notice-bar.d.ts +4 -0
- package/types/components/upload.d.ts +37 -2
- /package/es/icon/{iconfont.1780292459831.ttf → iconfont.1780570418794.ttf} +0 -0
- /package/es/icon/{iconfont.1780292459831.woff → iconfont.1780570418794.woff} +0 -0
- /package/es/icon/{iconfont.1780292459831.woff2 → iconfont.1780570418794.woff2} +0 -0
- /package/es/{iconfont.1780292459831.ttf → iconfont.1780570418794.ttf} +0 -0
- /package/es/{iconfont.1780292459831.woff → iconfont.1780570418794.woff} +0 -0
- /package/es/{iconfont.1780292459831.woff2 → iconfont.1780570418794.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1780292459831.ttf → iconfont.1780570418794.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1780292459831.woff → iconfont.1780570418794.woff} +0 -0
- /package/lib/icon/style/{iconfont.1780292459831.woff2 → iconfont.1780570418794.woff2} +0 -0
- /package/lib/{iconfont.1780292459831.ttf → iconfont.1780570418794.ttf} +0 -0
- /package/lib/{iconfont.1780292459831.woff → iconfont.1780570418794.woff} +0 -0
- /package/lib/{iconfont.1780292459831.woff2 → iconfont.1780570418794.woff2} +0 -0
|
@@ -407,6 +407,7 @@ export default defineVxeComponent({
|
|
|
407
407
|
})
|
|
408
408
|
|
|
409
409
|
const computeMaps: VxeUploadPrivateComputed = {
|
|
410
|
+
computeUrlProp
|
|
410
411
|
}
|
|
411
412
|
|
|
412
413
|
const $xeUpload = {
|
|
@@ -827,21 +828,23 @@ export default defineVxeComponent({
|
|
|
827
828
|
})
|
|
828
829
|
}
|
|
829
830
|
|
|
830
|
-
const handleRemoveEvent = (evnt:
|
|
831
|
+
const handleRemoveEvent = (evnt: Event | null, item: VxeUploadDefines.FileObjItem, index: number) => {
|
|
831
832
|
const { fileList } = reactData
|
|
832
833
|
fileList.splice(index, 1)
|
|
833
834
|
handleChange(fileList)
|
|
834
835
|
// 自动更新校验状态
|
|
835
836
|
if ($xeForm && formItemInfo) {
|
|
836
|
-
$xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, fileList)
|
|
837
|
+
$xeForm.triggerItemEvent(evnt || { type: 'remove' }, formItemInfo.itemConfig.field, fileList)
|
|
838
|
+
}
|
|
839
|
+
if (evnt) {
|
|
840
|
+
dispatchEvent('remove', { option: item }, evnt)
|
|
837
841
|
}
|
|
838
|
-
dispatchEvent('remove', { option: item }, evnt)
|
|
839
842
|
}
|
|
840
843
|
|
|
841
|
-
const removeFileEvent = (evnt:
|
|
844
|
+
const removeFileEvent = (evnt: Event | null, item: VxeUploadDefines.FileObjItem, index: number) => {
|
|
842
845
|
const beforeRemoveFn = props.beforeRemoveMethod || getConfig().upload.beforeRemoveMethod
|
|
843
846
|
const removeFn = props.removeMethod || getConfig().upload.removeMethod
|
|
844
|
-
Promise.resolve(
|
|
847
|
+
return Promise.resolve(
|
|
845
848
|
beforeRemoveFn
|
|
846
849
|
? beforeRemoveFn({
|
|
847
850
|
$upload: $xeUpload,
|
|
@@ -863,8 +866,11 @@ export default defineVxeComponent({
|
|
|
863
866
|
handleRemoveEvent(evnt, item, index)
|
|
864
867
|
}
|
|
865
868
|
} else {
|
|
866
|
-
|
|
869
|
+
if (evnt) {
|
|
870
|
+
dispatchEvent('remove-fail', { option: item }, evnt)
|
|
871
|
+
}
|
|
867
872
|
}
|
|
873
|
+
return status
|
|
868
874
|
})
|
|
869
875
|
}
|
|
870
876
|
|
|
@@ -1250,11 +1256,58 @@ export default defineVxeComponent({
|
|
|
1250
1256
|
reactData.isActivated = false
|
|
1251
1257
|
}
|
|
1252
1258
|
|
|
1259
|
+
const handleClearFile = (evnt: Event | null) => {
|
|
1260
|
+
const { fileList } = reactData
|
|
1261
|
+
const urlProp = computeUrlProp.value
|
|
1262
|
+
const rest: Promise<{
|
|
1263
|
+
url: string
|
|
1264
|
+
status: boolean
|
|
1265
|
+
}>[] = []
|
|
1266
|
+
XEUtils.lastEach(fileList, (item, index) => {
|
|
1267
|
+
rest.push(
|
|
1268
|
+
removeFileEvent(evnt, item, index).then((status) => {
|
|
1269
|
+
return { url: item[urlProp], status }
|
|
1270
|
+
})
|
|
1271
|
+
)
|
|
1272
|
+
})
|
|
1273
|
+
return Promise.all(rest)
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
const handleRemoveFile = (evnt: Event | null, urlOrItem: string | VxeUploadDefines.FileObjItem | string[] | VxeUploadDefines.FileObjItem[] | null) => {
|
|
1277
|
+
const { fileList } = reactData
|
|
1278
|
+
const urlProp = computeUrlProp.value
|
|
1279
|
+
const urls = (XEUtils.isArray(urlOrItem) ? urlOrItem : [urlOrItem])
|
|
1280
|
+
const rest: Promise<{
|
|
1281
|
+
url: string
|
|
1282
|
+
status: boolean
|
|
1283
|
+
}>[] = []
|
|
1284
|
+
urls.forEach((obj) => {
|
|
1285
|
+
if (obj) {
|
|
1286
|
+
const url = XEUtils.isString(obj) ? obj : obj[urlProp]
|
|
1287
|
+
const index = XEUtils.findIndexOf(fileList, fileItem => fileItem[urlProp] === url)
|
|
1288
|
+
if (index > -1) {
|
|
1289
|
+
rest.push(
|
|
1290
|
+
removeFileEvent(evnt, fileList[index], index).then(status => {
|
|
1291
|
+
return { url, status }
|
|
1292
|
+
})
|
|
1293
|
+
)
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
})
|
|
1297
|
+
return Promise.all(rest)
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1253
1300
|
const uploadMethods: UploadMethods = {
|
|
1254
1301
|
dispatchEvent,
|
|
1255
1302
|
choose () {
|
|
1256
1303
|
return handleChoose(null)
|
|
1257
1304
|
},
|
|
1305
|
+
clear () {
|
|
1306
|
+
return handleClearFile(null)
|
|
1307
|
+
},
|
|
1308
|
+
clearByEvent (evnt) {
|
|
1309
|
+
return handleClearFile(evnt)
|
|
1310
|
+
},
|
|
1258
1311
|
getPendingFiles () {
|
|
1259
1312
|
const { fileList, fileCacheMaps } = reactData
|
|
1260
1313
|
const pendingFiles: File[] = []
|
|
@@ -1320,10 +1373,17 @@ export default defineVxeComponent({
|
|
|
1320
1373
|
VxeUI.modal.close(internalData.moreId)
|
|
1321
1374
|
}
|
|
1322
1375
|
return nextTick()
|
|
1376
|
+
},
|
|
1377
|
+
remove (urlOrItem) {
|
|
1378
|
+
return handleRemoveFile(null, urlOrItem)
|
|
1379
|
+
},
|
|
1380
|
+
removeByEvent (evnt, urlOrItem) {
|
|
1381
|
+
return handleRemoveFile(evnt, urlOrItem)
|
|
1323
1382
|
}
|
|
1324
1383
|
}
|
|
1325
1384
|
|
|
1326
1385
|
const uploadPrivateMethods: UploadPrivateMethods = {
|
|
1386
|
+
removeFileEvent
|
|
1327
1387
|
}
|
|
1328
1388
|
|
|
1329
1389
|
Object.assign($xeUpload, uploadMethods, uploadPrivateMethods)
|
|
@@ -187,6 +187,7 @@
|
|
|
187
187
|
flex-direction: row;
|
|
188
188
|
}
|
|
189
189
|
.vxe-date-panel--view-item {
|
|
190
|
+
position: relative;
|
|
190
191
|
padding: 0.2em;
|
|
191
192
|
&.is--prev,
|
|
192
193
|
&.is--next {
|
|
@@ -246,6 +247,9 @@
|
|
|
246
247
|
}
|
|
247
248
|
}
|
|
248
249
|
}
|
|
250
|
+
&.is--range-selected {
|
|
251
|
+
background-color: var(--vxe-ui-font-primary-tinge-color);
|
|
252
|
+
}
|
|
249
253
|
&.is--range-disabled {
|
|
250
254
|
.vxe-date-panel--view-item-inner {
|
|
251
255
|
color: var(--vxe-ui-input-disabled-color);
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
pointer-events: auto;
|
|
140
140
|
}
|
|
141
141
|
.vxe-form-item--valid-error-theme-beautify {
|
|
142
|
-
padding: 0.
|
|
142
|
+
padding: 0.15em 0.6em 0.2em 0.6em;
|
|
143
143
|
color: #fff;
|
|
144
144
|
background-color: var(--vxe-ui-status-error-color);
|
|
145
145
|
.vxe-form-item--valid-error-msg {
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
box-shadow: 2px 2px 4px -2px rgba(0,0,0,.5);
|
|
212
212
|
}
|
|
213
213
|
.vxe-form-item--valid-error-icon-theme-beautify {
|
|
214
|
-
padding: 0.
|
|
214
|
+
padding: 0.15em 0.6em 0.2em 0.6em;
|
|
215
215
|
color: #fff;
|
|
216
216
|
background-color: var(--vxe-ui-status-error-color);
|
|
217
217
|
.vxe-form-item--valid-error-msg {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/*radio-group*/
|
|
4
4
|
.vxe-radio-group {
|
|
5
|
-
display: inline-
|
|
5
|
+
display: inline-flex;
|
|
6
6
|
vertical-align: middle;
|
|
7
7
|
line-height: 1;
|
|
8
8
|
font-size: 0;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
/*radio*/
|
|
17
17
|
.vxe-radio {
|
|
18
|
-
display: inline-
|
|
18
|
+
display: inline-flex;
|
|
19
19
|
vertical-align: middle;
|
|
20
20
|
white-space: nowrap;
|
|
21
21
|
line-height: 1;
|
|
@@ -27,6 +27,12 @@ export namespace VxeDatePanelPropTypes {
|
|
|
27
27
|
export type Size = VxeComponentSizeType
|
|
28
28
|
export type ModelValue = string | number | Date | null
|
|
29
29
|
export type ClassName = string
|
|
30
|
+
export type CellClassName = string | ((params: {
|
|
31
|
+
$datePanel: VxeDatePanelConstructor
|
|
32
|
+
type: string
|
|
33
|
+
viewType: VxeDatePanelDefines.DatePanelType
|
|
34
|
+
date: Date
|
|
35
|
+
}) => string)
|
|
30
36
|
export type Type = 'date' | 'time' | 'datetime' | 'week' | 'month' | 'quarter' | 'year'
|
|
31
37
|
export type Multiple = boolean
|
|
32
38
|
export type LimitCount = string | number
|
|
@@ -76,6 +82,7 @@ export interface VxeDatePanelProps {
|
|
|
76
82
|
size?: VxeDatePanelPropTypes.Size
|
|
77
83
|
modelValue?: VxeDatePanelPropTypes.ModelValue
|
|
78
84
|
className?: VxeDatePanelPropTypes.ClassName
|
|
85
|
+
cellClassName?: VxeDatePanelPropTypes.CellClassName
|
|
79
86
|
type?: VxeDatePanelPropTypes.Type
|
|
80
87
|
multiple?: VxeDatePanelPropTypes.Multiple
|
|
81
88
|
limitCount?: VxeDatePanelPropTypes.LimitCount
|
|
@@ -189,6 +189,8 @@ export interface FormInternalData {
|
|
|
189
189
|
label?: any
|
|
190
190
|
}
|
|
191
191
|
}>
|
|
192
|
+
fullItemIdData: Record<string, VxeFormDefines.ItemCacheItem>
|
|
193
|
+
fullItemFieldData: Record<string, VxeFormDefines.ItemCacheItem>
|
|
192
194
|
}
|
|
193
195
|
|
|
194
196
|
export interface FormMethods<D = any> {
|
|
@@ -216,7 +218,6 @@ export interface FormMethods<D = any> {
|
|
|
216
218
|
/**
|
|
217
219
|
* 更新项状态
|
|
218
220
|
* 当使用自定义渲染时可能会用到
|
|
219
|
-
* @param params 插槽对象
|
|
220
221
|
*/
|
|
221
222
|
updateStatus(
|
|
222
223
|
params: {
|
|
@@ -228,14 +229,26 @@ export interface FormMethods<D = any> {
|
|
|
228
229
|
* 获取表单项列表
|
|
229
230
|
*/
|
|
230
231
|
getItems(): VxeFormDefines.ItemInfo[]
|
|
232
|
+
/**
|
|
233
|
+
* 加载表单项
|
|
234
|
+
*/
|
|
235
|
+
loadItems(items: VxeFormPropTypes.Items | VxeFormDefines.ItemInfo[]): Promise<any>
|
|
236
|
+
/**
|
|
237
|
+
* 隐藏指定项
|
|
238
|
+
*/
|
|
239
|
+
hideItem(fieldOrItems?: VxeFormItemPropTypes.Field | VxeFormItemPropTypes.Field[] | VxeFormDefines.ItemInfo | VxeFormDefines.ItemInfo[] | null): Promise<void>
|
|
240
|
+
/**
|
|
241
|
+
* 显示指定项
|
|
242
|
+
*/
|
|
243
|
+
showItem(fieldOrItems?: VxeFormItemPropTypes.Field | VxeFormItemPropTypes.Field[] | VxeFormDefines.ItemInfo | VxeFormDefines.ItemInfo[] | null): Promise<void>
|
|
244
|
+
/**
|
|
231
245
|
/**
|
|
232
246
|
* 根据列的字段名获取表单项
|
|
233
|
-
* @param field 字段名
|
|
234
247
|
*
|
|
235
248
|
*/
|
|
236
249
|
getItemByField(field: VxeFormItemPropTypes.Field): VxeFormDefines.ItemInfo | null
|
|
237
250
|
/**
|
|
238
|
-
*
|
|
251
|
+
* 手动关闭 tooltip 提示
|
|
239
252
|
*/
|
|
240
253
|
closeTooltip(): Promise<any>
|
|
241
254
|
/**
|
|
@@ -292,6 +305,12 @@ export type VxeFormEmits = [
|
|
|
292
305
|
]
|
|
293
306
|
|
|
294
307
|
export namespace VxeFormDefines {
|
|
308
|
+
export interface ItemCacheItem {
|
|
309
|
+
item: ItemInfo
|
|
310
|
+
index: number
|
|
311
|
+
items: ItemInfo[]
|
|
312
|
+
}
|
|
313
|
+
|
|
295
314
|
export class ItemInfo {
|
|
296
315
|
id: string
|
|
297
316
|
|
|
@@ -92,10 +92,14 @@ export namespace VxeNoticeBarEvents {
|
|
|
92
92
|
|
|
93
93
|
export namespace VxeNoticeBarSlotTypes {
|
|
94
94
|
export interface DefaultSlotParams {}
|
|
95
|
+
export interface PrefixSlotParams {}
|
|
96
|
+
export interface SuffixSlotParams {}
|
|
95
97
|
}
|
|
96
98
|
|
|
97
99
|
export interface VxeNoticeBarSlots {
|
|
98
100
|
default?: (params: VxeNoticeBarSlotTypes.DefaultSlotParams) => any
|
|
101
|
+
prefix?: (params: VxeNoticeBarSlotTypes.PrefixSlotParams) => any
|
|
102
|
+
suffix?: (params: VxeNoticeBarSlotTypes.SuffixSlotParams) => any
|
|
99
103
|
}
|
|
100
104
|
|
|
101
105
|
export const NoticeBar: typeof VxeNoticeBar
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RenderFunction, SetupContext, Ref } from 'vue'
|
|
1
|
+
import { RenderFunction, SetupContext, Ref, ComputedRef } from 'vue'
|
|
2
2
|
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentBaseOptions, VxeComponentEventParams, ValueOf, VxeComponentSizeType } from '@vxe-ui/core'
|
|
3
3
|
import { VxeImagePropTypes } from './image'
|
|
4
4
|
import { VxeImagePreviewProps } from './image-preview'
|
|
@@ -219,6 +219,7 @@ export interface VxeUploadProps {
|
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
export interface UploadPrivateComputed {
|
|
222
|
+
computeUrlProp: ComputedRef<string>
|
|
222
223
|
}
|
|
223
224
|
export interface VxeUploadPrivateComputed extends UploadPrivateComputed { }
|
|
224
225
|
|
|
@@ -258,6 +259,20 @@ export interface UploadMethods {
|
|
|
258
259
|
* 用于 auto-upload 模式,手动调用上传附件;如果传 true,这包含未上传和上传失败的都会重新提交
|
|
259
260
|
*/
|
|
260
261
|
submit(isFull?: boolean): Promise<void>
|
|
262
|
+
/**
|
|
263
|
+
* 清除所有文件
|
|
264
|
+
*/
|
|
265
|
+
clear(): Promise<{
|
|
266
|
+
url: string
|
|
267
|
+
status: boolean
|
|
268
|
+
}[]>
|
|
269
|
+
/**
|
|
270
|
+
* 区别就是会触发对应的事件
|
|
271
|
+
*/
|
|
272
|
+
clearByEvent(event: Event): Promise<{
|
|
273
|
+
url: string
|
|
274
|
+
status: boolean
|
|
275
|
+
}[]>
|
|
261
276
|
/**
|
|
262
277
|
* 获取更多弹窗的可视状态
|
|
263
278
|
*/
|
|
@@ -274,10 +289,30 @@ export interface UploadMethods {
|
|
|
274
289
|
* 关闭更多弹窗
|
|
275
290
|
*/
|
|
276
291
|
closeMore(): Promise<void>
|
|
292
|
+
/**
|
|
293
|
+
* 删除指定文件
|
|
294
|
+
*/
|
|
295
|
+
remove(urlOrItem: string | VxeUploadDefines.FileObjItem | string[] | VxeUploadDefines.FileObjItem[] | null): Promise<{
|
|
296
|
+
url: string
|
|
297
|
+
status: boolean
|
|
298
|
+
}[]>
|
|
299
|
+
/**
|
|
300
|
+
* 区别就是会触发对应的事件
|
|
301
|
+
*/
|
|
302
|
+
removeByEvent(event: Event, urlOrItem: string | VxeUploadDefines.FileObjItem | string[] | VxeUploadDefines.FileObjItem[] | null): Promise<{
|
|
303
|
+
url: string
|
|
304
|
+
status: boolean
|
|
305
|
+
}[]>
|
|
277
306
|
}
|
|
278
307
|
export interface VxeUploadMethods extends UploadMethods { }
|
|
279
308
|
|
|
280
|
-
export interface UploadPrivateMethods {
|
|
309
|
+
export interface UploadPrivateMethods {
|
|
310
|
+
/**
|
|
311
|
+
* 内部方法
|
|
312
|
+
* @private
|
|
313
|
+
*/
|
|
314
|
+
removeFileEvent(evnt: Event | null, item: VxeUploadDefines.FileObjItem, index: number): Promise<any>
|
|
315
|
+
}
|
|
281
316
|
export interface VxeUploadPrivateMethods extends UploadPrivateMethods { }
|
|
282
317
|
|
|
283
318
|
export type VxeUploadEmits = [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|