|
|
|
@ -1,14 +1,12 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import { ref, computed, onMounted } from 'vue' |
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus' |
|
|
|
import { AddPill, DeletePill, getPillGrades, GetPillList, getPillRarities, getPillTypes, UpdatePill, type Pill } from '@/api/pill' |
|
|
|
import { AddPill, DeletePill, GetPillList, getPillRarities, getPillTypes, UpdatePill, type Pill } from '@/api/pill' |
|
|
|
import type { EnumInfoDto } from '@/api' |
|
|
|
import { GetLevelList, type Level } from '@/api/level' |
|
|
|
import { Plus, Edit, Delete, Close } from '@element-plus/icons-vue' |
|
|
|
|
|
|
|
const pills = ref<Pill[]>([]) |
|
|
|
//等级 |
|
|
|
const grades = ref<EnumInfoDto[]>([]) |
|
|
|
//类型 |
|
|
|
const types = ref<EnumInfoDto[]>([]) |
|
|
|
//稀有度 |
|
|
|
@ -23,7 +21,6 @@ const searchQuery = ref('') |
|
|
|
const formData = ref<Pill>({ |
|
|
|
id: 0, |
|
|
|
name: '', |
|
|
|
grade: undefined, |
|
|
|
type: undefined, |
|
|
|
rarity: undefined, |
|
|
|
money: undefined, |
|
|
|
@ -43,14 +40,6 @@ const filteredPills = computed(() => { |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
const translateGrade = (id: number) => { |
|
|
|
var item = grades.value.find(x => x.id == id); |
|
|
|
if (item) { |
|
|
|
return item.description |
|
|
|
} |
|
|
|
return '未知' |
|
|
|
} |
|
|
|
|
|
|
|
const translateType = (id: number) => { |
|
|
|
var item = types.value.find(x => x.id == id); |
|
|
|
if (item) { |
|
|
|
@ -84,7 +73,6 @@ const openDialog = (pill?: Pill) => { |
|
|
|
formData.value = { |
|
|
|
id: 0, |
|
|
|
name: '', |
|
|
|
grade: undefined, |
|
|
|
type: undefined, |
|
|
|
rarity: undefined, |
|
|
|
money: undefined, |
|
|
|
@ -104,7 +92,6 @@ const closeDialog = () => { |
|
|
|
const savePill = async () => { |
|
|
|
console.log('formdata', formData.value) |
|
|
|
if (!formData.value.name |
|
|
|
|| !formData.value.grade |
|
|
|
|| !formData.value.type |
|
|
|
|| !formData.value.rarity |
|
|
|
|| !formData.value.money |
|
|
|
@ -135,7 +122,6 @@ const savePill = async () => { |
|
|
|
const newOne: Pill = { |
|
|
|
id: 1, |
|
|
|
name: formData.value.name, |
|
|
|
grade: formData.value.grade, |
|
|
|
type: formData.value.type, |
|
|
|
rarity: formData.value.rarity, |
|
|
|
money: formData.value.money, |
|
|
|
@ -179,7 +165,6 @@ const deletePill = async (pill: Pill) => { |
|
|
|
|
|
|
|
onMounted(async () => { |
|
|
|
await fetchPills() |
|
|
|
await fetchPillGrades() |
|
|
|
await fetchPillTypes() |
|
|
|
await fetchPillRarities() |
|
|
|
await fetchLevels() |
|
|
|
@ -189,10 +174,6 @@ const fetchPills = async () => { |
|
|
|
pills.value = await GetPillList() |
|
|
|
} |
|
|
|
|
|
|
|
const fetchPillGrades = async () => { |
|
|
|
grades.value = await getPillGrades() |
|
|
|
} |
|
|
|
|
|
|
|
const fetchPillTypes = async () => { |
|
|
|
types.value = await getPillTypes() |
|
|
|
} |
|
|
|
@ -224,13 +205,6 @@ const fetchLevels = async () => { |
|
|
|
|
|
|
|
<el-table :data="filteredPills" style="width: 100%;" stripe> |
|
|
|
<el-table-column label="名称" prop="name" /> |
|
|
|
<el-table-column label="等级"> |
|
|
|
<template #default="scoped"> |
|
|
|
<span> |
|
|
|
{{ translateGrade(scoped.row.grade) }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="类型"> |
|
|
|
<template #default="scoped"> |
|
|
|
<span> |
|
|
|
@ -274,12 +248,6 @@ const fetchLevels = async () => { |
|
|
|
<el-form-item label="丹药名称"> |
|
|
|
<el-input v-model="formData.name" clearable></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="等级"> |
|
|
|
<el-select v-model="formData.grade"> |
|
|
|
<el-option v-for="(value, index) in grades" :key="index" :value="value.id" :label="value.description"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="类型"> |
|
|
|
<el-select v-model="formData.type"> |
|
|
|
<el-option v-for="(value, index) in types" :key="index" :value="value.id" :label="value.description"> |
|
|
|
|