using HStation.Dto; using Newtonsoft.Json; namespace HStation.WinFrmUI.Xhs.Core { public partial class AddXhsProjectDlg : DevExpress.XtraEditors.XtraForm { public AddXhsProjectDlg() { InitializeComponent(); } private AddXhsProjectInput _AddXhsProjectInput = null; public event Func> ReloadEvent; //初始化 private void AddProjectDlg_Load(object sender, EventArgs e) { _AddXhsProjectInput = new AddXhsProjectInput(); this.webView21.Source = new Uri(AppDomain.CurrentDomain.BaseDirectory + "data/web/html/map_select.html"); this.navigationFrame.SelectedPage = navigationPageForm; layoutControlItemBack.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; layoutControlItemAddress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; } private void webView21_WebMessageReceived(object sender, Microsoft.Web.WebView2.Core.CoreWebView2WebMessageReceivedEventArgs e) { var j = JsonConvert.DeserializeObject(e.WebMessageAsJson); switch (j.Oper) { case "getLocation": var o = JsonConvert.DeserializeObject(j.Json); if (o == null) break; this.textEditAddress.Text = o.address; _AddXhsProjectInput.Address = o.address; _AddXhsProjectInput.MapPosition = o.location.lng + "," + o.location.lat; break; } } //下一步 private void btnNextStep_Click(object sender, EventArgs e) { var currentindex = this.navigationFrame.SelectedPageIndex; switch (currentindex) { case 0: if (!this.projectUserControl1.Valid()) return; this.navigationFrame.SelectedPage = navigationPageMapSelect; stepProgressBar1.SelectedItemIndex = 1; layoutControlItemAddress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; layoutControlItemBack.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; this.btnNextStep.Text = "完成"; break; case 1: Finish(); break; } } //上一步 private void BtnBack_Click(object sender, EventArgs e) { var currentindex = this.navigationFrame.SelectedPageIndex; switch (currentindex) { case 0: break; case 1: this.navigationFrame.SelectedPage = navigationPageForm; stepProgressBar1.SelectedItemIndex = 0; layoutControlItemBack.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; layoutControlItemAddress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; this.btnNextStep.Text = "下一步>"; break; } } //数据验证 private bool Valid() { this.dxErrorProvider1.ClearErrors(); if (string.IsNullOrEmpty(textEditAddress.Text.Trim())) { this.dxErrorProvider1.SetError(this.textEditAddress, "必填项"); return false; } if (string.IsNullOrEmpty(_AddXhsProjectInput.MapPosition)) { MessageBoxHelper.ShowInfo("请现在地图中选择位置!"); return false; } return true; } //确定 private async void Finish() { if (!this.projectUserControl1.Valid()) return; var login = LoginUser.GetInstance(); var proresult = this.projectUserControl1.GetData(_AddXhsProjectInput); proresult.Address = this.textEditAddress.Text.Trim(); proresult.CreateUserID = login.CreateUserID; proresult.CreateUserDisplayName = login.LoginName; var Item = new AddXhsProjectItemInput(); Item.Name = proresult.Name; Item.Version = proresult.Version; Item.TagName = proresult.TagName; Item.CreateTime = proresult.CreateTime; Item.Description = proresult.Description; Item.CreateUserID = proresult.CreateUserID; Item.Version = proresult.Version; var Model = new AddXhsProjectItemModelInput(); Model.Name = proresult.Name; Model.Version = proresult.Version; Model.TagName = proresult.TagName; Model.Description = proresult.Description; Model.UploadStatus = HStation.Xhs.eUploadStatus.Disable; var Mapinput = new AddXhsProjectItemModelMapInput(); Mapinput.UploadUserID = proresult.CreateUserID; Mapinput.UploadTime = DateTime.Now; if (await this.ReloadEvent.Invoke(proresult, Item, Model, Mapinput)) { MessageBoxHelper.ShowSuccess("添加成功!"); } else { MessageBoxHelper.ShowError("添加失败!"); } this.DialogResult = DialogResult.OK; this.Close(); } } }