109 lines
2.6 KiB
JavaScript
109 lines
2.6 KiB
JavaScript
// mycomponent/Waterfalls_flow.js
|
|
var colOneHeight = 0;
|
|
var colTwoHeight = 0;
|
|
Component({
|
|
/**
|
|
* 组件的属性列表
|
|
*/
|
|
properties: {
|
|
goodsData: {
|
|
type: null,
|
|
},
|
|
datas: {
|
|
type: null,
|
|
},
|
|
},
|
|
|
|
lifetimes: {
|
|
attached: function () {
|
|
// 在组件实例进入页面节点树时执行
|
|
colOneHeight = 0;
|
|
colTwoHeight = 0;
|
|
},
|
|
},
|
|
|
|
/**
|
|
* 组件的初始数据
|
|
*/
|
|
data: {
|
|
activitys1: [],
|
|
activitys2: [],
|
|
showLoading: false,
|
|
imgCount: 0,
|
|
},
|
|
|
|
/**
|
|
* 组件的方法列表
|
|
*/
|
|
methods: {
|
|
jumpDetails(e) {
|
|
let stick_id = e.currentTarget.dataset.stickid;
|
|
wx.navigateTo({
|
|
url: "/packageC/micro_communities/microCommentDetails/microCommentDetails?stickId=" +
|
|
stick_id,
|
|
});
|
|
},
|
|
onImageError(options) {
|
|
// let currentId = options.currentTarget.id;
|
|
console.log("图片加载发生错误");
|
|
this.data.imgCount += 1;
|
|
this.onImageLoad({
|
|
currentTarget: {
|
|
id: options.currentTarget.id,
|
|
},
|
|
detail: {
|
|
width: 160,
|
|
height: 160
|
|
},
|
|
type: 'error'
|
|
});
|
|
},
|
|
/**
|
|
* 图片加载函数
|
|
* 图片加载完成后,根据图片的高度,依次往第一列和第二列中推入数据
|
|
*/
|
|
onImageLoad(options) {
|
|
let currentId = options.currentTarget.id;
|
|
let imageWidth = options.detail.width; // 图片宽度
|
|
let imageHeight = options.detail.height; // 图片高度
|
|
let activitys = this.data.goodsData; // 获取所有的数据资源
|
|
let activityObj = null;
|
|
let scle = imageWidth / imageHeight;
|
|
|
|
for (let i = 0; i < activitys.length; i++) {
|
|
if (activitys[i].id == currentId) {
|
|
if(options.type == 'error'&&activitys[i].has_many_image[0]){
|
|
activitys[i].has_many_image[0].url = "https://mini-app-img-1251768088.cos.ap-guangzhou.myqcloud.com/img_404.png";
|
|
}
|
|
activityObj = activitys[i];
|
|
break;
|
|
}
|
|
}
|
|
|
|
this.data.imgCount += 1;
|
|
let activitys1 = this.data.activitys1;
|
|
let activitys2 = this.data.activitys2;
|
|
|
|
if (colOneHeight <= colTwoHeight) {
|
|
colOneHeight += 176 / scle + 60;
|
|
activitys1.push(activityObj);
|
|
} else {
|
|
colTwoHeight += 176 / scle + 60;
|
|
activitys2.push(activityObj);
|
|
}
|
|
|
|
let data = {
|
|
activitys1: activitys1,
|
|
activitys2: activitys2,
|
|
};
|
|
|
|
if (this.data.imgCount >= this.data.goodsData.length) {
|
|
this.setData({
|
|
showLoading: true,
|
|
});
|
|
}
|
|
|
|
this.setData(data);
|
|
},
|
|
},
|
|
}); |