Переглянути джерело

添加窗体及后台实现逻辑

ouruisong 1 рік тому
батько
коміт
5510224891
21 змінених файлів з 2295 додано та 19 видалено
  1. 49 0
      CollaborativePlatformMain/CollaborativePlatformMain.csproj
  2. 59 0
      CollaborativePlatformMain/DFEntity/LVProjectInfoEntity.cs
  3. 58 0
      CollaborativePlatformMain/DFEntity/LVTeamMembersEntity.cs
  4. 51 0
      CollaborativePlatformMain/DFEntity/NotificationAnnouncement.cs
  5. 61 0
      CollaborativePlatformMain/DFEntity/TreeViewBind.cs
  6. 51 0
      CollaborativePlatformMain/DFEntity/UserInformationEntity.cs
  7. 364 0
      CollaborativePlatformMain/Form/HomepageForm.xaml
  8. 950 0
      CollaborativePlatformMain/Form/HomepageForm.xaml.cs
  9. 31 0
      CollaborativePlatformMain/Form/ProjectForm.xaml
  10. 39 0
      CollaborativePlatformMain/Form/ProjectForm.xaml.cs
  11. 64 0
      CollaborativePlatformMain/Form/ToolsForm.xaml
  12. 40 0
      CollaborativePlatformMain/Form/ToolsForm.xaml.cs
  13. 66 0
      CollaborativePlatformMain/Form/UploadDrawingForm.xaml
  14. 68 0
      CollaborativePlatformMain/Form/UploadDrawingForm.xaml.cs
  15. 16 0
      CollaborativePlatformMain/Form/UserControlForm/CBButtonControls.xaml
  16. 78 0
      CollaborativePlatformMain/Form/UserControlForm/CBButtonControls.xaml.cs
  17. 36 0
      CollaborativePlatformMain/Form/UserControlForm/ProjectControls.xaml
  18. 38 0
      CollaborativePlatformMain/Form/UserControlForm/ProjectControls.xaml.cs
  19. 21 19
      CollaborativePlatformMain/MainWindow.xaml.cs
  20. 79 0
      CollaborativePlatformMain/Util/CollaborationUtil.cs
  21. 76 0
      CollaborativePlatformMain/Util/LoginUtil.cs

+ 49 - 0
CollaborativePlatformMain/CollaborativePlatformMain.csproj

@@ -87,6 +87,38 @@
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </ApplicationDefinition>
+    <Compile Include="Form\UserControlForm\CBButtonControls.xaml.cs">
+      <DependentUpon>CBButtonControls.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\UserControlForm\ProjectControls.xaml.cs">
+      <DependentUpon>ProjectControls.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Util\CollaborationUtil.cs" />
+    <Compile Include="Util\LoginUtil.cs" />
+    <Page Include="Form\UserControlForm\CBButtonControls.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\HomepageForm.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\UserControlForm\ProjectControls.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\ProjectForm.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\ToolsForm.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\UploadDrawingForm.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="MainWindow.xaml">
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
@@ -95,6 +127,23 @@
       <DependentUpon>App.xaml</DependentUpon>
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="DFEntity\LVProjectInfoEntity.cs" />
+    <Compile Include="DFEntity\LVTeamMembersEntity.cs" />
+    <Compile Include="DFEntity\NotificationAnnouncement.cs" />
+    <Compile Include="DFEntity\TreeViewBind.cs" />
+    <Compile Include="DFEntity\UserInformationEntity.cs" />
+    <Compile Include="Form\HomepageForm.xaml.cs">
+      <DependentUpon>HomepageForm.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\ProjectForm.xaml.cs">
+      <DependentUpon>ProjectForm.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\ToolsForm.xaml.cs">
+      <DependentUpon>ToolsForm.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\UploadDrawingForm.xaml.cs">
+      <DependentUpon>UploadDrawingForm.xaml</DependentUpon>
+    </Compile>
     <Compile Include="MainWindow.xaml.cs">
       <DependentUpon>MainWindow.xaml</DependentUpon>
       <SubType>Code</SubType>

+ 59 - 0
CollaborativePlatformMain/DFEntity/LVProjectInfoEntity.cs

@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     LVProjectInfoEntity.cs</para>
+    /// 
+    /// <para>描述(Description):     项目信息实体类</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月20日15:19:54</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+
+    public class LVProjectInfoEntity
+    {
+        /// <summary>
+        /// 项目内容
+        /// </summary>
+        /// <param name="lab"></param>
+        /// <param name="name"></param>
+        public LVProjectInfoEntity(string lab, string name)
+        {
+            Lab = lab;
+            Name = name;
+            Content = lab + name;
+        }
+
+        /// <summary>
+        /// 标题
+        /// </summary>
+        public string Lab { get; set; }
+
+        /// <summary>
+        /// 内容
+        /// </summary>
+
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 总内容
+        /// </summary>
+        public string Content { get; set; }
+    }
+}

+ 58 - 0
CollaborativePlatformMain/DFEntity/LVTeamMembersEntity.cs

@@ -0,0 +1,58 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     LVTeamMembersEntity.cs</para>
+    /// 
+    /// <para>描述(Description):     团队成员</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月20日15:20:40</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class LVTeamMembersEntity
+    {
+        /// <summary>
+        /// 项目内容
+        /// </summary>
+        /// <param name="lab"></param>
+        /// <param name="name"></param>
+        public LVTeamMembersEntity(string lab, string name)
+        {
+            Lab = lab;
+            Name = name;
+            Content = lab + name;
+        }
+
+        /// <summary>
+        /// 标题
+        /// </summary>
+        public string Lab { get; set; }
+
+        /// <summary>
+        /// 内容
+        /// </summary>
+
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 总内容
+        /// </summary>
+        public string Content { get; set; }
+    }
+}

+ 51 - 0
CollaborativePlatformMain/DFEntity/NotificationAnnouncement.cs

@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     NotificationAnnouncement.cs</para>
+    /// 
+    /// <para>描述(Description):     通知公告实体类</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月20日15:21:22</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class NotificationAnnouncement
+    {
+        /// <summary>
+        /// 消息类别
+        /// </summary>
+
+        public string MessageCategory { get; set; }
+
+        /// <summary>
+        /// 按钮名称
+        /// </summary>
+        public string BtnName { get; set; }
+
+        /// <summary>
+        /// 内容
+        /// </summary>
+        public string Content { get; set; }
+
+        /// <summary>
+        /// 具体内容
+        /// </summary>
+        public string SpecificContent { get; set; }
+    }
+}

+ 61 - 0
CollaborativePlatformMain/DFEntity/TreeViewBind.cs

@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     TreeViewBind.cs</para>
+    /// 
+    /// <para>描述(Description):     点击项目下TreeViewBind的数据</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月20日15:22:12</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class TreeViewBind
+    {
+        /// <summary>
+        /// 名称
+        /// </summary>
+        public string Name { get; set; }
+
+
+        public bool IsPro { get; set; }
+
+
+        /// <summary>
+        /// 子集
+        /// </summary>
+        public List<TreeViewBind> Children { get; set; }
+
+        public TreeViewBind(string name)
+        {
+            Name = name;
+        }
+
+        public TreeViewBind(string name, List<TreeViewBind> children)
+        {
+            Name = name;
+            Children = children;
+        }
+
+        public TreeViewBind(string name, bool isPro)
+        {
+            Name = name;
+            IsPro = isPro;
+        }
+    }
+}

+ 51 - 0
CollaborativePlatformMain/DFEntity/UserInformationEntity.cs

@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     UserInformationEntity.cs</para>
+    /// 
+    /// <para>描述(Description):     用户信息</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月20日15:22:54</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class UserInformationEntity
+    {
+        /// <summary>
+        /// 用户信息
+        /// </summary>
+        /// <param name="userName"></param>
+        /// <param name="userPwd"></param>
+        public UserInformationEntity(string userName, string userPwd)
+        {
+            UserName = userName;
+            UserPwd = userPwd;
+        }
+
+        /// <summary>
+        /// 用户名
+        /// </summary>
+        public string UserName { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public string UserPwd { get; set; }
+    }
+}

+ 364 - 0
CollaborativePlatformMain/Form/HomepageForm.xaml

@@ -0,0 +1,364 @@
+<Window x:Class="CollaborativePlatformMain.Form.HomepageForm"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:HandyControl="clr-namespace:HandyControl.Controls;assembly=HandyControl"
+        xmlns:LayUI="clr-namespace:LayUI.Wpf.Controls;assembly=LayUI.Wpf"
+        mc:Ignorable="d"
+        AllowsTransparency="True"
+        Background=" Transparent"
+        WindowStartupLocation="CenterScreen"
+        WindowStyle="None"
+        Title="" Height="600" Width="800" ResizeMode="NoResize">
+    <LayUI:LayTitleBar Background="{DynamicResource Blue}"   CornerRadius="10"
+                       WindowState="{Binding WindowState, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
+        <LayUI:LayTitleBar.Header>
+            <Border Height="35">
+                <DockPanel>
+                    <TextBlock Margin="10,0" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="White"
+                               Text="协同平台" />
+                </DockPanel>
+            </Border>
+        </LayUI:LayTitleBar.Header>
+
+        <Border  CornerRadius="0 0 10 10" Background="White">
+            <StackPanel>
+                <DockPanel Background="{DynamicResource Blue}">
+
+                    <DockPanel Margin="5 10 0 10" Width="64" Height="64" HorizontalAlignment="Left" Background="AntiqueWhite" />
+
+                    <!--<Border BorderBrush="Gray" Width="64" Height="64" 
+                    Background="AntiqueWhite"  BorderThickness="0.5,0.5,0.5,0.5">
+                    <StackPanel  Orientation="Horizontal" FlowDirection="LeftToRight">
+                        <Border BorderBrush="Red"  BorderThickness="0,0.5,0.5,0.5">
+                            -->
+                    <!-- <Image Source="Assets/Image/logo.jpg" />-->
+                    <!--
+                        </Border>
+                        <Button Visibility="Collapsed" Content="新增项目" Height="30" Width="70" Margin="100,15,0,0" x:Name="create_Pro" Click="create_Pro_Click" />
+                    </StackPanel>
+                </Border>-->
+                </DockPanel>
+
+                <DockPanel Height="430">
+
+                    <!--最左边-->
+                    <StackPanel Width="120" Name="sp_left">
+
+                        <Menu Background="{DynamicResource Blue}" Height="430" Name="mu_leftMenu" FontFamily="黑体" FontSize="14">
+
+                            <MenuItem  Width="118" Height="40" Header="消息      "
+                                      PreviewMouseLeftButtonDown="message_Click"></MenuItem>
+
+                            <MenuItem Width="118" Height="40" Header="项目      "
+                                      PreviewMouseLeftButtonDown="project_Click"></MenuItem>
+
+                            <MenuItem Width="118" Height="40" Header="联系人    "
+                                      PreviewMouseLeftButtonDown="contacts_Click"></MenuItem>
+
+                            <MenuItem Width="118" Height="40" Header="图块大样库"
+                                      PreviewMouseLeftButtonDown="gallery_Click"></MenuItem>
+
+                            <MenuItem Width="118" Height="40" Header="工具库    "
+                                      PreviewMouseLeftButtonDown="tool_Click"></MenuItem>
+                        </Menu>
+                    </StackPanel>
+
+                    <!--消息-->
+                    <DockPanel Name="dp_message" Visibility="Collapsed">
+                        <!--中间-->
+                        <StackPanel Width="180" HorizontalAlignment="Left" Background="WhiteSmoke">
+                            <StackPanel>
+
+                                <DockPanel   Margin="0 0 0 0" Name="sp_hzNavigation" Height="30" Visibility="Collapsed">
+
+                                    <Menu>
+                                        <MenuItem Header="通知公告" Click="me_announcementClick" />
+                                        <MenuItem Header="项目" Click="me_projectClick" />
+                                        <MenuItem Header="系统" Click="me_systemClick" />
+                                    </Menu>
+                                </DockPanel>
+
+                                <StackPanel Background="WhiteSmoke"  Name="me_message">
+                                </StackPanel>
+                            </StackPanel>
+                        </StackPanel>
+                        <!--最右边-->
+                        <StackPanel Name="me_right"  Height="400"  Width="483"
+                                Margin="0 10 0 0"  HorizontalAlignment="Left">
+                        </StackPanel>
+                    </DockPanel>
+
+                    <!--项目-->
+                    <DockPanel Name="dp_project" Visibility="Collapsed">
+
+                        <!--中间-->
+                        <!--
+                    <StackPanel Width="180" Height="123" HorizontalAlignment="Left" Background="WhiteSmoke">
+                    </StackPanel>-->
+
+                        <Grid>
+
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="28" />
+                                <RowDefinition />
+                            </Grid.RowDefinitions>
+
+                            <Button Grid.Row="0" Width="180" Content="新增项目" Click="bt_addPro" />
+                            <!--中间-->
+                            <TreeView  Grid.Row="1" x:Name="tr_vw"  Visibility="Visible" PreviewMouseLeftButtonUp="tv_projectLeftButtonUp"
+                                  Width="180"  HorizontalAlignment="Left" Background="WhiteSmoke">
+                                <TreeView.ItemTemplate>
+                                    <HierarchicalDataTemplate ItemsSource="{Binding Children}">
+                                        <TextBlock Text="{Binding Name}" />
+                                    </HierarchicalDataTemplate>
+                                </TreeView.ItemTemplate>
+                            </TreeView>
+                        </Grid>
+
+                        <!--最右边-->
+                        <StackPanel
+                            Name="sp_info" Width="483" Margin="0 10 0 0"
+                            HorizontalAlignment="Left" Visibility="Collapsed">
+
+                            <ListView HorizontalAlignment="Left" Background="White" BorderThickness="0"
+                      VerticalAlignment="Top" ScrollViewer.HorizontalScrollBarVisibility="Hidden"
+                      ScrollViewer.VerticalScrollBarVisibility="Hidden" Width="483"
+                      x:Name="lv_projectInfo"  Height="300" d:ItemsSource="{d:SampleData ItemCount=5}" Visibility="Collapsed">
+
+                                <!--隐藏列头-->
+                                <ListView.Resources>
+                                    <Style TargetType="{x:Type GridViewColumnHeader}">
+                                        <Setter Property="Visibility" Value="Collapsed" />
+                                    </Style>
+                                </ListView.Resources>
+
+                                <ListView.ItemContainerStyle>
+                                    <Style TargetType="ListViewItem">
+                                        <Setter Property="Height" Value="35" />
+                                    </Style>
+                                </ListView.ItemContainerStyle>
+
+                                <ListView.View>
+                                    <GridView  x:Name="gridview">
+                                        <GridViewColumn  Width="190" x:Name="Column1">
+                                            <GridViewColumn.CellTemplate>
+                                                <DataTemplate>
+                                                    <TextBlock  HorizontalAlignment="Left" Height="20" TextWrapping="Wrap"
+                                                            Text="{Binding Content}"
+                                                            VerticalAlignment="Center" />
+                                                </DataTemplate>
+                                            </GridViewColumn.CellTemplate>
+                                        </GridViewColumn>
+
+                                        <GridViewColumn  Width="130" x:Name="Column2">
+                                            <GridViewColumn.CellTemplate>
+                                                <DataTemplate>
+
+                                                    <DockPanel>
+                                                        <Button  Tag="{Binding}" Content="修改" Click="btn_lv_update" FontSize="13" />
+                                                    </DockPanel>
+                                                </DataTemplate>
+                                            </GridViewColumn.CellTemplate>
+                                        </GridViewColumn>
+                                    </GridView>
+                                </ListView.View>
+                            </ListView>
+                        </StackPanel>
+
+                        <StackPanel Name="sp_work" Visibility="Collapsed" Height="428" Width="485" VerticalAlignment="Top">
+
+                            <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
+                                <TextBlock Text="本专业" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" PreviewMouseLeftButtonUp="pre_Click" />
+                                <TextBlock Text="/" Margin="0,0,0,0" FontSize="20" VerticalAlignment="Center" />
+                                <TextBlock Text="全专业" Margin="0,0,0,0" FontSize="20" VerticalAlignment="Center" PreviewMouseLeftButtonUp="all_Click" />
+                            </StackPanel>
+
+                            <TreeView x:Name="tr_is" Visibility="Visible" 
+                                      PreviewMouseLeftButtonUp="tr_is_PreviewMouseLeftButtonUp" 
+                                      Height="370" Width="485" HorizontalAlignment="Left">
+                                <TreeView.ItemTemplate>
+                                    <HierarchicalDataTemplate ItemsSource="{Binding Children}">
+                                        <TextBlock Text="{Binding Name}" />
+                                    </HierarchicalDataTemplate>
+                                </TreeView.ItemTemplate>
+                            </TreeView>
+
+                            <ScrollViewer x:Name="tr_all" Visibility="Collapsed" Height="370" 
+                                          HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden">
+                                <StackPanel  x:Name="tr_all1" Orientation="Horizontal" Visibility="Visible">
+
+                                    <Border  BorderBrush="Green" BorderThickness="0.5" Width="200">
+
+                                        <StackPanel>
+
+                                            <TextBlock Text="建筑" HorizontalAlignment="Center" FontSize="25" Grid.Row="0" />
+                                            <TreeView  x:Name="tv_building" Height="336">
+                                                <TreeView.ItemTemplate>
+                                                    <HierarchicalDataTemplate ItemsSource="{Binding Children}">
+                                                        <TextBlock Text="{Binding Name}" />
+                                                    </HierarchicalDataTemplate>
+                                                </TreeView.ItemTemplate>
+                                            </TreeView>
+                                        </StackPanel>
+                                    </Border>
+                                    <Border  BorderBrush="Green" BorderThickness="0.5,0,0,0.5" Width="200">
+                                        <TextBlock Text="结构" HorizontalAlignment="Center" FontSize="25" />
+                                    </Border>
+                                    <Border  BorderBrush="Green" BorderThickness="0.5,0,0,0.5" Width="200">
+                                        <TextBlock Text="给排水" HorizontalAlignment="Center" FontSize="25" />
+                                    </Border>
+                                    <Border  BorderBrush="Green" BorderThickness="0.5,0,0,0.5" Width="200">
+                                        <TextBlock Text="暖通" HorizontalAlignment="Center" FontSize="25" />
+                                    </Border>
+                                    <Border  BorderBrush="Green" BorderThickness="0.5,0,0,0.5" Width="200">
+                                        <TextBlock Text="电气" HorizontalAlignment="Center" FontSize="25" />
+                                    </Border>
+                                </StackPanel>
+                            </ScrollViewer>
+
+                            <DockPanel>
+                                <Button Visibility="Collapsed" Name="bt_proBig"  Content="放大" 
+                                        HorizontalAlignment="Right" Margin="0 0 10 0" Click="bt_proBigClick"/>
+                            </DockPanel>
+                        </StackPanel>
+
+                        <StackPanel Name="sp_addPro" Visibility="Collapsed" Width="473" Margin="10 10 0 0">
+                            <StackPanel x:Name="gd_top" Orientation="Horizontal">
+                                <TextBlock Text="完整的项目信息有助于为您推送规范条文" Margin="0,10,10,10" />
+                                <CheckBox Content="不再提醒" Click="close_Click" Margin="10" />
+                            </StackPanel>
+
+                            <!--项目名称-->
+                            <DockPanel>
+                                <LayUI:LayTextBlock Width="80" FontSize="13" Margin="30 0 0 0" Text="项目名称:"  VerticalAlignment="Center"></LayUI:LayTextBlock>
+                                <TextBox Width="150" Height="25" HorizontalAlignment="Left" Margin="30 0 0 0" x:Name="pro_Name" />
+                            </DockPanel>
+
+                            <!--项目地址-->
+                            <DockPanel Margin="0 10 0 0">
+                                <LayUI:LayTextBlock Width="80" FontSize="13" Margin="30 0 0 0" Text="项目名称:"  VerticalAlignment="Center"></LayUI:LayTextBlock>
+                                <TextBox Width="150" Height="25" HorizontalAlignment="Left" Margin="30 0 0 0" x:Name="pro_status" />
+                            </DockPanel>
+
+                            <TextBlock Text="选择:" FontSize="13" Margin="0,10,0,0" />
+                            <TextBlock Text="组建团队:" FontSize="13" Margin="0,2,0,0" />
+
+                            <StackPanel Orientation="Vertical" Margin="20 0 0 0">
+                                <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
+                                    <TextBlock Text="专业" Margin="20,0,0,0" VerticalAlignment="Center" FontSize="16" />
+                                    <TextBlock Text="人员" Margin="120,0,0,0" VerticalAlignment="Center" FontSize="16" />
+                                </StackPanel>
+                                <StackPanel Margin="5,20,0,0" Orientation="Horizontal">
+                                    <TextBlock Text="建筑" Margin="20,0,0,0" VerticalAlignment="Center" />
+                                    <Button Margin="120,0,0,0" Content="选择人员" x:Name="bd_btn"
+                                        Initialized="bd_Initialized" Click="bd_Click" Height="25" FontSize="8" Width="60">
+                                        <Button.ContextMenu>
+                                            <ContextMenu Name="contextMenu">
+                                                <MenuItem Header="选择通讯录" Name="savePage" Click="savePage_Click" />
+                                                <MenuItem Header="临时邀请" Name="saveFile" Click="saveFile_Click" />
+                                            </ContextMenu>
+                                        </Button.ContextMenu>
+                                    </Button>
+                                </StackPanel>
+                                <StackPanel Margin="5,10,0,0" Orientation="Horizontal">
+                                    <TextBlock Text="结构" Margin="20,0,0,0" VerticalAlignment="Center" />
+                                    <Button Margin="120,0,0,0" Content="选择人员" x:Name="bd_st"
+                                        Initialized="st_Initialized" Click="st_Click" Height="25" FontSize="8" Width="60">
+                                        <Button.ContextMenu>
+                                            <ContextMenu Name="st_mu">
+                                                <MenuItem Header="选择通讯录" Name="st_num" Click="savePage_Click" />
+                                                <MenuItem Header="临时邀请" Name="st_tm" Click="saveFile_Click" />
+                                            </ContextMenu>
+                                        </Button.ContextMenu>
+                                    </Button>
+                                </StackPanel>
+                                <StackPanel Margin="5,10,0,0" Orientation="Horizontal">
+                                    <TextBlock Text="给排水" Margin="20,0,0,0" VerticalAlignment="Center" />
+                                    <Button Margin="108,0,0,0" Content="选择人员" x:Name="bd_wt"
+                                        Initialized="wt_Initialized" Click="wt_Click" Height="25" FontSize="8" Width="60">
+                                        <Button.ContextMenu>
+                                            <ContextMenu Name="wt_mu">
+                                                <MenuItem Header="选择通讯录" Name="wt_num" Click="savePage_Click" />
+                                                <MenuItem Header="临时邀请" Name="wt_tm" Click="saveFile_Click" />
+                                            </ContextMenu>
+                                        </Button.ContextMenu>
+                                    </Button>
+                                </StackPanel>
+                                <StackPanel Margin="5,10,0,0" Orientation="Horizontal">
+                                    <TextBlock Text="暖通" Margin="20,0,0,0" VerticalAlignment="Center" />
+                                    <Button Margin="120,0,0,0" Content="选择人员" x:Name="bd_wm"
+                                        Initialized="wm_Initialized" Click="wm_Click" Height="25" FontSize="8" Width="60">
+                                        <Button.ContextMenu>
+                                            <ContextMenu Name="wm_mu">
+                                                <MenuItem Header="选择通讯录" Name="wm_num" Click="savePage_Click" />
+                                                <MenuItem Header="临时邀请" Name="wm_tm" Click="saveFile_Click" />
+                                            </ContextMenu>
+                                        </Button.ContextMenu>
+                                    </Button>
+                                </StackPanel>
+                                <StackPanel Margin="5,10,0,0" Orientation="Horizontal">
+                                    <TextBlock Text="电气" Margin="20,0,0,0" VerticalAlignment="Center" />
+                                    <Button Margin="120,0,0,0" Content="选择人员" x:Name="bd_ele"
+                                        Initialized="ele_Initialized" Click="ele_Click" Height="25" FontSize="8" Width="60">
+                                        <Button.ContextMenu>
+                                            <ContextMenu Name="ele_mu">
+                                                <MenuItem Header="选择通讯录" Name="ele_num" Click="savePage_Click" />
+                                                <MenuItem Header="临时邀请" Name="ele_tm" Click="saveFile_Click" />
+                                            </ContextMenu>
+                                        </Button.ContextMenu>
+                                    </Button>
+                                </StackPanel>
+                                <StackPanel Margin="5,0,0,0" Orientation="Horizontal">
+                                    <TextBlock Text="+" Margin="25,0,0,0" VerticalAlignment="Center" />
+                                </StackPanel>
+                            </StackPanel>
+                            <Button Content="提交" Width="50" Click="submit_Click" Margin="0,10,0,0" />
+                        </StackPanel>
+                    </DockPanel>
+
+                    <!--联系人-->
+                    <DockPanel Name="dp_contacts" Visibility="Collapsed">
+                        <StackPanel Name="sp_contacts" Width="180" HorizontalAlignment="Left" Background="WhiteSmoke">
+                        </StackPanel>
+
+                        <!--最右边-->
+                        <StackPanel Height="420"  VerticalAlignment="Top" Width="483"
+                                Margin="0 10 0 0"  HorizontalAlignment="Left">
+                        </StackPanel>
+                    </DockPanel>
+
+                    <!--工具库-->
+                    <DockPanel Name="dp_tools" Visibility="Collapsed">
+
+                        <StackPanel Name="sp_tools" Width="180" HorizontalAlignment="Left" Background="WhiteSmoke">
+                        </StackPanel>
+
+                        <!--最右边-->
+                        <StackPanel Height="420"  VerticalAlignment="Top" Width="483"
+                                Margin="0 10 0 0"  HorizontalAlignment="Left">
+
+                            <WrapPanel Name="wp_tools" Margin="0 0 0 0" Width="490"  Height="370" HorizontalAlignment="Left">
+                            </WrapPanel>
+                            <DockPanel>
+                                <Button HorizontalAlignment="Right" Margin="0 0 20 0" Width="110" Click="bt_addTools" Content="添加漂浮工具" />
+                            </DockPanel>
+                        </StackPanel>
+                    </DockPanel>
+                </DockPanel>
+                <Border  CornerRadius="0 0 10 10" Background="{DynamicResource Blue}">
+
+                    <DockPanel Height="37">
+                        <DockPanel Margin="113 0 0 0">
+
+                            <TextBlock   Text="青蓝规范小助手:" FontFamily="黑体" FontSize="18" Margin="10 0 0 0" VerticalAlignment="Center" HorizontalAlignment="Left" />
+                            <TextBox x:Name="tb_blue" Width="200" Height="30" Margin="10,0,0,0" />
+                            <Button Content="点我搜索" Width="90" HorizontalAlignment="Left" Height="30" Margin="10,0,0,0" FontSize="16" />
+                        </DockPanel>
+                    </DockPanel>
+                </Border>
+            </StackPanel>
+        </Border>
+    </LayUI:LayTitleBar>
+</Window>

+ 950 - 0
CollaborativePlatformMain/Form/HomepageForm.xaml.cs

@@ -0,0 +1,950 @@
+using CollaborativePlatformMain.DFEntity;
+using CollaborativePlatformMain.Form.UserControlForm;
+using CollaborativePlatformMain.Util;
+using HandyControl.Controls;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Diagnostics.Eventing.Reader;
+using System.Drawing.Printing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+using Window = System.Windows.Window;
+using MessageBox = System.Windows.MessageBox;
+using static System.Net.Mime.MediaTypeNames;
+
+namespace CollaborativePlatformMain.Form
+{
+    /// <summary>
+    /// HomepageForm.xaml 的交互逻辑
+    /// </summary>
+    public partial class HomepageForm : Window
+    {
+        public HomepageForm()
+        {
+            InitializeComponent();
+        }
+
+        #region 最左边消息
+
+        /// <summary>
+        /// 消息
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void message_Click(object sender, MouseButtonEventArgs e)
+        {
+            SwitchMethod(sender as MenuItem, true);
+        }
+
+        /// <summary>
+        /// 项目下TreeView绑定的数据
+        /// </summary>
+        private List<TreeViewBind> treeViewBinds = new List<TreeViewBind>();
+
+        /// <summary>
+        /// 项目
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void project_Click(object sender, MouseButtonEventArgs e)
+        {
+            SwitchMethod(sender as MenuItem, false);
+            treeViewBinds = new List<TreeViewBind>();
+
+            treeViewBinds.Add(
+                new TreeViewBind("小学项目",
+                    new List<TreeViewBind>()
+                    {
+                        new TreeViewBind("一号楼",
+                            new List<TreeViewBind>()
+                            {
+                                new TreeViewBind("项目信息"),
+                                new TreeViewBind("团队成员"),
+                                new TreeViewBind("工作台", true),
+                                new TreeViewBind("自定义"),
+                                new TreeViewBind("+")
+                            }),
+                        new TreeViewBind("二号楼",
+                            new List<TreeViewBind>()
+                            {
+                                new TreeViewBind("项目信息"),
+                                new TreeViewBind("团队成员"),
+                                new TreeViewBind("工作台", true),
+                                new TreeViewBind("自定义"),
+                                new TreeViewBind("+")
+                            }),
+                        new TreeViewBind("三号楼",
+                            new List<TreeViewBind>()
+                            {
+                                new TreeViewBind("项目信息"),
+                                new TreeViewBind("团队成员"),
+                                new TreeViewBind("工作台", true),
+                                new TreeViewBind("自定义"),
+                                new TreeViewBind("+")
+                            })
+                    }));
+
+            tr_vw.ItemsSource = null;
+            tr_vw.ItemsSource = treeViewBinds;
+        }
+
+        /// <summary>
+        /// 联系人
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void contacts_Click(object sender, MouseButtonEventArgs e)
+        {
+            SwitchMethod(sender as MenuItem, false);
+
+            List<string> sLists = new List<string>() { "建筑负责人", "结构负责人", "给排水负责人" };
+            sp_contacts.Children.Clear();
+            foreach (string s in sLists)
+            {
+                Button button = new Button();
+                button.Content = s;
+                button.BorderThickness = new Thickness(0);
+                button.Width = 180;
+                button.Height = 30;
+                //button.Click += new RoutedEventHandler(toolnavigation_Click);
+                button.HorizontalContentAlignment = HorizontalAlignment.Left;
+                sp_contacts.Children.Add(button);
+            }
+        }
+
+        /// <summary>
+        /// 图库大样图
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void gallery_Click(object sender, MouseButtonEventArgs e)
+        {
+            SwitchMethod(sender as MenuItem, false);
+        }
+
+        /// <summary>
+        /// 工具库
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void tool_Click(object sender, MouseButtonEventArgs e)
+        {
+            SwitchMethod(sender as MenuItem, false);
+
+            List<string> sLists = new List<string>() { "平台图纸治理", "块处理", "大样处理", "图纸对比", "二维审查", "三维" };
+            sp_tools.Children.Clear();
+            foreach (string s in sLists)
+            {
+                Button button = new Button();
+                button.Content = s;
+                button.BorderThickness = new Thickness(0);
+                button.Width = 180;
+                button.Height = 30;
+                button.Click += new RoutedEventHandler(toolnavigation_Click);
+                button.HorizontalContentAlignment = HorizontalAlignment.Left;
+                sp_tools.Children.Add(button);
+            }
+
+            if (ToolsForm == null)
+            {
+                ToolsForm = new ToolsForm(this, ToolLists);
+                ToolsForm.Show();
+            }
+        }
+
+        /// <summary>
+        /// 设置最左测导航的颜色和上边导航的显隐
+        /// </summary>
+        /// <param name="menuItem"></param>
+        /// <param name="isHoShow"></param>
+        public void SwitchMethod(MenuItem menuItem, bool isHoShow)
+        {
+            if (isHoShow)
+            {
+                sp_hzNavigation.Visibility = Visibility.Visible;
+            }
+            else
+            {
+                sp_hzNavigation.Visibility = Visibility.Collapsed;
+            }
+
+            List<MenuItem> mis = CollaborationUtil.GetChildObjects<System.Windows.Controls.MenuItem>(mu_leftMenu);
+
+            foreach (MenuItem mi in mis)
+            {
+                mi.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#1E9FFF"));
+                if (mi.Header.ToString().Replace(" ", "").Equals("消息"))
+                {
+                    dp_message.Visibility = Visibility.Collapsed;
+                }
+                else if (mi.Header.ToString().Replace(" ", "").Equals("项目"))
+                {
+                    dp_project.Visibility = Visibility.Collapsed;
+                }
+                else if (mi.Header.ToString().Replace(" ", "").Equals("工具库"))
+                {
+                    dp_tools.Visibility = Visibility.Collapsed;
+                }
+                else if (mi.Header.ToString().Replace(" ", "").Equals("联系人"))
+                {
+                    dp_contacts.Visibility = Visibility.Collapsed;
+                }
+            }
+
+            if (menuItem.Header.ToString().Replace(" ", "").Equals("消息"))
+            {
+                dp_message.Visibility = Visibility.Visible;
+            }
+            else if (menuItem.Header.ToString().Replace(" ", "").Equals("项目"))
+            {
+                dp_project.Visibility = Visibility.Visible;
+            }
+            else if (menuItem.Header.ToString().Replace(" ", "").Equals("工具库"))
+            {
+                dp_tools.Visibility = Visibility.Visible;
+            }
+            else if (menuItem.Header.ToString().Replace(" ", "").Equals("联系人"))
+            {
+                dp_contacts.Visibility = Visibility.Visible;
+            }
+
+            menuItem.Background = new SolidColorBrush(Colors.Beige);
+            me_message.Children.Clear();
+        }
+
+        #endregion
+
+        #region 工具中间按钮
+
+        private ObservableCollection<CBButtonControlsData> ToolLists = new ObservableCollection<CBButtonControlsData>();
+
+        /// <summary>
+        /// 功能名字对应的功能数据
+        /// </summary>
+        private Dictionary<string, ObservableCollection<CBButtonControlsData>> ToolName_ToolDatas = new Dictionary<string, ObservableCollection<CBButtonControlsData>>()
+        {
+            {
+                "平台图纸治理",new ObservableCollection<CBButtonControlsData>()
+                {
+                    new CBButtonControlsData("功能1",false,""),
+                    new CBButtonControlsData("功能2",false,""),
+                    new CBButtonControlsData("功能3",false,""),
+                    new CBButtonControlsData("功能4",false,""),
+                    new CBButtonControlsData("功能5",false,""),
+                    new CBButtonControlsData("功能6",false,""),
+                    new CBButtonControlsData("功能7",false,""),
+                    new CBButtonControlsData("功能8",false,""),
+                }
+            },
+            {
+                "块处理",new ObservableCollection<CBButtonControlsData>()
+                {
+                    new CBButtonControlsData("处理1",false,""),
+                    new CBButtonControlsData("处理2",false,""),
+                    new CBButtonControlsData("处理3",false,""),
+                    new CBButtonControlsData("处理4",false,""),
+                    new CBButtonControlsData("处理5",false,""),
+                    new CBButtonControlsData("处理6",false,""),
+                    new CBButtonControlsData("处理7",false,""),
+                    new CBButtonControlsData("处理8",false,""),
+                }
+            },
+            {
+                "大样处理",new ObservableCollection<CBButtonControlsData>()
+                {
+                    new CBButtonControlsData("大样1",false,""),
+                    new CBButtonControlsData("大样2",false,""),
+                    new CBButtonControlsData("大样3",false,""),
+                    new CBButtonControlsData("大样4",false,""),
+                    new CBButtonControlsData("大样5",false,""),
+                    new CBButtonControlsData("大样6",false,""),
+                    new CBButtonControlsData("大样7",false,""),
+                    new CBButtonControlsData("大样8",false,""),
+                }
+            },
+            {
+                "图纸对比",new ObservableCollection<CBButtonControlsData>()
+                {
+                    new CBButtonControlsData("图纸对比",false,"")
+                }
+            },
+            {
+                "二维审查",new ObservableCollection<CBButtonControlsData>()
+                {
+                    new CBButtonControlsData("二维审查",false,"")
+                }
+            }, {
+                "三维",new ObservableCollection<CBButtonControlsData>()
+                {
+                    new CBButtonControlsData("三维",false,"")
+                }
+            },
+        };
+
+        private void toolnavigation_Click(object sender, RoutedEventArgs e)
+        {
+            Button button = sender as Button;
+
+            if (button != null && ToolName_ToolDatas.ContainsKey(button.Content.ToString()))
+            {
+                ObservableCollection<CBButtonControlsData> cbButtonControls = ToolName_ToolDatas[button.Content.ToString()];
+
+                wp_tools.Children.Clear();
+
+                foreach (var cbButtonControl in cbButtonControls)
+                {
+                    wp_tools.Children.Add(new CBButtonControls(cbButtonControl));
+                }
+            }
+        }
+
+        /// <summary>
+        /// 添加漂浮工具
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void bt_addTools(object sender, RoutedEventArgs e)
+        {
+            foreach (var tool in ToolName_ToolDatas)
+            {
+                foreach (var value in tool.Value)
+                {
+                    if (!value.CbIsCheck)
+                    {
+                        if (ToolLists.Where(x => x.Guid.Equals(value.Guid)).Count() > 0)
+                        {
+                            for (int i = 0; i < ToolLists.Count; i++)
+                            {
+                                if (ToolLists[i].Guid.Equals(value.Guid))
+                                {
+                                    ToolLists.RemoveAt(i);
+                                    i--;
+                                }
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (ToolLists.Where(x => x.Guid.Equals(value.Guid)).Count() > 0) continue;
+                        ToolLists.Add(value);
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// 悬浮窗窗体
+        /// </summary>
+        public ToolsForm ToolsForm;
+
+        /// <summary>
+        /// 悬浮窗
+        /// </summary>
+        private ObservableCollection<LVProjectInfoEntity> ToolDatas = new ObservableCollection<LVProjectInfoEntity>()
+        {
+            new LVProjectInfoEntity("图纸对比", ""),
+            new LVProjectInfoEntity("超模全解析", ""),
+            new LVProjectInfoEntity("超模数字化建模", "")
+        };
+
+        #endregion
+
+        #region 中间的按钮
+
+        private void General_Click(object sender, MouseButtonEventArgs e)
+        {
+        }
+
+        #endregion
+
+        #region 横向通知消息栏
+
+        private List<Button> menuItems = new List<Button>();
+
+        /// <summary>
+        /// 通知公告数据
+        /// </summary>
+        private List<NotificationAnnouncement> notificationDatas = new List<NotificationAnnouncement>();
+
+        /// <summary>
+        /// 通知公告
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void me_announcementClick(object sender, RoutedEventArgs e)
+        {
+            notificationDatas = new List<NotificationAnnouncement>();
+
+            for (int i = 0; i < new List<string>() { "国博城项目建筑图纸更新", "北京大兴项目结构图纸更新", "绿地项目人防图纸更新" }.Count; i++)
+            {
+                NotificationAnnouncement notificationAnnouncement = new NotificationAnnouncement();
+                notificationAnnouncement.MessageCategory = "通知公告";
+
+                if (i == 0)
+                {
+                    notificationAnnouncement.Content = "国博城项目总消息";
+                    notificationAnnouncement.SpecificContent = "按甲方要求,国博城项目务必在4月15号之前完成报审版。";
+                }
+                else if (i == 1)
+                {
+                    notificationAnnouncement.Content = "北京大兴项目总消息";
+                    notificationAnnouncement.SpecificContent = "按甲方要求,北京大兴项目务必在4月22号之前完成报审版。";
+                }
+                else if (i == 2)
+                {
+                    notificationAnnouncement.Content = "绿地项目总消息";
+                    notificationAnnouncement.SpecificContent = "按甲方要求,绿地项目务必在4月30号之前完成报审版。";
+                }
+
+                notificationDatas.Add(notificationAnnouncement);
+            }
+
+            me_message.Children.Clear();
+            foreach (var notificationData in notificationDatas)
+            {
+                Button button = new Button();
+                button.Content = notificationData.Content;
+                button.BorderThickness = new Thickness(0);
+                button.Width = 180;
+                button.Height = 30;
+                button.Click += new RoutedEventHandler(messageBtnClick);
+                button.Tag = notificationData;
+                button.HorizontalContentAlignment = HorizontalAlignment.Left;
+                me_message.Children.Add(button);
+            }
+        }
+
+        /// <summary>
+        /// 项目
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void me_projectClick(object sender, RoutedEventArgs e)
+        {
+            notificationDatas = new List<NotificationAnnouncement>();
+            foreach (var xiangmu in new List<string>() { "国博城项目建筑图纸更新", "北京大兴项目结构图纸更新", "绿地项目人防图纸更新" })
+            {
+                NotificationAnnouncement notificationAnnouncement = new NotificationAnnouncement();
+                notificationAnnouncement.Content = xiangmu;
+                notificationAnnouncement.MessageCategory = "项目消息";
+
+                if (xiangmu.Equals("国博城项目建筑图纸更新"))
+                {
+                    notificationAnnouncement.SpecificContent = "国博城项目建筑1#楼3层更新。";
+                }
+                else if (xiangmu.Equals("北京大兴项目结构图纸更新"))
+                {
+                    notificationAnnouncement.SpecificContent = "北京大兴项目结构2#楼1层墙柱平法图更新。";
+                }
+                else if (xiangmu.Equals("绿地项目人防图纸更新"))
+                {
+                    notificationAnnouncement.SpecificContent = "绿地项目地下人防图更新。";
+                }
+
+                notificationDatas.Add(notificationAnnouncement);
+            }
+
+            me_message.Children.Clear();
+            foreach (var notificationData in notificationDatas)
+            {
+                Button button = new Button();
+                button.Content = notificationData.Content;
+                button.BorderThickness = new Thickness(0);
+                button.Width = 180;
+                button.Height = 30;
+                button.Click += new RoutedEventHandler(messageBtnClick);
+                button.Tag = notificationData;
+                button.HorizontalContentAlignment = HorizontalAlignment.Left;
+                me_message.Children.Add(button);
+            }
+        }
+
+        /// <summary>
+        /// 系统
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void me_systemClick(object sender, RoutedEventArgs e)
+        {
+            NotificationAnnouncement notificationAnnouncement = new NotificationAnnouncement();
+            notificationAnnouncement.Content = "系统更新";
+            notificationAnnouncement.SpecificContent = "交互平台版本更新至2.0版本·  本次更新了:·    1.主界面消息分组。·    2.修改了登陆界面。·   请及时更新!!";
+            notificationAnnouncement.MessageCategory = "系统消息";
+            NotificationAnnouncement notificationAnnouncement2 = new NotificationAnnouncement();
+            notificationAnnouncement2.Content = "停服升级";
+            notificationAnnouncement2.SpecificContent = "交互平台版本将在4月13日8点20分至4月13日8点50分进行停服更新·本次停服更新不会导致您的数据丢失。";
+            notificationAnnouncement2.MessageCategory = "系统消息";
+            notificationDatas = new List<NotificationAnnouncement>()
+            {
+                notificationAnnouncement,
+                notificationAnnouncement2
+        };
+
+            me_message.Children.Clear();
+            foreach (var notificationData in notificationDatas)
+            {
+                Button button = new Button();
+                button.Content = notificationData.Content;
+                button.BorderThickness = new Thickness(0);
+                button.Width = 180;
+                button.Height = 30;
+                button.Click += new RoutedEventHandler(messageBtnClick);
+                button.Tag = notificationData;
+                button.HorizontalContentAlignment = HorizontalAlignment.Left;
+                me_message.Children.Add(button);
+            }
+        }
+
+        /// <summary>
+        /// 具体消息按钮
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void messageBtnClick(object sender, RoutedEventArgs e)
+        {
+            me_right.Children.Clear();
+            Button button = sender as Button;
+
+            NotificationAnnouncement announcement = button.Tag as NotificationAnnouncement;
+
+            List<string> specificContent = announcement.SpecificContent.Split('·').ToList();
+
+            foreach (var specificConten in specificContent)
+            {
+                TextBlock textBlock = new TextBlock();
+                textBlock.Text = specificConten;
+                textBlock.FontSize = 15;
+                textBlock.FontFamily = new FontFamily("黑体");
+                me_right.Children.Add(textBlock);
+            }
+
+            if (announcement.MessageCategory.Equals("项目消息"))
+            {
+                DockPanel dockPanel = new DockPanel();
+                dockPanel.Margin = new Thickness(0, 10, 30, 0);
+                dockPanel.HorizontalAlignment = HorizontalAlignment.Right;
+
+                TextBlock textBlock = new TextBlock();
+                textBlock.Text = "查看";
+                textBlock.FontSize = 13;
+                textBlock.Foreground = new SolidColorBrush(Colors.Green);
+                textBlock.TextDecorations = TextDecorations.Underline;
+                textBlock.Margin = new Thickness(0, 0, 10, 0);
+                textBlock.FontFamily = new FontFamily("黑体");
+
+                dockPanel.Children.Add(textBlock);
+
+                TextBlock textBlock2 = new TextBlock();
+                textBlock2.Text = "忽略";
+                textBlock2.FontSize = 13;
+                textBlock2.FontFamily = new FontFamily("黑体");
+
+                textBlock2.Foreground = new SolidColorBrush(Colors.Green);
+                textBlock2.TextDecorations = TextDecorations.Underline;
+                dockPanel.Children.Add(textBlock2);
+                me_right.Children.Add(dockPanel);
+            }
+        }
+
+        #endregion
+
+        #region 项目中间部分
+
+        /// <summary>
+        /// 项目信息示例
+        /// </summary>
+        private ObservableCollection<LVProjectInfoEntity> lvProjects = new ObservableCollection<LVProjectInfoEntity>()
+        {
+            new LVProjectInfoEntity("项目名称:", "北京大兴项目"),
+            new LVProjectInfoEntity("项目业态:", "住宅"),
+            new LVProjectInfoEntity("项目地址:", "山东省济南市"),
+            new LVProjectInfoEntity("项目团队:", "项目团队")
+        };
+
+        /// <summary>
+        /// 项目信息示例
+        /// </summary>
+        private ObservableCollection<LVTeamMembersEntity> lvTeamMemberss = new ObservableCollection<LVTeamMembersEntity>()
+        {
+            new LVTeamMembersEntity("主管:", "李明"),
+            new LVTeamMembersEntity("建筑组员:", "李明"),
+            new LVTeamMembersEntity("结构组员:", "张修"),
+            new LVTeamMembersEntity("给排水组员:", "邢华"),
+            new LVTeamMembersEntity("暖通组员:", "杨程"),
+            new LVTeamMembersEntity("电气组员:", "欧瑞"),
+        };
+
+        /// <summary>
+        /// 项目TreeView
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void tv_projectLeftButtonUp(object sender, MouseButtonEventArgs e)
+        {
+            #region 隐藏所有的无用控件
+
+            lv_projectInfo.Visibility = Visibility.Collapsed;
+            sp_info.Visibility = Visibility.Collapsed;
+            sp_work.Visibility = Visibility.Collapsed;
+            sp_addPro.Visibility = Visibility.Collapsed;
+
+            #endregion
+
+            TreeViewBind treeView = tr_vw.SelectedItem as TreeViewBind;
+            if (treeView == null) return;
+
+            string name = treeView.Name;
+
+            if (name.Equals("项目信息"))
+            {
+                sp_info.Visibility = Visibility.Visible;
+                lv_projectInfo.Visibility = Visibility.Visible;
+                lv_projectInfo.ItemsSource = null;
+                lv_projectInfo.ItemsSource = lvProjects;
+            }
+            else if (name.Equals("团队成员"))
+            {
+                sp_info.Visibility = Visibility.Visible;
+                lv_projectInfo.Visibility = Visibility.Visible;
+                lv_projectInfo.ItemsSource = null;
+                lv_projectInfo.ItemsSource = lvTeamMemberss;
+            }
+            else if (name.Equals("工作台"))
+            {
+                sp_work.Visibility = Visibility.Visible;
+                tr_is.ItemsSource = null;
+                if (!treeView.IsPro)
+                {
+                    List<TreeViewBind> TreeViewDatas = new List<TreeViewBind>();
+
+                    TreeViewDatas.Add(new TreeViewBind("小学项目", new List<TreeViewBind>() { new TreeViewBind("新建图纸") }));
+
+                    this.tr_is.ItemsSource = TreeViewDatas;
+                }
+                else
+                {
+                    this.tr_is.ItemsSource = TreeViewDatas;
+                }
+            }
+            else if (name.Equals("自定义"))
+            {
+            }
+        }
+
+        /// <summary>
+        /// lv内修改按钮
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void btn_lv_update(object sender, RoutedEventArgs e)
+        {
+            Button button = sender as Button;
+            LVProjectInfoEntity lvProjectInfo = button.Tag as LVProjectInfoEntity;
+            if (lvProjectInfo != null)
+            {
+            }
+        }
+
+        /// <summary>
+        /// 上传图纸
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            TreeViewBind treeViewBind = TreeViewDatas.First(s => s.Name.Equals("小学项目 一号楼"));
+            UploadDrawingForm upWindow = new UploadDrawingForm(TreeViewDatas);
+
+            foreach (var item in treeViewBind.Children)
+            {
+                if (item.Name.Equals("上传新图")) continue;
+                upWindow.str.Add(item.Name);
+            }
+
+            upWindow.ShowDialog();
+
+            this.tr_is.ItemsSource = null;
+            this.tr_is.ItemsSource = TreeViewDatas;
+        }
+
+        #region 工作台
+
+        /// <summary>
+        ///  工作台数据绑定
+        /// </summary>
+        public static ObservableCollection<TreeViewBind> TreeViewDatas = new ObservableCollection<TreeViewBind>()
+        {
+            new TreeViewBind("小学项目 一号楼",
+                new List<TreeViewBind>()
+                {
+                    new TreeViewBind("上传图纸")
+                })
+        };
+
+        /// <summary>
+        /// 版本名称
+        /// </summary>
+        private List<string> ProVersions = new List<string>();
+
+        /// <summary>
+        /// 本专业
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void pre_Click(object sender, MouseButtonEventArgs e)
+        {
+            tr_all.Visibility = Visibility.Collapsed;
+            tr_is.Visibility = Visibility.Visible;
+            bt_proBig.Visibility = Visibility.Collapsed;
+        }
+
+        /// <summary>
+        /// 全专业
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void all_Click(object sender, MouseButtonEventArgs e)
+        {
+            tr_is.Visibility = Visibility.Collapsed;
+            tr_all.Visibility = Visibility.Visible;
+            tv_building.ItemsSource = null;
+            tv_building.ItemsSource = TreeViewDatas;
+            bt_proBig.Visibility = Visibility.Visible;
+        }
+
+        /// <summary>
+        /// treeview点击
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void tr_is_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+        {
+            TreeViewBind treeView = tr_is.SelectedItem as TreeViewBind;
+
+            //切换展开和下拉
+            if (treeView == null)
+            {
+                return;
+            }
+            if (tr_is.ItemContainerGenerator.ContainerFromItem(treeView) is TreeViewItem currentItem)
+            {
+                if (!currentItem.IsExpanded)
+                {
+                    currentItem.IsExpanded = true;
+                }
+                else
+                {
+                    currentItem.IsExpanded = false;
+                }
+            }
+
+            if (treeView.Name.Contains("更新图纸"))
+            {
+                TreeViewBind treeViewBind = TreeViewDatas.First(s => s.Name.Equals("小学项目 一号楼"));
+                UploadDrawingForm upWindow = new UploadDrawingForm(TreeViewDatas);
+
+                foreach (var item in treeViewBind.Children)
+                {
+                    if (item.Name.Equals("治理图纸")) break;
+                    upWindow.str.Add(item.Name);
+                }
+                upWindow.ShowDialog();
+                string t7 = DateTime.Now.ToShortTimeString();
+                string t3 = DateTime.Now.ToLongDateString() + t7;
+
+                string proVersion = "";
+
+                if (ProVersions.Contains(t3 + "版本"))
+                {
+                    int proVersionIndex = 0;
+
+                    for (int i = 0; i < 100; i++)
+                    {
+                        int j = i + 1;
+
+                        if (ProVersions.Contains(t3 + "(" + j + ")" + "版本"))
+                        {
+                            continue;
+                        }
+                        else
+                        {
+                            proVersionIndex = i + 1;
+                            break;
+                        }
+                    }
+
+                    proVersion = t3 + "(" + proVersionIndex + ")" + "版本";
+                }
+                else
+                {
+                    proVersion = t3 + "版本";
+                }
+
+                ProVersions.Add(proVersion);
+                TreeViewBind TreeViewBind1 = new TreeViewBind(proVersion, new List<TreeViewBind>()
+                    {
+                        new TreeViewBind("原图"),
+                        new TreeViewBind("对比图"),
+                        new TreeViewBind("治理图纸", new List<TreeViewBind>()
+                        {
+                            new TreeViewBind("F1"),
+                            new TreeViewBind("F2",
+                                new List<TreeViewBind>()
+                                {
+                                    new TreeViewBind("墙柱"),
+                                    new TreeViewBind("门窗"),
+                                    new TreeViewBind("功能区标签"),
+                                    new TreeViewBind("未命名")
+                                })
+                        })
+                    });
+
+                int index = CollaborationUtil.GetIndexByTreeView("更新图纸", TreeViewDatas.FirstOrDefault().Children);
+                TreeViewDatas.FirstOrDefault().Children.Insert(index, TreeViewBind1);
+
+                this.tr_is.ItemsSource = null;
+                this.tr_is.ItemsSource = TreeViewDatas;
+            }
+            else if (treeView.Name.Contains("上传图纸"))
+            {
+                string t7 = DateTime.Now.ToShortTimeString();
+                string t3 = DateTime.Now.ToLongDateString() + t7;
+
+                ProVersions.Add(t3 + "版本");
+                TreeViewBind TreeViewBind1 = new TreeViewBind(t3 + "版本", new List<TreeViewBind>()
+                {
+                    new TreeViewBind("原图"),
+                    new TreeViewBind("治理图纸", new List<TreeViewBind>()
+                    {
+                        new TreeViewBind("F1"),
+                        new TreeViewBind("F2",
+                            new List<TreeViewBind>()
+                            {
+                                new TreeViewBind("墙柱"),
+                                new TreeViewBind("门窗"),
+                                new TreeViewBind("功能区标签"),
+                                new TreeViewBind("未命名")
+                            })
+                    })
+                });
+                TreeViewDatas.FirstOrDefault().Children.Insert(0, TreeViewBind1);
+                TreeViewDatas.FirstOrDefault().Children.Add(new TreeViewBind("更新图纸"));
+
+                for (int i = 0; i < TreeViewDatas.FirstOrDefault().Children.Count; i++)
+                {
+                    if (TreeViewDatas.FirstOrDefault().Children[i].Name.Equals("上传图纸"))
+                    {
+                        TreeViewDatas.FirstOrDefault().Children.RemoveAt(i);
+                        i--;
+                        break;
+                    }
+                }
+
+                tr_is.ItemsSource = null;
+                tr_is.ItemsSource = TreeViewDatas;
+            }
+        }
+
+        /// <summary>
+        /// 放大
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void bt_proBigClick(object sender, RoutedEventArgs e)
+        {
+            ProjectForm projectForm = new ProjectForm(this, TreeViewDatas);
+
+            this.Hide();
+            projectForm.ShowDialog();
+            this.Show();
+        }
+
+        #endregion
+
+        #region 新增项目
+
+        private void bt_addPro(object sender, RoutedEventArgs e)
+        {
+            #region 隐藏所有的无用控件
+
+            lv_projectInfo.Visibility = Visibility.Collapsed;
+            sp_info.Visibility = Visibility.Collapsed;
+            sp_work.Visibility = Visibility.Collapsed;
+
+            #endregion
+
+            sp_addPro.Visibility = Visibility.Visible;
+        }
+
+        private void close_Click(object sender, RoutedEventArgs e)
+        {
+            gd_top.Visibility = Visibility.Collapsed;
+        }
+
+        private void bd_Initialized(object sender, EventArgs e)
+        {
+        }
+
+        private void st_Initialized(object sender, EventArgs e)
+        {
+        }
+
+        private void wt_Initialized(object sender, EventArgs e)
+        {
+        }
+
+        private void wm_Initialized(object sender, EventArgs e)
+        {
+        }
+
+        private void ele_Initialized(object sender, EventArgs e)
+        {
+        }
+
+        private void submit_Click(object sender, RoutedEventArgs e)
+        {
+        }
+
+        private void saveFile_Click(object sender, RoutedEventArgs e)
+        {
+        }
+
+        private void savePage_Click(object sender, RoutedEventArgs e)
+        {
+        }
+
+        private void ele_Click(object sender, RoutedEventArgs e)
+        {
+        }
+
+        private void wm_Click(object sender, RoutedEventArgs e)
+        {
+        }
+
+        private void wt_Click(object sender, RoutedEventArgs e)
+        {
+        }
+
+        private void st_Click(object sender, RoutedEventArgs e)
+        {
+        }
+
+        private void bd_Click(object sender, RoutedEventArgs e)
+        {
+        }
+
+        #endregion
+
+        #endregion
+    }
+}

+ 31 - 0
CollaborativePlatformMain/Form/ProjectForm.xaml

@@ -0,0 +1,31 @@
+<Window x:Class="CollaborativePlatformMain.Form.ProjectForm"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:local="clr-namespace:CollaborativePlatformMain.Form"
+        xmlns:HandyControl="clr-namespace:HandyControl.Controls;assembly=HandyControl"
+        xmlns:LayUI="clr-namespace:LayUI.Wpf.Controls;assembly=LayUI.Wpf"
+        mc:Ignorable="d"
+        AllowsTransparency="True"
+        Background=" Transparent"
+        WindowStartupLocation="CenterScreen"
+        WindowStyle="None"
+        Title="" SizeToContent="WidthAndHeight" ResizeMode="NoResize" Closed="ProjectForm_OnClosed">
+    
+    <LayUI:LayTitleBar Background="{DynamicResource Blue}"   CornerRadius="10"
+                   WindowState="{Binding WindowState, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
+        <LayUI:LayTitleBar.Header>
+            <Border Height="35">
+                <DockPanel>
+                    <TextBlock Margin="10,0" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="White"
+                           Text="项目信息" />
+                </DockPanel>
+            </Border>
+        </LayUI:LayTitleBar.Header>
+
+        <StackPanel Name="sp_pro" Background="White">
+
+        </StackPanel>
+    </LayUI:LayTitleBar>
+</Window>

+ 39 - 0
CollaborativePlatformMain/Form/ProjectForm.xaml.cs

@@ -0,0 +1,39 @@
+using CollaborativePlatformMain.DFEntity;
+using CollaborativePlatformMain.Form.UserControlForm;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace CollaborativePlatformMain.Form
+{
+    /// <summary>
+    /// ProjectForm.xaml 的交互逻辑
+    /// </summary>
+    public partial class ProjectForm : Window
+    {
+        public ObservableCollection<TreeViewBind> TreeViewDatas;
+        private HomepageForm HomepageForm;
+        public ProjectForm(HomepageForm homepageForm, ObservableCollection<TreeViewBind> treeViewDatas)
+        {
+            InitializeComponent();
+            TreeViewDatas = treeViewDatas;
+            HomepageForm = homepageForm;
+            sp_pro.Children.Add(new ProjectControls(treeViewDatas));
+        }
+
+        private void ProjectForm_OnClosed(object sender, EventArgs e)
+        {
+        }
+    }
+}

+ 64 - 0
CollaborativePlatformMain/Form/ToolsForm.xaml

@@ -0,0 +1,64 @@
+<Window x:Class="CollaborativePlatformMain.Form.ToolsForm"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:local="clr-namespace:CollaborativePlatformMain.Form"
+         xmlns:HandyControl="clr-namespace:HandyControl.Controls;assembly=HandyControl"
+        xmlns:LayUI="clr-namespace:LayUI.Wpf.Controls;assembly=LayUI.Wpf"
+        mc:Ignorable="d"
+        AllowsTransparency="True"
+        Background=" Transparent"
+        WindowStartupLocation="CenterScreen"
+        WindowStyle="None"
+        Title="" SizeToContent="WidthAndHeight" ResizeMode="NoResize" Closed="ToolsForm_OnClosed">
+    <LayUI:LayTitleBar Background="{DynamicResource Blue}"   CornerRadius="10"
+                       WindowState="{Binding WindowState, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
+        <LayUI:LayTitleBar.Header>
+            <Border Height="35">
+                <DockPanel>
+                    <TextBlock Margin="10,0" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="White"
+                               Text="功能工具" />
+                </DockPanel>
+            </Border>
+        </LayUI:LayTitleBar.Header>
+
+        <Border  CornerRadius="0 0 10 10" Background="White">
+
+            <StackPanel Width="250" Height="400" Margin="0 0 0 10">
+                <ListView HorizontalAlignment="Left" Background="White" BorderThickness="0"
+                      VerticalAlignment="Top" ScrollViewer.HorizontalScrollBarVisibility="Hidden"
+                      ScrollViewer.VerticalScrollBarVisibility="Hidden" Width="250"
+                      x:Name="lv_projectInfo"  Height="400" Visibility="Visible" d:ItemsSource="{d:SampleData ItemCount=5}">
+
+                    <!--隐藏列头-->
+                    <ListView.Resources>
+                        <Style TargetType="{x:Type GridViewColumnHeader}">
+                            <Setter Property="Visibility" Value="Collapsed" />
+                        </Style>
+                    </ListView.Resources>
+
+                    <ListView.ItemContainerStyle>
+                        <Style TargetType="ListViewItem">
+                            <Setter Property="Height" Value="35" />
+                        </Style>
+                    </ListView.ItemContainerStyle>
+
+                    <ListView.View>
+                        <GridView  x:Name="gridview">
+                            <GridViewColumn  Width="190" x:Name="Column1">
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <TextBlock  HorizontalAlignment="Left" Height="20" TextWrapping="Wrap"
+                                                Text="{Binding BtnName}"
+                                                VerticalAlignment="Center" />
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                        </GridView>
+                    </ListView.View>
+                </ListView>
+            </StackPanel>
+        </Border>
+    </LayUI:LayTitleBar>
+</Window>

+ 40 - 0
CollaborativePlatformMain/Form/ToolsForm.xaml.cs

@@ -0,0 +1,40 @@
+using CollaborativePlatformMain.Form.UserControlForm;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace CollaborativePlatformMain.Form
+{
+    /// <summary>
+    /// ToolsForm.xaml 的交互逻辑
+    /// </summary>
+    public partial class ToolsForm : Window
+    {
+        private HomepageForm HomepageForm;
+
+        public ToolsForm(HomepageForm homepageForm, ObservableCollection<CBButtonControlsData> entities)
+        {
+            InitializeComponent();
+
+            lv_projectInfo.ItemsSource = null;
+            lv_projectInfo.ItemsSource = entities;
+            HomepageForm = homepageForm;
+        }
+
+        private void ToolsForm_OnClosed(object sender, EventArgs e)
+        {
+            HomepageForm.ToolsForm = null;
+        }
+    }
+}

+ 66 - 0
CollaborativePlatformMain/Form/UploadDrawingForm.xaml

@@ -0,0 +1,66 @@
+<Window x:Class="CollaborativePlatformMain.Form.UploadDrawingForm"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:local="clr-namespace:CollaborativePlatformMain.Form"
+       xmlns:HandyControl="clr-namespace:HandyControl.Controls;assembly=HandyControl"
+        xmlns:LayUI="clr-namespace:LayUI.Wpf.Controls;assembly=LayUI.Wpf"
+        mc:Ignorable="d"
+        AllowsTransparency="True"
+        Background=" Transparent"
+        WindowStartupLocation="CenterScreen"
+        WindowStyle="None"
+        Title="" SizeToContent="WidthAndHeight" ResizeMode="NoResize">
+    <LayUI:LayTitleBar Background="{DynamicResource Blue}"   CornerRadius="10"
+                       WindowState="{Binding WindowState, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
+        <LayUI:LayTitleBar.Header>
+            <Border Height="35">
+                <DockPanel>
+                    <TextBlock Margin="10,0" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="White"
+                               Text="图纸上传" />
+                </DockPanel>
+            </Border>
+        </LayUI:LayTitleBar.Header>
+
+        <StackPanel Background="White">
+            <!--图纸名称-->
+            <DockPanel Margin="0 20 0 0" HorizontalAlignment="Left">
+                <LayUI:LayTextBlock  FontSize="15" Margin="20 0 0 0" Text="图纸名称:"  VerticalAlignment="Center" />
+
+                <LayUI:LayTextBox Name="tb_dwgName" LayUI:Watermark="" Margin="0 0 20 0" Height="20" HorizontalAlignment="Left" Width="200" />
+            </DockPanel>
+
+            <!--账户密码-->
+            <DockPanel Margin="0 20 0 0" HorizontalAlignment="Left">
+                <LayUI:LayTextBlock  FontSize="15" Margin="20 0 0 0" Text="是否与前版本对比:"  VerticalAlignment="Center" />
+
+                <RadioButton Content="是" IsChecked="True"  Click="ButtonBase_OnClick"/>
+                <RadioButton Content="否" Click="ButtonBase_OnClick" Margin="10 0 0 0" />
+            </DockPanel>
+
+            <StackPanel Name="sp_contrast"  Visibility="Visible">
+                <!--对比图纸-->
+                <DockPanel Margin="0 20 0 0" HorizontalAlignment="Left">
+                    <LayUI:LayTextBlock  FontSize="15" Margin="35 0 0 0"  Text="对比图纸:"  VerticalAlignment="Center" />
+
+                    <LayUI:LayTextBox Name="tb_dwg2Name" LayUI:Watermark="" Height="20"  HorizontalAlignment="Left" Width="185" />
+                </DockPanel>
+                <LayUI:LayTextBlock TextWrapping="Wrap"  Foreground="Blue" Width="270"  FontSize="15" Margin="35 10 0 0" Text="注:图纸对比时需对图纸数据进行治理,过程中可能需要人工干预,请关注运行 进展。"  VerticalAlignment="Center" />
+
+                <!--对比范围-->
+                <DockPanel Margin="0 20 0 0" HorizontalAlignment="Left">
+                    <LayUI:LayTextBlock  FontSize="15" Margin="35 0 0 0"  Text="对比范围:"  VerticalAlignment="Center" />
+                    <ComboBox Width="150" Name="cb_range"></ComboBox>
+                </DockPanel>
+            </StackPanel>
+
+            <LayUI:LayTextBlock  FontSize="15" Margin="20 50 0 0"  Text="更新日志:"  VerticalAlignment="Center" />
+            <Border Height="100" Width="180" Margin="20 0 0 0">
+                <TextBox Height="100" Width="180" HorizontalAlignment="Left" TextWrapping="Wrap" Background="WhiteSmoke" />
+            </Border>
+
+            <Button Width="80" Margin="0 20 0 10" VerticalAlignment ="Bottom" Click="Button_Click" Content="上传" />
+        </StackPanel>
+    </LayUI:LayTitleBar>
+</Window>

+ 68 - 0
CollaborativePlatformMain/Form/UploadDrawingForm.xaml.cs

@@ -0,0 +1,68 @@
+using CollaborativePlatformMain.DFEntity;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace CollaborativePlatformMain.Form
+{
+    /// <summary>
+    /// UploadDrawingForm.xaml 的交互逻辑
+    /// </summary>
+    public partial class UploadDrawingForm : Window
+    {
+        private ObservableCollection<TreeViewBind> TreeViews = new ObservableCollection<TreeViewBind>();
+
+        public UploadDrawingForm(ObservableCollection<TreeViewBind> treeViews)
+        {
+            InitializeComponent();
+            cb_range.ItemsSource = new List<string> { "全图对比", "指定图层对比" };
+            TreeViews = treeViews;
+        }
+
+        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
+        {
+            RadioButton radioButton = sender as RadioButton;
+
+            if (radioButton.Content.Equals("是"))
+            {
+                sp_contrast.Visibility = Visibility.Visible;
+            }
+            else
+            {
+                sp_contrast.Visibility = Visibility.Collapsed;
+            }
+
+        }
+
+
+        public List<string> str = new List<string>();
+
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            string name = tb_dwgName.Text;
+            string dbname = tb_dwg2Name.Text;
+
+            TreeViewBind treeViewBind = new TreeViewBind(name, new List<TreeViewBind>() { new TreeViewBind("原图纸"), new TreeViewBind(dbname + "对比图") });
+
+            for (int i = 0; i < TreeViews.Count; i++)
+            {
+                if (TreeViews[i].Name.Equals("项目002"))
+                {
+                    TreeViews[i].Children.Add(treeViewBind);
+                }
+            }
+            this.Close();
+        }
+    }
+}

+ 16 - 0
CollaborativePlatformMain/Form/UserControlForm/CBButtonControls.xaml

@@ -0,0 +1,16 @@
+<UserControl x:Class="CollaborativePlatformMain.Form.UserControlForm.CBButtonControls"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:local="clr-namespace:CollaborativePlatformMain.Form"
+       mc:Ignorable="d" Width="80" Height="80" Background="Transparent">
+    <StackPanel PreviewMouseLeftButtonUp="UIElement_OnPreviewMouseLeftButtonUp">
+
+        <StackPanel Margin="5" Height="32" Width="32" Background="Aquamarine">
+        </StackPanel>
+
+        <TextBlock Name="tb_name" HorizontalAlignment="Center" />
+        <CheckBox  Name="cb_check" Click="Cb_check_OnClick" Margin="0 5 0 0" HorizontalAlignment="Center" />
+    </StackPanel>
+</UserControl>

+ 78 - 0
CollaborativePlatformMain/Form/UserControlForm/CBButtonControls.xaml.cs

@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace CollaborativePlatformMain.Form.UserControlForm
+{
+    /// <summary>
+    /// CBButtonControls.xaml 的交互逻辑
+    /// </summary>
+    public partial class CBButtonControls : UserControl
+    {
+        public CBButtonControlsData CbButtonControls;
+
+        public CBButtonControls(CBButtonControlsData cbButtonControls)
+        {
+            InitializeComponent();
+            CbButtonControls = cbButtonControls;
+            tb_name.Text = CbButtonControls.BtnName;
+            cb_check.IsChecked = CbButtonControls.CbIsCheck;
+        }
+
+        private void UIElement_OnPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+        {
+            if ((bool)cb_check.IsChecked)
+            {
+                cb_check.IsChecked = false;
+            }
+            else
+            {
+                cb_check.IsChecked = true;
+            }
+            CbButtonControls.CbIsCheck = (bool)cb_check.IsChecked;
+
+        }
+
+        private void Cb_check_OnClick(object sender, RoutedEventArgs e)
+        {
+            if ((bool)cb_check.IsChecked)
+            {
+                cb_check.IsChecked = false;
+            }
+            else
+            {
+                cb_check.IsChecked = true;
+            }
+            CbButtonControls.CbIsCheck = (bool)cb_check.IsChecked;
+        }
+    }
+
+    public class CBButtonControlsData
+    {
+        public CBButtonControlsData(string btnName, bool cbIsCheck, string imgPath)
+        {
+            BtnName = btnName;
+            CbIsCheck = cbIsCheck;
+            ImgPath = imgPath;
+            Guid = System.Guid.NewGuid().ToString();
+        }
+
+        public string Guid { get; set; }
+
+        public string BtnName { get; set; }
+
+        public bool CbIsCheck { get; set; } = false;
+
+        public string ImgPath { get; set; }
+    }
+}

+ 36 - 0
CollaborativePlatformMain/Form/UserControlForm/ProjectControls.xaml

@@ -0,0 +1,36 @@
+<UserControl x:Class="CollaborativePlatformMain.Form.UserControlForm.ProjectControls"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:local="clr-namespace:CollaborativePlatformMain.Form"
+        mc:Ignorable="d" Width="800" Height="550">
+    <StackPanel Orientation="Horizontal">
+        <Border  BorderBrush="Green" BorderThickness="0.5,0,0,0.5" Width="200">
+
+            <StackPanel>
+
+                <TextBlock Text="建筑" HorizontalAlignment="Center" FontSize="25" Grid.Row="0"/>
+                <TreeView  x:Name="tv_building" Height="518">
+                    <TreeView.ItemTemplate>
+                        <HierarchicalDataTemplate ItemsSource="{Binding Children}">
+                            <TextBlock Text="{Binding Name}"/>
+                        </HierarchicalDataTemplate>
+                    </TreeView.ItemTemplate>
+                </TreeView>
+            </StackPanel>
+        </Border>
+        <Border  BorderBrush="Green" BorderThickness="0.5,0,0,0.5" Width="200">
+            <TextBlock Text="结构" HorizontalAlignment="Center" FontSize="25"/>
+        </Border>
+        <Border  BorderBrush="Green" BorderThickness="0.5,0,0,0.5" Width="200">
+            <TextBlock Text="给排水" HorizontalAlignment="Center" FontSize="25"/>
+        </Border>
+        <Border  BorderBrush="Green" BorderThickness="0.5,0,0,0.5" Width="200">
+            <TextBlock Text="暖通" HorizontalAlignment="Center" FontSize="25"/>
+        </Border>
+        <Border  BorderBrush="Green" BorderThickness="0.5,0,0,0.5" Width="200">
+            <TextBlock Text="电气" HorizontalAlignment="Center" FontSize="25"/>
+        </Border>
+    </StackPanel>
+</UserControl>

+ 38 - 0
CollaborativePlatformMain/Form/UserControlForm/ProjectControls.xaml.cs

@@ -0,0 +1,38 @@
+using CollaborativePlatformMain.DFEntity;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace CollaborativePlatformMain.Form.UserControlForm
+{
+    /// <summary>
+    /// ProjectControls.xaml 的交互逻辑
+    /// </summary>
+    public partial class ProjectControls : UserControl
+    {
+        public string pro_Name;
+
+        /// <summary>
+        /// 树状图数据
+        /// </summary>
+        public ObservableCollection<TreeViewBind> TreeViewDatas;
+
+        public ProjectControls(ObservableCollection<TreeViewBind> treeViewDatas)
+        {
+            InitializeComponent();
+            TreeViewDatas = treeViewDatas;
+            this.tv_building.ItemsSource = TreeViewDatas;
+        }
+    }
+}

+ 21 - 19
CollaborativePlatformMain/MainWindow.xaml.cs

@@ -1,4 +1,6 @@
-using System;
+using CollaborativePlatformMain.Form;
+using CollaborativePlatformMain.Util;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -33,22 +35,22 @@ namespace CollaborativePlatformMain
         /// <param name="e"></param>
         private void LoginLayButton_Click(object sender, RoutedEventArgs e)
         {
-            ////获取用户名和密码
-            //string userName = tb_userName.Text;
-            //string userPwd = tb_userPwd.Text;
+            //获取用户名和密码
+            string userName = tb_userName.Text;
+            string userPwd = tb_userPwd.Text;
 
-            ////验证登陆
-            //if (LoginUtil.VerifyLoginMethod(userName, userPwd))
-            //{
-            //    //HomepageForm homepageForm = new HomepageForm();
-            //    //homepageForm.Show();
-            //    //this.Close();
-            //}
-            //else
-            //{
-            //    //登陆事变
-            //    MessageBox.Show("用户名或密码错误!", "提示", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.None);
-            //}
+            //验证登陆
+            if (LoginUtil.VerifyLoginMethod(userName, userPwd))
+            {
+                HomepageForm homepageForm = new HomepageForm();
+                homepageForm.Show();
+                this.Close();
+            }
+            else
+            {
+                //登陆事变
+                MessageBox.Show("用户名或密码错误!", "提示", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.None);
+            }
         }
 
         /// <summary>
@@ -84,9 +86,9 @@ namespace CollaborativePlatformMain
 
             if (!string.IsNullOrEmpty(tb_InvitationCode.Text) && temporaryLogins.Contains(tb_InvitationCode.Text))
             {
-                //HomepageForm homepageForm = new HomepageForm();
-                //homepageForm.Show();
-                //this.Close();
+                HomepageForm homepageForm = new HomepageForm();
+                homepageForm.Show();
+                this.Close();
             }
             else
             {

+ 79 - 0
CollaborativePlatformMain/Util/CollaborationUtil.cs

@@ -0,0 +1,79 @@
+using CollaborativePlatformMain.DFEntity;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media;
+
+namespace CollaborativePlatformMain.Util
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     CollaborationUtil.cs</para>
+    /// 
+    /// <para>描述(Description):     协同窗体后台工具类</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月20日15:24:29</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class CollaborationUtil
+    {
+        /// <summary>
+        /// 获得指定元素的所有子元素
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="obj"></param>
+        /// <returns></returns>
+        public static List<T> GetChildObjects<T>(DependencyObject obj) where T : FrameworkElement
+        {
+            DependencyObject child = null;
+            List<T> childList = new List<T>();
+
+            for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)
+            {
+                child = VisualTreeHelper.GetChild(obj, i);
+
+                if (child is T)
+                {
+                    childList.Add((T)child);
+                }
+                childList.AddRange(GetChildObjects<T>(child));
+            }
+            return childList;
+        }
+
+
+
+        /// <summary>
+        /// 获取名字在集合中的下标
+        /// </summary>
+        /// <param name="name"></param>
+        /// <param name="treeViews"></param>
+        /// <returns></returns>
+        public static int GetIndexByTreeView(string name, List<TreeViewBind> treeViews)
+        {
+            for (int i = 0; i < treeViews.Count; i++)
+            {
+                if (treeViews[i].Name.Equals(name))
+                {
+                    return i;
+                }
+
+            }
+
+            return -1;
+        }
+    }
+}

+ 76 - 0
CollaborativePlatformMain/Util/LoginUtil.cs

@@ -0,0 +1,76 @@
+using CollaborativePlatformMain.DFEntity;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.Util
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     LoginUtil.cs</para>
+    /// 
+    /// <para>描述(Description):     登陆工具类</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月20日15:23:47</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class LoginUtil
+    {
+        /// <summary>
+        /// 用户名和密码
+        /// </summary>
+        public static List<UserInformationEntity> UserInfos = new List<UserInformationEntity>() { new UserInformationEntity("1", "1") };
+
+        /// <summary>
+        /// 验证登陆
+        /// </summary>
+        /// <param name="userName"></param>
+        /// <param name="pwd"></param>
+        /// <returns></returns>
+        public static bool VerifyLoginMethod(string userName, string pwd)
+        {
+            bool success = false;
+
+            foreach (var userInfo in UserInfos)
+            {
+                if (userInfo.UserName.Equals(userName) && userInfo.UserPwd.Equals(pwd))
+                {
+                    success = true;
+                    break;
+                }
+            }
+
+            return success;
+        }
+
+        /// <summary>
+        /// 注册
+        /// </summary>
+        /// <returns></returns>
+        public static bool RegisterMethod(string userName, string pwd)
+        {
+            try
+            {
+                UserInfos.Add(new UserInformationEntity(userName, pwd));
+            }
+            catch (Exception e)
+            {
+                return false;
+            }
+
+            return true;
+        }
+    }
+}