feat(wip): 세력 장수 작업 중
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace sammo\API\List\Nation;
|
namespace sammo\API\Nation;
|
||||||
|
|
||||||
use sammo\DB;
|
use sammo\DB;
|
||||||
use sammo\General;
|
use sammo\General;
|
||||||
@@ -180,7 +180,7 @@ class GeneralList extends \sammo\BaseAPI
|
|||||||
if ($reqPermission > $this->permission) {
|
if ($reqPermission > $this->permission) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$resultColumns[] = $column;
|
$resultColumns[$column] = $column;
|
||||||
}
|
}
|
||||||
|
|
||||||
$generalList = [];
|
$generalList = [];
|
||||||
|
|||||||
@@ -1,18 +1,52 @@
|
|||||||
<template>
|
<template>
|
||||||
<BContainer id="container" :toast="{ root: true }" class="pageNationGeneral bg0">
|
<BContainer id="container" :toast="{ root: true }" class="pageNationGeneral bg0">
|
||||||
<TopBackBar :title="title" />
|
<TopBackBar :title="title" />
|
||||||
|
<GeneralList :list="generalList" />
|
||||||
<BottomBar />
|
<BottomBar />
|
||||||
</BContainer>
|
</BContainer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
/*declare const staticValues: {
|
||||||
|
serverNick: string,
|
||||||
|
mapName: string,
|
||||||
|
unitSet: string,
|
||||||
|
};*/
|
||||||
|
</script>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import TopBackBar from "@/components/TopBackBar.vue";
|
import TopBackBar from "@/components/TopBackBar.vue";
|
||||||
import BottomBar from "@/components/BottomBar.vue";
|
import BottomBar from "@/components/BottomBar.vue";
|
||||||
import { BContainer, useToast } from "bootstrap-vue-3";
|
import { BContainer } from "bootstrap-vue-3";
|
||||||
import { unwrap } from "./util/unwrap";
|
import { onMounted, ref } from "vue";
|
||||||
|
import { SammoAPI } from "./SammoAPI";
|
||||||
|
import { merge2DArrToObjectArr } from "./util/merge2DArrToObjectArr";
|
||||||
|
import type { GeneralListItem } from "./defs/API/Nation";
|
||||||
|
import GeneralList from "./components/GeneralList.vue";
|
||||||
|
|
||||||
const toasts = unwrap(useToast());
|
const generalList = ref(new Map<number, GeneralListItem>());
|
||||||
|
|
||||||
const title = '세력 장수';
|
const title = "세력 장수";
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
try {
|
||||||
|
const { column, list, permission } = await SammoAPI.Nation.GeneralList();
|
||||||
|
//XXX: 로직상 똑같은데....
|
||||||
|
if (permission == 0) {
|
||||||
|
const rawGeneralList = merge2DArrToObjectArr(column, list);
|
||||||
|
generalList.value = new Map(rawGeneralList.map((v) => [v.no, { permission, ...v }]));
|
||||||
|
} else if (permission == 1) {
|
||||||
|
const rawGeneralList = merge2DArrToObjectArr(column, list);
|
||||||
|
generalList.value = new Map(rawGeneralList.map((v) => [v.no, { permission, ...v }]));
|
||||||
|
} else if ([2, 3, 4].includes(permission)) {
|
||||||
|
const rawGeneralList = merge2DArrToObjectArr(column, list);
|
||||||
|
generalList.value = new Map(rawGeneralList.map((v) => [v.no, { permission, ...v }]));
|
||||||
|
} else {
|
||||||
|
throw `?? ${permission}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<template>
|
||||||
|
<div class="grid">
|
||||||
|
<div v-for="[generalID, general] of list" :key="generalID" class="row">
|
||||||
|
{{ general }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import type { GeneralListItem } from "@/defs/API/Nation";
|
||||||
|
import type { PropType } from "vue";
|
||||||
|
|
||||||
|
defineProps({
|
||||||
|
list: {
|
||||||
|
type: Object as PropType<Map<number, GeneralListItem>>,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@@ -43,39 +43,31 @@ export type GeneralListItemP2 = GeneralListItemP1 & {
|
|||||||
officer_city: number,
|
officer_city: number,
|
||||||
|
|
||||||
}
|
}
|
||||||
export type GeneralListItemP9 = GeneralListItemP2 & {
|
|
||||||
owner_name: string,
|
export type RawGeneralListItem = GeneralListItemP0 | GeneralListItemP1 | GeneralListItemP2;
|
||||||
}
|
|
||||||
|
|
||||||
export type GeneralListItem =
|
export type GeneralListItem =
|
||||||
({ permission: 0 } & GeneralListItemP0) |
|
({ permission: 0 } & GeneralListItemP0) |
|
||||||
({ permission: 1 } & GeneralListItemP1) |
|
({ permission: 1 } & GeneralListItemP1) |
|
||||||
({permission : 2} & GeneralListItemP2) |
|
({ permission: 2 | 3 | 4 } & GeneralListItemP2);
|
||||||
({permission : 9} & GeneralListItemP9);
|
|
||||||
|
|
||||||
|
|
||||||
export type RawGeneralListP0 = ValidResponse & {
|
export type RawGeneralListP0 = ValidResponse & {
|
||||||
permission: 0,
|
permission: 0,
|
||||||
column: keyof GeneralListItemP0[],
|
column: (keyof GeneralListItemP0)[],
|
||||||
list: ValuesOf<GeneralListItemP0>[],
|
list: ValuesOf<GeneralListItemP0>[][],
|
||||||
}
|
}
|
||||||
|
|
||||||
export type RawGeneralListP1 = ValidResponse & {
|
export type RawGeneralListP1 = ValidResponse & {
|
||||||
permission: 1,
|
permission: 1,
|
||||||
column: keyof GeneralListItemP1[],
|
column: (keyof GeneralListItemP1)[],
|
||||||
list: ValuesOf<GeneralListItemP1>[][],
|
list: ValuesOf<GeneralListItemP1>[][],
|
||||||
}
|
}
|
||||||
|
|
||||||
export type RawGeneralListP2 = ValidResponse & {
|
export type RawGeneralListP2 = ValidResponse & {
|
||||||
permission: 2,
|
permission: 2 | 3 | 4,
|
||||||
column: keyof GeneralListItemP2[],
|
column: (keyof GeneralListItemP2)[],
|
||||||
list: ValuesOf<GeneralListItemP2>[][],
|
list: ValuesOf<GeneralListItemP2>[][],
|
||||||
}
|
}
|
||||||
|
|
||||||
export type RawGeneralListP9 = ValidResponse & {
|
export type GeneralListResponse = RawGeneralListP0 | RawGeneralListP1 | RawGeneralListP2;
|
||||||
permission: 9,
|
|
||||||
column: keyof GeneralListItemP9[],
|
|
||||||
list: ValuesOf<GeneralListItemP9>[][],
|
|
||||||
}
|
|
||||||
|
|
||||||
export type GeneralListResponse = RawGeneralListP0 | RawGeneralListP1 | RawGeneralListP2 | RawGeneralListP9;
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export function merge2DArrToObjectArr<T extends Record<string, unknown>>(column:
|
|||||||
for(const rawItem of list){
|
for(const rawItem of list){
|
||||||
const item: Record<string, unknown> = {};
|
const item: Record<string, unknown> = {};
|
||||||
|
|
||||||
if(column.length != item.length){
|
if(column.length != rawItem.length){
|
||||||
throw `column과 item의 길이가 같지 않습니다: ${column.length} != ${list.length}, ${JSON.stringify(item)}`;
|
throw `column과 item의 길이가 같지 않습니다: ${column.length} != ${list.length}, ${JSON.stringify(item)}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user