85 lines
1.6 KiB
JavaScript
85 lines
1.6 KiB
JavaScript
|
let mpMixins = {}
|
||
|
let is_pc = null
|
||
|
// #ifdef H5
|
||
|
import {
|
||
|
isPC
|
||
|
} from "./isPC"
|
||
|
is_pc = isPC()
|
||
|
// #endif
|
||
|
// #ifdef APP-VUE|| MP-WEIXIN || H5
|
||
|
|
||
|
mpMixins = {
|
||
|
data() {
|
||
|
return {
|
||
|
is_show: 'none'
|
||
|
}
|
||
|
},
|
||
|
watch: {
|
||
|
show(newVal) {
|
||
|
this.is_show = this.show
|
||
|
}
|
||
|
},
|
||
|
created() {
|
||
|
this.swipeaction = this.getSwipeAction()
|
||
|
if (this.swipeaction && Array.isArray(this.swipeaction.children)) {
|
||
|
this.swipeaction.children.push(this)
|
||
|
}
|
||
|
},
|
||
|
mounted() {
|
||
|
this.is_show = this.show
|
||
|
},
|
||
|
methods: {
|
||
|
// wxs 中调用
|
||
|
closeSwipe(e) {
|
||
|
if (this.autoClose && this.swipeaction) {
|
||
|
this.swipeaction.closeOther(this)
|
||
|
}
|
||
|
},
|
||
|
|
||
|
change(e) {
|
||
|
this.$emit('change', e.open)
|
||
|
if (this.is_show !== e.open) {
|
||
|
this.is_show = e.open
|
||
|
}
|
||
|
},
|
||
|
|
||
|
appTouchStart(e) {
|
||
|
if (is_pc) return
|
||
|
const {
|
||
|
clientX
|
||
|
} = e.changedTouches[0]
|
||
|
this.clientX = clientX
|
||
|
this.timestamp = new Date().getTime()
|
||
|
},
|
||
|
appTouchEnd(e, index, item, position) {
|
||
|
if (is_pc) return
|
||
|
const {
|
||
|
clientX
|
||
|
} = e.changedTouches[0]
|
||
|
// fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题
|
||
|
let diff = Math.abs(this.clientX - clientX)
|
||
|
let time = (new Date().getTime()) - this.timestamp
|
||
|
if (diff < 40 && time < 300) {
|
||
|
this.$emit('click', {
|
||
|
content: item,
|
||
|
index,
|
||
|
position
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
onClickForPC(index, item, position) {
|
||
|
if (!is_pc) return
|
||
|
// #ifdef H5
|
||
|
this.$emit('click', {
|
||
|
content: item,
|
||
|
index,
|
||
|
position
|
||
|
})
|
||
|
// #endif
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// #endif
|
||
|
export default mpMixins
|