157 lines
3.9 KiB
JavaScript
157 lines
3.9 KiB
JavaScript
// mycomponent/yz_uploader/yz_uploader.js
|
|
var app = getApp();
|
|
Component({
|
|
/**
|
|
* 组件的属性列表
|
|
*/
|
|
properties: {
|
|
max_count:{
|
|
value:100,
|
|
type:Number
|
|
},
|
|
customStyle:{
|
|
value:'',
|
|
type:String
|
|
},
|
|
customImgStyle:{
|
|
value:'',
|
|
type:String
|
|
},
|
|
customIconStyle:{
|
|
value:'',
|
|
type:String
|
|
},
|
|
customBoxStyle:{
|
|
value:'',
|
|
type:String
|
|
},
|
|
isSlot:{
|
|
value:false,
|
|
type:Boolean
|
|
},
|
|
fileSrc:{
|
|
value:'',
|
|
type:[String,Array]
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 组件的初始数据
|
|
*/
|
|
data: {
|
|
fileList1: [],
|
|
fileImg:[]
|
|
},
|
|
|
|
observers:{
|
|
'fileSrc'(newVal,oldVal){
|
|
if(newVal!='' && !Array.isArray(newVal)){
|
|
this.setData({
|
|
fileList1:[newVal]
|
|
});
|
|
}else if(newVal!='' && Array.isArray(newVal)){
|
|
console.log(newVal);
|
|
this.setData({
|
|
fileList1:newVal
|
|
});
|
|
}
|
|
}
|
|
},
|
|
created(){
|
|
console.log(this,this.slot);
|
|
},
|
|
/**
|
|
* 组件的方法列表
|
|
*/
|
|
methods: {
|
|
updateImages() {
|
|
// console.log(that.data.fileList1);
|
|
this.triggerEvent('updateImages', this.data.fileList1);
|
|
},
|
|
//预览图片,放大预览
|
|
preview(e) {
|
|
let currentUrl = e.currentTarget.dataset.src;
|
|
wx.previewImage({
|
|
current: this.data.fileList1[currentUrl], // 当前显示图片的http链接
|
|
urls: this.data.fileList1 // 需要预览的图片http链接列表
|
|
});
|
|
},
|
|
delIntu_1(e) {
|
|
let del = e.currentTarget.id;
|
|
let url = this.data.fileList1.splice(del, 1);
|
|
this.setData({
|
|
fileList1: this.data.fileList1,
|
|
fileImg: this.data.fileImg.splice(del,1)
|
|
});
|
|
this.triggerEvent("delete",{url,index:del});
|
|
this.updateImages();
|
|
this.triggerEvent('inputimg',this.data.fileImg)
|
|
},
|
|
onRead_1() {
|
|
let that = this;
|
|
let ig = '1';
|
|
wx.chooseImage({
|
|
count: this.data.max_count-this.data.fileList1.length,
|
|
sizeType: ['original', 'compressed'],
|
|
sourceType: ['album', 'camera'],
|
|
success(res) {
|
|
// console.log(res.tempFilePaths);
|
|
that.triggerEvent('beforeUp', res.tempFilePaths);
|
|
that.unload({
|
|
tempFilePaths: res.tempFilePaths
|
|
}, ig);
|
|
}
|
|
});
|
|
},
|
|
//多张上传方法
|
|
unload(data, ig) {
|
|
let urlStr = app.getNetAddresss("upload.uploadPic");
|
|
var that = this,
|
|
i = data.i ? data.i : 0,
|
|
success = data.success ? data.success : 0,
|
|
fail = data.fail ? data.fail : 0;
|
|
wx.showLoading({
|
|
title: '正在上传',
|
|
});
|
|
wx.uploadFile({
|
|
url: urlStr,
|
|
filePath: data.tempFilePaths[i],
|
|
name: 'file',
|
|
formData: null,
|
|
success(resdata) {
|
|
var res = JSON.parse(resdata.data);
|
|
// console.log(res.data.img_url);
|
|
if (ig == '1') {
|
|
that.data.fileList1.push(res.data.img_url);
|
|
that.setData({
|
|
fileList1: that.data.fileList1,
|
|
});
|
|
that.triggerEvent('successUp', {res,list:that.data.fileList1});
|
|
// console.log(that.data.fileList1);
|
|
that.updateImages();
|
|
that.data.fileImg.push(res.data.img)
|
|
that.triggerEvent('inputimg',that.data.fileImg)
|
|
}
|
|
},
|
|
fail(e) {
|
|
fail++;
|
|
},
|
|
complete(e) {
|
|
wx.hideLoading();
|
|
i++;
|
|
if (i == data.tempFilePaths.length) { //当图片传完时,停止调用
|
|
console.log('执行完毕');
|
|
console.log('成功:' + success + " 失败:" + fail);
|
|
} else { //若图片还没有传完,则继续调用函数
|
|
data.i = i;
|
|
data.success = success;
|
|
data.fail = fail;
|
|
that.unload(data, ig); //递归,回调自己
|
|
}
|
|
}
|
|
});
|
|
|
|
},
|
|
}
|
|
});
|