@@ -393,13 +393,35 @@ export const properFileSize =
393393 if ( [ undefined , null ] . includes ( file . size ) ) return true
394394
395395 let maxSize = 0
396- state . singleMaxSize = props . edm . singleFileMaxSize || state . singleMaxSize || 200
397- if ( Array . isArray ( props . fileSize ) && props . fileSize [ 1 ] ) {
398- maxSize = state . isEdm
399- ? Math . min ( state . singleMaxSize , Number ( props . fileSize [ 1 ] ) / 1024 )
400- : Math . max ( Number ( props . fileSize [ 0 ] ) / 1024 , Number ( props . fileSize [ 1 ] ) / 1024 )
396+ // 优先级:result.config.singleFileMaxSize > props.edm.config.singleFileMaxSize > props.fileSize > props.edm.singleFileMaxSize > state.singleMaxSize(默认200KB)
397+ // 注意:singleFileMaxSize 的单位是 KB,需要转换为 MB 进行比较
398+ const edmConfigSingleFileMaxSize =
399+ state . edmToken ?. config ?. singleFileMaxSize || props . edm ?. config ?. singleFileMaxSize
400+ ? ( state . edmToken ?. config ?. singleFileMaxSize || props . edm ?. config ?. singleFileMaxSize ) / 1024 // 转换为 MB
401+ : null
402+
403+ if ( state . isEdm ) {
404+ // EDM 模式下,优先级:edm.config.singleFileMaxSize > props.fileSize > state.singleMaxSize
405+ if ( edmConfigSingleFileMaxSize !== null ) {
406+ // 优先使用 edm.config.singleFileMaxSize
407+ maxSize = edmConfigSingleFileMaxSize
408+ } else if ( Array . isArray ( props . fileSize ) && props . fileSize [ 1 ] ) {
409+ // 如果有 props.fileSize 数组,使用最大值(上限),单位从 KB 转为 MB
410+ maxSize = Number ( props . fileSize [ 1 ] ) / 1024
411+ } else if ( props . fileSize ) {
412+ // 如果有 props.fileSize,使用它,单位从 KB 转为 MB
413+ maxSize = Number ( props . fileSize ) / 1024
414+ } else {
415+ // 最后才使用 state.singleMaxSize(默认值 200KB),单位从 KB 转为 MB
416+ maxSize = state . singleMaxSize / 1024
417+ }
401418 } else {
402- maxSize = state . isEdm ? Math . min ( state . singleMaxSize ) : Number ( props . fileSize ) / 1024
419+ // 非 EDM 模式,使用 props.fileSize
420+ if ( Array . isArray ( props . fileSize ) && props . fileSize [ 1 ] ) {
421+ maxSize = Math . max ( Number ( props . fileSize [ 0 ] ) / 1024 , Number ( props . fileSize [ 1 ] ) / 1024 )
422+ } else {
423+ maxSize = Number ( props . fileSize ) / 1024
424+ }
403425 }
404426
405427 if ( state . isEdm || ( Array . isArray ( props . fileSize ) && props . fileSize [ 1 ] ) ) {
0 commit comments