.vs/SwPlugin/v17/DocumentLayout.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
InnoSetupScript/PdmSwPlugin.iss | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
PdmSwPlugin.Common/Entity/DrawAudit/DrawAudit.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
PdmSwPlugin.DrawApprove/DrawAuditHisControl.xaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
PdmSwPlugin.DrawApprove/DrawAuditHisControl.xaml.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
PdmSwPlugin.DrawApprove/PdmSwPlugin.DrawApprove.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
PdmSwPlugin.Main/Constant/PluginConst.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
PdmSwPlugin.Main/SwAddIn/MainControl.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
PdmSwPlugin.PDM/PdmControl.xaml.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.vs/SwPlugin/v17/DocumentLayout.json
@@ -3,28 +3,40 @@ "WorkspaceRootPath": "C:\\Workspace\\PdmSwPlugin2\\", "Documents": [ { "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.common\\entity\\drawaudit\\drawaudit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\entity\\drawaudit\\drawaudit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.drawapprove\\drawapprove.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawapprove.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" }, { "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.common\\entity\\drawaudit\\drawauditorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\entity\\drawaudit\\drawauditorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.drawapprove\\drawaudithiscontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawaudithiscontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\entity\\drawaudit\\drawaudit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\entity\\drawaudit\\drawaudit.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.main\\swaddin\\maincontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\swaddin\\maincontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|c:\\workspace\\pdmswplugin2\\pdmswplugin.main\\maincontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\maincontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmswplugin.drawapprove\\drawapprove.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawapprove.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" }, { "AbsoluteMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|C:\\Workspace\\PdmSwPlugin2\\pdmswplugin.common\\entity\\drawaudit\\drawauditorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{E17EF6B6-EE83-45AA-B0C0-E3A097089E97}|PdmSwPlugin.Common\\PdmSwPlugin.Common.csproj|solutionrelative:pdmswplugin.common\\entity\\drawaudit\\drawauditorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" } ], "DocumentGroupContainers": [ @@ -38,19 +50,57 @@ "Children": [ { "$type": "Document", "DocumentIndex": 1, "DocumentIndex": 2, "Title": "DrawAuditHisControl.xaml.cs", "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawAuditHisControl.xaml.cs", "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawAuditHisControl.xaml.cs", "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawAuditHisControl.xaml.cs", "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawAuditHisControl.xaml.cs", "ViewState": "AQIAABYBAAAAAAAAAAAiwCgBAAAgAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2024-08-21T08:12:02.317Z", "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 4, "Title": "MainControl.cs", "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", "RelativeDocumentMoniker": "PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", "RelativeToolTip": "PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", "ViewState": "AQIAAHAAAAAAAAAAAAAAAHgAAABHAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2024-08-21T07:59:50.181Z", "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 5, "Title": "MainControl.xaml.cs", "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\MainControl.xaml.cs", "RelativeDocumentMoniker": "PdmSwPlugin.Main\\MainControl.xaml.cs", "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\MainControl.xaml.cs", "RelativeToolTip": "PdmSwPlugin.Main\\MainControl.xaml.cs", "ViewState": "AQIAAKAAAAAAAAAAAAAowBEAAAAAAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2024-08-21T07:59:44.275Z", "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 7, "Title": "DrawApprove.xaml", "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml", "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml", "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml", "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", "WhenOpened": "2024-08-20T03:02:33.757Z", "EditorCaption": "" "WhenOpened": "2024-08-20T03:02:33.757Z" }, { "$type": "Document", "DocumentIndex": 4, "DocumentIndex": 8, "Title": "DrawAuditOrder.cs", "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAuditOrder.cs", "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAuditOrder.cs", @@ -58,12 +108,11 @@ "RelativeToolTip": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAuditOrder.cs", "ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAAFAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2024-08-20T02:13:49.926Z", "EditorCaption": "" "WhenOpened": "2024-08-20T02:13:49.926Z" }, { "$type": "Document", "DocumentIndex": 5, "DocumentIndex": 0, "Title": "PluginConst.cs", "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\Constant\\PluginConst.cs", "RelativeDocumentMoniker": "PdmSwPlugin.Main\\Constant\\PluginConst.cs", @@ -76,39 +125,38 @@ }, { "$type": "Document", "DocumentIndex": 3, "DocumentIndex": 1, "Title": "PdmControl.xaml.cs", "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", "ViewState": "AQIAAMoEAAAAAAAAAAApwNoEAAAAAAAA", "ViewState": "AQIAAFMEAAAAAAAAAAAAALEGAAAAAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2024-08-18T08:40:17.518Z", "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 2, "DocumentIndex": 6, "Title": "DrawApprove.xaml.cs", "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", "ViewState": "AQIAABoBAAAAAAAAAAAcwCUBAAAdAAAA", "ViewState": "AQIAAAEBAAAAAAAAAAAkwBcBAAA2AAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2024-08-18T08:30:42.283Z", "EditorCaption": "" "WhenOpened": "2024-08-18T08:30:42.283Z" }, { "$type": "Document", "DocumentIndex": 0, "DocumentIndex": 3, "Title": "DrawAudit.cs", "DocumentMoniker": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs", "RelativeDocumentMoniker": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs", "ToolTip": "C:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs", "RelativeToolTip": "PdmSwPlugin.Common\\Entity\\DrawAudit\\DrawAudit.cs", "ViewState": "AQIAAAYAAAAAAAAAAAAAABAAAAAfAAAA", "ViewState": "AQIAAAYAAAAAAAAAAAAAABAAAAAWAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2024-08-18T08:28:05.337Z", "EditorCaption": "" InnoSetupScript/PdmSwPlugin.iss
@@ -7,7 +7,7 @@ ; 自动更新程序路径 #define AutoUpdaterDir = "C:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\Release\AutoUpdater\" ; 版本 #define Version = "0.0.0.35" #define Version = "_TEST" ; 生成的Installer存放路径 #define OutPutDir = "Z:\Main\Workspace\Output" PdmSwPlugin.Common/Entity/DrawAudit/DrawAudit.cs
@@ -12,6 +12,14 @@ set { _id = value; } } private string _orderId; public string orderId { get => _orderId; set => RaiseAndSetIfChanged(ref _orderId, value); } private string _orderCode; public string orderCode @@ -50,6 +58,14 @@ set => RaiseAndSetIfChanged(ref _requestUser, value); } private string _requestUserId; public string requestUserId { get { return _requestUserId; } set => RaiseAndSetIfChanged(ref _requestUserId, value); } private string _auditUser; public string auditUser PdmSwPlugin.DrawApprove/DrawAuditHisControl.xaml
New file @@ -0,0 +1,144 @@ <UserControl x:Class="PdmSwPlugin.DrawApprove.DrawAuditHisControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:treeData="clr-namespace:PdmSwPlugin.Common.Control.TreeGrid;assembly=PdmSwPlugin.Common" xmlns:system="clr-namespace:PdmSwPlugin.DrawApprove" d:DataContext="{d:DesignInstance Type=system:DrawAuditHisControl}" mc:Ignorable="d" d:DesignHeight="900" d:DesignWidth="800"> <UserControl.Resources> <ResourceDictionary> <!-- 底部状态栏样式 --> <Style x:Key="StatusBarTextBox" TargetType="TextBox"> <Setter Property="Control.Background" Value="#FFF1EDED"/> <Setter Property="Control.BorderThickness" Value="0"/> <Setter Property="TextBlock.TextTrimming" Value="CharacterEllipsis"/> </Style> <Style x:Key ="statusSlot" TargetType="TextBlock"> <Setter Property="Foreground" Value="White"/> <Style.Triggers> <DataTrigger Binding="{Binding status}" Value="submitted"> <Setter Property="Text" Value="已提交"/> <Setter Property="Foreground" Value="Black"/> <Setter Property="Background" Value="Orange"/> </DataTrigger> <DataTrigger Binding="{Binding status}" Value="rejected"> <Setter Property="Text" Value="已驳回"/> <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="Red"/> </DataTrigger> <DataTrigger Binding="{Binding status}" Value="resubmitted"> <Setter Property="Text" Value="重新提交"/> <Setter Property="Foreground" Value="Black"/> <Setter Property="Background" Value="Orange"/> </DataTrigger> <DataTrigger Binding="{Binding status}" Value="completed"> <Setter Property="Text" Value="已完成"/> <Setter Property="Foreground" Value="Black"/> <Setter Property="Background" Value="Green"/> </DataTrigger> </Style.Triggers> </Style> <treeData:TreeItemDataConverter x:Key="TreeItemDataConverter"/> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/PdmSwPlugin.Common;component/Control/TreeGrid/Themes/TreeGrid.xaml"/> <ResourceDictionary Source="/PdmSwPlugin.Common;component/Control/TreeGrid/Themes/TreeItemContentControl.xaml"/> <ResourceDictionary Source="/PdmSwPlugin.Common;component/Style/ToolBar.xaml"/> <ResourceDictionary Source="/PdmSwPlugin.Common;component/Style/LinkButton.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </UserControl.Resources> <AdornerDecorator> <Grid x:Name="sb"> <DockPanel x:Name="content" LastChildFill="True"> <ToolBarTray DockPanel.Dock="Top" Background="#FFF" ToolBarTray.IsLocked="True" > <ToolBar Style="{StaticResource CommonToolBar}" ToolBar.OverflowMode="Never" Band="1" BandIndex="1" Height="30" Background="#FFF"> <Button ToolTip="刷新" Content="刷新" FontFamily="{StaticResource iconfont}" FontSize="16" Click="Button_Click"/> </ToolBar> </ToolBarTray> <!-- 树结构 --> <treeData:TreeDataGrid x:Name="treeDataGrid" DockPanel.Dock="Top" ColumnWidth="*" ItemsSource="{Binding dataSource,Converter={StaticResource TreeItemDataConverter},ConverterParameter=children}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserSortColumns="False" CanUserDeleteRows="False"> <treeData:TreeDataGrid.Columns> <DataGridTemplateColumn Width="25"> <DataGridTemplateColumn.Header> <CheckBox Checked="GlobalCheckBox_Checked" Unchecked="GlobalCheckBox_Checked" /> </DataGridTemplateColumn.Header> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <CheckBox DataContext="{Binding Data}" IsChecked="{Binding selected}" Checked="SingleCheckBox_Event" Unchecked="SingleCheckBox_Event"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Header="物料编号" IsReadOnly="True"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBox IsReadOnly="True" BorderThickness="0" HorizontalContentAlignment="Stretch" Text="{Binding Data.materialCode,Mode=OneWay}"/> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTextColumn Header="流水单号" Width="80" IsReadOnly="True" Binding="{Binding Data.orderCode}"/> <DataGridTextColumn Header="前一申请人" Width="80" IsReadOnly="True" Binding="{Binding Data.requestUser}"/> <DataGridTextColumn Header="前一审核人" Width="80" IsReadOnly="True" Binding="{Binding Data.auditUser}"/> <DataGridTextColumn Header="提交时间" Width="130" IsReadOnly="True" Binding="{Binding Data.updateTime}"/> <DataGridTemplateColumn Header="状态" Width="60" IsReadOnly="True"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Style="{StaticResource statusSlot}" DataContext="{Binding Data}" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Header="操作" Width="200" IsReadOnly="True"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Button Style="{StaticResource LinkButton}" DataContext="{Binding Data}" Click="Detail_Click">审核详情</Button> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </treeData:TreeDataGrid.Columns> </treeData:TreeDataGrid> <StatusBar DockPanel.Dock="Bottom" Height="20"> <StatusBarItem > <TextBox x:Name="activeDocPath" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding SelectBomText}"/> </StatusBarItem> <Separator/> <StatusBarItem> <TextBox x:Name="statusBarText" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding StatusBarText}"/> </StatusBarItem> </StatusBar> <Border></Border> <!--<TextBox x:Name="console"></TextBox>--> </DockPanel> </Grid> </AdornerDecorator> </UserControl> PdmSwPlugin.DrawApprove/DrawAuditHisControl.xaml.cs
New file @@ -0,0 +1,367 @@ using log4net; using PdmSwPlugin.Commmon.Control; using PdmSwPlugin.Commmon.Util.UI; using PdmSwPlugin.Common; using PdmSwPlugin.Common.Entity.DrawAudit; using PdmSwPlugin.Common.Entity.Pdm; using PdmSwPlugin.Common.Entity.System; using PdmSwPlugin.Common.Interface; using PdmSwPlugin.Common.Setting; using PdmSwPlugin.Common.Util; using PdmSwPlugin.Common.Util.Http; using SolidWorks.Interop.sldworks; using SolidWorks.Interop.swconst; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.IO; using System.Linq; using System.Net.Http; using System.Runtime.CompilerServices; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Markup; namespace PdmSwPlugin.DrawApprove { /// <summary> /// UserControl1.xaml 的交互逻辑 /// </summary> [PdmSwPlugin(Title = "送审记录")] public partial class DrawAuditHisControl : UserControl, ISwAppSetter, INotifyPropertyChanged { #region ... public virtual event PropertyChangedEventHandler PropertyChanged; public virtual void RaisePropertyChanged(string name) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } public void RaiseAndSetIfChanged<T>(ref T old, T @new, [CallerMemberName] string propertyName = null) { old = @new; if (propertyName != null) { RaisePropertyChanged(propertyName); } } #endregion private static ILog Logger = LogManager.GetLogger("DrawAuditHis"); SldWorks SwApp; SldWorks ISwAppSetter.SwApp => SwApp; private readonly HttpClient Client; private HttpClientCreator clientCreator { get; set; } /// <summary> /// 全部BOM树状结构 /// </summary> private ObservableCollection<DrawAudit> _dataSource = new ObservableCollection<DrawAudit>(); public ObservableCollection<DrawAudit> dataSource { get => _dataSource; set { RaiseAndSetIfChanged(ref _dataSource, value); if (value == null) { StatusBarText = $"共 0 条"; } else { StatusBarText = $"共 {value.Count} 条"; } RefreshSelectedCount(); } } private string _SelectBomText = "已选中 0 条"; public string SelectBomText { get => _SelectBomText; set => RaiseAndSetIfChanged(ref _SelectBomText, value); } private string _StatusBarText = "共 0 条"; public string StatusBarText { get { return _StatusBarText; } set => RaiseAndSetIfChanged(ref _StatusBarText, value); } public DrawAuditHisControl() : this(null) { } public DrawAuditHisControl(SldWorks swAddin) { SwApp = swAddin; InitializeComponent(); clientCreator = new HttpClientCreator(new HttpConfig(PluginSetting.Instance.BaseAddress)); Client = clientCreator.GetClient(); DataContext = this; } public void SetSwApp(SldWorks SwApp) { this.SwApp = SwApp; } /// <summary> /// 全选事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GlobalCheckBox_Checked(object sender, RoutedEventArgs e) { CheckBox cb = sender as CheckBox; List<DrawAudit> datas = dataSource.ToList(); foreach (DrawAudit data in datas) { data.selected = cb.IsChecked.Value; } int count = cb.IsChecked.Value ? (dataSource == null ? 0 : dataSource.Count) : 0; SelectBomText = $"已选中 {count} 条"; } private void RefreshSelectedCount() { if (dataSource == null || dataSource.Count <= 0) { SelectBomText = "已选中 0 条"; return; } int count = dataSource.Where(e => e.selected).Count(); SelectBomText = $"已选中 {count} 条"; } /// <summary> /// 单个点选事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SingleCheckBox_Event(object sender, RoutedEventArgs e) { RefreshSelectedCount(); } private void Button_Click(object sender, RoutedEventArgs e) { MaskAdorner.ShowMask(content, "请求中,请稍后..."); Task.Run(() => { try { List<DrawAudit> datas = RefreshList(); Dispatcher.Invoke(() => { dataSource = new ObservableCollection<DrawAudit>(datas); }); } catch (Exception ex) { Logger.Error("UI update failed.", ex); this.Error($"UI更新列表失败!异常:{ex}"); dataSource = new ObservableCollection<DrawAudit>(); } finally { MaskAdorner.HideMask(content); } }); } private void OpenDocMayError(string filePath, int docType, int option, string config) { int err = 0, warn = 0; SwApp.OpenDoc6(filePath, docType, option, config, ref err, ref warn); if (err == (int)swFileLoadError_e.swAddinInteruptError) { this.Error("打开失败!用户尝试打开文件,然后中断打开文件例程以打开其他文件"); } else if (err == (int)swFileLoadError_e.swApplicationBusy) { this.Error("打开失败!Solidworks繁忙"); } else if (err == (int)swFileLoadError_e.swFileCriticalDataRepairError) { this.Error("打开失败!文档存在严重数据损坏"); } else if (err == (int)swFileLoadError_e.swFileNotFoundError) { this.Error("打开失败!无法找到文件;未加载文件或禁止显示引用的文件(即组件)"); } else if (err == (int)swFileLoadError_e.swFileRequiresRepairError) { this.Error("打开失败!文档具有非关键自定义属性数据损坏"); } else if (err == (int)swFileLoadError_e.swFutureVersion) { this.Error("打开失败!文档已保存在 SOLIDWORKS 的未来版本中"); } else if (err == (int)swFileLoadError_e.swInvalidFileTypeError) { this.Error("打开失败!文件类型参数无效"); } else if (err == (int)swFileLoadError_e.swLiquidMachineDoc) { this.Error("打开失败!由 Liquid Machines 加密的文件"); } else if (err == (int)swFileLoadError_e.swLowResourcesError) { this.Error("打开失败!文件被打开并被阻止,因为系统内存不足,或者 GDI 句柄数已超过允许的最大值"); } else if (err == (int)swFileLoadError_e.swNoDisplayData) { this.Error("打开失败!文件不包含显示数据"); } else if (err == (int)swFileLoadError_e.swFileWithSameTitleAlreadyOpen) { this.Error("打开失败!具有相同名称的文档已打开"); //SwApp.ActivateDoc3(filePath, false, 0, ref err); //if (err == 2) //{ // this.Error("需要重新生成已激活的文档"); //} //else if (err == 1) //{ // this.Error("遇到不明错误,并且未激活文档"); //} } else if (err != 0) { Logger.Error($"OpenDoc6 Failed,Error:{err}.See Solidworks Doc."); } else if (warn == 128) { SwApp.ActivateDoc3(filePath, false, 0, ref err); if (err == 2) { this.Error("需要重新生成已激活的文档"); } else if (err == 1) { this.Error("遇到不明错误,并且未激活文档"); } } } private void Detail_Click(object sender, RoutedEventArgs e) { Button btn = sender as Button; DrawAudit da = btn.DataContext as DrawAudit; GetAuditHisDetailAndOpen(da); } private string GetRealFilePath(string dbPath) { string fileName = Path.GetFileName(dbPath); string filePath = Path.Combine(PluginSetting.Instance.SwFilePath, fileName); return filePath; } private void OpenDoc_Click(object sender, RoutedEventArgs e) { Button btn = sender as Button; DrawAudit da = btn.DataContext as DrawAudit; string filePath = GetRealFilePath(da.d3RelativePath); if (!File.Exists(filePath)) { this.Error($"服务器中未找到图纸文件,路径:{filePath}"); return; } OpenDocMayError(filePath, (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_ReadOnly, ""); } public List<DrawAudit> RefreshList() { try { Result<List<DrawAudit>> res = Client.GetSyncAction<List<DrawAudit>>("drawAudit/listQuery", new DrawAudit { requestUserId = PdmUser.LoginUser.id }); return res.HandleResult(); } catch (Exception ex) { Logger.Error("Get draw audit data list failed.", ex); this.Error($"刷新列表失败!异常:{ex.Message}"); return new List<DrawAudit>(); } } public void CloseAuditedDoc(DrawAudit da) { try { string modelPath = Path.Combine(PluginSetting.Instance.SwFilePath, Path.GetFileName(da.d3RelativePath)); string drawingPath = Path.Combine(PluginSetting.Instance.SwFilePath, Path.GetFileName(da.d2RelativePath)); SwApp.CloseDoc(modelPath); SwApp.CloseDoc(drawingPath); } catch (Exception exx) { Logger.Error("Auto close open doc failed.", exx); } } /// <summary> /// 查询送审图纸的审核详情并在新窗口打开 /// </summary> /// <param name="da"></param> private void GetAuditHisDetailAndOpen(DrawAudit da) { MaskAdorner.ShowMask(content, "请求中,请稍后..."); Task.Run(() => { try { Result<List<DrawAuditHis>> res = Client.GetSyncAction<List<DrawAuditHis>>("drawAudit/listTaskHis", new DrawAudit { id = da.id }); var datas = res.HandleResult(); Dispatcher.Invoke(() => { //DrawAuditHisWindow window = new DrawAuditHisWindow(this, $"【{bom.partModel}】审核详情", datas); RichHisWindow window = new RichHisWindow(this, $"【{da.materialCode}】审核详情", datas); window.ShowDialog(); }); } catch (Exception ex) { Logger.Error("Get draw audit history failed.", ex); this.Error($"获取审核历史失败!{ex.Message}"); } finally { MaskAdorner.HideMask(content); } }); } private void TextBlock_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { // 检查是否是双击 if (e.ClickCount == 2) { TextBlock textBlock = sender as TextBlock; DrawAudit data = textBlock.DataContext as DrawAudit; GetAuditHisDetailAndOpen(data); } } } } PdmSwPlugin.DrawApprove/PdmSwPlugin.DrawApprove.csproj
@@ -81,6 +81,9 @@ <Reference Include="PresentationFramework" /> </ItemGroup> <ItemGroup> <Compile Include="DrawAuditHisControl.xaml.cs"> <DependentUpon>DrawAuditHisControl.xaml</DependentUpon> </Compile> <Compile Include="RejectWindow.xaml.cs"> <DependentUpon>RejectWindow.xaml</DependentUpon> </Compile> @@ -93,6 +96,10 @@ <Compile Include="XamlWindow.xaml.cs"> <DependentUpon>XamlWindow.xaml</DependentUpon> </Compile> <Page Include="DrawAuditHisControl.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </Page> <Page Include="DrawApprove.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> PdmSwPlugin.Main/Constant/PluginConst.cs
@@ -3,6 +3,6 @@ public class PluginConst { public static readonly string AppId = "DF23E96F-A469-4302-8367-7FA2F798CD09"; public static readonly string Version = "0.0.0.36"; public static readonly string Version = "0.0.0.37"; } } PdmSwPlugin.Main/SwAddIn/MainControl.cs
@@ -126,6 +126,14 @@ /*UserSettingControl userSettingControl = new UserSettingControl(); HandlePlugin(userSettingControl, tabControl);*/ } if (permissions.Contains("PDM:PLUGIN:CONTROL:DrawAuditHisQuery")) { // 图纸审核 DrawAuditHisControl drawAuditHisControl = new DrawAuditHisControl(SwApp); HandlePlugin(drawAuditHisControl, tabControl); /*UserSettingControl userSettingControl = new UserSettingControl(); HandlePlugin(userSettingControl, tabControl);*/ } } private void SetPlugin() PdmSwPlugin.PDM/PdmControl.xaml.cs
@@ -1080,7 +1080,7 @@ // 不是历史数据并且有未通过的,标记为false allSuccess = false; } if (!properties[key].HistoryData && msgs != null && msgs.Count > 0) { foreach (string msg in msgs) @@ -1245,6 +1245,7 @@ ConcurrentQueue<string> errs = new ConcurrentQueue<string>(); CountdownEvent counter = new CountdownEvent(boms.Count); int successCount = 0; foreach (PdmBom bom in boms) { Task.Run(() => @@ -1275,6 +1276,7 @@ Result<DrawAudit> res = Client.PostSyncAction<DrawAudit>("drawAudit/add", httpContent); DrawAudit da = res.HandleResult(); Interlocked.Increment(ref successCount); } catch (Exception ex) { @@ -1289,18 +1291,22 @@ } counter.Wait(); counter.Dispose(); try if (successCount > 0) { var param = new DrawAudit try { count = boms.Count }; var msgRes = Client.PostSyncAction<object>(param, "drawAudit/sendToAuditor"); msgRes.HandleResult(); } catch (Exception ig) { Logger.Error("发送送审消息异常", ig); var param = new DrawAudit { orderId = daOrder.id, count = successCount }; var msgRes = Client.PostSyncAction<object>(param, "drawAudit/sendToAuditor"); msgRes.HandleResult(); } catch (Exception ig) { Logger.Error("发送送审消息异常", ig); } } // 刷新服务器上的BOM信息 RefreshWebBomInfo();