1
1
<script lang="ts" setup>
2
- import type { BangumiRule } from ' #/bangumi' ;
2
+ import type {BangumiRule } from ' #/bangumi' ;
3
3
4
4
const emit = defineEmits <{
5
5
(e : ' apply' , rule : BangumiRule ): void ;
6
6
(e : ' enable' , id : number ): void ;
7
7
(
8
- e : ' deleteFile' ,
9
- type : ' disable' | ' delete' ,
10
- opts : { id: number ; deleteFile: boolean }
8
+ e : ' deleteFile' ,
9
+ type : ' disable' | ' delete' ,
10
+ opts : { id: number ; deleteFile: boolean }
11
11
): void ;
12
12
}>();
13
13
14
- const { t } = useMyI18n ();
14
+ const {t } = useMyI18n ();
15
15
16
- const show = defineModel (' show' , { default: false });
16
+ const show = defineModel (' show' , {default: false });
17
17
const rule = defineModel <BangumiRule >(' rule' , {
18
18
required: true ,
19
19
});
@@ -31,9 +31,13 @@ watch(show, (val) => {
31
31
}
32
32
});
33
33
34
- function showDeleteFileDialog(type : ' disable ' | ' delete ' ) {
34
+ function showDeleteFileDialog(type : String ) {
35
35
deleteFileDialog .show = true ;
36
- deleteFileDialog .type = type ;
36
+ if (type === ' disable' || type === ' 禁用' ) {
37
+ deleteFileDialog .type = ' disable' ;
38
+ } else {
39
+ deleteFileDialog .type = ' delete' ;
40
+ }
37
41
}
38
42
39
43
const close = () => (show .value = false );
@@ -44,6 +48,7 @@ function emitdeleteFile(deleteFile: boolean) {
44
48
deleteFile ,
45
49
});
46
50
}
51
+
47
52
function emitApply() {
48
53
emit (' apply' , rule .value );
49
54
}
@@ -78,53 +83,52 @@ const boxSize = computed(() => {
78
83
79
84
<div fx-cer justify-center space-x-10px >
80
85
<ab-button size =" small" type =" warn" @click =" () => emitEnable()" >{{
81
- $t('homepage.rule.yes_btn')
82
- }}</ab-button >
86
+ $t('homepage.rule.yes_btn')
87
+ }}
88
+ </ab-button >
83
89
<ab-button size =" small" @click =" () => close()" >{{
84
- $t('homepage.rule.no_btn')
85
- }}</ab-button >
90
+ $t('homepage.rule.no_btn')
91
+ }}
92
+ </ab-button >
86
93
</div >
87
94
</div >
88
95
89
96
<div v-else space-y-12px >
90
97
<ab-rule v-model:rule =" rule" ></ab-rule >
91
98
92
99
<div fx-cer justify-end space-x-10px >
93
- <ab-button
94
- size =" small"
95
- type =" warn"
96
- @click =" () => showDeleteFileDialog('disable')"
97
- >{{ $t('homepage.rule.disable') }}</ab-button
98
- >
99
- <ab-button
100
- size =" small"
101
- type =" warn"
102
- @click =" () => showDeleteFileDialog('delete')"
103
- >{{ $t('homepage.rule.delete') }}</ab-button
104
- >
100
+ <ab-button-multi
101
+ size =" small"
102
+ type =" warn"
103
+ :selections =" [t('homepage.rule.delete'), t('homepage.rule.disable')]"
104
+ @click =" showDeleteFileDialog"
105
+ />
105
106
<ab-button size =" small" @click =" emitApply" >{{
106
- $t('homepage.rule.apply')
107
- }}</ab-button >
107
+ $t('homepage.rule.apply')
108
+ }}
109
+ </ab-button >
108
110
</div >
109
111
</div >
110
112
111
113
<ab-popup
112
- v-model:show =" deleteFileDialog.show"
113
- :title =" $t('homepage.rule.delete')"
114
+ v-model:show =" deleteFileDialog.show"
115
+ :title =" $t('homepage.rule.delete')"
114
116
>
115
117
<div >{{ $t('homepage.rule.delete_hit') }}</div >
116
118
<div line my-8px ></div >
117
119
118
120
<div fx-cer justify-center space-x-10px >
119
121
<ab-button
120
- size =" small"
121
- type =" warn"
122
- @click =" () => emitdeleteFile(true)"
123
- >{{ $t('homepage.rule.yes_btn') }}</ab-button
122
+ size =" small"
123
+ type =" warn"
124
+ @click =" () => emitdeleteFile(true)"
125
+ >{{ $t('homepage.rule.yes_btn') }}
126
+ </ab-button
124
127
>
125
128
<ab-button size =" small" @click =" () => emitdeleteFile(false)" >{{
126
- $t('homepage.rule.no_btn')
127
- }}</ab-button >
129
+ $t('homepage.rule.no_btn')
130
+ }}
131
+ </ab-button >
128
132
</div >
129
133
</ab-popup >
130
134
</ab-popup >
0 commit comments