Skip to content

Commit 7ab90ea

Browse files
author
qzhuo
committed
Merge branch 'main' of github.com:AntmJS/vantui into main
2 parents 015f265 + bc7f438 commit 7ab90ea

2 files changed

Lines changed: 46 additions & 23 deletions

File tree

packages/vantui/src/form/core/formstore.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,13 @@ class FormStore {
393393
break
394394
}
395395
} else if (typeof rule === 'function') {
396-
// 检查函数是否返回Promise
397-
const result = rule(value)
396+
// 传统的回调函数形式
397+
const validateCallback = (callbackMessage: string) => {
398+
this.model[name].message = callbackMessage
399+
status = !callbackMessage ? 'resolve' : 'reject'
400+
}
401+
// 检查函数是否返回Promise,传入callback兼容同步回调
402+
const result = rule(value, validateCallback)
398403
if (isPromise(result)) {
399404
try {
400405
// 规则函数返回Promise的情况
@@ -413,12 +418,6 @@ class FormStore {
413418
break
414419
}
415420
} else {
416-
// 传统的回调函数形式
417-
const validateCallback = (callbackMessage: string) => {
418-
this.model[name].message = callbackMessage
419-
status = !callbackMessage ? 'resolve' : 'reject'
420-
}
421-
422421
// 执行规则函数
423422
rule(value, validateCallback)
424423

packages/vantui/src/uploader/utils.ts

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,24 @@ export function chooseFile({
9494
return new Promise((resolve, reject) => {
9595
switch (accept) {
9696
case 'image':
97-
chooseImage({
98-
count: multiple ? Math.min(maxCount, 9) : 1,
99-
sourceType: capture || ['album', 'camera'],
100-
sizeType: sizeType || ['original', 'compressed'],
101-
success: (res) => resolve(formatImage(res)),
102-
fail: reject,
103-
})
97+
process.env.TARO_ENV === 'weapp' ?
98+
chooseMedia({
99+
count: multiple ? Math.min(maxCount, 9) : 1,
100+
mediaType: ['image'],
101+
sourceType: capture || ['album', 'camera'],
102+
maxDuration,
103+
sizeType: sizeType || ['original', 'compressed'],
104+
camera: camera || 'back',
105+
success: (res) => resolve(formatMedia(res)),
106+
fail: reject,
107+
}) :
108+
chooseImage({
109+
count: multiple ? Math.min(maxCount, 9) : 1,
110+
sourceType: capture || ['album', 'camera'],
111+
sizeType: sizeType || ['original', 'compressed'],
112+
success: (res) => resolve(formatImage(res)),
113+
fail: reject,
114+
})
104115
break
105116
case 'media':
106117
chooseMedia({
@@ -114,14 +125,27 @@ export function chooseFile({
114125
})
115126
break
116127
case 'video':
117-
chooseVideo({
118-
sourceType: capture || ['album', 'camera'],
119-
compressed,
120-
maxDuration: maxDuration || 60,
121-
camera: camera || 'back',
122-
success: (res) => resolve(formatVideo(res)),
123-
fail: reject,
124-
})
128+
process.env.TARO_ENV === 'weapp' ?
129+
chooseMedia({
130+
count: multiple ? Math.min(maxCount, 9) : 1,
131+
mediaType: ['video'],
132+
sourceType: capture || ['album', 'camera'],
133+
maxDuration,
134+
sizeType: compressed
135+
? ['compressed']
136+
: sizeType || ['original', 'compressed'],
137+
camera: camera || 'back',
138+
success: (res) => resolve(formatMedia(res)),
139+
fail: reject,
140+
}) :
141+
chooseVideo({
142+
sourceType: capture || ['album', 'camera'],
143+
compressed,
144+
maxDuration: maxDuration || 60,
145+
camera: camera || 'back',
146+
success: (res) => resolve(formatVideo(res)),
147+
fail: reject,
148+
})
125149
break
126150
default:
127151
chooseMessageFile({

0 commit comments

Comments
 (0)