From 2d303dd904c63df9eeba3ce3e3bb148e40ac651d Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期二, 11 二月 2025 16:23:14 +0800
Subject: [PATCH] 优化个人中心界面

---
 WinFrmUI/HStation.WinFrmUI.Auth.Core/HStation.WinFrmUI.Auth.Core.csproj         |    3 
 WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.resx        |  156 +++++-
 WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.cs          |  188 ++++++-
 WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.Designer.cs |  134 ++++++
 WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.Designer.cs |  649 ++++++++++++++++++----------
 WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.resx        |  120 +++++
 WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.cs          |   42 +
 7 files changed, 980 insertions(+), 312 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.Designer.cs
new file mode 100644
index 0000000..365f5f6
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.Designer.cs
@@ -0,0 +1,134 @@
+锘縩amespace HStation.WinFrmUI 
+{
+    partial class AddPhoneNumberDlg
+    {
+        /// <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 Windows Form 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()
+        {
+            Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+            generalOkAndCancelCtrl1 = new Yw.WinFrmUI.GeneralOkAndCancelCtrl();
+            layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            txtEditPhoneNumber = new DevExpress.XtraEditors.TextEdit();
+            ((System.ComponentModel.ISupportInitialize)Root).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem7).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem8).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
+            layoutControl1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)txtEditPhoneNumber.Properties).BeginInit();
+            SuspendLayout();
+            // 
+            // Root
+            // 
+            Root.AppearanceItemCaption.Options.UseTextOptions = true;
+            Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            Root.GroupBordersVisible = false;
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7, layoutControlItem8 });
+            Root.Name = "Root";
+            Root.Size = new Size(378, 75);
+            Root.TextVisible = false;
+            // 
+            // layoutControlItem7
+            // 
+            layoutControlItem7.Control = generalOkAndCancelCtrl1;
+            layoutControlItem7.Location = new Point(0, 24);
+            layoutControlItem7.Name = "layoutControlItem7";
+            layoutControlItem7.Size = new Size(358, 31);
+            layoutControlItem7.TextSize = new Size(0, 0);
+            layoutControlItem7.TextVisible = false;
+            // 
+            // generalOkAndCancelCtrl1
+            // 
+            generalOkAndCancelCtrl1.ButtonCancelMaxSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.ButtonCancelMinSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.ButtonOkMaxSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.ButtonOkMinSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.Location = new Point(12, 36);
+            generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
+            generalOkAndCancelCtrl1.Size = new Size(354, 27);
+            generalOkAndCancelCtrl1.TabIndex = 6;
+            // 
+            // layoutControlItem8
+            // 
+            layoutControlItem8.AllowHtmlStringInCaption = true;
+            layoutControlItem8.Control = txtEditPhoneNumber;
+            layoutControlItem8.Location = new Point(0, 0);
+            layoutControlItem8.Name = "layoutControlItem8";
+            layoutControlItem8.Size = new Size(358, 24);
+            layoutControlItem8.Text = "<color=red>*</color>鎵嬫満鍙�:";
+            layoutControlItem8.TextSize = new Size(47, 14);
+            // 
+            // layoutControl1
+            // 
+            layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
+            layoutControl1.Controls.Add(txtEditPhoneNumber);
+            layoutControl1.Dock = DockStyle.Fill;
+            layoutControl1.Location = new Point(0, 0);
+            layoutControl1.Name = "layoutControl1";
+            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(826, 220, 650, 400);
+            layoutControl1.Root = Root;
+            layoutControl1.Size = new Size(378, 75);
+            layoutControl1.TabIndex = 2;
+            layoutControl1.Text = "layoutControl1";
+            // 
+            // txtEditPhoneNumber
+            // 
+            txtEditPhoneNumber.Location = new Point(71, 12);
+            txtEditPhoneNumber.Name = "txtEditPhoneNumber";
+            txtEditPhoneNumber.Size = new Size(295, 20);
+            txtEditPhoneNumber.StyleController = layoutControl1;
+            txtEditPhoneNumber.TabIndex = 3;
+            // 
+            // AddPhoneNumberDlg
+            // 
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            ClientSize = new Size(378, 75);
+            Controls.Add(layoutControl1);
+            Name = "AddPhoneNumberDlg";
+            StartPosition = FormStartPosition.CenterScreen;
+            Text = "绠$悊绫诲瀷";
+            ((System.ComponentModel.ISupportInitialize)Root).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem7).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem8).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControl1).EndInit();
+            layoutControl1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)txtEditPhoneNumber.Properties).EndInit();
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+        private Yw.WinFrmUI.GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+        private DevExpress.XtraLayout.LayoutControl layoutControl1;
+        private DevExpress.XtraEditors.TextEdit txtEditPhoneNumber;
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.cs b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.cs
new file mode 100644
index 0000000..9688ba8
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.cs
@@ -0,0 +1,42 @@
+锘縰sing DevExpress.CodeParser;
+using DevExpress.XtraEditors;
+using Yw;
+using Yw.Auth;
+using Yw.Dto;
+using Yw.WinFrmUI;
+
+namespace HStation.WinFrmUI
+{
+    public partial class AddPhoneNumberDlg : DevExpress.XtraEditors.XtraForm
+    {
+        public AddPhoneNumberDlg()
+        {
+            InitializeComponent();
+            this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent; ;
+        }
+
+        public event Action<string> ReloadDataEvent;
+
+        //鎵嬫満鍙烽獙璇�
+        private bool IsValidMobileNumber(string mobile)
+        {
+            var regex = new System.Text.RegularExpressions.Regex(@"^1\d{10}$");
+            return regex.IsMatch(mobile);
+        }
+
+        /// <summary>
+        /// 纭畾
+        /// </summary>
+        private void GeneralOkAndCancelCtrl1_OkEvent()
+        {
+            if (!IsValidMobileNumber(this.txtEditPhoneNumber.Text.Trim()))
+            {
+                TipFormHelper.ShowError("鎵嬫満鍙锋湁璇�!");
+                return;
+            }
+            ReloadDataEvent.Invoke(this.txtEditPhoneNumber.Text.Trim());
+            this.DialogResult = DialogResult.OK;
+            this.Close();
+        }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.resx b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.resx
new file mode 100644
index 0000000..8b2ff64
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/AddPhoneNumberDlg.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>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.Designer.cs
index 264cd8f..a969482 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.Designer.cs
@@ -29,7 +29,64 @@
         private void InitializeComponent()
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PersonalCenterDlg));
-            navigationPane1 = new DevExpress.XtraBars.Navigation.NavigationPane();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions7 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject25 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject26 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject27 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject28 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions8 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject29 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject30 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject31 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject32 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions9 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject33 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject34 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject35 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject36 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions10 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject37 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject38 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject39 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject40 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions11 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject41 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject42 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject43 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject44 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions12 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject45 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject46 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject47 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject48 = new DevExpress.Utils.SerializableAppearanceObject();
+            navigationPage3 = new DevExpress.XtraBars.Navigation.NavigationPage();
+            layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+            btnAddWx = new DevExpress.XtraEditors.SimpleButton();
+            gridControl2 = new DevExpress.XtraGrid.GridControl();
+            gridView2 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            gridColumn2 = new DevExpress.XtraGrid.Columns.GridColumn();
+            colWxDel = new DevExpress.XtraGrid.Columns.GridColumn();
+            repositoryItemButtonEdit4 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
+            repositoryItemButtonEdit5 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
+            repositoryItemButtonEdit6 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
+            layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+            emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+            layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+            navigationPage2 = new DevExpress.XtraBars.Navigation.NavigationPage();
+            layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+            gridControl1 = new DevExpress.XtraGrid.GridControl();
+            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            gridColumn1 = new DevExpress.XtraGrid.Columns.GridColumn();
+            colDel = new DevExpress.XtraGrid.Columns.GridColumn();
+            repositoryItemButtonEdit2 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
+            repositoryItemButtonEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
+            repositoryItemButtonEdit3 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
+            btnAddPhone = new DevExpress.XtraEditors.SimpleButton();
+            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+            emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+            layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
             navigationPage1 = new DevExpress.XtraBars.Navigation.NavigationPage();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             BtnSave = new DevExpress.XtraEditors.SimpleButton();
@@ -46,24 +103,31 @@
             layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
-            navigationPage2 = new DevExpress.XtraBars.Navigation.NavigationPage();
-            layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
-            btnPhoneBinding = new DevExpress.XtraEditors.SimpleButton();
-            txtMobileNumber = new DevExpress.XtraEditors.TextEdit();
-            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
-            emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
-            navigationPage3 = new DevExpress.XtraBars.Navigation.NavigationPage();
-            layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
-            btnRefresh = new DevExpress.XtraEditors.SimpleButton();
-            wechatBindingCtrl1 = new WechatBindingCtrl();
-            layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
-            emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
-            layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
-            ((System.ComponentModel.ISupportInitialize)navigationPane1).BeginInit();
-            navigationPane1.SuspendLayout();
+            navigationPane1 = new DevExpress.XtraBars.Navigation.NavigationPane();
+            navigationPage3.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)layoutControl3).BeginInit();
+            layoutControl3.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)gridControl2).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)gridView2).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit4).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit5).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit6).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlGroup2).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem7).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)emptySpaceItem3).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem8).BeginInit();
+            navigationPage2.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)layoutControl2).BeginInit();
+            layoutControl2.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)gridControl1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)gridView1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit2).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit3).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlGroup1).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem12).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)emptySpaceItem2).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem11).BeginInit();
             navigationPage1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
@@ -79,39 +143,268 @@
             ((System.ComponentModel.ISupportInitialize)layoutControlItem4).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem6).BeginInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem5).BeginInit();
-            navigationPage2.SuspendLayout();
-            ((System.ComponentModel.ISupportInitialize)layoutControl2).BeginInit();
-            layoutControl2.SuspendLayout();
-            ((System.ComponentModel.ISupportInitialize)txtMobileNumber.Properties).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlGroup1).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem7).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem8).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)emptySpaceItem2).BeginInit();
-            navigationPage3.SuspendLayout();
-            ((System.ComponentModel.ISupportInitialize)layoutControl3).BeginInit();
-            layoutControl3.SuspendLayout();
-            ((System.ComponentModel.ISupportInitialize)layoutControlGroup2).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem9).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)emptySpaceItem3).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem10).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)navigationPane1).BeginInit();
+            navigationPane1.SuspendLayout();
             SuspendLayout();
             // 
-            // navigationPane1
+            // navigationPage3
             // 
-            navigationPane1.AllowHtmlDraw = false;
-            navigationPane1.Controls.Add(navigationPage1);
-            navigationPane1.Controls.Add(navigationPage2);
-            navigationPane1.Controls.Add(navigationPage3);
-            navigationPane1.Dock = DockStyle.Fill;
-            navigationPane1.Location = new Point(0, 0);
-            navigationPane1.Name = "navigationPane1";
-            navigationPane1.PageProperties.ShowMode = DevExpress.XtraBars.Navigation.ItemShowMode.ImageAndText;
-            navigationPane1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { navigationPage1, navigationPage2, navigationPage3 });
-            navigationPane1.RegularSize = new Size(661, 375);
-            navigationPane1.SelectedPage = navigationPage1;
-            navigationPane1.Size = new Size(661, 375);
-            navigationPane1.TabIndex = 0;
-            navigationPane1.Text = "涓汉淇℃伅";
+            navigationPage3.Caption = "寰俊缁戝畾";
+            navigationPage3.Controls.Add(layoutControl3);
+            navigationPage3.ImageOptions.Image = (Image)resources.GetObject("navigationPage3.ImageOptions.Image");
+            navigationPage3.Name = "navigationPage3";
+            navigationPage3.Size = new Size(536, 302);
+            // 
+            // layoutControl3
+            // 
+            layoutControl3.Controls.Add(btnAddWx);
+            layoutControl3.Controls.Add(gridControl2);
+            layoutControl3.Dock = DockStyle.Fill;
+            layoutControl3.Location = new Point(0, 0);
+            layoutControl3.Name = "layoutControl3";
+            layoutControl3.Root = layoutControlGroup2;
+            layoutControl3.Size = new Size(536, 302);
+            layoutControl3.TabIndex = 0;
+            layoutControl3.Text = "layoutControl3";
+            // 
+            // btnAddWx
+            // 
+            btnAddWx.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("btnAddWx.ImageOptions.SvgImage");
+            btnAddWx.ImageOptions.SvgImageSize = new Size(20, 20);
+            btnAddWx.Location = new Point(464, 12);
+            btnAddWx.Name = "btnAddWx";
+            btnAddWx.Size = new Size(60, 24);
+            btnAddWx.StyleController = layoutControl3;
+            btnAddWx.TabIndex = 3;
+            btnAddWx.Text = "娣诲姞";
+            btnAddWx.Click += btnAddWx_Click;
+            // 
+            // gridControl2
+            // 
+            gridControl2.Location = new Point(12, 40);
+            gridControl2.MainView = gridView2;
+            gridControl2.Name = "gridControl2";
+            gridControl2.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit5, repositoryItemButtonEdit4, repositoryItemButtonEdit6 });
+            gridControl2.Size = new Size(512, 250);
+            gridControl2.TabIndex = 9;
+            gridControl2.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView2 });
+            // 
+            // gridView2
+            // 
+            gridView2.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { gridColumn2, colWxDel });
+            gridView2.GridControl = gridControl2;
+            gridView2.Name = "gridView2";
+            gridView2.OptionsView.ShowGroupPanel = false;
+            gridView2.RowCellClick += gridView2_RowCellClick;
+            // 
+            // gridColumn2
+            // 
+            gridColumn2.Caption = "寰俊鏍囪瘑";
+            gridColumn2.FieldName = "Wxid";
+            gridColumn2.Name = "gridColumn2";
+            gridColumn2.Visible = true;
+            gridColumn2.VisibleIndex = 0;
+            // 
+            // colWxDel
+            // 
+            colWxDel.Caption = "鍒犻櫎";
+            colWxDel.ColumnEdit = repositoryItemButtonEdit4;
+            colWxDel.MaxWidth = 60;
+            colWxDel.MinWidth = 60;
+            colWxDel.Name = "colWxDel";
+            colWxDel.Visible = true;
+            colWxDel.VisibleIndex = 1;
+            colWxDel.Width = 60;
+            // 
+            // repositoryItemButtonEdit4
+            // 
+            repositoryItemButtonEdit4.AutoHeight = false;
+            editorButtonImageOptions7.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions7.SvgImage");
+            editorButtonImageOptions7.SvgImageSize = new Size(20, 20);
+            repositoryItemButtonEdit4.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions7, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject25, serializableAppearanceObject26, serializableAppearanceObject27, serializableAppearanceObject28, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
+            repositoryItemButtonEdit4.Name = "repositoryItemButtonEdit4";
+            repositoryItemButtonEdit4.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
+            // 
+            // repositoryItemButtonEdit5
+            // 
+            repositoryItemButtonEdit5.AutoHeight = false;
+            editorButtonImageOptions8.SvgImageSize = new Size(20, 20);
+            repositoryItemButtonEdit5.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions8, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject29, serializableAppearanceObject30, serializableAppearanceObject31, serializableAppearanceObject32, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
+            repositoryItemButtonEdit5.Name = "repositoryItemButtonEdit5";
+            repositoryItemButtonEdit5.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
+            // 
+            // repositoryItemButtonEdit6
+            // 
+            repositoryItemButtonEdit6.AutoHeight = false;
+            editorButtonImageOptions9.SvgImageSize = new Size(20, 20);
+            repositoryItemButtonEdit6.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions9, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject33, serializableAppearanceObject34, serializableAppearanceObject35, serializableAppearanceObject36, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
+            repositoryItemButtonEdit6.Name = "repositoryItemButtonEdit6";
+            repositoryItemButtonEdit6.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
+            // 
+            // layoutControlGroup2
+            // 
+            layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            layoutControlGroup2.GroupBordersVisible = false;
+            layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7, emptySpaceItem3, layoutControlItem8 });
+            layoutControlGroup2.Name = "layoutControlGroup2";
+            layoutControlGroup2.Size = new Size(536, 302);
+            layoutControlGroup2.TextVisible = false;
+            // 
+            // layoutControlItem7
+            // 
+            layoutControlItem7.Control = gridControl2;
+            layoutControlItem7.Location = new Point(0, 28);
+            layoutControlItem7.Name = "layoutControlItem7";
+            layoutControlItem7.Size = new Size(516, 254);
+            layoutControlItem7.TextSize = new Size(0, 0);
+            layoutControlItem7.TextVisible = false;
+            // 
+            // emptySpaceItem3
+            // 
+            emptySpaceItem3.AllowHotTrack = false;
+            emptySpaceItem3.Location = new Point(0, 0);
+            emptySpaceItem3.Name = "emptySpaceItem3";
+            emptySpaceItem3.Size = new Size(452, 28);
+            emptySpaceItem3.TextSize = new Size(0, 0);
+            // 
+            // layoutControlItem8
+            // 
+            layoutControlItem8.Control = btnAddWx;
+            layoutControlItem8.Location = new Point(452, 0);
+            layoutControlItem8.Name = "layoutControlItem8";
+            layoutControlItem8.Size = new Size(64, 28);
+            layoutControlItem8.TextSize = new Size(0, 0);
+            layoutControlItem8.TextVisible = false;
+            // 
+            // navigationPage2
+            // 
+            navigationPage2.Caption = "鎵嬫満缁戝畾";
+            navigationPage2.Controls.Add(layoutControl2);
+            navigationPage2.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("navigationPage2.ImageOptions.SvgImage");
+            navigationPage2.ImageOptions.SvgImageSize = new Size(20, 20);
+            navigationPage2.Name = "navigationPage2";
+            navigationPage2.Size = new Size(536, 302);
+            // 
+            // layoutControl2
+            // 
+            layoutControl2.Controls.Add(gridControl1);
+            layoutControl2.Controls.Add(btnAddPhone);
+            layoutControl2.Dock = DockStyle.Fill;
+            layoutControl2.Location = new Point(0, 0);
+            layoutControl2.Name = "layoutControl2";
+            layoutControl2.Root = layoutControlGroup1;
+            layoutControl2.Size = new Size(536, 302);
+            layoutControl2.TabIndex = 0;
+            layoutControl2.Text = "layoutControl2";
+            // 
+            // gridControl1
+            // 
+            gridControl1.Location = new Point(12, 40);
+            gridControl1.MainView = gridView1;
+            gridControl1.Name = "gridControl1";
+            gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit1, repositoryItemButtonEdit2, repositoryItemButtonEdit3 });
+            gridControl1.Size = new Size(512, 250);
+            gridControl1.TabIndex = 1;
+            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            // 
+            // gridView1
+            // 
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { gridColumn1, colDel });
+            gridView1.GridControl = gridControl1;
+            gridView1.Name = "gridView1";
+            gridView1.OptionsView.ShowGroupPanel = false;
+            gridView1.RowCellClick += gridView1_RowCellClick;
+            // 
+            // gridColumn1
+            // 
+            gridColumn1.Caption = "鎵嬫満鍙�";
+            gridColumn1.FieldName = "Phone";
+            gridColumn1.Name = "gridColumn1";
+            gridColumn1.Visible = true;
+            gridColumn1.VisibleIndex = 0;
+            // 
+            // colDel
+            // 
+            colDel.Caption = "鍒犻櫎";
+            colDel.ColumnEdit = repositoryItemButtonEdit2;
+            colDel.MaxWidth = 60;
+            colDel.MinWidth = 60;
+            colDel.Name = "colDel";
+            colDel.Visible = true;
+            colDel.VisibleIndex = 1;
+            colDel.Width = 60;
+            // 
+            // repositoryItemButtonEdit2
+            // 
+            repositoryItemButtonEdit2.AutoHeight = false;
+            editorButtonImageOptions10.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions10.SvgImage");
+            editorButtonImageOptions10.SvgImageSize = new Size(20, 20);
+            repositoryItemButtonEdit2.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions10, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject37, serializableAppearanceObject38, serializableAppearanceObject39, serializableAppearanceObject40, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
+            repositoryItemButtonEdit2.Name = "repositoryItemButtonEdit2";
+            repositoryItemButtonEdit2.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
+            // 
+            // repositoryItemButtonEdit1
+            // 
+            repositoryItemButtonEdit1.AutoHeight = false;
+            editorButtonImageOptions11.SvgImageSize = new Size(20, 20);
+            repositoryItemButtonEdit1.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions11, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject41, serializableAppearanceObject42, serializableAppearanceObject43, serializableAppearanceObject44, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
+            repositoryItemButtonEdit1.Name = "repositoryItemButtonEdit1";
+            repositoryItemButtonEdit1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
+            // 
+            // repositoryItemButtonEdit3
+            // 
+            repositoryItemButtonEdit3.AutoHeight = false;
+            editorButtonImageOptions12.SvgImageSize = new Size(20, 20);
+            repositoryItemButtonEdit3.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions12, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject45, serializableAppearanceObject46, serializableAppearanceObject47, serializableAppearanceObject48, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
+            repositoryItemButtonEdit3.Name = "repositoryItemButtonEdit3";
+            repositoryItemButtonEdit3.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
+            // 
+            // btnAddPhone
+            // 
+            btnAddPhone.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("btnAddPhone.ImageOptions.SvgImage");
+            btnAddPhone.ImageOptions.SvgImageSize = new Size(20, 20);
+            btnAddPhone.Location = new Point(464, 12);
+            btnAddPhone.Name = "btnAddPhone";
+            btnAddPhone.Size = new Size(60, 24);
+            btnAddPhone.StyleController = layoutControl2;
+            btnAddPhone.TabIndex = 2;
+            btnAddPhone.Text = "娣诲姞";
+            btnAddPhone.Click += btnAddPhone_Click;
+            // 
+            // layoutControlGroup1
+            // 
+            layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            layoutControlGroup1.GroupBordersVisible = false;
+            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem12, emptySpaceItem2, layoutControlItem11 });
+            layoutControlGroup1.Name = "layoutControlGroup1";
+            layoutControlGroup1.Size = new Size(536, 302);
+            layoutControlGroup1.TextVisible = false;
+            // 
+            // layoutControlItem12
+            // 
+            layoutControlItem12.Control = btnAddPhone;
+            layoutControlItem12.Location = new Point(452, 0);
+            layoutControlItem12.Name = "layoutControlItem12";
+            layoutControlItem12.Size = new Size(64, 28);
+            layoutControlItem12.TextSize = new Size(0, 0);
+            layoutControlItem12.TextVisible = false;
+            // 
+            // emptySpaceItem2
+            // 
+            emptySpaceItem2.AllowHotTrack = false;
+            emptySpaceItem2.Location = new Point(0, 0);
+            emptySpaceItem2.Name = "emptySpaceItem2";
+            emptySpaceItem2.Size = new Size(452, 28);
+            emptySpaceItem2.TextSize = new Size(0, 0);
+            // 
+            // layoutControlItem11
+            // 
+            layoutControlItem11.Control = gridControl1;
+            layoutControlItem11.Location = new Point(0, 28);
+            layoutControlItem11.Name = "layoutControlItem11";
+            layoutControlItem11.Size = new Size(516, 254);
+            layoutControlItem11.TextSize = new Size(0, 0);
+            layoutControlItem11.TextVisible = false;
             // 
             // navigationPage1
             // 
@@ -271,155 +564,22 @@
             layoutControlItem5.TextSize = new Size(0, 0);
             layoutControlItem5.TextVisible = false;
             // 
-            // navigationPage2
+            // navigationPane1
             // 
-            navigationPage2.Caption = "鎵嬫満缁戝畾";
-            navigationPage2.Controls.Add(layoutControl2);
-            navigationPage2.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("navigationPage2.ImageOptions.SvgImage");
-            navigationPage2.ImageOptions.SvgImageSize = new Size(20, 20);
-            navigationPage2.Name = "navigationPage2";
-            navigationPage2.Size = new Size(536, 302);
-            // 
-            // layoutControl2
-            // 
-            layoutControl2.Controls.Add(btnPhoneBinding);
-            layoutControl2.Controls.Add(txtMobileNumber);
-            layoutControl2.Dock = DockStyle.Fill;
-            layoutControl2.Location = new Point(0, 0);
-            layoutControl2.Name = "layoutControl2";
-            layoutControl2.Root = layoutControlGroup1;
-            layoutControl2.Size = new Size(536, 302);
-            layoutControl2.TabIndex = 0;
-            layoutControl2.Text = "layoutControl2";
-            // 
-            // btnPhoneBinding
-            // 
-            btnPhoneBinding.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Warning;
-            btnPhoneBinding.Appearance.Options.UseBackColor = true;
-            btnPhoneBinding.Location = new Point(469, 36);
-            btnPhoneBinding.Name = "btnPhoneBinding";
-            btnPhoneBinding.Size = new Size(55, 22);
-            btnPhoneBinding.StyleController = layoutControl2;
-            btnPhoneBinding.TabIndex = 7;
-            btnPhoneBinding.Text = "缁戝畾";
-            btnPhoneBinding.Click += btnPhoneBinding_Click;
-            // 
-            // txtMobileNumber
-            // 
-            txtMobileNumber.Location = new Point(64, 12);
-            txtMobileNumber.Name = "txtMobileNumber";
-            txtMobileNumber.Size = new Size(460, 20);
-            txtMobileNumber.StyleController = layoutControl2;
-            txtMobileNumber.TabIndex = 14;
-            // 
-            // layoutControlGroup1
-            // 
-            layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
-            layoutControlGroup1.GroupBordersVisible = false;
-            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7, layoutControlItem8, emptySpaceItem2 });
-            layoutControlGroup1.Name = "layoutControlGroup1";
-            layoutControlGroup1.Size = new Size(536, 302);
-            layoutControlGroup1.TextVisible = false;
-            // 
-            // layoutControlItem7
-            // 
-            layoutControlItem7.Control = txtMobileNumber;
-            layoutControlItem7.Location = new Point(0, 0);
-            layoutControlItem7.Name = "layoutControlItem7";
-            layoutControlItem7.Size = new Size(516, 24);
-            layoutControlItem7.Text = "鎵嬫満鍙�:";
-            layoutControlItem7.TextSize = new Size(40, 14);
-            // 
-            // layoutControlItem8
-            // 
-            layoutControlItem8.Control = btnPhoneBinding;
-            layoutControlItem8.Location = new Point(457, 24);
-            layoutControlItem8.Name = "layoutControlItem8";
-            layoutControlItem8.Size = new Size(59, 258);
-            layoutControlItem8.TextSize = new Size(0, 0);
-            layoutControlItem8.TextVisible = false;
-            // 
-            // emptySpaceItem2
-            // 
-            emptySpaceItem2.AllowHotTrack = false;
-            emptySpaceItem2.Location = new Point(0, 24);
-            emptySpaceItem2.Name = "emptySpaceItem2";
-            emptySpaceItem2.Size = new Size(457, 258);
-            emptySpaceItem2.TextSize = new Size(0, 0);
-            // 
-            // navigationPage3
-            // 
-            navigationPage3.Caption = "寰俊缁戝畾";
-            navigationPage3.Controls.Add(layoutControl3);
-            navigationPage3.ImageOptions.Image = (Image)resources.GetObject("navigationPage3.ImageOptions.Image");
-            navigationPage3.Name = "navigationPage3";
-            navigationPage3.Size = new Size(536, 302);
-            // 
-            // layoutControl3
-            // 
-            layoutControl3.Controls.Add(btnRefresh);
-            layoutControl3.Controls.Add(wechatBindingCtrl1);
-            layoutControl3.Dock = DockStyle.Fill;
-            layoutControl3.Location = new Point(0, 0);
-            layoutControl3.Name = "layoutControl3";
-            layoutControl3.Root = layoutControlGroup2;
-            layoutControl3.Size = new Size(536, 302);
-            layoutControl3.TabIndex = 0;
-            layoutControl3.Text = "layoutControl3";
-            // 
-            // btnRefresh
-            // 
-            btnRefresh.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Warning;
-            btnRefresh.Appearance.Options.UseBackColor = true;
-            btnRefresh.Location = new Point(463, 268);
-            btnRefresh.Name = "btnRefresh";
-            btnRefresh.Size = new Size(61, 22);
-            btnRefresh.StyleController = layoutControl3;
-            btnRefresh.TabIndex = 8;
-            btnRefresh.Text = "鍒锋柊";
-            btnRefresh.Click += btnRefresh_Click;
-            // 
-            // wechatBindingCtrl1
-            // 
-            wechatBindingCtrl1.Location = new Point(12, 12);
-            wechatBindingCtrl1.Name = "wechatBindingCtrl1";
-            wechatBindingCtrl1.Size = new Size(512, 252);
-            wechatBindingCtrl1.TabIndex = 0;
-            // 
-            // layoutControlGroup2
-            // 
-            layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
-            layoutControlGroup2.GroupBordersVisible = false;
-            layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem9, emptySpaceItem3, layoutControlItem10 });
-            layoutControlGroup2.Name = "layoutControlGroup2";
-            layoutControlGroup2.Size = new Size(536, 302);
-            layoutControlGroup2.TextVisible = false;
-            // 
-            // layoutControlItem9
-            // 
-            layoutControlItem9.Control = wechatBindingCtrl1;
-            layoutControlItem9.Location = new Point(0, 0);
-            layoutControlItem9.Name = "layoutControlItem9";
-            layoutControlItem9.Size = new Size(516, 256);
-            layoutControlItem9.TextSize = new Size(0, 0);
-            layoutControlItem9.TextVisible = false;
-            // 
-            // emptySpaceItem3
-            // 
-            emptySpaceItem3.AllowHotTrack = false;
-            emptySpaceItem3.Location = new Point(0, 256);
-            emptySpaceItem3.Name = "emptySpaceItem3";
-            emptySpaceItem3.Size = new Size(451, 26);
-            emptySpaceItem3.TextSize = new Size(0, 0);
-            // 
-            // layoutControlItem10
-            // 
-            layoutControlItem10.Control = btnRefresh;
-            layoutControlItem10.Location = new Point(451, 256);
-            layoutControlItem10.Name = "layoutControlItem10";
-            layoutControlItem10.Size = new Size(65, 26);
-            layoutControlItem10.TextSize = new Size(0, 0);
-            layoutControlItem10.TextVisible = false;
+            navigationPane1.AllowHtmlDraw = false;
+            navigationPane1.Controls.Add(navigationPage1);
+            navigationPane1.Controls.Add(navigationPage2);
+            navigationPane1.Controls.Add(navigationPage3);
+            navigationPane1.Dock = DockStyle.Fill;
+            navigationPane1.Location = new Point(0, 0);
+            navigationPane1.Name = "navigationPane1";
+            navigationPane1.PageProperties.ShowMode = DevExpress.XtraBars.Navigation.ItemShowMode.ImageAndText;
+            navigationPane1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { navigationPage1, navigationPage2, navigationPage3 });
+            navigationPane1.RegularSize = new Size(661, 375);
+            navigationPane1.SelectedPage = navigationPage1;
+            navigationPane1.Size = new Size(661, 375);
+            navigationPane1.TabIndex = 0;
+            navigationPane1.Text = "涓汉淇℃伅";
             // 
             // PersonalCenterDlg
             // 
@@ -430,8 +590,30 @@
             Name = "PersonalCenterDlg";
             StartPosition = FormStartPosition.CenterScreen;
             Text = "涓汉涓績";
-            ((System.ComponentModel.ISupportInitialize)navigationPane1).EndInit();
-            navigationPane1.ResumeLayout(false);
+            navigationPage3.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)layoutControl3).EndInit();
+            layoutControl3.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)gridControl2).EndInit();
+            ((System.ComponentModel.ISupportInitialize)gridView2).EndInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit4).EndInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit5).EndInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit6).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlGroup2).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem7).EndInit();
+            ((System.ComponentModel.ISupportInitialize)emptySpaceItem3).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem8).EndInit();
+            navigationPage2.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)layoutControl2).EndInit();
+            layoutControl2.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)gridControl1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)gridView1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit2).EndInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)repositoryItemButtonEdit3).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlGroup1).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem12).EndInit();
+            ((System.ComponentModel.ISupportInitialize)emptySpaceItem2).EndInit();
+            ((System.ComponentModel.ISupportInitialize)layoutControlItem11).EndInit();
             navigationPage1.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
@@ -447,58 +629,57 @@
             ((System.ComponentModel.ISupportInitialize)layoutControlItem4).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem6).EndInit();
             ((System.ComponentModel.ISupportInitialize)layoutControlItem5).EndInit();
-            navigationPage2.ResumeLayout(false);
-            ((System.ComponentModel.ISupportInitialize)layoutControl2).EndInit();
-            layoutControl2.ResumeLayout(false);
-            ((System.ComponentModel.ISupportInitialize)txtMobileNumber.Properties).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlGroup1).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem7).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem8).EndInit();
-            ((System.ComponentModel.ISupportInitialize)emptySpaceItem2).EndInit();
-            navigationPage3.ResumeLayout(false);
-            ((System.ComponentModel.ISupportInitialize)layoutControl3).EndInit();
-            layoutControl3.ResumeLayout(false);
-            ((System.ComponentModel.ISupportInitialize)layoutControlGroup2).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem9).EndInit();
-            ((System.ComponentModel.ISupportInitialize)emptySpaceItem3).EndInit();
-            ((System.ComponentModel.ISupportInitialize)layoutControlItem10).EndInit();
+            ((System.ComponentModel.ISupportInitialize)navigationPane1).EndInit();
+            navigationPane1.ResumeLayout(false);
             ResumeLayout(false);
         }
 
         #endregion
 
-        private DevExpress.XtraBars.Navigation.NavigationPane navigationPane1;
-        private DevExpress.XtraBars.Navigation.NavigationPage navigationPage1;
-        private DevExpress.XtraBars.Navigation.NavigationPage navigationPage2;
         private DevExpress.XtraBars.Navigation.NavigationPage navigationPage3;
+        private DevExpress.XtraLayout.LayoutControl layoutControl3;
+        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+        private DevExpress.XtraBars.Navigation.NavigationPage navigationPage2;
+        private DevExpress.XtraLayout.LayoutControl layoutControl2;
+        private DevExpress.XtraEditors.SimpleButton btnAddPhone;
+        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+        private DevExpress.XtraBars.Navigation.NavigationPage navigationPage1;
         private DevExpress.XtraLayout.LayoutControl layoutControl1;
-        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraEditors.SimpleButton BtnSave;
+        private DevExpress.XtraEditors.SimpleButton BtnEditPwd;
         private DevExpress.XtraEditors.TextEdit txtEditUserName;
         private DevExpress.XtraEditors.TextEdit txtAccountName;
         private DevExpress.XtraEditors.TextEdit textAccountType;
         private DevExpress.XtraEditors.TextEdit txtEditAdminType;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
         private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
-        private DevExpress.XtraEditors.SimpleButton BtnEditPwd;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
-        private DevExpress.XtraEditors.SimpleButton BtnSave;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
-        private DevExpress.XtraLayout.LayoutControl layoutControl2;
-        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
-        private DevExpress.XtraEditors.TextEdit txtMobileNumber;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+        private DevExpress.XtraBars.Navigation.NavigationPane navigationPane1;
+        private DevExpress.XtraGrid.GridControl gridControl1;
+        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn1;
+        private DevExpress.XtraGrid.Columns.GridColumn colDel;
+        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit2;
+        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1;
+        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit3;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+        private DevExpress.XtraEditors.SimpleButton btnAddWx;
+        private DevExpress.XtraGrid.GridControl gridControl2;
+        private DevExpress.XtraGrid.Views.Grid.GridView gridView2;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn2;
+        private DevExpress.XtraGrid.Columns.GridColumn colWxDel;
+        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit4;
+        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit5;
+        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit6;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
-        private DevExpress.XtraEditors.SimpleButton btnPhoneBinding;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
-        private DevExpress.XtraLayout.LayoutControl layoutControl3;
-        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
-        private WechatBindingCtrl wechatBindingCtrl1;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
-        private DevExpress.XtraEditors.SimpleButton btnRefresh;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.cs b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.cs
index 14d2be1..b2ae01b 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.cs
@@ -1,4 +1,5 @@
-锘縰sing Yw;
+锘縰sing System.Data;
+using Yw;
 using Yw.Auth;
 using Yw.Dto;
 using Yw.WinFrmUI;
@@ -11,18 +12,16 @@
         {
             InitializeComponent();
             this.Load += PersonalCenterDlg_Load;
-            this.wechatBindingCtrl1.LoginStartEvent += WechatBindingCtrl1_LoginStartEvent;
+            this.gridView1.SetNormalView(20);
+            this.gridView2.SetNormalView(20);
         }
 
         private const string _smsTemplate = "hzkw_sms_template";//鎵嬫満鍙风櫥褰曟ā鏉�
         private const string _vxTemplate = "hzkw_wx_template";//寰俊鐧诲綍妯℃澘
         private const string _software = "HStation_XHS_DESKTOP";//杞欢缂栫爜
 
-        //鐧诲綍鍥炶皟
-        private void WechatBindingCtrl1_LoginStartEvent(string code)
-        {
-            WechatBinding(code);
-        }
+        private List<PhoneData> _phoneNuberBinding;
+        private List<WxData> _WxBinding;
 
         //鍒濆鍖�
         private void PersonalCenterDlg_Load(object? sender, EventArgs e)
@@ -31,7 +30,52 @@
             this.txtEditAdminType.Text = GlobalParas._GlobalParas.AdminType;
             this.txtAccountName.Text = GlobalParas._GlobalParas.AccountName;
             this.textAccountType.Text = GlobalParas._GlobalParas.LoginType;
-            this.wechatBindingCtrl1.Initial();
+            phoneInitialize();
+            wxInitialize();
+        }
+
+        public class PhoneData
+        {
+            public long ID { get; set; }
+            public string Phone { get; set; }
+        }
+
+        public class WxData
+        {
+            public long ID { get; set; }
+            public string Wxid { get; set; }
+        }
+
+        //鎵嬫満鍙峰垵濮嬪寲
+        private async void phoneInitialize()
+        {
+            _phoneNuberBinding = new List<PhoneData>();
+            var allPhones = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.GetSmsByUserID(GlobalParas._GlobalParas.UserID);
+            foreach (var item in allPhones)
+            {
+                _phoneNuberBinding.Add(new PhoneData
+                {
+                    Phone = item.Credential,
+                    ID = item.ID
+                });
+            }
+            this.gridControl1.DataSource = _phoneNuberBinding;
+        }
+
+        //寰俊缁戝畾鍒濆鍖�
+        private async void wxInitialize()
+        {
+            _WxBinding = new List<WxData>();
+            var allPhones = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.GetWechatByUserID(GlobalParas._GlobalParas.UserID);
+            foreach (var item in allPhones)
+            {
+                _WxBinding.Add(new WxData
+                {
+                    Wxid = item.Credential,
+                    ID = item.ID
+                });
+            }
+            this.gridControl2.DataSource = _WxBinding;
         }
 
         //淇敼瀵嗙爜
@@ -42,22 +86,15 @@
             dlg.ShowDialog();
         }
 
-        //鎵嬫満鍙烽獙璇�
-        private bool IsValidMobileNumber(string mobile)
-        {
-            var regex = new System.Text.RegularExpressions.Regex(@"^1\d{10}$");
-            return regex.IsMatch(mobile);
-        }
-
         //寰俊缁戝畾
-        private async void WechatBinding(string code)
+        private async Task<long> WechatBinding(string code)
         {
             var loginType = await BLLFactory<Yw.BLL.UserLoginType>.Instance.GetByIdentifier(LoginType.Wechat);
             if (loginType != null)
             {
                 var tokenInfo = await BLLFactory<Yw.BLL.ToolWechat>.Instance.GetTokenInfo(code, _vxTemplate);
                 if (tokenInfo == null)
-                    return;
+                    return default;
                 var isExist = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.IsExist(new IsExistUserLoginAccountInput
                 {
                     CorpID = GlobalParas._GlobalParas.CorpID,
@@ -68,7 +105,7 @@
                 if (isExist)
                 {
                     TipFormHelper.ShowError("璐︽埛宸插瓨鍦�!");
-                    return;
+                    return default;
                 }
                 var vmo = new Yw.Vmo.AddUserLoginAccountVmo
                 {
@@ -79,26 +116,24 @@
                     Credential = tokenInfo.openid,
                     IfVerified = true
                 };
-                var bol = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.Insert(vmo);
-                if (bol > 0)
+                var id = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.Insert(vmo);
+                if (id > 0)
                 {
                     TipFormHelper.ShowSucceed("缁戝畾鎴愬姛!");
+                    return id;
                 }
                 else
                 {
                     TipFormHelper.ShowError("缁戝畾澶辫触!");
+                    return default;
                 }
             };
+            return default;
         }
 
         //鎵嬫満缁戝畾
-        private async void PhoneBinding()
+        private async Task<long> PhoneBinding(string number)
         {
-            if (!IsValidMobileNumber(this.txtMobileNumber.Text.Trim()))
-            {
-                TipFormHelper.ShowError("鎵嬫満鍙锋湁璇�!");
-                return;
-            }
             var loginType = await BLLFactory<Yw.BLL.UserLoginType>.Instance.GetByIdentifier(LoginType.SMS);
             if (loginType != null)
             {
@@ -107,12 +142,12 @@
                     CorpID = GlobalParas._GlobalParas.CorpID,
                     LoginTypeID = loginType.ID,
                     Identifier = _smsTemplate,
-                    Credential = this.txtMobileNumber.Text.Trim()
+                    Credential = number
                 });
                 if (isExist)
                 {
                     TipFormHelper.ShowError("璐︽埛宸插瓨鍦�!");
-                    return;
+                    return default;
                 }
                 var vmo = new Yw.Vmo.AddUserLoginAccountVmo
                 {
@@ -120,30 +155,22 @@
                     UserID = GlobalParas._GlobalParas.UserID,
                     LoginTypeID = loginType.ID,
                     Identifier = _smsTemplate,
-                    Credential = this.txtMobileNumber.Text.Trim(),
+                    Credential = number,
                     IfVerified = true
                 };
-                var bol = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.Insert(vmo);
-                if (bol > 0)
+                var id = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.Insert(vmo);
+                if (id > 0)
                 {
                     TipFormHelper.ShowSucceed("缁戝畾鎴愬姛!");
+                    return id;
                 }
                 else
                 {
                     TipFormHelper.ShowError("缁戝畾澶辫触!");
+                    return default;
                 }
             }
-        }
-
-        private void btnPhoneBinding_Click(object sender, EventArgs e)
-        {
-            PhoneBinding();
-        }
-
-        //寰俊浜岀淮鐮佸埛鏂�
-        private void btnRefresh_Click(object sender, EventArgs e)
-        {
-            this.wechatBindingCtrl1.Initial();
+            return default;
         }
 
         //涓汉淇℃伅淇濆瓨
@@ -163,5 +190,82 @@
                 TipFormHelper.ShowSucceed("鏇存柊鎴愬姛锛�");
             }
         }
+
+        //娣诲姞鎵嬫満鍙�
+        private void btnAddPhone_Click(object sender, EventArgs e)
+        {
+            var dlg = new AddPhoneNumberDlg();
+            dlg.ReloadDataEvent += async (phoneNumber) =>
+            {
+                var id = await PhoneBinding(phoneNumber);
+                if (id > 0)
+                {
+                    _phoneNuberBinding.Add(new PhoneData { Phone = phoneNumber, ID = id });
+                    this.gridControl1.RefreshDataSource();
+                }
+            };
+            dlg.ShowDialog();
+        }
+
+        //鎵嬫満鍙峰崟鍏冩牸鐐瑰嚮浜嬩欢
+        private async void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
+        {
+            var vm = this.gridView1.GetCurrentViewModel(_phoneNuberBinding);
+            if (vm == null)
+            {
+                return;
+            }
+            if (e.Column == this.colDel)
+            {
+                var bol = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.DeleteByID(vm.ID);
+                if (!bol)
+                {
+                    TipFormHelper.ShowError("鍒犻櫎澶辫触锛�");
+                    return;
+                }
+                TipFormHelper.ShowError("鍒犻櫎鎴愬姛锛�");
+                _phoneNuberBinding.Remove(vm);
+                this.gridControl1.RefreshDataSource();
+            }
+        }
+
+        //寰俊鍗曞厓鏍肩偣鍑讳簨浠�
+        private async void gridView2_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
+        {
+            var vm = this.gridView2.GetCurrentViewModel(_WxBinding);
+            if (vm == null)
+            {
+                return;
+            }
+            if (e.Column == this.colWxDel)
+            {
+                var bol = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.DeleteByID(vm.ID);
+                if (!bol)
+                {
+                    TipFormHelper.ShowError("鍒犻櫎澶辫触锛�");
+                    return;
+                }
+                TipFormHelper.ShowError("鍒犻櫎鎴愬姛锛�");
+                _WxBinding.Remove(vm);
+                this.gridControl2.RefreshDataSource();
+            }
+        }
+
+        //娣诲姞寰俊
+        private void btnAddWx_Click(object sender, EventArgs e)
+        {
+            var dlg = new WechatBindingDlg();
+            dlg.SetBindingData();
+            dlg.CodeReloadData += async (code) =>
+            {
+                var id = await WechatBinding(code);
+                if (id > 0)
+                {
+                    _WxBinding.Add(new WxData { Wxid = code, ID = id });
+                    this.gridControl2.RefreshDataSource();
+                }
+            };
+            dlg.ShowDialog();
+        }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.resx b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.resx
index c96f4a6..4b55a98 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/06-user-info/PersonalCenterDlg.resx
@@ -117,33 +117,71 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="navigationPage3.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+        vAAADrwBlbxySQAABKVJREFUOE8dk3lMk3cYx58eWCjI6YHO6ZRFnU7jMpVMFOh90VeBDkYABXTbP1u2
+        ZS5L5rYsXh1XaQvt2+vtxVVACU5FJU5cFGNwGeJERYwaRHAwKIXSlstnr0u+fz3J5/skv9/zgWf46tc+
+        157L3yy/UAKNSjirWn/hSFJt3jZ3wZbaggSnamVbEdeTv6L18Goqf6O9aLO9mN969JcnTd04DqU91vdO
+        yuCHD9gN2XAuB1xSJinmagRxZaJlegWblIFF+n/kHINyhfnjqEp5XKks2f7ZT089sJPKX1Oj5DoIcMuh
+        Zi8Y09nWjIhqaYw+g6MTQzUfrCI4o4J6Akge6FK5riymVhhRLkr+7StYSWaEadJBz2NQcjal5JqIxOqs
+        ddqsd3TZ68jcSJIAmwJMPLDywcbntGSBXQomIUMvSGorgWhKEWORhZenRR5P3a7PKT5/3Py47frc/dZ/
+        b1Q8apI0ff2uKRfUKQkeVZhDArpdQO6lW8AkePtcITAdUq5ZsrJKmt36XftM9xB6J3B6GEdHcfo5+rrx
+        RcVw29oqJVudEmZIZ1jSWW5xWIMMyLRlzdkAdRlQ/tH7VH7D1I1h9F37+/qlrsszOPcSp+p7rlwLPuzC
+        lz8O1K7VKhKM0nCTAIypLKcE9Clx9fsB3MoY24GSm+UD6PWhn6qzaWq0vsXZCcTCE0crf28cQP9dHEvW
+        5K5XixMqhVCZEllLcKySxOZciHdkJ1YpTUPtIzjtfz2NuBiYf+1HHEMcQWy7f/tMb2fH4G3P40ult2yp
+        5KHIMgHbJI92ZUY59kMcpYpVS7QDbcPoD+FcMBgMIU4hPluYa+7uGsTQPxiawNAY+vtxuBtf5t/RhlWK
+        OFpp0pkjwK7P5RoyP+lQ9+P0OIaCuDg2F6ThrqcD/YGpFwsBXYub7u2ZeX6sRdeLky3Yv8VWFHtats3z
+        OYCTgGrZmtID5OCVIfRPvtkzS8NXe//0IQ7OeB3nm0cx+Hh21Nnd/sfC0zvoLej8Nakie7MxD8AoirYd
+        2Ejm7VLnPMGJgcWhSfSPLIxfv3drcnE6gCFvwDuL8zM478P5IQzcQ29Jh3pTWebW6hx462wBlKbElfL3
+        OIvb8UFx07FvL5Q5H1383lN2f2FwHAM+nKHfguZfTY2OYagDH+42FK4+LtpdfxhAvSvRSSRYZQkWxdrG
+        vOVUJqdSGHaSF3dKmtNx+jw+6MNxmgniHOL8CI5/2VkVe1IQXSHa1HQINrhUUVU8rkkc4coAAy1GKm0I
+        y02E2wiGOj3JkHe4s4IauqrvavjL139zoT/+hIBTI4q3EbEUARsMWfEa6VILscS9n1bqDUyfvkXIMggj
+        jJIYsyKWVMRoJPHl4qQa1damIrDsgwZxlFO+pjEHtlsORp8SQRkPLLS6YqBETKeCZRIuMfLosMx8hlXw
+        xipjGpMUsF1SqE0DUzKnat8Oz0H4os+yo+5T+tOZVgU4MsApY9rlDCM/0iqmL5mGWXSdQwo2EQ0zjekc
+        C5+rSdlpzj12l4SLOFjYo1vlygt3ZYKLALuEQcnozUutEq5FtMQipE3k1CnpRNjl9GSVXflhQ/7PveY+
+        fPUf/gFdzgJ2mhUAAAAASUVORK5CYII=
+</value>
+  </data>
   <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
-  <data name="navigationPage1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="btnAddWx.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
         LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
-        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALQEAAAC77u/
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/
         PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
         IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
         MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
         Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
         MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
-        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
-        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
-        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
-        aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
-        c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
-        O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
-        ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
-        c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJFbXBsb3llZV8xXyI+
-        DQogICAgPHBhdGggZD0iTTEwLjIsOS45Yy0wLjEsMC41LDAuMiwwLjksMC40LDEuNHMtMC4xLDEuNyww
-        LjksMS42YzAsMCwwLDAuMSwwLDAuMmMwLjYsMi4zLDIsNC45LDQuNyw0LjkgICBzNC4yLTIuNiw0Ljct
-        NC45VjEzYzEsMC4xLDAuNi0xLjEsMC45LTEuNmMwLjItMC41LDAuNC0wLjksMC4zLTEuNGMtMC4xLTAu
-        NC0wLjQtMC40LTAuNS0wLjNDMjMuNCw0LjgsMjAuNSw1LDIwLjUsNVMyMC4yLDIsMTUsMiAgIGMtNC44
-        LDAtNS40LDQtNC4zLDcuNkMxMC42LDkuNiwxMC4zLDkuNywxMC4yLDkuOXogTTIwLjIsMThjLTAuOCwx
-        LjUtMi4xLDQtNCw0cy0zLjItMi41LTQtNGMtMi4zLDMuNS04LDEtOCw4LjVWMzBoMjR2LTMuNSAgIEMy
-        OC4yLDE5LjEsMjIuNSwyMS40LDIwLjIsMTh6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3Zn
-        Pgs=
+        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
+        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
+        dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0
+        QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0
+        LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N
+        Cjwvc3ZnPgs=
+</value>
+  </data>
+  <data name="editorButtonImageOptions7.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD0DAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs
+        YWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMy
+        Mzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4N
+        CiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik0xOC44LDE2bDYuOS02LjljMC40LTAuNCwwLjQtMSwwLTEu
+        NGwtMS40LTEuNGMtMC40LTAuNC0xLTAuNC0xLjQsMEwxNiwxMy4yTDkuMSw2LjNjLTAuNC0wLjQtMS0w
+        LjQtMS40LDAgICAgTDYuMyw3LjdjLTAuNCwwLjQtMC40LDEsMCwxLjRsNi45LDYuOWwtNi45LDYuOWMt
+        MC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSwwLjQsMS40LDBsNi45LTYuOWw2Ljks
+        Ni45ICAgIGMwLjQsMC40LDEsMC40LDEuNCwwbDEuNC0xLjRjMC40LTAuNCwwLjQtMSwwLTEuNEwxOC44
+        LDE2eiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPgs=
 </value>
   </data>
   <data name="navigationPage2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -171,25 +209,71 @@
         LjEsMjQsMjcuNywyMy42eiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
 </value>
   </data>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="navigationPage3.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="editorButtonImageOptions10.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYa
-        HSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgo
-        KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QA
-        HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
-        MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
-        V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
-        x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
-        BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
-        YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
-        hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
-        8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDR8OeFtV8YSS6pf6mLW3mufJFxOWZpZW/hUf8A1wKp+MvCN74b
-        QXC3qX1iZmtzPESNkq9UYHoeD69K6/4WfELT/D2gzafrRdVSfdAYkLMQ2S2R6Age/wA3TivRdHvNI8S6
-        ctxDf2c6zrH5kUsaO4YEl1YNzyOMdgOK5IwjKOj1PkaGBw2KopRl+8er11v6XPCfDnivW9L0821jqE0c
-        O8sFzkDIHTNFVdU+wnWdS/sj/kH/AGl/I/3M8Y9vSisuZrS550a9amuRTenZjPGml2+k+KNRsrTf5EMz
-        Km85IFYyrgggkEcgg9KKKmW5yVklUkl3PZ/hb4F0bWfCqXt+k7zvKwOJMAAY4HFFFFdUIrlWh9Xg6FKV
-        CDcVt2P/2Q==
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD0DAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs
+        YWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMy
+        Mzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4N
+        CiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik0xOC44LDE2bDYuOS02LjljMC40LTAuNCwwLjQtMSwwLTEu
+        NGwtMS40LTEuNGMtMC40LTAuNC0xLTAuNC0xLjQsMEwxNiwxMy4yTDkuMSw2LjNjLTAuNC0wLjQtMS0w
+        LjQtMS40LDAgICAgTDYuMyw3LjdjLTAuNCwwLjQtMC40LDEsMCwxLjRsNi45LDYuOWwtNi45LDYuOWMt
+        MC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSwwLjQsMS40LDBsNi45LTYuOWw2Ljks
+        Ni45ICAgIGMwLjQsMC40LDEsMC40LDEuNCwwbDEuNC0xLjRjMC40LTAuNCwwLjQtMSwwLTEuNEwxOC44
+        LDE2eiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPgs=
+</value>
+  </data>
+  <data name="btnAddPhone.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
+        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
+        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
+        dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0
+        QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0
+        LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N
+        Cjwvc3ZnPgs=
+</value>
+  </data>
+  <data name="navigationPage1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALQEAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
+        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
+        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
+        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
+        aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
+        c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
+        O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
+        ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
+        c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJFbXBsb3llZV8xXyI+
+        DQogICAgPHBhdGggZD0iTTEwLjIsOS45Yy0wLjEsMC41LDAuMiwwLjksMC40LDEuNHMtMC4xLDEuNyww
+        LjksMS42YzAsMCwwLDAuMSwwLDAuMmMwLjYsMi4zLDIsNC45LDQuNyw0LjkgICBzNC4yLTIuNiw0Ljct
+        NC45VjEzYzEsMC4xLDAuNi0xLjEsMC45LTEuNmMwLjItMC41LDAuNC0wLjksMC4zLTEuNGMtMC4xLTAu
+        NC0wLjQtMC40LTAuNS0wLjNDMjMuNCw0LjgsMjAuNSw1LDIwLjUsNVMyMC4yLDIsMTUsMiAgIGMtNC44
+        LDAtNS40LDQtNC4zLDcuNkMxMC42LDkuNiwxMC4zLDkuNywxMC4yLDkuOXogTTIwLjIsMThjLTAuOCwx
+        LjUtMi4xLDQtNCw0cy0zLjItMi41LTQtNGMtMi4zLDMuNS04LDEtOCw4LjVWMzBoMjR2LTMuNSAgIEMy
+        OC4yLDE5LjEsMjIuNSwyMS40LDIwLjIsMTh6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3Zn
+        Pgs=
 </value>
   </data>
 </root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Auth.Core/HStation.WinFrmUI.Auth.Core.csproj b/WinFrmUI/HStation.WinFrmUI.Auth.Core/HStation.WinFrmUI.Auth.Core.csproj
index 3ddf558..f870248 100644
--- a/WinFrmUI/HStation.WinFrmUI.Auth.Core/HStation.WinFrmUI.Auth.Core.csproj
+++ b/WinFrmUI/HStation.WinFrmUI.Auth.Core/HStation.WinFrmUI.Auth.Core.csproj
@@ -100,6 +100,9 @@
     <Compile Update="04-role-projcet-menu\RoleTreeListCtrl.cs">
       <SubType>UserControl</SubType>
     </Compile>
+    <Compile Update="06-user-info\AddPhoneNumberDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="Properties\Resources.Designer.cs">
       <DesignTime>True</DesignTime>
       <AutoGen>True</AutoGen>

--
Gitblit v1.9.3