1、用户提现审核
This commit is contained in:
parent
53736eeec5
commit
f40a0310c7
@ -204,3 +204,30 @@ export function getUserBankCardList(data) {
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
// 用户提现记录
|
||||
export function getUserWithdrawList(data) {
|
||||
return request({
|
||||
url: `/ums/withdraw/list`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
// 用户审核提现
|
||||
export function setWithdrawStatus(data) {
|
||||
return request({
|
||||
url: `/ums/withdraw/update`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
// 用户充值记录
|
||||
export function getUserChargeList(data) {
|
||||
return request({
|
||||
url: `/ums/charge/list`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
@ -185,6 +185,22 @@ export const dynamicRoutes: RouteRecordRaw[] = [
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
// 提现记录
|
||||
{
|
||||
path: '/member',
|
||||
component: Layout,
|
||||
hidden: true,
|
||||
permissions: ['oms:aftersale:query'],
|
||||
children: [
|
||||
{
|
||||
path: 'withdraw',
|
||||
component: () => import('@/views/ums/member/withdraw.vue'),
|
||||
name: 'witdhdrawDetail',
|
||||
meta: { title: '提现记录' }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/order',
|
||||
component: Layout,
|
||||
@ -264,7 +280,6 @@ export const dynamicRoutes: RouteRecordRaw[] = [
|
||||
name: 'account',
|
||||
meta: { title: '账号管理', icon: 'dashboard', affix: true }
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
];
|
||||
|
@ -323,7 +323,7 @@ export const isExternal = (path: string) => {
|
||||
*@param emuList枚举值
|
||||
*/
|
||||
export const getEmulistLabelById = (id: string, emuList: any) => {
|
||||
if (!id) {
|
||||
if (id != '0' && !id) {
|
||||
return '--';
|
||||
}
|
||||
if (emuList && emuList.length) {
|
||||
|
@ -120,6 +120,8 @@
|
||||
<el-button size="small" text type="primary" @click="showUserBannedInfoModal(scope.row, true)">封禁记录 </el-button>
|
||||
<el-button size="small" text type="primary" @click="showBlackListInfoModal(scope.row)">黑名单 </el-button>
|
||||
<el-button size="small" text type="primary" @click="handleUserDelete(scope.row)">删除 </el-button>
|
||||
<el-button size="small" text type="primary" @click="goWithdrawInfoPage(scope.row)">提现记录 </el-button>
|
||||
<el-button size="small" text type="primary" @click="showWithdrawInfoModal(scope.row, true)">充值记录 </el-button>
|
||||
<!-- <el-button size="small" text type="primary" @click="showStatistics(scope.row.id)" v-hasPermi="['ums:member:statistics']">查看数据 </el-button>
|
||||
<el-button size="small" text type="primary" @click="goOrder(scope.row.phoneEncrypted)">查看下单</el-button>
|
||||
<el-button size="small" text type="primary" @click="goCart(scope.row.phoneEncrypted)">查看购物车</el-button>-->
|
||||
@ -211,6 +213,63 @@
|
||||
"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<!--会员提现记录-->
|
||||
<el-dialog title="会员提现记录" v-model="userWithdrawInfoModalVisible" width="1200px" append-to-body>
|
||||
<el-table v-loading="userWithdrawInfoTableLoading" :data="userWithdrawInfo.data" border empty-text="暂无数据">
|
||||
<el-table-column label="申请人" prop="createBy" />
|
||||
<el-table-column label="申请时间" prop="createTime" />
|
||||
<el-table-column label="提现码" prop="code" />
|
||||
<el-table-column label="提现金额" prop="money">
|
||||
<template v-slot="scope"> ¥ {{ scope.row.money || '0.00' }} </template>
|
||||
</el-table-column>
|
||||
<el-table-column label="手续费" prop="fee">
|
||||
<template v-slot="scope"> ¥ {{ scope.row.fee || '0.00' }} </template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="实际到账金额" prop="actualMoney">
|
||||
<template v-slot="scope"> ¥ {{ scope.row.actualMoney || '0.00' }} </template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="提现方式" prop="method">
|
||||
<template v-slot="scope">
|
||||
{{ getEmulistLabelById(scope.row.method, userWithdrawMethodMap) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提现类型" prop="type">
|
||||
<template v-slot="scope">
|
||||
{{ getEmulistLabelById(scope.row.type, userWithdrawTypeMap) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提现状态" prop="status">
|
||||
<template v-slot="scope">
|
||||
{{ getEmulistLabelById(scope.row.status, userWithdrawStatusMap) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审批状态" prop="auditStatus">
|
||||
<template v-slot="scope">
|
||||
{{ getEmulistLabelById(scope.row.auditStatus, userWithdrawAuditMap) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审核人" prop="auditBy" width="100" />
|
||||
<el-table-column label="审核时间" prop="auditTime" width="100" />
|
||||
<el-table-column label="操作" class-name="small-padding fixed-width" fixed="right" width="80">
|
||||
<el-button size="small" text type="primary">审批</el-button>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-if="userWithdrawInfo.total"
|
||||
:total="userWithdrawInfo.total"
|
||||
v-model:page="withdrawDataParams.current"
|
||||
v-model:limit="withdrawDataParams.size"
|
||||
@pagination="
|
||||
() => {
|
||||
showWithdrawInfoModal(userWithdrawInfo.record);
|
||||
}
|
||||
"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
<!--用户封禁记录-->
|
||||
<el-dialog title="会员封禁信息" v-model="userBannedInfoModalVisible" width="900px" append-to-body>
|
||||
<el-table v-loading="userBannedInfoTableLoading" :data="userBannedInfo.data" border empty-text="暂无数据">
|
||||
@ -459,7 +518,10 @@ import {
|
||||
getUserBalanceList,
|
||||
deleteUser,
|
||||
getUserBannelList,
|
||||
getUserBankCardList
|
||||
getUserBankCardList,
|
||||
getUserWithdrawList,
|
||||
setWithdrawStatus,
|
||||
getUserChargeList
|
||||
} from '@/api/ums/member';
|
||||
import dateUtil from '@/utils/DateUtil';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
@ -631,6 +693,33 @@ export default {
|
||||
bankCardDataParams: {
|
||||
current: 1,
|
||||
size: 10
|
||||
},
|
||||
// 用户提现记录
|
||||
userWithdrawInfo: {
|
||||
total: 0,
|
||||
data: [],
|
||||
record: {}
|
||||
},
|
||||
userWithdrawInfoModalVisible: false,
|
||||
userWithdrawInfoTableLoading: false,
|
||||
withdrawDataParams: {
|
||||
current: 1,
|
||||
size: 10
|
||||
},
|
||||
userWithdrawMethodMap: [],
|
||||
userWithdrawTypeMap: [],
|
||||
userWithdrawStatusMap: [],
|
||||
userWithdrawAuditMap: [],
|
||||
userChargedrawInfo: {
|
||||
total: 0,
|
||||
data: [],
|
||||
record: {}
|
||||
},
|
||||
userChargeInfoModalVisible: false,
|
||||
userChargeInfoTableLoading: false,
|
||||
chargeDataParams: {
|
||||
current: 1,
|
||||
size: 10
|
||||
}
|
||||
};
|
||||
},
|
||||
@ -895,6 +984,50 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
goWithdrawInfoPage(row) {
|
||||
const id = row.id;
|
||||
this.$router.push({ path: '/member/withdraw', query: { id } });
|
||||
},
|
||||
// 展示提现记录弹层
|
||||
showWithdrawInfoModal(record, isFirst) {
|
||||
const { id } = this.userWithdrawInfo.record || {};
|
||||
const reqParams = {
|
||||
...this.withdrawDataParams,
|
||||
memberId: record.id ? record.id : id
|
||||
};
|
||||
this.userWithdrawInfoTableLoading = true;
|
||||
if (isFirst) {
|
||||
// 获取枚举
|
||||
this.getWithdrawEmu();
|
||||
}
|
||||
getUserWithdrawList(reqParams)
|
||||
.then((response) => {
|
||||
const { records = [], total = 0 } = response.data || {};
|
||||
if (isFirst) {
|
||||
this.userWithdrawInfoModalVisible = true;
|
||||
}
|
||||
this.userWithdrawInfo = {
|
||||
total: total,
|
||||
data: records || [],
|
||||
record: record
|
||||
};
|
||||
this.userWithdrawInfoTableLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
this.userWithdrawInfoTableLoading = false;
|
||||
});
|
||||
},
|
||||
async getWithdrawEmu() {
|
||||
const userWithdrawMethodMap = await this.getDictionaryByKey('ums_withdraw_method');
|
||||
const userWithdrawTypeMap = await this.getDictionaryByKey('ums_withdraw_type');
|
||||
const userWithdrawStatusMap = await this.getDictionaryByKey('ums_withdraw_status');
|
||||
const userWithdrawAuditMap = await this.getDictionaryByKey('sys_common_audit');
|
||||
|
||||
this.userWithdrawMethodMap = userWithdrawMethodMap;
|
||||
this.userWithdrawTypeMap = userWithdrawTypeMap;
|
||||
this.userWithdrawStatusMap = userWithdrawStatusMap;
|
||||
this.userWithdrawAuditMap = userWithdrawAuditMap;
|
||||
},
|
||||
// 展示用户封禁记录弹框
|
||||
showUserBannedInfoModal(record, isFirst) {
|
||||
const { id } = this.userBannedInfo.record || {};
|
||||
|
198
src/views/ums/member/withdraw.vue
Normal file
198
src/views/ums/member/withdraw.vue
Normal file
@ -0,0 +1,198 @@
|
||||
<template>
|
||||
<el-card>
|
||||
<el-table v-loading="userWithdrawInfoTableLoading" :data="userWithdrawInfo.data" border empty-text="暂无数据">
|
||||
<el-table-column label="申请人" prop="createBy" />
|
||||
<el-table-column label="申请时间" prop="createTime" />
|
||||
<el-table-column label="提现码" prop="code" />
|
||||
<el-table-column label="提现金额" prop="money">
|
||||
<template v-slot="scope"> ¥ {{ scope.row.money || '0.00' }} </template>
|
||||
</el-table-column>
|
||||
<el-table-column label="手续费" prop="fee">
|
||||
<template v-slot="scope"> ¥ {{ scope.row.fee || '0.00' }} </template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="实际到账金额" prop="actualMoney">
|
||||
<template v-slot="scope"> ¥ {{ scope.row.actualMoney || '0.00' }} </template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="提现方式" prop="method">
|
||||
<template v-slot="scope">
|
||||
{{ getEmulistLabelById(scope.row.method, userWithdrawMethodMap) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提现类型" prop="type">
|
||||
<template v-slot="scope">
|
||||
{{ getEmulistLabelById(scope.row.type, userWithdrawTypeMap) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提现状态" prop="status">
|
||||
<template v-slot="scope">
|
||||
{{ getEmulistLabelById(scope.row.status, userWithdrawStatusMap) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审批状态" prop="auditStatus">
|
||||
<template v-slot="scope">
|
||||
{{ getEmulistLabelById(scope.row.auditStatus, userWithdrawAuditMap) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审核人" prop="auditBy" width="100" />
|
||||
<el-table-column label="审核时间" prop="auditTime" width="100" />
|
||||
<el-table-column label="操作" fixed="right" width="80">
|
||||
<template v-slot="scope">
|
||||
<el-button v-if="scope.row.auditStatus == '0'" size="small" text type="primary" @click="showAuditModal(scope.row)">审批</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-if="userWithdrawInfo.total"
|
||||
:total="userWithdrawInfo.total"
|
||||
v-model:page="withdrawDataParams.current"
|
||||
v-model:limit="withdrawDataParams.size"
|
||||
@pagination="
|
||||
() => {
|
||||
showWithdrawInfoList(userWithdrawInfo.record);
|
||||
}
|
||||
"
|
||||
/>
|
||||
</el-card>
|
||||
<!-- 提现审核-->
|
||||
<el-dialog title="提现审核" v-model="auditFormOpen" width="500px" append-to-body>
|
||||
<el-row>
|
||||
<el-col :span="4">审核结果</el-col>
|
||||
<el-col :span="20">
|
||||
<el-select v-model="auditStatus" size="small">
|
||||
<el-option v-show="item.value != '0'" v-for="item in userWithdrawAuditMap" :value="item.value" :label="item.label" />
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="auditStatus == '2'" class="mt2">
|
||||
<el-col :span="4">拒绝原因</el-col>
|
||||
<el-col :span="20">
|
||||
<el-input v-model="auditReason" type="textarea" :rows="3"></el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="mt6">
|
||||
<el-col :span="12"></el-col>
|
||||
<el-col :span="12">
|
||||
<el-button type="default" size="small" @click="resetAuditForm">取消</el-button>
|
||||
<el-button type="primary" size="small" @click="confirmSubmitAudit">确认</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserWithdrawList, setWithdrawStatus } from '@/api/ums/member';
|
||||
|
||||
export default {
|
||||
name: 'UmsMember',
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
// 用户提现记录
|
||||
userWithdrawInfo: {
|
||||
total: 0,
|
||||
data: [],
|
||||
record: {}
|
||||
},
|
||||
userWithdrawInfoModalVisible: false,
|
||||
userWithdrawInfoTableLoading: false,
|
||||
withdrawDataParams: {
|
||||
current: 1,
|
||||
size: 10
|
||||
},
|
||||
auditStatus: null,
|
||||
auditReason: null,
|
||||
auditFormOpen: false,
|
||||
currentRecord: {},
|
||||
userWithdrawMethodMap: [],
|
||||
userWithdrawTypeMap: [],
|
||||
userWithdrawStatusMap: [],
|
||||
userWithdrawAuditMap: []
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.pageInit();
|
||||
this.getWithdrawEmu();
|
||||
},
|
||||
methods: {
|
||||
pageInit() {
|
||||
const { id } = this.$route.query;
|
||||
this.showWithdrawInfoList(id);
|
||||
},
|
||||
|
||||
showAuditModal(record) {
|
||||
this.currentRecord = record;
|
||||
this.auditFormOpen = true;
|
||||
},
|
||||
resetAuditForm() {
|
||||
this.currentRecord = {};
|
||||
this.auditFormOpen = false;
|
||||
this.auditStatus = null;
|
||||
this.auditReason = null;
|
||||
},
|
||||
// 提交审核
|
||||
confirmSubmitAudit() {
|
||||
const { id } = this.$route.query;
|
||||
if (!this.auditStatus) {
|
||||
return this.$modal.msgWarning(`请选择审核结果!`);
|
||||
}
|
||||
const params = {
|
||||
memberId: id,
|
||||
id: this.currentRecord.id,
|
||||
auditStatus: this.auditStatus,
|
||||
auditReason: this.auditReason
|
||||
};
|
||||
setWithdrawStatus(params)
|
||||
.then(() => {
|
||||
this.$modal.msgSuccess('审核成功');
|
||||
this.pageInit();
|
||||
})
|
||||
.catch(() => {
|
||||
this.$modal.msgError('审核失败');
|
||||
});
|
||||
},
|
||||
// 展示提现记录
|
||||
showWithdrawInfoList(id) {
|
||||
const reqParams = {
|
||||
...this.withdrawDataParams,
|
||||
memberId: id
|
||||
};
|
||||
this.userWithdrawInfoTableLoading = true;
|
||||
getUserWithdrawList(reqParams)
|
||||
.then((response) => {
|
||||
const { records = [], total = 0 } = response.data || {};
|
||||
this.userWithdrawInfo = {
|
||||
total: total,
|
||||
data: records || []
|
||||
};
|
||||
this.userWithdrawInfoTableLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
this.userWithdrawInfoTableLoading = false;
|
||||
});
|
||||
},
|
||||
async getWithdrawEmu() {
|
||||
const userWithdrawMethodMap = await this.getDictionaryByKey('ums_withdraw_method');
|
||||
const userWithdrawTypeMap = await this.getDictionaryByKey('ums_withdraw_type');
|
||||
const userWithdrawStatusMap = await this.getDictionaryByKey('ums_withdraw_status');
|
||||
const userWithdrawAuditMap = await this.getDictionaryByKey('sys_common_audit');
|
||||
|
||||
this.userWithdrawMethodMap = userWithdrawMethodMap;
|
||||
this.userWithdrawTypeMap = userWithdrawTypeMap;
|
||||
this.userWithdrawStatusMap = userWithdrawStatusMap;
|
||||
this.userWithdrawAuditMap = userWithdrawAuditMap;
|
||||
}
|
||||
|
||||
/*
|
||||
showStatistics(memberId) {
|
||||
this.$router.push({
|
||||
path: '/videoManage/detail',
|
||||
query: {
|
||||
memberId: memberId
|
||||
}
|
||||
});
|
||||
}*/
|
||||
}
|
||||
};
|
||||
</script>
|
Loading…
x
Reference in New Issue
Block a user