From c13f65611f063c7ab622f62a48205b510a75a5fd Mon Sep 17 00:00:00 2001 From: kuaifan Date: Mon, 7 Mar 2022 01:15:10 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=96=B0=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E6=89=93=E5=BC=80=E7=9A=84=E4=BB=BB=E5=8A=A1=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/pages/manage/components/TaskDetail.vue | 31 +++++++++++++------ resources/assets/js/pages/single/task.vue | 25 ++++++++++++++- resources/assets/js/store/actions.js | 6 ++-- 3 files changed, 48 insertions(+), 14 deletions(-) diff --git a/resources/assets/js/pages/manage/components/TaskDetail.vue b/resources/assets/js/pages/manage/components/TaskDetail.vue index 3ffe092d3..19fa43445 100644 --- a/resources/assets/js/pages/manage/components/TaskDetail.vue +++ b/resources/assets/js/pages/manage/components/TaskDetail.vue @@ -19,7 +19,7 @@ :rows="1" :autosize="{ minRows: 1, maxRows: 8 }" :maxlength="255" - @on-blur="updateData('name')" + @on-blur="updateBlur('name')" @on-keydown="onNameKeydown"/>
@@ -152,7 +152,7 @@ :options="taskOptions" :option-full="taskOptionFull" :placeholder="$L('详细描述...')" - @on-blur="updateData('content')" + @on-blur="updateBlur('content')" inline/>
@@ -315,7 +315,8 @@ :key="key" :task-id="task.id" :open-task="task" - :main-end-at="taskDetail.end_at"/> + :main-end-at="taskDetail.end_at" + :can-update-blur="canUpdateBlur"/>
  • @@ -452,6 +453,11 @@ export default { mainEndAt: { default: null }, + // 允许失去焦点更新 + canUpdateBlur: { + type: Boolean, + default: true + }, }, data() { return { @@ -795,6 +801,12 @@ export default { return isModify; }, + updateBlur(action, params) { + if (this.canUpdateBlur) { + this.updateData(action, params) + } + }, + updateData(action, params) { let successCallback = null; switch (action) { @@ -810,16 +822,15 @@ export default { break; case 'content': - const newContent = this.$refs.desc.getContent(); - if (newContent == this.taskContent) { + const content = this.$refs.desc.getContent(); + if (content == this.taskContent) { return; } - this.$set(this.taskDetail, 'content', newContent) + this.$set(this.taskDetail, 'content', content) successCallback = () => { - let content = this.taskContents.find(({task_id}) => task_id == this.taskId) this.$store.dispatch("saveTaskContent", { - id: content.id, - content: newContent + task_id: this.taskId, + content }) } break; diff --git a/resources/assets/js/pages/single/task.vue b/resources/assets/js/pages/single/task.vue index f1e60d930..aba1e2c7c 100644 --- a/resources/assets/js/pages/single/task.vue +++ b/resources/assets/js/pages/single/task.vue @@ -2,7 +2,7 @@
    - +
    @@ -39,16 +39,39 @@