feat: 手动处理鱼,商店购买输入数量

main
LyMysterious 1 year ago
parent 5842b01f22
commit 80e90eeb96

@ -5,7 +5,7 @@
<!-- 处理按钮 -->
<div style="text-align: right; margin-bottom: 20px;">
<el-button type="primary" @click="fetchFishList"></el-button>
<el-button type="primary" @click="handleProcessFish"></el-button>
<el-button type="primary" @click="handleProcessFish"></el-button>
</div>
<el-tabs v-model="activeTab" type="card">
@ -19,7 +19,7 @@
<el-table-column prop="name" label="鱼名" align="center" width="200" />
<el-table-column prop="weight" label="重量" align="right" width="150" />
<el-table-column prop="description" label="描述" />
<el-table-column label="是否稀有" align="center" width="150">
<el-table-column label="稀有" align="center" width="150">
<template #default="{ row }">
<el-tag :type="row.isRare ? 'danger' : 'info'">
{{ row.isRare ? '稀有' : '普通' }}
@ -29,6 +29,7 @@
<!-- 出售按钮 -->
<el-table-column label="操作" align="center" width="180">
<template #default="{ row }">
<el-button type="primary" @click="handleFish(row.id)"></el-button>
<el-button v-if="row.isRare" type="danger" @click="handleSell(row)"></el-button>
</template>
</el-table-column>
@ -51,7 +52,6 @@ const fetchFishList = async () => {
const res = await myFishBaskets()
if (res) {
fishList.value = res;
ElMessage.success('鱼篓数据加载成功')
}
} catch (err) {
ElMessage.warning('请检查网络或重试')
@ -85,6 +85,21 @@ const handleProcessFish = async () => {
ElMessage.warning('处理失败,请稍后再试')
}
}
//
const handleFish = async (fishId) => {
try {
const res = await handleFishById(fishId)
if (res) {
ElMessage.success(res)
fetchFishList()
}
} catch (err) {
console.log('====================================');
console.log(err);
console.log('====================================');
ElMessage.warning('处理失败,请稍后再试')
}
}
//
const handleSell = async (fish) => {

@ -10,8 +10,8 @@
<el-table-column label="您已拥有" prop="myQuantity" width="150" align="right" />
<el-table-column label="操作" width="180" align="center">
<template #default="{ row }">
<el-button v-if="row.points <= points" type="primary" @click="buyItem(row)" :disabled="row.myQuantity >= 1">
{{ row.myQuantity >= 1 ? '已拥有' : '购买' }}
<el-button v-if="row.points <= points" type="primary" @click="buyItem(row)">
购买
</el-button>
<el-button v-else type="warning" disabled>
积分不足
@ -25,7 +25,7 @@
<script setup>
import { ref, onMounted } from 'vue'
import { whatCanIBuy, buy } from '@/api/shop/shop'
import { ElButton, ElTable, ElTableColumn, ElMessage } from 'element-plus'
import { ElButton, ElTable, ElTableColumn, ElMessage, ElInput, ElMessageBox } from 'element-plus'
const points = ref(0) //
const items = ref([]) //
@ -33,34 +33,36 @@ const items = ref([]) // 商店物品列表
//
const fetchData = async () => {
try {
//
const pointsRes = await whatCanIBuy()
points.value = pointsRes.points
items.value = pointsRes.items
} catch (err) {
console.log('====================================');
console.log(err);
console.log('====================================');
ElMessage.error('加载数据失败,请重试')
}
}
//
const buyItem = async (item) => {
//
const buyItem = async (good) => {
const { value: count } = await ElMessageBox.prompt('请输入购买数量', `物品名称 ${good.name}`, {
confirmButtonText: '确认',
cancelButtonText: '取消',
inputPattern: /^(?:[1-9]\d{0,3}|10000)$/,
inputErrorMessage: '请输入 1 到 10000 之间的整数'
})
if (count) {
try {
const res = await buy({ EquipmentId: item.id, Quantity: 1 })
if (res.success) {
item.myQuantity += 1
points.value -= item.points
ElMessage.success(res.message)
const res = await await buy({ EquipmentId: good.id, Quantity: 1 })
if (res) {
good.myQuantity += 1
points.value -= good.points
ElMessage.success("购买成功")
} else {
ElMessage.error(res.message)
}
} catch (err) {
console.log('====================================');
console.log(err);
console.log('====================================');
ElMessage.error('购买过程中出错,请稍后再试')
ElMessage.error('购买失败,请稍后再试')
}
}
}

Loading…
Cancel
Save