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.
82 lines
1.5 KiB
82 lines
1.5 KiB
let mpMixins = {} |
|
// #ifdef APP-VUE|| MP-WEIXIN || H5 |
|
import { |
|
isPC |
|
} from "./isPC" |
|
mpMixins = { |
|
data() { |
|
return { |
|
is_show: 'none' |
|
} |
|
}, |
|
watch: { |
|
show(newVal) { |
|
this.is_show = this.show |
|
} |
|
}, |
|
created() { |
|
this.swipeaction = this.getSwipeAction() |
|
if (this.swipeaction.children !== undefined) { |
|
this.swipeaction.children.push(this) |
|
} |
|
}, |
|
mounted() { |
|
this.is_show = this.show |
|
}, |
|
methods: { |
|
// wxs 中调用 |
|
closeSwipe(e) { |
|
if (!this.autoClose) return |
|
this.swipeaction.closeOther(this) |
|
}, |
|
|
|
change(e) { |
|
this.$emit('change', e.open) |
|
if (this.is_show !== e.open) { |
|
this.is_show = e.open |
|
} |
|
}, |
|
|
|
appTouchStart(e) { |
|
// #ifdef H5 |
|
if (isPC()) return |
|
// #endif |
|
const { |
|
clientX |
|
} = e.changedTouches[0] |
|
this.clientX = clientX |
|
this.timestamp = new Date().getTime() |
|
}, |
|
appTouchEnd(e, index, item, position) { |
|
// #ifdef H5 |
|
if (isPC()) return |
|
// #endif |
|
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) { |
|
// #ifdef H5 |
|
if (!isPC()) return |
|
this.$emit('click', { |
|
content: item, |
|
index, |
|
position |
|
}) |
|
// #endif |
|
} |
|
} |
|
} |
|
|
|
// #endif |
|
export default mpMixins
|
|
|