Files
vite_front/hwe/ts/gridCellRenderer/GridTooltipCell.vue
T
2022-07-08 00:11:41 +09:00

60 lines
1.7 KiB
Vue

<template>
<div>
<div v-for="(rowValue, rowIdx) in props.params.cells" :key="rowIdx" class="row gx-1 m-0 cell-sp">
<template v-for="colValue of rowValue" :key="colValue.target">
<div v-if="params.data[colValue.target] == null">?</div>
<div
v-else-if="colValue.iActionMap"
v-b-tooltip.hover
class="col"
:title="colValue.iActionMap[params.data[colValue.target] as string ].info??''"
>
{{ colValue.iActionMap[params.data[colValue.target] as string ].name }}
</div>
<div
v-else-if="colValue.converter"
v-b-tooltip.hover
class="col"
:title="colValue.converter(params.data)[1] ?? ''"
>
{{ colValue.converter(params.data)[0] }}
</div>
<div v-else v-b-tooltip.hover class="col" :title="colValue.info ?? ''">
{{params.data[colValue.target] as string}}
</div>
</template>
</div>
</div>
</template>
<script lang="ts">
import type { GeneralListItemP2 } from "@/defs/API/Nation";
import type { GameIActionInfo } from "@/defs/GameObj";
import type { CellClassParams } from "ag-grid-community";
//제일 큰 타입 기준
export type GridCellInfo = {
iActionMap?: Record<string, GameIActionInfo>;
info?: string;
converter?: (value: GeneralListItemP2) => [string, string?];
target: keyof GeneralListItemP2;
};
</script>
<script lang="ts" setup>
import type { PropType } from "vue";
interface GenCellClassParams extends CellClassParams {
data: GeneralListItemP2;
}
const props = defineProps({
params: {
type: Object as PropType<
GenCellClassParams & {
cells: GridCellInfo[][];
}
>,
required: true,
},
});
</script>