You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

171 lines
4.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// components/picshow/picshow.js
import {
lookup
} from '../../utils/util'
Component({
/**
* 组件的属性列表
*/
properties: {
tempPics: {
type: Object,
value: {}
}
},
/**
* 组件的初始数据
*/
data: {
columnsHeight: [0, 0],
isLoading: true,
columns: [
[],
[]
],
cdn: getApp().globalData.cdn,
count: 0
},
/**
* 组件的方法列表
*/
methods: {
//获取图片尺寸数据
loadPic(e) {
var that = this,
data = that.data,
tempPics = data.tempPics,
count = data.count,
length = parseInt(data.tempPics.length)
// if (tempPics[index]) {
// //以750为宽度算出相对应的高度
// tempPics[index].height = e.detail.height * 750 / e.detail.width
// tempPics[index].isLoad = true
// }
// that.setData({
// tempPics: tempPics
// }, function () {
// that.finLoadPic()
// })
// for (let count = 0; count < tempPics.length; count++) {
console.log(count, length)
if (count === length) {
console.log('完成')
} else {
if (tempPics[count].type === 1) {
console.log(that.data.cdn + tempPics[count].coverUrl)
wx.getImageInfo({
src: that.data.cdn + tempPics[count].coverUrl,
success(res) {
console.log('videosuccess', res)
},
fail(res) {
console.log('videofail', res)
},
complete() {
count++
that.setData({
count: count
})
that.loadPic()
}
})
} else {
let src = that.data.cdn + tempPics[count].fileUrl
console.log(src)
wx.getImageInfo({
src: src,
success(res) {
console.log('imagesuccess', res)
},
fail(res) {
console.log('imagefail', res)
},
complete() {
count++
that.setData({
count: count
})
that.loadPic()
}
})
}
}
// }
},
//图片加载错误处理
loadPicError: function (e) {
var that = this,
data = that.data,
tempPics = data.tempPics,
index = e.currentTarget.dataset.index
if (tempPics[index]) {
//图片加载错误时高度固定750展示为正方形
tempPics[index].height = 750
tempPics[index].isLoad = true
}
that.setData({
tempPics: tempPics
}, function () {
that.finLoadPic()
})
},
//判断图片是否加载完成
finLoadPic: function () {
var that = this,
data = that.data,
tempPics = data.tempPics,
length = tempPics.length,
fin = true
for (var i = 0; i < length; i++) {
if (!tempPics[i].isLoad) {
fin = false
break
}
}
if (fin) {
// wx.hideLoading()
if (that.data.isLoading) {
that.data.isLoading = false
that.renderPage()
}
}
},
//渲染到瀑布流
renderPage: function () {
var that = this,
data = that.data,
columns = data.columns,
tempPics = data.tempPics,
length = tempPics.length,
columnsHeight = that.data.columnsHeight,
index = 0
for (var i = 0; i < length; i++) {
index = columnsHeight[1] < columnsHeight[0] ? 1 : 0
columns[index].push(tempPics[i])
columnsHeight[index] += tempPics[i].height
}
that.setData({
columns: columns,
tempPics: []
})
that.data.columnsHeight = columnsHeight
},
//加载数据
loadData: function () {
var that = this
if (!that.data.isLoading) {
wx.showLoading()
this.setData({
isLoading: true
})
console.log(this.data.tempPics)
}
},
//跳转详情
to(e) {
lookup(e.currentTarget.dataset.item)
},
}
})