接口更改
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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),
|
||||
},
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user