diff --git a/pages/finance/balance/list.vue b/pages/finance/balance/list.vue index 327969d..2595b14 100644 --- a/pages/finance/balance/list.vue +++ b/pages/finance/balance/list.vue @@ -20,10 +20,13 @@ ¥{{ formatMoney(item.balance) }} + + 处理中提现:¥{{ formatMoney(item.pendingAmount) }},可提现:¥{{ formatMoney(item.availableBalance) }} + 查询余额 提现 @@ -53,8 +56,15 @@ ¥{{ formatMoney(withdrawDialog.form.balance) }} + + ¥{{ formatMoney(withdrawDialog.form.pendingAmount) }} + + + ¥{{ formatMoney(withdrawDialog.form.availableBalance) }} + @@ -109,6 +119,8 @@ export default { accNo: item.accNo, merchantName: item.label, balance: 0, + pendingAmount: 0, + availableBalance: 0, updateTime: "" })), table1: { @@ -197,6 +209,8 @@ export default { merchantId: "", merchantName: "", balance: 0, + pendingAmount: 0, + availableBalance: 0, amount: 0, description: "" } @@ -250,10 +264,17 @@ export default { }, {}); that.balanceInfoList = merchantOptions.map(item => { const current = serverMap[item.accNo] || {}; + const balance = Number(current.balance || 0); + const pendingAmount = Number(current.pendingAmount || 0); + const availableBalance = current.availableBalance !== undefined && current.availableBalance !== null + ? Number(current.availableBalance || 0) + : Math.max(0, balance - pendingAmount); return { accNo: item.accNo, merchantName: current.merchantName || item.label, - balance: Number(current.balance || 0), + balance, + pendingAmount, + availableBalance, updateTime: current.updateTime || "" }; }); @@ -279,14 +300,22 @@ export default { } }, openWithdrawDialog(item) { - if (Number(item.balance || 0) <= 0) { - vk.toast("当前企业余额小于等于0,无法提现"); + const availableBalance = Number(item.availableBalance || 0); + if (availableBalance <= 0) { + const pendingAmount = Number(item.pendingAmount || 0); + vk.toast( + pendingAmount > 0 + ? `可提现余额不足(处理中提现¥${that.formatMoney(pendingAmount)}已占用)` + : "当前企业余额小于等于0,无法提现" + ); return; } that.withdrawDialog.form = { merchantId: item.accNo, merchantName: item.merchantName, balance: Number(item.balance || 0), + pendingAmount: Number(item.pendingAmount || 0), + availableBalance, amount: 0, description: "" }; @@ -309,38 +338,25 @@ export default { return; } try { - const res = await vk.request({ - method: "POST", - url: "http://jjx-union-pay.gxwebsoft.com/api/union-pay-jjx/getActionLog", - header: { - "content-type": "application/json; charset=utf-8" - }, + const res = await vk.callFunction({ + url: "admin/finance/balance/sys/getActionLog", data: { accNo, reqDate, - reqJournalNo - }, - timeout: 60000 + reqJournalNo, + logId: row && row._id ? row._id : "" + } }); - const code = Number(res && res.code); - const success = res && ( - code === 0 || - code === 200 || - res.success === true || - (typeof res.code === "undefined" && !res.msg && !res.message) + const status = that.getActionStatusValue(res) || ( + res && res.data && res.data.status !== undefined && res.data.status !== null + ? Number(res.data.status) + : "" ); - if (!success) { - throw new Error( - (res && (res.msg || res.message)) || - (res && res.content && (res.content.msg || res.content.message)) || - "查询状态失败" - ); - } - const status = that.getActionStatusValue(res); - const statusText = that.formatStatus(status); + const statusText = that.formatStatus(status) || (res && res.data && res.data.statusText) || ""; if (status !== "" && row && row._id) { row.status = status; } + await that.getBalanceSummary(); vk.toast(statusText || "未识别到状态"); console.log("getActionLog", res); } catch (err) { @@ -348,7 +364,7 @@ export default { } }, async submitWithdraw() { - const { amount, description, merchantId, balance } = that.withdrawDialog.form; + const { amount, description, merchantId, availableBalance, pendingAmount } = that.withdrawDialog.form; if (!merchantId) { vk.toast("提现账号不能为空"); return; @@ -357,12 +373,20 @@ export default { vk.toast("提现金额必须大于0"); return; } - if (Number(balance || 0) <= 0) { - vk.toast("当前企业余额小于等于0,无法提现"); + if (Number(availableBalance || 0) <= 0) { + vk.toast( + Number(pendingAmount || 0) > 0 + ? `可提现余额不足(处理中提现¥${that.formatMoney(pendingAmount)}已占用)` + : "当前企业余额小于等于0,无法提现" + ); return; } - if (Number(amount) > Number(balance || 0)) { - vk.toast("提现金额不能大于当前企业余额"); + if (Number(amount) > Number(availableBalance || 0)) { + vk.toast( + Number(pendingAmount || 0) > 0 + ? `提现金额不能大于可提现余额¥${that.formatMoney(availableBalance)}(已排除处理中提现)` + : "提现金额不能大于当前企业余额" + ); return; } that.withdrawDialog.loading = true;