You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
4.3 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using log4net;
using System.Windows;
using Admin.Core.Common;
using Admin.Core.IService;
using Admin.Core.Service;
using Microsoft.Extensions.DependencyInjection;
using System.Collections.ObjectModel;
using Admin.Core.Model.Model_New;
using StackExchange.Profiling.Internal;
using System;
using System.Text.Json;
using System.Windows.Input;
using MaterialDesignThemes.Wpf;
using NPOI.Util.Collections;
using Aucma.Core.BoxFoam.Config;
using Aucma.Core.BoxFoam.Models;
using Aucma.Core.BoxFoam.Views;
namespace Aucma.Core.BoxFoam.ViewModels
{
public partial class LoginPageViewModel : ObservableObject
{
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(LoginPageViewModel));
protected readonly IBaseTeamMembersServices _baseTeamMembersServices;
private AppConfig appConfig = AppConfig.Instance;
public LoginPageViewModel() {
_baseTeamMembersServices = App.ServiceProvider.GetService<IBaseTeamMembersServices>();
AddTeamData();
}
#region 登录
/// <summary>
/// 登录
/// </summary>
/// <param name="team">选择的班组信息</param>
/// <param name="userName">用户名</param>
/// <param name="passWord">密码</param>
public void Login(BaseTeamMembers team, string userName, string passWord,object parameter)
{
try
{
//获取Token
string url = $"http://10.100.72.10:8080/login";
var content = new
{
username = userName,
password = passWord
};
var loginResult = HttpHelper.Post(url, content.ToJson());//发送用户名密码给API
Result result = JsonSerializer.Deserialize<Result>(loginResult);
if (result == null)
{
MessageBox.Show("登录失败!", "系统提醒");
return;
}
if (result.code == 200)
{
// 存储账号信息
appConfig.TeamCode = team.TeamCode;
appConfig.TeamName = team.TeamName;
appConfig.Account = userName;
//跳转
var window = parameter as LoginPageView;
if (window == null) return;
window.Hide();
MainWindow indexPage = MainWindow.Instance;
indexPage.Show();
// window.Close();
}
else
{
MessageBox.Show($"登录失败!{result.msg}", "系统提醒");
return;
}
}
catch (Exception ex)
{
log.Error($"登录异常:{ex.Message}");
}
}
#endregion
#region 关闭当前界面
/// <summary>
/// 关闭当前界面
/// </summary>
/// <param name="parameter"></param>
public void CloseWindow(object parameter)
{
var window = parameter as Window;
if (window == null) return;
window.Close();
}
#endregion
#region 班组数据
/// <summary>
/// 班组数据
/// </summary>
private ObservableCollection<BaseTeamMembers> _teamMembersList = new ObservableCollection<BaseTeamMembers>();
public ObservableCollection<BaseTeamMembers> TeamMembersList
{
get
{
return this._teamMembersList;
}
set
{
SetProperty(ref _teamMembersList, value);
}
}
#endregion
#region 班组添加到集合中
public void AddTeamData()
{
var baseTeamMembersList = _baseTeamMembersServices.QueryAsync(d => d.ProductLineCode == appConfig.ProductlineCode && d.TeamCode.Contains(appConfig.TeamConfig)).Result;
if (baseTeamMembersList == null) return;
foreach (var item in baseTeamMembersList)
{
TeamMembersList.Add(item);
}
}
#endregion
}
}