feat(header): 替换网站名称为租户名称显示

- 引入User模型类型定义
- 添加userInfo状态管理
- 实现getTenantName方法获取租户名称
- 将Header组件中的getWebsiteName替换为getTenantName
- 在用户卡片组件中根据域名条件渲染角色标签
This commit is contained in:
2026-01-31 22:47:02 +08:00
parent e07fd4091e
commit f8e689e250
2 changed files with 13 additions and 5 deletions

View File

@@ -12,17 +12,22 @@ import {handleInviteRelation, getStoredInviteParams} from "@/utils/invite";
import {View,Text} from '@tarojs/components' import {View,Text} from '@tarojs/components'
import MySearch from "./MySearch"; import MySearch from "./MySearch";
import './Header.scss'; import './Header.scss';
import {User} from "@/api/system/user/model";
const Header = (_: any) => { const Header = (_: any) => {
// 使用新的useShopInfo Hook // 使用新的useShopInfo Hook
const { const {
getWebsiteName,
getWebsiteLogo getWebsiteLogo
} = useShopInfo(); } = useShopInfo();
const [IsLogin, setIsLogin] = useState<boolean>(true) const [IsLogin, setIsLogin] = useState<boolean>(true)
const [statusBarHeight, setStatusBarHeight] = useState<number>() const [statusBarHeight, setStatusBarHeight] = useState<number>()
const [stickyStatus, setStickyStatus] = useState<boolean>(false) const [stickyStatus, setStickyStatus] = useState<boolean>(false)
const [userInfo] = useState<User>()
const getTenantName = () => {
return userInfo?.tenantName || '商城名称'
}
const reload = async () => { const reload = async () => {
Taro.getSystemInfo({ Taro.getSystemInfo({
@@ -219,7 +224,7 @@ const Header = (_: any) => {
size="22" size="22"
src={getWebsiteLogo()} src={getWebsiteLogo()}
/> />
<Text style={{color: '#ffffff'}}>{getWebsiteName()}</Text> <Text style={{color: '#ffffff'}}>{getTenantName()}</Text>
<TriangleDown size={9} className={'text-white'}/> <TriangleDown size={9} className={'text-white'}/>
</Space> </Space>
</Button> </Button>
@@ -230,11 +235,11 @@ const Header = (_: any) => {
size="22" size="22"
src={getWebsiteLogo()} src={getWebsiteLogo()}
/> />
<Text className={'text-white'}>{getWebsiteName()}</Text> <Text className={'text-white'}>{getTenantName()}</Text>
<TriangleDown className={'text-white'} size={9}/> <TriangleDown className={'text-white'} size={9}/>
</View> </View>
)}> )}>
{/*<QRLoginButton />*/} <Text className={'text-white'}>{getTenantName()}</Text>
</NavBar> </NavBar>
</Sticky> </Sticky>
</> </>

View File

@@ -11,6 +11,7 @@ import {useUserData} from "@/hooks/useUserData";
import {getStoredInviteParams} from "@/utils/invite"; import {getStoredInviteParams} from "@/utils/invite";
import UnifiedQRButton from "@/components/UnifiedQRButton"; import UnifiedQRButton from "@/components/UnifiedQRButton";
import {useThemeStyles} from "@/hooks/useTheme"; import {useThemeStyles} from "@/hooks/useTheme";
import {getRootDomain} from "@/utils/domain";
const UserCard = forwardRef<any, any>((_, ref) => { const UserCard = forwardRef<any, any>((_, ref) => {
const {data, refresh} = useUserData() const {data, refresh} = useUserData()
@@ -198,7 +199,9 @@ const UserCard = forwardRef<any, any>((_, ref) => {
/> />
<View className={'flex flex-col'}> <View className={'flex flex-col'}>
<Text style={{color: '#ffffff'}}>{getDisplayName() || '点击登录'}</Text> <Text style={{color: '#ffffff'}}>{getDisplayName() || '点击登录'}</Text>
{getRootDomain() && (
<View><Tag type="success">{getRoleName()}</Tag></View> <View><Tag type="success">{getRoleName()}</Tag></View>
)}
</View> </View>
</View> </View>
</View> </View>