73 lines
2.2 KiB
C#
73 lines
2.2 KiB
C#
using CommunityToolkit.Mvvm.ComponentModel;
|
||
using Models.Const;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace SamplePreSystem.UI.ViewModel.Login
|
||
{
|
||
public partial class UserInfoViewModel :ObservableObject
|
||
{
|
||
[ObservableProperty]
|
||
public string userName;
|
||
|
||
[ObservableProperty]
|
||
public string userRoles;
|
||
|
||
public UserInfoViewModel()
|
||
{
|
||
|
||
InitializeUserInfo();
|
||
}
|
||
|
||
|
||
private void InitializeUserInfo()
|
||
{
|
||
// 获取当前登录用户信息
|
||
if (SystemConst.loginUserInfo != null && SystemConst.loginUserInfo.user != null)
|
||
{
|
||
UserName = SystemConst.loginUserInfo.user.username;
|
||
|
||
// 这里需要获取用户角色信息
|
||
// 由于当前登录用户信息中没有直接包含角色信息,我们需要通过查询获取
|
||
// 这里暂时显示占位符,实际项目中需要从数据库查询
|
||
UserRoles = "获取中...";
|
||
|
||
// 异步获取角色信息
|
||
Task.Run(() =>
|
||
{
|
||
try
|
||
{
|
||
// 这里应该调用BLL层的方法获取用户角色
|
||
// 由于系统中已有UsersBll类,我们可以使用它
|
||
SamplePre.ProcessBll.BLL.UsersBll usersBll = new SamplePre.ProcessBll.BLL.UsersBll();
|
||
var userExt = usersBll.GetUsers().FirstOrDefault(u => u.username == UserName);
|
||
|
||
if (userExt != null)
|
||
{
|
||
UserRoles = userExt.all_role_names;
|
||
}
|
||
else
|
||
{
|
||
UserRoles = "未知角色";
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
UserRoles = "获取角色失败";
|
||
}
|
||
});
|
||
}
|
||
else
|
||
{
|
||
UserName = "未登录";
|
||
UserRoles = "无";
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
}
|