406 lines
11 KiB
Vue
406 lines
11 KiB
Vue
|
|
<template>
|
|||
|
|
<view>
|
|||
|
|
<view class="balance">
|
|||
|
|
<view class="title">
|
|||
|
|
可领取{{ type == 7 ? '水果券':'货款' }}
|
|||
|
|
</view>
|
|||
|
|
<view class="balance-span site-flex">
|
|||
|
|
<text class="fuhao">¥</text>
|
|||
|
|
<text> {{ balance }}</text>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="main bg-w">
|
|||
|
|
|
|||
|
|
<view class="list">
|
|||
|
|
<view @click="jumpTo()" v-if="paymentInfo.account">
|
|||
|
|
<Card :data="paymentInfo" :index="paymentInfo"></Card>
|
|||
|
|
</view>
|
|||
|
|
<view class="list-item flex flex-between" v-else>
|
|||
|
|
<text class="font32">领取至</text>
|
|||
|
|
|
|||
|
|
<view class="flex flex-align-center color-b6" @click="jumpTo()">
|
|||
|
|
<text class="font28" v-if="paymentInfo.type === undefined">请选择</text>
|
|||
|
|
<text class="font28" v-if="paymentInfo.type === 0">支付宝({{ paymentInfo.account }})</text>
|
|||
|
|
<text class="font28" v-if="paymentInfo.type === 1">微信({{ paymentInfo.account }})</text>
|
|||
|
|
<text class="font28" v-if="paymentInfo.type === 3">{{ paymentInfo.bankName }}({{ paymentInfo.account |
|
|||
|
|
filtersCard }})</text>
|
|||
|
|
<text class="iconfont font38"></text>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="list-item">
|
|||
|
|
<text class="font32">领取金额</text>
|
|||
|
|
<view class="flex flex-align-end con ">
|
|||
|
|
<text class="blod font48">¥</text>
|
|||
|
|
<input type="text" class="font40 input" v-model="money" placeholder="0.00" />
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="flex flex-between">
|
|||
|
|
<view class="money flex flex-align-center font26">
|
|||
|
|
<text @tap="money = balance">全部领取</text>
|
|||
|
|
</view>
|
|||
|
|
<!-- #ifdef MP-WEIXIN -->
|
|||
|
|
<text class="color-b9 font30" @click="$navigateTo('creditCardRecord')">领取记录</text>
|
|||
|
|
<!-- #endif -->
|
|||
|
|
</view>
|
|||
|
|
<view v-if="type == 3" class="list-item flex" @click="selectImg">
|
|||
|
|
<text class="font32">发票上传</text>
|
|||
|
|
<view class="flex flex-align-end" style="margin-left: 100rpx;">
|
|||
|
|
<image style="width: 300rpx;height: 300rpx;" :src="voucher || uploadBgIMG" mode=""></image>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="btn">
|
|||
|
|
<u-button :circle="true" @click="onSave" :loading="loading" :disabled="loading"
|
|||
|
|
color="linear-gradient(to right, rgba(22, 104, 214, 1), rgba(88, 153, 235, 1))">立即领取</u-button>
|
|||
|
|
</view>
|
|||
|
|
<!-- <button type="primary" class="bg-base">确认提现</button> -->
|
|||
|
|
<view class="flex flex-column font32 tips color-red" >
|
|||
|
|
<text>*提示:</text>
|
|||
|
|
<block v-if="type == 3">
|
|||
|
|
<text>1.货款领取最低金额100,最大金额100000。</text>
|
|||
|
|
<text>2.货款在将在三个工作内到账,节假日顺延。</text>
|
|||
|
|
</block>
|
|||
|
|
<block v-if="type == 7">
|
|||
|
|
<text>1.领取最低金额100,最大金额100000。</text>
|
|||
|
|
<text>2.收益日结周提,领取手续费6%。</text>
|
|||
|
|
</block>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
|
|||
|
|
import url from "@/common/http/url.js";
|
|||
|
|
import { mapState } from 'vuex';
|
|||
|
|
import Card from '@/pages/user/Fruit/component/Card.vue';
|
|||
|
|
import { calcFn } from '@/utils/calc.js';
|
|||
|
|
import upload from "@/common/http/upload.js";
|
|||
|
|
export default {
|
|||
|
|
components: {
|
|||
|
|
Card
|
|||
|
|
},
|
|||
|
|
data () {
|
|||
|
|
return {
|
|||
|
|
loading: false,
|
|||
|
|
money: "",
|
|||
|
|
balance: 0,
|
|||
|
|
paymentInfo: {},
|
|||
|
|
config: {},
|
|||
|
|
type: 1,// 1-用户, 2-配送员, 3-商家, 4-存托
|
|||
|
|
myAssetObj: {},
|
|||
|
|
uploadBgIMG: require('@/static/indexIMG/upload.png'),
|
|||
|
|
voucher: ''
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
filters: {
|
|||
|
|
filtersCard (val) {
|
|||
|
|
if (!val) return
|
|||
|
|
return val.substring(val.length - 4, val.length)
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onLoad (opt) {
|
|||
|
|
if (opt.type) {
|
|||
|
|
this.type = parseInt(opt.type)
|
|||
|
|
}
|
|||
|
|
if (this.type === 4) {
|
|||
|
|
// 获取存托余额
|
|||
|
|
this.$http("GET", url.deposit.getUserWallet).then(res => {
|
|||
|
|
this.balance = res.data.balance
|
|||
|
|
})
|
|||
|
|
} else if (this.type === 3) {
|
|||
|
|
// 获取商家余额
|
|||
|
|
// this.$http("GET", url.user.getMyAsset).then(res =>{
|
|||
|
|
// let { code, data } = res;
|
|||
|
|
// console.log('res', res)
|
|||
|
|
// if (code == 200) {
|
|||
|
|
// data.forEach((item) => {
|
|||
|
|
// if (item.assetType == 6) {
|
|||
|
|
// this.balance = item.assetAccount || 0
|
|||
|
|
// }
|
|||
|
|
// })
|
|||
|
|
// }
|
|||
|
|
// })
|
|||
|
|
// this.$http("GET", url.store.getWalletInfo).then(res=>{
|
|||
|
|
|
|||
|
|
// })
|
|||
|
|
} else if (this.type === 7) {
|
|||
|
|
this.$http('GET', url.user.getMyAsset).then(res => {
|
|||
|
|
this.balance = res.data[5].assetAccount
|
|||
|
|
// if (this.type === 1) {
|
|||
|
|
// this.balance = res.data.balance
|
|||
|
|
// } else {
|
|||
|
|
// this.balance = res.data.distributorBalance
|
|||
|
|
// }
|
|||
|
|
})
|
|||
|
|
} else {
|
|||
|
|
// 获取用户余额
|
|||
|
|
this.$http('GET', url.user.getWalletInfo).then(res => {
|
|||
|
|
if (this.type === 1) {
|
|||
|
|
this.balance = res.data.balance
|
|||
|
|
} else {
|
|||
|
|
this.balance = res.data.distributorBalance
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onShow () {
|
|||
|
|
if (this.paymentData) {
|
|||
|
|
this.paymentInfo = this.paymentData
|
|||
|
|
}
|
|||
|
|
let path = url.withdrawal.getConfigInfo
|
|||
|
|
let name = "user"
|
|||
|
|
if (this.type === 2) {
|
|||
|
|
name = "distribution"
|
|||
|
|
} else if (this.type === 3) {
|
|||
|
|
name = "store"
|
|||
|
|
this.myAsset.forEach((item) => {
|
|||
|
|
if (item.assetType == 6) {
|
|||
|
|
this.balance = item.assetAccount || 0
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
} else if (this.type === 4) {
|
|||
|
|
path = url.deposit.getWithdrawalInfo
|
|||
|
|
name = "deposit"
|
|||
|
|
}
|
|||
|
|
// 获取提现参数
|
|||
|
|
this.$http("GET", path, { type: this.type }).then(res => {
|
|||
|
|
this.config.status = res.data.keyValue
|
|||
|
|
let list = res.data.children
|
|||
|
|
list.forEach(v => {
|
|||
|
|
if (v.keyCode === `${name}_withdrawal_min_amount`) {
|
|||
|
|
this.config.minAmount = v.keyValue // 提现最低数额
|
|||
|
|
}
|
|||
|
|
if (v.keyCode === `${name}_withdrawal_max_amount`) {
|
|||
|
|
this.config.maxAmount = v.keyValue // 提现最大数额
|
|||
|
|
}
|
|||
|
|
if (v.keyCode === `${name}_withdrawal_multiple_amount`) {
|
|||
|
|
this.config.multiple = v.keyValue // 倍数
|
|||
|
|
}
|
|||
|
|
if (v.keyCode === `${name}_withdrawal_fixed_amount`) {
|
|||
|
|
this.config.fixed = v.keyValue // 固定金额范围
|
|||
|
|
}
|
|||
|
|
if (v.keyCode === `${name}_withdrawal_fixed_service_amount`) {
|
|||
|
|
this.config.fixedService = v.keyValue // 某个范围内扣除固定的手续费
|
|||
|
|
}
|
|||
|
|
if (v.keyCode === `${name}_withdrawal_fixed_service_percentage`) {
|
|||
|
|
this.config.percentage = v.keyValue // 超出固定范围外扣除固定的百分比手续费
|
|||
|
|
}
|
|||
|
|
if (v.keyCode === `${name}_withdrawal_collection_type`) {
|
|||
|
|
this.config.remarks = v.remarks // 支持的收款类型
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
this.$forceUpdate()
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
computed: {
|
|||
|
|
...mapState(["myAsset"])
|
|||
|
|
},
|
|||
|
|
onNavigationBarButtonTap () {
|
|||
|
|
this.$navigateTo("withdrawalRecord?type=" + this.type)
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
selectImg(type){
|
|||
|
|
// upload.showAvatarModal(this, 500, 500)
|
|||
|
|
uni.chooseImage({
|
|||
|
|
count: 1,
|
|||
|
|
success: (res) => {
|
|||
|
|
let tempFilePath = res.tempFilePaths[0]
|
|||
|
|
upload.getOssSignature(tempFilePath, 13, 1).then(data=>{
|
|||
|
|
upload.uploadImageOss(data).then(list=>{
|
|||
|
|
let successCallBackParamsList = [{
|
|||
|
|
resourceTemporaryUUID: list[0].resourceTemporaryUUID
|
|||
|
|
}]
|
|||
|
|
console.log('list=====', list)
|
|||
|
|
this.voucher = list[0].url
|
|||
|
|
// if (this.applicationType===0){ // 头像
|
|||
|
|
// this.examineAvatar = {
|
|||
|
|
// ossUrl: list[0].url,
|
|||
|
|
// status: 4
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
onSave () {
|
|||
|
|
if (!this.type) return
|
|||
|
|
if (!this.paymentInfo.id) return this.$msg("请选择提现到账信息")
|
|||
|
|
if (!this.money) return this.$msg("请输入提现金额")
|
|||
|
|
if (Number(this.money) > Number(this.balance)) return this.$msg("输入金额已超过可提现余额")
|
|||
|
|
this.loading = true
|
|||
|
|
let params = {
|
|||
|
|
wallet_type: this.type == 7 ? 7 : 6,
|
|||
|
|
type: this.paymentInfo.type,
|
|||
|
|
amount: this.money,
|
|||
|
|
collectionId: this.paymentInfo.id
|
|||
|
|
}
|
|||
|
|
let path = null
|
|||
|
|
if (this.type === 4) {
|
|||
|
|
path = url.deposit.withdrawal
|
|||
|
|
} else {
|
|||
|
|
path = url.withdrawal.apply
|
|||
|
|
params.userType = this.type
|
|||
|
|
}
|
|||
|
|
if (this.type == 3) params.voucher = this.voucher
|
|||
|
|
this.$http("POST", path, params).then(res => {
|
|||
|
|
// this.$msg(res.data)
|
|||
|
|
this.$msg("提现申请已提交")
|
|||
|
|
this.loading = false;
|
|||
|
|
this.$store.dispatch('getMyAsset');
|
|||
|
|
// setTimeout(() => {
|
|||
|
|
this.$navigateTo('withdrawalRecord?type=' + this.type)
|
|||
|
|
// }, 2000)
|
|||
|
|
}).catch(() => {
|
|||
|
|
this.loading = false
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
jumpTo () {
|
|||
|
|
this.$navigateTo("../payment/list?type=3&coupon=true")
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style scoped lang="scss">
|
|||
|
|
@import "@/font.css";
|
|||
|
|
|
|||
|
|
.tabs {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
justify-content: space-between;
|
|||
|
|
padding: 20upx;
|
|||
|
|
|
|||
|
|
view {
|
|||
|
|
flex: 1;
|
|||
|
|
text-align: center;
|
|||
|
|
color: #333;
|
|||
|
|
border-radius: 20upx;
|
|||
|
|
padding: 20upx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.btn {
|
|||
|
|
padding: 40upx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
._input {
|
|||
|
|
padding: 40upx;
|
|||
|
|
display: flex;
|
|||
|
|
align-items: flex-end;
|
|||
|
|
|
|||
|
|
text {
|
|||
|
|
color: #333 !important;
|
|||
|
|
font-size: 28upx;
|
|||
|
|
margin-left: 10upx;
|
|||
|
|
font-weight: 500;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
input {
|
|||
|
|
border-bottom: 2px solid #2963e2;
|
|||
|
|
// border-bottom: 2px solid #333;
|
|||
|
|
padding: 20upx;
|
|||
|
|
flex: 1;
|
|||
|
|
font-family: 'Product-Sans-Bold';
|
|||
|
|
font-weight: 600;
|
|||
|
|
font-size: 56upx;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
input::focus {
|
|||
|
|
border-bottom: 2px solid #2963e2 !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.activeTab {
|
|||
|
|
padding: 20upx;
|
|||
|
|
font-weight: 500;
|
|||
|
|
color: #fff !important;
|
|||
|
|
background: #2963e2;
|
|||
|
|
border-radius: 20upx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.balance-span {
|
|||
|
|
font-family: 'Product-Sans-Bold';
|
|||
|
|
font-weight: 700;
|
|||
|
|
font-size: 70upx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.fuhao {
|
|||
|
|
font-size: 38upx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.title {
|
|||
|
|
font-size: 30upx;
|
|||
|
|
font-weight: 400;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.card {
|
|||
|
|
padding: 40upx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.with {
|
|||
|
|
margin-top: -20px;
|
|||
|
|
background: #fff;
|
|||
|
|
border-top-left-radius: 50upx;
|
|||
|
|
border-top-right-radius: 50upx;
|
|||
|
|
width: 100%;
|
|||
|
|
height: 100%;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.balance {
|
|||
|
|
padding: 15upx 20upx;
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
justify-content: center;
|
|||
|
|
flex-direction: column;
|
|||
|
|
|
|||
|
|
view {
|
|||
|
|
margin: 10upx;
|
|||
|
|
color: #fff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
background: #2963e2;
|
|||
|
|
// border-bottom-left-radius: 20upx;
|
|||
|
|
// border-bottom-right-radius: 20upx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.main {
|
|||
|
|
min-height: 100vh;
|
|||
|
|
padding: 0 20rpx;
|
|||
|
|
|
|||
|
|
.list {
|
|||
|
|
&-item {
|
|||
|
|
padding: 30rpx 0;
|
|||
|
|
border-bottom: 2rpx solid #EEEEEE;
|
|||
|
|
|
|||
|
|
.con {
|
|||
|
|
margin-top: 30rpx;
|
|||
|
|
|
|||
|
|
.input {
|
|||
|
|
// border-bottom: 2px solid #2963e2;
|
|||
|
|
// border-bottom: 2px solid #333;
|
|||
|
|
padding: 0upx 20upx;
|
|||
|
|
flex: 1;
|
|||
|
|
font-family: 'Product-Sans-Bold';
|
|||
|
|
font-weight: 600;
|
|||
|
|
font-size: 56upx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.money {
|
|||
|
|
margin: 30rpx 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tips {
|
|||
|
|
margin-top: 80rpx;
|
|||
|
|
line-height: 50rpx;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|