第一次提交

This commit is contained in:
wangxiaowei
2025-06-11 10:21:51 +08:00
commit 52932d54b1
2341 changed files with 185283 additions and 0 deletions

View 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>

View 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>