123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- <template>
- <view class="withdrawal-main">
- <view class="withdrawal-item">
- <label class="withdrawal-label">提现到账</label>
- <view class="withdrawal-item-right" @click="openSheet">
- <view class="withdrawal-text">{{ w_key }}</view>
- <up-icon name="arrow-right"></up-icon>
- </view>
- </view>
- <view v-if="w_key === '支付宝账户'">
- <view class="withdrawal-item">
- <label class="withdrawal-label">支付宝账户名</label>
- </view>
- <view class="price-box">
- <input class="price-input2" placeholder="请输入支付宝账户名" border="none" v-model="priceData.name"
- />
- </view>
- <view class="withdrawal-item">
- <label class="withdrawal-label">支付宝账号</label>
- </view>
- <view class="price-box">
- <input class="price-input2" placeholder="请输入支付宝账号" border="none" v-model="priceData.code"
- />
- </view>
- </view>
- <view class="withdrawal-item">
- <label class="withdrawal-label">提现金额</label>
- </view>
- <view class="price-box">
- <up-icon name="rmb" size="28" color="rgba(0, 0, 0, 1)"></up-icon>
- <input class="price-input" placeholder="请输入提现金额" border="none" v-model="priceData.price" @change="change" />
- </view>
- <view class="withdrawal-item">
- <label class="withdrawal-label">可提现余额 <up-icon name="rmb"></up-icon>{{ maxPrice }}</label>
- <view class="withdrawal-item-right" @click="onMaxChange">
- <view class="withdrawal-text">全部提现</view>
- </view>
- </view>
- <view style="margin-top: 45px;">
- <up-button type="primary" text="确定提现" @click="onSubmit"></up-button>
- </view>
- <up-action-sheet :show="show" @close="close" @select="select" :actions="actions">
- </up-action-sheet>
- </view>
- </template>
- <script setup>
- import { ref } from 'vue';
- import { getVolunteerAccountInfo,getAccountInfo,submitAmountApply} from "@/api/mine";
- import {
- onShow,
- } from "@dcloudio/uni-app";
- const actions = [
- {
- name: '支付宝账户',
- }
- ]
- const userType = uni.getStorageSync('userType') //读取本地存储
- const w_key = ref('支付宝账户');
- const show = ref(false);
- const maxPrice = ref(0);
- const priceData = ref({
- // price: '0.01',
- // name: '搁置',
- // code: '18696601943'
- price: '',
- name: '',
- code: ''
- })
- const change = (e) => {
- console.log('change', e);
- const regex = /^\d*\.?\d*$/;
- if (!regex.test(e.detail.value)) {
- priceData.value.price = priceData.value.price.replace(/[^\d.]/g, '');
- }
- };
- const openSheet = (index) => {
- show.value = true;
- }
- const close = () => {
- show.value = false;
- }
- const select = (row) => {
- w_key.value = row.name
- console.log('select', index);
- }
- const errors = (e) => {
- uni.showToast({
- title: e,
- icon: 'none',
- })
- }
- const handleCheck = ()=> {
- const is =priceData.value.price && priceData.value.price>0&&priceData.value.name && priceData.value.code;
- if(is){
- return true
- }
- !priceData.value.price && errors('请输入提现金额');
- priceData.value.price<=0 && errors('请输入正确的金额');
- !priceData.value.name&& errors('请输入账户名');
- !priceData.value.code&& errors('请输入账号');
- return false
- }
- const onSubmit = () => {
- console.log("TCL: priceData", priceData.value)
- // init();
-
- const type = handleCheck();
-
- type && submitAmountApply({
- takeAmount:priceData.value.price,
- alipayName:priceData.value.name,
- alipayAccountNo:priceData.value.code,
- payType:'2'
- }).then(res => {
- if(res.code === 200){
- uni.showToast({
- title: '提交成功',
- icon: 'success'
- })
- setTimeout(() => {
- uni.redirectTo({ url: `/pages_mine/pages/wallet/index` });
- }, 800)
- }
- })
- }
- const onMaxChange = () => {
- priceData.value.price = maxPrice.value;
- }
- const init = async() => {
- try {
- uni.showLoading({
- title: '数据加载中...'
- });
-
- if(userType === 2){
- const res = await getVolunteerAccountInfo();
- maxPrice.value = res.data.balance;
- }
- if(userType === 1){
- const res = await getAccountInfo();
- maxPrice.value = res.data.balance;
- }
- } catch (error) {
- console.log('error', error);
- uni.showToast({
- title: error.msg,
- icon: 'error',
- });
- } finally {
- uni.hideLoading();
- }
- }
- onShow(()=>{
- init();
- })
- </script>
- <style lang="scss" scoped>
- .withdrawal-main {
- position: fixed;
- top: 0px;
- left: 0px;
- right: 0px;
- bottom: 0px;
- background-color: #fff;
- padding: 0 12px;
- .withdrawal-item {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 12px 0;
- .withdrawal-label {
- font-size: 14px;
- font-weight: 500;
- line-height: 20.27px;
- color: rgba(153, 153, 153, 1);
- display: flex;
- align-items: center;
- }
- .withdrawal-item-right {
- display: flex;
- align-items: center;
- .withdrawal-text {
- font-size: 16px;
- font-weight: 700;
- line-height: 23.17px;
- color: rgba(0, 0, 0, 1);
- margin-right: 6px;
- }
- }
- }
- .price-box {
- display: flex;
- .price-input {
- flex: 1;
- height: 58px;
- padding: 0 12px;
- font-size: 28px;
- }
- .price-input2 {
- flex: 1;
- height: 38px;
- padding: 0 12px;
- font-size: 16px;
- }
- }
- }
- </style>
|