feat: 手动处理鱼,商店购买输入数量
This commit is contained in:
@@ -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) => {
|
||||
|
||||
+20
-18
@@ -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('购买失败,请稍后再试')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user