diff --git a/public/css/fonts/taskfont.ttf b/public/css/fonts/taskfont.ttf index 6f5a16056..b1d1a6e88 100644 Binary files a/public/css/fonts/taskfont.ttf and b/public/css/fonts/taskfont.ttf differ diff --git a/public/css/fonts/taskfont.woff b/public/css/fonts/taskfont.woff index 425a2e03c..5db422e53 100644 Binary files a/public/css/fonts/taskfont.woff and b/public/css/fonts/taskfont.woff differ diff --git a/public/css/fonts/taskfont.woff2 b/public/css/fonts/taskfont.woff2 index f8f69b1a0..874947129 100644 Binary files a/public/css/fonts/taskfont.woff2 and b/public/css/fonts/taskfont.woff2 differ diff --git a/resources/assets/js/pages/manage/components/DialogView.vue b/resources/assets/js/pages/manage/components/DialogView.vue index 4112c5bcf..4683fba69 100644 --- a/resources/assets/js/pages/manage/components/DialogView.vue +++ b/resources/assets/js/pages/manage/components/DialogView.vue @@ -1,5 +1,5 @@ @@ -137,14 +139,41 @@ :visible="operateVisible" @on-clickoutside="operateVisible = false" @on-click="onOperate" + transferClassName="dialog-wrapper-operate" transfer>
- {{ $L('转发') }} - {{ $L('撤回') }} + +
+ {{ $L('复制') }} + +
+
+ +
+ {{ $L('转发') }} + +
+
+ +
+ {{ $L('撤回') }} + +
+
@@ -275,8 +304,9 @@ export default { wrapperStyle: {}, - operateStyles: {}, operateVisible: false, + operateHasText: false, + operateStyles: {}, operateItem: {}, } }, @@ -785,8 +815,9 @@ export default { }, onLongpress({event, el, msgData}) { - this.operateVisible = false; + this.operateVisible = this.operateItem.id === msgData.id; this.operateItem = $A.isJson(msgData) ? msgData : {}; + this.operateHasText = msgData.type === 'text' && msgData.msg.text.replace(/<[^>]+>/g,"").length > 0 this.$nextTick(() => { const projectRect = el.getBoundingClientRect(); const wrapRect = this.$el.getBoundingClientRect(); @@ -801,6 +832,19 @@ export default { onOperate(name) { switch (name) { + case "copy": + if (this.operateHasText) { + const text = this.operateItem.msg.text.replace(/<[^>]+>/g,""); + this.$copyText(text).then(_ => { + $A.messageSuccess('复制成功'); + }).catch(_ => { + $A.messageError('复制失败'); + }); + } else { + $A.messageWarning('不可复制的内容'); + } + break; + case "forward": this.onForward('open') break; diff --git a/resources/assets/js/pages/manage/components/FileContent.vue b/resources/assets/js/pages/manage/components/FileContent.vue index 58d8f5470..0157c2d86 100644 --- a/resources/assets/js/pages/manage/components/FileContent.vue +++ b/resources/assets/js/pages/manage/components/FileContent.vue @@ -430,10 +430,10 @@ export default { if (!this.linkData.url) { return; } - this.$copyText(this.linkData.url).then(() => { - $A.messageSuccess(this.$L('复制成功!')); - }, () => { - $A.messageError(this.$L('复制失败!')); + this.$copyText(this.linkData.url).then(_ => { + $A.messageSuccess('复制成功'); + }).catch(_ => { + $A.messageError('复制失败'); }); }, diff --git a/resources/assets/js/pages/manage/components/ProjectPanel.vue b/resources/assets/js/pages/manage/components/ProjectPanel.vue index f40960c69..78074c0ac 100644 --- a/resources/assets/js/pages/manage/components/ProjectPanel.vue +++ b/resources/assets/js/pages/manage/components/ProjectPanel.vue @@ -1321,10 +1321,10 @@ export default { if (!this.inviteData.url) { return; } - this.$copyText(this.inviteData.url).then(() => { - $A.messageSuccess(this.$L('复制成功!')); - }, () => { - $A.messageError(this.$L('复制失败!')); + this.$copyText(this.inviteData.url).then(_ => { + $A.messageSuccess('复制成功'); + }).catch(_ => { + $A.messageError('复制失败'); }); }, diff --git a/resources/assets/js/pages/manage/file.vue b/resources/assets/js/pages/manage/file.vue index bc9a942bf..729fed4ab 100644 --- a/resources/assets/js/pages/manage/file.vue +++ b/resources/assets/js/pages/manage/file.vue @@ -1179,10 +1179,10 @@ export default { if (!this.linkData.url) { return; } - this.$copyText(this.linkData.url).then(() => { - $A.messageSuccess(this.$L('复制成功!')); - }, () => { - $A.messageError(this.$L('复制失败!')); + this.$copyText(this.linkData.url).then(_ => { + $A.messageSuccess('复制成功'); + }).catch(_ => { + $A.messageError('复制失败'); }); }, diff --git a/resources/assets/sass/element.scss b/resources/assets/sass/element.scss index 0df34d3c5..6607f15e7 100644 --- a/resources/assets/sass/element.scss +++ b/resources/assets/sass/element.scss @@ -15,6 +15,9 @@ $--dropdown-menuItem-hover-color: #606266; @import "~element-ui/packages/theme-chalk/src/dropdown-item"; @import "~element-ui/packages/theme-chalk/src/notification"; +.el-dropdown-menu { + user-select: none; +} .el-dropdown-menu__item { min-width: 100px; diff --git a/resources/assets/sass/pages/common.scss b/resources/assets/sass/pages/common.scss index f7fefd2b7..31a992d4f 100755 --- a/resources/assets/sass/pages/common.scss +++ b/resources/assets/sass/pages/common.scss @@ -58,6 +58,7 @@ body { } .ivu-select-dropdown { + user-select: none; max-height: 360px; &.select-node { diff --git a/resources/assets/sass/pages/components/dialog-wrapper.scss b/resources/assets/sass/pages/components/dialog-wrapper.scss index b73d56427..36d3cf396 100644 --- a/resources/assets/sass/pages/components/dialog-wrapper.scss +++ b/resources/assets/sass/pages/components/dialog-wrapper.scss @@ -219,6 +219,14 @@ max-width: 70%; } + &.operate-action { + .dialog-head { + .dialog-content { + box-shadow: 0 1px 6px rgba(0, 0, 0, 0.2); + } + } + } + .dialog-username { max-width: 100%; height: 22px; @@ -237,6 +245,7 @@ border-radius: 2px 8px 8px 8px; display: flex; align-items: flex-start; + transition: box-shadow 0.3s ease; &.an-emoticon, &.an-emoji, @@ -931,6 +940,18 @@ } } +.dialog-wrapper-operate { + .operate-item { + display: flex; + align-items: center; + justify-content: space-between; + min-width: 80px; + .taskfont { + margin-left: 24px; + } + } +} + @media (max-width: 768px) { .dialog-wrapper { .dialog-nav { @@ -1009,6 +1030,18 @@ padding-right: 14px; padding-left: 14px; overscroll-behavior: none; + + .dialog-item { + .dialog-view { + user-select: none; + + &.operate-action { + .content-text { + user-select: text; + } + } + } + } } .dialog-footer { background-color: #f8f8f8; diff --git a/resources/assets/statics/public/css/fonts/taskfont.ttf b/resources/assets/statics/public/css/fonts/taskfont.ttf index 6f5a16056..b1d1a6e88 100644 Binary files a/resources/assets/statics/public/css/fonts/taskfont.ttf and b/resources/assets/statics/public/css/fonts/taskfont.ttf differ diff --git a/resources/assets/statics/public/css/fonts/taskfont.woff b/resources/assets/statics/public/css/fonts/taskfont.woff index 425a2e03c..5db422e53 100644 Binary files a/resources/assets/statics/public/css/fonts/taskfont.woff and b/resources/assets/statics/public/css/fonts/taskfont.woff differ diff --git a/resources/assets/statics/public/css/fonts/taskfont.woff2 b/resources/assets/statics/public/css/fonts/taskfont.woff2 index f8f69b1a0..874947129 100644 Binary files a/resources/assets/statics/public/css/fonts/taskfont.woff2 and b/resources/assets/statics/public/css/fonts/taskfont.woff2 differ