2025.02.21 工作代码

This commit is contained in:
sx 2025-02-21 17:56:36 +08:00
parent c4a23be60c
commit 69babb6f3e
9 changed files with 615 additions and 253 deletions

View File

@ -297,6 +297,61 @@ const mine = {
method: 'POST', method: 'POST',
}) })
}, },
/**
* 账号解冻
* @param {Object} param
*/
getWalletBillList(param) {
return util.request({
url: '/user/walletTransaction/list',
data: param.data,
query: param.query,
method: 'GET',
load: true,
})
},
/**
* 支付宝提现
* @param {Object} param
*/
getToAlipay(param) {
return util.request({
url: '/user/alipay/withdraw',
data: param.data,
query: param.query,
method: 'POST',
load: true,
})
},
/**
* 银行卡提现
* @param {Object} param
*/
getToBank(param) {
return util.request({
url: '/user/alipay/withdrawToBankCard',
data: param.data,
query: param.query,
method: 'POST',
load: true,
})
},
/**
* 获取提现配置
* @param {Object} param
*/
getPayConfig(param) {
return util.request({
url: '/user/alipay/getPayConfig',
data: param.data,
query: param.query,
method: 'GET',
})
},
} }
export default mine export default mine

View File

@ -18,17 +18,18 @@
import util from '@/common/js/util'; import util from '@/common/js/util';
// api // api
import api from '@/api/index.js' import api from '@/api/index.js'
import videoApi from '@/api/video.js'
import { import {
onLoad, onLoad,
onReady, onReady,
onHide, onHide,
onUnload, onUnload,
} from '@dcloudio/uni-app' } from '@dcloudio/uni-app'
// //
import apex from '@/components/header/apex.vue'; import apex from '@/components/header/apex.vue';
// //
import videoMenu from '@/components/index/videoMenu.vue'; import videoMenu from '@/components/index/videoMenu.vue';
const { const {
proxy proxy
} = getCurrentInstance() } = getCurrentInstance()
@ -37,7 +38,6 @@
const userinfo = computed(() => store.state.userinfo) const userinfo = computed(() => store.state.userinfo)
// //
const durainView = ref(0) const durainView = ref(0)
// //
const list = reactive({ const list = reactive({
data: [], data: [],
@ -182,7 +182,7 @@
return return
} }
videoApi.pushVideo({ api.video.pushVideo({
query: { query: {
ids: videoIds.value.join(','), ids: videoIds.value.join(','),
} }
@ -219,7 +219,7 @@
return return
} }
videoApi.applyVideo({ api.video.applyVideo({
data: { data: {
videoIds: videoIds.value.join(","), videoIds: videoIds.value.join(","),
author: apply.author, author: apply.author,
@ -256,17 +256,15 @@
}) })
} }
// //
function pushCollect() { function pushCollect() {
uni.navigateTo({ link(util.setUrl('/pages/index/dataCenter/pushVideoCollects', {
url: util.setUrl('/pages/index/dataCenter/pushVideoCollects', {
ids: collectVideoIds.value.join(','), ids: collectVideoIds.value.join(','),
}) }))
})
} }
// //
function navigateToPage(path) { function link(path) {
uni.navigateTo({ uni.navigateTo({
url: path url: path
}); });
@ -277,7 +275,7 @@
<view class="app"> <view class="app">
<apex title="投流推广"> <apex title="投流推广">
<template #right> <template #right>
<view class="c333 f28" @click="navigateToPage('/pages/index/dataCenter/pushHistory')">历史推流</view> <view class="c333 f28" @click="link('/pages/index/dataCenter/pushHistory')">历史推流</view>
</template> </template>
</apex> </apex>
@ -432,7 +430,6 @@
</scroll-view> </scroll-view>
</view> </view>
</uni-popup> </uni-popup>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -13,27 +13,148 @@
onReachBottom, onReachBottom,
onPullDownRefresh onPullDownRefresh
} from '@dcloudio/uni-app' } from '@dcloudio/uni-app'
//
import api from '@/api/index.js'
//
import util from '@/common/js/util.js'
//
const list = reactive({
pageSize: 10,
pageNum: 1,
data: [],
total: 0,
})
//
const typeList = reactive([{
name: '全部',
id: '',
},
{
name: '余额',
id: 'balance',
},
{
name: '积分',
id: 'score',
},
{
name: '种子',
id: 'seed',
},
{
name: '榴莲果',
id: 'fruit',
}
])
//
const typeIndex = ref(0)
onLoad(() => { onLoad(() => {
// //
getList()
}) })
onReachBottom(() => {
//
getMoreList()
})
onPullDownRefresh(() => {
//
refreshList()
})
//
function refreshList() {
list.pageNum = 1
getList()
}
//
function getMoreList() {
if (list.data.length >= list.total) return
list.pageNum++
getList()
}
//
function getList() {
api.mine.getWalletBillList({
query: {
pageSize: list.pageSize,
pageNum: list.pageNum,
type: typeList[typeIndex.value].id,
}
}).then(rs => {
if (rs.code == 200) {
if (list.pageNum == 1) list.data.length = 0
list.data.push(...rs.rows.map(item => {
//
item.typeName = typeList.find(type => type.id == item.type).name
return item
}))
list.total = rs.total
return
}
util.alert({
content: rs.msg,
showCancel: false,
})
})
}
/**
* 账单
* @param {Object} index
*/
function handleTypeIndex(index) {
if (typeIndex.value === index) return
typeIndex.value = index
//
refreshList()
}
</script> </script>
<template> <template>
<view class="app"> <view class="app">
<view class="typeList df bfff shadow">
<view class="item f1 fmid fdc" v-for="(item,index) in typeList" :class="{active: index == typeIndex}"
@click="handleTypeIndex(index)">
<view class="txt">{{item.name}}</view>
<view class="line"></view>
</view>
</view>
<view class="ghost"></view>
<view class="listBox mtb30 mlr30"> <view class="listBox mtb30 mlr30">
<view class="list oh mtb30 plr30 bfff br20" v-for="(item,index) in list.data" :key="item.id">
<view class="list oh mtb30 plr30 bfff br20" v-for="(item,index) in 3" :key="index"> <view class="line ptb20 tac">
<view class="line tac"> <view class="title mtb30">{{item.reason}}</view>
<view class="title mtb30">使用积分支付</view>
<view class="price mtb30 c111"> <view class="price mtb30 c111">
<text class="unit"></text> <text class="numer b">{{item.amount}}</text>
<text class="numer b">1000</text>
</view> </view>
<view class="time mtb30 c999 f28">2024.12.07 17:00</view>
</view> </view>
<view class="line rows"> <view class="line f28">
<view class="df aic mtb20">
<view class="key w150">明细类型</view>
<view class="value f1 c999">{{item.typeName}}</view>
</view>
<view class="df aic mtb20">
<view class="key w150">交易时间</view>
<view class="value f1 c999">{{item.createTime}}</view>
</view>
<view class="df aic mtb20" @click.stop="util.copyText(item.transactionId)">
<view class="key w150">订单流水</view>
<view class="value f1 thd c999">{{item.transactionId}}</view>
<image class="copy wh24" src="/static/copy.png" mode="aspectFit" />
</view>
</view>
<view class="line ptb20 rows" v-if="0">
<view class="key">查看详情</view> <view class="key">查看详情</view>
<uni-icons type="right" /> <uni-icons type="right" />
</view> </view>
@ -45,14 +166,49 @@
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
//
.ghost,
.typeList {
height: 100rpx;
}
//
.typeList {
position: fixed;
top: clac(-window-top + 0);
left: 0;
right: 0;
z-index: 10;
.item {
color: #999;
transition: .3s;
.line {
width: 80rpx;
height: 6rpx;
margin-top: 5rpx;
background-color: #333;
border-radius: 20rpx;
opacity: 0;
transition: .3s;
}
&.active {
color: #333;
.line {
opacity: 1;
}
}
}
}
// //
.listBox { .listBox {
// //
.list { .list {
.line {
padding: 20rpx 0;
}
.line+.line { .line+.line {
border-top: 2rpx solid #ddd; border-top: 2rpx solid #ddd;
@ -61,7 +217,7 @@
// //
.price { .price {
.unit { .unit {
font-size: 40rpx; // font-size: 40rpx;
} }
.numer { .numer {

View File

@ -5,30 +5,97 @@
reactive, reactive,
ref ref
} from 'vue'; } from 'vue';
import {
onLoad,
onReady,
onUnload,
} from '@dcloudio/uni-app'
//
import util from '@/common/js/util'; import util from '@/common/js/util';
//
import api from '@/api/index.js'; import api from '@/api/index.js';
// //
const form = reactive({ const form = reactive({
amount: '', withdrawAmount: '',
}) })
// //
const typeList = reactive([{ const typeList = reactive([{
key: 'bank',
name: '银行卡',
},
{
key: 'wechat',
name: '微信',
},
{
key: 'alipay', key: 'alipay',
name: '支付宝', name: '支付宝',
} confirm: (event) => getToAlipay(event)
]) }, {
key: 'wechat',
name: '微信',
confirm: (event) => getToWechat(event)
}, {
key: 'bank',
name: '银行卡',
confirm: (event) => getToBank(event)
}, ])
// //
const typeIndex = ref(0) const typeIndex = ref(0)
//
const alipayAccount = ref('未绑定')
//
const wechatAccount = ref('未绑定')
//
const config = reactive({})
onLoad(() => {
//
getBindAccount()
//
getPayConfig()
})
onUnload(() => {
//
removeListener()
})
//
function addListener() {
uni.$on('updateBindingAccount', () => {
//
getBindAccount()
})
}
//
function removeListener() {
uni.$off('updateBindingAccount')
}
//
function getPayConfig() {
api.mine.getPayConfig({}).then(rs => {
if (rs.code == 200) {
Object.assign(config, {}, rs.data)
return
}
util.alert({
content: rs.msg,
showCancel: false,
})
})
}
//
function getBindAccount() {
api.mine.getBindAccount().then(rs => {
if (rs.code == 200) {
const result = rs.data
if (result.alipayId) alipayAccount.value = result.alipayId
if (result.wechatId) wechatAccount.value = result.wechatId
return
}
util.alert({
content: rs.msg,
showCancel: false,
})
})
}
/** /**
* 切换下标 * 切换下标
@ -44,6 +111,81 @@
function handleFast() { function handleFast() {
// //
} }
/**
* 跳转
* @param {Object} url 跳转
*/
function link(url) {
uni.navigateTo({
url,
})
}
//
function handleSubmit() {
if (!form.withdrawAmount) {
util.alert('提现金额不能为空')
return
}
if (form.withdrawAmount < config.minWithdrawalAmount) {
util.alert(`提现金额不能小于${config.minWithdrawalAmount}`)
return
}
//
typeList[typeIndex.value].confirm()
}
//
function getToAlipay() {
api.mine.getToAlipay({
query: {
account: alipayAccount.value,
withdrawAmount: form.withdrawAmount,
}
}).then(rs => {
if (rs.code == 200) {
//
getToWalletCallback()
return
}
util.alert({
content: rs.msg,
showCancel: false,
})
})
}
//
function getToWechat() {
util.alert('微信暂未开通,请联系管理员')
}
//
function getToBank() {
api.mine.getToBank({}).then(rs => {
if (rs.code == 200) {
//
getToWalletCallback()
util.alert({
content: '已发起提现申请,请等待后台审核',
showCancel: false,
})
return
}
util.alert({
content: rs.msg,
showCancel: false,
})
})
}
//
function getToWalletCallback() {
//
util.getPurse()
}
</script> </script>
<template> <template>
@ -54,14 +196,14 @@
<view class="key">提现金额</view> <view class="key">提现金额</view>
<view class="value inputBox df aic"> <view class="value inputBox df aic">
<view class="c333 f40 b"></view> <view class="c333 f40 b"></view>
<input type="text" v-model="form.amount" placeholder="输入金额" /> <input type="text" v-model="form.withdrawAmount" placeholder="输入金额" />
</view> </view>
</view> </view>
<view class="line"> <view class="line">
<view class="key rows"> <view class="key rows">
<view>选择提现方式</view> <view>选择提现方式</view>
<view class="c999 f26" @click="handleFast">快速选择</view> <view class="c999 f26" @click="handleFast" v-if="typeList[typeIndex].key === 'bank'">快速选择</view>
</view> </view>
<picker :range="typeList" range-key="name" @change="handleTypeIndex"> <picker :range="typeList" range-key="name" @change="handleTypeIndex">
<view class="value inputBox rows"> <view class="value inputBox rows">
@ -71,8 +213,8 @@
</picker> </picker>
</view> </view>
<!-- 银行卡 -->
<template v-if="typeList[typeIndex].key === 'bank'"> <template v-if="typeList[typeIndex].key === 'bank'">
<view class="line"> <view class="line">
<view class="key">银行名称</view> <view class="key">银行名称</view>
<view class="value inputBox"> <view class="value inputBox">
@ -88,6 +230,7 @@
</view> </view>
</template> </template>
<!-- 微信 -->
<template v-if="typeList[typeIndex].key === 'wechat'"> <template v-if="typeList[typeIndex].key === 'wechat'">
<view class="line"> <view class="line">
<view class="key">微信号</view> <view class="key">微信号</view>
@ -97,22 +240,30 @@
</view> </view>
</template> </template>
<!-- 支付宝 -->
<template v-if="typeList[typeIndex].key === 'alipay'"> <template v-if="typeList[typeIndex].key === 'alipay'">
<view class="line"> <view class="line">
<view class="key">支付宝账号</view> <view class="key f1">支付宝账号</view>
<view class="value inputBox">
<input v-model="form.alipay" placeholder="输入金额" /> <view class="value df aic inputBox" @click="link('/pages/mine/setting/binding')">
{{alipayAccount}}
</view> </view>
</view> </view>
</template> </template>
<!-- 温馨提示 -->
<view class="line notice ptb20 plr30 br20"> <view class="line notice ptb20 plr30 br20">
<view class="key">温馨提示</view> <view class="key">温馨提示</view>
<view class="content mt15 c333 f28">为保证账户资金安全请仔细核对好填写信息在申请提现</view> <view class="content mt15 c333 f28">
<view>为保证账户资金安全请仔细核对好填写信息再申请提现</view>
<view>每次最低提现金额 {{config.minWithdrawalAmount}}</view>
<view>每次提现手续费 {{config.feeRate * 100}}%</view>
<view>每日最多提现次数 {{config.dailyWithdrawalLimit}}</view>
</view>
</view> </view>
<view class="line"> <view class="line">
<view class="btn pro black">提现</view> <view class="btn pro black" @click="handleSubmit">提现</view>
</view> </view>
</view> </view>

View File

@ -244,7 +244,10 @@
<scroll-view scroll-y="true" class="scroll" @scrolltolower="getMoreGetList"> <scroll-view scroll-y="true" class="scroll" @scrolltolower="getMoreGetList">
<view class="list c333 f30"> <view class="list c333 f30">
<view class="item mtb30 f32" v-for="(item,index) in getLog.data" :key="index"> <view class="item mtb30 f32" v-for="(item,index) in getLog.data" :key="index">
<view>{{item.typeName}}{{item.amount}}</view> <view class="rows">
<view class="f1 f32">{{item.typeName}}</view>
<view class="f28">{{item.amount}}积分</view>
</view>
<view class="time mt10 c999 f28 ">{{item.createTime}}</view> <view class="time mt10 c999 f28 ">{{item.createTime}}</view>
</view> </view>
</view> </view>

View File

@ -91,6 +91,7 @@
data, data,
}).then(rs => { }).then(rs => {
if (rs.code == 200) { if (rs.code == 200) {
uni.$emit('updateBindingAccount')
// //
detail[bindItem.value.key] = bindItem.value.value detail[bindItem.value.key] = bindItem.value.value
// //

View File

@ -173,7 +173,7 @@
<template v-if="userinfo.id"> <template v-if="userinfo.id">
<view class="area"> <view class="area">
<view class="line rows" @click="link('/pages/mine/setting/usePay')"> <view class="line rows" @click="link('/pages/mine/setting/usePay')" v-if="0">
<view class="">先用后付</view> <view class="">先用后付</view>
<uni-icons type="right" /> <uni-icons type="right" />
</view> </view>

View File

@ -33,8 +33,7 @@ import util from '@/common/js/util.js'
// vuex // vuex
const store = useStore() const store = useStore()
// //
const menuList = reactive([ const menuList = reactive([{
{
key: 'group', key: 'group',
name: '即时消息', name: '即时消息',
load: true, load: true,
@ -94,9 +93,7 @@ function imLoading() {
// //
function removeListener() { function removeListener() {
// #ifdef APP uni.$chat.off(TencentCloudChat.EVENT.SDK_READY, () => {});
uni.$chat.off(TencentCloudChat.EVENT.SDK_READY);
// #endif
} }
/** /**

View File

@ -64,6 +64,8 @@ selectAddress 选择地址
updateOrderList 更新订单列表 updateOrderList 更新订单列表
updateOrderDetail 更新订单详情 updateOrderDetail 更新订单详情
updateUserProduct 更新用户商品 updateUserProduct 更新用户商品
updateBindingAccount 更新绑定账号
selectBindingBank 选择绑定的银行卡
缓存 缓存
--- ---