修复已知问题

This commit is contained in:
2025-06-06 18:23:07 +08:00
parent 3ac3fd8cb2
commit 7ff3e3f064
51 changed files with 2503 additions and 1257 deletions

View File

@@ -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>
</>
)