基于 muse-ui 封装一个微信公众号上传插件 实现多图上传
Vue.component('my-wx-upload', {
template: `
<mu-grid-list :cols="3" :cellHeight="90">
<mu-grid-tile titleBarClass v-for="img, index in readyUploadImages" :key="index">
<img :src="img" @click="preview(img)"/>
<div slot="action">
<i @click="remove(index)" class="iconfont icondelete" style="color: white;font-size: 2em;"></i>
</div>
</mu-grid-tile>
<mu-grid-tile v-show="uploadIsFull" hideTitleBarClass>
<img @click="add" imgAdd
src="/assets/public/wx/cms/img/add.jpg"/>
</mu-grid-tile>
</mu-grid-list>
`,
props: {
imgList: {type: Array},
chooseImage: {type: Number, default: 9},
},
data() {
return {
readyUploadImages: []
}
},
mounted() {
this.readyUploadImages = this.imgList
},
methods: {
remove(index) {
this.readyUploadImages.splice(index, 1)
},
add() {
wx.chooseImage({
count: this.oddchooseImageCount, // 最多可以选择的图片张数,默认9
sizeType: ['original'], // original 原图,compressed 压缩图,默认二者都有
sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
success: res => {
this.readyUploadImages = this.readyUploadImages.concat(res.localIds);
// myUpImageBlock
},
fail: function () {
// fail
},
complete: function () {
// complete
}
})
},
preview(img) {
wx.previewImage({
current: img, // 当前显示图片的http链接
urls: this.readyUploadImages // 需要预览的图片http链接列表
});
}
},
computed: {
oddchooseImageCount() {
return this.chooseImage - this.readyUploadImages.length;
},
uploadIsFull() {
return this.readyUploadImages.length !== this.chooseImage
}
},
watch: {
readyUploadImages(val) {
this.$emit('update:imgList', val)
}
}
});
调用方法
<my-wx-upload :img-list.sync="传入一个数组"></my-wx-upload>
上传方法
WxUploadImage(imgList) {
return new Promise((resolve, reject) => {
if (imgList && imgList instanceof Array && imgList.length > 0) {
let promiseList = [];
for (let i = 0; i < imgList.length; i++) {
promiseList[i] = new Promise((resolve, reject) => {
wx.uploadImage({
localId: imgList[i],
success: res => {
resolve(res.serverId);
},
fail: error => {
reject(error);
}
})
});
}
Promise.all(promiseList)
.then(result => {
resolve(result);
})
.then(error => {
reject(error);
})
} else {
reject('传参有误,请传数组格式');
}
})
}
调用方法
this.WxUploadImage(this.imageList).then(res => {
});
基于 muse-ui 封装一个微信公众号上传插件 实现多图上传的更多相关文章
- 在微信框架模块中,基于Vue&Element前端的微信公众号和企业微信的用户绑定
在一个和微信相关的业务管理系统,我们有时候需要和用户的微信账号信息进行绑定,如对公众号.企业微信等账号绑定特定的系统用户,可以进行扫码登录.微信信息发送等操作,用户的绑定主要就是记录公众号用户的ope ...
- 从Python爬虫到SAE云和微信公众号:二、新浪SAE上搭建微信服务
目的:用PHP在SAE上搭建一个微信公众号的服务器. 1.申请一个SAE云账号 SAE申请地址:http://sae.sina.com.cn/ 可以使用微博账号登陆,SAE是新浪的云服务,时间也比较 ...
- 基于IdentityServer的系统对接微信公众号
业务需求 公司有两个业务系统,A和B,AB用户之间属于多对一的关系,数据库里面也就是两张表,A表有个外键指向B.现在需要实现以下几个功能. A用户扫描B的二维码,填写相关的注册信息,注册完成之后自动属 ...
- 用iframe嵌入了一个微信公众号平台文章的URL
JS: $.ajaxPrefilter( function (options) { if (options.crossDomain && jQuery.support.cors) { ...
- 用laravel搭一个微信公众号后台
我使用的是laravel5.2, 早期版本可能不适合下面的方法. 在routes.php写下接收微信服务器post请求的路径: Route::post('wechatmp', 'WechatContr ...
- PHP 微信公众号真正正确的客服头像上传
首先我们来看官方文档 这TM的搞笑呢 什么破玩意儿! 需要条件 1 需要有一个客服的账号 (废话) 2 一致jpg格式的图片(扯蛋) 完整流程 1 获取access_token 2获取账号 3 $ur ...
- 5-网页,网站,微信公众号基础入门(配置网站--PHP配置上数据库)
https://www.cnblogs.com/yangfengwu/p/11037653.html php和数据库打交道,这样整个网页就完美了,有了数据存储,交互,动态网页才完美 首先修改下php. ...
- 使用NW.js封装微信公众号菜单编辑器为桌面应用
开发微信公众号的朋友都会遇到一个常见的需求就是修改自定义菜单,如果每个人都去开发这个不经常使用的功能确实有点浪费时间.前段时间在github上找到一个仿企业号的菜单编辑界面,结合微信的C# SDK开发 ...
- ABP入门系列(15)——创建微信公众号模块
ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 现在的互联网已不在仅仅局限于网页应用,IOS.Android.平板.智能家居等平台正如 ...
随机推荐
- 练习二十:python计算皮球下落速度练习题
问题简述:假设一个皮球从100米高度自由落下.条件,每次落地后反跳回原高度的一般,在落下 要求:算出皮球,在第十次落地时,共经过多少米?第十次反弹多高? 方法一: h,sum1 = 100,100 # ...
- jquery——选项卡
下面是闭包做选项卡: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 关于String的split方法
在做剑指offer的时候,有一道替换空格的题,立刻就想到用这个split方法来做,但发现,这个方法会丢掉字符串最后的空格??? 百度后,知道原因,这里直接复制粘贴了: 在使用java中的split按照 ...
- 创作了一个xml的替代格式
xml格式: <?xml version="1.0" encoding="GB2312"?> <Relations> <Relat ...
- SVN Working copy '***' locked
问题描述: 用svn在项目文件夹下commit或者update时会出现错误提示“working copy locked” 解决方法: 1.在项目文件夹下,单击鼠标右键,选择tortoisesvn-&g ...
- 【Android车载系统 News | Tech 5】车载设计开发
1. 基于Android的车载移动终端系统的研究与开发 http://wenku.baidu.com/link?url=hIKlQ2myEmR8N0CA28a_SLzLA2Q9R5Xpk20OJ53h ...
- Callable的简单使用
说起java的线程操作,都会想到Thread和Runable这两个, 这两个类可以实现异步和同步. 在大多数的java开发中, 这两个都是实现异步的线程来使用, 但是现在考虑一种情况: 发出一条线程, ...
- Check-Point-Security-Gateway-BYOL-R77.30-041.161
平台: CentOS 类型: 虚拟机镜像 软件包: checkpoint redhat smartconsole basic software security vfw 服务优惠价: 按服务商许可协议 ...
- python 之Requests库学习笔记
1. Requests库安装 Windows平台安装说明: 直接以管理员身份打开cmd运行界面,使用pip管理工具进行requests库的安装. 具体安装命令如下: >pip instal ...
- hihoCoder hiho一下 第一周 #1032 : 最长回文子串 (Manacher)
题意:给一个字符串,求最长回文子串的长度. 思路: (1)暴力穷举.O(n^3) -----绝对不行. 穷举所有可能的出现子串O(n^2),再判断是否回文O(n).就是O(n*n*n)了. (2)记录 ...