mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-30 12:14:27 +08:00
fix(webui): type template event handlers
This commit is contained in:
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user