fix(webui): type template event handlers

This commit is contained in:
Estrella Pan
2026-07-12 21:07:19 +02:00
parent 4cb2b369ab
commit 32dcbc53df
4 changed files with 38 additions and 11 deletions

View File

@@ -58,7 +58,7 @@ const unknownGroups = computed({
:delay="`${index * 0.05}s`"
@change="onDropToDay(index, $event)"
@card-click="emit('card-click', $event)"
@unpin="(group, event) => onUnpin(group, event)"
@unpin="onUnpin"
/>
</div>

View File

@@ -53,7 +53,7 @@ const emit = defineEmits<{
:group="group"
show-unpin
@click="emit('card-click', group)"
@unpin="(event) => emit('unpin', group, event)"
@unpin="emit('unpin', group, $event)"
/>
</template>

View File

@@ -1,4 +1,6 @@
<script lang="ts" setup>
import type { BangumiRule } from '#/bangumi';
definePage({
name: 'Index',
redirect: '/bangumi',
@@ -7,6 +9,29 @@ definePage({
const { editRule } = storeToRefs(useBangumiStore());
const { updateRule, enableRule, archiveRule, unarchiveRule, ruleManage } =
useBangumiStore();
function onEnableRule(id: number) {
enableRule(id);
}
function onArchiveRule(id: number) {
archiveRule(id);
}
function onUnarchiveRule(id: number) {
unarchiveRule(id);
}
function onDeleteFile(
type: 'disable' | 'delete',
{ id, deleteFile }: { id: number; deleteFile: boolean }
) {
ruleManage(type, id, deleteFile);
}
function onApplyRule(rule: BangumiRule) {
updateRule(rule.id, rule);
}
</script>
<template>
@@ -36,13 +61,11 @@ const { updateRule, enableRule, archiveRule, unarchiveRule, ruleManage } =
<ab-edit-rule
v-model:show="editRule.show"
v-model:rule="editRule.item"
@enable="(id) => enableRule(id)"
@archive="(id) => archiveRule(id)"
@unarchive="(id) => unarchiveRule(id)"
@delete-file="
(type, { id, deleteFile }) => ruleManage(type, id, deleteFile)
"
@apply="(rule) => updateRule(rule.id, rule)"
@enable="onEnableRule"
@archive="onArchiveRule"
@unarchive="onUnarchiveRule"
@delete-file="onDeleteFile"
@apply="onApplyRule"
/>
</div>
</template>

View File

@@ -140,6 +140,10 @@ const rssColumns = computed<DataTableColumns<RSS>>(() => [
]);
const rssRowKey = (row: RSS) => row.id;
function onSelectedRSSUpdate(keys: unknown[]) {
selectedRSS.value = keys as number[];
}
</script>
<template>
@@ -173,7 +177,7 @@ const rssRowKey = (row: RSS) => row.id;
key-field="id"
:loading="isLoading && rss.length === 0"
:selected="selectedRSS"
@update:selected="(keys) => (selectedRSS = keys as number[])"
@update:selected="onSelectedRSSUpdate"
>
<template #row="{ item }">
<div class="rss-card-content">
@@ -240,7 +244,7 @@ const rssRowKey = (row: RSS) => row.id;
:pagination="false"
:bordered="false"
:max-height="500"
@update:checked-row-keys="(e) => (selectedRSS = (e as number[]))"
@update:checked-row-keys="onSelectedRSSUpdate"
></NDataTable>
<div v-if="selectedRSS.length > 0">