feat: 手动处理鱼,商店购买输入数量
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
<!-- 处理按钮 -->
|
<!-- 处理按钮 -->
|
||||||
<div style="text-align: right; margin-bottom: 20px;">
|
<div style="text-align: right; margin-bottom: 20px;">
|
||||||
<el-button type="primary" @click="fetchFishList">刷新</el-button>
|
<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>
|
</div>
|
||||||
|
|
||||||
<el-tabs v-model="activeTab" type="card">
|
<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="name" label="鱼名" align="center" width="200" />
|
||||||
<el-table-column prop="weight" label="重量" align="right" width="150" />
|
<el-table-column prop="weight" label="重量" align="right" width="150" />
|
||||||
<el-table-column prop="description" label="描述" />
|
<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 }">
|
<template #default="{ row }">
|
||||||
<el-tag :type="row.isRare ? 'danger' : 'info'">
|
<el-tag :type="row.isRare ? 'danger' : 'info'">
|
||||||
{{ row.isRare ? '稀有' : '普通' }}
|
{{ row.isRare ? '稀有' : '普通' }}
|
||||||
@@ -29,6 +29,7 @@
|
|||||||
<!-- 出售按钮 -->
|
<!-- 出售按钮 -->
|
||||||
<el-table-column label="操作" align="center" width="180">
|
<el-table-column label="操作" align="center" width="180">
|
||||||
<template #default="{ row }">
|
<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>
|
<el-button v-if="row.isRare" type="danger" @click="handleSell(row)">出售</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -51,7 +52,6 @@ const fetchFishList = async () => {
|
|||||||
const res = await myFishBaskets()
|
const res = await myFishBaskets()
|
||||||
if (res) {
|
if (res) {
|
||||||
fishList.value = res;
|
fishList.value = res;
|
||||||
ElMessage.success('鱼篓数据加载成功')
|
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
ElMessage.warning('请检查网络或重试')
|
ElMessage.warning('请检查网络或重试')
|
||||||
@@ -85,6 +85,21 @@ const handleProcessFish = async () => {
|
|||||||
ElMessage.warning('处理失败,请稍后再试')
|
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) => {
|
const handleSell = async (fish) => {
|
||||||
|
|||||||
+20
-18
@@ -10,8 +10,8 @@
|
|||||||
<el-table-column label="您已拥有" prop="myQuantity" width="150" align="right" />
|
<el-table-column label="您已拥有" prop="myQuantity" width="150" align="right" />
|
||||||
<el-table-column label="操作" width="180" align="center">
|
<el-table-column label="操作" width="180" align="center">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button v-if="row.points <= points" type="primary" @click="buyItem(row)" :disabled="row.myQuantity >= 1">
|
<el-button v-if="row.points <= points" type="primary" @click="buyItem(row)">
|
||||||
{{ row.myQuantity >= 1 ? '已拥有' : '购买' }}
|
购买
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-else type="warning" disabled>
|
<el-button v-else type="warning" disabled>
|
||||||
积分不足
|
积分不足
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted } from 'vue'
|
import { ref, onMounted } from 'vue'
|
||||||
import { whatCanIBuy, buy } from '@/api/shop/shop'
|
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 points = ref(0) // 当前用户的积分
|
||||||
const items = ref([]) // 商店物品列表
|
const items = ref([]) // 商店物品列表
|
||||||
@@ -33,34 +33,36 @@ const items = ref([]) // 商店物品列表
|
|||||||
// 获取当前用户的积分和商店商品信息
|
// 获取当前用户的积分和商店商品信息
|
||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
try {
|
try {
|
||||||
// 假设获取积分的接口
|
|
||||||
const pointsRes = await whatCanIBuy()
|
const pointsRes = await whatCanIBuy()
|
||||||
points.value = pointsRes.points
|
points.value = pointsRes.points
|
||||||
items.value = pointsRes.items
|
items.value = pointsRes.items
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('====================================');
|
|
||||||
console.log(err);
|
|
||||||
console.log('====================================');
|
|
||||||
ElMessage.error('加载数据失败,请重试')
|
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 {
|
try {
|
||||||
const res = await buy({ EquipmentId: item.id, Quantity: 1 })
|
const res = await await buy({ EquipmentId: good.id, Quantity: 1 })
|
||||||
if (res.success) {
|
if (res) {
|
||||||
item.myQuantity += 1
|
good.myQuantity += 1
|
||||||
points.value -= item.points
|
points.value -= good.points
|
||||||
ElMessage.success(res.message)
|
ElMessage.success("购买成功")
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.message)
|
ElMessage.error(res.message)
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('====================================');
|
ElMessage.error('购买失败,请稍后再试')
|
||||||
console.log(err);
|
}
|
||||||
console.log('====================================');
|
|
||||||
ElMessage.error('购买过程中出错,请稍后再试')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user