jiuyiUniapp/jiuyi2/components/index/leftMenu.vue

175 lines
4.4 KiB
Vue

<script setup>
/**
* 视频左侧菜单弹窗
*/
import {
onMounted,
ref,
reactive,
getCurrentInstance,
watch,
defineExpose,
} from 'vue';
const {
proxy
} = getCurrentInstance()
import videoApi from '@/api/video.js';
// 顶部状态栏
import statusBar from '@/components/header/statusBar.vue'
// 工具库
import util from '@/common/js/util.js'
onMounted(() => {
// open()
})
// 打开弹窗
function open() {
proxy.$refs.leftMenu.open()
}
// 关闭弹窗
function close() {
proxy.$refs.leftMenu.close()
}
function getUserInfos(userRecommend) {
videoApi.getUserInfo({
query: {
userRecommend: userRecommend,
}
}).then(rs => {
console.log(rs)
if (rs.data !== null) {
uni.navigateTo({
url: '/pages/index/beInvited?header=' + rs.data.userPortrait + '&userId=' + rs.data
.userId + '&userNickname=' +
rs.data.userNickname
});
}
})
}
function scanQRCode() {
uni.scanCode({
success: (res) => {
console.log('扫描结果:' + res.result);
let result = JSON.parse(res.result)
if (result.type == 'ADDFRIEND') {
uni.navigateTo({
url: `/pages/news/addFriend?account=${result.account}`
});
return
}
getUserInfos(res.result)
},
fail: (err) => {
console.error('扫描失败:' + err);
uni.showToast({
title: '扫描失败',
icon: 'none'
});
}
});
}
// 实名跳转
function link(url) {
// 验证
util.isAuth({
success: rs => {
uni.navigateTo({
url,
})
},
})
}
//
defineExpose({
open,
close,
})
</script>
<template>
<uni-popup ref="leftMenu" type="left">
<view class="leftMenuAlt f1 plr30">
<!-- 状态条 -->
<statusBar />
<!-- 扫一扫 -->
<view class="df fdr jcr aic mtb30">
<uni-icons type="scan" size="40rpx" />
<text class="ml10 c333 f24" @click="scanQRCode">扫一扫</text>
</view>
<!-- 菜单列表 -->
<view class="menuList mtb30 f1">
<scroll-view scroll-y="true" class="scroll f1" :show-scrollbar="false">
<view class="list">
<navigator url="/pages/index/wallet/wallet" class="item df fdr aic mtb15 ptb40 plr30 bfff br20"
hover-class="none">
<image class="wh80 mr25" src="/static/leftMenu1.png" mode="aspectFit" />
<text class="text f1 c333 f28">我的钱包</text>
</navigator>
<template v-if="util.config.showVivo">
<navigator url="/pages/index/integralMall"
class="item df fdr aic mtb15 ptb40 plr30 bfff br20" hover-class="none">
<image class="wh80 mr25" src="/static/leftMenu2.png" mode="aspectFit" />
<text class="text f1 c333 f28">卷轴积分</text>
</navigator>
<navigator url="/pages/index/durian" class="item df fdr aic mtb15 ptb40 plr30 bfff br20"
hover-class="none">
<image class="wh80 mr25" src="/static/leftMenu3.png" mode="aspectFit" />
<text class="text f1 c333 f28">榴莲果树</text>
</navigator>
<view @click="link('/pages/index/myTeam')"
class="item df fdr aic mtb15 ptb40 plr30 bfff br20">
<image class="wh80 mr25" src="/static/leftMenu5.png" mode="aspectFit" />
<text class="text f1 c333 f28">我的团队</text>
</view>
</template>
<view @click="link('/pages/index/myQrCode')"
class="item df fdr aic mtb15 ptb40 plr30 bfff br20">
<image class="wh80 mr25" src="/static/leftMenu6.png" mode="aspectFit" />
<text class="text f1 c333 f28">邀请好友分享APP</text>
</view>
<!-- <navigator url="/pages/shop/settle" class="item df fdr aic mtb15 ptb40 plr30 bfff br20">
<image class="wh80 mr25" src="/static/leftMenu7.png" mode="aspectFit" />
<text class="text f1 c333 f28">商家入驻</text>
</navigator> -->
<!-- <view class="item df fdr aic mtb15 ptb40 plr30 bfff br20">
<image class="wh80 mr25" src="/static/leftMenu9.png" mode="aspectFit" />
<text class="text f1 c333 f28">联系客服</text>
</view>
<view class="item df fdr aic mtb15 ptb40 plr30 bfff br20">
<image class="wh80 mr25" src="/static/leftMenu8.png" mode="aspectFit" />
<text class="text f1 c333 f28">九亿打车</text>
</view> -->
</view>
</scroll-view>
</view>
</view>
</uni-popup>
</template>
<style lang="scss" scoped>
// 左侧菜单弹窗
.leftMenuAlt {
width: 600rpx;
background-color: #F4F4F4;
}
</style>