| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581 | <template>	<view class="cash-content" :style="{'--status-bar-': statusBarHeight}">		<view class="cash-content-info">			<!-- 头部主要内容 开始 -->			<view class="cash-content-header">				<customNavbar title="余额提现" bgColor="rgba(0,0,0,0)" :customNavbarInfo="{}" :contentStyle="{}"					:leftStyle="{color: '#fff'}"></customNavbar>				<!--  余额 开始  -->				<view class="cash-content-money">					<text>可提现余额(元)</text>					<view class="cash-content-money-num">						<text>							<text class="inspage-userinfo-util">¥</text>							<u-count-to :decimals="2" :startVal="0" :endVal="monry" color="#fff" />							<text class="balance-userinfo-util">元</text>						</text>					</view>				</view>				<!--  余额 结束  -->				<!--  提现 开始  -->				<view class="cash-content-cash">					<view class="cash-content-cash-box">						<text>提现金额</text>						<view class="cash-content-cash-money">							<text class="cash-content-cash-money-icon">¥</text>							<view class="cash-content-cash-input">								<u--input placeholder="请输入内容" border="none" clearable type="number" v-model="moneyValue"									@change="moneyAccountFun"></u--input>							</view>							<!-- <text class="cash-content-cash-money-all" @click="cashAll()">全部提现</text> -->						</view>						<view class="cash-content-cash-service">							<view>								<text>服务费</text>								<text>{{ setServiceType(withdrawInfo)}}</text>							</view>							<view>								<text>到账金额</text>								<text>¥ {{ moneyAccount }}</text>							</view>						</view>						<view class="cash-content-cash-card">							<u-cell-group :border="false">								<u-cell :border="false" title="提现至" :isLink="false" :value="'微信钱包'"									@click="openPopup()"></u-cell>							</u-cell-group>						</view>						<view class="cash-content-cash-submit">							<view @click="openModal">提现</view>						</view>					</view>				</view>				<!--  提现 结束  -->				<!-- 选择银行卡 -->				<u-picker :show="show" keyName="label" :columns="columns" @cancel="cancelPicker"					@confirm="confirmPicker"></u-picker>			</view>			<!-- 头部主要内容 结束 -->			<!-- 输入密码  -->			<u-overlay :show="showModal">				<view class="password-model">					<view>						<view>请输入支付密码</view>						<view>提现</view>						<view>¥{{ moneyValue }}</view>						<view>							<u-code-input @finish="marketPersons" v-model="password" :focus="true"></u-code-input>						</view>						<text @click="clearOverlay"><u-icon name="close-circle" size="30"></u-icon></text>					</view>				</view>			</u-overlay>		</view>	</view></template><script>	import {		navigateTo	} from "@/utils/util.js"	export default {		data() {			return {				title: '这是我的',				statusBarHeight: 0, // 状态栏安全距离				monry: 0,				moneyValue: null,				moneyAccount: '',				tool: [ // 我的工具					{						title: "支付设置",						icon: this.$commonConfig.staticUrl + 'balance/zhifu.png',						url: '/pages/invitationStatistics/index'					},					{						title: "余额提现",						icon: this.$commonConfig.staticUrl + 'balance/mingxi.png',						url: '/pages/balance/index'					},				],				show: false,				columns: [					[{						label: '雪月夜',						// 其他属性值						id: 2021						// ...					}, {						label: '冷夜雨',						id: 804					}]				],				withdrawInfo: {},				showModal: false,				password: '',				personList:[]			}		},		onLoad(page) {			this.moneyValue = Number(page.withdrawTotal);			this.personList = JSON.parse(page.personList);			// #ifdef H5			//window.addEventListener('popstate', this.browserBack)			// #endif		},		onUnload() {			// #ifdef H5			//window.removeEventListener("popstate", this.browserBack);			// #endif		},		onShow() {			//this.statusBarHeight = getApp().globalData.statusBarHeight			this.getWithdrawInfo()		},		methods: {			/**			 * @author ygh			 * @data 2023-12-20			 */			navigateToFun() {				navigateTo('/pages/cash/index')			},			/**			 * 数字显示格式化			 *			 */			numFormat(num = 0) {				if (num < 100000) {					return num				} else if (num > 100000) {					return (num / 10000).toFixed(2)				}			},			/**  全部提现  */			cashAll() {				this.moneyValue = this.monry			},			/**			 *  打开选择器			 */			openPopup() {				return				this.show = true			},			/** 取消选择器  */			cancelPicker() {				this.show = false			},			/** 确认选择器  */			confirmPicker() {				this.show = false			},			/**			 * 获取数据			 */			async getWithdrawInfo() {				try {					let res = await this.$u.api.withdrawInfo({						noSign: 1,						userid: this.distribution_user_info.userId					})					if (res && res.code === 200) {						this.withdrawInfo = res.data						// this.withdrawInfo.serviceType = 1						// this.withdrawInfo.serviceCharge = 0						this.monry = res.data.withdrawTotal;						this.moneyAccountFun();					}				} catch (e) {					//TODO handle the exception					console.error("e===", e)				}			},			openModal() {				if (!this.moneyValue || this.moneyValue < this.withdrawInfo.minAmount) {					uni.showToast({						title: '最小提现金额' + this.withdrawInfo.minAmount,						icon: 'none'					});					return				}				if(this.moneyValue > this.monry) {					uni.showToast({						title: '总金额不能大于用户可提现金额',						icon: 'none'					});					return				}				// uni.showModal({				//   title: '提示',				//   content: '确定提现余额吗?',				//   success: res => {				//     this.orderWithdraw()				//   },				//   complete() {				//   }				// })				this.showModal = true				// #ifdef H5				window.history.replaceState(null, null, document.URL)				// #endif			},			/**  关闭 */			clearOverlay() {				this.showModal = false			},			/**			 * 密码校验			 */			async marketPersons() {				try {					let res = await this.$u.api.marketPersons({						noSign: 1,						userid: this.distribution_user_info.userId,						oldPassword: this.password					})					if (res && res.code === 200) {						this.orderWithdraw()					} else {						this.password = ''					}				} catch (e) {					//TODO handle the exception					console.error("e===", e)					this.password = ''				}			},			/**			 * 提交申请			 */			async orderWithdraw() {				try {					let res = await this.$u.api.orderWithdraw({						noSign: 1,						userid: this.distribution_user_info.userId,						"withdrawType": "wechat",						"withdrawTotal": this.moneyAccount,						"serviceAmount": this.withdrawInfo.serviceCharge,						"bankId": null,						personList:this.personList					})					if (res && res.code === 200) {						navigateTo('/pages/cashPrompt/index',{							id: res.data.orderId,							// ...res.data.bankInfo,							// moneyValue: this.moneyValue,							// withdrawType: 'wechat',							// serviceType: this.withdrawInfo.serviceType,							// serviceCharge: this.withdrawInfo.serviceCharge						})					} else {						uni.showToast({							title: res.msg,							icon: 'none'						})					}					this.showModal = false				} catch (e) {					//TODO handle the exception					console.error("e===", e)					this.showModal = false					uni.showToast({						title: "提交失败",						icon: 'none'					})				}			},			/**			 * 设置服务费显示			 */			setServiceType(data) {				if (data && data.serviceType) {					return data.serviceType == 1 ? ('¥' + data.serviceCharge) : data.serviceCharge				}			},			/**			 * 设置到账金额			 */			moneyAccountFun() {				let money = ''				if (this.withdrawInfo.serviceType == 1) {					money = this.moneyValue - (isNaN(this.withdrawInfo.serviceCharge) ? 0 : this.withdrawInfo						.serviceCharge)				} else if (this.withdrawInfo.serviceType == 2) {					let num1 = this.withdrawInfo.serviceCharge.replace("%", '')					let num = isNaN(num1) ? 0 : (Number(num1) / 100)					money = num ? this.moneyValue * num : Number(this.moneyValue)				}				this.moneyAccount = money < 0 ? '金额过小于零' : money.toFixed(2)			},			browserBack() {				console.log(1);				// 在这里写弹框				uni.showModal({					title: '提示',					content: '返回后此页面的操作将不作保留!',					cancelText: '确定返回',					confirmText: '留在此页',					success: (res) => {						if (res.confirm) {							// 用户选择留在此页,不进行任何操作						} else if (res.cancel) {							//window.history.back(); // 使用window.history.back()返回上一页						}					}				});				//window.history.replaceState(null, null, document.URL); // 保留此行代码			},		}	}</script><style lang="scss" scoped>	.cash-content {		display: flex;		flex-direction: column;		align-items: center;		justify-content: center;		--header-h: 620rpx;		.cash-content-info {			width: 100%;			box-sizing: border-box;		}	}	/** 头部主要内容 开始 */	.cash-content-header {		width: 100%;		height: var(--header-h);		box-sizing: border-box;		background: var(--gd-bgm-lg-color);		position: relative;		::v-deep .u-search {			padding: 0 30rpx !important;		}		::v-deep .u-search__action {			color: #fff !important;		}		/**  余额 开始  */		.cash-content-money {			width: 100%;			box-sizing: border-box;			margin-top: 50rpx;			padding-left: 66rpx;			color: #fff;			>text {				font-size: 24rpx;			}			.cash-content-money-num {				display: flex;				justify-content: center;				align-items: flex-start;				flex-direction: column;				margin-top: 24rpx;				>text:nth-child(1) {					.balance-userinfo-util {						font-size: 24rpx;						margin-left: 5rpx;					}					::v-deep .u-count-num {						font-weight: bold !important;						font-size: 48rpx !important;					}				}				>text:nth-child(2) {					margin-top: 20rpx;					font-size: 24rpx;				}			}		}		/**  余额 结束  */		/**  提现 开始  */		.cash-content-cash {			width: 100%;			box-sizing: border-box;			position: absolute;			top: 100%;			transform: translateY(-50%);			padding: 0 12rpx;			.cash-content-cash-box {				width: 100%;				height: 100%;				background-color: #fff;				box-shadow: 0rpx 2rpx 12rpx 0rpx rgba(221, 221, 221, 0.5);				border-radius: 20rpx;				box-sizing: border-box;				padding: 34rpx 30rpx 38rpx;				>text {					font-size: 28rpx;					color: #363636;				}				.cash-content-cash-money {					width: 100%;					display: flex;					align-items: center;					padding: 40rpx 0 20rpx;					border-bottom: 2rpx solid #EEEEEE;					::v-deep .u-cell__body {						padding: 20rpx 0 !important;					}					.cash-content-cash-input {						width: 100%;						padding: 0 10rpx;					}					>text {						flex-shrink: 0;						flex-wrap: nowrap;						white-space: nowrap;					}					.cash-content-cash-money-icon {						font-size: 32rpx;					}					.cash-content-cash-money-all {						color: var(--gd-but-color);						font-size: 24rpx;						cursor: pointer;					}				}				.cash-content-cash-service {					width: 100%;					box-sizing: border-box;					padding: 20rpx 0;					border-bottom: 2rpx solid #EEEEEE;					>view {						width: 100%;						display: flex;						justify-content: space-between;						align-items: center;						color: #606060;						padding: 5rpx 0 10rpx;						font-size: 24rpx;					}				}				.cash-content-cash-card {					width: 100%;					::v-deep .u-cell__body {						padding: 20rpx 0 !important;					}				}				.cash-content-cash-submit {					width: 100%;					height: 92rpx;					display: flex;					align-items: center;					justify-content: center;					box-sizing: border-box;					padding: 0 80rpx 0;					margin-top: 70rpx;					>view {						width: 100%;						height: 100%;						border-radius: 46rpx;						color: #fff;						background-color: var(--gd-but-color);						font-size: 28rpx;						font-family: SourceHanSansCN, SourceHanSansCN;						display: flex;						align-items: center;						justify-content: center;					}				}			}		}		/**  提现 结束  */	}	/** 头部主要内容 结束  **/	/**  密码弹窗  */	.password-model {		width: 100%;		height: 100%;		display: flex;		justify-content: center;		align-items: center;		box-sizing: border-box;		padding: 0 40rpx;		>view {			width: 100%;			display: flex;			justify-content: center;			align-items: center;			flex-direction: column;			background-color: #fff;			color: #000;			padding: 50rpx 10rpx;			box-sizing: border-box;			position: relative;			border-radius: 20rpx;			>view {				font-size: 32rpx;				padding: 10rpx 0;				box-sizing: border-box;			}			>view:nth-child(3) {				width: 100%;				display: flex;				justify-content: center;				align-items: center;				font-size: 52rpx;				border-bottom: 2rpx solid #ccc;				padding: 10rpx 0 20rpx;				color: var(--gd-bgm-color);			}			>view:nth-child(4) {				margin-top: 30rpx;			}			>text {				position: absolute;				top: 0;				right: 0;			}		}	}</style>
 |