mirror of
https://github.com/YouHaveTrouble/GuildMaster.git
synced 2026-05-12 06:26:59 +00:00
allowed more than 1 recruit to show up
This commit is contained in:
+43
-35
@@ -48,10 +48,11 @@ import {version} from "@/../package.json";
|
|||||||
:guild="guild"
|
:guild="guild"
|
||||||
:adventurers="adventurers"
|
:adventurers="adventurers"
|
||||||
:quests="missives"
|
:quests="missives"
|
||||||
:adventurerForHire="adventurerForHire"
|
:adventurersForHire="adventurersForHire"
|
||||||
:news="news"
|
:news="news"
|
||||||
@finalizeQuest="finalizeQuest($event)"
|
@finalizeQuest="finalizeQuest($event)"
|
||||||
@recruitActionTaken="recruitAction($event)"
|
@recruitAdventurer="recruitAdventurer($event)"
|
||||||
|
@dismissRecruit="dismissRecruit($event)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -94,9 +95,8 @@ export default defineComponent({
|
|||||||
E: null as null | number,
|
E: null as null | number,
|
||||||
F: null as null | number,
|
F: null as null | number,
|
||||||
} as { [key: string]: null | number },
|
} as { [key: string]: null | number },
|
||||||
lastRecruitHandled: null as null | number,
|
adventurersForHire: {} as { [key: string]: Adventurer },
|
||||||
adventurerForHire: null as Adventurer | null,
|
adventurersDatabase: {} as { [key: string]: Adventurer },
|
||||||
adventurersDatabase: {} as Array<Adventurer>,
|
|
||||||
allAdventurers: {} as { [key: string]: Adventurer },
|
allAdventurers: {} as { [key: string]: Adventurer },
|
||||||
adventurers: {} as { [key: string]: Adventurer },
|
adventurers: {} as { [key: string]: Adventurer },
|
||||||
quests: {} as { [key: string]: { [key: string]: Quest } },
|
quests: {} as { [key: string]: { [key: string]: Quest } },
|
||||||
@@ -127,31 +127,26 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
async checkForNewRecruit(currentTimestamp: number) {
|
async checkForNewRecruit(currentTimestamp: number) {
|
||||||
|
|
||||||
if (this.lastRecruitHandled == null) {
|
|
||||||
this.lastRecruitHandled = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(this.adventurers).length <= 0) {
|
if (Object.keys(this.adventurers).length <= 0) {
|
||||||
this.adventurerForHire = this.adventurersDatabase[0];
|
const firstAdventurer = this.adventurersDatabase[0]
|
||||||
|
this.adventurersForHire[firstAdventurer.id] = firstAdventurer;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentTimestamp - this.lastRecruitHandled >= 1000 * 60 * 30 && this.adventurerForHire == null) {
|
// TODO hiring capacity upgrade
|
||||||
this.adventurerForHire = getNewAdventurerForHire(this.adventurersDatabase);
|
if (Object.keys(this.adventurersForHire).length < 2) {
|
||||||
|
const newAdventurerForHire = getNewAdventurerForHire(Object.values(this.adventurersDatabase));
|
||||||
|
if (newAdventurerForHire === null) return;
|
||||||
|
this.adventurersForHire[newAdventurerForHire.id] = newAdventurerForHire;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
recruitAction(adventurer: Adventurer | null): void {
|
recruitAdventurer(adventurer: Adventurer): void {
|
||||||
this.lastRecruitHandled = Number(new Date());
|
|
||||||
this.adventurerForHire = null;
|
|
||||||
if (adventurer === null) return;
|
|
||||||
|
|
||||||
this.adventurers[adventurer.id] = adventurer;
|
this.adventurers[adventurer.id] = adventurer;
|
||||||
for (const id in this.adventurersDatabase) {
|
delete this.adventurersDatabase[adventurer.id];
|
||||||
const databaseAdventurer = this.adventurersDatabase[id];
|
},
|
||||||
if (databaseAdventurer.id === adventurer.id) {
|
dismissRecruit(adventurer: Adventurer): void {
|
||||||
this.adventurersDatabase.splice(Number(id), 1);
|
if (adventurer == null) return;
|
||||||
break;
|
if (this.adventurersForHire[adventurer.id] == null) return;
|
||||||
}
|
delete this.adventurersForHire[adventurer.id];
|
||||||
}
|
|
||||||
},
|
},
|
||||||
finalizeQuest(missive: Quest) {
|
finalizeQuest(missive: Quest) {
|
||||||
missive.progressPoints = 0;
|
missive.progressPoints = 0;
|
||||||
@@ -243,17 +238,31 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.lastRecruitHandled = saveData.lastRecruitAction ?? 0;
|
const recruits = {} as { [key: string]: Adventurer };
|
||||||
|
|
||||||
if (saveData.adventurerForHireId != null) {
|
for (const id in saveData.adventurersForHire) {
|
||||||
for (const id in this.adventurersDatabase) {
|
const data = saveData.adventurersForHire[id];
|
||||||
const adventurer = this.adventurersDatabase[id];
|
let portrait: string = "";
|
||||||
if (adventurer.id === saveData.adventurerForHireId) {
|
|
||||||
this.adventurerForHire = adventurer;
|
const adventurer = this.allAdventurers[data.id];
|
||||||
return;
|
if (adventurer) {
|
||||||
}
|
portrait = adventurer.portrait;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
recruits[data.id] = new Adventurer(
|
||||||
|
data.id,
|
||||||
|
data.name,
|
||||||
|
portrait,
|
||||||
|
data.attackExponent ?? 1.1,
|
||||||
|
data.level ?? 1,
|
||||||
|
data.exp ?? 0,
|
||||||
|
data.prestige ?? 0,
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.adventurersForHire = recruits;
|
||||||
},
|
},
|
||||||
async updateNews() {
|
async updateNews() {
|
||||||
const result = await fetch("https://raw.githubusercontent.com/YouHaveTrouble/GuildMaster/master/news.txt").catch(() => {
|
const result = await fetch("https://raw.githubusercontent.com/YouHaveTrouble/GuildMaster/master/news.txt").catch(() => {
|
||||||
@@ -287,7 +296,7 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.quests = promises[0] as { [key: string]: { [key: string]: Quest } };
|
this.quests = promises[0] as { [key: string]: { [key: string]: Quest } };
|
||||||
this.adventurersDatabase = promises[1] as Array<Adventurer>;
|
this.adventurersDatabase = promises[1] as {[key: string]: Adventurer};
|
||||||
for (const adventurerId in this.adventurersDatabase) {
|
for (const adventurerId in this.adventurersDatabase) {
|
||||||
const adventurer = this.adventurersDatabase[adventurerId];
|
const adventurer = this.adventurersDatabase[adventurerId];
|
||||||
this.allAdventurers[adventurer.id] = new Adventurer(adventurer.id, adventurer.name, adventurer.portrait, adventurer.attackExponent, adventurer.level, adventurer.exp, adventurer.prestige);
|
this.allAdventurers[adventurer.id] = new Adventurer(adventurer.id, adventurer.name, adventurer.portrait, adventurer.attackExponent, adventurer.level, adventurer.exp, adventurer.prestige);
|
||||||
@@ -308,8 +317,7 @@ export default defineComponent({
|
|||||||
guild: this.guild,
|
guild: this.guild,
|
||||||
missives: this.missives,
|
missives: this.missives,
|
||||||
lastQuestGot: this.lastQuestGot,
|
lastQuestGot: this.lastQuestGot,
|
||||||
lastRecruitAction: this.lastRecruitHandled,
|
adventurersForHire: this.adventurersForHire ?? null,
|
||||||
adventurerForHireId: this.adventurerForHire?.id ?? null,
|
|
||||||
}));
|
}));
|
||||||
}, 10 * 1000));
|
}, 10 * 1000));
|
||||||
|
|
||||||
|
|||||||
+21
-17
@@ -8,8 +8,7 @@ export class GameData {
|
|||||||
adventurers: { [key: string]: Adventurer };
|
adventurers: { [key: string]: Adventurer };
|
||||||
missives: Array<Quest>;
|
missives: Array<Quest>;
|
||||||
lastQuestGot: { [key: string]: null | number };
|
lastQuestGot: { [key: string]: null | number };
|
||||||
lastRecruitAction: null | number;
|
adventurersForHire: {[key: string]: Adventurer} | null;
|
||||||
adventurerForHireId: string | null;
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
data: any,
|
data: any,
|
||||||
@@ -18,8 +17,7 @@ export class GameData {
|
|||||||
this.adventurers = data.adventurers ?? {} as { [key: string]: Adventurer };
|
this.adventurers = data.adventurers ?? {} as { [key: string]: Adventurer };
|
||||||
this.missives = data.missives ?? [] as Array<Quest>;
|
this.missives = data.missives ?? [] as Array<Quest>;
|
||||||
this.lastQuestGot = data.lastQuestGot ?? {} as { [key: string]: null | number };
|
this.lastQuestGot = data.lastQuestGot ?? {} as { [key: string]: null | number };
|
||||||
this.lastRecruitAction = data.lastRecruitAction ?? null;
|
this.adventurersForHire = data.adventurersForHire ?? null;
|
||||||
this.adventurerForHireId = data.adventurerForHireId ?? null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,13 +37,19 @@ export function saveGame(
|
|||||||
adventurers[adventurerId] = adventurer;
|
adventurers[adventurerId] = adventurer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const adventurersForHire = {} as { [key: string]: any };
|
||||||
|
for (const adventurerId in data.adventurersForHire) {
|
||||||
|
const adventurer: {[key: string]: any} = JSON.parse(JSON.stringify(data.adventurersForHire[adventurerId]));
|
||||||
|
delete adventurer.portrait;
|
||||||
|
adventurersForHire[adventurerId] = adventurer;
|
||||||
|
}
|
||||||
|
|
||||||
window.localStorage.setItem("savedGame", JSON.stringify({
|
window.localStorage.setItem("savedGame", JSON.stringify({
|
||||||
guild: data.guild,
|
guild: data.guild,
|
||||||
adventurers: adventurers,
|
adventurers: adventurers,
|
||||||
missives: data.missives,
|
missives: data.missives,
|
||||||
lastQuestGot: data.lastQuestGot,
|
lastQuestGot: data.lastQuestGot,
|
||||||
lastRecruitAction: data.lastRecruitAction,
|
adventurersForHire: adventurersForHire
|
||||||
adventurerForHireId: data.adventurerForHireId,
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,38 +103,38 @@ export async function loadAvailableQuests(): Promise<{ [key: string]: { [key: st
|
|||||||
return quests;
|
return quests;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function loadAdventurersForHire(): Promise<Array<Adventurer>> {
|
export async function loadAdventurersForHire(): Promise<{[key: string]: Adventurer}> {
|
||||||
const response = await fetch("data/adventurers.json");
|
const response = await fetch("data/adventurers.json");
|
||||||
if (response.status !== 200) {
|
if (response.status !== 200) {
|
||||||
console.error("Failed to load adventurers");
|
console.error("Failed to load adventurers");
|
||||||
alert("Failed to load adventurers. Please try refreshing the page.");
|
alert("Failed to load adventurers. Please try refreshing the page.");
|
||||||
return [];
|
return {};
|
||||||
}
|
}
|
||||||
const adventurerData = await response.json();
|
const adventurerData = await response.json();
|
||||||
|
|
||||||
const adventurers: Array<Adventurer> = [];
|
const adventurers: {[key: string]: Adventurer} = {};
|
||||||
for (const adventurer of adventurerData) {
|
for (const adventurer of adventurerData) {
|
||||||
adventurers.push(new Adventurer(
|
const loadedAdventurer = new Adventurer(
|
||||||
adventurer.id,
|
adventurer.id,
|
||||||
adventurer.name,
|
adventurer.name,
|
||||||
adventurer.portrait,
|
adventurer.portrait,
|
||||||
adventurer.attackExponent,
|
adventurer.attackExponent,
|
||||||
adventurer.level,
|
adventurer.level,
|
||||||
adventurer.exp,
|
adventurer.exp,
|
||||||
));
|
)
|
||||||
|
adventurers[loadedAdventurer.id] = loadedAdventurer;
|
||||||
}
|
}
|
||||||
|
|
||||||
return adventurers;
|
return adventurers;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function removeAlreadyHiredAdventurers(
|
export function removeAlreadyHiredAdventurers(
|
||||||
adventurers: Array<Adventurer>,
|
adventurers: { [key: string]: Adventurer },
|
||||||
adventurersHired: { [key: string]: Adventurer }
|
adventurersHired: { [key: string]: Adventurer }
|
||||||
): Array<Adventurer> {
|
): { [key: string]: Adventurer } {
|
||||||
const adventurersForHire: Array<Adventurer> = [];
|
const adventurersForHire: { [key: string]: Adventurer } = {};
|
||||||
for (const adventurer of adventurers) {
|
for (const adventurer of Object.values(adventurers)) {
|
||||||
if (adventurersHired[adventurer.id]) continue;
|
if (adventurersHired[adventurer.id]) continue;
|
||||||
adventurersForHire.push(adventurer);
|
adventurersForHire[adventurer.id] = adventurer;
|
||||||
}
|
}
|
||||||
return adventurersForHire;
|
return adventurersForHire;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,129 @@
|
|||||||
|
<template>
|
||||||
|
<section class="recruit panel pinned-paper">
|
||||||
|
<h1>Applying adventurers</h1>
|
||||||
|
<div class="adventurers">
|
||||||
|
<div v-for="adventurerForHire in currentlyForHire" :key="adventurerForHire.id">
|
||||||
|
<div class="adventurer-tile">
|
||||||
|
<adventurer-tile class="hire-tile" :adventurer="adventurerForHire"/>
|
||||||
|
<div class="decision">
|
||||||
|
<span
|
||||||
|
title="Hire"
|
||||||
|
@click="hireAdventurer(adventurerForHire)"
|
||||||
|
:class="{disabled: Object.keys(adventurersForHire).length >= guild.adventurerCapacity.getAdventurerCapacity()}"
|
||||||
|
>
|
||||||
|
✔
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
:title="Object.keys(adventurersForHire).length > 0 ? 'Dismiss' : ''"
|
||||||
|
:class="{disabled: Object.keys(adventurersForHire).length <= 0}"
|
||||||
|
@click="dismissAdventurer(adventurerForHire)"
|
||||||
|
>
|
||||||
|
✗
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div v-if="Object.keys(adventurersForHire).length == 0">
|
||||||
|
<span>Noone applied as of now. Check back later!</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
|
||||||
|
import {defineComponent, type PropType} from "vue";
|
||||||
|
import AdventurerTile from "@/components/AdventurerTile.vue";
|
||||||
|
import type {Guild} from "@/classes/Guild";
|
||||||
|
import type {Adventurer} from "@/classes/Adventurer";
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: "RecruitView",
|
||||||
|
components: {AdventurerTile},
|
||||||
|
computed: {
|
||||||
|
currentlyForHire(): Array<Adventurer> {
|
||||||
|
return Object.values(this.adventurersForHire);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
hireAdventurer(adventurer: Adventurer): void {
|
||||||
|
if (Object.keys(this.adventurersForHire).length >= this.guild.adventurerCapacity.getAdventurerCapacity()) return;
|
||||||
|
this.$emit("hireAdventurer", adventurer);
|
||||||
|
},
|
||||||
|
dismissAdventurer(adventurer: Adventurer) {
|
||||||
|
if (Object.keys(this.adventurersForHire).length <= 0) return;
|
||||||
|
this.$emit("dismissAdventurer", adventurer);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
guild: {
|
||||||
|
type: Object as PropType<Guild>,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
adventurersForHire: {
|
||||||
|
type: Object as PropType<{ [key: string]: Adventurer }>,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
emits: ["dismissAdventurer", "hireAdventurer"],
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.adventurers {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 1rem;
|
||||||
|
|
||||||
|
.adventurer-tile {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.25rem;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
.entry {
|
||||||
|
height: 7rem;
|
||||||
|
width: 7rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
b {
|
||||||
|
line-height: 1;
|
||||||
|
text-align: center;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.decision {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 2rem;
|
||||||
|
gap: 1rem;
|
||||||
|
|
||||||
|
span {
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.disabled {
|
||||||
|
color: rgba(0, 0, 0, 0.5);
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -6,37 +6,16 @@
|
|||||||
@closeButtonClicked="selectedAdventurer = null"
|
@closeButtonClicked="selectedAdventurer = null"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
<section class="recruit panel pinned-paper">
|
<AdventurerRecruitment
|
||||||
<h1>Applying adventurers</h1>
|
:guild="guild"
|
||||||
<div class="adventurers">
|
:adventurers-for-hire="adventurersForHire"
|
||||||
<div v-if="adventurerForHire">
|
@hireAdventurer="$emit('hireAdventurer', $event)"
|
||||||
<adventurer-tile class="hire-tile" :adventurer="adventurerForHire"/>
|
@dismissAdventurer="$emit('dismissAdventurer', $event)"
|
||||||
<div class="decision">
|
/>
|
||||||
<span
|
|
||||||
title="Hire"
|
|
||||||
@click="hireAdventurer()"
|
|
||||||
:class="{disabled: Object.keys(adventurers).length >= guild.adventurerCapacity.getAdventurerCapacity()}"
|
|
||||||
>
|
|
||||||
✔
|
|
||||||
</span>
|
|
||||||
<span
|
|
||||||
:title="Object.keys(adventurers).length > 0 ? 'Dismiss' : ''"
|
|
||||||
:class="{disabled: Object.keys(adventurers).length <= 0}"
|
|
||||||
@click="dismissAdventurer()"
|
|
||||||
>
|
|
||||||
✗
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-else>
|
|
||||||
<span>Noone applied as of now. Check back later!</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<section class="collection panel pinned-paper">
|
<section class="collection panel pinned-paper">
|
||||||
<h1>
|
<h1>
|
||||||
Recruited adventurers ({{ Object.keys(adventurers).length }} / {{ guild.adventurerCapacity.getAdventurerCapacity() }})
|
Recruited adventurers ({{ Object.keys(adventurers).length }} /
|
||||||
|
{{ guild.adventurerCapacity.getAdventurerCapacity() }})
|
||||||
</h1>
|
</h1>
|
||||||
<small>Click an adventurer to see details about them</small>
|
<small>Click an adventurer to see details about them</small>
|
||||||
<div class="adventurers">
|
<div class="adventurers">
|
||||||
@@ -61,14 +40,13 @@ import AdventurerTile from "@/components/AdventurerTile.vue";
|
|||||||
import type {Adventurer} from "@/classes/Adventurer";
|
import type {Adventurer} from "@/classes/Adventurer";
|
||||||
import type {Guild} from "@/classes/Guild";
|
import type {Guild} from "@/classes/Guild";
|
||||||
import AdventurerDetails from "@/components/AdventurerDetails.vue";
|
import AdventurerDetails from "@/components/AdventurerDetails.vue";
|
||||||
|
import AdventurerRecruitment from "@/components/AdventurerRecruitment.vue";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "RecruitView",
|
name: "AdventurerView",
|
||||||
components: {AdventurerDetails, AdventurerTile},
|
components: {AdventurerDetails, AdventurerTile, AdventurerRecruitment},
|
||||||
data: () => {
|
data: () => {
|
||||||
return {
|
return {
|
||||||
currentlyForHire: null as Adventurer | null,
|
|
||||||
adventurersForHire: [] as Array<Adventurer>,
|
|
||||||
selectedAdventurer: null as Adventurer | null,
|
selectedAdventurer: null as Adventurer | null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -81,27 +59,14 @@ export default defineComponent({
|
|||||||
type: Object as PropType<{ [key: string]: Adventurer }>,
|
type: Object as PropType<{ [key: string]: Adventurer }>,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
adventurerForHire: {
|
adventurersForHire: {
|
||||||
type: Object as PropType<Adventurer | null>,
|
type: Object as PropType<{ [key: string]: Adventurer }>,
|
||||||
default() {
|
default() {
|
||||||
return null;
|
return {};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
emits: ["hireAdventurer", "dismissAdventurer"],
|
||||||
hireAdventurer(): void {
|
|
||||||
if (Object.keys(this.adventurers).length >= this.guild.adventurerCapacity.getAdventurerCapacity()) return;
|
|
||||||
this.$emit("recruitActionTaken", this.adventurerForHire);
|
|
||||||
},
|
|
||||||
dismissAdventurer() {
|
|
||||||
if (Object.keys(this.adventurers).length <= 0) return;
|
|
||||||
this.$emit("recruitActionTaken", null);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async mounted() {
|
|
||||||
|
|
||||||
},
|
|
||||||
emits: ["recruitActionTaken"]
|
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user