diff --git a/pages/commission/wallet.vue b/pages/commission/wallet.vue index 25569914..c14e46a3 100644 --- a/pages/commission/wallet.vue +++ b/pages/commission/wallet.vue @@ -114,22 +114,62 @@ - - - - {{ item.title }} - - +{{ fen2yuan(item.price) }} - {{ fen2yuan(item.price) }} + + + + + + {{ item.title }} + + +{{ fen2yuan(item.price) }} + {{ fen2yuan(item.price) }} + + + + + {{ sheep.$helper.timeFormat(item.createTime, 'yyyy-mm-dd hh:MM:ss') }} + + + {{ item.statusName }} + + + + + + + + + + + {{ item.typeName }} + + {{ fen2yuan(item.price) }} + + + + + {{ sheep.$helper.timeFormat(item.createTime, 'yyyy-mm-dd hh:MM:ss') }} + + + {{ + item.statusName + }} - {{ - sheep.$helper.timeFormat(item.createTime, 'yyyy-mm-dd hh:MM:ss') - }} @@ -179,11 +219,11 @@ const tabMaps = [ { name: '分佣', - value: '1', // BrokerageRecordBizTypeEnum.ORDER + value: '1', }, { name: '提现', - value: '2', // BrokerageRecordBizTypeEnum.WITHDRAW + value: '2', }, ]; @@ -197,13 +237,19 @@ async function getLogList() { state.loadStatus = 'loading'; - let { code, data } = await BrokerageApi.getBrokerageRecordPage({ - pageSize: state.pagination.pageSize, - pageNo: state.pagination.pageNo, - bizType: tabMaps[state.currentTab].value, - 'createTime[0]': state.date[0] + ' 00:00:00', - 'createTime[1]': state.date[1] + ' 23:59:59', - }); + let { code, data } = await (state.currentTab === 0 + ? BrokerageApi.getBrokerageRecordPage({ + pageSize: state.pagination.pageSize, + pageNo: state.pagination.pageNo, + 'createTime[0]': state.date[0] + ' 00:00:00', + 'createTime[1]': state.date[1] + ' 23:59:59', + }) + : BrokerageApi.getBrokerageWithdrawPage({ + pageSize: state.pagination.pageSize, + pageNo: state.pagination.pageNo, + 'createTime[0]': state.date[0] + ' 00:00:00', + 'createTime[1]': state.date[1] + ' 23:59:59', + })); if (code !== 0) { return; } @@ -261,11 +307,36 @@ state.summary = data; } + // 微信场景下:用户确认收款 + // 可见 https://pay.weixin.qq.com/doc/v3/merchant/4012716430 文档 + async function onRequestMerchantTransfer(item) { + const requestMerchantTransfer = sheep.$platform.useProvider() + ? sheep.$platform.useProvider().requestMerchantTransfer + : undefined; + if (!requestMerchantTransfer) { + sheep.$helper.toast('仅微信平台支持该功能'); + return; + } + // 获取提现详情 + const { code, data } = await BrokerageApi.getBrokerageWithdraw(item.id); + if (code !== 0) { + return; + } + // 调用微信确认收款 + await requestMerchantTransfer( + data.transferChannelMchId, + data.transferChannelPackageInfo, + (res) => { + debugger; + }, + ); + } + onLoad(async (options) => { state.today = dayjs().format('YYYY-MM-DD'); state.date = [state.today, state.today]; - if (options.type === 2) { - // 切换到“提现” tab 下 + if (options.type === '2') { + // 切换到"提现" tab 下 state.currentTab = 1; } getLogList(); @@ -476,6 +547,17 @@ color: $dark-3; } } + + .confirm-btn { + font-size: 22rpx; + color: var(--ui-BG-Main); + background: rgba(var(--ui-BG-Main-rgb), 0.1); + padding: 4rpx 16rpx; + margin: 0; + line-height: 1.4; + border-radius: 20rpx; + border: 1px solid var(--ui-BG-Main); + } } .model-title { @@ -515,4 +597,17 @@ line-height: normal; } } + + .status { + font-size: 22rpx; + &.status-0 { + color: #ff9900; + } + &.status-1 { + color: #19be6b; + } + &.status-2 { + color: #fa3534; + } + } diff --git a/pages/commission/withdraw.vue b/pages/commission/withdraw.vue index b725972b..2359012c 100644 --- a/pages/commission/withdraw.vue +++ b/pages/commission/withdraw.vue @@ -84,7 +84,7 @@ - 收款款真名 + 收款真名 diff --git a/sheep/api/trade/brokerage.js b/sheep/api/trade/brokerage.js index 206e7ec8..da557901 100644 --- a/sheep/api/trade/brokerage.js +++ b/sheep/api/trade/brokerage.js @@ -2,18 +2,18 @@ import request from '@/sheep/request'; const BrokerageApi = { // 绑定分销用户 - bindBrokerageUser: (data)=>{ + bindBrokerageUser: (data) => { return request({ url: '/trade/brokerage-user/bind', method: 'PUT', - data + data, }); }, // 获得个人分销信息 getBrokerageUser: () => { return request({ url: '/trade/brokerage-user/get', - method: 'GET' + method: 'GET', }); }, // 获得个人分销统计 @@ -24,12 +24,12 @@ const BrokerageApi = { }); }, // 获得分销记录分页 - getBrokerageRecordPage: params => { + getBrokerageRecordPage: (params) => { if (params.status === undefined) { - delete params.status + delete params.status; } const queryString = Object.keys(params) - .map(key => encodeURIComponent(key) + '=' + params[key]) + .map((key) => encodeURIComponent(key) + '=' + params[key]) .join('&'); return request({ url: `/trade/brokerage-record/page?${queryString}`, @@ -37,23 +37,41 @@ const BrokerageApi = { }); }, // 创建分销提现 - createBrokerageWithdraw: data => { + createBrokerageWithdraw: (data) => { return request({ url: '/trade/brokerage-withdraw/create', method: 'POST', data, }); }, + // 获得分销提现分页 + getBrokerageWithdrawPage: (params) => { + const queryString = Object.keys(params) + .map((key) => encodeURIComponent(key) + '=' + params[key]) + .join('&'); + return request({ + url: `/trade/brokerage-withdraw/page?${queryString}`, + method: 'GET', + }); + }, + // 获得分销提现详情 + getBrokerageWithdraw: (id) => { + return request({ + url: `/trade/brokerage-withdraw/get`, + method: 'GET', + params: { id }, + }); + }, // 获得商品的分销金额 - getProductBrokeragePrice: spuId => { + getProductBrokeragePrice: (spuId) => { return request({ url: '/trade/brokerage-record/get-product-brokerage-price', method: 'GET', - params: { spuId } + params: { spuId }, }); }, // 获得分销用户排行(基于佣金) - getRankByPrice: params => { + getRankByPrice: (params) => { const queryString = `times=${params.times[0]}×=${params.times[1]}`; return request({ url: `/trade/brokerage-user/get-rank-by-price?${queryString}`, @@ -61,9 +79,9 @@ const BrokerageApi = { }); }, // 获得分销用户排行分页(基于佣金) - getBrokerageUserChildSummaryPageByPrice: params => { + getBrokerageUserChildSummaryPageByPrice: (params) => { const queryString = Object.keys(params) - .map(key => encodeURIComponent(key) + '=' + params[key]) + .map((key) => encodeURIComponent(key) + '=' + params[key]) .join('&'); return request({ url: `/trade/brokerage-user/rank-page-by-price?${queryString}`, @@ -71,9 +89,9 @@ const BrokerageApi = { }); }, // 获得分销用户排行分页(基于用户量) - getBrokerageUserRankPageByUserCount: params => { + getBrokerageUserRankPageByUserCount: (params) => { const queryString = Object.keys(params) - .map(key => encodeURIComponent(key) + '=' + params[key]) + .map((key) => encodeURIComponent(key) + '=' + params[key]) .join('&'); return request({ url: `/trade/brokerage-user/rank-page-by-user-count?${queryString}`, @@ -81,13 +99,13 @@ const BrokerageApi = { }); }, // 获得下级分销统计分页 - getBrokerageUserChildSummaryPage: params => { + getBrokerageUserChildSummaryPage: (params) => { return request({ url: '/trade/brokerage-user/child-summary-page', method: 'GET', params, - }) - } -} + }); + }, +}; -export default BrokerageApi +export default BrokerageApi; diff --git a/sheep/platform/provider/wechat/miniProgram.js b/sheep/platform/provider/wechat/miniProgram.js index 5e95edad..1fe18091 100644 --- a/sheep/platform/provider/wechat/miniProgram.js +++ b/sheep/platform/provider/wechat/miniProgram.js @@ -1,6 +1,7 @@ import AuthUtil from '@/sheep/api/member/auth'; import SocialApi from '@/sheep/api/member/social'; import UserApi from '@/sheep/api/member/user'; +import sheep from '@/sheep'; const socialType = 34; // 社交类型 - 微信小程序 @@ -126,14 +127,14 @@ async function getInfo() { const checkUpdate = async (silence = true) => { if (uni.canIUse('getUpdateManager')) { const updateManager = uni.getUpdateManager(); - updateManager.onCheckForUpdate(function(res) { + updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 if (res.hasUpdate) { - updateManager.onUpdateReady(function() { + updateManager.onUpdateReady(function () { uni.showModal({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', - success: function(res) { + success: function (res) { if (res.confirm) { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 updateManager.applyUpdate(); @@ -141,7 +142,7 @@ const checkUpdate = async (silence = true) => { }, }); }); - updateManager.onUpdateFailed(function() { + updateManager.onUpdateFailed(function () { // 新的版本下载失败 // uni.showModal({ // title: '已经有新版本了哟~', @@ -169,17 +170,17 @@ async function getSubscribeTemplate() { } // 订阅消息 -function subscribeMessage(event, callback= undefined) { +function subscribeMessage(event, callback = undefined) { let tmplIds = []; if (typeof event === 'string') { - const temp = subscribeEventList.find(item => item.title.includes(event)); + const temp = subscribeEventList.find((item) => item.title.includes(event)); if (temp) { tmplIds.push(temp.id); } } if (typeof event === 'object') { event.forEach((e) => { - const temp = subscribeEventList.find(item => item.title.includes(e)); + const temp = subscribeEventList.find((item) => item.title.includes(e)); if (temp) { tmplIds.push(temp.id); } @@ -189,16 +190,42 @@ function subscribeMessage(event, callback= undefined) { uni.requestSubscribeMessage({ tmplIds, - success: ()=>{ + success: () => { // 不管是拒绝还是同意都触发 - callback && callback() - }, + callback && callback(); + }, fail: (err) => { console.log(err); }, }); } +// 商家转账用户确认模式下,拉起页面请求用户确认收款 Transfer +function requestMerchantTransfer(mchId, packageInfo, successCallback, failCallback) { + if (!wx.canIUse('requestMerchantTransfer')) { + wx.showModal({ + content: '你的微信版本过低,请更新至最新版本。', + showCancel: false, + }); + return; + } + wx.requestMerchantTransfer({ + mchId: mchId, + appId: wx.getAccountInfoSync().miniProgram.appId, + package: packageInfo, + success: (res) => { + // res.err_msg 将在页面展示成功后返回应用时返回 ok,并不代表付款成功 + console.log('success:', res); + successCallback && successCallback(res); + }, + fail: (res) => { + console.log('fail:', res); + sheep.$helper.toast(res.errMsg); + failCallback && failCallback(res); + }, + }); +} + export default { load, login, @@ -210,4 +237,5 @@ export default { getOpenid, subscribeMessage, checkUpdate, + requestMerchantTransfer, };