Browse Source

feat: 更新角色详情模态框,移除不必要的属性并优化事件处理

feat/character-card
npmrun 2 months ago
parent
commit
6ce5f90460
  1. 4
      app/components/character/CharacterDetailModal.vue
  2. 7
      app/pages/characters/[slug].vue
  3. BIN
      packages/drizzle-pkg/db.sqlite

4
app/components/character/CharacterDetailModal.vue

@ -12,7 +12,7 @@ interface CharacterDetail {
} }
const show = defineModel<boolean>({ required: true }); const show = defineModel<boolean>({ required: true });
const props = defineProps<{ card: CharacterDetail | null; showStart?: boolean }>(); defineProps<{ card: CharacterDetail | null }>();
const emit = defineEmits<{ start: [slug: string] }>(); const emit = defineEmits<{ start: [slug: string] }>();
</script> </script>
@ -56,7 +56,7 @@ const emit = defineEmits<{ start: [slug: string] }>();
</div> </div>
<button <button
v-if="props.showStart !== false && card.slug" v-if="card.slug"
class="start-btn" class="start-btn"
@click="emit('start', card.slug)" @click="emit('start', card.slug)"
> >

7
app/pages/characters/[slug].vue

@ -131,6 +131,11 @@ function handleSwitchCard(slug: string) {
navigateTo(`/characters/${slug}`); navigateTo(`/characters/${slug}`);
} }
function handleDetailStart(slug: string) {
detailShow.value = false;
navigateTo(`/characters/${slug}`);
}
function onModelSelect(e: Event) { function onModelSelect(e: Event) {
const id = Number((e.target as HTMLSelectElement).value); const id = Number((e.target as HTMLSelectElement).value);
if (id) handleModelChange(id); if (id) handleModelChange(id);
@ -305,7 +310,7 @@ onMounted(async () => {
</footer> </footer>
</main> </main>
<CharacterDetailModal v-model:show="detailShow" :card="cardInfo" :show-start="false" /> <CharacterDetailModal v-model:show="detailShow" :card="cardInfo" @start="handleDetailStart" />
</div> </div>
</template> </template>

BIN
packages/drizzle-pkg/db.sqlite

Binary file not shown.
Loading…
Cancel
Save