Skip to content

Commit 173a7ee

Browse files
committed
refactor(settings): 优化排除歌词设置页面逻辑
1 parent 10cbea3 commit 173a7ee

1 file changed

Lines changed: 29 additions & 34 deletions

File tree

src/components/Modal/Setting/ExcludeLyrics.vue

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -28,47 +28,42 @@ const settingStore = useSettingStore();
2828
2929
const page = ref("keywords");
3030
31-
const clear = () => {
32-
const pageName = page.value === "keywords" ? "关键词" : "正则表达式";
33-
window.$dialog.warning({
34-
title: "清空确认",
35-
content: `确认清空${pageName}列表?该操作不可撤销!`,
36-
positiveText: "确认",
37-
negativeText: "取消",
38-
onPositiveClick: () => {
39-
switch (page.value) {
40-
case "keywords":
41-
settingStore.excludeKeywords = [];
42-
break;
43-
case "regexes":
44-
settingStore.excludeRegexes = [];
45-
break;
46-
}
47-
window.$message.success(`${pageName}列表已清空`);
48-
}
49-
});
50-
};
31+
const pageConfig = {
32+
keywords: {
33+
name: "关键词",
34+
storeKey: "excludeKeywords",
35+
defaultValue: keywords,
36+
},
37+
regexes: {
38+
name: "正则表达式",
39+
storeKey: "excludeRegexes",
40+
defaultValue: regexes,
41+
},
42+
} as const;
43+
44+
const handleAction = (action: "clear" | "reset") => {
45+
const pageKey = page.value as keyof typeof pageConfig;
46+
const { name, storeKey, defaultValue } = pageConfig[pageKey];
47+
const isClear = action === "clear";
48+
49+
const actionText = isClear ? "清空" : "重置";
50+
const contentDetail = isClear ? "" : "为默认值";
51+
const successMessage = isClear ? "列表已清空" : "列表已重置为默认值";
5152
52-
const reset = () => {
53-
const pageName = page.value === "keywords" ? "关键词" : "正则表达式";
5453
window.$dialog.warning({
55-
title: "重置确认",
56-
content: `确认重置${pageName}列表为默认值?该操作不可撤销!`,
54+
title: `${actionText}确认`,
55+
content: `确认${actionText}${name}列表${contentDetail}?该操作不可撤销!`,
5756
positiveText: "确认",
5857
negativeText: "取消",
5958
onPositiveClick: () => {
60-
switch (page.value) {
61-
case "keywords":
62-
settingStore.excludeKeywords = keywords;
63-
break;
64-
case "regexes":
65-
settingStore.excludeRegexes = regexes;
66-
break;
67-
}
68-
window.$message.success(`${pageName}列表已重置为默认值`);
69-
}
59+
settingStore[storeKey] = isClear ? [] : defaultValue;
60+
window.$message.success(`${name}${successMessage}`);
61+
},
7062
});
7163
};
64+
65+
const clear = () => handleAction("clear");
66+
const reset = () => handleAction("reset");
7267
</script>
7368

7469
<style lang="scss" scoped>

0 commit comments

Comments
 (0)