ouruisong 11 mesi fa
parent
commit
cd5e6924a6
28 ha cambiato i file con 2446 aggiunte e 118 eliminazioni
  1. 70 1
      CollaborativePlatformMain/CollaborativePlatformMain.csproj
  2. 71 0
      CollaborativePlatformMain/DFEntity/MessageSubUtil/ContactsUtil.cs
  3. 53 0
      CollaborativePlatformMain/DFEntity/MessageSubUtil/LegendEntity.cs
  4. 113 0
      CollaborativePlatformMain/DFEntity/MessageSubUtil/LevelTableEntity.cs
  5. 63 0
      CollaborativePlatformMain/DFEntity/MessageSubUtil/ThreeModelEntity.cs
  6. 70 0
      CollaborativePlatformMain/DFEntity/StandardizedEntity.cs
  7. 27 18
      CollaborativePlatformMain/Form/HomepageForm.xaml
  8. 120 99
      CollaborativePlatformMain/Form/HomepageForm.xaml.cs
  9. 19 0
      CollaborativePlatformMain/Form/MessageSubPage/AddImage/AddImageForm.xaml
  10. 54 0
      CollaborativePlatformMain/Form/MessageSubPage/AddImage/AddImageForm.xaml.cs
  11. 89 0
      CollaborativePlatformMain/Form/MessageSubPage/CreatLevel/CreatLevelForm.xaml
  12. 254 0
      CollaborativePlatformMain/Form/MessageSubPage/CreatLevel/CreatLevelForm.xaml.cs
  13. 19 0
      CollaborativePlatformMain/Form/MessageSubPage/CreatLevel/SetLevelTablecreationForm.xaml
  14. 279 0
      CollaborativePlatformMain/Form/MessageSubPage/CreatLevel/SetLevelTablecreationForm.xaml.cs
  15. 29 0
      CollaborativePlatformMain/Form/MessageSubPage/SeconContactsPage.xaml
  16. 100 0
      CollaborativePlatformMain/Form/MessageSubPage/SeconContactsPage.xaml.cs
  17. 84 0
      CollaborativePlatformMain/Form/MessageSubPage/SeconLegendPage.xaml
  18. 116 0
      CollaborativePlatformMain/Form/MessageSubPage/SeconLegendPage.xaml.cs
  19. 102 0
      CollaborativePlatformMain/Form/MessageSubPage/SeconThreeDimensionalPage.xaml
  20. 254 0
      CollaborativePlatformMain/Form/MessageSubPage/SeconThreeDimensionalPage.xaml.cs
  21. 26 0
      CollaborativePlatformMain/Form/MessageSubPage/SeconToolLibraryPage.xaml
  22. 37 0
      CollaborativePlatformMain/Form/MessageSubPage/SeconToolLibraryPage.xaml.cs
  23. 69 0
      CollaborativePlatformMain/Form/StandardizedAssistantForm.xaml
  24. 197 0
      CollaborativePlatformMain/Form/StandardizedAssistantForm.xaml.cs
  25. BIN
      CollaborativePlatformMain/Image/add.png
  26. BIN
      CollaborativePlatformMain/Image/folderImage.png
  27. 121 0
      CollaborativePlatformMain/Util/CreatLevelUtil.cs
  28. 10 0
      CollaborativePlatformProject/CollaborationPlatform/Form/HomepageForm.xaml.cs

+ 70 - 1
CollaborativePlatformMain/CollaborativePlatformMain.csproj

@@ -87,10 +87,39 @@
       <Generator>MSBuild:Compile</Generator>
       <SubType>Designer</SubType>
     </ApplicationDefinition>
+    <Compile Include="DFEntity\MessageSubUtil\ContactsUtil.cs" />
+    <Compile Include="DFEntity\MessageSubUtil\LegendEntity.cs" />
+    <Compile Include="DFEntity\MessageSubUtil\LevelTableEntity.cs" />
     <Compile Include="DFEntity\MessageSubUtil\MessageData.cs" />
+    <Compile Include="DFEntity\MessageSubUtil\ThreeModelEntity.cs" />
+    <Compile Include="DFEntity\StandardizedEntity.cs" />
+    <Compile Include="Form\MessageSubPage\AddImage\AddImageForm.xaml.cs">
+      <DependentUpon>AddImageForm.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\MessageSubPage\CreatLevel\CreatLevelForm.xaml.cs">
+      <DependentUpon>CreatLevelForm.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\MessageSubPage\CreatLevel\SetLevelTablecreationForm.xaml.cs">
+      <DependentUpon>SetLevelTablecreationForm.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\MessageSubPage\SeconContactsPage.xaml.cs">
+      <DependentUpon>SeconContactsPage.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\MessageSubPage\SeconLegendPage.xaml.cs">
+      <DependentUpon>SeconLegendPage.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Form\MessageSubPage\SeconMessagePage.xaml.cs">
       <DependentUpon>SeconMessagePage.xaml</DependentUpon>
     </Compile>
+    <Compile Include="Form\MessageSubPage\SeconThreeDimensionalPage.xaml.cs">
+      <DependentUpon>SeconThreeDimensionalPage.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\MessageSubPage\SeconToolLibraryPage.xaml.cs">
+      <DependentUpon>SeconToolLibraryPage.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Form\StandardizedAssistantForm.xaml.cs">
+      <DependentUpon>StandardizedAssistantForm.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Form\UserControlForm\CBButtonControls.xaml.cs">
       <DependentUpon>CBButtonControls.xaml</DependentUpon>
     </Compile>
@@ -98,11 +127,44 @@
       <DependentUpon>ProjectControls.xaml</DependentUpon>
     </Compile>
     <Compile Include="Util\CollaborationUtil.cs" />
+    <Compile Include="Util\CreatLevelUtil.cs" />
     <Compile Include="Util\LoginUtil.cs" />
+    <Page Include="Form\MessageSubPage\AddImage\AddImageForm.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\MessageSubPage\CreatLevel\CreatLevelForm.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\MessageSubPage\CreatLevel\SetLevelTablecreationForm.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\MessageSubPage\SeconContactsPage.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\MessageSubPage\SeconLegendPage.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="Form\MessageSubPage\SeconMessagePage.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="Form\MessageSubPage\SeconThreeDimensionalPage.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\MessageSubPage\SeconToolLibraryPage.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="Form\StandardizedAssistantForm.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="Form\UserControlForm\CBButtonControls.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
@@ -184,6 +246,13 @@
   <ItemGroup>
     <None Include="App.config" />
   </ItemGroup>
-  <ItemGroup />
+  <ItemGroup>
+    <Resource Include="Image\folderImage.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <Resource Include="Image\add.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Resource>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>

+ 71 - 0
CollaborativePlatformMain/DFEntity/MessageSubUtil/ContactsUtil.cs

@@ -0,0 +1,71 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity.MessageSubUtil
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     ContactsUtil.cs</para>
+    /// 
+    /// <para>描述(Description):     联系人数据类</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月28日11:04:31</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class ContactsUtil
+    {
+        /// <summary>
+        /// 子级数据
+        /// </summary>
+        /// <param name="id"></param>
+        /// <param name="name"></param>
+        public ContactsUtil(string id, string name)
+        {
+            Id = id;
+            Name = name;
+        }
+
+        /// <summary>
+        /// 父级数据
+        /// </summary>
+        /// <param name="id"></param>
+        /// <param name="name"></param>
+        /// <param name="subDatas"></param>
+        public ContactsUtil(string id, string name, List<ContactsUtil> subDatas) : this(id, name)
+        {
+            SubDatas = subDatas;
+        }
+
+
+
+
+        /// <summary>
+        /// ID
+        /// </summary>
+        public string Id { get; set; }
+
+        /// <summary>
+        /// 名称
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 子级数据
+        /// </summary>
+        public List<ContactsUtil> SubDatas { get; set; } = new List<ContactsUtil>();
+
+    }
+}

+ 53 - 0
CollaborativePlatformMain/DFEntity/MessageSubUtil/LegendEntity.cs

@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity.MessageSubUtil
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     LegendEntity.cs</para>
+    /// 
+    /// <para>描述(Description):     图例库数据实体类</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月29日15:56:25</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class LegendEntity
+    {
+        /// <summary>
+        /// 图例库数据
+        /// </summary>
+        /// <param name="name"></param>
+        /// <param name="imagePath"></param>
+        public LegendEntity(string name, string imagePath)
+        {
+            Name = name;
+            ImagePath = imagePath;
+        }
+
+
+        /// <summary>
+        /// 文件夹名称
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 地址
+        /// </summary>
+        public string ImagePath { get; set; }
+
+    }
+}

+ 113 - 0
CollaborativePlatformMain/DFEntity/MessageSubUtil/LevelTableEntity.cs

@@ -0,0 +1,113 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity.MessageSubUtil
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     LevelTableEntity.cs</para>
+    /// 
+    /// <para>描述(Description):     标高表创建实体类</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年1月16日08:50:18</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class LevelTableEntity : INotifyPropertyChanged
+    {
+        public LevelTableEntity()
+        {
+        }
+
+
+        /// <summary>
+        /// 结构标高
+        /// </summary>
+        /// <param name="levelNmae">层号</param>
+        /// <param name="structuralElevation">结构标高</param>
+        /// <param name="floorHeight">层高</param>
+        public LevelTableEntity(string juID, string levelNmae, double structuralElevation, double floorHeight)
+        {
+            LevelNmae = levelNmae;
+            StructuralElevation = structuralElevation;
+            FloorHeight = floorHeight;
+            JuID = juID;
+        }
+
+        /// <summary>
+        /// 唯一id
+        /// </summary>
+        public string JuID { get; set; }
+
+        /// <summary>
+        /// 层号
+        /// </summary>
+        public string levelNmae { get; set; }
+        public string LevelNmae
+        {
+            get { return levelNmae; }
+            set
+            {
+                if (value != levelNmae)
+                {
+                    levelNmae = value;
+                    NotifyPropertyChanged("LevelNmae");
+                }
+            }
+        }
+
+        /// <summary>
+        /// 结构标高
+        /// </summary>
+
+        public double structuralElevation { get; set; }
+        public double StructuralElevation
+        {
+            get { return structuralElevation; }
+            set
+            {
+                if (value != structuralElevation)
+                {
+                    structuralElevation = value;
+                    NotifyPropertyChanged("StructuralElevation");
+                }
+            }
+        }
+
+
+        //层高
+        public double floorHeight { get; set; }
+        public double FloorHeight
+        {
+            get { return floorHeight; }
+            set
+            {
+                if (value != floorHeight)
+                {
+                    floorHeight = value;
+                    NotifyPropertyChanged("FloorHeight");
+                }
+            }
+        }
+
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        private void NotifyPropertyChanged(string propertyName = "")
+        {
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+        }
+    }
+}

+ 63 - 0
CollaborativePlatformMain/DFEntity/MessageSubUtil/ThreeModelEntity.cs

@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity.MessageSubUtil
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     ThreeModelEntity.cs</para>
+    /// 
+    /// <para>描述(Description):     三维数据</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月28日17:35:46</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class ThreeModelEntity
+    {
+        /// <summary>
+        /// 子级数据
+        /// </summary>
+        /// <param name="node"></param>
+        public ThreeModelEntity(string node)
+        {
+            Node = node;
+        }
+        
+
+        /// <summary>
+        /// 父级数据
+        /// </summary>
+        /// <param name="node"></param>
+        /// <param name="subDatas"></param>
+        public ThreeModelEntity(string node, List<ThreeModelEntity> subDatas) : this(node)
+        {
+            SubDatas = subDatas;
+        }
+
+        /// <summary>
+        /// 内容
+        /// </summary>
+        public string Node { get; set; }
+
+
+        /// <summary>
+        /// 子级数据
+        /// </summary>
+        public List<ThreeModelEntity> SubDatas { get; set; } = new List<ThreeModelEntity>();
+
+
+    }
+}

+ 70 - 0
CollaborativePlatformMain/DFEntity/StandardizedEntity.cs

@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.DFEntity
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     StandardizedEntity.cs</para>
+    /// 
+    /// <para>描述(Description):     规范数据库</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月29日16:58:42</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class StandardizedEntity
+    {
+
+        /// <summary>
+        /// 章节及子集内容
+        /// </summary>
+        /// <param name="name"></param>
+        /// <param name="subStandNodes"></param>
+        public StandardizedEntity(string name, List<StandardizedEntity> subStandNodes)
+        {
+            Name = name;
+            SubStandNodes = subStandNodes;
+        }
+
+        /// <summary>
+        /// 序号及内容
+        /// </summary>
+        /// <param name="name"></param>
+        /// <param name="node"></param>
+        public StandardizedEntity(string name, string node)
+        {
+            Name = name;
+            Node = node;
+        }
+
+
+        /// <summary>
+        /// 规范名
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 子集数据
+        /// </summary>
+        public List<StandardizedEntity> SubStandNodes { get; set; } = new List<StandardizedEntity>();
+
+        /// <summary>
+        /// 内容
+        /// </summary>
+        public string Node { get; set; }
+
+    }
+}

+ 27 - 18
CollaborativePlatformMain/Form/HomepageForm.xaml

@@ -39,20 +39,23 @@
 
                         <Menu Background="{DynamicResource Blue}" Height="430" Name="mu_leftMenu" FontFamily="黑体" FontSize="14">
 
-                            <MenuItem  Width="118" Height="40" Header="消息      "
-                                      PreviewMouseLeftButtonDown="message_Click"></MenuItem>
+                            <MenuItem Name="mitem_message" Width="118" Height="40" Header="消息      "
+                                      PreviewMouseLeftButtonDown="message_Click"/>
 
-                            <MenuItem Width="118" Height="40" Header="项目      "
-                                      PreviewMouseLeftButtonDown="project_Click"></MenuItem>
+                            <MenuItem Name="mitem_project" Width="118" Height="40" Header="项目      "
+                                      PreviewMouseLeftButtonDown="project_Click"/>
 
-                            <MenuItem Width="118" Height="40" Header="联系人    "
-                                      PreviewMouseLeftButtonDown="contacts_Click"></MenuItem>
+                            <MenuItem Name="mitem_contacts" Width="118" Height="40" Header="联系人    "
+                                      PreviewMouseLeftButtonDown="contacts_Click"/>
 
-                            <MenuItem Width="118" Height="40" Header="图块大样库"
-                                      PreviewMouseLeftButtonDown="gallery_Click"></MenuItem>
+                            <MenuItem Name="mitem_gallery" Width="118" Height="40" Header="图例库"
+                                      PreviewMouseLeftButtonDown="gallery_Click"/>
 
-                            <MenuItem Width="118" Height="40" Header="工具库    "
-                                      PreviewMouseLeftButtonDown="tool_Click"></MenuItem>
+                            <MenuItem Name="mitem_tool" Width="118" Height="40" Header="工具库    "
+                                      PreviewMouseLeftButtonDown="tool_Click"/>
+
+                            <MenuItem Width="118" Height="40" Header="三维    "
+                                      PreviewMouseLeftButtonDown="three_Click"/>
                         </Menu>
                     </StackPanel>
 
@@ -295,17 +298,16 @@
 
                     <!--联系人-->
                     <DockPanel Name="dp_contacts" Visibility="Collapsed">
-                        <StackPanel Name="sp_contacts" Width="180" HorizontalAlignment="Left" Background="WhiteSmoke">
-                        </StackPanel>
+                        <Frame Name="seconContactsPage" NavigationUIVisibility="Hidden"/>
+                    </DockPanel>
 
-                        <!--最右边-->
-                        <StackPanel Height="420"  VerticalAlignment="Top" Width="483"
-                                Margin="0 10 0 0"  HorizontalAlignment="Left">
-                        </StackPanel>
+                    <!--图块大样库-->
+                    <DockPanel Name="dp_gallery" Visibility="Collapsed">
+                        <Frame Name="seconLegendPage" NavigationUIVisibility="Hidden"/>
                     </DockPanel>
 
                     <!--工具库-->
-                    <DockPanel Name="dp_tools" Visibility="Collapsed">
+                    <DockPanel Name="dp_tools" Visibility="Visible">
 
                         <StackPanel Name="sp_tools" Width="180" HorizontalAlignment="Left" Background="WhiteSmoke">
                         </StackPanel>
@@ -322,6 +324,13 @@
                         </StackPanel>
                     </DockPanel>
 
+
+                    <!--三维-->
+                    <DockPanel Name="dp_threetools" Visibility="Collapsed">
+                        <Frame Name="seconThreeTools" NavigationUIVisibility="Hidden"/>
+                    </DockPanel>
+
+
                 </DockPanel>
 
                 <Border  CornerRadius="0 0 10 10" Background="{DynamicResource Blue}">
@@ -331,7 +340,7 @@
 
                             <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" />
+                            <Button Name="bt_qlxzs" Content="点我搜索" Width="90" HorizontalAlignment="Left" Height="30" Margin="10,0,0,0" FontSize="16" Click="bt_qlxzs_Click"/>
                         </DockPanel>
                     </DockPanel>
                 </Border>

+ 120 - 99
CollaborativePlatformMain/Form/HomepageForm.xaml.cs

@@ -22,6 +22,7 @@ using Window = System.Windows.Window;
 using MessageBox = System.Windows.MessageBox;
 using static System.Net.Mime.MediaTypeNames;
 using CollaborativePlatformMain.Form.MessageSubPage;
+using CollaborativePlatformMain.Form.MessageSubPage.CreatLevel;
 
 namespace CollaborativePlatformMain.Form
 {
@@ -44,9 +45,16 @@ namespace CollaborativePlatformMain.Form
         /// <param name="e"></param>
         private void message_Click(object sender, MouseButtonEventArgs e)
         {
+            MenuItem menuItem = sender as MenuItem;
+            ModifyBackground(menuItem);
             dp_message.Visibility = Visibility.Visible;
+            dp_project.Visibility = Visibility.Collapsed;
+            dp_contacts.Visibility = Visibility.Collapsed;
+            dp_gallery.Visibility = Visibility.Collapsed;
+            dp_tools.Visibility = Visibility.Collapsed;
+            dp_threetools.Visibility = Visibility.Collapsed;
             seconMessagePage.Navigate(new SeconMessagePage(this));
-           
+
             //SwitchMethod(sender as MenuItem, true);
         }
 
@@ -62,7 +70,16 @@ namespace CollaborativePlatformMain.Form
         /// <param name="e"></param>
         private void project_Click(object sender, MouseButtonEventArgs e)
         {
-            SwitchMethod(sender as MenuItem, false);
+            MenuItem menuItem = sender as MenuItem;
+            ModifyBackground(menuItem);
+            dp_message.Visibility = Visibility.Collapsed;
+            dp_project.Visibility = Visibility.Visible;
+            dp_contacts.Visibility = Visibility.Collapsed;
+            dp_gallery.Visibility = Visibility.Collapsed;
+            dp_tools.Visibility = Visibility.Collapsed;
+            dp_threetools.Visibility = Visibility.Collapsed;
+
+
             treeViewBinds = new List<TreeViewBind>();
 
             treeViewBinds.Add(
@@ -109,21 +126,15 @@ namespace CollaborativePlatformMain.Form
         /// <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);
-            }
+            MenuItem menuItem = sender as MenuItem;
+            ModifyBackground(menuItem);
+            dp_message.Visibility = Visibility.Collapsed;
+            dp_project.Visibility = Visibility.Collapsed;
+            dp_contacts.Visibility = Visibility.Visible;
+            dp_gallery.Visibility = Visibility.Visible;
+            dp_tools.Visibility = Visibility.Collapsed;
+            dp_threetools.Visibility = Visibility.Collapsed;
+            seconContactsPage.Navigate(new SeconContactsPage(this));
         }
 
         /// <summary>
@@ -133,7 +144,15 @@ namespace CollaborativePlatformMain.Form
         /// <param name="e"></param>
         private void gallery_Click(object sender, MouseButtonEventArgs e)
         {
-            SwitchMethod(sender as MenuItem, false);
+            MenuItem menuItem = sender as MenuItem;
+            ModifyBackground(menuItem);
+            dp_message.Visibility = Visibility.Collapsed;
+            dp_project.Visibility = Visibility.Collapsed;
+            dp_contacts.Visibility = Visibility.Collapsed;
+            dp_gallery.Visibility = Visibility.Visible;
+            dp_tools.Visibility = Visibility.Collapsed;
+            dp_threetools.Visibility = Visibility.Collapsed;
+            seconLegendPage.Navigate(new SeconLegendPage());
         }
 
         /// <summary>
@@ -143,7 +162,15 @@ namespace CollaborativePlatformMain.Form
         /// <param name="e"></param>
         private void tool_Click(object sender, MouseButtonEventArgs e)
         {
-            SwitchMethod(sender as MenuItem, false);
+            MenuItem menuItem = sender as MenuItem;
+            ModifyBackground(menuItem);
+            dp_message.Visibility = Visibility.Collapsed;
+            dp_project.Visibility = Visibility.Collapsed;
+            dp_contacts.Visibility = Visibility.Collapsed;
+            dp_gallery.Visibility = Visibility.Collapsed;
+            dp_tools.Visibility = Visibility.Visible;
+            dp_threetools.Visibility = Visibility.Collapsed;
+
 
             List<string> sLists = new List<string>() { "平台图纸治理", "块处理", "大样处理", "图纸对比", "二维审查", "三维" };
             sp_tools.Children.Clear();
@@ -167,63 +194,43 @@ namespace CollaborativePlatformMain.Form
         }
 
         /// <summary>
-        /// 设置最左测导航的颜色和上边导航的显隐
+        /// 三维
         /// </summary>
-        /// <param name="menuItem"></param>
-        /// <param name="isHoShow"></param>
-        public void SwitchMethod(MenuItem menuItem, bool isHoShow)
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void three_Click(object sender, MouseButtonEventArgs e)
         {
-            //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;
-            //    }
-            //}
+            MenuItem menuItem = sender as MenuItem;
+            ModifyBackground(menuItem);
+            dp_message.Visibility = Visibility.Collapsed;
+            dp_project.Visibility = Visibility.Collapsed;
+            dp_contacts.Visibility = Visibility.Collapsed;
+            dp_gallery.Visibility = Visibility.Collapsed;
+            dp_tools.Visibility = Visibility.Collapsed;
+            dp_threetools.Visibility = Visibility.Visible;
+            seconThreeTools.Navigate(new SeconThreeDimensionalPage(this));
+        }
 
-            //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();
+        /// <summary>
+        /// 设置最左测导航的颜色
+        /// </summary>
+        /// <param name="menuItem"></param>
+        /// <param name="isHoShow"></param>
+        public void ModifyBackground(MenuItem menuItem)
+        {
+            List<MenuItem> allMenuItems = CollaborationUtil.GetChildObjects<System.Windows.Controls.MenuItem>(mu_leftMenu);
+            foreach (var baseMenuItem  in allMenuItems)
+            {
+                if (baseMenuItem.Header.ToString() == menuItem.Header.ToString())
+                {
+                    baseMenuItem.Background = new SolidColorBrush(Colors.Beige);
+                }
+                else
+                {
+                    baseMenuItem.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#1E9FFF"));
+                }
+            }
         }
 
         #endregion
@@ -480,33 +487,33 @@ namespace CollaborativePlatformMain.Form
         /// <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);
-        //    }
+            //    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>
@@ -969,8 +976,22 @@ namespace CollaborativePlatformMain.Form
         {
         }
 
+
         #endregion
 
         #endregion
+
+        /// <summary>
+        /// 青蓝小助手
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void bt_qlxzs_Click(object sender, RoutedEventArgs e)
+        {
+            this.Visibility = Visibility.Collapsed;
+
+            StandardizedAssistantForm assistantForm = new StandardizedAssistantForm(this);
+            assistantForm.Show();
+        }
     }
 }

+ 19 - 0
CollaborativePlatformMain/Form/MessageSubPage/AddImage/AddImageForm.xaml

@@ -0,0 +1,19 @@
+<Window x:Class="CollaborativePlatformMain.Form.MessageSubPage.AddImage.AddImageForm"
+        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.MessageSubPage.AddImage"
+        mc:Ignorable="d" Title="新增分级"  WindowStartupLocation="CenterScreen"
+        SizeToContent="WidthAndHeight"  ResizeMode="NoResize" >
+    <StackPanel Margin="7">
+
+        <DockPanel Margin="0,0,0,10">
+            <Label Content="文件名称:"/>
+            <TextBox Name="tb_legend" Width="80" Height="24"/>
+        </DockPanel>
+
+        <Button Content="添加" Width="80" Click="Button_Click"/>
+
+    </StackPanel>
+</Window>

+ 54 - 0
CollaborativePlatformMain/Form/MessageSubPage/AddImage/AddImageForm.xaml.cs

@@ -0,0 +1,54 @@
+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.MessageSubPage.AddImage
+{
+    /// <summary>
+    /// AddImageForm.xaml 的交互逻辑
+    /// </summary>
+    public partial class AddImageForm : Window
+    {
+        /// <summary>
+        /// 父级窗体
+        /// </summary>
+        public SeconLegendPage SeconLegendPage;
+
+        /// <summary>
+        /// 创建新文件夹分级
+        /// </summary>
+        public AddImageForm(SeconLegendPage seconLegendPage)
+        {
+            InitializeComponent();
+            SeconLegendPage = seconLegendPage;
+        }
+
+        /// <summary>
+        /// 添加
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            string name = tb_legend.Text.ToString();
+            if (name == null || name.Equals(string.Empty))
+            {
+                MessageBox.Show("文件夹名称不允许为空!");
+                return;
+            }
+            SeconLegendPage.AddLegendMath(name);
+
+            this.Close();
+        }
+    }
+}

+ 89 - 0
CollaborativePlatformMain/Form/MessageSubPage/CreatLevel/CreatLevelForm.xaml

@@ -0,0 +1,89 @@
+<Window x:Class="CollaborativePlatformMain.Form.MessageSubPage.CreatLevel.CreatLevelForm"
+        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.MessageSubPage"
+        mc:Ignorable="d" Title="标高表创建"  Loaded="Window_Loaded" WindowStartupLocation="CenterScreen"
+        SizeToContent="WidthAndHeight"  ResizeMode="NoResize" >
+
+    <Grid>
+        <StackPanel>
+            <DockPanel>
+                <DataGrid x:Name="dataGrid1"  CanUserResizeColumns="False"  CanUserResizeRows="False" AutoGenerateColumns="False"  SelectionUnit="FullRow" ColumnWidth="*" RowHeight="25"  CanUserAddRows="False" Height="300">
+                    <DataGrid.ContextMenu>
+                        <ContextMenu VerticalAlignment="Center"  Width="180" DataContext="{Binding}" x:Name="contextMenu1">
+                            <MenuItem Header="修改层号" Click="MenuItem_Click"/>
+                            <MenuItem Header="修改结构高度" Click="MenuItem_Click_1"/>
+                            <MenuItem Header="修改层高" Click="MenuItem_Click_2"/>
+                            <!--<MenuItem Header="删除" Click="MenuItem_Click_3"/>-->
+                        </ContextMenu>
+                    </DataGrid.ContextMenu>
+                    <DataGrid.Columns>
+
+                        <DataGridTextColumn Header="层号" Binding="{Binding LevelNmae}"  Width="120"  IsReadOnly="True"  >
+                        </DataGridTextColumn>
+
+                        <DataGridTextColumn Header="结构标高"  Binding="{Binding StructuralElevation}"   IsReadOnly="True"  Width="120" >
+                        </DataGridTextColumn>
+
+                        <DataGridTextColumn Header="层高"  Binding="{Binding FloorHeight}"   Width="120"  IsReadOnly="True" >
+                        </DataGridTextColumn>
+
+                    </DataGrid.Columns>
+                </DataGrid>
+            </DockPanel>
+            <DockPanel Margin="10,10,10,10">
+                <GroupBox  Header="添加层高" Height="160"  Width="160" >
+                    <StackPanel >
+
+                        <DockPanel>
+                            <Label DockPanel.Dock="Left"  HorizontalContentAlignment ="Center"    MinWidth="60"  Content="层高:"/>
+                            <TextBox Name="LevelHight" HorizontalAlignment="Left" Height="23"  TextWrapping="Wrap" Text="3000" VerticalAlignment="Top" Width="90" LostFocus="LevelHight_LostFocus"/>
+                        </DockPanel>
+
+                        <DockPanel>
+                            <Label DockPanel.Dock="Left" HorizontalContentAlignment ="Center"   MinWidth="60"  Content="层数:" />
+                            <TextBox Name="num" HorizontalAlignment="Left" Height="23"  TextWrapping="Wrap" Text="2" VerticalAlignment="Top" Width="90" LostFocus="num_LostFocus"/>
+                        </DockPanel>
+
+                        <DockPanel>
+                            <Label DockPanel.Dock="Left" HorizontalContentAlignment ="Center"   MinWidth="60"  Content="位置:"/>
+                            <ComboBox HorizontalAlignment="Left" FontSize="12" Name="ComboBox_levelAdd" IsEditable="True" SelectedIndex="0" Background="White"  Width="90"  Height="20"/>
+                        </DockPanel>
+
+                        <Button    Name="Button_add" Background="WhiteSmoke" FontSize="12" Content="确认" Width="140" Height="25"  Margin="0,0,4,0" Click="Button_add_Click"/>
+
+                    </StackPanel>
+
+                </GroupBox>
+
+                <Grid Width="150" >
+                    <Grid.RowDefinitions>
+                        <RowDefinition  Height="3*"></RowDefinition>
+                        <RowDefinition  Height="3*"></RowDefinition>
+                        <RowDefinition  Height="3*"></RowDefinition>
+                    </Grid.RowDefinitions>
+
+                    <StackPanel>
+
+                        <!--<DockPanel>
+                            <CheckBox Margin=" 0,10,0,5" Content="顶部转换" HorizontalAlignment="Left"  VerticalAlignment="Center" Checked="CheckBox_Checked"/>
+                            <TextBox Name="TopConversion" IsEnabled="False" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" Text="详平面" VerticalAlignment="Center" Width="66" RenderTransformOrigin="0.542,0.435"/>
+                        </DockPanel>
+                        <DockPanel>
+                            <CheckBox Margin=" 0,10,0,10" Content="底部转换" HorizontalAlignment="Left"  VerticalAlignment="Center" Checked="CheckBox_Checked_1"/>
+                            <TextBox Name="dowConversion" IsEnabled="False"  HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" Text="基础顶" VerticalAlignment="Center" Width="66" RenderTransformOrigin="0.542,0.435"/>
+                        </DockPanel>-->
+                        <Button Grid.Row="0" Margin="9,10,15,65"  Name="Button_clean"  Background="WhiteSmoke" Width="80" Content="全部清除" Click="Button_clean_Click_1"/>
+                        <Button Grid.Row="2" Margin="9,0,15,10"   Name="Button_CreateLevel" Background="WhiteSmoke" Width="80" Content="创建"  Click="Button_CreateLevel_Click" />
+                    </StackPanel>
+
+
+                </Grid>
+
+            </DockPanel>
+        </StackPanel>
+
+    </Grid>
+</Window>

+ 254 - 0
CollaborativePlatformMain/Form/MessageSubPage/CreatLevel/CreatLevelForm.xaml.cs

@@ -0,0 +1,254 @@
+using CollaborativePlatformMain.DFEntity.MessageSubUtil;
+using CollaborativePlatformMain.Util;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+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.MessageSubPage.CreatLevel
+{
+    /// <summary>
+    /// CreatLevelForm.xaml 的交互逻辑
+    /// </summary>
+    public partial class CreatLevelForm : Window
+    {
+
+        /// <summary>
+        /// 父级窗体
+        /// </summary>
+        public SeconThreeDimensionalPage SeconThreeDimensionalPage;
+
+        /// <summary>
+        /// 数据信息
+        /// </summary>
+        public ObservableCollection<LevelTableEntity> LevelTableEntities = new ObservableCollection<LevelTableEntity>();
+
+
+        public CreatLevelForm(SeconThreeDimensionalPage seconThreeDimensionalPage)
+        {
+            InitializeComponent();
+            SeconThreeDimensionalPage = seconThreeDimensionalPage;
+        }
+        /// <summary>
+        /// 操作类型
+        /// </summary>
+        public string Operation = "";
+
+        /// <summary>
+        /// 窗体加载
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Window_Loaded(object sender, RoutedEventArgs e)
+        {
+            LevelTableEntities = new ObservableCollection<LevelTableEntity>();
+            LevelTableEntity levelTableCreationEntity = new LevelTableEntity(Guid.NewGuid().ToString(), "1",0.00, 3000);
+            LevelTableEntities.Add(levelTableCreationEntity);
+            dataGrid1.ItemsSource = LevelTableEntities;
+            ComboBox_levelAdd.ItemsSource = new List<string>() { "地上", "地下" };
+        }
+
+        /// <summary>
+        /// 添加标高
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Button_add_Click(object sender, RoutedEventArgs e)
+        {
+            CreatLevelUtil.AddLevelFool(ref LevelTableEntities, LevelHight.Text, num.Text, ComboBox_levelAdd.Text);
+            dataGrid1.ItemsSource = null;
+            dataGrid1.ItemsSource = LevelTableEntities;
+        }
+
+        /// <summary>
+        /// 层高输入
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void LevelHight_LostFocus(object sender, RoutedEventArgs e)
+        {
+            TextBox textBox = sender as TextBox;
+            string PlatformText = textBox.Text;
+            Regex rgx = new Regex(@"^\+?[1-9][0-9]*$");
+            if (!rgx.IsMatch(PlatformText))
+            {
+                MessageBox.Show("输入格式不正确");
+                textBox.Text = "3000";
+                return;
+            }
+        }
+
+        /// <summary>
+        /// 层数
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void num_LostFocus(object sender, RoutedEventArgs e)
+        {
+            TextBox textBox = sender as TextBox;
+            string PlatformText = textBox.Text;
+            Regex rgx = new Regex(@"^[0-9]*[1-9][0-9]*$");
+            if (!rgx.IsMatch(PlatformText))
+            {
+                MessageBox.Show("输入格式不正确");
+                textBox.Text = "3000";
+                return;
+            }
+
+        }
+
+        /// <summary>
+        /// 修改层号
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void MenuItem_Click(object sender, RoutedEventArgs e)
+        {
+            Operation = "修改层号";
+            SetLevelTablecreationForm setLevelTablecreationForm = new SetLevelTablecreationForm(this);
+            setLevelTablecreationForm.Show();
+        }
+
+        /// <summary>
+        /// 修改结构标高
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void MenuItem_Click_1(object sender, RoutedEventArgs e)
+        {
+            Operation = "修改结构标高";
+            SetLevelTablecreationForm setLevelTablecreationForm = new SetLevelTablecreationForm(this);
+            setLevelTablecreationForm.Show();
+        }
+
+        /// <summary>
+        /// 修改层高
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void MenuItem_Click_2(object sender, RoutedEventArgs e)
+        {
+            Operation = "修改层高";
+            SetLevelTablecreationForm setLevelTablecreationForm = new SetLevelTablecreationForm(this);
+            setLevelTablecreationForm.Show();
+        }
+
+        /// <summary>
+        /// 删除信息
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void MenuItem_Click_3(object sender, RoutedEventArgs e)
+        {
+
+            //data选择的行
+            List<LevelTableEntity> dataSelect = dataGrid1.SelectedItems.Cast<LevelTableEntity>().ToList();
+            for (int i = 0; i < LevelTableEntities.Count; i++)
+            {
+                if (dataSelect.Select(x => x.JuID).Contains(LevelTableEntities[i].JuID))
+                {
+                    LevelTableEntities[i].LevelNmae = "删除";
+                }
+            }
+            LevelTableEntities = new System.Collections.ObjectModel.ObservableCollection<LevelTableEntity>(LevelTableEntities.Where(x => !x.LevelNmae.Equals("删除")).ToList());
+            LevelTableEntities = new System.Collections.ObjectModel.ObservableCollection<LevelTableEntity>(LevelTableEntities.Reverse().ToList());
+
+
+            //结构标高
+            double levelHeigth = 0;
+            //层高
+            double floorHeight = 0;
+            for (int i = 0; i < LevelTableEntities.Count; i++)
+            {
+                LevelTableEntity levelTableCreationEntity = LevelTableEntities[i];
+                if (i == 0)
+                {
+                    levelHeigth = levelTableCreationEntity.StructuralElevation;
+                    floorHeight = levelTableCreationEntity.FloorHeight;
+                    continue;
+                }
+
+                LevelTableEntities[i].StructuralElevation = levelHeigth + (floorHeight / 1000);
+
+                levelHeigth = levelTableCreationEntity.StructuralElevation;
+                floorHeight = levelTableCreationEntity.FloorHeight;
+            }
+            LevelTableEntities = new System.Collections.ObjectModel.ObservableCollection<LevelTableEntity>(LevelTableEntities.OrderByDescending(x => x.StructuralElevation).ToList());
+            dataGrid1.ItemsSource = null;
+            dataGrid1.ItemsSource = LevelTableEntities;
+        }
+
+        /// <summary>
+        /// 全部清除
+        /// </summary>
+        /// <param name="sender"></param>
+        private void Button_clean_Click_1(object sender, RoutedEventArgs e)
+        {
+            dataGrid1.ItemsSource = null;
+            LevelTableEntities = new System.Collections.ObjectModel.ObservableCollection<LevelTableEntity>(LevelTableEntities.Where(x => x.LevelNmae.Equals("1")));
+            dataGrid1.ItemsSource = LevelTableEntities;
+
+        }
+        /// <summary>
+        /// 创建标高
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Button_CreateLevel_Click(object sender, RoutedEventArgs e)
+        {
+            SeconThreeDimensionalPage.LevelTableEntities = LevelTableEntities;
+            SeconThreeDimensionalPage.SetLevelData();
+            this.Close();        
+        }
+
+        /// <summary>
+        /// 顶部替换
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void CheckBox_Checked(object sender, RoutedEventArgs e)
+        {
+            //CheckBox checkBox = sender as CheckBox;
+            //if (checkBox.IsChecked.Value)
+            //{
+            //    TopConversion.IsEnabled = true;
+            //}
+            //else
+            //{
+
+            //    TopConversion.IsEnabled = false;
+            //}
+
+        }
+
+        /// <summary>
+        /// 底部替换
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void CheckBox_Checked_1(object sender, RoutedEventArgs e)
+        {
+            //CheckBox checkBox = sender as CheckBox;
+            //if (checkBox.IsChecked.Value)
+            //{
+            //    dowConversion.IsEnabled = true;
+            //}
+            //else
+            //{
+
+            //    dowConversion.IsEnabled = false;
+            //}
+        }
+    }
+}

+ 19 - 0
CollaborativePlatformMain/Form/MessageSubPage/CreatLevel/SetLevelTablecreationForm.xaml

@@ -0,0 +1,19 @@
+<Window x:Class="CollaborativePlatformMain.Form.MessageSubPage.CreatLevel.SetLevelTablecreationForm"
+        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.MessageSubPage.CreatLevel"
+        mc:Ignorable="d"  Title="层高设置" Loaded="Window_Loaded" WindowStartupLocation="CenterScreen"
+        SizeToContent="WidthAndHeight"  ResizeMode="NoResize">
+
+    <DockPanel>
+
+        <Label Name="tit" Content="请设置层高:" HorizontalAlignment="Right"   VerticalAlignment="Center"/>
+        <TextBox Name="StoryHeightText"  Height="25" Width="70" HorizontalAlignment="Left" 
+                     VerticalAlignment="Center" KeyDown="StoryHeightText_KeyDown" />
+        <Label Name="Company" Content="mm" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="0,0,0,4"/>
+        
+    </DockPanel>
+
+</Window>

+ 279 - 0
CollaborativePlatformMain/Form/MessageSubPage/CreatLevel/SetLevelTablecreationForm.xaml.cs

@@ -0,0 +1,279 @@
+using CollaborativePlatformMain.DFEntity.MessageSubUtil;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+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.MessageSubPage.CreatLevel
+{
+    /// <summary>
+    /// SetLevelTablecreationForm.xaml 的交互逻辑
+    /// </summary>
+    public partial class SetLevelTablecreationForm : Window
+    {
+
+        public CreatLevelForm LevelTableForm { get; }
+
+
+        public SetLevelTablecreationForm(CreatLevelForm levelTablecreationForm)
+        {
+            InitializeComponent();
+
+            LevelTableForm = levelTablecreationForm;
+            tit.Content = LevelTableForm.Operation;
+            if (LevelTableForm.Operation.Equals("修改层号"))
+            {
+                this.Company.Content = "";
+            }
+            else if (LevelTableForm.Operation.Equals("修改结构标高"))
+            {
+                this.Company.Content = "M";
+            }
+            else
+            {
+                this.Company.Content = "MM";
+            }
+        }
+
+        /// <summary>
+        /// 窗体初始化
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Window_Loaded(object sender, RoutedEventArgs e)
+        {
+            //聚焦
+            StoryHeightText.Focus();
+        }
+
+        private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
+        {
+
+        }
+
+        private void StoryHeightText_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.Key != Key.Enter) return;
+
+            TextBox textBox = sender as TextBox;
+
+            if (LevelTableForm.Operation.Equals("修改层号"))
+            {
+                //data选择的行
+                List<string> dataSelect = LevelTableForm.dataGrid1.SelectedItems.Cast<LevelTableEntity>().Select(x => x.JuID).ToList();
+                foreach (var item in LevelTableForm.LevelTableEntities)
+                {
+                    if (dataSelect.Contains(item.JuID) && !item.LevelNmae.Equals("F1"))
+                    {
+                        item.LevelNmae = textBox.Text;
+                    }
+
+                }
+
+            }
+
+            if (LevelTableForm.Operation.Equals("修改层高"))
+            {
+                Regex rgx = new Regex(@"^\+?[1-9][0-9]*$");
+                if (!rgx.IsMatch(textBox.Text))
+                {
+                    MessageBox.Show("输入格式不正确");
+                    return;
+                }
+                //data选择的行
+                List<LevelTableEntity> dataSelect = LevelTableForm.dataGrid1.SelectedItems.Cast<LevelTableEntity>().ToList();
+                if (dataSelect.Count == 0)
+                {
+                    MessageBox.Show("至少选择一行");
+                    return;
+                }
+                //修改的数据//地上
+                List<LevelTableEntity> topLevelTableCreations = new List<LevelTableEntity>();
+                //修改的数据//地下
+                List<LevelTableEntity> downLevelTableCreations = new List<LevelTableEntity>();
+                foreach (var data in dataSelect)
+                {
+                    if (data.StructuralElevation >= 0)
+                    {
+                        topLevelTableCreations.Add(data);
+                    }
+                    else
+                    {
+
+                        downLevelTableCreations.Add(data);
+                    }
+
+                }
+
+                foreach (var item in LevelTableForm.LevelTableEntities)
+                {
+                    if (dataSelect.Select(x => x.JuID).Contains(item.JuID))
+                    {
+
+                        item.FloorHeight = Convert.ToDouble(textBox.Text);
+                    }
+
+                }
+                //清空数据
+                LevelTableForm.dataGrid1.ItemsSource = null;
+                LevelTableEntity toplast = topLevelTableCreations.OrderBy(x => x.StructuralElevation).FirstOrDefault();
+                LevelTableEntity dowlast = downLevelTableCreations.OrderByDescending(x => x.StructuralElevation).FirstOrDefault();
+
+                if (dowlast == null)
+                {
+                    dowlast = new LevelTableEntity();
+                }
+                if (toplast == null)
+                {
+                    toplast = new LevelTableEntity();
+                }
+                LevelTableForm.LevelTableEntities = new System.Collections.ObjectModel.ObservableCollection<LevelTableEntity>(LevelTableForm.LevelTableEntities.Reverse().ToList());
+                List<LevelTableEntity> toplasts = new List<LevelTableEntity>();
+                for (int i = 0; i < LevelTableForm.LevelTableEntities.Count; i++)
+                {
+                    //正数往上
+                    if (LevelTableForm.LevelTableEntities[i].StructuralElevation > toplast.StructuralElevation)
+                    {
+                        LevelTableEntity top = LevelTableForm.LevelTableEntities[i - 1];
+                        double structuralElevation = top.FloorHeight / 1000 + top.StructuralElevation;
+                        LevelTableForm.LevelTableEntities[i].StructuralElevation = structuralElevation;
+
+                    }
+
+
+                }
+                LevelTableForm.LevelTableEntities = new System.Collections.ObjectModel.ObservableCollection<LevelTableEntity>(LevelTableForm.LevelTableEntities.Reverse().ToList());
+                for (int i = 0; i < LevelTableForm.LevelTableEntities.Count; i++)
+                {
+                    //负数往下
+                    if (LevelTableForm.LevelTableEntities[i].StructuralElevation < dowlast.StructuralElevation)
+                    {
+                        LevelTableEntity top = LevelTableForm.LevelTableEntities[i - 1];
+                        double structuralElevation = top.FloorHeight / 1000 - top.StructuralElevation;
+                        LevelTableForm.LevelTableEntities[i].StructuralElevation = structuralElevation;
+                    }
+
+                }
+
+                //清空数据
+                LevelTableForm.dataGrid1.ItemsSource = LevelTableForm.LevelTableEntities;
+
+            }
+
+            if (LevelTableForm.Operation.Equals("修改结构标高"))
+            {
+                Regex rgx = new Regex(@"^(\-|\+)?\d+(\.\d+)?$");
+                if (!rgx.IsMatch(textBox.Text))
+                {
+                    MessageBox.Show("输入格式不正确");
+                    return;
+                }
+                //data选择的行
+                List<LevelTableEntity> dataSelect = LevelTableForm.dataGrid1.SelectedItems.Cast<LevelTableEntity>().ToList();
+                if (dataSelect.Count == 0)
+                {
+                    MessageBox.Show("至少选择一行");
+                    return;
+                }
+                if (dataSelect.Count > 1)
+                {
+                    MessageBox.Show("修改结构板标高不允许选择多条");
+                    return;
+                }
+
+                foreach (var item in LevelTableForm.LevelTableEntities)
+                {
+                    if (dataSelect.Select(x => x.JuID).Contains(item.JuID))
+                    {
+
+                        item.StructuralElevation = Convert.ToDouble(textBox.Text);
+                    }
+
+                }
+                //修改的数据//地上
+                List<LevelTableEntity> topLevelTableCreations = new List<LevelTableEntity>();
+                //修改的数据//地下
+                List<LevelTableEntity> downLevelTableCreations = new List<LevelTableEntity>();
+                foreach (var data in dataSelect)
+                {
+                    if (data.StructuralElevation >= 0)
+                    {
+                        topLevelTableCreations.Add(data);
+                    }
+                    else
+                    {
+
+                        downLevelTableCreations.Add(data);
+                    }
+
+                }
+
+                //清空数据
+                LevelTableForm.dataGrid1.ItemsSource = null;
+                LevelTableEntity toplast = topLevelTableCreations.OrderBy(x => x.StructuralElevation).FirstOrDefault();
+                LevelTableEntity dowlast = downLevelTableCreations.OrderByDescending(x => x.StructuralElevation).FirstOrDefault();
+
+                if (dowlast == null)
+                {
+                    dowlast = new LevelTableEntity();
+                }
+                if (toplast == null)
+                {
+                    toplast = new LevelTableEntity();
+                }
+                LevelTableForm.LevelTableEntities = new System.Collections.ObjectModel.ObservableCollection<LevelTableEntity>(LevelTableForm.LevelTableEntities.Reverse().ToList());
+                List<LevelTableEntity> toplasts = new List<LevelTableEntity>();
+                for (int i = 0; i < LevelTableForm.LevelTableEntities.Count; i++)
+                {
+                    //正数往上
+                    if (LevelTableForm.LevelTableEntities[i].StructuralElevation > toplast.StructuralElevation)
+                    {
+                        LevelTableEntity top = LevelTableForm.LevelTableEntities[i - 1];
+                        double structuralElevation = top.FloorHeight / 1000 + top.StructuralElevation;
+                        LevelTableForm.LevelTableEntities[i].StructuralElevation = structuralElevation;
+
+                    }
+
+
+                }
+                LevelTableForm.LevelTableEntities = new System.Collections.ObjectModel.ObservableCollection<LevelTableEntity>(LevelTableForm.LevelTableEntities.Reverse().ToList());
+                for (int i = 0; i < LevelTableForm.LevelTableEntities.Count; i++)
+                {
+                    //负数往下
+                    if (LevelTableForm.LevelTableEntities[i].StructuralElevation < dowlast.StructuralElevation)
+                    {
+                        LevelTableEntity top = LevelTableForm.LevelTableEntities[i - 1];
+                        double structuralElevation = top.FloorHeight / 1000 - top.StructuralElevation;
+                        LevelTableForm.LevelTableEntities[i].StructuralElevation = structuralElevation;
+                    }
+
+                }
+
+                //清空数据
+                LevelTableForm.dataGrid1.ItemsSource = LevelTableForm.LevelTableEntities;
+            }
+            this.Close();
+
+        }
+
+        private void tb_PreviewTextInput(object sender, TextCompositionEventArgs e)
+        {
+
+        }
+
+        private void TextBox_Pasting(object sender, DataObjectPastingEventArgs e)
+        {
+
+        }
+    }
+}

+ 29 - 0
CollaborativePlatformMain/Form/MessageSubPage/SeconContactsPage.xaml

@@ -0,0 +1,29 @@
+<Page x:Class="CollaborativePlatformMain.Form.MessageSubPage.SeconContactsPage"
+        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.MessageSubPage"
+        mc:Ignorable="d"
+        Title="SeconContactsPage" Width="663" Height="430"
+        Loaded="Window_Loaded">
+    
+    <DockPanel Name="dp_contacts">
+
+        <StackPanel Name="sp_contacts" Width="180" HorizontalAlignment="Left" Background="WhiteSmoke">
+            <TreeView x:Name="tr_Contacts" PreviewMouseLeftButtonUp="tv_projectLeftButtonUp"
+                                  Width="180"  Height="430" HorizontalAlignment="Left" Background="WhiteSmoke">
+                <TreeView.ItemTemplate>
+                    <HierarchicalDataTemplate ItemsSource="{Binding SubDatas}">
+                        <TextBlock Text="{Binding Name}" />
+                    </HierarchicalDataTemplate>
+                </TreeView.ItemTemplate>
+            </TreeView>
+        </StackPanel>
+
+        <!--最右边-->
+        <StackPanel Height="420"  VerticalAlignment="Top" Width="483"
+                                Margin="0 10 0 0"  HorizontalAlignment="Left">
+        </StackPanel>
+    </DockPanel>
+</Page>

+ 100 - 0
CollaborativePlatformMain/Form/MessageSubPage/SeconContactsPage.xaml.cs

@@ -0,0 +1,100 @@
+using CollaborativePlatformMain.DFEntity.MessageSubUtil;
+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.MessageSubPage
+{
+    /// <summary>
+    /// SeconContactsPage.xaml 的交互逻辑
+    /// </summary>
+    public partial class SeconContactsPage : Page
+    {
+        /// <summary>
+        /// 父级窗体
+        /// </summary>
+        public HomepageForm Homepage;
+
+        public SeconContactsPage(HomepageForm homepage)
+        {
+            InitializeComponent();
+            Homepage = homepage;
+        }
+
+        /// <summary>
+        /// 窗体初始化
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Window_Loaded(object sender, RoutedEventArgs e)
+        {
+            List<ContactsUtil> contactsUtils = new List<ContactsUtil>();
+
+            //建筑
+            ContactsUtil archSubData1 = new ContactsUtil("1", "建筑-伙计1");
+            ContactsUtil archSubData2 = new ContactsUtil("2", "建筑-伙计2");
+            ContactsUtil archSubData3 = new ContactsUtil("3", "建筑-伙计3");
+            ContactsUtil archSubData4 = new ContactsUtil("4", "建筑-伙计4");
+            ContactsUtil archSubData5 = new ContactsUtil("5", "建筑-伙计5");
+            ContactsUtil archData = new ContactsUtil("1", "建筑组", new List<ContactsUtil>() { archSubData1, archSubData2, archSubData3, archSubData4, archSubData5 });
+            contactsUtils.Add(archData) ;
+
+            //结构
+            ContactsUtil struSubData1 = new ContactsUtil("1", "结构-伙计1");
+            ContactsUtil struSubData2 = new ContactsUtil("2", "结构-伙计2");
+            ContactsUtil struSubData3 = new ContactsUtil("3", "结构-伙计3");
+            ContactsUtil struSubData4 = new ContactsUtil("4", "结构-伙计4");
+            ContactsUtil struSubData5 = new ContactsUtil("5", "结构-伙计5");
+            ContactsUtil struData = new ContactsUtil("1", "结构组", new List<ContactsUtil>() { struSubData1, struSubData2, struSubData3, struSubData4, struSubData5 });
+            contactsUtils.Add(struData);
+
+
+            //给排水
+            ContactsUtil waterSubData1 = new ContactsUtil("1", "给排水-伙计1");
+            ContactsUtil waterSubData2 = new ContactsUtil("2", "给排水-伙计2");
+            ContactsUtil waterSubData3 = new ContactsUtil("3", "给排水-伙计3");
+            ContactsUtil waterSubData4 = new ContactsUtil("4", "给排水-伙计4");
+            ContactsUtil waterSubData5 = new ContactsUtil("5", "给排水-伙计5");
+            ContactsUtil waterData = new ContactsUtil("1", "给排水组", new List<ContactsUtil>() { waterSubData1, waterSubData2, waterSubData3, waterSubData4, waterSubData5 });
+            contactsUtils.Add(waterData);
+
+
+            //暖通
+            ContactsUtil warmSubData1 = new ContactsUtil("1", "暖通-伙计1");
+            ContactsUtil warmSubData2 = new ContactsUtil("2", "暖通-伙计2");
+            ContactsUtil warmSubData3 = new ContactsUtil("3", "暖通-伙计3");
+            ContactsUtil warmSubData4 = new ContactsUtil("4", "暖通-伙计4");
+            ContactsUtil warmSubData5 = new ContactsUtil("5", "暖通-伙计5");
+            ContactsUtil warmData = new ContactsUtil("1", "暖通组", new List<ContactsUtil>() { warmSubData1, warmSubData2, warmSubData3, warmSubData4, warmSubData5 });
+            contactsUtils.Add(warmData);
+
+
+            //电气
+            ContactsUtil eleSubData1 = new ContactsUtil("1", "电气-伙计1");
+            ContactsUtil eleSubData2 = new ContactsUtil("2", "电气-伙计2");
+            ContactsUtil eleSubData3 = new ContactsUtil("3", "电气-伙计3");
+            ContactsUtil eleSubData4 = new ContactsUtil("4", "电气-伙计4");
+            ContactsUtil eleSubData5 = new ContactsUtil("5", "电气-伙计5");
+            ContactsUtil eleData = new ContactsUtil("1", "电气组", new List<ContactsUtil>() { eleSubData1, eleSubData2, eleSubData3, eleSubData4, eleSubData5 });
+            contactsUtils.Add(eleData);
+
+            tr_Contacts.ItemsSource = null;
+            tr_Contacts.ItemsSource = contactsUtils;
+        }
+
+        private void tv_projectLeftButtonUp(object sender, MouseButtonEventArgs e)
+        {
+
+        }
+    }
+}

+ 84 - 0
CollaborativePlatformMain/Form/MessageSubPage/SeconLegendPage.xaml

@@ -0,0 +1,84 @@
+<Page x:Class="CollaborativePlatformMain.Form.MessageSubPage.SeconLegendPage"
+        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.MessageSubPage"
+        mc:Ignorable="d"
+        Width="663" Height="430"
+        Loaded="Window_Loaded">
+    <StackPanel Margin="10,10,0,0">
+
+        <ScrollViewer VerticalScrollBarVisibility="Auto" Padding="0,0,0,20">
+            <ItemsControl x:Name="sv_legend" >
+                <ItemsControl.ItemsPanel>
+                    <ItemsPanelTemplate>
+                        <WrapPanel/>
+                    </ItemsPanelTemplate>
+                </ItemsControl.ItemsPanel>
+                
+                <ItemsControl.ItemTemplate>
+                    <DataTemplate>
+                        <StackPanel MouseDown="StackPanel_MouseDown">
+                            <!-- 第一行文本  项目信息 -->
+                            <Image Source="{Binding ImagePath}" Width="90" Height="60"/>
+                            <!-- 第二行文本  项目业态 -->
+                            <Label Name="lb_legendName" Content="{Binding Name}" BorderThickness="0" />
+                        </StackPanel>
+                    </DataTemplate>
+                </ItemsControl.ItemTemplate>
+            </ItemsControl>
+        </ScrollViewer>
+
+        <!--<WrapPanel Name="wp_legend">
+            <StackPanel>
+                <Image Source="/Image/folderImage.png" Width="90" Height="60"/>
+                <Label Content="门窗大样"/>
+            </StackPanel>
+
+            <StackPanel>
+                <Image Source="/Image/folderImage.png" Width="90" Height="60"/>
+                <Label Content="家具"/>
+            </StackPanel>
+
+            <StackPanel>
+                <Image Source="/Image/folderImage.png" Width="90" Height="60"/>
+                <Label Content="户型"/>
+            </StackPanel>
+
+            <StackPanel>
+                <Image Source="/Image/folderImage.png" Width="90" Height="60"/>
+                <Label Content="墙体大样"/>
+            </StackPanel>
+
+            <StackPanel Name="sp_add1">
+
+            </StackPanel>
+
+            <StackPanel Name="sp_add2">
+
+            </StackPanel>
+
+            <StackPanel Name="sp_add3">
+
+            </StackPanel>
+
+            <StackPanel Name="sp_add4">
+
+            </StackPanel>
+
+            <StackPanel Name="sp_add5">
+
+            </StackPanel>
+
+            <StackPanel>
+                <Image Source="/Image/add.png" Width="90" Height="60" MouseDown="Image_MouseDown"/>
+                <Label Content="新增l"/>
+            </StackPanel>
+
+        </WrapPanel>-->
+
+
+
+    </StackPanel>
+</Page>

+ 116 - 0
CollaborativePlatformMain/Form/MessageSubPage/SeconLegendPage.xaml.cs

@@ -0,0 +1,116 @@
+using CollaborativePlatformMain.DFEntity.MessageSubUtil;
+using CollaborativePlatformMain.Form.MessageSubPage.AddImage;
+using CollaborativePlatformMain.Util;
+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.MessageSubPage
+{
+    /// <summary>
+    /// SeconLegendPage.xaml 的交互逻辑
+    /// </summary>
+    public partial class SeconLegendPage : Page
+    {
+        public SeconLegendPage()
+        {
+            InitializeComponent();
+        }
+
+        /// <summary>
+        /// 文件夹名称
+        /// </summary>
+        public List<LegendEntity> LegendEntities = new List<LegendEntity>(); 
+
+
+        private void Window_Loaded(object sender, RoutedEventArgs e)
+        {
+            LegendEntity legendEntity1 = new LegendEntity("门窗大样", @"/Image/folderImage.png");
+            LegendEntity legendEntity2 = new LegendEntity("家具", @"/Image/folderImage.png");
+            LegendEntity legendEntity3 = new LegendEntity("户型", @"/Image/folderImage.png");
+            LegendEntity legendEntity4 = new LegendEntity("墙体大样", @"/Image/folderImage.png");
+            LegendEntity legendEntity5 = new LegendEntity("新增", @"/Image/add.png");
+            LegendEntities.Add(legendEntity1);
+            LegendEntities.Add(legendEntity2);
+            LegendEntities.Add(legendEntity3);
+            LegendEntities.Add(legendEntity4);
+            LegendEntities.Add(legendEntity5);
+
+
+            sv_legend.ItemsSource = null;
+            sv_legend.ItemsSource = LegendEntities;
+        }
+
+        /// <summary>
+        /// 最后的文件夹分级名字
+        /// </summary>
+        public string lastLegendName = "sp_add1";
+
+        /// <summary>
+        /// 最后个数命名序号
+        /// </summary>
+        public int Num = 1;
+
+        /// <summary>
+        /// 新增文件夹分级
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void StackPanel_MouseDown(object sender, MouseButtonEventArgs e)
+        {
+            StackPanel stackPanel = sender as StackPanel;
+            if (stackPanel == null) return;
+
+            Label label = stackPanel.FindName("lb_legendName") as Label;
+            if (label == null) return;
+
+            if (label.Content.ToString() == "新增")
+            {
+                AddImageForm addImageForm = new AddImageForm(this);
+                addImageForm.ShowDialog();
+            }
+            else
+            {
+
+            }
+        }
+
+
+        /// <summary>
+        /// 新增文件夹
+        /// </summary>
+        /// <param name="legendName"></param>
+        public void AddLegendMath(string legendName)
+        {
+            //添加数据
+            LegendEntity legendEntity=new LegendEntity(legendName, @"/Image/folderImage.png");
+            int index = LegendEntities.Count - 1;
+            LegendEntities.Insert(index, legendEntity);
+
+            sv_legend.ItemsSource = null;
+            sv_legend.ItemsSource = LegendEntities;
+
+        }
+
+        /// <summary>
+        /// 点击事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Border_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+        {
+
+        }
+
+    }
+}

+ 102 - 0
CollaborativePlatformMain/Form/MessageSubPage/SeconThreeDimensionalPage.xaml

@@ -0,0 +1,102 @@
+<Page x:Class="CollaborativePlatformMain.Form.MessageSubPage.SeconThreeDimensionalPage"
+        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.MessageSubPage"
+        mc:Ignorable="d"
+        Title="SeconThreeDimensionalPage" 
+        Width="663" Height="430"
+        Loaded="Window_Loaded">
+    <DockPanel>
+
+        <!--中间-->
+        <StackPanel Height="430">
+            <StackPanel Width="180" Height="430" Background="WhiteSmoke"  Name="sp_three">
+
+                <TreeView x:Name="tr_threemodel" PreviewMouseLeftButtonUp="tr_threemodel_PreviewMouseLeftButtonUp"
+                                  Width="180"  Height="430" HorizontalAlignment="Left" Background="WhiteSmoke">
+                    <TreeView.ItemTemplate>
+                        <HierarchicalDataTemplate ItemsSource="{Binding SubDatas}">
+                            <Button Content="{Binding Node}" Click="Button_Click" HorizontalAlignment="Left"/>
+                        </HierarchicalDataTemplate>
+                    </TreeView.ItemTemplate>
+                </TreeView>
+
+
+                <!--<Button Name="bt_autoModel" Content="自动建模" Width="180" Height="30" Click="bt_autoModel_Click" HorizontalAlignment="Left"/>
+                <Button Name="bt_modelUser" Content="模型应用" Width="180" Height="30" Click="bt_modelUser_Click" HorizontalAlignment="Left"/>
+                <Button Name="bt_modelEmploy" Content="模型服务" Width="180" Height="30" Click="bt_modelEmploy_Click" HorizontalAlignment="Left"/>-->
+            </StackPanel>
+        </StackPanel>
+
+        <StackPanel Margin="10,0,0,0" Name="me_right" HorizontalAlignment="Left"  Height="430"  Width="483">
+
+            <!--自动建模-->
+            <StackPanel Name="sp_autoModel" Visibility="Collapsed">
+
+                <Button Name="bt_creatLevel" Margin="10,10,0,0" Content="创建标高体系" HorizontalAlignment="Left" Click="bt_creatLevel_Click"/>
+
+                <StackPanel Name="sp_creatLevel" Margin="30,5,0,0">
+
+                </StackPanel>
+
+                <Button Name="upDrawing" Content="上传" Width="80" Height="26" Click="upDrawing_Click"/>
+            </StackPanel>
+
+            <!--模型应用-->
+            <StackPanel Name="sp_modelUser" Visibility="Collapsed" Margin="10,10,0,0">
+
+                <DockPanel>
+                    <Label Content="选择模型:"/>
+                    <TextBox Text="双击选择模型地址" Width="120" Height="26" Foreground="Red" HorizontalAlignment="Left" MouseDoubleClick="TextBox_MouseDoubleClick"/>
+                </DockPanel>
+
+                <DockPanel HorizontalAlignment="Left" Margin="50,10,0,0">
+                    <Button Content="上传" Width="80" Height="26"/>
+                </DockPanel>
+
+            </StackPanel>
+
+            <!--模型服务-->
+            <StackPanel Name="sp_modelEmploy" Visibility="Collapsed" Margin="10,10,0,0" Height="430">
+
+                <DockPanel>
+                    <Label Content="选择模型" Margin="0,0,10,0"/>
+                    <TextBox Text="双击选择模型地址" Width="300" Height="26" Foreground="Red" HorizontalAlignment="Left" MouseDoubleClick="TextBox_MouseDoubleClick"/>
+                </DockPanel>
+
+                <StackPanel HorizontalAlignment="Left" Margin="0,30,0,0">
+
+                    <Label Content="对象命名                    上传图纸" Width="190" />
+
+                    <DockPanel>
+
+                        <StackPanel  Name="sp_objectName" Margin="0,5,0,5">
+
+                            <!--<TextBox  Width="80"/>-->
+
+                        </StackPanel>
+
+                        <StackPanel Name="sp_objectDraw" Margin="0,5,0,5" HorizontalAlignment="Right">
+                            
+                            <!--<Button Content="上传" Width="80"/>-->
+                            
+                        </StackPanel>
+                        
+                    </DockPanel>
+
+                    <Button Content="新增" Width="190" Click="Button_Click_1"/>
+
+                </StackPanel>
+
+
+                <StackPanel Margin="0,20,0,0">
+                    <Button Content="联系服务专员" HorizontalAlignment="Left"/>
+                </StackPanel>
+            </StackPanel>
+
+        </StackPanel>
+
+    </DockPanel>
+</Page>

+ 254 - 0
CollaborativePlatformMain/Form/MessageSubPage/SeconThreeDimensionalPage.xaml.cs

@@ -0,0 +1,254 @@
+using CollaborativePlatformMain.DFEntity.MessageSubUtil;
+using CollaborativePlatformMain.Form.MessageSubPage.CreatLevel;
+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.MessageSubPage
+{
+    /// <summary>
+    /// SeconThreeDimensionalPage.xaml 的交互逻辑
+    /// </summary>
+    public partial class SeconThreeDimensionalPage : Page
+    {
+        /// <summary>
+        /// 父级窗体
+        /// </summary>
+        public HomepageForm Homepage;
+
+        /// <summary>
+        /// 三维模型数据
+        /// </summary>
+        public List<ThreeModelEntity> ThreeModelEntities = new List<ThreeModelEntity>();
+
+        /// <summary>
+        /// 标高信息
+        /// </summary>
+        public ObservableCollection<LevelTableEntity> LevelTableEntities = new ObservableCollection<LevelTableEntity>();
+
+
+        public SeconThreeDimensionalPage(HomepageForm homepage)
+        {
+            InitializeComponent();
+            Homepage = homepage;
+        }
+
+        /// <summary>
+        /// 窗体初始化
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Window_Loaded(object sender, RoutedEventArgs e)
+        {
+            ThreeModelEntities = new List<ThreeModelEntity>();
+            ThreeModelEntity threeModelEntity1 = new ThreeModelEntity("自动建模", new List<ThreeModelEntity>());
+            ThreeModelEntity subData1 = new ThreeModelEntity("碰撞检查");
+            ThreeModelEntity subData2 = new ThreeModelEntity("净高分析");
+            ThreeModelEntity subData3 = new ThreeModelEntity("条文审查");
+            ThreeModelEntity threeModelEntity2 = new ThreeModelEntity("模型应用", new List<ThreeModelEntity>() { subData1, subData2, subData3 });
+            ThreeModelEntity threeModelEntity3 = new ThreeModelEntity("模型服务", new List<ThreeModelEntity>());
+            ThreeModelEntities.Add(threeModelEntity1);
+            ThreeModelEntities.Add(threeModelEntity2);
+            ThreeModelEntities.Add(threeModelEntity3);
+
+            tr_threemodel.ItemsSource = null;
+            tr_threemodel.ItemsSource = ThreeModelEntities;
+
+
+            //bt_autoModel.BorderThickness = new Thickness(0);
+            //bt_modelUser.BorderThickness = new Thickness(0);
+            //bt_modelEmploy.BorderThickness = new Thickness(0);
+        }
+
+        /// <summary>
+        /// 自动建模
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void bt_autoModel_Click(object sender, RoutedEventArgs e)
+        {
+            sp_autoModel.Visibility = Visibility.Visible;
+            sp_modelUser.Visibility = Visibility.Collapsed;
+            sp_modelEmploy.Visibility = Visibility.Collapsed;
+        }
+
+        /// <summary>
+        /// 模型应用
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void bt_modelUser_Click(object sender, RoutedEventArgs e)
+        {
+            sp_autoModel.Visibility = Visibility.Collapsed;
+            sp_modelUser.Visibility = Visibility.Visible;
+            sp_modelEmploy.Visibility = Visibility.Collapsed;
+        }
+
+        /// <summary>
+        /// 模型服务
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void bt_modelEmploy_Click(object sender, RoutedEventArgs e)
+        {
+            sp_autoModel.Visibility = Visibility.Collapsed;
+            sp_modelUser.Visibility = Visibility.Collapsed;
+            sp_modelEmploy.Visibility = Visibility.Visible;
+        }
+
+        /// <summary>
+        /// 创建标高体系
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void bt_creatLevel_Click(object sender, RoutedEventArgs e)
+        {
+            CreatLevelForm creatLevelForm = new CreatLevelForm(this);
+            creatLevelForm.Show();
+        }
+
+        /// <summary>
+        /// 设置标高
+        /// </summary>
+        public void SetLevelData()
+        {
+            sp_creatLevel.Children.Clear();
+            foreach (var levelTableEntity in LevelTableEntities)
+            {
+                Label label = new Label();
+                label.Content = levelTableEntity.LevelNmae;
+                label.BorderThickness = new Thickness(0);
+                label.HorizontalAlignment = HorizontalAlignment.Left;
+                //label.Width = 80;
+
+                Button button = new Button();
+                button.Content = "上传图纸";
+                button.BorderThickness = new Thickness(0);
+                button.Width = 80;
+                button.HorizontalAlignment = HorizontalAlignment.Left;
+                button.Click += new RoutedEventHandler(UploadDrawings);
+
+                DockPanel dockPanel = new DockPanel();
+                dockPanel.Children.Add(label);
+                dockPanel.Children.Add(button);
+
+                sp_creatLevel.Children.Add(dockPanel);
+            }
+
+        }
+
+        /// <summary>
+        /// 上传图纸-CAD截取
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        public void UploadDrawings(object sender, RoutedEventArgs e)
+        {
+
+        }
+
+
+        /// <summary>
+        /// 上传图纸到服务器
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void upDrawing_Click(object sender, RoutedEventArgs e)
+        {
+            int a = 1;
+        }
+
+        private void tr_threemodel_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+        {
+
+        }
+
+        /// <summary>
+        /// 点击数据
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            Button button = sender as Button;
+            string value = button.Content.ToString();
+            if (value == "自动建模")
+            {
+                sp_autoModel.Visibility = Visibility.Visible;
+                sp_modelUser.Visibility = Visibility.Collapsed;
+                sp_modelEmploy.Visibility = Visibility.Collapsed;
+            }
+            else if (value == "模型应用")
+            {
+                sp_autoModel.Visibility = Visibility.Collapsed;
+                sp_modelUser.Visibility = Visibility.Visible;
+                sp_modelEmploy.Visibility = Visibility.Collapsed;
+            }
+            else if (value=="模型服务")
+            {
+                sp_autoModel.Visibility = Visibility.Collapsed;
+                sp_modelUser.Visibility = Visibility.Collapsed;
+                sp_modelEmploy.Visibility = Visibility.Visible;
+            }
+            else if (value == "碰撞检查")
+            {
+                sp_autoModel.Visibility = Visibility.Collapsed;
+                sp_modelUser.Visibility = Visibility.Visible;
+                sp_modelEmploy.Visibility = Visibility.Collapsed;
+            }
+            else if (value == "净高分析")
+            {
+                sp_autoModel.Visibility = Visibility.Collapsed;
+                sp_modelUser.Visibility = Visibility.Visible;
+                sp_modelEmploy.Visibility = Visibility.Collapsed;
+            }
+            else if (value == "条文审查")
+            {
+                sp_autoModel.Visibility = Visibility.Collapsed;
+                sp_modelUser.Visibility = Visibility.Visible;
+                sp_modelEmploy.Visibility = Visibility.Collapsed;
+            }
+        }
+
+
+        /// <summary>
+        /// 鼠标双击类型
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
+        {
+
+        }
+
+        /// <summary>
+        /// 新增
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Button_Click_1(object sender, RoutedEventArgs e)
+        {
+            TextBox textBox = new TextBox();
+            textBox.Width = 80;
+            textBox.Margin = new Thickness(0, 5, 0, 0);
+            sp_objectName.Children.Add(textBox);
+
+            Button button = new Button();
+            button.Width = 80;
+            button.Content = "上传";
+            button.Margin = new Thickness(0, 5, 0, 0);
+            sp_objectDraw.Children.Add(button);
+        }
+    }
+}

+ 26 - 0
CollaborativePlatformMain/Form/MessageSubPage/SeconToolLibraryPage.xaml

@@ -0,0 +1,26 @@
+<Page x:Class="CollaborativePlatformMain.Form.MessageSubPage.SeconToolLibraryPage"
+        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.MessageSubPage"
+        mc:Ignorable="d"
+        Title="SeconContactsPage" Width="663" Height="430"
+        Loaded="Window_Loaded">
+
+    <StackPanel>
+        <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>
+    </StackPanel>
+</Page>

+ 37 - 0
CollaborativePlatformMain/Form/MessageSubPage/SeconToolLibraryPage.xaml.cs

@@ -0,0 +1,37 @@
+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.MessageSubPage
+{
+    /// <summary>
+    /// SeconToolLibraryPage.xaml 的交互逻辑
+    /// </summary>
+    public partial class SeconToolLibraryPage : Page
+    {
+        public SeconToolLibraryPage()
+        {
+            InitializeComponent();
+        }
+
+        private void Window_Loaded(object sender, RoutedEventArgs e)
+        {
+
+        }
+
+        private void bt_addTools(object sender, RoutedEventArgs e)
+        {
+
+        }
+    }
+}

+ 69 - 0
CollaborativePlatformMain/Form/StandardizedAssistantForm.xaml

@@ -0,0 +1,69 @@
+<Window x:Class="CollaborativePlatformMain.Form.StandardizedAssistantForm"
+        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" Title="青蓝规范小助手"  WindowStartupLocation="CenterScreen"
+        SizeToContent="WidthAndHeight"  ResizeMode="NoResize" Loaded="Window_Loaded"
+        Closed="Window_Closed">
+
+    <StackPanel Width="800">
+
+        <DockPanel>
+            <Border BorderBrush="Black" BorderThickness="1">
+                <Label Content="Hi,用户名"  BorderThickness="0" Width="80"/>
+            </Border>
+            <Border BorderBrush="Black" BorderThickness="1">
+                <DockPanel HorizontalAlignment="Left">
+                    <CheckBox Content="模糊查询" Margin="10,0,0,0"/>
+                    <CheckBox Content="精准查询" Margin="10,0,0,0"/>
+                    <TextBox Name="tb_sousuo" Width="180" Margin="30,0,0,0"/>
+                    <Button Name="bt_sousuo" Content="搜索" Click="bt_sousuo_Click"/>
+                </DockPanel>
+            </Border>
+
+        </DockPanel>
+
+        <DockPanel>
+
+            <Border HorizontalAlignment="Left" VerticalAlignment="Top"  BorderBrush="Black" BorderThickness="1">
+
+                <StackPanel Width="80" Height="600">
+                    <Label Content="建筑专业" BorderBrush="Black" Width="90"/>
+                    <Label Content="结构专业" BorderBrush="Black" Width="90"/>
+                    <Label Content="给排水专业" BorderBrush="Black" Width="90"/>
+                    <Label Content="暖通专业" BorderBrush="Black" Width="90"/>
+                    <Label Content="电气专业" BorderBrush="Black" Width="90"/>
+                    <Label Content="消防专业" BorderBrush="Black" Width="90"/>
+                </StackPanel>
+
+            </Border>
+
+            <Border>
+
+                <StackPanel>
+                    <TreeView x:Name="tr_threemodel" PreviewMouseLeftButtonUp="tr_threemodel_PreviewMouseLeftButtonUp"
+                                  Width="300"  Height="600" HorizontalAlignment="Left">
+                        <TreeView.ItemTemplate>
+                            <HierarchicalDataTemplate ItemsSource="{Binding SubStandNodes}">
+                                <TextBlock Text="{Binding Name}" PreviewMouseLeftButtonUp="TextBlock_PreviewMouseLeftButtonUp" HorizontalAlignment="Left"/>
+                            </HierarchicalDataTemplate>
+                        </TreeView.ItemTemplate>
+                    </TreeView>
+                </StackPanel>
+
+            </Border>
+
+            <Border>
+                <StackPanel>
+                    <TextBlock Name="tb_node" Width="360" Height="600" TextWrapping="Wrap"/>
+                </StackPanel>
+            </Border>
+
+
+
+        </DockPanel>
+
+    </StackPanel>
+</Window>

+ 197 - 0
CollaborativePlatformMain/Form/StandardizedAssistantForm.xaml.cs

@@ -0,0 +1,197 @@
+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.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>
+    /// StandardizedAssistantForm.xaml 的交互逻辑
+    /// </summary>
+    public partial class StandardizedAssistantForm : Window
+    {
+        /// <summary>
+        /// 父级窗体
+        /// </summary>
+        public HomepageForm HomepageForm;
+
+        /// <summary>
+        /// 规范数据
+        /// </summary>
+        public static List<StandardizedEntity> StandardizedEntities = new List<StandardizedEntity>();
+
+        /// <summary>
+        /// 青蓝规范小助手
+        /// </summary>
+        /// <param name="homepageForm"></param>
+        public StandardizedAssistantForm(HomepageForm homepageForm)
+        {
+            InitializeComponent();
+            HomepageForm = homepageForm;
+        }
+
+        /// <summary>
+        /// 窗体初始化
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Window_Loaded(object sender, RoutedEventArgs e)
+        {
+            StandardizedEntity standardizedEntity1 = new StandardizedEntity("4.1 一般规定", "4.1.1 建筑的平面布置应便于建筑发生火灾时的人员疏散和避难,有利于减小火灾危害、控制火势和烟气蔓延。" +
+                                                                                            "同一建筑内的不同使用功能区域之间应进行防火分隔。\r\n4.1.2 工业与民用建筑、地铁车站、" +
+                                                                                            "平时使用的人民防空工程应综合其高度(埋深)、使用功能和火灾危险性等因素,根据有利于消防救援、" +
+                                                                                            "控制火灾及降低火灾危害的原则划分防火分区。防火分区的划分应符合下列规定:\r\n    " +
+                                                                                            "1 建筑内横向应采用防火墙等划分防火分区,且防火分隔应保证火灾不会蔓延至相邻防火分区;\r\n    " +
+                                                                                            "2 建筑内竖向按自然楼层划分防火分区时,除允许设置敞开楼梯间的建筑外," +
+                                                                                            "防火分区的建筑面积应按上、下楼层中在火灾时未封闭的开口所连通区域的建筑面积之和计算;\r\n    " +
+                                                                                            "3 高层建筑主体与裙房之间未采用防火墙和甲级防火门分隔时,裙房的防火分区应按高层建筑主体的相应要求划分;\r\n  " +
+                                                                                            "  4 除建筑内游泳池、消防水池等的水面、冰面或雪面面积,射击场的靶道面积,污水沉降池面积," +
+                                                                                            "开敞式的外走廊或阳台面积等可不计入防火分区的建筑面积外,其他建筑面积均应计入所在防火分区的建筑面积。" +
+                                                                                            "\r\n4.1.3 下列场所应采用防火门、防火窗、耐火极限不低于2.00h的防火隔墙和耐火极限不低于1.00h的楼板与其他区域" +
+                                                                                            "分隔:\r\n    1 住宅建筑中的汽车库和锅炉房;\r\n    2 除居住建筑中的套内自用厨房可不分隔外,建筑内的" +
+                                                                                            "厨房;\r\n    3 医疗建筑中的手术室或手术部、产房、重症监护室、贵重精密医疗装备用房、储藏间、实验" +
+                                                                                            "室、胶片室等;\r\n    4 建筑中的儿童活动场所、老年人照料设施;\r\n    5 除消防水泵房的防火分隔应" +
+                                                                                            "符合本规范第4.1.7条的规定,消防控制室的防火分隔应符合本规范第4.1.8条的规定外,其他消防设备或器材用房。");
+
+            StandardizedEntity standardizedEntity2 = new StandardizedEntity("4.2 工业建筑", "4.2.1 除特殊工艺要求外,下列场所不应设置在地下或半地下:\r\n    " +
+                                                                                            "1 甲、乙类生产场所;\r\n    2 甲、乙类仓库;\r\n    3 有粉尘爆炸危险的生产场所、滤尘设备间;\r\n    " +
+                                                                                            "4 邮袋库、丝麻棉毛类物质库。\r\n4.2.2 厂房内不应设置宿舍。直接服务于生产的办公室、休息室等辅助用房的设置," +
+                                                                                            "应符合下列规定:\r\n    1 不应设置在甲、乙类厂房内;\r\n    2 与甲、乙类厂房贴邻的辅助用房的耐火等级不应" +
+                                                                                            "低于二级,并应采用耐火极限不低于3.00h的抗爆墙与厂房中有爆炸危险的区域分隔,安全出口应独立设置;\r\n    " +
+                                                                                            "3 设置在丙类厂房内的辅助用房应采用防火门、防火窗、耐火极限不低于2.00h的防火隔墙和耐火极限不低于1.00h的" +
+                                                                                            "楼板与厂房内的其他部位分隔,并应设置至少1个独立的安全出口。\r\n4.2.3 设置在厂房内的甲、乙、丙类中间仓" +
+                                                                                            "库,应采用防火墙和耐火极限不低于1.50h的不燃性楼板与其他部位分隔。\r\n4.2.4 与甲、乙类厂房贴邻并供该甲" +
+                                                                                            "、乙类厂房专用的10kV及以下的变(配)电站,应采用无开口的防火墙或抗爆墙一面贴邻,与乙类厂房贴邻的防火墙" +
+                                                                                            "上的开口应为甲级防火窗。其他变(配)电站应设置在甲、乙类厂房以及爆炸危险性区域外,不应与甲、乙类厂房贴" +
+                                                                                            "邻。\r\n4.2.5 甲、乙类仓库和储存丙类可燃液体的仓库应为单、多层建筑。\r\n4.2.6 仓库内的防火分区或库房之" +
+                                                                                            "间应采用防火墙分隔,甲、乙类库房内的防火分区或库房之间应采用无任何开口的防火墙分隔。\r\n4.2.7 仓库内不" +
+                                                                                            "应设置员工宿舍及与库房运行、管理无直接关系的其他用房。甲、乙类仓库内不应设置办公室、休息室等辅助用房," +
+                                                                                            "不应与办公室、休息室等辅助用房及其他场所贴邻。丙、丁类仓库内的办公室、休息室等辅助用房,应采用防火门、" +
+                                                                                            "防火窗、耐火极限不低于2.00h的防火隔墙和耐火极限不低于1.00h的楼板与其他部位分隔,并应设置独立的安全出口。" +
+                                                                                            "\r\n4.2.8 使用和生产甲、乙、丙类液体的场所中,管、沟不应与相邻建筑或场所的管、沟相通,下水道应采取防止含" +
+                                                                                            "可燃液体的污水流入的措施。");
+
+            StandardizedEntity standardizedEntity3 = new StandardizedEntity("4.3 民用建筑", "4.3.1 民用建筑内不应设置经营、存放或使用甲、乙类火灾危险性物品的商店、作" +
+                                                                                            "坊或储藏间等。民用建筑内除可设置为满足建筑使用功能的附属库房外,不应设置生产场所或其他库房," +
+                                                                                            "不应与工业建筑组合建造。\r\n4.3.2 住宅与非住宅功能合建的建筑应符合下列规定:\r\n   " +
+                                                                                            " 1 除汽车库的疏散出口外,住宅部分与非住宅部分之间应采用耐火极限不低于2.00h,且无开口" +
+                                                                                            "的防火隔墙和耐火极限不低于2.00h的不燃性楼板完全分隔。\r\n    2 住宅部分与非住宅部分的" +
+                                                                                            "安全出口和疏散楼梯应分别独立设置。\r\n    3 为住宅服务的地上车库应设置独立的安全出口或" +
+                                                                                            "疏散楼梯,地下车库的疏散楼梯间应按本规范第7.1.10条的规定分隔。\r\n    4 住宅与商业设施" +
+                                                                                            "合建的建筑按照住宅建筑的防火要求建造的,应符合下列规定:\r\n       1)商业设施中每个独" +
+                                                                                            "立单元之间应采用耐火极限不低于2.00h且无开口的防火隔墙分隔;\r\n       2)每个独立单元" +
+                                                                                            "的层数不应大于2层,且2层的总建筑面积不应大于300㎡;\r\n       3)每个独立单元中建筑面" +
+                                                                                            "积大于200㎡的任一楼层均应设置至少2个疏散出口。\r\n4.3.3 商店营业厅、公共展览厅等的布置" +
+                                                                                            "应符合下列规定:\r\n    1 对于一、二级耐火等级建筑,应布置在地下二层及以上的楼层;\r\n  " +
+                                                                                            "  2 对于三级耐火等级建筑,应布置在首层或二层;\r\n    3 对于四级耐火等级建筑,应布置在首" +
+                                                                                            "层。\r\n4.3.4 儿童活动场所的布置应符合下列规定:\r\n    1 不应布置在地下或半地下;\r\n   " +
+                                                                                            " 2 对于一、二级耐火等级建筑,应布置在首层、二层或三层;\r\n    3 对于三级耐火等级建筑,应" +
+                                                                                            "布置在首层或二层;\r\n    4 对于四级耐火等级建筑,应布置在首层。\r\n4.3.5 老年人照料设施的" +
+                                                                                            "布置应符合下列规定:\r\n    1 对于一、二级耐火等级建筑,不应布置在楼地面设计标高大于54m的" +
+                                                                                            "楼层上;\r\n    2 对于三级耐火等级建筑,应布置在首层或二层;\r\n    3 居室和休息室不应布置" +
+                                                                                            "在地下或半地下;\r\n    4 老年人公共活动用房、康复与医疗用房,应布置在地下一层及以上楼层,当" +
+                                                                                            "布置在半地下或地下一层、地上四层及以上楼层时,每个房间的建筑面积不应大于200㎡且使用人数不应" +
+                                                                                            "大于30人。\r\n4.3.6 医疗建筑中住院病房的布置和分隔应符合下列规定:\r\n    1 不应布置在地下" +
+                                                                                            "或半地下;\r\n    2 对于三级耐火等级建筑,应布置在首层或二层;\r\n    3 建筑内相邻护理单元" +
+                                                                                            "之间应采用耐火极限不低于2.00h的防火隔墙和甲级防火门分隔。\r\n4.3.7 歌舞娱乐放映游艺场所" +
+                                                                                            "的布置和分隔应符合下列规定:\r\n    1 应布置在地下一层及以上且埋深不大于10m的楼层;\r\n    2 " +
+                                                                                            "当布置在地下一层或地上四层及以上楼层时,每个房间的建筑面积不应大于200㎡;\r\n    3 房间之间应" +
+                                                                                            "采用耐火极限不低于2.00h的防火隔墙分隔;\r\n    4 与建筑的其他部位之间应采用防火门、耐火极限" +
+                                                                                            "不低于2.00h的防火隔墙和耐火极限不低于1.00h的不燃性楼板分隔。");
+
+
+            StandardizedEntity standardized1 = new StandardizedEntity("4 建筑平面布置与防火分隔", new List<StandardizedEntity>() { standardizedEntity1, standardizedEntity2, standardizedEntity3 });
+            StandardizedEntity standardized2 = new StandardizedEntity("5 建筑结构耐火", new List<StandardizedEntity>() { standardizedEntity1, standardizedEntity2, standardizedEntity3 });
+            StandardizedEntity standardized3 = new StandardizedEntity("6 建筑构造与装修", new List<StandardizedEntity>() { standardizedEntity1, standardizedEntity2, standardizedEntity3 });
+            StandardizedEntity standardized4 = new StandardizedEntity("7 安全疏散与避难设施", new List<StandardizedEntity>() { standardizedEntity1, standardizedEntity2, standardizedEntity3 });
+            StandardizedEntity standardized5 = new StandardizedEntity("8 消防设施", new List<StandardizedEntity>() { standardizedEntity1, standardizedEntity2, standardizedEntity3 });
+
+
+            StandardizedEntity data1 = new StandardizedEntity("建筑防火通用规范 GB55037-2022", new List<StandardizedEntity>() { standardized1, standardized2, standardized3, standardized4, standardized5 });
+            StandardizedEntity data2 = new StandardizedEntity("建筑设计防火规范 GB50016-2014(2018年版)", new List<StandardizedEntity>() { standardized1, standardized2, standardized3, standardized4, standardized5 });
+            StandardizedEntity data4 = new StandardizedEntity("消防设施通用规范 GB55036-2022", new List<StandardizedEntity>() { standardized1, standardized2, standardized3, standardized4, standardized5 });
+            StandardizedEntity data5 = new StandardizedEntity("人民防空工程设计防火规范 GB50098-2009", new List<StandardizedEntity>() { standardized1, standardized2, standardized3, standardized4, standardized5 });
+            StandardizedEntity data6 = new StandardizedEntity("住宅建筑规范 GB50368-2005", new List<StandardizedEntity>() { standardized1, standardized2, standardized3, standardized4, standardized5 });
+            StandardizedEntity data7 = new StandardizedEntity("建筑防烟排烟系统技术标准 GB51251-2017", new List<StandardizedEntity>() { standardized1, standardized2, standardized3, standardized4, standardized5 });
+
+
+            StandardizedEntities = new List<StandardizedEntity>() { data1, data2, data4, data5, data6, data7 };
+            tr_threemodel.ItemsSource = null;
+            tr_threemodel.ItemsSource = StandardizedEntities;
+        }
+
+        private void tr_threemodel_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+        {
+
+        }
+
+        /// <summary>
+        /// textblock点击事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void TextBlock_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+        {
+            TextBlock textBlock = sender as TextBlock;
+            if (textBlock == null) return;
+            StandardizedEntity standardizedEntity = textBlock.DataContext as StandardizedEntity;
+            if (standardizedEntity == null) return;
+            string node = standardizedEntity.Node;
+            if (node == null || node == "") return;
+
+            tb_node.Text = standardizedEntity.Node;
+
+        }
+
+        /// <summary>
+        /// 窗体关闭事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void Window_Closed(object sender, EventArgs e)
+        {
+            HomepageForm.Visibility = Visibility.Visible;
+        }
+
+        /// <summary>
+        /// 搜索事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void bt_sousuo_Click(object sender, RoutedEventArgs e)
+        {
+            string value = tb_sousuo.Text.ToString();
+
+            List<StandardizedEntity> copyDatas = new List<StandardizedEntity>();
+
+            foreach (var item in StandardizedEntities)
+            {
+                copyDatas.Add(item);
+            }
+            copyDatas = copyDatas.Where(x => x.Name.Contains(value)).ToList();
+
+            if (copyDatas.Count == 0)
+            {
+                tr_threemodel.ItemsSource = null;
+                tr_threemodel.ItemsSource = StandardizedEntities;
+            }
+            else
+            {
+                tr_threemodel.ItemsSource = null;
+                tr_threemodel.ItemsSource = copyDatas;
+            }
+
+
+        }
+    }
+}

BIN
CollaborativePlatformMain/Image/add.png


BIN
CollaborativePlatformMain/Image/folderImage.png


+ 121 - 0
CollaborativePlatformMain/Util/CreatLevelUtil.cs

@@ -0,0 +1,121 @@
+using CollaborativePlatformMain.DFEntity.MessageSubUtil;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+
+namespace CollaborativePlatformMain.Util
+{
+    /// <summary>
+    /// 
+    /// <para>文件名(File Name):     CreatLevelUtil.cs</para>
+    /// 
+    /// <para>描述(Description):     创建标高工具类</para>
+    /// 
+    /// <para>数据表(Tables):        nothing</para>
+    /// 
+    /// <para>作者(Author):          Ou Rui Song</para>
+    /// 
+    /// <para>日期(Create Date):     2024年4月28日15:50:23</para>
+    /// 
+    /// 修改记录(Revision History):
+    ///     R1:
+    ///         修改作者:
+    ///         修改日期:
+    ///         修改理由:
+    /// 
+    /// </summary>
+    public class CreatLevelUtil
+    {
+
+
+        /// <summary>
+        /// 添加标高楼层
+        /// </summary>
+        /// <param name="levelTableEntities">标高数据</param>
+        /// <param name="levelHight">标高高度</param>
+        /// <param name="levelNum">标高个数</param>
+        /// <param name="updw">地上、地下</param>
+        public static void AddLevelFool(ref ObservableCollection<LevelTableEntity> levelTableEntities, string levelHight, string levelNum, string updw)
+        {
+            //添加的层高
+            double levelh = Convert.ToInt32(levelHight);
+            levelTableEntities = new ObservableCollection<LevelTableEntity>(levelTableEntities.OrderBy(x => x.FloorHeight));
+            if (levelTableEntities.Count > 1)
+            {
+                levelTableEntities.First().FloorHeight = levelh;
+            }
+            levelTableEntities = new ObservableCollection<LevelTableEntity>(levelTableEntities.OrderBy(x => x.StructuralElevation));
+            //个数
+            int num = int.Parse(levelNum);
+
+
+            Regex reg = new Regex(@"^(\-|\+)?\d+(\.\d+)?$");
+            if (updw.Equals("地上"))
+            {
+                LevelTableEntity max = levelTableEntities.Last();
+                for (int i = 0; i < num; i++)
+                {
+                    string newNmae = "";
+                    if (reg.IsMatch(max.LevelNmae))
+                    {
+                        newNmae = (double.Parse(max.LevelNmae) + (i + 1)) + "";
+                    }
+                    else
+                    {
+                        newNmae = max.LevelNmae;
+
+                    }
+                    double structuralElevation = max.FloorHeight / 1000 + max.StructuralElevation;
+                    double sum = Math.Round(structuralElevation + levelh / 1000 * (i), 2);
+
+                    LevelTableEntity levelTableCreationEntity = new LevelTableEntity(Guid.NewGuid().ToString(), newNmae, sum, levelh);
+                    if (i == num - 1)
+                    {
+                        levelTableCreationEntity.FloorHeight = 0;
+                    }
+                    levelTableEntities.Insert(levelTableEntities.Count - 1, levelTableCreationEntity);
+
+                }
+
+            }
+            else
+            {
+
+                LevelTableEntity min = levelTableEntities.FirstOrDefault();
+
+                for (int i = 0; i < num; i++)
+                {
+                    string newNmae = "";
+                    if (reg.IsMatch(min.LevelNmae))
+                    {
+                        double nundex = double.Parse(min.LevelNmae);
+                        if (nundex == 1)
+                        {
+                            nundex = 0;
+                        }
+                        newNmae = (nundex - (i + 1)) + "";
+                    }
+                    else
+                    {
+                        newNmae = min.LevelNmae;
+
+                    }
+
+                    double sum = Math.Round(min.StructuralElevation - (levelh * (i + 1)) / 1000, 2);
+
+                    LevelTableEntity levelTableCreationEntity = new LevelTableEntity(Guid.NewGuid().ToString(), newNmae, sum, levelh);
+                    levelTableEntities.Insert(0, levelTableCreationEntity);
+
+                }
+
+            }
+            levelTableEntities = new ObservableCollection<LevelTableEntity>(levelTableEntities.OrderByDescending(x => x.StructuralElevation));
+        }
+
+
+    }
+}

+ 10 - 0
CollaborativePlatformProject/CollaborationPlatform/Form/HomepageForm.xaml.cs

@@ -169,6 +169,16 @@ namespace CollaborativePlatformProject.CollaborationPlatform.Form
         }
 
         /// <summary>
+        /// 三维
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void three_Click(object sender, MouseButtonEventArgs e)
+        {
+
+        }
+
+        /// <summary>
         /// 设置最左测导航的颜色和上边导航的显隐
         /// </summary>
         /// <param name="menuItem"></param>