Skip to content

Commit 8df765a

Browse files
author
xupengfei11
committed
UI improvement, user can cancel change the settings (re-analysis dump file) after they open the setting panel in dump analysis scene.
before: dump analysis cache will dispose once user click 'Setting' button, it does not make sense. now: dispose and re-analyse will performd sequencely only after use submit the new settings, but if user click the 'cancel' button after open the settins pannel, the pannel will closed and nothing else would happend.
1 parent ae6f090 commit 8df765a

File tree

6 files changed

+54
-14
lines changed

6 files changed

+54
-14
lines changed

frontend/src/components/Analysis.vue

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,13 @@ onUnmounted(() => {
177177
<template>
178178
<transition mode="out-in">
179179
<div class="ej-common-view-div" v-if="analysis.phase == Phase.INIT" v-loading="true"></div>
180+
<div
181+
class="ej-common-view-div"
182+
style="display: flex; flex-direction: column; justify-content: center; align-items: center"
183+
v-else-if="analysis.phase === Phase.SETUP || analysis.showSetupPage === true"
184+
>
185+
<component :is="setupComponent" @confirmAnalysisOptions="analyze"></component>
186+
</div>
180187
<div
181188
class="ej-common-view-div"
182189
style="display: flex; flex-direction: column; justify-content: start"
@@ -202,13 +209,6 @@ onUnmounted(() => {
202209
<p v-if="log" style="white-space: pre-line">{{ log }}</p>
203210
</div>
204211
</div>
205-
<div
206-
class="ej-common-view-div"
207-
style="display: flex; flex-direction: column; justify-content: center; align-items: center"
208-
v-else-if="analysis.phase === Phase.SETUP"
209-
>
210-
<component :is="setupComponent" @confirmAnalysisOptions="analyze"></component>
211-
</div>
212212
<component :is="analysisComponent" v-else-if="analysis.phase == Phase.SUCCESS"></component>
213213
</transition>
214214
</template>

frontend/src/components/heapdump/Setup.vue

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,15 @@
1212
-->
1313
<script setup lang="ts">
1414
import { hdt } from '@/components/heapdump/utils';
15+
import { Phase, useAnalysisStore } from '@/stores/analysis';
1516
import { InfoFilled } from '@element-plus/icons-vue';
1617
import { t } from '@/i18n/i18n';
1718
19+
import { useAnalysisApiRequester } from '@/composables/analysis-api-requester';
20+
21+
const { request } = useAnalysisApiRequester();
22+
const analysis = useAnalysisStore();
23+
1824
const emit = defineEmits(['confirmAnalysisOptions']);
1925
2026
const options = reactive({
@@ -27,7 +33,16 @@ const options = reactive({
2733
});
2834
2935
function onConfirm() {
30-
emit('confirmAnalysisOptions', options);
36+
request('clean').then(() => {
37+
analysis.leaveGuard = false;
38+
analysis.setPhase(Phase.INIT)
39+
analysis.setShowSetupPage(false);
40+
emit('confirmAnalysisOptions', options);
41+
});
42+
}
43+
44+
function onCancel() {
45+
analysis.setShowSetupPage(false);
3146
}
3247
3348
const enableDiscard = computed(() => options.discard_objects);
@@ -183,6 +198,9 @@ const enableDiscard = computed(() => options.discard_objects);
183198
</el-form-item>
184199
<el-form-item>
185200
<el-button type="primary" @click="onConfirm">{{ t('common.confirm') }}</el-button>
201+
<el-button @click="onCancel" v-if="analysis.phase !== Phase.INIT && analysis.phase !== Phase.SETUP">
202+
{{ t('common.cancel') }}
203+
</el-button>
186204
</el-form-item>
187205
</el-form>
188206
</template>

frontend/src/components/heapdump/Toolbar.vue

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,26 @@
1212
-->
1313
<script setup lang="ts">
1414
import DownloadLink from '@/components/common/DownloadLink.vue';
15-
import { SetUp } from '@element-plus/icons-vue';
15+
import { SetUp, Delete } from '@element-plus/icons-vue';
1616
import { t } from '@/i18n/i18n';
1717
import { useAnalysisApiRequester } from '@/composables/analysis-api-requester';
1818
import { Phase, useAnalysisStore } from '@/stores/analysis';
1919
2020
const { request } = useAnalysisApiRequester();
2121
2222
const analysis = useAnalysisStore();
23-
function clean() {
23+
24+
function showSetup() {
25+
analysis.setShowSetupPage(true)
26+
}
27+
28+
function discard() {
2429
request('clean').then(() => {
2530
useAnalysisStore().leaveGuard = false;
2631
location.reload();
2732
});
2833
}
34+
2935
</script>
3036
<template>
3137
<el-divider direction="vertical" />
@@ -34,8 +40,14 @@ function clean() {
3440
<template v-if="analysis.phase === Phase.SUCCESS || analysis.phase === Phase.FAILURE">
3541
<el-divider direction="vertical" />
3642

37-
<el-button link class="ej-header-button" :icon="SetUp" @click="clean">
43+
<el-button link class="ej-header-button" :icon="SetUp" @click="showSetup">
3844
{{ t('analysis.setting') }}
3945
</el-button>
4046
</template>
47+
<template v-if="analysis.phase === Phase.SUCCESS">
48+
<el-divider direction="vertical" />
49+
<el-button link class="ej-header-button" :icon="Delete" @click="discard">
50+
{{ t('analysis.discard') }}
51+
</el-button>
52+
</template>
4153
</template>

frontend/src/i18n/en.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default {
1818
jifa: {
1919
common: {
2020
confirm: 'Confirm',
21+
cancel: 'Cancel',
2122
submit: 'Submit',
2223
back: 'Back',
2324
operations: 'Operations',
@@ -115,7 +116,8 @@ export default {
115116
success: 'Analysis successful',
116117
comparison: 'Comparison',
117118
selectComparisonTargets: 'Select Targets',
118-
setting: 'Setting'
119+
setting: 'Setting',
120+
discard: 'Discard'
119121
},
120122

121123
heapDump,

frontend/src/i18n/zh.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default {
1818
jifa: {
1919
common: {
2020
confirm: '确定',
21+
cancel: '取消',
2122
submit: '提交',
2223
back: '返回',
2324
operations: '操作',
@@ -115,7 +116,8 @@ export default {
115116
success: '分析成功',
116117
comparison: '分析对比',
117118
selectComparisonTargets: '选择对比目标',
118-
setting: '分析设置'
119+
setting: '分析设置',
120+
discard: '销毁分析结果'
119121
},
120122

121123
heapDump,

frontend/src/stores/analysis.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ export const useAnalysisStore = defineStore('analysis', {
3131

3232
phase: null as Phase | null,
3333

34-
leaveGuard: true
34+
leaveGuard: true,
35+
36+
showSetupPage: false
3537
}),
3638

3739
actions: {
@@ -47,6 +49,10 @@ export const useAnalysisStore = defineStore('analysis', {
4749

4850
setPhase(phase: Phase | null) {
4951
this.phase = phase;
52+
},
53+
54+
setShowSetupPage(showSetupPage: boolean) {
55+
this.showSetupPage = showSetupPage
5056
}
5157
}
5258
});

0 commit comments

Comments
 (0)