1、提现审核独立出来

This commit is contained in:
cuiyouliang 2025-06-26 16:55:37 +08:00
parent 0d01eed9c6
commit 99dfe74b26
12 changed files with 291 additions and 22 deletions

View File

@ -194,8 +194,8 @@ export const dynamicRoutes: RouteRecordRaw[] = [
permissions: ['oms:aftersale:query'],
children: [
{
path: 'withdraw',
component: () => import('@/views/ums/member/withdraw.vue'),
path: 'userWithdraw',
component: () => import('@/views/ums/member/userWithdraw.vue'),
name: 'witdhdrawDetail',
meta: { title: '提现记录' }
}

View File

@ -38,7 +38,7 @@
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="omsAftersaleList" @selection-change="handleSelectionChange" border>
<el-table v-loading="loading" border :data="omsAftersaleList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="售后单号" prop="id" width="160" />
<el-table-column label="申请状态" prop="aftersaleStatus" width="80">

View File

@ -28,7 +28,7 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="omsAftersaleItemList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" border :data="omsAftersaleItemList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="MEMBER_ID" align="center" prop="memberId" />
<el-table-column label="订单id" align="center" prop="orderId" />

View File

@ -4,9 +4,9 @@
<el-form-item label="订单id" prop="orderId">
<el-input v-model="queryParams.orderId" placeholder="请输入订单id" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="PRODUCT_ID" prop="productId">
<!-- <el-form-item label="PRODUCT_ID" prop="productId">
<el-input v-model="queryParams.productId" placeholder="请输入PRODUCT_ID" clearable @keyup.enter="handleQuery" />
</el-form-item>
</el-form-item>-->
<el-form-item label="商品编码" prop="outProductId">
<el-input v-model="queryParams.outProductId" placeholder="请输入商品编码" clearable @keyup.enter="handleQuery" />
</el-form-item>
@ -26,8 +26,8 @@
<el-form-item label="展示图片" prop="pic">
<el-input v-model="queryParams.pic" placeholder="请输入展示图片" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="PRODUCT_NAME" prop="productName">
<el-input v-model="queryParams.productName" placeholder="请输入PRODUCT_NAME" clearable @keyup.enter="handleQuery" />
<el-form-item label="商品名称" prop="productName">
<el-input v-model="queryParams.productName" placeholder="请输入商品名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="销售价格" prop="salePrice">
<el-input v-model="queryParams.salePrice" placeholder="请输入销售价格" clearable @keyup.enter="handleQuery" />
@ -57,17 +57,16 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="omsOrderItemList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table v-loading="loading" border :data="omsOrderItemList" @selection-change="handleSelectionChange">
<el-table-column label="订单id" align="center" prop="orderId" />
<el-table-column label="PRODUCT_ID" align="center" prop="productId" />
<!-- <el-table-column label="PRODUCT_ID" align="center" prop="productId" />-->
<el-table-column label="商品编码" align="center" prop="outProductId" />
<el-table-column label="商品sku id" align="center" prop="skuId" />
<el-table-column label="sku编码" align="center" prop="outSkuId" />
<el-table-column label="商品快照id" align="center" prop="productSnapshotId" />
<el-table-column label="sku快照id" align="center" prop="skuSnapshotId" />
<el-table-column label="展示图片" align="center" prop="pic" />
<el-table-column label="PRODUCT_NAME" align="center" prop="productName" />
<el-table-column label="商品名称" align="center" prop="productName" />
<el-table-column label="销售价格" align="center" prop="salePrice" />
<el-table-column label="采购价" align="center" prop="purchasePrice" />
<el-table-column label="购买数量" align="center" prop="quantity" />

View File

@ -13,7 +13,7 @@
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="omsOrderOperateHistoryList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" border :data="omsOrderOperateHistoryList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="订单号" align="center" prop="orderSn" />
<el-table-column label="订单状态" align="center" prop="orderStatus">

View File

@ -52,7 +52,7 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="omsWechatPaymentHistoryList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" border :data="omsWechatPaymentHistoryList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="payment_id" align="center" prop="paymentId" />
<el-table-column label="用户 ID" align="center" prop="memberId" />

View File

@ -122,7 +122,7 @@ export default {
parentId: null,
nameLike: null,
level: null,
showStatus: null,
showStatus: '',
sort: null
},
//
@ -163,7 +163,7 @@ export default {
parentId: null,
name: null,
level: null,
showStatus: 0,
showStatus: '',
sort: null,
icon: null,
createBy: null,

View File

@ -39,7 +39,7 @@
</el-row>
<el-table v-loading="loading" :data="pmsSkuList" @selection-change="handleSelectionChange">
<el-table-column label="商品名称" align="center" prop="productId" />
<el-table-column label="商品名称" align="center" prop="productName" />
<el-table-column label="sku编码" align="center" prop="outSkuId" />
<el-table-column label="价格" align="center" prop="price" />
<!-- <el-table-column label="展示图片" align="center" prop="pic" />-->

View File

@ -38,7 +38,7 @@
</el-form>
<el-table v-loading="loading" :data="umsMemberList" border empty-text="暂无数据">
<el-table-column label="会员ID" prop="id" width="180" />
<!-- <el-table-column label="会员ID" prop="id" width="180" />-->
<el-table-column label="昵称" prop="nickname" width="150" />
<el-table-column label="手机号" prop="phoneHidden" width="150" />
<el-table-column label="注册日期" prop="createTime" width="150" />
@ -720,7 +720,6 @@ export default {
};
},
async created() {
console.log('11111111111111111111111111111111111111');
this.show = true;
this.getList();
const userSexMap = await this.getDictionaryByKey('sys_user_sex');
@ -983,7 +982,7 @@ export default {
goWithdrawInfoPage(row) {
const id = row.id;
this.$router.push({ path: '/member/withdraw', query: { id } });
this.$router.push({ path: '/member/userWithdraw', query: { id } });
},
//
showChargeInfoModal(record, isFirst) {

View File

@ -2,7 +2,11 @@
<div>
<el-card>
<el-table v-loading="userWithdrawInfoTableLoading" :data="userWithdrawInfo.data" border empty-text="暂无数据">
<el-table-column label="申请人" prop="createBy" />
<el-table-column label="申请人" prop="createBy">
<template v-slot="scope">
{{ scope.row.member ? scope.row.member.nickname : '' }}
</template>
</el-table-column>
<el-table-column label="申请时间" prop="createTime" />
<el-table-column label="提现码" prop="code" />
<el-table-column label="提现金额" prop="money">

View File

@ -47,7 +47,7 @@
<!-- </el-col>-->
<!-- </el-row>-->
<el-table v-loading="loading" :data="umsMemberAddressList">
<el-table v-loading="loading" border :data="umsMemberAddressList">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="收货人姓名" align="center" prop="name">
<template v-slot="scope">

View File

@ -0,0 +1,267 @@
<template>
<div class="app-container">
<div>
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="100px" size="default" class="ry_form">
<el-form-item label="提现单号" prop="code">
<el-input v-model.trim="queryParams.code" placeholder="请输入会员id" clearable />
</el-form-item>
<el-form-item label="昵称" prop="nickname">
<el-input v-model.trim="queryParams.nickname" placeholder="请输入昵称" clearable />
</el-form-item>
<el-form-item label="提现人手机号" prop="phone">
<el-input v-model.trim="queryParams.phone" placeholder="请输入手机号码" clearable />
</el-form-item>
<el-form-item label="提现方式" prop="method">
<el-select v-model="queryParams.method">
<el-option v-for="item in userWithdrawMethodMap" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="提现类型" prop="type">
<el-select v-model="queryParams.type">
<el-option v-for="item in userWithdrawTypeMap" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="审核状态" prop="auditStatus">
<el-select v-model="queryParams.auditStatus">
<el-option v-for="item in userWithdrawAuditMap" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="提现状态" prop="status">
<el-select v-model="queryParams.status">
<el-option v-for="item in userWithdrawStatusMap" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item class="flex_one tr">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
<!-- <el-button :icon="showMoreCondition ? 'el-icon-arrow-up' : 'el-icon-arrow-down'" @click="showMoreCondition = !showMoreCondition">{{showMoreCondition ? '收起条件' : '展开条件'}}</el-button>-->
</el-form-item>
</el-form>
<el-table v-loading="userWithdrawInfoTableLoading" :data="userWithdrawInfo.data" border empty-text="暂无数据">
<el-table-column label="申请人" prop="createBy">
<template v-slot="scope">
{{ scope.row.member ? scope.row.member.nickname : '' }}
</template>
</el-table-column>
<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) }}
<el-tooltip v-if="scope.row.auditStatus == '2'" :content="scope.row.auditStatus == '2' ? scope.row.auditReason : null" placement="top">
<el-icon>
<question-filled />
</el-icon>
</el-tooltip>
</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" align="center" width="100">
<template v-slot="scope">
<el-button v-if="scope.row.auditStatus == '0'" 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="getList"
/>
</div>
<!-- 提现审核-->
<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">
<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" @click="resetAuditForm">取消</el-button>
<el-button type="primary" @click="confirmSubmitAudit">确认</el-button>
</el-col>
</el-row>
</el-dialog>
</div>
</template>
<script>
import { getUserWithdrawList, listUmsMember, setWithdrawStatus } from '@/api/ums/member';
import { useUserStore } from '@/store/modules/user';
export default {
name: 'UmsMember',
data() {
return {
//
userWithdrawInfo: {
total: 0,
data: [],
record: {}
},
//
queryParams: {
current: 1,
size: 10,
nickname: null,
phone: null,
code: '',
method: undefined,
type: undefined,
auditStatus: undefined,
status: undefined
},
userWithdrawInfoModalVisible: false,
userWithdrawInfoTableLoading: false,
withdrawDataParams: {
current: 1,
size: 10
},
auditStatus: null,
auditReason: null,
auditFormOpen: false,
currentRecord: {},
userWithdrawMethodMap: [],
userWithdrawTypeMap: [],
userWithdrawStatusMap: [],
userWithdrawAuditMap: []
};
},
created() {
this.getList();
this.getWithdrawEmu();
},
methods: {
//
reset() {
this.form = {
id: null,
nickName: null,
phone: null,
code: '',
method: undefined,
type: undefined,
auditStatus: undefined,
status: undefined
};
this.resetForm('form');
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm');
this.handleQuery();
},
showAuditModal(record) {
this.currentRecord = record;
this.auditFormOpen = true;
},
resetAuditForm() {
this.currentRecord = {};
this.auditFormOpen = false;
this.auditStatus = null;
this.auditReason = null;
},
//
confirmSubmitAudit() {
const { id, member = {} } = this.currentRecord;
const { id: memberId } = member;
if (!this.auditStatus) {
return this.$modal.msgWarning(`请选择审核结果!`);
}
const params = {
memberId: memberId,
id: id,
auditStatus: this.auditStatus,
auditReason: this.auditReason
};
setWithdrawStatus(params)
.then(() => {
this.$modal.msgSuccess('审核成功');
this.getList();
this.resetAuditForm();
})
.catch(() => {
this.$modal.msgError('审核失败');
});
},
/** 查询会员信息列表 */
getList() {
this.userWithdrawInfoTableLoading = true;
const { current: pageNum, size: pageSize } = this.queryParams;
const query = { ...this.queryParams, pageNum: undefined, pageSize: undefined };
const pageReq = { current: pageNum - 1, size: pageSize };
getUserWithdrawList(query, pageReq)
.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;
}
}
};
</script>