parent
47ea94646e
commit
5ffcc59a57
@ -0,0 +1,17 @@ |
||||
import request from '@/utils/request' |
||||
|
||||
// api地址
|
||||
const api = { |
||||
list: 'dealer.capital/list', |
||||
submit: 'dealer.capital/submit' |
||||
} |
||||
|
||||
// 分销商提现明细
|
||||
export const list = (param) => { |
||||
return request.get(api.list, param) |
||||
} |
||||
|
||||
// 提交提现申请
|
||||
export const submit = (data) => { |
||||
return request.post(api.submit, data) |
||||
} |
Binary file not shown.
@ -0,0 +1,246 @@ |
||||
<template> |
||||
<view class="container" :style="appThemeStyle"> |
||||
<mescroll-body ref="mescrollRef" :sticky="true" @init="mescrollInit" :down="{ use: false }" :up="upOption" @up="upCallback"> |
||||
|
||||
<!-- tab栏 --> |
||||
<!-- <u-tabs :list="tabList" :is-scroll="false" :current="curTab" active-color="#786cff" :duration="0.2" @change="onChangeTab" /> --> |
||||
|
||||
<!-- 列表数据 --> |
||||
<view class="widget-list"> |
||||
<view class="widget__detail dis-flex flex-x-between" v-for="(item, index) in list.data" :key="index"> |
||||
<view class="detail__left dis-flex flex-dir-column flex-x-around"> |
||||
<view class="detail__money f-30">{{item.describe}} {{ item.money }}元</view> |
||||
<view class="detail__time col-9 f-24">{{ item.create_time }}</view> |
||||
</view> |
||||
<view class="detail__right dis-flex flex-dir-column flex-x-center flex-y-center"> |
||||
<view class="detail__status" :class="[ApplyStatusColor[item.apply_status]]"> |
||||
<text>{{ ApplyStatusText[item.apply_status] }}</text> |
||||
</view> |
||||
<block v-if="item.apply_status == ApplyStatusEnum.REJECT.value"> |
||||
<view class="detail__reason" @click="handleShowRejectReason(item)">驳回原因 |
||||
</view> |
||||
</block> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
</mescroll-body> |
||||
|
||||
<!-- 驳回原因弹窗 --> |
||||
<u-modal v-model="showRejectReason" title="驳回原因"> |
||||
<view class="pops-content"> |
||||
<text>{{ rejectReason }}</text> |
||||
</view> |
||||
</u-modal> |
||||
|
||||
</view> |
||||
</template> |
||||
|
||||
<script> |
||||
import MescrollMixin from '@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins' |
||||
import { getEmptyPaginateObj, getMoreListData } from '@/core/app' |
||||
import * as Api from '@/api/dealer/capital' |
||||
import SettingModel from '@/common/model/dealer/Setting' |
||||
import { ApplyStatusEnum } from '@/common/enum/dealer/withdraw' |
||||
|
||||
const pageSize = 15 |
||||
|
||||
// 提现状态文字 |
||||
const ApplyStatusText = {} |
||||
|
||||
// 提现状态颜色 |
||||
const ApplyStatusColor = { |
||||
[ApplyStatusEnum.WAIT.value]: 'col-8', |
||||
[ApplyStatusEnum.PASSED.value]: 'col-green', |
||||
[ApplyStatusEnum.REJECT.value]: 'col-m', |
||||
[ApplyStatusEnum.PAYMENT.value]: 'col-green' |
||||
} |
||||
|
||||
export default { |
||||
mixins: [MescrollMixin], |
||||
data() { |
||||
return { |
||||
// 枚举类 |
||||
ApplyStatusEnum, |
||||
ApplyStatusColor, |
||||
ApplyStatusText, |
||||
// 选项卡列表 |
||||
tabList: [], |
||||
// 当前选项 |
||||
curTab: 0, |
||||
// 列表数据 |
||||
list: {},//getEmptyPaginateObj(), |
||||
// 上拉加载配置 |
||||
upOption: { |
||||
// 首次自动执行 |
||||
auto: true, |
||||
// 每页数据的数量; 默认10 |
||||
page: { size: pageSize }, |
||||
// 数量要大于12条才显示无更多数据 |
||||
noMoreSize: 12, |
||||
// 空布局 |
||||
empty: { |
||||
tip: '亲,暂无相关数据' |
||||
} |
||||
}, |
||||
// 驳回原因弹窗 |
||||
showRejectReason: false, |
||||
rejectReason: '' |
||||
} |
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
this.getSetting() |
||||
}, |
||||
|
||||
methods: { |
||||
|
||||
// 获取分销设置 |
||||
getSetting() { |
||||
const app = this |
||||
SettingModel.data() |
||||
.then(setting => { |
||||
const words = setting.words.capital//withdraw_list |
||||
app.setPageTitle(words.title) |
||||
// app.setTabList(words.words) |
||||
// app.setStatusText(words.words) |
||||
}) |
||||
}, |
||||
|
||||
// 设置页面标题 |
||||
setPageTitle(title) { |
||||
uni.setNavigationBarTitle({ |
||||
title: title.value |
||||
}) |
||||
}, |
||||
|
||||
// 设置选项卡数据 |
||||
setTabList(words) { |
||||
const app = this |
||||
app.tabList = [ |
||||
{ value: -1, name: words.all.value }, |
||||
{ value: ApplyStatusEnum.WAIT.value, name: words.apply_10.value }, |
||||
{ value: ApplyStatusEnum.PASSED.value, name: words.apply_20.value }, |
||||
{ value: ApplyStatusEnum.REJECT.value, name: words.apply_30.value }, |
||||
{ value: ApplyStatusEnum.PAYMENT.value, name: words.apply_40.value }, |
||||
] |
||||
}, |
||||
|
||||
// 设置状态文字 |
||||
setStatusText(words) { |
||||
const app = this |
||||
app.ApplyStatusText = { |
||||
[ApplyStatusEnum.WAIT.value]: words.apply_10.value, |
||||
[ApplyStatusEnum.PASSED.value]: words.apply_20.value, |
||||
[ApplyStatusEnum.REJECT.value]: words.apply_30.value, |
||||
[ApplyStatusEnum.PAYMENT.value]: words.apply_40.value |
||||
} |
||||
}, |
||||
|
||||
/** |
||||
* 上拉加载的回调 (页面初始化时也会执行一次) |
||||
* 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 |
||||
* @param {Object} page |
||||
*/ |
||||
upCallback(page) { |
||||
const app = this |
||||
// 设置列表数据 |
||||
app.getList(page.num) |
||||
.then(list => { |
||||
const curPageLen = list.data.length |
||||
const totalSize = list.data.total |
||||
app.mescroll.endBySize(curPageLen, totalSize) |
||||
}) |
||||
.catch(() => app.mescroll.endErr()) |
||||
}, |
||||
|
||||
// 获取提现列表 |
||||
getList(pageNo = 1) { |
||||
const app = this |
||||
return new Promise((resolve, reject) => { |
||||
Api.list({ applyStatus: app.getTabValue(), page: pageNo }) |
||||
.then(result => { |
||||
// 合并新数据 |
||||
const newList = result.data.list |
||||
app.list.data = getMoreListData(newList, app.list, pageNo) |
||||
resolve(newList) |
||||
}) |
||||
}) |
||||
}, |
||||
|
||||
// 获取当前标签项的值 |
||||
getTabValue() { |
||||
const app = this |
||||
if (app.tabList.length) { |
||||
return app.tabList[app.curTab].value |
||||
} |
||||
return -1 |
||||
}, |
||||
|
||||
// 切换标签项 |
||||
onChangeTab(index) { |
||||
const app = this |
||||
// 设置当前选中的标签 |
||||
app.curTab = index |
||||
// 刷新订单列表 |
||||
app.onRefreshList() |
||||
}, |
||||
|
||||
// 刷新列表数据 |
||||
onRefreshList() { |
||||
this.list = getEmptyPaginateObj() |
||||
setTimeout(() => { |
||||
this.mescroll.resetUpScroll() |
||||
}, 120) |
||||
}, |
||||
|
||||
// 显示驳回原因 |
||||
handleShowRejectReason(item) { |
||||
this.showRejectReason = true |
||||
this.rejectReason = item.reject_reason |
||||
}, |
||||
|
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style> |
||||
page { |
||||
background: #fff; |
||||
} |
||||
</style> |
||||
<style lang="scss" scoped> |
||||
// 提现明细列表 |
||||
.widget-list { |
||||
padding: 16rpx 20rpx 40rpx 20rpx; |
||||
box-sizing: border-box; |
||||
} |
||||
|
||||
.widget__detail { |
||||
padding: 26rpx 15rpx; |
||||
box-sizing: border-box; |
||||
font-size: 26rpx; |
||||
border-bottom: 1rpx solid #f2f2f2; |
||||
} |
||||
|
||||
.widget__detail .detail__money { |
||||
font-size: 30rpx; |
||||
} |
||||
|
||||
.widget__detail .detail__reason { |
||||
color: #8e84fc; |
||||
} |
||||
|
||||
// 驳回原因 (弹窗) |
||||
.pops-content { |
||||
padding: 30rpx 48rpx; |
||||
font-size: 28rpx; |
||||
line-height: 44rpx; |
||||
text-align: left; |
||||
color: #606266; |
||||
height: 220rpx; |
||||
box-sizing: border-box; |
||||
} |
||||
</style> |
Loading…
Reference in new issue