import {useEffect, useState} from "react"; import Taro from '@tarojs/taro'; import {Button, Space} from '@nutui/nutui-react-taro' import {TriangleDown} from '@nutui/icons-react-taro' import {Avatar, NavBar} from '@nutui/nutui-react-taro' import {getUserInfo, getWxOpenId} from "@/api/layout"; import {TenantId} from "@/config/app"; import {getOrganization} from "@/api/system/organization"; import {myUserVerify} from "@/api/system/userVerify"; import { useShopInfo } from '@/hooks/useShopInfo'; import {handleInviteRelation} from "@/utils/invite"; import {View,Text} from '@tarojs/components' import MySearch from "./MySearch"; import './Header.scss'; const Header = (props: any) => { // 使用新的useShopInfo Hook const { getWebsiteName, getWebsiteLogo } = useShopInfo(); const [IsLogin, setIsLogin] = useState(true) const [statusBarHeight, setStatusBarHeight] = useState() const reload = async () => { Taro.getSystemInfo({ success: (res) => { setStatusBarHeight(res.statusBarHeight) }, }) // 注意:商店信息现在通过useShopInfo自动管理,不需要手动获取 // 获取用户信息 getUserInfo().then((data) => { if (data) { setIsLogin(true); console.log('用户信息>>>', data.phone) // 保存userId Taro.setStorageSync('UserId', data.userId) // 获取openId if (!data.openid) { Taro.login({ success: (res) => { getWxOpenId({code: res.code}).then(() => { }) } }) } // 是否已认证 if (data.certification) { Taro.setStorageSync('Certification', '1') } // 机构ID Taro.setStorageSync('OrganizationId', data.organizationId) // 父级机构ID if (Number(data.organizationId) > 0) { getOrganization(Number(data.organizationId)).then(res => { Taro.setStorageSync('OrganizationParentId', res.parentId) }) } // 管理员 const isKdy = data.roles?.findIndex(item => item.roleCode == 'admin') if (isKdy != -1) { Taro.setStorageSync('RoleName', '管理') Taro.setStorageSync('RoleCode', 'admin') return false; } // 注册用户 const isUser = data.roles?.findIndex(item => item.roleCode == 'user') if (isUser != -1) { Taro.setStorageSync('RoleName', '注册用户') Taro.setStorageSync('RoleCode', 'user') return false; } } }).catch(() => { setIsLogin(false); console.log('未登录') }); // 认证信息 myUserVerify({status: 1}).then(data => { if (data?.realName) { Taro.setStorageSync('RealName', data.realName) } }) } /* 获取用户手机号 */ const handleGetPhoneNumber = ({detail}: {detail: {code?: string, encryptedData?: string, iv?: string}}) => { 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: async function (res) { if (res.data.code == 1) { Taro.showToast({ title: res.data.message, icon: 'error', duration: 2000 }) return false; } // 登录成功 Taro.setStorageSync('access_token', res.data.data.access_token) Taro.setStorageSync('UserId', res.data.data.user.userId) setIsLogin(true) // 处理邀请关系 if (res.data.data.user?.userId) { try { const inviteSuccess = await handleInviteRelation(res.data.data.user.userId) if (inviteSuccess) { Taro.showToast({ title: '邀请关系建立成功', icon: 'success', duration: 2000 }) } } catch (error) { console.error('处理邀请关系失败:', error) } } // 重新加载小程序 Taro.reLaunch({ url: '/pages/index/index' }) } }) } else { console.log('登录失败!') } } }) } useEffect(() => { reload().then() }, []) return ( <> {/*{!props.stickyStatus && }*/} { }} left={ !IsLogin ? ( ) : ( {getWebsiteName()} )}> ) } export default Header