mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
535 lines
18 KiB
Vue
535 lines
18 KiB
Vue
<template>
|
||
<div class="wp">
|
||
<div class="header">
|
||
<div class="text-gray" v-if="showAccountList" v-for="(item, index) in settleAccountList" :key="index" >
|
||
<h3>运营商信息</h3>
|
||
<div>
|
||
<p>运营商:</p>
|
||
<span>{{ merchant }}</span>
|
||
</div>
|
||
<div>
|
||
<p>商家性质:</p>
|
||
<span>{{ merchantNature === "1" ? "对公" : "对私" }}</span>
|
||
</div>
|
||
<div>
|
||
<p>开户行名称:</p>
|
||
<span>{{ cityBankCode(item.bankCode) }}</span>
|
||
</div>
|
||
<div>
|
||
<p>收款卡号:</p>
|
||
<span>{{ item.cardId }}</span>
|
||
</div>
|
||
<div>
|
||
<p>预留手机号:</p>
|
||
<span>{{ item.telNo }}</span>
|
||
</div>
|
||
</div>
|
||
<div class="text-gray" v-else>
|
||
<h3>运营商信息</h3>
|
||
<div>
|
||
<p>运营商:</p>
|
||
<span>{{ merchant }}</span>
|
||
</div>
|
||
<div>
|
||
<p>商家性质:</p>
|
||
<span>{{ merchantNature === "1" ? "对公" : "对私" }}</span>
|
||
</div>
|
||
<div>
|
||
<p>开户行名称:</p>
|
||
<span>{{ cityBankCode(adapayCorpMember.bankCode) }}</span>
|
||
</div>
|
||
<div>
|
||
<p>收款卡号:</p>
|
||
<span>{{ adapayCorpMember.cardNo }}</span>
|
||
</div>
|
||
<div>
|
||
<p>预留手机号:</p>
|
||
<span>{{ adapayCorpMember.legalMp }}</span>
|
||
</div>
|
||
</div>
|
||
<div class="text-gray">
|
||
<h3>分润数据</h3>
|
||
<div>
|
||
<p>参与分润金额:</p>
|
||
<span style="color: #2563eb">¥ 153,426.82</span>
|
||
</div>
|
||
<div>
|
||
<p>分出总金额:</p>
|
||
<span style="color: #16a34a">¥ 98,142.35</span>
|
||
</div>
|
||
<div>
|
||
<p>分润订单数:</p>
|
||
<span>286笔</span>
|
||
</div>
|
||
</div>
|
||
<div class="text-gray">
|
||
<h3>金额信息</h3>
|
||
<div>
|
||
<p>电费金额:</p>
|
||
<span>¥ {{ merchantOrderReport.electricityAmount ? merchantOrderReport.electricityAmount.toFixed(2) : '0.00'}}</span>
|
||
</div>
|
||
<div>
|
||
<p>交易金额:</p>
|
||
<span>¥ {{ merchantOrderReport.tradeAmount? merchantOrderReport.tradeAmount.toFixed(2) : '0.00'}}</span>
|
||
</div>
|
||
<div>
|
||
<p>虚拟金额:</p>
|
||
<span>¥ {{merchantOrderReport.virtualAmount? merchantOrderReport.virtualAmount.toFixed(2): '0.00' }}</span>
|
||
</div>
|
||
<div>
|
||
<p>服务费金额:</p>
|
||
<span>¥ {{ merchantOrderReport.serviceAmount?merchantOrderReport.serviceAmount.toFixed(2) : '0.00'}}</span>
|
||
</div>
|
||
<div>
|
||
<p>交易手续费:</p>
|
||
<span>¥ {{merchantOrderReport.tradeFee? merchantOrderReport.tradeFee.toFixed(2): '0.00' }}</span>
|
||
</div>
|
||
</div>
|
||
<div class="text-gray">
|
||
<h3>提现信息</h3>
|
||
<div>
|
||
<p>总结算金额:</p>
|
||
<span>¥ {{ merchantOrderReport.totalAmount?merchantOrderReport.totalAmount.toFixed(2): '0.00' }}</span>
|
||
</div>
|
||
<div>
|
||
<p>可提现金额:</p>
|
||
<span style="color: #2563eb">¥ {{ adapayMember.avlBalance?adapayMember.avlBalance.toFixed(2) : '0.00'}}</span>
|
||
</div>
|
||
<div>
|
||
<p>总提现金额:</p>
|
||
<span style="color: #16a34a">
|
||
¥ {{ adapayMember.totalWithdraw?adapayMember.totalWithdraw.toFixed(2) : '0.00'}}
|
||
</span>
|
||
</div>
|
||
<p class="concentrate">已成功提现到绑定银行卡的金额</p>
|
||
</div>
|
||
</div>
|
||
<div class="inquire">
|
||
<el-form :model="queryParams" ref="queryForm" size="small" inline label-width="68px" >
|
||
<el-form-item label="日期" prop="tradeDate">
|
||
<el-date-picker v-model="createTimeRange" style="width: 240px" value-format="yyyy-MM-dd" :default-time="['00:00:00', '23:59:59']" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :clearable="false" ></el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
<el-form>
|
||
<el-form-item>
|
||
<el-button style="height: 40px" type="success" icon="el-icon-s-claim" @click="already">提现记录</el-button >
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
<div class="container">
|
||
<!-- <el-table :data="reportList"> -->
|
||
<el-table :data="temporary">
|
||
<el-table-column label="日期" align="center" prop="tradeDate" />
|
||
<el-table-column label="账单状态" align="center" prop="billStatus">
|
||
<template slot-scope="scope">
|
||
<dict-tag :options="dict.type.bill_status" :value="scope.row.billStatus" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="应收金额(元)" align="center" prop="receivableAmount" />
|
||
<el-table-column label="可提现金额(元)" align="center" prop="withdrawAbleAmount" />
|
||
<el-table-column label="交易手续费(元)" align="center" prop="feeAmount"/>
|
||
<el-table-column label="分润金额(元)" align="center" prop="aaa" />
|
||
<el-table-column label="实际到账金额(元)" align="center" prop="bbb" />
|
||
<el-table-column label="提现订单号" align="center" prop="withdrawCode" />
|
||
<el-table-column label="提现申请时间" align="center" prop="applicationTime" />
|
||
<el-table-column label="操作" align="center">
|
||
<template slot-scope="scope">
|
||
<span class="link-type" @click="goTradeDate(scope)">订单流水</span>
|
||
<span class="link-type" style="margin-left: 10px" @click="getProfitSharing(scope)">分润流水</span>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<pagination v-show="reportTotal > 0" :total="reportTotal" :page.sync="reportQueryParams.pageNum" :limit.sync="reportQueryParams.pageSize"
|
||
@pagination="getList" />
|
||
</div>
|
||
<!-- 提现记录 -->
|
||
<el-dialog title="提现记录" :visible.sync="recordDialog">
|
||
<el-table :data="payoutInformation" style="width: 100%">
|
||
<el-table-column label="申请时间" align="center" property="applicationTime" />
|
||
<el-table-column label="提现编号" align="center" property="withdrawCode" />
|
||
<el-table-column label="状态" align="center" property="statusDesc" />
|
||
<el-table-column label="金额" align="center" property="cashAmt" />
|
||
</el-table>
|
||
<pagination v-show="getTotal > 0" :total="getTotal" :page.sync="getWithdrawnParameters.pageNum" :limit.sync="getWithdrawnParameters.pageSize" @pagination="getHistory"/>
|
||
</el-dialog>
|
||
<!-- 订单流水 -->
|
||
<el-dialog title="订单流水" :visible.sync="dialogTableVisible" :before-close="orderClose" >
|
||
<el-table :data="orderList" v-loading="orderLoading">
|
||
<el-table-column property="orderCode" label="订单编号" align="center" />
|
||
<el-table-column property="settleAmount" label="结算金额(元)" align="center" />
|
||
<el-table-column property="clearingStatus" label="清分状态" align="center" />
|
||
<el-table-column property="clearingBillCode" label="清分账单编号" align="center"/>
|
||
<el-table-column property="withdrawStatus" label="提现状态" align="center" />
|
||
<el-table-column property="withdrawCode" label="提现编号" align="center" />
|
||
</el-table>
|
||
<pagination v-show="orderTotal > 0" :total="orderTotal" :page.sync="getOrderParams.pageNum" :limit.sync="getOrderParams.pageSize" @pagination="getOrderList"/>
|
||
</el-dialog>
|
||
<!-- 分润流水 -->
|
||
<el-dialog title="分润流水" :visible.sync="profitSharing" :before-close="turnOffProfitSharing" >
|
||
<el-form :model="queryParams" ref="queryForm" size="small" inline label-width="68px">
|
||
<el-form-item label="分润类型" prop="tradeDate">
|
||
<el-select v-model="queryParams.orderStatus" placeholder="请选择分润类型" clearable style="width: 180px" >
|
||
<el-option v-for="item1 in sharingType" :key="item1.value" :label="item1.label" :value="item1.value"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||
<el-button icon="el-icon-refresh" size="mini" @click="">重置</el-button>
|
||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click=" ">导出</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
<el-table :data="orderList">
|
||
<el-table-column property="orderCode" label="订单编号" align="center" />
|
||
<el-table-column property="settleAmount" label="结算金额(元)" align="center" />
|
||
<el-table-column property="" label="分润类型" align="center" />
|
||
<el-table-column property="" label="电费分润比例" align="center" />
|
||
<el-table-column property="" label="电费分润金额(元)" align="center" />
|
||
<el-table-column property="" label="服务费分润比例" align="center" />
|
||
<el-table-column property="" label="服务费分润金额(元)" align="center" />
|
||
</el-table>
|
||
<pagination v-show="orderTotal > 0" :total="orderTotal" :page.sync="getOrderParams.pageNum" :limit.sync="getOrderParams.pageSize" @pagination="getOrderList" />
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
import {
|
||
getMerchantOrderReport,
|
||
withdraw,
|
||
selectAdapayMember,
|
||
queryAdapayAccountBalance,
|
||
WithdrawalHistory,
|
||
} from "@/api/adapayMember/adapayMember";
|
||
import { getOrderReportDetail } from "@/api/order/order";
|
||
import { getDay } from "@/utils/common";
|
||
import text from "@/assets/json/bank_code.json";
|
||
|
||
export default {
|
||
dicts: ["bill_status"],
|
||
data() {
|
||
return {
|
||
orderLoading: true,
|
||
loading: true,
|
||
operationStatus: null,
|
||
adapayMember: {},
|
||
// 开启
|
||
recordDialog: false,
|
||
tableData: [],
|
||
merchant: this.$route.query.merchantName,
|
||
orderTotal: 0,
|
||
getOrderParams: {
|
||
pageNum: 1,
|
||
pageSize: 10,
|
||
merchantId: null,
|
||
tradeDate: null,
|
||
},
|
||
orderList: [],
|
||
dialogTableVisible: false,
|
||
dialogVisible: false,
|
||
withdrawalFee: 5,
|
||
reportTotal: 0,
|
||
queryParams: {
|
||
pageNum: 1,
|
||
pageSize: 10,
|
||
},
|
||
merchantId: this.$route.query.merchantId,
|
||
createTimeRange: [],
|
||
reportList: [],
|
||
reportQueryParams: {
|
||
pageNum: 1,
|
||
pageSize: 10,
|
||
merchantId: this.$route.query.merchantId,
|
||
startTime: "",
|
||
endTime: "",
|
||
},
|
||
bankName: "",
|
||
merchantOrderReport: {},
|
||
adapayCorpMember: {},
|
||
settleAccountList: [],
|
||
merchantNature: "",
|
||
showAdapayCorp: "",
|
||
showAccountList: false,
|
||
//已提现参数
|
||
getWithdrawnParameters: {
|
||
merchantId: this.$route.query.merchantId,
|
||
pageNum: 1,
|
||
pageSize: 10,
|
||
},
|
||
payoutInformation: [],
|
||
getTotal: 0,
|
||
profitSharing: false,
|
||
temporary: [
|
||
{
|
||
tradeDate: "2025-02-18",
|
||
billStatus: "提现申请中",
|
||
receivableAmount: "313.92",
|
||
withdrawAbleAmount: "1371.99",
|
||
feeAmount: "1.83",
|
||
aaa: "1059.92",
|
||
bbb: "1059.92",
|
||
withdrawCode: "0021110738083352290123776",
|
||
applicationTime: "2025-02-19 08:31:00",
|
||
},
|
||
],
|
||
sharingType: [
|
||
{ label: "直接分润", value: "1" },
|
||
{ label: "间接分润", value: "2" },
|
||
],
|
||
};
|
||
},
|
||
methods: {
|
||
// 银行编码
|
||
cityBankCode(code) {
|
||
if (code == null) {
|
||
return "";
|
||
}
|
||
const bankList = text.bankList;
|
||
let arr = bankList.find((item) => item.bankCode === code);
|
||
if (arr.bankName != null) {
|
||
this.bankName = arr.bankName;
|
||
}
|
||
return this.bankName;
|
||
},
|
||
selectAdapayMember() {
|
||
console.log("this.merchantId", this.merchantId);
|
||
// this.loading = true;
|
||
let param = {
|
||
merchantId: this.merchantId,
|
||
};
|
||
selectAdapayMember(param).then((response) => {
|
||
console.log("查询结算账户", response);
|
||
this.operationStatus = response.data;
|
||
this.loading = false;
|
||
// console.log("this.operationStatus", this.operationStatus.bankAcctType);
|
||
// 商家性质:
|
||
if (response.data != null) {
|
||
// 对公返回的结果 商家性质:
|
||
this.merchantNature = this.operationStatus.bankAcctType;
|
||
console.log("对公信息", this.adapayCorpMember);
|
||
if (response.data.settleAccountList != null) {
|
||
// 个人账户
|
||
this.adapayCorpMember = response.data.adapayMember;
|
||
this.settleAccountList = response.data.settleAccountList;
|
||
this.showAccountList = true;
|
||
}
|
||
this.showAdapayCorp = response.data.adapayCorpMember;
|
||
if (response.data.adapayCorpMember != null)
|
||
return (this.adapayCorpMember = response.data.adapayCorpMember);
|
||
}
|
||
this.loading = false;
|
||
});
|
||
},
|
||
getAdapayBalance() {
|
||
let param = {
|
||
merchantId: this.merchantId,
|
||
};
|
||
queryAdapayAccountBalance(param).then((response) => {
|
||
console.log("查询 可提现金额 queryAdapayAccountBalance", response);
|
||
this.adapayMember = response.data;
|
||
});
|
||
},
|
||
// 订单流水请求
|
||
getOrderList() {
|
||
this.orderLoading = true;
|
||
console.log("this.getOrderParams", this.getOrderParams);
|
||
getOrderReportDetail(this.getOrderParams).then((res) => {
|
||
console.log("获取订单列表res", res);
|
||
this.orderList = res.rows;
|
||
this.orderTotal = res.total;
|
||
this.orderLoading = false;
|
||
});
|
||
},
|
||
// 弹层关闭之前执行的事情
|
||
orderClose() {
|
||
this.dialogTableVisible = false;
|
||
this.getOrderParams.pageNum = 1;
|
||
this.orderList = [];
|
||
this.orderTotal = 0;
|
||
},
|
||
// 订单流水按钮
|
||
goTradeDate(scope) {
|
||
// console.log("点击日期出现弹层", scope);
|
||
if (scope.row.tradeDate === null)
|
||
return this.$message.info("此条数据暂不显示订单流水");
|
||
// console.log("点击日期出现弹层", scope.row.tradeDate);
|
||
this.dialogTableVisible = true;
|
||
this.getOrderParams.merchantId = scope.row.merchantId;
|
||
this.getOrderParams.tradeDate = scope.row.tradeDate;
|
||
this.getOrderList();
|
||
},
|
||
getList() {
|
||
console.log("queryParams", this.queryParams);
|
||
getMerchantOrderReport(this.reportQueryParams).then((response) => {
|
||
console.log("getMerchantOrderReport", response);
|
||
if (response.data) {
|
||
this.merchantOrderReport = response.data.merchantOrderReport;
|
||
if (response.data.pageResponse === null) return (this.reportList = []);
|
||
this.reportList = response.data.pageResponse.list;
|
||
this.reportTotal = response.data.pageResponse.total;
|
||
} else {
|
||
this.reportList = [];
|
||
this.merchantOrderReport = null;
|
||
}
|
||
});
|
||
},
|
||
handleClose() {
|
||
this.$confirm("确认提交?")
|
||
.then((_) => {
|
||
let params = {
|
||
merchantId: this.merchantId,
|
||
cashAmt: this.adapayMember.avlBalance,
|
||
};
|
||
console.log("点击提交按钮之前执行 params", params);
|
||
withdraw(params).then((response) => {
|
||
console.log("res 提现金额", response);
|
||
if (response.code !== 200) return this.$modal.msgError(response.msg);
|
||
this.$modal.msgSuccess("操作成功");
|
||
// 重新查询当前 显示的可提现金额
|
||
this.getAdapayBalance();
|
||
});
|
||
this.dialogVisible = false;
|
||
})
|
||
.catch((_) => {});
|
||
},
|
||
// 点击提交按钮
|
||
submit() {
|
||
this.handleClose();
|
||
},
|
||
withdrawalClick() {
|
||
// this.$router.push({
|
||
// name: "withdrawalRecords",
|
||
// });
|
||
},
|
||
goAccount() {
|
||
this.$router.push({
|
||
name: "accountUserInfo",
|
||
params: {
|
||
id: this.merchantId,
|
||
},
|
||
});
|
||
},
|
||
// 点击搜索按钮
|
||
handleQuery() {
|
||
let arr = this.createTimeRange[0];
|
||
let str = this.createTimeRange[1];
|
||
console.log("点击搜索时展示的日期数据", arr, str);
|
||
this.reportQueryParams.startTime = arr;
|
||
this.reportQueryParams.endTime = str;
|
||
this.reportQueryParams.pageNum = 1;
|
||
this.reportTotal = 0;
|
||
this.getList();
|
||
},
|
||
defaultDate() {
|
||
//字符串拼接,开始时间,结束时间
|
||
let beg = getDay(-30); //当月第一天
|
||
let end = getDay(0); //当天
|
||
this.createTimeRange = [beg, end];
|
||
// console.log("this.createTimeRange", this.createTimeRange);
|
||
// return this.createTimeRange;
|
||
this.reportQueryParams.startTime = beg;
|
||
this.reportQueryParams.endTime = end;
|
||
this.getList();
|
||
},
|
||
already() {
|
||
this.recordDialog = true;
|
||
this.getHistory();
|
||
},
|
||
//提现记录
|
||
getHistory() {
|
||
console.log("etWithdrawnParameters", this.getWithdrawnParameters);
|
||
WithdrawalHistory(this.getWithdrawnParameters).then((response) => {
|
||
console.log("提现记录", response);
|
||
this.payoutInformation = response.data.list;
|
||
this.getTotal = response.data.total;
|
||
});
|
||
},
|
||
// 分润流水弹框
|
||
getProfitSharing(scope) {
|
||
console.log("点击分润流水", scope);
|
||
this.profitSharing = true;
|
||
},
|
||
// 关闭分润流水弹框
|
||
turnOffProfitSharing() {
|
||
this.profitSharing = false;
|
||
this.orderList = [];
|
||
this.queryParams = {};
|
||
},
|
||
},
|
||
created() {
|
||
this.defaultDate();
|
||
this.getAdapayBalance();
|
||
this.selectAdapayMember();
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.wp {
|
||
background: #f3f3f3;
|
||
padding: 20px;
|
||
min-height: 100vh;
|
||
}
|
||
|
||
.header {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
width: 100%;
|
||
height: 240px;
|
||
|
||
h3 {
|
||
margin: 0px;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.text-gray {
|
||
width: 24.5%;
|
||
height: 100%;
|
||
background: #fff;
|
||
border-radius: 8px;
|
||
box-shadow: 0 3px 2px rgba(0, 0, 0, 0.15);
|
||
padding: 20px;
|
||
|
||
div {
|
||
height: 35px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
p {
|
||
color: #666;
|
||
font-size: 15px;
|
||
}
|
||
|
||
span {
|
||
display: block;
|
||
color: #333;
|
||
font-size: 16px;
|
||
}
|
||
}
|
||
|
||
.concentrate {
|
||
color: #666;
|
||
font-size: 15px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.inquire {
|
||
padding: 20px 20px 0 20px;
|
||
background: #fff;
|
||
margin-top: 20px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.container {
|
||
padding: 20px;
|
||
background: #fff;
|
||
margin-top: 20px;
|
||
}
|
||
</style>
|