修复已知问题
This commit is contained in:
@@ -1,14 +1,23 @@
|
||||
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 {Popup, Avatar, NavBar} from '@nutui/nutui-react-taro'
|
||||
import {getUserInfo} from "@/api/layout";
|
||||
import {TenantId} from "@/utils/config";
|
||||
|
||||
const Header = (props: any) => {
|
||||
const [IsLogin, setIsLogin] = useState<boolean>(true)
|
||||
const [showBasic, setShowBasic] = useState(false)
|
||||
const [statusBarHeight, setStatusBarHeight] = useState<number>()
|
||||
const [roleName, setRoleName] = useState<string>()
|
||||
|
||||
const onNav = () => {
|
||||
Taro.navigateTo({
|
||||
if (!IsLogin) {
|
||||
|
||||
return false;
|
||||
}
|
||||
Taro.switchTab({
|
||||
url: '/pages/user/user',
|
||||
})
|
||||
}
|
||||
@@ -18,6 +27,96 @@ const Header = (props: any) => {
|
||||
setStatusBarHeight(res.statusBarHeight)
|
||||
},
|
||||
})
|
||||
getUserInfo().then((data) => {
|
||||
if (data) {
|
||||
setIsLogin(true);
|
||||
Taro.setStorageSync('UserId', data.userId)
|
||||
// 安装人员
|
||||
const isKdy = data.roles?.findIndex(item => item.roleCode == 'admin')
|
||||
if(isKdy != -1){
|
||||
setRoleName('安装人员')
|
||||
Taro.setStorageSync('RoleName', '安装人员')
|
||||
return false;
|
||||
}
|
||||
// 交警
|
||||
const isJj = data.roles?.findIndex(item => item.roleCode == 'jiaojing')
|
||||
if(isJj != -1){
|
||||
setRoleName('交警')
|
||||
Taro.setStorageSync('RoleName', '交警')
|
||||
return false;
|
||||
}
|
||||
// 邮政协会/管局
|
||||
const isYz = data.roles?.findIndex(item => item.roleCode == 'youzheng')
|
||||
if(isYz != -1){
|
||||
setRoleName('邮政协会/管局')
|
||||
Taro.setStorageSync('RoleName', '邮政协会/管局')
|
||||
return false;
|
||||
}
|
||||
// 快递公司
|
||||
const isKd = data.roles?.findIndex(item => item.roleCode == 'kuaidi')
|
||||
if(isKd != -1){
|
||||
setRoleName('快递公司')
|
||||
Taro.setStorageSync('RoleName', '快递公司')
|
||||
return false;
|
||||
}
|
||||
// 快递员
|
||||
const isKdyy = data.roles?.findIndex(item => item.roleCode == 'kuaidiyuan')
|
||||
if(isKdyy != -1){
|
||||
setRoleName('快递员')
|
||||
Taro.setStorageSync('RoleName', '快递员')
|
||||
return false;
|
||||
}
|
||||
// 注册用户
|
||||
const isUser = data.roles?.findIndex(item => item.roleCode == 'user')
|
||||
if(isUser != -1){
|
||||
setRoleName('注册用户')
|
||||
Taro.setStorageSync('RoleName', '注册用户')
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
setIsLogin(false);
|
||||
console.log('未登录')
|
||||
});
|
||||
}
|
||||
|
||||
/* 获取用户手机号 */
|
||||
const handleGetPhoneNumber = ({detail}) => {
|
||||
const {code, encryptedData, iv} = detail
|
||||
Taro.login({
|
||||
success: function () {
|
||||
if (code) {
|
||||
Taro.request({
|
||||
url: 'https://server.gxwebsoft.com/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)
|
||||
setIsLogin(true)
|
||||
// 重新加载小程序
|
||||
Taro.reLaunch({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log('登录失败!')
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
@@ -32,27 +131,39 @@ const Header = (props: any) => {
|
||||
onBackClick={() => {
|
||||
}}
|
||||
left={
|
||||
<div className={'flex items-center gap-2'} onClick={onNav}>
|
||||
<Avatar
|
||||
size="22"
|
||||
src={props.user?.avatar}
|
||||
/>
|
||||
{props.user?.nickname}
|
||||
<TriangleDown size={9}/>
|
||||
</div>
|
||||
}
|
||||
>
|
||||
!IsLogin ? (
|
||||
<div style={{display: 'flex', alignItems: 'center'}}>
|
||||
<Button style={{color: '#000'}} open-type="getPhoneNumber" onGetPhoneNumber={handleGetPhoneNumber}>
|
||||
<Space>
|
||||
<Avatar
|
||||
size="22"
|
||||
src={props.user?.avatar}
|
||||
/>
|
||||
<span style={{color: '#000'}}>{props.user?.nickname}</span>
|
||||
</Space>
|
||||
</Button>
|
||||
<TriangleDown size={9}/>
|
||||
</div>
|
||||
) : (
|
||||
<div style={{display: 'flex', alignItems: 'center', gap: '8px'}} onClick={onNav}>
|
||||
<Avatar
|
||||
size="22"
|
||||
src={props.user?.avatar}
|
||||
/>
|
||||
{props.user?.nickname}{roleName && <span>({roleName})</span>}
|
||||
<TriangleDown size={9}/>
|
||||
</div>
|
||||
)}>
|
||||
</NavBar>
|
||||
<Popup
|
||||
visible={showBasic}
|
||||
position="bottom"
|
||||
className={'w-full h-full'}
|
||||
style={{width: '100%', height: '100%'}}
|
||||
onClose={() => {
|
||||
setShowBasic(false)
|
||||
}}
|
||||
>
|
||||
<div className={'py-3 font-bold text-center'}>车辆信息</div>
|
||||
|
||||
<div style={{padding: '12px 0', fontWeight: 'bold', textAlign: 'center'}}>车辆信息</div>
|
||||
</Popup>
|
||||
</>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user