import {useEffect, useState} from 'react' import {navigateTo} from '@tarojs/taro' import Taro from '@tarojs/taro' import {Image} from '@nutui/nutui-react-taro' import {getUserInfo, getWxOpenId} from "@/api/layout"; import {User} from "@/api/system/user/model"; import {myPageBszxBm} from "@/api/bszx/bszxBm"; import {listCmsNavigation} from "@/api/cms/cmsNavigation"; const Page = () => { const [loading, setLoading] = useState(true) const [isLogin, setIsLogin] = useState(false) const [userInfo, setUserInfo] = useState() const [bmLogs, setBmLogs] = useState() const [navItems, setNavItems] = useState([]) const onLogin = (item: any, index: number) => { if(!isLogin){ return navigateTo({url: `/pages/category/category?id=${item.navigationId}`}) }else { // 报名链接 if(index == 0){ console.log(bmLogs,'bmLogs') if(bmLogs && bmLogs.length > 0){ return navigateTo({url: `/bszx/bm-cert/bm-cert?id=${bmLogs[0].id}`}) }else { navigateTo({url: `/user/profile/profile`}) } } // 善款明细 if(item.navigationId == 4119){ return navigateTo({url: `/bszx/pay-record/pay-record`}) } return navigateTo({url: `/pages/category/category?id=${item.navigationId}`}) } } const reload = () => { // 读取栏目 listCmsNavigation({parentId: 2828,hide: 0}).then(res => { console.log(res,'9999') setNavItems(res); }) Taro.getUserInfo({ success: (res) => { const avatar = res.userInfo.avatarUrl; setUserInfo({ avatar, nickname: res.userInfo.nickName, sexName: res.userInfo.gender == 1 ? '男' : '女' }) getUserInfo().then((data) => { if (data) { setUserInfo(data) setIsLogin(true); console.log(userInfo, 'userInfo...') Taro.setStorageSync('UserId', data.userId) // 获取openId if (!data.openid) { Taro.login({ success: (res) => { getWxOpenId({code: res.code}).then(() => { }) } }) } } }).catch(() => { console.log('未登录') }); } }); // 报名日志 myPageBszxBm({limit: 1}).then(res => { if (res.list) { setBmLogs(res.list); } }) setLoading(false); }; const showAuthModal = () => { Taro.showModal({ title: '授权提示', content: '需要获取您的用户信息', confirmText: '去授权', cancelText: '取消', success: (res) => { if (res.confirm) { // 用户点击确认,打开授权设置页面 openSetting(); } } }); }; const openSetting = () => { // Taro.openSetting:调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限。 Taro.openSetting({ success: (res) => { if (res.authSetting['scope.userInfo']) { // 用户授权成功,可以获取用户信息 reload(); } else { // 用户拒绝授权,提示授权失败 Taro.showToast({ title: '授权失败', icon: 'none' }); } } }); }; useEffect(() => { Taro.getSetting({ success: (res) => { if (res.authSetting['scope.userInfo']) { // 用户已经授权过,可以直接获取用户信息 console.log('用户已经授权过,可以直接获取用户信息') reload(); } else { // 用户未授权,需要弹出授权窗口 console.log('用户未授权,需要弹出授权窗口') showAuthModal(); } } }); reload(); }, []) return (
{ navItems.map((item, index) => (
{ isLogin && !loading ?
{ onLogin(item, index) }}>
{item?.title}
:
Taro.navigateTo({url: '/passport/wxLogin'})}>
{item?.title}
}
)) }
) } export default Page