Browse Source

fix(uploader): taro h5 模式 accept 不生效 #1448 #1445 #1474

richard1015 3 years ago
parent
commit
f419ceb20e

+ 1 - 1
src/packages/__VUE/uploader/doc.taro.md

@@ -243,7 +243,7 @@ setup() {
 | source-type               | [选择图片的来源](https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html)                 | String                            | ['album','camera']        |
 | maximize                  | 可以设定最大上传文件的大小(字节)                                                                                     | Number丨String                    | 9                         |
 | maximum                   | 文件上传数量限制                                                                                                       | Number丨String                    | 1                         |
-| size-type                 | 选择图片的来源,[详细说明](https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html)       | String                            | ['original','compressed'] |
+| size-type                 | 是否压缩所选文件[详细说明](https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html)       | String                            | ['original','compressed'] |
 | headers                   | 设置上传的请求头部                                                                                                     | Object                            | {}                        |
 | data                      | 附加上传的信息 formData                                                                                                | Object                            | {}                        |
 | upload-icon               | 上传区域[图标名称](#/icon)或图片链接                                                                                   | String                            | "photograph"              |

+ 12 - 1
src/packages/__VUE/uploader/index.taro.vue

@@ -62,7 +62,7 @@
 </template>
 
 <script lang="ts">
-import { computed, PropType, reactive } from 'vue';
+import { computed, onMounted, PropType, reactive } from 'vue';
 import { createComponent } from '@/packages/utils/create';
 import { Uploader, UploadOptions } from './uploader';
 import { FileItem } from './type';
@@ -332,6 +332,17 @@ export default create({
       });
     };
 
+    onMounted(() => {
+      if (Taro.getEnv() == 'WEB') {
+        const obj = document.createElement('input');
+        obj.setAttribute('type', 'file');
+        obj.setAttribute('id', 'taroChooseImage');
+        obj.setAttribute('accept', props.accept);
+        obj.setAttribute('style', 'position: fixed; top: -4000px; left: -3000px; z-index: -300;');
+        document.body.appendChild(obj);
+      }
+    });
+
     return {
       onDelete,
       fileList,