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
+4 -3
View File
@@ -21,7 +21,7 @@ const props = defineProps({
const $toast = useToast() const $toast = useToast()
// 定义触发的自定义事件 // 定义触发的自定义事件
const emit = defineEmits(['close', 'change']) const emit = defineEmits(['close', 'change', 'done'])
// 规则详情弹窗 // 规则详情弹窗
const ruleInfoDialog = ref(false) const ruleInfoDialog = ref(false)
@@ -67,12 +67,12 @@ function saveRuleInfo() {
return return
} }
// ID已存在 // 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}】已存在,请替换`) $toast.error(`规则ID【${ruleId.value}】已存在,请替换`)
return 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}】已存在,请替换`) $toast.error(`规则名称【${ruleName.value}】已存在,请替换`)
return return
} }
@@ -81,6 +81,7 @@ function saveRuleInfo() {
ruleInfo.value.id = ruleId.value ruleInfo.value.id = ruleId.value
ruleInfo.value.name = ruleName.value ruleInfo.value.name = ruleName.value
emit('change', ruleInfo.value) emit('change', ruleInfo.value)
emit('done')
} }
// 按钮点击 // 按钮点击
+2 -1
View File
@@ -40,7 +40,7 @@ interface FilterCard {
const $toast = useToast() const $toast = useToast()
// 定义触发的自定义事件 // 定义触发的自定义事件
const emit = defineEmits(['close', 'change']) const emit = defineEmits(['close', 'change', 'done'])
// 规则详情弹窗 // 规则详情弹窗
const groupInfoDialog = ref(false) const groupInfoDialog = ref(false)
@@ -198,6 +198,7 @@ function savegroupInfo() {
.map(card => card.rules.join('&')) .map(card => card.rules.join('&'))
.join('>') .join('>')
emit('change', groupInfo.value) emit('change', groupInfo.value)
emit('done')
} }
// 按钮点击 // 按钮点击
@@ -16,7 +16,7 @@ const props = defineProps({
}) })
// 定义触发的自定义事件 // 定义触发的自定义事件
const emit = defineEmits(['close', 'change']) const emit = defineEmits(['close', 'change', 'done'])
// 通知详情弹窗 // 通知详情弹窗
const notificationInfoDialog = ref(false) const notificationInfoDialog = ref(false)
@@ -66,6 +66,7 @@ function saveNotificationInfo() {
notificationInfoDialog.value = false notificationInfoDialog.value = false
notificationInfo.value.name = notificationName.value notificationInfo.value.name = notificationName.value
emit('change', notificationInfo.value) emit('change', notificationInfo.value)
emit('done')
} }
// 根据存储类型选择图标 // 根据存储类型选择图标
@@ -61,6 +61,12 @@ async function saveStorages() {
} }
} }
// 修改后生效
async function updatedStorage() {
await saveStorages()
loadStorages()
}
// 查询目录 // 查询目录
async function loadDirectories() { async function loadDirectories() {
try { try {
@@ -141,7 +147,7 @@ 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 }">
<StorageCard :storage="element" @done="loadStorages" /> <StorageCard :storage="element" @done="updatedStorage" />
</template> </template>
</draggable> </draggable>
</VCardText> </VCardText>
@@ -145,7 +145,11 @@ 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 }">
<NotificationChannelCard :notification="element" @close="removeNotification(element)" /> <NotificationChannelCard
:notification="element"
@close="removeNotification(element)"
@done="saveNotificationSetting"
/>
</template> </template>
</draggable> </draggable>
</VCardText> </VCardText>
+4 -1
View File
@@ -181,7 +181,9 @@ onMounted(() => {
:rule="element" :rule="element"
:rules="customRules" :rules="customRules"
@close="removeCustomRule(element)" @close="removeCustomRule(element)"
@change="onRuleChange" /> @change="onRuleChange"
@done="saveCustomRules"
/>
</template> </template>
</draggable> </draggable>
</VCardText> </VCardText>
@@ -215,6 +217,7 @@ onMounted(() => {
:categories="mediaCategories" :categories="mediaCategories"
@close="removeFilterRuleGroup(element)" @close="removeFilterRuleGroup(element)"
@change="changeRuleGroup" @change="changeRuleGroup"
@done="saveFilterRuleGroups"
/> />
</template> </template>
</draggable> </draggable>
@@ -223,6 +223,7 @@ onDeactivated(() => {
:downloaders="downloaders" :downloaders="downloaders"
@close="removeDownloader(element)" @close="removeDownloader(element)"
@change="onDownloaderChange" @change="onDownloaderChange"
@done="saveDownloaderSetting"
:allow-refresh="isRequest" :allow-refresh="isRequest"
/> />
</template> </template>
@@ -272,6 +273,7 @@ onDeactivated(() => {
:mediaservers="mediaServers" :mediaservers="mediaServers"
@close="removeMediaServer(element)" @close="removeMediaServer(element)"
@change="onMediaServerChange" @change="onMediaServerChange"
@done="saveMediaServerSetting"
/> />
</template> </template>
</draggable> </draggable>