fix(game-ui): 부대편성 장수 패널을 공통화한다

부대원 hover가 내 정보와 감찰부의 GeneralInformationPanel을 재사용하도록 연결한다.\n\n부대 조회 read model은 rank_data와 장수 상태를 공통 panel source로 투영하고 권한 0에서는 상세 자료를 노출하지 않는다.
This commit is contained in:
2026-08-21 23:01:59 +00:00
parent 9d8823a502
commit f95699aeda
4 changed files with 560 additions and 52 deletions
+15 -5
View File
@@ -6,6 +6,7 @@ import { useRouter } from 'vue-router';
import { resolveGeneralIconUrl, useDefaultGeneralIcon } from '../utils/generalIcon';
import { trpc } from '../utils/trpc';
import LegacyGeneralProgress from '../components/ui/LegacyGeneralProgress.vue';
import GeneralInformationPanel from '../components/main/GeneralInformationPanel.vue';
import { useGameFeedback } from '../composables/useGameFeedback';
type TroopList = Awaited<ReturnType<typeof trpc.troop.getList.query>>;
@@ -340,11 +341,20 @@ onMounted(() => {
<div></div>
</footer>
<div v-if="popupMember" id="generalPopup" :style="{ top: `${popupTop}px` }" role="tooltip">
<div class="popup-title">
<strong>{{ popupMember.name }}</strong>
<span>{{ popupMember.cityName }}</span>
</div>
<LegacyGeneralProgress :general="popupMember" />
<GeneralInformationPanel
v-if="popupMember.panel"
:general="popupMember.panel.general"
:summary="popupMember.panel.summary"
:loading="false"
:nation-color="data?.nation.color"
/>
<template v-else>
<div class="popup-title">
<strong>{{ popupMember.name }}</strong>
<span>{{ popupMember.cityName }}</span>
</div>
<LegacyGeneralProgress :general="popupMember" />
</template>
</div>
</main>
</template>