|
|
|
@ -20,6 +20,7 @@ import { GetPillList, type Pill } from '@/api/pill' |
|
|
|
import { GetEquipmentTemplateList, type EquipmentTemplate } from '@/api/equipment' |
|
|
|
import { Plus, Edit, Delete, Close } from '@element-plus/icons-vue' |
|
|
|
import { ICONS } from '@/constants/theme' |
|
|
|
import { GetLevelList, type Level } from '@/api/level' |
|
|
|
|
|
|
|
const monsters = ref<Monster[]>([]) |
|
|
|
|
|
|
|
@ -27,6 +28,8 @@ const monsterTypes = ref<EnumInfoDto[]>([]) |
|
|
|
const rewardTypes = ref<EnumInfoDto[]>([]) |
|
|
|
const pillData = ref<Pill[]>([]) |
|
|
|
const equipmentData = ref<EquipmentTemplate[]>([]) |
|
|
|
//等级 |
|
|
|
const levels = ref<Level[]>([]) |
|
|
|
|
|
|
|
const currentPage = ref(1) |
|
|
|
const pageSize = ref(10) |
|
|
|
@ -89,6 +92,15 @@ const translateMonsterType = (typeId: number) => { |
|
|
|
return type ? type.description : '未知类型' |
|
|
|
} |
|
|
|
|
|
|
|
const translateLevel = (id: number) => { |
|
|
|
console.log(levels) |
|
|
|
var item = levels.value.find(x => x.levelId == id); |
|
|
|
if (item) { |
|
|
|
return item.name |
|
|
|
} |
|
|
|
return '未知' |
|
|
|
} |
|
|
|
|
|
|
|
const getMonsterTypeClass = (typeId: number) => { |
|
|
|
switch (typeId) { |
|
|
|
case 1: |
|
|
|
@ -321,6 +333,7 @@ onMounted(async () => { |
|
|
|
await refreshMonsters() |
|
|
|
await fetchTypes() |
|
|
|
await fetchRewardTypes() |
|
|
|
await fetchLevels() |
|
|
|
}) |
|
|
|
|
|
|
|
const refreshMonsters = async (page?: number) => { |
|
|
|
@ -355,6 +368,10 @@ const fetchRewardTypes = async () => { |
|
|
|
var data = await GetRewardTypes() |
|
|
|
rewardTypes.value = data |
|
|
|
} |
|
|
|
|
|
|
|
const fetchLevels = async () => { |
|
|
|
levels.value = await GetLevelList() |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<template> |
|
|
|
@ -404,8 +421,14 @@ const fetchRewardTypes = async () => { |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="名称" prop="name" width="150"></el-table-column> |
|
|
|
<el-table-column label="等级" prop="levelId" width="80"></el-table-column> |
|
|
|
<el-table-column label="类型"> |
|
|
|
<el-table-column label="等级" prop="levelId" width="80"> |
|
|
|
<template #default="scoped"> |
|
|
|
<span> |
|
|
|
{{ translateLevel(scoped.row.levelId) }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="类型" width="100"> |
|
|
|
<template #default="scoped"> |
|
|
|
<span class="monster-type" :class="getMonsterTypeClass(scoped.row.type)"> |
|
|
|
{{ translateMonsterType(scoped.row.type) }} |
|
|
|
@ -477,7 +500,10 @@ const fetchRewardTypes = async () => { |
|
|
|
<el-input v-model="formData.name" placeholder="怪兽名称" clearable /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="等级"> |
|
|
|
<el-input-number v-model="formData.levelId" /> |
|
|
|
<el-select v-model="formData.levelId"> |
|
|
|
<el-option v-for="(value, index) in levels" :key="index" :value="value.levelId" :label="value.name"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="类型"> |
|
|
|
<el-select v-model="formData.type"> |
|
|
|
|