修改问题

This commit is contained in:
duan 2025-02-25 15:10:11 +08:00
parent 0c5e5798ea
commit a56aabb05a
14 changed files with 271 additions and 150 deletions

View File

@ -2,7 +2,7 @@
"version" : "1.0",
"configurations" : [
{
"playground" : "custom",
"playground" : "standard",
"type" : "uni-app:app-android"
},
{

View File

@ -35,7 +35,8 @@ export const queryUserMoneyDetails = (data) => {
*/
export const updateUser = (data) => {
return http.request({
url: '/user/updateUser',
url: '/user/bindAlipay',
method: 'POST',
params: data
})
}

View File

@ -157,9 +157,12 @@
</view>
<up-icon name="close" :size="16" color="#333" bold @click="popupClose('pay')"></up-icon>
</view>
<view class="u-m-t-30">
<text class=" color-999 u-font-24">{{paytips}} </text>
</view>
<view class="u-m-t-30">
<text class=" color-999 u-font-24">{{paytips}} </text>
</view>
<view class="u-m-t-30">
<text class=" color-999 u-font-24">抽奖机会仅当日可用次日作废 </text>
</view>
<view class="colo-333 pay-list font-bold u-font-28 u-m-t-20">
<view class="pay-list-item" v-if="info&&info.price" @click="payBtnClick('money','all')">
<image class="hot" src="@/static/images/hot.png" mode=""></image>

View File

@ -18,7 +18,7 @@
<swiper :autoplay="true" :vertical="true" :interval="4000" :circular="true" :indicator-dots="false"
class="swiperstyle">
<swiper-item v-for="(item, index) in datas.noticeList" :key="index">
<view style="height: 80rpx;line-height: 80rpx;">{{ item.title }}</view>
<view style="height: 80rpx;line-height: 80rpx;font-size: 14px;">{{ item.title }}</view>
</swiper-item>
</swiper>
</view>
@ -297,12 +297,12 @@
<style lang="scss" scoped>
.indexStyle {
height: 555rpx;
height: 350rpx;
position: relative;
>image {
width: 100%;
height: 555rpx;
height: 100%;
position: absolute;
}
@ -334,11 +334,11 @@
.gongao {
position: absolute;
bottom: 75rpx;
bottom: 85rpx;
left: 70rpx;
border-radius: 21rpx 21rpx 21rpx 21rpx;
border-radius: 12rpx 12rpx 12rpx 12rpx;
width: 611rpx;
height: 78rpx;
height: 60rpx;
background-color: rgba(255, 255, 255, .65);
display: flex;
align-items: center;
@ -348,10 +348,10 @@
.gongaoicon {
color: #ffffff;
width: 98rpx;
height: 50rpx;
line-height: 50rpx;
height: 40rpx;
line-height: 40rpx;
text-align: center;
font-size: 25rpx;
font-size: 20rpx;
background-image: url('../../static/index/gonggaobg.png');
background-size: 98rpx 50rpx;
}

View File

@ -79,18 +79,22 @@
}
if (datas.tabIndex == 1) {
if (datas.page == 1) {
datas.list = []
datas.list = res.records;
} else {
if (res.records.length) {
datas.list.push(...datas.list, res.records)
let arr = datas.list.concat(res.records)
datas.list = arr
}
}
} else {
if (datas.page == 1) {
datas.list = []
datas.list = res.list;
} else {
if (res.records.length) {
datas.list.push(...datas.list, res.list)
let arr = datas.list.concat(res.records)
datas.list = arr
}
}
// datas.total = res.page.totalCount;

View File

@ -24,7 +24,8 @@
<view class="t-r-title t-flex-row">活动规则</view>
<view class="t-rule">
<text>1.抽奖细则每日前{{ freeNumDay }}次付款均可获得抽奖机会</text>
<text>2.奖励说明红包奖励将自动发放到红包余额已绑定银行卡账号将会自动发起提现其余奖品则需联系客服领取</text>
<text>2.抽奖机会仅当日可用次日作废</text>
<text>3.奖励说明红包奖励将自动发放到红包余额已绑定银行卡账号将会自动发起提现其余奖品则需联系客服领取</text>
</view>
</view>
</view>

View File

@ -72,8 +72,8 @@
<view class="card-wrap">
<view class="menu-list">
<view class="item" @click="toTask">
<image class="icon" src="/static/me/menu_icon1.png" mode="aspectFit"></image>
<view class="name">任务中心</view>
<image class="icon" src="/static/me/Frame.png" mode="aspectFit"></image>
<view class="name">邀请好友</view>
</view>
<view class="item" @click="linkTo('/pages/me/setting')">
<image class="icon" src="/static/me/menu_icon2.png" mode="aspectFit"></image>
@ -164,9 +164,7 @@ async function selectUserMoneyAjax() {
//
function toTask() {
uni.switchTab({
url: '/pages/task/index'
});
linkTo('/pages/share/index');
}
onPullDownRefresh(async () => {

View File

@ -52,11 +52,42 @@
})
} else {
data.logining = true
// this.$u.post('app/user/updateUser?zhiFuBao=' + zhiFuBao + '&certName=' + zhiFuBaoName + '&certNum=' + certNum).then(
// res => {
// console.log(res);
// if (res.code === 0) {
// uni.setStorageSync('zhiFuBao', zhiFuBao)
// uni.setStorageSync('zhiFuBaoName', zhiFuBaoName)
// uni.setStorageSync('certNum', certNum)
// uni.showToast({
// title: '',
// icon: 'none',
// complete() {
// setTimeout(function () {
// uni.navigateBack();
// }, 1000)
// }
// })
// } else {
// uni.showToast({
// title: res.msg || '',
// icon: 'none'
// })
// }
// });
let res = await updateUser({
zhiFuBao: data.zhiFuBao,
certName: data.zhiFuBaoName,
})
if( res) {
if(res) {
data.logining = false
let userInfo = uni.getStorageSync('userInfo')
userInfo.zhiFuBao = data.zhiFuBao

View File

@ -1,17 +1,14 @@
<template>
<view class="container">
<up-navbar title="申请提现"
:autoBack="true"
bgColor="rgb(255, 117, 129)"
leftIconColor="#FFF"
:titleStyle ="{color:'#FFF'}" >
<template #right>
<view class="u-p-r-30 u-flex u-col-center" style="color: #fff;">
<text class="rule-btn" @click="showRule">规则</text>
</view>
</template>
<up-navbar title="申请提现" :autoBack="true" bgColor="rgb(255, 117, 129)" leftIconColor="#FFF"
:titleStyle="{color:'#FFF'}">
<template #right>
<view class="u-p-r-30 u-flex u-col-center" style="color: #fff;">
<text class="rule-btn" @click="showRule">规则</text>
</view>
</template>
</up-navbar>
<view class="content">
<view class="title">可提现总额</view>
<view class="mayMoney">¥ {{ data.mayMoney }}</view>
@ -22,17 +19,20 @@
<view class="input" style="">
<view style="display: flex;align-items: center;">
<view style="font-size: 40upx;color: #333333;">¥</view>
<input type="digit" v-model="data.money" placeholder="请输入金额" @input="moneyInput" style="font-size: 32rpx;color: #333333;text-align: left;margin-left: 10rpx;width: 80%;" />
<input type="digit" v-model="data.money" placeholder="请输入金额" @input="moneyInput"
style="font-size: 32rpx;color: #333333;text-align: left;margin-left: 10rpx;width: 80%;" />
</view>
<view class="allbtn" @click="setAllMoney">
全部
</view>
</view>
</view>
<view class="witBtn" @click="goWithdraw"> {{data.isWithdraw?'立即提现':'观看广告提现'}} </view>
<view style="color: #666;" @click="WithdrawalAlipay">
提现到支付宝
</view>
<view class="tab" style="">
<view @click="linkTo('/pages/me/withdraw/realName')">实名认证</view>
<!-- <view @click="linkTo('/pages/me/withdraw/alipay')">提现账号</view> -->
@ -72,34 +72,61 @@
</view>
<up-modal :show="data.ruleShow" confirm-text="知道了" title="规则说明" :title="data.rule_title" :title-style="{fontWeight:'700'}" @confirm="ruleConfirm" confirm-color="rgb(255, 117, 129)">
<up-modal :show="data.ruleShow" confirm-text="知道了" title="规则说明" :title="data.rule_title"
:title-style="{fontWeight:'700'}" @confirm="ruleConfirm" confirm-color="rgb(255, 117, 129)">
<view class="u-p-30 u-text-left">
<scroll-view scroll-y="true" style="max-height: 50vh;" >
<rich-text style="text-align: justify;font-size: 18px;color: #666;" :nodes="data.rule_content"></rich-text>
<scroll-view scroll-y="true" style="max-height: 50vh;">
<rich-text style="text-align: justify;font-size: 18px;color: #666;"
:nodes="data.rule_content"></rich-text>
</scroll-view>
</view>
</up-modal>
<view style="width: 0;height: 0;overflow: hidden;">
<!-- 激励视频广告 -->
<ad-rewarded-video ref="adRewardedw" :adpid="data.adpid" :loadnext="true"
:url-callback="data.urlCallback" @load="onadload" @close="onadclose" @error="onaderror">
<ad-rewarded-video ref="adRewardedw" :adpid="data.adpid" :loadnext="true" :url-callback="data.urlCallback"
@load="onadload" @close="onadclose" @error="onaderror">
</ad-rewarded-video>
</view>
</view>
</template>
<script setup>
import { reactive, nextTick, ref } from 'vue';
import { onReady,onLoad,onShow,onLaunch,onPullDownRefresh, onReachBottom } from '@dcloudio/uni-app'
import { selectUserMoney, selectPayDetails, canCash, state, withdraw } from '@/api/me/withdraw.js';
import { selectUserById } from '@/api/user/user.js';
import { announcement } from '@/api/index/index.js';
import { commonType } from '@/api/init.js';
import { linkTo } from '@/utils/app.js';
import {
reactive,
nextTick,
ref
} from 'vue';
import {
onReady,
onLoad,
onShow,
onLaunch,
onPullDownRefresh,
onReachBottom
} from '@dcloudio/uni-app'
import {
selectUserMoney,
selectPayDetails,
canCash,
state,
withdraw
} from '@/api/me/withdraw.js';
import {
selectUserById
} from '@/api/user/user.js';
import {
announcement
} from '@/api/index/index.js';
import {
commonType
} from '@/api/init.js';
import {
linkTo
} from '@/utils/app.js';
let data = reactive({
ruleShow: false,
rule_title: "",
@ -121,22 +148,24 @@
ruleIndex: 0,
ruleList: []
})
const adRewardedw = ref(null);
onLoad(() => {
// if ( uni.getSystemInfoSync().platform == 'android' ) {
// data.adpid = 1531580352
// data.adpid = 1531580352
// }
// if ( uni.getSystemInfoSync().platform == 'ios' ) {
data.adpid = 1373604770
data.adpid = 1373604770
// }
getExtractFei();
getMoneyDetail();
getCanCash()
announcement({type: 1}).then(res=>{
announcement({
type: 1
}).then(res => {
data.ruleList = res
ruleInit()
})
})
onShow(() => {
@ -144,13 +173,13 @@
getUserInfo();
})
onReady(() => {
nextTick(()=>{
nextTick(() => {
data.adRewardedVideoloadNum = 0
adRewardedw.value.load();
data.ruleShow = true
})
})
onReachBottom(() => {
if (data.page * data.limit < data.totalCount) {
data.page = data.page + 1;
@ -162,7 +191,8 @@
data.list = []
getMoneyDetail();
})
function ruleInit(){
function ruleInit() {
data.rule_title = data.ruleList[data.ruleIndex].title
data.rule_content = data.ruleList[data.ruleIndex].content
}
@ -170,7 +200,7 @@
* 规则弹窗打开
*/
function showRule() {
if( data.ruleList.length <= 0) {
if (data.ruleList.length <= 0) {
uni.showToast({
title: "暂未配置规则",
icon: 'none'
@ -186,21 +216,57 @@
function ruleConfirm() {
data.ruleShow = false
data.ruleIndex++
if( data.ruleIndex >= data.ruleList.length) {
if (data.ruleIndex >= data.ruleList.length) {
data.ruleIndex = 0
return
}
setTimeout(res=>{
setTimeout(res => {
ruleInit()
data.ruleShow = true
},300)
}, 300)
}
function getUserInfo() {
selectUserById().then(res=>{
selectUserById().then(res => {
data.userInfo = res;
})
}
function WithdrawalAlipay() {
if (data.userInfo.zhiFuBao) {
if (data.money) {
withdraw({
amount: data.money,
isAlipay: 0
}).then(res => {
data.money = ''
uni.setStorageSync('adRewardedNum', 0)
setTimeout(function() {
getcashMoney()
}, 1500)
uni.showToast({
title: res.msg,
icon: 'none'
})
})
}else{
uni.showToast({
title: "请输入金额",
icon: 'none',
})
}
} else {
uni.showToast({
title: "请绑定支付宝",
icon: 'none',
})
setTimeout(() => {
//
linkTo('/pages/me/withdraw/alipay')
}, 1500)
}
}
function back() {
uni.navigateBack()
}
@ -211,14 +277,14 @@
canCash().then(res => {
data.isWithdraw = res;
console.log(res)
if( uni.getStorageSync('adRewardedNum') >= 3 ){
if (uni.getStorageSync('adRewardedNum') >= 3) {
data.isWithdraw = true;
// uni.setStorageSync('adRewardedNum',0)
} else {
uni.setStorageSync('adRewardedNum',((uni.getStorageSync('adRewardedNum')||0)+1))
uni.setStorageSync('adRewardedNum', ((uni.getStorageSync('adRewardedNum') || 0) + 1))
}
})
}
/**
* 广告数据加载成功回调
@ -226,25 +292,25 @@
*/
function onadload(e) {
data.adRewardedShow = true;
uni.setStorageSync('adRewardedNum',0)
uni.setStorageSync('adRewardedNum', 0)
console.log('广告数据加载成功');
}
/**
* 广告加载失败回调
* @param {Object} e
*/
function onaderror(e) {
if ( data.adRewardedVideoloadNum >=3 ) {
if (data.adRewardedVideoloadNum >= 3) {
return
}
}
data.adRewardedVideoloadNum++
setTimeout(() => {
adRewardedw.value.load();
}, 1000); // 10
console.log("广告加载失败",e)
console.log("广告加载失败", e)
}
/**
* 广告播放成功回调
* @param {Object} e
@ -258,24 +324,24 @@
extraKey: data.urlCallback.extra
})
console.log(res)
uni.setStorageSync('adRewardedNum',0)
uni.setStorageSync('adRewardedNum', 0)
getCanCash()
} else {
// 退
}
}
function onNavigationBarButtonTap() {
console.log(1)
data.ruleShow = true
data.ruleShow = true
}
/**
* 提现触发
*/
function goWithdraw() {
if ( !data.isWithdraw ) {
if(!data.adRewardedShow){
if (!data.isWithdraw) {
if (!data.adRewardedShow) {
uni.showToast({
icon: 'none',
title: '广告加载失败,请稍后重试'
@ -284,54 +350,54 @@
}
data.urlCallback = {
userId: uni.getStorageSync('userInfo').userId,
extra: 'cash:'+uni.getStorageSync('userInfo').userId + "" + new Date().getTime(),
extra: 'cash:' + uni.getStorageSync('userInfo').userId + "" + new Date().getTime(),
}
adRewardedw.value.show();
} else {
getOut()
}
}
function moneyInput(e) {
data.money = e.detail.value.match(/^\d*(\.?\d{0,2})/g)[0] || null;
}
/**
* 全部提现赋值
*/
function setAllMoney() {
data.money = getMoneys(data.mayMoney)
}
/**
*
* 金额格式化
* money:金额
* 保留两位小数&不四舍五入
*/
function getMoneys (money) {
if (!money || isNaN(money)) return "0.00";
let num = parseFloat(money + '') + '';
num = parseInt(money * 100 + '') / 100 + ''
let reg = /(-?\d+)(\d{4})/;
while (reg.test(num)) {
num = num.replace(reg, "$1,$2");
}
let idx = num.indexOf('.')
if (idx === -1) {
num = num + '.00'
}
if (idx > 0) {
let num_per = num.substring(0, idx) + '.'
let num_next = num.substring(idx + 1).padEnd(2, '0')
num = num_per + num_next
}
return num;
function getMoneys(money) {
if (!money || isNaN(money)) return "0.00";
let num = parseFloat(money + '') + '';
num = parseInt(money * 100 + '') / 100 + ''
let reg = /(-?\d+)(\d{4})/;
while (reg.test(num)) {
num = num.replace(reg, "$1,$2");
}
let idx = num.indexOf('.')
if (idx === -1) {
num = num + '.00'
}
if (idx > 0) {
let num_per = num.substring(0, idx) + '.'
let num_next = num.substring(idx + 1).padEnd(2, '0')
num = num_per + num_next
}
return num;
}
/**
@ -351,7 +417,7 @@
}, 500);
})
}
/**
* 获取最低提现金额
*/
@ -362,7 +428,7 @@
}
});
}
/**
* 可提现金额
*/
@ -371,7 +437,7 @@
data.mayMoney = getMoneys(res.amount) || 0
})
}
/**
* 跳转
* @param {Object} url
@ -381,7 +447,7 @@
url: url
});
}
function getMoney() {
uni.showLoading({
title: '提现中'
@ -391,7 +457,7 @@
}).then(res => {
console.log(res)
data.money = ''
uni.setStorageSync('adRewardedNum',0)
uni.setStorageSync('adRewardedNum', 0)
setTimeout(function() {
getcashMoney()
}, 1500)
@ -399,7 +465,7 @@
title: res.msg,
icon: 'none'
})
}).catch(res =>{
}).catch(res => {
if (res.code == 9991) {
uni.showToast({
title: res.msg,
@ -408,14 +474,14 @@
setTimeout(function() {
linkTo('/pages/me/withdraw/alipay')
}, 1500)
}else{
} else {
}
})
}
function getOut() {
if (!/^\d+(\.\d{1,2})?$/.test(data.money)) {
uni.showToast({
icon: 'none',
@ -424,13 +490,16 @@
return;
}
if (!data.userInfo.accountNo) {
uni.showToast({ icon: 'none', title: "请先实名认证" });
setTimeout(()=>{
uni.showToast({
icon: 'none',
title: "请先实名认证"
});
setTimeout(() => {
linkTo('/pages/me/withdraw/realName')
},1500)
}, 1500)
return;
}
if (parseFloat(data.mayMoney).toFixed(2) >= parseFloat(data.money)) {
if (parseFloat(data.money).toFixed(2) >= parseFloat(data.cashMoney)) {
uni.showModal({
@ -438,12 +507,13 @@
content: '每日只可提现一次',
success: (e) => {
if (e.confirm) {
setTimeout(()=>{
setTimeout(() => {
uni.showModal({
title: "提现申请提示",
content: '请仔细确认收款人信息\n\n收款人姓名:' + data.userInfo.certName + '\n\n提现金额:' + data
content: '请仔细确认收款人信息\n\n收款人姓名:' + data.userInfo.certName +
'\n\n提现金额:' + data
.money + '元\n\n收款人账号' + data.userInfo.accountNo + '',
success: (e) => {
if (e.confirm) {
console.log(data.money)
@ -452,12 +522,12 @@
}
}
});
},200)
}, 200)
}
}
});
} else {
uni.showToast({
icon: 'none',
@ -471,7 +541,6 @@
});
}
}
</script>
<style lang="scss" scoped>
@ -480,9 +549,10 @@
background: white;
position: absolute;
width: 100%;
.nav{
.nav {
width: 100%;
position: fixed;
background-color: #ff7581;
left: 0;
@ -491,46 +561,54 @@
align-items: center;
justify-content: space-between;
padding: 100rpx 30rpx 15rpx 30rpx;
.navTitle{
.navTitle {
color: #fff;
font-size: 32rpx;
font-weight: bold;
}
.ruleBtn{
.ruleBtn {
font-size: 30rpx;
color: #fff;
}
}
.content{
.content {
background-color: #ff7581;
height: 500rpx;
border-bottom-right-radius: 40rpx;
border-bottom-left-radius: 40rpx;
.title{
.title {
font-size: 32rpx;
color: #FFFFFF;
padding-top: 230rpx;
}
.mayMoney{
.mayMoney {
font-size: 40rpx;
color: #FFFFFF;
padding-top: 20rpx;
}
.val{
.val {
width: 90%;
height: max-content
;margin-left: 40rpx;
height: max-content;
margin-left: 40rpx;
background-color: #FFFFFF;
box-shadow: rgba(183, 183, 183, 0.3) 0px 1px 10px;
margin-top: 50rpx;
border-radius: 20rpx;
.input{
.input {
display: flex;
padding: 20rpx;
justify-content: space-between;
align-items: center;
}
.allbtn{
.allbtn {
font-size: 28rpx;
color: #333333;
background: #ff7581;
@ -540,7 +618,8 @@
flex-shrink: 0;
}
}
.witBtn{
.witBtn {
margin: 32rpx;
font-size: 36rpx;
background: #ff7581;
@ -549,36 +628,39 @@
height: 80rpx;
line-height: 80rpx;
}
.tab{
.tab {
width: 100%;
display: flex;
width: 100%;
justify-content: space-around;
>view{
>view {
font-size: 28rpx;
color: #666;
padding-bottom: 60rpx;
padding-top: 20rpx;
}
}
.moneyList{
.moneyList {
text-align: left
}
}
.cash-top {
padding: 32upx 32upx 50upx 32upx;
/* border-bottom: 1px solid gainsboro; */
background: #5074FF;
}
.leiji {
font-size: 14px;
color: #ffffff;
margin-bottom: 10px;
}
}
.rule-btn {
font-size: 16px;
// padding: 2rpx 10rpx;

View File

@ -55,7 +55,7 @@
moneyType : data.moneyType,
viewType: data.viewType,
}).then(res => {
data.totalCount = res.total;
data.totalCount = res.totalCount;
if ( res.records.length > 0) {
data.list = [...data.list,...res.records];
}
@ -65,6 +65,7 @@
})
}
onReachBottom(() => {
console.log(1)
if (data.page*data.limit < data.totalCount) {
data.page = data.page + 1;
getMoney();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
static/me/Frame.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 29 KiB