diff --git a/resources/assets/js/components/DropdownMenu.vue b/resources/assets/js/components/DropdownMenu.vue index 85244808e..447fa4253 100644 --- a/resources/assets/js/components/DropdownMenu.vue +++ b/resources/assets/js/components/DropdownMenu.vue @@ -19,7 +19,10 @@ :divided="!!item.divided" :disabled="(active === item.value && !activeClick) || !!item.disabled">
-
{{language ? $L(item.label) : item.label}}
+
+
+
{{language ? $L(item.label) : item.label}}
+
@@ -46,17 +49,17 @@ export default { scrollHide: true, // 滚动立即隐藏 tickShow: true, // 是否显示打勾(默认为:true,如果 active === undefined 默认为:false) maxHeight: 0, // 滚动区域最大高度 - language: true, // 是否国际化 item.label + language: true, // 是否国际化 item.label(默认:true) - element: null, - target: null, + scrollTarget: null, + menuTarget: null, styles: {}, } }, beforeDestroy() { - if (this.target) { - this.target.removeEventListener('scroll', this.handlerEventListeners); + if (this.scrollTarget) { + this.scrollTarget.removeEventListener('scroll', this.handlerEventListeners); } }, @@ -71,7 +74,7 @@ export default { watch: { menuOperation(data) { if (data.event && data.list) { - if (this.$refs.dropdown.visible && this.element === data.event.target) { + if (this.$refs.dropdown.visible && this.menuTarget === data.event.target) { this.hide(); return; } @@ -99,7 +102,21 @@ export default { } else { this.hide() } - } + }, + + windowScrollY() { + if (!this.visible || !this.menuTarget) { + return + } + const eventRect = this.menuTarget.getBoundingClientRect(); + this.styles = { + left: `${eventRect.left}px`, + top: `${eventRect.top}px`, + width: `${eventRect.width}px`, + height: `${eventRect.height}px`, + }; + this.updatePopper(); + }, }, methods: { @@ -129,23 +146,23 @@ export default { }, setupEventListeners(event) { - this.element = event.target; - let target = this.getScrollParent(this.element); + this.menuTarget = event.target; + let target = this.getScrollParent(this.menuTarget); if (target === window.document.body || target === window.document.documentElement) { target = window; } - if (this.target) { - if (this.target === target) { + if (this.scrollTarget) { + if (this.scrollTarget === target) { return; } - this.target.removeEventListener('scroll', this.handlerEventListeners); + this.scrollTarget.removeEventListener('scroll', this.handlerEventListeners); } - this.target = target; - this.target.addEventListener('scroll', this.handlerEventListeners); + this.scrollTarget = target; + this.scrollTarget.addEventListener('scroll', this.handlerEventListeners); }, handlerEventListeners(e) { - if (!this.visible || !this.element) { + if (!this.visible || !this.menuTarget) { return } if (this.scrollHide) { @@ -153,7 +170,7 @@ export default { return; } const scrollRect = e.target.getBoundingClientRect(); - const eventRect = this.element.getBoundingClientRect(); + const eventRect = this.menuTarget.getBoundingClientRect(); if (eventRect.top < scrollRect.top || eventRect.top > scrollRect.top + scrollRect.height) { this.hide(); return; diff --git a/resources/assets/js/pages/manage/components/ChatInput/index.vue b/resources/assets/js/pages/manage/components/ChatInput/index.vue index ce1172f47..c2e1842ba 100755 --- a/resources/assets/js/pages/manage/components/ChatInput/index.vue +++ b/resources/assets/js/pages/manage/components/ChatInput/index.vue @@ -652,16 +652,7 @@ export default { }, sendContent() { - const {sendTip} = this.$refs - if (sendTip && sendTip.$refs.popper) { - sendTip.$refs.popper.style.visibility = 'hidden' - sendTip.showPopper = false - setTimeout(_ => { - if (sendTip.$refs.popper) { - sendTip.$refs.popper.style.visibility = 'visible' - } - }, 300) - } + this.tempHiddenSendTip(); return this.sendClass === 'recorder' ? '长按录音' : '发送' }, @@ -1370,6 +1361,10 @@ export default { break; case 'click': + if (this.showMenu) { + this.tempHiddenSendTip() + this.showMenu = false; + } if (this.touchFocus) { this.quill.blur(); this.quill.focus(); @@ -2318,6 +2313,19 @@ export default { mention.setMentionContainerPosition() } }, + + tempHiddenSendTip() { + const {sendTip} = this.$refs + if (sendTip && sendTip.$refs.popper) { + sendTip.$refs.popper.style.visibility = 'hidden' + sendTip.showPopper = false + setTimeout(_ => { + if (sendTip.$refs.popper) { + sendTip.$refs.popper.style.visibility = 'visible' + } + }, 300) + } + }, } } diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index 4b0b3181f..9e8684498 100755 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -174,22 +174,7 @@
@@ -279,22 +264,11 @@
{{$L('重复周期')}}
-