@@ -4,75 +4,35 @@ import { useI18n } from 'vue-i18n'
44import UiDialog from ' ~/components/ui/UiDialog.vue'
55import { useProjectsStore } from ' ~/stores/projectsStore'
66
7- import { hideRemoveDialog , isDialogVisible , playRemoveAnimation , projectsToRemove , projectToRemove } from ' ./RemoveProjectDialogProvider'
7+ import { hideRemoveDialog , isDialogVisible , playRemoveAnimation , projectToRemove } from ' ./RemoveProjectDialogProvider'
88
99const { t } = useI18n ()
1010const projectsStore = useProjectsStore ()
1111
12- const isBatchMode = computed (() => projectsToRemove .value .length > 0 )
13- const targetProjects = computed (() => isBatchMode .value ? projectsToRemove .value : (projectToRemove .value ? [projectToRemove .value ] : []))
14-
1512const isRemove = computed (() => {
16- if (isBatchMode .value ) {
17- // 批量模式:只要有一个是临时项目且存在,就显示删除选项
18- return ! targetProjects .value .some (p => p .isTemporary && p .isExists !== false )
19- }
2013 if (projectToRemove .value ?.isExists === false ) {
2114 return true
2215 }
2316 return projectToRemove .value ?.isTemporary !== true
2417})
2518
26- const dialogTitle = computed (() => {
27- if (isBatchMode .value ) {
28- return isRemove .value
29- ? t (' remove_project_dialog.dialog_title.batch_remove' , { count: targetProjects .value .length })
30- : t (' remove_project_dialog.dialog_title.batch_delete' , { count: targetProjects .value .length })
31- }
32- return isRemove .value
33- ? t (' remove_project_dialog.dialog_title.remove' )
34- : t (' remove_project_dialog.dialog_title.delete' )
35- })
36-
37- const dialogDesc = computed (() => {
38- if (isBatchMode .value ) {
39- return isRemove .value
40- ? t (' remove_project_dialog.dialog_desc.batch_remove' , { count: targetProjects .value .length })
41- : t (' remove_project_dialog.dialog_desc.batch_delete' , { count: targetProjects .value .length })
42- }
43- return isRemove .value
44- ? t (' remove_project_dialog.dialog_desc.remove' , { name: projectToRemove .value ?.name })
45- : t (' remove_project_dialog.dialog_desc.delete' , { name: projectToRemove .value ?.name })
46- })
47-
48- async function confirmRemove(deleteFiles = false ) {
49- const projects = targetProjects .value
50- if (projects .length === 0 ) {
51- hideRemoveDialog ()
52- return
53- }
19+ function confirmRemove(deleteFiles = false ) {
20+ if (projectToRemove .value ) {
21+ const projectId = projectToRemove .value .appendTime
5422
55- if (deleteFiles ) {
56- for (const project of projects ) {
57- if (project .isTemporary && project .isExists !== false ) {
58- window .api .deleteProject (project .path )
59- }
23+ if (deleteFiles ) {
24+ window .api .deleteProject (projectToRemove .value .path )
6025 }
61- }
6226
63- hideRemoveDialog ()
27+ hideRemoveDialog ()
6428
65- // 批量删除不播放动画,直接删除
66- if (isBatchMode .value ) {
67- for (const project of projects ) {
68- projectsStore .removeProject (project .appendTime )
69- }
29+ // 播放动画后再删除数据
30+ playRemoveAnimation (projectId ).then (() => {
31+ projectsStore .removeProject (projectId )
32+ })
7033 }
7134 else {
72- // 单个删除播放动画
73- const projectId = projects [0 ].appendTime
74- await playRemoveAnimation (projectId )
75- projectsStore .removeProject (projectId )
35+ hideRemoveDialog ()
7636 }
7737}
7838 </script >
@@ -83,11 +43,15 @@ async function confirmRemove(deleteFiles = false) {
8343 @update :open =" open => ! open && hideRemoveDialog ()"
8444 >
8545 <template #title >
86- {{ dialogTitle }}
46+ {{ isRemove ? t('remove_project_dialog.dialog_title.remove') : t('remove_project_dialog.dialog_title.delete') }}
8747 </template >
8848
8949 <template #description >
90- {{ dialogDesc }}
50+ {{
51+ isRemove
52+ ? t('remove_project_dialog.dialog_desc.remove', { name: projectToRemove?.name })
53+ : t('remove_project_dialog.dialog_desc.delete', { name: projectToRemove?.name })
54+ }}
9155 </template >
9256
9357 <p v-if =" !isRemove" class =" warning-text" >
0 commit comments