@forzoom/uploader
v0.3.0
Published
uploader component
Downloads
80
Readme
Install
npm install @forzoom/uploader
Desc
提供三种组件
- Uploader
- WechatUploader
- InputUploader
Usage
import Vue from 'vue';
import Uploader from '@forzoom/uploader';
Vue.use(Uploader, {
.. // 额外配置
})
WechatUploader
大致上存在四种元素,分别是“容器”,“图片元素”,“添加按钮”,“图片容器” 嵌套结构为
1. “容器”
2. “图片容器”
3. “图片元素”
3. 其他元素
2. “添加按钮”
上图中,“咖啡”图片实际上有一个“图片容器”和一个“图片元素”组成 第三个是一个“添加按钮” 点击添加按钮能够调用JSSDK中的图片上传逻辑
根据需要,可以使用Props中的样式内容修改不同元素的样式
Props
|名称|默认|说明| |---|---|---| |size|1|允许最大上传图片数量| |canModify|true|是否允许修改| |containerClass|{}|“容器”元素样式类| |containerStyle|{}|“容器”元素样式| |imageClass|{}|每个“图片元素”样式类| |imageStyle|{}|每个“图片元素”样式| |requestClass|{}|“添加按钮”样式类| |requestStyle|{}|“添加按钮”样式| |imageWrapClass|{}|“图片容器”样式类| |imageWrapStyle|{}|“图片容器”样式| |useWechatPreview|true|是否使用微信JSSDK预览| |lazyload|false|是否使用vue-lazyload|
Events
|名称|参数|说明| |---|---|---| |load |无 |图片上传到微信服务器开始| |finish |无 |图片上传到微信服务器结束| |add | { localId, serverId, } |有图片增加| |remove |index (被删除图片位置)|有图片被删除| |click |index (被点击图片位置)|当正在显示的图片被点击| |choose | { localIds } |图片来源| |startRequest |无 |request开始| |endRequest |无 |request结束| |error |错误信息 |发生错误|
load
图片开始上传到微信服务器,一般配置finish事件使用
<WechatUploader @load="onLoad">
</WechatUploader>
export default {
methods: {
onLoad() {
// 展示加载动画
},
},
};
finish
图片上传到微信服务器结束,一般配置load事件使用
<WechatUploader @finish="onFinish">
</WechatUploader>
export default {
methods: {
onFinish() {
// 隐藏加载动画
},
},
};
函数
|名称|参数|说明| |---|---|---| |request|无|发起图片上传| |removeAll|无|删除所有图片| |setImages|无|设置默认显示的图片| |getImages|无|获得所有图片|
Example
WechatUploader.setImages
设置uploader中默认的图片内容(注意,如果uploader被销毁的情况下,设置的内容自然也会消失)
html
<!-- size="4": 显示多少个图片 -->
<!-- can-modify="false": 不允许修改,只允许查看 -->
<WechatUploader
ref="uploader"
:size="4"
:can-modify="true">
</WechatUploader>
script
this.$refs.uploader.setImages([
{
image: '...', // 可以是url或者localId
serverId: '...', // 可以不传入
},
]);
WechatUploader.getImages
获得uploader中当前的图片内容
const images = this.$refs.uploader.getImages();
// 结果是
[
{
image: '...',
serverId: '...',
},
]
Types
// 表示<Uploader>组件的interface
export interface UploaderComponent {..}
// 表示<WechatUploader>组件的interface
export interface WechatUploaderComponent {..}
// 表示<InputUploader>组件的interface
export interface InputUploaderComponent {..}
ImageInfo
图片信息
- key: 文件在后端的标识符
- url: 表示图片存储在网络上的地址。
- image: 表示可以用来展示的图片内容,一般是 WechatUploader。
- mode: 'input' | 'wechat'
- localId: 微信jssdk中的localId
- serverId: 微信jssdk中的serverId
- file: 图片文件
- objectUrl: 有file转换而成的objectUrl,单独使用一个变量是因为需要调用revoke方法进行资源释放。
Roadmap
- image之间添加间距
- 更新rollup版本
- 目前会忽略chooseImage中的cancel和error信息
- transformLocalImageData是否没有用了