From b83ba3cc4687f21d744e9866e10e30e91229e8a4 Mon Sep 17 00:00:00 2001 From: queenwuli <942534046@qq.com> Date: Thu, 28 Jan 2021 16:23:30 +0800 Subject: [PATCH] gx --- hive-app/components/uni-swipe-action-item/mpwxs.js | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 116 insertions(+), 0 deletions(-) diff --git a/hive-app/components/uni-swipe-action-item/mpwxs.js b/hive-app/components/uni-swipe-action-item/mpwxs.js new file mode 100644 index 0000000..a0b3313 --- /dev/null +++ b/hive-app/components/uni-swipe-action-item/mpwxs.js @@ -0,0 +1,116 @@ +export default { + data() { + return { + position: [], + button: {}, + btn: "[]" + } + }, + // computed: { + // pos() { + // return JSON.stringify(this.position) + // }, + // btn() { + // return JSON.stringify(this.button) + // } + // }, + watch: { + button: { + handler(newVal) { + this.btn = JSON.stringify(newVal) + }, + deep: true + }, + show(newVal) { + if (this.autoClose) return + if (!this.button) { + this.init() + return + } + this.button.show = newVal + }, + leftOptions() { + this.init() + }, + rightOptions() { + this.init() + } + }, + created() { + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.init() + }, + beforeDestroy() { + this.swipeaction.children.forEach((item, index) => { + if (item === this) { + this.swipeaction.children.splice(index, 1) + } + }) + }, + methods: { + init() { + clearTimeout(this.swipetimer) + this.swipetimer = setTimeout(() => { + this.getButtonSize() + }, 50) + }, + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + + change(e) { + this.$emit('change', e.open) + let show = this.button.show + if (show !== e.open) { + this.button.show = e.open + } + + }, + + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + 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 + }) + } + }, + getButtonSize() { + const views = uni.createSelectorQuery().in(this) + views + .selectAll('.uni-swipe_button-group') + .boundingClientRect(data => { + let show = 'none' + if (this.autoClose) { + show = 'none' + } else { + show = this.show + } + this.button = { + data, + show + } + }) + .exec() + } + } +} -- Gitblit v1.9.1