|
|
|
@@ -90,7 +90,7 @@ import type {
|
|
|
|
|
GridApi,
|
|
|
|
|
GridReadyEvent,
|
|
|
|
|
RowNode,
|
|
|
|
|
CellClickedEvent,
|
|
|
|
|
CellClickedEvent,
|
|
|
|
|
} from "ag-grid-community";
|
|
|
|
|
import { ProvidedColumnGroup } from "ag-grid-community";
|
|
|
|
|
import { getNpcColor } from "@/common_legacy";
|
|
|
|
@@ -139,11 +139,11 @@ const props = defineProps({
|
|
|
|
|
type: Boolean,
|
|
|
|
|
required: false,
|
|
|
|
|
default: true,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const emit = defineEmits<{
|
|
|
|
|
(e: 'generalClick', generalID: number): void
|
|
|
|
|
(e: "generalClick", generalID: number): void;
|
|
|
|
|
}>();
|
|
|
|
|
|
|
|
|
|
const suppressColumnMoveAnimation = ref(true);
|
|
|
|
@@ -154,7 +154,7 @@ const validColumns = ref(new Set<string>());
|
|
|
|
|
watch(
|
|
|
|
|
() => props.list,
|
|
|
|
|
(newValue) => {
|
|
|
|
|
const newValidColumns = new Set<string>(['icon']);
|
|
|
|
|
const newValidColumns = new Set<string>(["icon"]);
|
|
|
|
|
if (newValue.length > 0) {
|
|
|
|
|
for (const key of Object.keys(newValue[0])) {
|
|
|
|
|
newValidColumns.add(key);
|
|
|
|
@@ -325,11 +325,11 @@ function onGridReady(params: GridReadyEvent) {
|
|
|
|
|
}, 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function onCellClicked(event: CellClickedEvent){
|
|
|
|
|
function onCellClicked(event: CellClickedEvent) {
|
|
|
|
|
const colID = event.column.getColId();
|
|
|
|
|
if(colID === 'icon' || colID === 'name'){
|
|
|
|
|
if (colID === "icon" || colID === "name") {
|
|
|
|
|
const generalItem = event.data as GeneralListItem;
|
|
|
|
|
emit('generalClick', generalItem.no);
|
|
|
|
|
emit("generalClick", generalItem.no);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -503,7 +503,7 @@ const columnRawDefs = ref<Partial<Record<headerType, GenColDef | GenColGroupDef>
|
|
|
|
|
return `<img src="${getIconPath(gen.imgsvr, gen.picture)}" width="64">`;
|
|
|
|
|
},
|
|
|
|
|
pinned: "left",
|
|
|
|
|
cellClass: [props.availableGeneralClick?'clickable-cell':'', ...defaultCellClass],
|
|
|
|
|
cellClass: [props.availableGeneralClick ? "clickable-cell" : "", ...defaultCellClass],
|
|
|
|
|
lockPosition: true,
|
|
|
|
|
},
|
|
|
|
|
name: {
|
|
|
|
@@ -523,7 +523,7 @@ const columnRawDefs = ref<Partial<Record<headerType, GenColDef | GenColGroupDef>
|
|
|
|
|
return style as CellStyle;
|
|
|
|
|
},
|
|
|
|
|
filterValueGetter: ({ data }) => convertSearch초성(data.name),
|
|
|
|
|
cellClass: [props.availableGeneralClick?'clickable-cell':'', ...defaultCellClass],
|
|
|
|
|
cellClass: [props.availableGeneralClick ? "clickable-cell" : "", ...defaultCellClass],
|
|
|
|
|
filter: true,
|
|
|
|
|
hide: false,
|
|
|
|
|
lockVisible: true,
|
|
|
|
@@ -701,8 +701,8 @@ const columnRawDefs = ref<Partial<Record<headerType, GenColDef | GenColGroupDef>
|
|
|
|
|
headerName: "부대",
|
|
|
|
|
field: "troop",
|
|
|
|
|
valueGetter: ({ data }: GenValueGetterParams) => {
|
|
|
|
|
if(!data.st2){
|
|
|
|
|
return '?';
|
|
|
|
|
if (!data.st2) {
|
|
|
|
|
return "?";
|
|
|
|
|
}
|
|
|
|
|
const troopInfo = extractTroopInfo(data);
|
|
|
|
|
if (troopInfo === undefined) {
|
|
|
|
@@ -934,7 +934,21 @@ const columnRawDefs = ref<Partial<Record<headerType, GenColDef | GenColGroupDef>
|
|
|
|
|
if (!commandList) {
|
|
|
|
|
return "???";
|
|
|
|
|
}
|
|
|
|
|
return commandList.map(({ action }) => naiveCheClassNameFilter(action)).join("<br>");
|
|
|
|
|
return commandList
|
|
|
|
|
.map(({ action }) => {
|
|
|
|
|
if (action !== "휴식" || data.npc >= 2) {
|
|
|
|
|
return naiveCheClassNameFilter(action);
|
|
|
|
|
}
|
|
|
|
|
const limitMinutes = props.env.autorun_user?.limit_minutes ?? 0;
|
|
|
|
|
if (!limitMinutes) {
|
|
|
|
|
return naiveCheClassNameFilter(action);
|
|
|
|
|
}
|
|
|
|
|
if (data.killturn + limitMinutes > props.env.killturn) {
|
|
|
|
|
return "자율행동";
|
|
|
|
|
}
|
|
|
|
|
return naiveCheClassNameFilter(action);
|
|
|
|
|
})
|
|
|
|
|
.join("<br>");
|
|
|
|
|
},
|
|
|
|
|
cellStyle: {
|
|
|
|
|
lineHeight: "1em",
|
|
|
|
@@ -954,7 +968,21 @@ const columnRawDefs = ref<Partial<Record<headerType, GenColDef | GenColGroupDef>
|
|
|
|
|
if (!commandList) {
|
|
|
|
|
return "???";
|
|
|
|
|
}
|
|
|
|
|
return commandList.map(({ brief }) => brief).join("<br>");
|
|
|
|
|
return commandList
|
|
|
|
|
.map(({ action, brief }) => {
|
|
|
|
|
if (action !== "휴식" || data.npc >= 2) {
|
|
|
|
|
return brief;
|
|
|
|
|
}
|
|
|
|
|
const limitMinutes = props.env.autorun_user?.limit_minutes ?? 0;
|
|
|
|
|
if (!limitMinutes) {
|
|
|
|
|
return brief;
|
|
|
|
|
}
|
|
|
|
|
if (data.killturn + limitMinutes > props.env.killturn) {
|
|
|
|
|
return "자율 행동";
|
|
|
|
|
}
|
|
|
|
|
return brief;
|
|
|
|
|
})
|
|
|
|
|
.join("<br>");
|
|
|
|
|
},
|
|
|
|
|
cellStyle: {
|
|
|
|
|
lineHeight: "1em",
|
|
|
|
@@ -1076,7 +1104,7 @@ watch(columnRawDefs, (val) => {
|
|
|
|
|
</style>
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
.component-general-list {
|
|
|
|
|
.clickable-cell:hover{
|
|
|
|
|
.clickable-cell:hover {
|
|
|
|
|
text-decoration: underline;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|