| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 | 
							- function formattedFiles(list) {
 
-     if (list.length == 0) return [];
 
-     let suffixList = {
 
-             image: ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'svg', 'tiff'],
 
-             video: ['mp4', 'ogg', 'webm'],
 
-             word: ['doc', 'docx'],
 
-             excel: ['xls', 'xlsx'],
 
-             ppt: ['ppt', 'pptx'],
 
-             txt: ['txt', 'md', 'js', 'json'],
 
-             pdf: ['pdf'],
 
-             rar: ['7z', 'zip', 'rar', 'kz', 'ace', 'arj', 'bz2', 'cab', 'gz', 'iso', 'jar', 'lzh', 'tar', 'z'],
 
-             folder: ['folder']
 
-         },
 
-         typeList = [];
 
-     for (let key in suffixList) typeList.push(key);
 
-     for (let i = 0; i < list.length; i++) {
 
-         list[i].fileType = 'unknown';
 
-         const suffix = list[i].postfix.toLowerCase();
 
-         if (suffix != "folder") {
 
-             for (var key in suffixList) {
 
-                 if (suffixList[key].some(value => value == suffix)) list[i].fileType = key;
 
-             }
 
-         } else {
 
-             list[i].fileType = "folder";
 
-         }
 
-     }
 
-     return list;
 
- }
 
- /* 预览媒体 */
 
- function viewMedias(files, index, type) {
 
-     // #ifndef MP
 
-     if (type == 'image') {
 
-         uni.previewImage({
 
-             current: index,
 
-             urls: files,
 
-             loop: true,
 
-         })
 
-     } else {
 
-         window.open(files[index].url)
 
-     }
 
-     // #endif
 
-     // #ifdef MP-WEIXIN
 
-     uni.previewMedia({
 
-         current: index,
 
-         sources: files,
 
-     })
 
-     // #endif       
 
- }
 
- /* 预览图片 */
 
- function viewImage(url) {
 
-     // #ifndef MP
 
-     uni.previewImage({
 
-         current: 0,
 
-         urls: [url],
 
-         loop: true,
 
-     })
 
-     // #endif
 
-     // #ifdef MP-WEIXIN
 
-     uni.previewImage({
 
-         urls: [url]
 
-     })
 
-     // #endif       
 
- }
 
- /* 预览文档 */
 
- function viewFlies(item) {
 
-     uni.showLoading({
 
-         title: '加载中...',
 
-     })
 
-     uni.downloadFile({
 
-         url: item.url,
 
-         complete({
 
-             statusCode,
 
-             tempFilePath
 
-         }) {
 
-             if (statusCode != 200) return;
 
-             uni.openDocument({
 
-                 filePath: tempFilePath,
 
-                 fileType: item.postfix,
 
-                 showMenu: true,
 
-                 complete({
 
-                     errMsg
 
-                 }) {
 
-                     uni.hideLoading();
 
-                     if (errMsg != "openDocument:ok") uni.showToast({
 
-                         title: '打开失败',
 
-                         icon: "none"
 
-                     })
 
-                 }
 
-             })
 
-         }
 
-     })
 
- }
 
- function wxSaveFile(file) {
 
-     if (file.fileType == undefined) file = formattedFiles([file])[0]
 
-     const fs = uni.getFileSystemManager(),
 
-         basePath = String(`${uni.env.USER_DATA_PATH}/${file.postfix}`);
 
-     fs.access({
 
-         path: basePath,
 
-         success(res) {
 
-             fs.getSavedFileList({
 
-                 success: res => {
 
-                     console.log("临时文件列表", res)
 
-                 }
 
-             })
 
-         },
 
-         fail(res) {
 
-             fs.mkdir({
 
-                 dirPath: basePath,
 
-                 recursive: true,
 
-                 success(res) {
 
-                     console.log("创建目录", res)
 
-                 },
 
-                 fail(res) {
 
-                     console.error("创建目录", res)
 
-                 }
 
-             })
 
-         }
 
-     })
 
-     const downloadTask = uni.downloadFile({
 
-         url: file.url,
 
-         filePath: basePath + '/' + file.document,
 
-         timeout: 6000000,
 
-         success(res) {
 
-             if (file.fileType == "video") {
 
-                 saveVideo(res.filePath)
 
-             } else {
 
-                 saveImage(res.filePath)
 
-             }
 
-             function shareVideo() {
 
-                 uni.shareVideoMessage({
 
-                     videoPath: res.tempFilePath,
 
-                     complete(res) {
 
-                         console.log("转发", res)
 
-                         clearFile(filePath)
 
-                         /* uni.showToast({
 
-                             title: `转发失败:${err.errMsg}`,
 
-                             icon: "none"
 
-                         }) */
 
-                     }
 
-                 })
 
-             }
 
-             function saveImage(filePath) {
 
-                 uni.saveImageToPhotosAlbum({
 
-                     filePath,
 
-                     success(res) {
 
-                         console.log("保存图片", res)
 
-                         uni.showModal({
 
-                             title: '提示',
 
-                             content: '文件已保存到系统相册',
 
-                             showCancel: false
 
-                         })
 
-                         uni.hideLoading()
 
-                         clearFile(filePath)
 
-                     },
 
-                     fail(err) {
 
-                         console.log("保存失败", err)
 
-                         if (err.errno == 103) {
 
-                             uni.showModal({
 
-                                 title: '提示',
 
-                                 content: '未获取保存相册权限,无法保存!',
 
-                                 confirmText: "前去授权",
 
-                                 success({
 
-                                     confirm
 
-                                 }) {
 
-                                     if (confirm) uni.openSetting({
 
-                                         success(res) {
 
-                                             console.log(res.authSetting["scope.writePhotosAlbum"])
 
-                                             if (res.authSetting["scope.writePhotosAlbum"]) {
 
-                                                 saveVideo(filePath)
 
-                                             } else {
 
-                                                 uni.showToast({
 
-                                                     title: '未获得授权',
 
-                                                     icon: "none"
 
-                                                 })
 
-                                             }
 
-                                         }
 
-                                     })
 
-                                 }
 
-                             })
 
-                         } else {
 
-                             clearFile(filePath)
 
-                             uni.showToast({
 
-                                 title: err.errMsg,
 
-                                 icon: "none"
 
-                             })
 
-                         }
 
-                     }
 
-                 })
 
-             }
 
-             function saveVideo(filePath) {
 
-                 console.log('saveVideo', filePath)
 
-                 uni.saveVideoToPhotosAlbum({
 
-                     filePath,
 
-                     success(res) {
 
-                         console.log("保存视频", res)
 
-                         uni.showModal({
 
-                             title: '提示',
 
-                             content: '视频已保存到系统相册',
 
-                             showCancel: false
 
-                         })
 
-                         uni.hideLoading()
 
-                         clearFile(filePath)
 
-                     },
 
-                     fail(err) {
 
-                         console.log("保存失败", err)
 
-                         if (err.errno == 103) {
 
-                             uni.showModal({
 
-                                 title: '提示',
 
-                                 content: '未获取保存相册权限,无法保存!',
 
-                                 confirmText: "前去授权",
 
-                                 success({
 
-                                     confirm
 
-                                 }) {
 
-                                     if (confirm) uni.openSetting({
 
-                                         success(res) {
 
-                                             console.log(res.authSetting["scope.writePhotosAlbum"])
 
-                                             if (res.authSetting["scope.writePhotosAlbum"]) {
 
-                                                 saveVideo(filePath)
 
-                                             } else {
 
-                                                 uni.showToast({
 
-                                                     title: '未获得授权',
 
-                                                     icon: "none"
 
-                                                 })
 
-                                             }
 
-                                         }
 
-                                     })
 
-                                 }
 
-                             })
 
-                         } else {
 
-                             clearFile(filePath)
 
-                             uni.showToast({
 
-                                 title: err.errMsg,
 
-                                 icon: "none"
 
-                             })
 
-                         }
 
-                     }
 
-                 })
 
-             }
 
-             function clearFile(filePath) {
 
-                 let fs = uni.getFileSystemManager()
 
-                 fs.unlink({
 
-                     filePath,
 
-                     success(res) {
 
-                         console.log("文件删除", res)
 
-                     },
 
-                     fail(res) {
 
-                         console.log("删除失败", res)
 
-                     }
 
-                 })
 
-             }
 
-         },
 
-         fail(err) {
 
-             console.log("下载失败", err)
 
-             uni.showToast({
 
-                 title: `下载失败:${err.errMsg}`,
 
-                 icon: "none"
 
-             })
 
-             if (err.errMsg == 'downloadFile:fail exceed max file size') uni.showToast({
 
-                 title: '视频体积超大,无法保存!请尝试打开视频长按保存下载',
 
-                 icon: "none"
 
-             })
 
-         }
 
-     })
 
-     downloadTask.onProgressUpdate((res) => {
 
-         uni.showLoading({
 
-             title: res.progress + `%`,
 
-             mask: true
 
-         })
 
-         if (res.progress == 100) uni.hideLoading()
 
-     })
 
- }
 
- module.exports = {
 
-     viewMedias,
 
-     viewFlies,
 
-     formattedFiles,
 
-     viewImage,
 
-     wxSaveFile
 
- }
 
 
  |