From 4ce32c8b941e93db347bed023f5e044e21f6d5fc Mon Sep 17 00:00:00 2001 From: bridge Date: Mon, 2 Feb 2026 22:06:28 +0800 Subject: [PATCH] feat(StatusBar): implement phenomenon selection and update StatusWidget for direct trigger - Added functionality to open a phenomenon selector and handle selection changes in StatusBar. - Updated StatusWidget to support disabling the popover for direct click actions, enhancing user interaction. - Cleaned up unused code in StatusBar for improved readability. --- web/src/components/layout/StatusBar.vue | 42 +++++++++------------- web/src/components/layout/StatusWidget.vue | 19 ++++++++-- 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/web/src/components/layout/StatusBar.vue b/web/src/components/layout/StatusBar.vue index cecd422..7eeaefe 100644 --- a/web/src/components/layout/StatusBar.vue +++ b/web/src/components/layout/StatusBar.vue @@ -2,7 +2,7 @@ import { useWorldStore } from '../../stores/world' import { useSocketStore } from '../../stores/socket' import { ref, computed } from 'vue' -import { NPopover, NModal, NList, NListItem, NTag, NEmpty, useMessage } from 'naive-ui' +import { NModal, NList, NListItem, NTag, NEmpty, useMessage } from 'naive-ui' import { useI18n } from 'vue-i18n' import StatusWidget from './StatusWidget.vue' @@ -37,8 +37,20 @@ function getRarityColor(rarity: string) { default: return '#ccc'; } } -// ... -// ... +async function openPhenomenonSelector() { + await store.getPhenomenaList() + showSelector.value = true +} + +async function handleSelect(id: number, name: string) { + try { + await store.changePhenomenon(id) + message.success(t('game.status_bar.change_success', { name })) + showSelector.value = false + } catch (e) { + message.error(t('common.error')) + } +}