接口更改

This commit is contained in:
dzl
2025-10-10 17:31:34 +08:00
parent b546f7f03d
commit 177eacbaef
4 changed files with 33 additions and 37 deletions

View File

@@ -29,9 +29,9 @@
<el-icon><List /></el-icon>
<template #title>订单管理</template>
</el-menu-item>
<el-menu-item v-if="userStore.isAdmin" index="/income">
<el-menu-item v-if="userStore.isAdmin" index="/withdrawals">
<el-icon><Money /></el-icon>
<template #title>提现管理</template>
<template #title>提现审批</template>
</el-menu-item>
<el-menu-item index="/profile">
<el-icon><UserFilled /></el-icon>

View File

@@ -83,9 +83,9 @@ const routes = [
}
},
{
path: 'income',
name: 'Income',
component: () => import('@/views/Income.vue'),
path: 'withdrawals',
name: 'Withdrawals',
component: () => import('@/views/WithdrawalApproval.vue'),
meta: {
title: '提现管理',
icon: 'Money',

View File

@@ -247,9 +247,9 @@ const api = {
},
// 提现管理
income: {
getIncomeList: (params) => apiRequest.get('/income', {params}),
createIncome: (data) => apiRequest.post('/income', data),
withdraw: {
getWithdrawList: (params) => apiRequest.get('/withdrawals', {params}),
createWithdraw: (data) => apiRequest.post('/withdrawals', data),
},

View File

@@ -10,7 +10,7 @@
type="primary"
size="large"
class="withdraw-btn"
@click="getIncome"
@click="getWithdraw"
>
<el-icon><Plus /></el-icon>
申请提现
@@ -21,20 +21,20 @@
<!-- 数据表格 -->
<div class="table-container">
<el-table
:data="incomeList"
:data="withdrawList"
v-loading="loading"
stripe
class="income-table"
header-row-class-name="table-header"
>
<el-table-column prop="id" label="ID" align="center" />
<el-table-column prop="user.name" label="用户" />
<el-table-column prop="id" label="ID" />
<el-table-column prop="user_id" label="用户" />
<el-table-column prop="amount" label="金额">
<template #default="{ row }">
<span class="amount-text">¥{{ row.amount }}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" align="center">
<el-table-column prop="status" label="状态">
<template #default="{ row }">
<el-tag
:type="getStatusType(row.status)"
@@ -45,9 +45,9 @@
</el-tag>
</template>
</el-table-column>
<el-table-column prop="createdAt" label="创建时间">
<el-table-column prop="time" label="创建时间">
<template #default="{ row }">
<span class="time-text">{{ formatTime(row.createdAt) }}</span>
<span class="time-text">{{ formatTime(row.time) }}</span>
</template>
</el-table-column>
</el-table>
@@ -61,8 +61,8 @@
:page-sizes="[10, 20, 50, 100]"
:total="pagination.total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="loadIncomeList"
@current-change="loadIncomeList"
@size-change="loadWithdrawList"
@current-change="loadWithdrawList"
class="custom-pagination"
/>
</div>
@@ -83,7 +83,7 @@
>
<el-form-item label="提现金额" prop="amount">
<el-input
v-model="form.amount"
v-model.number="form.amount"
type="number"
placeholder="请输入提现金额"
>
@@ -120,7 +120,7 @@ import { ElForm, ElFormItem, ElInput, ElMessage } from 'element-plus'
import { Money, Plus, Check } from '@element-plus/icons-vue'
const userStore = useUserStore()
const incomeList = ref([])
const withdrawList = ref([])
const loading = ref(false)
const drawerVisible = ref(false)
const formRef = ref(null)
@@ -143,11 +143,9 @@ const pagination = reactive({
//
const getStatusType = (status) => {
const statusMap = {
'pending': 'warning',
'processing': 'primary',
'completed': 'success',
'failed': 'danger',
'cancelled': 'info'
'pending': 'info',
'success': 'success',
'canceled': 'danger'
}
return statusMap[status] || 'info'
}
@@ -156,10 +154,8 @@ const getStatusType = (status) => {
const getStatusText = (status) => {
const statusMap = {
'pending': '待处理',
'processing': '处理中',
'completed': '已完成',
'failed': '失败',
'cancelled': '已取消'
'success': '已通过',
'canceled': '已取消'
}
return statusMap[status] || status
}
@@ -177,15 +173,15 @@ const formatTime = (time) => {
})
}
const loadIncomeList = async () => {
const loadWithdrawList = async () => {
loading.value = true
try {
const { data } = await api.income.getIncomeList({
const { data } = await api.withdraw.getWithdrawList({
page: pagination.page,
limit: pagination.limit
})
incomeList.value = data
pagination.total = data.total
withdrawList.value = data.data.withdrawals || []
pagination.total = data.data.pagination.total || 0
} catch (error) {
console.error('获取提现列表失败:', error)
ElMessage.error('获取提现列表失败')
@@ -194,7 +190,7 @@ const loadIncomeList = async () => {
}
}
const getIncome = async () => {
const getWithdraw = async () => {
drawerVisible.value = true
//
form.amount = 0
@@ -210,14 +206,14 @@ const submitForm = async () => {
const valid = await formRef.value.validate()
if (!valid) return
const response = await api.income.createIncome({
const response = await api.withdraw.createWithdraw({
amount: Number(form.amount),
userId: userStore.user.id
})
if (response.data) {
ElMessage.success('提现申请提交成功')
loadIncomeList()
loadWithdrawList()
drawerVisible.value = false
}
} catch (error) {
@@ -227,13 +223,13 @@ const submitForm = async () => {
}
onMounted(async () => {
loadIncomeList()
loadWithdrawList()
})
</script>
<style scoped>
/* 页面容器 */
.income-container {
.withdraw-container {
padding: 24px;
min-height: 100vh;
}