From 316d1e2b5d7013d0b9f7507ac2f15ead5ff4d703 Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 8 Dec 2025 00:23:20 +0800 Subject: [PATCH] 231 --- common/server/interface/earnings.js | 83 +++++++++++ pages/me/my-earnings-page.vue | 181 ++++++++++++++++++++---- 我的收益页面接口参数说明.md | 42 ++---- 3 files changed, 252 insertions(+), 54 deletions(-) create mode 100644 common/server/interface/earnings.js diff --git a/common/server/interface/earnings.js b/common/server/interface/earnings.js new file mode 100644 index 0000000..7f7a4c5 --- /dev/null +++ b/common/server/interface/earnings.js @@ -0,0 +1,83 @@ +import request from '@/common/system/request'; + +/** + * 获取收益统计信息 + * @returns {Promise<{pendingAmount: number, extractedAmount: number}>} + */ +export const getEarningsSummary = async () => { + const res = await request.getOrCache("sq/GetEarningsSummary", {}, 1); + if (res.code == 0) { + return res.data || { pendingAmount: 0, extractedAmount: 0 }; + } + return { pendingAmount: 0, extractedAmount: 0 }; +} + +/** + * 获取收益规则说明 + * @returns {Promise} + */ +export const getEarningsRule = async () => { + const res = await request.getOrCache("sq/GetEarningsRule", {}, 300); + if (res.code == 0) { + return res.data?.content || ''; + } + return ''; +} + +/** + * 获取收益记录列表 + * @param {number} pageIndex 页码,从1开始 + * @param {number} pageSize 每页数量 + * @returns {Promise} + */ +export const getEarningsRecordList = async (pageIndex = 1, pageSize = 20) => { + const res = await request.post( + "sq/GetEarningsRecordList", + { pageIndex, pageSize } + ); + if (res.code == 0) { + return res.data || []; + } + return []; +} + +/** + * 获取提现记录列表 + * @param {number} pageIndex 页码,从1开始 + * @param {number} pageSize 每页数量 + * @returns {Promise} + */ +export const getWithdrawRecordList = async (pageIndex = 1, pageSize = 20) => { + const res = await request.post( + "sq/GetWithdrawRecordList", + { pageIndex, pageSize } + ); + if (res.code == 0) { + return res.data || []; + } + return []; +} + +/** + * 申请提现 + * @param {number} amount 提现金额 + * @returns {Promise<{success: boolean, msg?: string}>} + */ +export const applyWithdraw = async (amount) => { + const res = await request.post("sq/ApplyWithdraw", { amount }); + if (res.code == 0) { + return { success: true, msg: res.msg || '提现申请已提交' }; + } + return { success: false, msg: res.msg || '提现申请失败' }; +} + +// 导出收益接口对象 +export const earningsInterface = { + getEarningsSummary, + getEarningsRule, + getEarningsRecordList, + getWithdrawRecordList, + applyWithdraw +} + +export default earningsInterface; diff --git a/pages/me/my-earnings-page.vue b/pages/me/my-earnings-page.vue index 951afd2..6c1d332 100644 --- a/pages/me/my-earnings-page.vue +++ b/pages/me/my-earnings-page.vue @@ -16,15 +16,15 @@ 待提取收益(元) - 0.00 + {{ pendingAmount.toFixed(2) }} 已提取收益(元) - 0.00 + {{ extractedAmount.toFixed(2) }} - 去提现 @@ -32,7 +32,7 @@ - + 点击查看收益规则>> @@ -63,54 +63,59 @@ - + 暂无收益记录 + + - 2025/1/1 - 305(大包) - ¥12 - ¥0.12 + {{ item.date }} + {{ item.roomName }} + ¥{{ item.roomFee.toFixed(2) }} + ¥{{ item.earnings.toFixed(2) }} - + 暂无提现记录 + + - 2025/1/1 - ¥12 - 提现中 + {{ item.date }} + ¥{{ item.amount.toFixed(2) }} + {{ item.status }} - + 规则说明 - - 正文正文正文正文正文正文正文正文正文正文正文正 - 文正文正文正文正文正文正文正文正文正文正文正文 - 正文正文正文正文正文正文正文 + + {{ ruleContent || '加载中...' }} - + 提现申请 + inputAlign="center" fontSize="32rpx" v-model="value" type="digit"> - 最高可提现0.00元 - 全部提现 + 最高可提现{{ maxWithdrawAmount.toFixed(2) }}元 + 全部提现 + style="width: 304rpx; height: 90rpx; background-color: #00AC4E; color: #FFFFFF; margin: 30rpx auto 0; font-size: 32rpx;" + @click="submitWithdraw"> 申请提现 @@ -123,16 +128,32 @@