2025.02.21 工作代码
This commit is contained in:
parent
c4a23be60c
commit
69babb6f3e
|
@ -297,6 +297,61 @@ const mine = {
|
|||
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
|
|
@ -18,17 +18,18 @@
|
|||
import util from '@/common/js/util';
|
||||
// api
|
||||
import api from '@/api/index.js'
|
||||
import videoApi from '@/api/video.js'
|
||||
import {
|
||||
onLoad,
|
||||
onReady,
|
||||
onHide,
|
||||
onUnload,
|
||||
} from '@dcloudio/uni-app'
|
||||
|
||||
// 顶部
|
||||
import apex from '@/components/header/apex.vue';
|
||||
// 视频菜单
|
||||
import videoMenu from '@/components/index/videoMenu.vue';
|
||||
|
||||
const {
|
||||
proxy
|
||||
} = getCurrentInstance()
|
||||
|
@ -37,7 +38,6 @@
|
|||
const userinfo = computed(() => store.state.userinfo)
|
||||
// 榴莲果兑换播放量数量
|
||||
const durainView = ref(0)
|
||||
|
||||
// 列表数据
|
||||
const list = reactive({
|
||||
data: [],
|
||||
|
@ -182,7 +182,7 @@
|
|||
return
|
||||
}
|
||||
|
||||
videoApi.pushVideo({
|
||||
api.video.pushVideo({
|
||||
query: {
|
||||
ids: videoIds.value.join(','),
|
||||
}
|
||||
|
@ -219,7 +219,7 @@
|
|||
return
|
||||
}
|
||||
|
||||
videoApi.applyVideo({
|
||||
api.video.applyVideo({
|
||||
data: {
|
||||
videoIds: videoIds.value.join(","),
|
||||
author: apply.author,
|
||||
|
@ -256,17 +256,15 @@
|
|||
})
|
||||
}
|
||||
|
||||
//
|
||||
// 推流收藏视频
|
||||
function pushCollect() {
|
||||
uni.navigateTo({
|
||||
url: util.setUrl('/pages/index/dataCenter/pushVideoCollects', {
|
||||
ids: collectVideoIds.value.join(','),
|
||||
})
|
||||
})
|
||||
link(util.setUrl('/pages/index/dataCenter/pushVideoCollects', {
|
||||
ids: collectVideoIds.value.join(','),
|
||||
}))
|
||||
}
|
||||
|
||||
// 跳转
|
||||
function navigateToPage(path) {
|
||||
function link(path) {
|
||||
uni.navigateTo({
|
||||
url: path
|
||||
});
|
||||
|
@ -277,7 +275,7 @@
|
|||
<view class="app">
|
||||
<apex title="投流推广">
|
||||
<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>
|
||||
</apex>
|
||||
|
||||
|
@ -432,7 +430,6 @@
|
|||
</scroll-view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
@ -13,27 +13,148 @@
|
|||
onReachBottom,
|
||||
onPullDownRefresh
|
||||
} 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(() => {
|
||||
//
|
||||
// 获取列表
|
||||
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>
|
||||
|
||||
<template>
|
||||
<view class="app">
|
||||
<view class="listBox mtb30 mlr30">
|
||||
<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="list oh mtb30 plr30 bfff br20" v-for="(item,index) in 3" :key="index">
|
||||
<view class="line tac">
|
||||
<view class="title mtb30">使用积分支付</view>
|
||||
<view class="ghost"></view>
|
||||
|
||||
<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="line ptb20 tac">
|
||||
<view class="title mtb30">{{item.reason}}</view>
|
||||
<view class="price mtb30 c111">
|
||||
<text class="unit">¥</text>
|
||||
<text class="numer b">1000</text>
|
||||
<text class="numer b">{{item.amount}}</text>
|
||||
</view>
|
||||
<view class="time mtb30 c999 f28">2024.12.07 17:00</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>
|
||||
<uni-icons type="right" />
|
||||
</view>
|
||||
|
@ -45,14 +166,49 @@
|
|||
</template>
|
||||
|
||||
<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 {
|
||||
|
||||
// 列表
|
||||
.list {
|
||||
.line {
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
|
||||
.line+.line {
|
||||
border-top: 2rpx solid #ddd;
|
||||
|
@ -61,7 +217,7 @@
|
|||
//
|
||||
.price {
|
||||
.unit {
|
||||
font-size: 40rpx;
|
||||
// font-size: 40rpx;
|
||||
}
|
||||
|
||||
.numer {
|
||||
|
|
|
@ -5,30 +5,97 @@
|
|||
reactive,
|
||||
ref
|
||||
} from 'vue';
|
||||
import {
|
||||
onLoad,
|
||||
onReady,
|
||||
onUnload,
|
||||
} from '@dcloudio/uni-app'
|
||||
// 工具库
|
||||
import util from '@/common/js/util';
|
||||
// 接口
|
||||
import api from '@/api/index.js';
|
||||
|
||||
// 表单
|
||||
const form = reactive({
|
||||
amount: '',
|
||||
withdrawAmount: '',
|
||||
})
|
||||
|
||||
// 提现方式列表
|
||||
const typeList = reactive([{
|
||||
key: 'bank',
|
||||
name: '银行卡',
|
||||
},
|
||||
{
|
||||
key: 'wechat',
|
||||
name: '微信',
|
||||
},
|
||||
{
|
||||
key: 'alipay',
|
||||
name: '支付宝',
|
||||
}
|
||||
])
|
||||
key: 'alipay',
|
||||
name: '支付宝',
|
||||
confirm: (event) => getToAlipay(event)
|
||||
}, {
|
||||
key: 'wechat',
|
||||
name: '微信',
|
||||
confirm: (event) => getToWechat(event)
|
||||
}, {
|
||||
key: 'bank',
|
||||
name: '银行卡',
|
||||
confirm: (event) => getToBank(event)
|
||||
}, ])
|
||||
// 支付方式下标
|
||||
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() {
|
||||
// 银行取银行卡 微信 支付宝去我的绑定页面
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳转
|
||||
* @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>
|
||||
|
||||
<template>
|
||||
|
@ -54,14 +196,14 @@
|
|||
<view class="key">提现金额</view>
|
||||
<view class="value inputBox df aic">
|
||||
<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 class="line">
|
||||
<view class="key rows">
|
||||
<view>选择提现方式</view>
|
||||
<view class="c999 f26" @click="handleFast">快速选择</view>
|
||||
<view class="c999 f26" @click="handleFast" v-if="typeList[typeIndex].key === 'bank'">快速选择</view>
|
||||
</view>
|
||||
<picker :range="typeList" range-key="name" @change="handleTypeIndex">
|
||||
<view class="value inputBox rows">
|
||||
|
@ -71,8 +213,8 @@
|
|||
</picker>
|
||||
</view>
|
||||
|
||||
<!-- 银行卡 -->
|
||||
<template v-if="typeList[typeIndex].key === 'bank'">
|
||||
|
||||
<view class="line">
|
||||
<view class="key">银行名称</view>
|
||||
<view class="value inputBox">
|
||||
|
@ -88,6 +230,7 @@
|
|||
</view>
|
||||
</template>
|
||||
|
||||
<!-- 微信 -->
|
||||
<template v-if="typeList[typeIndex].key === 'wechat'">
|
||||
<view class="line">
|
||||
<view class="key">微信号</view>
|
||||
|
@ -97,22 +240,30 @@
|
|||
</view>
|
||||
</template>
|
||||
|
||||
<!-- 支付宝 -->
|
||||
<template v-if="typeList[typeIndex].key === 'alipay'">
|
||||
<view class="line">
|
||||
<view class="key">支付宝账号</view>
|
||||
<view class="value inputBox">
|
||||
<input v-model="form.alipay" placeholder="输入金额" />
|
||||
<view class="key f1">支付宝账号</view>
|
||||
|
||||
<view class="value df aic inputBox" @click="link('/pages/mine/setting/binding')">
|
||||
{{alipayAccount}}
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<!-- 温馨提示 -->
|
||||
<view class="line notice ptb20 plr30 br20">
|
||||
<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 class="line">
|
||||
<view class="btn pro black">提现</view>
|
||||
<view class="btn pro black" @click="handleSubmit">提现</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
|
|
@ -244,7 +244,10 @@
|
|||
<scroll-view scroll-y="true" class="scroll" @scrolltolower="getMoreGetList">
|
||||
<view class="list c333 f30">
|
||||
<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>
|
||||
</view>
|
||||
|
|
|
@ -91,6 +91,7 @@
|
|||
data,
|
||||
}).then(rs => {
|
||||
if (rs.code == 200) {
|
||||
uni.$emit('updateBindingAccount')
|
||||
//
|
||||
detail[bindItem.value.key] = bindItem.value.value
|
||||
//
|
||||
|
|
|
@ -173,7 +173,7 @@
|
|||
|
||||
<template v-if="userinfo.id">
|
||||
<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>
|
||||
<uni-icons type="right" />
|
||||
</view>
|
||||
|
|
|
@ -1,164 +1,161 @@
|
|||
<script setup>
|
||||
// 消息
|
||||
// 消息
|
||||
|
||||
import {
|
||||
ref,
|
||||
reactive,
|
||||
computed,
|
||||
} from 'vue'
|
||||
import {
|
||||
useStore,
|
||||
} from 'vuex'
|
||||
import {
|
||||
onLoad,
|
||||
onUnload,
|
||||
} from '@dcloudio/uni-app'
|
||||
// 腾讯云聊天
|
||||
import TencentCloudChat from '@tencentcloud/chat';
|
||||
import {
|
||||
ref,
|
||||
reactive,
|
||||
computed,
|
||||
} from 'vue'
|
||||
import {
|
||||
useStore,
|
||||
} from 'vuex'
|
||||
import {
|
||||
onLoad,
|
||||
onUnload,
|
||||
} from '@dcloudio/uni-app'
|
||||
// 腾讯云聊天
|
||||
import TencentCloudChat from '@tencentcloud/chat';
|
||||
|
||||
// 头部导航栏
|
||||
import apex from '@/components/header/apex'
|
||||
// 未登录
|
||||
import noLogin from '@/components/login/noLogin.vue'
|
||||
// 通讯录
|
||||
import book from '@/components/news/book'
|
||||
// 群聊列表
|
||||
import groupList from '@/components/news/groupList'
|
||||
// 消息列表
|
||||
import msgList from '@/components/news/msgList'
|
||||
// 底部菜单
|
||||
import footerMneu from '@/components/footerMenu/footerMenu'
|
||||
// 工具库
|
||||
import util from '@/common/js/util.js'
|
||||
// vuex
|
||||
const store = useStore()
|
||||
// 菜单列表
|
||||
const menuList = reactive([
|
||||
{
|
||||
key: 'group',
|
||||
name: '即时消息',
|
||||
load: true,
|
||||
}, {
|
||||
key: 'friend',
|
||||
name: '通讯录',
|
||||
load: false,
|
||||
},
|
||||
{
|
||||
key: 'video',
|
||||
name: '视讯消息',
|
||||
load: false,
|
||||
},
|
||||
{
|
||||
key: 'store',
|
||||
name: '商城消息',
|
||||
load: false,
|
||||
},
|
||||
])
|
||||
// 菜单下标
|
||||
const menuIndex = ref('')
|
||||
// 是否显示搜索菜单
|
||||
const showSearch = ref(false)
|
||||
// im加载
|
||||
const imLoad = ref(false)
|
||||
// 用户信息
|
||||
const userinfo = computed(() => {
|
||||
return store.state.userinfo
|
||||
})
|
||||
// 当前选中的菜单
|
||||
const menuCurrent = computed(() => {
|
||||
return menuList[menuIndex.value]
|
||||
})
|
||||
// 头部导航栏
|
||||
import apex from '@/components/header/apex'
|
||||
// 未登录
|
||||
import noLogin from '@/components/login/noLogin.vue'
|
||||
// 通讯录
|
||||
import book from '@/components/news/book'
|
||||
// 群聊列表
|
||||
import groupList from '@/components/news/groupList'
|
||||
// 消息列表
|
||||
import msgList from '@/components/news/msgList'
|
||||
// 底部菜单
|
||||
import footerMneu from '@/components/footerMenu/footerMenu'
|
||||
// 工具库
|
||||
import util from '@/common/js/util.js'
|
||||
// vuex
|
||||
const store = useStore()
|
||||
// 菜单列表
|
||||
const menuList = reactive([{
|
||||
key: 'group',
|
||||
name: '即时消息',
|
||||
load: true,
|
||||
}, {
|
||||
key: 'friend',
|
||||
name: '通讯录',
|
||||
load: false,
|
||||
},
|
||||
{
|
||||
key: 'video',
|
||||
name: '视讯消息',
|
||||
load: false,
|
||||
},
|
||||
{
|
||||
key: 'store',
|
||||
name: '商城消息',
|
||||
load: false,
|
||||
},
|
||||
])
|
||||
// 菜单下标
|
||||
const menuIndex = ref('')
|
||||
// 是否显示搜索菜单
|
||||
const showSearch = ref(false)
|
||||
// im加载
|
||||
const imLoad = ref(false)
|
||||
// 用户信息
|
||||
const userinfo = computed(() => {
|
||||
return store.state.userinfo
|
||||
})
|
||||
// 当前选中的菜单
|
||||
const menuCurrent = computed(() => {
|
||||
return menuList[menuIndex.value]
|
||||
})
|
||||
|
||||
onLoad(() => {
|
||||
// 初始化菜单
|
||||
handleMenuIndex(0)
|
||||
onLoad(() => {
|
||||
// 初始化菜单
|
||||
handleMenuIndex(0)
|
||||
|
||||
// 开启监听
|
||||
addListener()
|
||||
})
|
||||
|
||||
onUnload(() => {
|
||||
// 移除监听
|
||||
removeListener()
|
||||
})
|
||||
|
||||
// 开启监听
|
||||
addListener()
|
||||
})
|
||||
function addListener() {
|
||||
uni.$chat.on(TencentCloudChat.EVENT.SDK_READY, imLoading);
|
||||
}
|
||||
|
||||
// im加载完成
|
||||
function imLoading() {
|
||||
imLoad.value = true
|
||||
}
|
||||
|
||||
onUnload(() => {
|
||||
// 移除监听
|
||||
removeListener()
|
||||
})
|
||||
function removeListener() {
|
||||
uni.$chat.off(TencentCloudChat.EVENT.SDK_READY, () => {});
|
||||
}
|
||||
|
||||
// 开启监听
|
||||
function addListener() {
|
||||
uni.$chat.on(TencentCloudChat.EVENT.SDK_READY, imLoading);
|
||||
}
|
||||
/**
|
||||
* 切换下标
|
||||
* @param {Number} index
|
||||
*/
|
||||
function handleMenuIndex(index) {
|
||||
if (menuIndex.value === index) return
|
||||
menuList.forEach(item => {
|
||||
item.load = false;
|
||||
});
|
||||
menuList[index].load = true;
|
||||
menuIndex.value = index
|
||||
}
|
||||
|
||||
// im加载完成
|
||||
function imLoading() {
|
||||
imLoad.value = true
|
||||
}
|
||||
|
||||
// 移除监听
|
||||
function removeListener() {
|
||||
// #ifdef APP
|
||||
uni.$chat.off(TencentCloudChat.EVENT.SDK_READY);
|
||||
// #endif
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换下标
|
||||
* @param {Number} index
|
||||
*/
|
||||
function handleMenuIndex(index) {
|
||||
if (menuIndex.value === index) return
|
||||
menuList.forEach(item => {
|
||||
item.load = false;
|
||||
});
|
||||
menuList[index].load = true;
|
||||
menuIndex.value = index
|
||||
}
|
||||
|
||||
// 打开菜单
|
||||
function showActionSheet() {
|
||||
uni.showActionSheet({
|
||||
itemList: ['扫一扫', '添加好友', '发起群聊', '我的二维码'],
|
||||
success: rs => {
|
||||
switch (rs.tapIndex) {
|
||||
case 0:
|
||||
util.scan()
|
||||
break;
|
||||
case 1:
|
||||
uni.navigateTo({
|
||||
// url: '/pages/news/addFriend'
|
||||
url: '/pages/news/newFriend'
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
uni.navigateTo({
|
||||
url: '/pages/news/group-chat/index'
|
||||
});
|
||||
break;
|
||||
case 3:
|
||||
uni.navigateTo({
|
||||
url: '/pages/news/myQr'
|
||||
});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
// 打开菜单
|
||||
function showActionSheet() {
|
||||
uni.showActionSheet({
|
||||
itemList: ['扫一扫', '添加好友', '发起群聊', '我的二维码'],
|
||||
success: rs => {
|
||||
switch (rs.tapIndex) {
|
||||
case 0:
|
||||
util.scan()
|
||||
break;
|
||||
case 1:
|
||||
uni.navigateTo({
|
||||
// url: '/pages/news/addFriend'
|
||||
url: '/pages/news/newFriend'
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
uni.navigateTo({
|
||||
url: '/pages/news/group-chat/index'
|
||||
});
|
||||
break;
|
||||
case 3:
|
||||
uni.navigateTo({
|
||||
url: '/pages/news/myQr'
|
||||
});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function getUserInfos(userRecommend) {
|
||||
videoApi.getUserInfo({
|
||||
query: {
|
||||
userRecommend: userRecommend,
|
||||
}
|
||||
}).then(rs => {
|
||||
if (rs.data !== null) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/index/beInvited?header=' + rs.data.userPortrait + '&userId=' + rs.data
|
||||
.userId + '&userNickname=' +
|
||||
rs.data.userNickname
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
function getUserInfos(userRecommend) {
|
||||
videoApi.getUserInfo({
|
||||
query: {
|
||||
userRecommend: userRecommend,
|
||||
}
|
||||
}).then(rs => {
|
||||
if (rs.data !== null) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/index/beInvited?header=' + rs.data.userPortrait + '&userId=' + rs.data
|
||||
.userId + '&userNickname=' +
|
||||
rs.data.userNickname
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -229,70 +226,70 @@ function getUserInfos(userRecommend) {
|
|||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
//
|
||||
.headMenu {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
grid-gap: 25rpx;
|
||||
margin: 20rpx;
|
||||
//
|
||||
.headMenu {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
grid-gap: 25rpx;
|
||||
margin: 20rpx;
|
||||
|
||||
// 单项
|
||||
.option {
|
||||
height: 120rpx;
|
||||
background-color: #E2E2E2;
|
||||
border-radius: 15rpx;
|
||||
transition: .3s;
|
||||
// 单项
|
||||
.option {
|
||||
height: 120rpx;
|
||||
background-color: #E2E2E2;
|
||||
border-radius: 15rpx;
|
||||
transition: .3s;
|
||||
|
||||
// 激活的
|
||||
&.active {
|
||||
color: #fff;
|
||||
// 激活的
|
||||
&.active {
|
||||
color: #fff;
|
||||
|
||||
// 朋友
|
||||
&.friend,
|
||||
&.group,
|
||||
&.video {
|
||||
background-image: linear-gradient(126deg, #27EFE2 0%, #A45EFF 43%, #FF004F 100%);
|
||||
// 朋友
|
||||
&.friend,
|
||||
&.group,
|
||||
&.video {
|
||||
background-image: linear-gradient(126deg, #27EFE2 0%, #A45EFF 43%, #FF004F 100%);
|
||||
}
|
||||
|
||||
// 商城消息
|
||||
&.store {
|
||||
background-image: linear-gradient(270deg, #FF9B27 20%, #FDC123 103%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 商城消息
|
||||
&.store {
|
||||
background-image: linear-gradient(270deg, #FF9B27 20%, #FDC123 103%);
|
||||
}
|
||||
// 卡通
|
||||
.cartoon {
|
||||
margin-top: -15rpx;
|
||||
margin-right: -25rpx;
|
||||
width: 194rpx;
|
||||
height: 175rpx;
|
||||
transform: rotate(-5deg);
|
||||
}
|
||||
}
|
||||
|
||||
// 卡通
|
||||
.cartoon {
|
||||
margin-top: -15rpx;
|
||||
margin-right: -25rpx;
|
||||
width: 194rpx;
|
||||
height: 175rpx;
|
||||
transform: rotate(-5deg);
|
||||
// 搜索条
|
||||
.searchBox {
|
||||
overflow: hidden;
|
||||
height: 0;
|
||||
transition: .3s;
|
||||
|
||||
&.active {
|
||||
height: 80rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 搜索条
|
||||
.searchBox {
|
||||
overflow: hidden;
|
||||
height: 0;
|
||||
transition: .3s;
|
||||
|
||||
&.active {
|
||||
height: 80rpx;
|
||||
// 容器
|
||||
.swiper {
|
||||
flex: 1;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
// 容器
|
||||
.swiper {
|
||||
flex: 1;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// 正在加载
|
||||
.loading {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
}
|
||||
// 正在加载
|
||||
.loading {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
|
@ -64,6 +64,8 @@ selectAddress 选择地址
|
|||
updateOrderList 更新订单列表
|
||||
updateOrderDetail 更新订单详情
|
||||
updateUserProduct 更新用户商品
|
||||
updateBindingAccount 更新绑定账号
|
||||
selectBindingBank 选择绑定的银行卡
|
||||
|
||||
缓存
|
||||
---
|
||||
|
|
Loading…
Reference in New Issue