yangyin
2024-08-22 7d49fe63d26ec26ebee525a7ee26d8ee1dfbbc60
Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0
已修改30个文件
已添加4个文件
1406 ■■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/00-ViewModel/TreelistViewModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductSeriesTreeListCtrl.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Core/Resources/未导入提示.png 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump-main/XhsPumpMainPhartListCtrl.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/01-project/HomeXhsProjectTreeListCtrl.Designer.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/01-project/HomeXhsProjectTreeListCtrl.cs 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/01-project/HomeXhsProjectTreeListCtrl.resx 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/01-project/HomeXhsProjectTreeViewModel.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/03-property/HomeXhsProjectPropertyCtrl.Designer.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/03-property/HomeXhsProjectPropertyCtrl.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/HomeXhsProjectPage.Designer.cs 204 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/HomeXhsProjectPage.cs 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectDlg.Designer.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectDlg.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectDlg.resx 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectHelper.cs 210 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/03-MapLocation/SetXhsProjectMapLocationWizardPage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.Designer.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.resx 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/06-ProjectResultShowPanel/ProjectResultShowPanel.Designer.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/06-ProjectResultShowPanel/ProjectResultShowPanel.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/06-ProjectResultShowPanel/ProjectResultShowPanel.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.Designer.cs 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.resx 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrViewModel.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/map/gaode/img/xhs_project.png 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/map/gaode/js/xhs_base64.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Hstation.WinFrmUI.Core/Lib/ImageLib.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Hstation.WinFrmUI.Core/Lib/Resource1.Designer.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Hstation.WinFrmUI.Core/Lib/Resource1.resx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/00-ViewModel/TreelistViewModel.cs
@@ -16,7 +16,7 @@
            this.SortCode = rhs.SortCode;
            this.Description = rhs.Description;
            this.Model = rhs;
            this.ImageIndex = ImageLib.Series16;
            this.ImageIndex = ImageLib.Series;
        }
        public CurrentTreeViewModel(Vmo.PumpGroup rhs) : base()
@@ -29,7 +29,7 @@
            this.Description = rhs.Description;
            this.Model = rhs;
            this.IsGroup = true;
            this.ImageIndex = ImageLib.Group16;
            this.ImageIndex = ImageLib.Group;
        }
        public void Reset(Vmo.PumpSeries rhs)
WinFrmUI/HStation.WinFrmUI.Assets.Core/00-PumpProductManage/PumpProductSeriesTreeListCtrl.cs
@@ -12,7 +12,7 @@
        {
            InitializeComponent();
            this.treeList1.InitialDefaultSettings();
            this.treeList1.SelectImageList = ImageLib.Lib16;
            this.treeList1.SelectImageList = ImageLib.Lib;
        }
        /// <summary>
WinFrmUI/HStation.WinFrmUI.Core/Resources/δµ¼ÈëÌáʾ.png
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump-main/XhsPumpMainPhartListCtrl.cs
@@ -9,7 +9,7 @@
        {
            InitializeComponent();
            this.treeList1.InitialDefaultSettings(); 
            this.treeList1.SelectImageList = ImageLib.Lib16;
            this.treeList1.SelectImageList = ImageLib.Lib;
            this.layoutControl1.SetupLayoutControl();
        }
@@ -23,7 +23,7 @@
                this.Name = model.OtherName;
                this.Importance = model.Importance;
                this.SortCode = model.SortCode;
                this.ImageIndex= ImageLib.Question16;
                this.ImageIndex= ImageLib.Question;
                this.Model = model;
            } 
            public long ID { get; set; }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/01-project/HomeXhsProjectTreeListCtrl.Designer.cs
@@ -30,8 +30,8 @@
        {
            components = new Container();
            ComponentResourceManager resources = new ComponentResourceManager(typeof(HomeXhsProjectTreeListCtrl));
            DevExpress.Utils.SuperToolTip superToolTip1 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem1 = new DevExpress.Utils.ToolTipItem();
            DevExpress.Utils.SuperToolTip superToolTip2 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem2 = new DevExpress.Utils.ToolTipItem();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            btnImportProject = new DevExpress.XtraEditors.SimpleButton();
            treeList1 = new DevExpress.XtraTreeList.TreeList();
@@ -114,6 +114,7 @@
            // 
            colName.Caption = "名称";
            colName.FieldName = "Name";
            colName.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("colName.ImageOptions.SvgImage");
            colName.Name = "colName";
            colName.Visible = true;
            colName.VisibleIndex = 0;
@@ -181,9 +182,9 @@
            barBtnRefresh.Id = 5;
            barBtnRefresh.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnRefresh.ImageOptions.SvgImage");
            barBtnRefresh.Name = "barBtnRefresh";
            toolTipItem1.Text = "刷新";
            superToolTip1.Items.Add(toolTipItem1);
            barBtnRefresh.SuperTip = superToolTip1;
            toolTipItem2.Text = "刷新";
            superToolTip2.Items.Add(toolTipItem2);
            barBtnRefresh.SuperTip = superToolTip2;
            barBtnRefresh.ItemClick += barBtnRefresh_ItemClick;
            // 
            // barDockControlTop
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/01-project/HomeXhsProjectTreeListCtrl.cs
@@ -25,24 +25,54 @@
        /// é¡¹ç›®å¯¼å…¥å®Œæˆäº‹ä»¶
        /// </summary>
        public event Action<ImportXhsProjectViewModel> ImportProjectCompletedEvent;
        private List<HomeXhsProjectTreeViewModel> _allBindingList = null;//当前绑定列表
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(List<XhsProjectStdDto> allProjectList)
        public async void SetBindingData(List<XhsProjectStdDto> allProjectList)
        {
            _allBindingList = new List<HomeXhsProjectTreeViewModel>();
            foreach (var item in allProjectList)
            {
                var vm = new HomeXhsProjectTreeViewModel(item);
                _allBindingList.Add(vm);
                if (await IsHaveBimFace(item.ID))
                {
                    var vm = new HomeXhsProjectTreeViewModel(item, true);
                    _allBindingList.Add(vm);
                }
                else
                {
                    var vm = new HomeXhsProjectTreeViewModel(item, false);
                    _allBindingList.Add(vm);
                }
            }
            this.treeList1.DataSource = _allBindingList;
            this.treeList1.ForceInitialize();
            this.treeList1.ExpandAll();
        }
        //查找项目是否存在模型
        private async Task<bool> IsHaveBimFace(long ProjectID)
        {
            var projectSite = await new BLL.XhsProjectSiteStd().GetDefaultByProjectID(ProjectID);
            if (projectSite == null)
            {
                return false;
            }
            var relation = await new Yw.BLL.BimfaceFileRelationStd()
               .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, Yw.Bimface.Purpose.Simulation);
            if (relation == null)
            {
                return false;
            }
            var bimfaceFile = await new Yw.BLL.BimfaceFileStd().GetByID(relation.BimfaceFileID);
            if (bimfaceFile == null)
            {
                return false;
            }
            return true;
        }
        /// <summary>
        /// è®¾ç½®é»˜è®¤
@@ -133,6 +163,5 @@
        {
            this.RefreshDataEvent?.Invoke();
        }
    }
}
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/01-project/HomeXhsProjectTreeListCtrl.resx
@@ -145,6 +145,26 @@
        IDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="colName.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAOMCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTmV3VGFibGVTdHlsZSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5l
        dyAwIDAgMzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3
        O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJLnN0MHtvcGFj
        aXR5OjAuNTt9Cjwvc3R5bGU+DQogIDxnIGNsYXNzPSJzdDAiPg0KICAgIDxwYXRoIGQ9Ik0wLDIwaDh2
        NkgwVjIweiBNMTAsMjZoOHYtNmgtOFYyNnogTTIwLDEydjZoOHYtNkgyMHogTTIwLDI2aDh2LTZoLThW
        MjZ6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCiAgPHBhdGggZD0iTTAsNGg4djZIMFY0eiBNMCwx
        OGg4di02SDBWMTh6IE0xMCwxMGg4VjRoLThWMTB6IE0xMCwxOGg4di02aC04VjE4eiIgY2xhc3M9IkJs
        dWUiIC8+DQogIDxwb2x5Z29uIHBvaW50cz0iMjUsMiAyNywwIDI3LDMgMzAsMyAyOCw1IDMwLDcgMjcs
        NyAyNywxMCAyNSw4IDIzLDEwIDIzLDcgMjAsNyAyMiw1IDIwLDMgMjMsMyAyMywwICIgY2xhc3M9Illl
        bGxvdyIgLz4NCjwvc3ZnPgs=
</value>
  </data>
  <metadata name="barManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/01-project/HomeXhsProjectTreeViewModel.cs
@@ -1,19 +1,20 @@
namespace HStation.WinFrmUI
{
    /// <summary>
    ///
    ///
    /// </summary>
    public class HomeXhsProjectTreeViewModel
    {
        /// <summary>
        ///
        ///
        /// </summary>
        public HomeXhsProjectTreeViewModel() { }
        public HomeXhsProjectTreeViewModel()
        { }
        /// <summary>
        ///
        ///
        /// </summary>
        public HomeXhsProjectTreeViewModel(XhsProjectStdDto rhs)
        public HomeXhsProjectTreeViewModel(XhsProjectStdDto rhs, bool IsHave)
        {
            this.ID = rhs.ID;
            this.ParentID = rhs.ParentID;
@@ -21,7 +22,11 @@
            this.SortCode = rhs.SortCode;
            this.Description = rhs.Description;
            this.Project = rhs;
        }
            if (IsHave)
            {
                this.ImageIndex = ImageLib.NotImported;
            }
         }
        /// <summary>
        /// ID
@@ -52,5 +57,10 @@
        /// é¡¹ç›®
        /// </summary>
        public XhsProjectStdDto Project { get; set; }
        /// <summary>
        /// å›¾æ ‡ç´¢å¼•
        /// </summary>
        public int? ImageIndex { get; set; }
    }
}
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/03-property/HomeXhsProjectPropertyCtrl.Designer.cs
@@ -47,11 +47,11 @@
            barBtnExpandAll = new DevExpress.XtraBars.BarButtonItem();
            barBtnCollpseAll = new DevExpress.XtraBars.BarButtonItem();
            barBtnHelp = new DevExpress.XtraBars.BarButtonItem();
            barBtnDirect = new DevExpress.XtraBars.BarButtonItem();
            barDockControlTop = new DevExpress.XtraBars.BarDockControl();
            barDockControlBottom = new DevExpress.XtraBars.BarDockControl();
            barDockControlLeft = new DevExpress.XtraBars.BarDockControl();
            barDockControlRight = new DevExpress.XtraBars.BarDockControl();
            barBtnDirect = new DevExpress.XtraBars.BarButtonItem();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)propertyGridControl1).BeginInit();
@@ -174,7 +174,7 @@
            bar1.DockRow = 0;
            bar1.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;
            bar1.FloatLocation = new Point(1899, 679);
            bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnExpandAll), new DevExpress.XtraBars.LinkPersistInfo(barBtnCollpseAll), new DevExpress.XtraBars.LinkPersistInfo(barBtnHelp), new DevExpress.XtraBars.LinkPersistInfo(barBtnDirect) });
            bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnExpandAll), new DevExpress.XtraBars.LinkPersistInfo(barBtnCollpseAll), new DevExpress.XtraBars.LinkPersistInfo(barBtnHelp), new DevExpress.XtraBars.LinkPersistInfo(barBtnDirect, true) });
            bar1.OptionsBar.AllowQuickCustomization = false;
            bar1.OptionsBar.DrawBorder = false;
            bar1.OptionsBar.RotateWhenVertical = false;
@@ -188,6 +188,7 @@
            barBtnExpandAll.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnExpandAll.ImageOptions.SvgImage");
            barBtnExpandAll.ImageOptions.SvgImageSize = new Size(20, 20);
            barBtnExpandAll.Name = "barBtnExpandAll";
            barBtnExpandAll.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
            barBtnExpandAll.ItemClick += barBtnExpandAll_ItemClick;
            // 
            // barBtnCollpseAll
@@ -197,6 +198,7 @@
            barBtnCollpseAll.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnCollpseAll.ImageOptions.SvgImage");
            barBtnCollpseAll.ImageOptions.SvgImageSize = new Size(20, 20);
            barBtnCollpseAll.Name = "barBtnCollpseAll";
            barBtnCollpseAll.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
            barBtnCollpseAll.ItemClick += barBtnCollpseAll_ItemClick;
            // 
            // barBtnHelp
@@ -215,6 +217,19 @@
            superToolTip1.Items.Add(toolTipItem1);
            barBtnHelp.SuperTip = superToolTip1;
            barBtnHelp.ItemClick += barBtnHelp_ItemClick;
            //
            // barBtnDirect
            //
            barBtnDirect.Caption = "跳转";
            barBtnDirect.Id = 15;
            barBtnDirect.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnDirect.ImageOptions.SvgImage");
            barBtnDirect.ImageOptions.SvgImageSize = new Size(24, 20);
            barBtnDirect.Name = "barBtnDirect";
            toolTipItem2.AllowHtmlText = DevExpress.Utils.DefaultBoolean.True;
            toolTipItem2.Text = "跳转";
            superToolTip2.Items.Add(toolTipItem2);
            barBtnDirect.SuperTip = superToolTip2;
            barBtnDirect.ItemClick += barBtnDirect_ItemClick;
            // 
            // barDockControlTop
            // 
@@ -247,19 +262,6 @@
            barDockControlRight.Location = new Point(260, 28);
            barDockControlRight.Manager = barManager1;
            barDockControlRight.Size = new Size(0, 602);
            //
            // barBtnDirect
            //
            barBtnDirect.Caption = "跳转";
            barBtnDirect.Id = 15;
            barBtnDirect.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnDirect.ImageOptions.SvgImage");
            barBtnDirect.ImageOptions.SvgImageSize = new Size(24, 20);
            barBtnDirect.Name = "barBtnDirect";
            toolTipItem2.AllowHtmlText = DevExpress.Utils.DefaultBoolean.True;
            toolTipItem2.Text = "跳转";
            superToolTip2.Items.Add(toolTipItem2);
            barBtnDirect.SuperTip = superToolTip2;
            barBtnDirect.ItemClick += barBtnDirect_ItemClick;
            // 
            // HomeXhsProjectPropertyCtrl
            // 
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/03-property/HomeXhsProjectPropertyCtrl.cs
@@ -6,7 +6,6 @@
namespace HStation.WinFrmUI
{
    public partial class HomeXhsProjectPropertyCtrl : XtraUserControl
    {
        public HomeXhsProjectPropertyCtrl()
@@ -162,7 +161,7 @@
                }
            }
            #endregion
            #endregion å±žæ€§æ˜¾ç¤ºåç§°å’Œæè¿°
            #region bool
@@ -177,7 +176,7 @@
                e.RepositoryItem = ckEdit;
            }
            #endregion
            #endregion bool
            #region å¯Œæ–‡æœ¬
@@ -192,7 +191,7 @@
                e.RepositoryItem = memoEdit;
            }
            #endregion
            #endregion å¯Œæ–‡æœ¬
            #region å›¾ç‰‡
@@ -205,18 +204,16 @@
                e.Row.Expanded = true;
            }
            #endregion
            #endregion å›¾ç‰‡
        }
        //属性值正在改变
        void propertyGridControl1_CellValueChanging(object sender, DevExpress.XtraVerticalGrid.Events.CellValueChangedEventArgs e)
        private void propertyGridControl1_CellValueChanging(object sender, DevExpress.XtraVerticalGrid.Events.CellValueChangedEventArgs e)
        {
        }
        //属性值改变,更新地图和JsonModel对象
        void propertyGridControl1_CellValueChanged(object sender, DevExpress.XtraVerticalGrid.Events.CellValueChangedEventArgs e)
        private void propertyGridControl1_CellValueChanged(object sender, DevExpress.XtraVerticalGrid.Events.CellValueChangedEventArgs e)
        {
            var fieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last();
            var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row);
@@ -249,7 +246,6 @@
                return;
            }
            JumpDirectEvent?.Invoke(this.SelectedObject.Project);
        }
    }
}
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/HomeXhsProjectPage.Designer.cs
@@ -37,9 +37,13 @@
            gridControl1 = new DevExpress.XtraGrid.GridControl();
            layoutView1 = new DevExpress.XtraGrid.Views.Layout.LayoutView();
            colName = new DevExpress.XtraGrid.Columns.LayoutViewColumn();
            layoutViewField_colName = new DevExpress.XtraGrid.Views.Layout.LayoutViewField();
            colCount = new DevExpress.XtraGrid.Columns.LayoutViewColumn();
            layoutViewField_colCount = new DevExpress.XtraGrid.Views.Layout.LayoutViewField();
            colPicture = new DevExpress.XtraGrid.Columns.LayoutViewColumn();
            repPicEdit = new DevExpress.XtraEditors.Repository.RepositoryItemPictureEdit();
            layoutViewField_colPicture = new DevExpress.XtraGrid.Views.Layout.LayoutViewField();
            layoutViewCard1 = new DevExpress.XtraGrid.Views.Layout.LayoutViewCard();
            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
            sidePanelBottom = new DevExpress.XtraEditors.SidePanel();
            dockPanelFill = new DevExpress.XtraBars.Docking.DockPanel();
@@ -49,15 +53,15 @@
            dockPanelLeft = new DevExpress.XtraBars.Docking.DockPanel();
            dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
            layoutViewCard1 = new DevExpress.XtraGrid.Views.Layout.LayoutViewCard();
            layoutViewField_colCount = new DevExpress.XtraGrid.Views.Layout.LayoutViewField();
            layoutViewField_colPicture = new DevExpress.XtraGrid.Views.Layout.LayoutViewField();
            layoutViewField_colName = new DevExpress.XtraGrid.Views.Layout.LayoutViewField();
            ((ISupportInitialize)svgImg32).BeginInit();
            sidePanel1.SuspendLayout();
            ((ISupportInitialize)gridControl1).BeginInit();
            ((ISupportInitialize)layoutView1).BeginInit();
            ((ISupportInitialize)layoutViewField_colName).BeginInit();
            ((ISupportInitialize)layoutViewField_colCount).BeginInit();
            ((ISupportInitialize)repPicEdit).BeginInit();
            ((ISupportInitialize)layoutViewField_colPicture).BeginInit();
            ((ISupportInitialize)layoutViewCard1).BeginInit();
            ((ISupportInitialize)gridView1).BeginInit();
            sidePanelBottom.SuspendLayout();
            dockPanelFill.SuspendLayout();
@@ -67,30 +71,26 @@
            dockPanelLeft.SuspendLayout();
            dockPanel1_Container.SuspendLayout();
            ((ISupportInitialize)dockManager1).BeginInit();
            ((ISupportInitialize)layoutViewCard1).BeginInit();
            ((ISupportInitialize)layoutViewField_colCount).BeginInit();
            ((ISupportInitialize)layoutViewField_colPicture).BeginInit();
            ((ISupportInitialize)layoutViewField_colName).BeginInit();
            SuspendLayout();
            // 
            // mapViewProjectListContainer1
            // 
            mapViewProjectListContainer1.Dock = DockStyle.Fill;
            mapViewProjectListContainer1.Location = new Point(0, 0);
            mapViewProjectListContainer1.Margin = new Padding(4, 3, 4, 3);
            mapViewProjectListContainer1.Margin = new Padding(3, 2, 3, 2);
            mapViewProjectListContainer1.Name = "mapViewProjectListContainer1";
            mapViewProjectListContainer1.Padding = new Padding(1, 2, 1, 2);
            mapViewProjectListContainer1.Size = new Size(926, 882);
            mapViewProjectListContainer1.Padding = new Padding(1);
            mapViewProjectListContainer1.Size = new Size(665, 560);
            mapViewProjectListContainer1.TabIndex = 5;
            // 
            // homeXhsProjectPropertyCtrl1
            // 
            homeXhsProjectPropertyCtrl1.Dock = DockStyle.Fill;
            homeXhsProjectPropertyCtrl1.Location = new Point(0, 0);
            homeXhsProjectPropertyCtrl1.Margin = new Padding(6, 8, 6, 8);
            homeXhsProjectPropertyCtrl1.Margin = new Padding(4, 5, 4, 5);
            homeXhsProjectPropertyCtrl1.Name = "homeXhsProjectPropertyCtrl1";
            homeXhsProjectPropertyCtrl1.SelectedObject = null;
            homeXhsProjectPropertyCtrl1.Size = new Size(298, 882);
            homeXhsProjectPropertyCtrl1.Size = new Size(206, 560);
            homeXhsProjectPropertyCtrl1.TabIndex = 0;
            homeXhsProjectPropertyCtrl1.JumpDirectEvent += homeXhsProjectPropertyCtrl1_JumpDirectEvent;
            // 
@@ -98,9 +98,9 @@
            // 
            homeXhsProjectTreeListCtrl1.Dock = DockStyle.Fill;
            homeXhsProjectTreeListCtrl1.Location = new Point(0, 0);
            homeXhsProjectTreeListCtrl1.Margin = new Padding(6, 8, 6, 8);
            homeXhsProjectTreeListCtrl1.Margin = new Padding(4, 5, 4, 5);
            homeXhsProjectTreeListCtrl1.Name = "homeXhsProjectTreeListCtrl1";
            homeXhsProjectTreeListCtrl1.Size = new Size(293, 882);
            homeXhsProjectTreeListCtrl1.Size = new Size(190, 560);
            homeXhsProjectTreeListCtrl1.TabIndex = 0;
            homeXhsProjectTreeListCtrl1.SelectProjectEvent += homeXhsProjectTreeListCtrl1_SelectProjectEvent;
            homeXhsProjectTreeListCtrl1.RefreshDataEvent += homeXhsProjectTreeListCtrl1_RefreshDataEvent;
@@ -116,20 +116,21 @@
            sidePanel1.Controls.Add(gridControl1);
            sidePanel1.Dock = DockStyle.Top;
            sidePanel1.Location = new Point(0, 0);
            sidePanel1.Margin = new Padding(4, 5, 4, 5);
            sidePanel1.Name = "sidePanel1";
            sidePanel1.Size = new Size(1519, 148);
            sidePanel1.Size = new Size(1063, 94);
            sidePanel1.TabIndex = 1;
            sidePanel1.Text = "sidePanel1";
            // 
            // gridControl1
            // 
            gridControl1.Dock = DockStyle.Fill;
            gridControl1.EmbeddedNavigator.Margin = new Padding(2);
            gridControl1.Location = new Point(0, 0);
            gridControl1.MainView = layoutView1;
            gridControl1.Margin = new Padding(2);
            gridControl1.Name = "gridControl1";
            gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repPicEdit });
            gridControl1.Size = new Size(1519, 147);
            gridControl1.Size = new Size(1063, 93);
            gridControl1.TabIndex = 0;
            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { layoutView1, gridView1 });
            // 
@@ -143,9 +144,10 @@
            layoutView1.Appearance.FieldValue.Options.UseBackColor = true;
            layoutView1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
            layoutView1.CardHorzInterval = 4;
            layoutView1.CardMinSize = new Size(300, 109);
            layoutView1.CardMinSize = new Size(210, 69);
            layoutView1.CardVertInterval = 0;
            layoutView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.LayoutViewColumn[] { colName, colCount, colPicture });
            layoutView1.DetailHeight = 223;
            layoutView1.GridControl = gridControl1;
            layoutView1.Name = "layoutView1";
            layoutView1.OptionsBehavior.Editable = false;
@@ -163,6 +165,7 @@
            layoutView1.OptionsView.ShowHeaderPanel = false;
            layoutView1.OptionsView.ViewMode = DevExpress.XtraGrid.Views.Layout.LayoutViewMode.Row;
            layoutView1.TemplateCard = layoutViewCard1;
            layoutView1.FieldValueClick += layoutView1_FieldValueClick;
            // 
            // colName
            // 
@@ -175,9 +178,21 @@
            colName.Caption = "名称";
            colName.FieldName = "Name";
            colName.LayoutViewField = layoutViewField_colName;
            colName.MinWidth = 30;
            colName.MinWidth = 21;
            colName.Name = "colName";
            colName.Width = 112;
            colName.Width = 78;
            //
            // layoutViewField_colName
            //
            layoutViewField_colName.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center;
            layoutViewField_colName.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
            layoutViewField_colName.EditorPreferredWidth = 106;
            layoutViewField_colName.Location = new Point(133, 0);
            layoutViewField_colName.Name = "layoutViewField_colName";
            layoutViewField_colName.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
            layoutViewField_colName.Size = new Size(159, 36);
            layoutViewField_colName.TextSize = new Size(0, 0);
            layoutViewField_colName.TextVisible = false;
            // 
            // colCount
            // 
@@ -189,9 +204,21 @@
            colCount.Caption = "数量";
            colCount.FieldName = "Count";
            colCount.LayoutViewField = layoutViewField_colCount;
            colCount.MinWidth = 30;
            colCount.MinWidth = 21;
            colCount.Name = "colCount";
            colCount.Width = 112;
            colCount.Width = 78;
            //
            // layoutViewField_colCount
            //
            layoutViewField_colCount.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center;
            layoutViewField_colCount.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
            layoutViewField_colCount.EditorPreferredWidth = 106;
            layoutViewField_colCount.Location = new Point(133, 36);
            layoutViewField_colCount.Name = "layoutViewField_colCount";
            layoutViewField_colCount.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
            layoutViewField_colCount.Size = new Size(159, 65);
            layoutViewField_colCount.TextSize = new Size(0, 0);
            layoutViewField_colCount.TextVisible = false;
            // 
            // colPicture
            // 
@@ -199,18 +226,43 @@
            colPicture.ColumnEdit = repPicEdit;
            colPicture.FieldName = "Image";
            colPicture.LayoutViewField = layoutViewField_colPicture;
            colPicture.MinWidth = 30;
            colPicture.MinWidth = 21;
            colPicture.Name = "colPicture";
            colPicture.Width = 112;
            colPicture.Width = 78;
            // 
            // repPicEdit
            // 
            repPicEdit.Name = "repPicEdit";
            // 
            // layoutViewField_colPicture
            //
            layoutViewField_colPicture.EditorPreferredWidth = 87;
            layoutViewField_colPicture.Location = new Point(0, 0);
            layoutViewField_colPicture.Name = "layoutViewField_colPicture";
            layoutViewField_colPicture.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
            layoutViewField_colPicture.Size = new Size(133, 101);
            layoutViewField_colPicture.StartNewLine = true;
            layoutViewField_colPicture.TextSize = new Size(0, 0);
            layoutViewField_colPicture.TextVisible = false;
            //
            // layoutViewCard1
            //
            layoutViewCard1.CustomizationFormText = "TemplateCard";
            layoutViewCard1.GroupBordersVisible = false;
            layoutViewCard1.GroupStyle = DevExpress.Utils.GroupStyle.Light;
            layoutViewCard1.HeaderButtonsLocation = DevExpress.Utils.GroupElementLocation.AfterText;
            layoutViewCard1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutViewField_colCount, layoutViewField_colPicture, layoutViewField_colName });
            layoutViewCard1.Name = "layoutViewCard1";
            layoutViewCard1.OptionsItemText.TextToControlDistance = 3;
            layoutViewCard1.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
            layoutViewCard1.Text = "TemplateCard";
            //
            // gridView1
            // 
            gridView1.DetailHeight = 223;
            gridView1.GridControl = gridControl1;
            gridView1.Name = "gridView1";
            gridView1.OptionsEditForm.PopupEditFormWidth = 560;
            // 
            // sidePanelBottom
            // 
@@ -218,10 +270,9 @@
            sidePanelBottom.Controls.Add(dockPanelRight);
            sidePanelBottom.Controls.Add(dockPanelLeft);
            sidePanelBottom.Dock = DockStyle.Fill;
            sidePanelBottom.Location = new Point(0, 148);
            sidePanelBottom.Margin = new Padding(4, 5, 4, 5);
            sidePanelBottom.Location = new Point(0, 94);
            sidePanelBottom.Name = "sidePanelBottom";
            sidePanelBottom.Size = new Size(1519, 916);
            sidePanelBottom.Size = new Size(1063, 583);
            sidePanelBottom.TabIndex = 7;
            sidePanelBottom.Text = "sidePanel3";
            // 
@@ -234,19 +285,21 @@
            dockPanelFill.Controls.Add(controlContainer2);
            dockPanelFill.Dock = DevExpress.XtraBars.Docking.DockingStyle.Fill;
            dockPanelFill.ID = new Guid("136389ea-6552-4166-8c2a-b2ffe8b01953");
            dockPanelFill.Location = new Point(294, 0);
            dockPanelFill.Location = new Point(191, 0);
            dockPanelFill.Margin = new Padding(2);
            dockPanelFill.Name = "dockPanelFill";
            dockPanelFill.Options.ShowCloseButton = false;
            dockPanelFill.OriginalSize = new Size(1525, 200);
            dockPanelFill.Size = new Size(926, 916);
            dockPanelFill.OriginalSize = new Size(287, 200);
            dockPanelFill.Size = new Size(665, 583);
            dockPanelFill.Text = "地图";
            // 
            // controlContainer2
            // 
            controlContainer2.Controls.Add(mapViewProjectListContainer1);
            controlContainer2.Location = new Point(0, 34);
            controlContainer2.Location = new Point(0, 23);
            controlContainer2.Margin = new Padding(2);
            controlContainer2.Name = "controlContainer2";
            controlContainer2.Size = new Size(926, 882);
            controlContainer2.Size = new Size(665, 560);
            controlContainer2.TabIndex = 0;
            // 
            // dockPanelRight
@@ -254,19 +307,21 @@
            dockPanelRight.Controls.Add(controlContainer1);
            dockPanelRight.Dock = DevExpress.XtraBars.Docking.DockingStyle.Right;
            dockPanelRight.ID = new Guid("18c9fca9-8ae9-473c-9cd2-0467d818af3f");
            dockPanelRight.Location = new Point(1220, 0);
            dockPanelRight.Location = new Point(856, 0);
            dockPanelRight.Margin = new Padding(2);
            dockPanelRight.Name = "dockPanelRight";
            dockPanelRight.Options.ShowCloseButton = false;
            dockPanelRight.OriginalSize = new Size(299, 200);
            dockPanelRight.Size = new Size(299, 916);
            dockPanelRight.Text = "属性面板";
            dockPanelRight.OriginalSize = new Size(207, 200);
            dockPanelRight.Size = new Size(207, 583);
            dockPanelRight.Text = "项目属性";
            // 
            // controlContainer1
            // 
            controlContainer1.Controls.Add(homeXhsProjectPropertyCtrl1);
            controlContainer1.Location = new Point(1, 34);
            controlContainer1.Location = new Point(1, 23);
            controlContainer1.Margin = new Padding(2);
            controlContainer1.Name = "controlContainer1";
            controlContainer1.Size = new Size(298, 882);
            controlContainer1.Size = new Size(206, 560);
            controlContainer1.TabIndex = 0;
            // 
            // dockPanelLeft
@@ -275,18 +330,20 @@
            dockPanelLeft.Dock = DevExpress.XtraBars.Docking.DockingStyle.Left;
            dockPanelLeft.ID = new Guid("fba93cbc-dfe6-4982-8aee-be8baff1ea68");
            dockPanelLeft.Location = new Point(0, 0);
            dockPanelLeft.Margin = new Padding(2);
            dockPanelLeft.Name = "dockPanelLeft";
            dockPanelLeft.Options.ShowCloseButton = false;
            dockPanelLeft.OriginalSize = new Size(294, 200);
            dockPanelLeft.Size = new Size(294, 916);
            dockPanelLeft.OriginalSize = new Size(191, 200);
            dockPanelLeft.Size = new Size(191, 583);
            dockPanelLeft.Text = "项目列表";
            // 
            // dockPanel1_Container
            // 
            dockPanel1_Container.Controls.Add(homeXhsProjectTreeListCtrl1);
            dockPanel1_Container.Location = new Point(0, 34);
            dockPanel1_Container.Location = new Point(0, 23);
            dockPanel1_Container.Margin = new Padding(2);
            dockPanel1_Container.Name = "dockPanel1_Container";
            dockPanel1_Container.Size = new Size(293, 882);
            dockPanel1_Container.Size = new Size(190, 560);
            dockPanel1_Container.TabIndex = 0;
            // 
            // dockManager1
@@ -296,69 +353,26 @@
            dockManager1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light;
            dockManager1.TopZIndexControls.AddRange(new string[] { "DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl" });
            // 
            // layoutViewCard1
            //
            layoutViewCard1.CustomizationFormText = "TemplateCard";
            layoutViewCard1.GroupBordersVisible = false;
            layoutViewCard1.GroupStyle = DevExpress.Utils.GroupStyle.Light;
            layoutViewCard1.HeaderButtonsLocation = DevExpress.Utils.GroupElementLocation.AfterText;
            layoutViewCard1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutViewField_colCount, layoutViewField_colPicture, layoutViewField_colName });
            layoutViewCard1.Name = "layoutViewCard1";
            layoutViewCard1.OptionsItemText.TextToControlDistance = 3;
            layoutViewCard1.Padding = new DevExpress.XtraLayout.Utils.Padding(4, 4, 4, 4);
            layoutViewCard1.Text = "TemplateCard";
            //
            // layoutViewField_colCount
            //
            layoutViewField_colCount.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center;
            layoutViewField_colCount.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
            layoutViewField_colCount.EditorPreferredWidth = 151;
            layoutViewField_colCount.Location = new Point(133, 36);
            layoutViewField_colCount.Name = "layoutViewField_colCount";
            layoutViewField_colCount.Padding = new DevExpress.XtraLayout.Utils.Padding(4, 4, 4, 4);
            layoutViewField_colCount.Size = new Size(159, 65);
            layoutViewField_colCount.TextSize = new Size(0, 0);
            layoutViewField_colCount.TextVisible = false;
            //
            // layoutViewField_colPicture
            //
            layoutViewField_colPicture.EditorPreferredWidth = 125;
            layoutViewField_colPicture.Location = new Point(0, 0);
            layoutViewField_colPicture.Name = "layoutViewField_colPicture";
            layoutViewField_colPicture.Padding = new DevExpress.XtraLayout.Utils.Padding(4, 4, 4, 4);
            layoutViewField_colPicture.Size = new Size(133, 101);
            layoutViewField_colPicture.StartNewLine = true;
            layoutViewField_colPicture.TextSize = new Size(0, 0);
            layoutViewField_colPicture.TextVisible = false;
            //
            // layoutViewField_colName
            //
            layoutViewField_colName.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center;
            layoutViewField_colName.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
            layoutViewField_colName.EditorPreferredWidth = 151;
            layoutViewField_colName.Location = new Point(133, 0);
            layoutViewField_colName.Name = "layoutViewField_colName";
            layoutViewField_colName.Padding = new DevExpress.XtraLayout.Utils.Padding(4, 4, 4, 4);
            layoutViewField_colName.Size = new Size(159, 36);
            layoutViewField_colName.TextSize = new Size(0, 0);
            layoutViewField_colName.TextVisible = false;
            //
            // HomeXhsProjectPage
            // 
            Appearance.BackColor = SystemColors.Control;
            Appearance.Options.UseBackColor = true;
            AutoScaleDimensions = new SizeF(10F, 22F);
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(sidePanelBottom);
            Controls.Add(sidePanel1);
            Margin = new Padding(6, 8, 6, 8);
            Margin = new Padding(4, 5, 4, 5);
            Name = "HomeXhsProjectPage";
            Size = new Size(1519, 1064);
            Size = new Size(1063, 677);
            ((ISupportInitialize)svgImg32).EndInit();
            sidePanel1.ResumeLayout(false);
            ((ISupportInitialize)gridControl1).EndInit();
            ((ISupportInitialize)layoutView1).EndInit();
            ((ISupportInitialize)layoutViewField_colName).EndInit();
            ((ISupportInitialize)layoutViewField_colCount).EndInit();
            ((ISupportInitialize)repPicEdit).EndInit();
            ((ISupportInitialize)layoutViewField_colPicture).EndInit();
            ((ISupportInitialize)layoutViewCard1).EndInit();
            ((ISupportInitialize)gridView1).EndInit();
            sidePanelBottom.ResumeLayout(false);
            dockPanelFill.ResumeLayout(false);
@@ -368,10 +382,6 @@
            dockPanelLeft.ResumeLayout(false);
            dockPanel1_Container.ResumeLayout(false);
            ((ISupportInitialize)dockManager1).EndInit();
            ((ISupportInitialize)layoutViewCard1).EndInit();
            ((ISupportInitialize)layoutViewField_colCount).EndInit();
            ((ISupportInitialize)layoutViewField_colPicture).EndInit();
            ((ISupportInitialize)layoutViewField_colName).EndInit();
            ResumeLayout(false);
        }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/HomeXhsProjectPage.cs
@@ -1,4 +1,6 @@
using DevExpress.Utils.Svg;
using HStation.WinFrmUI.Xhs.PumpProduct;
using Yw.WinFrmUI.Page;
namespace HStation.WinFrmUI
{
@@ -23,9 +25,10 @@
            public SvgImage Image { get; set; }
        }
        private Lazy<BLL.XhsProjectStd> _bllProjectStd = new(() => new BLL.XhsProjectStd());
        private List<XhsProjectStdDto> _allProjectList = null;
        private Lazy<BLL.PumpMain> _bllPump = new(() => new BLL.PumpMain());
        /// <summary>
        /// åˆå§‹åŒ–数据源
@@ -33,34 +36,31 @@
        public override async void InitialDataSource()
        {
            _allProjectList = await _bllProjectStd.Value.GetAll();
            var allPump = await _bllPump.Value.GetAll();
            var vm = new CurrentViewModel()
            {
                Name = "项目数量",
                Count = _allProjectList?.Count ?? 0,
                Image =  ImageLib.Project
                Image = ImageLib.Project
            };
            var vm2 = new CurrentViewModel()
            {
                Name = "水泵型号数量",
                Count = 999,
                Count = allPump?.Count ?? 0,
                Image = ImageLib.PumpMain
            };
            var vm3 = new CurrentViewModel()
            {
                Name = "阀门型号数量",
                Count = 666,
                Count = 0,
                Image = ImageLib.Valve
            };
            var list = new List<CurrentViewModel>() { vm, vm2, vm3 };
            this.gridControl1.DataSource = list;
            this.gridControl1.RefreshDataSource();
            this.mapViewProjectListContainer1.LoadCompletedEvent += MapViewProjectListContainer1_LoadCompletedEvent;
            await this.mapViewProjectListContainer1.InitialContainer();
@@ -116,8 +116,6 @@
                //var page = new XhsProjectSimulationMgrPage();
                CreatePage(page, guid);
            }
        }
        //刷新数据事件
@@ -125,6 +123,45 @@
        {
            RefreshData();
        }
        //单击数量总览跳转
        private void layoutView1_FieldValueClick(object sender, DevExpress.XtraGrid.Views.Layout.Events.FieldValueClickEventArgs e)
        {
            if (e.Column.Caption != "名称")
                return;
            switch (e.FieldValue)
            {
                case "项目数量":
                    var guid = new PageGuid()
                    {
                        Modular = "Xhs",
                        MoudingType = eMoudingType.Tab,
                        Function = "ProjectMgr",
                    };
                    if (!IsExistPage(guid, true))
                    {
                        var page = new XhsProjectMgrPage();
                        CreatePage(page, guid);
                    }
                    break;
                case "水泵型号数量":
                    var pumpGuid = new PageGuid()
                    {
                        Modular = "Xhs",
                        MoudingType = eMoudingType.Tab,
                        Function = "PumpMgr",
                    };
                    if (!IsExistPage(pumpGuid, true))
                    {
                        var page = new PumpProductMainPanel();
                        CreatePage(page, pumpGuid);
                    }
                    break;
                case "阀门型号数量":
                    break;
            }
        }
    }
}
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectDlg.Designer.cs
@@ -1,4 +1,6 @@
namespace HStation.WinFrmUI
using System.Security.Cryptography.X509Certificates;
namespace HStation.WinFrmUI
{
    partial class ImportXhsProjectDlg
    {
@@ -43,6 +45,7 @@
            generateXhsProjectWizardPage = new GenerateXhsProjectWizardPage();
            navPageImportCompleted = new DevExpress.XtraBars.Navigation.NavigationPage();
            importXhsProjectCompletedWizardPage = new ImportXhsProjectCompletedCtrl();
            navigationPage1 = new DevExpress.XtraBars.Navigation.NavigationPage();
            stepProgressBar1 = new DevExpress.XtraEditors.StepProgressBar();
            stepPbSelectModelFile = new DevExpress.XtraEditors.StepProgressBarItem();
            stepPbSetMapLocation = new DevExpress.XtraEditors.StepProgressBarItem();
@@ -54,6 +57,7 @@
            itemForPrev = new DevExpress.XtraLayout.LayoutControlItem();
            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
            itemForComplete = new DevExpress.XtraLayout.LayoutControlItem();
            projectResultShowPanel1 = new Xhs.ProjectResultShowPanel();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)navigationFrame1).BeginInit();
@@ -62,6 +66,7 @@
            navPageSetMapLocation.SuspendLayout();
            navPageGenerateProject.SuspendLayout();
            navPageImportCompleted.SuspendLayout();
            navigationPage1.SuspendLayout();
            ((ISupportInitialize)stepProgressBar1).BeginInit();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
@@ -104,7 +109,7 @@
            // 
            // btnPrev
            // 
            btnPrev.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Question;
            btnPrev.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Warning;
            btnPrev.Appearance.Options.UseBackColor = true;
            btnPrev.Location = new Point(625, 661);
            btnPrev.Name = "btnPrev";
@@ -116,7 +121,7 @@
            // 
            // btnNext
            // 
            btnNext.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Success;
            btnNext.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Question;
            btnNext.Appearance.Options.UseBackColor = true;
            btnNext.Location = new Point(745, 661);
            btnNext.Name = "btnNext";
@@ -128,7 +133,7 @@
            // 
            // btnCancel
            // 
            btnCancel.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Warning;
            btnCancel.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Danger;
            btnCancel.Appearance.Options.UseBackColor = true;
            btnCancel.Location = new Point(865, 661);
            btnCancel.Name = "btnCancel";
@@ -144,9 +149,10 @@
            navigationFrame1.Controls.Add(navPageSetMapLocation);
            navigationFrame1.Controls.Add(navPageGenerateProject);
            navigationFrame1.Controls.Add(navPageImportCompleted);
            navigationFrame1.Controls.Add(navigationPage1);
            navigationFrame1.Location = new Point(12, 120);
            navigationFrame1.Name = "navigationFrame1";
            navigationFrame1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { navPageInputProjectInfo, navPageSetMapLocation, navPageGenerateProject, navPageImportCompleted });
            navigationFrame1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { navPageInputProjectInfo, navPageSetMapLocation, navPageGenerateProject, navPageImportCompleted, navigationPage1 });
            navigationFrame1.SelectedPage = navPageInputProjectInfo;
            navigationFrame1.Size = new Size(1089, 537);
            navigationFrame1.TabIndex = 5;
@@ -214,6 +220,13 @@
            importXhsProjectCompletedWizardPage.Size = new Size(1089, 537);
            importXhsProjectCompletedWizardPage.TabIndex = 0;
            // 
            // navigationPage1
            //
            navigationPage1.Caption = "navigationPage1";
            navigationPage1.Controls.Add(projectResultShowPanel1);
            navigationPage1.Name = "navigationPage1";
            navigationPage1.Size = new Size(1089, 537);
            //
            // stepProgressBar1
            // 
            stepProgressBar1.ContentAlignment = ContentAlignment.MiddleLeft;
@@ -223,7 +236,8 @@
            stepProgressBar1.Items.Add(stepPbSetMapLocation);
            stepProgressBar1.Location = new Point(12, 12);
            stepProgressBar1.Name = "stepProgressBar1";
            stepProgressBar1.SelectedItemIndex = 1;
            stepProgressBar1.SelectedItemIndex = 0;
            stepProgressBar1.ShadowDrawMode = DevExpress.XtraEditors.StepProgressBarShadowDrawMode.ActiveElements;
            stepProgressBar1.Size = new Size(1089, 104);
            stepProgressBar1.StyleController = layoutControl1;
            stepProgressBar1.TabIndex = 4;
@@ -231,15 +245,18 @@
            // 
            // stepPbSelectModelFile
            // 
            stepPbSelectModelFile.ContentBlock2.Caption = "录入项目信息";
            stepPbSelectModelFile.ContentBlock1.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepPbSelectModelFile.ContentBlock1.ActiveStateImageOptions.SvgImage");
            stepPbSelectModelFile.ContentBlock1.InactiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepPbSelectModelFile.ContentBlock1.InactiveStateImageOptions.SvgImage");
            stepPbSelectModelFile.ContentBlock2.Caption = "基本信息";
            stepPbSelectModelFile.Name = "stepPbSelectModelFile";
            stepPbSelectModelFile.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepPbSetMapLocation
            // 
            stepPbSetMapLocation.ContentBlock1.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepPbSetMapLocation.ContentBlock1.ActiveStateImageOptions.SvgImage");
            stepPbSetMapLocation.ContentBlock1.InactiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepPbSetMapLocation.ContentBlock1.InactiveStateImageOptions.SvgImage");
            stepPbSetMapLocation.ContentBlock2.Caption = "设置地图位置";
            stepPbSetMapLocation.Name = "stepPbSetMapLocation";
            stepPbSetMapLocation.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // Root
            // 
@@ -324,6 +341,14 @@
            itemForComplete.TextSize = new Size(0, 0);
            itemForComplete.TextVisible = false;
            // 
            // projectResultShowPanel1
            //
            projectResultShowPanel1.Dock = DockStyle.Fill;
            projectResultShowPanel1.Location = new Point(0, 0);
            projectResultShowPanel1.Name = "projectResultShowPanel1";
            projectResultShowPanel1.Size = new Size(1089, 537);
            projectResultShowPanel1.TabIndex = 0;
            //
            // ImportXhsProjectDlg
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
@@ -342,6 +367,7 @@
            navPageSetMapLocation.ResumeLayout(false);
            navPageGenerateProject.ResumeLayout(false);
            navPageImportCompleted.ResumeLayout(false);
            navigationPage1.ResumeLayout(false);
            ((ISupportInitialize)stepProgressBar1).EndInit();
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
@@ -381,5 +407,7 @@
        private ImportXhsProjectCompletedCtrl importXhsProjectCompletedWizardPage;
        private DevExpress.XtraEditors.SimpleButton btnComplete;
        private DevExpress.XtraLayout.LayoutControlItem itemForComplete;
        private DevExpress.XtraBars.Navigation.NavigationPage navigationPage1;
        private Xhs.ProjectResultShowPanel projectResultShowPanel1;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectDlg.cs
@@ -1,5 +1,7 @@
using DevExpress.XtraEditors;
using DevExpress.XtraLayout.Utils;
using HStation.WinFrmUI.Xhs;
using HStation.WinFrmUI.Xhs.Core.Properties;
namespace HStation.WinFrmUI
{
@@ -37,7 +39,8 @@
                this.inputXhsProjectInfoWizardPage,
                this.setXhsProjectMapLocationWizardPage,
                this.generateXhsProjectWizardPage,
                this.importXhsProjectCompletedWizardPage
                this.importXhsProjectCompletedWizardPage,
                this.projectResultShowPanel1
            });
        }
@@ -52,10 +55,16 @@
                }
            }
            StepProgressBarItem stepPbInputProjectInfo = new StepProgressBarItem();
            stepPbInputProjectInfo.ContentBlock1.ActiveStateImageOptions.SvgImage = DevExpress.Images.ImageResourceCache.Default.GetSvgImageById("productquickshippments");
            stepPbInputProjectInfo.ContentBlock1.InactiveStateImageOptions.SvgImage = DevExpress.Images.ImageResourceCache.Default.GetSvgImageById("productquickshippments");
            stepPbInputProjectInfo.ContentBlock2.Caption = "自动生成项目";
            StepProgressBarItem stepPbImportComleted = new StepProgressBarItem();
            stepPbImportComleted.ContentBlock2.Caption = "项目导入完成";
            stepPbImportComleted.ContentBlock1.ActiveStateImageOptions.SvgImage = DevExpress.Images.ImageResourceCache.Default.GetSvgImageById("check");
            stepPbImportComleted.ContentBlock1.InactiveStateImageOptions.SvgImage = DevExpress.Images.ImageResourceCache.Default.GetSvgImageById("check");
            StepProgressBarItem stepGenerateProject = new StepProgressBarItem();
            stepGenerateProject.ContentBlock1.ActiveStateImageOptions.SvgImage = DevExpress.Images.ImageResourceCache.Default.GetSvgImageById("showallfieldresults");
            stepGenerateProject.ContentBlock1.InactiveStateImageOptions.SvgImage = DevExpress.Images.ImageResourceCache.Default.GetSvgImageById("showallfieldresults");
            stepGenerateProject.ContentBlock2.Caption = "项目展示结果";
            this.stepProgressBar1.Items.Add(stepPbInputProjectInfo);
            this.stepProgressBar1.Items.Add(stepPbImportComleted);
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectDlg.resx
@@ -137,4 +137,92 @@
        ZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
  <data name="stepPbSelectModelFile.ContentBlock1.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAP4DAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRW1wbG95ZWVUYXNrTGlzdCI+DQog
        ICAgPHBhdGggZD0iTTI5LDBIM0MyLjUsMCwyLDAuNSwyLDF2MjhjMCwwLjUsMC41LDEsMSwxaDI2YzAu
        NSwwLDEtMC41LDEtMVYxQzMwLDAuNSwyOS41LDAsMjksMHogTTI4LDI4SDRWMmgyNFYyOHoiIGNsYXNz
        PSJCbGFjayIgLz4NCiAgICA8ZyBjbGFzcz0ic3QwIj4NCiAgICAgIDxwYXRoIGQ9Ik0yNCw4SDEyVjZo
        MTJWOHogTTI0LDEwSDEydjJoMTJWMTB6IE0yNCwxNEgxMnYyaDEyVjE0eiBNMjQsMThIMTJ2MmgxMlYx
        OHogTTI0LDIySDEydjJoMTJWMjJ6IiBjbGFzcz0iQmxhY2siIC8+DQogICAgPC9nPg0KICAgIDxwYXRo
        IGQ9Ik0xMCw4SDhWNmgyVjh6IE0xMCwxMEg4djJoMlYxMHogTTEwLDE0SDh2MmgyVjE0eiBNMTAsMThI
        OHYyaDJWMTh6IE0xMCwyMkg4djJoMlYyMnoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
  <data name="stepPbSelectModelFile.ContentBlock1.InactiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAPMDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iVGFza3MiPg0KICAgIDxwYXRoIGQ9
        Ik0yOSwwSDNDMi41LDAsMiwwLjUsMiwxdjI4YzAsMC41LDAuNSwxLDEsMWgyNmMwLjUsMCwxLTAuNSwx
        LTFWMUMzMCwwLjUsMjkuNSwwLDI5LDB6IE0yOCwyOEg0VjJoMjRWMjh6IiBjbGFzcz0iQmxhY2siIC8+
        DQogICAgPGcgY2xhc3M9InN0MCI+DQogICAgICA8cGF0aCBkPSJNMjQsOEgxMlY2aDEyVjh6IE0yNCwx
        MEgxMnYyaDEyVjEweiBNMjQsMTRIMTJ2MmgxMlYxNHogTTI0LDE4SDEydjJoMTJWMTh6IE0yNCwyMkgx
        MnYyaDEyVjIyeiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDwvZz4NCiAgICA8cGF0aCBkPSJNMTAsOEg4
        VjZoMlY4eiBNMTAsMTBIOHYyaDJWMTB6IE0xMCwxNEg4djJoMlYxNHogTTEwLDE4SDh2MmgyVjE4eiBN
        MTAsMjJIOHYyaDJWMjJ6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
</value>
  </data>
  <data name="stepPbSetMapLocation.ContentBlock1.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAP4CAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
        QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
        MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iSW5zZXJ0QnVi
        YmxlTWFwIj4NCiAgICA8cGF0aCBkPSJNMjEuNywxMC4zYzIuNSwwLjcsNC4zLDMsNC4zLDUuN2MwLDMu
        My0yLjcsNi02LDZ2Ny4ybC04LTh2LTcuM2MtMi41LTAuNC00LjYtMi4xLTUuNS00LjRMNCwxMnYyMGw4
        LThsOCw4ICAgbDgtOFY0TDIxLjcsMTAuM3oiIGNsYXNzPSJCbHVlIiAvPg0KICAgIDxjaXJjbGUgY3g9
        IjEzIiBjeT0iNyIgcj0iNSIgY2xhc3M9IkdyZWVuIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0i
        MTYiIHI9IjQiIGNsYXNzPSJZZWxsb3ciIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="stepPbSetMapLocation.ContentBlock1.InactiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAP4CAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
        QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
        MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iSW5zZXJ0QnVi
        YmxlTWFwIj4NCiAgICA8cGF0aCBkPSJNMjEuNywxMC4zYzIuNSwwLjcsNC4zLDMsNC4zLDUuN2MwLDMu
        My0yLjcsNi02LDZ2Ny4ybC04LTh2LTcuM2MtMi41LTAuNC00LjYtMi4xLTUuNS00LjRMNCwxMnYyMGw4
        LThsOCw4ICAgbDgtOFY0TDIxLjcsMTAuM3oiIGNsYXNzPSJCbHVlIiAvPg0KICAgIDxjaXJjbGUgY3g9
        IjEzIiBjeT0iNyIgcj0iNSIgY2xhc3M9IkdyZWVuIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0i
        MTYiIHI9IjQiIGNsYXNzPSJZZWxsb3ciIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
</root>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectHelper.cs
@@ -41,7 +41,79 @@
            #endregion ç¬¬ä¸€æ­¥ ä¸´æ—¶æ–‡ä»¶å¤„理(进度5%)
            #region ç¬¬äºŒæ­¥ åŽ‹ç¼©æ–‡ä»¶è§£æž ï¼ˆè¿›åº¦10%)
            #region ç¬¬äºŒæ­¥ åˆ›å»ºé¡¹ç›®ï¼ˆè¿›åº¦ 10%)
            feedBackMsg?.Invoke("正在创建项目...");
            var bllXhsProjectExtensions = new Lazy<BLL.XhsProjectExtensions>(() => new BLL.XhsProjectExtensions());
            var project = new Vmo.Xhs.XhsProjectExtensions();
            project.NO = vm.NO;
            project.Name = vm.Name;
            project.Address = vm.Address;
            project.Customer = vm.Customer;
            project.Flags = vm.Flags;
            project.TagName = vm.TagName;
            project.Description = vm.Description;
            project.SiteList = new List<Vmo.Xhs.XhsProjectSite>() {
                new Vmo.Xhs.XhsProjectSite(){
                    Name=vm.Name,
                    Description=vm.Description
                }
            };
            var projectId = await bllXhsProjectExtensions.Value.Insert(project);
            if (projectId < 1)
            {
                feedBackMsg?.Invoke("项目创建失败!!!");
                return false;
            }
            feedBackMsg?.Invoke("项目创建成功。。。");
            vm.ProjectID = projectId;
            feedBackProgress?.Invoke(100, 10);
            #endregion ç¬¬äºŒæ­¥ åˆ›å»ºé¡¹ç›®ï¼ˆè¿›åº¦ 10%)
            #region ç¬¬ä¸‰æ­¥ è®¾ç½®åœ°å›¾ä½ç½®ï¼ˆè¿›åº¦ 20%)
            feedBackMsg?.Invoke("正在设置地图位置...");
            if (vm.Location != null)
            {
                var mapInfo = new Yw.Vmo.Map.MapInfo();
                mapInfo.ObjectType = HStation.Xhs.DataType.XhsProject;
                mapInfo.ObjectID = projectId;
                mapInfo.ObjectName = project.Name;
                mapInfo.Purpose = Yw.Map.Purpose.Location;
                mapInfo.Kind = Yw.Map.Kind.Gaodei;
                mapInfo.Shape = Yw.Map.Shape.Marker;
                mapInfo.Position = vm.Location.ToJson();
                var mapInfoId = await new Yw.BLL.MapInfo().Insert(mapInfo);
                if (mapInfoId < 1)
                {
                    feedBackMsg?.Invoke("设置地图位置失败!!!");
                }
                else
                {
                    vm.MapInfoID = mapInfoId;
                    feedBackMsg?.Invoke("设置地图位置成功。。。");
                }
            }
            else
            {
                feedBackMsg?.Invoke("未设置地图位置信息!!!");
            }
            feedBackProgress?.Invoke(100, 20);
            #endregion ç¬¬ä¸‰æ­¥ è®¾ç½®åœ°å›¾ä½ç½®ï¼ˆè¿›åº¦ 20%)
            #region ç¬¬å››æ­¥ åŽ‹ç¼©æ–‡ä»¶è§£æž ï¼ˆè¿›åº¦25%)
            msg = "正在解析模型文件...";
            feedBackMsg?.Invoke(msg);
@@ -62,11 +134,11 @@
            feedBackMsg?.Invoke("模型文件解析成功。。。");
            feedBackProgress?.Invoke(100, 10);
            feedBackProgress?.Invoke(100, 25);
            #endregion ç¬¬äºŒæ­¥ åŽ‹ç¼©æ–‡ä»¶è§£æž ï¼ˆè¿›åº¦10%)
            #endregion ç¬¬å››æ­¥ åŽ‹ç¼©æ–‡ä»¶è§£æž ï¼ˆè¿›åº¦25%)
            #region ç¬¬ä¸‰æ­¥ è§£æžæ°´åŠ›ç»“æž„æ–‡ä»¶ ï¼ˆè¿›åº¦15%)
            #region ç¬¬äº”æ­¥ è§£æžæ°´åŠ›ç»“æž„æ–‡ä»¶ ï¼ˆè¿›åº¦30%)
            feedBackMsg?.Invoke("正在解析水力结构文件...");
            var jsonFileInfo = allFileInfoList.Where(x => x.Extension == ".json").FirstOrDefault();
@@ -100,50 +172,13 @@
            feedBackMsg?.Invoke("水力结构文件解析成功。。。");
            feedBackProgress?.Invoke(100, 15);
            feedBackProgress?.Invoke(100, 30);
            vm.HydroID = hydroId;
            #endregion ç¬¬ä¸‰æ­¥ è§£æžæ°´åŠ›ç»“æž„æ–‡ä»¶ ï¼ˆè¿›åº¦15%)
            #endregion ç¬¬äº”æ­¥ è§£æžæ°´åŠ›ç»“æž„æ–‡ä»¶ ï¼ˆè¿›åº¦30%)
            #region ç¬¬å››æ­¥ åˆ›å»ºé¡¹ç›®ï¼ˆè¿›åº¦ 20%)
            feedBackMsg?.Invoke("正在创建项目...");
            var bllXhsProjectExtensions = new Lazy<BLL.XhsProjectExtensions>(() => new BLL.XhsProjectExtensions());
            var project = new Vmo.Xhs.XhsProjectExtensions();
            project.NO = vm.NO;
            project.Name = vm.Name;
            project.Address = vm.Address;
            project.Customer = vm.Customer;
            project.Flags = vm.Flags;
            project.TagName = vm.TagName;
            project.Description = vm.Description;
            project.SiteList = new List<Vmo.Xhs.XhsProjectSite>() {
                new Vmo.Xhs.XhsProjectSite(){
                    Name=vm.Name,
                    Description=vm.Description
                }
            };
            var projectId = await bllXhsProjectExtensions.Value.Insert(project);
            if (projectId < 1)
            {
                feedBackMsg?.Invoke("项目创建失败!!!");
                return false;
            }
            feedBackMsg?.Invoke("项目创建成功。。。");
            vm.ProjectID = projectId;
            feedBackProgress?.Invoke(100, 20);
            #endregion ç¬¬å››æ­¥ åˆ›å»ºé¡¹ç›®ï¼ˆè¿›åº¦ 20%)
            #region ç¬¬äº”æ­¥ å…³è”水力结构模型(进度 25%)
            #region ç¬¬å…­æ­¥ å…³è”水力结构模型(进度 40%)
            var bllXhsProjectSite = new BLL.XhsProjectSiteStd();
            var projectSite = await bllXhsProjectSite.GetDefaultByProjectID(projectId);
@@ -178,44 +213,9 @@
            feedBackMsg?.Invoke("关联水力结构模型成功。。。");
            feedBackProgress?.Invoke(100, 25);
            feedBackProgress?.Invoke(100, 40);
            #endregion ç¬¬äº”æ­¥ å…³è”水力结构模型(进度 25%)
            #region ç¬¬å…­æ­¥ è®¾ç½®åœ°å›¾ä½ç½®ï¼ˆè¿›åº¦ 30%)
            feedBackMsg?.Invoke("正在设置地图位置...");
            if (vm.Location != null)
            {
                var mapInfo = new Yw.Vmo.Map.MapInfo();
                mapInfo.ObjectType = HStation.Xhs.DataType.XhsProject;
                mapInfo.ObjectID = projectId;
                mapInfo.ObjectName = project.Name;
                mapInfo.Purpose = Yw.Map.Purpose.Location;
                mapInfo.Kind = Yw.Map.Kind.Gaodei;
                mapInfo.Shape = Yw.Map.Shape.Marker;
                mapInfo.Position = vm.Location.ToJson();
                var mapInfoId = await new Yw.BLL.MapInfo().Insert(mapInfo);
                if (mapInfoId < 1)
                {
                    feedBackMsg?.Invoke("设置地图位置失败!!!");
                }
                else
                {
                    vm.MapInfoID = mapInfoId;
                    feedBackMsg?.Invoke("设置地图位置成功。。。");
                }
            }
            else
            {
                feedBackMsg?.Invoke("未设置地图位置信息!!!");
            }
            feedBackProgress?.Invoke(100, 30);
            #endregion ç¬¬å…­æ­¥ è®¾ç½®åœ°å›¾ä½ç½®ï¼ˆè¿›åº¦ 30%)
            #endregion ç¬¬å…­æ­¥ å…³è”水力结构模型(进度 40%)
            #region ç¬¬ä¸ƒæ­¥ ä¸Šä¼ Revit模型文件(进度 45%)
@@ -299,7 +299,7 @@
            #endregion ç¬¬ä¹æ­¥ å…³è”Bimface文件(进度 55%)
            #region ç¬¬ä¹æ­¥ å‘èµ·bimface转换(进度 80%)
            #region ç¬¬åæ­¥ å‘èµ·bimface转换(进度 80%)
            feedBackMsg?.Invoke("正在进行Bimface模型轻量化...");
            // var bimfaceTranslateStatus = await Yw.WinFrmUI.BimfaceHelper.TranslateRvtFile(bimfaceId);//发起转换
@@ -327,9 +327,9 @@
            feedBackProgress?.Invoke(100, 80);
            #endregion ç¬¬ä¹æ­¥ å‘èµ·bimface转换(进度 80%)
            #endregion ç¬¬åæ­¥ å‘èµ·bimface转换(进度 80%)
            #region ç¬¬åæ­¥ æ›´æ–°Bimface文件状态(进度 90%)
            #region ç¬¬åä¸€æ­¥ æ›´æ–°Bimface文件状态(进度 100%)
            feedBackMsg?.Invoke("正在更新Bimface文件状态...");
            bol = await bllBimfaceFile.UpdateFileStatus(bimfaceFileId, (int)Yw.Bimface.eFileStatus.ConvertSucceed);
@@ -344,30 +344,30 @@
                return true;
            }
            feedBackProgress?.Invoke(100, 90);
            #endregion ç¬¬åæ­¥ æ›´æ–°Bimface文件状态(进度 90%)
            #region ç¬¬åä¸€æ­¥ é¡¹ç›®å‘布(进度 100%)
            feedBackMsg?.Invoke("正在发布项目...");
            var bllXhsProject = new BLL.XhsProject();
            bol = await bllXhsProject.Publish(projectId);
            if (!bol)
            {
                feedBackMsg?.Invoke("项目发布失败...");
            }
            else
            {
                vm.IsPublished = true;
                feedBackMsg?.Invoke("项目发布成功...");
            }
            feedBackProgress?.Invoke(100, 100);
            feedBackMsg?.Invoke("项目导入结束。。。");
            #endregion ç¬¬åä¸€æ­¥ æ›´æ–°Bimface文件状态(进度 100%)
            #region å¼ƒç”¨  ç¬¬åäºŒæ­¥ é¡¹ç›®å‘布(进度 100%)
            /*    feedBackMsg?.Invoke("正在发布项目...");
                var bllXhsProject = new BLL.XhsProject();
                bol = await bllXhsProject.Publish(projectId);
                if (!bol)
                {
                    feedBackMsg?.Invoke("项目发布失败...");
                }
                else
                {
                    vm.IsPublished = true;
                    feedBackMsg?.Invoke("项目发布成功...");
                }
                feedBackProgress?.Invoke(100, 100);
                feedBackMsg?.Invoke("项目导入结束。。。");*/
            return true;
            #endregion ç¬¬åä¸€æ­¥ é¡¹ç›®å‘布(进度 100%)
            #endregion å¼ƒç”¨  ç¬¬åäºŒæ­¥ é¡¹ç›®å‘布(进度 100%)
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/03-MapLocation/SetXhsProjectMapLocationWizardPage.cs
@@ -170,13 +170,13 @@
                            this.Invoke(new Action(() =>
                            {
                                // æ›´æ–°UI控件
                                MessageBoxHelper.ShowError("导入错误!");
                                MessageBoxHelper.ShowSuccess("导入成功!");
                            }));
                        }
                        else
                        {
                            // ç›´æŽ¥æ›´æ–°UI控件
                            MessageBoxHelper.ShowError("导入错误!");
                            MessageBoxHelper.ShowSuccess("导入成功!");
                        }
                    }
                }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.Designer.cs
@@ -37,7 +37,6 @@
            stepItemForBimfaceUpload = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForBimfaceRelation = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForBimfaceTranslate = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForPublish = new DevExpress.XtraEditors.StepProgressBarItem();
            ((ISupportInitialize)stepProgressBar1).BeginInit();
            SuspendLayout();
            // 
@@ -52,10 +51,9 @@
            stepProgressBar1.Items.Add(stepItemForBimfaceUpload);
            stepProgressBar1.Items.Add(stepItemForBimfaceRelation);
            stepProgressBar1.Items.Add(stepItemForBimfaceTranslate);
            stepProgressBar1.Items.Add(stepItemForPublish);
            stepProgressBar1.Location = new Point(0, 0);
            stepProgressBar1.Name = "stepProgressBar1";
            stepProgressBar1.Orientation = Orientation.Vertical;
            stepProgressBar1.SelectedItemIndex = 5;
            stepProgressBar1.ShadowDrawMode = DevExpress.XtraEditors.StepProgressBarShadowDrawMode.ActiveElements | DevExpress.XtraEditors.StepProgressBarShadowDrawMode.InactiveElements;
            stepProgressBar1.Size = new Size(941, 615);
            stepProgressBar1.TabIndex = 0;
@@ -68,6 +66,7 @@
            stepItemForHydro.Name = "stepItemForHydro";
            stepItemForHydro.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydro.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForHydro.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForHydro.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemForProject
            // 
@@ -77,6 +76,7 @@
            stepItemForProject.Name = "stepItemForProject";
            stepItemForProject.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForProject.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForProject.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForProject.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemForHydroRelation
            // 
@@ -86,6 +86,7 @@
            stepItemForHydroRelation.Name = "stepItemForHydroRelation";
            stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForHydroRelation.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemFormMap
            // 
@@ -95,6 +96,7 @@
            stepItemFormMap.Name = "stepItemFormMap";
            stepItemFormMap.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemFormMap.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemFormMap.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemFormMap.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemForBimfaceUpload
            // 
@@ -104,6 +106,7 @@
            stepItemForBimfaceUpload.Name = "stepItemForBimfaceUpload";
            stepItemForBimfaceUpload.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForBimfaceUpload.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForBimfaceUpload.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForBimfaceUpload.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemForBimfaceRelation
            // 
@@ -113,6 +116,7 @@
            stepItemForBimfaceRelation.Name = "stepItemForBimfaceRelation";
            stepItemForBimfaceRelation.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForBimfaceRelation.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForBimfaceRelation.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForBimfaceRelation.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemForBimfaceTranslate
            // 
@@ -122,15 +126,6 @@
            stepItemForBimfaceTranslate.Name = "stepItemForBimfaceTranslate";
            stepItemForBimfaceTranslate.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForBimfaceTranslate.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForBimfaceTranslate.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            //
            // stepItemForPublish
            //
            stepItemForPublish.ContentBlock1.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForPublish.ContentBlock1.ActiveStateImageOptions.SvgImage");
            stepItemForPublish.ContentBlock1.InactiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForPublish.ContentBlock1.InactiveStateImageOptions.SvgImage");
            stepItemForPublish.ContentBlock2.Caption = "项目发布";
            stepItemForPublish.Name = "stepItemForPublish";
            stepItemForPublish.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForPublish.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForPublish.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            // 
            // ImportXhsProjectCompletedCtrl
            // 
@@ -153,6 +148,5 @@
        private DevExpress.XtraEditors.StepProgressBarItem stepItemForBimfaceUpload;
        private DevExpress.XtraEditors.StepProgressBarItem stepItemForBimfaceRelation;
        private DevExpress.XtraEditors.StepProgressBarItem stepItemForBimfaceTranslate;
        private DevExpress.XtraEditors.StepProgressBarItem stepItemForPublish;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.cs
@@ -45,16 +45,11 @@
                                    this.stepItemForBimfaceTranslate.ContentBlock2.Description = "跳过Bimface轻量化等待...";
                                }
                                this.stepProgressBar1.SelectNext();
                                if (vm.IsPublished)
                                {
                                    this.stepProgressBar1.SelectNext();
                                }
                            }
                        }
                    }
                }
            }
        }
        /// <summary>
@@ -70,7 +65,7 @@
        /// </summary>
        public bool AllowNext
        {
            get { return false; }
            get { return true; }
        }
        /// <summary>
@@ -86,7 +81,7 @@
        /// </summary>
        public bool AllowComplete
        {
            get { return true; }
            get { return false; }
        }
        /// <summary>
@@ -102,7 +97,7 @@
        /// </summary>
        public bool CanNext()
        {
            return false;
            return true;
        }
        /// <summary>
@@ -118,14 +113,8 @@
        /// </summary>
        public bool CanComplete()
        {
            _vm.IsCompleted = true;
            return true;
            _vm.IsCompleted = false;
            return false;
        }
    }
}
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.resx
@@ -607,69 +607,4 @@
        ZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
  <data name="stepItemForPublish.ContentBlock1.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKEDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
        dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlVzZXIiPg0KICAgIDxwYXRoIGQ9Ik0xMCw5LjljLTAu
        MSwwLjUsMC4yLDAuOSwwLjQsMS40YzAuMiwwLjUtMC4xLDEuNywwLjksMS42YzAsMCwwLDAuMSwwLDAu
        MmMwLjYsMi4zLDIsNC45LDQuNyw0LjkgICBjMi43LDAsNC4yLTIuNiw0LjctNC45YzAsMCwwLTAuMSww
        LTAuMWMxLDAuMSwwLjYtMS4xLDAuOS0xLjZjMC4yLTAuNSwwLjQtMC45LDAuMy0xLjRjLTAuMS0wLjQt
        MC40LTAuNC0wLjUtMC4zICAgYzEuOC00LjktMS4xLTQuNy0xLjEtNC43UzIwLDIsMTQuOCwyQzEwLDIs
        OS40LDYsMTAuNSw5LjZDMTAuNCw5LjYsMTAuMSw5LjcsMTAsOS45eiIgY2xhc3M9IkJsYWNrIiAvPg0K
        ICAgIDxwYXRoIGQ9Ik0yMCwxOGMtMC44LDEuNS0yLjEsNC00LDRjLTEuOSwwLTMuMi0yLjUtNC00Yy0y
        LjMsMy41LTgsMS04LDguNVYzMGgyNHYtMy41QzI4LDE5LjEsMjIuMywyMS40LDIwLDE4eiIgY2xhc3M9
        IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
  <data name="stepItemForPublish.ContentBlock1.InactiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKEDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
        dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlVzZXIiPg0KICAgIDxwYXRoIGQ9Ik0xMCw5LjljLTAu
        MSwwLjUsMC4yLDAuOSwwLjQsMS40YzAuMiwwLjUtMC4xLDEuNywwLjksMS42YzAsMCwwLDAuMSwwLDAu
        MmMwLjYsMi4zLDIsNC45LDQuNyw0LjkgICBjMi43LDAsNC4yLTIuNiw0LjctNC45YzAsMCwwLTAuMSww
        LTAuMWMxLDAuMSwwLjYtMS4xLDAuOS0xLjZjMC4yLTAuNSwwLjQtMC45LDAuMy0xLjRjLTAuMS0wLjQt
        MC40LTAuNC0wLjUtMC4zICAgYzEuOC00LjktMS4xLTQuNy0xLjEtNC43UzIwLDIsMTQuOCwyQzEwLDIs
        OS40LDYsMTAuNSw5LjZDMTAuNCw5LjYsMTAuMSw5LjcsMTAsOS45eiIgY2xhc3M9IkJsYWNrIiAvPg0K
        ICAgIDxwYXRoIGQ9Ik0yMCwxOGMtMC44LDEuNS0yLjEsNC00LDRjLTEuOSwwLTMuMi0yLjUtNC00Yy0y
        LjMsMy41LTgsMS04LDguNVYzMGgyNHYtMy41QzI4LDE5LjEsMjIuMywyMS40LDIwLDE4eiIgY2xhc3M9
        IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
  <data name="stepItemForPublish.Options.Indicator.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAK4CAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iTWFya0NvbXBsZXRlIj4NCiAgICA8
        cG9seWdvbiBwb2ludHM9IjI3LDQgMTEsMjAgNSwxNCAyLDE3IDExLDI2IDMwLDcgICIgY2xhc3M9Ikdy
        ZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
</root>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/06-ProjectResultShowPanel/ProjectResultShowPanel.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
namespace HStation.WinFrmUI.Xhs
{
    partial class ProjectResultShowPanel
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Component Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        }
        #endregion
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/06-ProjectResultShowPanel/ProjectResultShowPanel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
namespace HStation.WinFrmUI.Xhs
{
    public partial class ProjectResultShowPanel : DevExpress.XtraEditors.XtraUserControl, IWizardPage<ImportXhsProjectViewModel>
    {
        public ProjectResultShowPanel()
        {
            InitializeComponent();
        }
        /// <summary>
        /// é¡µé¢çŠ¶æ€æ”¹å˜äº‹ä»¶
        /// </summary>
        public event Action PageStateChangedEvent;
        private ImportXhsProjectViewModel _vm = null;//操作对象
        /// <summary>
        /// å…è®¸ä¸Šä¸€æ­¥
        /// </summary>
        public bool AllowPrev
        {
            get { return false; }
        }
        /// <summary>
        /// å…è®¸ä¸‹ä¸€æ­¥
        /// </summary>
        public bool AllowNext
        {
            get { return false; }
        }
        /// <summary>
        /// å…è®¸å–消
        /// </summary>
        public bool AllowCancel
        {
            get { return false; }
        }
        /// <summary>
        /// å…è®¸å®Œæˆ
        /// </summary>
        public bool AllowComplete
        {
            get { return true; }
        }
        /// <summary>
        /// èƒ½å¦ä¸Šä¸€æ­¥
        /// </summary>
        public bool CanPrev()
        {
            return false;
        }
        /// <summary>
        /// èƒ½å¦ä¸‹ä¸€æ­¥
        /// </summary>
        public bool CanNext()
        {
            return false;
        }
        /// <summary>
        /// èƒ½å¦å–消
        /// </summary>
        public bool CanCancel()
        {
            return false;
        }
        /// <summary>
        /// èƒ½å¦å®Œæˆ
        /// </summary>
        public bool CanComplete()
        {
            _vm.IsCompleted = true;
            return true;
        }
        public void InitialPage(ImportXhsProjectViewModel t)
        {
            _vm = t;
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/06-ProjectResultShowPanel/ProjectResultShowPanel.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.Designer.cs
@@ -30,6 +30,11 @@
        {
            components = new Container();
            ComponentResourceManager resources = new ComponentResourceManager(typeof(XhsProjectMgrPage));
            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject();
            ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl();
            barBtnAdd = new DevExpress.XtraBars.BarButtonItem();
            barBtnEdit = new DevExpress.XtraBars.BarButtonItem();
@@ -55,17 +60,20 @@
            colName = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            colStartTime = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            colEndTime = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            colPublishStatus = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            colAddress = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            colCustomer = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            colFlags = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            colTagName = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            colDescription = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            ColModelState = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            ColViewBimface = new DevExpress.XtraTreeList.Columns.TreeListColumn();
            repositoryItemButtonEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
            xhsProjectMgrViewModelBindingSource = new BindingSource(components);
            panelControl1 = new DevExpress.XtraEditors.PanelControl();
            svgImg32 = new DevExpress.Utils.SvgImageCollection(components);
            ((ISupportInitialize)ribbonControl1).BeginInit();
            ((ISupportInitialize)treeList1).BeginInit();
            ((ISupportInitialize)repositoryItemButtonEdit1).BeginInit();
            ((ISupportInitialize)xhsProjectMgrViewModelBindingSource).BeginInit();
            ((ISupportInitialize)panelControl1).BeginInit();
            panelControl1.SuspendLayout();
@@ -143,7 +151,6 @@
            barBtnPublish.Id = 7;
            barBtnPublish.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnPublish.ImageOptions.SvgImage");
            barBtnPublish.Name = "barBtnPublish";
            barBtnPublish.ItemClick += barBtnPublish_ItemClick;
            // 
            // barBtnDeprecated
            // 
@@ -213,6 +220,7 @@
            ribPageGroupForOperation.ItemLinks.Add(barBtnDeprecated);
            ribPageGroupForOperation.Name = "ribPageGroupForOperation";
            ribPageGroupForOperation.Text = "操作";
            ribPageGroupForOperation.Visible = false;
            // 
            // ribPageGroupForHydro
            // 
@@ -238,18 +246,28 @@
            // 
            // treeList1
            // 
            treeList1.Appearance.HeaderPanel.Options.UseTextOptions = true;
            treeList1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            treeList1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
            treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colNO, colName, colStartTime, colEndTime, colPublishStatus, colAddress, colCustomer, colFlags, colTagName, colDescription });
            treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colNO, colName, colStartTime, colEndTime, colAddress, colCustomer, colFlags, colTagName, colDescription, ColModelState, ColViewBimface });
            treeList1.DataSource = xhsProjectMgrViewModelBindingSource;
            treeList1.Dock = DockStyle.Fill;
            treeList1.Location = new Point(0, 1);
            treeList1.MenuManager = ribbonControl1;
            treeList1.Name = "treeList1";
            treeList1.OptionsBehavior.PopulateServiceColumns = true;
            treeList1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit1 });
            treeList1.Size = new Size(998, 568);
            treeList1.TabIndex = 1;
            treeList1.RowCellClick += treeList1_RowCellClick;
            treeList1.CustomDrawRow += treeList1_CustomDrawRow;
            // 
            // colNO
            // 
            colNO.AppearanceCell.Options.UseTextOptions = true;
            colNO.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            colNO.AppearanceHeader.Options.UseTextOptions = true;
            colNO.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            colNO.FieldName = "NO";
            colNO.Name = "colNO";
            colNO.Visible = true;
@@ -276,40 +294,33 @@
            colEndTime.Visible = true;
            colEndTime.VisibleIndex = 3;
            // 
            // colPublishStatus
            //
            colPublishStatus.FieldName = "PublishStatus";
            colPublishStatus.Name = "colPublishStatus";
            colPublishStatus.Visible = true;
            colPublishStatus.VisibleIndex = 4;
            //
            // colAddress
            // 
            colAddress.FieldName = "Address";
            colAddress.Name = "colAddress";
            colAddress.Visible = true;
            colAddress.VisibleIndex = 5;
            colAddress.VisibleIndex = 4;
            // 
            // colCustomer
            // 
            colCustomer.FieldName = "Customer";
            colCustomer.Name = "colCustomer";
            colCustomer.Visible = true;
            colCustomer.VisibleIndex = 6;
            colCustomer.VisibleIndex = 5;
            // 
            // colFlags
            // 
            colFlags.FieldName = "Flags";
            colFlags.Name = "colFlags";
            colFlags.Visible = true;
            colFlags.VisibleIndex = 7;
            colFlags.VisibleIndex = 6;
            // 
            // colTagName
            // 
            colTagName.FieldName = "TagName";
            colTagName.Name = "colTagName";
            colTagName.Visible = true;
            colTagName.VisibleIndex = 8;
            colTagName.VisibleIndex = 7;
            // 
            // colDescription
            // 
@@ -317,6 +328,31 @@
            colDescription.Name = "colDescription";
            colDescription.Visible = true;
            colDescription.VisibleIndex = 9;
            //
            // ColModelState
            //
            ColModelState.Caption = "模型状态";
            ColModelState.Name = "ColModelState";
            ColModelState.Visible = true;
            ColModelState.VisibleIndex = 8;
            //
            // ColViewBimface
            //
            ColViewBimface.Caption = "查看三维模型";
            ColViewBimface.ColumnEdit = repositoryItemButtonEdit1;
            ColViewBimface.Name = "ColViewBimface";
            ColViewBimface.OptionsColumn.AllowEdit = false;
            ColViewBimface.Visible = true;
            ColViewBimface.VisibleIndex = 10;
            //
            // repositoryItemButtonEdit1
            //
            repositoryItemButtonEdit1.AutoHeight = false;
            editorButtonImageOptions1.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions1.SvgImage");
            editorButtonImageOptions1.SvgImageSize = new Size(25, 25);
            repositoryItemButtonEdit1.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
            repositoryItemButtonEdit1.Name = "repositoryItemButtonEdit1";
            repositoryItemButtonEdit1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
            // 
            // xhsProjectMgrViewModelBindingSource
            // 
@@ -350,6 +386,7 @@
            Size = new Size(998, 670);
            ((ISupportInitialize)ribbonControl1).EndInit();
            ((ISupportInitialize)treeList1).EndInit();
            ((ISupportInitialize)repositoryItemButtonEdit1).EndInit();
            ((ISupportInitialize)xhsProjectMgrViewModelBindingSource).EndInit();
            ((ISupportInitialize)panelControl1).EndInit();
            panelControl1.ResumeLayout(false);
@@ -376,7 +413,6 @@
        private DevExpress.XtraTreeList.Columns.TreeListColumn colName;
        private DevExpress.XtraTreeList.Columns.TreeListColumn colStartTime;
        private DevExpress.XtraTreeList.Columns.TreeListColumn colEndTime;
        private DevExpress.XtraTreeList.Columns.TreeListColumn colPublishStatus;
        private DevExpress.XtraTreeList.Columns.TreeListColumn colAddress;
        private DevExpress.XtraTreeList.Columns.TreeListColumn colCustomer;
        private DevExpress.XtraTreeList.Columns.TreeListColumn colFlags;
@@ -394,5 +430,8 @@
        private DevExpress.XtraBars.BarButtonItem barBtnRefresh;
        private DevExpress.XtraEditors.PanelControl panelControl1;
        private DevExpress.Utils.SvgImageCollection svgImg32;
        private DevExpress.XtraTreeList.Columns.TreeListColumn ColModelState;
        private DevExpress.XtraTreeList.Columns.TreeListColumn ColViewBimface;
        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs
@@ -1,6 +1,8 @@
using DevExpress.CodeParser;
using DevExpress.Utils;
using DevExpress.XtraTreeList;
using HStation.WinFrmUI.Xhs;
using System.Data;
namespace HStation.WinFrmUI
{
@@ -25,6 +27,11 @@
        public override async void InitialDataSource()
        {
            base.InitialDataSource();
            this.SetBindingData();
        }
        private async void SetBindingData()
        {
            _bll = new BLL.XhsProjectExtensions();
            var allProjectList = await _bll.GetAll();
            _allProjectList = new List<XhsProjectMgrViewModel>();
@@ -32,16 +39,41 @@
            {
                foreach (var project in allProjectList)
                {
                    var vm = new XhsProjectMgrViewModel(project);
                    _allProjectList.Add(vm);
                    if (await IsHaveBimFace(project.ID))
                    {
                        var vm = new XhsProjectMgrViewModel(project, true);
                        _allProjectList.Add(vm);
                    }
                    else
                    {
                        var vm = new XhsProjectMgrViewModel(project, false);
                        _allProjectList.Add(vm);
                    }
                }
            }
            this.xhsProjectMgrViewModelBindingSource.DataSource = _allProjectList;
        }
        //发布
        private void barBtnPublish_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        //查找项目是否存在模型
        private async Task<bool> IsHaveBimFace(long ProjectID)
        {
            var projectSite = await new BLL.XhsProjectSiteStd().GetDefaultByProjectID(ProjectID);
            if (projectSite == null)
            {
                return false;
            }
            var relation = await new Yw.BLL.BimfaceFileRelationStd()
               .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, Yw.Bimface.Purpose.Simulation);
            if (relation == null)
            {
                return false;
            }
            var bimfaceFile = await new Yw.BLL.BimfaceFileStd().GetByID(relation.BimfaceFileID);
            if (bimfaceFile == null)
            {
                return false;
            }
            return true;
        }
        //查看bimface模型
@@ -97,7 +129,7 @@
        //刷新
        private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.RefreshData();
            this.SetBindingData();
        }
        #region å½“前
@@ -140,7 +172,7 @@
                {
                    rhs.ID = id;
                    var vmo = await _bll.GetByID(id);
                    _allProjectList.Add(new XhsProjectMgrViewModel(vmo));
                    _allProjectList.Add(new XhsProjectMgrViewModel(vmo, false));
                    this.xhsProjectMgrViewModelBindingSource.ResetBindings(false);
                    if (mapinfo != null)
                    {
@@ -219,5 +251,42 @@
        }
        #endregion åŸºç¡€æ“ä½œ
        private void treeList1_CustomDrawRow(object sender, DevExpress.XtraTreeList.CustomDrawRowEventArgs e)
        {
            var a = repositoryItemButtonEdit1.ReadOnly = true;
        }
        private async void treeList1_RowCellClick(object sender, RowCellClickEventArgs e)
        {
            if (_allProjectList == null || _allProjectList.Count < 1)
                return;
            var vm = GetCurrentViewModel();
            if (vm == null)
            {
                return;
            }
            if (e.Column != this.ColViewBimface)
                return;
            if (!vm.IsHaveBimface)
            {
                TipFormHelper.ShowWarn("请先上传文件再进行操作!");
                return;
            }
            var guid = new PageGuid()
            {
                Modular = Yw.WinFrmUI.PageModular.Bimface,
                MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab,
                Function = Yw.WinFrmUI.PageFunction.ViewBimface3d,
                TagName = $"{vm.ID}"
            };
            if (!IsExistPage(guid, true))
            {
                var page = new ViewXhsProjectBimfacePage();
                await page.SetBindingData(vm.ID);
                CreatePage(page, guid);
            }
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.resx
@@ -388,6 +388,30 @@
        Zz4L
</value>
  </data>
  <data name="editorButtonImageOptions1.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAPADAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
        WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLlJlZHtmaWxsOiNEMTFD
        MUM7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7Zmls
        bDojNzI3MjcyO30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuNzU7fQo8L3N0eWxl
        Pg0KICA8ZyBpZD0iQiI+DQogICAgPHBhdGggZD0iTTE2LjQsMTMuN2gtMS4zdi0zLjRoMS4xYzEuNCww
        LDIuMSwwLjUsMi4xLDEuNmMwLDAuNS0wLjIsMC45LTAuNSwxLjNDMTcuNCwxMy41LDE2LjksMTMuNywx
        Ni40LDEzLjd6ICAgIE0xNi43LDE2aC0xLjZ2My43aDEuNmMwLjcsMCwxLjItMC4yLDEuNS0wLjVjMC40
        LTAuMywwLjUtMC44LDAuNS0xLjRjMC0wLjYtMC4yLTEtMC42LTEuM0MxNy44LDE2LjEsMTcuMywxNiwx
        Ni43LDE2eiBNMzAsMTYgICBjMCw3LjctNi4zLDE0LTE0LDE0UzIsMjMuNywyLDE2UzguMywyLDE2LDJT
        MzAsOC4zLDMwLDE2eiBNMjIsMTcuOGMwLTAuOC0wLjMtMS42LTAuOS0yLjJzLTEuMy0xLTIuMi0xLjF2
        MCAgIGMwLjgtMC4yLDEuNC0wLjYsMS45LTEuMWMwLjUtMC42LDAuNy0xLjIsMC43LTJDMjEuNSw5LjEs
        MjAsOCwxNi45LDhIMTJ2MTRoNS4yYzEuNSwwLDIuNy0wLjQsMy42LTEuMUMyMS42LDIwLjEsMjIsMTku
        MSwyMiwxNy44eiAgICIgY2xhc3M9IlJlZCIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
</value>
  </data>
  <metadata name="xhsProjectMgrViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrViewModel.cs
@@ -17,7 +17,7 @@
        /// <summary>
        ///
        /// </summary>
        public XhsProjectMgrViewModel(Vmo.Xhs.XhsProjectExtensions project)
        public XhsProjectMgrViewModel(Vmo.Xhs.XhsProjectExtensions project, bool IsHaveBimface)
        {
            this.ID = project.ID;
            this.ParentID = project.ParentID;
@@ -29,15 +29,16 @@
            this.TagName = project.TagName;
            this.SortCode = project.SortCode;
            this.Description = project.Description;
            this.IsHaveBimface = IsHaveBimface;
        }
        /// <summary>
        ///
        /// </summary>
        public XhsProjectMgrViewModel(Vmo.Xhs.XhsProjectExtensions project, bool hasLocation) : this(project)
        {
            this.HasLocation = hasLocation;
        }
        /*        /// <summary>
                ///
                /// </summary>
                public XhsProjectMgrViewModel(Vmo.Xhs.XhsProjectExtensions project, bool hasLocation) : this(project)
                {
                    this.HasLocation = hasLocation;
                }*/
        public void Reset(Vmo.Xhs.XhsProjectExtensions project)
        {
@@ -137,10 +138,15 @@
        [Display(Name = "说明")]
        public string Description { get; set; }
        /*      /// <summary>
              /// å®šä½
              /// </summary>
              [Display(Name = "定位")]
              public bool HasLocation { get; set; }*/
        /// <summary>
        /// å®šä½
        /// æ˜¯å¦å­˜åœ¨ä¸‰ç»´æ¨¡åž‹
        /// </summary>
        [Display(Name = "定位")]
        public bool HasLocation { get; set; }
        public bool IsHaveBimface { get; set; }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
@@ -53,12 +53,13 @@
  <ItemGroup>
    <Folder Include="map\gaode\css\" />
    <Folder Include="00-core\" />
    <Folder Include="Resources\" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\BLL\HStation.BLL.Assets.Core\HStation.BLL.Assets.Core.csproj" />
    <ProjectReference Include="..\..\BLL\HStation.BLL.Xhs.Core\HStation.BLL.Xhs.Core.csproj" />
    <ProjectReference Include="..\..\Hydro\HStation.Hydro.Core\HStation.Hydro.Core.csproj" />
    <ProjectReference Include="..\HStation.WinFrmUI.Assets.Core\HStation.WinFrmUI.Assets.Core.csproj" />
    <ProjectReference Include="..\HStation.WinFrmUI.Bimface.Core\HStation.WinFrmUI.Bimface.Core.csproj" />
    <ProjectReference Include="..\Hstation.WinFrmUI.Core\HStation.WinFrmUI.Core.csproj" />
    <ProjectReference Include="..\HStation.WinFrmUI.Hydro.Core\HStation.WinFrmUI.Hydro.Core.csproj" />
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
@@ -34,6 +34,9 @@
    <Compile Update="02-project\01-import\05-ImportCompleted\ImportXhsProjectCompletedCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="02-project\01-import\06-ProjectResultShowPanel\ProjectResultShowPanel.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="02-project\02-bimface\ViewXhsProjectBimfacePage.cs">
      <SubType>UserControl</SubType>
    </Compile>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/map/gaode/img/xhs_project.png

WinFrmUI/HStation.WinFrmUI.Xhs.Core/map/gaode/js/xhs_base64.js
@@ -1,4 +1,4 @@
//图片
var xhs_image_base64 = {
    project: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAQhJREFUWEftl0EOgjAQRWeqB0HjQXDdeAe5gQv24h68gngGY1zqQZD0IhZTE2IgDcxIAy7KjvD58/JnCi3CxBdOXB8aAMFtF+BrdkKEsANMmWelzBYu4BsAy2ucAFR7orFyATEEwHDmpcwiIrBVNhQAAPBQyjT5FcIBALm0AsBzG3ZMgA+p0LguNumjxh4doN0yD+AT6E3ATK2ZWC2qu22Kuxbh6hKH9XtfXfO70QuAUEWohaqNzP1THnPK6ncCQCnE0zAT4JlT1EwAPwOUUHkaZgt45hQ1E8DPACVUnobZAp45Re0B/jkB+9+L0le6pnNTao5mQs+3jNMRvTJA/7ac4+ZKO/np+A3rDfwhR0NVogAAAABJRU5ErkJggg=='
    project: 'data:image/png;base64,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'
};
WinFrmUI/Hstation.WinFrmUI.Core/Lib/ImageLib.cs
@@ -10,47 +10,57 @@
    public class ImageLib
    {
        #region 16
        public static ImageCollection Lib16
        public static ImageCollection Lib
        {
            get
            {
                if (_lib16 == null)
                if (_lib == null)
                {
                    _lib16 = new ImageCollection();
                    _lib16.ImageSize = new Size(16, 16);
                    _lib16.Images.Add(Resource1.Group, "Group");
                    _lib16.Images.Add(Resource1.Series, "Series");
                    _lib16.Images.Add(Resource1.Question, "Question");
                    _lib = new ImageCollection();
                    _lib.ImageSize = new Size(16, 16);
                    _lib.Images.Add(Resource1.Group, "Group");
                    _lib.Images.Add(Resource1.Series, "Series");
                    _lib.Images.Add(Resource1.Question, "Question");
                    _lib.Images.Add(Resource1.NotImported, "NotImported");
                }
                return _lib16;
                return _lib;
            }
        }
        private static ImageCollection _lib16;
        private static ImageCollection _lib;
        public static int Group16
        public static int Group
        {
            get => GetImage16Index("Group");
        }
        public static int Series16
        public static int Series
        {
            get => GetImage16Index("Series");
        }
        public static int Question16
        public static int Question
        {
            get => GetImage16Index("Question");
        }
        private static int GetImage16Index(string imgName)
        {
            var img = Lib16.Images[imgName];
            if (img == null)
                img = Lib16.Images["Question"];
            return _lib16.Images.IndexOf(img);
        public static int NotImported
        {
            get => GetImage16Index("NotImported");
        }
        #endregion
        private static int GetImage16Index(string imgName)
        {
            var img = Lib.Images[imgName];
            if (img == null)
                img = Lib.Images["Question"];
            return _lib.Images.IndexOf(img);
        }
        #endregion 16
        #region Svg
        public static SvgImageCollection LibSvg
@@ -86,7 +96,6 @@
            get => LibSvg[2];
        }
        #endregion
        #endregion Svg
    }
}
WinFrmUI/Hstation.WinFrmUI.Core/Lib/Resource1.Designer.cs
@@ -71,6 +71,16 @@
        }
        
        /// <summary>
        ///   æŸ¥æ‰¾ System.Drawing.Bitmap ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static System.Drawing.Bitmap NotImported {
            get {
                object obj = ResourceManager.GetObject("NotImported", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        /// <summary>
        ///   æŸ¥æ‰¾ System.Byte[] ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static byte[] Project {
WinFrmUI/Hstation.WinFrmUI.Core/Lib/Resource1.resx
@@ -121,6 +121,9 @@
  <data name="Group" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\Group.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="NotImported" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\未导入提示.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="Project" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\Project.svg;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </data>