| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | 
							- function pickExclude(obj, keys) {
 
-     // 某些情况下,type可能会为
 
-     if (!['[object Object]', '[object File]'].includes(Object.prototype.toString.call(obj))) {
 
-         return {}
 
-     }
 
-     return Object.keys(obj).reduce((prev, key) => {
 
-         if (!keys.includes(key)) {
 
-             prev[key] = obj[key]
 
-         }
 
-         return prev
 
-     }, {})
 
- }
 
- function formatImage(res) {
 
-     return res.tempFiles.map((item) => ({
 
-         ...pickExclude(item, ['path']),
 
-         type: 'image',
 
-         url: item.path,
 
-         thumb: item.path,
 
-         size: item.size,
 
-         // #ifdef H5
 
-         name: item.name
 
-         // #endif
 
-     }))
 
- }
 
- function formatVideo(res) {
 
-     return [
 
-         {
 
-             ...pickExclude(res, ['tempFilePath', 'thumbTempFilePath', 'errMsg']),
 
-             type: 'video',
 
-             url: res.tempFilePath,
 
-             thumb: res.thumbTempFilePath,
 
-             size: res.size,
 
-             // #ifdef H5
 
-             name: res.name
 
-             // #endif
 
-         }
 
-     ]
 
- }
 
- function formatMedia(res) {
 
-     return res.tempFiles.map((item) => ({
 
-         ...pickExclude(item, ['fileType', 'thumbTempFilePath', 'tempFilePath']),
 
-         type: res.type,
 
-         url: item.tempFilePath,
 
-         thumb: res.type === 'video' ? item.thumbTempFilePath : item.tempFilePath,
 
-         size: item.size
 
-     }))
 
- }
 
- function formatFile(res) {
 
-     return res.tempFiles.map((item) => ({
 
-         ...pickExclude(item, ['path']),
 
-         url: item.path,
 
-         size: item.size,
 
-         // #ifdef H5
 
-         name: item.name,
 
-         type: item.type
 
-         // #endif
 
-     }))
 
- }
 
- export function chooseFile({
 
-                                accept,
 
-                                multiple,
 
-                                capture,
 
-                                compressed,
 
-                                maxDuration,
 
-                                sizeType,
 
-                                camera,
 
-                                maxCount
 
-                            }) {
 
-     return new Promise((resolve, reject) => {
 
-         switch (accept) {
 
-             case 'image':
 
-                 uni.chooseImage({
 
-                     count: multiple ? Math.min(maxCount, 9) : 1,
 
-                     sourceType: capture,
 
-                     sizeType,
 
-                     success: (res) => resolve(formatImage(res)),
 
-                     fail: reject
 
-                 })
 
-                 break
 
-             // #ifdef MP-WEIXIN
 
-             // 只有微信小程序才支持chooseMedia接口
 
-             case 'media':
 
-                 wx.chooseMedia({
 
-                     count: multiple ? Math.min(maxCount, 9) : 1,
 
-                     sourceType: capture,
 
-                     maxDuration,
 
-                     sizeType,
 
-                     camera,
 
-                     success: (res) => resolve(formatMedia(res)),
 
-                     fail: reject
 
-                 })
 
-                 break
 
-             // #endif
 
-             case 'video':
 
-                 uni.chooseVideo({
 
-                     sourceType: capture,
 
-                     compressed,
 
-                     maxDuration,
 
-                     camera,
 
-                     success: (res) => resolve(formatVideo(res)),
 
-                     fail: reject
 
-                 })
 
-                 break
 
-             // #ifdef MP-WEIXIN || H5
 
-             // 只有微信小程序才支持chooseMessageFile接口
 
-             case 'file':
 
-                 // #ifdef MP-WEIXIN
 
-                 wx.chooseMessageFile({
 
-                     count: multiple ? maxCount : 1,
 
-                     type: accept,
 
-                     success: (res) => resolve(formatFile(res)),
 
-                     fail: reject
 
-                 })
 
-                 // #endif
 
-                 // #ifdef H5
 
-                 // 需要hx2.9.9以上才支持uni.chooseFile
 
-                 uni.chooseFile({
 
-                     count: multiple ? maxCount : 1,
 
-                     type: accept,
 
-                     success: (res) => resolve(formatFile(res)),
 
-                     fail: reject
 
-                 })
 
-                 // #endif
 
-                 break
 
-             // #endif
 
-             default:
 
-                 // 此为保底选项,在accept不为上面任意一项的时候选取全部文件
 
-                 // #ifdef MP-WEIXIN
 
-                 wx.chooseMessageFile({
 
-                     count: multiple ? maxCount : 1,
 
-                     type: 'all',
 
-                     success: (res) => resolve(formatFile(res)),
 
-                     fail: reject
 
-                 })
 
-                 // #endif
 
-                 // #ifdef H5
 
-                 // 需要hx2.9.9以上才支持uni.chooseFile
 
-                 uni.chooseFile({
 
-                     count: multiple ? maxCount : 1,
 
-                     type: 'all',
 
-                     success: (res) => resolve(formatFile(res)),
 
-                     fail: reject
 
-                 })
 
-             // #endif
 
-         }
 
-     })
 
- }
 
 
  |