第一次提交
This commit is contained in:
301
pages/agent/cash/apply/apply.vue
Normal file
301
pages/agent/cash/apply/apply.vue
Normal file
@ -0,0 +1,301 @@
|
||||
<template>
|
||||
<view class="apply-cash" v-if="!loadding">
|
||||
<!--申请成功-->
|
||||
<view class="form-wrap f30">
|
||||
<form @submit="formSubmit" @reset="formReset">
|
||||
<view class="p-0-20 pt30 txje">
|
||||
{{ words.cash_apply.words.money.value }}<text class="f26 gray9 ml30">{{ words.cash_apply.words.min_money.value+agent.settlement.min_money+'元' }}</text>
|
||||
</view>
|
||||
<view class="p-0-20 ">
|
||||
<view class="withd-bc">
|
||||
<view class="withd-bct">
|
||||
<view style="height: 100%;display: flex;align-items: center;">
|
||||
<text style="font-size: 48rpx;">¥</text>
|
||||
<input class="tx-inpt" name="money" v-model="money" type="number" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="withd-bcb">
|
||||
{{ words.cash_apply.words.capital.value }}{{agent.agent.money}}元,<text @click="getAll" style="color: #0479FF;">全部提现</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="p20 f32 gray3 txbt">提现方式</view>
|
||||
<view class="form-item p20">
|
||||
<view class="ww100">
|
||||
<template v-if="hasType('10')">
|
||||
<view class="p-30-0 border-b">
|
||||
<view class="d-b-c" :class="withdraw_type==10?'active':''" @click="TabType(10)">
|
||||
<view class="d-s-c flex-1">
|
||||
<image style="width: 28rpx;height: 28rpx;margin-right: 22rpx;" src="/static/wx.png" mode=""></image>
|
||||
<text class="f26 gray3">微信支付</text>
|
||||
</view>
|
||||
<text class="icon iconfont icon-xuanze"></text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<template v-if="hasType('20')">
|
||||
<view class="p-30-0 border-b">
|
||||
<view class="d-b-c" :class="withdraw_type==20?'active':''" @click="TabType(20)">
|
||||
<view class="d-s-c flex-1">
|
||||
<image style="width: 28rpx;height: 28rpx;margin-right: 22rpx;" src="/static/zfb.png" mode=""></image>
|
||||
<text class="f26 gray3">支付宝</text>
|
||||
</view>
|
||||
<text class="icon iconfont icon-xuanze"></text>
|
||||
</view>
|
||||
<template v-if="withdraw_type==20">
|
||||
<view class="mt20">
|
||||
<input class="p20 border-tb" name="alipay_name" type="text" value="" placeholder-class="grary" placeholder="请输入姓名" />
|
||||
</view>
|
||||
<view class="mt20">
|
||||
<input class="p20 border-tb" name="alipay_account" type="text" value="" placeholder-class="grary" placeholder="请输入支付宝账号" />
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
</template>
|
||||
<template v-if="hasType('30')">
|
||||
<view class="p-30-0 border-b">
|
||||
<view class="d-b-c" :class="withdraw_type==30?'active':''" @click="TabType(30)">
|
||||
<view class="d-s-c flex-1">
|
||||
<image style="width: 28rpx;height: 22rpx;margin-right: 22rpx;" src="/static/yinxingqia.png" mode=""></image>
|
||||
<text class="f26 gray3">银行卡</text>
|
||||
</view>
|
||||
<text class="icon iconfont icon-xuanze"></text>
|
||||
</view>
|
||||
<template v-if="withdraw_type==30">
|
||||
<view class="mt20">
|
||||
<input class="p20 border-tb" name="bank_account" type="text" value="" placeholder-class="grary" placeholder="请输入姓名" />
|
||||
</view>
|
||||
<view class="mt20">
|
||||
<input class="p20 border-tb" name="bank_name" type="text" value="" placeholder-class="grary" placeholder="请输入开户行名称/地址" />
|
||||
</view>
|
||||
<view class="mt20">
|
||||
<input class="p20 border-tb" name="bank_card" type="text" value="" placeholder-class="grary" placeholder="请输入银行卡号" />
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
</view>
|
||||
<view class="d-c-c mt60" style="border: 16rpx solid #F2F2F2">
|
||||
<button type="primary" class="btn-red flex-1" form-type="submit">{{ words.cash_apply.words.submit.value }}</button>
|
||||
</view>
|
||||
</form>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
loadding: true,
|
||||
/*是否加载完成*/
|
||||
indicatorDots: true,
|
||||
autoplay: true,
|
||||
interval: 2000,
|
||||
duration: 500,
|
||||
/*支付类别*/
|
||||
withdraw_type: 10,
|
||||
isData: false,
|
||||
agent: {},
|
||||
payType: [],
|
||||
words: {},
|
||||
/*小程序订阅消息*/
|
||||
temlIds: [],
|
||||
money: ''
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
/*获取数据*/
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
|
||||
/*获取数据*/
|
||||
getData() {
|
||||
let self = this;
|
||||
uni.showLoading({
|
||||
title: '加载中'
|
||||
});
|
||||
self.loadding = true;
|
||||
self._get('user.agent/cash', {
|
||||
platform: self.getPlatform()
|
||||
}, function(res) {
|
||||
self.agent = res.data;
|
||||
self.words = res.data.words;
|
||||
self.payType = self.agent.settlement.pay_type;
|
||||
self.agent.isData = true;
|
||||
self.temlIds = res.data.template_arr;
|
||||
self.loadding = false;
|
||||
uni.hideLoading();
|
||||
});
|
||||
},
|
||||
|
||||
/*切换提现方式*/
|
||||
TabType(e) {
|
||||
this.withdraw_type = e;
|
||||
},
|
||||
|
||||
/*判断是否存在*/
|
||||
hasType(e) {
|
||||
if (this.payType.indexOf(e) != -1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getAll() {
|
||||
this.money = this.agent.agent.money;
|
||||
},
|
||||
/*申请*/
|
||||
formSubmit: function(e) {
|
||||
|
||||
let self = this;
|
||||
var formdata = e.detail.value;
|
||||
formdata.pay_type = self.withdraw_type;
|
||||
var data = JSON.stringify(formdata);
|
||||
let callback = function() {
|
||||
uni.showLoading({
|
||||
title: '正在提交',
|
||||
mask: true
|
||||
})
|
||||
self._post('plus.agent.cash/submit', {
|
||||
data: data
|
||||
}, function(data) {
|
||||
uni.hideLoading();
|
||||
uni.showToast({
|
||||
title: '申请成功',
|
||||
duration: 2000,
|
||||
icon: 'success'
|
||||
});
|
||||
uni.navigateBack(-1);
|
||||
});
|
||||
}
|
||||
self.subMessage(self.temlIds, callback);
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: #F2F2F2;
|
||||
}
|
||||
|
||||
.txje {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
|
||||
.apply-cash {
|
||||
/* padding-top: 16rpx; */
|
||||
}
|
||||
|
||||
.form-wrap {
|
||||
/* border-radius: 20rpx; */
|
||||
background: #FFFFFF;
|
||||
/* box-shadow: 0 0 16rpx 0 rgba(0, 0, 0, .2); */
|
||||
}
|
||||
|
||||
.form-item {
|
||||
margin-bottom: 20rpx;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.form-item .field-name {
|
||||
width: 140rpx;
|
||||
}
|
||||
|
||||
.form-item input {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.txbt {
|
||||
border-top: 16rpx solid #F2F2F2;
|
||||
|
||||
}
|
||||
|
||||
.form-item .text-price {
|
||||
padding: 0 10rpx;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
border-radius: 40rpx;
|
||||
border: 1px solid #CCCCCC;
|
||||
}
|
||||
|
||||
.agreement-content {
|
||||
max-height: 60vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.iconfont.icon-xuanze {
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.form-item .active .iconfont.icon-xuanze {
|
||||
color: #FF5649;
|
||||
}
|
||||
|
||||
.apply-cash .btn-red {
|
||||
height: 88rpx;
|
||||
line-height: 88rpx;
|
||||
border-radius: 44rpx;
|
||||
background: #FF5649;
|
||||
border-color: #FF5649;
|
||||
border: none;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
.withd-b {
|
||||
background-color: #FFFFFF;
|
||||
margin-bottom: 97rpx;
|
||||
}
|
||||
|
||||
.withd-bct {
|
||||
height: 92rpx;
|
||||
padding-top: 59rpx;
|
||||
padding-right: 49rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 1rpx solid #d0d0d0;
|
||||
}
|
||||
|
||||
.tx-inpt {
|
||||
background-color: #FFFFFF;
|
||||
font-size: 48rpx;
|
||||
line-height: 92rpx;
|
||||
}
|
||||
|
||||
.withd-bcb {
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
padding: 27rpx 0 49rpx 0;
|
||||
}
|
||||
|
||||
.withdrawal-btn {
|
||||
margin: 0 30rpx;
|
||||
background-color: #f36a24;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
border-radius: 30rpx;
|
||||
padding: 0;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
.border-tb{
|
||||
border: none;
|
||||
border-top: 1rpx solid #eeeeee;
|
||||
border-bottom: 1rpx solid #eeeeee;
|
||||
}
|
||||
</style>
|
||||
198
pages/agent/cash/list/list.vue
Normal file
198
pages/agent/cash/list/list.vue
Normal file
@ -0,0 +1,198 @@
|
||||
<template>
|
||||
<view>
|
||||
<!--切换-->
|
||||
<view class="top-tabbar">
|
||||
<view :class="state_active == item.value? 'tab-item active' : 'tab-item'" @click="stateFunc(item.value)"
|
||||
v-for="(item,index) in tableList" :key="index">{{item.text}}</view>
|
||||
</view>
|
||||
|
||||
<!--列表-->
|
||||
<scroll-view scroll-y="true" class="scroll-Y" :style="'height:' + scrollviewHigh + 'px;'" lower-threshold="50"
|
||||
@scrolltoupper="scrolltoupperFunc" @scrolltolower="scrolltolowerFunc">
|
||||
<view class="p-0-30 bg-white mt20">
|
||||
<view class="d-b-c border-b p-20-0" v-for="(item,index) in tableData" :key="index">
|
||||
<view class="d-s-s f-w d-c flex-1 ">
|
||||
<text class="f28 mb16">提现</text>
|
||||
<text class="gray9 f22">{{item.create_time}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<view class="tr" :class="item.apply_status.text=='审核通过'?'green':'gray9'">
|
||||
{{ item.apply_status.text }}
|
||||
</view>
|
||||
<view class="red ml20">¥{{ item.money }}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!--<view class="">
|
||||
<view class="bottom-refresh">
|
||||
<view class="d-c-c p30" v-if="tableData.length && no_more">
|
||||
<text class="gray3">亲, 没有更多了</text>
|
||||
</view>
|
||||
<view v-if="loading" class="d-c-c p30">
|
||||
<text class="gray3">加载中...</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>-->
|
||||
<!-- 没有记录 -->
|
||||
<view class="d-c-c p30" v-if="tableData.length==0 && !loading">
|
||||
<text class="iconfont icon-wushuju"></text>
|
||||
<text class="cont">亲,暂无相关记录哦</text>
|
||||
</view>
|
||||
<uni-load-more v-else :loadingType="loadingType"></uni-load-more>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import uniLoadMore from "@/components/uni-load-more.vue";
|
||||
export default {
|
||||
components: {
|
||||
uniLoadMore
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
/*手机高度*/
|
||||
phoneHeight: 0,
|
||||
/*可滚动视图区域高度*/
|
||||
scrollviewHigh: 0,
|
||||
/*状态选中*/
|
||||
state_active: -1,
|
||||
/*数据列表*/
|
||||
tableData: [],
|
||||
no_more: false,
|
||||
loading: true,
|
||||
/*最后一页码数*/
|
||||
last_page: 0,
|
||||
/*当前页面*/
|
||||
page: 1,
|
||||
/*每页条数*/
|
||||
list_rows: 20,
|
||||
tableList: [],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
/*加载中状态*/
|
||||
loadingType() {
|
||||
if (this.loading) {
|
||||
return 1;
|
||||
} else {
|
||||
if (this.tableData.length != 0 && this.no_more) {
|
||||
return 2;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
/*初始化*/
|
||||
this.init();
|
||||
/*获取数据*/
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
/*初始化*/
|
||||
init() {
|
||||
let self = this;
|
||||
uni.getSystemInfo({
|
||||
success(res) {
|
||||
self.phoneHeight = res.windowHeight;
|
||||
// 计算组件的高度
|
||||
let view = uni.createSelectorQuery().select('.top-tabbar');
|
||||
view.boundingClientRect(data => {
|
||||
let h = self.phoneHeight - data.height;
|
||||
self.scrollviewHigh = h;
|
||||
}).exec();
|
||||
}
|
||||
});
|
||||
},
|
||||
/*获取数据*/
|
||||
getData() {
|
||||
let self = this;
|
||||
let page = self.page;
|
||||
self.loading = true;
|
||||
let list_rows = self.list_rows;
|
||||
self._get('plus.agent.cash/lists', {
|
||||
status: self.state_active,
|
||||
page: page || 1,
|
||||
list_rows: list_rows,
|
||||
}, function(data) {
|
||||
self.loading = false;
|
||||
// 导航栏数据
|
||||
self.tableList = [{
|
||||
value: -1,
|
||||
text: data.data.words.cash_list.words.all.value,
|
||||
}, {
|
||||
value: 10,
|
||||
text: data.data.words.cash_list.words.apply_10.value,
|
||||
}, {
|
||||
value: 20,
|
||||
text: data.data.words.cash_list.words.apply_20.value,
|
||||
},
|
||||
{
|
||||
value: 40,
|
||||
text: data.data.words.cash_list.words.apply_40.value,
|
||||
},
|
||||
{
|
||||
value: 30,
|
||||
text: data.data.words.cash_list.words.apply_30.value,
|
||||
}
|
||||
];
|
||||
self.tableData = self.tableData.concat(data.data.list.data);
|
||||
self.last_page = data.data.list.last_page;
|
||||
if (data.data.list.last_page <= 1) {
|
||||
self.no_more = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/*切换*/
|
||||
stateFunc(e) {
|
||||
let self = this;
|
||||
if (e != self.state_active) {
|
||||
self.tableData = [];
|
||||
self.page = 1;
|
||||
self.state_active = e;
|
||||
self.getData();
|
||||
}
|
||||
},
|
||||
|
||||
/*可滚动视图区域到顶触发*/
|
||||
scrolltoupperFunc() {
|
||||
console.log('滚动视图区域到顶');
|
||||
},
|
||||
|
||||
/*可滚动视图区域到底触发*/
|
||||
scrolltolowerFunc() {
|
||||
let self = this;
|
||||
if (self.page < self.last_page) {
|
||||
self.page++;
|
||||
self.getData();
|
||||
}
|
||||
self.no_more = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.tab-item {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.tab-item.active {
|
||||
font-weight: normal;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.tab-item.active::after {
|
||||
width: 57rpx;
|
||||
height: 6rpx;
|
||||
background-color: #ff5649;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user