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.
89 lines
2.4 KiB
89 lines
2.4 KiB
// pages/topics/common/goodIdea/cell/index.js
|
|
import { store } from '../../../../utils/store.js'
|
|
|
|
|
|
Component({
|
|
/**
|
|
* 组件的属性列表
|
|
*/
|
|
properties: {
|
|
itemData:{
|
|
type:Object,
|
|
value:{}
|
|
},
|
|
itemIndex:Number
|
|
},
|
|
|
|
/**
|
|
* 组件的初始数据
|
|
*/
|
|
data: {
|
|
unPraise: '/images/common/zan.png',
|
|
praise: '/images/common/star_light.png',
|
|
isTouchMove:false,
|
|
startX: 0, //开始坐标
|
|
startY: 0
|
|
},
|
|
|
|
/**
|
|
* 组件的方法列表
|
|
*/
|
|
methods: {
|
|
onClickPraise(e) {
|
|
this.triggerEvent('onClickPraise', { itemData: this.properties.itemData })
|
|
},
|
|
pushTopic(){
|
|
const topicId = this.properties.itemData.topicGroupId;
|
|
wx.navigateTo({
|
|
url: `/pages/topics/interactive/topicArticle/index?topicId=${topicId}`,
|
|
})
|
|
},
|
|
touchstart: function (e) {
|
|
let { nickName } = store.readUserInfo()
|
|
if (e.currentTarget.dataset.name === nickName) {
|
|
//开始触摸时 重置所有删除
|
|
if (this.data.isTouchMove) {
|
|
this.setData({
|
|
isTouchMove: false
|
|
})
|
|
}
|
|
this.setData({
|
|
startX: e.changedTouches[0].clientX,
|
|
startY: e.changedTouches[0].clientY,
|
|
})
|
|
}
|
|
},
|
|
touchmove: function (e) {
|
|
let { nickName } = store.readUserInfo()
|
|
if (e.currentTarget.dataset.name === nickName) {
|
|
var that = this
|
|
// index = e.currentTarget.dataset.index,//当前索引
|
|
const startX = that.data.startX//开始X坐标
|
|
const startY = that.data.startY//开始Y坐标
|
|
const touchMoveX = e.changedTouches[0].clientX//滑动变化坐标
|
|
const touchMoveY = e.changedTouches[0].clientY//滑动变化坐标
|
|
//获取滑动角度
|
|
const angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY })
|
|
if (Math.abs(angle) > 30) return;
|
|
if (touchMoveX > startX) //右滑
|
|
that.setData({
|
|
isTouchMove: false
|
|
})
|
|
else //左滑
|
|
that.setData({
|
|
isTouchMove: true
|
|
})
|
|
}
|
|
|
|
},
|
|
angle: function (start, end) {
|
|
var _X = end.X - start.X,
|
|
_Y = end.Y - start.Y
|
|
//返回角度 /Math.atan()返回数字的反正切值
|
|
return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
|
|
},
|
|
del: function (e) {
|
|
this.triggerEvent('deleteTopicComment', { id: e.currentTarget.dataset.id })
|
|
}
|
|
}
|
|
})
|
|
|