diff --git a/frontend/src/views/case-management/caseReview/components/reviewSubmit.vue b/frontend/src/views/case-management/caseReview/components/reviewSubmit.vue index 3cd7344658..c6517982ab 100644 --- a/frontend/src/views/case-management/caseReview/components/reviewSubmit.vue +++ b/frontend/src/views/case-management/caseReview/components/reviewSubmit.vue @@ -24,8 +24,9 @@ :ok-text="t('caseManagement.caseReview.commitResult')" :ok-button-props="{ disabled: submitDisabled }" @before-ok="submit" + @cancel="cancel" > - + @@ -33,6 +34,7 @@ import { nextTick, onMounted, ref, watch } from 'vue'; import { useEventListener } from '@vueuse/core'; import { Message } from '@arco-design/web-vue'; + import { cloneDeep } from 'lodash-es'; import type { MinderJsonNode } from '@/components/pure/ms-minder-editor/props'; import { getMinderOperationParams } from '@/components/business/ms-minders/caseReviewMinder/utils'; @@ -67,6 +69,7 @@ }; const form = ref({ ...defaultForm }); + const dialogForm = ref({ ...defaultForm }); const modalVisible = ref(false); const submitLoading = ref(false); @@ -82,6 +85,7 @@ const editorContent = document.querySelector('.execute-form')?.querySelector('.editor-content'); useEventListener(editorContent, 'dblclick', () => { modalVisible.value = true; + dialogForm.value = cloneDeep(form.value); }); }); }); @@ -93,6 +97,14 @@ } ); + function cancel(e: Event) { + // 点击取消/关闭,弹窗关闭,富文本内容都清空;点击空白处,弹窗关闭,将弹窗内容填入下面富文本内容里 + if (!(e.target as any)?.classList.contains('arco-modal-wrapper')) { + dialogForm.value = { ...defaultForm }; + } + form.value = cloneDeep(dialogForm.value); + } + // 提交执行 async function submit() { try { @@ -102,7 +114,7 @@ userId: props.userId, reviewId: props.reviewId, reviewPassRule: props.reviewPassRule, - ...form.value, + ...(modalVisible.value ? dialogForm.value : form.value), notifier: form.value.notifiers?.join(';') ?? '', ...getMinderOperationParams(props.selectNode), }; diff --git a/frontend/src/views/test-plan/testPlan/detail/featureCase/detail/executeSubmit.vue b/frontend/src/views/test-plan/testPlan/detail/featureCase/detail/executeSubmit.vue index d46a5838ff..8524f10ebc 100644 --- a/frontend/src/views/test-plan/testPlan/detail/featureCase/detail/executeSubmit.vue +++ b/frontend/src/views/test-plan/testPlan/detail/featureCase/detail/executeSubmit.vue @@ -14,8 +14,9 @@ :ok-loading="submitLoading" :ok-text="t('caseManagement.caseReview.commitResult')" @before-ok="submit" + @cancel="cancel" > - + @@ -23,6 +24,7 @@ import { ref } from 'vue'; import { useEventListener } from '@vueuse/core'; import { Message } from '@arco-design/web-vue'; + import { cloneDeep } from 'lodash-es'; import ExecuteForm from '@/views/test-plan/testPlan/detail/featureCase/components/executeForm.vue'; @@ -50,6 +52,7 @@ const appStore = useAppStore(); const form = ref({ ...defaultExecuteForm }); + const dialogForm = ref({ ...defaultExecuteForm }); const modalVisible = ref(false); const submitLoading = ref(false); @@ -60,6 +63,7 @@ const editorContent = document.querySelector('.execute-form')?.querySelector('.editor-content'); useEventListener(editorContent, 'dblclick', () => { modalVisible.value = true; + dialogForm.value = cloneDeep(form.value); }); }); }); @@ -86,6 +90,14 @@ } ); + function cancel(e: Event) { + // 点击取消/关闭,弹窗关闭,富文本内容都清空;点击空白处,弹窗关闭,将弹窗内容填入下面富文本内容里 + if (!(e.target as any)?.classList.contains('arco-modal-wrapper')) { + dialogForm.value = { ...defaultExecuteForm }; + } + form.value = cloneDeep(dialogForm.value); + } + // 提交执行 async function submit() { try { @@ -95,7 +107,7 @@ caseId: props.caseId, testPlanId: props.testPlanId, id: props.id, - ...form.value, + ...(modalVisible.value ? dialogForm.value : form.value), stepsExecResult: JSON.stringify(props.stepExecutionResult) ?? '', notifier: form.value?.commentIds?.join(';'), };