1.0.25 • Published 3 years ago

vux-uploader-component v1.0.25

Weekly downloads
159
License
MIT
Repository
-
Last release
3 years ago

vux-uploader-component

npm.io

a mobile vue component implementation for weui uploader

Install

npm install -S vux-uploader-component

Mobile demo

npm.io

https://ejayyoung.github.io/vux-uploader-component/index.html

scan the qrcode and have a test in your device

Usage

Basic

<template>
  <uploader
    v-model="fileList"
    :url="remoteUrl"
    @on-change="onChange"
    @on-cancel="onCancel"
    @on-success="onSuccess"
    @on-error="onError"
    @on-delete="onDelete"
  ></uploader>
</template>
<script>
  import Uploader from "vux-uploader-component";

  export default {
    components: {
      Uploader
    },
    data() {
      return {
        fileList: []
      };
    }
  };
</script>

Custom name

<uploader
  v-model="fileList"
  :url="remoteUrl"
  name="upload"
></uploader>

Extra Params

<uploader
  v-model="fileList"
  :url="remoteUrl"
  :params="{
    token: '13579',
    linkid: '2323',
    modelname: 'modelname'
  }"
></uploader>

Manual Upload

<template>
  <uploader v-model="fileList" :autoUpload="false"></uploader>
</template>
<script>
  import Uploader from "vux-uploader-component";

  export default {
    components: {
      Uploader
    },
    data() {
      return {
        fileList: []
      };
    },
    methods: {
      submit() {
        const formData = new FormData();
        formData.append("file", fileList[0].blob);
        fetch
          .post(url, formData)
          .then(() => {})
          .catch(() => {});
      }
    }
  };
</script>

Props

propertytypedefaultdescription
titleString'图片上传'组件标题
filesArray[]初始化数据源,通过on-fileList-change事件绑定 v-model
limitNumber | String5限制上传图片个数
limitPromptFunction(limit) => `不能上传超过${limit}张图片`限制上传alert的提示语
captureNumber | Stringfalse是否只选择调用相机
enableCompressBooleantrue是否压缩
maxWidthString | Number1024图片压缩最大宽度
qualityString | Number0.92图片压缩率
urlString-上传服务器 url
headersObject{}上传文件时自定义请求头
withCredentialsBoolean-设置为true的话,支持标准CORS设置cookie值
paramsObject-上传文件时自定义参数
nameString'file'上传文件时 FormData 的 Key,默认为 file
autoUploadBooleantrue是否自动开启上传
multipleString | Boolean""是否支持多选, false为不支持
readonlyBooleanfalse只读模式(隐藏添加和删除按钮)

Events

eventparamdescription
on-change(FileItem, FileList)选完照片,删除照片时,FileList 变化时触发,返回当前改变的 FileItem,以及当前的 FileList
on-cancel()选择照片后取消的回调,用于错误提示
on-success(result, fileItem)上传请求成功后的回调,返回远程请求的返回结果,及当前添加文件的 FileItem
on-error(xhr)上传请求失败后的回调,返回xhr
on-delete(cb)删除照片时的回调,返回隐藏 Previewer,删除图片的回调,没监听onDelete事件的时候,直接执行删除回调

v-model

通过 v-model 可以在组件外部获取更新的组件的FileList

返回的 FileItem 格式

目前将 File 对象的属性复制组成 FileItem, FileItem 组成 FileList,便于用户获取 File 对象的信息

{
  "blob": Blob,
  "fetchStatus": "success",
  "lastModified": 1552382376925,
  "lastModifiedDate": "Tue Mar 12 2019 17:19:36 GMT+0800 (中国标准时间)",
  "name": "YourImage.jpeg",
  "progress": 100,
  "size": 68905,
  "type": "image/jpeg",
  "url": "blob:http://0.0.0.0:8080/e3a87d67-a1dc-4909-b5fa-7bb3a7baad11"
}

Todo

  • 调用手机相机
  • 获取图片并渲染到浏览器
  • 解决图片 EXIF 旋转
  • 预览图片
  • 删除图片
  • 支持上传图片配置
  • 显示上传进度
  • 支持多选
  • 支持 v-model 获取 FileList
  • 接入Photoswipe,增强预览功能
  • xhr支持自定义头部和withCredentials
  • 自定义限制alert的提示语内容
  • 改为vue-cli 3.0 打包

Development

# install dependencies
npm install

# serve with hot reload at http://0.0.0.0:8080/
npm run dev

# build for production with minification
npm run build:prod

# publish package
npm version patch
npm publish

For detailed explanation on how things work, consult the docs for vue-loader.

Relevant

License

The MIT License

1.0.25

3 years ago

1.0.24

3 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

6 years ago

1.0.0

6 years ago