import {useEffect, useState} from 'react' import {navigateTo} from '@tarojs/taro' import Taro from '@tarojs/taro' import {Button} from '@tarojs/components'; import {Image} from '@nutui/nutui-react-taro' import {getUserInfo, getWxOpenId} from "@/api/layout"; import {TenantId} from "@/config/app"; import {User} from "@/api/system/user/model"; // import News from "./News"; import {myPageBszxBm} from "@/api/bszx/bszxBm"; import {listCmsNavigation} from "@/api/cms/cmsNavigation"; const OrderIcon = () => { const [loading, setLoading] = useState(true) const [isLogin, setIsLogin] = useState(false) const [userInfo, setUserInfo] = useState() const [bmLogs, setBmLogs] = useState() const [navItems, setNavItems] = useState([]) /* 获取用户手机号 */ const handleGetPhoneNumber = ({detail}) => { const {code, encryptedData, iv} = detail Taro.login({ success: function () { if (code) { Taro.request({ url: 'https://server.websoft.top/api/wx-login/loginByMpWxPhone', method: 'POST', data: { code, encryptedData, iv, notVerifyPhone: true, refereeId: 0, sceneType: 'save_referee', tenantId: TenantId }, header: { 'content-type': 'application/json', TenantId }, success: function (res) { Taro.setStorageSync('access_token', res.data.data.access_token) Taro.setStorageSync('UserId', res.data.data.user.userId) setUserInfo(res.data.data.user) Taro.setStorageSync('Phone', res.data.data.user.phone) setIsLogin(true) Taro.showToast({ title: '登录成功', icon: 'success' }); } }) } else { console.log('登录失败!') } } }) } 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}
: }
)) }
{/*倡议书*/} {/**/}
) } export default OrderIcon