feat:登录画面db关联,算法配置与切工仪配置的权限修改

master
sunhonglei 7 months ago
parent 9452aca780
commit 0fcc54cfed
  1. 41
      LoginWindow.xaml.cs
  2. 2
      SparkClient.csproj
  3. BIN
      SparkDB.db
  4. 81
      ViewModel/Configuration/AlgorithmConfigVM.cs
  5. 16
      ViewModel/Configuration/CutConfigVM.cs
  6. 19
      ViewModel/Grading/DiamondSelectVM.cs
  7. 2
      Views/Configuration/AlgorithmConfigPage.xaml
  8. 2
      Views/Configuration/CutConfigPage.xaml

@ -37,15 +37,16 @@ public partial class LoginWindow : Window
private void ConfirmButton_Click(object sender, RoutedEventArgs e) private void ConfirmButton_Click(object sender, RoutedEventArgs e)
{ {
#if DEBUG #if DEBUG
new MainWindow().Show(); new MainWindow().Show();
this.Close(); this.Close();
#else #else
string account = AccountTextBox.Text; string account = AccountTextBox.Text;
string password = PasswordBox.Password; string password = PasswordBox.Password;
string passwordEnc = Common.GenerateMd5Hash(password); string passwordEnc = Common.GenerateMd5Hash(password);
string passworddb = getPassword(account); string passworddb = getPassword(account);
string passworddbEnc = Common.GenerateMd5Hash(passworddb); if (string.IsNullOrEmpty(password) || !passworddb.Equals(passwordEnc))
if (string.IsNullOrEmpty(passworddb) || !passwordEnc.Equals(passworddbEnc))
{ {
MessageBox.Show(MultilingualHelper.getString("NoPassword")); MessageBox.Show(MultilingualHelper.getString("NoPassword"));
return; return;
@ -58,22 +59,24 @@ public partial class LoginWindow : Window
private void savePassword() private void savePassword()
{ {
if (IsRemberPassword.IsChecked ?? false || "Admin".Equals(AccountTextBox.Text)) if (IsRemberPassword.IsChecked ?? false)
{ {
Settings saveAccount = new Settings() if (!"admin".Equals(AccountTextBox.Text)){
{ Settings saveAccount = new Settings()
Key = "SAVE_ACCOUNT", {
ItemName = "保存用户名", Key = "SAVE_ACCOUNT",
Value = AccountTextBox.Text, ItemName = "保存用户名",
}; Value = AccountTextBox.Text,
saveAccount.insert(); };
Settings savePassword = new Settings() saveAccount.insert();
{ Settings savePassword = new Settings()
Key = "SAVE_PASSWORD", {
ItemName = "保存密码", Key = "SAVE_PASSWORD",
Value = PasswordBox.Password, ItemName = "保存密码",
}; Value = PasswordBox.Password,
savePassword.insert(); };
savePassword.insert();
}
} }
else else
{ {
@ -96,7 +99,7 @@ public partial class LoginWindow : Window
{ {
Key = "PERMISSIONS", Key = "PERMISSIONS",
ItemName = "权限", ItemName = "权限",
Value = PasswordBox.Password, Value = AccountTextBox.Text,
}; };
PERMISSIONS.insert(); PERMISSIONS.insert();
} }
@ -104,7 +107,7 @@ public partial class LoginWindow : Window
private string getPassword(string userName) private string getPassword(string userName)
{ {
string password = string.Empty; string password = string.Empty;
string sql = $"SELECT USER_PASSWORD FROM USER WHERE USER_NAME='{userName}'"; string sql = $"SELECT USER_PASSWORD FROM USER WHERE USER_NAME='{userName}';";
DataTable dt = DataBaseHelper.ExecuteQuery(sql); DataTable dt = DataBaseHelper.ExecuteQuery(sql);
if (dt != null && dt.Rows.Count > 0) if (dt != null && dt.Rows.Count > 0)
{ {

@ -74,7 +74,7 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
<None Update="SparkDB.db"> <None Update="SparkDB.db">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Remove="Resource\Images\config_3x.png" /> <None Remove="Resource\Images\config_3x.png" />
<None Remove="Resource\Images\diam_3x.png" /> <None Remove="Resource\Images\diam_3x.png" />

Binary file not shown.

@ -7,32 +7,35 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using SparkClient.Model.Entity; using SparkClient.Model.Entity;
using SparkClient.Model.Helper; using SparkClient.Model.Helper;
using SparkClient.ViewModel.Configuration.SettingsPages;
namespace SparkClient.ViewModel.Configuration; namespace SparkClient.ViewModel.Configuration;
public class AlgorithmConfigVM : BaseViewModel public class AlgorithmConfigVM : BaseViewModel
{ {
public ICommand SaveAlgorithmDataCommand { get; } public ICommand SaveAlgorithmDataCommand { get; }
public ICommand BeautifyJsonCommand { get; } public ICommand BeautifyJsonCommand { get; }
public ICommand UglifyJsonCommand { get; } public ICommand UglifyJsonCommand { get; }
private bool _isEnabled;
private string _AlgorithmConfigJson; public bool IsEnabled { get { return _isEnabled; } set { _isEnabled = value; OnPropertyChanged(nameof(IsEnabled)); } }
public string AlgorithmConfigJson { get { return _AlgorithmConfigJson; } set { _AlgorithmConfigJson = value; OnPropertyChanged("AlgorithmConfigJson"); } }
public AlgorithmConfigVM() private string _AlgorithmConfigJson;
{ public string AlgorithmConfigJson { get { return _AlgorithmConfigJson; } set { _AlgorithmConfigJson = value; OnPropertyChanged("AlgorithmConfigJson"); } }
SaveAlgorithmDataCommand = new RelayCommand(SaveAlgorithmData); public AlgorithmConfigVM()
BeautifyJsonCommand = new RelayCommand(BeautifyJson); {
UglifyJsonCommand = new RelayCommand(UglifyJson); SaveAlgorithmDataCommand = new RelayCommand(SaveAlgorithmData);
InitAlgorithmData(null); BeautifyJsonCommand = new RelayCommand(BeautifyJson);
} UglifyJsonCommand = new RelayCommand(UglifyJson);
InitAlgorithmData(null);
/// <summary> }
/// 初始化算法数据
/// </summary> /// <summary>
/// <param name="param"></param> /// 初始化算法数据
public void InitAlgorithmData(object param) /// </summary>
{ /// <param name="param"></param>
public void InitAlgorithmData(object param)
{
AlgorithmConfigJson = "{}"; AlgorithmConfigJson = "{}";
string sql = @"SELECT JSON as json FROM ALGORITHM_CONFIG ORDER BY JSON_ORDER"; string sql = @"SELECT JSON as json FROM ALGORITHM_CONFIG ORDER BY JSON_ORDER";
DataTable dataTable = DataBaseHelper.ExecuteQuery(sql); DataTable dataTable = DataBaseHelper.ExecuteQuery(sql);
@ -44,26 +47,26 @@ public class AlgorithmConfigVM : BaseViewModel
sb.Append(row["json"].ToString()); sb.Append(row["json"].ToString());
} }
} }
if(sb.Length>0) if (sb.Length > 0)
{ {
AlgorithmConfigJson = JToken.Parse(sb.ToString()).ToString(); AlgorithmConfigJson = JToken.Parse(sb.ToString()).ToString();
} }
} }
/// <summary>
/// 保存数据 /// <summary>
/// </summary> /// 保存数据
/// <param name="param"></param> /// </summary>
public void SaveAlgorithmData(object param) /// <param name="param"></param>
{ public void SaveAlgorithmData(object param)
{
DataBaseHelper.BeginTransaction(); DataBaseHelper.BeginTransaction();
string temp = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(AlgorithmConfigJson)); string temp = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(AlgorithmConfigJson));
string deleteSql = @"DELETE FROM ALGORITHM_CONFIG"; string deleteSql = @"DELETE FROM ALGORITHM_CONFIG";
DataBaseHelper.ExecuteNonQuery(deleteSql); DataBaseHelper.ExecuteNonQuery(deleteSql);
int order = 0; int order = 0;
int insertCount = 0; int insertCount = 0;
while (temp.Length>2000) while (temp.Length > 2000)
{ {
AlgorithmConfigEntity entity = new AlgorithmConfigEntity() AlgorithmConfigEntity entity = new AlgorithmConfigEntity()
{ {
@ -80,7 +83,7 @@ public class AlgorithmConfigVM : BaseViewModel
}; };
insertCount += DataBaseHelper.ExecuteNonQuery(sql, sqliteParameters); insertCount += DataBaseHelper.ExecuteNonQuery(sql, sqliteParameters);
} }
if (temp.Length>0) if (temp.Length > 0)
{ {
AlgorithmConfigEntity entity = new AlgorithmConfigEntity() AlgorithmConfigEntity entity = new AlgorithmConfigEntity()
{ {
@ -106,8 +109,18 @@ public class AlgorithmConfigVM : BaseViewModel
Growl.Error(MultilingualHelper.getString("SaveFail")); Growl.Error(MultilingualHelper.getString("SaveFail"));
DataBaseHelper.rollback(); DataBaseHelper.rollback();
} }
} }
private void IsEnabledByRole (){
string PERMISSIONS = Settings.SelectValueByName("PERMISSIONS");
if ("admin".Equals(PERMISSIONS))
{
IsEnabled = true;
}
else
{
IsEnabled = false;
}
}
/// <summary> /// <summary>
/// 美化JSON /// 美化JSON
/// </summary> /// </summary>
@ -122,8 +135,6 @@ public class AlgorithmConfigVM : BaseViewModel
{ {
Growl.ErrorGlobal(ex.Message); Growl.ErrorGlobal(ex.Message);
} }
} }
/// <summary> /// <summary>

@ -7,6 +7,7 @@ using SparkClient.Model.Helper;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolTip; using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolTip;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using Microsoft.Data.Sqlite; using Microsoft.Data.Sqlite;
using SparkClient.ViewModel.Configuration.SettingsPages;
namespace SparkClient.ViewModel.Configuration; namespace SparkClient.ViewModel.Configuration;
@ -16,6 +17,8 @@ public class CutConfigVM: BaseViewModel
public ICommand SaveCutConfigDataCommand { get; } public ICommand SaveCutConfigDataCommand { get; }
public ICommand DelCutRowCommand { get; } public ICommand DelCutRowCommand { get; }
private bool _isEnabled;
public bool IsEnabled { get { return _isEnabled; } set { _isEnabled = value; OnPropertyChanged(nameof(IsEnabled)); } }
public DataTable _cutterInfos; public DataTable _cutterInfos;
public DataTable CutterInfos { get { return _cutterInfos; } set { _cutterInfos = value; OnPropertyChanged("CutterInfos"); } } public DataTable CutterInfos { get { return _cutterInfos; } set { _cutterInfos = value; OnPropertyChanged("CutterInfos"); } }
@ -144,7 +147,18 @@ public class CutConfigVM: BaseViewModel
Growl.Error("保存失败"); Growl.Error("保存失败");
} }
} }
private void IsEnabledByRole()
{
string PERMISSIONS = Settings.SelectValueByName("PERMISSIONS");
if ("admin".Equals(PERMISSIONS))
{
IsEnabled = true;
}
else
{
IsEnabled = false;
}
}
/// <summary> /// <summary>
/// 删除一行数据 /// 删除一行数据
/// </summary> /// </summary>

@ -116,7 +116,7 @@ public class DiamondSelectVM : BaseViewModel
{ {
#if DEBUG #if DEBUG
DoStartGrading(param); DoStartGrading(param);
#else #else
LoadingDialog loading = new LoadingDialog(); LoadingDialog loading = new LoadingDialog();
try try
{ {
@ -204,7 +204,7 @@ public class DiamondSelectVM : BaseViewModel
ShowErrorMessage(MultilingualHelper.getString("JsonParseFailure"), loading); ShowErrorMessage(MultilingualHelper.getString("JsonParseFailure"), loading);
return; return;
} }
parameter.Standard = "IGI 2024"; parameter.Standard = getStandardName();
parameter.Shape = value.Split(" ")[0]; parameter.Shape = value.Split(" ")[0];
parameter.CrownType = value.Split(" ")[1]; parameter.CrownType = value.Split(" ")[1];
parameter.PavType = value.Split(" ")[2]; parameter.PavType = value.Split(" ")[2];
@ -238,9 +238,22 @@ public class DiamondSelectVM : BaseViewModel
finally { finally {
} }
#endif #endif
} }
private string getStandardName()
{
string sql = $"select\r\nRULE_NAME AS NAME,\r\nRULE_EN_NAME AS EN_NAME\r\nfrom\r\nsetting\r\nleft join rule\r\non setting.SETTING_P = rule.RULE_ID\r\nwhere\r\nsetting.SETTING_ID = 'RuleId'\r\n";
DataTable dataTable = DataBaseHelper.ExecuteQuery(sql);
if (dataTable == null || dataTable.Rows.Count == 0)
{
return "";
}
else
{
return dataTable.Rows[0][MultilingualHelper.getString("NameType")].ToString()??"";
}
}
// 将 UI 操作调度到主线程并显示错误信息 // 将 UI 操作调度到主线程并显示错误信息
void ShowErrorMessage(string errorMessage, LoadingDialog loading) void ShowErrorMessage(string errorMessage, LoadingDialog loading)
{ {

@ -23,7 +23,7 @@
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Button Grid.Column="0" Grid.Row="0" Width="100" Margin="0 5 " Padding="0" Height="50" <Button Grid.Column="0" Grid.Row="0" Width="100" Margin="0 5 " Padding="0" Height="50"
BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding SaveAlgorithmDataCommand}"> BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding SaveAlgorithmDataCommand}" IsEnabled="{Binding IsEnabled}">
<Border HorizontalAlignment="Center" <Border HorizontalAlignment="Center"
VerticalAlignment="Center" VerticalAlignment="Center"
Margin="0 0 0 0" Margin="0 0 0 0"

@ -21,7 +21,7 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button Grid.Column="0" Width="100" Margin="10 5 " Padding="0" Height="50" <Button Grid.Column="0" Width="100" Margin="10 5 " Padding="0" Height="50"
BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding SaveCutConfigDataCommand}"> BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding SaveCutConfigDataCommand}" IsEnabled="{Binding IsEnabled}">
<Border HorizontalAlignment="Center" <Border HorizontalAlignment="Center"
VerticalAlignment="Center" VerticalAlignment="Center"
Margin="0 0 0 0" Margin="0 0 0 0"

Loading…
Cancel
Save