wip: PageFront 상단 정보

This commit is contained in:
2023-03-09 02:20:13 +09:00
parent a72cfc8e1c
commit 9ed3b0a921
+32 -7
View File
@@ -16,10 +16,32 @@
<BContainer v-if="asyncReady" id="container" :position="'position-relative'" :toast="{ root: true }" class="bg0">
<main class="row gx-0">
<div class="commonToolbar">툴바?</div>
<div class="gameInfo">시나리오</div>
<div class="gameInfo">토너먼트/설문</div>
<div class="gameInfo2">접속중인</div>
<div class="nationNotice">국방</div>
<div class="scenarioName">시나리오</div>
<div v-if="frontInfo" class="gameInfo">
<div class="subScenarioName">{{globalInfo.scenarioText}}</div>
<div class="subNPCType">NPC , 상성: {{globalInfo.extendedGeneral?'확장':'표준'}} {{globalInfo.isFiction?'가상':'사실'}}</div>
<div class="subNPCMode">NPC선택: {{['불가능','가능','선택 생성'][globalInfo.npcMode]}}</div>
<div class="subTournamentMode">토너먼트: 경기당 {{calcTournamentTerm(globalInfo.turnterm)}}</div>
<div class="subOtherSetting">기타 설정: (TODO)자율행동[내정, 훈련/사기진작, 사령턴, 24시간 유효]</div>
<div class="subYearMonth">현재: {{globalInfo.year}} {{globalInfo.month}} ({{globalInfo.turnterm}} 서버)</div>
<div class="subOnlineUserCnt">전체 접속자 : {{globalInfo.onlineUserCnt.toLocaleString()}}</div>
<div class="subAPILimit">턴당 갱신횟수: {{globalInfo.apiLimit.toLocaleString()}}</div>
<div class="subGeneralCnt">
등록 장수: 유저
{{globalInfo.genCount.toLocaleString()}} / {{globalInfo.generalCntLimit.toLocaleString()}}
+ NPC TODO:NPC Cnt
</div>
<div class="subTournamentState">TODO: tournament Text</div>
<div class="subLastExecuted" :style="{color:serverLocked?'magenta':'cyan'}">동작 시각: {{formatTime(lastExecuted).substring(5)}}</div>
<div v-if="globalInfo.auctionCount" class="subAuctionState" style="color:cyan">{{globalInfo.auctionCount.toLocaleString()}} 거래 진행중</div>
<div v-else class="subAcutionState" style="color:magenta">진행중인 거래 없음</div>
<div v-if="globalInfo.lastVote" class="subVoteState">
<span style="color:cyan">설문 진행 : </span><span>{{globalInfo.lastVote.title}}</span>
</div>
<div v-else class="subVoteState" style="color:magenta">진행중인 설문 없음</div>
</div>
<div class="onlineNations">접속중인 국가: {{globalInfo.onlineNations}}</div>
<div class="nationNotice">국가 방침</div>
<div>접속자</div>
<div class="d-grid"><BButton @click="tryRefresh">갱신</BButton></div>
<!-- TODO: 운영자 툴바는 어디에?-->
@@ -29,14 +51,14 @@
<CityBasicCard :city="frontInfo.city" />
</div>
<div v-if="frontInfo" class="nationInfo col-12 col-md-6">
<NationBasicCard :nation="frontInfo.nation" :global="frontInfo.global" />
<NationBasicCard :nation="frontInfo.nation" :global="globalInfo" />
</div>
<div v-if="frontInfo && generalInfo && nationStaticInfo" class="generalInfo col-12 col-md-6">
<GeneralBasicCard
:general="generalInfo"
:nation="nationStaticInfo"
:troopInfo="frontInfo.general.troopInfo"
:turnTerm="frontInfo.global.turnterm"
:turnTerm="globalInfo.turnterm"
:lastExecuted="lastExecuted"
/>
</div>
@@ -106,6 +128,8 @@ import NationBasicCard from "./components/NationBasicCard.vue";
import GeneralBasicCard from "./components/GeneralBasicCard.vue";
import type { GeneralListItemP1 } from "./defs/API/Nation";
import type { NationStaticItem } from "./defs";
import { formatTime } from "./util/formatTime";
import { calcTournamentTerm } from "./utilGame";
const { serverName, serverNick, serverID } = staticValues;
@@ -268,7 +292,7 @@ watch(refreshCounter, async () => {
});
const frontInfo = ref<GetFrontInfoResponse>();
const globalInfo = ref<GetFrontInfoResponse['global']>({} as GetFrontInfoResponse['global'])
const generalInfo = ref<GeneralListItemP1>();
const nationStaticInfo = ref<NationStaticItem>();
@@ -284,6 +308,7 @@ watch(refreshCounter, async () => {
generalInfoLock = false;
frontInfo.value = response;
globalInfo.value = response.global;
generalInfo.value = response.general;
const newLastExecuted = parseTime(response.global.lastExecuted);