diff --git a/src/layouts/components/DefaultLayoutWithVerticalNav.vue b/src/layouts/components/DefaultLayoutWithVerticalNav.vue index 9c8057a6..395b05e8 100644 --- a/src/layouts/components/DefaultLayoutWithVerticalNav.vue +++ b/src/layouts/components/DefaultLayoutWithVerticalNav.vue @@ -158,16 +158,16 @@ onMounted(() => { /> import AccountSettingAccount from "@/views/account-setting/AccountSettingAccount.vue"; -import AccountSettingFilter from "@/views/account-setting/AccountSettingFilter.vue"; import AccountSettingNotification from "@/views/account-setting/AccountSettingNotification.vue"; -import AccountSettingSystem from "@/views/account-setting/AccountSettingSystem.vue"; +import AccountSettingRule from "@/views/account-setting/AccountSettingRule.vue"; +import AccountSettingSite from "@/views/account-setting/AccountSettingSite.vue"; import AccountSettingWords from "@/views/account-setting/AccountSettingWords.vue"; import { useRoute } from "vue-router"; @@ -13,7 +13,7 @@ const activeTab = ref(route.params.tab); // tabs const tabs = [ { title: "用户", icon: "mdi-account", tab: "account" }, - { title: "站点", icon: "mdi-sitemap", tab: "system" }, + { title: "站点", icon: "mdi-web", tab: "site" }, { title: "规则", icon: "mdi-filter-cog", tab: "filter" }, { title: "通知", icon: "mdi-bell", tab: "notification" }, { title: "自定义词表", icon: "mdi-file-word-box", tab: "words" }, @@ -37,13 +37,13 @@ const tabs = [ - - + + - + diff --git a/src/views/account-setting/AccountSettingFilter.vue b/src/views/account-setting/AccountSettingRule.vue similarity index 65% rename from src/views/account-setting/AccountSettingFilter.vue rename to src/views/account-setting/AccountSettingRule.vue index 5814608d..f46d3206 100644 --- a/src/views/account-setting/AccountSettingFilter.vue +++ b/src/views/account-setting/AccountSettingRule.vue @@ -16,6 +16,15 @@ interface FilterCard { // 提示框 const $toast = useToast(); +// 种子优先规则 +const selectedTorrentPriority = ref("seeder"); + +// 种子优先规则下拉框 +const TorrentPriorityItems = [ + { title: "站点优先", value: "site" }, + { title: "做种数优先", value: "seeder" }, +]; + // 查询已设置过滤规则 const queryCustomFilters = async () => { try { @@ -37,6 +46,18 @@ const queryCustomFilters = async () => { } }; +// 查询种子优先规则 +const queryTorrentPriority = async () => { + try { + const result: { [key: string]: any } = await api.get( + "system/setting/TorrentsPriority" + ); + selectedTorrentPriority.value = result.data?.value; + } catch (error) { + console.log(error); + } +}; + // 保存用户设置的识别词 const saveCustomFilters = async () => { try { @@ -64,6 +85,24 @@ const saveCustomFilters = async () => { } }; +// 保存种子优先规则 +const saveTorrentPriority = async () => { + try { + // 用户名密码 + const result: { [key: string]: any } = await api.post( + "system/setting/TorrentsPriority", + selectedTorrentPriority.value + ); + if (result.success) { + $toast.success("优先规则保存成功"); + } else { + $toast.error("优先规则保存失败!"); + } + } catch (error) { + console.log(error); + } +}; + // 规则卡片列表 const filterCards = ref([]); @@ -78,10 +117,20 @@ const updateFilterCardValue = (pri: string, rules: string[]) => { // 移除卡片 const filterCardClose = (pri: string) => { // 将卡片从列表中删除,并更新剩余卡片的序号 - filterCards.value = filterCards.value.filter((card) => card.pri !== pri); - filterCards.value.forEach((card, index) => { - card.pri = (index + 1).toString(); - }); + const index = filterCards.value.findIndex((card) => card.pri === pri); + if (index !== -1) { + // 创建新的数组,然后使用 splice 方法来删除元素 + const updatedCards = [...filterCards.value]; + updatedCards.splice(index, 1); + + // 更新剩余卡片的序号 + updatedCards.forEach((card, i) => { + card.pri = (i + 1).toString(); + }); + + // 更新 filterCards.value + filterCards.value = updatedCards; + } }; // 增加卡片 @@ -95,6 +144,7 @@ const addFilterCard = () => { }; onMounted(() => { + queryTorrentPriority(); queryCustomFilters(); }); @@ -126,6 +176,21 @@ onMounted(() => { + + + + + + + 保存 + + +