mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 23:56:42 +08:00
style: Update FilterRuleCard and FilterRuleGroupCard to include custom_rules prop
This commit is contained in:
@@ -1,10 +1,11 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
import { CustomRule } from '@/api/types'
|
||||||
|
|
||||||
// 输入参数
|
// 输入参数
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
pri: String,
|
pri: String,
|
||||||
rules: Array as PropType<string[]>,
|
rules: Array as PropType<string[]>,
|
||||||
width: String,
|
custom_rules: Array as PropType<CustomRule[]>,
|
||||||
height: String,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// 定义触发的自定义事件
|
// 定义触发的自定义事件
|
||||||
@@ -61,6 +62,17 @@ const selectFilterOptions = ref<{ [key: string]: string }[]>([
|
|||||||
{ title: '效果: 3D', value: ' 3D ' },
|
{ title: '效果: 3D', value: ' 3D ' },
|
||||||
{ title: '排除: 3D', value: ' !3D ' },
|
{ title: '排除: 3D', value: ' !3D ' },
|
||||||
])
|
])
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
if (props.custom_rules) {
|
||||||
|
props.custom_rules.map(rule => {
|
||||||
|
selectFilterOptions.value.push({
|
||||||
|
title: rule.name,
|
||||||
|
value: rule.id,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import draggable from 'vuedraggable'
|
import draggable from 'vuedraggable'
|
||||||
import { copyToClipboard } from '@/@core/utils/navigator'
|
import { copyToClipboard } from '@/@core/utils/navigator'
|
||||||
import { FilterRuleGroup } from '@/api/types'
|
import { CustomRule, FilterRuleGroup } from '@/api/types'
|
||||||
import FilterRuleCard from '@/components/cards/FilterRuleCard.vue'
|
import FilterRuleCard from '@/components/cards/FilterRuleCard.vue'
|
||||||
import { useToast } from 'vue-toast-notification'
|
import { useToast } from 'vue-toast-notification'
|
||||||
import ImportCodeDialog from '@/components/dialog/ImportCodeDialog.vue'
|
import ImportCodeDialog from '@/components/dialog/ImportCodeDialog.vue'
|
||||||
@@ -13,6 +13,7 @@ const props = defineProps({
|
|||||||
type: Object as PropType<FilterRuleGroup>,
|
type: Object as PropType<FilterRuleGroup>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
custom_rules: Array as PropType<CustomRule[]>,
|
||||||
})
|
})
|
||||||
|
|
||||||
// 规则卡片类型
|
// 规则卡片类型
|
||||||
@@ -212,6 +213,7 @@ function onClose() {
|
|||||||
:pri="element.pri"
|
:pri="element.pri"
|
||||||
:maxpri="filterRuleCards.length.toString()"
|
:maxpri="filterRuleCards.length.toString()"
|
||||||
:rules="element.rules"
|
:rules="element.rules"
|
||||||
|
:custom_rules="props.custom_rules"
|
||||||
@changed="updateFilterCardValue"
|
@changed="updateFilterCardValue"
|
||||||
@close="filterCardClose(element.pri)"
|
@close="filterCardClose(element.pri)"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -27,16 +27,6 @@ const TorrentPriorityItems = [
|
|||||||
{ title: '资源做种数优先', value: 'seeder' },
|
{ title: '资源做种数优先', value: 'seeder' },
|
||||||
]
|
]
|
||||||
|
|
||||||
// 加载自定义规则
|
|
||||||
async function queryCustomRules() {
|
|
||||||
try {
|
|
||||||
const result: { [key: string]: any } = await api.get('system/setting/CustomFilterRules')
|
|
||||||
customRules.value = result.data?.value ?? []
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 保存自定义规则
|
// 保存自定义规则
|
||||||
async function saveCustomRules() {
|
async function saveCustomRules() {
|
||||||
try {
|
try {
|
||||||
@@ -123,6 +113,16 @@ async function queryTorrentPriority() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询自定义规则项
|
||||||
|
async function queryCustomRules() {
|
||||||
|
try {
|
||||||
|
const result: { [key: string]: any } = await api.get('system/setting/CustomFilterRules')
|
||||||
|
customRules.value = result.data?.value ?? []
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 保存种子优先规则
|
// 保存种子优先规则
|
||||||
async function saveTorrentPriority() {
|
async function saveTorrentPriority() {
|
||||||
try {
|
try {
|
||||||
@@ -191,7 +191,12 @@ onMounted(() => {
|
|||||||
:component-data="{ 'class': 'grid gap-3 grid-app-card' }"
|
:component-data="{ 'class': 'grid gap-3 grid-app-card' }"
|
||||||
>
|
>
|
||||||
<template #item="{ element }">
|
<template #item="{ element }">
|
||||||
<FilterRuleGroupCard :group="element" @close="removeFilterRuleGroup(element)" @change="changeRuleGroup" />
|
<FilterRuleGroupCard
|
||||||
|
:group="element"
|
||||||
|
:custom_rules="customRules"
|
||||||
|
@close="removeFilterRuleGroup(element)"
|
||||||
|
@change="changeRuleGroup"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</draggable>
|
</draggable>
|
||||||
</VCardText>
|
</VCardText>
|
||||||
|
|||||||
Reference in New Issue
Block a user