sadjv3_jishi/my/wallet/index.vue

750 lines
21 KiB
Vue
Raw Normal View History

2024-06-05 19:14:51 +08:00
<template>
<view>
<view class="" v-if="XCXIsSelect != '否'">
<view class="bg padding dhjsbg">
<view class="flex align-center justify-between">
<view class="" style="font-size: 28rpx;color: #FFFFFF;margin-top: 6px;">当前余额()</view>
<view v-if="jsczSel != ''" class="text-lg" style="text-decoration: underline;color: #ffffff;"
@tap="goMyLB">我的老板</view>
</view>
<view style="font-size: 50rpx;color: #FFFFFF;margin-top: 10rpx;"><text
style="font-size: 32rpx;margin-right: 6px;">¥</text>{{money}}</view>
</view>
<view class="" style="margin-top: -60px;padding: 30rpx;">
<view class="bg padding" style="border-radius: 20rpx;">
<view class="text-lg margin-bottom">提现金额&nbsp;(可提现金额:{{currentRealIncome}})
</view>
<view class="padding-bottom-sm">
<input type="number" :placeholder="withdrawalAmountText" @input="withdrawalAmount"
v-model="moneyNum">
</view>
<view style="width: 654upx;margin: 0 auto;height: 1upx;background: #E6E6E6;"></view>
<view class="text-grey margin-top-xs">{{placeholder}}</view>
<view class="margin-top-xs" style="color: red;font-size: 26rpx;" v-if="txMsg">*{{txMsg}}</view>
</view>
<view class="bg margin-top padding-lr" style="border-radius: 20rpx;">
<view>
<view v-for="(item,index) in openLists" :key='index'>
<view class="align-center justify-between"
style="display: flex;height: 100upx;padding: 20upx 0;"
v-if="item.text === '微信' && wxTxSel != '否'">
<view class="flex align-center">
<image :src="item.image" style="width: 50upx;height: 50upx;border-radius: 50upx;">
</image>
<view style="font-size: 30upx;margin-left: 20upx;">{{item.text}}
</view>
</view>
<radio-group name="openWay" style="margin-left: 20upx;" @tap='selectWay(item)'>
<label class="tui-radio">
<radio color="#096f4b" :checked="openWay === item.id ? true : false" />
</label>
</radio-group>
</view>
<view class="align-center justify-between"
style="display: flex;height: 100upx;padding: 20upx 0;"
v-if="item.text === '银联' && ylTxSel != '否'">
<view class="flex align-center">
<image :src="item.image" style="width: 50upx;height: 50upx;border-radius: 50upx;">
</image>
<view style="font-size: 30upx;margin-left: 20upx;">{{item.text}}</view>
</view>
<radio-group name="openWay" style="margin-left: 20upx;" @tap='selectWay(item)'>
<label class="tui-radio">
<radio color="#096f4b" :checked="openWay === item.id ? true : false" />
</label>
</radio-group>
</view>
<view class="align-center justify-between"
style="display: flex;height: 100upx;padding: 20upx 0;" v-if="item.text === '支付宝'">
<view class="flex align-center">
<image :src="item.image" style="width: 50upx;height: 50upx;border-radius: 50upx;">
</image>
<view style="font-size: 30upx;margin-left: 20upx;">{{item.text}}
</view>
</view>
<radio-group name="openWay" style="margin-left: 20upx;" @tap='selectWay(item)'>
<label class="tui-radio">
<radio color="#096f4b" :checked="openWay === item.id ? true : false" />
</label>
</radio-group>
</view>
</view>
</view>
</view>
<view class="bg radius margin-top padding" style="border-radius: 20rpx;margin-bottom: 90rpx;"
v-if="XCXIsSelect != '否'">
<view class="flex align-center justify-between" @click="goNav('/my/wallet/zhifubao')">
<view class="flex align-center">
<!-- <image
src="https://admin.sjajk.com/file/uploadPath/2023/01/03/da75d52b95a64fc349d0353ab16cb719.png"
style="width: 44rpx;height: 44rpx;"></image> -->
<view>提现账号</view>
</view>
<image src="../../static/img/you.png" style="width: 16rpx;height: 28rpx;"></image>
</view>
<view class="flex align-center justify-between margin-top-xl"
@click="goNav('/my/wallet/mymoneydetail')">
<view class="flex align-center">
<!-- <image
src="https://admin.sjajk.com/file/uploadPath/2023/01/03/ba45c8489a14029c1782ac0a28fd8a49.png"
style="width: 48rpx;height: 34rpx;"></image> -->
<view>钱包明细</view>
</view>
<image src="../../static/img/you.png" style="width: 16rpx;height: 28rpx;"></image>
</view>
<view class="flex align-center justify-between margin-top-xl" @click="goNav('/my/wallet/cashList')">
<view class="flex align-center">
<!-- <image
src="https://admin.sjajk.com/file/uploadPath/2023/01/03/e90eb8a74548dc3b11c3c856e24e6fbc.png"
style="width: 40rpx;height: 52rpx;"></image> -->
<view>提现记录</view>
</view>
<image src="../../static/img/you.png" style="width: 16rpx;height: 28rpx;"></image>
</view>
<view class="flex align-center justify-between margin-top-xl" @click="goNav('/my/wallet/yinhangka')"
v-if="ylTxSel != '否'">
<view class="flex align-center">
<!-- <image
src="https://admin.sjajk.com/file/uploadPath/2023/01/03/ba45c8489a14029c1782ac0a28fd8a49.png"
style="width: 48rpx;height: 34rpx;"></image> -->
<view>银行卡账号</view>
</view>
<image src="../../static/img/you.png" style="width: 16rpx;height: 28rpx;"></image>
</view>
<!-- <view @click="TuiPrice()" v-if="renzheng ==2||renzheng ==5">退保证金</view> -->
</view>
</view>
<view
style="position: fixed;bottom: 0rpx;left: 0;right: 0;background: #FFFFFF;height: 110rpx;line-height: 110rpx;z-index: 999;width: 100%;padding: 0 30rpx;">
<view class="btn" @click="cashMoney">立即提现</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
XCXIsSelect: '否',
tablist: [{
id: 1,
name: '我的余额'
}, {
id: 2,
name: '我的收益'
}],
bankCard: '',
title_color: 2,
// bgCol1: '#1E1F31',
bgCol2: '#096f4b',
money: 0,
avatar: '',
Profit: 0,
openLists: [{
image: '../static/zhifubao.png',
text: '支付宝',
id: 1
}, {
image: 'https://wap.quanmindaojia.com/file/uploadPath/2023/02/22/88a1bd822b9632aaef8894021f7c9050.jpg',
text: '银联',
id: 2
}, {
image: '../static/icon_weixin.png',
text: '微信',
id: 3
}],
wxTxSel: '否',
ylTxSel: '否',
jsczSel: '否',
openWay: 1,
wallet: [{
id: 1,
num: '5',
price: '5',
isSelect: true
},
{
id: 2,
num: '20',
price: '20',
isSelect: false
},
{
id: 3,
num: '50',
price: '50',
isSelect: false
},
{
id: 4,
num: '100',
price: '100',
isSelect: false
},
{
id: 5,
num: '200',
price: '200',
isSelect: false
},
{
id: 6,
num: '500',
price: '500',
isSelect: false
}
],
moneyNum: null,
thisSelect: {
id: 1,
num: '5',
price: '5',
isSelect: true
},
ylSel: '否',
charge: 0, //提现手续费
maxMoney: 0, //最高提现额度
minMoney: 0, //最低提现额度
ratio: '', //金元比例
placeholder: '',
renzheng: 0,
sp: 0,
txMsg: '',
currentRealIncome: null,
withdrawalAmountText: "请输入提现金额",
withdrawalAmountNumType: null,
}
},
onLoad() {
this.wxTxSel = this.$queue.getData('wxTxSel');
this.ylTxSel = this.$queue.getData('ylTxSel');
this.jsczSel = this.$queue.getData('jsczSel');
this.XCXIsSelect = this.$queue.getData("XCXIsSelect");
if (this.XCXIsSelect != '否') {
uni.setNavigationBarTitle({
title: '我的钱包'
})
} else {
uni.setNavigationBarTitle({
title: '我的信息'
})
}
this.txMsg = this.$queue.getData('txMsg');
this.avatar = uni.getStorageSync('avatar')
this.renzheng = uni.getStorageSync("renzheng")
},
onShow() {
this.ylSel = this.$queue.getData('ylSel');
this.getMoney()
this.getCharge()
this.getMinMoney()
this.getMaxMoney()
this.getRatio()
this.getUserInfo()
},
methods: {
withdrawalAmount(e) {
let withdrawalAmountNumType = Number(e.detail.value);
this.withdrawalAmountNumType = Number(e.detail.value);
if (withdrawalAmountNumType && (withdrawalAmountNumType > this.currentRealIncome)) {
this.$nextTick(() => {
this.moneyNum = "";
this.withdrawalAmountText = "不能超过当前可提现金额,请重新输入";
})
}
},
goMyLB() {
uni.navigateTo({
url: '/my/wallet/therapist'
});
},
//退保证金
TuiPrice() {
let that = this
let zhiFuBao = uni.getStorageSync('zhiFuBao')
let zhiFuBaoName = uni.getStorageSync('zhiFuBaoName')
if (!zhiFuBao && !zhiFuBaoName) {
uni.navigateTo({
url: '/my/wallet/zhifubao'
})
} else {
let renzheng = uni.getStorageSync("renzheng")
console.log(renzheng)
if (renzheng == 2 || renzheng == 5) {
uni.showModal({
title: '提示',
content: '是否确定退还保证金?退还后将不能发布订单',
success: function(res) {
if (res.confirm) {
console.log('用户点击确定');
that.$Request.post("/app/userCertification/exitMoney").then(res => {
console.log(res)
if (res.msg == '您还有未下架的订单,请先下架!') {
uni.showToast({
title: res.msg,
icon: 'none'
});
} else if (res.msg == '您还有未服务的订单,请先完成!') {
uni.showToast({
title: res.msg,
icon: 'none'
});
} else if (res.msg == 'success') {
uni.showToast({
title: '退还成功',
icon: 'none'
});
uni.switchTab({
url: '/pages/my/index'
})
}
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
}
},
getUserInfo() {
this.$Request.get("/app/user/selectUserById").then(res => {
if (res.code == 0) {
this.avatar = res.data.avatar ? res.data.avatar : '../../static/logo.png'
uni.setStorageSync('avatar', res.data.avatar)
if (res.data.bankCard) {
this.bankCard = res.data.bankCard
}
}
});
},
// 提现手续费
getCharge() {
this.$Request.get("/app/common/type/152").then(res => {
if (res.code == 0) {
this.charge = res.data.value
this.placeholder = '服务费:' + this.charge * 100 + '%' + ',最低提现:' +
this.minMoney * 1 + ',最高提现:' + this.maxMoney * 1
}
});
},
// 最低提现额度
getMinMoney() {
this.$Request.get("/app/common/type/112").then(res => {
if (res.code == 0) {
this.minMoney = res.data.value
this.placeholder = '服务费:' + this.charge * 100 + '%' + ',最低提现:' +
this.minMoney * 1 + ',最高提现:' + this.maxMoney * 1
}
});
},
// 最高提现额度
getMaxMoney() {
this.$Request.get("/app/common/type/153").then(res => {
if (res.code == 0) {
this.maxMoney = res.data.value
this.placeholder = '服务费:' + this.charge * 100 + '%' + ',最低提现:' +
this.minMoney * 1 + ',最高提现:' + this.maxMoney * 1
}
});
},
// 金元比例
getRatio() {
this.$Request.get("/app/common/type/154").then(res => {
if (res.code == 0 && res.data && res.data.value) {
this.ratio = res.data.value
this.placeholder = '服务费:' + this.charge * 100 + '%' + ',最低提现:' +
this.minMoney * 1 + ',最高提现:' + this.maxMoney * 1
this.wallet.forEach(re => {
re.num = re.price * res.data.value
})
}
});
},
cut(e) {
this.title_color = e
},
goNav(url) {
uni.navigateTo({
url
})
},
active(e) {
this.wallet.forEach(res => {
if (res.id == e.id) {
res.isSelect = true
this.thisSelect = e
} else {
res.isSelect = false
}
})
},
// 我的余额
getMoney() {
this.$Request.get("/app/userMoney/selectMyMoney").then(res => {
if (res.code == 0 && res.data) {
console.log(res.data.money)
this.currentRealIncome = res.data?.withdrawableAmount;
this.money = res.data.money
}
});
},
selectWay: function(item) {
this.openWay = item.id;
},
pay() {
let data = {
money: this.thisSelect.price
}
console.log(data)
// 获取订单编号
this.$Request.post("/app/appOrder/insertOrder", data).then(res => {
console.log(res, '********')
uni.showLoading({
title: '支付中...'
});
if (res.code == 0) {
// this.Profit = res.data
if (this.openWay == 2) {
// #ifdef APP-PLUS
// 微信APP支付 根据订单id获取支付信息
this.$Request.post("/app/wxPay/payAppOrder", {
id: res.data.id
}).then(ret => {
this.isCheckPay(ret.code, 'wxpay', JSON.stringify(ret.data));
});
// #endif
// #ifdef MP-WEIXIN
// 微信小程序支付
this.$Request.post('/app/wxPay/wxPayJsApiOrder', {
orderId: res.data.id
}).then(ret => {
uni.hideLoading()
uni.requestPayment({
provider: 'wxpay',
timeStamp: ret.data.timestamp,
nonceStr: ret.data.noncestr,
package: ret.data.package,
signType: ret.data.signType,
paySign: ret.data.sign,
success: function(suc) {
console.log('success:' + JSON.stringify(suc));
uni.showToast({
title: '支付成功',
icon: 'success'
})
setTimeout(d => {
uni.navigateBack(1)
}, 1000);
},
fail: function(err) {
console.log('fail:' + JSON.stringify(err));
uni.showToast({
title: '支付失败',
icon: 'none'
})
}
});
});
// #endif
// #ifdef H5
let ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('micromessenger') !== -1) {
this.$Request.post('/app/wxPay/wxPayMpOrder?orderId=' + res.data.id).then(res => {
if (res.code == 0) {
this.callPay(res.data);
} else {
uni.showToast({
icon: 'none',
title: '支付失败!'
});
}
});
} else {
this.$Request.post('/app/aliPay/payOrder?orderId=' + res.data.id).then(
res => {
if (res.code === 0) {
const div = document.createElement('div')
div.innerHTML = res.data //此处form就是后台返回接收到的数据
document.body.appendChild(div)
document.forms[0].submit()
uni.showToast({
title: '支付成功',
icon: 'success'
})
setTimeout(d => {
uni.navigateBack(1)
}, 1000);
} else {
uni.showToast({
icon: 'none',
title: '支付失败!'
});
}
});
}
// #endif
} else {
// APP支付宝支付
this.$Request.post("/app/aliPay/payApp", {
id: res.data.id
}).then(ret => {
console.log(ret)
this.isCheckPay(ret.code, 'alipay', ret.data);
});
}
}
});
},
callPay: function(response) {
if (typeof WeixinJSBridge === "undefined") {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady(response), false);
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(response));
document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(response));
}
} else {
this.onBridgeReady(response);
}
},
onBridgeReady: function(response) {
let that = this;
if (!response.package) {
return;
}
console.log(response, '++++++++')
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId": response.appid, //公众号名称,由商户传入
"timeStamp": response.timestamp, //时间戳自1970年以来的秒数
"nonceStr": response.noncestr, //随机串
"package": response.package,
"signType": response.signType, //微信签名方式:
"paySign": response.sign //微信签名
},
function(res) {
console.log(res, '/*-/*-/*-')
if (res.err_msg === "get_brand_wcpay_request:ok") {
// 使用以上方式判断前端返回,微信团队郑重提示:
//res.err_msg将在用户支付成功后返回ok但并不保证它绝对可靠。
uni.showLoading({
title: '支付成功'
});
setTimeout(function() {
uni.hideLoading();
}, 1000);
} else {
uni.hideLoading();
}
WeixinJSBridge.log(response.err_msg);
}
);
},
isCheckPay(status, name, order) {
if (status == 0) {
this.setPayment(name, order);
} else {
uni.hideLoading();
uni.showToast({
title: '支付信息有误',
icon: 'none'
});
}
},
setPayment(name, order) {
console.log('*-*-*')
uni.requestPayment({
provider: name,
orderInfo: order, //微信、支付宝订单数据
success: function(res) {
console.log(res)
uni.hideLoading();
uni.showLoading({
title: '支付成功'
});
setTimeout(d => {
uni.navigateBack(1)
}, 1000);
},
fail: function(err) {
console.log(err)
uni.hideLoading();
},
complete() {
uni.hideLoading();
}
});
},
// 提现
cashMoney() {
if (!this.moneyNum) {
uni.showToast({
icon: 'none',
title: '请输入提现金额'
})
return
}
if (this.moneyNum == 0 || this.moneyNum < 100) {
uni.showToast({
icon: 'none',
title: '最低提现金额不能少于100元'
})
return
}
if (this.moneyNum > this.money * 1) {
uni.showToast({
icon: 'none',
title: '您的余额不足'
})
return
}
if (this.withdrawalAmountNumType % 100 !== 0) {
this.$nextTick(() => {
this.moneyNum = "";
this.withdrawalAmountText = "不支持零钱取现,只能进行整百元的操作";
uni.showToast({
title: "不支持零钱提现,只能进行整百元的操作",
icon: "none",
duration: 2000,
})
})
return;
}
// if (this.moneyNum*1+this.charge*this.moneyNum > this.money*1) {
// uni.showToast({
// icon: 'none',
// title: '您的手续费不足'
// })
// return
// }
let zhiFuBao = uni.getStorageSync('zhiFuBao')
let zhiFuBaoName = uni.getStorageSync('zhiFuBaoName')
if (!zhiFuBao && !zhiFuBaoName && this.openWay == 1) {
uni.navigateTo({
url: '/my/wallet/zhifubao'
})
return
}
if (!this.bankCard && this.openWay == 2) {
uni.navigateTo({
url: '/my/wallet/yinhangka'
})
return
}
let that = this
that.sp = (that.moneyNum * this.charge).toFixed(2)
uni.showModal({
title: '提示',
content: '本次提现' + that.moneyNum + '元,服务费' + this.sp + '元,是否确认提现?',
success: function(res) {
if (res.confirm) {
that.$Request.get("/app/cash/cashMoney", {
money: that.moneyNum,
userType: 2,
classify: that.openWay
}).then(res => {
if (res.code == 0) {
uni.showToast({
icon: 'none',
title: '提现申请成功,请耐心等待!'
})
that.moneyNum = null
} else {
uni.showToast({
icon: 'none',
title: res.msg
})
}
that.getMoney()
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
}
}
</script>
<style>
page {
background-color: #F2F2F2;
}
.bg {
background-color: #FFFFFF;
}
.dhjsbg {
2024-06-26 16:58:53 +08:00
width: 100%;
height: 144px;
padding: 15px;
background-image: url('../../static/index/fun_banner4.png');
background-repeat: no-repeat;
background-size: 100% 100%;
display: flex;
flex-direction: column;
2024-06-05 19:14:51 +08:00
}
.active {
border: 1px solid #096f4b !important;
color: #096f4b !important;
}
.title_btn {
height: 78upx;
line-height: 78upx;
/* background: #f7f7f7; */
}
.btn {
2024-06-26 16:58:53 +08:00
background: linear-gradient(90deg, #019C88, #28BA92, #35C495);
2024-06-05 19:14:51 +08:00
color: #FFFFFF;
margin: 16rpx 0;
width: 100%;
border-radius: 50rpx;
height: 78rpx;
line-height: 78rpx;
font-size: 30rpx;
text-align: center;
}
.bgCol2 {
color: #096f4b;
}
.haha {
display: flex;
/* justify-content: space-around; */
}
.inner {
margin-left: 20px;
}
/* .text-lg text {
font-weight: 540;
} */
</style>