|
|
|
|
@ -1,36 +1,50 @@
|
|
|
|
|
<!--
|
|
|
|
|
* @Descripttion:
|
|
|
|
|
* @version: 1.0.0
|
|
|
|
|
* @Author: LyMy
|
|
|
|
|
* @Date: 2025-04-11 16:33:21
|
|
|
|
|
* @LastEditors: LyMy
|
|
|
|
|
* @LastEditTime: 2025-04-11 18:31:55
|
|
|
|
|
* @FilePath: \go_fish_web\src\pages\fishbaskets\Fishbaskets.vue
|
|
|
|
|
-->
|
|
|
|
|
<template>
|
|
|
|
|
<div class="equipments-page">
|
|
|
|
|
<h1>🎣 我的鱼篓</h1>
|
|
|
|
|
<el-table :data="fishList" style="width: 100%;height: calc(100vh - 240px);" border>
|
|
|
|
|
<el-table-column prop="name" label="鱼名" />
|
|
|
|
|
<el-table-column prop="weight" label="重量" align="right"/>
|
|
|
|
|
|
|
|
|
|
<!-- 处理按钮 -->
|
|
|
|
|
<div style="text-align: right; margin-bottom: 20px;">
|
|
|
|
|
<el-button type="primary" @click="fetchFishList">刷新</el-button>
|
|
|
|
|
<el-button type="primary" @click="handleProcessFish">一键处理鱼</el-button>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<el-tabs v-model="activeTab" type="card">
|
|
|
|
|
<el-tab-pane label="所有鱼" name="all" />
|
|
|
|
|
<el-tab-pane label="普通鱼" name="ordinary" />
|
|
|
|
|
<el-tab-pane label="稀有鱼" name="rare" />
|
|
|
|
|
</el-tabs>
|
|
|
|
|
|
|
|
|
|
<el-table :data="filteredFish" style="width: 100%;height:(100vh-200px)" border>
|
|
|
|
|
<el-table-column prop="id" label="id" align="center" width="100" />
|
|
|
|
|
<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">
|
|
|
|
|
<el-table-column label="是否稀有" align="center" width="150">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<el-tag :type="row.isRare ? 'danger' : 'info'">
|
|
|
|
|
{{ row.isRare ? '稀有' : '普通' }}
|
|
|
|
|
</el-tag>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<!-- 出售按钮 -->
|
|
|
|
|
<el-table-column label="操作" align="center" width="180">
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
<el-button v-if="row.isRare" type="danger" @click="handleSell(row)">出售</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup>
|
|
|
|
|
import { ref, onMounted } from 'vue'
|
|
|
|
|
import { ref, onMounted, computed } from 'vue'
|
|
|
|
|
import { useRouter } from 'vue-router'
|
|
|
|
|
import { myFishBaskets } from '@/api/fishbaskets/fishbaskets'
|
|
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
|
|
import { myFishBaskets, handleFishById, sellFish, autoHandleFish } from '@/api/fishbaskets/fishbaskets' // 添加 sellFish 接口
|
|
|
|
|
import { ElMessage, ElInput, ElMessageBox } from 'element-plus'
|
|
|
|
|
|
|
|
|
|
const activeTab = ref('all')
|
|
|
|
|
const fishList = ref([])
|
|
|
|
|
const router = useRouter()
|
|
|
|
|
|
|
|
|
|
@ -38,15 +52,64 @@ const fetchFishList = async () => {
|
|
|
|
|
try {
|
|
|
|
|
const res = await myFishBaskets()
|
|
|
|
|
if (res) {
|
|
|
|
|
fishList.value = res
|
|
|
|
|
fishList.value = res;
|
|
|
|
|
ElMessage.success('鱼篓数据加载成功')
|
|
|
|
|
}
|
|
|
|
|
} catch (err) {
|
|
|
|
|
ElMessage.warning('请检查网络或重试')
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const goHome = () => {
|
|
|
|
|
router.push('/')
|
|
|
|
|
// 根据选中的标签筛选数据
|
|
|
|
|
const filteredFish = computed(() => {
|
|
|
|
|
switch (activeTab.value) {
|
|
|
|
|
case 'all':
|
|
|
|
|
return fishList.value;
|
|
|
|
|
case 'ordinary':
|
|
|
|
|
return fishList.value.filter(f => !f.isRare);
|
|
|
|
|
case 'rare':
|
|
|
|
|
return fishList.value.filter(f => f.isRare);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 一键处理鱼的接口调用
|
|
|
|
|
const handleProcessFish = async () => {
|
|
|
|
|
try {
|
|
|
|
|
const res = await autoHandleFish()
|
|
|
|
|
if (res) {
|
|
|
|
|
ElMessage.success(res)
|
|
|
|
|
fetchFishList()
|
|
|
|
|
}
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.log('====================================');
|
|
|
|
|
console.log(err);
|
|
|
|
|
console.log('====================================');
|
|
|
|
|
ElMessage.warning('处理失败,请稍后再试')
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 处理出售操作
|
|
|
|
|
const handleSell = async (fish) => {
|
|
|
|
|
const { value: price } = await ElMessageBox.prompt('请输入出售价格', `出售鱼 (${fish.name})` , {
|
|
|
|
|
confirmButtonText: '确认',
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
inputPattern: /^\d+(\.\d{1,2})?$/,
|
|
|
|
|
inputErrorMessage: '请输入合法的价格'
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
if (price) {
|
|
|
|
|
try {
|
|
|
|
|
const res = await sellFish({ FishBagId: fish.id, Points: price })
|
|
|
|
|
if (res.success) {
|
|
|
|
|
ElMessage.success(res.message)
|
|
|
|
|
fetchFishList()
|
|
|
|
|
} else {
|
|
|
|
|
ElMessage.error('出售失败 ' + res.message);
|
|
|
|
|
}
|
|
|
|
|
} catch (err) {
|
|
|
|
|
ElMessage.error('出售失败,请稍后再试')
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
|