From afcbd6af92ab192b2f586328212426ce66932c8a Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 31 May 2024 13:24:43 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E7=A7=BB=E5=8A=A8=E7=AB=AF=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=BF=AB=E9=80=9F=E7=BC=96=E8=BE=91=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/js/components/TEditorTask.vue | 40 ++++++++++++++----- .../js/pages/manage/components/TaskDetail.vue | 26 ++++++------ 2 files changed, 44 insertions(+), 22 deletions(-) diff --git a/resources/assets/js/components/TEditorTask.vue b/resources/assets/js/components/TEditorTask.vue index 04e9fdfa3..fa700b01a 100755 --- a/resources/assets/js/components/TEditorTask.vue +++ b/resources/assets/js/components/TEditorTask.vue @@ -22,10 +22,11 @@ transfer>
+ {{ $L(operateMenu.checked === 'checked' ? '标记未选' : '标记已选') }} + {{ $L('打开链接') }} + {{ $L('查看图片') }} {{ $L('编辑描述') }} {{ $L('历史记录') }} - {{ $L('打开链接') }} - {{ $L('查看图片') }} @@ -101,8 +102,12 @@ export default { operateStyles: {}, operateVisible: false, - operateLink: null, - operateImg: null, + operateMenu: { + target: null, + checked: null, + link: null, + img: null, + }, listener: null, }; @@ -185,8 +190,13 @@ export default { } event.stopPropagation() this.operateVisible = false; - this.operateLink = event.target.tagName === "A" ? event.target.href : null; - this.operateImg = event.target.tagName === "IMG" ? event.target.src : null; + this.operateMenu.target = event.target; + this.operateMenu.checked = null; + if (event.target.tagName === "LI" && event.target.parentNode.classList.contains("tox-checklist")) { + this.operateMenu.checked = event.target.classList.contains("tox-checklist--checked") ? 'checked' : 'unchecked'; + } + this.operateMenu.link = event.target.tagName === "A" ? event.target.href : null; + this.operateMenu.img = event.target.tagName === "IMG" ? event.target.src : null; this.$nextTick(() => { const rect = this.$el.getBoundingClientRect(); this.operateStyles = { @@ -257,9 +267,21 @@ export default { }); }, + onLiPreview() { + if (!this.operateMenu.checked) { + return; + } + if (this.operateMenu.checked === 'checked') { + this.operateMenu.target.classList.remove("tox-checklist--checked"); + } else { + this.operateMenu.target.classList.add("tox-checklist--checked"); + } + this.$emit('on-blur', 'force'); + }, + onLinkPreview() { - if (this.operateLink) { - window.open(this.operateLink); + if (this.operateMenu.link) { + window.open(this.operateMenu.link); } }, @@ -269,7 +291,7 @@ export default { $A.messageWarning("没有可预览的图片") return; } - let index = Math.max(0, array.findIndex(item => item.src === this.operateImg)); + let index = Math.max(0, array.findIndex(item => item.src === this.operateMenu.img)); this.$store.dispatch("previewImage", {index, list: array}) }, } diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index 5877f1f1e..1fa13727f 100755 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -141,7 +141,7 @@ :value="taskContent" :placeholder="$L('详细描述...')" @on-history="onHistory" - @on-blur="updateBlur('content')"/> + @on-blur="updateBlur('content', $event)"/>
@@ -1083,20 +1083,20 @@ export default { if (content == this.taskContent.replace(/\s+original-(width|height)="[^"]*"/g, "")) { return; } - if (this.windowTouch) { - $A.modalConfirm({ - title: '温馨提示', - content: '是否保存编辑内容?', - onOk: () => { - this.updateData("contentSave", {content}) - }, - onCancel: () => { - this.$refs.desc.updateContent(this.taskContent); - } - }); - } else { + if (!this.windowTouch || params === 'force') { this.updateData("contentSave", {content}) + return; } + $A.modalConfirm({ + title: '温馨提示', + content: '是否保存编辑内容?', + onOk: () => { + this.updateData("contentSave", {content}) + }, + onCancel: () => { + this.$refs.desc.updateContent(this.taskContent); + } + }); return; case 'contentSave':