Browse Source

权限修复by炉管测试问题记录

huangping 2 weeks ago
parent
commit
8c2aec5431

+ 1 - 1
Furnace/FurnaceUI/Controls/CassetteViewV2.xaml

@@ -17,7 +17,7 @@
     <Grid>
         <Viewbox>
             <Viewbox.ContextMenu>
-                <ContextMenu>
+                <ContextMenu Visibility="{Binding IsEnableOperating,RelativeSource={RelativeSource AncestorType={x:Type UserControl}},Converter={StaticResource bool2VisibilityConverter}}">
                     <MenuItem Click="CreateCassette" Header="Create Cassette"/>
                     <MenuItem Click="DeleteCassette" Header="Delete Cassette"/>
                 </ContextMenu>

+ 13 - 0
Furnace/FurnaceUI/Controls/CassetteViewV2.xaml.cs

@@ -88,6 +88,19 @@ namespace FurnaceUI.Controls.Parts
             DependencyProperty.Register("WaferCount", typeof(int), typeof(CassetteViewV2), new PropertyMetadata(0));
 
 
+
+        public bool  IsEnableOperating
+        {
+            get { return (bool )GetValue(IsEnableOperatingProperty); }
+            set { SetValue(IsEnableOperatingProperty, value); }
+        }
+
+        // Using a DependencyProperty as the backing store for IsEnableOperating.  This enables animation, styling, binding, etc...
+        public static readonly DependencyProperty IsEnableOperatingProperty =
+            DependencyProperty.Register("IsEnableOperating", typeof(bool ), typeof(CassetteViewV2), new PropertyMetadata(true));
+
+
+
         private string _cassetteStatus;
         /// <summary>
         /// Foup的状态,如果在Processing中会显示绿色

+ 1 - 1
Furnace/FurnaceUI/Views/Editors/RecipeTempModeViewModel.cs

@@ -258,7 +258,7 @@ namespace FurnaceUI.Views.Editors
         public void ShowProfileTable()
         {
             var windowManager = IoC.Get<IWindowManager>();//"Combination.ProfileCondition"
-            StringParam profile = CurrentRecipe.ConfigItems.FirstOrDefault(x => x.Name == "Combination.ProfileCondition") as StringParam;
+            StringParam profile = CurrentRecipe?.ConfigItems.FirstOrDefault(x => x.Name == "Combination.ProfileCondition") as StringParam;
             if (profile == null)
             {
                 DialogBox.ShowDialog(DialogButton.Cancel, DialogType.INFO, "Please set the combinatin file first");

+ 3 - 3
Furnace/FurnaceUI/Views/Operations/Maintenances/ManualSetViewModel.cs

@@ -1437,7 +1437,7 @@ namespace FurnaceUI.Views.Recipes
                     recipeTempModeViewModel.SelectBtnName = SelectBtnName;
                     recipeTempModeViewModel.IsManualSet = true;
                     recipeTempModeViewModel.SelectProfileTable = SplitTemperatureControlMode(TemperatureControlMode);
-                    var rtn = (wm as WindowManager)?.ShowDialogWithTitle(recipeTempModeViewModel, null, "Temp Mode");
+                    var rtn = (wm as WindowManager)?.ShowDialogWithTitle(recipeTempModeViewModel,this, null, "Temp Mode");
                     if ((bool)rtn)
                     {
                         SelectBtnName = recipeTempModeViewModel.SelectBtnName;
@@ -1460,7 +1460,7 @@ namespace FurnaceUI.Views.Recipes
                     tempCorrectionEditViewModel.IsEnabledControl = false;
                     tempCorrectionEditViewModel.AutoSelectVisibility = Visibility.Visible;
                     //  tempOffsetTableViewModel.SelectedRecipeStep = SelectedRecipeStep;
-                    rtn = (wm as WindowManager)?.ShowDialogWithTitle(tempCorrectionEditViewModel, null, "Temp Correct Table");
+                    rtn = (wm as WindowManager)?.ShowDialogWithTitle(tempCorrectionEditViewModel,this, null, "Temp Correct Table");
                     if ((bool)rtn)
                     {
                         TemperatureCorrect = tempCorrectionEditViewModel.ResultString;
@@ -1472,7 +1472,7 @@ namespace FurnaceUI.Views.Recipes
                     tempOffsetTableViewModel1.IsEnabledControl = false;
                     tempOffsetTableViewModel1.IsManualSet = true;
                     tempOffsetTableViewModel1.TempOffsetTableSelected = TemperaturePID;
-                    rtn = (wm as WindowManager)?.ShowDialogWithTitle(tempOffsetTableViewModel1, null, "Temp PID Table");
+                    rtn = (wm as WindowManager)?.ShowDialogWithTitle(tempOffsetTableViewModel1,this, null, "Temp PID Table");
                     if ((bool)rtn)
                     {
                         TemperaturePID = tempOffsetTableViewModel1.TempOffsetTableSelected;

+ 1 - 1
Furnace/FurnaceUI/Views/Operations/Maintenances/N2PurgeStatusView.xaml

@@ -93,7 +93,7 @@
                                 FontSize="12"
                                 Text="Sequence Change:"/>
 
-                            <Button Height="30" Width="120" Content="Select">
+                            <Button Height="30" Width="120" Content="Select" IsEnabled="{Binding IsPermission}">
                                 <i:Interaction.Triggers>
                                     <i:EventTrigger EventName="Click">
                                         <cal:ActionMessage MethodName="SequenceSelect"/>

+ 2 - 2
Furnace/FurnaceUI/Views/Operations/TransferMain/BoatModifyViewModel.cs

@@ -96,11 +96,11 @@ namespace FurnaceUI.Views.Operations
         [Subscription("PM1.Status")]
         public string PM1Status { get; set; }
 
-        public bool IsBoatModifyEnabled
+        public bool IsEnableWaferManualOperation
         {
             get
             {
-                return (PM1Status == "Init" || PM1Status == "Idle" || PM1Status == "Error") && (RtStatus == "Init" || RtStatus == "Idle" || RtStatus == "Error");
+                return IsPermission&&(PM1Status == "Init" || PM1Status == "Idle" || PM1Status == "Error") && (RtStatus == "Init" || RtStatus == "Idle" || RtStatus == "Error");
             }
         }
         private List<string> _boatMapWafers = new List<string>();

+ 46 - 24
Furnace/FurnaceUI/Views/Operations/TransferMain/SelfCheckView.xaml

@@ -604,7 +604,8 @@
                     CarrierModule="FIMS2"
                     CassetteType="{Binding FIMS2CarrierData.CarrierType}"
                     Visibility="{Binding FIMS2Installed, Converter={StaticResource bool2VisibilityConverter}}"
-                    WaferCount="{Binding FIMS2WaferCount}"/>
+                    WaferCount="{Binding FIMS2WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <parts:CassetteViewV2
                     Canvas.Left="610"
                     Canvas.Top="465"
@@ -614,7 +615,8 @@
                     CarrierModule="FIMS1"
                     CassetteType="{Binding FIMS1CarrierData.CarrierType}"
                     Visibility="{Binding FIMS1Installed, Converter={StaticResource bool2VisibilityConverter}}"
-                    WaferCount="{Binding FIMS1WaferCount}"/>
+                    WaferCount="{Binding FIMS1WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="735"
                     Canvas.Top="34"
@@ -632,7 +634,7 @@
                     CarrierData="{Binding Stocker11CarrierData}"
                     CarrierModule="Stocker11"
                     CassetteType="{Binding Stocker11CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker11WaferCount}"/>
+                    WaferCount="{Binding Stocker11WaferCount}" IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="853"
                     Canvas.Top="34"
@@ -650,7 +652,7 @@
                     CarrierData="{Binding Stocker12CarrierData}"
                     CarrierModule="Stocker12"
                     CassetteType="{Binding Stocker12CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker12WaferCount}"/>
+                    WaferCount="{Binding Stocker12WaferCount}" IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="617"
                     Canvas.Top="34"
@@ -668,7 +670,8 @@
                     CarrierData="{Binding Stocker10CarrierData}"
                     CarrierModule="Stocker10"
                     CassetteType="{Binding Stocker10CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker10WaferCount}"/>
+                    WaferCount="{Binding Stocker10WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="499"
                     Canvas.Top="34"
@@ -686,7 +689,8 @@
                     CarrierData="{Binding Stocker9CarrierData}"
                     CarrierModule="Stocker9"
                     CassetteType="{Binding Stocker9CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker9WaferCount}"/>
+                    WaferCount="{Binding Stocker9WaferCount}"
+                     IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="853"
                     Canvas.Top="-54"
@@ -704,7 +708,8 @@
                     CarrierData="{Binding Stocker16CarrierData}"
                     CarrierModule="Stocker16"
                     CassetteType="{Binding Stocker16CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker16WaferCount}"/>
+                    WaferCount="{Binding Stocker16WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="735"
                     Canvas.Top="-54"
@@ -722,7 +727,8 @@
                     CarrierData="{Binding Stocker15CarrierData}"
                     CarrierModule="Stocker15"
                     CassetteType="{Binding Stocker15CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker15WaferCount}"/>
+                    WaferCount="{Binding Stocker15WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="617"
                     Canvas.Top="-54"
@@ -740,7 +746,8 @@
                     CarrierData="{Binding Stocker14CarrierData}"
                     CarrierModule="Stocker14"
                     CassetteType="{Binding Stocker14CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker14WaferCount}"/>
+                    WaferCount="{Binding Stocker14WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="499"
                     Canvas.Top="-54"
@@ -758,7 +765,8 @@
                     CarrierData="{Binding Stocker13CarrierData}"
                     CarrierModule="Stocker13"
                     CassetteType="{Binding Stocker13CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker13WaferCount}"/>
+                    WaferCount="{Binding Stocker13WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="618"
                     Canvas.Top="124"
@@ -776,7 +784,8 @@
                     CarrierData="{Binding Stocker6CarrierData}"
                     CarrierModule="Stocker6"
                     CassetteType="{Binding Stocker6CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker6WaferCount}"/>
+                    WaferCount="{Binding Stocker6WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="499"
                     Canvas.Top="124"
@@ -794,7 +803,8 @@
                     CarrierData="{Binding Stocker5CarrierData}"
                     CarrierModule="Stocker5"
                     CassetteType="{Binding Stocker5CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker5WaferCount}"/>
+                    WaferCount="{Binding Stocker5WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="735"
                     Canvas.Top="124"
@@ -812,7 +822,8 @@
                     CarrierData="{Binding Stocker7CarrierData}"
                     CarrierModule="Stocker7"
                     CassetteType="{Binding Stocker7CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker7WaferCount}"/>
+                    WaferCount="{Binding Stocker7WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="853"
                     Canvas.Top="124"
@@ -830,7 +841,8 @@
                     CarrierData="{Binding Stocker8CarrierData}"
                     CarrierModule="Stocker8"
                     CassetteType="{Binding Stocker8CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker8WaferCount}"/>
+                    WaferCount="{Binding Stocker8WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="29"
                     Canvas.Top="125"
@@ -848,7 +860,8 @@
                     CarrierData="{Binding Stocker17CarrierData}"
                     CarrierModule="Stocker17"
                     CassetteType="{Binding Stocker17CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker17WaferCount}"/>
+                    WaferCount="{Binding Stocker17WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="147"
                     Canvas.Top="125"
@@ -866,7 +879,8 @@
                     CarrierData="{Binding Stocker18CarrierData}"
                     CarrierModule="Stocker18"
                     CassetteType="{Binding Stocker18CarrierData.CarrierType}"
-                    WaferCount="{Binding Stocker18WaferCount}"/>
+                    WaferCount="{Binding Stocker18WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="735"
                     Canvas.Top="214"
@@ -884,7 +898,8 @@
                     CarrierData="{Binding Stocker3CarrierData}"
                     CarrierModule="Stocker3"
                     CassetteType="{Binding Stocker3CarrierType}"
-                    WaferCount="{Binding Stocker3WaferCount}"/>
+                    WaferCount="{Binding Stocker3WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="853"
                     Canvas.Top="214"
@@ -902,7 +917,8 @@
                     CarrierData="{Binding Stocker4CarrierData}"
                     CarrierModule="Stocker4"
                     CassetteType="{Binding Stocker4CarrierType}"
-                    WaferCount="{Binding Stocker4WaferCount}"/>
+                    WaferCount="{Binding Stocker4WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="499"
                     Canvas.Top="214"
@@ -920,7 +936,8 @@
                     CarrierData="{Binding Stocker1CarrierData}"
                     CarrierModule="Stocker1"
                     CassetteType="{Binding Stocker1CarrierType}"
-                    WaferCount="{Binding Stocker1WaferCount}"/>
+                    WaferCount="{Binding Stocker1WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <Border
                     Canvas.Left="617"
                     Canvas.Top="214"
@@ -938,7 +955,8 @@
                     CarrierData="{Binding Stocker2CarrierData}"
                     CarrierModule="Stocker2"
                     CassetteType="{Binding Stocker2CarrierType}"
-                    WaferCount="{Binding Stocker2WaferCount}"/>
+                    WaferCount="{Binding Stocker2WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <parts:CassetteViewV2
                     Canvas.Left="20"
                     Canvas.Top="-38"
@@ -948,7 +966,8 @@
                     CarrierModule="LP3"
                     CassetteType="{Binding LP3CarrierData.CarrierType}"
                     Visibility="{Binding LP3Installed, Converter={StaticResource bool2VisibilityConverter}}"
-                    WaferCount="{Binding LP3WaferCount}"/>
+                    WaferCount="{Binding LP3WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <parts:CassetteViewV2
                     Canvas.Left="140"
                     Canvas.Top="-38"
@@ -958,7 +977,8 @@
                     CarrierModule="LP4"
                     CassetteType="{Binding LP4CarrierData.CarrierType}"
                     Visibility="{Binding LP4Installed, Converter={StaticResource bool2VisibilityConverter}}"
-                    WaferCount="{Binding LP4WaferCount}"/>
+                    WaferCount="{Binding LP4WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <parts:CassetteViewV2
                     Canvas.Left="20"
                     Canvas.Top="215"
@@ -968,7 +988,8 @@
                     CarrierModule="LP1"
                     CassetteType="{Binding LP1CarrierData.CarrierType}"
                     Visibility="{Binding LP1Installed, Converter={StaticResource bool2VisibilityConverter}}"
-                    WaferCount="{Binding LP1WaferCount}"/>
+                    WaferCount="{Binding LP1WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <parts:CassetteViewV2
                     Canvas.Left="140"
                     Canvas.Top="215"
@@ -978,7 +999,8 @@
                     CarrierModule="LP2"
                     CassetteType="{Binding LP2CarrierData.CarrierType}"
                     Visibility="{Binding LP2Installed, Converter={StaticResource bool2VisibilityConverter}}"
-                    WaferCount="{Binding LP2WaferCount}"/>
+                    WaferCount="{Binding LP2WaferCount}"
+                    IsEnableOperating="{Binding IsManagerPermission}"/>
                 <deviceControl:AITSensor
                     Canvas.Left="1"
                     Canvas.Top="170"

+ 0 - 14
Furnace/FurnaceUI/Views/Operations/TransferMain/SelfCheckViewModel.cs

@@ -125,8 +125,6 @@ namespace FurnaceUI.Views.Operations
         public RobotMoveInfo CassetteRobotMoveInfo { get; set; }
         [Subscription("WaferRobot.RobotMoveInfo")]
         public RobotMoveInfo WaferRobotMoveInfo { get; set; }
-        public ICommand CreateCassetteCommand { get; private set; }
-        public ICommand DeleteCassetteCommand { get; private set; }
         [Subscription("CarrierRobot.Status")]
         public string CassetteRobotStatus { get; set; }
         public bool IsCassetteRobotInitialized
@@ -917,8 +915,6 @@ namespace FurnaceUI.Views.Operations
         public SelfCheckViewModel()
         {
             this.DisplayName = "SelfCheckViewModel";
-            CreateCassetteCommand = new DelegateCommand<string>(CreateCassette);
-            DeleteCassetteCommand = new DelegateCommand<string>(DeleteCassette);
             EnableTimer(true);
         }
 
@@ -1298,16 +1294,6 @@ namespace FurnaceUI.Views.Operations
             InvokeClient.Instance.Service.DoOperation("System.Abort");
         }
 
-        public void CreateCassette(string module)
-        {
-            InvokeClient.Instance.Service.DoOperation("CreateCarrier", module, 0);
-        }
-
-        public void DeleteCassette(string module)
-        {
-            InvokeClient.Instance.Service.DoOperation("DeleteCarrier", module, 0);
-        }
-
         public void Home(string module)
         {
             InvokeClient.Instance.Service.DoOperation($"{module}.Home");

+ 7 - 7
Furnace/FurnaceUI/Views/Parameter/EditViewModel.cs

@@ -1303,38 +1303,38 @@ namespace FurnaceUI.Views.Parameter
                 case "TempPID":
                     TempPIDEditViewModel tempPIDEditViewModel = new TempPIDEditViewModel(CurrentParameter.PrefixPath, CurrentParameter.Name, CurrentFileNode.Permission);
                     tempPIDEditViewModel.ParameterType = CurrentParameterType;
-                    (windowManager as WindowManager)?.ShowDialogWithTitle(tempPIDEditViewModel, null, "TempPID Edit");
+                    (windowManager as WindowManager)?.ShowDialogWithTitle(tempPIDEditViewModel,this, null, "TempPID Edit");
                     break;
                 case "TempCorrection":
                     TempCorrectionEditViewModel tempCorrectionEditViewModel = new TempCorrectionEditViewModel(CurrentParameter.PrefixPath, CurrentParameter.Name, CurrentFileNode.Permission);
                     tempCorrectionEditViewModel.ParameterType = CurrentParameterType;
                     tempCorrectionEditViewModel.IsManualSet = true;
-                    (windowManager as WindowManager)?.ShowDialogWithTitle(tempCorrectionEditViewModel, null, "Temp Correction Edit");
+                    (windowManager as WindowManager)?.ShowDialogWithTitle(tempCorrectionEditViewModel,this, null, "Temp Correction Edit");
                     break;
                 case "TempProfile":
                     TempProfileEditViewModel tempProfileEditViewModel = new TempProfileEditViewModel(CurrentParameter.PrefixPath, CurrentParameter.Name, CurrentFileNode.Permission);
                     tempProfileEditViewModel.ParameterType = CurrentParameterType;
-                    (windowManager as WindowManager)?.ShowDialogWithTitle(tempProfileEditViewModel, null, "Temp Profile Edit");
+                    (windowManager as WindowManager)?.ShowDialogWithTitle(tempProfileEditViewModel,this, null, "Temp Profile Edit");
                     break;
                 case "LeakCheckCondition":
                     LeakCheckConditionEditViewModel leakCheckConditionEditViewModel = new LeakCheckConditionEditViewModel(CurrentParameter.PrefixPath, CurrentParameter.Name, CurrentFileNode.Permission);
                     leakCheckConditionEditViewModel.ParameterType = CurrentParameterType;
-                    (windowManager as WindowManager)?.ShowDialogWithTitle(leakCheckConditionEditViewModel, null, "Leak Check Condition Edit");
+                    (windowManager as WindowManager)?.ShowDialogWithTitle(leakCheckConditionEditViewModel,this, null, "Leak Check Condition Edit");
                     break;
                 case "APCPID":
                     APCPIDEditViewModel aPCPIDEditViewModel = new APCPIDEditViewModel(CurrentParameter.PrefixPath, CurrentParameter.Name, CurrentFileNode.Permission);
                     aPCPIDEditViewModel.ParameterType = CurrentParameterType;
-                    (windowManager as WindowManager)?.ShowDialogWithTitle(aPCPIDEditViewModel, null, "APC PID Edit");
+                    (windowManager as WindowManager)?.ShowDialogWithTitle(aPCPIDEditViewModel,this, null, "APC PID Edit");
                     break;
                 case "TempAutoPID":
                     TempAutoPIDEditViewModel tempAutoPIDEditViewModel = new TempAutoPIDEditViewModel(CurrentParameter.PrefixPath, CurrentParameter.Name, CurrentFileNode.Permission);
                     tempAutoPIDEditViewModel.ParameterType = CurrentParameterType;
-                    (windowManager as WindowManager)?.ShowDialogWithTitle(tempAutoPIDEditViewModel, null, "Temp Auto PID Edit");
+                    (windowManager as WindowManager)?.ShowDialogWithTitle(tempAutoPIDEditViewModel,this, null, "Temp Auto PID Edit");
                     break;
                 case "AlarmCondition":
                     AlarmConditionEditViewModel alarmConditionEditViewModel = new AlarmConditionEditViewModel(CurrentParameter.PrefixPath, CurrentParameter.Name, CurrentFileNode.Permission);
                     alarmConditionEditViewModel.ParameterType = CurrentParameterType;
-                    (windowManager as WindowManager)?.ShowDialogWithTitle(alarmConditionEditViewModel, null, "Alarm Condition");
+                    (windowManager as WindowManager)?.ShowDialogWithTitle(alarmConditionEditViewModel,this, null, "Alarm Condition");
                     break;
                 default:
                     break;

+ 2 - 2
Furnace/FurnaceUI/Views/Parameter/TempCorrectionEditView.xaml

@@ -474,7 +474,7 @@
                 Width="95"
                 Margin="2"
                 Content="Download"
-                IsEnabled="{Binding IsEnable}"
+                IsEnabled="{Binding IsPermission}"
                 Style="{StaticResource CommandButton}">
                 <i:Interaction.Triggers>
                     <i:EventTrigger EventName="Click">
@@ -486,7 +486,7 @@
                 Width="95"
                 Margin="2"
                 Content="Save"
-                IsEnabled="{Binding IsEnable, UpdateSourceTrigger=PropertyChanged}"
+                IsEnabled="{Binding IsPermission}"
                 Style="{StaticResource CommandButton}">
                 <i:Interaction.Triggers>
                     <i:EventTrigger EventName="Click">

+ 1 - 1
Furnace/FurnaceUI/Views/Parameter/TempCorrectionEditViewModel.cs

@@ -32,7 +32,7 @@ namespace FurnaceUI.Views.Parameter
 {
     public class TempCorrectionEditViewModel : FurnaceUIViewModelBase
     {
-
+        public bool IsPermission { get => this.Permission == 3; }
         private UIElement _parent;
 
         enum ShowPanel

+ 4 - 3
Furnace/FurnaceUI/Views/Recipes/RecipeProcessEditViewModel.cs

@@ -39,6 +39,7 @@ namespace FurnaceUI.Views.Recipes
 {
     public class RecipeProcessEditViewModel : FurnaceUIViewModelBase
     {
+        public bool IsPermission { get => this.Permission == 3; }
         public string DefaultUnit { get; set; }
         public string ToolType { get; set; }
 
@@ -363,7 +364,7 @@ namespace FurnaceUI.Views.Recipes
                 NotifyOfPropertyChange(nameof(EventSetting));
             }
         }
-        public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式
+        public bool IsEnable =>IsPermission&&CGlobal.RecipeProcessEditViewEnable;//是否是View模式
 
         RecipeTempSetViewModel recipeTempSetViewModel = null;
 
@@ -1499,7 +1500,7 @@ namespace FurnaceUI.Views.Recipes
                     break;
                 case "MultStepsDelete":
                     RecipeStepDeleteDialogViewModel recipedeleteDialog = new RecipeStepDeleteDialogViewModel(CurrentRecipe);
-                    (windowManager as WindowManager)?.ShowDialogWithTitle(recipedeleteDialog, null, "Delete Recipe Step");
+                    (windowManager as WindowManager)?.ShowDialogWithTitle(recipedeleteDialog,this, null, "Delete Recipe Step");
                     IndexNoDefault = 0;
                     if (CurrentRecipe.Steps.Count > 0)
                     {
@@ -1896,7 +1897,7 @@ namespace FurnaceUI.Views.Recipes
                     tempCorrectionEditViewModel.IsEnabledControl = false;
                     tempCorrectionEditViewModel.AutoSelectVisibility = Visibility.Visible;
                     //  tempOffsetTableViewModel.SelectedRecipeStep = SelectedRecipeStep;
-                    rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(tempCorrectionEditViewModel, null, "Temp Correct Table");
+                    rtn = (windowManager as WindowManager)?.ShowDialogWithTitle(tempCorrectionEditViewModel,this, null, "Temp Correct Table");
                     if ((bool)rtn)
                     {
                         // SelectedRecipeStep.TemperatureCorrect.Value = tempCorrectionEditViewModel.ResultString;

+ 1 - 1
Furnace/FurnaceUI/Views/Recipes/RecipeViewModel.cs

@@ -2210,7 +2210,7 @@ namespace FurnaceUI.Views.Recipes
             {
                 recipeEditViewModel.SelectedStepName = oldStepName;
             }
-            bool? bret = (windowManager as WindowManager)?.ShowDialogWithTitle(recipeEditViewModel, null, $"Recipe Edit");
+            bool? bret = (windowManager as WindowManager)?.ShowDialogWithTitle(recipeEditViewModel,this, null, $"Recipe Edit");
             if (recipeEditViewModel.CurrentRecipe != null && recipeEditViewModel.selectStep != null)
             {
                 oldPrefix = recipeEditViewModel.CurrentRecipe.PrefixPath;