| | |
| | | </upload-image> |
| | | <upload-file v-if="fileMediatype !== 'image' || showType !== 'grid'" :readonly="readonly" |
| | | :list-styles="listStyles" :files-list="filesList" :showType="showType" :delIcon="delIcon" |
| | | @uploadFiles="uploadFiles" @choose="choose" @delFile="delFile"> |
| | | @uploadFiles="uploadFiles" @choose="choose" @delFile="delFile" @downloadFile="downloadFile"> |
| | | <slot><button type="primary" size="mini">选择文件</button></slot> |
| | | </upload-file> |
| | | </view> |
| | |
| | | options: { |
| | | virtualHost: true |
| | | }, |
| | | emits: ['select', 'success', 'fail', 'progress', 'delete', 'update:modelValue', 'input'], |
| | | emits: ['select', 'success', 'fail', 'progress', 'delete', 'update:modelValue', 'input', 'downloadFile'], |
| | | props: { |
| | | modelValue: { |
| | | type: [Array, Object], |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | downloadFile(item) { |
| | | console.log('准备下载:', item); |
| | | |
| | | if (!item.url) { |
| | | uni.showToast({ |
| | | title: '文件不可下载', |
| | | icon: 'none' |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // #ifdef H5 |
| | | const a = document.createElement('a'); |
| | | a.href = item.url; |
| | | a.download = item.name || 'file'; |
| | | document.body.appendChild(a); |
| | | a.click(); |
| | | document.body.removeChild(a); |
| | | // #endif |
| | | |
| | | // #ifndef H5 |
| | | uni.downloadFile({ |
| | | url: item.url, |
| | | success: (res) => { |
| | | if (res.statusCode === 200) { |
| | | uni.openDocument({ |
| | | filePath: res.tempFilePath, |
| | | success: () => { |
| | | console.log('打开文档成功'); |
| | | }, |
| | | fail: () => { |
| | | uni.showToast({ |
| | | title: '无法打开此文档类型', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | fail: () => { |
| | | uni.showToast({ |
| | | title: '下载失败', |
| | | icon: 'none' |
| | | }); |
| | | } |
| | | }); |
| | | // #endif |
| | | }, |
| | | |
| | | |
| | | /** |
| | | * 公开用户使用,清空文件 |
| | | * @param {Object} index |