<template>
	<view>
		<u-navbar :custom-back="btnback" title="余额提现" :border-bottom="false" :background="bgc" title-color='#fff' back-icon-color="#fff"
			title-size='36' height='50'></u-navbar>
		<view class="cont">
			<view class="top_box">
				<view class="tip">账户余额(元)</view>
				<view class="txt">
					{{userinfo.balance == undefined ? '' : userinfo.balance}}
				</view>
				<view class="tip">累计提现:{{userinfo.withDrawlAmount == undefined ? '' : userinfo.withDrawlAmount}}</view>
			</view>
			<view class="tit">
				<view class="" style="display: flex;">
					<view class="tit_line" style="margin-top: 4rpx;"></view>
					余额提现
				</view>
				<view class="" style="color: #8883f0;" @click="btntxrecord">
					提现记录
				</view>
			</view>
			<view class="input_box">
				<view class="yuan">
					¥
				</view>
				<view class="ipt">
					<u-input v-model="money" type="number" @input="change" placeholder='输入自定义金额'
						placeholder-style='font-size: 24rpx;' />
				</view>
				<view class="altx" @click="all()">
					全部提现
				</view>
			</view>
			<view class="" style="color: red;font-size: 24rpx;padding-top: 30rpx;box-sizing: border-box;">
				提现服务费为 ¥{{roundToTwoDecimalsTraditional(this.serviceRates)}}
			</view>
			<view class="tit">
				<view class="" style="display: flex;">
					<view class="tit_line" style="margin-top: 4rpx;">

					</view>
					提现方式
				</view>
			</view>
			<view class="pay_type" style="width: 100%;">
				<view class="type_box" v-if="listflag" v-for="(item,index) in txlist" :key="index"
					@click="pay(index,item.channelId)">
					<view class="box_left">
						<image :src="item.picture" mode=""></image>
						<view class="text">
							{{item.name}}
						</view>
					</view>
					<view class="box_right" :class="currentindex==index?'act1':''">
						<span v-if="currentindex==index" style="color: #fff;"> <u-icon style="margin-top: 22rpx;"
								name="checkbox-mark" color="#fff" size="28"></u-icon> </span>
					</view>
				</view>

				<view v-if="!listflag" class="wutx" style="width: 100%;margin-top: 230rpx;text-align: center;">
					<view class="" style="font-size: 32rpx;">
						当前暂无提现方式
					</view>
					<view class="addtj" @click="btnadd">
						去添加
					</view>
				</view>
			</view>
			<view class="btn" v-if="listflag" @click="sub()">
				确认提现
			</view>
			<view v-if="btnmsk"
				style="width: 100%;height: 100vh;position: fixed;top: 0;left: 0;background-color: #000;opacity: .1;z-index: 999;">
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				btnmsk: false,
				bgc: {
					backgroundColor: "#8883f0",
				},
				name: '',
				idnum: '',
				money: '',
				infoList: {},
				currentindex: -1,
				payType: 1,
				accountNo: '',
				userinfo: {},
				serviceType: '',
				serviceRate: '',
				serviceRates: '',
				sjmeoey: '',
				txlist: '',
				channelId: '',
				listflag: true
			}
		},
		onShow() {
			this.gettxlist()
			// this.getfuwu()
			this.getinfo()
			this.getuserinfo()
		},
		// 分享到好友(会话)
		onShareAppMessage: function() {
			return {
				title: '创想物联',
				path: '/pages/shouye/index'
			}
		},

		// 分享到朋友圈  
		onShareTimeline: function() {
			return {
				title: '创想物联',
				query: '',
				path: '/pages/shouye/index'
			}
		},
		methods: {
			// 添加提现方式
			btnadd() {
				uni.navigateTo({
					url: '/page_user/skzh'
				})
			},
			// 获取提现渠道列表
			gettxlist() {
				this.$u.get('/app/channel/withdraw/enabledList').then(res => {
					if (res.code == 200) {
						if (res.data.length > 0) {
							this.listflag = true
							this.txlist = res.data
						} else {
							this.listflag = false
						}
					}
				})
			},
            btnback(){
				uni.switchTab({
					url:'/pages/my'
				})
			},

			change() {
				if (this.serviceType == 2) {
					this.serviceRates = this.serviceRate
					this.sjmeoey = Number(this.money) - Number(this.serviceRates)
				} else {
					let qian = this.money * this.serviceRate / 100
					this.serviceRates = qian
					this.sjmeoey = Number(this.money) - Number(this.serviceRates)
				}
			},
			// 计算小数
			roundToTwoDecimalsTraditional(num) {
				return Math.round(num * 100) / 100;
			},
			// 跳转到提现记录
			btntxrecord() {
				uni.navigateTo({
					url: '/page_user/txrecord'
				})
			},
			getinfo() {
				this.$u.get('/app/account').then((res) => {
					if (res.code == 200) {
						this.infoList = res.data
					}
				})
			},
			pay(index, id) {
				this.channelId = id
				this.getfuwu()
				this.currentindex = index
			},
			all() {
				this.money = this.userinfo.balance
				if (this.serviceType == 2) {
					this.serviceRates = this.serviceRate
					this.sjmeoey = Number(this.money) - Number(this.serviceRates)
				} else {
					let qian = this.money * this.serviceRate / 100
					this.serviceRates = qian
					this.sjmeoey = Number(this.money) - Number(this.serviceRates)
				}
			},
			// 获取提现服务费
			getfuwu() {
				this.$u.get(`/app/bill/getWithdrawService?channelId=${this.channelId}`).then((res) => {
					if (res.code == 200) {
						this.serviceType = res.data.serviceType
						this.serviceRate = res.data.serviceRate
						if (this.serviceType == 2) {
							this.serviceRates = this.serviceRate
						} else {
							// this.serviceRates = 0
							this.serviceRates = this.serviceRate * this.money / 100
						}
					}
				})
			},
			sub() {
				if (this.userinfo.limitWithdraw == true) {
					uni.showToast({
						title: this.userinfo.limitWithdrawReason,
						icon: 'none',
						duration: 2000
					})
					setTimeout(()=>{
						uni.navigateTo({
							url: '/page_components/shiming'
						})
					},1000)
				}else{
					if (this.userinfo.isReal == true) {
						if (this.money > this.userinfo.balance) {
							uni.showToast({
								title: '提现金额不能大于余额',
								icon: 'none',
								duration: 2000
							});
						} else if (this.currentindex == -1) {
							uni.showToast({
								title: '请选择提现方式',
								icon: 'none',
								duration: 2000
							})
						} else {
							this.btnmsk = true
							let data = {
								money: this.money,
								arrivalAmount: this.roundToTwoDecimalsTraditional(Number(this.money) - Number(this
									.roundToTwoDecimalsTraditional(this.serviceRates))),
								serviceCharge: this.roundToTwoDecimalsTraditional(this.serviceRates),
								channelId: this.channelId,
								serviceRate: this.serviceRate, //服务费
								serviceType: this.serviceType //服务费收取方式
							}
							this.$u.post('/app/bill/withdraw', data).then((res) => {
								if (res.code == 200) {
									this.getuserinfo()
									uni.showToast({
										title: '申请提现成功',
										icon: 'success',
										duration: 2000
									})
									this.serviceRates = 0
									this.btnmsk = false
								}else if(res.code == 10001){
									uni.navigateTo({
										url: '/page_components/shiming'
									})
								}else {
									uni.showToast({
										title: res.msg,
										icon: 'none',
										duration: 2000
									})
									this.btnmsk = false
								}
							})
						}
					} else {
						uni.navigateTo({
							url: '/page_components/shiming'
						})
					}
				}
			},
			getuserinfo() {
				this.$u.get("/app/user/userInfo").then((res) => {
					if (res.code == 200) {
						this.userinfo = res.data
						this.money = ''
					}
				})
			},

		}
	}
</script>

<style lang="scss">
	/deep/ .u-flex {
		padding-top: 20rpx !important;
	}

	/deep/ .u-title {
		padding-bottom: 22rpx;
	}

	/deep/ .u-icon__icon {
		padding-bottom: 22rpx;
	}

	page {
		background: #F7FAFE;
	}

	.addtj {
		margin-top: 44rpx;
		width: 646rpx;
		height: 88rpx;
		background: #E4E3FB;
		box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1);
		border-radius: 20rpx 20rpx 20rpx 20rpx;
		text-align: center;
		line-height: 88rpx;
		font-size: 36rpx;
		color: #8883F0;
	}

	.cont {
		display: flex;
		flex-wrap: wrap;
		margin: 0 auto;
		width: 634rpx;

		.top_box {
			padding: 28rpx 32rpx;
			margin-top: 38rpx;
			width: 634rpx;
			height: 246rpx;
			background: #8883F0;
			border-radius: 28rpx 28rpx 28rpx 28rpx;
			border-radius: 20rpx;

			.tip {
				font-weight: 400;
				font-size: 28rpx;
				color: #FFFFFF;
				line-height: 38rpx;
			}

			.txt {
				margin-top: 28rpx;
				margin-bottom: 28rpx;
				font-weight: 500;
				font-size: 40rpx;
				color: #FFFFFF;
				line-height: 54rpx;
			}
		}

		.tit {
			margin-top: 38rpx;
			display: flex;
			flex-wrap: nowrap;
			align-items: center;
			font-weight: 500;
			font-size: 28rpx;
			color: #3D3D3D;
			line-height: 38rpx;
			display: flex;
			justify-content: space-between;
			width: 100%;

			.tit_line {
				margin-right: 12rpx;
				width: 4rpx;
				height: 32rpx;
				background: #8883F0;
				border-radius: 0rpx 0rpx 0rpx 0rpx;
			}

		}

		.input_box {
			display: flex;
			flex-wrap: nowrap;
			align-items: center;
			margin-top: 36rpx;
			width: 634rpx;
			height: 86rpx;
			background: #FFFFFF;
			box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1);
			border-radius: 20rpx;

			.yuan {
				margin-left: 36rpx;
				font-weight: 500;
				font-size: 52rpx;
				color: #8883F0;
				line-height: 72rpx;
			}

			.ipt {
				width: 60%;
			}

			.altx {
				display: flex;
				align-items: center;
				justify-content: center;
				width: 158rpx;
				height: 56rpx;
				background: #FFFFFF;
				box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.2);
				border-radius: 12rpx 12rpx 12rpx 12rpx;

				font-weight: 400;
				font-size: 28rpx;
				color: #8883F0;
				line-height: 38rpx;
			}
		}

		.pay_type {
			.type_box {
				width: 100%;
				margin-top: 26rpx;
				display: flex;
				align-items: center;
				flex-wrap: nowrap;
				width: 634rpx;
				height: 86rpx;
				background: #FFFFFF;
				box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1);
				border-radius: 20rpx;

				.box_left {
					display: flex;
					align-items: center;
					flex-wrap: nowrap;
					margin-left: 22rpx;

					image {
						width: 50rpx;
						height: 50rpx;
					}

					.text {
						margin-left: 30rpx;
						font-weight: 400;
						font-size: 32rpx;
						color: #3D3D3D;
						line-height: 44rpx;
					}
				}

				.box_right {
					display: flex;
					align-items: center;
					justify-content: center;
					margin-left: auto;
					margin-right: 34rpx;
					width: 44rpx;
					height: 44rpx;
					border: 2rpx solid #444444;
					border-radius: 50%;
				}

				.act1 {
					color: #FFFFFF;
					background-color: #8883F0;
				}
			}
		}

		.btn {
			margin-left: 20rpx;
			display: flex;
			align-items: center;
			justify-content: center;
			margin-top: 218rpx;
			width: 590rpx;
			height: 84rpx;
			background: #8883f0;
			border-radius: 40rpx;
			font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
			font-weight: 400;
			font-size: 36rpx;
			color: #FFFFFF;

		}
	}
</style>