feat: 添加完成事件触发

为CustomRuleCard、FilterRuleGroupCard、NotificationChannelCard和AccountSettingDirectory组件添加done事件触发,以便在完成相关操作后通知其他组件。
This commit is contained in:
jxxghp
2024-09-19 13:21:12 +08:00
parent 95d8b3d1a6
commit 153fe8fcd0
7 changed files with 27 additions and 9 deletions

View File

@@ -21,7 +21,7 @@ const props = defineProps({
const $toast = useToast()
// 定义触发的自定义事件
const emit = defineEmits(['close', 'change'])
const emit = defineEmits(['close', 'change', 'done'])
// 规则详情弹窗
const ruleInfoDialog = ref(false)
@@ -61,18 +61,18 @@ function saveRuleInfo() {
if (ruleId.value && !ruleName.value) {
$toast.error('规则名称不能为空')
}
if (!ruleId.value && !ruleName.value){
if (!ruleId.value && !ruleName.value) {
$toast.error('规则ID和规则名称不能为空')
}
return
}
// ID已存在
if (ruleId.value !== props.rule.id && props.rules.find((rule) => rule.id === ruleId.value)) {
if (ruleId.value !== props.rule.id && props.rules.find(rule => rule.id === ruleId.value)) {
$toast.error(`规则ID【${ruleId.value}】已存在,请替换`)
return
}
// 规则名称已存在
if (ruleName.value !== props.rule.name && props.rules.find((rule) => rule.name === ruleName.value)) {
if (ruleName.value !== props.rule.name && props.rules.find(rule => rule.name === ruleName.value)) {
$toast.error(`规则名称【${ruleName.value}】已存在,请替换`)
return
}
@@ -81,6 +81,7 @@ function saveRuleInfo() {
ruleInfo.value.id = ruleId.value
ruleInfo.value.name = ruleName.value
emit('change', ruleInfo.value)
emit('done')
}
// 按钮点击

View File

@@ -40,7 +40,7 @@ interface FilterCard {
const $toast = useToast()
// 定义触发的自定义事件
const emit = defineEmits(['close', 'change'])
const emit = defineEmits(['close', 'change', 'done'])
// 规则详情弹窗
const groupInfoDialog = ref(false)
@@ -198,6 +198,7 @@ function savegroupInfo() {
.map(card => card.rules.join('&'))
.join('>')
emit('change', groupInfo.value)
emit('done')
}
// 按钮点击

View File

@@ -16,7 +16,7 @@ const props = defineProps({
})
// 定义触发的自定义事件
const emit = defineEmits(['close', 'change'])
const emit = defineEmits(['close', 'change', 'done'])
// 通知详情弹窗
const notificationInfoDialog = ref(false)
@@ -66,6 +66,7 @@ function saveNotificationInfo() {
notificationInfoDialog.value = false
notificationInfo.value.name = notificationName.value
emit('change', notificationInfo.value)
emit('done')
}
// 根据存储类型选择图标

View File

@@ -61,6 +61,12 @@ async function saveStorages() {
}
}
// 修改后生效
async function updatedStorage() {
await saveStorages()
loadStorages()
}
// 查询目录
async function loadDirectories() {
try {
@@ -141,7 +147,7 @@ onMounted(() => {
:component-data="{ 'class': 'grid gap-3 grid-app-card' }"
>
<template #item="{ element }">
<StorageCard :storage="element" @done="loadStorages" />
<StorageCard :storage="element" @done="updatedStorage" />
</template>
</draggable>
</VCardText>

View File

@@ -145,7 +145,11 @@ onMounted(() => {
:component-data="{ 'class': 'grid gap-3 grid-app-card' }"
>
<template #item="{ element }">
<NotificationChannelCard :notification="element" @close="removeNotification(element)" />
<NotificationChannelCard
:notification="element"
@close="removeNotification(element)"
@done="saveNotificationSetting"
/>
</template>
</draggable>
</VCardText>

View File

@@ -181,7 +181,9 @@ onMounted(() => {
:rule="element"
:rules="customRules"
@close="removeCustomRule(element)"
@change="onRuleChange" />
@change="onRuleChange"
@done="saveCustomRules"
/>
</template>
</draggable>
</VCardText>
@@ -215,6 +217,7 @@ onMounted(() => {
:categories="mediaCategories"
@close="removeFilterRuleGroup(element)"
@change="changeRuleGroup"
@done="saveFilterRuleGroups"
/>
</template>
</draggable>

View File

@@ -223,6 +223,7 @@ onDeactivated(() => {
:downloaders="downloaders"
@close="removeDownloader(element)"
@change="onDownloaderChange"
@done="saveDownloaderSetting"
:allow-refresh="isRequest"
/>
</template>
@@ -272,6 +273,7 @@ onDeactivated(() => {
:mediaservers="mediaServers"
@close="removeMediaServer(element)"
@change="onMediaServerChange"
@done="saveMediaServerSetting"
/>
</template>
</draggable>